diff --git a/.gitignore b/.gitignore index 0d9720302ca2d..62d9f912fd839 100644 --- a/.gitignore +++ b/.gitignore @@ -131,6 +131,3 @@ zz_generated_*_test.go # generated by verify-vendor.sh vendordiff.patch - -# Ignore openshift source archives produced as part of rpm build -openshift*.tar.gz diff --git a/CHANGELOG/CHANGELOG-1.19.md b/CHANGELOG/CHANGELOG-1.19.md index c51920fa7cdb7..13b64db7f2164 100644 --- a/CHANGELOG/CHANGELOG-1.19.md +++ b/CHANGELOG/CHANGELOG-1.19.md @@ -1,57 +1,175 @@ -- [v1.19.3](#v1193) - - [Downloads for v1.19.3](#downloads-for-v1193) +- [v1.19.11](#v11911) + - [Downloads for v1.19.11](#downloads-for-v11911) - [Source Code](#source-code) - - [Client binaries](#client-binaries) - - [Server binaries](#server-binaries) - - [Node binaries](#node-binaries) - - [Changelog since v1.19.2](#changelog-since-v1192) + - [Client Binaries](#client-binaries) + - [Server Binaries](#server-binaries) + - [Node Binaries](#node-binaries) + - [Changelog since v1.19.10](#changelog-since-v11910) - [Changes by Kind](#changes-by-kind) + - [API Change](#api-change) - [Feature](#feature) - - [Design](#design) - [Bug or Regression](#bug-or-regression) - - [Other (Cleanup or Flake)](#other-cleanup-or-flake) - [Dependencies](#dependencies) - [Added](#added) - [Changed](#changed) - [Removed](#removed) -- [v1.19.2](#v1192) - - [Downloads for v1.19.2](#downloads-for-v1192) +- [v1.19.10](#v11910) + - [Downloads for v1.19.10](#downloads-for-v11910) - [Source Code](#source-code-1) - [Client binaries](#client-binaries-1) - [Server binaries](#server-binaries-1) - [Node binaries](#node-binaries-1) - - [Changelog since v1.19.1](#changelog-since-v1191) + - [Changelog since v1.19.9](#changelog-since-v1199) + - [Important Security Information](#important-security-information) + - [CVE-2021-25735: Validating Admission Webhook does not observe some previous fields](#cve-2021-25735-validating-admission-webhook-does-not-observe-some-previous-fields) - [Changes by Kind](#changes-by-kind-1) - - [API Change](#api-change) + - [API Change](#api-change-1) + - [Feature](#feature-1) - [Bug or Regression](#bug-or-regression-1) - - [Other (Cleanup or Flake)](#other-cleanup-or-flake-1) - [Dependencies](#dependencies-1) - [Added](#added-1) - [Changed](#changed-1) - [Removed](#removed-1) -- [v1.19.1](#v1191) - - [Downloads for v1.19.1](#downloads-for-v1191) +- [v1.19.9](#v1199) + - [Downloads for v1.19.9](#downloads-for-v1199) - [Source Code](#source-code-2) - [Client binaries](#client-binaries-2) - [Server binaries](#server-binaries-2) - [Node binaries](#node-binaries-2) - - [Changelog since v1.19.0](#changelog-since-v1190) + - [Changelog since v1.19.8](#changelog-since-v1198) - [Changes by Kind](#changes-by-kind-2) + - [Failing Test](#failing-test) - [Bug or Regression](#bug-or-regression-2) - - [Other (Cleanup or Flake)](#other-cleanup-or-flake-2) - [Dependencies](#dependencies-2) - [Added](#added-2) - [Changed](#changed-2) - [Removed](#removed-2) +- [v1.19.8](#v1198) + - [Downloads for v1.19.8](#downloads-for-v1198) + - [Source Code](#source-code-3) + - [Client binaries](#client-binaries-3) + - [Server binaries](#server-binaries-3) + - [Node binaries](#node-binaries-3) + - [Changelog since v1.19.7](#changelog-since-v1197) + - [Changes by Kind](#changes-by-kind-3) + - [API Change](#api-change-2) + - [Bug or Regression](#bug-or-regression-3) + - [Other (Cleanup or Flake)](#other-cleanup-or-flake) + - [Dependencies](#dependencies-3) + - [Added](#added-3) + - [Changed](#changed-3) + - [Removed](#removed-3) +- [v1.19.7](#v1197) + - [Downloads for v1.19.7](#downloads-for-v1197) + - [Source Code](#source-code-4) + - [Client binaries](#client-binaries-4) + - [Server binaries](#server-binaries-4) + - [Node binaries](#node-binaries-4) + - [Changelog since v1.19.6](#changelog-since-v1196) + - [Changes by Kind](#changes-by-kind-4) + - [Bug or Regression](#bug-or-regression-4) + - [Dependencies](#dependencies-4) + - [Added](#added-4) + - [Changed](#changed-4) + - [Removed](#removed-4) +- [v1.19.6](#v1196) + - [Downloads for v1.19.6](#downloads-for-v1196) + - [Source Code](#source-code-5) + - [Client binaries](#client-binaries-5) + - [Server binaries](#server-binaries-5) + - [Node binaries](#node-binaries-5) + - [Changelog since v1.19.5](#changelog-since-v1195) + - [Changes by Kind](#changes-by-kind-5) + - [Feature](#feature-2) + - [Bug or Regression](#bug-or-regression-5) + - [Other (Cleanup or Flake)](#other-cleanup-or-flake-1) + - [Dependencies](#dependencies-5) + - [Added](#added-5) + - [Changed](#changed-5) + - [Removed](#removed-5) +- [v1.19.5](#v1195) + - [Downloads for v1.19.5](#downloads-for-v1195) + - [Source Code](#source-code-6) + - [Client binaries](#client-binaries-6) + - [Server binaries](#server-binaries-6) + - [Node binaries](#node-binaries-6) + - [Changelog since v1.19.4](#changelog-since-v1194) + - [Changes by Kind](#changes-by-kind-6) + - [Feature](#feature-3) + - [Failing Test](#failing-test-1) + - [Bug or Regression](#bug-or-regression-6) + - [Dependencies](#dependencies-6) + - [Added](#added-6) + - [Changed](#changed-6) + - [Removed](#removed-6) +- [v1.19.4](#v1194) + - [Downloads for v1.19.4](#downloads-for-v1194) + - [Source Code](#source-code-7) + - [Client binaries](#client-binaries-7) + - [Server binaries](#server-binaries-7) + - [Node binaries](#node-binaries-7) + - [Changelog since v1.19.3](#changelog-since-v1193) + - [Changes by Kind](#changes-by-kind-7) + - [Bug or Regression](#bug-or-regression-7) + - [Dependencies](#dependencies-7) + - [Added](#added-7) + - [Changed](#changed-7) + - [Removed](#removed-7) +- [v1.19.3](#v1193) + - [Downloads for v1.19.3](#downloads-for-v1193) + - [Source Code](#source-code-8) + - [Client binaries](#client-binaries-8) + - [Server binaries](#server-binaries-8) + - [Node binaries](#node-binaries-8) + - [Changelog since v1.19.2](#changelog-since-v1192) + - [Changes by Kind](#changes-by-kind-8) + - [Feature](#feature-4) + - [Design](#design) + - [Bug or Regression](#bug-or-regression-8) + - [Other (Cleanup or Flake)](#other-cleanup-or-flake-2) + - [Dependencies](#dependencies-8) + - [Added](#added-8) + - [Changed](#changed-8) + - [Removed](#removed-8) +- [v1.19.2](#v1192) + - [Downloads for v1.19.2](#downloads-for-v1192) + - [Source Code](#source-code-9) + - [Client binaries](#client-binaries-9) + - [Server binaries](#server-binaries-9) + - [Node binaries](#node-binaries-9) + - [Changelog since v1.19.1](#changelog-since-v1191) + - [Changes by Kind](#changes-by-kind-9) + - [API Change](#api-change-3) + - [Bug or Regression](#bug-or-regression-9) + - [Other (Cleanup or Flake)](#other-cleanup-or-flake-3) + - [Dependencies](#dependencies-9) + - [Added](#added-9) + - [Changed](#changed-9) + - [Removed](#removed-9) +- [v1.19.1](#v1191) + - [Downloads for v1.19.1](#downloads-for-v1191) + - [Source Code](#source-code-10) + - [Client binaries](#client-binaries-10) + - [Server binaries](#server-binaries-10) + - [Node binaries](#node-binaries-10) + - [Changelog since v1.19.0](#changelog-since-v1190) + - [Changes by Kind](#changes-by-kind-10) + - [Bug or Regression](#bug-or-regression-10) + - [Other (Cleanup or Flake)](#other-cleanup-or-flake-4) + - [Dependencies](#dependencies-10) + - [Added](#added-10) + - [Changed](#changed-10) + - [Removed](#removed-10) - [v1.19.0](#v1190) - [Downloads for v1.19.0](#downloads-for-v1190) - - [Client Binaries](#client-binaries-3) - - [Server Binaries](#server-binaries-3) - - [Node Binaries](#node-binaries-3) + - [Source Code](#source-code-11) + - [Client Binaries](#client-binaries-11) + - [Server Binaries](#server-binaries-11) + - [Node Binaries](#node-binaries-11) - [Changelog since v1.18.0](#changelog-since-v1180) - - [What’s New (Major Themes)](#what’s-new-major-themes) + - [What’s New (Major Themes)](#whats-new-major-themes) - [Deprecation warnings](#deprecation-warnings) - [Avoiding permanent beta](#avoiding-permanent-beta) - [Expanded CLI support for debugging workloads and nodes](#expanded-cli-support-for-debugging-workloads-and-nodes) @@ -71,180 +189,905 @@ - [Windows containerd support graduates to beta](#windows-containerd-support-graduates-to-beta) - [Increase the Kubernetes support window to one year](#increase-the-kubernetes-support-window-to-one-year) - [Known Issues](#known-issues) - - [Urgent Upgrade Notes ](#urgent-upgrade-notes-) + - [Urgent Upgrade Notes](#urgent-upgrade-notes) - [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade) - - [Changes by Kind](#changes-by-kind-3) + - [Changes by Kind](#changes-by-kind-11) - [Deprecation](#deprecation) - - [API Change](#api-change-1) - - [Feature](#feature-1) + - [API Change](#api-change-4) + - [Feature](#feature-5) - [Documentation](#documentation) - - [Failing Test](#failing-test) - - [Bug or Regression](#bug-or-regression-3) - - [Other (Cleanup or Flake)](#other-cleanup-or-flake-3) - - [Dependencies](#dependencies-3) - - [Added](#added-3) - - [Changed](#changed-3) - - [Removed](#removed-3) - - [Dependencies](#dependencies-4) - - [Added](#added-4) - - [Changed](#changed-4) - - [Removed](#removed-4) + - [Failing Test](#failing-test-2) + - [Bug or Regression](#bug-or-regression-11) + - [Other (Cleanup or Flake)](#other-cleanup-or-flake-5) + - [Dependencies](#dependencies-11) + - [Added](#added-11) + - [Changed](#changed-11) + - [Removed](#removed-11) + - [Dependencies](#dependencies-12) + - [Added](#added-12) + - [Changed](#changed-12) + - [Removed](#removed-12) - [v1.19.0-rc.4](#v1190-rc4) - [Downloads for v1.19.0-rc.4](#downloads-for-v1190-rc4) - - [Source Code](#source-code-3) - - [Client binaries](#client-binaries-4) - - [Server binaries](#server-binaries-4) - - [Node binaries](#node-binaries-4) + - [Source Code](#source-code-12) + - [Client binaries](#client-binaries-12) + - [Server binaries](#server-binaries-12) + - [Node binaries](#node-binaries-12) - [Changelog since v1.19.0-rc.3](#changelog-since-v1190-rc3) - - [Changes by Kind](#changes-by-kind-4) + - [Changes by Kind](#changes-by-kind-12) - [Deprecation](#deprecation-1) - - [Bug or Regression](#bug-or-regression-4) - - [Other (Cleanup or Flake)](#other-cleanup-or-flake-4) - - [Dependencies](#dependencies-5) - - [Added](#added-5) - - [Changed](#changed-5) - - [Removed](#removed-5) + - [Bug or Regression](#bug-or-regression-12) + - [Other (Cleanup or Flake)](#other-cleanup-or-flake-6) + - [Dependencies](#dependencies-13) + - [Added](#added-13) + - [Changed](#changed-13) + - [Removed](#removed-13) - [v1.19.0-rc.3](#v1190-rc3) - [Downloads for v1.19.0-rc.3](#downloads-for-v1190-rc3) - - [Source Code](#source-code-4) - - [Client binaries](#client-binaries-5) - - [Server binaries](#server-binaries-5) - - [Node binaries](#node-binaries-5) + - [Source Code](#source-code-13) + - [Client binaries](#client-binaries-13) + - [Server binaries](#server-binaries-13) + - [Node binaries](#node-binaries-13) - [Changelog since v1.19.0-rc.2](#changelog-since-v1190-rc2) - - [Changes by Kind](#changes-by-kind-5) - - [API Change](#api-change-2) - - [Bug or Regression](#bug-or-regression-5) - - [Dependencies](#dependencies-6) - - [Added](#added-6) - - [Changed](#changed-6) - - [Removed](#removed-6) + - [Changes by Kind](#changes-by-kind-13) + - [API Change](#api-change-5) + - [Bug or Regression](#bug-or-regression-13) + - [Dependencies](#dependencies-14) + - [Added](#added-14) + - [Changed](#changed-14) + - [Removed](#removed-14) - [v1.19.0-rc.2](#v1190-rc2) - [Downloads for v1.19.0-rc.2](#downloads-for-v1190-rc2) - - [Source Code](#source-code-5) - - [Client binaries](#client-binaries-6) - - [Server binaries](#server-binaries-6) - - [Node binaries](#node-binaries-6) + - [Source Code](#source-code-14) + - [Client binaries](#client-binaries-14) + - [Server binaries](#server-binaries-14) + - [Node binaries](#node-binaries-14) - [Changelog since v1.19.0-rc.1](#changelog-since-v1190-rc1) - - [Changes by Kind](#changes-by-kind-6) - - [API Change](#api-change-3) - - [Feature](#feature-2) - - [Bug or Regression](#bug-or-regression-6) - - [Other (Cleanup or Flake)](#other-cleanup-or-flake-5) - - [Dependencies](#dependencies-7) - - [Added](#added-7) - - [Changed](#changed-7) - - [Removed](#removed-7) + - [Changes by Kind](#changes-by-kind-14) + - [API Change](#api-change-6) + - [Feature](#feature-6) + - [Bug or Regression](#bug-or-regression-14) + - [Other (Cleanup or Flake)](#other-cleanup-or-flake-7) + - [Dependencies](#dependencies-15) + - [Added](#added-15) + - [Changed](#changed-15) + - [Removed](#removed-15) - [v1.19.0-rc.1](#v1190-rc1) - [Downloads for v1.19.0-rc.1](#downloads-for-v1190-rc1) - - [Source Code](#source-code-6) - - [Client binaries](#client-binaries-7) - - [Server binaries](#server-binaries-7) - - [Node binaries](#node-binaries-7) + - [Source Code](#source-code-15) + - [Client binaries](#client-binaries-15) + - [Server binaries](#server-binaries-15) + - [Node binaries](#node-binaries-15) - [Changelog since v1.19.0-rc.0](#changelog-since-v1190-rc0) - - [Urgent Upgrade Notes](#urgent-upgrade-notes) + - [Urgent Upgrade Notes](#urgent-upgrade-notes-1) - [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-1) - - [Changes by Kind](#changes-by-kind-7) + - [Changes by Kind](#changes-by-kind-15) - [Deprecation](#deprecation-2) - - [API Change](#api-change-4) - - [Feature](#feature-3) - - [Failing Test](#failing-test-1) - - [Bug or Regression](#bug-or-regression-7) - - [Other (Cleanup or Flake)](#other-cleanup-or-flake-6) - - [Dependencies](#dependencies-8) - - [Added](#added-8) - - [Changed](#changed-8) - - [Removed](#removed-8) + - [API Change](#api-change-7) + - [Feature](#feature-7) + - [Failing Test](#failing-test-3) + - [Bug or Regression](#bug-or-regression-15) + - [Other (Cleanup or Flake)](#other-cleanup-or-flake-8) + - [Dependencies](#dependencies-16) + - [Added](#added-16) + - [Changed](#changed-16) + - [Removed](#removed-16) - [v1.19.0-beta.2](#v1190-beta2) - [Downloads for v1.19.0-beta.2](#downloads-for-v1190-beta2) - - [Source Code](#source-code-7) - - [Client binaries](#client-binaries-8) - - [Server binaries](#server-binaries-8) - - [Node binaries](#node-binaries-8) + - [Source Code](#source-code-16) + - [Client binaries](#client-binaries-16) + - [Server binaries](#server-binaries-16) + - [Node binaries](#node-binaries-16) - [Changelog since v1.19.0-beta.1](#changelog-since-v1190-beta1) - - [Changes by Kind](#changes-by-kind-8) + - [Changes by Kind](#changes-by-kind-16) - [Deprecation](#deprecation-3) - - [API Change](#api-change-5) - - [Feature](#feature-4) - - [Bug or Regression](#bug-or-regression-8) - - [Other (Cleanup or Flake)](#other-cleanup-or-flake-7) - - [Dependencies](#dependencies-9) - - [Added](#added-9) - - [Changed](#changed-9) - - [Removed](#removed-9) + - [API Change](#api-change-8) + - [Feature](#feature-8) + - [Bug or Regression](#bug-or-regression-16) + - [Other (Cleanup or Flake)](#other-cleanup-or-flake-9) + - [Dependencies](#dependencies-17) + - [Added](#added-17) + - [Changed](#changed-17) + - [Removed](#removed-17) - [v1.19.0-beta.1](#v1190-beta1) - [Downloads for v1.19.0-beta.1](#downloads-for-v1190-beta1) - - [Source Code](#source-code-8) - - [Client binaries](#client-binaries-9) - - [Server binaries](#server-binaries-9) - - [Node binaries](#node-binaries-9) + - [Source Code](#source-code-17) + - [Client binaries](#client-binaries-17) + - [Server binaries](#server-binaries-17) + - [Node binaries](#node-binaries-17) - [Changelog since v1.19.0-alpha.3](#changelog-since-v1190-alpha3) - - [Urgent Upgrade Notes](#urgent-upgrade-notes-1) + - [Urgent Upgrade Notes](#urgent-upgrade-notes-2) - [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-2) - - [Changes by Kind](#changes-by-kind-9) - - [API Change](#api-change-6) - - [Feature](#feature-5) - - [Bug or Regression](#bug-or-regression-9) - - [Other (Cleanup or Flake)](#other-cleanup-or-flake-8) - - [Dependencies](#dependencies-10) - - [Added](#added-10) - - [Changed](#changed-10) - - [Removed](#removed-10) + - [Changes by Kind](#changes-by-kind-17) + - [API Change](#api-change-9) + - [Feature](#feature-9) + - [Bug or Regression](#bug-or-regression-17) + - [Other (Cleanup or Flake)](#other-cleanup-or-flake-10) + - [Dependencies](#dependencies-18) + - [Added](#added-18) + - [Changed](#changed-18) + - [Removed](#removed-18) - [v1.19.0-beta.0](#v1190-beta0) - [Downloads for v1.19.0-beta.0](#downloads-for-v1190-beta0) - - [Source Code](#source-code-9) - - [Client binaries](#client-binaries-10) - - [Server binaries](#server-binaries-10) - - [Node binaries](#node-binaries-10) + - [Source Code](#source-code-18) + - [Client binaries](#client-binaries-18) + - [Server binaries](#server-binaries-18) + - [Node binaries](#node-binaries-18) - [Changelog since v1.19.0-alpha.3](#changelog-since-v1190-alpha3-1) - - [Changes by Kind](#changes-by-kind-10) - - [API Change](#api-change-7) - - [Feature](#feature-6) - - [Bug or Regression](#bug-or-regression-10) - - [Other (Cleanup or Flake)](#other-cleanup-or-flake-9) - - [Dependencies](#dependencies-11) - - [Added](#added-11) - - [Changed](#changed-11) - - [Removed](#removed-11) + - [Changes by Kind](#changes-by-kind-18) + - [API Change](#api-change-10) + - [Feature](#feature-10) + - [Bug or Regression](#bug-or-regression-18) + - [Other (Cleanup or Flake)](#other-cleanup-or-flake-11) + - [Dependencies](#dependencies-19) + - [Added](#added-19) + - [Changed](#changed-19) + - [Removed](#removed-19) - [v1.19.0-alpha.3](#v1190-alpha3) - [Downloads for v1.19.0-alpha.3](#downloads-for-v1190-alpha3) - - [Client Binaries](#client-binaries-11) - - [Server Binaries](#server-binaries-11) - - [Node Binaries](#node-binaries-11) + - [Source Code](#source-code-19) + - [Client Binaries](#client-binaries-19) + - [Server Binaries](#server-binaries-19) + - [Node Binaries](#node-binaries-19) - [Changelog since v1.19.0-alpha.2](#changelog-since-v1190-alpha2) - - [Urgent Upgrade Notes](#urgent-upgrade-notes-2) + - [Urgent Upgrade Notes](#urgent-upgrade-notes-3) - [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-3) - - [Changes by Kind](#changes-by-kind-11) + - [Changes by Kind](#changes-by-kind-19) - [Deprecation](#deprecation-4) - - [API Change](#api-change-8) - - [Feature](#feature-7) - - [Bug or Regression](#bug-or-regression-11) - - [Other (Cleanup or Flake)](#other-cleanup-or-flake-10) + - [API Change](#api-change-11) + - [Feature](#feature-11) + - [Bug or Regression](#bug-or-regression-19) + - [Other (Cleanup or Flake)](#other-cleanup-or-flake-12) - [v1.19.0-alpha.2](#v1190-alpha2) - [Downloads for v1.19.0-alpha.2](#downloads-for-v1190-alpha2) - - [Client Binaries](#client-binaries-12) - - [Server Binaries](#server-binaries-12) - - [Node Binaries](#node-binaries-12) + - [Source Code](#source-code-20) + - [Client Binaries](#client-binaries-20) + - [Server Binaries](#server-binaries-20) + - [Node Binaries](#node-binaries-20) - [Changelog since v1.19.0-alpha.1](#changelog-since-v1190-alpha1) - - [Urgent Upgrade Notes](#urgent-upgrade-notes-3) + - [Urgent Upgrade Notes](#urgent-upgrade-notes-4) - [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-4) - - [Changes by Kind](#changes-by-kind-12) - - [API Change](#api-change-9) - - [Feature](#feature-8) - - [Bug or Regression](#bug-or-regression-12) - - [Other (Cleanup or Flake)](#other-cleanup-or-flake-11) + - [Changes by Kind](#changes-by-kind-20) + - [API Change](#api-change-12) + - [Feature](#feature-12) + - [Bug or Regression](#bug-or-regression-20) + - [Other (Cleanup or Flake)](#other-cleanup-or-flake-13) - [v1.19.0-alpha.1](#v1190-alpha1) - [Downloads for v1.19.0-alpha.1](#downloads-for-v1190-alpha1) - - [Client Binaries](#client-binaries-13) - - [Server Binaries](#server-binaries-13) - - [Node Binaries](#node-binaries-13) + - [Source Code](#source-code-21) + - [Client Binaries](#client-binaries-21) + - [Server Binaries](#server-binaries-21) + - [Node Binaries](#node-binaries-21) - [Changelog since v1.19.0-alpha.0](#changelog-since-v1190-alpha0) - - [Urgent Upgrade Notes](#urgent-upgrade-notes-4) + - [Urgent Upgrade Notes](#urgent-upgrade-notes-5) - [(No, really, you MUST read this before you upgrade)](#no-really-you-must-read-this-before-you-upgrade-5) - - [Changes by Kind](#changes-by-kind-13) + - [Changes by Kind](#changes-by-kind-21) - [Deprecation](#deprecation-5) - - [API Change](#api-change-10) + - [API Change](#api-change-13) + - [Feature](#feature-13) + - [Documentation](#documentation-1) + - [Other (Bug, Cleanup or Flake)](#other-bug-cleanup-or-flake) + + + +# v1.19.11 + + +## Downloads for v1.19.11 + +### Source Code + +filename | sha512 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes.tar.gz) | 37c4174a2b859f9b51b83231ec2e61cd41eaab713bd7c9fd06fba82161ced84c95464a4fb1319ad2d04f5395745123588f75796ee31910e6ba8ce6303901f04b +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-src.tar.gz) | b2d87277dd4f648934a3beb3fa040b5c773bda51e0176bdc04db9f23f09651183c1c5a04784ce6a003e4751edf58299dcc72e946ab4ce260ab2edc6ffab7202b + +### Client Binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-client-darwin-amd64.tar.gz) | 014f7890bc22d10d15f0dbb0a76e4ab4ce06c35a189b71f99b623749535b7fefc31c9ebc7d312eef7f60bc0971d7d178b694747c367082b1bf070c1b9f6053b4 +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-client-linux-386.tar.gz) | 5677170f9136e9e6bc05e16407e27bb0a6922fa3e683bd35d98002241b849af2fe3c668af529dacb929ed3187e427a880855341f09f8052925df15fb2c2cb741 +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-client-linux-amd64.tar.gz) | cb3168ff1deb79b508a1c1be514a6fa17e1e61182dea7bd1d5260afe6fa058f04df2587551e1d0d925496c963586839e1acb2661c4483348fb7c9753d40dae22 +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-client-linux-arm.tar.gz) | cfcf5e6c3fbabd7c8c7adf2065345cea912a27e0577e662e1d1bb6c94e89641df8037fc7c550f37ef1582dd3bc658a54b541caf24ef107ffdb479b984feb3079 +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-client-linux-arm64.tar.gz) | 5926c35ecce6393712049c188dcadb6739fe6acd57ed073fd78a27d9da16d47dc8cf7fb4c1f24ea49ed29080c4b4de20d984a49cf951419cc1c1fb35c0c63ede +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-client-linux-ppc64le.tar.gz) | 91843ce96f0a7a190038848fb819f63051816a1e1c1c3703787295585a55abc8a1980ebe78428a49c00b685372b121bcd302327e567b1618a99778f1d66962f0 +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-client-linux-s390x.tar.gz) | 9a8d26eaa36f884debc3f28f14da414eb03b6ae70c4c3f975a415db38391890eafb8cbcc60723676764507b86334d897ef7ece7ad024f3e6b9e80f37ee617436 +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-client-windows-386.tar.gz) | 9388f53e3f061869d4f427cf126b56cee9aac0ac811e33a54f424c82872c56d403d8346ebcfa14093f854ccce3211229adc2385acdb057ea804d2669ac702627 +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-client-windows-amd64.tar.gz) | 191316354aa7c0ac8b34a9fdaa179372f22456279a7126967bb99c91e09a77db806ebbb75f206f6a6fc1796b5f28d80a1e2b4576d4c22b33978419b69caa3522 + +### Server Binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-server-linux-amd64.tar.gz) | 268353bcd650fb7c5713a063dbc5c88968c6c5adccc8c31bded0688ea90cfd1f7cfe74e5f732efc918581d566f869ce75933df3ce9a96a8d784e1847b41a1056 +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-server-linux-arm.tar.gz) | 0ef3c1f1bb6beea093259f6cd5e3da760d611110284b6c96a3f2406d1084cf6e2c81c39839e7215978d57f2d93f0a4aef7e3f66ce94e49c9f9037afa3cbc62b8 +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-server-linux-arm64.tar.gz) | b6af79c137f1a91a042e0dd3a818e50df6e2c84cce7a87e52e478bde4b7793ba7d7de6144162b3c32e01cf4ed79d7c5b54a78d22b38e530f1cfa587460d42b96 +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-server-linux-ppc64le.tar.gz) | bfc4a75afc0d152d84bfe2abd00530ab5dcccd1d925e522e758287e93bc88affee4ceb5f74c0d9cc67a142b206a1ed6f171c439f893e70a2165190df99604a4a +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-server-linux-s390x.tar.gz) | 44c6af35244237a54871df7f8d74db505f1b875b58e7162099c03a2ebe2fa625d47bc1e76ba9522491680c208eb84a8193c3f0e78602caba3848c32624a5c332 + +### Node Binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-node-linux-amd64.tar.gz) | b5fb8f27f8db2b839d65b2b7f60bf9df769222b52399c0ece0eca3d5ae37f8b426ee1a78c110f28d8d98d409be54b4fd426c35c073c4f7fce9178c29cef40016 +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-node-linux-arm.tar.gz) | ae40b76e5e74cb726bd29b0f3ef8f52a51cfd792740a7a027c4ff0c3fca79360f3a2487471ed3e43d0dc13f1a5a63420278157e3210d542455c7a2d3b3f7369e +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-node-linux-arm64.tar.gz) | f7edaa427932da59d11a0cf80ce28467f0903d30f35ddd79c206045273ee45b9fab24224ab57644611cdec63733eabe743daef833786c4c4908b5e8ac8370dbd +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-node-linux-ppc64le.tar.gz) | 47ae0d3a564dccf947c47264ba1631a3e3eca3d4073c163fd3bf22bec5aebd533d051f6229f3420bcfda110f00ebc3a1971e640544db24bc8fb850caa15bca75 +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-node-linux-s390x.tar.gz) | 312cac95b6b7c871a6bf56a8f7fb27fec938564d72177d5b90dcf04805993d6eda4dbfa7ea2dbc69a5f2f6832a6a073a221deba129491d98f8130f4a14677c4b +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.11/kubernetes-node-windows-amd64.tar.gz) | 6cc61b8c4c0a512c81584c7b232250ce902fb89f9cae68a76a2bf44825b88cdf424009359cc3f1010b53ca980470b9100debb6938fd1e31d536f82f582a1ebd7 + +## Changelog since v1.19.10 + +## Changes by Kind + +### API Change + +- We have added a new Priority & Fairness rule that exempts all probes (/readyz, /healthz, /livez) to prevent + restarting of "healthy" kube-apiserver instance(s) by kubelet. ([#101113](https://github.com/kubernetes/kubernetes/pull/101113), [@tkashem](https://github.com/tkashem)) [SIG API Machinery] + +### Feature + +- Kubernetes is now built using go1.15.11 ([#101197](https://github.com/kubernetes/kubernetes/pull/101197), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Release and Testing] +- Kubernetes is now built using go1.15.12 ([#101846](https://github.com/kubernetes/kubernetes/pull/101846), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Release and Testing] + +### Bug or Regression + +- Azurefile: Normalize share name to not include capital letters ([#100731](https://github.com/kubernetes/kubernetes/pull/100731), [@kassarl](https://github.com/kassarl)) [SIG Cloud Provider and Storage] +- EndpointSlice IP validation now matches Endpoints IP validation. ([#101084](https://github.com/kubernetes/kubernetes/pull/101084), [@robscott](https://github.com/robscott)) [SIG Apps and Network] +- EndpointSlice controllers are less likely to create duplicate EndpointSlices. ([#101764](https://github.com/kubernetes/kubernetes/pull/101764), [@aojea](https://github.com/aojea)) [SIG Apps and Network] +- Ensure service deleted when the Azure resource group has been deleted ([#100944](https://github.com/kubernetes/kubernetes/pull/100944), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Fix panic in JSON logging format caused by missing Duration encoder ([#101159](https://github.com/kubernetes/kubernetes/pull/101159), [@serathius](https://github.com/serathius)) [SIG API Machinery, Cluster Lifecycle and Instrumentation] +- Fix: azure file inline volume namespace issue in csi migration translation ([#101235](https://github.com/kubernetes/kubernetes/pull/101235), [@andyzhangx](https://github.com/andyzhangx)) [SIG Apps, Cloud Provider, Node and Storage] +- Fixed a bug where startupProbe stopped working after a container's first restart ([#101093](https://github.com/kubernetes/kubernetes/pull/101093), [@wzshiming](https://github.com/wzshiming)) [SIG Node] +- Fixed port-forward memory leak for long-running and heavily used connections. ([#99839](https://github.com/kubernetes/kubernetes/pull/99839), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery and Node] +- Kubelet: improve the performance when waiting for a synchronization of the node list with the kube-apiserver ([#99336](https://github.com/kubernetes/kubernetes/pull/99336), [@neolit123](https://github.com/neolit123)) [SIG Node] +- No support endpointslice in linux userpace mode ([#101502](https://github.com/kubernetes/kubernetes/pull/101502), [@JornShen](https://github.com/JornShen)) [SIG Network] + +## Dependencies + +### Added +_Nothing has changed._ + +### Changed +_Nothing has changed._ + +### Removed +_Nothing has changed._ + + + +# v1.19.10 + + +## Downloads for v1.19.10 + +### Source Code + +filename | sha512 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes.tar.gz) | 35d0328ec3af401acff5937cc2f74070dde0343546c1c1754caf1cba7377ce776af5361e65148048b9449627857a65dccf739abac2e98ca5a47f7ef116b0d906 +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-src.tar.gz) | d98cf864db9a8437a0b3ca3fd48a0c09fd7705f86544602b4933a229f03f25644165b9c4a54b12590699c430a25c2ebeff7e4582a40124b30e00f776bb8d3e8a + +### Client binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-client-darwin-amd64.tar.gz) | 661d65a9a0e70ed1a851df862c7c0fd2a1eee403a71fc885914a3426133d31493ccef508ef975753f2b83d69faa97d4e1d811a9e855194faf0dfe2ee56f38764 +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-client-linux-386.tar.gz) | e72353a0090a8706b0a330514919db31a5640c2775d2efc8995013567192cbd9f2f2e1a1c1ab30669b4900f2db4dceb1e7c86c739df634f67de36983f20e160a +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-client-linux-amd64.tar.gz) | 9d9fff1f29ebb62e66be307742c234975711d974dcdb5360453169c52c85cf4a780b31eec0c518c834093b657f7c99dd80cd67fcfeeb557cf560f3a5cc93196f +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-client-linux-arm.tar.gz) | 579533866e882d5c7cea675bec22f7622332e0a38fa3e5d0ab9546fbb9fa2908e67291bfb3a0ecabaf60395fbad7ad2fc032dc21dafa0c4ad4edb8ac0e3d5326 +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-client-linux-arm64.tar.gz) | 2afed34d17ba7bc445893eb1c5db72f57798592bac0851f7cea1a88461b57553dd950e27cf47c3683ffcd367aae25f74e9fc7142796ec8ee081936abea5cab02 +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-client-linux-ppc64le.tar.gz) | 92742539814af04fc622b601e49a3f34220e141770bdbceb60f79110cd090bf555ca9940ccb0a1ed9ac6c770e45b9e552d28aed782c00a39f158b8b21cfa6f50 +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-client-linux-s390x.tar.gz) | 68c4c0a2edf2d4d5e61083380af73e2851bd9ac028252e4204947cbeb7a67cb40d89c185cd3114759a8cf34744d95f9f537bca3bbe78d3c5255ac538f71c5498 +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-client-windows-386.tar.gz) | c36dab53166bf07107c63f0b618edd5d94da39f9a91981da1c7e3652c9ebc1dec9372d3961953371279d0cd940025020081a25994b824595deaa0fcbb647e23f +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-client-windows-amd64.tar.gz) | 4c6e4b30c256f14e3b9d0c1a2c43a4fe05f8022def176a4a7229e418210f65e9169a40caf52eb6bb86327b8b2b12cd23deb9eb122ea911081f2bf983439bb95f + +### Server binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-server-linux-amd64.tar.gz) | 709f1a5fe6ffb70bbe9e670add7b3e92507c83dc10de06068cc73c0d18fe070cef36a3886471a06c6751de8b8ef2d52813064fc5cf6fb4d946b0c31a7567a3ca +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-server-linux-arm.tar.gz) | cda9b1a7e50df80b12265fa87af3fbd318709dda6e1ab8e92a5b5d987f6304e4d9f829cb0fc1bae75e2c3d8bb93f3928a1ce48d085ba2bb03eaa0150f41357e3 +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-server-linux-arm64.tar.gz) | b0e0b08924a4dcb701f3a3cc592abdb719eb3db14c0a5a30093a2159a4231c403eaa20868d6aa51f212a80a6db1c64015dcb0b6af8419f06446ad81a6eee8eed +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-server-linux-ppc64le.tar.gz) | 55a77a219688b026856bf4e0d09c8dcec1291b98ef36f19018683515c22165473e45058cd373dc17d88bba1741f0e4cbe987a45b5a5ee45df82366c582442921 +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-server-linux-s390x.tar.gz) | c6f85af69da1effdd62907219def457ae19f8da8784bb9b8fdb1d07c4c6119c13a31f010dfdbeb4d68dff694d6e80a1d0d1e9aad9b700648869c696c76983210 + +### Node binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-node-linux-amd64.tar.gz) | a71857c0f80fd856a8a2ec13182feab465859af2dd1ad7aca03614a7cfd9c0113e6ec4c2a7d81c0ac60850e8463952bf00f5e28d44be79f483de663c79814970 +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-node-linux-arm.tar.gz) | 3f26e1dd470dab8979f9fd7f1b3af4e36fd2bbba4b960ad7e891ceb78322ef66efd99606c907eaf17dc0196c8fc75def3140cc2180f149e5de5b02dd1fb827a3 +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-node-linux-arm64.tar.gz) | 72a507509a75f9bb8b6fbd6d9f9e4a8ca898a46b4d72014f4691caa052ce3eb65082b8f261c4ec8f983ef95dca380d156cf962040077835d5f804567e227253b +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-node-linux-ppc64le.tar.gz) | 5067279a1635324c4d23575a17cb833d79f639a54dde93c53440cd044c23e9b632cdc6a8f8159fc1975d773612a3bef6f3f384c5b7eaa2e8c8359645e34893e4 +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-node-linux-s390x.tar.gz) | 84ed97b04c91914081a9c676139eebab81d9975a5162c48e2380d477012a91af3567bcb3f0806136ff49873e2c3b8d307b38c39646a669660f8cbe97562bf38c +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.10/kubernetes-node-windows-amd64.tar.gz) | ef7b5d9050a7a45936707363e6f32ae086151504f85edc72fe880bad7c91de8c54b848e1110af5fdbb78dd9da4e4cdf343cc44f163c4a3db73acff439ba4a77d + +## Changelog since v1.19.9 + +## Important Security Information + +This release contains changes that address the following vulnerabilities: + +### CVE-2021-25735: Validating Admission Webhook does not observe some previous fields + +A security issue was discovered in kube-apiserver that could allow node +updates to bypass a Validating Admission Webhook. You are only affected +by this vulnerability if you run a Validating Admission Webhook for Nodes +that denies admission based at least partially on the old state of the +Node object. + +**Note**: This only impacts validating admission plugins that rely on old +values in certain fields, and does not impact calls from kubelets that go +through the built-in NodeRestriction admission plugin. + +**Affected Versions**: + - kube-apiserver v1.20.0 - v1.20.5 + - kube-apiserver v1.19.0 - v1.19.9 + - kube-apiserver <= v1.18.17 + +**Fixed Versions**: + - kube-apiserver v1.21.0 + - kube-apiserver v1.20.6 + - kube-apiserver v1.19.10 + - kube-apiserver v1.18.18 + +This vulnerability was reported by Rogerio Bastos & Ari Lima from RedHat + + +**CVSS Rating:** Medium (6.5) [CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:H](https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:H) + +## Changes by Kind + +### API Change + +- Fixes using server-side apply with APIService resources ([#100713](https://github.com/kubernetes/kubernetes/pull/100713), [@kevindelgado](https://github.com/kevindelgado)) [SIG API Machinery, Apps, Scheduling and Testing] +- Regenerate protobuf code to fix CVE-2021-3121 ([#100515](https://github.com/kubernetes/kubernetes/pull/100515), [@joelsmith](https://github.com/joelsmith)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node and Storage] + +### Feature + +- AWS cloudprovider supports auto-discovering subnets without any kubernetes.io/cluster/ tags. It also supports additional service annotation service.beta.kubernetes.io/aws-load-balancer-subnets to manually configure the subnets. ([#97431](https://github.com/kubernetes/kubernetes/pull/97431), [@kishorj](https://github.com/kishorj)) [SIG Cloud Provider] +- AWS cloudprovider will ignore provisioning load balancers if the annotation service.beta.kubernetes.io/aws-load-balancer-type is external or nlb-ip ([#97975](https://github.com/kubernetes/kubernetes/pull/97975), [@kishorj](https://github.com/kishorj)) [SIG Cloud Provider] +- Kubernetes is now built using go1.15.10 ([#100520](https://github.com/kubernetes/kubernetes/pull/100520), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Release and Testing] + +### Bug or Regression + +- Fixed a bug where a high churn of events was causing master instability by reducing the maximum number of objects (events) attached to a single etcd lease. ([#100450](https://github.com/kubernetes/kubernetes/pull/100450), [@mborsz](https://github.com/mborsz)) [SIG API Machinery and Instrumentation] +- Fixed a race condition on API server startup ensuring previously created webhook configurations are effective before the first write request is admitted. ([#95783](https://github.com/kubernetes/kubernetes/pull/95783), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery] +- Fixes a data race issue in the priority and fairness API server filter ([#100669](https://github.com/kubernetes/kubernetes/pull/100669), [@tkashem](https://github.com/tkashem)) [SIG API Machinery] +- Kubectl: Fixed panic when describing an ingress backend without an API Group ([#100542](https://github.com/kubernetes/kubernetes/pull/100542), [@eddiezane](https://github.com/eddiezane)) [SIG CLI] +- Reverts breaking change to inline AzureFile volumes in v1.19.7-v1.19.9; referenced secrets are now correctly searched for in the same namespace as the pod as in previous releases. ([#100398](https://github.com/kubernetes/kubernetes/pull/100398), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- The endpointslice mirroring controller mirrors endpoints annotations and labels to the generated endpoint slices, it also ensures that updates on any of these fields on the endpoints are mirrored. + The well-known annotation endpoints.kubernetes.io/last-change-trigger-time is skipped and not mirrored. ([#100443](https://github.com/kubernetes/kubernetes/pull/100443), [@aojea](https://github.com/aojea)) [SIG Apps, Network and Testing] +- The maximum number of ports allowed in EndpointSlices has been increased from 100 to 20,000 ([#99795](https://github.com/kubernetes/kubernetes/pull/99795), [@robscott](https://github.com/robscott)) [SIG Network] + +## Dependencies + +### Added +_Nothing has changed._ + +### Changed +- github.com/gogo/protobuf: [v1.3.1 → v1.3.2](https://github.com/gogo/protobuf/compare/v1.3.1...v1.3.2) +- github.com/kisielk/errcheck: [v1.2.0 → v1.5.0](https://github.com/kisielk/errcheck/compare/v1.2.0...v1.5.0) +- github.com/yuin/goldmark: [v1.1.27 → v1.2.1](https://github.com/yuin/goldmark/compare/v1.1.27...v1.2.1) +- golang.org/x/sync: cd5d95a → 67f06af +- golang.org/x/tools: c1934b7 → 113979e +- golang.org/x/xerrors: 9bdfabe → 5ec99f8 +- sigs.k8s.io/structured-merge-diff/v4: v4.0.1 → v4.0.3 + +### Removed +_Nothing has changed._ + + + +# v1.19.9 + + +## Downloads for v1.19.9 + +### Source Code + +filename | sha512 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes.tar.gz) | bd8fbded9a25c672c05655ccdf4b78a86b2e4f0d8763c7d55a9fb84369c5ac9e7ce28d3a8abfe0dfafea1cb5480cc8da43c1ba1fb9b9974d364986d9fb4c839b +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-src.tar.gz) | 1ae5568ea9d0c545150267ed082072854437da53992bfc17a20d3ab5509e8a2376ebb57b4cdc54811844645d97ffbb853fd8776c034fbe9c244e1e2c3b792f0d + +### Client binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-client-darwin-amd64.tar.gz) | 1c4f09c7a1b8f0d6bc6b748988e9e37b8eb124e71dd4f4b0bd95885a17060b0f887cbf8cc4f79b915a8562cfdf4a51786e663a96f961f6f67437d33af11079b6 +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-client-linux-386.tar.gz) | 6d7b6832d9ca2080842941cc571f7fb37260080f8bfee229fd350b77be2e6d2a66eb1240392aecc5a393be80d8c40ad46138f3bbc5029415dd776170794d8a25 +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-client-linux-amd64.tar.gz) | 3ef3140c77703c1e28c17aeae9b022d6abeff6ab1d6ceff5812babbfd847f09c93fdb9e97c7bb64ae47d6025d7354ce716d8c5b4e27f9c8dbb80be579730c854 +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-client-linux-arm.tar.gz) | 49a41a22c2d526d673c0654c17915c8ee7b01909973c703e41bbe6db258b5c0a71921dce4f358af273308dbc8a26a811a773b77f7f6b79560a15d8f8e655ff22 +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-client-linux-arm64.tar.gz) | 0e17f7d9ed73e8474fd16d1e9feb5b02b4d1750f9c9750b356dd3c0db7ab39501414c0ef91f0c765680809b38eb0f5b380ed79d3ccf2ef7477c257021095a64a +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-client-linux-ppc64le.tar.gz) | ecd484f98dac83db5500023b8571e274c1943a0430280e59b1897502b38d7b0c5b56eb68ca9af7f092d17e61c563ee5dcb5ddf8fe2d92905f82a895baa405237 +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-client-linux-s390x.tar.gz) | 975a7dd4f229aac51c47f2501c8536be6073f447839510d1f67d6e721ad16ddbb374670522c9d39d19c5a4479ef596cb26a16e9511e3d6fc9b7e679d162f05f2 +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-client-windows-386.tar.gz) | fc0656df2344fcb62a0c7e619ecd1211b55e2673efefd5884135a944393a5d7df79885ad7e39e5d91679fa4ae5f3f159cd2636dc6f8df203de6371da21349852 +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-client-windows-amd64.tar.gz) | bfc8c09fa129ac1a0debc402627ba2bc982c8f062d940aacf966789e6d268501590d071f27d0a88848039fbf593d1ee5956c31f21035465ab11165338f3391f4 + +### Server binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-server-linux-amd64.tar.gz) | 29136843826dde131dfa95fca5ecee0d47c89c91db882f46517611dc1ad3beabe149c0829a1390303592efc6527eb9e429faf7e3d0ff69ef14dc40fa9b81fb5f +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-server-linux-arm.tar.gz) | 1c1071f72d1df60b6d37e3bab192064088542ba8a0e7593be22fd5328364ee2f19f44bb781d96536f4f9a07e7ea8fe5b578a0ac92e3ac8d116345148a04509b2 +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-server-linux-arm64.tar.gz) | 1fead6815e6343955f0c5028282b4399b8c0705f0b71f823d420bd86cc924d8e93aaa9a7f81e113bae24f3c9489025271f147ef0079626d9f54151218d88a05f +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-server-linux-ppc64le.tar.gz) | 328e9a0c0e5813d3844bc31c27aec0724e3608d2f0ffd8a933bbae4ce6d811f9bea4f63070c6bfa0b13583b54d7017519d9ffd66a755e32081913b4ef359ed1e +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-server-linux-s390x.tar.gz) | 171b1e0eaa5fe8ba0719d328f6526c1814c753b09163891a7e3bd8cd0f50eb779e947c5d6c9a0b32c581b4a75afa02cf2bdf2ed7c6e14d31deb83f82028bd0c9 + +### Node binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-node-linux-amd64.tar.gz) | 0d6cfe1bed8a960b373d5403fc849621d08ce302ca2dd8a4ac1f1dee7dd6ee03a5875a6846f237b45432f4511bdd3cd6d1085d466cad4c3c33fbe1ed28e599ad +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-node-linux-arm.tar.gz) | 0f17c7076856b6b8346595697b32306f1bf576ceda7fab364dd2c15af1c6c5be9474110a2a52f2162fd997894eddf4e53af567e37727e50c317e0bc37efcfddd +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-node-linux-arm64.tar.gz) | a585a87bf74f257de1ac8777aa8dd278268f2a60ba073f4e81ea56c256d251dba92da11d48fb24118e850f4c32b47b894ac16eb384f4ce1fcc776bfc4816961f +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-node-linux-ppc64le.tar.gz) | 009695a736a23c3dd30007f2ec29ef87d44a79edda5694b44d23724adfa8c8d8ec578413748b1cbdf265f90743b99929bf4a61ff2c33b9f09397c35078f971c5 +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-node-linux-s390x.tar.gz) | 19d1676db1cb91280b133a9c23e0fd0465c6aefa77dee010307149bc92ad23923ff349dad5ee3fba69c0521bc6243d3179db3fae41bed4b28db3dda91650c9ce +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.9/kubernetes-node-windows-amd64.tar.gz) | aeb9e49ebc758b1fc583b9c28503d6c573989517722f62b753fea5fd076afe548d3ce4f5d81117899ba20ad5d0eef2ee9045152c474fe8eea49a3d6ed42d85a5 + +## Changelog since v1.19.8 + +## Changes by Kind + +### Failing Test + +- Fix handing special characters in the volume path on Windows ([#99137](https://github.com/kubernetes/kubernetes/pull/99137), [@yujuhong](https://github.com/yujuhong)) [SIG Storage] + +### Bug or Regression + +- Count pod overhead against an entity's ResourceQuota ([#99600](https://github.com/kubernetes/kubernetes/pull/99600), [@gjkim42](https://github.com/gjkim42)) [SIG API Machinery and Node] +- EndpointSlice controller is now less likely to emit FailedToUpdateEndpointSlices events. ([#100114](https://github.com/kubernetes/kubernetes/pull/100114), [@robscott](https://github.com/robscott)) [SIG Apps and Network] +- EndpointSliceMirroring controller is now less likely to emit FailedToUpdateEndpointSlices events. ([#100144](https://github.com/kubernetes/kubernetes/pull/100144), [@robscott](https://github.com/robscott)) [SIG Apps and Network] +- Fixed bug that caused cAdvisor to incorrectly detect single-socket multi-NUMA topology. ([#99209](https://github.com/kubernetes/kubernetes/pull/99209), [@iwankgb](https://github.com/iwankgb)) [SIG Node] +- Fixes kubelet to retrieve number of sockets from cAdvisor MachineInfo, instead of assuming it to be equal to number of NUMA nodes. ([#99771](https://github.com/kubernetes/kubernetes/pull/99771), [@iwankgb](https://github.com/iwankgb)) [SIG Node] +- Fixing a bug where a failed node may not have the NoExecute taint set correctly ([#98140](https://github.com/kubernetes/kubernetes/pull/98140), [@CKchen0726](https://github.com/CKchen0726)) [SIG Apps and Node] +- Kubelet now cleans up orphaned volume directories automatically ([#95301](https://github.com/kubernetes/kubernetes/pull/95301), [@lorenz](https://github.com/lorenz)) [SIG Node and Storage] +- Resolves spurious `Failed to list *v1.Secret` or `Failed to list *v1.ConfigMap` messages in kubelet logs. ([#99538](https://github.com/kubernetes/kubernetes/pull/99538), [@liggitt](https://github.com/liggitt)) [SIG Auth and Node] +- Using NUMA nodes instead of sockets for CPU manager hints. ([#99276](https://github.com/kubernetes/kubernetes/pull/99276), [@iwankgb](https://github.com/iwankgb)) [SIG Node] +- We will no longer automatically delete all data when a failure is detected during creation of the volume data file on a CSI volume. Now we will only remove the data file and volume path. ([#96021](https://github.com/kubernetes/kubernetes/pull/96021), [@huffmanca](https://github.com/huffmanca)) [SIG Storage] + +## Dependencies + +### Added +_Nothing has changed._ + +### Changed +- github.com/google/cadvisor: [v0.37.4 → v0.37.5](https://github.com/google/cadvisor/compare/v0.37.4...v0.37.5) +- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.9 → v0.0.15 + +### Removed +_Nothing has changed._ + + + +# v1.19.8 + + +## Downloads for v1.19.8 + +### Source Code + +filename | sha512 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes.tar.gz) | 14a4920a56fdecf8aae54d86e27cd194f8245760602809be4d0ea7f0a28b8fce667f55c46c552cb8695592892d480ecb2c619bc0e467310a8cb774aac09e43dc +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-src.tar.gz) | 9de221764ff93eacc665994e1b7bebcd130ba531160fc73964e46395fdb59d4731af9abed81a36c45c7781499bb1d349de6d6b3082d6b49dd1597ab5782df690 + +### Client binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-client-darwin-amd64.tar.gz) | 181ab8b4f45db829afe9e0f97f1e3395d1c2ed472df11d0cee2a515e8493859964a52a5d29f8256ecb59be640fe9a7f89c0b95a8c1073d4b3e590e9aae363166 +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-client-linux-386.tar.gz) | 32fa49bf25a2b599a91d044c7fca8375d164b15925f02d0947d4341bab90fd0cbc749c124930df691c457c43ae03041a7c806802865461cfc3057064ed64f0ed +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-client-linux-amd64.tar.gz) | 9f22cea299e8a852ccd859f2e8e390b580bc23508cf2d2341114192ce883d98923076f350d02b45735b51096965030a90b25a2768ab55508e2f5f56204fd84e9 +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-client-linux-arm.tar.gz) | fb47723f17ee9bcd1d1e63b6ea1f7c0556795f37253abfc353f6970acb662c9870bcc974c3f63f64c5280d6f8dc1023910858e8d63a4d0a4e81982268a1a91fc +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-client-linux-arm64.tar.gz) | 55605b02f00a0eff401df9e599f773d0bb47fd36816f215c653fe8424e07f3f1576129462e84eecad7195cc0ab25351206fc0dbd8365440a1efd14d6be60134e +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-client-linux-ppc64le.tar.gz) | 8608d1c656512f369ef060d6a67740f0c1909a62679764a9b2d8dcc691813de903bc30aa1da649f9056fbfc6114ce6d6980797ae4c5b7f51e1ba0157e6486be8 +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-client-linux-s390x.tar.gz) | edbb64b3fe175fbfe8f4011cdb5a7eda9ad6843e906df053cbffd42e7bd7c02bef797a03e2b54a764d592b66ffa050e46b8efda95404b08bd8f5ab96536da75c +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-client-windows-386.tar.gz) | e34ccf76cc67b553b6dd872cfda445f8cd58110aa46c5af0f59828b510e4187f841b341c3b8a95bf63e866f56dc4347a97fc96f19dc95ef37d13364f54a379dd +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-client-windows-amd64.tar.gz) | 0581dc0ee100bb407fb28b77106c430559adeb0f734e1a6a18b2ef5840467da86e762da95ff0281449119c2cca978a48f564a74f20b25f8aef00b17e1d1e4fbf + +### Server binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-server-linux-amd64.tar.gz) | 62b8798a64a743e2f7566b98d5d6097069c62a6273a9f8d4e08f9c88b2e6d2491a618fd309e70e0128ad400123ac3753e32b6bac28b5bdde4cd54aa1b84087f4 +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-server-linux-arm.tar.gz) | f25703791ab3f36ddcf3aacae426f1cb1fe02835ba15ad3d07c5ff16d9494f9bec633735d0f444883cb01b79e461829233b880a26f7f085512ee89e444379193 +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-server-linux-arm64.tar.gz) | 3c30a49fe5afd484176f412f33da5314d9874dd9a06729a8d2e50b70b3f6346585b0e4b33a6f3bbbf56ef6ee283f027bf14425f0be88a2f60c08ce6f9bc991d8 +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-server-linux-ppc64le.tar.gz) | 8c033a97e03001c8b9bf774bc584becab51c2a17e658ecc916dc6f90fa004c3131267491a3b5c8ce3ebeca50879932d5b15fbf9bd4630628c07ecd0c32206f52 +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-server-linux-s390x.tar.gz) | cd92abb29f3e4f963a781fd81d77372a4f294b5482f2b2a8491712a1b228c48ebfc63fab75d0b3075c54aaeee1dea4b9c0e0875484b28e1c557946eda8c32422 + +### Node binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-node-linux-amd64.tar.gz) | a49e385be0ff6d6e36b9387524384825ce0b4f2ecb9647b5e9f293cc42023355e59902bafaf5b35fad486d70ecc19713360138b2802809d2ccc9ab3b83fd85e6 +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-node-linux-arm.tar.gz) | 18d825c48e55def55aa4b14b65550acd77184f6935ac15a6b779bc13a90d4db46adb33159fefc1cb255e7b104df4d7d039011368c502310370b37b76067f43fd +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-node-linux-arm64.tar.gz) | ded3f97eaa517d26207d99af9df065e6a22a05da54b7c07c27cda65f2fba26677c66c08376d982bffefff9300120d50a74a2a6714d5c26d249c907f9ba301be8 +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-node-linux-ppc64le.tar.gz) | 58b2148771e3bcd0d4ffd5958872a237178f0cd4cc9934e65c9f7999daa83c2540b2a535ed78b2b5b7e720223cdafd7721eac3d81adf4e080ac30626968926b4 +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-node-linux-s390x.tar.gz) | b6bae4aba560128777abca64fc551a42d34f87d36d770e825e0aaafc7cc7c4efc7124e5661f3cec1cd7e26eceaaca1c295bb0a579f8d924cb34f1c2051cafd62 +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.8/kubernetes-node-windows-amd64.tar.gz) | 25f57ad17f65baa2dd145624008b92b221aaa47b6a28312e615153f4dc4ffdf6534bfb75f8ec1c50c66948f6f7ca4990ed7c9ed1d2e1afc1bafb4764c76b9246 + +## Changelog since v1.19.7 + +## Changes by Kind + +### API Change + +- Kubernetes is now built using go1.15.8 ([#99093](https://github.com/kubernetes/kubernetes/pull/99093), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Release and Testing] + +### Bug or Regression + +- Aggregate errors when putting vmss ([#98350](https://github.com/kubernetes/kubernetes/pull/98350), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Avoid marking node as Ready until node has synced with API servers at least once ([#97996](https://github.com/kubernetes/kubernetes/pull/97996), [@ehashman](https://github.com/ehashman)) [SIG Node] +- Cleanup subnet in frontend IP configs to prevent huge subnet request bodies in some scenarios. ([#98288](https://github.com/kubernetes/kubernetes/pull/98288), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Fix CSI-migrated inline EBS volumes failing to mount if their volumeID is prefixed by aws:// ([#96821](https://github.com/kubernetes/kubernetes/pull/96821), [@wongma7](https://github.com/wongma7)) [SIG Storage] +- Fix azure file migration issue ([#97877](https://github.com/kubernetes/kubernetes/pull/97877), [@andyzhangx](https://github.com/andyzhangx)) [SIG Auth, Cloud Provider and Storage] +- Fix the description of command line flags that can override --config ([#98873](https://github.com/kubernetes/kubernetes/pull/98873), [@changshuchao](https://github.com/changshuchao)) [SIG Scheduling] +- Fix to recover CSI volumes from certain dangling attachments ([#96617](https://github.com/kubernetes/kubernetes/pull/96617), [@yuga711](https://github.com/yuga711)) [SIG Apps and Storage] +- Fixed a bug that the kubelet cannot start on BtrfS. ([#98015](https://github.com/kubernetes/kubernetes/pull/98015), [@gjkim42](https://github.com/gjkim42)) [SIG Node] +- Fixed a bug where aggregator_unavailable_apiservice metrics were reported for deleted apiservices. ([#96421](https://github.com/kubernetes/kubernetes/pull/96421), [@dgrisonnet](https://github.com/dgrisonnet)) [SIG API Machinery and Instrumentation] +- Fixed provisioning of Cinder volumes migrated to CSI when StorageClass with AllowedTopologies was used. ([#98311](https://github.com/kubernetes/kubernetes/pull/98311), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] +- Fixes a panic in the disruption budget controller for PDB objects with invalid selectors ([#98776](https://github.com/kubernetes/kubernetes/pull/98776), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Apps] +- Kubeadm: get k8s CI version markers from k8s infra bucket ([#98836](https://github.com/kubernetes/kubernetes/pull/98836), [@hasheddan](https://github.com/hasheddan)) [SIG Cluster Lifecycle and Release] +- Kubelet should ignore cgroup driver check on Windows node. ([#98385](https://github.com/kubernetes/kubernetes/pull/98385), [@pacoxu](https://github.com/pacoxu)) [SIG Node] +- Performance regression [#97685](https://github.com/kubernetes/kubernetes/pull/97685) has been fixed ([#98432](https://github.com/kubernetes/kubernetes/pull/98432), [@tkashem](https://github.com/tkashem)) [SIG API Machinery] +- Static pods will be deleted gracefully. ([#98103](https://github.com/kubernetes/kubernetes/pull/98103), [@gjkim42](https://github.com/gjkim42)) [SIG Node] +- Truncates a message if it hits the NoteLengthLimit when the scheduler records an event for the pod that indicates the pod has failed to schedule. ([#98715](https://github.com/kubernetes/kubernetes/pull/98715), [@carlory](https://github.com/carlory)) [SIG Scheduling] +- Warning about using a deprecated volume plugin is logged only once. ([#96751](https://github.com/kubernetes/kubernetes/pull/96751), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] + +### Other (Cleanup or Flake) + +- Kubeadm: change the default image repository for CI images from 'gcr.io/kubernetes-ci-images' to 'gcr.io/k8s-staging-ci-images' ([#97087](https://github.com/kubernetes/kubernetes/pull/97087), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Resolves flakes in the Ingress conformance tests due to conflicts with controllers updating the Ingress object ([#98430](https://github.com/kubernetes/kubernetes/pull/98430), [@liggitt](https://github.com/liggitt)) [SIG Network and Testing] + +## Dependencies + +### Added +_Nothing has changed._ + +### Changed +- github.com/google/cadvisor: [v0.37.3 → v0.37.4](https://github.com/google/cadvisor/compare/v0.37.3...v0.37.4) + +### Removed +_Nothing has changed._ + + + +# v1.19.7 + + +## Downloads for v1.19.7 + +### Source Code + +filename | sha512 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes.tar.gz) | c073db59462f36e9e57ba8676e6f3472dec44cedb74b4c4be726524d954f871f1b603b4e636e83e2a2017de8bfbb631e1cc5a258e54585d30f7af34e7e7f7e32 +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-src.tar.gz) | ac033dffa72cb28b833b0549058771e3802332a2d8648e9dfcfdbe2defd033070b677272c2a46c6dee2523687c40721cfd48b2e8099540fed8bd979d99f72b85 + +### Client binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-client-darwin-amd64.tar.gz) | 037a74331e267c3fa02ec118d9f108e7c34088b5003934a8317e1eb82f653fffc40ba70a1ed9dc61b6b35155bd395dae4e7f517b3a47bfb8bde90ef7b436453b +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-client-linux-386.tar.gz) | 9bddf106a5035cf7450899bfd86b16ec2408da5d06bc82cc916c6ade9c35757da503f947a32b05ca535de21e024d1815fb330523fd2c016de1ab3789c3adbb09 +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-client-linux-amd64.tar.gz) | 8c9606088b91e02bcfe3dd2f26357cd3d2acd1d46b41301cf5247c7e8365e9acacfa3bfecc1865bc7459425beaeb38c8991365ae3c03d3522f1695c2b775ab20 +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-client-linux-arm.tar.gz) | 7e13b4b9e8e7388af86db476049c8e4d345acdcf7e94ca234fe9d2f19ba56ef0d52bf7716b1cb647db3b4bec4f996eedb7d6d5e89894b5f79713444e5e1988f4 +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-client-linux-arm64.tar.gz) | c29f5799f84996fa235b48e2273e9949178e4372cf38e766fdc4f0b87318468765d0c175b4f1d836ef108e4ad1dd6d6d66188692173b2c061be514a313352f1e +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-client-linux-ppc64le.tar.gz) | 760aa4df9ce366f69afd6da5d426dee8ad118de4eb293670549e567bb8412f463ae8204f6896503f2aa57beebd577f72a0a4359be33835d561a1f1ebf30f0d16 +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-client-linux-s390x.tar.gz) | c6161992444e4ad059e0cb8593245d0d8757a97d2a136104497df5141d1faaaff65cb43ab760b08da8b6668334076e1f33dcbdc3e56a87e602b842ff4c7c5fc1 +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-client-windows-386.tar.gz) | ba31f39d0e4efc11a5d40169f6b24762334e3dba1dcc406a173967a8042edefb1fb3c0f09b91cc021938b8778cadc83ae2a22710f643be807794a039f4d7ed22 +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-client-windows-amd64.tar.gz) | def2e28f82e84783b2c67d5defcd4e2cc9ab919710ae2eea6d7c12fd81f7c12266b263600b0ea4390fec7d09c5d96e98784f187362471ad21467f6d558a6dc1c + +### Server binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-server-linux-amd64.tar.gz) | 1164b701494072f7d33edb4489d4697ffc93107ef8389dfdfbc9ab524f636dcf948a5d36e676cd1f9502b26ad36a0e33700a94a2341a134b2304571c2f47aa89 +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-server-linux-arm.tar.gz) | a245d6389040a800181a1fa72fc1184ecb0959916ac764e4583237cdb96a3211ea615e0366668d1fff69cc3e2887d56929026b271ca599196a6a39fcdbb0a4da +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-server-linux-arm64.tar.gz) | bc1f2d9d0d4d06067f2272fcd3e67f5674c49751d46a3d682815dda20b1a9c608085075a71472cd85c232c241521b87352c553e703aef40a8f65bd3617b5c892 +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-server-linux-ppc64le.tar.gz) | 09676a4af0ca2d49bf326780843dcd0b8173ba97f1a296475b36217f03663ccdc6e06825e2b4b492568de356e9215dbc1c764ee4dd4d9303c40963d6630275c6 +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-server-linux-s390x.tar.gz) | e66927689e40444d731097c5d49e5d9001b77a5ee18dfeb94c639a7fa7fd54e80c580f076336d357b7cd356c6b3cf30fc12e7184e433fa906b19696b962b2178 + +### Node binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-node-linux-amd64.tar.gz) | 919b7420aa5b3e7306b3f267ef158587d00894cbe2434699c020d5968479dff5232ee129cfabb79aab85a755f43b7529336c46226c91c3079f55a90c053c5218 +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-node-linux-arm.tar.gz) | 469bed7cb022164a90687d09d90f008763e69e232d7d638a23f27411769a4b58ad8e99d23ee7b3c622aeaa22aa04dd04a40c30267aab5a9052ecb2168c2a770e +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-node-linux-arm64.tar.gz) | f595fd94acc6800857b1feec753fe51d6a072caaf3a4f5c4e93fec884ffe453e22244154f1d869c6a62ba8125977b780974dd4bc2ed4d0d827c18d7b585db6c2 +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-node-linux-ppc64le.tar.gz) | 46fb0e05c17759876e5cf16d535ddcb4dac9c51011872253dd09c6376ea1fc022ea4bab7a057ebb14df1fc245e75f008664b4adc35169648d535c2801bc4ba75 +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-node-linux-s390x.tar.gz) | aa6952d09131db46c835f31d3e743a509dad07bf26b83a890cbaca332d8f5865cb8d4de91bb69fec2173673fd56c43c95f41a12c0c79cfdf672da5e982f48ea8 +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.7/kubernetes-node-windows-amd64.tar.gz) | b6f0c21525f9bba2163d66c35f2fdbbdf44382063a9280d886abf289dfc6a2513533b55696aff2af847edad5dba035cdba7328c1be3099038ae42679f1b0eb3c + +## Changelog since v1.19.6 + +## Changes by Kind + +### Bug or Regression + +- Fix Azure file share not deleted issue when the namespace is deleted ([#97417](https://github.com/kubernetes/kubernetes/pull/97417), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Fix counting error in service/nodeport/loadbalancer quota check ([#97828](https://github.com/kubernetes/kubernetes/pull/97828), [@pacoxu](https://github.com/pacoxu)) [SIG API Machinery and Network] +- Fix missing cadvisor machine metrics. ([#97006](https://github.com/kubernetes/kubernetes/pull/97006), [@lingsamuel](https://github.com/lingsamuel)) [SIG Node] +- Fix: azure file latency issue for metadata-heavy workloads ([#97082](https://github.com/kubernetes/kubernetes/pull/97082), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Fixed bug in CPUManager with race on container map access ([#97427](https://github.com/kubernetes/kubernetes/pull/97427), [@klueska](https://github.com/klueska)) [SIG Node] +- GCE Internal LoadBalancer sync loop will now release the ILB IP address upon sync failure. An error in ILB forwarding rule creation will no longer leak IP addresses. ([#97740](https://github.com/kubernetes/kubernetes/pull/97740), [@prameshj](https://github.com/prameshj)) [SIG Cloud Provider and Network] +- Kubeadm: avoid detection of the container runtime for commands that do not need it ([#97848](https://github.com/kubernetes/kubernetes/pull/97848), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle] + +## Dependencies + +### Added +_Nothing has changed._ + +### Changed +_Nothing has changed._ + +### Removed +_Nothing has changed._ + + + +# v1.19.6 + + +## Downloads for v1.19.6 + +### Source Code + +filename | sha512 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes.tar.gz) | f5a137b6d023699e75c7569fa713742f71b9284bc8b612e55b1e00ae697be18d44eac24b781c3fa1a4bacdd8c0d39fc9a617182f5dff4e5803e97647d5b268ff +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-src.tar.gz) | 1f3e7070d8b1860dcb26f8ed3aa0a4d2041251463c9325f1430185310ee551f33fb55344130520dfa9c1c0059920a1872dd1044de89a3ec6fc76dd190b2bee41 + +### Client binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-client-darwin-amd64.tar.gz) | 9ff7ba681dd8e29161099ae1a59957b86c61cc963ef4eca944b75fd56ae3930bbf66f9194f17f0a082b9f006a7a1653ca37d96cc19ec7fba615f010066e9db57 +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-client-linux-386.tar.gz) | 0cee35ed2d360f599248cd2bf83bcf7660e507d45281aae1d8d21b78a4a2b769686d156ad5d9639debfc8adca8b081109b55f5dc7bad9d770e7e7eba3ab73ac4 +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-client-linux-amd64.tar.gz) | 89105850409f55f6ee29185f17dce4fcabf6b646a42a38cf9339c21d5113e950e0f032ff533116054ee743a65cc097184e18bd970733696b77745db9baf789ed +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-client-linux-arm.tar.gz) | 64bc8312bd3d46cd48d44b5b8ddd965061a92487c0011a0628592b8d238b8ca13a7c39fb85c5b9b9c59c4d116eff8ad86364a621eb513cbd269ddaaf816e4c5d +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-client-linux-arm64.tar.gz) | a363e86843924de559c9e69a7396074d57d1df0a05b4f5ba48b0466801fef6954712db187f4aa9006dbc1623b9e3f1fcd63123b74f19965ef08dc40caf1bec74 +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-client-linux-ppc64le.tar.gz) | a1deea76ca396aeb99e045ee2cc52c15ac51c0dcebc56ee8a091123d19e149893558536eecf05c5030ebd56f403234cb7a379f34b9979ef878da76f78b06edf3 +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-client-linux-s390x.tar.gz) | fef20e9184c3441cd1a26d3ed69d4b7dc5749025c4df7f03ec87ada56a932d9543abcb4738a818b784f4c3c5860616b78f274e514a0791675bf94d7b86ba3f41 +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-client-windows-386.tar.gz) | 024185fbea43431d1af3a7974c1437fa53fb84af0701796a43da8662d431b413d826fea0a3bd28116f835f12c3a13031323102340e75ae4bd283ba4ada9ae206 +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-client-windows-amd64.tar.gz) | 1b415b9838adce0df4caef73bffdc76e41ea71d65404c333e605b6b691d1ccbab9b9d6b9cebf15d97f8a8d9181ec8c31daafde90c11b6e884d3a53fec272064b + +### Server binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-server-linux-amd64.tar.gz) | 126f6ab16d9e007ff75c58fab20fbaf4c6ff16212b8bbf5e71105f0f3611867ad1410ee05cd39b4e4e6cb3b6313fcff4b12ec91fa430b38f29d72221dda8c624 +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-server-linux-arm.tar.gz) | 49212bdd65119efc2bbac9bb652ac3cca56f27d1096ca195d620c0ec9ada4f49b49aa537878cd48f97a31f732af9cf19ae6c1bffbdd8464691fd246c0770840b +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-server-linux-arm64.tar.gz) | 836a5e5f36162ae8df95cc9d4c3e53e7450f90106517b1067cdad58c03dfe1dcbd1b259c29bd29e96f71c1cf86596a92d8c8a7ec651ee66392c707c41c7ce597 +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-server-linux-ppc64le.tar.gz) | 967f89cbaa868f1271db0e7560605885c8ad9fd986daaa15a193e303c464614675aec4997b3d6745b5fba2bbadb567772ecf20a74dbdb64f6b949fc6d22de76b +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-server-linux-s390x.tar.gz) | 47454601315d25ac039afa36b1119f98b2242bc968c1735358028c872c9d7a9bd60de8eb1f937412512a6d4398adafd8aa85c8f4163251075a9bf2f3d7d4bc49 + +### Node binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-node-linux-amd64.tar.gz) | 52cd9c9e69b4203d3901124725f5e95635d8356fd39eed9278e39e174fb91d1aae84704bf51e6b6ed1158b37dbffc49bb9e620ff80238f5a76d7252947754e1c +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-node-linux-arm.tar.gz) | 74735b5528b8d229d0b08014981adc3b5be6e46c5de869405e69f669721d00cdf8b1f608aac872d21841ca0e3fe12ef4c5fd6b793e3fb53ade397ca40ac19c71 +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-node-linux-arm64.tar.gz) | 1f0ecd704e16b11d87c3fa5e8f4f23a87647a2f72cce64b646be444a88d781225c6ab49b049bb4b3b19300dc9ac70f3be85538b9beea43e376a044258d1e341a +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-node-linux-ppc64le.tar.gz) | 58e690b9801ad62ddeaf90b4daf085f8e5417a7ca099d7f6bb0682eabe7d18c21c2af47cbe33853eff18e0f296baa992785df78f64f7d12a8ea027b605a57562 +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-node-linux-s390x.tar.gz) | 2f3afca1bf845d23d5cd376484e130aaa1668b368e0570690c274aed4fa547b2d99797d7d861f5b2d84861617a53f1c313a391f7b8df8a876d7e6b383d2684cb +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.6/kubernetes-node-windows-amd64.tar.gz) | 4d9610da600adc851cd5c08d08795e32cf14e715df3e5df45a9141f33ef756c54e8d4809a86b89c394a923068820a5500009d1081b7a8500ebe4f7d99ce83cfc + +## Changelog since v1.19.5 + +## Changes by Kind + +### Feature + +- Kubernetes is now built using go1.15.5 + - build: Update to k/repo-infra@v0.1.3 (supports go1.15.5) ([#97246](https://github.com/kubernetes/kubernetes/pull/97246), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Release and Testing] + +### Bug or Regression + +- AcceleratorStats will be available in the Summary API of kubelet when cri_stats_provider is used. ([#97017](https://github.com/kubernetes/kubernetes/pull/97017), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) [SIG Node] +- Exposes and sets a default timeout for the SubjectAccessReview client for DelegatingAuthorizationOptions ([#95910](https://github.com/kubernetes/kubernetes/pull/95910), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Cloud Provider] +- Fix the panic when kubelet registers if a node object already exists with no Status.Capacity or Status.Allocatable ([#96297](https://github.com/kubernetes/kubernetes/pull/96297), [@SataQiu](https://github.com/SataQiu)) [SIG Node] +- Fixed FibreChannel volume plugin corrupting filesystems on detach of multipath volumes. ([#97013](https://github.com/kubernetes/kubernetes/pull/97013), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] +- Fixed a bug in kubelet that will saturate CPU utilization after containerd got restarted. ([#97176](https://github.com/kubernetes/kubernetes/pull/97176), [@hanlins](https://github.com/hanlins)) [SIG Node] +- Remove ready file and its directory (which is created during volume SetUp) during emptyDir volume TearDown. ([#95770](https://github.com/kubernetes/kubernetes/pull/95770), [@jingxu97](https://github.com/jingxu97)) [SIG Storage] +- Volumebinding: report UnschedulableAndUnresolvable status instead of an error when PVC not found ([#96850](https://github.com/kubernetes/kubernetes/pull/96850), [@cofyc](https://github.com/cofyc)) [SIG Scheduling and Storage] + +### Other (Cleanup or Flake) + +- Client-go header logging (at verbosity levels >= 9) now masks `Authorization` header contents ([#95316](https://github.com/kubernetes/kubernetes/pull/95316), [@sfowl](https://github.com/sfowl)) [SIG API Machinery] + +## Dependencies + +### Added +_Nothing has changed._ + +### Changed +- github.com/google/cadvisor: [v0.37.2 → v0.37.3](https://github.com/google/cadvisor/compare/v0.37.2...v0.37.3) + +### Removed +_Nothing has changed._ + + + +# v1.19.5 + + +## Downloads for v1.19.5 + +### Source Code + +filename | sha512 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes.tar.gz) | 9f4e7d2cc7f608859fa50ae473e0e446599035d3b7bc9b5bc43baef776c5333a46496220082ed4c690dcaf15d2aecaad6dddb055a91c6358d9fa34ccdd25a741 +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-src.tar.gz) | a4ba613ada12818b93cf70f463521a7651041117c83e5f41108f79782ead1e4a20e928544ad24f2425d632b76b825144ee7724b13f4c69ea5b26fc8dc4b32d84 + +### Client binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-client-darwin-amd64.tar.gz) | 6005ce690c2dd11618ab5d5665963aed705741ab5aec50738c1296b0ba2408c751615bdcc7f2de683dc82d0a856a66af53d09c826ade1f7ba8408a58c9df3bf5 +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-client-linux-386.tar.gz) | 8fd98b021de6414d7d225b819545ecf59b8610be5e57b732b1f5ce4cfc27f985d6d411deec588cd8633ae3b438ca873e29d90d62ff771e52c908ed89be364967 +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-client-linux-amd64.tar.gz) | 185c67561c11651a076a46ade8659d9079d38fd0a585e4b5a9a1e8c4b701c22ba952e7a50d54f1b073e37f1fd96a0071cd758e6a1dafacab68f303069124c831 +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-client-linux-arm.tar.gz) | d73c77c4a17bbc5fd536bec0a6dc0c1cd4d4ae17d6a0ef3cfbd2801876b02c2d197bb8a019e3d10adb77545e9f5984c6d0b6246d9774b1d5761ce6b957fe6577 +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-client-linux-arm64.tar.gz) | 702b038836632014d143f586fd87b7a6b0f5821ca0181c3efd295dce3fad49d91396df60ab746c6b81d0f876b44f44e2ab961fe6582a6d9f81ae76573417fb6a +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-client-linux-ppc64le.tar.gz) | a91187aeeccf1b06f241758feca5b99c52885dcb93c1f53047d502a7b5fc0a0f082123e7d7690a76c28e8fd74b7e870920f4c78e875ed5f09da98f84e4deec8c +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-client-linux-s390x.tar.gz) | 1b91d1bd28ac6063b8fba47f0ce84b350a50fdbaa70fb21da64b8dc9114ce5dd7b39f1ec3f347f6f81624c8b0ddb4f2326de69334921e0e20a45f3a6467f0e79 +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-client-windows-386.tar.gz) | 332c7fadbafb6dac757d0d5174dd7451bbff5d4db5dee1b69534e05543b332d11bbe7db36eee7395733e0c2bb23cbb7de790604cfa71ee249760c2cde8adc85e +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-client-windows-amd64.tar.gz) | 279ebb7594cfcce7c35d49db9c2b96e7bce708b199d7c47f6206587c13082f3f331052d67fc512e64000fd865c91726f2856844e8bf65082b6d56c23308ee43e + +### Server binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-server-linux-amd64.tar.gz) | a86feb6f1904c105451eec8d54908ad403b8efa565db24f18b8cd6371d39f534d67a575a69fa890dca07e5a306e0bc4d5bb76a8241897ebe5e458636948b7622 +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-server-linux-arm.tar.gz) | a757ad831a05561ef42bba9861baada27545321acb151811dba0af4c7a13d3537a54dbb59a74e8e38eec9c4b7c2976bf2166f756d20a0ae81902adeba34a29f9 +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-server-linux-arm64.tar.gz) | 79d9644918c36136663eac1970f5a56fcac45b53718c460eca60cd25e0bed687616ca1e0a2bb089af1e26626fff499fa433d7093e0705887346a17ad0605405a +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-server-linux-ppc64le.tar.gz) | 71cfa89200b51a025e5ba074443ec5fff1681298c608c315cebb587b4531096fc4c57ffb4e0922da2ff69afc12141bed1aee6d289a8a555f8564137a4cd15e1f +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-server-linux-s390x.tar.gz) | a4caf2dbf93979b1913af06e0e1c06b9f529d2ca6b0c595ede4a37aa756b5df2b2b2f85de081b35e2420da38ffe1a9021abec39d1cdf23a33d623b64ad687263 + +### Node binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-node-linux-amd64.tar.gz) | 596bf48ce5d710663d30266d9925ed7f36e5c1c3ab8a6aac729bf4aacdbeaf2d77c1962e298f3a7cd06cfc8071205e2514a2b94bcbf215e22dbe623658490508 +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-node-linux-arm.tar.gz) | 9af3b048ab25cb19e303f189ed56c7fd767e74019c8ce3ddbb513fc8d71960ac225a7c56e34f5a6f92d27b99c19d7c92e4b594a5a71fca9b13b80890307c8576 +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-node-linux-arm64.tar.gz) | e11d6bab63478b47e6c84964463c292ddc26924c2b9fd66e25042aa73101e4a44f24e66ef689d2eb4ec7cdf14175a7ecf37622af83a502daa4e8edd070bb5d1e +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-node-linux-ppc64le.tar.gz) | 3f3f926996d423d7ca1e45ed4154c072cd24057a9da0890954f91a60952e82e952e1ffd0baedf01db050c5f9cc56acd6d7a38dd7771682397720953c3a452b93 +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-node-linux-s390x.tar.gz) | cb053789568e149f332eb58d2400f051bf9afc4681eb983cc4152557ac2712e5bbcb0a3eb72a82aa1d03422d54cea88febc97a88325999d61ab3baef2c1546dc +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.5/kubernetes-node-windows-amd64.tar.gz) | 1de0df9fd99abbef688261fc093bf5f277d29dc0b3b0d906d38e7e579d5bb99adeb69f066ab5c47e57a20ffcb22621e77902617034346e103c0c478d20f49222 + +## Changelog since v1.19.4 + +## Changes by Kind + +### Feature + +- Add a new flag to set priority for the kubelet on Windows nodes so that workloads cannot overwhelm the node there by disrupting kubelet process. ([#96157](https://github.com/kubernetes/kubernetes/pull/96157), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Node and Windows] + +### Failing Test + +- Resolves an issue running Ingress conformance tests on clusters which use finalizers on Ingress objects to manage releasing load balancer resources ([#96742](https://github.com/kubernetes/kubernetes/pull/96742), [@spencerhance](https://github.com/spencerhance)) [SIG Network and Testing] + +### Bug or Regression + +- Bump node-problem-detector version to v0.8.5 to fix OOM detection in with Linux kernels 5.1+ ([#96716](https://github.com/kubernetes/kubernetes/pull/96716), [@tosi3k](https://github.com/tosi3k)) [SIG Cloud Provider, Scalability and Testing] +- Exposes and sets a default timeout for the SubjectAccessReview client for DelegatingAuthorizationOptions ([#95910](https://github.com/kubernetes/kubernetes/pull/95910), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Cloud Provider] +- Fix a bug that DefaultPreemption plugin is disabled when using (legacy) scheduler policy. ([#96472](https://github.com/kubernetes/kubernetes/pull/96472), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing] +- Fix bug in JSON path parser where an error occurs when a range is empty ([#95933](https://github.com/kubernetes/kubernetes/pull/95933), [@brianpursley](https://github.com/brianpursley)) [SIG API Machinery] +- Fix memory leak in kube-apiserver when underlying time goes forth and back. ([#96266](https://github.com/kubernetes/kubernetes/pull/96266), [@chenyw1990](https://github.com/chenyw1990)) [SIG API Machinery] +- Fix pull image error from multiple ACRs using azure managed identity ([#96355](https://github.com/kubernetes/kubernetes/pull/96355), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix: resize Azure disk issue when it's in attached state ([#96705](https://github.com/kubernetes/kubernetes/pull/96705), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fixed a bug that prevents kubectl to validate CRDs with schema using x-kubernetes-preserve-unknown-fields on object fields. + Fix kubectl SchemaError on CRDs with schema using x-kubernetes-preserve-unknown-fields on array types. ([#96562](https://github.com/kubernetes/kubernetes/pull/96562), [@gautierdelorme](https://github.com/gautierdelorme)) [SIG API Machinery and Testing] +- Fixes an issue with the max-in-flight API server filter where the filter could take a long time to process an incoming request if it had been a long time since the last request. ([#96282](https://github.com/kubernetes/kubernetes/pull/96282), [@staebler](https://github.com/staebler)) [SIG API Machinery] +- HTTP/2 connection health check is enabled by default in all Kubernetes clients. The feature should work out-of-the-box. If needed, users can tune the feature via the HTTP2_READ_IDLE_TIMEOUT_SECONDS and HTTP2_PING_TIMEOUT_SECONDS environment variables. The feature is disabled if HTTP2_READ_IDLE_TIMEOUT_SECONDS is set to 0. ([#96778](https://github.com/kubernetes/kubernetes/pull/96778), [@caesarxuchao](https://github.com/caesarxuchao)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Node] +- Kubeadm: Fixes a kubeadm upgrade bug that could cause a custom CoreDNS configuration to be replaced with the default. ([#97016](https://github.com/kubernetes/kubernetes/pull/97016), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle] +- Kubeadm: fix coredns migration should be triggered when there are newdefault configs during kubeadm upgrade ([#96970](https://github.com/kubernetes/kubernetes/pull/96970), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle] +- Metric names for CSI and flexvolume drivers will include the driver name as well as the CSI plugin name. ([#96477](https://github.com/kubernetes/kubernetes/pull/96477), [@mattcary](https://github.com/mattcary)) [SIG Instrumentation and Storage] +- New Azure instance types do now have correct max data disk count information. ([#94340](https://github.com/kubernetes/kubernetes/pull/94340), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Cloud Provider and Storage] +- Resolves a regression in 1.19+ with workloads targeting deprecated beta os/arch labels getting stuck in NodeAffinity status on node startup. ([#96810](https://github.com/kubernetes/kubernetes/pull/96810), [@liggitt](https://github.com/liggitt)) [SIG Node] +- Volume binding: report UnschedulableAndUnresolvable status instead of an error when bound PVs not found ([#96291](https://github.com/kubernetes/kubernetes/pull/96291), [@cofyc](https://github.com/cofyc)) [SIG Apps, Scheduling and Storage] + +## Dependencies + +### Added +_Nothing has changed._ + +### Changed +- github.com/google/cadvisor: [v0.37.0 → v0.37.2](https://github.com/google/cadvisor/compare/v0.37.0...v0.37.2) +- golang.org/x/net: ab34263 → 69a7880 +- golang.org/x/sys: ed371f2 → 5cba982 + +### Removed +_Nothing has changed._ + + + +# v1.19.4 + + +## Downloads for v1.19.4 + +### Source Code + +filename | sha512 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes.tar.gz) | ddd4ef04975492c39a8ecb469c1d0ccf3c4321be2cd6d03e2d64e292e3e5b4ef5430ccd78c4495a93794f5268a1e09f8636778eba74939414831be60697218b4 +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-src.tar.gz) | ead6d115cc763b86388ddd3e0cbb5ceb6556478d562601beb5bc4ec7c432cfcf7e83e3b20c06532b6231e03efa483079779549e217b3172e4e648462a77f0e00 + +### Client binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-client-darwin-amd64.tar.gz) | 8529a8052466b642eba64f2ace3d2ea10689635c1b598c7ea822609ccdf1042f0f672b5c081d46f17a33554a4f776919f84bf25ec391466581e53efc3d9533b4 +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-client-linux-386.tar.gz) | 7334e42e4c8fec3b9b081dd2b2b58496cfc802c413546fd9013c75800d02b88688b0322d8e6586ea990bb31286b43f56ca24ff57cbe53624190500e94ba85414 +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-client-linux-amd64.tar.gz) | 7e65358a19b4eabfbbf886061098d7edc1268ab59a3e0f813a264ff525bed8c76f4f0bd5bcb151d8a05dcb1b2f25d874e2346d448725e701614439a27f960079 +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-client-linux-arm.tar.gz) | 07bbef417d97b6f7abf82dc421c0caad7662d4f63d524e20bb39eb0b73d9dea539886dea273160153a7b8ec871d5710884a46a368a316ec79bbe5c00593f1448 +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-client-linux-arm64.tar.gz) | 5097fc45eff3bf9d83443f7bf4e96b28b9f5836770bba8cf9a08b0278306d91b1b1a83f9c4d8808db6c1242357cc42043116f508499b256d578f972193cb5911 +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-client-linux-ppc64le.tar.gz) | 93157ffa9ca39d46c54573914400e65ebd79fb10b0e638e1793958c68f413a3f7bfe2791fe9eaa5cc5ff440833f9f94009c54e5622accc1e392c94054779b7b6 +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-client-linux-s390x.tar.gz) | 0ef55f8461c66df50b7dc208d2e109787c3badb0d400700f823f6c55f37344bb4e78f15006eadd8b269e296a2cdfff045a49a3d2e715fa4a17e429aba1ba1c1c +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-client-windows-386.tar.gz) | 60b25d5a78bb1ecb00b6ab756a68730b533e580e62b3a30ca9126a392c25990291d71b367db2768dd53a9738498b4781b0c9534228f635e1cbbb9362f792f51c +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-client-windows-amd64.tar.gz) | df81925afab37ef5f106b401a0f0a54f3f6fdc1dde1e7e0f5a49e335cfd92d3fba07289df9eac09c3972890192d85a5f279777a9f02d175d75c5d1c85eca8ab4 + +### Server binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-server-linux-amd64.tar.gz) | fc9de14121af682af167ef99ce8a3803c25e92ef4739ed7eb592eadb30086b2cb9ede51d57816d1c3835f6202753d726eba804b839ae9cd516eff4e94c81c189 +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-server-linux-arm.tar.gz) | f18432d7bcaa3624c1b08e2c6a7c01dbf09eff4f6345e2610ecc5cd6cfd7abe3eaf570d8a02db0b0e06355705b435309eff7d15b23094383974916a8aeb33a96 +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-server-linux-arm64.tar.gz) | 84c717ee35584c34f68653579b46ec69d9d6737b6d2a654870c1855813ef3eef858bc9499feee85558095703acebb09a7386491a0cafe70fc6c6c4acf603e064 +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-server-linux-ppc64le.tar.gz) | 68ac30c0b5a7e5262e42be0e373f3a86de40d5b9ff1a3f5fc6302ce3e1d5bf6619dbeaef7dc36632854e3241c5d11b85450e619e75baf01709e4cc94544783b9 +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-server-linux-s390x.tar.gz) | dd794887a5f42a37ebaa9d36b9377880a3daffd4fac8617dd221c0c551439bcb94c13697c9292458eb0797b142e752b22b3182212ecb1b8d80e9f1918cc72e7b + +### Node binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-node-linux-amd64.tar.gz) | 6ce43d84df8b983c9294b05c7d2cbd2ec1286c2055e5719de983b4b85e95dcb1adb4baa5269a2ee3e392e3ace093b22c409fade113057a2af01d3ab50c660806 +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-node-linux-arm.tar.gz) | f7ee10926074061e1132db7f6e5aa29b1c98e51b9327fd1d046ca3ac0556288edf73dd06da0009c107cc25a3103f6642d347183f0abe210a3193b488bc6f4b12 +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-node-linux-arm64.tar.gz) | 55882683ec94628770e8744317fb0719f394b026728a0efbb608b39fdefb60d290f550580be1e24b4bf001de4ccd3e0ae1faa7b73e02355473384124f1857d29 +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-node-linux-ppc64le.tar.gz) | 3aa9dc9decd5bfa67c9cf6cae27061ead769d18f7918d2ce6db51efa5dfe0a7dfef93415d2578bc6e6693ff3da6e22e32decb1e27b7dba52744e800c040aa690 +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-node-linux-s390x.tar.gz) | 7c160cfb2ed1b15808c1b27fee85c125fc96809c7cd283bd982b7513bcdc1a19ae39cdd946bf637d83982bdc82de90f4e81b3ebbdf076e1696532c04e60d2cdc +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.19.4/kubernetes-node-windows-amd64.tar.gz) | 403fe541e01d45628aac943af6e5df14316391d91c0afdac731b6e21377afeae220de016e0073a2285c1ed6280ead67c46da0e9da47ca2363c58127d62612262 + +## Changelog since v1.19.3 + +## Changes by Kind + +### Bug or Regression + +- An issues preventing volume expand controller to annotate the PVC with `volume.kubernetes.io/storage-resizer` when the PVC StorageClass is already updated to the out-of-tree provisioner is now fixed. ([#94489](https://github.com/kubernetes/kubernetes/pull/94489), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG API Machinery, Apps and Storage] +- Cloud node controller: handle empty providerID from getProviderID ([#95452](https://github.com/kubernetes/kubernetes/pull/95452), [@nicolehanjing](https://github.com/nicolehanjing)) [SIG Cloud Provider] +- Disable watchcache for events ([#96052](https://github.com/kubernetes/kubernetes/pull/96052), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery] +- Disabled `LocalStorageCapacityIsolation` feature gate is honored during scheduling. ([#96140](https://github.com/kubernetes/kubernetes/pull/96140), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] +- Fix a bug that Pods with topologySpreadConstraints get scheduled to nodes without required labels. ([#95880](https://github.com/kubernetes/kubernetes/pull/95880), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Scheduling] +- Fix azure disk attach failure for disk size bigger than 4TB ([#95463](https://github.com/kubernetes/kubernetes/pull/95463), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix azure disk data loss issue on Windows when unmount disk ([#95456](https://github.com/kubernetes/kubernetes/pull/95456), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Fixed a bug causing incorrect formatting of `kubectl describe ingress`. ([#94985](https://github.com/kubernetes/kubernetes/pull/94985), [@howardjohn](https://github.com/howardjohn)) [SIG CLI and Network] +- Fixed a bug in client-go where new clients with customized `Dial`, `Proxy`, `GetCert` config may get stale HTTP transports. ([#95427](https://github.com/kubernetes/kubernetes/pull/95427), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery] +- Fixed a regression which prevented pods with `docker/default` seccomp annotations from being created in 1.19 if a PodSecurityPolicy was in place which did not allow `runtime/default` seccomp profiles. ([#95990](https://github.com/kubernetes/kubernetes/pull/95990), [@saschagrunert](https://github.com/saschagrunert)) [SIG Auth] +- Fixed kubelet creating extra sandbox for pods with RestartPolicyOnFailure after all containers succeeded ([#92614](https://github.com/kubernetes/kubernetes/pull/92614), [@tnqn](https://github.com/tnqn)) [SIG Node and Testing] +- Fixes high CPU usage in kubectl drain ([#95260](https://github.com/kubernetes/kubernetes/pull/95260), [@amandahla](https://github.com/amandahla)) [SIG CLI] +- If we set SelectPolicy MinPolicySelect on scaleUp behavior or scaleDown behavior,Horizontal Pod Autoscaler doesn't automatically scale the number of pods correctly ([#95647](https://github.com/kubernetes/kubernetes/pull/95647), [@JoshuaAndrew](https://github.com/JoshuaAndrew)) [SIG Apps and Autoscaling] +- Kube-proxy now trims extra spaces found in loadBalancerSourceRanges to match Service validation. ([#94107](https://github.com/kubernetes/kubernetes/pull/94107), [@robscott](https://github.com/robscott)) [SIG Network] +- Kubeadm: add missing "--experimental-patches" flag to "kubeadm init phase control-plane" ([#95786](https://github.com/kubernetes/kubernetes/pull/95786), [@Sh4d1](https://github.com/Sh4d1)) [SIG Cluster Lifecycle] + +## Dependencies + +### Added +_Nothing has changed._ + +### Changed +_Nothing has changed._ + +### Removed +_Nothing has changed._ + - # v1.19.3 @@ -316,7 +1159,7 @@ filename | sha512 hash - bazel: output go_binary rule directly from go_binary_conditional_pure - From: @mikedanese: + From: [@mikedanese](https://github.com/mikedanese): Instead of aliasing. Aliases are annoying in a number of ways. This is specifically bugging me now because they make the action graph harder to analyze programmatically. By using aliases here, we would need to handle @@ -340,7 +1183,7 @@ filename | sha512 hash - Do not fail sorting empty elements. ([#94666](https://github.com/kubernetes/kubernetes/pull/94666), [@soltysh](https://github.com/soltysh)) [SIG CLI] - Ensure getPrimaryInterfaceID not panic when network interfaces for Azure VMSS are null ([#94802](https://github.com/kubernetes/kubernetes/pull/94802), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] - Fix azure file migration panic ([#94853](https://github.com/kubernetes/kubernetes/pull/94853), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fix bug where loadbalancer deletion gets stuck because of missing resource group #75198 ([#93962](https://github.com/kubernetes/kubernetes/pull/93962), [@phiphi282](https://github.com/phiphi282)) [SIG Cloud Provider] +- Fix bug where loadbalancer deletion gets stuck because of missing resource group [#75198](https://github.com/kubernetes/kubernetes/issues/75198) ([#93962](https://github.com/kubernetes/kubernetes/pull/93962), [@phiphi282](https://github.com/phiphi282)) [SIG Cloud Provider] - Fix detach azure disk issue when vm not exist ([#95177](https://github.com/kubernetes/kubernetes/pull/95177), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] - Fix etcd_object_counts metric reported by kube-apiserver ([#94819](https://github.com/kubernetes/kubernetes/pull/94819), [@tkashem](https://github.com/tkashem)) [SIG API Machinery] - Fix network_programming_latency metric reporting for Endpoints/EndpointSlice deletions, where we don't have correct timestamp ([#95363](https://github.com/kubernetes/kubernetes/pull/95363), [@wojtek-t](https://github.com/wojtek-t)) [SIG Network and Scalability] @@ -525,7 +1368,7 @@ filename | sha512 hash - Fix a concurrent map writes error in kubelet ([#93773](https://github.com/kubernetes/kubernetes/pull/93773), [@knight42](https://github.com/knight42)) [SIG Node] - Fix a regression where kubeadm bails out with a fatal error when an optional version command line argument is supplied to the "kubeadm upgrade plan" command ([#94421](https://github.com/kubernetes/kubernetes/pull/94421), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] - Fixed bug in reflector that couldn't recover from "Too large resource version" errors with API servers 1.17.0-1.18.5 ([#94316](https://github.com/kubernetes/kubernetes/pull/94316), [@janeczku](https://github.com/janeczku)) [SIG API Machinery] -- Kubeadm: make the kubeconfig files for the kube-controller-manager and kube-scheduler use the LocalAPIEndpoint instead of the ControlPlaneEndpoint. This makes kubeadm clusters more reseliant to version skew problems during immutable upgrades: https://kubernetes.io/docs/setup/release/version-skew-policy/#kube-controller-manager-kube-scheduler-and-cloud-controller-manager ([#94398](https://github.com/kubernetes/kubernetes/pull/94398), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: make the kubeconfig files for the kube-controller-manager and kube-scheduler use the LocalAPIEndpoint instead of the ControlPlaneEndpoint. This makes kubeadm clusters more reseliant to version skew problems during immutable upgrades: https://kubernetes.io/docs/setup/release/version-skew-policy/#kube-controller-manager-kube-scheduler-and-cloud-controller-manager ([#94398](https://github.com/kubernetes/kubernetes/pull/94398), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] - Update default etcd server version to 3.4.13 ([#94536](https://github.com/kubernetes/kubernetes/pull/94536), [@jingyih](https://github.com/jingyih)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle and Testing] - Upon successful authorization check, an impersonated user is added to the system:authenticated group. system:anonymous when impersonated is added to the system:unauthenticated group. ([#94408](https://github.com/kubernetes/kubernetes/pull/94408), [@tkashem](https://github.com/tkashem)) [SIG API Machinery and Testing] @@ -555,6 +1398,8 @@ _Nothing has changed._ ## Downloads for v1.19.0 +### Source Code + filename | sha512 hash -------- | ----------- [kubernetes.tar.gz](https://dl.k8s.io/v1.19.0/kubernetes.tar.gz) | `448b941e973a519a500eb24786f6deb7eebd0e1ecb034941e382790ff69dfc2838715a222cfc53bea7b75f2c6aedc7425eded4aad69bf88773393155c737f9c0` @@ -738,13 +1583,13 @@ The new storage capacity tracking alpha feature is known to be affected by a lim - Upgrade kubescheduler.config.k8s.io/v1alpha2 to kubescheduler.config.k8s.io/v1beta1 - `.bindTimeoutSeconds` was moved as part of plugin args for `VolumeBinding`, - which can be configured separately per [profile](#profiles). + which can be configured separately per profile. - `.extenders` are updated to satisfy API standards. In particular: - `.extenders` decoding is case sensitive. All fields are affected. - `.extenders[*].httpTimeout` is of type `metav1.Duration`. - `.extenders[*].enableHttps` is renamed to `.extenders[*].enableHTTPS`. - `RequestedToCapacityRatio` args decoding is case sensitive. All fields are affected. - - `DefaultPodTopologySpread` [plugin](#scheduling-plugins) is renamed to `SelectorSpread`. + - `DefaultPodTopologySpread` plugin is renamed to `SelectorSpread`. - `Unreserve` extension point is removed from Profile definition. All `Reserve` plugins implement an `Unreserve` call. - `.disablePreemption` was removed. Users can disable preemption by disabling the @@ -785,7 +1630,7 @@ The new storage capacity tracking alpha feature is known to be affected by a lim ### API Change - A new alpha-level field, `SupportsFsGroup`, has been introduced for CSIDrivers to allow them to specify whether they support volume ownership and permission modifications. The `CSIVolumeSupportFSGroup` feature gate must be enabled to allow this field to be used. ([#92001](https://github.com/kubernetes/kubernetes/pull/92001), [@huffmanca](https://github.com/huffmanca)) [SIG API Machinery, CLI and Storage] -- Added pod version skew strategy for seccomp profile to synchronize the deprecated annotations with the new API Server fields. Please see the corresponding section [in the KEP](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/20190717-seccomp-ga.md#version-skew-strategy) for more detailed explanations. ([#91408](https://github.com/kubernetes/kubernetes/pull/91408), [@saschagrunert](https://github.com/saschagrunert)) [SIG Apps, Auth, CLI and Node] +- Added pod version skew strategy for seccomp profile to synchronize the deprecated annotations with the new API Server fields. Please see the corresponding section [in the KEP](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/135-seccomp/README.md#version-skew-strategy) for more detailed explanations. ([#91408](https://github.com/kubernetes/kubernetes/pull/91408), [@saschagrunert](https://github.com/saschagrunert)) [SIG Apps, Auth, CLI and Node] - Adds the ability to disable Accelerator/GPU metrics collected by Kubelet ([#91930](https://github.com/kubernetes/kubernetes/pull/91930), [@RenaudWasTaken](https://github.com/RenaudWasTaken)) [SIG Node] - Admission webhooks can now return warning messages that are surfaced to API clients, using the `.response.warnings` field in the admission review response. ([#92667](https://github.com/kubernetes/kubernetes/pull/92667), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Testing] - CertificateSigningRequest API conditions were updated: @@ -869,7 +1714,7 @@ The new storage capacity tracking alpha feature is known to be affected by a lim - A defaultpreemption plugin is registered and enabled in scheduler which replaces the legacy hard-coded Pod preemption logic. ([#92049](https://github.com/kubernetes/kubernetes/pull/92049), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing] - A new extension point `PostFilter` is introduced to scheduler framework which runs after Filter phase to resolve scheduling filter failures. A typical implementation is running preemption logic. ([#91314](https://github.com/kubernetes/kubernetes/pull/91314), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing] -- ACTION REQUIRED : In CoreDNS v1.7.0, [metrics names have been changed](https://github.com/coredns/coredns/blob/master/notes/coredns-1.7.0.md#metric-changes) which will be backward incompatible with existing reporting formulas that use the old metrics' names. Adjust your formulas to the new names before upgrading. +- ACTION REQUIRED : In CoreDNS v1.7.0, [metrics names have been changed](https://github.com/coredns/coredns/blob/master/notes/coredns-1.7.0.md#metric-changes) which will be backward incompatible with existing reporting formulas that use the old metrics' names. Adjust your formulas to the new names before upgrading. Kubeadm now includes CoreDNS version v1.7.0. Some of the major changes include: - Fixed a bug that could cause CoreDNS to stop updating service records. @@ -917,15 +1762,15 @@ The new storage capacity tracking alpha feature is known to be affected by a lim - Feat: change azure disk api-version ([#89250](https://github.com/kubernetes/kubernetes/pull/89250), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] - Feat: support [Azure shared disk](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/disks-shared-enable), added a new field(`maxShares`) in azure disk storage class: - kind: StorageClass - apiVersion: storage.k8s.io/v1 - metadata: - name: shared-disk - provisioner: kubernetes.io/azure-disk - parameters: - skuname: Premium_LRS # Currently only available with premium SSDs. - cachingMode: None # ReadOnly host caching is not available for premium SSDs with maxShares>1 - maxShares: 2 ([#89328](https://github.com/kubernetes/kubernetes/pull/89328), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] + - kind: StorageClass + - apiVersion: storage.k8s.io/v1 + - metadata: + - name: shared-disk + - provisioner: kubernetes.io/azure-disk + - parameters: + - skuname: Premium_LRS # Currently only available with premium SSDs. + - cachingMode: None # ReadOnly host caching is not available for premium SSDs with maxShares>1 + - maxShares: 2 ([#89328](https://github.com/kubernetes/kubernetes/pull/89328), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] - Improves IPVS proxy performance by only running `EnsureDummyInterface` if the virtual server address is not binded already. ([#92609](https://github.com/kubernetes/kubernetes/pull/92609), [@andrewsykim](https://github.com/andrewsykim)) [SIG Network] - Kube-Proxy now supports EndpointSlices on Windows with the EndpointSliceProxying feature gate. ([#90909](https://github.com/kubernetes/kubernetes/pull/90909), [@kumarvin123](https://github.com/kumarvin123)) [SIG Network and Windows] - Kube-Proxy now supports IPv6DualStack on Windows with the IPv6DualStack feature gate. ([#90853](https://github.com/kubernetes/kubernetes/pull/90853), [@kumarvin123](https://github.com/kumarvin123)) [SIG Network, Node and Windows] @@ -956,7 +1801,7 @@ The new storage capacity tracking alpha feature is known to be affected by a lim - Rename pod_preemption_metrics to preemption_metrics. ([#93256](https://github.com/kubernetes/kubernetes/pull/93256), [@ahg-g](https://github.com/ahg-g)) [SIG Instrumentation and Scheduling] - Rest.Config now supports a flag to override proxy configuration that was previously only configurable through environment variables. ([#81443](https://github.com/kubernetes/kubernetes/pull/81443), [@mikedanese](https://github.com/mikedanese)) [SIG API Machinery and Node] - Scores from PodTopologySpreading have reduced differentiation as maxSkew increases. ([#90820](https://github.com/kubernetes/kubernetes/pull/90820), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] -- Server-side apply behavior has been regularized in the case where a field is removed from the applied configuration. Removed fields which have no other owners are deleted from the live object, or reset to their default value if they have one. Safe ownership transfers, such as the transfer of a `replicas` field from a user to an HPA without resetting to the default value are documented in [Transferring Ownership](https://kubernetes.io/docs/reference/using-api/api-concepts/#transferring-ownership) ([#92661](https://github.com/kubernetes/kubernetes/pull/92661), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Testing] +- Server-side apply behavior has been regularized in the case where a field is removed from the applied configuration. Removed fields which have no other owners are deleted from the live object, or reset to their default value if they have one. Safe ownership transfers, such as the transfer of a `replicas` field from a user to an HPA without resetting to the default value are documented in [Transferring Ownership](https://kubernetes.io/docs/reference/using-api/api-concepts/#transferring-ownership) ([#92661](https://github.com/kubernetes/kubernetes/pull/92661), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Testing] - Service controller: only sync LB node pools when relevant fields in Node changes ([#90769](https://github.com/kubernetes/kubernetes/pull/90769), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps and Network] - Set CSIMigrationvSphere feature gates to beta. Users should enable CSIMigration + CSIMigrationvSphere features and install the vSphere CSI Driver (https://github.com/kubernetes-sigs/vsphere-csi-driver) to move workload from the in-tree vSphere plugin "kubernetes.io/vsphere-volume" to vSphere CSI Driver. @@ -1129,14 +1974,14 @@ The new storage capacity tracking alpha feature is known to be affected by a lim cm.NodeAllocatableRoot(s.CgroupRoot, s.CgroupDriver) kubeDeps.CAdvisorInterface, err = cadvisor.New(imageFsInfoProvider, s.RootDirectory, cgroupRoots, cadvisor.UsingLegacyCadvisorStats(s.ContainerRuntime, s.RemoteRuntimeEndpoint)) - the above funtion,as we use cgroupRoots to create cadvisor interface,the wrong parameter cgroupRoots will lead eviction manager not to collect metric from /docker, then kubelet frequently print those error: + the above function,as we use cgroupRoots to create cadvisor interface,the wrong parameter cgroupRoots will lead eviction manager not to collect metric from /docker, then kubelet frequently print those error: E0303 17:25:03.436781 63839 summary_sys_containers.go:47] Failed to get system container stats for "/docker": failed to get cgroup stats for "/docker": failed to get container info for "/docker": unknown container "/docker" E0303 17:25:03.436809 63839 helpers.go:680] eviction manager: failed to construct signal: "allocatableMemory.available" error: system container "pods" not found in metrics ([#88970](https://github.com/kubernetes/kubernetes/pull/88970), [@mysunshine92](https://github.com/mysunshine92)) [SIG Node] - In a HA env, during the period a standby scheduler lost connection to API server, if a Pod is deleted and recreated, and the standby scheduler becomes master afterwards, there could be a scheduler cache corruption. This PR fixes this issue. ([#91126](https://github.com/kubernetes/kubernetes/pull/91126), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] - In the kubelet resource metrics endpoint at /metrics/resource, change the names of the following metrics: - node_cpu_usage_seconds --> node_cpu_usage_seconds_total - container_cpu_usage_seconds --> container_cpu_usage_seconds_total - This is a partial revert of #86282, which was added in 1.18.0, and initially removed the _total suffix ([#89540](https://github.com/kubernetes/kubernetes/pull/89540), [@dashpole](https://github.com/dashpole)) [SIG Instrumentation and Node] + This is a partial revert of [#86282](https://github.com/kubernetes/kubernetes/pull/86282), which was added in 1.18.0, and initially removed the _total suffix ([#89540](https://github.com/kubernetes/kubernetes/pull/89540), [@dashpole](https://github.com/dashpole)) [SIG Instrumentation and Node] - Ipvs: only attempt setting of sysctlconnreuse on supported kernels ([#88541](https://github.com/kubernetes/kubernetes/pull/88541), [@cmluciano](https://github.com/cmluciano)) [SIG Network] - Jsonpath support in kubectl / client-go serializes complex types (maps / slices / structs) as json instead of Go-syntax. ([#89660](https://github.com/kubernetes/kubernetes/pull/89660), [@pjferrell](https://github.com/pjferrell)) [SIG API Machinery, CLI and Cluster Lifecycle] - Kube-aggregator certificates are dynamically loaded on change from disk ([#92791](https://github.com/kubernetes/kubernetes/pull/92791), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery] @@ -1235,7 +2080,6 @@ The new storage capacity tracking alpha feature is known to be affected by a lim - Kubeadm now forwards the IPv6DualStack feature gate using the kubelet component config, instead of the kubelet command line ([#90840](https://github.com/kubernetes/kubernetes/pull/90840), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] - Kubeadm: do not use a DaemonSet for the pre-pull of control-plane images during "kubeadm upgrade apply". Individual node upgrades now pull the required images using a preflight check. The flag "--image-pull-timeout" for "kubeadm upgrade apply" is now deprecated and will be removed in a future release following a GA deprecation policy. ([#90788](https://github.com/kubernetes/kubernetes/pull/90788), [@xlgao-zju](https://github.com/xlgao-zju)) [SIG Cluster Lifecycle] - Kubeadm: use two separate checks on /livez and /readyz for the kube-apiserver static Pod instead of using /healthz ([#90970](https://github.com/kubernetes/kubernetes/pull/90970), [@johscheuer](https://github.com/johscheuer)) [SIG Cluster Lifecycle] -- NONE ([#91597](https://github.com/kubernetes/kubernetes/pull/91597), [@elmiko](https://github.com/elmiko)) [SIG Autoscaling and Testing] - Openapi-controller: remove the trailing `1` character literal from the rate limiting metric `APIServiceOpenAPIAggregationControllerQueue1` and rename it to `open_api_aggregation_controller` to adhere to Prometheus best practices. ([#77979](https://github.com/kubernetes/kubernetes/pull/77979), [@s-urbaniak](https://github.com/s-urbaniak)) [SIG API Machinery] - Reduce event spam during a volume operation error. ([#89794](https://github.com/kubernetes/kubernetes/pull/89794), [@msau42](https://github.com/msau42)) [SIG Storage] - Refactor the local nodeipam range allocator and instrument the cidrset used to store the allocated CIDRs with the following metrics: @@ -2034,13 +2878,13 @@ filename | sha512 hash ### API Change -- Added pod version skew strategy for seccomp profile to synchronize the deprecated annotations with the new API Server fields. Please see the corresponding section [in the KEP](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/20190717-seccomp-ga.mdversion-skew-strategy) for more detailed explanations. ([#91408](https://github.com/kubernetes/kubernetes/pull/91408), [@saschagrunert](https://github.com/saschagrunert)) [SIG Apps, Auth, CLI and Node] +- Added pod version skew strategy for seccomp profile to synchronize the deprecated annotations with the new API Server fields. Please see the corresponding section [in the KEP](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/135-seccomp#version-skew-strategy) for more detailed explanations. ([#91408](https://github.com/kubernetes/kubernetes/pull/91408), [@saschagrunert](https://github.com/saschagrunert)) [SIG Apps, Auth, CLI and Node] - Custom Endpoints are now mirrored to EndpointSlices by a new EndpointSliceMirroring controller. ([#91637](https://github.com/kubernetes/kubernetes/pull/91637), [@robscott](https://github.com/robscott)) [SIG API Machinery, Apps, Auth, Cloud Provider, Instrumentation, Network and Testing] - Generic ephemeral volumes, a new alpha feature under the `GenericEphemeralVolume` feature gate, provide a more flexible alternative to `EmptyDir` volumes: as with `EmptyDir`, volumes are created and deleted for each pod automatically by Kubernetes. But because the normal provisioning process is used (`PersistentVolumeClaim`), storage can be provided by third-party storage vendors and all of the usual volume features work. Volumes don't need to be empt; for example, restoring from snapshot is supported. ([#92784](https://github.com/kubernetes/kubernetes/pull/92784), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Instrumentation, Node, Scheduling, Storage and Testing] ### Feature -- ACTION REQUIRED : In CoreDNS v1.7.0, [metrics names have been changed](https://github.com/coredns/coredns/blob/master/notes/coredns-1.7.0.md#metric-changes) which will be backward incompatible with existing reporting formulas that use the old metrics' names. Adjust your formulas to the new names before upgrading. +- ACTION REQUIRED : In CoreDNS v1.7.0, [metrics names have been changed](https://github.com/coredns/coredns/blob/master/notes/coredns-1.7.0.md#metric-changes) which will be backward incompatible with existing reporting formulas that use the old metrics' names. Adjust your formulas to the new names before upgrading. Kubeadm now includes CoreDNS version v1.7.0. Some of the major changes include: - Fixed a bug that could cause CoreDNS to stop updating service records. @@ -2053,7 +2897,7 @@ filename | sha512 hash - Audit events for API requests to deprecated API versions now include a `"k8s.io/deprecated": "true"` audit annotation. If a target removal release is identified, the audit event includes a `"k8s.io/removal-release": "."` audit annotation as well. ([#92842](https://github.com/kubernetes/kubernetes/pull/92842), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Instrumentation] - Cloud node-controller use InstancesV2 ([#91319](https://github.com/kubernetes/kubernetes/pull/91319), [@gongguan](https://github.com/gongguan)) [SIG Apps, Cloud Provider, Scalability and Storage] - Kubeadm: deprecate the "--csr-only" and "--csr-dir" flags of the "kubeadm init phase certs" subcommands. Please use "kubeadm alpha certs generate-csr" instead. This new command allows you to generate new private keys and certificate signing requests for all the control-plane components, so that the certificates can be signed by an external CA. ([#92183](https://github.com/kubernetes/kubernetes/pull/92183), [@wallrj](https://github.com/wallrj)) [SIG Cluster Lifecycle] -- Server-side apply behavior has been regularized in the case where a field is removed from the applied configuration. Removed fields which have no other owners are deleted from the live object, or reset to their default value if they have one. Safe ownership transfers, such as the transfer of a `replicas` field from a user to an HPA without resetting to the default value are documented in [Transferring Ownership](https://kubernetes.io/docs/reference/using-api/api-concepts/#transferring-ownership) ([#92661](https://github.com/kubernetes/kubernetes/pull/92661), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Testing] +- Server-side apply behavior has been regularized in the case where a field is removed from the applied configuration. Removed fields which have no other owners are deleted from the live object, or reset to their default value if they have one. Safe ownership transfers, such as the transfer of a `replicas` field from a user to an HPA without resetting to the default value are documented in [Transferring Ownership](https://kubernetes.io/docs/reference/using-api/api-concepts/#transferring-ownership) ([#92661](https://github.com/kubernetes/kubernetes/pull/92661), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Testing] - Set CSIMigrationvSphere feature gates to beta. Users should enable CSIMigration + CSIMigrationvSphere features and install the vSphere CSI Driver (https://github.com/kubernetes-sigs/vsphere-csi-driver) to move workload from the in-tree vSphere plugin "kubernetes.io/vsphere-volume" to vSphere CSI Driver. @@ -2388,7 +3232,6 @@ filename | sha512 hash - Kubeadm now forwards the IPv6DualStack feature gate using the kubelet component config, instead of the kubelet command line ([#90840](https://github.com/kubernetes/kubernetes/pull/90840), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] - Kubeadm: do not use a DaemonSet for the pre-pull of control-plane images during "kubeadm upgrade apply". Individual node upgrades now pull the required images using a preflight check. The flag "--image-pull-timeout" for "kubeadm upgrade apply" is now deprecated and will be removed in a future release following a GA deprecation policy. ([#90788](https://github.com/kubernetes/kubernetes/pull/90788), [@xlgao-zju](https://github.com/xlgao-zju)) [SIG Cluster Lifecycle] - Kubeadm: use two separate checks on /livez and /readyz for the kube-apiserver static Pod instead of using /healthz ([#90970](https://github.com/kubernetes/kubernetes/pull/90970), [@johscheuer](https://github.com/johscheuer)) [SIG Cluster Lifecycle] -- NONE ([#91597](https://github.com/kubernetes/kubernetes/pull/91597), [@elmiko](https://github.com/elmiko)) [SIG Autoscaling and Testing] - Remove deprecated --server-dry-run flag from kubectl apply ([#91308](https://github.com/kubernetes/kubernetes/pull/91308), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG CLI and Testing] - The "HostPath should give a volume the correct mode" is no longer a conformance test ([#90861](https://github.com/kubernetes/kubernetes/pull/90861), [@dims](https://github.com/dims)) [SIG Architecture and Testing] - The Kubelet's --experimental-mounter-path and --experimental-check-node-capabilities-before-mount options are now marked as deprecated. ([#91373](https://github.com/kubernetes/kubernetes/pull/91373), [@knabben](https://github.com/knabben)) [SIG Node] @@ -2650,6 +3493,8 @@ filename | sha512 hash ## Downloads for v1.19.0-alpha.3 +### Source Code + filename | sha512 hash -------- | ----------- [kubernetes.tar.gz](https://dl.k8s.io/v1.19.0-alpha.3/kubernetes.tar.gz) | `49df3a77453b759d3262be6883dd9018426666b4261313725017eed42da1bc8dd1af037ec6c11357a6360c0c32c2486490036e9e132c9026f491325ce353c84b` @@ -2750,7 +3595,6 @@ filename | sha512 hash - Drop some conformance tests that rely on Kubelet API directly ([#90615](https://github.com/kubernetes/kubernetes/pull/90615), [@dims](https://github.com/dims)) [SIG Architecture, Network, Release and Testing] - Kube-proxy exposes a new metric, `kubeproxy_sync_proxy_rules_last_queued_timestamp_seconds`, that indicates the last time a change for kube-proxy was queued to be applied. ([#90175](https://github.com/kubernetes/kubernetes/pull/90175), [@squeed](https://github.com/squeed)) [SIG Instrumentation and Network] - Kubeadm: fix badly formatted error message for small service CIDRs ([#90411](https://github.com/kubernetes/kubernetes/pull/90411), [@johscheuer](https://github.com/johscheuer)) [SIG Cluster Lifecycle] -- None. ([#90484](https://github.com/kubernetes/kubernetes/pull/90484), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] - Remove the repeated calculation of nodeName and hostname during kubelet startup, these parameters are all calculated in the `RunKubelet` method ([#90284](https://github.com/kubernetes/kubernetes/pull/90284), [@wawa0210](https://github.com/wawa0210)) [SIG Node] - UI change ([#87743](https://github.com/kubernetes/kubernetes/pull/87743), [@u2takey](https://github.com/u2takey)) [SIG Apps and Node] - Update opencontainers/runtime-spec dependency to v1.0.2 ([#89644](https://github.com/kubernetes/kubernetes/pull/89644), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node] @@ -2762,6 +3606,8 @@ filename | sha512 hash ## Downloads for v1.19.0-alpha.2 +### Source Code + filename | sha512 hash -------- | ----------- [kubernetes.tar.gz](https://dl.k8s.io/v1.19.0-alpha.2/kubernetes.tar.gz) | `a1106309d18a5d73882650f8a5cbd1f287436a0dc527136808e5e882f5e98d6b0d80029ff53abc0c06ac240f6b879167437f15906e5309248d536ec1675ed909` @@ -2873,7 +3719,7 @@ filename | sha512 hash - In the kubelet resource metrics endpoint at /metrics/resource, change the names of the following metrics: - node_cpu_usage_seconds --> node_cpu_usage_seconds_total - container_cpu_usage_seconds --> container_cpu_usage_seconds_total - This is a partial revert of #86282, which was added in 1.18.0, and initially removed the _total suffix ([#89540](https://github.com/kubernetes/kubernetes/pull/89540), [@dashpole](https://github.com/dashpole)) [SIG Instrumentation and Node] + This is a partial revert of [#86282](https://github.com/kubernetes/kubernetes/pull/86282), which was added in 1.18.0, and initially removed the _total suffix ([#89540](https://github.com/kubernetes/kubernetes/pull/89540), [@dashpole](https://github.com/dashpole)) [SIG Instrumentation and Node] - Kube-apiserver: multiple comma-separated protocols in a single X-Stream-Protocol-Version header are now recognized, in addition to multiple headers, complying with RFC2616 ([#89857](https://github.com/kubernetes/kubernetes/pull/89857), [@tedyu](https://github.com/tedyu)) [SIG API Machinery] - Kubeadm increased to 5 minutes its timeout for the TLS bootstrapping process to complete upon join ([#89735](https://github.com/kubernetes/kubernetes/pull/89735), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] - Kubeadm: during join when a check is performed that a Node with the same name already exists in the cluster, make sure the NodeReady condition is properly validated ([#89602](https://github.com/kubernetes/kubernetes/pull/89602), [@kvaps](https://github.com/kvaps)) [SIG Cluster Lifecycle] @@ -2890,7 +3736,6 @@ filename | sha512 hash - Change beta.kubernetes.io/os to kubernetes.io/os ([#89460](https://github.com/kubernetes/kubernetes/pull/89460), [@wawa0210](https://github.com/wawa0210)) [SIG Testing and Windows] - Changes not found message when using `kubectl get` to retrieve not namespaced resources ([#89861](https://github.com/kubernetes/kubernetes/pull/89861), [@rccrdpccl](https://github.com/rccrdpccl)) [SIG CLI] - Node ([#76443](https://github.com/kubernetes/kubernetes/pull/76443), [@mgdevstack](https://github.com/mgdevstack)) [SIG Architecture, Network, Node, Testing and Windows] -- None. ([#90273](https://github.com/kubernetes/kubernetes/pull/90273), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] - Reduce event spam during a volume operation error. ([#89794](https://github.com/kubernetes/kubernetes/pull/89794), [@msau42](https://github.com/msau42)) [SIG Storage] - The PR adds functionality to generate events when a PV or PVC processing encounters certain failures. The events help users to know the reason for the failure so they can take necessary recovery actions. ([#89845](https://github.com/kubernetes/kubernetes/pull/89845), [@yuga711](https://github.com/yuga711)) [SIG Apps] - The PodShareProcessNamespace feature gate has been removed, and the PodShareProcessNamespace is unconditionally enabled. ([#90099](https://github.com/kubernetes/kubernetes/pull/90099), [@tanjunchen](https://github.com/tanjunchen)) [SIG Node] @@ -2904,6 +3749,8 @@ filename | sha512 hash ## Downloads for v1.19.0-alpha.1 +### Source Code + filename | sha512 hash -------- | ----------- [kubernetes.tar.gz](https://dl.k8s.io/v1.19.0-alpha.1/kubernetes.tar.gz) | `d5930e62f98948e3ae2bc0a91b2cb93c2009202657b9e798e43fcbf92149f50d991af34a49049b2640db729efc635d643d008f4b3dd6c093cac4426ee3d5d147` @@ -2976,9 +3823,9 @@ filename | sha512 hash - Allow user to specify fsgroup permission change policy for pods ([#88488](https://github.com/kubernetes/kubernetes/pull/88488), [@gnufied](https://github.com/gnufied)) [SIG Apps and Storage] - AppProtocol is a new field on Service and Endpoints resources, enabled with the ServiceAppProtocol feature gate. ([#88503](https://github.com/kubernetes/kubernetes/pull/88503), [@robscott](https://github.com/robscott)) [SIG Apps and Network] - BlockVolume and CSIBlockVolume features are now GA. ([#88673](https://github.com/kubernetes/kubernetes/pull/88673), [@jsafrane](https://github.com/jsafrane)) [SIG Apps, Node and Storage] -- Consumers of the 'certificatesigningrequests/approval' API must now grant permission to 'approve' CSRs for the 'signerName' specified on the CSR. More information on the new signerName field can be found at https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/20190607-certificates-api.md#signers ([#88246](https://github.com/kubernetes/kubernetes/pull/88246), [@munnerz](https://github.com/munnerz)) [SIG API Machinery, Apps, Auth, CLI, Node and Testing] -- CustomResourceDefinition schemas that use `x-kubernetes-list-map-keys` to specify properties that uniquely identify list items must make those properties required or have a default value, to ensure those properties are present for all list items. See https://kubernetes.io/docs/reference/using-api/api-concepts/#merge-strategy for details. ([#88076](https://github.com/kubernetes/kubernetes/pull/88076), [@eloyekunle](https://github.com/eloyekunle)) [SIG API Machinery and Testing] -- Fixed missing validation of uniqueness of list items in lists with `x-kubernetes-list-type: map` or x-kubernetes-list-type: set` in CustomResources. ([#84920](https://github.com/kubernetes/kubernetes/pull/84920), [@sttts](https://github.com/sttts)) [SIG API Machinery] +- Consumers of the 'certificatesigningrequests/approval' API must now grant permission to 'approve' CSRs for the 'signerName' specified on the CSR. More information on the new signerName field can be found at https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/1513-certificate-signing-request/README.md/#signers ([#88246](https://github.com/kubernetes/kubernetes/pull/88246), [@munnerz](https://github.com/munnerz)) [SIG API Machinery, Apps, Auth, CLI, Node and Testing] +- CustomResourceDefinition schemas that use `x-kubernetes-list-map-keys` to specify properties that uniquely identify list items must make those properties required or have a default value, to ensure those properties are present for all list items. See https://kubernetes.io/docs/reference/using-api/api-concepts/#merge-strategy for details. ([#88076](https://github.com/kubernetes/kubernetes/pull/88076), [@eloyekunle](https://github.com/eloyekunle)) [SIG API Machinery and Testing] +- Fixed missing validation of uniqueness of list items in lists with `x-kubernetes-list-type: map` or `x-kubernetes-list-type: set` in CustomResources. ([#84920](https://github.com/kubernetes/kubernetes/pull/84920), [@sttts](https://github.com/sttts)) [SIG API Machinery] - Fixes a regression with clients prior to 1.15 not being able to update podIP in pod status, or podCIDR in node spec, against >= 1.16 API servers ([#88505](https://github.com/kubernetes/kubernetes/pull/88505), [@liggitt](https://github.com/liggitt)) [SIG Apps and Network] - Ingress: Add Exact and Prefix maching to Ingress PathTypes ([#88587](https://github.com/kubernetes/kubernetes/pull/88587), [@cmluciano](https://github.com/cmluciano)) [SIG Apps, Cluster Lifecycle and Network] - Ingress: Add alternate backends via TypedLocalObjectReference ([#88775](https://github.com/kubernetes/kubernetes/pull/88775), [@cmluciano](https://github.com/cmluciano)) [SIG Apps and Network] @@ -2986,7 +3833,7 @@ filename | sha512 hash - Introduces optional --detect-local flag to kube-proxy. Currently the only supported value is "cluster-cidr", which is the default if not specified. ([#87748](https://github.com/kubernetes/kubernetes/pull/87748), [@satyasm](https://github.com/satyasm)) [SIG Cluster Lifecycle, Network and Scheduling] -- Kube-controller-manager and kube-scheduler expose profiling by default to match the kube-apiserver. Use `--enable-profiling=false` to disable. ([#88663](https://github.com/kubernetes/kubernetes/pull/88663), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Cloud Provider and Scheduling] +- Kube-controller-manager and kube-scheduler expose profiling by default to match the kube-apiserver. Use `--profiling=false` to disable. ([#88663](https://github.com/kubernetes/kubernetes/pull/88663), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Cloud Provider and Scheduling] - Kube-scheduler can run more than one scheduling profile. Given a pod, the profile is selected by using its `.spec.SchedulerName`. ([#88285](https://github.com/kubernetes/kubernetes/pull/88285), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps, Scheduling and Testing] - Move TaintBasedEvictions feature gates to GA ([#87487](https://github.com/kubernetes/kubernetes/pull/87487), [@skilxn-go](https://github.com/skilxn-go)) [SIG API Machinery, Apps, Node, Scheduling and Testing] - Moving Windows RunAsUserName feature to GA ([#87790](https://github.com/kubernetes/kubernetes/pull/87790), [@marosset](https://github.com/marosset)) [SIG Apps and Windows] @@ -2994,7 +3841,7 @@ filename | sha512 hash - New flag `--show-hidden-metrics-for-version` in kubelet can be used to show all hidden metrics that deprecated in the previous minor release. ([#85282](https://github.com/kubernetes/kubernetes/pull/85282), [@serathius](https://github.com/serathius)) [SIG Node] - Removes ConfigMap as suggestion for IngressClass parameters ([#89093](https://github.com/kubernetes/kubernetes/pull/89093), [@robscott](https://github.com/robscott)) [SIG Network] - Scheduler Extenders can now be configured in the v1alpha2 component config ([#88768](https://github.com/kubernetes/kubernetes/pull/88768), [@damemi](https://github.com/damemi)) [SIG Release, Scheduling and Testing] -- The apiserver/v1alph1#EgressSelectorConfiguration API is now beta. ([#88502](https://github.com/kubernetes/kubernetes/pull/88502), [@caesarxuchao](https://github.com/caesarxuchao)) [SIG API Machinery] +- The apiserver/v1alph1 #EgressSelectorConfiguration API is now beta. ([#88502](https://github.com/kubernetes/kubernetes/pull/88502), [@caesarxuchao](https://github.com/caesarxuchao)) [SIG API Machinery] - The storage.k8s.io/CSIDriver has moved to GA, and is now available for use. ([#84814](https://github.com/kubernetes/kubernetes/pull/84814), [@huffmanca](https://github.com/huffmanca)) [SIG API Machinery, Apps, Auth, Node, Scheduling, Storage and Testing] - VolumePVCDataSource moves to GA in 1.18 release ([#88686](https://github.com/kubernetes/kubernetes/pull/88686), [@j-griffith](https://github.com/j-griffith)) [SIG Apps, CLI and Cluster Lifecycle] @@ -3012,21 +3859,21 @@ filename | sha512 hash After the connection closed(received GOAWAY), the client's other in-flight requests won't be affected, and the client will reconnect. The flag min value is 0 (off), max is .02 (1/50 requests); .001 (1/1000) is a recommended starting point. Clusters with single apiservers, or which don't use a load balancer, should NOT enable this. ([#88567](https://github.com/kubernetes/kubernetes/pull/88567), [@answer1991](https://github.com/answer1991)) [SIG API Machinery] -- Azure Cloud Provider now supports using Azure network resources (Virtual Network, Load Balancer, Public IP, Route Table, Network Security Group, etc.) in different AAD Tenant and Subscription than those for the Kubernetes cluster. To use the feature, please reference https://github.com/kubernetes-sigs/cloud-provider-azure/blob/master/docs/cloud-provider-config.md#host-network-resources-in-different-aad-tenant-and-subscription. ([#88384](https://github.com/kubernetes/kubernetes/pull/88384), [@bowen5](https://github.com/bowen5)) [SIG Cloud Provider] +- Azure Cloud Provider now supports using Azure network resources (Virtual Network, Load Balancer, Public IP, Route Table, Network Security Group, etc.) in different AAD Tenant and Subscription than those for the Kubernetes cluster. To use the feature, please reference https://github.com/kubernetes-sigs/cloud-provider-azure/blob/master/docs/cloud-provider-config.md/#host-network-resources-in-different-aad-tenant-and-subscription. ([#88384](https://github.com/kubernetes/kubernetes/pull/88384), [@bowen5](https://github.com/bowen5)) [SIG Cloud Provider] - Azure: add support for single stack IPv6 ([#88448](https://github.com/kubernetes/kubernetes/pull/88448), [@aramase](https://github.com/aramase)) [SIG Cloud Provider] - DefaultConstraints can be specified for the PodTopologySpread plugin in the component config ([#88671](https://github.com/kubernetes/kubernetes/pull/88671), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] - EndpointSlice controller waits longer to retry failed sync. ([#89438](https://github.com/kubernetes/kubernetes/pull/89438), [@robscott](https://github.com/robscott)) [SIG Apps and Network] - Feat: change azure disk api-version ([#89250](https://github.com/kubernetes/kubernetes/pull/89250), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] - Feat: support [Azure shared disk](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/disks-shared-enable), added a new field(`maxShares`) in azure disk storage class: - kind: StorageClass - apiVersion: storage.k8s.io/v1 - metadata: - name: shared-disk - provisioner: kubernetes.io/azure-disk - parameters: - skuname: Premium_LRS # Currently only available with premium SSDs. - cachingMode: None # ReadOnly host caching is not available for premium SSDs with maxShares>1 + - kind: StorageClass + - apiVersion: storage.k8s.io/v1 + - metadata: + - name: shared-disk + - provisioner: kubernetes.io/azure-disk + - parameters: + - skuname: Premium_LRS # Currently only available with premium SSDs. + - cachingMode: None # ReadOnly host caching is not available for premium SSDs with maxShares>1 maxShares: 2 ([#89328](https://github.com/kubernetes/kubernetes/pull/89328), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] - Kube-apiserver, kube-scheduler and kube-controller manager now use SO_REUSEPORT socket option when listening on address defined by --bind-address and --secure-port flags, when running on Unix systems (Windows is NOT supported). This allows to run multiple instances of those processes on a single host with the same configuration, which allows to update/restart them in a graceful way, without causing downtime. ([#88893](https://github.com/kubernetes/kubernetes/pull/88893), [@invidian](https://github.com/invidian)) [SIG API Machinery, Scheduling and Testing] - Kubeadm: The ClusterStatus struct present in the kubeadm-config ConfigMap is deprecated and will be removed on a future version. It is going to be maintained by kubeadm until it gets removed. The same information can be found on `etcd` and `kube-apiserver` pod annotations, `kubeadm.kubernetes.io/etcd.advertise-client-urls` and `kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint` respectively. ([#87656](https://github.com/kubernetes/kubernetes/pull/87656), [@ereslibre](https://github.com/ereslibre)) [SIG Cluster Lifecycle] diff --git a/CHANGELOG/OWNERS b/CHANGELOG/OWNERS index da3c000a1f88f..a771f1bf57b4c 100644 --- a/CHANGELOG/OWNERS +++ b/CHANGELOG/OWNERS @@ -1,10 +1,21 @@ # See the OWNERS docs at https://go.k8s.io/owners approvers: - - sig-release-approvers - - release-engineering-approvers + - wilsonehusin # 1.21 Release Notes Lead + - cpanato # Release Manager + - feiskyer # Release Manager + - hasheddan # Release Manager / SIG Technical Lead + - idealhack # Release Manager + - justaugustus # Release Manager / SIG Chair + - puerco # Release Manager + - saschagrunert # Release Manager / SIG Chair + - xmudrii # Release Manager reviewers: - - release-engineering-reviewers + - wilsonehusin # 1.21 Release Notes Lead + - ashnehete # 1.21 Release Notes shadow + - melodychn # 1.21 Release Notes shadow + - pmmalinov01 # 1.21 Release Notes shadow + - soniasingla # 1.21 Release Notes shadow labels: - sig/release diff --git a/OWNERS b/OWNERS index c16d49deb2c12..b2171899e6c69 100644 --- a/OWNERS +++ b/OWNERS @@ -3,28 +3,33 @@ filters: ".*": reviewers: - - bparees - - deads2k - - sjenning - - smarterclayton - - soltysh - - tbielawa + - brendandburns + - dchen1107 + - lavalamp + - smarterclayton + - thockin + - liggitt approvers: - - bparees - - deads2k - - derekwaynecarr - - eparis - - knobunc # Network, Multi-cluster, Storage - - mfojtik - - pweil- - - sjenning - - soltysh - - sttts - - smarterclayton - - tbielawa # also for build and automated release tooling changes - "^\\.go.(mod|sum)$": + - brendandburns + - dchen1107 + - lavalamp + - smarterclayton + - thockin + - wojtek-t + - liggitt + emeritus_approvers: + - bgrant0607 + - jbeda + + # go.{mod,sum} files relate to go dependencies, and should be reviewed by the + # dep-approvers + "go\\.(mod|sum)$": + required_reviewers: + - kubernetes/dep-approvers labels: - - "vendor-update" - "^vendor/.*": + - area/dependency + # metrics.go files are sig-instrumentation related, and should be tagged + # and reviewed by sig-instrumentation + "metrics\\.go$": labels: - - "vendor-update" + - sig/instrumentation diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES index ec3dcf8dcb459..0eac16425efa9 100644 --- a/OWNERS_ALIASES +++ b/OWNERS_ALIASES @@ -117,16 +117,15 @@ aliases: - WanLinghao # SIG Release - sig-release-approvers: - - alejandrox1 # SIG Technical Lead - - justaugustus # SIG Chair - - saschagrunert # SIG Technical Lead - - tpepper # SIG Chair release-engineering-approvers: - - alejandrox1 # SIG Technical Lead - - justaugustus # SIG Chair - - saschagrunert # SIG Technical Lead - - tpepper # SIG Chair + - cpanato # Release Manager + - feiskyer # Release Manager + - hasheddan # Release Manager / SIG Technical Lead + - idealhack # Release Manager + - justaugustus # Release Manager / SIG Chair + - puerco # Release Manager + - saschagrunert # Release Manager / SIG Chair + - xmudrii # Release Manager release-engineering-reviewers: - cpanato # Branch Manager - feiskyer # Patch Release Team @@ -139,14 +138,21 @@ aliases: - BenTheElder - cblecker - dims - - justaugustus + - justaugustus # Release Manager / SIG Chair - listx build-image-reviewers: - BenTheElder - cblecker + - cpanato # Release Manager - dims - - justaugustus + - feiskyer # Release Manager + - hasheddan # Release Manager / SIG Technical Lead + - idealhack # Release Manager + - justaugustus # Release Manager / SIG Chair - listx + - puerco # Release Manager + - saschagrunert # Release Manager / SIG Chair + - xmudrii # Release Manager sig-storage-approvers: - saad-ali @@ -241,6 +247,9 @@ aliases: - derekwaynecarr - vishh - yujuhong + - sjenning + - mrunalp + - klueska sig-node-reviewers: - Random-Liu - dashpole diff --git a/README.openshift.md b/README.openshift.md deleted file mode 100644 index 39ec7bc49aac1..0000000000000 --- a/README.openshift.md +++ /dev/null @@ -1,73 +0,0 @@ -# OpenShift's fork of k8s.io/kubernetes - -This respository contains core Kubernetes components with OpenShift-specific patches. - -## Cherry-picking an upstream commit into openshift/kubernetes: Why, how, and when. - -`openshift/kubernetes` carries patches on top of each rebase in one of two ways: - -1. *periodic rebases* against an upstream Kubernetes tag. Eventually, -any code you have in upstream Kubernetes will land in Openshift via -this mechanism. - -2. Cherry-picked patches for important *bug fixes*. We really try to -limit feature back-porting entirely. - -### For Openshift newcomers: Pick my Kubernetes fix into Openshift vs. wait for the next rebase? - -Assuming you read the bullets above... If your patch is really far behind, for -example, if there have been 5 commits modifying the directory you care about, -cherry picking will be increasingly difficult and you should consider waiting -for the next rebase, which will likely include the commit you care about or at -least decrease the amount of cherry picks you need to do to merge. - -To really know the answer, you need to know *how many commits behind you are in -a particular directory*, often. - -To do this, just use git log, like so (using pkg/scheduler/ as an example). - -``` -MYDIR=pkg/scheduler/algorithm git log --oneline -- - ${MYDIR} | grep UPSTREAM | cut -d' ' -f 4-10 | head -1 -``` - -The commit message printed above will tell you: - -- what the LAST commit in Kubernetes was (which effected -"/pkg/scheduler/algorithm") -- directory, which will give you an intuition about how "hot" the code you are -cherry picking is. If it has changed a lot, recently, then that means you -probably will want to wait for a rebase to land. - -### Cherry-picking an upstream change - -Since `openshift/kubernetes` closely resembles `k8s.io/kubernetes`, -cherry-picking largely involves proposing upstream commits in a PR to our -downstream fork. Other than the usual potential for merge conflicts, the -commit messages for all commits proposed to `openshift/kubernetes` must -reflect the following: - -- `UPSTREAM: :` The prefix for upstream commits to ensure - correct handling during a future rebase. The person performing the rebase - will know to omit a commit with this prefix if the referenced PR is already - present in the new base history. -- `UPSTREAM: :` The prefix for downstream commits of code that is - generated (i.e. via `make update`) or that should not be retained by the - next rebase. -- `UPSTREAM: :` The prefix for downstream commits that maintain - downstream-specific behavior (i.e. to ensure an upstream change is - compatible with OpenShift). Commits with this are usually retained across - rebases. - -## Updating openshift/kubernetes to a new upstream release - -Instructions for rebasing `openshift/kubernetes` are maintained in a [separate -document](REBASE.openshift.md). - -## RPM Packaging - -A specfile is included in this repo which can be used to produce RPMs -including the openshift binary. While the specfile will be kept up to -date with build requirements the version is not updated. Building the -rpm with the `openshift-hack/build-rpms.sh` helper script will ensure -that the version is set correctly. diff --git a/REBASE.openshift.md b/REBASE.openshift.md deleted file mode 100644 index 7ec861cc6e2df..0000000000000 --- a/REBASE.openshift.md +++ /dev/null @@ -1,251 +0,0 @@ -# Maintaining openshift/kubernetes - -OpenShift is based on upstream Kubernetes. With every release of Kubernetes that is -intended to be shipped as OCP, it is necessary to incorporate the upstream changes -while ensuring that our downstream customizations are maintained. - -## Rebasing for releases < 4.6 - -The instructions in this document apply to OpenShift releases 4.6 and -above. For previous releases, please see the [rebase -enhancement](https://github.com/openshift/enhancements/blob/master/enhancements/rebase.md). - -## Getting started - -Before incorporating upstream changes you may want to: - -- Read this document -- Get familiar with tig (text-mode interface for git) -- Find the best tool for resolving merge conflicts -- Use diff3 conflict resolution strategy - (https://blog.nilbus.com/take-the-pain-out-of-git-conflict-resolution-use-diff3/) -- Teach Git to remember how you’ve resolved a conflict so that the next time it can - resolve it automatically (https://git-scm.com/book/en/v2/Git-Tools-Rerere) - -## Preparing the local repo clone - -Clone from a personal fork of kubernetes via a pushable (ssh) url: - -``` -git clone git@github.com:/kubernetes -``` - -Add a remote for upstream and fetch its branches: - -``` -git remote add --fetch upstream https://github.com/kubernetes/kubernetes -``` - -Add a remote for the openshift fork and fetch its branches: - -``` -git remote add --fetch openshift https://github.com/openshift/kubernetes -``` - -## Creating a new local branch for the new rebase - -- Branch the target `k8s.io/kubernetes` release tag (e.g. `v1.20.0`) to a new - local branch - -``` -git checkout -b rebase-1.20.0 v1.20.0 -``` - -- Merge the targeted `openshift/kubernetes` branch (e.g. `master`) with - strategy `ours` to reset the the branch to the targeted release tag without - involving manual conflict resolution. - -``` -git merge -s ours openshift/master -``` - -## Creating a spreadsheet of carry commits from the previous release - -Given the upstream tag (e.g. `v1.19.2`) of the most recent rebase and the name -of the branch that is targeted for rebase (e.g. `master`), generate a csv file -containing the set of carry commits that need to be considered for picking: - -``` -git log $( git merge-base master v1.19.2 )..master \ - --pretty=format:',%H,%s,https://github.com/openshift/kubernetes/commit/%H' | \ - grep -v 'Merge pull request' | \ - sed 's#,UPSTREAM: \([0-9]*\)\(:.*\)#,UPSTREAM: \1\2,https://github.com/kubernetes/kubernetes/pull/\1#' > \ - v1.19.2.csv -``` - -This csv file can be imported into a google sheets spreadsheet to track the -progress of picking commits to the new rebase branch. The spreadsheet can also -be a way of communicating with rebase reviewers. For an example of this -communication, please see the [the spreadsheet used for the 1.19 -rebase](https://docs.google.com/spreadsheets/d/10KYptJkDB1z8_RYCQVBYDjdTlRfyoXILMa0Fg8tnNlY/edit). - -## Picking commits from the previous rebase branch to the new branch - -Commits carried on rebase branches have commit messages prefixed as follows: - -- `UPSTREAM: :` - - A persistent carry that should probably be picked for the subsequent rebase branch. - - In general, these commits are used to modify behavior for consistency or - compatibility with openshift. -- `UPSTREAM: :` - - A carry that should probably not be picked for the subsequent rebase branch. - - In general, these commits are used to maintain the codebase in ways that are - branch-specific, like the update of generated files or dependencies. -- `UPSTREAM: 77870:` - - The number identifies a PR in upstream kubernetes - (i.e. `https://github.com/kubernetes/kubernetes/pull/`) - - A commit with this message should only be picked into the subsequent rebase branch - if the commits of the referenced PR are not included in the upstream branch. - - To check if a given commit is included in the upstream branch, open the referenced - upstream PR and check any of its commits for the release tag (e.g. `v.1.20.0`) - targeted by the new rebase branch. For example: - - - -With these guidelines in mind, pick the appropriate commits from the previous rebase -branch into the new rebase branch. As per the example of previous rebase spreadsheets, -color each commit in the spreadsheet to indicate to reviewers whether or not a commit -was picked and the rationale for your choice. - -Where it makes sense to do so, squash carried changes that are tightly coupled to -simplify future rebases. If the commit message of a carry does not conform to -expectations, feel free to revise and note the change in the spreadsheet row for the -commit. - -## Update the hyperkube image version to the release tag - -The [hyperkube dockerfile](openshift-hack/images/hyperkube/Dockerfile.rhel) -hard-codes the Kubernetes version in an image label. It's necessary to manually -set this label to the new release tag. Prefix the commit summary with -`UPSTREAM: :` since a future rebase will need to add its own commit. - -## Updating dependencies - -Once the commits are all picked from the previous rebase branch, each of the -following repositories need to be updated to depend on the upstream tag -targeted by the rebase: - -- https://github.com/openshift/api -- https://github.com/openshift/apiserver-library-go -- https://github.com/openshift/client-go -- https://github.com/openshift/library-go - -Often these repositories are updated in parallel by other team members, so make -sure to ask around before starting the work of bumping their dependencies. - -Once the above repos have been updated to the target release, it will be necessary to -update go.mod to point to the appropriate revision of these repos by running -`hack/pin-dependency.sh` for each of them and then running `hack/update-vendor.sh` (as -per the [upstream -documentation](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/vendor.md#adding-or-updating-a-dependency)). - -Make sure to commit the result of a vendoring update with `UPSTREAM: : bump(*)`. - -### Updating dependencies for pending bumps - -The upstream `hack/pin-dependency.sh` script only supports setting dependency -for the original repository. To pin to a fork branch that has not yet been -merged (i.e. to test a rebase ahead of shared library bumps having merged), the -following `go mod` invovations are suggested: - -``` -go mod edit -replace github.com/openshift/=github.com//@SHA -go mod tidy -``` - -## Review test annotation rules - -The names of upstream e2e tests are annotated according to the a set of -[declarative rules](openshift-hack/e2e/annotate/rules.go). These annotations -are used to group tests into suites and to skip tests that are known not to be -incompatible with some or all configurations of OpenShift. - -When performing a rebase, it is important to review the rules to -ensure they are still relevant: - -- [ ] Ensure that `[Disabled:Alpha]` rules are appropriate for the current kube - level. Alpha features that are not enabled by default should be targeted - by this annotation to ensure that tests of those features are skipped. -- [ ] Add new skips (along with a bz to track resolution) where e2e tests fail - consistently. - -Test failures representing major issues affecting cluster capability will -generally need to be addressed before merge of the rebase PR, but minor issues -(e.g. tests that fail to execute correctly but don't appear to reflect a -regression in behavior) can often be skipped and addressed post-merge. - -## Updating generated files - -- Update generated files by running `make update` - - This step depends on etcd being installed in the path, which can be - accomplished by running `hack/install-etcd.sh`. -- Commit the resulting changes as `UPSTREAM: : make update`. - -## Building and testing - -- Build the code with `make` -- Test the code with `make test` - - Where test failures are encountered and can't be trivially resolved, the - spreadsheet can be used to to track those failures to their resolution. The - example spreadsheet should have a sheet that demonstrates this tracking. - - Where a test failure proves challenging to fix without specialized knowledge, - make sure to coordinate with the team(s) responsible for areas of focus - exhibiting test failure. If in doubt, ask for help! -- Verify the code with `make verify` - -### Rebase Checklists - -In preparation for submitting a PR to the [openshift fork of -kubernetes](https://github.com/openshift/kubernetes), the following -should be true: - -- [ ] The new rebase branch has been created from the upstream tag -- [ ] The new rebase branch includes relevant carries from target branch -- [ ] Dependencies have been updated -- [ ] Hyperkube dockerfile version has been updated -- [ ] `make update` has been invoked and the results committed -- [ ] `make` executes without error -- [ ] `make verify` executes without error -- [ ] `make test` executes without error -- [ ] Upstream tags are pushed to `openshift/kubernetes` to ensure that - build artifacts are versioned correctly - - Upstream tooling uses the value of the most recent tag (e.g. `v1.20.0`) - in the branch history as the version of the binaries it builds. - -Details to include in the description of the PR: - -- [ ] A link to the rebase spreadsheet for the benefit for reviewers -- [ ] A comment reminding reviewers of the need for manual upgrade testing - along with a `/hold` command to prevent merge until such testing is - completed. - -In addition to the standard requirement that all CI jobs be passing, the rebase -PR should not be merged until additional upgrade testing initiated with -cluster-bot is passing: - -- [ ] `test upgrade [previous release e.g. 4.6] openshift/kubernetes#[PR#] [aws|azure]` - - Only gcp upgrades are tested automatically via presubmit - (`e2e-gcp-upgrade`) and it's necessary to manually test aws and azure. -- [ ] `test upgrade openshift/kubernetes#[PR#] openshift/kubernetes#[PR#]` - - This 'self-upgrade' ensures that it is possible to upgrade _from_ the - rebased release. The other upgrade testing validates that it's possible - to upgrade _to_ the rebased release. - -After the rebase PR has merged to `openshift/kubernetes`, vendor the changes -into `origin` to ensure that the openshift-tests binary reflects the upstream -test changes introduced by the rebase: - -- [ ] Find the SHA of `openshift/kubernetes` branch after merge of the rebase - PR -- [ ] Run `hack/update-kube-vendor.sh ` in a clone of the `origin` - repo and commit the results -- [ ] Run `make update` and commit the results -- [ ] Submit as a PR to `origin` - -As a final step, send an email to the aos-devel mailing list announcing the -rebase. Make sure to include: - -- [ ] The new version of upstream Kubernetes that OpenShift is now based on -- [ ] Link(s) to upstream changelog(s) detailing what has changed since the last rebase landed -- [ ] A reminder to component maintainers to bump their dependencies -- [ ] Relevent details of the challenges involved in landing the rebase that - could benefit from a wider audience. diff --git a/build/OWNERS b/build/OWNERS index 0df127a014172..7814c7b92e7d4 100644 --- a/build/OWNERS +++ b/build/OWNERS @@ -5,8 +5,10 @@ reviewers: - cblecker - dims - fejta - - justaugustus + - hasheddan # Release Manager / SIG Technical Lead + - justaugustus # Release Manager / SIG Chair - lavalamp + - saschagrunert # Release Manager / SIG Chair - spiffxp approvers: - bentheelder diff --git a/build/build-image/Dockerfile b/build/build-image/Dockerfile index 42de13ccb8885..c95dc8a20aa55 100644 --- a/build/build-image/Dockerfile +++ b/build/build-image/Dockerfile @@ -13,7 +13,10 @@ # limitations under the License. # This file creates a standard build environment for building Kubernetes -FROM k8s.gcr.io/build-image/kube-cross:KUBE_BUILD_IMAGE_CROSS_TAG +ARG KUBE_BUILD_IMAGE_CROSS_TAG +ARG KUBE_BASE_IMAGE_REGISTRY + +FROM ${KUBE_BASE_IMAGE_REGISTRY}/kube-cross:${KUBE_BUILD_IMAGE_CROSS_TAG} # Mark this as a kube-build container RUN touch /kube-build-image diff --git a/build/build-image/cross/VERSION b/build/build-image/cross/VERSION index eb2573a06eac6..6b47580622460 100644 --- a/build/build-image/cross/VERSION +++ b/build/build-image/cross/VERSION @@ -1 +1 @@ -v1.15.2-1 +v1.15.13-legacy-1 diff --git a/build/common.sh b/build/common.sh index db4125b8f9280..abfafc4f7b57f 100755 --- a/build/common.sh +++ b/build/common.sh @@ -93,8 +93,8 @@ readonly KUBE_CONTAINER_RSYNC_PORT=8730 # # $1 - server architecture kube::build::get_docker_wrapped_binaries() { - local debian_iptables_version=v12.1.2 - local go_runner_version=buster-v2.0.1 + local debian_iptables_version=buster-v1.6.1 + local go_runner_version=v2.3.1-go1.15.13-buster.0 ### If you change any of these lists, please also update DOCKERIZED_BINARIES ### in build/BUILD. And kube::golang::server_image_targets local targets=( @@ -247,27 +247,6 @@ function kube::build::ensure_rsync() { fi } -function kube::build::update_dockerfile() { - if kube::build::is_gnu_sed; then - sed_opts=(-i) - else - sed_opts=(-i '') - fi - sed "${sed_opts[@]}" "s/KUBE_BUILD_IMAGE_CROSS_TAG/${KUBE_BUILD_IMAGE_CROSS_TAG}/" "${LOCAL_OUTPUT_BUILD_CONTEXT}/Dockerfile" -} - -function kube::build::set_proxy() { - if [[ -n "${KUBERNETES_HTTPS_PROXY:-}" ]]; then - echo "ENV https_proxy $KUBERNETES_HTTPS_PROXY" >> "${LOCAL_OUTPUT_BUILD_CONTEXT}/Dockerfile" - fi - if [[ -n "${KUBERNETES_HTTP_PROXY:-}" ]]; then - echo "ENV http_proxy $KUBERNETES_HTTP_PROXY" >> "${LOCAL_OUTPUT_BUILD_CONTEXT}/Dockerfile" - fi - if [[ -n "${KUBERNETES_NO_PROXY:-}" ]]; then - echo "ENV no_proxy $KUBERNETES_NO_PROXY" >> "${LOCAL_OUTPUT_BUILD_CONTEXT}/Dockerfile" - fi -} - function kube::build::ensure_docker_in_path() { if [[ -z "$(which docker)" ]]; then kube::log::error "Can't find 'docker' in PATH, please fix and retry." @@ -428,9 +407,7 @@ function kube::build::build_image() { dd if=/dev/urandom bs=512 count=1 2>/dev/null | LC_ALL=C tr -dc 'A-Za-z0-9' | dd bs=32 count=1 2>/dev/null > "${LOCAL_OUTPUT_BUILD_CONTEXT}/rsyncd.password" chmod go= "${LOCAL_OUTPUT_BUILD_CONTEXT}/rsyncd.password" - kube::build::update_dockerfile - kube::build::set_proxy - kube::build::docker_build "${KUBE_BUILD_IMAGE}" "${LOCAL_OUTPUT_BUILD_CONTEXT}" 'false' + kube::build::docker_build "${KUBE_BUILD_IMAGE}" "${LOCAL_OUTPUT_BUILD_CONTEXT}" 'false' "--build-arg=KUBE_BUILD_IMAGE_CROSS_TAG=${KUBE_BUILD_IMAGE_CROSS_TAG} --build-arg=KUBE_BASE_IMAGE_REGISTRY=${KUBE_BASE_IMAGE_REGISTRY}" # Clean up old versions of everything kube::build::docker_delete_old_containers "${KUBE_BUILD_CONTAINER_NAME_BASE}" "${KUBE_BUILD_CONTAINER_NAME}" @@ -450,7 +427,10 @@ function kube::build::docker_build() { local -r image=$1 local -r context_dir=$2 local -r pull="${3:-true}" - local -ra build_cmd=("${DOCKER[@]}" build -t "${image}" "--pull=${pull}" "${context_dir}") + local build_args + IFS=" " read -r -a build_args <<< "$4" + readonly build_args + local -ra build_cmd=("${DOCKER[@]}" build -t "${image}" "--pull=${pull}" "${build_args[@]}" "${context_dir}") kube::log::status "Building Docker image ${image}" local docker_output @@ -573,11 +553,17 @@ function kube::build::run_build_command_ex() { --env "KUBE_BUILD_WITH_COVERAGE=${KUBE_BUILD_WITH_COVERAGE:-}" --env "KUBE_BUILD_PLATFORMS=${KUBE_BUILD_PLATFORMS:-}" --env "GOFLAGS=${GOFLAGS:-}" - --env "GOLDFLAGS=${GOLDFLAGS:-}" --env "GOGCFLAGS=${GOGCFLAGS:-}" --env "SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH:-}" ) + # use GOLDFLAGS only if it is set explicitly. + if [[ -v GOLDFLAGS ]]; then + docker_run_opts+=( + --env "GOLDFLAGS=${GOLDFLAGS:-}" + ) + fi + if [[ -n "${DOCKER_CGROUP_PARENT:-}" ]]; then kube::log::status "Using ${DOCKER_CGROUP_PARENT} as container cgroup parent" docker_run_opts+=(--cgroup-parent "${DOCKER_CGROUP_PARENT}") diff --git a/build/dependencies.yaml b/build/dependencies.yaml index 2e19e92fe2e08..2014dcf812f33 100644 --- a/build/dependencies.yaml +++ b/build/dependencies.yaml @@ -17,7 +17,7 @@ dependencies: # Bazel - name: "repo-infra" - version: 0.1.1 + version: 0.1.8 refPaths: - path: build/root/WORKSPACE match: strip_prefix = "repo-infra-\d+.\d+.\d+" @@ -99,18 +99,20 @@ dependencies: # Golang - name: "golang: upstream version" - version: 1.15.2 + version: 1.15.13 refPaths: - path: build/build-image/cross/VERSION - path: build/root/WORKSPACE match: (override_)?go_version = "\d+.\d+(alpha|beta|rc)?\.?\d+" + - path: cluster/addons/fluentd-elasticsearch/es-image/Dockerfile + match: 'FROM golang\:\d+.\d+(alpha|beta|rc)?\.?(\d+)?' - path: test/images/Makefile match: GOLANG_VERSION=\d+.\d+(alpha|beta|rc)?\.?\d+ - path: staging/publishing/rules.yaml match: 'default-go-version\: \d+.\d+(alpha|beta|rc)?\.?(\d+)?' - name: "k8s.gcr.io/kube-cross: dependents" - version: v1.15.2-1 + version: v1.15.13-legacy-1 refPaths: - path: build/build-image/cross/VERSION - path: test/images/sample-apiserver/Dockerfile @@ -118,33 +120,33 @@ dependencies: # Base images - name: "k8s.gcr.io/debian-base: dependents" - version: 2.1.3 + version: buster-v1.7.0 refPaths: - path: build/workspace.bzl match: tag = - path: cluster/images/etcd/Makefile - match: BASEIMAGE\?\=k8s\.gcr\.io\/build-image\/debian-base:v\d+\.\d+\.\d+ + match: BASEIMAGE\?\=k8s\.gcr\.io\/build-image\/debian-base:[a-zA-Z]+\-v((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?) - path: cluster/images/etcd/Makefile - match: BASEIMAGE\?\=k8s\.gcr\.io\/build-image\/debian-base-arm:v\d+\.\d+\.\d+ + match: BASEIMAGE\?\=k8s\.gcr\.io\/build-image\/debian-base-arm:[a-zA-Z]+\-v((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?) - path: cluster/images/etcd/Makefile - match: BASEIMAGE\?\=k8s\.gcr\.io\/build-image\/debian-base-arm64:v\d+\.\d+\.\d+ + match: BASEIMAGE\?\=k8s\.gcr\.io\/build-image\/debian-base-arm64:[a-zA-Z]+\-v((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?) - path: cluster/images/etcd/Makefile - match: BASEIMAGE\?\=k8s\.gcr\.io\/build-image\/debian-base-ppc64le:v\d+\.\d+\.\d+ + match: BASEIMAGE\?\=k8s\.gcr\.io\/build-image\/debian-base-ppc64le:[a-zA-Z]+\-v((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?) - path: cluster/images/etcd/Makefile - match: BASEIMAGE\?\=k8s\.gcr\.io\/build-image\/debian-base-s390x:v\d+\.\d+\.\d+ + match: BASEIMAGE\?\=k8s\.gcr\.io\/build-image\/debian-base-s390x:[a-zA-Z]+\-v((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?) - name: "k8s.gcr.io/debian-iptables: dependents" - version: 12.1.2 + version: buster-v1.6.1 refPaths: - path: build/common.sh match: debian_iptables_version= - path: build/workspace.bzl match: tag = - path: test/utils/image/manifest.go - match: configs\[DebianIptables\] = Config{buildImageRegistry, "debian-iptables", "v\d+\.\d+.\d+"} + match: configs\[DebianIptables\] = Config{buildImageRegistry, "debian-iptables", "[a-zA-Z]+\-v((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)"} - name: "k8s.gcr.io/go-runner: dependents" - version: buster-v2.0.1 + version: v2.3.1-go1.15.13-buster.0 refPaths: - path: build/common.sh match: go_runner_version= diff --git a/build/root/WORKSPACE b/build/root/WORKSPACE index a21731eaf3df5..f8485b050afd1 100644 --- a/build/root/WORKSPACE +++ b/build/root/WORKSPACE @@ -5,10 +5,10 @@ load("//build:workspace_mirror.bzl", "mirror") http_archive( name = "io_k8s_repo_infra", - strip_prefix = "repo-infra-0.1.1", - sha256 = "6c916da43b701e2947f147f3791b3355d8a342dd6cb81887b7d6db184879e387", + strip_prefix = "repo-infra-0.1.8", + sha256 = "5baf1b698bc20080ba714401c34ddc6ffa447757896c26399c00ab8bb39cc980", urls = [ - "https://github.com/kubernetes/repo-infra/archive/v0.1.1.tar.gz", + "https://github.com/kubernetes/repo-infra/archive/v0.1.8.tar.gz", ], ) @@ -23,7 +23,7 @@ load("@io_k8s_repo_infra//:repos.bzl", repo_infra_configure = "configure", repo_ # 'override_go_version': used to specify an alternate go version provided # by kubernetes/repo-infra repo_infra_configure( - go_version = "1.15.2", + override_go_version = "1.15.13", minimum_bazel_version = "2.2.0", ) diff --git a/build/run.sh b/build/run.sh index c0eb0b83270b0..3ecc2dacb7789 100755 --- a/build/run.sh +++ b/build/run.sh @@ -25,12 +25,6 @@ set -o pipefail KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/.. source "$KUBE_ROOT/build/common.sh" -# Allow running without docker (e.g. in openshift ci) -if [[ "${OS_RUN_WITHOUT_DOCKER:-}" ]]; then - "${@}" - exit 0 -fi - KUBE_RUN_COPY_OUTPUT="${KUBE_RUN_COPY_OUTPUT:-y}" kube::build::verify_prereqs diff --git a/build/workspace.bzl b/build/workspace.bzl index 0ed64c492f232..c5b19ddb6e801 100644 --- a/build/workspace.bzl +++ b/build/workspace.bzl @@ -74,43 +74,43 @@ def cri_tarballs(): # Use skopeo to find these values: https://github.com/containers/skopeo # # Example -# Manifest: skopeo inspect docker://gcr.io/k8s-staging-build-image/debian-base:v2.1.3 -# Arches: skopeo inspect --raw docker://gcr.io/k8s-staging-build-image/debian-base:v2.1.3 +# Manifest: skopeo inspect docker://k8s.gcr.io/build-image/debian-base:buster-v1.7.0 +# Arches: skopeo inspect --raw docker://k8s.gcr.io/build-image/debian-base:buster-v1.7.0 _DEBIAN_BASE_DIGEST = { - "manifest": "sha256:37cfe133a6ff3fc3aa4aa5ab9fda127861902940b8e8078fff7191c7a81be8d8", - "amd64": "sha256:dc06e242160076b72bd75135fb3dd0a9e91f386b2d812ec10cbf9e65864c755d", - "arm": "sha256:9c52e9b31d679102586381fb4a03bba73fc05992adacce31df3db6d2f75f010e", - "arm64": "sha256:9a3ae250d59f317c9cf1f7bf0b61c0d90e70012ee82996867655401968076ee4", - "ppc64le": "sha256:d7c50e06d954bedb1f362ce42380f7a059423f8cbd9e7b426a7f2d73dfb4431a", - "s390x": "sha256:7e6d43baf4972f7faa33f1179fb92ff858a3e0e23f78b96a5821d13199b9da91", + "manifest": "sha256:08c14f378308dd053bca28f64ab4cbfbca469c8ce5b2831fc3c267adbdc2ae6a", + "amd64": "sha256:bfed8b269fcb8333845a55560ef35e66e71998bd4be33a6b92302f5cbe9ab181", + "arm": "sha256:52722bb698a8d742148c9075f3261f442f3e7bc9d12bcc9c96a045d24d27ffd4", + "arm64": "sha256:0ac88bfb3df67f63bc328cd23610959310c8bc36377662de3220c7c0c15f6dbd", + "ppc64le": "sha256:4bc9d7fa374f3e065ed4c62ac815806afe2e519bc4a9d94786e70fe88e5acc42", + "s390x": "sha256:3045c5d5e716ce22cf0131b4d34bac99a7539e952546e4e8cb20739079bf6401", } # Use skopeo to find these values: https://github.com/containers/skopeo # # Example -# Manifest: skopeo inspect docker://gcr.io/k8s-staging-build-image/debian-iptables:v12.1.2 -# Arches: skopeo inspect --raw docker://gcr.io/k8s-staging-build-image/debian-iptables:v12.1.2 +# Manifest: skopeo inspect docker://gcr.io/k8s-staging-build-image/debian-iptables:buster-v1.6.1 +# Arches: skopeo inspect --raw docker://gcr.io/k8s-staging-build-image/debian-iptables:buster-v1.6.1 _DEBIAN_IPTABLES_DIGEST = { - "manifest": "sha256:fff1fd5ab38fefde8c9eee5470ed6ea737f30e5ab86e1c0c0d429fa6add28a84", - "amd64": "sha256:448c0e019689da3f4e238922824551d02578473f7b5d11604fffd528056caafa", - "arm": "sha256:08e267a6297640eb0b218a783cabaef0a039cc4734b4a2d9cb54ee41cd82656a", - "arm64": "sha256:a83cf1d501ad33f5aa93e2719baa59b054939b8a819c3997f915a6acfaa8e31a", - "ppc64le": "sha256:c86649ac541c35431a4df8ba44e7c61923d9e34679fd17da7723db7b6ecc5245", - "s390x": "sha256:53437fe32e13bb0bd2af08ddaaf2e908add8ab576574d881ba79544f34a774b2", + "manifest": "sha256:ace0d3b734717529f8cc0ff49ef54a13d53ae459d26ffff28a643ae26a32725f", + "amd64": "sha256:dfe9612ca4a74c89814ecb07895c0e73a479f42fb4c457fdf3d40205627c2beb", + "arm": "sha256:7f7160cbc8e7b593d2ff29dc2ecb4514a3edcee5da1ccf20f693bd9da30c7ed1", + "arm64": "sha256:3eefa4772a673e7d0eda706691e7829b64f62e95d464e9cd69e483a57c83a2fc", + "ppc64le": "sha256:f26c878f26cb1e61fa7a988a2e8c14b05685d105d9d2d4ac4a02241df4e4e3bf", + "s390x": "sha256:5b883c6c79130aa4a5a699e1c24cf09df034127f0ac6aec84fe7b17b3197fdd6", } # Use skopeo to find these values: https://github.com/containers/skopeo # # Example -# Manifest: skopeo inspect docker://gcr.io/k8s-staging-build-image/go-runner:buster-v2.0.1 -# Arches: skopeo inspect --raw docker://gcr.io/k8s-staging-build-image/go-runner:buster-v2.0.1 +# Manifest: skopeo inspect docker://k8s.gcr.io/build-image/go-runner:v2.3.1-go1.15.13-buster.0 +# Arches: skopeo inspect --raw docker://k8s.gcr.io/build-image/go-runner:v2.3.1-go1.15.13-buster.0 _GO_RUNNER_DIGEST = { - "manifest": "sha256:687c17db2f5cd4aea13faa7ae56bee639a5b11f380c431a9800205624f53541c", - "amd64": "sha256:b02bdb3444b1e7fb14cb5b60174f0e8f0a087ff4c294352e6c31c17da99a4ee2", - "arm": "sha256:0d7563c814c0cd88bc5937b6e606d266409b5b7cee2deb6c04c6dcb6d7daaa5d", - "arm64": "sha256:78f42645ddfd2ab9dfc4053834aa0042c82c8c550f9f61a2a76fd9f1791e5308", - "ppc64le": "sha256:93e3ca63df801a5c1ad15bdbb9c50fa38e5db3479a92d8f4516c00dfd736f227", - "s390x": "sha256:d7ed7bd8d58a6570504f14a50d502c2df97f944378f9f5306519f3379cb92fe2", + "manifest": "sha256:4e96ec5dd39b1761eadc23e539eb17cb507953c98e34f45e24c18487d2116d65", + "amd64": "sha256:96af15fb8033cd0e54a37555ac42da6bcc30369917652fe6d1ebf8f0e6206f42", + "arm": "sha256:a365f9e69a184813c6456a413b98ca51bb76d0fbcfd24e7ce45935f9f7acecd5", + "arm64": "sha256:65fe98f99598a75e335893c647694123a1b29092b4c3cbfa80b60d5f26191e58", + "ppc64le": "sha256:fe4a3a3c4270b55f3cb88fcfbdebab3d6de7ed789b70bf398e9114b0c6ab2a16", + "s390x": "sha256:58f4fcdd828c5b08cf8b49c9ead57b4e35b625b472f1e5c40bf3616bb244cb84", } def _digest(d, arch): @@ -127,7 +127,7 @@ def image_dependencies(): digest = _digest(_GO_RUNNER_DIGEST, arch), registry = "k8s.gcr.io/build-image", repository = "go-runner", - tag = "buster-v2.0.1", # ignored, but kept here for documentation + tag = "v2.3.1-go1.15.13-buster.0", # ignored, but kept here for documentation ) container_pull( @@ -137,7 +137,7 @@ def image_dependencies(): registry = "k8s.gcr.io/build-image", repository = "debian-base", # Ensure the digests above are updated to match a new tag - tag = "v2.1.3", # ignored, but kept here for documentation + tag = "buster-v1.7.0", # ignored, but kept here for documentation ) container_pull( @@ -147,7 +147,7 @@ def image_dependencies(): registry = "k8s.gcr.io/build-image", repository = "debian-iptables", # Ensure the digests above are updated to match a new tag - tag = "v12.1.2", # ignored, but kept here for documentation + tag = "buster-v1.6.1", # ignored, but kept here for documentation ) def etcd_tarballs(): diff --git a/cluster/addons/fluentd-elasticsearch/es-image/Dockerfile b/cluster/addons/fluentd-elasticsearch/es-image/Dockerfile index bdda4f73d944d..e19f454895da0 100644 --- a/cluster/addons/fluentd-elasticsearch/es-image/Dockerfile +++ b/cluster/addons/fluentd-elasticsearch/es-image/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM golang:1.12.0 AS builder +FROM golang:1.15.13 AS builder COPY elasticsearch_logging_discovery.go go.mod go.sum / RUN CGO_ENABLED=0 GOOS=linux GO111MODULE=on go build -a -ldflags "-w" -o /elasticsearch_logging_discovery /elasticsearch_logging_discovery.go diff --git a/cluster/addons/node-problem-detector/npd.yaml b/cluster/addons/node-problem-detector/npd.yaml index 6caa9c60a6623..4a9ac4a11bce5 100644 --- a/cluster/addons/node-problem-detector/npd.yaml +++ b/cluster/addons/node-problem-detector/npd.yaml @@ -26,28 +26,28 @@ subjects: apiVersion: apps/v1 kind: DaemonSet metadata: - name: npd-v0.8.0 + name: npd-v0.8.5 namespace: kube-system labels: k8s-app: node-problem-detector - version: v0.8.0 + version: v0.8.5 kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile spec: selector: matchLabels: k8s-app: node-problem-detector - version: v0.8.0 + version: v0.8.5 template: metadata: labels: k8s-app: node-problem-detector - version: v0.8.0 + version: v0.8.5 kubernetes.io/cluster-service: "true" spec: containers: - name: node-problem-detector - image: k8s.gcr.io/node-problem-detector:v0.8.0 + image: k8s.gcr.io/node-problem-detector/node-problem-detector:v0.8.5 command: - "/bin/sh" - "-c" diff --git a/cluster/gce/gci/configure.sh b/cluster/gce/gci/configure.sh index c4db7e267cb38..71330c836c0a4 100644 --- a/cluster/gce/gci/configure.sh +++ b/cluster/gce/gci/configure.sh @@ -26,8 +26,8 @@ set -o pipefail ### Hardcoded constants DEFAULT_CNI_VERSION="v0.8.7" DEFAULT_CNI_HASH="8f2cbee3b5f94d59f919054dccfe99a8e3db5473b553d91da8af4763e811138533e05df4dbeab16b3f774852b4184a7994968f5e036a3f531ad1ac4620d10ede" -DEFAULT_NPD_VERSION="v0.8.0" -DEFAULT_NPD_HASH="b15d6919321e832b5fc7bc150c2e141e947305e82b34b514adbda9b9bc41088beadbf833f5bbbf44b9a8181c3fd8ed41e1629458d7544ccaecb374c22bde1517" +DEFAULT_NPD_VERSION="v0.8.5" +DEFAULT_NPD_HASH="3fbf97a38c06d8fcc8c46f956a6e90aa1b47cb42d50ddcfd1a644a7e624e42ee523db2f81e08fbfb21b80142d4bafdbedce16e8b62d2274a5b2b703a56d9c015" DEFAULT_CRICTL_VERSION="v1.18.0" DEFAULT_CRICTL_HASH="9fe9f80f96542e90b47ae13726fd1cf6ed329117c64cefc1c0dda81b65a46551a6d273810efc689993eff41f2091536af9b536a2d0c6a51ec2e6480db26b6b8b" DEFAULT_MOUNTER_TAR_SHA="7956fd42523de6b3107ddc3ce0e75233d2fcb78436ff07a1389b6eaac91fb2b1b72a08f7a219eaf96ba1ca4da8d45271002e0d60e0644e796c665f99bb356516" diff --git a/cluster/images/conformance/go-runner/testdata/tartest/out.tar.gz b/cluster/images/conformance/go-runner/testdata/tartest/out.tar.gz deleted file mode 100644 index 7cb5eb8413a34..0000000000000 Binary files a/cluster/images/conformance/go-runner/testdata/tartest/out.tar.gz and /dev/null differ diff --git a/cluster/images/etcd/Makefile b/cluster/images/etcd/Makefile index 0100da219aa41..95f4d90e3d462 100644 --- a/cluster/images/etcd/Makefile +++ b/cluster/images/etcd/Makefile @@ -31,7 +31,7 @@ BUNDLED_ETCD_VERSIONS?=3.0.17 3.1.12 3.2.24 3.3.17 3.4.9 # LATEST_ETCD_VERSION identifies the most recent etcd version available. LATEST_ETCD_VERSION?=3.4.9 -# REVISION provides a version number fo this image and all it's bundled +# REVISION provides a version number for this image and all it's bundled # artifacts. It should start at zero for each LATEST_ETCD_VERSION and increment # for each revision of this image at that etcd version. REVISION?=3 @@ -67,19 +67,19 @@ GOARM?=7 TEMP_DIR:=$(shell mktemp -d) ifeq ($(ARCH),amd64) - BASEIMAGE?=k8s.gcr.io/build-image/debian-base:v2.1.3 + BASEIMAGE?=k8s.gcr.io/build-image/debian-base:buster-v1.7.0 endif ifeq ($(ARCH),arm) - BASEIMAGE?=k8s.gcr.io/build-image/debian-base-arm:v2.1.3 + BASEIMAGE?=k8s.gcr.io/build-image/debian-base-arm:buster-v1.7.0 endif ifeq ($(ARCH),arm64) - BASEIMAGE?=k8s.gcr.io/build-image/debian-base-arm64:v2.1.3 + BASEIMAGE?=k8s.gcr.io/build-image/debian-base-arm64:buster-v1.7.0 endif ifeq ($(ARCH),ppc64le) - BASEIMAGE?=k8s.gcr.io/build-image/debian-base-ppc64le:v2.1.3 + BASEIMAGE?=k8s.gcr.io/build-image/debian-base-ppc64le:buster-v1.7.0 endif ifeq ($(ARCH),s390x) - BASEIMAGE?=k8s.gcr.io/build-image/debian-base-s390x:v2.1.3 + BASEIMAGE?=k8s.gcr.io/build-image/debian-base-s390x:buster-v1.7.0 endif RUNNERIMAGE?=gcr.io/distroless/static:latest diff --git a/cmd/kube-apiserver/app/aggregator.go b/cmd/kube-apiserver/app/aggregator.go index 5b22406bdf4ec..843fde15e4dac 100644 --- a/cmd/kube-apiserver/app/aggregator.go +++ b/cmd/kube-apiserver/app/aggregator.go @@ -66,6 +66,9 @@ func createAggregatorConfig( genericConfig := kubeAPIServerConfig genericConfig.PostStartHooks = map[string]genericapiserver.PostStartHookConfigEntry{} genericConfig.RESTOptionsGetter = nil + // prevent generic API server from installing the OpenAPI handler. Aggregator server + // has its own customized OpenAPI handler. + genericConfig.SkipOpenAPIInstallation = true // override genericConfig.AdmissionControl with kube-aggregator's scheme, // because aggregator apiserver should use its own scheme to convert its own resources. diff --git a/cmd/kube-apiserver/app/options/BUILD b/cmd/kube-apiserver/app/options/BUILD index 3e8edb7302e1e..2f6f81f18c7f8 100644 --- a/cmd/kube-apiserver/app/options/BUILD +++ b/cmd/kube-apiserver/app/options/BUILD @@ -58,6 +58,7 @@ go_test( "//pkg/master/reconcilers:go_default_library", "//staging/src/k8s.io/apiserver/pkg/admission:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/options:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/storage/etcd3:go_default_library", "//staging/src/k8s.io/apiserver/pkg/storage/storagebackend:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", "//staging/src/k8s.io/apiserver/plugin/pkg/audit/buffered:go_default_library", diff --git a/cmd/kube-apiserver/app/options/options.go b/cmd/kube-apiserver/app/options/options.go index 99b4c14582788..1434cc181b494 100644 --- a/cmd/kube-apiserver/app/options/options.go +++ b/cmd/kube-apiserver/app/options/options.go @@ -84,8 +84,6 @@ type ServerRunOptions struct { ServiceAccountTokenMaxExpiration time.Duration ShowHiddenMetricsForVersion string - - OpenShiftConfig string } // NewServerRunOptions creates a new ServerRunOptions object with default parameters @@ -251,9 +249,5 @@ func (s *ServerRunOptions) Flags() (fss cliflag.NamedFlagSets) { fs.StringVar(&s.ServiceAccountSigningKeyFile, "service-account-signing-key-file", s.ServiceAccountSigningKeyFile, ""+ "Path to the file that contains the current private key of the service account token issuer. The issuer will sign issued ID tokens with this private key. (Requires the 'TokenRequest' feature gate.)") - fs.StringVar(&s.OpenShiftConfig, "openshift-config", s.OpenShiftConfig, "config for openshift") - fs.MarkDeprecated("openshift-config", "to be removed") - fs.MarkHidden("openshift-config") - return fss } diff --git a/cmd/kube-apiserver/app/options/options_test.go b/cmd/kube-apiserver/app/options/options_test.go index 2149c0bed252e..b6f3c0ea8a05d 100644 --- a/cmd/kube-apiserver/app/options/options_test.go +++ b/cmd/kube-apiserver/app/options/options_test.go @@ -25,15 +25,15 @@ import ( "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/spf13/pflag" - "k8s.io/component-base/logs" - "k8s.io/apiserver/pkg/admission" apiserveroptions "k8s.io/apiserver/pkg/server/options" + "k8s.io/apiserver/pkg/storage/etcd3" "k8s.io/apiserver/pkg/storage/storagebackend" auditbuffered "k8s.io/apiserver/plugin/pkg/audit/buffered" audittruncate "k8s.io/apiserver/plugin/pkg/audit/truncate" restclient "k8s.io/client-go/rest" cliflag "k8s.io/component-base/cli/flag" + "k8s.io/component-base/logs" "k8s.io/component-base/metrics" kapi "k8s.io/kubernetes/pkg/apis/core" kubeoptions "k8s.io/kubernetes/pkg/kubeapiserver/options" @@ -116,6 +116,7 @@ func TestAddFlags(t *testing.T) { "--request-timeout=2m", "--storage-backend=etcd3", "--service-cluster-ip-range=192.168.128.0/17", + "--lease-reuse-duration-seconds=100", } fs.Parse(args) @@ -160,6 +161,10 @@ func TestAddFlags(t *testing.T) { CompactionInterval: storagebackend.DefaultCompactInterval, CountMetricPollPeriod: time.Minute, DBMetricPollInterval: storagebackend.DefaultDBMetricPollInterval, + LeaseManagerConfig: etcd3.LeaseManagerConfig{ + ReuseDurationSeconds: 100, + MaxObjectCount: 1000, + }, }, DefaultStorageMediaType: "application/vnd.kubernetes.protobuf", DeleteCollectionWorkers: 1, diff --git a/cmd/kube-apiserver/app/server.go b/cmd/kube-apiserver/app/server.go index b7589a75b9b0c..7c189ab10ca1e 100644 --- a/cmd/kube-apiserver/app/server.go +++ b/cmd/kube-apiserver/app/server.go @@ -30,15 +30,9 @@ import ( "strings" "time" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/admissionenablement" - "k8s.io/kubernetes/openshift-kube-apiserver/enablement" - "k8s.io/kubernetes/openshift-kube-apiserver/openshiftkubeapiserver" - "github.com/spf13/cobra" - corev1 "k8s.io/api/core/v1" extensionsapiserver "k8s.io/apiextensions-apiserver/pkg/apiserver" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" utilerrors "k8s.io/apimachinery/pkg/util/errors" utilnet "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/sets" @@ -46,7 +40,6 @@ import ( "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/authorization/authorizer" openapinamer "k8s.io/apiserver/pkg/endpoints/openapi" - "k8s.io/apiserver/pkg/endpoints/request" genericfeatures "k8s.io/apiserver/pkg/features" genericapiserver "k8s.io/apiserver/pkg/server" "k8s.io/apiserver/pkg/server/egressselector" @@ -74,8 +67,6 @@ import ( aggregatorscheme "k8s.io/kube-aggregator/pkg/apiserver/scheme" "k8s.io/kubernetes/cmd/kube-apiserver/app/options" "k8s.io/kubernetes/pkg/api/legacyscheme" - "k8s.io/kubernetes/pkg/apis/core" - "k8s.io/kubernetes/pkg/apis/core/v1" "k8s.io/kubernetes/pkg/capabilities" "k8s.io/kubernetes/pkg/features" generatedopenapi "k8s.io/kubernetes/pkg/generated/openapi" @@ -88,7 +79,6 @@ import ( "k8s.io/kubernetes/pkg/master" "k8s.io/kubernetes/pkg/master/reconcilers" "k8s.io/kubernetes/pkg/master/tunneler" - eventstorage "k8s.io/kubernetes/pkg/registry/core/event/storage" rbacrest "k8s.io/kubernetes/pkg/registry/rbac/rest" "k8s.io/kubernetes/pkg/serviceaccount" ) @@ -118,35 +108,7 @@ cluster's shared state through which all other components interact.`, }, RunE: func(cmd *cobra.Command, args []string) error { verflag.PrintAndExitIfRequested() - - if len(s.OpenShiftConfig) > 0 { - // if we are running openshift, we modify the admission chain defaults accordingly - admissionenablement.InstallOpenShiftAdmissionPlugins(s) - - openshiftConfig, err := enablement.GetOpenshiftConfig(s.OpenShiftConfig) - if err != nil { - klog.Fatal(err) - } - enablement.ForceOpenShift(openshiftConfig) - - args, err := openshiftkubeapiserver.ConfigToFlags(openshiftConfig) - if err != nil { - return err - } - - // hopefully this resets the flags? - if err := cmd.ParseFlags(args); err != nil { - return err - } - - // print merged flags (merged from OpenshiftConfig) - cliflag.PrintFlags(cmd.Flags()) - - enablement.ForceGlobalInitializationForOpenShift() - } else { - // print default flags - cliflag.PrintFlags(cmd.Flags()) - } + cliflag.PrintFlags(cmd.Flags()) // set default options completedOptions, err := Complete(s) @@ -220,7 +182,7 @@ func CreateServerChain(completedOptions completedServerRunOptions, stopCh <-chan return nil, err } - kubeAPIServerConfig, insecureServingInfo, serviceResolver, pluginInitializer, err := CreateKubeAPIServerConfig(completedOptions, nodeTunneler, proxyTransport, stopCh) + kubeAPIServerConfig, insecureServingInfo, serviceResolver, pluginInitializer, err := CreateKubeAPIServerConfig(completedOptions, nodeTunneler, proxyTransport) if err != nil { return nil, err } @@ -324,7 +286,6 @@ func CreateKubeAPIServerConfig( s completedServerRunOptions, nodeTunneler tunneler.Tunneler, proxyTransport *http.Transport, - stopCh <-chan struct{}, ) ( *master.Config, *genericapiserver.DeprecatedInsecureServingInfo, @@ -332,7 +293,7 @@ func CreateKubeAPIServerConfig( []admission.PluginInitializer, error, ) { - genericConfig, versionedInformers, insecureServingInfo, serviceResolver, pluginInitializers, admissionPostStartHook, storageFactory, err := buildGenericConfig(s.ServerRunOptions, proxyTransport, stopCh) + genericConfig, versionedInformers, insecureServingInfo, serviceResolver, pluginInitializers, admissionPostStartHook, storageFactory, err := buildGenericConfig(s.ServerRunOptions, proxyTransport) if err != nil { return nil, nil, nil, nil, err } @@ -374,13 +335,6 @@ func CreateKubeAPIServerConfig( } } - var eventStorage *eventstorage.REST - eventStorage, err = eventstorage.NewREST(genericConfig.RESTOptionsGetter, uint64(s.EventTTL.Seconds())) - if err != nil { - return nil, nil, nil, nil, err - } - genericConfig.EventSink = eventRegistrySink{eventStorage} - config := &master.Config{ GenericConfig: genericConfig, ExtraConfig: master.ExtraConfig{ @@ -477,7 +431,6 @@ func CreateKubeAPIServerConfig( func buildGenericConfig( s *options.ServerRunOptions, proxyTransport *http.Transport, - stopCh <-chan struct{}, ) ( genericConfig *genericapiserver.Config, versionedInformers clientgoinformers.SharedInformerFactory, @@ -489,14 +442,6 @@ func buildGenericConfig( lastErr error, ) { genericConfig = genericapiserver.NewConfig(legacyscheme.Codecs) - genericConfig.IsTerminating = func() bool { - select { - case <-stopCh: - return true - default: - return false - } - } genericConfig.MergedResourceConfig = master.DefaultAPIResourceConfigSource() if lastErr = s.GenericServerRunOptions.ApplyTo(genericConfig); lastErr != nil { @@ -556,8 +501,6 @@ func buildGenericConfig( // on a fast local network genericConfig.LoopbackClientConfig.DisableCompression = true - enablement.SetLoopbackClientConfig(genericConfig.LoopbackClientConfig) - kubeClientConfig := genericConfig.LoopbackClientConfig clientgoExternalClient, err := clientgoclientset.NewForConfig(kubeClientConfig) if err != nil { @@ -597,14 +540,6 @@ func buildGenericConfig( return } - if err := openshiftkubeapiserver.OpenShiftKubeAPIServerConfigPatch(genericConfig, versionedInformers, &pluginInitializers); err != nil { - lastErr = fmt.Errorf("failed to patch: %v", err) - return - } - - if enablement.IsOpenShift() { - admissionenablement.SetAdmissionDefaults(s, versionedInformers, clientgoExternalClient) - } err = s.Admission.ApplyTo( genericConfig, versionedInformers, @@ -831,35 +766,3 @@ func getServiceIPAndRanges(serviceClusterIPRanges string) (net.IP, net.IPNet, ne } return apiServerServiceIP, primaryServiceIPRange, secondaryServiceIPRange, nil } - -// eventRegistrySink wraps an event registry in order to be used as direct event sync, without going through the API. -type eventRegistrySink struct { - *eventstorage.REST -} - -var _ genericapiserver.EventSink = eventRegistrySink{} - -func (s eventRegistrySink) Create(v1event *corev1.Event) (*corev1.Event, error) { - ctx := request.WithNamespace(request.WithRequestInfo(request.NewContext(), &request.RequestInfo{APIVersion: "v1"}), v1event.Namespace) - - var event core.Event - if err := v1.Convert_v1_Event_To_core_Event(v1event, &event, nil); err != nil { - return nil, err - } - - obj, err := s.REST.Create(ctx, &event, nil, &metav1.CreateOptions{}) - if err != nil { - return nil, err - } - ret, ok := obj.(*core.Event) - if !ok { - return nil, fmt.Errorf("expected corev1.Event, got %T", obj) - } - - var v1ret corev1.Event - if err := v1.Convert_core_Event_To_v1_Event(ret, &v1ret, nil); err != nil { - return nil, err - } - - return &v1ret, nil -} diff --git a/cmd/kube-controller-manager/app/apps.go b/cmd/kube-controller-manager/app/apps.go index 5768212ed23ef..88727a1977e23 100644 --- a/cmd/kube-controller-manager/app/apps.go +++ b/cmd/kube-controller-manager/app/apps.go @@ -37,10 +37,7 @@ func startDaemonSetController(ctx ControllerContext) (http.Handler, bool, error) if !ctx.AvailableResources[schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "daemonsets"}] { return nil, false, nil } - dsc, err := daemon.NewNodeSelectorAwareDaemonSetsController( - ctx.OpenShiftContext.OpenShiftDefaultProjectNodeSelector, - ctx.OpenShiftContext.KubeDefaultProjectNodeSelector, - ctx.InformerFactory.Core().V1().Namespaces(), + dsc, err := daemon.NewDaemonSetsController( ctx.InformerFactory.Apps().V1().DaemonSets(), ctx.InformerFactory.Apps().V1().ControllerRevisions(), ctx.InformerFactory.Core().V1().Pods(), diff --git a/cmd/kube-controller-manager/app/config/config.go b/cmd/kube-controller-manager/app/config/config.go index 266cbefd60b71..d3125b4a512e6 100644 --- a/cmd/kube-controller-manager/app/config/config.go +++ b/cmd/kube-controller-manager/app/config/config.go @@ -26,8 +26,6 @@ import ( // Config is the main context object for the controller manager. type Config struct { - OpenShiftContext OpenShiftContext - ComponentConfig kubectrlmgrconfig.KubeControllerManagerConfiguration SecureServing *apiserver.SecureServingInfo diff --git a/cmd/kube-controller-manager/app/config/patch.go b/cmd/kube-controller-manager/app/config/patch.go deleted file mode 100644 index a7112d003d41b..0000000000000 --- a/cmd/kube-controller-manager/app/config/patch.go +++ /dev/null @@ -1,9 +0,0 @@ -package config - -// OpenShiftContext is additional context that we need to launch the kube-controller-manager for openshift. -// Basically, this holds our additional config information. -type OpenShiftContext struct { - OpenShiftConfig string - OpenShiftDefaultProjectNodeSelector string - KubeDefaultProjectNodeSelector string -} diff --git a/cmd/kube-controller-manager/app/controllermanager.go b/cmd/kube-controller-manager/app/controllermanager.go index d6329636d41c6..289440ac9f2e4 100644 --- a/cmd/kube-controller-manager/app/controllermanager.go +++ b/cmd/kube-controller-manager/app/controllermanager.go @@ -113,11 +113,7 @@ controller, and serviceaccounts controller.`, }, Run: func(cmd *cobra.Command, args []string) { verflag.PrintAndExitIfRequested() - - if err := ShimFlagsForOpenShift(s, cmd); err != nil { - fmt.Fprintf(os.Stderr, "%v\n", err) - os.Exit(1) - } + cliflag.PrintFlags(cmd.Flags()) c, err := s.Config(KnownControllers(), ControllersDisabledByDefault.List()) if err != nil { @@ -125,13 +121,7 @@ controller, and serviceaccounts controller.`, os.Exit(1) } - if err := ShimForOpenShift(s, c); err != nil { - fmt.Fprintf(os.Stderr, "%v\n", err) - os.Exit(1) - } - - stopCh := server.SetupSignalHandler() - if err := Run(c.Complete(), stopCh); err != nil { + if err := Run(c.Complete(), wait.NeverStop); err != nil { fmt.Fprintf(os.Stderr, "%v\n", err) os.Exit(1) } @@ -230,11 +220,7 @@ func Run(c *config.CompletedConfig, stopCh <-chan struct{}) error { klog.Warningf("--use-service-account-credentials was specified without providing a --service-account-private-key-file") } - // TODO be sure to drop this commit/`false` below in 4.7. The cloud credential operator is updating the issuer URL in 4.6 - // https://github.com/openshift/cloud-credential-operator/blob/8d54516/pkg/operator/oidcdiscoveryendpoint/controller.go#L244-L271 - // This causes the previously issued to tokens to be invalid. This transition should only happen in 4.6 and the name should - // be stabl-ish from 4.6 to 4.7, so we can go back to this dynamic client without issues. - if false && shouldTurnOnDynamicClient(c.Client) { + if shouldTurnOnDynamicClient(c.Client) { klog.V(1).Infof("using dynamic client builder") //Dynamic builder will use TokenRequest feature and refresh service account token periodically clientBuilder = controller.NewDynamicClientBuilder( @@ -259,10 +245,6 @@ func Run(c *config.CompletedConfig, stopCh <-chan struct{}) error { } saTokenControllerInitFunc := serviceAccountTokenControllerStarter{rootClientBuilder: rootClientBuilder}.startServiceAccountTokenController - if err := createPVRecyclerSA(c.OpenShiftContext.OpenShiftConfig, rootClientBuilder); err != nil { - klog.Fatalf("error creating recycler serviceaccount: %v", err) - } - if err := StartControllers(controllerContext, saTokenControllerInitFunc, NewControllerInitializers(controllerContext.LoopMode), unsecuredMux); err != nil { klog.Fatalf("error starting controllers: %v", err) } @@ -300,13 +282,7 @@ func Run(c *config.CompletedConfig, stopCh <-chan struct{}) error { klog.Fatalf("error creating lock: %v", err) } - leCtx, cancel := context.WithCancel(context.Background()) - defer cancel() - go func() { - <-stopCh - cancel() - }() - leaderelection.RunOrDie(leCtx, leaderelection.LeaderElectionConfig{ + leaderelection.RunOrDie(context.TODO(), leaderelection.LeaderElectionConfig{ Lock: rl, LeaseDuration: c.ComponentConfig.Generic.LeaderElection.LeaseDuration.Duration, RenewDeadline: c.ComponentConfig.Generic.LeaderElection.RenewDeadline.Duration, @@ -314,28 +290,17 @@ func Run(c *config.CompletedConfig, stopCh <-chan struct{}) error { Callbacks: leaderelection.LeaderCallbacks{ OnStartedLeading: run, OnStoppedLeading: func() { - select { - case <-stopCh: - // We were asked to terminate. Exit 0. - klog.Info("Requested to terminate. Exiting.") - os.Exit(0) - default: - // We lost the lock. - klog.Exitf("leaderelection lost") - } + klog.Fatalf("leaderelection lost") }, }, - WatchDog: electionChecker, - Name: "kube-controller-manager", - ReleaseOnCancel: true, + WatchDog: electionChecker, + Name: "kube-controller-manager", }) panic("unreachable") } // ControllerContext defines the context object for controller type ControllerContext struct { - OpenShiftContext config.OpenShiftContext - // ClientBuilder will provide a client for this controller to use ClientBuilder controller.ControllerClientBuilder @@ -498,12 +463,7 @@ func GetAvailableResources(clientBuilder controller.ControllerClientBuilder) (ma // the shared-informers client and token controller. func CreateControllerContext(s *config.CompletedConfig, rootClientBuilder, clientBuilder controller.ControllerClientBuilder, stop <-chan struct{}) (ControllerContext, error) { versionedClient := rootClientBuilder.ClientOrDie("shared-informers") - var sharedInformers informers.SharedInformerFactory - if InformerFactoryOverride == nil { - sharedInformers = informers.NewSharedInformerFactory(versionedClient, ResyncPeriod(s)()) - } else { - sharedInformers = InformerFactoryOverride - } + sharedInformers := informers.NewSharedInformerFactory(versionedClient, ResyncPeriod(s)()) metadataClient := metadata.NewForConfigOrDie(rootClientBuilder.ConfigOrDie("metadata-informers")) metadataInformers := metadatainformer.NewSharedInformerFactory(metadataClient, ResyncPeriod(s)()) @@ -534,7 +494,6 @@ func CreateControllerContext(s *config.CompletedConfig, rootClientBuilder, clien } ctx := ControllerContext{ - OpenShiftContext: s.OpenShiftContext, ClientBuilder: clientBuilder, InformerFactory: sharedInformers, ObjectOrMetadataInformerFactory: controller.NewInformerFactory(sharedInformers, metadataInformers), @@ -632,10 +591,10 @@ func (c serviceAccountTokenControllerStarter) startServiceAccountTokenController ctx.InformerFactory.Core().V1().ServiceAccounts(), ctx.InformerFactory.Core().V1().Secrets(), c.rootClientBuilder.ClientOrDie("tokens-controller"), - applyOpenShiftServiceServingCertCA(serviceaccountcontroller.TokensControllerOptions{ + serviceaccountcontroller.TokensControllerOptions{ TokenGenerator: tokenGenerator, RootCA: rootCA, - }), + }, ) if err != nil { return nil, true, fmt.Errorf("error creating Tokens controller: %v", err) diff --git a/cmd/kube-controller-manager/app/options/options.go b/cmd/kube-controller-manager/app/options/options.go index d57cf5232e924..e36bc8ecde5b6 100644 --- a/cmd/kube-controller-manager/app/options/options.go +++ b/cmd/kube-controller-manager/app/options/options.go @@ -93,7 +93,6 @@ type KubeControllerManagerOptions struct { Master string Kubeconfig string ShowHiddenMetricsForVersion string - OpenShiftContext kubecontrollerconfig.OpenShiftContext } // NewKubeControllerManagerOptions creates a new KubeControllerManagerOptions with a default config. @@ -261,11 +260,6 @@ func (s *KubeControllerManagerOptions) Flags(allControllers []string, disabledBy fs := fss.FlagSet("misc") fs.StringVar(&s.Master, "master", s.Master, "The address of the Kubernetes API server (overrides any value in kubeconfig).") fs.StringVar(&s.Kubeconfig, "kubeconfig", s.Kubeconfig, "Path to kubeconfig file with authorization and master location information.") - var dummy string - fs.MarkDeprecated("insecure-experimental-approve-all-kubelet-csrs-for-group", "This flag does nothing.") - fs.StringVar(&dummy, "insecure-experimental-approve-all-kubelet-csrs-for-group", "", "This flag does nothing.") - fs.StringVar(&s.OpenShiftContext.OpenShiftConfig, "openshift-config", s.OpenShiftContext.OpenShiftConfig, "indicates that this process should be compatible with openshift start master") - fs.MarkHidden("openshift-config") utilfeature.DefaultMutableFeatureGate.AddFlag(fss.FlagSet("generic")) return fss @@ -368,8 +362,6 @@ func (s *KubeControllerManagerOptions) ApplyTo(c *kubecontrollerconfig.Config) e c.ComponentConfig.Generic.Port = int32(s.InsecureServing.BindPort) c.ComponentConfig.Generic.Address = s.InsecureServing.BindAddress.String() - c.OpenShiftContext = s.OpenShiftContext - return nil } diff --git a/cmd/kube-controller-manager/app/patch.go b/cmd/kube-controller-manager/app/patch.go deleted file mode 100644 index b1cb1fed47af6..0000000000000 --- a/cmd/kube-controller-manager/app/patch.go +++ /dev/null @@ -1,70 +0,0 @@ -package app - -import ( - "path" - - "github.com/spf13/cobra" - - "k8s.io/client-go/informers" - cliflag "k8s.io/component-base/cli/flag" - "k8s.io/klog/v2" - "k8s.io/kubernetes/cmd/kube-controller-manager/app/config" - "k8s.io/kubernetes/cmd/kube-controller-manager/app/options" -) - -var InformerFactoryOverride informers.SharedInformerFactory - -func ShimForOpenShift(controllerManagerOptions *options.KubeControllerManagerOptions, controllerManager *config.Config) error { - if len(controllerManager.OpenShiftContext.OpenShiftConfig) == 0 { - return nil - } - - // TODO this gets removed when no longer take flags and no longer build a recycler template - openshiftConfig, err := getOpenShiftConfig(controllerManager.OpenShiftContext.OpenShiftConfig) - if err != nil { - return err - } - - // TODO this should be replaced by using a flex volume to inject service serving cert CAs into pods instead of adding it to the sa token - if err := applyOpenShiftServiceServingCertCAFunc(path.Dir(controllerManager.OpenShiftContext.OpenShiftConfig), openshiftConfig); err != nil { - return err - } - - // skip GC on some openshift resources - // TODO this should be replaced by discovery information in some way - if err := applyOpenShiftGCConfig(controllerManager); err != nil { - return err - } - - // Overwrite the informers, because we have our custom generic informers for quota. - // TODO update quota to create its own informer like garbage collection - if informers, err := newInformerFactory(controllerManager.Kubeconfig); err != nil { - return err - } else { - InformerFactoryOverride = informers - } - - return nil -} - -func ShimFlagsForOpenShift(controllerManagerOptions *options.KubeControllerManagerOptions, cmd *cobra.Command) error { - if len(controllerManagerOptions.OpenShiftContext.OpenShiftConfig) == 0 { - return nil - } - - // TODO this gets removed when no longer take flags and no longer build a recycler template - openshiftConfig, err := getOpenShiftConfig(controllerManagerOptions.OpenShiftContext.OpenShiftConfig) - if err != nil { - return err - } - // apply the config based controller manager flags. They will override. - // TODO this should be replaced by the installer setting up the flags for us - if err := applyOpenShiftConfigFlags(controllerManagerOptions, openshiftConfig, cmd); err != nil { - return err - } - - klog.V(1).Infof("Flags after OpenShift shims:") - cliflag.PrintFlags(cmd.Flags()) - - return nil -} diff --git a/cmd/kube-controller-manager/app/patch_flags.go b/cmd/kube-controller-manager/app/patch_flags.go deleted file mode 100644 index f3a7922993607..0000000000000 --- a/cmd/kube-controller-manager/app/patch_flags.go +++ /dev/null @@ -1,118 +0,0 @@ -package app - -import ( - "fmt" - "io/ioutil" - - "github.com/spf13/cobra" - "github.com/spf13/pflag" - - kerrors "k8s.io/apimachinery/pkg/util/errors" - "k8s.io/apimachinery/pkg/util/json" - "k8s.io/apimachinery/pkg/util/validation/field" - kyaml "k8s.io/apimachinery/pkg/util/yaml" - "k8s.io/kubernetes/cmd/kube-controller-manager/app/options" -) - -func getOpenShiftConfig(configFile string) (map[string]interface{}, error) { - configBytes, err := ioutil.ReadFile(configFile) - if err != nil { - return nil, err - } - jsonBytes, err := kyaml.ToJSON(configBytes) - if err != nil { - return nil, err - } - config := map[string]interface{}{} - if err := json.Unmarshal(jsonBytes, &config); err != nil { - return nil, err - } - - return config, nil -} - -func applyOpenShiftConfigFlags(controllerManagerOptions *options.KubeControllerManagerOptions, openshiftConfig map[string]interface{}, cmd *cobra.Command) error { - if err := applyOpenShiftConfigControllerArgs(controllerManagerOptions, openshiftConfig, cmd); err != nil { - return err - } - if err := applyOpenShiftConfigDefaultProjectSelector(controllerManagerOptions, openshiftConfig); err != nil { - return err - } - if err := applyOpenShiftConfigKubeDefaultProjectSelector(controllerManagerOptions, openshiftConfig); err != nil { - return err - } - return nil -} - -func applyOpenShiftConfigDefaultProjectSelector(controllerManagerOptions *options.KubeControllerManagerOptions, openshiftConfig map[string]interface{}) error { - projectConfig, ok := openshiftConfig["projectConfig"] - if !ok { - return nil - } - - castProjectConfig := projectConfig.(map[string]interface{}) - defaultNodeSelector, ok := castProjectConfig["defaultNodeSelector"] - if !ok { - return nil - } - controllerManagerOptions.OpenShiftContext.OpenShiftDefaultProjectNodeSelector = defaultNodeSelector.(string) - - return nil -} - -// this is an optimization. It can be filled in later. Looks like there are several special cases for this plugin upstream -// TODO find this -func applyOpenShiftConfigKubeDefaultProjectSelector(controllerManagerOptions *options.KubeControllerManagerOptions, openshiftConfig map[string]interface{}) error { - controllerManagerOptions.OpenShiftContext.KubeDefaultProjectNodeSelector = "" - return nil -} - -func applyOpenShiftConfigControllerArgs(controllerManagerOptions *options.KubeControllerManagerOptions, openshiftConfig map[string]interface{}, cmd *cobra.Command) error { - var controllerArgs interface{} - kubeMasterConfig, ok := openshiftConfig["kubernetesMasterConfig"] - if !ok { - controllerArgs, ok = openshiftConfig["extendedArguments"] - if !ok || controllerArgs == nil { - return nil - } - } else { - castKubeMasterConfig := kubeMasterConfig.(map[string]interface{}) - controllerArgs, ok = castKubeMasterConfig["controllerArguments"] - if !ok || controllerArgs == nil { - controllerArgs, ok = openshiftConfig["extendedArguments"] - if !ok || controllerArgs == nil { - return nil - } - } - } - - args := map[string][]string{} - for key, value := range controllerArgs.(map[string]interface{}) { - for _, arrayValue := range value.([]interface{}) { - args[key] = append(args[key], arrayValue.(string)) - } - } - if err := applyFlags(args, cmd.Flags()); len(err) > 0 { - return kerrors.NewAggregate(err) - } - return nil -} - -// applyFlags stores the provided arguments onto a flag set, reporting any errors -// encountered during the process. -func applyFlags(args map[string][]string, flags *pflag.FlagSet) []error { - var errs []error - for key, value := range args { - if flag := flags.Lookup(key); flag != nil { - for _, s := range value { - if err := flag.Value.Set(s); err != nil { - errs = append(errs, field.Invalid(field.NewPath(key), s, fmt.Sprintf("could not be set: %v", err))) - break - } - } - } else { - errs = append(errs, field.Invalid(field.NewPath("flag"), key, "is not a valid flag")) - } - } - return errs -} diff --git a/cmd/kube-controller-manager/app/patch_gc.go b/cmd/kube-controller-manager/app/patch_gc.go deleted file mode 100644 index 7416bbca5f3d1..0000000000000 --- a/cmd/kube-controller-manager/app/patch_gc.go +++ /dev/null @@ -1,40 +0,0 @@ -package app - -import ( - gcconfig "k8s.io/kubernetes/pkg/controller/garbagecollector/config" - - "k8s.io/kubernetes/cmd/kube-controller-manager/app/config" -) - -func applyOpenShiftGCConfig(controllerManager *config.Config) error { - // TODO make this configurable or discoverable. This is going to prevent us from running the stock GC controller - // IF YOU ADD ANYTHING TO THIS LIST, MAKE SURE THAT YOU UPDATE THEIR STRATEGIES TO PREVENT GC FINALIZERS - controllerManager.ComponentConfig.GarbageCollectorController.GCIgnoredResources = append(controllerManager.ComponentConfig.GarbageCollectorController.GCIgnoredResources, - // explicitly disabled from GC for now - not enough value to track them - gcconfig.GroupResource{Group: "authorization.openshift.io", Resource: "rolebindingrestrictions"}, - gcconfig.GroupResource{Group: "network.openshift.io", Resource: "clusternetworks"}, - gcconfig.GroupResource{Group: "network.openshift.io", Resource: "egressnetworkpolicies"}, - gcconfig.GroupResource{Group: "network.openshift.io", Resource: "hostsubnets"}, - gcconfig.GroupResource{Group: "network.openshift.io", Resource: "netnamespaces"}, - gcconfig.GroupResource{Group: "oauth.openshift.io", Resource: "oauthclientauthorizations"}, - gcconfig.GroupResource{Group: "oauth.openshift.io", Resource: "oauthclients"}, - gcconfig.GroupResource{Group: "quota.openshift.io", Resource: "clusterresourcequotas"}, - gcconfig.GroupResource{Group: "user.openshift.io", Resource: "groups"}, - gcconfig.GroupResource{Group: "user.openshift.io", Resource: "identities"}, - gcconfig.GroupResource{Group: "user.openshift.io", Resource: "users"}, - gcconfig.GroupResource{Group: "image.openshift.io", Resource: "images"}, - - // virtual resource - gcconfig.GroupResource{Group: "project.openshift.io", Resource: "projects"}, - // virtual and unwatchable resource, surfaced via rbac.authorization.k8s.io objects - gcconfig.GroupResource{Group: "authorization.openshift.io", Resource: "clusterroles"}, - gcconfig.GroupResource{Group: "authorization.openshift.io", Resource: "clusterrolebindings"}, - gcconfig.GroupResource{Group: "authorization.openshift.io", Resource: "roles"}, - gcconfig.GroupResource{Group: "authorization.openshift.io", Resource: "rolebindings"}, - // these resources contain security information in their names, and we don't need to track them - gcconfig.GroupResource{Group: "oauth.openshift.io", Resource: "oauthaccesstokens"}, - gcconfig.GroupResource{Group: "oauth.openshift.io", Resource: "oauthauthorizetokens"}, - ) - - return nil -} diff --git a/cmd/kube-controller-manager/app/patch_informers_openshift.go b/cmd/kube-controller-manager/app/patch_informers_openshift.go deleted file mode 100644 index 4288a488b83f9..0000000000000 --- a/cmd/kube-controller-manager/app/patch_informers_openshift.go +++ /dev/null @@ -1,285 +0,0 @@ -package app - -import ( - "time" - - "k8s.io/klog/v2" - - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/informers" - "k8s.io/client-go/kubernetes" - "k8s.io/client-go/rest" - - appclient "github.com/openshift/client-go/apps/clientset/versioned" - appinformer "github.com/openshift/client-go/apps/informers/externalversions" - authorizationclient "github.com/openshift/client-go/authorization/clientset/versioned" - authorizationinformer "github.com/openshift/client-go/authorization/informers/externalversions" - buildclient "github.com/openshift/client-go/build/clientset/versioned" - buildinformer "github.com/openshift/client-go/build/informers/externalversions" - imageclient "github.com/openshift/client-go/image/clientset/versioned" - imageinformer "github.com/openshift/client-go/image/informers/externalversions" - networkclient "github.com/openshift/client-go/network/clientset/versioned" - networkinformer "github.com/openshift/client-go/network/informers/externalversions" - oauthclient "github.com/openshift/client-go/oauth/clientset/versioned" - oauthinformer "github.com/openshift/client-go/oauth/informers/externalversions" - quotaclient "github.com/openshift/client-go/quota/clientset/versioned" - quotainformer "github.com/openshift/client-go/quota/informers/externalversions" - routeclient "github.com/openshift/client-go/route/clientset/versioned" - routeinformer "github.com/openshift/client-go/route/informers/externalversions" - securityclient "github.com/openshift/client-go/security/clientset/versioned" - securityinformer "github.com/openshift/client-go/security/informers/externalversions" - templateclient "github.com/openshift/client-go/template/clientset/versioned" - templateinformer "github.com/openshift/client-go/template/informers/externalversions" - userclient "github.com/openshift/client-go/user/clientset/versioned" - userinformer "github.com/openshift/client-go/user/informers/externalversions" -) - -type externalKubeInformersWithExtraGenerics struct { - informers.SharedInformerFactory - genericResourceInformer GenericResourceInformer -} - -func (i externalKubeInformersWithExtraGenerics) ForResource(resource schema.GroupVersionResource) (informers.GenericInformer, error) { - return i.genericResourceInformer.ForResource(resource) -} - -func (i externalKubeInformersWithExtraGenerics) Start(stopCh <-chan struct{}) { - i.SharedInformerFactory.Start(stopCh) - i.genericResourceInformer.Start(stopCh) -} - -type GenericResourceInformer interface { - ForResource(resource schema.GroupVersionResource) (informers.GenericInformer, error) - Start(stopCh <-chan struct{}) -} - -// genericResourceInformerFunc will handle a cast to a matching type -type genericResourceInformerFunc func(resource schema.GroupVersionResource) (informers.GenericInformer, error) - -func (fn genericResourceInformerFunc) ForResource(resource schema.GroupVersionResource) (informers.GenericInformer, error) { - return fn(resource) -} - -// this is a temporary condition until we rewrite enough of generation to auto-conform to the required interface and no longer need the internal version shim -func (fn genericResourceInformerFunc) Start(stopCh <-chan struct{}) {} - -type genericInformers struct { - // this is a temporary condition until we rewrite enough of generation to auto-conform to the required interface and no longer need the internal version shim - startFn func(stopCh <-chan struct{}) - generic []GenericResourceInformer -} - -func newGenericInformers(startFn func(stopCh <-chan struct{}), informers ...GenericResourceInformer) genericInformers { - return genericInformers{ - startFn: startFn, - generic: informers, - } -} - -func (i genericInformers) ForResource(resource schema.GroupVersionResource) (informers.GenericInformer, error) { - var firstErr error - for _, generic := range i.generic { - informer, err := generic.ForResource(resource) - if err == nil { - return informer, nil - } - if firstErr == nil { - firstErr = err - } - } - klog.V(4).Infof("Couldn't find informer for %v", resource) - return nil, firstErr -} - -func (i genericInformers) Start(stopCh <-chan struct{}) { - i.startFn(stopCh) - for _, generic := range i.generic { - generic.Start(stopCh) - } -} - -// informers is a convenient way for us to keep track of the informers, but -// is intentionally private. We don't want to leak it out further than this package. -// Everything else should say what it wants. -type combinedInformers struct { - externalKubeInformers informers.SharedInformerFactory - appInformers appinformer.SharedInformerFactory - authorizationInformers authorizationinformer.SharedInformerFactory - buildInformers buildinformer.SharedInformerFactory - imageInformers imageinformer.SharedInformerFactory - networkInformers networkinformer.SharedInformerFactory - oauthInformers oauthinformer.SharedInformerFactory - quotaInformers quotainformer.SharedInformerFactory - routeInformers routeinformer.SharedInformerFactory - securityInformers securityinformer.SharedInformerFactory - templateInformers templateinformer.SharedInformerFactory - userInformers userinformer.SharedInformerFactory -} - -func newInformerFactory(clientConfig *rest.Config) (informers.SharedInformerFactory, error) { - kubeClient, err := kubernetes.NewForConfig(clientConfig) - if err != nil { - return nil, err - } - appClient, err := appclient.NewForConfig(clientConfig) - if err != nil { - return nil, err - } - authorizationClient, err := authorizationclient.NewForConfig(clientConfig) - if err != nil { - return nil, err - } - buildClient, err := buildclient.NewForConfig(clientConfig) - if err != nil { - return nil, err - } - imageClient, err := imageclient.NewForConfig(clientConfig) - if err != nil { - return nil, err - } - networkClient, err := networkclient.NewForConfig(clientConfig) - if err != nil { - return nil, err - } - oauthClient, err := oauthclient.NewForConfig(clientConfig) - if err != nil { - return nil, err - } - quotaClient, err := quotaclient.NewForConfig(clientConfig) - if err != nil { - return nil, err - } - routerClient, err := routeclient.NewForConfig(clientConfig) - if err != nil { - return nil, err - } - securityClient, err := securityclient.NewForConfig(clientConfig) - if err != nil { - return nil, err - } - templateClient, err := templateclient.NewForConfig(clientConfig) - if err != nil { - return nil, err - } - userClient, err := userclient.NewForConfig(clientConfig) - if err != nil { - return nil, err - } - - // TODO find a single place to create and start informers. During the 1.7 rebase this will come more naturally in a config object, - // before then we should try to eliminate our direct to storage access. It's making us do weird things. - const defaultInformerResyncPeriod = 10 * time.Minute - - ci := &combinedInformers{ - externalKubeInformers: informers.NewSharedInformerFactory(kubeClient, defaultInformerResyncPeriod), - appInformers: appinformer.NewSharedInformerFactory(appClient, defaultInformerResyncPeriod), - authorizationInformers: authorizationinformer.NewSharedInformerFactory(authorizationClient, defaultInformerResyncPeriod), - buildInformers: buildinformer.NewSharedInformerFactory(buildClient, defaultInformerResyncPeriod), - imageInformers: imageinformer.NewSharedInformerFactory(imageClient, defaultInformerResyncPeriod), - networkInformers: networkinformer.NewSharedInformerFactory(networkClient, defaultInformerResyncPeriod), - oauthInformers: oauthinformer.NewSharedInformerFactory(oauthClient, defaultInformerResyncPeriod), - quotaInformers: quotainformer.NewSharedInformerFactory(quotaClient, defaultInformerResyncPeriod), - routeInformers: routeinformer.NewSharedInformerFactory(routerClient, defaultInformerResyncPeriod), - securityInformers: securityinformer.NewSharedInformerFactory(securityClient, defaultInformerResyncPeriod), - templateInformers: templateinformer.NewSharedInformerFactory(templateClient, defaultInformerResyncPeriod), - userInformers: userinformer.NewSharedInformerFactory(userClient, defaultInformerResyncPeriod), - } - - return externalKubeInformersWithExtraGenerics{ - SharedInformerFactory: ci.GetExternalKubeInformers(), - genericResourceInformer: ci.ToGenericInformer(), - }, nil -} - -func (i *combinedInformers) GetExternalKubeInformers() informers.SharedInformerFactory { - return i.externalKubeInformers -} -func (i *combinedInformers) GetAppInformers() appinformer.SharedInformerFactory { - return i.appInformers -} -func (i *combinedInformers) GetAuthorizationInformers() authorizationinformer.SharedInformerFactory { - return i.authorizationInformers -} -func (i *combinedInformers) GetBuildInformers() buildinformer.SharedInformerFactory { - return i.buildInformers -} -func (i *combinedInformers) GetImageInformers() imageinformer.SharedInformerFactory { - return i.imageInformers -} -func (i *combinedInformers) GetNetworkInformers() networkinformer.SharedInformerFactory { - return i.networkInformers -} -func (i *combinedInformers) GetOauthInformers() oauthinformer.SharedInformerFactory { - return i.oauthInformers -} -func (i *combinedInformers) GetQuotaInformers() quotainformer.SharedInformerFactory { - return i.quotaInformers -} -func (i *combinedInformers) GetRouteInformers() routeinformer.SharedInformerFactory { - return i.routeInformers -} -func (i *combinedInformers) GetSecurityInformers() securityinformer.SharedInformerFactory { - return i.securityInformers -} -func (i *combinedInformers) GetTemplateInformers() templateinformer.SharedInformerFactory { - return i.templateInformers -} -func (i *combinedInformers) GetUserInformers() userinformer.SharedInformerFactory { - return i.userInformers -} - -// Start initializes all requested informers. -func (i *combinedInformers) Start(stopCh <-chan struct{}) { - i.externalKubeInformers.Start(stopCh) - i.appInformers.Start(stopCh) - i.authorizationInformers.Start(stopCh) - i.buildInformers.Start(stopCh) - i.imageInformers.Start(stopCh) - i.networkInformers.Start(stopCh) - i.oauthInformers.Start(stopCh) - i.quotaInformers.Start(stopCh) - i.routeInformers.Start(stopCh) - i.securityInformers.Start(stopCh) - i.templateInformers.Start(stopCh) - i.userInformers.Start(stopCh) -} - -func (i *combinedInformers) ToGenericInformer() GenericResourceInformer { - return newGenericInformers( - i.Start, - i.GetExternalKubeInformers(), - genericResourceInformerFunc(func(resource schema.GroupVersionResource) (informers.GenericInformer, error) { - return i.GetAppInformers().ForResource(resource) - }), - genericResourceInformerFunc(func(resource schema.GroupVersionResource) (informers.GenericInformer, error) { - return i.GetAuthorizationInformers().ForResource(resource) - }), - genericResourceInformerFunc(func(resource schema.GroupVersionResource) (informers.GenericInformer, error) { - return i.GetBuildInformers().ForResource(resource) - }), - genericResourceInformerFunc(func(resource schema.GroupVersionResource) (informers.GenericInformer, error) { - return i.GetImageInformers().ForResource(resource) - }), - genericResourceInformerFunc(func(resource schema.GroupVersionResource) (informers.GenericInformer, error) { - return i.GetNetworkInformers().ForResource(resource) - }), - genericResourceInformerFunc(func(resource schema.GroupVersionResource) (informers.GenericInformer, error) { - return i.GetOauthInformers().ForResource(resource) - }), - genericResourceInformerFunc(func(resource schema.GroupVersionResource) (informers.GenericInformer, error) { - return i.GetQuotaInformers().ForResource(resource) - }), - genericResourceInformerFunc(func(resource schema.GroupVersionResource) (informers.GenericInformer, error) { - return i.GetRouteInformers().ForResource(resource) - }), - genericResourceInformerFunc(func(resource schema.GroupVersionResource) (informers.GenericInformer, error) { - return i.GetSecurityInformers().ForResource(resource) - }), - genericResourceInformerFunc(func(resource schema.GroupVersionResource) (informers.GenericInformer, error) { - return i.GetTemplateInformers().ForResource(resource) - }), - genericResourceInformerFunc(func(resource schema.GroupVersionResource) (informers.GenericInformer, error) { - return i.GetUserInformers().ForResource(resource) - }), - ) -} diff --git a/cmd/kube-controller-manager/app/patch_recycler.go b/cmd/kube-controller-manager/app/patch_recycler.go deleted file mode 100644 index 1660db5676c02..0000000000000 --- a/cmd/kube-controller-manager/app/patch_recycler.go +++ /dev/null @@ -1,38 +0,0 @@ -package app - -import ( - "context" - - v1 "k8s.io/api/core/v1" - apierrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/kubernetes/pkg/controller" -) - -func createPVRecyclerSA(openshiftConfig string, clientBuilder controller.ControllerClientBuilder) error { - if len(openshiftConfig) == 0 { - return nil - } - - // the service account passed for the recyclable volume plugins needs to exist. We want to do this via the init function, but its a kube init function - // for the rebase, create that service account here - coreClient, err := clientBuilder.Client("pv-recycler-controller-creator") - if err != nil { - return err - } - - // Create the namespace if we can't verify it exists. - // Tolerate errors, since we don't know whether this component has namespace creation permissions. - _, _ = coreClient.CoreV1().Namespaces().Create(context.TODO(), &v1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "openshift-infra"}}, metav1.CreateOptions{}) - - // Create the service account - _, err = coreClient.CoreV1().ServiceAccounts("openshift-infra").Create(context.TODO(), &v1.ServiceAccount{ObjectMeta: metav1.ObjectMeta{Namespace: "openshift-infra", Name: "pv-recycler-controller"}}, metav1.CreateOptions{}) - if apierrors.IsAlreadyExists(err) { - return nil - } - if err != nil { - return err - } - - return nil -} diff --git a/cmd/kube-controller-manager/app/patch_satoken.go b/cmd/kube-controller-manager/app/patch_satoken.go deleted file mode 100644 index 82f1bb9b3ff1a..0000000000000 --- a/cmd/kube-controller-manager/app/patch_satoken.go +++ /dev/null @@ -1,87 +0,0 @@ -package app - -import ( - "fmt" - "io/ioutil" - "path/filepath" - - certutil "k8s.io/client-go/util/cert" - serviceaccountcontroller "k8s.io/kubernetes/pkg/controller/serviceaccount" -) - -var applyOpenShiftServiceServingCertCA = func(in serviceaccountcontroller.TokensControllerOptions) serviceaccountcontroller.TokensControllerOptions { - return in -} - -func applyOpenShiftServiceServingCertCAFunc(openshiftConfigBase string, openshiftConfig map[string]interface{}) error { - serviceServingCertCAFilename := getServiceServingCertCAFilename(openshiftConfig) - if len(serviceServingCertCAFilename) == 0 { - return nil - } - - resolvePath(&serviceServingCertCAFilename, openshiftConfigBase) - - serviceServingCA, err := ioutil.ReadFile(serviceServingCertCAFilename) - if err != nil { - return fmt.Errorf("error reading ca file for Service Serving Certificate Signer: %s: %v", serviceServingCertCAFilename, err) - } - if _, err := certutil.ParseCertsPEM(serviceServingCA); err != nil { - return fmt.Errorf("error parsing ca file for Service Serving Certificate Signer: %s: %v", serviceServingCertCAFilename, err) - } - - applyOpenShiftServiceServingCertCA = func(controllerOptions serviceaccountcontroller.TokensControllerOptions) serviceaccountcontroller.TokensControllerOptions { - if len(serviceServingCA) == 0 { - return controllerOptions - } - - // if we have a rootCA bundle add that too. The rootCA will be used when hitting the default master service, since those are signed - // using a different CA by default. The rootCA's key is more closely guarded than ours and if it is compromised, that power could - // be used to change the trusted signers for every pod anyway, so we're already effectively trusting it. - if len(controllerOptions.RootCA) > 0 { - controllerOptions.ServiceServingCA = append(controllerOptions.ServiceServingCA, controllerOptions.RootCA...) - controllerOptions.ServiceServingCA = append(controllerOptions.ServiceServingCA, []byte("\n")...) - } - controllerOptions.ServiceServingCA = append(controllerOptions.ServiceServingCA, serviceServingCA...) - - return controllerOptions - } - - return nil -} - -func getServiceServingCertCAFilename(config map[string]interface{}) string { - controllerConfig, ok := config["controllerConfig"] - if !ok { - sscConfig, ok := config["serviceServingCert"] - if !ok { - return "" - } - sscConfigMap := sscConfig.(map[string]interface{}) - return sscConfigMap["certFile"].(string) - } - controllerConfigMap := controllerConfig.(map[string]interface{}) - sscConfig, ok := controllerConfigMap["serviceServingCert"] - if !ok { - return "" - } - sscConfigMap := sscConfig.(map[string]interface{}) - signerConfig, ok := sscConfigMap["signer"] - if !ok { - return "" - } - signerConfigMap := signerConfig.(map[string]interface{}) - return signerConfigMap["certFile"].(string) -} - -// resolvePath updates the given refs to be absolute paths, relative to the given base directory -func resolvePath(ref *string, base string) error { - // Don't resolve empty paths - if len(*ref) > 0 { - // Don't resolve absolute paths - if !filepath.IsAbs(*ref) { - *ref = filepath.Join(base, *ref) - } - } - - return nil -} diff --git a/cmd/kube-proxy/app/server.go b/cmd/kube-proxy/app/server.go index c5739efd11b8b..b4293c05cee70 100644 --- a/cmd/kube-proxy/app/server.go +++ b/cmd/kube-proxy/app/server.go @@ -801,11 +801,20 @@ func getConntrackMax(config kubeproxyconfig.KubeProxyConntrackConfiguration) (in return 0, nil } -// CleanupAndExit remove iptables rules and exit if success return nil +// CleanupAndExit remove iptables rules and ipset/ipvs rules in ipvs proxy mode +// and exit if success return nil func (s *ProxyServer) CleanupAndExit() error { - encounteredError := userspace.CleanupLeftovers(s.IptInterface) - encounteredError = iptables.CleanupLeftovers(s.IptInterface) || encounteredError - encounteredError = ipvs.CleanupLeftovers(s.IpvsInterface, s.IptInterface, s.IpsetInterface, s.CleanupIPVS) || encounteredError + // cleanup IPv6 and IPv4 iptables rules + ipts := []utiliptables.Interface{ + utiliptables.New(s.execer, utiliptables.ProtocolIPv4), + utiliptables.New(s.execer, utiliptables.ProtocolIPv6), + } + var encounteredError bool + for _, ipt := range ipts { + encounteredError = userspace.CleanupLeftovers(ipt) || encounteredError + encounteredError = iptables.CleanupLeftovers(ipt) || encounteredError + encounteredError = ipvs.CleanupLeftovers(s.IpvsInterface, ipt, s.IpsetInterface, s.CleanupIPVS) || encounteredError + } if encounteredError { return errors.New("encountered an error while tearing down rules") } diff --git a/cmd/kube-proxy/app/server_others.go b/cmd/kube-proxy/app/server_others.go index eb69ea27fb916..50461fca19861 100644 --- a/cmd/kube-proxy/app/server_others.go +++ b/cmd/kube-proxy/app/server_others.go @@ -91,26 +91,6 @@ func newProxyServer( return nil, fmt.Errorf("unable to register configz: %s", err) } - hostname, err := utilnode.GetHostname(config.HostnameOverride) - if err != nil { - return nil, err - } - - client, eventClient, err := createClients(config.ClientConnection, master) - if err != nil { - return nil, err - } - - nodeIP := detectNodeIP(client, hostname, config.BindAddress) - - protocol := utiliptables.ProtocolIPv4 - if utilsnet.IsIPv6(nodeIP) { - klog.V(0).Infof("kube-proxy node IP is an IPv6 address (%s), assume IPv6 operation", nodeIP.String()) - protocol = utiliptables.ProtocolIPv6 - } else { - klog.V(0).Infof("kube-proxy node IP is an IPv4 address (%s), assume IPv4 operation", nodeIP.String()) - } - var iptInterface utiliptables.Interface var ipvsInterface utilipvs.Interface var kernelHandler ipvs.KernelHandler @@ -119,7 +99,6 @@ func newProxyServer( // Create a iptables utils. execer := exec.New() - iptInterface = utiliptables.New(execer, protocol) kernelHandler = ipvs.NewLinuxKernelHandler() ipsetInterface = utilipset.New(execer) canUseIPVS, err := ipvs.CanUseIPVSProxier(kernelHandler, ipsetInterface) @@ -135,7 +114,6 @@ func newProxyServer( if cleanupAndExit { return &ProxyServer{ execer: execer, - IptInterface: iptInterface, IpvsInterface: ipvsInterface, IpsetInterface: ipsetInterface, }, nil @@ -145,6 +123,27 @@ func newProxyServer( metrics.SetShowHidden() } + hostname, err := utilnode.GetHostname(config.HostnameOverride) + if err != nil { + return nil, err + } + + client, eventClient, err := createClients(config.ClientConnection, master) + if err != nil { + return nil, err + } + + nodeIP := detectNodeIP(client, hostname, config.BindAddress) + protocol := utiliptables.ProtocolIPv4 + if utilsnet.IsIPv6(nodeIP) { + klog.V(0).Infof("kube-proxy node IP is an IPv6 address (%s), assume IPv6 operation", nodeIP.String()) + protocol = utiliptables.ProtocolIPv6 + } else { + klog.V(0).Infof("kube-proxy node IP is an IPv4 address (%s), assume IPv4 operation", nodeIP.String()) + } + + iptInterface = utiliptables.New(execer, protocol) + // Create event recorder eventBroadcaster := record.NewBroadcaster() recorder := eventBroadcaster.NewRecorder(proxyconfigscheme.Scheme, v1.EventSource{Component: "kube-proxy", Host: hostname}) @@ -360,6 +359,12 @@ func newProxyServer( } } + useEndpointSlices := utilfeature.DefaultFeatureGate.Enabled(features.EndpointSliceProxying) + if proxyMode == proxyModeUserspace { + // userspace mode doesn't support endpointslice. + useEndpointSlices = false + } + return &ProxyServer{ Client: client, EventClient: eventClient, @@ -380,7 +385,7 @@ func newProxyServer( OOMScoreAdj: config.OOMScoreAdj, ConfigSyncPeriod: config.ConfigSyncPeriod.Duration, HealthzServer: healthzServer, - UseEndpointSlices: utilfeature.DefaultFeatureGate.Enabled(features.EndpointSliceProxying), + UseEndpointSlices: useEndpointSlices, }, nil } diff --git a/cmd/kube-proxy/app/server_windows.go b/cmd/kube-proxy/app/server_windows.go index 759f04b088649..661e5c1efda92 100644 --- a/cmd/kube-proxy/app/server_windows.go +++ b/cmd/kube-proxy/app/server_windows.go @@ -159,7 +159,11 @@ func newProxyServer(config *proxyconfigapi.KubeProxyConfiguration, cleanupAndExi return nil, fmt.Errorf("unable to create proxier: %v", err) } } - + useEndpointSlices := utilfeature.DefaultFeatureGate.Enabled(features.WindowsEndpointSliceProxying) + if proxyMode == proxyModeUserspace { + // userspace mode doesn't support endpointslice. + useEndpointSlices = false + } return &ProxyServer{ Client: client, EventClient: eventClient, @@ -174,7 +178,7 @@ func newProxyServer(config *proxyconfigapi.KubeProxyConfiguration, cleanupAndExi OOMScoreAdj: config.OOMScoreAdj, ConfigSyncPeriod: config.ConfigSyncPeriod.Duration, HealthzServer: healthzServer, - UseEndpointSlices: utilfeature.DefaultFeatureGate.Enabled(features.WindowsEndpointSliceProxying), + UseEndpointSlices: useEndpointSlices, }, nil } diff --git a/cmd/kube-scheduler/app/options/deprecated.go b/cmd/kube-scheduler/app/options/deprecated.go index 089c510f825e6..71dd3423ee5a6 100644 --- a/cmd/kube-scheduler/app/options/deprecated.go +++ b/cmd/kube-scheduler/app/options/deprecated.go @@ -54,20 +54,20 @@ func (o *DeprecatedOptions) AddFlags(fs *pflag.FlagSet, cfg *kubeschedulerconfig fs.StringVar(&o.PolicyConfigMapNamespace, "policy-configmap-namespace", o.PolicyConfigMapNamespace, "DEPRECATED: the namespace where policy ConfigMap is located. The kube-system namespace will be used if this is not provided or is empty. Note: The scheduler will fail if this is combined with Plugin configs") fs.BoolVar(&o.UseLegacyPolicyConfig, "use-legacy-policy-config", o.UseLegacyPolicyConfig, "DEPRECATED: when set to true, scheduler will ignore policy ConfigMap and uses policy config file. Note: The scheduler will fail if this is combined with Plugin configs") - fs.BoolVar(&cfg.EnableProfiling, "profiling", cfg.EnableProfiling, "DEPRECATED: enable profiling via web interface host:port/debug/pprof/") - fs.BoolVar(&cfg.EnableContentionProfiling, "contention-profiling", cfg.EnableContentionProfiling, "DEPRECATED: enable lock contention profiling, if profiling is enabled") - fs.StringVar(&cfg.ClientConnection.Kubeconfig, "kubeconfig", cfg.ClientConnection.Kubeconfig, "DEPRECATED: path to kubeconfig file with authorization and master location information.") - fs.StringVar(&cfg.ClientConnection.ContentType, "kube-api-content-type", cfg.ClientConnection.ContentType, "DEPRECATED: content type of requests sent to apiserver.") - fs.Float32Var(&cfg.ClientConnection.QPS, "kube-api-qps", cfg.ClientConnection.QPS, "DEPRECATED: QPS to use while talking with kubernetes apiserver") - fs.Int32Var(&cfg.ClientConnection.Burst, "kube-api-burst", cfg.ClientConnection.Burst, "DEPRECATED: burst to use while talking with kubernetes apiserver") - fs.StringVar(&cfg.LeaderElection.ResourceNamespace, "lock-object-namespace", cfg.LeaderElection.ResourceNamespace, "DEPRECATED: define the namespace of the lock object. Will be removed in favor of leader-elect-resource-namespace.") - fs.StringVar(&cfg.LeaderElection.ResourceName, "lock-object-name", cfg.LeaderElection.ResourceName, "DEPRECATED: define the name of the lock object. Will be removed in favor of leader-elect-resource-name") + fs.BoolVar(&cfg.EnableProfiling, "profiling", cfg.EnableProfiling, "DEPRECATED: enable profiling via web interface host:port/debug/pprof/. This parameter is ignored if a config file is specified in --config.") + fs.BoolVar(&cfg.EnableContentionProfiling, "contention-profiling", cfg.EnableContentionProfiling, "DEPRECATED: enable lock contention profiling, if profiling is enabled. This parameter is ignored if a config file is specified in --config.") + fs.StringVar(&cfg.ClientConnection.Kubeconfig, "kubeconfig", cfg.ClientConnection.Kubeconfig, "DEPRECATED: path to kubeconfig file with authorization and master location information. This parameter is ignored if a config file is specified in --config.") + fs.StringVar(&cfg.ClientConnection.ContentType, "kube-api-content-type", cfg.ClientConnection.ContentType, "DEPRECATED: content type of requests sent to apiserver.. This parameter is ignored if a config file is specified in --config.") + fs.Float32Var(&cfg.ClientConnection.QPS, "kube-api-qps", cfg.ClientConnection.QPS, "DEPRECATED: QPS to use while talking with kubernetes apiserver. This parameter is ignored if a config file is specified in --config.") + fs.Int32Var(&cfg.ClientConnection.Burst, "kube-api-burst", cfg.ClientConnection.Burst, "DEPRECATED: burst to use while talking with kubernetes apiserver. This parameter is ignored if a config file is specified in --config.") + fs.StringVar(&cfg.LeaderElection.ResourceNamespace, "lock-object-namespace", cfg.LeaderElection.ResourceNamespace, "DEPRECATED: define the namespace of the lock object. Will be removed in favor of leader-elect-resource-namespace. This parameter is ignored if a config file is specified in --config.") + fs.StringVar(&cfg.LeaderElection.ResourceName, "lock-object-name", cfg.LeaderElection.ResourceName, "DEPRECATED: define the name of the lock object. Will be removed in favor of leader-elect-resource-name. This parameter is ignored if a config file is specified in --config.") fs.Int32Var(&o.HardPodAffinitySymmetricWeight, "hard-pod-affinity-symmetric-weight", o.HardPodAffinitySymmetricWeight, "DEPRECATED: RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule corresponding "+ "to every RequiredDuringScheduling affinity rule. --hard-pod-affinity-symmetric-weight represents the weight of implicit PreferredDuringScheduling affinity rule. Must be in the range 0-100."+ - "This option was moved to the policy configuration file") - fs.StringVar(&o.SchedulerName, "scheduler-name", o.SchedulerName, "DEPRECATED: name of the scheduler, used to select which pods will be processed by this scheduler, based on pod's \"spec.schedulerName\".") + "This parameter is ignored if a config file is specified in --config.") + fs.StringVar(&o.SchedulerName, "scheduler-name", o.SchedulerName, "DEPRECATED: name of the scheduler, used to select which pods will be processed by this scheduler, based on pod's \"spec.schedulerName\".This parameter is ignored if a config file is specified in --config.") // MarkDeprecated hides the flag from the help. We don't want that: // fs.MarkDeprecated("hard-pod-affinity-symmetric-weight", "This option was moved to the policy configuration file") } diff --git a/cmd/kube-scheduler/app/options/insecure_serving.go b/cmd/kube-scheduler/app/options/insecure_serving.go index 9e1677b51162f..68ac17c6403c7 100644 --- a/cmd/kube-scheduler/app/options/insecure_serving.go +++ b/cmd/kube-scheduler/app/options/insecure_serving.go @@ -44,10 +44,10 @@ func (o *CombinedInsecureServingOptions) AddFlags(fs *pflag.FlagSet) { return } - fs.StringVar(&o.BindAddress, "address", o.BindAddress, "DEPRECATED: the IP address on which to listen for the --port port (set to 0.0.0.0 for all IPv4 interfaces and :: for all IPv6 interfaces). See --bind-address instead.") + fs.StringVar(&o.BindAddress, "address", o.BindAddress, "DEPRECATED: the IP address on which to listen for the --port port (set to 0.0.0.0 for all IPv4 interfaces and :: for all IPv6 interfaces). See --bind-address instead. This parameter is ignored if a config file is specified in --config.") // MarkDeprecated hides the flag from the help. We don't want that: // fs.MarkDeprecated("address", "see --bind-address instead.") - fs.IntVar(&o.BindPort, "port", o.BindPort, "DEPRECATED: the port on which to serve HTTP insecurely without authentication and authorization. If 0, don't serve plain HTTP at all. See --secure-port instead.") + fs.IntVar(&o.BindPort, "port", o.BindPort, "DEPRECATED: the port on which to serve HTTP insecurely without authentication and authorization. If 0, don't serve plain HTTP at all. See --secure-port instead. This parameter is ignored if a config file is specified in --config.") // MarkDeprecated hides the flag from the help. We don't want that: // fs.MarkDeprecated("port", "see --secure-port instead.") } diff --git a/cmd/kube-scheduler/app/options/options.go b/cmd/kube-scheduler/app/options/options.go index 06195961c0b4b..9f7d1086627bc 100644 --- a/cmd/kube-scheduler/app/options/options.go +++ b/cmd/kube-scheduler/app/options/options.go @@ -152,12 +152,10 @@ func newDefaultComponentConfig() (*kubeschedulerconfig.KubeSchedulerConfiguratio func (o *Options) Flags() (nfs cliflag.NamedFlagSets) { fs := nfs.FlagSet("misc") fs.StringVar(&o.ConfigFile, "config", o.ConfigFile, `The path to the configuration file. The following flags can overwrite fields in this file: - --address - --port - --use-legacy-policy-config - --policy-configmap + --algorithm-provider --policy-config-file - --algorithm-provider`) + --policy-configmap + --policy-configmap-namespace`) fs.StringVar(&o.WriteConfigTo, "write-config-to", o.WriteConfigTo, "If set, write the configuration values to this file and exit.") fs.StringVar(&o.Master, "master", o.Master, "The address of the Kubernetes API server (overrides any value in kubeconfig)") diff --git a/cmd/kube-scheduler/app/server.go b/cmd/kube-scheduler/app/server.go index 7fcdf8871d9a1..7b8aa2d311776 100644 --- a/cmd/kube-scheduler/app/server.go +++ b/cmd/kube-scheduler/app/server.go @@ -26,12 +26,12 @@ import ( goruntime "runtime" "github.com/spf13/cobra" + utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apiserver/pkg/authentication/authenticator" "k8s.io/apiserver/pkg/authorization/authorizer" genericapifilters "k8s.io/apiserver/pkg/endpoints/filters" apirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/server" genericfilters "k8s.io/apiserver/pkg/server/filters" "k8s.io/apiserver/pkg/server/healthz" "k8s.io/apiserver/pkg/server/mux" @@ -123,11 +123,6 @@ func runCommand(cmd *cobra.Command, opts *options.Options, registryOptions ...Op ctx, cancel := context.WithCancel(context.Background()) defer cancel() - go func() { - stopCh := server.SetupSignalHandler() - <-stopCh - cancel() - }() cc, sched, err := Setup(ctx, opts, registryOptions...) if err != nil { @@ -201,18 +196,9 @@ func Run(ctx context.Context, cc *schedulerserverconfig.CompletedConfig, sched * cc.LeaderElection.Callbacks = leaderelection.LeaderCallbacks{ OnStartedLeading: sched.Run, OnStoppedLeading: func() { - select { - case <-ctx.Done(): - // We were asked to terminate. Exit 0. - klog.Info("Requested to terminate. Exiting.") - os.Exit(0) - default: - // We lost the lock. - klog.Exitf("leaderelection lost") - } + klog.Fatalf("leaderelection lost") }, } - cc.LeaderElection.ReleaseOnCancel = true leaderElector, err := leaderelection.NewLeaderElector(*cc.LeaderElection) if err != nil { return fmt.Errorf("couldn't create leader elector: %v", err) diff --git a/cmd/kube-scheduler/app/server_test.go b/cmd/kube-scheduler/app/server_test.go index 37fd74a154955..90adf19fba460 100644 --- a/cmd/kube-scheduler/app/server_test.go +++ b/cmd/kube-scheduler/app/server_test.go @@ -351,6 +351,7 @@ profiles: {Name: "TaintToleration"}, {Name: "InterPodAffinity"}, }, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, "PreScorePlugin": { {Name: "InterPodAffinity"}, }, diff --git a/cmd/kubeadm/app/apis/kubeadm/types.go b/cmd/kubeadm/app/apis/kubeadm/types.go index 1759b76551398..55dc999e12d11 100644 --- a/cmd/kubeadm/app/apis/kubeadm/types.go +++ b/cmd/kubeadm/app/apis/kubeadm/types.go @@ -107,7 +107,7 @@ type ClusterConfiguration struct { // ImageRepository sets the container registry to pull images from. // If empty, `k8s.gcr.io` will be used by default; in case of kubernetes version is a CI build (kubernetes version starts with `ci/` or `ci-cross/`) - // `gcr.io/kubernetes-ci-images` will be used as a default for control plane components and for kube-proxy, while `k8s.gcr.io` + // `gcr.io/k8s-staging-ci-images` will be used as a default for control plane components and for kube-proxy, while `k8s.gcr.io` // will be used for all the other images. ImageRepository string diff --git a/cmd/kubeadm/app/apis/kubeadm/v1beta1/types.go b/cmd/kubeadm/app/apis/kubeadm/v1beta1/types.go index 61097572c4c10..90d7a2838f762 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1beta1/types.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1beta1/types.go @@ -101,7 +101,7 @@ type ClusterConfiguration struct { // ImageRepository sets the container registry to pull images from. // If empty, `k8s.gcr.io` will be used by default; in case of kubernetes version is a CI build (kubernetes version starts with `ci/` or `ci-cross/`) - // `gcr.io/kubernetes-ci-images` will be used as a default for control plane components and for kube-proxy, while `k8s.gcr.io` + // `gcr.io/k8s-staging-ci-images` will be used as a default for control plane components and for kube-proxy, while `k8s.gcr.io` // will be used for all the other images. ImageRepository string `json:"imageRepository"` diff --git a/cmd/kubeadm/app/apis/kubeadm/v1beta2/types.go b/cmd/kubeadm/app/apis/kubeadm/v1beta2/types.go index a9261d06731fe..217db2f1b0c96 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1beta2/types.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1beta2/types.go @@ -97,7 +97,7 @@ type ClusterConfiguration struct { // ImageRepository sets the container registry to pull images from. // If empty, `k8s.gcr.io` will be used by default; in case of kubernetes version is a CI build (kubernetes version starts with `ci/` or `ci-cross/`) - // `gcr.io/kubernetes-ci-images` will be used as a default for control plane components and for kube-proxy, while `k8s.gcr.io` + // `gcr.io/k8s-staging-ci-images` will be used as a default for control plane components and for kube-proxy, while `k8s.gcr.io` // will be used for all the other images. ImageRepository string `json:"imageRepository,omitempty"` diff --git a/cmd/kubeadm/app/cmd/alpha/certs.go b/cmd/kubeadm/app/cmd/alpha/certs.go index ae62ffb91ad56..576ae5afac151 100644 --- a/cmd/kubeadm/app/cmd/alpha/certs.go +++ b/cmd/kubeadm/app/cmd/alpha/certs.go @@ -133,7 +133,7 @@ func (o *genCSRConfig) addFlagSet(flagSet *pflag.FlagSet) { func (o *genCSRConfig) load() (err error) { o.kubeadmConfig, err = configutil.LoadOrDefaultInitConfiguration( o.kubeadmConfigPath, - &kubeadmapiv1beta2.InitConfiguration{}, + cmdutil.DefaultInitConfiguration(), &kubeadmapiv1beta2.ClusterConfiguration{}, ) if err != nil { @@ -357,7 +357,7 @@ func getInternalCfg(cfgPath string, kubeconfigPath string, cfg kubeadmapiv1beta2 } // Otherwise read config from --config if provided, otherwise use default configuration - return configutil.LoadOrDefaultInitConfiguration(cfgPath, &kubeadmapiv1beta2.InitConfiguration{}, &cfg) + return configutil.LoadOrDefaultInitConfiguration(cfgPath, cmdutil.DefaultInitConfiguration(), &cfg) } // newCmdCertsExpiration creates a new `cert check-expiration` command. diff --git a/cmd/kubeadm/app/cmd/alpha/kubeconfig.go b/cmd/kubeadm/app/cmd/alpha/kubeconfig.go index 6a3cc2faa07be..a83d768ee107f 100644 --- a/cmd/kubeadm/app/cmd/alpha/kubeconfig.go +++ b/cmd/kubeadm/app/cmd/alpha/kubeconfig.go @@ -59,7 +59,7 @@ func newCmdKubeConfigUtility(out io.Writer) *cobra.Command { // newCmdUserKubeConfig returns sub commands for kubeconfig phase func newCmdUserKubeConfig(out io.Writer) *cobra.Command { - initCfg := &kubeadmapiv1beta2.InitConfiguration{} + initCfg := cmdutil.DefaultInitConfiguration() clusterCfg := &kubeadmapiv1beta2.ClusterConfiguration{} // Default values for the cobra help text diff --git a/cmd/kubeadm/app/cmd/config.go b/cmd/kubeadm/app/cmd/config.go index ad99a04f56b94..47cce98c11f82 100644 --- a/cmd/kubeadm/app/cmd/config.go +++ b/cmd/kubeadm/app/cmd/config.go @@ -455,14 +455,7 @@ func NewCmdConfigImagesList(out io.Writer, mockK8sVersion *string) *cobra.Comman // NewImagesList returns the underlying struct for the "kubeadm config images list" command func NewImagesList(cfgPath string, cfg *kubeadmapiv1beta2.ClusterConfiguration) (*ImagesList, error) { - // Avoid running the CRI auto-detection code as we don't need it - versionedInitCfg := &kubeadmapiv1beta2.InitConfiguration{ - NodeRegistration: kubeadmapiv1beta2.NodeRegistrationOptions{ - CRISocket: constants.DefaultDockerCRISocket, - }, - } - - initcfg, err := configutil.LoadOrDefaultInitConfiguration(cfgPath, versionedInitCfg, cfg) + initcfg, err := configutil.LoadOrDefaultInitConfiguration(cfgPath, cmdutil.DefaultInitConfiguration(), cfg) if err != nil { return nil, errors.Wrap(err, "could not convert cfg to an internal cfg") } diff --git a/cmd/kubeadm/app/cmd/phases/init/certs.go b/cmd/kubeadm/app/cmd/phases/init/certs.go index 4338ba5d40e58..795e1ab56ec79 100644 --- a/cmd/kubeadm/app/cmd/phases/init/certs.go +++ b/cmd/kubeadm/app/cmd/phases/init/certs.go @@ -153,12 +153,12 @@ func getCertPhaseFlags(name string) []string { func getSANDescription(certSpec *certsphase.KubeadmCert) string { //Defaulted config we will use to get SAN certs - defaultConfig := &kubeadmapiv1beta2.InitConfiguration{ - LocalAPIEndpoint: kubeadmapiv1beta2.APIEndpoint{ - // GetAPIServerAltNames errors without an AdvertiseAddress; this is as good as any. - AdvertiseAddress: "127.0.0.1", - }, + defaultConfig := cmdutil.DefaultInitConfiguration() + // GetAPIServerAltNames errors without an AdvertiseAddress; this is as good as any. + defaultConfig.LocalAPIEndpoint = kubeadmapiv1beta2.APIEndpoint{ + AdvertiseAddress: "127.0.0.1", } + defaultInternalConfig := &kubeadmapi.InitConfiguration{} kubeadmscheme.Scheme.Default(defaultConfig) diff --git a/cmd/kubeadm/app/cmd/token.go b/cmd/kubeadm/app/cmd/token.go index 4f598a7576adb..fc5efa9622ede 100644 --- a/cmd/kubeadm/app/cmd/token.go +++ b/cmd/kubeadm/app/cmd/token.go @@ -92,7 +92,7 @@ func NewCmdToken(out io.Writer, errW io.Writer) *cobra.Command { tokenCmd.PersistentFlags().BoolVar(&dryRun, options.DryRun, dryRun, "Whether to enable dry-run mode or not") - cfg := &kubeadmapiv1beta2.InitConfiguration{} + cfg := cmdutil.DefaultInitConfiguration() // Default values for the cobra help text kubeadmscheme.Scheme.Default(cfg) @@ -244,11 +244,6 @@ func RunCreateToken(out io.Writer, client clientset.Interface, cfgPath string, i // This call returns the ready-to-use configuration based on the configuration file that might or might not exist and the default cfg populated by flags klog.V(1).Infoln("[token] loading configurations") - // In fact, we don't do any CRI ops at all. - // This is just to force skipping the CRI detection. - // Ref: https://github.com/kubernetes/kubeadm/issues/1559 - initCfg.NodeRegistration.CRISocket = kubeadmconstants.DefaultDockerCRISocket - internalcfg, err := configutil.LoadOrDefaultInitConfiguration(cfgPath, initCfg, clusterCfg) if err != nil { return err diff --git a/cmd/kubeadm/app/cmd/util/BUILD b/cmd/kubeadm/app/cmd/util/BUILD index 3df5ea4406491..307703c0ee14c 100644 --- a/cmd/kubeadm/app/cmd/util/BUILD +++ b/cmd/kubeadm/app/cmd/util/BUILD @@ -10,6 +10,7 @@ go_library( importpath = "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util", visibility = ["//visibility:public"], deps = [ + "//cmd/kubeadm/app/apis/kubeadm/v1beta2:go_default_library", "//cmd/kubeadm/app/cmd/options:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/util/kubeconfig:go_default_library", diff --git a/cmd/kubeadm/app/cmd/util/cmdutil.go b/cmd/kubeadm/app/cmd/util/cmdutil.go index af1a1243edc94..d54b8b3dcb5d1 100644 --- a/cmd/kubeadm/app/cmd/util/cmdutil.go +++ b/cmd/kubeadm/app/cmd/util/cmdutil.go @@ -23,6 +23,7 @@ import ( "k8s.io/client-go/tools/clientcmd" "k8s.io/klog/v2" + kubeadmapiv1beta2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" ) @@ -87,3 +88,14 @@ func AddCRISocketFlag(flagSet *pflag.FlagSet, criSocket *string) { "Path to the CRI socket to connect. If empty kubeadm will try to auto-detect this value; use this option only if you have more than one CRI installed or if you have non-standard CRI socket.", ) } + +// DefaultInitConfiguration return default InitConfiguration. Avoid running the CRI auto-detection +// code as we don't need it. +func DefaultInitConfiguration() *kubeadmapiv1beta2.InitConfiguration { + initCfg := &kubeadmapiv1beta2.InitConfiguration{ + NodeRegistration: kubeadmapiv1beta2.NodeRegistrationOptions{ + CRISocket: kubeadmconstants.UnknownCRISocket, // avoid CRI detection + }, + } + return initCfg +} diff --git a/cmd/kubeadm/app/constants/constants.go b/cmd/kubeadm/app/constants/constants.go index d5b345b418e4f..e0099a1ee8369 100644 --- a/cmd/kubeadm/app/constants/constants.go +++ b/cmd/kubeadm/app/constants/constants.go @@ -218,6 +218,9 @@ const ( // init/join time for use later. kubeadm annotates the node object with this information AnnotationKubeadmCRISocket = "kubeadm.alpha.kubernetes.io/cri-socket" + // UnknownCRISocket defines the undetected or unknown CRI socket + UnknownCRISocket = "/var/run/unknown.sock" + // KubeadmConfigConfigMap specifies in what ConfigMap in the kube-system namespace the `kubeadm init` configuration should be stored KubeadmConfigConfigMap = "kubeadm-config" @@ -299,7 +302,7 @@ const ( NodeBootstrapTokenAuthGroup = "system:bootstrappers:kubeadm:default-node-token" // DefaultCIImageRepository points to image registry where CI uploads images from ci-cross build job - DefaultCIImageRepository = "gcr.io/kubernetes-ci-images" + DefaultCIImageRepository = "gcr.io/k8s-staging-ci-images" // CoreDNSConfigMap specifies in what ConfigMap in the kube-system namespace the CoreDNS config should be stored CoreDNSConfigMap = "coredns" diff --git a/cmd/kubeadm/app/phases/addons/dns/dns.go b/cmd/kubeadm/app/phases/addons/dns/dns.go index a1a96e54001c1..dae542466a3da 100644 --- a/cmd/kubeadm/app/phases/addons/dns/dns.go +++ b/cmd/kubeadm/app/phases/addons/dns/dns.go @@ -275,7 +275,13 @@ func createCoreDNSAddon(deploymentBytes, serviceBytes, configBytes []byte, clien // Assume that migration is always possible, rely on migrateCoreDNSCorefile() to fail if not. canMigrateCorefile := true - if corefileMigrationRequired { + if corefile == "" || migration.Default("", corefile) { + // If the Corefile is empty or default, the latest default Corefile will be applied + if err := apiclient.CreateOrUpdateConfigMap(client, coreDNSConfigMap); err != nil { + return err + } + } else if corefileMigrationRequired { + // If migration is required, try and migrate the Corefile if err := migrateCoreDNSCorefile(client, coreDNSConfigMap, corefile, currentInstalledCoreDNSVersion); err != nil { // Errors in Corefile Migration is verified during preflight checks. This part will be executed when a user has chosen // to ignore preflight check errors. @@ -286,7 +292,8 @@ func createCoreDNSAddon(deploymentBytes, serviceBytes, configBytes []byte, clien } } } else { - if err := apiclient.CreateOrUpdateConfigMap(client, coreDNSConfigMap); err != nil { + // If the Corefile is modified and doesn't require any migration, it'll be retained for the benefit of the user + if err := apiclient.CreateOrRetainConfigMap(client, coreDNSConfigMap, kubeadmconstants.CoreDNSConfigMap); err != nil { return err } } @@ -366,7 +373,9 @@ func createDNSService(dnsService *v1.Service, serviceBytes []byte, client client // isCoreDNSConfigMapMigrationRequired checks if a migration of the CoreDNS ConfigMap is required. func isCoreDNSConfigMapMigrationRequired(corefile, currentInstalledCoreDNSVersion string) (bool, error) { var isMigrationRequired bool - if corefile == "" || migration.Default("", corefile) { + + // Current installed version is expected to be empty for init + if currentInstalledCoreDNSVersion == "" { return isMigrationRequired, nil } deprecated, err := migration.Deprecated(currentInstalledCoreDNSVersion, kubeadmconstants.CoreDNSVersion, corefile) @@ -376,7 +385,7 @@ func isCoreDNSConfigMapMigrationRequired(corefile, currentInstalledCoreDNSVersio // Check if there are any plugins/options which needs to be removed or is a new default for _, dep := range deprecated { - if dep.Severity == "removed" || dep.Severity == "newDefault" { + if dep.Severity == "removed" || dep.Severity == "newdefault" { isMigrationRequired = true } } diff --git a/cmd/kubeadm/app/phases/addons/dns/dns_test.go b/cmd/kubeadm/app/phases/addons/dns/dns_test.go index 129392e02cd3c..dc196e09be165 100644 --- a/cmd/kubeadm/app/phases/addons/dns/dns_test.go +++ b/cmd/kubeadm/app/phases/addons/dns/dns_test.go @@ -549,17 +549,174 @@ func TestDeploymentsHaveSystemClusterCriticalPriorityClassName(t *testing.T) { } } -func TestCreateCoreDNSConfigMap(t *testing.T) { +func TestCreateCoreDNSAddon(t *testing.T) { tests := []struct { name string initialCorefileData string expectedCorefileData string coreDNSVersion string }{ + { + name: "Empty Corefile", + initialCorefileData: "", + expectedCorefileData: `.:53 { + errors + health { + lameduck 5s + } + ready + kubernetes cluster.local in-addr.arpa ip6.arpa { + pods insecure + fallthrough in-addr.arpa ip6.arpa + ttl 30 + } + prometheus :9153 + forward . /etc/resolv.conf { + max_concurrent 1000 + } + cache 30 + loop + reload + loadbalance +} +`, + coreDNSVersion: "1.6.7", + }, + { + name: "Default Corefile", + initialCorefileData: `.:53 { + errors + health { + lameduck 5s + } + ready + kubernetes cluster.local in-addr.arpa ip6.arpa { + pods insecure + fallthrough in-addr.arpa ip6.arpa + ttl 30 + } + prometheus :9153 + forward . /etc/resolv.conf + cache 30 + loop + reload + loadbalance + } +`, + expectedCorefileData: `.:53 { + errors + health { + lameduck 5s + } + ready + kubernetes cluster.local in-addr.arpa ip6.arpa { + pods insecure + fallthrough in-addr.arpa ip6.arpa + ttl 30 + } + prometheus :9153 + forward . /etc/resolv.conf { + max_concurrent 1000 + } + cache 30 + loop + reload + loadbalance +} +`, + coreDNSVersion: "1.6.7", + }, + { + name: "Modified Corefile with only newdefaults needed", + initialCorefileData: `.:53 { + errors + log + health + ready + kubernetes cluster.local in-addr.arpa ip6.arpa { + pods insecure + fallthrough in-addr.arpa ip6.arpa + ttl 30 + } + prometheus :9153 + forward . /etc/resolv.conf + cache 30 + loop + reload + loadbalance + } +`, + expectedCorefileData: `.:53 { + errors + log + health { + lameduck 5s + } + ready + kubernetes cluster.local in-addr.arpa ip6.arpa { + pods insecure + fallthrough in-addr.arpa ip6.arpa + ttl 30 + } + prometheus :9153 + forward . /etc/resolv.conf { + max_concurrent 1000 + } + cache 30 + loop + reload + loadbalance +} +`, + coreDNSVersion: "1.6.2", + }, + { + name: "Default Corefile with rearranged plugins", + initialCorefileData: `.:53 { + errors + cache 30 + prometheus :9153 + forward . /etc/resolv.conf + loop + reload + loadbalance + kubernetes cluster.local in-addr.arpa ip6.arpa { + pods insecure + upstream + fallthrough in-addr.arpa ip6.arpa + ttl 30 + } + health + } +`, + expectedCorefileData: `.:53 { + errors + health { + lameduck 5s + } + ready + kubernetes cluster.local in-addr.arpa ip6.arpa { + pods insecure + fallthrough in-addr.arpa ip6.arpa + ttl 30 + } + prometheus :9153 + forward . /etc/resolv.conf { + max_concurrent 1000 + } + cache 30 + loop + reload + loadbalance +} +`, + coreDNSVersion: "1.3.1", + }, { name: "Remove Deprecated options", initialCorefileData: `.:53 { errors + logs health kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure @@ -576,6 +733,7 @@ func TestCreateCoreDNSConfigMap(t *testing.T) { }`, expectedCorefileData: `.:53 { errors + logs health { lameduck 5s } @@ -638,19 +796,106 @@ func TestCreateCoreDNSConfigMap(t *testing.T) { `, coreDNSVersion: "1.3.1", }, + { + name: "Modified Corefile with no migration required", + initialCorefileData: `consul { + errors + forward . 10.10.96.16:8600 10.10.96.17:8600 10.10.96.18:8600 { + max_concurrent 1000 + } + loadbalance + cache 5 + reload + } + domain.int { + errors + forward . 10.10.0.140 10.10.0.240 10.10.51.40 { + max_concurrent 1000 + } + loadbalance + cache 3600 + reload + } + .:53 { + errors + health { + lameduck 5s + } + ready + kubernetes cluster.local in-addr.arpa ip6.arpa { + pods insecure + fallthrough in-addr.arpa ip6.arpa + } + prometheus :9153 + forward . /etc/resolv.conf { + prefer_udp + max_concurrent 1000 + } + cache 30 + loop + reload + loadbalance + } +`, + expectedCorefileData: `consul { + errors + forward . 10.10.96.16:8600 10.10.96.17:8600 10.10.96.18:8600 { + max_concurrent 1000 + } + loadbalance + cache 5 + reload + } + domain.int { + errors + forward . 10.10.0.140 10.10.0.240 10.10.51.40 { + max_concurrent 1000 + } + loadbalance + cache 3600 + reload + } + .:53 { + errors + health { + lameduck 5s + } + ready + kubernetes cluster.local in-addr.arpa ip6.arpa { + pods insecure + fallthrough in-addr.arpa ip6.arpa + } + prometheus :9153 + forward . /etc/resolv.conf { + prefer_udp + max_concurrent 1000 + } + cache 30 + loop + reload + loadbalance + } +`, + coreDNSVersion: "1.6.7", + }, } for _, tc := range tests { t.Run(tc.name, func(t *testing.T) { client := createClientAndCoreDNSManifest(t, tc.initialCorefileData, tc.coreDNSVersion) - // Get the Corefile and installed CoreDNS version. - cm, corefile, currentInstalledCoreDNSVersion, err := GetCoreDNSInfo(client) + + configMapBytes, err := kubeadmutil.ParseTemplate(CoreDNSConfigMap, struct{ DNSDomain, UpstreamNameserver, StubDomain string }{ + DNSDomain: "cluster.local", + UpstreamNameserver: "/etc/resolv.conf", + StubDomain: "", + }) if err != nil { - t.Fatalf("unable to fetch CoreDNS current installed version and ConfigMap.") + t.Errorf("unexpected ParseTemplate failure: %+v", err) } - err = migrateCoreDNSCorefile(client, cm, corefile, currentInstalledCoreDNSVersion) + + err = createCoreDNSAddon(nil, nil, configMapBytes, client) if err != nil { - t.Fatalf("error creating the CoreDNS ConfigMap: %v", err) + t.Fatalf("error creating the CoreDNS Addon: %v", err) } migratedConfigMap, _ := client.CoreV1().ConfigMaps(metav1.NamespaceSystem).Get(context.TODO(), kubeadmconstants.CoreDNSConfigMap, metav1.GetOptions{}) if !strings.EqualFold(migratedConfigMap.Data["Corefile"], tc.expectedCorefileData) { diff --git a/cmd/kubeadm/app/util/config/cluster.go b/cmd/kubeadm/app/util/config/cluster.go index cf53217ba0d3e..ed20ca5568901 100644 --- a/cmd/kubeadm/app/util/config/cluster.go +++ b/cmd/kubeadm/app/util/config/cluster.go @@ -125,7 +125,7 @@ func getInitConfigurationFromCluster(kubeconfigDir string, client clientset.Inte // However, if newControlPlane == true, initcfg.NodeRegistration is not used at all and it's overwritten later on. // Thus it's necessary to supply some default value, that will avoid the call to DetectCRISocket() and as // initcfg.NodeRegistration is discarded, setting whatever value here is harmless. - initcfg.NodeRegistration.CRISocket = constants.DefaultDockerCRISocket + initcfg.NodeRegistration.CRISocket = constants.UnknownCRISocket } return initcfg, nil } diff --git a/cmd/kubeadm/app/util/version.go b/cmd/kubeadm/app/util/version.go index 016f835d1bc44..fcb54dba7fa60 100644 --- a/cmd/kubeadm/app/util/version.go +++ b/cmd/kubeadm/app/util/version.go @@ -39,6 +39,7 @@ const ( var ( kubeReleaseBucketURL = "https://dl.k8s.io" + kubeCIBucketURL = "https://storage.googleapis.com/k8s-release-dev" kubeReleaseRegex = regexp.MustCompile(`^v?(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)([-0-9a-zA-Z_\.+]*)?$`) kubeReleaseLabelRegex = regexp.MustCompile(`(k8s-master|((latest|stable)+(-[1-9](\.[1-9]([0-9])?)?)?))\z`) kubeBucketPrefixes = regexp.MustCompile(`^((release|ci|ci-cross)/)?([-\w_\.+]+)$`) @@ -161,7 +162,7 @@ func normalizedBuildVersion(version string) string { // Internal helper: split version parts, // Return base URL and cleaned-up version func splitVersion(version string) (string, string, error) { - var urlSuffix string + var bucketURL, urlSuffix string subs := kubeBucketPrefixes.FindAllStringSubmatch(version, 1) if len(subs) != 1 || len(subs[0]) != 4 { return "", "", errors.Errorf("invalid version %q", version) @@ -171,10 +172,12 @@ func splitVersion(version string) (string, string, error) { case strings.HasPrefix(subs[0][2], "ci"): // Just use whichever the user specified urlSuffix = subs[0][2] + bucketURL = kubeCIBucketURL default: urlSuffix = "release" + bucketURL = kubeReleaseBucketURL } - url := fmt.Sprintf("%s/%s", kubeReleaseBucketURL, urlSuffix) + url := fmt.Sprintf("%s/%s", bucketURL, urlSuffix) return url, subs[0][3], nil } diff --git a/cmd/kubeadm/app/util/version_test.go b/cmd/kubeadm/app/util/version_test.go index 30dad9d0ee974..e4b5d0a569e89 100644 --- a/cmd/kubeadm/app/util/version_test.go +++ b/cmd/kubeadm/app/util/version_test.go @@ -19,11 +19,12 @@ package util import ( "errors" "fmt" - "k8s.io/kubernetes/cmd/kubeadm/app/constants" "path" "strings" "testing" "time" + + "k8s.io/kubernetes/cmd/kubeadm/app/constants" ) func TestEmptyVersion(t *testing.T) { @@ -195,17 +196,14 @@ func TestSplitVersion(t *testing.T) { {"release/v1.7.0", "https://dl.k8s.io/release", "v1.7.0", true}, {"release/latest-1.7", "https://dl.k8s.io/release", "latest-1.7", true}, // CI builds area - {"ci/latest", "https://dl.k8s.io/ci", "latest", true}, - {"ci/k8s-master", "https://dl.k8s.io/ci", "k8s-master", true}, - {"ci/latest-1.7", "https://dl.k8s.io/ci", "latest-1.7", true}, + {"ci/latest", "https://storage.googleapis.com/k8s-release-dev/ci", "latest", true}, + {"ci/k8s-master", "https://storage.googleapis.com/k8s-release-dev/ci", "k8s-master", true}, + {"ci/latest-1.7", "https://storage.googleapis.com/k8s-release-dev/ci", "latest-1.7", true}, // unknown label in default (release) area: splitVersion validate only areas. {"unknown-1", "https://dl.k8s.io/release", "unknown-1", true}, // unknown area, not valid input. {"unknown/latest-1", "", "", false}, } - // kubeReleaseBucketURL can be overridden during network tests, thus ensure - // it will contain value corresponding to expected outcome for this unit test - kubeReleaseBucketURL = "https://dl.k8s.io" for _, tc := range cases { t.Run(fmt.Sprintf("input:%s/label:%s", tc.input, tc.label), func(t *testing.T) { diff --git a/cmd/kubelet/app/BUILD b/cmd/kubelet/app/BUILD index 7a175668c2182..9ed7a31356a17 100644 --- a/cmd/kubelet/app/BUILD +++ b/cmd/kubelet/app/BUILD @@ -133,6 +133,7 @@ go_library( ], "@io_bazel_rules_go//go/platform:windows": [ "//pkg/windows/service:go_default_library", + "//vendor/golang.org/x/sys/windows:go_default_library", ], "//conditions:default": [], }), @@ -141,6 +142,7 @@ go_library( go_test( name = "go_default_test", srcs = [ + "init_windows_test.go", "server_bootstrap_test.go", "server_test.go", ], diff --git a/cmd/kubelet/app/init_others.go b/cmd/kubelet/app/init_others.go index 4b19ac91b288d..1fe895f5d0ac4 100644 --- a/cmd/kubelet/app/init_others.go +++ b/cmd/kubelet/app/init_others.go @@ -18,6 +18,6 @@ limitations under the License. package app -func initForOS(service bool) error { +func initForOS(service bool, priorityClass string) error { return nil } diff --git a/cmd/kubelet/app/init_windows.go b/cmd/kubelet/app/init_windows.go index a2da4cf04985b..bed76806701f5 100644 --- a/cmd/kubelet/app/init_windows.go +++ b/cmd/kubelet/app/init_windows.go @@ -19,6 +19,10 @@ limitations under the License. package app import ( + "fmt" + + "golang.org/x/sys/windows" + "k8s.io/klog/v2" "k8s.io/kubernetes/pkg/windows/service" ) @@ -26,7 +30,33 @@ const ( serviceName = "kubelet" ) -func initForOS(windowsService bool) error { +// getPriorityValue returns the value associated with a Windows process priorityClass +// Ref: https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/setpriority-method-in-class-win32-process +func getPriorityValue(priorityClassName string) uint32 { + var priorityClassMap = map[string]uint32{ + "IDLE_PRIORITY_CLASS": uint32(64), + "BELOW_NORMAL_PRIORITY_CLASS": uint32(16384), + "NORMAL_PRIORITY_CLASS": uint32(32), + "ABOVE_NORMAL_PRIORITY_CLASS": uint32(32768), + "HIGH_PRIORITY_CLASS": uint32(128), + "REALTIME_PRIORITY_CLASS": uint32(256), + } + return priorityClassMap[priorityClassName] +} + +func initForOS(windowsService bool, windowsPriorityClass string) error { + priority := getPriorityValue(windowsPriorityClass) + if priority == 0 { + return fmt.Errorf("unknown priority class %s, valid ones are available at "+ + "https://docs.microsoft.com/en-us/windows/win32/procthread/scheduling-priorities", windowsPriorityClass) + } + kubeletProcessHandle := windows.CurrentProcess() + // Set the priority of the kubelet process to given priority + klog.Infof("Setting the priority of kubelet process to %s", windowsPriorityClass) + if err := windows.SetPriorityClass(kubeletProcessHandle, priority); err != nil { + return err + } + if windowsService { return service.InitService(serviceName) } diff --git a/cmd/kubelet/app/init_windows_test.go b/cmd/kubelet/app/init_windows_test.go new file mode 100644 index 0000000000000..2920e8c69c814 --- /dev/null +++ b/cmd/kubelet/app/init_windows_test.go @@ -0,0 +1,44 @@ +/* +Copyright 2020 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 app + +import "testing" + +func TestIsValidPriorityClass(t *testing.T) { + testCases := []struct { + description string + priorityClassName string + expectedPriorityValue uint32 + }{ + { + description: "Invalid Priority Class", + priorityClassName: "myPriorityClass", + expectedPriorityValue: 0, + }, + { + description: "Valid Priority Class", + priorityClassName: "IDLE_PRIORITY_CLASS", + expectedPriorityValue: uint32(64), + }, + } + for _, test := range testCases { + actualPriorityValue := getPriorityValue(test.priorityClassName) + if test.expectedPriorityValue != actualPriorityValue { + t.Fatalf("unexpected error for %s", test.description) + } + } +} diff --git a/cmd/kubelet/app/options/options.go b/cmd/kubelet/app/options/options.go index 8306387ea8be9..7e4f8fd18a14b 100644 --- a/cmd/kubelet/app/options/options.go +++ b/cmd/kubelet/app/options/options.go @@ -111,6 +111,13 @@ type KubeletFlags struct { // Its corresponding flag only gets registered in Windows builds. WindowsService bool + // WindowsPriorityClass sets the priority class associated with the Kubelet process + // Its corresponding flag only gets registered in Windows builds + // The default priority class associated with any process in Windows is NORMAL_PRIORITY_CLASS. Keeping it as is + // to maintain backwards compatibility. + // Source: https://docs.microsoft.com/en-us/windows/win32/procthread/scheduling-priorities + WindowsPriorityClass string + // remoteRuntimeEndpoint is the endpoint of remote runtime service RemoteRuntimeEndpoint string // remoteImageEndpoint is the endpoint of remote image service diff --git a/cmd/kubelet/app/options/osflags_windows.go b/cmd/kubelet/app/options/osflags_windows.go index 8923f5d6f1d36..95ee23483e65e 100644 --- a/cmd/kubelet/app/options/osflags_windows.go +++ b/cmd/kubelet/app/options/osflags_windows.go @@ -24,4 +24,10 @@ import ( func (f *KubeletFlags) addOSFlags(fs *pflag.FlagSet) { fs.BoolVar(&f.WindowsService, "windows-service", f.WindowsService, "Enable Windows Service Control Manager API integration") + // The default priority class associated with any process in Windows is NORMAL_PRIORITY_CLASS. Keeping it as is + // to maintain backwards compatibility. + // Source: https://docs.microsoft.com/en-us/windows/win32/procthread/scheduling-priorities + fs.StringVar(&f.WindowsPriorityClass, "windows-priorityclass", "NORMAL_PRIORITY_CLASS", + "Set the PriorityClass associated with kubelet process, the default ones are available at "+ + "https://docs.microsoft.com/en-us/windows/win32/procthread/scheduling-priorities") } diff --git a/cmd/kubelet/app/server.go b/cmd/kubelet/app/server.go index b1c4921fa3bb0..7baf008b5e71e 100644 --- a/cmd/kubelet/app/server.go +++ b/cmd/kubelet/app/server.go @@ -409,7 +409,7 @@ func Run(ctx context.Context, s *options.KubeletServer, kubeDeps *kubelet.Depend logOption.Apply() // To help debugging, immediately log version klog.Infof("Version: %+v", version.Get()) - if err := initForOS(s.KubeletFlags.WindowsService); err != nil { + if err := initForOS(s.KubeletFlags.WindowsService, s.KubeletFlags.WindowsPriorityClass); err != nil { return fmt.Errorf("failed OS init: %v", err) } if err := run(ctx, s, kubeDeps, featureGate); err != nil { diff --git a/cmd/kubelet/app/server_linux.go b/cmd/kubelet/app/server_linux.go index f6cff9af261cf..95213c650034d 100644 --- a/cmd/kubelet/app/server_linux.go +++ b/cmd/kubelet/app/server_linux.go @@ -29,6 +29,7 @@ func watchForLockfileContention(path string, done chan struct{}) error { } if err = watcher.AddWatch(path, inotify.InOpen|inotify.InDeleteSelf); err != nil { klog.Errorf("unable to watch lockfile: %v", err) + watcher.Close() return err } go func() { @@ -39,6 +40,7 @@ func watchForLockfileContention(path string, done chan struct{}) error { klog.Errorf("inotify watcher error: %v", err) } close(done) + watcher.Close() }() return nil } diff --git a/cmd/watch-termination/main.go b/cmd/watch-termination/main.go deleted file mode 100644 index ff1f099b37df7..0000000000000 --- a/cmd/watch-termination/main.go +++ /dev/null @@ -1,329 +0,0 @@ -package main - -import ( - "context" - "flag" - "fmt" - "io" - "io/ioutil" - "os" - "os/exec" - "os/signal" - "strings" - "sync" - "syscall" - "time" - - "gopkg.in/natefinch/lumberjack.v2" - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/client-go/kubernetes" - corev1client "k8s.io/client-go/kubernetes/typed/core/v1" - "k8s.io/client-go/tools/clientcmd" - "k8s.io/klog/v2" -) - -func main() { - os.Exit(run()) -} - -func run() int { - terminationLog := flag.String("termination-log-file", "", "Write logs after SIGTERM to this file (in addition to stderr)") - terminationLock := flag.String("termination-touch-file", "", "Touch this file on SIGTERM and delete on termination") - kubeconfigPath := flag.String("kubeconfig", "", "Optional kubeconfig used to create events") - gracefulTerminatioPeriod := flag.Duration("graceful-termination-duration", 105*time.Second, "The duration of the graceful termination period, e.g. 105s") - - klog.InitFlags(nil) - flag.Set("v", "9") - - // never log to stderr, only through our termination log writer (which sends it also to stderr) - flag.Set("logtostderr", "false") - flag.Set("stderrthreshold", "99") - - flag.Parse() - args := flag.CommandLine.Args() - - if len(args) == 0 { - fmt.Println("Missing command line") - return 1 - } - - // use special tee-like writer when termination log is set - termCh := make(chan struct{}) - var stderr io.Writer = os.Stderr - var terminationLogger *terminationFileWriter - if len(*terminationLog) > 0 { - terminationLogger = &terminationFileWriter{ - Writer: os.Stderr, - fn: *terminationLog, - startFileLoggingCh: termCh, - } - stderr = terminationLogger - - // do the klog file writer dance: klog writes to all outputs of lower - // severity. No idea why. So we discard for anything other than info. - // Otherwise, we would see errors multiple times. - klog.SetOutput(ioutil.Discard) - klog.SetOutputBySeverity("INFO", stderr) - } - - var client kubernetes.Interface - if len(*kubeconfigPath) > 0 { - loader := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(&clientcmd.ClientConfigLoadingRules{ExplicitPath: *kubeconfigPath}, &clientcmd.ConfigOverrides{}) - if cfg, err := loader.ClientConfig(); err != nil { - klog.Errorf("failed to load kubeconfig %q: %v", *kubeconfigPath, err) - return 1 - } else { - client = kubernetes.NewForConfigOrDie(cfg) - } - } - - // touch file early. If the file is not removed on termination, we are not - // terminating cleanly via SIGTERM. - if len(*terminationLock) > 0 { - ref, err := eventReference() - if err != nil { - klog.Errorf("failed to get event target: %v", err) - return 1 - } - - if st, err := os.Stat(*terminationLock); err == nil { - podName := "unknown" - if v := os.Getenv("POD_NAME"); len(v) > 0 { - podName = v // pod name is always the same for static pods - } - msg := fmt.Sprintf("Previous pod %s started at %s did not terminate gracefully", podName, st.ModTime().String()) - - klog.Warning(msg) - _, _ = terminationLogger.WriteToTerminationLog([]byte(msg + "\n")) - - if client != nil { - go wait.PollUntil(5*time.Second, func() (bool, error) { - if err := eventf(client.CoreV1().Events(ref.Namespace), *ref, corev1.EventTypeWarning, "NonGracefulTermination", msg); err != nil { - return false, nil - } - - select { - case <-termCh: - default: - } - return true, nil - }, termCh) - } - - klog.Infof("Deleting old termination lock file %q", *terminationLock) - if err := os.Remove(*terminationLock); err != nil { - klog.Errorf("Old termination lock file deletion failed: %v", err) - } - } - - // separation to see where the new one is starting - _, _ = terminationLogger.WriteToTerminationLog([]byte("---\n")) - - klog.Infof("Touching termination lock file %q", *terminationLock) - if err := touch(*terminationLock); err != nil { - klog.Infof("Error touching %s: %v", *terminationLock, err) - // keep going - } - - var deleteLockOnce sync.Once - - if *gracefulTerminatioPeriod > 2*time.Second { - go func() { - <-termCh - <-time.After(*gracefulTerminatioPeriod - 2*time.Second) - - deleteLockOnce.Do(func() { - klog.Infof("Graceful termination time nearly passed and kube-apiserver has still not terminated. Deleting termination lock file %q to avoid a false positive.", *terminationLock) - if err := os.Remove(*terminationLock); err != nil { - klog.Errorf("Termination lock file deletion failed: %v", err) - } - - if err := eventf(client.CoreV1().Events(ref.Namespace), *ref, corev1.EventTypeWarning, "GracefulTerminationTimeout", "kube-apiserver did not terminate within %s", *gracefulTerminatioPeriod); err != nil { - klog.Error(err) - } - }) - }() - } - - defer deleteLockOnce.Do(func() { - klog.Infof("Deleting termination lock file %q", *terminationLock) - if err := os.Remove(*terminationLock); err != nil { - klog.Errorf("Termination lock file deletion failed: %v", err) - } - }) - } - - cmd := exec.Command(args[0], args[1:]...) - cmd.Stdout = os.Stdout - cmd.Stderr = stderr - - // forward SIGTERM and SIGINT to child - sigCh := make(chan os.Signal, 1) - signal.Notify(sigCh, syscall.SIGTERM, syscall.SIGINT) - var wg sync.WaitGroup - wg.Add(1) - go func() { - defer wg.Done() - for s := range sigCh { - select { - case <-termCh: - default: - close(termCh) - } - - klog.Infof("Received signal %s. Forwarding to sub-process %q.", s, args[0]) - - cmd.Process.Signal(s) - } - }() - - klog.Infof("Launching sub-process %q", cmd) - rc := 0 - if err := cmd.Run(); err != nil { - if exitError, ok := err.(*exec.ExitError); ok { - rc = exitError.ExitCode() - } else { - klog.Infof("Failed to launch %s: %v", args[0], err) - return 255 - } - } - - // remove signal handling - signal.Stop(sigCh) - close(sigCh) - wg.Wait() - - klog.Infof("Termination finished with exit code %d", rc) - return rc -} - -// terminationFileWriter forwards everything to the embedded writer. When -// startFileLoggingCh is closed, everything is appended to the given file name -// in addition. -type terminationFileWriter struct { - io.Writer - fn string - startFileLoggingCh <-chan struct{} - - logger io.Writer -} - -func (w *terminationFileWriter) WriteToTerminationLog(bs []byte) (int, error) { - if w == nil { - return len(bs), nil - } - - if w.logger == nil { - l := &lumberjack.Logger{ - Filename: w.fn, - MaxSize: 100, - MaxBackups: 3, - MaxAge: 28, - Compress: false, - } - w.logger = l - fmt.Fprintf(os.Stderr, "Copying termination logs to %q\n", w.fn) - } - if n, err := w.logger.Write(bs); err != nil { - return n, err - } else if n != len(bs) { - return n, io.ErrShortWrite - } - return len(bs), nil -} - -func (w *terminationFileWriter) Write(bs []byte) (int, error) { - // temporary hack to avoid logging sensitive tokens. - // TODO: drop when we moved to a non-sensitive storage format - if strings.Contains(string(bs), "URI=\"/apis/oauth.openshift.io/v1/oauthaccesstokens/") || strings.Contains(string(bs), "URI=\"/apis/oauth.openshift.io/v1/oauthauthorizetokens/") { - return len(bs), nil - } - - select { - case <-w.startFileLoggingCh: - if n, err := w.WriteToTerminationLog(bs); err != nil { - return n, err - } - default: - } - - return w.Writer.Write(bs) -} - -func touch(fn string) error { - _, err := os.Stat(fn) - if os.IsNotExist(err) { - file, err := os.Create(fn) - if err != nil { - return err - } - defer file.Close() - return nil - } - - currentTime := time.Now().Local() - return os.Chtimes(fn, currentTime, currentTime) -} - -func eventf(client corev1client.EventInterface, ref corev1.ObjectReference, eventType, reason, messageFmt string, args ...interface{}) error { - t := metav1.Time{Time: time.Now()} - host, _ := os.Hostname() // expicitly ignore error. Empty host is fine - - e := &corev1.Event{ - ObjectMeta: metav1.ObjectMeta{ - Name: fmt.Sprintf("%v.%x", ref.Name, t.UnixNano()), - Namespace: ref.Namespace, - }, - InvolvedObject: ref, - Reason: reason, - Message: fmt.Sprintf(messageFmt, args...), - FirstTimestamp: t, - LastTimestamp: t, - Count: 1, - Type: eventType, - Source: corev1.EventSource{Component: "apiserver", Host: host}, - } - - _, err := client.Create(context.TODO(), e, metav1.CreateOptions{}) - - if err == nil { - klog.V(2).Infof("Event(%#v): type: '%v' reason: '%v' %v", e.InvolvedObject, e.Type, e.Reason, e.Message) - } - - return err -} - -func eventReference() (*corev1.ObjectReference, error) { - ns := os.Getenv("POD_NAMESPACE") - pod := os.Getenv("POD_NAME") - if len(ns) == 0 && len(pod) > 0 { - serviceAccountNamespaceFile := "/var/run/secrets/kubernetes.io/serviceaccount/namespace" - if _, err := os.Stat(serviceAccountNamespaceFile); err == nil { - bs, err := ioutil.ReadFile(serviceAccountNamespaceFile) - if err != nil { - return nil, err - } - ns = string(bs) - } - } - if len(ns) == 0 { - pod = "" - ns = "kube-system" - } - if len(pod) == 0 { - return &corev1.ObjectReference{ - Kind: "Namespace", - Name: ns, - APIVersion: "v1", - }, nil - } - - return &corev1.ObjectReference{ - Kind: "Pod", - Namespace: ns, - Name: pod, - APIVersion: "v1", - }, nil -} diff --git a/go.mod b/go.mod index 08c200bf34038..b02daac9cb601 100644 --- a/go.mod +++ b/go.mod @@ -14,17 +14,19 @@ require ( github.com/Azure/go-autorest/autorest v0.9.6 github.com/Azure/go-autorest/autorest/adal v0.8.2 github.com/Azure/go-autorest/autorest/to v0.2.0 - github.com/Azure/go-autorest/autorest/validation v0.1.0 // indirect github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317 github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5 github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990 github.com/PuerkitoBio/purell v1.1.1 github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e + github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7 // indirect github.com/aws/aws-sdk-go v1.28.2 github.com/blang/semver v3.5.0+incompatible + github.com/boltdb/bolt v1.3.1 // indirect github.com/caddyserver/caddy v1.0.3 github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313 + github.com/codegangsta/negroni v1.0.0 // indirect github.com/container-storage-interface/spec v1.2.0 github.com/containernetworking/cni v0.8.0 github.com/coredns/corefile-migration v1.0.10 @@ -33,7 +35,6 @@ require ( github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f github.com/cpuguy83/go-md2man/v2 v2.0.0 github.com/davecgh/go-spew v1.1.1 - github.com/dnaeon/go-vcr v1.0.1 // indirect github.com/docker/distribution v2.7.1+incompatible github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c github.com/docker/go-connections v0.4.0 @@ -42,92 +43,90 @@ require ( github.com/emicklei/go-restful v2.9.5+incompatible github.com/evanphx/json-patch v4.9.0+incompatible github.com/fsnotify/fsnotify v1.4.9 - github.com/go-bindata/go-bindata v3.1.2+incompatible + github.com/go-bindata/go-bindata v3.1.1+incompatible github.com/go-openapi/analysis v0.19.5 github.com/go-openapi/loads v0.19.4 github.com/go-openapi/spec v0.19.3 github.com/go-openapi/strfmt v0.19.3 github.com/go-openapi/validate v0.19.5 - github.com/gogo/protobuf v1.3.1 + github.com/go-ozzo/ozzo-validation v3.5.0+incompatible // indirect + github.com/gogo/protobuf v1.3.2 github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 github.com/golang/mock v1.3.1 - github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450 // indirect - github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995 // indirect - github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e // indirect - github.com/google/btree v1.0.0 - github.com/google/cadvisor v0.37.0 + github.com/google/cadvisor v0.37.5 github.com/google/go-cmp v0.4.0 github.com/google/gofuzz v1.1.0 github.com/google/uuid v1.1.1 github.com/googleapis/gnostic v0.4.1 + github.com/gorilla/context v1.1.1 // indirect github.com/hashicorp/golang-lru v0.5.1 github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible + github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6 // indirect github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5 github.com/json-iterator/go v1.1.10 github.com/libopenstorage/openstorage v1.0.0 github.com/lithammer/dedent v1.1.0 + github.com/lpabon/godbc v0.1.1 // indirect + github.com/magiconair/properties v1.8.1 // indirect github.com/miekg/dns v1.1.4 github.com/moby/ipvs v1.0.1 + github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb // indirect github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 github.com/mvdan/xurls v1.1.0 - github.com/onsi/ginkgo v4.5.0-origin.1+incompatible + github.com/onsi/ginkgo v1.11.0 github.com/onsi/gomega v1.7.0 github.com/opencontainers/go-digest v1.0.0-rc1 github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb github.com/opencontainers/selinux v1.5.2 - github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf - github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728 - github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5 - github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98 github.com/pkg/errors v0.9.1 github.com/pmezard/go-difflib v1.0.0 github.com/prometheus/client_golang v1.7.1 github.com/prometheus/client_model v0.2.0 github.com/prometheus/common v0.10.0 github.com/quobyte/api v0.1.2 - github.com/robfig/cron v1.2.0 - github.com/satori/go.uuid v1.2.0 // indirect + github.com/robfig/cron v1.1.0 github.com/spf13/afero v1.2.2 github.com/spf13/cobra v1.0.0 + github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.4.0 github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc github.com/stretchr/testify v1.4.0 github.com/thecodeteam/goscaleio v0.1.0 + github.com/urfave/negroni v1.0.0 // indirect github.com/vishvananda/netlink v1.1.0 github.com/vmware/govmomi v0.20.3 go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 - golang.org/x/net v0.0.0-20200707034311-ab3426394381 + golang.org/x/net v0.0.0-20201110031124-69a78807bb2b golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6 - golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 + golang.org/x/sys v0.0.0-20201112073958-5cba982894dd golang.org/x/time v0.0.0-20191024005414-555d28b269f0 - golang.org/x/tools v0.0.0-20200616133436-c1934b75d054 + golang.org/x/tools v0.0.0-20210106214847-113979e3529a gonum.org/v1/gonum v0.6.2 + gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e // indirect google.golang.org/api v0.15.1 google.golang.org/grpc v1.27.0 gopkg.in/gcfg.v1 v1.2.0 - gopkg.in/natefinch/lumberjack.v2 v2.0.0 gopkg.in/square/go-jose.v2 v2.2.2 - gopkg.in/warnings.v0 v0.1.1 // indirect - gopkg.in/yaml.v2 v2.3.0 - k8s.io/api v0.19.0 - k8s.io/apiextensions-apiserver v0.19.0 - k8s.io/apimachinery v0.19.0 - k8s.io/apiserver v0.19.0 + gopkg.in/yaml.v2 v2.2.8 + k8s.io/api v0.0.0 + k8s.io/apiextensions-apiserver v0.0.0 + k8s.io/apimachinery v0.0.0 + k8s.io/apiserver v0.0.0 k8s.io/cli-runtime v0.0.0 - k8s.io/client-go v0.19.0 + k8s.io/client-go v0.0.0 k8s.io/cloud-provider v0.0.0 k8s.io/cluster-bootstrap v0.0.0 - k8s.io/code-generator v0.19.0 - k8s.io/component-base v0.19.0 + k8s.io/code-generator v0.0.0 + k8s.io/component-base v0.0.0 k8s.io/cri-api v0.0.0 k8s.io/csi-translation-lib v0.0.0 k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14 k8s.io/heapster v1.2.0-beta.1 - k8s.io/klog/v2 v2.3.0 - k8s.io/kube-aggregator v0.19.0 + k8s.io/klog/v2 v2.2.0 + k8s.io/kube-aggregator v0.0.0 k8s.io/kube-controller-manager v0.0.0 k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 k8s.io/kube-proxy v0.0.0 @@ -189,7 +188,6 @@ replace ( github.com/caddyserver/caddy => github.com/caddyserver/caddy v1.0.3 github.com/cenkalti/backoff => github.com/cenkalti/backoff v2.1.1+incompatible github.com/census-instrumentation/opencensus-proto => github.com/census-instrumentation/opencensus-proto v0.2.1 - github.com/certifi/gocertifi => github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2 github.com/cespare/xxhash/v2 => github.com/cespare/xxhash/v2 v2.1.1 github.com/chai2010/gettext-go => github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5 github.com/checkpoint-restore/go-criu/v4 => github.com/checkpoint-restore/go-criu/v4 v4.0.2 @@ -229,10 +227,7 @@ replace ( github.com/docker/distribution => github.com/docker/distribution v2.7.1+incompatible github.com/docker/docker => github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c github.com/docker/go-connections => github.com/docker/go-connections v0.4.0 - github.com/docker/go-metrics => github.com/docker/go-metrics v0.0.1 github.com/docker/go-units => github.com/docker/go-units v0.4.0 - github.com/docker/libnetwork => github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b - github.com/docker/libtrust => github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 github.com/docker/spdystream => github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 github.com/docopt/docopt-go => github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 github.com/dustin/go-humanize => github.com/dustin/go-humanize v1.0.0 @@ -248,8 +243,6 @@ replace ( github.com/flynn/go-shlex => github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 github.com/fogleman/gg => github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90 github.com/fsnotify/fsnotify => github.com/fsnotify/fsnotify v1.4.9 - github.com/fsouza/go-dockerclient => github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e - github.com/getsentry/raven-go => github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095 github.com/ghodss/yaml => github.com/ghodss/yaml v1.0.0 github.com/go-acme/lego => github.com/go-acme/lego v2.5.0+incompatible github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible @@ -270,9 +263,8 @@ replace ( github.com/go-openapi/validate => github.com/go-openapi/validate v0.19.5 github.com/go-ozzo/ozzo-validation => github.com/go-ozzo/ozzo-validation v3.5.0+incompatible github.com/go-stack/stack => github.com/go-stack/stack v1.8.0 - github.com/gobuffalo/flect => github.com/gobuffalo/flect v0.2.0 github.com/godbus/dbus/v5 => github.com/godbus/dbus/v5 v5.0.3 - github.com/gogo/protobuf => github.com/gogo/protobuf v1.3.1 + github.com/gogo/protobuf => github.com/gogo/protobuf v1.3.2 github.com/golang/freetype => github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 github.com/golang/glog => github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b github.com/golang/groupcache => github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 @@ -281,14 +273,8 @@ replace ( github.com/golangplus/bytes => github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450 github.com/golangplus/fmt => github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995 github.com/golangplus/testing => github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e - github.com/gonum/blas => github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac - github.com/gonum/floats => github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82 - github.com/gonum/graph => github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb - github.com/gonum/internal => github.com/gonum/internal v0.0.0-20181124074243-f884aa714029 - github.com/gonum/lapack => github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9 - github.com/gonum/matrix => github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9 github.com/google/btree => github.com/google/btree v1.0.0 - github.com/google/cadvisor => github.com/google/cadvisor v0.37.0 + github.com/google/cadvisor => github.com/google/cadvisor v0.37.5 github.com/google/go-cmp => github.com/google/go-cmp v0.4.0 github.com/google/gofuzz => github.com/google/gofuzz v1.1.0 github.com/google/martian => github.com/google/martian v2.1.0+incompatible @@ -325,7 +311,7 @@ replace ( github.com/julienschmidt/httprouter => github.com/julienschmidt/httprouter v1.2.0 github.com/jung-kurt/gofpdf => github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5 github.com/karrick/godirwalk => github.com/karrick/godirwalk v1.7.5 - github.com/kisielk/errcheck => github.com/kisielk/errcheck v1.2.0 + github.com/kisielk/errcheck => github.com/kisielk/errcheck v1.5.0 github.com/kisielk/gotool => github.com/kisielk/gotool v1.0.0 github.com/klauspost/cpuid => github.com/klauspost/cpuid v1.2.0 github.com/konsorten/go-windows-terminal-sequences => github.com/konsorten/go-windows-terminal-sequences v1.0.3 @@ -333,7 +319,6 @@ replace ( github.com/kr/pretty => github.com/kr/pretty v0.2.0 github.com/kr/pty => github.com/kr/pty v1.1.5 github.com/kr/text => github.com/kr/text v0.1.0 - github.com/kubernetes-sigs/kube-storage-version-migrator => github.com/kubernetes-sigs/kube-storage-version-migrator v0.0.0-20191127225502-51849bc15f17 github.com/kylelemons/godebug => github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348 github.com/libopenstorage/openstorage => github.com/libopenstorage/openstorage v1.0.0 github.com/liggitt/tabwriter => github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de @@ -372,22 +357,16 @@ replace ( github.com/naoina/go-stringutil => github.com/naoina/go-stringutil v0.1.0 github.com/naoina/toml => github.com/naoina/toml v0.1.1 github.com/olekukonko/tablewriter => github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible + github.com/onsi/ginkgo => github.com/onsi/ginkgo v1.11.0 github.com/onsi/gomega => github.com/onsi/gomega v1.7.0 github.com/opencontainers/go-digest => github.com/opencontainers/go-digest v1.0.0-rc1 github.com/opencontainers/image-spec => github.com/opencontainers/image-spec v1.0.1 github.com/opencontainers/runc => github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb github.com/opencontainers/runtime-spec => github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2 github.com/opencontainers/selinux => github.com/opencontainers/selinux v1.5.2 - github.com/openshift/api => github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf - github.com/openshift/apiserver-library-go => github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728 - github.com/openshift/build-machinery-go => github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7 - github.com/openshift/client-go => github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5 - github.com/openshift/library-go => github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98 github.com/pelletier/go-toml => github.com/pelletier/go-toml v1.2.0 github.com/peterbourgon/diskv => github.com/peterbourgon/diskv v2.0.1+incompatible github.com/pkg/errors => github.com/pkg/errors v0.9.1 - github.com/pkg/profile => github.com/pkg/profile v1.3.0 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/prometheus/client_golang => github.com/prometheus/client_golang v1.7.1 @@ -433,7 +412,7 @@ replace ( github.com/xiang90/probing => github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 github.com/xlab/handysort => github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1 github.com/xordataexchange/crypt => github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77 - github.com/yuin/goldmark => github.com/yuin/goldmark v1.1.27 + github.com/yuin/goldmark => github.com/yuin/goldmark v1.2.1 go.etcd.io/bbolt => go.etcd.io/bbolt v1.3.5 go.etcd.io/etcd => go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5 // 17cef6e3e9d5 is the SHA for git tag v3.4.12 go.mongodb.org/mongo-driver => go.mongodb.org/mongo-driver v1.1.2 @@ -447,14 +426,14 @@ replace ( golang.org/x/lint => golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f golang.org/x/mobile => golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 golang.org/x/mod => golang.org/x/mod v0.3.0 - golang.org/x/net => golang.org/x/net v0.0.0-20200707034311-ab3426394381 + golang.org/x/net => golang.org/x/net v0.0.0-20201110031124-69a78807bb2b golang.org/x/oauth2 => golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6 - golang.org/x/sync => golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e - golang.org/x/sys => golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 + golang.org/x/sync => golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 + golang.org/x/sys => golang.org/x/sys v0.0.0-20201112073958-5cba982894dd golang.org/x/text => golang.org/x/text v0.3.3 golang.org/x/time => golang.org/x/time v0.0.0-20191024005414-555d28b269f0 - golang.org/x/tools => golang.org/x/tools v0.0.0-20200616133436-c1934b75d054 - golang.org/x/xerrors => golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 + golang.org/x/tools => golang.org/x/tools v0.0.0-20210106214847-113979e3529a + golang.org/x/xerrors => golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 gonum.org/v1/gonum => gonum.org/v1/gonum v0.6.2 gonum.org/v1/netlib => gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e gonum.org/v1/plot => gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b @@ -464,14 +443,12 @@ replace ( google.golang.org/grpc => google.golang.org/grpc v1.27.0 google.golang.org/protobuf => google.golang.org/protobuf v1.24.0 gopkg.in/alecthomas/kingpin.v2 => gopkg.in/alecthomas/kingpin.v2 v2.2.6 - gopkg.in/asn1-ber.v1 => gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d gopkg.in/check.v1 => gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 gopkg.in/cheggaaa/pb.v1 => gopkg.in/cheggaaa/pb.v1 v1.0.25 gopkg.in/errgo.v2 => gopkg.in/errgo.v2 v2.1.0 gopkg.in/fsnotify.v1 => gopkg.in/fsnotify.v1 v1.4.7 gopkg.in/gcfg.v1 => gopkg.in/gcfg.v1 v1.2.0 gopkg.in/inf.v0 => gopkg.in/inf.v0 v0.9.1 - gopkg.in/ldap.v2 => gopkg.in/ldap.v2 v2.5.1 gopkg.in/mcuadros/go-syslog.v2 => gopkg.in/mcuadros/go-syslog.v2 v2.2.1 gopkg.in/natefinch/lumberjack.v2 => gopkg.in/natefinch/lumberjack.v2 v2.0.0 gopkg.in/resty.v1 => gopkg.in/resty.v1 v1.12.0 @@ -479,28 +456,26 @@ replace ( gopkg.in/tomb.v1 => gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 gopkg.in/warnings.v0 => gopkg.in/warnings.v0 v0.1.1 gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 - gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966 gotest.tools => gotest.tools v2.2.0+incompatible gotest.tools/v3 => gotest.tools/v3 v3.0.2 honnef.co/go/tools => honnef.co/go/tools v0.0.1-2019.2.3 - k8s.io/api => k8s.io/api v0.19.0 - k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.19.0 - k8s.io/apimachinery => k8s.io/apimachinery v0.19.0 - k8s.io/apiserver => k8s.io/apiserver v0.19.0 + k8s.io/api => ./staging/src/k8s.io/api + k8s.io/apiextensions-apiserver => ./staging/src/k8s.io/apiextensions-apiserver + k8s.io/apimachinery => ./staging/src/k8s.io/apimachinery + k8s.io/apiserver => ./staging/src/k8s.io/apiserver k8s.io/cli-runtime => ./staging/src/k8s.io/cli-runtime - k8s.io/client-go => k8s.io/client-go v0.19.0 + k8s.io/client-go => ./staging/src/k8s.io/client-go k8s.io/cloud-provider => ./staging/src/k8s.io/cloud-provider k8s.io/cluster-bootstrap => ./staging/src/k8s.io/cluster-bootstrap - k8s.io/code-generator => k8s.io/code-generator v0.19.0 - k8s.io/component-base => k8s.io/component-base v0.19.0 + k8s.io/code-generator => ./staging/src/k8s.io/code-generator + k8s.io/component-base => ./staging/src/k8s.io/component-base k8s.io/controller-manager => ./staging/src/k8s.io/controller-manager k8s.io/cri-api => ./staging/src/k8s.io/cri-api k8s.io/csi-translation-lib => ./staging/src/k8s.io/csi-translation-lib k8s.io/gengo => k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14 k8s.io/heapster => k8s.io/heapster v1.2.0-beta.1 - k8s.io/klog => k8s.io/klog v1.0.0 k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.19.0 + k8s.io/kube-aggregator => ./staging/src/k8s.io/kube-aggregator k8s.io/kube-controller-manager => ./staging/src/k8s.io/kube-controller-manager k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 k8s.io/kube-proxy => ./staging/src/k8s.io/kube-proxy @@ -520,11 +495,9 @@ replace ( modernc.org/strutil => modernc.org/strutil v1.0.0 modernc.org/xc => modernc.org/xc v1.0.0 rsc.io/pdf => rsc.io/pdf v0.1.1 - sigs.k8s.io/apiserver-network-proxy/konnectivity-client => sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9 - sigs.k8s.io/controller-tools => sigs.k8s.io/controller-tools v0.2.8 - sigs.k8s.io/kube-storage-version-migrator => sigs.k8s.io/kube-storage-version-migrator v0.0.3 + sigs.k8s.io/apiserver-network-proxy/konnectivity-client => sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15 sigs.k8s.io/kustomize => sigs.k8s.io/kustomize v2.0.3+incompatible - sigs.k8s.io/structured-merge-diff/v4 => sigs.k8s.io/structured-merge-diff/v4 v4.0.1 + sigs.k8s.io/structured-merge-diff/v4 => sigs.k8s.io/structured-merge-diff/v4 v4.0.3 sigs.k8s.io/yaml => sigs.k8s.io/yaml v1.2.0 vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/go.sum b/go.sum index a1048c1442db8..524c58bceda13 100644 --- a/go.sum +++ b/go.sum @@ -72,7 +72,6 @@ github.com/caddyserver/caddy v1.0.3 h1:i9gRhBgvc5ifchwWtSe7pDpsdS9+Q0Rw9oYQmYUTw github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5 h1:7aWHqerlJ41y6FOsEUvknqgXnGmJyJSbjhAWq5pO4F8= @@ -81,7 +80,6 @@ github.com/checkpoint-restore/go-criu/v4 v4.0.2 h1:jt+rnBIhFtPw0fhtpYGcUOilh4aO9 github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775 h1:cHzBGGVew0ezFsq2grfy2RsB8hO/eNyBgOLHBCqfR1U= @@ -142,11 +140,8 @@ github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c h1:zviRyz1SWO8+WVJ github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= @@ -171,8 +166,6 @@ github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= @@ -208,11 +201,10 @@ github.com/go-ozzo/ozzo-validation v3.5.0+incompatible h1:sUy/in/P6askYr16XJgTKq github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= github.com/godbus/dbus/v5 v5.0.3 h1:ZqHaoEF7TBzh4jzPmqVhE/5A1z9of6orkAe5uHoAeME= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -228,16 +220,10 @@ github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995 h1:f5gsjBiF9tRRVomC github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e h1:KhcknUwkWHKZPbFy2P7jH5LKJ3La+0ZeknkkmrSgqb0= github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.37.0 h1:t3txV4zNZZGTuwuA/Onm3HToPhg16GjigAHZHEVIz+c= -github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I= +github.com/google/cadvisor v0.37.5 h1:7JxmD4TqlGk/B+bsabeBNL3YS+ppVjx74EUnautkVfk= +github.com/google/cadvisor v0.37.5/go.mod h1:BalYQhwl2UV8lpB3oFssiaW8Uj6sqfFDxw5nEs9sBgU= github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= @@ -301,7 +287,7 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= 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/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= @@ -373,6 +359,8 @@ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+ github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ= @@ -385,24 +373,12 @@ github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2 h1:9 github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/selinux v1.5.2 h1:F6DgIsjgBIcDksLW4D5RG9bXok6oqZ3nvMwj4ZoFu/Q= github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf h1:KP/v5AGCaq1Sbe6QrlFGZM1fHBswiHuniMTC4/hgbVw= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728 h1:QOA50MXyDwiKs+Pskg7D18yZ1Z5kbxNDqQkmT7CAbdw= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728/go.mod h1:+B51GHs/jfZzk93MKrSSA8BWxrulVVcxiBG7kdFpd74= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5 h1:E6WhVL5p3rfjtc+o+jVG/29Aclnf3XIF7akxXvadwR0= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible h1:AGewrYJW8aXFkkf86sSoiO9L/a/QYKZvODVCaB/wk4o= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98 h1:JYwa3H00larjMVZXmh7L4FHDhNlKdWSgYi0kLdav9BY= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021 h1:0XM1XL/OFFJjXsYXlG30spTkV/E9+gmd5GD1w2HE8xM= @@ -485,7 +461,7 @@ github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1 h1:j2hhcujLRHAg872RWAV5yaUrEjHEObwDv3aImCaNLek= github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5 h1:Gqga3zA9tdAcfqobUGjSoCob5L3f8Dt5EuOp3ihNZko= @@ -509,22 +485,22 @@ golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRu golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6 h1:pE8b58s1HRDMi8RDc79m0HISf9D4TzseP40cEA6IGfs= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054 h1:HHeAlu5H9b71C+Fx0K+1dGgVFN1DM1/wz4aoGOA5qS8= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a h1:CB3a9Nez8M13wwlr/E2YtwoU+qYHKfC+JrDa45RXXoQ= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.6.2 h1:4r+yNT0+8SWcOkXP+63H2zQbN+USnC73cjGUxnDF94Q= gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e h1:jRyg0XfpwWlhEV8mDfdNGBeSJM2fuyh9Yjrnd8kF2Ts= @@ -541,8 +517,6 @@ google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= @@ -553,8 +527,6 @@ gopkg.in/gcfg.v1 v1.2.0 h1:0HIbH907iBTAntm+88IJV2qmJALDAh8sPekI9Vc1fm0= gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1 h1:wiu0okdNfjlBzg6UWvd1Hn8Y+Ux17/u/4nlk4CQr6tU= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= @@ -567,39 +539,19 @@ 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.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2 h1:kG1BFyqVHuQoVQiR1bWGnfz/fmHvvuiSPIV7rvl360E= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -k8s.io/api v0.19.0 h1:XyrFIJqTYZJ2DU7FBE/bSPz7b1HvbVBuBf07oeo6eTc= -k8s.io/api v0.19.0/go.mod h1:I1K45XlvTrDjmj5LoM5LuP/KYrhWbjUKT/SoPG0qTjw= -k8s.io/apiextensions-apiserver v0.19.0 h1:jlY13lvZp+0p9fRX2khHFdiT9PYzT7zUrANz6R1NKtY= -k8s.io/apiextensions-apiserver v0.19.0/go.mod h1:znfQxNpjqz/ZehvbfMg5N6fvBJW5Lqu5HVLTJQdP4Fs= -k8s.io/apimachinery v0.19.0 h1:gjKnAda/HZp5k4xQYjL0K/Yb66IvNqjthCb03QlKpaQ= -k8s.io/apimachinery v0.19.0/go.mod h1:DnPGDnARWFvYa3pMHgSxtbZb7gpzzAZ1pTfaUNDVlmA= -k8s.io/apiserver v0.19.0 h1:jLhrL06wGAADbLUUQm8glSLnAGP6c7y5R3p19grkBoY= -k8s.io/apiserver v0.19.0/go.mod h1:XvzqavYj73931x7FLtyagh8WibHpePJ1QwWrSJs2CLk= -k8s.io/client-go v0.19.0 h1:1+0E0zfWFIWeyRhQYWzimJOyAk2UT7TiARaLNwJCf7k= -k8s.io/client-go v0.19.0/go.mod h1:H9E/VT95blcFQnlyShFgnFT9ZnJOAceiUHM3MlRC+mU= -k8s.io/code-generator v0.19.0 h1:r0BxYnttP/r8uyKd4+Njg0B57kKi8wLvwEzaaVy3iZ8= -k8s.io/code-generator v0.19.0/go.mod h1:moqLn7w0t9cMs4+5CQyxnfA/HV8MF6aAVENF+WZZhgk= -k8s.io/component-base v0.19.0 h1:OueXf1q3RW7NlLlUCj2Dimwt7E1ys6ZqRnq53l2YuoE= -k8s.io/component-base v0.19.0/go.mod h1:dKsY8BxkA+9dZIAh2aWJLL/UdASFDNtGYTCItL4LM7Y= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14 h1:t4L10Qfx/p7ASH3gXCdIUtPbbIuegCoUJf3TMSFekjw= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/heapster v1.2.0-beta.1 h1:lUsE/AHOMHpi3MLlBEkaU8Esxm5QhdyCrv1o7ot0s84= k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/kube-aggregator v0.19.0 h1:rL4fsftMaqkKjaibArYDaBeqN41CHaJzgRJjUB9IrIg= -k8s.io/kube-aggregator v0.19.0/go.mod h1:1Ln45PQggFAG8xOqWPIYMxUq8WNtpPnYsbUJ39DpF/A= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A= k8s.io/system-validators v1.1.2 h1:0xzEb0PqnDnUOuf/2E/gaJBOBN7j+qf0LIn12jw3oc4= k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= @@ -610,14 +562,12 @@ modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03 modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9 h1:rusRLrDhjBp6aYtl9sGEvQJr6faoHoDLd0YcUBTZguI= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15 h1:4uqm9Mv+w2MmBYD+F4qf/v6tDFUdPOk29C095RbU5mY= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= sigs.k8s.io/kustomize v2.0.3+incompatible h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbLXqhyOyX0= sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc h1:MksmcCZQWAQJCTA5T0jgI/0sJ51AVm4Z41MrmfczEoc= diff --git a/hack/.shellcheck_failures b/hack/.shellcheck_failures index 227fe11b6f4f5..fbc461d191bef 100644 --- a/hack/.shellcheck_failures +++ b/hack/.shellcheck_failures @@ -3,6 +3,3 @@ ./cluster/gce/gci/master-helper.sh ./cluster/gce/util.sh ./cluster/log-dump/log-dump.sh -./openshift-hack/lib/build/binaries.sh -./openshift-hack/lib/constants.sh -./openshift-hack/lib/init.sh diff --git a/hack/generate-bindata.sh b/hack/generate-bindata.sh index 64fd9a9e291f2..c12da77e54ba0 100755 --- a/hack/generate-bindata.sh +++ b/hack/generate-bindata.sh @@ -33,10 +33,7 @@ export GOBIN="${KUBE_OUTPUT_BINPATH}" PATH="${GOBIN}:${PATH}" # Install tools we need, but only from vendor/... -if [[ ! "${SKIP_INSTALL_GO_BINDATA:-}" ]]; then - # Only install if being called directly to allow being called from origin in a vendored path. - GO111MODULE=off go install ./vendor/github.com/go-bindata/go-bindata/... -fi +go install k8s.io/kubernetes/vendor/github.com/go-bindata/go-bindata/go-bindata # run the generation from the root directory for stable output pushd "${KUBE_ROOT}" >/dev/null diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh index 57989484ed787..5fb04434c447f 100755 --- a/hack/lib/golang.sh +++ b/hack/lib/golang.sh @@ -78,7 +78,6 @@ kube::golang::server_targets() { vendor/k8s.io/kube-aggregator vendor/k8s.io/apiextensions-apiserver cluster/gce/gci/mounter - cmd/watch-termination ) echo "${targets[@]}" } @@ -306,9 +305,10 @@ readonly KUBE_TEST_SERVER_BINARIES=("${KUBE_TEST_SERVER_TARGETS[@]##*/}") readonly KUBE_TEST_SERVER_PLATFORMS=("${KUBE_SERVER_PLATFORMS[@]:+"${KUBE_SERVER_PLATFORMS[@]}"}") # Gigabytes necessary for parallel platform builds. -# As of January 2018, RAM usage is exceeding 30G -# Setting to 40 to provide some headroom -readonly KUBE_PARALLEL_BUILD_MEMORY=40 +# As of January 2018, RAM usage is exceeding 30G. +# This variable can be overwritten at your own risk. +# It's defaulting to 40G to provide some headroom +readonly KUBE_PARALLEL_BUILD_MEMORY=${KUBE_PARALLEL_BUILD_MEMORY:-40} readonly KUBE_ALL_TARGETS=( "${KUBE_SERVER_TARGETS[@]}" diff --git a/hack/make-rules/clean.sh b/hack/make-rules/clean.sh index 9a3f2e9c513a9..9305c8df6c2a1 100755 --- a/hack/make-rules/clean.sh +++ b/hack/make-rules/clean.sh @@ -25,6 +25,7 @@ CLEAN_PATTERNS=( "_tmp" "doc_tmp" "((?!staging\/src\/k8s\.io\/apiextensions-apiserver\/pkg\/generated\/openapi).)*/zz_generated.openapi.go" + "test/e2e/generated/bindata.go" ) for pattern in "${CLEAN_PATTERNS[@]}"; do diff --git a/hack/make-rules/test.sh b/hack/make-rules/test.sh index 0ff05c9a6de28..729b7b3c9ea23 100755 --- a/hack/make-rules/test.sh +++ b/hack/make-rules/test.sh @@ -52,7 +52,6 @@ kube::test::find_dirs() { -o -path './third_party/*' \ -o -path './staging/*' \ -o -path './vendor/*' \ - -o -path './openshift-hack/e2e/*' \ \) -prune \ \) -name '*_test.go' -print0 | xargs -0n1 dirname | sed "s|^\./|${KUBE_GO_PACKAGE}/|" | LC_ALL=C sort -u @@ -60,11 +59,7 @@ kube::test::find_dirs() { ) } -# The default timeout of 120s is not sufficient for the following packages -# whose successful execution takes longer than that. -# - k8s.io/kubernetes/pkg/kubelet/volumemanager/reconciler -# - k8s.io/kubernetes/pkg/volume/csi -KUBE_TIMEOUT=${KUBE_TIMEOUT:--timeout=180s} +KUBE_TIMEOUT=${KUBE_TIMEOUT:--timeout=120s} KUBE_COVER=${KUBE_COVER:-n} # set to 'y' to enable coverage collection KUBE_COVERMODE=${KUBE_COVERMODE:-atomic} # The directory to save test coverage reports to, if generating them. If unset, diff --git a/hack/make-rules/update.sh b/hack/make-rules/update.sh index a4d8b67a392f9..79756a698d6a5 100755 --- a/hack/make-rules/update.sh +++ b/hack/make-rules/update.sh @@ -43,9 +43,7 @@ if ! ${ALL} ; then echo "Running in short-circuit mode; run with FORCE_ALL=true to force all scripts to run." fi -# Skip bazel since it's not used downstream BASH_TARGETS=" - update-test-annotations update-generated-protobuf update-codegen update-generated-runtime @@ -54,6 +52,7 @@ BASH_TARGETS=" update-generated-docs update-generated-swagger-docs update-openapi-spec + update-bazel update-gofmt" for t in ${BASH_TARGETS}; do diff --git a/hack/make-rules/verify.sh b/hack/make-rules/verify.sh index 0cf3b4f35e759..b91244cb8fdcd 100755 --- a/hack/make-rules/verify.sh +++ b/hack/make-rules/verify.sh @@ -43,33 +43,6 @@ if [[ ${EXCLUDE_FILES_REMAKE:-} =~ ^[yY]$ ]]; then ) fi -# Excluded checks for openshift/kubernetes fork that are always skipped. -EXCLUDED_PATTERNS+=( - "verify-boilerplate.sh" # Carries do not require boilerplate - "verify-bazel.sh" # Bazel is not used downstream - "verify-no-vendor-cycles.sh" # Incompatible with the way many carries are specified - "verify-publishing-bot.py" # Verifies the upstream rules, which are not maintained in o/k - "verify-staging-meta-files.sh" # Staging meta files are not maintained downstream -) - -# Skipped checks for openshift/kubernetes fork that need to be fixed. -# -# Where a check is excluded due to 'inconsistent behavior between -# local and ci execution', the fix will require finding a way to -# compare current and generated results without 'cp -a' since this -# command does not execute without error in downstream ci. -EXCLUDED_PATTERNS+=( - "verify-codegen.sh" # TODO(marun) Fix inconsistent behavior between local and ci execution - "verify-generated-files-remake.sh" # TODO(marun) Is it worth fixing this check? - "verify-generated-protobuf.sh" # TODO(marun) Fix inconsistent behavior between local and ci execution - "verify-golint.sh" # TODO(marun) Cleanup carried code - "verify-hack-tools.sh" # TODO(marun) Fix inconsistent behavior between local and ci execution - "verify-openapi-spec.sh" # TODO(marun) Fix inconsistent behavior between local and ci execution - "verify-spelling.sh" # TODO(marun) Need to ensure installation of misspell command - "verify-staticcheck.sh" # TODO(marun) Fix inconsistent behavior between local and ci execution - "verify-vendor-licenses.sh" # TODO(marun) Fix inconsistent behavior between local and ci execution -) - # Exclude typecheck in certain cases, if they're running in a separate job. if [[ ${EXCLUDE_TYPECHECK:-} =~ ^[yY]$ ]]; then EXCLUDED_PATTERNS+=( diff --git a/hack/tools/go.mod b/hack/tools/go.mod index c73aa3174da05..1c9fc405dd207 100644 --- a/hack/tools/go.mod +++ b/hack/tools/go.mod @@ -11,5 +11,5 @@ require ( gotest.tools v2.2.0+incompatible gotest.tools/gotestsum v0.3.5 honnef.co/go/tools v0.0.1-2020.1.4 - k8s.io/repo-infra v0.1.1 + k8s.io/repo-infra v0.1.3 ) diff --git a/hack/tools/go.sum b/hack/tools/go.sum index 57d0c07dcf391..aecca97b538b3 100644 --- a/hack/tools/go.sum +++ b/hack/tools/go.sum @@ -708,8 +708,8 @@ honnef.co/go/tools v0.0.1-2020.1.4 h1:UoveltGrhghAA7ePc+e+QYDHXrBps2PqFZiHkGR/xK honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/klog/v2 v2.3.0 h1:WmkrnW7fdrm0/DMClc+HIxtftvxVIPAhlVwMQo5yLco= k8s.io/klog/v2 v2.3.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/repo-infra v0.1.1 h1:gGVxusj+TfqEQmLQGg3bzhpQlHrB0RSVM94HyU7Jg9I= -k8s.io/repo-infra v0.1.1/go.mod h1:WfvjbUCy0f1fsyHq6sF825VYMfAh9pQdkYCa35OZRJc= +k8s.io/repo-infra v0.1.3 h1:+HpCvZOn7aOSSZLbrp03fTd5V9VmPcucUm7Cu2bES1w= +k8s.io/repo-infra v0.1.3/go.mod h1:WfvjbUCy0f1fsyHq6sF825VYMfAh9pQdkYCa35OZRJc= mvdan.cc/gofumpt v0.0.0-20200709182408-4fd085cb6d5f/go.mod h1:9VQ397fNXEnF84t90W4r4TRCQK+pg9f8ugVfyj+S26w= mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I= mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= diff --git a/hack/update-test-annotations.sh b/hack/update-test-annotations.sh deleted file mode 120000 index ecf920cd8d6b4..0000000000000 --- a/hack/update-test-annotations.sh +++ /dev/null @@ -1 +0,0 @@ -../openshift-hack/update-test-annotations.sh \ No newline at end of file diff --git a/hack/update-vendor.sh b/hack/update-vendor.sh index 4b297b9f2b1a9..35b1ef22c4943 100755 --- a/hack/update-vendor.sh +++ b/hack/update-vendor.sh @@ -299,8 +299,7 @@ go mod tidy >>"${LOG_FILE}" 2>&1 # disallow transitive dependencies on k8s.io/kubernetes loopback_deps=() kube::util::read-array loopback_deps < <(go mod graph | grep ' k8s.io/kubernetes' || true) -## Allow apiserver-library-go to depend on k8s.io/kubernetes -if [[ -n ${loopback_deps[*]:+"${loopback_deps[*]}"} && ! "${loopback_deps[*]}" =~ github.com/openshift/apiserver-library-go ]]; then +if [[ -n ${loopback_deps[*]:+"${loopback_deps[*]}"} ]]; then kube::log::error "Disallowed transitive k8s.io/kubernetes dependencies exist via the following imports:" kube::log::error "${loopback_deps[@]}" exit 1 @@ -347,24 +346,22 @@ for repo in $(kube::util::list_staging_repos); do ln -s "../../staging/src/k8s.io/${repo}" "${KUBE_ROOT}/vendor/k8s.io/${repo}" done -## Bazel is not used to build downstream -#kube::log::status "vendor: updating BUILD files" +kube::log::status "vendor: updating BUILD files" # Assume that anything imported through vendor doesn't need Bazel to build. # Prune out any Bazel build files, since these can break the build due to # missing dependencies that aren't included by go mod vendor. -# find . -type f \ -# \( -name BUILD -o -name BUILD.bazel -o -name WORKSPACE \) \ -# -exec rm -f {} \; -#hack/update-bazel.sh >>"${LOG_FILE}" 2>&1 +find vendor/ -type f \ + \( -name BUILD -o -name BUILD.bazel -o -name WORKSPACE \) \ + -exec rm -f {} \; +hack/update-bazel.sh >>"${LOG_FILE}" 2>&1 -## License files are not currently maintained downstream -#kube::log::status "vendor: updating vendor/LICENSES" -#hack/update-vendor-licenses.sh >>"${LOG_FILE}" 2>&1 +kube::log::status "vendor: updating vendor/LICENSES" +hack/update-vendor-licenses.sh >>"${LOG_FILE}" 2>&1 kube::log::status "vendor: creating OWNERS file" rm -f "vendor/OWNERS" cat <<__EOF__ > "vendor/OWNERS" -See the OWNERS docs at https://go.k8s.io/owners +# See the OWNERS docs at https://go.k8s.io/owners approvers: - dep-approvers diff --git a/hack/verify-test-annotations.sh b/hack/verify-test-annotations.sh deleted file mode 120000 index a9cbed2d3245a..0000000000000 --- a/hack/verify-test-annotations.sh +++ /dev/null @@ -1 +0,0 @@ -../openshift-hack/verify-test-annotations.sh \ No newline at end of file diff --git a/hack/verify-vendor.sh b/hack/verify-vendor.sh index b6fc09408749c..46a15255e7a2c 100755 --- a/hack/verify-vendor.sh +++ b/hack/verify-vendor.sh @@ -86,12 +86,8 @@ pushd "${KUBE_ROOT}" > /dev/null 2>&1 ret=1 fi - # Given that we don't intend to publish staging repos from our fork, - # it does not seem necessary to ensure that dependencies will match - # across staging repos when published. - # # Verify we are pinned to matching levels - #hack/lint-dependencies.sh >&2 + hack/lint-dependencies.sh >&2 popd > /dev/null 2>&1 if [[ ${ret} -gt 0 ]]; then diff --git a/openshift-hack/build-go.sh b/openshift-hack/build-go.sh deleted file mode 100755 index dfc663d23a593..0000000000000 --- a/openshift-hack/build-go.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -STARTTIME=$(date +%s) - -# shellcheck source=openshift-hack/lib/init.sh -source "$(dirname "${BASH_SOURCE[0]}")/lib/init.sh" - -pushd "${OS_ROOT}" > /dev/null || exit 1 - make all WHAT='cmd/kube-apiserver cmd/kube-controller-manager cmd/kube-scheduler cmd/kubelet' -popd > /dev/null || exit 1 - -os::build::version::git_vars - -if [[ "${OS_GIT_TREE_STATE:-dirty}" == "clean" ]]; then - # only when we are building from a clean state can we claim to - # have created a valid set of binaries that can resemble a release - mkdir -p "${OS_OUTPUT_RELEASEPATH}" - echo "${OS_GIT_COMMIT}" > "${OS_OUTPUT_RELEASEPATH}/.commit" -fi - -ret=$?; ENDTIME=$(date +%s); echo "$0 took $((ENDTIME - STARTTIME)) seconds"; exit "$ret" diff --git a/openshift-hack/build-rpms.sh b/openshift-hack/build-rpms.sh deleted file mode 100755 index 4ef11711d48df..0000000000000 --- a/openshift-hack/build-rpms.sh +++ /dev/null @@ -1,130 +0,0 @@ -#!/usr/bin/env bash - -# This script generates RPMs into _output/releases. All build -# dependencies are required on the host. The build will be performed -# by the upstream makefile called from the spec file. -# shellcheck source=openshift-hack/lib/init.sh -source "$(dirname "${BASH_SOURCE[0]}")/lib/init.sh" - -# Only build linux by default. Clearing this value will build all platforms -OS_ONLY_BUILD_PLATFORMS="${OS_ONLY_BUILD_PLATFORMS:-linux/amd64}" - -function cleanup() { - return_code=$? - os::util::describe_return_code "${return_code}" - exit "${return_code}" -} -trap "cleanup" EXIT - -# check whether we are in a clean output state -dirty="$( if [[ -d "${OS_OUTPUT}" ]]; then echo '1'; fi )" - -os::util::ensure::system_binary_exists rpmbuild -os::util::ensure::system_binary_exists createrepo - -if [[ -n "${OS_BUILD_SRPM-}" ]]; then - srpm="a" -else - srpm="b" -fi - -os::build::rpm::get_nvra_vars - -OS_RPM_SPECFILE="$( find "${OS_ROOT}" -name '*.spec' )" -OS_RPM_NAME="$( rpmspec -q --qf '%{name}\n' "${OS_RPM_SPECFILE}" | head -1 )" - -os::log::info "Building release RPMs for ${OS_RPM_SPECFILE} ..." - -rpm_tmp_dir="${BASETMPDIR}/rpm" - -# RPM requires the spec file be owned by the invoking user -chown "$(id -u):$(id -g)" "${OS_RPM_SPECFILE}" || true - -if [[ -n "${dirty}" && "${OS_GIT_TREE_STATE}" == "dirty" ]]; then - os::log::warning "Repository is not clean, performing fast build and reusing _output" - - # build and output from source to destination - rm -rf "${rpm_tmp_dir}" - mkdir -p "${rpm_tmp_dir}" - ln -fns "${OS_ROOT}" "${rpm_tmp_dir}/SOURCES" - ln -fns "${OS_ROOT}" "${rpm_tmp_dir}/BUILD" - rpmbuild -bb "${OS_RPM_SPECFILE}" \ - --define "_sourcedir ${rpm_tmp_dir}/SOURCES" \ - --define "_builddir ${rpm_tmp_dir}/BUILD" \ - --define "skip_prep 1" \ - --define "skip_dist ${SKIP_DIST:-1}" \ - --define "version ${OS_RPM_VERSION}" \ - --define "release ${OS_RPM_RELEASE}" \ - --define "commit ${OS_GIT_COMMIT}" \ - --define "os_git_vars ${OS_RPM_GIT_VARS}" \ - --define "_topdir ${rpm_tmp_dir}" - - mkdir -p "${OS_OUTPUT_RPMPATH}" - mv -f "${rpm_tmp_dir}"/RPMS/*/*.rpm "${OS_OUTPUT_RPMPATH}" - -else - rm -rf "${rpm_tmp_dir}/SOURCES" - mkdir -p "${rpm_tmp_dir}/SOURCES" - tar czf "${rpm_tmp_dir}/SOURCES/${OS_RPM_NAME}-${OS_RPM_VERSION}.tar.gz" \ - --owner=0 --group=0 \ - --exclude=_output --exclude=.git \ - --transform "s|^|${OS_RPM_NAME}-${OS_RPM_VERSION}/|rSH" \ - . - - rpmbuild -b${srpm} "${OS_RPM_SPECFILE}" \ - --define "skip_dist ${SKIP_DIST:-1}" \ - --define "version ${OS_RPM_VERSION}" \ - --define "release ${OS_RPM_RELEASE}" \ - --define "commit ${OS_GIT_COMMIT}" \ - --define "os_git_vars ${OS_RPM_GIT_VARS}" \ - --define "_topdir ${rpm_tmp_dir}" - - output_directory="$( find "${rpm_tmp_dir}" -type d -path "*/BUILD/${OS_RPM_NAME}-${OS_RPM_VERSION}/_output/local" )" - if [[ -z "${output_directory}" ]]; then - os::log::fatal 'No _output artifact directory found in rpmbuild artifacts!' - fi - - # migrate the rpm artifacts to the output directory, must be clean or move will fail - make clean - mkdir -p "${OS_OUTPUT}" - - # mv exits prematurely with status 1 in the following scenario: running as root, - # attempting to move a [directory tree containing a] symlink to a destination on - # an NFS volume exported with root_squash set. This can occur when running this - # script on a Vagrant box. The error shown is "mv: failed to preserve ownership - # for $FILE: Operation not permitted". As a workaround, if - # ${output_directory} and ${OS_OUTPUT} are on different devices, use cp and - # rm instead. - if [[ $(stat -c %d "${output_directory}") == $(stat -c %d "${OS_OUTPUT}") ]]; then - mv "${output_directory}"/* "${OS_OUTPUT}" - else - cp -R "${output_directory}"/* "${OS_OUTPUT}" - rm -rf "${output_directory:?}"/* - fi - - mkdir -p "${OS_OUTPUT_RPMPATH}" - if [[ -n "${OS_BUILD_SRPM-}" ]]; then - mv -f "${rpm_tmp_dir}"/SRPMS/*src.rpm "${OS_OUTPUT_RPMPATH}" - fi - mv -f "${rpm_tmp_dir}"/RPMS/*/*.rpm "${OS_OUTPUT_RPMPATH}" -fi - -mkdir -p "${OS_OUTPUT_RELEASEPATH}" -echo "${OS_GIT_COMMIT}" > "${OS_OUTPUT_RELEASEPATH}/.commit" - -repo_path="$( os::util::absolute_path "${OS_OUTPUT_RPMPATH}" )" -createrepo "${repo_path}" - -echo "[${OS_RPM_NAME}-local-release] -baseurl = file://${repo_path} -gpgcheck = 0 -name = Release from Local Source for ${OS_RPM_NAME} -enabled = 1 -" > "${repo_path}/local-release.repo" - -# DEPRECATED: preserve until jobs migrate to using local-release.repo -cp "${repo_path}/local-release.repo" "${repo_path}/origin-local-release.repo" - -os::log::info "Repository file for \`yum\` or \`dnf\` placed at ${repo_path}/local-release.repo -Install it with: -$ mv '${repo_path}/local-release.repo' '/etc/yum.repos.d" diff --git a/openshift-hack/commit-tag.png b/openshift-hack/commit-tag.png deleted file mode 100644 index ac225eae27cce..0000000000000 Binary files a/openshift-hack/commit-tag.png and /dev/null differ diff --git a/openshift-hack/commitchecker/commitchecker b/openshift-hack/commitchecker/commitchecker deleted file mode 100755 index 10a254b7a942c..0000000000000 Binary files a/openshift-hack/commitchecker/commitchecker and /dev/null differ diff --git a/openshift-hack/commitchecker/commitchecker.go b/openshift-hack/commitchecker/commitchecker.go deleted file mode 100644 index 1b2395d4a7c13..0000000000000 --- a/openshift-hack/commitchecker/commitchecker.go +++ /dev/null @@ -1,39 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "os" -) - -func main() { - var start, end string - flag.StringVar(&start, "start", "master", "The start of the revision range for analysis") - flag.StringVar(&end, "end", "HEAD", "The end of the revision range for analysis") - flag.Parse() - - commits, err := CommitsBetween(start, end) - if err != nil { - if err == ErrNotCommit { - _, _ = fmt.Fprintf(os.Stderr, "WARNING: one of the provided commits does not exist, not a true branch\n") - os.Exit(0) - } - _, _ = fmt.Fprintf(os.Stderr, "ERROR: couldn't find commits from %s..%s: %v\n", start, end, err) - os.Exit(1) - } - - var errs []string - for _, validate := range AllCommitValidators { - for _, commit := range commits { - errs = append(errs, validate(commit)...) - } - } - - if len(errs) > 0 { - for _, e := range errs { - _, _ = fmt.Fprintf(os.Stderr, "%s\n\n", e) - } - - os.Exit(2) - } -} diff --git a/openshift-hack/commitchecker/git.go b/openshift-hack/commitchecker/git.go deleted file mode 100644 index a919632399353..0000000000000 --- a/openshift-hack/commitchecker/git.go +++ /dev/null @@ -1,378 +0,0 @@ -package main - -import ( - "bytes" - "fmt" - "os" - "os/exec" - "regexp" - "strings" -) - -var ( - MergeSummaryPattern = regexp.MustCompile(`^Merge commit .*`) - UpstreamSummaryPattern = regexp.MustCompile(`^UPSTREAM: (revert: )?(([\w\.-]+\/[\w-\.-]+)?: )?(\d+:|:|:)`) - BumpSummaryPattern = regexp.MustCompile(`^bump[\(\w].*`) - - // patchRegexps holds regexps for paths inside vendor dir that are allowed to be patched directly. - // It must corresponds to published repositories. - PatchRegexps = []*regexp.Regexp{ - regexp.MustCompile("^k8s.io/kubernetes/.*"), - } - - // supportedHosts maps source hosts to the number of path segments that - // represent the account/repo for that host. This is necessary because we - // can't tell just by looking at an import path whether the repo is identified - // by the first 2 or 3 path segments. - // - // If dependencies are introduced from new hosts, they'll need to be added - // here. - SupportedHosts = map[string]int{ - "bitbucket.org": 3, - "cloud.google.com": 2, - "code.google.com": 3, - "github.com": 3, - "golang.org": 3, - "google.golang.org": 2, - "gopkg.in": 2, - "k8s.io": 2, - "speter.net": 2, - } -) - -func RegexpsToStrings(a []*regexp.Regexp) []string { - var res []string - for _, r := range a { - res = append(res, r.String()) - } - return res -} - -type File string - -func (f File) HasVendoredCodeChanges() bool { - return strings.HasPrefix(string(f), "vendor") -} - -func (f File) IsPatch() bool { - if !strings.HasPrefix(string(f), "vendor/") { - return false - } - - for _, r := range PatchRegexps { - if r.Match([]byte(strings.TrimPrefix(string(f), "vendor/"))) { - return true - } - } - - return false -} - -func (f File) VendorRepo() (string, error) { - if !strings.HasPrefix(string(f), "vendor/") { - return "", fmt.Errorf("file %q doesn't appear to be a vendor change", string(f)) - } - - p := strings.TrimPrefix(string(f), "vendor/") - - parts := strings.Split(p, string(os.PathSeparator)) - - if len(parts) < 1 { - return "", fmt.Errorf("invalid file %q", string(f)) - } - - numSegments, ok := SupportedHosts[parts[0]] - if !ok { - return "", fmt.Errorf("unsupported host for file %q", string(f)) - } - - if numSegments < 1 { - return "", fmt.Errorf("invalid number of segments %d when processing file path %q", numSegments, string(f)) - } - - return strings.Join(parts[0:numSegments], string(os.PathSeparator)), nil -} - -type Commit struct { - Sha string - Summary string - Description []string - Files []File - Email string -} - -func (c Commit) MatchesMergeSummaryPattern() bool { - return MergeSummaryPattern.MatchString(c.Summary) -} - -func (c Commit) MatchesUpstreamSummaryPattern() bool { - return UpstreamSummaryPattern.MatchString(c.Summary) -} - -func (c Commit) MatchesBumpSummaryPattern() bool { - return BumpSummaryPattern.MatchString(c.Summary) -} - -func (c Commit) DeclaredUpstreamRepo() (string, error) { - if !c.MatchesUpstreamSummaryPattern() { - return "", fmt.Errorf("commit doesn't match the upstream commit summary pattern") - } - groups := UpstreamSummaryPattern.FindStringSubmatch(c.Summary) - repo := groups[3] - if len(repo) == 0 { - repo = "k8s.io/kubernetes" - } - return repo, nil -} - -func (c Commit) HasVendoredCodeChanges() bool { - for _, file := range c.Files { - if file.HasVendoredCodeChanges() { - return true - } - } - return false -} - -func (c Commit) HasNonVendoredCodeChanges() bool { - for _, file := range c.Files { - if !file.HasVendoredCodeChanges() { - return true - } - } - return false -} - -func (c Commit) HasPatches() bool { - for _, f := range c.Files { - if f.IsPatch() { - return true - } - } - return false -} - -func (c Commit) HasBumpedFiles() bool { - for _, f := range c.Files { - if f.HasVendoredCodeChanges() && !f.IsPatch() { - return true - } - } - return false -} - -func (c Commit) PatchedRepos() ([]string, error) { - var repos []string - seenKeys := map[string]struct{}{} - for _, f := range c.Files { - if f.IsPatch() { - repo, err := f.VendorRepo() - if err != nil { - return nil, err - } - _, ok := seenKeys[repo] - if !ok { - repos = append(repos, repo) - seenKeys[repo] = struct{}{} - } - } - } - return repos, nil -} - -func IsCommit(a string) bool { - if _, _, err := run("git", "rev-parse", a); err != nil { - return false - } - return true -} - -var ErrNotCommit = fmt.Errorf("one or both of the provided commits was not a valid commit") - -func CommitsBetween(a, b string) ([]Commit, error) { - commits := []Commit{} - stdout, stderr, err := run("git", "log", "--oneline", fmt.Sprintf("%s..%s", a, b)) - if err != nil { - if !IsCommit(a) || !IsCommit(b) { - return nil, ErrNotCommit - } - return nil, fmt.Errorf("error executing git log: %s: %s", stderr, err) - } - for _, log := range strings.Split(stdout, "\n") { - if len(log) == 0 { - continue - } - commit, err := NewCommitFromOnelineLog(log) - if err != nil { - return nil, err - } - commits = append(commits, commit) - } - return commits, nil -} - -func NewCommitFromOnelineLog(log string) (Commit, error) { - var commit Commit - var err error - parts := strings.Split(log, " ") - if len(parts) < 2 { - return commit, fmt.Errorf("invalid log entry: %s", log) - } - commit.Sha = parts[0] - commit.Summary = strings.Join(parts[1:], " ") - commit.Description, err = descriptionInCommit(commit.Sha) - if err != nil { - return commit, err - } - files, err := filesInCommit(commit.Sha) - if err != nil { - return commit, err - } - commit.Files = files - commit.Email, err = emailInCommit(commit.Sha) - if err != nil { - return commit, err - } - return commit, nil -} - -func FetchRepo(repoDir string) error { - cwd, err := os.Getwd() - if err != nil { - return err - } - defer os.Chdir(cwd) - - if err := os.Chdir(repoDir); err != nil { - return err - } - - if stdout, stderr, err := run("git", "fetch", "origin"); err != nil { - return fmt.Errorf("out=%s, err=%s, %s", strings.TrimSpace(stdout), strings.TrimSpace(stderr), err) - } - return nil -} - -func IsAncestor(commit1, commit2, repoDir string) (bool, error) { - cwd, err := os.Getwd() - if err != nil { - return false, err - } - defer os.Chdir(cwd) - - if err := os.Chdir(repoDir); err != nil { - return false, err - } - - if stdout, stderr, err := run("git", "merge-base", "--is-ancestor", commit1, commit2); err != nil { - return false, fmt.Errorf("out=%s, err=%s, %s", strings.TrimSpace(stdout), strings.TrimSpace(stderr), err) - } - - return true, nil -} - -func CommitDate(commit, repoDir string) (string, error) { - cwd, err := os.Getwd() - if err != nil { - return "", err - } - defer os.Chdir(cwd) - - if err := os.Chdir(repoDir); err != nil { - return "", err - } - - if stdout, stderr, err := run("git", "fetch", "origin"); err != nil { - return "", fmt.Errorf("out=%s, err=%s, %s", strings.TrimSpace(stdout), strings.TrimSpace(stderr), err) - } - - if stdout, stderr, err := run("git", "show", "-s", "--format=%ci", commit); err != nil { - return "", fmt.Errorf("out=%s, err=%s, %s", strings.TrimSpace(stdout), strings.TrimSpace(stderr), err) - } else { - return strings.TrimSpace(stdout), nil - } -} - -func Checkout(commit, repoDir string) error { - cwd, err := os.Getwd() - if err != nil { - return err - } - defer os.Chdir(cwd) - - if err := os.Chdir(repoDir); err != nil { - return err - } - - if stdout, stderr, err := run("git", "checkout", commit); err != nil { - return fmt.Errorf("out=%s, err=%s, %s", strings.TrimSpace(stdout), strings.TrimSpace(stderr), err) - } - return nil -} - -func CurrentRev(repoDir string) (string, error) { - cwd, err := os.Getwd() - if err != nil { - return "", err - } - defer os.Chdir(cwd) - - if err := os.Chdir(repoDir); err != nil { - return "", err - } - - if stdout, stderr, err := run("git", "rev-parse", "HEAD"); err != nil { - return "", fmt.Errorf("out=%s, err=%s, %s", strings.TrimSpace(stdout), strings.TrimSpace(stderr), err) - } else { - return strings.TrimSpace(stdout), nil - } -} - -func emailInCommit(sha string) (string, error) { - stdout, stderr, err := run("git", "show", `--format=%ae`, "-s", sha) - if err != nil { - return "", fmt.Errorf("%s: %s", stderr, err) - } - return strings.TrimSpace(stdout), nil -} - -func filesInCommit(sha string) ([]File, error) { - files := []File{} - stdout, stderr, err := run("git", "diff-tree", "--no-commit-id", "--name-only", "-r", sha) - if err != nil { - return nil, fmt.Errorf("%s: %s", stderr, err) - } - for _, filename := range strings.Split(stdout, "\n") { - if len(filename) == 0 { - continue - } - files = append(files, File(filename)) - } - return files, nil -} - -func descriptionInCommit(sha string) ([]string, error) { - descriptionLines := []string{} - stdout, stderr, err := run("git", "log", "--pretty=%b", "-1", sha) - if err != nil { - return descriptionLines, fmt.Errorf("%s: %s", stderr, err) - } - - for _, commitLine := range strings.Split(stdout, "\n") { - if len(commitLine) == 0 { - continue - } - descriptionLines = append(descriptionLines, commitLine) - } - return descriptionLines, nil -} - -func run(args ...string) (string, string, error) { - cmd := exec.Command(args[0], args[1:]...) - var stdout bytes.Buffer - var stderr bytes.Buffer - cmd.Stdout = &stdout - cmd.Stderr = &stderr - err := cmd.Run() - return stdout.String(), stderr.String(), err -} diff --git a/openshift-hack/commitchecker/git_test.go b/openshift-hack/commitchecker/git_test.go deleted file mode 100644 index f749ce87050d7..0000000000000 --- a/openshift-hack/commitchecker/git_test.go +++ /dev/null @@ -1,55 +0,0 @@ -package main - -import ( - "testing" -) - -func TestUpstreamSummaryPattern(t *testing.T) { - tt := []struct { - summary string - valid bool - }{ - {valid: true, summary: "UPSTREAM: 12345: a change"}, - {valid: true, summary: "UPSTREAM: k8s.io/heapster: 12345: a change"}, - {valid: true, summary: "UPSTREAM: : a change"}, - {valid: true, summary: "UPSTREAM: : a change"}, - {valid: true, summary: "UPSTREAM: coreos/etcd: : a change"}, - {valid: true, summary: "UPSTREAM: coreos/etcd: : a change"}, - {valid: true, summary: "UPSTREAM: revert: 12345: a change"}, - {valid: true, summary: "UPSTREAM: revert: k8s.io/heapster: 12345: a change"}, - {valid: true, summary: "UPSTREAM: revert: : a change"}, - {valid: true, summary: "UPSTREAM: revert: : a change"}, - {valid: true, summary: "UPSTREAM: revert: coreos/etcd: : a change"}, - {valid: true, summary: "UPSTREAM: revert: coreos/etcd: : a change"}, - {valid: false, summary: "UPSTREAM: whoopsie daisy"}, - {valid: true, summary: "UPSTREAM: gopkg.in/ldap.v2: 51: exposed better API for paged search"}, - } - for _, tc := range tt { - t.Run(tc.summary, func(t *testing.T) { - got := UpstreamSummaryPattern.Match([]byte(tc.summary)) - - if tc.valid != got { - t.Errorf("expected %#v, got %#v", tc.valid, got) - } - }) - } -} - -func TestBumpPattern(t *testing.T) { - tt := []struct { - summary string - valid bool - }{ - {valid: true, summary: "bump(*)"}, - {valid: false, summary: "not a bump"}, - } - for _, tc := range tt { - t.Run(tc.summary, func(t *testing.T) { - got := BumpSummaryPattern.Match([]byte(tc.summary)) - - if tc.valid != got { - t.Errorf("expected %#v, got %#v", tc.valid, got) - } - }) - } -} diff --git a/openshift-hack/commitchecker/validate.go b/openshift-hack/commitchecker/validate.go deleted file mode 100644 index d85e95f8ea2c6..0000000000000 --- a/openshift-hack/commitchecker/validate.go +++ /dev/null @@ -1,82 +0,0 @@ -package main - -import ( - "bytes" - "fmt" - "regexp" - "strings" - "text/template" -) - -var ( - // AllCommitValidators holds all registered checks. - AllCommitValidators = []func(Commit) []string{ - ValidateCommitAuthor, - - // Local commit messages must be prefixed with UPSTREAM as per - // README.openshift.md to aid in rebasing on upstream kube. - ValidateCommitMessage, - } -) - -func ValidateCommitAuthor(commit Commit) []string { - var allErrors []string - - if strings.HasPrefix(commit.Email, "root@") { - allErrors = append(allErrors, fmt.Sprintf("Commit %s has invalid email %q", commit.Sha, commit.Email)) - } - - return allErrors -} - -func ValidateCommitMessage(commit Commit) []string { - if commit.MatchesMergeSummaryPattern() { - // Ignore merges - return nil - } - - var allErrors []string - - if !commit.MatchesUpstreamSummaryPattern() { - tmpl, _ := template.New("problems").Parse(` -UPSTREAM commit {{ .Commit.Sha }} has invalid summary {{ .Commit.Summary }}. - -UPSTREAM commits are validated against the following regular expression: - {{ .Pattern }} - -UPSTREAM commit summaries should look like: - - UPSTREAM: : description - -UPSTREAM commits which revert previous UPSTREAM commits should look like: - - UPSTREAM: revert: - -Examples of valid summaries: - - UPSTREAM: 12345: A kube fix - UPSTREAM: : A carried kube change - UPSTREAM: : A dropped kube change - UPSTREAM: revert: 12345: A kube revert -`) - data := struct { - Pattern *regexp.Regexp - Commit Commit - }{ - Pattern: UpstreamSummaryPattern, - Commit: commit, - } - buffer := &bytes.Buffer{} - err := tmpl.Execute(buffer, data) - if err != nil { - allErrors = append(allErrors, err.Error()) - return allErrors - } - - allErrors = append(allErrors, buffer.String()) - - return allErrors - } - - return allErrors -} diff --git a/openshift-hack/commitchecker/validate_test.go b/openshift-hack/commitchecker/validate_test.go deleted file mode 100644 index 6607d4b3cfb3f..0000000000000 --- a/openshift-hack/commitchecker/validate_test.go +++ /dev/null @@ -1,94 +0,0 @@ -package main - -import ( - "reflect" - "testing" -) - -func TestValidateCommitAuthor(t *testing.T) { - tt := []struct { - name string - commit Commit - expectedErrs []string - }{ - { - name: "fails on root@locahost", - commit: Commit{ - Sha: "aaa0000", - Summary: "a summary", - Files: []File{ - "README.md", - }, - Email: "root@localhost", - }, - expectedErrs: []string{ - "Commit aaa0000 has invalid email \"root@localhost\"", - }, - }, - { - name: "succeeds for deads2k@redhat.com", - commit: Commit{ - Sha: "aaa0000", - Summary: "a summary", - Files: []File{ - "README.md", - }, - Email: "deads2k@redhat.com", - }, - expectedErrs: nil, - }, - } - - for _, tc := range tt { - t.Run(tc.name, func(t *testing.T) { - gotErrs := ValidateCommitAuthor(tc.commit) - if !reflect.DeepEqual(tc.expectedErrs, gotErrs) { - t.Errorf("expected %#v, got %#v", tc.expectedErrs, gotErrs) - } - }) - } -} - -func TestValidateCommitMessage(t *testing.T) { - tt := []struct { - name string - commit Commit - expectedErrs []string - }{ - { - name: "modifying k8s without UPSTREAM commit fails", - commit: Commit{ - Sha: "aaa0000", - Summary: "wrong summary", - Files: []File{ - "README.md", - "pkg/controller/deployment/deployment.go", - }, - }, - expectedErrs: []string{ - "\nUPSTREAM commit aaa0000 has invalid summary wrong summary.\n\nUPSTREAM commits are validated against the following regular expression:\n ^UPSTREAM: (revert: )?(([\\w\\.-]+\\/[\\w-\\.-]+)?: )?(\\d+:|:|:)\n\nUPSTREAM commit summaries should look like:\n\n UPSTREAM: : description\n\nUPSTREAM commits which revert previous UPSTREAM commits should look like:\n\n UPSTREAM: revert: \n\nExamples of valid summaries:\n\n UPSTREAM: 12345: A kube fix\n UPSTREAM: : A carried kube change\n UPSTREAM: : A dropped kube change\n UPSTREAM: revert: 12345: A kube revert\n", - }, - }, - { - name: "modifying k8s with UPSTREAM commit succeeds", - commit: Commit{ - Sha: "aaa0000", - Summary: "UPSTREAM: 42: Fix kube", - Files: []File{ - "README.md", - "pkg/controller/deployment/deployment.go", - }, - }, - expectedErrs: nil, - }, - } - - for _, tc := range tt { - t.Run(tc.name, func(t *testing.T) { - gotErrs := ValidateCommitMessage(tc.commit) - if !reflect.DeepEqual(tc.expectedErrs, gotErrs) { - t.Errorf("expected %#v, got %#v", tc.expectedErrs, gotErrs) - } - }) - } -} diff --git a/openshift-hack/conformance-k8s.sh b/openshift-hack/conformance-k8s.sh deleted file mode 100755 index 37247aede624f..0000000000000 --- a/openshift-hack/conformance-k8s.sh +++ /dev/null @@ -1,96 +0,0 @@ -#!/bin/bash -# -# Runs the Kubernetes conformance suite against an OpenShift cluster -# -# Test prerequisites: -# -# * all nodes that users can run workloads under marked as schedulable -# -source "$(dirname "${BASH_SOURCE[0]}")/lib/init.sh" - -# Check inputs -if [[ -z "${KUBECONFIG-}" ]]; then - os::log::fatal "KUBECONFIG must be set to a root account" -fi -test_report_dir="${ARTIFACT_DIR}" -mkdir -p "${test_report_dir}" - -cat < "${test_report_dir}/README.md" -This conformance report is generated by the OpenShift CI infrastructure. The canonical source location for this test script is located at https://github.com/openshift/kubernetes/blob/master/openshift-hack/conformance-k8s.sh - -This file was generated by: - - Commit $( git rev-parse HEAD || "" ) - Tag $( git describe || "" ) - -To recreate these results - -1. Install an [OpenShift cluster](https://docs.openshift.com/container-platform/) -2. Retrieve a \`.kubeconfig\` file with administrator credentials on that cluster and set the environment variable KUBECONFIG - - export KUBECONFIG=PATH_TO_KUBECONFIG - -3. Clone the OpenShift source repository and change to that directory: - - git clone https://github.com/openshift/kubernetes.git - cd kubernetes - -4. Place the \`oc\` binary for that cluster in your PATH -5. Run the conformance test: - - openshift-hack/conformance-k8s.sh - -Nightly conformance tests are run against release branches and reported https://openshift-gce-devel.appspot.com/builds/origin-ci-test/logs/periodic-ci-origin-conformance-k8s/ -END - -version="$(grep k8s.io/kubernetes go.sum | awk '{print $2}' | sed s+/go.mod++ )" -os::log::info "Running Kubernetes conformance suite for ${version}" - -# Execute OpenShift prerequisites -# Disable container security -oc adm policy add-scc-to-group privileged system:authenticated system:serviceaccounts -oc adm policy add-scc-to-group anyuid system:authenticated system:serviceaccounts -# Mark the master nodes as unschedulable so tests ignore them -oc get nodes -o name -l 'node-role.kubernetes.io/master' | xargs -L1 oc adm cordon -unschedulable="$( ( oc get nodes -o name -l 'node-role.kubernetes.io/master'; ) | wc -l )" -# TODO: undo these operations - -# Execute Kubernetes prerequisites -make WHAT=cmd/kubectl -make WHAT=test/e2e/e2e.test -make WHAT=vendor/github.com/onsi/ginkgo/ginkgo -PATH="${OS_ROOT}/_output/local/bin/$( os::build::host_platform ):${PATH}" -export PATH - -kubectl version > "${test_report_dir}/version.txt" -echo "-----" >> "${test_report_dir}/version.txt" -oc version >> "${test_report_dir}/version.txt" - -# Run the test, serial tests first, then parallel - -rc=0 - -e2e_test="$( which e2e.test )" - -# shellcheck disable=SC2086 -ginkgo \ - -nodes 1 -noColor '-focus=(\[Conformance\].*\[Serial\]|\[Serial\].*\[Conformance\])' \ - ${e2e_test} -- \ - -report-dir "${test_report_dir}" \ - -allowed-not-ready-nodes ${unschedulable} \ - 2>&1 | tee -a "${test_report_dir}/e2e.log" || rc=1 - -rename -v junit_ junit_serial_ "${test_report_dir}"/junit*.xml - -# shellcheck disable=SC2086 -ginkgo \ - -nodes 4 -noColor '-skip=\[Serial\]' '-focus=\[Conformance\]' \ - ${e2e_test} -- \ - -report-dir "${test_report_dir}" \ - -allowed-not-ready-nodes ${unschedulable} \ - 2>&1 | tee -a "${test_report_dir}/e2e.log" || rc=1 - -echo -echo "Run complete, results in ${test_report_dir}" - -exit $rc diff --git a/openshift-hack/create-or-update-rebase-branch.sh b/openshift-hack/create-or-update-rebase-branch.sh deleted file mode 100755 index c948eb874850a..0000000000000 --- a/openshift-hack/create-or-update-rebase-branch.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env bash - -set -o nounset -set -o errexit -set -o pipefail - -# This script is intended to simplify the maintaining a rebase branch for -# openshift/kubernetes. -# -# - If the branch named by REBASE_BRANCH does not exist, it will be created by -# branching from UPSTREAM_TAG and merging in TARGET_BRANCH with strategy -# 'ours'. -# -# - If the branch named by REBASE_BRANCH exists, it will be renamed to -# -, a new branch will be created as per above, and -# carries from the renamed branch will be cherry-picked. - -UPSTREAM_TAG="${UPSTREAM_TAG:-}" -if [[ -z "${UPSTREAM_TAG}" ]]; then - echo >&2 "UPSTREAM_TAG is required" - exit 1 -fi - -REBASE_BRANCH="${REBASE_BRANCH:-}" -if [[ -z "${REBASE_BRANCH}" ]]; then - echo >&2 "REBASE_BRANCH is required" - exit 1 -fi - -TARGET_BRANCH="${TARGET_BRANCH:-master}" -if [[ -z "${TARGET_BRANCH}" ]]; then - echo >&2 "TARGET_BRANCH is required" - exit 1 -fi - -echo "Ensuring target branch '${TARGET_BRANCH} is updated" -git co "${TARGET_BRANCH}" -git pull - -echo "Checking if '${REBASE_BRANCH}' exists" -REBASE_IN_PROGRESS= -if git show-ref --verify --quiet "refs/heads/${REBASE_BRANCH}"; then - REBASE_IN_PROGRESS=y -fi - -# If a rebase is in progress, rename the existing branch -if [[ "${REBASE_IN_PROGRESS}" ]]; then - TIMESTAMP="$(date +"%Y-%m-%d_%H-%M-%S")" - PREVIOUS_REBASE_BRANCH="${REBASE_BRANCH}.${TIMESTAMP}" - echo "Renaming rebase branch '${REBASE_BRANCH}' to '${PREVIOUS_REBASE_BRANCH}'" - git br -m "${REBASE_BRANCH}" "${PREVIOUS_REBASE_BRANCH}" -fi - -echo "Branching upstream tag '${UPSTREAM_TAG}' to rebase branch '${REBASE_BRANCH}'" -git co -b "${REBASE_BRANCH}" "${UPSTREAM_TAG}" - -echo "Merging target branch '${TARGET_BRANCH}' to rebase branch '${REBASE_BRANCH}'" -git merge -s ours --no-edit "${TARGET_BRANCH}" - -if [[ "${REBASE_IN_PROGRESS}" ]]; then - echo "Cherry-picking carried commits from previous rebase branch '${PREVIOUS_REBASE_BRANCH}'" - # The first merge in the previous rebase branch should be the point at which - # the target branch was merged with the upstream tag. Any commits since this - # merge should be cherry-picked. - MERGE_SHA="$(git log --pretty=%H --merges --max-count=1 "${PREVIOUS_REBASE_BRANCH}" )" - git cherry-pick "${MERGE_SHA}..${PREVIOUS_REBASE_BRANCH}" -fi diff --git a/openshift-hack/e2e/annotate/annotate.go b/openshift-hack/e2e/annotate/annotate.go deleted file mode 100644 index da8a0d104b7bc..0000000000000 --- a/openshift-hack/e2e/annotate/annotate.go +++ /dev/null @@ -1,255 +0,0 @@ -package annotate - -import ( - "fmt" - "io/ioutil" - "os" - "os/exec" - "regexp" - "sort" - "strings" - - "github.com/onsi/ginkgo" - "github.com/onsi/ginkgo/types" -) - -var reHasSig = regexp.MustCompile(`\[sig-[\w-]+\]`) - -// Run generates tests annotations for the targeted package. -func Run() { - if len(os.Args) != 2 && len(os.Args) != 3 { - fmt.Fprintf(os.Stderr, "error: requires exactly one argument\n") - os.Exit(1) - } - filename := os.Args[len(os.Args)-1] - - generator := newGenerator() - ginkgo.WalkTests(generator.generateRename) - - renamer := newRenamerFromGenerated(generator.output) - ginkgo.WalkTests(renamer.updateNodeText) - if len(renamer.missing) > 0 { - var names []string - for name := range renamer.missing { - names = append(names, name) - } - sort.Strings(names) - fmt.Fprintf(os.Stderr, "failed:\n%s\n", strings.Join(names, "\n")) - os.Exit(1) - } - - // All tests must be associated with a sig (either upstream), or downstream - // If you get this error, you should add the [sig-X] tag to your test (if its - // in origin) or if it is upstream add a new rule to rules.go that assigns - // the test in question to the right sig. - // - // Upstream sigs map to teams (if you have representation on that sig, you - // own those tests in origin) - // Downstream sigs: sig-imageregistry, sig-builds, sig-devex - var errors []string - for from, to := range generator.output { - if !reHasSig.MatchString(from) && !reHasSig.MatchString(to) { - errors = append(errors, fmt.Sprintf("all tests must define a [sig-XXXX] tag or have a rule %q", from)) - } - } - if len(errors) > 0 { - sort.Strings(errors) - for _, s := range errors { - fmt.Fprintf(os.Stderr, "failed: %s\n", s) - } - os.Exit(1) - } - - var pairs []string - for from, to := range generator.output { - pairs = append(pairs, fmt.Sprintf("%q:\n%q,", from, to)) - } - sort.Strings(pairs) - contents := fmt.Sprintf(` -package generated - -import ( - "fmt" - "github.com/onsi/ginkgo" - "github.com/onsi/ginkgo/types" -) - -var annotations = map[string]string{ -%s -} - -func init() { - ginkgo.WalkTests(func(name, parentName string, node types.TestNode) { - combined := name - if len(parentName) > 0 { - combined = parentName + " " + combined - } - if updated, ok := annotations[combined]; ok { - node.SetText(updated) - } else { - panic(fmt.Sprintf("unable to find test %%s", combined)) - } - }) -} -`, strings.Join(pairs, "\n\n")) - if err := ioutil.WriteFile(filename, []byte(contents), 0644); err != nil { - fmt.Fprintf(os.Stderr, "error: %v", err) - os.Exit(1) - } - if _, err := exec.Command("gofmt", "-s", "-w", filename).Output(); err != nil { - fmt.Fprintf(os.Stderr, "error: %v", err) - os.Exit(1) - } -} - -func newGenerator() *ginkgoTestRenamer { - var allLabels []string - matches := make(map[string]*regexp.Regexp) - stringMatches := make(map[string][]string) - excludes := make(map[string]*regexp.Regexp) - - for label, items := range TestMaps { - sort.Strings(items) - allLabels = append(allLabels, label) - var remain []string - for _, item := range items { - re := regexp.MustCompile(item) - if p, ok := re.LiteralPrefix(); ok { - stringMatches[label] = append(stringMatches[label], p) - } else { - remain = append(remain, item) - } - } - if len(remain) > 0 { - matches[label] = regexp.MustCompile(strings.Join(remain, `|`)) - } - } - for label, items := range LabelExcludes { - sort.Strings(items) - excludes[label] = regexp.MustCompile(strings.Join(items, `|`)) - } - sort.Strings(allLabels) - - excludedTestsFilter := regexp.MustCompile(strings.Join(ExcludedTests, `|`)) - - return &ginkgoTestRenamer{ - allLabels: allLabels, - stringMatches: stringMatches, - matches: matches, - excludes: excludes, - excludedTestsFilter: excludedTestsFilter, - - output: make(map[string]string), - } -} - -func newRenamerFromGenerated(names map[string]string) *ginkgoTestRenamer { - return &ginkgoTestRenamer{ - output: names, - missing: make(map[string]struct{}), - } -} - -type ginkgoTestRenamer struct { - allLabels []string - stringMatches map[string][]string - matches map[string]*regexp.Regexp - excludes map[string]*regexp.Regexp - excludedTestsFilter *regexp.Regexp - - output map[string]string - missing map[string]struct{} -} - -func (r *ginkgoTestRenamer) updateNodeText(name, parentName string, node types.TestNode) { - if updated, ok := r.output[combineNames(parentName, name)]; ok { - node.SetText(updated) - } else { - r.missing[combineNames(parentName, name)] = struct{}{} - } -} - -func (r *ginkgoTestRenamer) generateRename(name, parentName string, node types.TestNode) { - originalName := name - combinedName := combineNames(parentName, name) - - labels := "" - for { - count := 0 - for _, label := range r.allLabels { - // never apply a sig label twice - if strings.HasPrefix(label, "[sig-") && strings.Contains(combinedName, "[sig-") { - continue - } - if strings.Contains(combinedName, label) { - continue - } - - var hasLabel bool - for _, segment := range r.stringMatches[label] { - hasLabel = strings.Contains(combinedName, segment) - if hasLabel { - break - } - } - if !hasLabel { - if re := r.matches[label]; re != nil { - hasLabel = r.matches[label].MatchString(combinedName) - } - } - - if hasLabel { - // TODO: remove when we no longer need it - if re, ok := r.excludes[label]; ok && re.MatchString(combinedName) { - continue - } - count++ - labels += " " + label - combinedName += " " + label - name += " " + label - } - } - if count == 0 { - break - } - } - - if !r.excludedTestsFilter.MatchString(combinedName) { - isSerial := strings.Contains(combinedName, "[Serial]") - isConformance := strings.Contains(combinedName, "[Conformance]") - switch { - case isSerial && isConformance: - name += " [Suite:openshift/conformance/serial/minimal]" - case isSerial: - name += " [Suite:openshift/conformance/serial]" - case isConformance: - name += " [Suite:openshift/conformance/parallel/minimal]" - default: - name += " [Suite:openshift/conformance/parallel]" - } - } - if isGoModulePath(node.CodeLocation().FileName, "k8s.io/kubernetes", "test/e2e") { - name += " [Suite:k8s]" - } - - r.output[combineNames(parentName, originalName)] = name -} - -// isGoModulePath returns true if the packagePath reported by reflection is within a -// module and given module path. When go mod is in use, module and modulePath are not -// contiguous as they were in older golang versions with vendoring, so naive contains -// tests fail. -// -// historically: ".../vendor/k8s.io/kubernetes/test/e2e" -// go.mod: "k8s.io/kubernetes@0.18.4/test/e2e" -// -func isGoModulePath(packagePath, module, modulePath string) bool { - return regexp.MustCompile(fmt.Sprintf(`\b%s(@[^/]*|)/%s\b`, regexp.QuoteMeta(module), regexp.QuoteMeta(modulePath))).MatchString(packagePath) -} - -func combineNames(parentName, name string) string { - if len(parentName) == 0 { - return name - } - return parentName + " " + name -} diff --git a/openshift-hack/e2e/annotate/cmd/main.go b/openshift-hack/e2e/annotate/cmd/main.go deleted file mode 100644 index 54066dc105bd1..0000000000000 --- a/openshift-hack/e2e/annotate/cmd/main.go +++ /dev/null @@ -1,9 +0,0 @@ -package main - -import ( - "k8s.io/kubernetes/openshift-hack/e2e/annotate" -) - -func main() { - annotate.Run() -} diff --git a/openshift-hack/e2e/annotate/generated/zz_generated.annotations.go b/openshift-hack/e2e/annotate/generated/zz_generated.annotations.go deleted file mode 100644 index 63ded26cbe43b..0000000000000 --- a/openshift-hack/e2e/annotate/generated/zz_generated.annotations.go +++ /dev/null @@ -1,10385 +0,0 @@ -package generated - -import ( - "fmt" - "github.com/onsi/ginkgo" - "github.com/onsi/ginkgo/types" -) - -var annotations = map[string]string{ - "[Top Level] Recreate [Feature:Recreate] recreate nodes and ensure they function upon restart": "recreate nodes and ensure they function upon restart [Disabled:Broken] [sig-cluster-lifecycle] [Suite:k8s]", - - "[Top Level] [k8s.io] Cluster size autoscaler scalability [Slow] CA ignores unschedulable pods while scheduling schedulable pods [Feature:ClusterAutoscalerScalability6]": "CA ignores unschedulable pods while scheduling schedulable pods [Feature:ClusterAutoscalerScalability6] [sig-cluster-lifecycle] [Suite:k8s]", - - "[Top Level] [k8s.io] Cluster size autoscaler scalability [Slow] should scale down empty nodes [Feature:ClusterAutoscalerScalability3]": "should scale down empty nodes [Feature:ClusterAutoscalerScalability3] [sig-cluster-lifecycle] [Suite:k8s]", - - "[Top Level] [k8s.io] Cluster size autoscaler scalability [Slow] should scale down underutilized nodes [Feature:ClusterAutoscalerScalability4]": "should scale down underutilized nodes [Feature:ClusterAutoscalerScalability4] [sig-cluster-lifecycle] [Suite:k8s]", - - "[Top Level] [k8s.io] Cluster size autoscaler scalability [Slow] should scale up at all [Feature:ClusterAutoscalerScalability1]": "should scale up at all [Feature:ClusterAutoscalerScalability1] [sig-cluster-lifecycle] [Suite:k8s]", - - "[Top Level] [k8s.io] Cluster size autoscaler scalability [Slow] should scale up twice [Feature:ClusterAutoscalerScalability2]": "should scale up twice [Feature:ClusterAutoscalerScalability2] [sig-cluster-lifecycle] [Suite:k8s]", - - "[Top Level] [k8s.io] Cluster size autoscaler scalability [Slow] shouldn't scale down with underutilized nodes due to host port conflicts [Feature:ClusterAutoscalerScalability5]": "shouldn't scale down with underutilized nodes due to host port conflicts [Feature:ClusterAutoscalerScalability5] [sig-cluster-lifecycle] [Suite:k8s]", - - "[Top Level] [k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute poststart exec hook properly [NodeConformance] [Conformance]": "should execute poststart exec hook properly [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute poststart http hook properly [NodeConformance] [Conformance]": "should execute poststart http hook properly [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute prestop exec hook properly [NodeConformance] [Conformance]": "should execute prestop exec hook properly [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute prestop http hook properly [NodeConformance] [Conformance]": "should execute prestop http hook properly [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Container Runtime blackbox test on terminated container should report termination message [LinuxOnly] as empty when pod succeeds and TerminationMessagePolicy FallbackToLogsOnError is set [NodeConformance] [Conformance]": "should report termination message [LinuxOnly] as empty when pod succeeds and TerminationMessagePolicy FallbackToLogsOnError is set [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Container Runtime blackbox test on terminated container should report termination message [LinuxOnly] from file when pod succeeds and TerminationMessagePolicy FallbackToLogsOnError is set [NodeConformance] [Conformance]": "should report termination message [LinuxOnly] from file when pod succeeds and TerminationMessagePolicy FallbackToLogsOnError is set [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Container Runtime blackbox test on terminated container should report termination message [LinuxOnly] from log output if TerminationMessagePolicy FallbackToLogsOnError is set [NodeConformance] [Conformance]": "should report termination message [LinuxOnly] from log output if TerminationMessagePolicy FallbackToLogsOnError is set [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Container Runtime blackbox test on terminated container should report termination message [LinuxOnly] if TerminationMessagePath is set [NodeConformance]": "should report termination message [LinuxOnly] if TerminationMessagePath is set [NodeConformance] [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Container Runtime blackbox test on terminated container should report termination message [LinuxOnly] if TerminationMessagePath is set as non-root user and at a non-default path [NodeConformance] [Conformance]": "should report termination message [LinuxOnly] if TerminationMessagePath is set as non-root user and at a non-default path [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Container Runtime blackbox test when running a container with a new image should be able to pull from private registry with secret [NodeConformance]": "should be able to pull from private registry with secret [NodeConformance] [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Container Runtime blackbox test when running a container with a new image should be able to pull image [NodeConformance]": "should be able to pull image [NodeConformance] [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Container Runtime blackbox test when running a container with a new image should not be able to pull from private registry without secret [NodeConformance]": "should not be able to pull from private registry without secret [NodeConformance] [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Container Runtime blackbox test when running a container with a new image should not be able to pull image from invalid registry [NodeConformance]": "should not be able to pull image from invalid registry [NodeConformance] [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Container Runtime blackbox test when starting a container that exits should run with the expected status [NodeConformance] [Conformance]": "should run with the expected status [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Docker Containers should be able to override the image's default arguments (docker cmd) [NodeConformance] [Conformance]": "should be able to override the image's default arguments (docker cmd) [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Docker Containers should be able to override the image's default command (docker entrypoint) [NodeConformance] [Conformance]": "should be able to override the image's default command (docker entrypoint) [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Docker Containers should be able to override the image's default command and arguments [NodeConformance] [Conformance]": "should be able to override the image's default command and arguments [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Docker Containers should use the image defaults if command and args are blank [NodeConformance] [Conformance]": "should use the image defaults if command and args are blank [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Downward API [Serial] [Disruptive] [NodeFeature:EphemeralStorage] Downward API tests for local ephemeral storage should provide container's limits.ephemeral-storage and requests.ephemeral-storage as env vars": "should provide container's limits.ephemeral-storage and requests.ephemeral-storage as env vars [sig-node] [Suite:k8s]", - - "[Top Level] [k8s.io] Downward API [Serial] [Disruptive] [NodeFeature:EphemeralStorage] Downward API tests for local ephemeral storage should provide default limits.ephemeral-storage from node allocatable": "should provide default limits.ephemeral-storage from node allocatable [sig-node] [Suite:k8s]", - - "[Top Level] [k8s.io] GKE local SSD [Feature:GKELocalSSD] should write and read from node local SSD [Feature:GKELocalSSD]": "should write and read from node local SSD [Feature:GKELocalSSD] [sig-arch] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] GKE node pools [Feature:GKENodePool] should create a cluster with multiple node pools [Feature:GKENodePool]": "should create a cluster with multiple node pools [Feature:GKENodePool] [sig-arch] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] InitContainer [NodeConformance] should invoke init containers on a RestartAlways pod [Conformance]": "should invoke init containers on a RestartAlways pod [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] InitContainer [NodeConformance] should invoke init containers on a RestartNever pod [Conformance]": "should invoke init containers on a RestartNever pod [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] InitContainer [NodeConformance] should not start app containers and fail the pod if init containers fail on a RestartNever pod [Conformance]": "should not start app containers and fail the pod if init containers fail on a RestartNever pod [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] InitContainer [NodeConformance] should not start app containers if init containers fail on a RestartAlways pod [Conformance]": "should not start app containers if init containers fail on a RestartAlways pod [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Kubelet when scheduling a busybox Pod with hostAliases should write entries to /etc/hosts [LinuxOnly] [NodeConformance] [Conformance]": "should write entries to /etc/hosts [LinuxOnly] [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Kubelet when scheduling a busybox command in a pod should print the output to logs [NodeConformance] [Conformance]": "should print the output to logs [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Kubelet when scheduling a busybox command that always fails in a pod should be possible to delete [NodeConformance] [Conformance]": "should be possible to delete [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Kubelet when scheduling a busybox command that always fails in a pod should have an terminated reason [NodeConformance] [Conformance]": "should have an terminated reason [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Kubelet when scheduling a read only busybox container should not write to root filesystem [LinuxOnly] [NodeConformance] [Conformance]": "should not write to root filesystem [LinuxOnly] [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] KubeletManagedEtcHosts should test kubelet managed /etc/hosts file [LinuxOnly] [NodeConformance] [Conformance]": "should test kubelet managed /etc/hosts file [LinuxOnly] [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Lease lease API should be available [Conformance]": "lease API should be available [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] NodeLease when the NodeLease feature is enabled should have OwnerReferences set": "should have OwnerReferences set [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] NodeLease when the NodeLease feature is enabled the kubelet should create and update a lease in the kube-node-lease namespace": "the kubelet should create and update a lease in the kube-node-lease namespace [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] NodeLease when the NodeLease feature is enabled the kubelet should report node status infrequently": "the kubelet should report node status infrequently [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Pods should allow activeDeadlineSeconds to be updated [NodeConformance] [Conformance]": "should allow activeDeadlineSeconds to be updated [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Pods should be submitted and removed [NodeConformance] [Conformance]": "should be submitted and removed [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Pods should be updated [NodeConformance] [Conformance]": "should be updated [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Pods should cap back-off at MaxContainerBackOff [Slow][NodeConformance]": "should cap back-off at MaxContainerBackOff [Slow][NodeConformance] [sig-node] [Suite:k8s]", - - "[Top Level] [k8s.io] Pods should contain environment variables for services [NodeConformance] [Conformance]": "should contain environment variables for services [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Pods should delete a collection of pods [Conformance]": "should delete a collection of pods [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Pods should get a host IP [NodeConformance] [Conformance]": "should get a host IP [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Pods should have their auto-restart back-off timer reset on image update [Slow][NodeConformance]": "should have their auto-restart back-off timer reset on image update [Slow][NodeConformance] [sig-node] [Suite:k8s]", - - "[Top Level] [k8s.io] Pods should support pod readiness gates [NodeFeature:PodReadinessGate]": "should support pod readiness gates [NodeFeature:PodReadinessGate] [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Pods should support remote command execution over websockets [NodeConformance] [Conformance]": "should support remote command execution over websockets [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Pods should support retrieving logs from the container over websockets [NodeConformance] [Conformance]": "should support retrieving logs from the container over websockets [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] PrivilegedPod [NodeConformance] should enable privileged commands [LinuxOnly]": "should enable privileged commands [LinuxOnly] [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Probing container should *not* be restarted with a /healthz http liveness probe [NodeConformance] [Conformance]": "should *not* be restarted with a /healthz http liveness probe [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Probing container should *not* be restarted with a exec \"cat /tmp/health\" liveness probe [NodeConformance] [Conformance]": "should *not* be restarted with a exec \"cat /tmp/health\" liveness probe [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Probing container should *not* be restarted with a non-local redirect http liveness probe": "should *not* be restarted with a non-local redirect http liveness probe [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance]": "should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Probing container should be restarted with a /healthz http liveness probe [NodeConformance] [Conformance]": "should be restarted with a /healthz http liveness probe [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Probing container should be restarted with a docker exec liveness probe with timeout ": "should be restarted with a docker exec liveness probe with timeout [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Probing container should be restarted with a exec \"cat /tmp/health\" liveness probe [NodeConformance] [Conformance]": "should be restarted with a exec \"cat /tmp/health\" liveness probe [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Probing container should be restarted with a local redirect http liveness probe": "should be restarted with a local redirect http liveness probe [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Probing container should have monotonically increasing restart count [NodeConformance] [Conformance]": "should have monotonically increasing restart count [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Probing container with readiness probe should not be ready before initial delay and never restart [NodeConformance] [Conformance]": "with readiness probe should not be ready before initial delay and never restart [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Probing container with readiness probe that fails should never be ready and never restart [NodeConformance] [Conformance]": "with readiness probe that fails should never be ready and never restart [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Security Context When creating a container with runAsNonRoot should not run with an explicit root user ID [LinuxOnly]": "should not run with an explicit root user ID [LinuxOnly] [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Security Context When creating a container with runAsNonRoot should not run without a specified user ID": "should not run without a specified user ID [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Security Context When creating a container with runAsNonRoot should run with an explicit non-root user ID [LinuxOnly]": "should run with an explicit non-root user ID [LinuxOnly] [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Security Context When creating a container with runAsNonRoot should run with an image specified user ID": "should run with an image specified user ID [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Security Context When creating a container with runAsUser should run the container with uid 0 [LinuxOnly] [NodeConformance]": "should run the container with uid 0 [LinuxOnly] [NodeConformance] [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Security Context When creating a container with runAsUser should run the container with uid 65534 [LinuxOnly] [NodeConformance] [Conformance]": "should run the container with uid 65534 [LinuxOnly] [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Security Context When creating a pod with privileged should run the container as privileged when true [LinuxOnly] [NodeFeature:HostAccess]": "should run the container as privileged when true [LinuxOnly] [NodeFeature:HostAccess] [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Security Context When creating a pod with privileged should run the container as unprivileged when false [LinuxOnly] [NodeConformance] [Conformance]": "should run the container as unprivileged when false [LinuxOnly] [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Security Context When creating a pod with readOnlyRootFilesystem should run the container with readonly rootfs when readOnlyRootFilesystem=true [LinuxOnly] [NodeConformance]": "should run the container with readonly rootfs when readOnlyRootFilesystem=true [LinuxOnly] [NodeConformance] [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Security Context When creating a pod with readOnlyRootFilesystem should run the container with writable rootfs when readOnlyRootFilesystem=false [NodeConformance] [Conformance]": "should run the container with writable rootfs when readOnlyRootFilesystem=false [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Security Context when creating containers with AllowPrivilegeEscalation should allow privilege escalation when not explicitly set and uid != 0 [LinuxOnly] [NodeConformance]": "should allow privilege escalation when not explicitly set and uid != 0 [LinuxOnly] [NodeConformance] [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Security Context when creating containers with AllowPrivilegeEscalation should allow privilege escalation when true [LinuxOnly] [NodeConformance]": "should allow privilege escalation when true [LinuxOnly] [NodeConformance] [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] Security Context when creating containers with AllowPrivilegeEscalation should not allow privilege escalation when false [LinuxOnly] [NodeConformance] [Conformance]": "should not allow privilege escalation when false [LinuxOnly] [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Sysctls [LinuxOnly] [NodeFeature:Sysctls] should not launch unsafe, but not explicitly enabled sysctls on the node": "should not launch unsafe, but not explicitly enabled sysctls on the node [Disabled:Broken] [sig-node] [Suite:k8s]", - - "[Top Level] [k8s.io] Sysctls [LinuxOnly] [NodeFeature:Sysctls] should reject invalid sysctls": "should reject invalid sysctls [Disabled:Broken] [sig-node] [Suite:k8s]", - - "[Top Level] [k8s.io] Sysctls [LinuxOnly] [NodeFeature:Sysctls] should support sysctls": "should support sysctls [Disabled:Broken] [sig-node] [Suite:k8s]", - - "[Top Level] [k8s.io] Sysctls [LinuxOnly] [NodeFeature:Sysctls] should support unsafe sysctls which are actually whitelisted": "should support unsafe sysctls which are actually whitelisted [Disabled:Broken] [sig-node] [Suite:k8s]", - - "[Top Level] [k8s.io] Variable Expansion should allow composing env vars into new env vars [NodeConformance] [Conformance]": "should allow composing env vars into new env vars [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Variable Expansion should allow substituting values in a container's args [NodeConformance] [Conformance]": "should allow substituting values in a container's args [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Variable Expansion should allow substituting values in a container's command [NodeConformance] [Conformance]": "should allow substituting values in a container's command [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Variable Expansion should allow substituting values in a volume subpath [sig-storage] [Conformance]": "should allow substituting values in a volume subpath [sig-storage] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] Variable Expansion should fail substituting values in a volume subpath with absolute path [sig-storage][Slow] [Conformance]": "should fail substituting values in a volume subpath with absolute path [sig-storage][Slow] [Conformance] [Suite:k8s]", - - "[Top Level] [k8s.io] Variable Expansion should fail substituting values in a volume subpath with backticks [sig-storage][Slow] [Conformance]": "should fail substituting values in a volume subpath with backticks [sig-storage][Slow] [Conformance] [Suite:k8s]", - - "[Top Level] [k8s.io] Variable Expansion should succeed in writing subpaths in container [sig-storage][Slow] [Conformance]": "should succeed in writing subpaths in container [sig-storage][Slow] [Conformance] [Suite:k8s]", - - "[Top Level] [k8s.io] Variable Expansion should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance]": "should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance] [Suite:k8s]", - - "[Top Level] [k8s.io] [Feature:Example] [k8s.io] Downward API should create a pod that prints his name and namespace": "should create a pod that prints his name and namespace [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [Feature:Example] [k8s.io] Liveness liveness pods should be automatically restarted": "liveness pods should be automatically restarted [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [Feature:Example] [k8s.io] Secret should create a pod that reads a secret": "should create a pod that reads a secret [sig-node] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [Feature:TTLAfterFinished][NodeAlphaFeature:TTLAfterFinished] job should be deleted once it finishes after TTL seconds": "job should be deleted once it finishes after TTL seconds [Disabled:Alpha] [sig-node] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] AppArmor load AppArmor profiles can disable an AppArmor profile, using unconfined": "can disable an AppArmor profile, using unconfined [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] AppArmor load AppArmor profiles should enforce an AppArmor profile": "should enforce an AppArmor profile [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Events should be sent by kubelets and the scheduler about pods scheduling and running [Conformance]": "should be sent by kubelets and the scheduler about pods scheduling and running [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Hostname of Pod [Feature:SetHostnameAsFQDN] a pod with subdomain field has FQDN, hostname is shortname [Feature:SetHostnameAsFQDN]": "a pod with subdomain field has FQDN, hostname is shortname [Feature:SetHostnameAsFQDN] [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Hostname of Pod [Feature:SetHostnameAsFQDN] a pod with subdomain field has FQDN, when setHostnameAsFQDN is set to true, the FQDN is set as hostname [Feature:SetHostnameAsFQDN]": "a pod with subdomain field has FQDN, when setHostnameAsFQDN is set to true, the FQDN is set as hostname [Feature:SetHostnameAsFQDN] [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Hostname of Pod [Feature:SetHostnameAsFQDN] a pod without FQDN is not affected by SetHostnameAsFQDN field [Feature:SetHostnameAsFQDN]": "a pod without FQDN is not affected by SetHostnameAsFQDN field [Feature:SetHostnameAsFQDN] [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Hostname of Pod [Feature:SetHostnameAsFQDN] a pod without subdomain field does not have FQDN [Feature:SetHostnameAsFQDN]": "a pod without subdomain field does not have FQDN [Feature:SetHostnameAsFQDN] [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Kubelet [Serial] [Slow] [k8s.io] [sig-node] experimental resource usage tracking [Feature:ExperimentalResourceUsageTracking] resource tracking for 100 pods per node": "resource tracking for 100 pods per node [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Kubelet [Serial] [Slow] [k8s.io] [sig-node] regular resource usage tracking [Feature:RegularResourceUsageTracking] resource tracking for 0 pods per node": "resource tracking for 0 pods per node [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Kubelet [Serial] [Slow] [k8s.io] [sig-node] regular resource usage tracking [Feature:RegularResourceUsageTracking] resource tracking for 100 pods per node": "resource tracking for 100 pods per node [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Mount propagation should propagate mounts to the host": "should propagate mounts to the host [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance]": "evicts pods with minTolerationSeconds [Disruptive] [Conformance] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] only evicts pods without tolerations from tainted nodes": "only evicts pods without tolerations from tainted nodes [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] NoExecuteTaintManager Single Pod [Serial] doesn't evict pod with tolerations from tainted nodes": "doesn't evict pod with tolerations from tainted nodes [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] NoExecuteTaintManager Single Pod [Serial] eventually evict pod with finite tolerations from tainted nodes": "eventually evict pod with finite tolerations from tainted nodes [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] NoExecuteTaintManager Single Pod [Serial] evicts pods from tainted nodes": "evicts pods from tainted nodes [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] NoExecuteTaintManager Single Pod [Serial] removing taint cancels eviction [Disruptive] [Conformance]": "removing taint cancels eviction [Disruptive] [Conformance] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] NodeProblemDetector [DisabledForLargeClusters] should run without error": "should run without error [Disabled:SpecialConfig] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Pod garbage collector [Feature:PodGarbageCollector] [Slow] should handle the creation of 1000 pods": "should handle the creation of 1000 pods [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Pods Extended [k8s.io] Delete Grace Period should be submitted and removed": "should be submitted and removed [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Pods Extended [k8s.io] Pod Container Status should never report success for a pending container": "should never report success for a pending container [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Pods Extended [k8s.io] Pod Container lifecycle should not create extra sandbox if all containers are done": "should not create extra sandbox if all containers are done [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Pods Extended [k8s.io] Pods Set QOS Class should be set on Pods with matching resource requests and limits for memory and cpu [Conformance]": "should be set on Pods with matching resource requests and limits for memory and cpu [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] PreStop graceful pod terminated should wait until preStop hook completes the process [Flaky]": "graceful pod terminated should wait until preStop hook completes the process [Flaky] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] PreStop should call prestop when killing a pod [Conformance]": "should call prestop when killing a pod [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] SSH should SSH to all nodes and run commands": "should SSH to all nodes and run commands [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Security Context should support container.SecurityContext.RunAsUser And container.SecurityContext.RunAsGroup [LinuxOnly]": "should support container.SecurityContext.RunAsUser And container.SecurityContext.RunAsGroup [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Security Context should support container.SecurityContext.RunAsUser [LinuxOnly]": "should support container.SecurityContext.RunAsUser [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Security Context should support pod.Spec.SecurityContext.RunAsUser And pod.Spec.SecurityContext.RunAsGroup [LinuxOnly]": "should support pod.Spec.SecurityContext.RunAsUser And pod.Spec.SecurityContext.RunAsGroup [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Security Context should support pod.Spec.SecurityContext.RunAsUser [LinuxOnly]": "should support pod.Spec.SecurityContext.RunAsUser [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Security Context should support pod.Spec.SecurityContext.SupplementalGroups [LinuxOnly]": "should support pod.Spec.SecurityContext.SupplementalGroups [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Security Context should support seccomp alpha runtime/default annotation [Feature:Seccomp] [LinuxOnly]": "should support seccomp alpha runtime/default annotation [Feature:Seccomp] [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Security Context should support seccomp alpha unconfined annotation on the container [Feature:Seccomp] [LinuxOnly]": "should support seccomp alpha unconfined annotation on the container [Feature:Seccomp] [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Security Context should support seccomp alpha unconfined annotation on the pod [Feature:Seccomp] [LinuxOnly]": "should support seccomp alpha unconfined annotation on the pod [Feature:Seccomp] [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Security Context should support seccomp default which is unconfined [Feature:Seccomp] [LinuxOnly]": "should support seccomp default which is unconfined [Feature:Seccomp] [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Security Context should support volume SELinux relabeling [Flaky] [LinuxOnly]": "should support volume SELinux relabeling [Flaky] [LinuxOnly] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Security Context should support volume SELinux relabeling when using hostIPC [Flaky] [LinuxOnly]": "should support volume SELinux relabeling when using hostIPC [Flaky] [LinuxOnly] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] Security Context should support volume SELinux relabeling when using hostPID [Flaky] [LinuxOnly]": "should support volume SELinux relabeling when using hostPID [Flaky] [LinuxOnly] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] crictl should be able to run crictl on the node": "should be able to run crictl on the node [Skipped:gce] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] kubelet [k8s.io] [sig-node] Clean up pods on node kubelet should be able to delete 10 pods per node in 1m0s.": "kubelet should be able to delete 10 pods per node in 1m0s. [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] kubelet [k8s.io] [sig-node] host cleanup with volume mounts [sig-storage][HostCleanup][Flaky] Host cleanup after disrupting NFS volume [NFS] after stopping the nfs-server and deleting the (active) client pod, the NFS mount and the pod's UID directory should be removed.": "after stopping the nfs-server and deleting the (active) client pod, the NFS mount and the pod's UID directory should be removed. [Suite:k8s]", - - "[Top Level] [k8s.io] [sig-node] kubelet [k8s.io] [sig-node] host cleanup with volume mounts [sig-storage][HostCleanup][Flaky] Host cleanup after disrupting NFS volume [NFS] after stopping the nfs-server and deleting the (sleeping) client pod, the NFS mount and the pod's UID directory should be removed.": "after stopping the nfs-server and deleting the (sleeping) client pod, the NFS mount and the pod's UID directory should be removed. [Suite:k8s]", - - "[Top Level] [sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] listing mutating webhooks should work [Conformance]": "listing mutating webhooks should work [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] listing validating webhooks should work [Conformance]": "listing validating webhooks should work [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] patching/updating a mutating webhook should work [Conformance]": "patching/updating a mutating webhook should work [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] patching/updating a validating webhook should work [Conformance]": "patching/updating a validating webhook should work [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should be able to deny attaching pod [Conformance]": "should be able to deny attaching pod [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should be able to deny custom resource creation, update and deletion [Conformance]": "should be able to deny custom resource creation, update and deletion [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should be able to deny pod and configmap creation [Conformance]": "should be able to deny pod and configmap creation [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should deny crd creation [Conformance]": "should deny crd creation [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should honor timeout [Conformance]": "should honor timeout [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should include webhook resources in discovery documents [Conformance]": "should include webhook resources in discovery documents [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate configmap [Conformance]": "should mutate configmap [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate custom resource [Conformance]": "should mutate custom resource [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate custom resource with different stored version [Conformance]": "should mutate custom resource with different stored version [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate custom resource with pruning [Conformance]": "should mutate custom resource with pruning [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate pod and apply defaults after mutation [Conformance]": "should mutate pod and apply defaults after mutation [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should not be able to mutate or prevent deletion of webhook configuration objects [Conformance]": "should not be able to mutate or prevent deletion of webhook configuration objects [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should unconditionally reject operations on fail closed webhook [Conformance]": "should unconditionally reject operations on fail closed webhook [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Aggregator Should be able to support the 1.17 Sample API Server using the current Aggregator [Conformance]": "Should be able to support the 1.17 Sample API Server using the current Aggregator [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert a non homogeneous list of CRs [Conformance]": "should be able to convert a non homogeneous list of CRs [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert from CR v1 to CR v2 [Conformance]": "should be able to convert from CR v1 to CR v2 [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourceDefinition Watch [Privileged:ClusterAdmin] CustomResourceDefinition Watch watch on custom resource definition objects [Conformance]": "watch on custom resource definition objects [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourceDefinition resources [Privileged:ClusterAdmin] Simple CustomResourceDefinition creating/deleting custom resource definition objects works [Conformance]": "creating/deleting custom resource definition objects works [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourceDefinition resources [Privileged:ClusterAdmin] Simple CustomResourceDefinition getting/updating/patching custom resource definition status sub-resource works [Conformance]": "getting/updating/patching custom resource definition status sub-resource works [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourceDefinition resources [Privileged:ClusterAdmin] Simple CustomResourceDefinition listing custom resource definition objects works [Conformance]": "listing custom resource definition objects works [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourceDefinition resources [Privileged:ClusterAdmin] custom resource defaulting for requests and from storage works [Conformance]": "custom resource defaulting for requests and from storage works [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourceDefinition resources [Privileged:ClusterAdmin] should include custom resource definition resources in discovery documents [Conformance]": "should include custom resource definition resources in discovery documents [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] [Flaky] kubectl explain works for CR with the same resource name as built-in object.": "[Flaky] kubectl explain works for CR with the same resource name as built-in object. [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] removes definition from spec when one version gets changed to not be served [Conformance]": "removes definition from spec when one version gets changed to not be served [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] updates the published spec when one version gets renamed [Conformance]": "updates the published spec when one version gets renamed [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for CRD preserving unknown fields at the schema root [Conformance]": "works for CRD preserving unknown fields at the schema root [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for CRD preserving unknown fields in an embedded object [Conformance]": "works for CRD preserving unknown fields in an embedded object [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for CRD with validation schema [Conformance]": "works for CRD with validation schema [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for CRD without validation schema [Conformance]": "works for CRD without validation schema [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for multiple CRDs of different groups [Conformance]": "works for multiple CRDs of different groups [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for multiple CRDs of same group and version but different kinds [Conformance]": "works for multiple CRDs of same group and version but different kinds [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for multiple CRDs of same group but different versions [Conformance]": "works for multiple CRDs of same group but different versions [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Discovery Custom resource should have storage version hash": "Custom resource should have storage version hash [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Discovery should validate PreferredVersion for each APIGroup [Conformance]": "should validate PreferredVersion for each APIGroup [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Etcd failure [Disruptive] should recover from SIGKILL": "should recover from SIGKILL [Serial] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Etcd failure [Disruptive] should recover from network partition with master": "should recover from network partition with master [Serial] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Events should delete a collection of events [Conformance]": "should delete a collection of events [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Events should ensure that an event can be fetched, patched, deleted, and listed [Conformance]": "should ensure that an event can be fetched, patched, deleted, and listed [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Garbage collector should delete RS created by deployment when not orphaning [Conformance]": "should delete RS created by deployment when not orphaning [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Garbage collector should delete jobs and pods created by cronjob": "should delete jobs and pods created by cronjob [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Garbage collector should delete pods created by rc when not orphaning [Conformance]": "should delete pods created by rc when not orphaning [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Garbage collector should keep the rc around until all its pods are deleted if the deleteOptions says so [Conformance]": "should keep the rc around until all its pods are deleted if the deleteOptions says so [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Garbage collector should not be blocked by dependency circle [Conformance]": "should not be blocked by dependency circle [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Garbage collector should not delete dependents that have both valid owner and owner that's waiting for dependents to be deleted [Conformance]": "should not delete dependents that have both valid owner and owner that's waiting for dependents to be deleted [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Garbage collector should orphan RS created by deployment when deleteOptions.PropagationPolicy is Orphan [Conformance]": "should orphan RS created by deployment when deleteOptions.PropagationPolicy is Orphan [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Garbage collector should orphan pods created by rc if delete options say so [Conformance]": "should orphan pods created by rc if delete options say so [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Garbage collector should orphan pods created by rc if deleteOptions.OrphanDependents is nil": "should orphan pods created by rc if deleteOptions.OrphanDependents is nil [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Garbage collector should support cascading deletion of custom resources": "should support cascading deletion of custom resources [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Garbage collector should support orphan deletion of custom resources": "should support orphan deletion of custom resources [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Generated clientset should create pods, set the deletionTimestamp and deletionGracePeriodSeconds of the pod": "should create pods, set the deletionTimestamp and deletionGracePeriodSeconds of the pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Generated clientset should create v1beta1 cronJobs, delete cronJobs, watch cronJobs": "should create v1beta1 cronJobs, delete cronJobs, watch cronJobs [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Namespaces [Serial] should always delete fast (ALL of 100 namespaces in 150 seconds) [Feature:ComprehensiveNamespaceDraining]": "should always delete fast (ALL of 100 namespaces in 150 seconds) [Feature:ComprehensiveNamespaceDraining] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Namespaces [Serial] should delete fast enough (90 percent of 100 namespaces in 150 seconds)": "should delete fast enough (90 percent of 100 namespaces in 150 seconds) [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Namespaces [Serial] should ensure that all pods are removed when a namespace is deleted [Conformance]": "should ensure that all pods are removed when a namespace is deleted [Conformance] [Suite:openshift/conformance/serial/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Namespaces [Serial] should ensure that all services are removed when a namespace is deleted [Conformance]": "should ensure that all services are removed when a namespace is deleted [Conformance] [Suite:openshift/conformance/serial/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Namespaces [Serial] should patch a Namespace [Conformance]": "should patch a Namespace [Conformance] [Suite:openshift/conformance/serial/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota [Feature:PodPriority] should verify ResourceQuota's multiple priority class scope (quota set to pod count: 2) against 2 pods with same priority classes.": "should verify ResourceQuota's multiple priority class scope (quota set to pod count: 2) against 2 pods with same priority classes. [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota [Feature:PodPriority] should verify ResourceQuota's priority class scope (cpu, memory quota set) against a pod with same priority class.": "should verify ResourceQuota's priority class scope (cpu, memory quota set) against a pod with same priority class. [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota [Feature:PodPriority] should verify ResourceQuota's priority class scope (quota set to pod count: 1) against 2 pods with different priority class.": "should verify ResourceQuota's priority class scope (quota set to pod count: 1) against 2 pods with different priority class. [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota [Feature:PodPriority] should verify ResourceQuota's priority class scope (quota set to pod count: 1) against 2 pods with same priority class.": "should verify ResourceQuota's priority class scope (quota set to pod count: 1) against 2 pods with same priority class. [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota [Feature:PodPriority] should verify ResourceQuota's priority class scope (quota set to pod count: 1) against a pod with different priority class (ScopeSelectorOpExists).": "should verify ResourceQuota's priority class scope (quota set to pod count: 1) against a pod with different priority class (ScopeSelectorOpExists). [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota [Feature:PodPriority] should verify ResourceQuota's priority class scope (quota set to pod count: 1) against a pod with different priority class (ScopeSelectorOpNotIn).": "should verify ResourceQuota's priority class scope (quota set to pod count: 1) against a pod with different priority class (ScopeSelectorOpNotIn). [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota [Feature:PodPriority] should verify ResourceQuota's priority class scope (quota set to pod count: 1) against a pod with same priority class.": "should verify ResourceQuota's priority class scope (quota set to pod count: 1) against a pod with same priority class. [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota [Feature:ScopeSelectors] should verify ResourceQuota with best effort scope using scope-selectors.": "should verify ResourceQuota with best effort scope using scope-selectors. [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota [Feature:ScopeSelectors] should verify ResourceQuota with terminating scopes through scope selectors.": "should verify ResourceQuota with terminating scopes through scope selectors. [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota should be able to update and delete ResourceQuota. [Conformance]": "should be able to update and delete ResourceQuota. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a configMap. [Conformance]": "should create a ResourceQuota and capture the life of a configMap. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a custom resource.": "should create a ResourceQuota and capture the life of a custom resource. [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a persistent volume claim with a storage class. [sig-storage]": "should create a ResourceQuota and capture the life of a persistent volume claim with a storage class. [sig-storage] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a persistent volume claim. [sig-storage]": "should create a ResourceQuota and capture the life of a persistent volume claim. [sig-storage] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a pod. [Conformance]": "should create a ResourceQuota and capture the life of a pod. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a replica set. [Conformance]": "should create a ResourceQuota and capture the life of a replica set. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a replication controller. [Conformance]": "should create a ResourceQuota and capture the life of a replication controller. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a secret. [Conformance]": "should create a ResourceQuota and capture the life of a secret. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a service. [Conformance]": "should create a ResourceQuota and capture the life of a service. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota should create a ResourceQuota and ensure its status is promptly calculated. [Conformance]": "should create a ResourceQuota and ensure its status is promptly calculated. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota should verify ResourceQuota with best effort scope. [Conformance]": "should verify ResourceQuota with best effort scope. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] ResourceQuota should verify ResourceQuota with terminating scopes. [Conformance]": "should verify ResourceQuota with terminating scopes. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Secrets should be consumable from pods in env vars [NodeConformance] [Conformance]": "should be consumable from pods in env vars [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Secrets should be consumable via the environment [NodeConformance] [Conformance]": "should be consumable via the environment [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Secrets should fail to create secret due to empty secret key [Conformance]": "should fail to create secret due to empty secret key [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Secrets should patch a secret [Conformance]": "should patch a secret [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Servers with support for API chunking should return chunks of results for list calls": "should return chunks of results for list calls [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Servers with support for API chunking should support continue listing from the last key if the original version has been compacted away, though the list is inconsistent [Slow]": "should support continue listing from the last key if the original version has been compacted away, though the list is inconsistent [Slow] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Servers with support for Table transformation should return a 406 for a backend which does not implement metadata [Conformance]": "should return a 406 for a backend which does not implement metadata [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Servers with support for Table transformation should return chunks of table results for list calls": "should return chunks of table results for list calls [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Servers with support for Table transformation should return generic metadata details across all namespaces for nodes": "should return generic metadata details across all namespaces for nodes [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Servers with support for Table transformation should return pod details": "should return pod details [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Watchers should be able to restart watching from the last resource version observed by the previous watch [Conformance]": "should be able to restart watching from the last resource version observed by the previous watch [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Watchers should be able to start watching from a specific resource version [Conformance]": "should be able to start watching from a specific resource version [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Watchers should observe add, update, and delete watch notifications on configmaps [Conformance]": "should observe add, update, and delete watch notifications on configmaps [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Watchers should observe an object deletion if it stops meeting the requirements of the selector [Conformance]": "should observe an object deletion if it stops meeting the requirements of the selector [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] Watchers should receive events on concurrent watches in same order [Conformance]": "should receive events on concurrent watches in same order [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] client-go should negotiate watch and report errors with accept \"application/json,application/vnd.kubernetes.protobuf\"": "watch and report errors with accept \"application/json,application/vnd.kubernetes.protobuf\" [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] client-go should negotiate watch and report errors with accept \"application/json\"": "watch and report errors with accept \"application/json\" [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] client-go should negotiate watch and report errors with accept \"application/vnd.kubernetes.protobuf,application/json\"": "watch and report errors with accept \"application/vnd.kubernetes.protobuf,application/json\" [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] client-go should negotiate watch and report errors with accept \"application/vnd.kubernetes.protobuf\"": "watch and report errors with accept \"application/vnd.kubernetes.protobuf\" [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] health handlers should contain necessary checks": "should contain necessary checks [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-api-machinery] server version should find the server version [Conformance]": "should find the server version [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] CronJob should delete failed finished jobs with limit of one job": "should delete failed finished jobs with limit of one job [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] CronJob should delete successful finished jobs with limit of one successful job": "should delete successful finished jobs with limit of one successful job [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] CronJob should not emit unexpected warnings": "should not emit unexpected warnings [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] CronJob should not schedule jobs when suspended [Slow]": "should not schedule jobs when suspended [Slow] [Suite:k8s]", - - "[Top Level] [sig-apps] CronJob should not schedule new jobs when ForbidConcurrent [Slow]": "should not schedule new jobs when ForbidConcurrent [Slow] [Suite:k8s]", - - "[Top Level] [sig-apps] CronJob should remove from active list jobs that have been deleted": "should remove from active list jobs that have been deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] CronJob should replace jobs when ReplaceConcurrent": "should replace jobs when ReplaceConcurrent [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] CronJob should schedule multiple jobs concurrently": "should schedule multiple jobs concurrently [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] Daemon set [Serial] should not update pod when spec was updated and update strategy is OnDelete": "should not update pod when spec was updated and update strategy is OnDelete [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-apps] Daemon set [Serial] should retry creating failed daemon pods [Conformance]": "should retry creating failed daemon pods [Conformance] [Suite:openshift/conformance/serial/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] Daemon set [Serial] should rollback without unnecessary restarts [Conformance]": "should rollback without unnecessary restarts [Conformance] [Suite:openshift/conformance/serial/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] Daemon set [Serial] should run and stop complex daemon [Conformance]": "should run and stop complex daemon [Conformance] [Suite:openshift/conformance/serial/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] Daemon set [Serial] should run and stop complex daemon with node affinity": "should run and stop complex daemon with node affinity [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-apps] Daemon set [Serial] should run and stop simple daemon [Conformance]": "should run and stop simple daemon [Conformance] [Suite:openshift/conformance/serial/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] Daemon set [Serial] should update pod when spec was updated and update strategy is RollingUpdate [Conformance]": "should update pod when spec was updated and update strategy is RollingUpdate [Conformance] [Suite:openshift/conformance/serial/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] DaemonRestart [Disruptive] Controller Manager should not create/delete replicas across restart": "Controller Manager should not create/delete replicas across restart [Serial] [Suite:k8s]", - - "[Top Level] [sig-apps] DaemonRestart [Disruptive] Kube-proxy should recover after being killed accidentally": "Kube-proxy should recover after being killed accidentally [Serial] [Suite:k8s]", - - "[Top Level] [sig-apps] DaemonRestart [Disruptive] Kubelet should not restart containers across restart": "Kubelet should not restart containers across restart [Serial] [Suite:k8s]", - - "[Top Level] [sig-apps] DaemonRestart [Disruptive] Scheduler should continue assigning pods to nodes across restart": "Scheduler should continue assigning pods to nodes across restart [Serial] [Suite:k8s]", - - "[Top Level] [sig-apps] Deployment RecreateDeployment should delete old pods and create new ones [Conformance]": "RecreateDeployment should delete old pods and create new ones [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] Deployment RollingUpdateDeployment should delete old pods and create new ones [Conformance]": "RollingUpdateDeployment should delete old pods and create new ones [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] Deployment deployment reaping should cascade to its replica sets and pods": "deployment reaping should cascade to its replica sets and pods [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] Deployment deployment should delete old replica sets [Conformance]": "deployment should delete old replica sets [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] Deployment deployment should support proportional scaling [Conformance]": "deployment should support proportional scaling [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] Deployment deployment should support rollover [Conformance]": "deployment should support rollover [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] Deployment iterative rollouts should eventually progress": "iterative rollouts should eventually progress [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] Deployment should not disrupt a cloud load-balancer's connectivity during rollout": "should not disrupt a cloud load-balancer's connectivity during rollout [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] Deployment test Deployment ReplicaSet orphaning and adoption regarding controllerRef": "test Deployment ReplicaSet orphaning and adoption regarding controllerRef [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] DisruptionController Listing PodDisruptionBudgets for all namespaces should list and delete a collection of PodDisruptionBudgets": "should list and delete a collection of PodDisruptionBudgets [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] DisruptionController evictions: enough pods, absolute => should allow an eviction": "evictions: enough pods, absolute => should allow an eviction [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] DisruptionController evictions: enough pods, replicaSet, percentage => should allow an eviction": "evictions: enough pods, replicaSet, percentage => should allow an eviction [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] DisruptionController evictions: maxUnavailable allow single eviction, percentage => should allow an eviction": "evictions: maxUnavailable allow single eviction, percentage => should allow an eviction [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] DisruptionController evictions: maxUnavailable deny evictions, integer => should not allow an eviction [Serial]": "evictions: maxUnavailable deny evictions, integer => should not allow an eviction [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-apps] DisruptionController evictions: no PDB => should allow an eviction": "evictions: no PDB => should allow an eviction [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] DisruptionController evictions: too few pods, absolute => should not allow an eviction": "evictions: too few pods, absolute => should not allow an eviction [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] DisruptionController evictions: too few pods, replicaSet, percentage => should not allow an eviction [Serial]": "evictions: too few pods, replicaSet, percentage => should not allow an eviction [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-apps] DisruptionController should block an eviction until the PDB is updated to allow it": "should block an eviction until the PDB is updated to allow it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] DisruptionController should create a PodDisruptionBudget": "should create a PodDisruptionBudget [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] DisruptionController should observe PodDisruptionBudget status updated": "should observe PodDisruptionBudget status updated [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] DisruptionController should update/patch PodDisruptionBudget status": "should update/patch PodDisruptionBudget status [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] Job should adopt matching orphans and release non-matching pods [Conformance]": "should adopt matching orphans and release non-matching pods [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] Job should delete a job [Conformance]": "should delete a job [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] Job should fail to exceed backoffLimit": "should fail to exceed backoffLimit [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] Job should fail when exceeds active deadline": "should fail when exceeds active deadline [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] Job should remove pods when job is deleted": "should remove pods when job is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] Job should run a job to completion when tasks sometimes fail and are locally restarted [Conformance]": "should run a job to completion when tasks sometimes fail and are locally restarted [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] Job should run a job to completion when tasks sometimes fail and are not locally restarted": "should run a job to completion when tasks sometimes fail and are not locally restarted [Flaky] [Suite:k8s]", - - "[Top Level] [sig-apps] Job should run a job to completion when tasks succeed": "should run a job to completion when tasks succeed [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] Network Partition [Disruptive] [Slow] [k8s.io] Pods should be evicted from unready Node [Feature:TaintEviction] All pods on the unreachable node should be marked as NotReady upon the node turn NotReady AND all pods should be evicted after eviction timeout passes": "[Feature:TaintEviction] All pods on the unreachable node should be marked as NotReady upon the node turn NotReady AND all pods should be evicted after eviction timeout passes [Serial] [Suite:k8s]", - - "[Top Level] [sig-apps] Network Partition [Disruptive] [Slow] [k8s.io] Pods should return to running and ready state after network partition is healed All pods on the unreachable node should be marked as NotReady upon the node turn NotReady AND all pods should be mark back to Ready when the node get back to Ready before pod eviction timeout": "All pods on the unreachable node should be marked as NotReady upon the node turn NotReady AND all pods should be mark back to Ready when the node get back to Ready before pod eviction timeout [Serial] [Suite:k8s]", - - "[Top Level] [sig-apps] Network Partition [Disruptive] [Slow] [k8s.io] [Job] should create new pods when node is partitioned": "should create new pods when node is partitioned [Serial] [Suite:k8s]", - - "[Top Level] [sig-apps] Network Partition [Disruptive] [Slow] [k8s.io] [ReplicationController] should eagerly create replacement pod during network partition when termination grace is non-zero": "should eagerly create replacement pod during network partition when termination grace is non-zero [Serial] [Suite:k8s]", - - "[Top Level] [sig-apps] Network Partition [Disruptive] [Slow] [k8s.io] [ReplicationController] should recreate pods scheduled on the unreachable node AND allow scheduling of pods on a node after it rejoins the cluster": "should recreate pods scheduled on the unreachable node AND allow scheduling of pods on a node after it rejoins the cluster [Serial] [Suite:k8s]", - - "[Top Level] [sig-apps] Network Partition [Disruptive] [Slow] [k8s.io] [StatefulSet] should come back up if node goes down [Slow] [Disruptive]": "should come back up if node goes down [Slow] [Disruptive] [Serial] [Suite:k8s]", - - "[Top Level] [sig-apps] Network Partition [Disruptive] [Slow] [k8s.io] [StatefulSet] should not reschedule stateful pods if there is a network partition [Slow] [Disruptive]": "should not reschedule stateful pods if there is a network partition [Slow] [Disruptive] [Serial] [Suite:k8s]", - - "[Top Level] [sig-apps] ReplicaSet should adopt matching pods on creation and release no longer matching pods [Conformance]": "should adopt matching pods on creation and release no longer matching pods [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] ReplicaSet should serve a basic image on each replica with a private image": "should serve a basic image on each replica with a private image [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] ReplicaSet should serve a basic image on each replica with a public image [Conformance]": "should serve a basic image on each replica with a public image [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] ReplicaSet should surface a failure condition on a common issue like exceeded quota": "should surface a failure condition on a common issue like exceeded quota [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] ReplicationController [Flaky] should test the lifecycle of a ReplicationController": "[Flaky] should test the lifecycle of a ReplicationController [Suite:k8s]", - - "[Top Level] [sig-apps] ReplicationController should adopt matching pods on creation [Conformance]": "should adopt matching pods on creation [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] ReplicationController should release no longer matching pods [Conformance]": "should release no longer matching pods [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] ReplicationController should serve a basic image on each replica with a private image": "should serve a basic image on each replica with a private image [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] ReplicationController should serve a basic image on each replica with a public image [Conformance]": "should serve a basic image on each replica with a public image [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] ReplicationController should surface a failure condition on a common issue like exceeded quota [Conformance]": "should surface a failure condition on a common issue like exceeded quota [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Burst scaling should run to completion even with unhealthy pods [Slow] [Conformance]": "Burst scaling should run to completion even with unhealthy pods [Slow] [Conformance] [Suite:k8s]", - - "[Top Level] [sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Scaling should happen in predictable order and halt if any stateful pod is unhealthy [Slow] [Conformance]": "Scaling should happen in predictable order and halt if any stateful pod is unhealthy [Slow] [Conformance] [Suite:k8s]", - - "[Top Level] [sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Should recreate evicted statefulset [Conformance]": "Should recreate evicted statefulset [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should adopt matching orphans and release non-matching pods": "should adopt matching orphans and release non-matching pods [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should have a working scale subresource [Conformance]": "should have a working scale subresource [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should implement legacy replacement when the update strategy is OnDelete": "should implement legacy replacement when the update strategy is OnDelete [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should not deadlock when a pod's predecessor fails": "should not deadlock when a pod's predecessor fails [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform canary updates and phased rolling updates of template modifications [Conformance]": "should perform canary updates and phased rolling updates of template modifications [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications [Conformance]": "should perform rolling updates and roll backs of template modifications [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications with PVCs": "should perform rolling updates and roll backs of template modifications with PVCs [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should provide basic identity": "should provide basic identity [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-apps] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working CockroachDB cluster": "should creating a working CockroachDB cluster [Suite:k8s]", - - "[Top Level] [sig-apps] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working mysql cluster": "should creating a working mysql cluster [Suite:k8s]", - - "[Top Level] [sig-apps] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working redis cluster": "should creating a working redis cluster [Suite:k8s]", - - "[Top Level] [sig-apps] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working zookeeper cluster": "should creating a working zookeeper cluster [Suite:k8s]", - - "[Top Level] [sig-auth] Certificates API [Privileged:ClusterAdmin] should support CSR API operations [Conformance]": "should support CSR API operations [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-auth] Certificates API [Privileged:ClusterAdmin] should support building a client with a CSR": "should support building a client with a CSR [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-auth] Metadata Concealment should run a check-metadata-concealment job to completion": "should run a check-metadata-concealment job to completion [Skipped:gce] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-auth] PodSecurityPolicy [Feature:PodSecurityPolicy] should allow pods under the privileged policy.PodSecurityPolicy": "should allow pods under the privileged policy.PodSecurityPolicy [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-auth] PodSecurityPolicy [Feature:PodSecurityPolicy] should enforce the restricted policy.PodSecurityPolicy": "should enforce the restricted policy.PodSecurityPolicy [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-auth] PodSecurityPolicy [Feature:PodSecurityPolicy] should forbid pod creation when no PSP is available": "should forbid pod creation when no PSP is available [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-auth] ServiceAccounts should allow opting out of API token automount [Conformance]": "should allow opting out of API token automount [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-auth] ServiceAccounts should ensure a single API token exists": "should ensure a single API token exists [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-auth] ServiceAccounts should mount an API token into pods [Conformance]": "should mount an API token into pods [Conformance] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-auth] ServiceAccounts should run through the lifecycle of a ServiceAccount [Conformance]": "should run through the lifecycle of a ServiceAccount [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-auth] ServiceAccounts should set ownership and permission when RunAsUser or FsGroup is present [LinuxOnly] [NodeFeature:FSGroup] [Feature:TokenRequestProjection]": "should set ownership and permission when RunAsUser or FsGroup is present [LinuxOnly] [NodeFeature:FSGroup] [Feature:TokenRequestProjection] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-auth] ServiceAccounts should support InClusterConfig with token rotation [Slow] [Feature:TokenRequestProjection]": "should support InClusterConfig with token rotation [Slow] [Feature:TokenRequestProjection] [Suite:k8s]", - - "[Top Level] [sig-auth] ServiceAccounts should support OIDC discovery of service account issuer [Feature:ServiceAccountIssuerDiscovery]": "should support OIDC discovery of service account issuer [Feature:ServiceAccountIssuerDiscovery] [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [sig-auth] [Feature:NodeAuthenticator] The kubelet can delegate ServiceAccount tokens to the API server": "The kubelet can delegate ServiceAccount tokens to the API server [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-auth] [Feature:NodeAuthenticator] The kubelet's main port 10250 should reject requests with no credentials": "The kubelet's main port 10250 should reject requests with no credentials [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-auth] [Feature:NodeAuthorizer] A node shouldn't be able to create another node": "A node shouldn't be able to create another node [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-auth] [Feature:NodeAuthorizer] A node shouldn't be able to delete another node": "A node shouldn't be able to delete another node [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-auth] [Feature:NodeAuthorizer] Getting a non-existent configmap should exit with the Forbidden error, not a NotFound error": "Getting a non-existent configmap should exit with the Forbidden error, not a NotFound error [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-auth] [Feature:NodeAuthorizer] Getting a non-existent secret should exit with the Forbidden error, not a NotFound error": "Getting a non-existent secret should exit with the Forbidden error, not a NotFound error [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-auth] [Feature:NodeAuthorizer] Getting a secret for a workload the node has access to should succeed": "Getting a secret for a workload the node has access to should succeed [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-auth] [Feature:NodeAuthorizer] Getting an existing configmap should exit with the Forbidden error": "Getting an existing configmap should exit with the Forbidden error [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-auth] [Feature:NodeAuthorizer] Getting an existing secret should exit with the Forbidden error": "Getting an existing secret should exit with the Forbidden error [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] Should be able to scale a node group down to 0[Feature:ClusterSizeAutoscalingScaleDown]": "Should be able to scale a node group down to 0[Feature:ClusterSizeAutoscalingScaleDown] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] Should be able to scale a node group up from 0[Feature:ClusterSizeAutoscalingScaleUp]": "Should be able to scale a node group up from 0[Feature:ClusterSizeAutoscalingScaleUp] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] Should not scale GPU pool up if pod does not require GPUs [GpuType:] [Feature:ClusterSizeAutoscalingGpu]": "Should not scale GPU pool up if pod does not require GPUs [GpuType:] [Feature:ClusterSizeAutoscalingGpu] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] Should scale down GPU pool from 1 [GpuType:] [Feature:ClusterSizeAutoscalingGpu]": "Should scale down GPU pool from 1 [GpuType:] [Feature:ClusterSizeAutoscalingGpu] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] Should scale up GPU pool from 0 [GpuType:] [Feature:ClusterSizeAutoscalingGpu]": "Should scale up GPU pool from 0 [GpuType:] [Feature:ClusterSizeAutoscalingGpu] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] Should scale up GPU pool from 1 [GpuType:] [Feature:ClusterSizeAutoscalingGpu]": "Should scale up GPU pool from 1 [GpuType:] [Feature:ClusterSizeAutoscalingGpu] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] Shouldn't perform scale up operation and should list unhealthy status if most of the cluster is broken[Feature:ClusterSizeAutoscalingScaleUp]": "Shouldn't perform scale up operation and should list unhealthy status if most of the cluster is broken[Feature:ClusterSizeAutoscalingScaleUp] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should add node to the particular mig [Feature:ClusterSizeAutoscalingScaleUp]": "should add node to the particular mig [Feature:ClusterSizeAutoscalingScaleUp] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should be able to scale down by draining multiple pods one by one as dictated by pdb[Feature:ClusterSizeAutoscalingScaleDown]": "should be able to scale down by draining multiple pods one by one as dictated by pdb[Feature:ClusterSizeAutoscalingScaleDown] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should be able to scale down by draining system pods with pdb[Feature:ClusterSizeAutoscalingScaleDown]": "should be able to scale down by draining system pods with pdb[Feature:ClusterSizeAutoscalingScaleDown] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should be able to scale down when rescheduling a pod is required and pdb allows for it[Feature:ClusterSizeAutoscalingScaleDown]": "should be able to scale down when rescheduling a pod is required and pdb allows for it[Feature:ClusterSizeAutoscalingScaleDown] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should correctly scale down after a node is not needed [Feature:ClusterSizeAutoscalingScaleDown]": "should correctly scale down after a node is not needed [Feature:ClusterSizeAutoscalingScaleDown] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should correctly scale down after a node is not needed and one node is broken [Feature:ClusterSizeAutoscalingScaleDown]": "should correctly scale down after a node is not needed and one node is broken [Feature:ClusterSizeAutoscalingScaleDown] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should correctly scale down after a node is not needed when there is non autoscaled pool[Feature:ClusterSizeAutoscalingScaleDown]": "should correctly scale down after a node is not needed when there is non autoscaled pool[Feature:ClusterSizeAutoscalingScaleDown] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should disable node pool autoscaling [Feature:ClusterSizeAutoscalingScaleUp]": "should disable node pool autoscaling [Feature:ClusterSizeAutoscalingScaleUp] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should increase cluster size if pending pods are small [Feature:ClusterSizeAutoscalingScaleUp]": "should increase cluster size if pending pods are small [Feature:ClusterSizeAutoscalingScaleUp] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should increase cluster size if pending pods are small and one node is broken [Feature:ClusterSizeAutoscalingScaleUp]": "should increase cluster size if pending pods are small and one node is broken [Feature:ClusterSizeAutoscalingScaleUp] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should increase cluster size if pending pods are small and there is another node pool that is not autoscaled [Feature:ClusterSizeAutoscalingScaleUp]": "should increase cluster size if pending pods are small and there is another node pool that is not autoscaled [Feature:ClusterSizeAutoscalingScaleUp] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should increase cluster size if pod requesting EmptyDir volume is pending [Feature:ClusterSizeAutoscalingScaleUp]": "should increase cluster size if pod requesting EmptyDir volume is pending [Feature:ClusterSizeAutoscalingScaleUp] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should increase cluster size if pod requesting volume is pending [Feature:ClusterSizeAutoscalingScaleUp]": "should increase cluster size if pod requesting volume is pending [Feature:ClusterSizeAutoscalingScaleUp] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should increase cluster size if pods are pending due to host port conflict [Feature:ClusterSizeAutoscalingScaleUp]": "should increase cluster size if pods are pending due to host port conflict [Feature:ClusterSizeAutoscalingScaleUp] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should increase cluster size if pods are pending due to pod anti-affinity [Feature:ClusterSizeAutoscalingScaleUp]": "should increase cluster size if pods are pending due to pod anti-affinity [Feature:ClusterSizeAutoscalingScaleUp] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should scale down when expendable pod is running [Feature:ClusterSizeAutoscalingScaleDown]": "should scale down when expendable pod is running [Feature:ClusterSizeAutoscalingScaleDown] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should scale up correct target pool [Feature:ClusterSizeAutoscalingScaleUp]": "should scale up correct target pool [Feature:ClusterSizeAutoscalingScaleUp] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] should scale up when non expendable pod is created [Feature:ClusterSizeAutoscalingScaleUp]": "should scale up when non expendable pod is created [Feature:ClusterSizeAutoscalingScaleUp] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] shouldn't be able to scale down when rescheduling a pod is required, but pdb doesn't allow drain[Feature:ClusterSizeAutoscalingScaleDown]": "shouldn't be able to scale down when rescheduling a pod is required, but pdb doesn't allow drain[Feature:ClusterSizeAutoscalingScaleDown] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] shouldn't increase cluster size if pending pod is too large [Feature:ClusterSizeAutoscalingScaleUp]": "shouldn't increase cluster size if pending pod is too large [Feature:ClusterSizeAutoscalingScaleUp] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] shouldn't scale down when non expendable pod is running [Feature:ClusterSizeAutoscalingScaleDown]": "shouldn't scale down when non expendable pod is running [Feature:ClusterSizeAutoscalingScaleDown] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] shouldn't scale up when expendable pod is created [Feature:ClusterSizeAutoscalingScaleUp]": "shouldn't scale up when expendable pod is created [Feature:ClusterSizeAutoscalingScaleUp] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] shouldn't scale up when expendable pod is preempted [Feature:ClusterSizeAutoscalingScaleUp]": "shouldn't scale up when expendable pod is preempted [Feature:ClusterSizeAutoscalingScaleUp] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] Cluster size autoscaling [Slow] shouldn't trigger additional scale-ups during processing scale-up [Feature:ClusterSizeAutoscalingScaleUp]": "shouldn't trigger additional scale-ups during processing scale-up [Feature:ClusterSizeAutoscalingScaleUp] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] DNS horizontal autoscaling [DisabledForLargeClusters] kube-dns-autoscaler should scale kube-dns pods in both nonfaulty and faulty scenarios": "[DisabledForLargeClusters] kube-dns-autoscaler should scale kube-dns pods in both nonfaulty and faulty scenarios [Disabled:SpecialConfig] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] DNS horizontal autoscaling [Serial] [Slow] kube-dns-autoscaler should scale kube-dns pods when cluster size changed": "[Serial] [Slow] kube-dns-autoscaler should scale kube-dns pods when cluster size changed [Disabled:SpecialConfig] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] [Feature:HPA] Horizontal pod autoscaling (scale resource: CPU) [sig-autoscaling] ReplicationController light Should scale from 1 pod to 2 pods": "Should scale from 1 pod to 2 pods [Flaky] [Serial] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] [Feature:HPA] Horizontal pod autoscaling (scale resource: CPU) [sig-autoscaling] ReplicationController light Should scale from 2 pods to 1 pod [Slow]": "Should scale from 2 pods to 1 pod [Slow] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] [Feature:HPA] Horizontal pod autoscaling (scale resource: CPU) [sig-autoscaling] [Serial] [Slow] Deployment Should scale from 1 pod to 3 pods and from 3 to 5": "Should scale from 1 pod to 3 pods and from 3 to 5 [Suite:k8s]", - - "[Top Level] [sig-autoscaling] [Feature:HPA] Horizontal pod autoscaling (scale resource: CPU) [sig-autoscaling] [Serial] [Slow] Deployment Should scale from 5 pods to 3 pods and from 3 to 1": "Should scale from 5 pods to 3 pods and from 3 to 1 [Suite:k8s]", - - "[Top Level] [sig-autoscaling] [Feature:HPA] Horizontal pod autoscaling (scale resource: CPU) [sig-autoscaling] [Serial] [Slow] ReplicaSet Should scale from 1 pod to 3 pods and from 3 to 5": "Should scale from 1 pod to 3 pods and from 3 to 5 [Suite:k8s]", - - "[Top Level] [sig-autoscaling] [Feature:HPA] Horizontal pod autoscaling (scale resource: CPU) [sig-autoscaling] [Serial] [Slow] ReplicaSet Should scale from 5 pods to 3 pods and from 3 to 1": "Should scale from 5 pods to 3 pods and from 3 to 1 [Suite:k8s]", - - "[Top Level] [sig-autoscaling] [Feature:HPA] Horizontal pod autoscaling (scale resource: CPU) [sig-autoscaling] [Serial] [Slow] ReplicationController Should scale from 1 pod to 3 pods and from 3 to 5 and verify decision stability": "Should scale from 1 pod to 3 pods and from 3 to 5 and verify decision stability [Suite:k8s]", - - "[Top Level] [sig-autoscaling] [Feature:HPA] Horizontal pod autoscaling (scale resource: CPU) [sig-autoscaling] [Serial] [Slow] ReplicationController Should scale from 5 pods to 3 pods and from 3 to 1 and verify decision stability": "Should scale from 5 pods to 3 pods and from 3 to 1 and verify decision stability [Suite:k8s]", - - "[Top Level] [sig-autoscaling] [HPA] Horizontal pod autoscaling (scale resource: Custom Metrics from Stackdriver) should scale down with Custom Metric of type Object from Stackdriver [Feature:CustomMetricsAutoscaling]": "should scale down with Custom Metric of type Object from Stackdriver [Feature:CustomMetricsAutoscaling] [Skipped:gce] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] [HPA] Horizontal pod autoscaling (scale resource: Custom Metrics from Stackdriver) should scale down with Custom Metric of type Pod from Stackdriver [Feature:CustomMetricsAutoscaling]": "should scale down with Custom Metric of type Pod from Stackdriver [Feature:CustomMetricsAutoscaling] [Skipped:gce] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] [HPA] Horizontal pod autoscaling (scale resource: Custom Metrics from Stackdriver) should scale down with Custom Metric of type Pod from Stackdriver with Prometheus [Feature:CustomMetricsAutoscaling]": "should scale down with Custom Metric of type Pod from Stackdriver with Prometheus [Feature:CustomMetricsAutoscaling] [Skipped:gce] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] [HPA] Horizontal pod autoscaling (scale resource: Custom Metrics from Stackdriver) should scale down with External Metric with target average value from Stackdriver [Feature:CustomMetricsAutoscaling]": "should scale down with External Metric with target average value from Stackdriver [Feature:CustomMetricsAutoscaling] [Skipped:gce] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] [HPA] Horizontal pod autoscaling (scale resource: Custom Metrics from Stackdriver) should scale down with External Metric with target value from Stackdriver [Feature:CustomMetricsAutoscaling]": "should scale down with External Metric with target value from Stackdriver [Feature:CustomMetricsAutoscaling] [Skipped:gce] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] [HPA] Horizontal pod autoscaling (scale resource: Custom Metrics from Stackdriver) should scale up with two External metrics from Stackdriver [Feature:CustomMetricsAutoscaling]": "should scale up with two External metrics from Stackdriver [Feature:CustomMetricsAutoscaling] [Skipped:gce] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-autoscaling] [HPA] Horizontal pod autoscaling (scale resource: Custom Metrics from Stackdriver) should scale up with two metrics of type Pod from Stackdriver [Feature:CustomMetricsAutoscaling]": "should scale up with two metrics of type Pod from Stackdriver [Feature:CustomMetricsAutoscaling] [Skipped:gce] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl Port forwarding With a server listening on 0.0.0.0 should support forwarding over websockets": "should support forwarding over websockets [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl Port forwarding With a server listening on 0.0.0.0 that expects NO client request should support a client that connects, sends DATA, and disconnects": "should support a client that connects, sends DATA, and disconnects [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl Port forwarding With a server listening on 0.0.0.0 that expects a client request should support a client that connects, sends DATA, and disconnects": "should support a client that connects, sends DATA, and disconnects [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl Port forwarding With a server listening on 0.0.0.0 that expects a client request should support a client that connects, sends NO DATA, and disconnects": "should support a client that connects, sends NO DATA, and disconnects [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl Port forwarding With a server listening on localhost should support forwarding over websockets": "should support forwarding over websockets [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl Port forwarding With a server listening on localhost that expects NO client request should support a client that connects, sends DATA, and disconnects": "should support a client that connects, sends DATA, and disconnects [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl Port forwarding With a server listening on localhost that expects a client request should support a client that connects, sends DATA, and disconnects": "should support a client that connects, sends DATA, and disconnects [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl Port forwarding With a server listening on localhost that expects a client request should support a client that connects, sends NO DATA, and disconnects": "should support a client that connects, sends NO DATA, and disconnects [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Guestbook application should create and stop a working application [Conformance]": "should create and stop a working application [Conformance] [Slow] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl api-versions should check if v1 is in available api versions [Conformance]": "should check if v1 is in available api versions [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl apply apply set/view last-applied": "apply set/view last-applied [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl apply should apply a new configuration to an existing RC": "should apply a new configuration to an existing RC [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl apply should reuse port when apply to an existing SVC": "should reuse port when apply to an existing SVC [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl client-side validation should create/apply a CR with unknown fields for CRD with no validation schema": "should create/apply a CR with unknown fields for CRD with no validation schema [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl client-side validation should create/apply a valid CR for CRD with validation schema": "should create/apply a valid CR for CRD with validation schema [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl client-side validation should create/apply a valid CR with arbitrary-extra properties for CRD with partially-specified validation schema": "should create/apply a valid CR with arbitrary-extra properties for CRD with partially-specified validation schema [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl cluster-info dump should check if cluster-info dump succeeds": "should check if cluster-info dump succeeds [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl cluster-info should check if Kubernetes master services is included in cluster-info [Conformance]": "should check if Kubernetes master services is included in cluster-info [Conformance] [Disabled:SpecialConfig] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl copy should copy a file from a running Pod": "should copy a file from a running Pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl create quota should create a quota with scopes": "should create a quota with scopes [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl create quota should create a quota without scopes": "should create a quota without scopes [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl create quota should reject quota with invalid scopes": "should reject quota with invalid scopes [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl describe should check if kubectl describe prints relevant information for cronjob": "should check if kubectl describe prints relevant information for cronjob [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl describe should check if kubectl describe prints relevant information for rc and pods [Conformance]": "should check if kubectl describe prints relevant information for rc and pods [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl diff should check if kubectl diff finds a difference for Deployments [Conformance]": "should check if kubectl diff finds a difference for Deployments [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl expose should create services for rc [Conformance]": "should create services for rc [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl get componentstatuses should get componentstatuses": "should get componentstatuses [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl label should update the label on a resource [Conformance]": "should update the label on a resource [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl logs should be able to retrieve and filter logs [Conformance]": "should be able to retrieve and filter logs [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl patch should add annotations for pods in rc [Conformance]": "should add annotations for pods in rc [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl replace should update a single-container pod's image [Conformance]": "should update a single-container pod's image [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl run pod should create a pod from an image when restart is Never [Conformance]": "should create a pod from an image when restart is Never [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance]": "should check if kubectl can dry-run update Pods [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl taint [Serial] should remove all the taints with the same key off a node": "should remove all the taints with the same key off a node [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl taint [Serial] should update the taint on a node": "should update the taint on a node [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Kubectl version should check is all data is printed [Conformance]": "should check is all data is printed [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Proxy server should support --unix-socket=/path [Conformance]": "should support --unix-socket=/path [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Proxy server should support proxy with --port 0 [Conformance]": "should support proxy with --port 0 [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Simple pod should contain last line of the log": "should contain last line of the log [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Simple pod should handle in-cluster config": "should handle in-cluster config [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Simple pod should return command exit codes": "should return command exit codes [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Simple pod should support exec through an HTTP proxy": "should support exec through an HTTP proxy [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Simple pod should support exec through kubectl proxy": "should support exec through kubectl proxy [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Simple pod should support exec using resource/name": "should support exec using resource/name [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Simple pod should support exec": "should support exec [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Simple pod should support inline execution and attach": "should support inline execution and attach [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Simple pod should support port-forward": "should support port-forward [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Update Demo should create and stop a replication controller [Conformance]": "should create and stop a replication controller [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-cli] Kubectl client Update Demo should scale a replication controller [Conformance]": "should scale a replication controller [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] Cluster level logging implemented by Stackdriver [Feature:StackdriverLogging] [Soak] should ingest logs from applications running for a prolonged amount of time": "should ingest logs from applications running for a prolonged amount of time [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] Cluster level logging implemented by Stackdriver should ingest events [Feature:StackdriverLogging]": "should ingest events [Feature:StackdriverLogging] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] Cluster level logging implemented by Stackdriver should ingest logs [Feature:StackdriverLogging]": "should ingest logs [Feature:StackdriverLogging] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] Cluster level logging implemented by Stackdriver should ingest system logs from all nodes [Feature:StackdriverLogging]": "should ingest system logs from all nodes [Feature:StackdriverLogging] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] Cluster level logging using Elasticsearch [Feature:Elasticsearch] should check that logs from containers are ingested into Elasticsearch": "should check that logs from containers are ingested into Elasticsearch [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] Events API should delete a collection of events [Conformance]": "should delete a collection of events [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] Events API should ensure that an event can be fetched, patched, deleted, and listed [Conformance]": "should ensure that an event can be fetched, patched, deleted, and listed [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] Kibana Logging Instances Is Alive [Feature:Elasticsearch] should check that the Kibana logging instance is alive": "should check that the Kibana logging instance is alive [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] Logging soak [Performance] [Slow] [Disruptive] should survive logging 1KB every 1s seconds, for a duration of 2m0s": "should survive logging 1KB every 1s seconds, for a duration of 2m0s [Serial] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] MetricsGrabber should grab all metrics from API server.": "should grab all metrics from API server. [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] MetricsGrabber should grab all metrics from a ControllerManager.": "should grab all metrics from a ControllerManager. [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] MetricsGrabber should grab all metrics from a Kubelet.": "should grab all metrics from a Kubelet. [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] MetricsGrabber should grab all metrics from a Scheduler.": "should grab all metrics from a Scheduler. [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] Stackdriver Monitoring should have accelerator metrics [Feature:StackdriverAcceleratorMonitoring]": "should have accelerator metrics [Feature:StackdriverAcceleratorMonitoring] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] Stackdriver Monitoring should have cluster metrics [Feature:StackdriverMonitoring]": "should have cluster metrics [Feature:StackdriverMonitoring] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] Stackdriver Monitoring should run Custom Metrics - Stackdriver Adapter for external metrics [Feature:StackdriverExternalMetrics]": "should run Custom Metrics - Stackdriver Adapter for external metrics [Feature:StackdriverExternalMetrics] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] Stackdriver Monitoring should run Custom Metrics - Stackdriver Adapter for new resource model [Feature:StackdriverCustomMetrics]": "should run Custom Metrics - Stackdriver Adapter for new resource model [Feature:StackdriverCustomMetrics] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] Stackdriver Monitoring should run Custom Metrics - Stackdriver Adapter for old resource model [Feature:StackdriverCustomMetrics]": "should run Custom Metrics - Stackdriver Adapter for old resource model [Feature:StackdriverCustomMetrics] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-instrumentation] Stackdriver Monitoring should run Stackdriver Metadata Agent [Feature:StackdriverMetadataAgent]": "should run Stackdriver Metadata Agent [Feature:StackdriverMetadataAgent] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-network] ClusterDns [Feature:Example] should create pod that uses dns": "should create pod that uses dns [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a ClusterIP service": "should be able to preserve UDP traffic when server pod cycles for a ClusterIP service [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service": "should be able to preserve UDP traffic when server pod cycles for a NodePort service [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] DNS configMap federations [Feature:Federation] should be able to change federation configuration [Slow][Serial]": "should be able to change federation configuration [Slow][Serial] [Disabled:SpecialConfig] [Suite:k8s]", - - "[Top Level] [sig-network] DNS configMap nameserver Change stubDomain should be able to change stubDomain configuration [Slow][Serial]": "should be able to change stubDomain configuration [Slow][Serial] [Disabled:SpecialConfig] [Suite:k8s]", - - "[Top Level] [sig-network] DNS configMap nameserver Forward PTR lookup should forward PTR records lookup to upstream nameserver [Slow][Serial]": "should forward PTR records lookup to upstream nameserver [Slow][Serial] [Disabled:SpecialConfig] [Suite:k8s]", - - "[Top Level] [sig-network] DNS configMap nameserver Forward external name lookup should forward externalname lookup to upstream nameserver [Slow][Serial]": "should forward externalname lookup to upstream nameserver [Slow][Serial] [Disabled:SpecialConfig] [Suite:k8s]", - - "[Top Level] [sig-network] DNS should provide /etc/hosts entries for the cluster [LinuxOnly] [Conformance]": "should provide /etc/hosts entries for the cluster [LinuxOnly] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] DNS should provide DNS for ExternalName services [Conformance]": "should provide DNS for ExternalName services [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] DNS should provide DNS for pods for Hostname [LinuxOnly] [Conformance]": "should provide DNS for pods for Hostname [LinuxOnly] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] DNS should provide DNS for pods for Subdomain [Conformance]": "should provide DNS for pods for Subdomain [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] DNS should provide DNS for services [Conformance]": "should provide DNS for services [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] DNS should provide DNS for the cluster [Conformance]": "should provide DNS for the cluster [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] DNS should provide DNS for the cluster [Provider:GCE]": "should provide DNS for the cluster [Provider:GCE] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] DNS should resolve DNS of partial qualified names for services [LinuxOnly] [Conformance]": "should resolve DNS of partial qualified names for services [LinuxOnly] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] DNS should resolve DNS of partial qualified names for the cluster [LinuxOnly]": "should resolve DNS of partial qualified names for the cluster [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] DNS should support configurable pod DNS nameservers [Conformance]": "should support configurable pod DNS nameservers [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] DNS should support configurable pod resolv.conf": "should support configurable pod resolv.conf [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] ESIPP [Slow] should handle updates to ExternalTrafficPolicy field": "should handle updates to ExternalTrafficPolicy field [Suite:k8s]", - - "[Top Level] [sig-network] ESIPP [Slow] should only target nodes with endpoints": "should only target nodes with endpoints [Suite:k8s]", - - "[Top Level] [sig-network] ESIPP [Slow] should work for type=LoadBalancer": "should work for type=LoadBalancer [Suite:k8s]", - - "[Top Level] [sig-network] ESIPP [Slow] should work for type=NodePort": "should work for type=NodePort [Suite:k8s]", - - "[Top Level] [sig-network] ESIPP [Slow] should work from pods": "should work from pods [Suite:k8s]", - - "[Top Level] [sig-network] EndpointSlice should create Endpoints and EndpointSlices for Pods matching a Service": "should create Endpoints and EndpointSlices for Pods matching a Service [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] EndpointSlice should create and delete Endpoints and EndpointSlices for a Service with a selector specified": "should create and delete Endpoints and EndpointSlices for a Service with a selector specified [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] EndpointSlice should have Endpoints and EndpointSlices pointing to API Server": "should have Endpoints and EndpointSlices pointing to API Server [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] EndpointSliceMirroring should mirror a custom Endpoints resource through create update and delete": "should mirror a custom Endpoints resource through create update and delete [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Firewall rule [Slow] [Serial] should create valid firewall rules for LoadBalancer type service": "[Slow] [Serial] should create valid firewall rules for LoadBalancer type service [Suite:k8s]", - - "[Top Level] [sig-network] Firewall rule should have correct firewall rules for e2e cluster": "should have correct firewall rules for e2e cluster [Disabled:SpecialConfig] [Suite:k8s]", - - "[Top Level] [sig-network] Ingress API should support creating Ingress API operations [Conformance]": "should support creating Ingress API operations [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] IngressClass API should support creating IngressClass API operations [Conformance]": " should support creating IngressClass API operations [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] IngressClass [Feature:Ingress] should not set default value if no default IngressClass [Serial]": "should not set default value if no default IngressClass [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-network] IngressClass [Feature:Ingress] should prevent Ingress creation if more than 1 IngressClass marked as default [Serial]": "should prevent Ingress creation if more than 1 IngressClass marked as default [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-network] IngressClass [Feature:Ingress] should set default value on new IngressClass [Serial]": "should set default value on new IngressClass [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 GCE [Slow] [Feature:Ingress] multicluster ingress should get instance group annotation": "multicluster ingress should get instance group annotation [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 GCE [Slow] [Feature:Ingress] should conform to Ingress spec": "should conform to Ingress spec [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 GCE [Slow] [Feature:Ingress] should create ingress with pre-shared certificate": "should create ingress with pre-shared certificate [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 GCE [Slow] [Feature:Ingress] should support multiple TLS certs": "should support multiple TLS certs [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 GCE [Slow] [Feature:NEG] rolling update backend pods should not cause service disruption": "rolling update backend pods should not cause service disruption [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 GCE [Slow] [Feature:NEG] should be able to create a ClusterIP service": "should be able to create a ClusterIP service [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 GCE [Slow] [Feature:NEG] should be able to switch between IG and NEG modes": "should be able to switch between IG and NEG modes [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 GCE [Slow] [Feature:NEG] should conform to Ingress spec": "should conform to Ingress spec [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 GCE [Slow] [Feature:NEG] should create NEGs for all ports with the Ingress annotation, and NEGs for the standalone annotation otherwise": "should create NEGs for all ports with the Ingress annotation, and NEGs for the standalone annotation otherwise [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 GCE [Slow] [Feature:NEG] should sync endpoints for both Ingress-referenced NEG and standalone NEG": "should sync endpoints for both Ingress-referenced NEG and standalone NEG [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 GCE [Slow] [Feature:NEG] should sync endpoints to NEG": "should sync endpoints to NEG [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 GCE [Slow] [Feature:kubemci] should conform to Ingress spec": "should conform to Ingress spec [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 GCE [Slow] [Feature:kubemci] should create ingress with backend HTTPS": "should create ingress with backend HTTPS [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 GCE [Slow] [Feature:kubemci] should create ingress with pre-shared certificate": "should create ingress with pre-shared certificate [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 GCE [Slow] [Feature:kubemci] should remove clusters as expected": "should remove clusters as expected [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 GCE [Slow] [Feature:kubemci] should support https-only annotation": "should support https-only annotation [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 GCE [Slow] [Feature:kubemci] single and multi-cluster ingresses should be able to exist together": "single and multi-cluster ingresses should be able to exist together [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 Scalability GCE [Slow] [Serial] [Feature:IngressScale] Creating and updating ingresses should happen promptly with small/medium/large amount of ingresses": "Creating and updating ingresses should happen promptly with small/medium/large amount of ingresses [Suite:k8s]", - - "[Top Level] [sig-network] Loadbalancing: L7 [Slow] Nginx should conform to Ingress spec": "should conform to Ingress spec [Suite:k8s]", - - "[Top Level] [sig-network] Network should resolve connection reset issue #74839 [Slow]": "should resolve connection reset issue #74839 [Slow] [Suite:k8s]", - - "[Top Level] [sig-network] Network should set TCP CLOSE_WAIT timeout [Privileged]": "should set TCP CLOSE_WAIT timeout [Privileged] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should allow egress access on one named port [Feature:NetworkPolicy]": "should allow egress access on one named port [Feature:NetworkPolicy] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should allow egress access to server in CIDR block [Feature:NetworkPolicy]": "should allow egress access to server in CIDR block [Feature:NetworkPolicy] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should allow ingress access from namespace on one named port [Feature:NetworkPolicy]": "should allow ingress access from namespace on one named port [Feature:NetworkPolicy] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should allow ingress access from updated namespace [Feature:NetworkPolicy]": "should allow ingress access from updated namespace [Feature:NetworkPolicy] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should allow ingress access from updated pod [Feature:NetworkPolicy]": "should allow ingress access from updated pod [Feature:NetworkPolicy] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should allow ingress access on one named port [Feature:NetworkPolicy]": "should allow ingress access on one named port [Feature:NetworkPolicy] [Disabled:Broken] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should deny ingress access to updated pod [Feature:NetworkPolicy]": "should deny ingress access to updated pod [Feature:NetworkPolicy] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should enforce egress policy allowing traffic to a server in a different namespace based on PodSelector and NamespaceSelector [Feature:NetworkPolicy]": "should enforce egress policy allowing traffic to a server in a different namespace based on PodSelector and NamespaceSelector [Feature:NetworkPolicy] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should enforce except clause while egress access to server in CIDR block [Feature:NetworkPolicy]": "should enforce except clause while egress access to server in CIDR block [Feature:NetworkPolicy] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should enforce multiple egress policies with egress allow-all policy taking precedence [Feature:NetworkPolicy]": "should enforce multiple egress policies with egress allow-all policy taking precedence [Feature:NetworkPolicy] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should enforce multiple ingress policies with ingress allow-all policy taking precedence [Feature:NetworkPolicy]": "should enforce multiple ingress policies with ingress allow-all policy taking precedence [Feature:NetworkPolicy] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should enforce multiple, stacked policies with overlapping podSelectors [Feature:NetworkPolicy]": "should enforce multiple, stacked policies with overlapping podSelectors [Feature:NetworkPolicy] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should enforce policies to check ingress and egress policies can be controlled independently based on PodSelector [Feature:NetworkPolicy]": "should enforce policies to check ingress and egress policies can be controlled independently based on PodSelector [Feature:NetworkPolicy] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should enforce policy based on NamespaceSelector with MatchExpressions[Feature:NetworkPolicy]": "should enforce policy based on NamespaceSelector with MatchExpressions[Feature:NetworkPolicy] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should enforce policy based on PodSelector and NamespaceSelector [Feature:NetworkPolicy]": "should enforce policy based on PodSelector and NamespaceSelector [Feature:NetworkPolicy] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should enforce policy based on PodSelector or NamespaceSelector [Feature:NetworkPolicy]": "should enforce policy based on PodSelector or NamespaceSelector [Feature:NetworkPolicy] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should enforce policy based on PodSelector with MatchExpressions[Feature:NetworkPolicy]": "should enforce policy based on PodSelector with MatchExpressions[Feature:NetworkPolicy] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should enforce policy based on Ports [Feature:NetworkPolicy]": "should enforce policy based on Ports [Feature:NetworkPolicy] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should enforce policy to allow traffic from pods within server namespace based on PodSelector [Feature:NetworkPolicy]": "should enforce policy to allow traffic from pods within server namespace based on PodSelector [Feature:NetworkPolicy] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should enforce policy to allow traffic only from a different namespace, based on NamespaceSelector [Feature:NetworkPolicy]": "should enforce policy to allow traffic only from a different namespace, based on NamespaceSelector [Feature:NetworkPolicy] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should enforce policy to allow traffic only from a pod in a different namespace based on PodSelector and NamespaceSelector [Feature:NetworkPolicy]": "should enforce policy to allow traffic only from a pod in a different namespace based on PodSelector and NamespaceSelector [Feature:NetworkPolicy] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should enforce updated policy [Feature:NetworkPolicy]": "should enforce updated policy [Feature:NetworkPolicy] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should ensure an IP overlapping both IPBlock.CIDR and IPBlock.Except is allowed [Feature:NetworkPolicy]": "should ensure an IP overlapping both IPBlock.CIDR and IPBlock.Except is allowed [Feature:NetworkPolicy] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should not allow access by TCP when a policy specifies only SCTP [Feature:NetworkPolicy] [Feature:SCTP]": "should not allow access by TCP when a policy specifies only SCTP [Feature:NetworkPolicy] [Feature:SCTP] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should stop enforcing policies after they are deleted [Feature:NetworkPolicy]": "should stop enforcing policies after they are deleted [Feature:NetworkPolicy] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should support a 'default-deny-all' policy [Feature:NetworkPolicy]": "should support a 'default-deny-all' policy [Feature:NetworkPolicy] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should support a 'default-deny-ingress' policy [Feature:NetworkPolicy]": "should support a 'default-deny-ingress' policy [Feature:NetworkPolicy] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should support allow-all policy [Feature:NetworkPolicy]": "should support allow-all policy [Feature:NetworkPolicy] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] NetworkPolicy [LinuxOnly] NetworkPolicy between server and client should work with Ingress,Egress specified together [Feature:NetworkPolicy]": "should work with Ingress,Egress specified together [Feature:NetworkPolicy] [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance]": "should function for intra-pod communication: http [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance]": "should function for intra-pod communication: udp [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Pods should function for node-pod communication: http [LinuxOnly] [NodeConformance] [Conformance]": "should function for node-pod communication: http [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Pods should function for node-pod communication: udp [LinuxOnly] [NodeConformance] [Conformance]": "should function for node-pod communication: udp [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Services should be able to handle large requests: http": "should be able to handle large requests: http [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Services should be able to handle large requests: udp": "should be able to handle large requests: udp [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Services should function for client IP based session affinity: http [LinuxOnly]": "should function for client IP based session affinity: http [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Services should function for client IP based session affinity: udp [LinuxOnly]": "should function for client IP based session affinity: udp [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Services should function for endpoint-Service: http": "should function for endpoint-Service: http [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Services should function for endpoint-Service: udp": "should function for endpoint-Service: udp [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Services should function for node-Service: http": "should function for node-Service: http [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Services should function for node-Service: udp": "should function for node-Service: udp [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Services should function for pod-Service: http": "should function for pod-Service: http [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Services should function for pod-Service: sctp [Feature:SCTPConnectivity]": "should function for pod-Service: sctp [Feature:SCTPConnectivity] [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Services should function for pod-Service: udp": "should function for pod-Service: udp [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Services should update endpoints: http": "should update endpoints: http [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Services should update endpoints: udp": "should update endpoints: udp [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Services should update nodePort: http [Slow]": "should update nodePort: http [Slow] [Suite:k8s]", - - "[Top Level] [sig-network] Networking Granular Checks: Services should update nodePort: udp [Slow]": "should update nodePort: udp [Slow] [Suite:k8s]", - - "[Top Level] [sig-network] Networking IPerf IPv4 [Experimental] [Feature:Networking-IPv4] [Slow] [Feature:Networking-Performance] should transfer ~ 1GB onto the service endpoint 1 servers (maximum of 1 clients)": "should transfer ~ 1GB onto the service endpoint 1 servers (maximum of 1 clients) [Suite:k8s]", - - "[Top Level] [sig-network] Networking IPerf IPv6 [Experimental] [Feature:Networking-IPv6] [Slow] [Feature:Networking-Performance] [LinuxOnly] should transfer ~ 1GB onto the service endpoint 1 servers (maximum of 1 clients)": "should transfer ~ 1GB onto the service endpoint 1 servers (maximum of 1 clients) [Disabled:Unimplemented] [Suite:k8s]", - - "[Top Level] [sig-network] Networking should check kube-proxy urls": "should check kube-proxy urls [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-network] Networking should function for pod-pod: sctp [Feature:SCTPConnectivity]": "should function for pod-pod: sctp [Feature:SCTPConnectivity] [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [sig-network] Networking should provide Internet connection for containers [Feature:Networking-IPv4]": "should provide Internet connection for containers [Feature:Networking-IPv4] [Skipped:azure] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Networking should provide Internet connection for containers [Feature:Networking-IPv6][Experimental][LinuxOnly]": "should provide Internet connection for containers [Feature:Networking-IPv6][Experimental][LinuxOnly] [Disabled:Unimplemented] [Skipped:azure] [Suite:k8s]", - - "[Top Level] [sig-network] Networking should provide unchanging, static URL paths for kubernetes api services": "should provide unchanging, static URL paths for kubernetes api services [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-network] Networking should recreate its iptables rules if they are deleted [Disruptive]": "should recreate its iptables rules if they are deleted [Disruptive] [Serial] [Suite:k8s]", - - "[Top Level] [sig-network] NoSNAT [Feature:NoSNAT] [Slow] Should be able to send traffic between Pods without SNAT": "Should be able to send traffic between Pods without SNAT [Suite:k8s]", - - "[Top Level] [sig-network] Proxy version v1 should proxy logs on node using proxy subresource ": "should proxy logs on node using proxy subresource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Proxy version v1 should proxy logs on node with explicit kubelet port using proxy subresource ": "should proxy logs on node with explicit kubelet port using proxy subresource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Proxy version v1 should proxy through a service and a pod [Conformance]": "should proxy through a service and a pod [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] SCTP [Feature:SCTP] [LinuxOnly] should allow creating a basic SCTP service with pod and endpoints": "should allow creating a basic SCTP service with pod and endpoints [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] SCTP [Feature:SCTP] [LinuxOnly] should create a ClusterIP Service with SCTP ports": "should create a ClusterIP Service with SCTP ports [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] SCTP [Feature:SCTP] [LinuxOnly] should create a Pod with SCTP HostPort": "should create a Pod with SCTP HostPort [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Service endpoints latency should not be very high [Conformance]": "should not be very high [Conformance] [Serial] [Suite:openshift/conformance/serial/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Services [Slow] should be able to create and tear down a standard-tier load balancer [Slow]": "should be able to create and tear down a standard-tier load balancer [Slow] [Suite:k8s]", - - "[Top Level] [sig-network] Services should allow pods to hairpin back to themselves through services": "should allow pods to hairpin back to themselves through services [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Services should be able to change the type and ports of a service [Slow] [DisabledForLargeClusters]": "should be able to change the type and ports of a service [Slow] [DisabledForLargeClusters] [Suite:k8s]", - - "[Top Level] [sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance]": "should be able to change the type from ClusterIP to ExternalName [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Services should be able to change the type from ExternalName to ClusterIP [Conformance]": "should be able to change the type from ExternalName to ClusterIP [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Services should be able to change the type from ExternalName to NodePort [Conformance]": "should be able to change the type from ExternalName to NodePort [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance]": "should be able to change the type from NodePort to ExternalName [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Services should be able to create a functioning NodePort service [Conformance]": "should be able to create a functioning NodePort service [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Services should be able to create an internal type load balancer [Slow]": "should be able to create an internal type load balancer [Slow] [Suite:k8s]", - - "[Top Level] [sig-network] Services should be able to switch session affinity for LoadBalancer service with ESIPP off [Slow] [DisabledForLargeClusters] [LinuxOnly]": "should be able to switch session affinity for LoadBalancer service with ESIPP off [Slow] [DisabledForLargeClusters] [LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-network] Services should be able to switch session affinity for LoadBalancer service with ESIPP on [Slow] [DisabledForLargeClusters] [LinuxOnly]": "should be able to switch session affinity for LoadBalancer service with ESIPP on [Slow] [DisabledForLargeClusters] [LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-network] Services should be able to switch session affinity for NodePort service [LinuxOnly] [Conformance]": "should be able to switch session affinity for NodePort service [LinuxOnly] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Services should be able to switch session affinity for service with type clusterIP [LinuxOnly] [Conformance]": "should be able to switch session affinity for service with type clusterIP [LinuxOnly] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Services should be able to up and down services": "should be able to up and down services [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-network] Services should be able to update service type to NodePort listening on same port number but different protocols": "should be able to update service type to NodePort listening on same port number but different protocols [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Services should be rejected when no endpoints exist": "should be rejected when no endpoints exist [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Services should check NodePort out-of-range": "should check NodePort out-of-range [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Services should create endpoints for unready pods": "should create endpoints for unready pods [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Services should find a service from listing all namespaces [Conformance]": "should find a service from listing all namespaces [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Services should handle load balancer cleanup finalizer for service [Slow]": "should handle load balancer cleanup finalizer for service [Slow] [Suite:k8s]", - - "[Top Level] [sig-network] Services should have session affinity timeout work for NodePort service [LinuxOnly] [Conformance]": "should have session affinity timeout work for NodePort service [LinuxOnly] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Services should have session affinity timeout work for service with type clusterIP [LinuxOnly] [Conformance]": "should have session affinity timeout work for service with type clusterIP [LinuxOnly] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Services should have session affinity work for LoadBalancer service with ESIPP off [Slow] [DisabledForLargeClusters] [LinuxOnly]": "should have session affinity work for LoadBalancer service with ESIPP off [Slow] [DisabledForLargeClusters] [LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-network] Services should have session affinity work for LoadBalancer service with ESIPP on [Slow] [DisabledForLargeClusters] [LinuxOnly]": "should have session affinity work for LoadBalancer service with ESIPP on [Slow] [DisabledForLargeClusters] [LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-network] Services should have session affinity work for NodePort service [LinuxOnly] [Conformance]": "should have session affinity work for NodePort service [LinuxOnly] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Services should have session affinity work for service with type clusterIP [LinuxOnly] [Conformance]": "should have session affinity work for service with type clusterIP [LinuxOnly] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Services should implement service.kubernetes.io/headless": "should implement service.kubernetes.io/headless [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-network] Services should implement service.kubernetes.io/service-proxy-name": "should implement service.kubernetes.io/service-proxy-name [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-network] Services should only allow access from service loadbalancer source ranges [Slow]": "should only allow access from service loadbalancer source ranges [Slow] [Suite:k8s]", - - "[Top Level] [sig-network] Services should preserve source pod IP for traffic thru service cluster IP [LinuxOnly]": "should preserve source pod IP for traffic thru service cluster IP [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Services should prevent NodePort collisions": "should prevent NodePort collisions [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Services should provide secure master service [Conformance]": "should provide secure master service [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Services should reconcile LB health check interval [Slow][Serial]": "should reconcile LB health check interval [Slow][Serial] [Suite:k8s]", - - "[Top Level] [sig-network] Services should release NodePorts on delete": "should release NodePorts on delete [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-network] Services should serve a basic endpoint from pods [Conformance]": "should serve a basic endpoint from pods [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Services should serve multiport endpoints from pods [Conformance]": "should serve multiport endpoints from pods [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Services should test the lifecycle of an Endpoint [Conformance]": "should test the lifecycle of an Endpoint [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-network] Services should work after restarting apiserver [Disruptive]": "should work after restarting apiserver [Disruptive] [Serial] [Suite:k8s]", - - "[Top Level] [sig-network] Services should work after restarting kube-proxy [Disruptive]": "should work after restarting kube-proxy [Disruptive] [Serial] [Suite:k8s]", - - "[Top Level] [sig-network] [Feature:IPv6DualStackAlphaFeature] [LinuxOnly] should be able to reach pod on ipv4 and ipv6 ip [Feature:IPv6DualStackAlphaFeature:Phase2]": "should be able to reach pod on ipv4 and ipv6 ip [Feature:IPv6DualStackAlphaFeature:Phase2] [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [sig-network] [Feature:IPv6DualStackAlphaFeature] [LinuxOnly] should create pod, add ipv6 and ipv4 ip to pod ips": "should create pod, add ipv6 and ipv4 ip to pod ips [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [sig-network] [Feature:IPv6DualStackAlphaFeature] [LinuxOnly] should create service with cluster ip from primary service range [Feature:IPv6DualStackAlphaFeature:Phase2]": "should create service with cluster ip from primary service range [Feature:IPv6DualStackAlphaFeature:Phase2] [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [sig-network] [Feature:IPv6DualStackAlphaFeature] [LinuxOnly] should create service with ipv4 cluster ip [Feature:IPv6DualStackAlphaFeature:Phase2]": "should create service with ipv4 cluster ip [Feature:IPv6DualStackAlphaFeature:Phase2] [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [sig-network] [Feature:IPv6DualStackAlphaFeature] [LinuxOnly] should create service with ipv6 cluster ip [Feature:IPv6DualStackAlphaFeature:Phase2]": "should create service with ipv6 cluster ip [Feature:IPv6DualStackAlphaFeature:Phase2] [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [sig-network] [Feature:IPv6DualStackAlphaFeature] [LinuxOnly] should have ipv4 and ipv6 internal node ip": "should have ipv4 and ipv6 internal node ip [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [sig-network] [Feature:IPv6DualStackAlphaFeature] [LinuxOnly] should have ipv4 and ipv6 node podCIDRs": "should have ipv4 and ipv6 node podCIDRs [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [sig-network] [Feature:PerformanceDNS][Serial] Should answer DNS query for maximum number of services per cluster": "Should answer DNS query for maximum number of services per cluster [Slow] [Suite:k8s]", - - "[Top Level] [sig-node] ConfigMap should be consumable via environment variable [NodeConformance] [Conformance]": "should be consumable via environment variable [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-node] ConfigMap should be consumable via the environment [NodeConformance] [Conformance]": "should be consumable via the environment [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-node] ConfigMap should fail to create ConfigMap with empty key [Conformance]": "should fail to create ConfigMap with empty key [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-node] ConfigMap should run through a ConfigMap lifecycle [Conformance]": "should run through a ConfigMap lifecycle [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-node] ConfigMap should update ConfigMap successfully": "should update ConfigMap successfully [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-node] Downward API should provide container's limits.cpu/memory and requests.cpu/memory as env vars [NodeConformance] [Conformance]": "should provide container's limits.cpu/memory and requests.cpu/memory as env vars [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-node] Downward API should provide default limits.cpu/memory from node allocatable [NodeConformance] [Conformance]": "should provide default limits.cpu/memory from node allocatable [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-node] Downward API should provide host IP and pod IP as an env var if pod uses host network [LinuxOnly]": "should provide host IP and pod IP as an env var if pod uses host network [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-node] Downward API should provide host IP as an env var [NodeConformance] [Conformance]": "should provide host IP as an env var [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-node] Downward API should provide pod UID as env vars [NodeConformance] [Conformance]": "should provide pod UID as env vars [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-node] Downward API should provide pod name, namespace and IP address as env vars [NodeConformance] [Conformance]": "should provide pod name, namespace and IP address as env vars [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-node] PodTemplates should delete a collection of pod templates [Conformance]": "should delete a collection of pod templates [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-node] PodTemplates should run the lifecycle of PodTemplates [Conformance]": "should run the lifecycle of PodTemplates [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-node] RuntimeClass should reject a Pod requesting a RuntimeClass with an unconfigured handler": "should reject a Pod requesting a RuntimeClass with an unconfigured handler [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-node] RuntimeClass should reject a Pod requesting a RuntimeClass with conflicting node selector": "should reject a Pod requesting a RuntimeClass with conflicting node selector [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-node] RuntimeClass should reject a Pod requesting a deleted RuntimeClass": "should reject a Pod requesting a deleted RuntimeClass [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-node] RuntimeClass should reject a Pod requesting a non-existent RuntimeClass": "should reject a Pod requesting a non-existent RuntimeClass [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-node] RuntimeClass should run a Pod requesting a RuntimeClass with a configured handler [NodeFeature:RuntimeHandler]": "should run a Pod requesting a RuntimeClass with a configured handler [NodeFeature:RuntimeHandler] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-node] RuntimeClass should run a Pod requesting a RuntimeClass with scheduling [NodeFeature:RuntimeHandler] [Disruptive] ": "should run a Pod requesting a RuntimeClass with scheduling [NodeFeature:RuntimeHandler] [Disruptive] [Disabled:Broken] [Serial] [Suite:k8s]", - - "[Top Level] [sig-scheduling] GPUDevicePluginAcrossRecreate [Feature:Recreate] run Nvidia GPU Device Plugin tests with a recreation": "run Nvidia GPU Device Plugin tests with a recreation [Disabled:SpecialConfig] [Suite:k8s]", - - "[Top Level] [sig-scheduling] LimitRange should create a LimitRange with defaults and ensure pod has those defaults applied. [Conformance]": "should create a LimitRange with defaults and ensure pod has those defaults applied. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-scheduling] Multi-AZ Cluster Volumes [sig-storage] should only be allowed to provision PDs in zones where nodes exist": "should only be allowed to provision PDs in zones where nodes exist [Skipped:gce] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-scheduling] Multi-AZ Cluster Volumes [sig-storage] should schedule pods in the same zones as statically provisioned PVs": "should schedule pods in the same zones as statically provisioned PVs [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-scheduling] Multi-AZ Clusters should spread the pods of a replication controller across zones": "should spread the pods of a replication controller across zones [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-scheduling] Multi-AZ Clusters should spread the pods of a service across zones": "should spread the pods of a service across zones [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPredicates [Serial] PodTopologySpread Filtering validates 4 pods with MaxSkew=1 are evenly distributed into 2 nodes": "validates 4 pods with MaxSkew=1 are evenly distributed into 2 nodes [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPredicates [Serial] validates local ephemeral storage resource limits of pods that are allowed to run [Feature:LocalStorageCapacityIsolation]": "validates local ephemeral storage resource limits of pods that are allowed to run [Feature:LocalStorageCapacityIsolation] [Disabled:SpecialConfig] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPredicates [Serial] validates pod overhead is considered along with resource limits of pods that are allowed to run verify pod overhead is accounted for": "verify pod overhead is accounted for [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPredicates [Serial] validates resource limits of pods that are allowed to run [Conformance]": "validates resource limits of pods that are allowed to run [Conformance] [Suite:openshift/conformance/serial/minimal] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPredicates [Serial] validates that NodeAffinity is respected if not matching": "validates that NodeAffinity is respected if not matching [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPredicates [Serial] validates that NodeSelector is respected if matching [Conformance]": "validates that NodeSelector is respected if matching [Conformance] [Suite:openshift/conformance/serial/minimal] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPredicates [Serial] validates that NodeSelector is respected if not matching [Conformance]": "validates that NodeSelector is respected if not matching [Conformance] [Suite:openshift/conformance/serial/minimal] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPredicates [Serial] validates that required NodeAffinity setting is respected if matching": "validates that required NodeAffinity setting is respected if matching [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPredicates [Serial] validates that taints-tolerations is respected if matching": "validates that taints-tolerations is respected if matching [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPredicates [Serial] validates that taints-tolerations is respected if not matching": "validates that taints-tolerations is respected if not matching [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPredicates [Serial] validates that there exists conflict between pods with same hostPort and protocol but one using 0.0.0.0 hostIP [Conformance]": "validates that there exists conflict between pods with same hostPort and protocol but one using 0.0.0.0 hostIP [Conformance] [Slow] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPredicates [Serial] validates that there is no conflict between pods with same hostPort but different hostIP and protocol [Conformance]": "validates that there is no conflict between pods with same hostPort but different hostIP and protocol [Conformance] [Suite:openshift/conformance/serial/minimal] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPreemption [Serial] PodTopologySpread Preemption validates proper pods are preempted": "validates proper pods are preempted [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPreemption [Serial] PreemptionExecutionPath runs ReplicaSets to verify preemption running path [Conformance]": "runs ReplicaSets to verify preemption running path [Conformance] [Suite:openshift/conformance/serial/minimal] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPreemption [Serial] validates basic preemption works [Conformance]": "validates basic preemption works [Conformance] [Suite:openshift/conformance/serial/minimal] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPreemption [Serial] validates lower priority pod preemption by critical pod [Conformance]": "validates lower priority pod preemption by critical pod [Conformance] [Suite:openshift/conformance/serial/minimal] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPriorities [Serial] Pod should avoid nodes that have avoidPod annotation": "Pod should avoid nodes that have avoidPod annotation [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPriorities [Serial] Pod should be preferably scheduled to nodes pod can tolerate": "Pod should be preferably scheduled to nodes pod can tolerate [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPriorities [Serial] Pod should be scheduled to node that don't match the PodAntiAffinity terms": "Pod should be scheduled to node that don't match the PodAntiAffinity terms [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-scheduling] SchedulerPriorities [Serial] PodTopologySpread Scoring validates pod should be preferably scheduled to node which makes the matching pods more evenly distributed": "validates pod should be preferably scheduled to node which makes the matching pods more evenly distributed [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-scheduling] [Feature:GPUDevicePlugin] run Nvidia GPU Device Plugin tests": "run Nvidia GPU Device Plugin tests [Disabled:SpecialConfig] [Suite:k8s]", - - "[Top Level] [sig-service-catalog] [Feature:PodPreset] PodPreset should create a pod preset": "should create a pod preset [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-service-catalog] [Feature:PodPreset] PodPreset should not modify the pod on conflict": "should not modify the pod on conflict [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: CSI Ephemeral-volume (default fs)] ephemeral should create read-only inline ephemeral volume": "should create read-only inline ephemeral volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: CSI Ephemeral-volume (default fs)] ephemeral should create read/write inline ephemeral volume": "should create read/write inline ephemeral volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: CSI Ephemeral-volume (default fs)] ephemeral should support multiple inline ephemeral volumes": "should support multiple inline ephemeral volumes [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: CSI Ephemeral-volume (default fs)] ephemeral should support two pods which share the same volume": "should support two pods which share the same volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic Snapshot (delete policy)] snapshottable[Feature:VolumeSnapshotDataSource] volume snapshot controller should create snapshot objects correctly": "should create snapshot objects correctly [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic Snapshot (delete policy)] snapshottable[Feature:VolumeSnapshotDataSource] volume snapshot controller should delete the VolumeSnapshotContent according to its deletion policy": "should delete the VolumeSnapshotContent according to its deletion policy [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic Snapshot (delete policy)] snapshottable[Feature:VolumeSnapshotDataSource] volume snapshot controller should restore from snapshot with saved data after modifying source data": "should restore from snapshot with saved data after modifying source data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic Snapshot (retain policy)] snapshottable[Feature:VolumeSnapshotDataSource] volume snapshot controller should create snapshot objects correctly": "should create snapshot objects correctly [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic Snapshot (retain policy)] snapshottable[Feature:VolumeSnapshotDataSource] volume snapshot controller should delete the VolumeSnapshotContent according to its deletion policy": "should delete the VolumeSnapshotContent according to its deletion policy [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic Snapshot (retain policy)] snapshottable[Feature:VolumeSnapshotDataSource] volume snapshot controller should restore from snapshot with saved data after modifying source data": "should restore from snapshot with saved data after modifying source data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Generic Ephemeral-volume (default fs) [Feature:GenericEphemeralVolume] (immediate-binding)] ephemeral should create read-only inline ephemeral volume": "should create read-only inline ephemeral volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Generic Ephemeral-volume (default fs) [Feature:GenericEphemeralVolume] (immediate-binding)] ephemeral should create read/write inline ephemeral volume": "should create read/write inline ephemeral volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Generic Ephemeral-volume (default fs) [Feature:GenericEphemeralVolume] (immediate-binding)] ephemeral should support multiple inline ephemeral volumes": "should support multiple inline ephemeral volumes [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Generic Ephemeral-volume (default fs) [Feature:GenericEphemeralVolume] (immediate-binding)] ephemeral should support two pods which share the same volume": "should support two pods which share the same volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Generic Ephemeral-volume (default fs) [Feature:GenericEphemeralVolume] (late-binding)] ephemeral should create read-only inline ephemeral volume": "should create read-only inline ephemeral volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Generic Ephemeral-volume (default fs) [Feature:GenericEphemeralVolume] (late-binding)] ephemeral should create read/write inline ephemeral volume": "should create read/write inline ephemeral volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Generic Ephemeral-volume (default fs) [Feature:GenericEphemeralVolume] (late-binding)] ephemeral should support multiple inline ephemeral volumes": "should support multiple inline ephemeral volumes [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Generic Ephemeral-volume (default fs) [Feature:GenericEphemeralVolume] (late-binding)] ephemeral should support two pods which share the same volume": "should support two pods which share the same volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: CSI Ephemeral-volume (default fs)] ephemeral should create read-only inline ephemeral volume": "should create read-only inline ephemeral volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: CSI Ephemeral-volume (default fs)] ephemeral should create read/write inline ephemeral volume": "should create read/write inline ephemeral volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: CSI Ephemeral-volume (default fs)] ephemeral should support multiple inline ephemeral volumes": "should support multiple inline ephemeral volumes [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: CSI Ephemeral-volume (default fs)] ephemeral should support two pods which share the same volume": "should support two pods which share the same volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic Snapshot (delete policy)] snapshottable[Feature:VolumeSnapshotDataSource] volume snapshot controller should create snapshot objects correctly": "should create snapshot objects correctly [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic Snapshot (delete policy)] snapshottable[Feature:VolumeSnapshotDataSource] volume snapshot controller should delete the VolumeSnapshotContent according to its deletion policy": "should delete the VolumeSnapshotContent according to its deletion policy [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic Snapshot (delete policy)] snapshottable[Feature:VolumeSnapshotDataSource] volume snapshot controller should restore from snapshot with saved data after modifying source data": "should restore from snapshot with saved data after modifying source data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic Snapshot (retain policy)] snapshottable[Feature:VolumeSnapshotDataSource] volume snapshot controller should create snapshot objects correctly": "should create snapshot objects correctly [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic Snapshot (retain policy)] snapshottable[Feature:VolumeSnapshotDataSource] volume snapshot controller should delete the VolumeSnapshotContent according to its deletion policy": "should delete the VolumeSnapshotContent according to its deletion policy [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic Snapshot (retain policy)] snapshottable[Feature:VolumeSnapshotDataSource] volume snapshot controller should restore from snapshot with saved data after modifying source data": "should restore from snapshot with saved data after modifying source data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Generic Ephemeral-volume (default fs) [Feature:GenericEphemeralVolume] (immediate-binding)] ephemeral should create read-only inline ephemeral volume": "should create read-only inline ephemeral volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Generic Ephemeral-volume (default fs) [Feature:GenericEphemeralVolume] (immediate-binding)] ephemeral should create read/write inline ephemeral volume": "should create read/write inline ephemeral volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Generic Ephemeral-volume (default fs) [Feature:GenericEphemeralVolume] (immediate-binding)] ephemeral should support multiple inline ephemeral volumes": "should support multiple inline ephemeral volumes [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Generic Ephemeral-volume (default fs) [Feature:GenericEphemeralVolume] (immediate-binding)] ephemeral should support two pods which share the same volume": "should support two pods which share the same volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Generic Ephemeral-volume (default fs) [Feature:GenericEphemeralVolume] (late-binding)] ephemeral should create read-only inline ephemeral volume": "should create read-only inline ephemeral volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Generic Ephemeral-volume (default fs) [Feature:GenericEphemeralVolume] (late-binding)] ephemeral should create read/write inline ephemeral volume": "should create read/write inline ephemeral volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Generic Ephemeral-volume (default fs) [Feature:GenericEphemeralVolume] (late-binding)] ephemeral should support multiple inline ephemeral volumes": "should support multiple inline ephemeral volumes [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Generic Ephemeral-volume (default fs) [Feature:GenericEphemeralVolume] (late-binding)] ephemeral should support two pods which share the same volume": "should support two pods which share the same volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI NodeStage error cases [Slow] should call NodeUnstage after NodeStage ephemeral error": "should call NodeUnstage after NodeStage ephemeral error [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI NodeStage error cases [Slow] should call NodeUnstage after NodeStage success": "should call NodeUnstage after NodeStage success [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI NodeStage error cases [Slow] should not call NodeUnstage after NodeStage final error": "should not call NodeUnstage after NodeStage final error [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI NodeStage error cases [Slow] should retry NodeStage after NodeStage ephemeral error": "should retry NodeStage after NodeStage ephemeral error [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI NodeStage error cases [Slow] should retry NodeStage after NodeStage final error": "should retry NodeStage after NodeStage final error [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=off, nodeExpansion=on": "should expand volume by restarting pod if attach=off, nodeExpansion=on [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=on, nodeExpansion=on": "should expand volume by restarting pod if attach=on, nodeExpansion=on [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI Volume expansion should expand volume without restarting pod if nodeExpansion=off": "should expand volume without restarting pod if nodeExpansion=off [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI Volume expansion should not expand volume if resizingOnDriver=off, resizingOnSC=on": "should not expand volume if resizingOnDriver=off, resizingOnSC=on [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI attach test using mock driver should not require VolumeAttach for drivers without attachment": "should not require VolumeAttach for drivers without attachment [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI attach test using mock driver should preserve attachment policy when no CSIDriver present": "should preserve attachment policy when no CSIDriver present [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI attach test using mock driver should require VolumeAttach for drivers with attachment": "should require VolumeAttach for drivers with attachment [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI online volume expansion should expand volume without restarting pod if attach=off, nodeExpansion=on": "should expand volume without restarting pod if attach=off, nodeExpansion=on [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI online volume expansion should expand volume without restarting pod if attach=on, nodeExpansion=on": "should expand volume without restarting pod if attach=on, nodeExpansion=on [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI volume limit information using mock driver should report attach limit when limit is bigger than 0 [Slow]": "should report attach limit when limit is bigger than 0 [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI workload information using mock driver contain ephemeral=true when using inline volume": "contain ephemeral=true when using inline volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI workload information using mock driver should be passed when podInfoOnMount=true": "should be passed when podInfoOnMount=true [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI workload information using mock driver should not be passed when CSIDriver does not exist": "should not be passed when CSIDriver does not exist [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI workload information using mock driver should not be passed when podInfoOnMount=false": "should not be passed when podInfoOnMount=false [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSI workload information using mock driver should not be passed when podInfoOnMount=nil": "should not be passed when podInfoOnMount=nil [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSIStorageCapacity [Feature:CSIStorageCapacity] CSIStorageCapacity disabled": "CSIStorageCapacity disabled [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSIStorageCapacity [Feature:CSIStorageCapacity] CSIStorageCapacity unused": "CSIStorageCapacity unused [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSIStorageCapacity [Feature:CSIStorageCapacity] CSIStorageCapacity used, have capacity": "CSIStorageCapacity used, have capacity [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSIStorageCapacity [Feature:CSIStorageCapacity] CSIStorageCapacity used, insufficient capacity": "CSIStorageCapacity used, insufficient capacity [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume CSIStorageCapacity [Feature:CSIStorageCapacity] CSIStorageCapacity used, no capacity": "CSIStorageCapacity used, no capacity [Disabled:Alpha] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume storage capacity exhausted, immediate binding": "exhausted, immediate binding [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume storage capacity exhausted, late binding, no topology": "exhausted, late binding, no topology [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume storage capacity exhausted, late binding, with topology": "exhausted, late binding, with topology [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] CSI mock volume storage capacity unlimited": "unlimited [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] ConfigMap Should fail non-optional pod creation due to configMap object does not exist [Slow]": "Should fail non-optional pod creation due to configMap object does not exist [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] ConfigMap Should fail non-optional pod creation due to the key in the configMap object does not exist [Slow]": "Should fail non-optional pod creation due to the key in the configMap object does not exist [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] ConfigMap binary data should be reflected in volume [NodeConformance] [Conformance]": "binary data should be reflected in volume [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] ConfigMap optional updates should be reflected in volume [NodeConformance] [Conformance]": "optional updates should be reflected in volume [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] ConfigMap should be consumable from pods in volume [NodeConformance] [Conformance]": "should be consumable from pods in volume [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] ConfigMap should be consumable from pods in volume as non-root [NodeConformance] [Conformance]": "should be consumable from pods in volume as non-root [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] ConfigMap should be consumable from pods in volume as non-root with FSGroup [LinuxOnly] [NodeFeature:FSGroup]": "should be consumable from pods in volume as non-root with FSGroup [LinuxOnly] [NodeFeature:FSGroup] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] ConfigMap should be consumable from pods in volume as non-root with defaultMode and fsGroup set [LinuxOnly] [NodeFeature:FSGroup]": "should be consumable from pods in volume as non-root with defaultMode and fsGroup set [LinuxOnly] [NodeFeature:FSGroup] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] ConfigMap should be consumable from pods in volume with defaultMode set [LinuxOnly] [NodeConformance] [Conformance]": "should be consumable from pods in volume with defaultMode set [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] ConfigMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance]": "should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] ConfigMap should be consumable from pods in volume with mappings and Item mode set [LinuxOnly] [NodeConformance] [Conformance]": "should be consumable from pods in volume with mappings and Item mode set [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] ConfigMap should be consumable from pods in volume with mappings as non-root [NodeConformance] [Conformance]": "should be consumable from pods in volume with mappings as non-root [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] ConfigMap should be consumable from pods in volume with mappings as non-root with FSGroup [LinuxOnly] [NodeFeature:FSGroup]": "should be consumable from pods in volume with mappings as non-root with FSGroup [LinuxOnly] [NodeFeature:FSGroup] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] ConfigMap should be consumable in multiple volumes in the same pod [NodeConformance] [Conformance]": "should be consumable in multiple volumes in the same pod [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] ConfigMap should be immutable if `immutable` field is set": "should be immutable if `immutable` field is set [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] ConfigMap updates should be reflected in volume [NodeConformance] [Conformance]": "updates should be reflected in volume [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Downward API volume should provide container's cpu limit [NodeConformance] [Conformance]": "should provide container's cpu limit [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Downward API volume should provide container's cpu request [NodeConformance] [Conformance]": "should provide container's cpu request [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Downward API volume should provide container's memory limit [NodeConformance] [Conformance]": "should provide container's memory limit [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Downward API volume should provide container's memory request [NodeConformance] [Conformance]": "should provide container's memory request [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Downward API volume should provide node allocatable (cpu) as default cpu limit if the limit is not set [NodeConformance] [Conformance]": "should provide node allocatable (cpu) as default cpu limit if the limit is not set [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Downward API volume should provide node allocatable (memory) as default memory limit if the limit is not set [NodeConformance] [Conformance]": "should provide node allocatable (memory) as default memory limit if the limit is not set [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Downward API volume should provide podname as non-root with fsgroup [LinuxOnly] [NodeFeature:FSGroup]": "should provide podname as non-root with fsgroup [LinuxOnly] [NodeFeature:FSGroup] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Downward API volume should provide podname as non-root with fsgroup and defaultMode [LinuxOnly] [NodeFeature:FSGroup]": "should provide podname as non-root with fsgroup and defaultMode [LinuxOnly] [NodeFeature:FSGroup] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Downward API volume should provide podname only [NodeConformance] [Conformance]": "should provide podname only [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Downward API volume should set DefaultMode on files [LinuxOnly] [NodeConformance] [Conformance]": "should set DefaultMode on files [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Downward API volume should set mode on item file [LinuxOnly] [NodeConformance] [Conformance]": "should set mode on item file [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Downward API volume should update annotations on modification [NodeConformance] [Conformance]": "should update annotations on modification [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Downward API volume should update labels on modification [NodeConformance] [Conformance]": "should update labels on modification [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Dynamic Provisioning DynamicProvisioner Default should be disabled by changing the default annotation [Serial] [Disruptive]": "should be disabled by changing the default annotation [Serial] [Disruptive] [Suite:k8s]", - - "[Top Level] [sig-storage] Dynamic Provisioning DynamicProvisioner Default should be disabled by removing the default annotation [Serial] [Disruptive]": "should be disabled by removing the default annotation [Serial] [Disruptive] [Suite:k8s]", - - "[Top Level] [sig-storage] Dynamic Provisioning DynamicProvisioner Default should create and delete default persistent volumes [Slow]": "should create and delete default persistent volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] Dynamic Provisioning DynamicProvisioner External should let an external dynamic provisioner create and delete persistent volumes [Slow]": "should let an external dynamic provisioner create and delete persistent volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] Dynamic Provisioning DynamicProvisioner [Slow] deletion should be idempotent": "deletion should be idempotent [Suite:k8s]", - - "[Top Level] [sig-storage] Dynamic Provisioning DynamicProvisioner [Slow] should not provision a volume in an unmanaged GCE zone.": "should not provision a volume in an unmanaged GCE zone. [Suite:k8s]", - - "[Top Level] [sig-storage] Dynamic Provisioning DynamicProvisioner [Slow] should provision storage with different parameters": "should provision storage with different parameters [Suite:k8s]", - - "[Top Level] [sig-storage] Dynamic Provisioning DynamicProvisioner [Slow] should provision storage with non-default reclaim policy Retain": "should provision storage with non-default reclaim policy Retain [Suite:k8s]", - - "[Top Level] [sig-storage] Dynamic Provisioning DynamicProvisioner [Slow] should test that deleting a claim before the volume is provisioned deletes the volume.": "should test that deleting a claim before the volume is provisioned deletes the volume. [Suite:k8s]", - - "[Top Level] [sig-storage] Dynamic Provisioning Invalid AWS KMS key should report an error and create no PV": "should report an error and create no PV [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Dynamic Provisioning [k8s.io] GlusterDynamicProvisioner should create and delete persistent volumes [fast]": "should create and delete persistent volumes [fast] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes pod should support shared volumes between containers [Conformance]": "pod should support shared volumes between containers [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes should support (non-root,0644,default) [LinuxOnly] [NodeConformance] [Conformance]": "should support (non-root,0644,default) [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes should support (non-root,0644,tmpfs) [LinuxOnly] [NodeConformance] [Conformance]": "should support (non-root,0644,tmpfs) [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes should support (non-root,0666,default) [LinuxOnly] [NodeConformance] [Conformance]": "should support (non-root,0666,default) [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes should support (non-root,0666,tmpfs) [LinuxOnly] [NodeConformance] [Conformance]": "should support (non-root,0666,tmpfs) [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes should support (non-root,0777,default) [LinuxOnly] [NodeConformance] [Conformance]": "should support (non-root,0777,default) [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes should support (non-root,0777,tmpfs) [LinuxOnly] [NodeConformance] [Conformance]": "should support (non-root,0777,tmpfs) [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes should support (root,0644,default) [LinuxOnly] [NodeConformance] [Conformance]": "should support (root,0644,default) [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes should support (root,0644,tmpfs) [LinuxOnly] [NodeConformance] [Conformance]": "should support (root,0644,tmpfs) [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes should support (root,0666,default) [LinuxOnly] [NodeConformance] [Conformance]": "should support (root,0666,default) [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes should support (root,0666,tmpfs) [LinuxOnly] [NodeConformance] [Conformance]": "should support (root,0666,tmpfs) [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes should support (root,0777,default) [LinuxOnly] [NodeConformance] [Conformance]": "should support (root,0777,default) [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes should support (root,0777,tmpfs) [LinuxOnly] [NodeConformance] [Conformance]": "should support (root,0777,tmpfs) [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes volume on default medium should have the correct mode [LinuxOnly] [NodeConformance] [Conformance]": "volume on default medium should have the correct mode [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes volume on tmpfs should have the correct mode [LinuxOnly] [NodeConformance] [Conformance]": "volume on tmpfs should have the correct mode [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes when FSGroup is specified [LinuxOnly] [NodeFeature:FSGroup] files with FSGroup ownership should support (root,0644,tmpfs)": "files with FSGroup ownership should support (root,0644,tmpfs) [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes when FSGroup is specified [LinuxOnly] [NodeFeature:FSGroup] new files should be created with FSGroup ownership when container is non-root": "new files should be created with FSGroup ownership when container is non-root [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes when FSGroup is specified [LinuxOnly] [NodeFeature:FSGroup] new files should be created with FSGroup ownership when container is root": "new files should be created with FSGroup ownership when container is root [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes when FSGroup is specified [LinuxOnly] [NodeFeature:FSGroup] nonexistent volume subPath should have the correct mode and owner using FSGroup": "nonexistent volume subPath should have the correct mode and owner using FSGroup [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes when FSGroup is specified [LinuxOnly] [NodeFeature:FSGroup] volume on default medium should have the correct mode using FSGroup": "volume on default medium should have the correct mode using FSGroup [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir volumes when FSGroup is specified [LinuxOnly] [NodeFeature:FSGroup] volume on tmpfs should have the correct mode using FSGroup": "volume on tmpfs should have the correct mode using FSGroup [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir wrapper volumes should not cause race condition when used for configmaps [Serial] [Conformance]": "should not cause race condition when used for configmaps [Serial] [Conformance] [Suite:openshift/conformance/serial/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir wrapper volumes should not cause race condition when used for git_repo [Serial] [Slow]": "should not cause race condition when used for git_repo [Serial] [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] EmptyDir wrapper volumes should not conflict [Conformance]": "should not conflict [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Ephemeralstorage When pod refers to non-existent ephemeral storage should allow deletion of pod with invalid volume : configmap": "should allow deletion of pod with invalid volume : configmap [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Ephemeralstorage When pod refers to non-existent ephemeral storage should allow deletion of pod with invalid volume : projected": "should allow deletion of pod with invalid volume : projected [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Ephemeralstorage When pod refers to non-existent ephemeral storage should allow deletion of pod with invalid volume : secret": "should allow deletion of pod with invalid volume : secret [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Flexvolumes should be mountable when attachable [Feature:Flexvolumes]": "should be mountable when attachable [Feature:Flexvolumes] [Skipped:gce] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Flexvolumes should be mountable when non-attachable": "should be mountable when non-attachable [Skipped:gce] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] GCP Volumes GlusterFS should be mountable": "should be mountable [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] GCP Volumes NFSv3 should be mountable for NFSv3": "should be mountable for NFSv3 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] GCP Volumes NFSv4 should be mountable for NFSv4": "should be mountable for NFSv4 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] GenericPersistentVolume[Disruptive] When kubelet restarts Should test that a file written to the mount before kubelet restart is readable after restart.": "Should test that a file written to the mount before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] GenericPersistentVolume[Disruptive] When kubelet restarts Should test that a volume mounted to a pod that is deleted while the kubelet is down unmounts when the kubelet returns.": "Should test that a volume mounted to a pod that is deleted while the kubelet is down unmounts when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] GenericPersistentVolume[Disruptive] When kubelet restarts Should test that a volume mounted to a pod that is force deleted while the kubelet is down unmounts when the kubelet returns.": "Should test that a volume mounted to a pod that is force deleted while the kubelet is down unmounts when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] HostPath should give a volume the correct mode [LinuxOnly] [NodeConformance]": "should give a volume the correct mode [LinuxOnly] [NodeConformance] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] HostPath should support r/w [NodeConformance]": "should support r/w [NodeConformance] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] HostPath should support subPath [NodeConformance]": "should support subPath [NodeConformance] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Block Device [Slow] Should be able to mount block device 'ablkdev' successfully when HostPathType is HostPathBlockDev": "Should be able to mount block device 'ablkdev' successfully when HostPathType is HostPathBlockDev [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Block Device [Slow] Should be able to mount block device 'ablkdev' successfully when HostPathType is HostPathUnset": "Should be able to mount block device 'ablkdev' successfully when HostPathType is HostPathUnset [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Block Device [Slow] Should fail on mounting block device 'ablkdev' when HostPathType is HostPathCharDev": "Should fail on mounting block device 'ablkdev' when HostPathType is HostPathCharDev [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Block Device [Slow] Should fail on mounting block device 'ablkdev' when HostPathType is HostPathDirectory": "Should fail on mounting block device 'ablkdev' when HostPathType is HostPathDirectory [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Block Device [Slow] Should fail on mounting block device 'ablkdev' when HostPathType is HostPathFile": "Should fail on mounting block device 'ablkdev' when HostPathType is HostPathFile [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Block Device [Slow] Should fail on mounting block device 'ablkdev' when HostPathType is HostPathSocket": "Should fail on mounting block device 'ablkdev' when HostPathType is HostPathSocket [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Block Device [Slow] Should fail on mounting non-existent block device 'does-not-exist-blk-dev' when HostPathType is HostPathBlockDev": "Should fail on mounting non-existent block device 'does-not-exist-blk-dev' when HostPathType is HostPathBlockDev [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Character Device [Slow] Should be able to mount character device 'achardev' successfully when HostPathType is HostPathCharDev": "Should be able to mount character device 'achardev' successfully when HostPathType is HostPathCharDev [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Character Device [Slow] Should be able to mount character device 'achardev' successfully when HostPathType is HostPathUnset": "Should be able to mount character device 'achardev' successfully when HostPathType is HostPathUnset [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Character Device [Slow] Should fail on mounting character device 'achardev' when HostPathType is HostPathBlockDev": "Should fail on mounting character device 'achardev' when HostPathType is HostPathBlockDev [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Character Device [Slow] Should fail on mounting character device 'achardev' when HostPathType is HostPathDirectory": "Should fail on mounting character device 'achardev' when HostPathType is HostPathDirectory [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Character Device [Slow] Should fail on mounting character device 'achardev' when HostPathType is HostPathFile": "Should fail on mounting character device 'achardev' when HostPathType is HostPathFile [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Character Device [Slow] Should fail on mounting character device 'achardev' when HostPathType is HostPathSocket": "Should fail on mounting character device 'achardev' when HostPathType is HostPathSocket [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Character Device [Slow] Should fail on mounting non-existent character device 'does-not-exist-char-dev' when HostPathType is HostPathCharDev": "Should fail on mounting non-existent character device 'does-not-exist-char-dev' when HostPathType is HostPathCharDev [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Directory [Slow] Should be able to mount directory 'adir' successfully when HostPathType is HostPathDirectory": "Should be able to mount directory 'adir' successfully when HostPathType is HostPathDirectory [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Directory [Slow] Should be able to mount directory 'adir' successfully when HostPathType is HostPathUnset": "Should be able to mount directory 'adir' successfully when HostPathType is HostPathUnset [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Directory [Slow] Should fail on mounting directory 'adir' when HostPathType is HostPathBlockDev": "Should fail on mounting directory 'adir' when HostPathType is HostPathBlockDev [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Directory [Slow] Should fail on mounting directory 'adir' when HostPathType is HostPathCharDev": "Should fail on mounting directory 'adir' when HostPathType is HostPathCharDev [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Directory [Slow] Should fail on mounting directory 'adir' when HostPathType is HostPathFile": "Should fail on mounting directory 'adir' when HostPathType is HostPathFile [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Directory [Slow] Should fail on mounting directory 'adir' when HostPathType is HostPathSocket": "Should fail on mounting directory 'adir' when HostPathType is HostPathSocket [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Directory [Slow] Should fail on mounting non-existent directory 'does-not-exist-dir' when HostPathType is HostPathDirectory": "Should fail on mounting non-existent directory 'does-not-exist-dir' when HostPathType is HostPathDirectory [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType File [Slow] Should be able to mount file 'afile' successfully when HostPathType is HostPathFile": "Should be able to mount file 'afile' successfully when HostPathType is HostPathFile [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType File [Slow] Should be able to mount file 'afile' successfully when HostPathType is HostPathUnset": "Should be able to mount file 'afile' successfully when HostPathType is HostPathUnset [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType File [Slow] Should fail on mounting file 'afile' when HostPathType is HostPathBlockDev": "Should fail on mounting file 'afile' when HostPathType is HostPathBlockDev [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType File [Slow] Should fail on mounting file 'afile' when HostPathType is HostPathCharDev": "Should fail on mounting file 'afile' when HostPathType is HostPathCharDev [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType File [Slow] Should fail on mounting file 'afile' when HostPathType is HostPathDirectory": "Should fail on mounting file 'afile' when HostPathType is HostPathDirectory [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType File [Slow] Should fail on mounting file 'afile' when HostPathType is HostPathSocket": "Should fail on mounting file 'afile' when HostPathType is HostPathSocket [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType File [Slow] Should fail on mounting non-existent file 'does-not-exist-file' when HostPathType is HostPathFile": "Should fail on mounting non-existent file 'does-not-exist-file' when HostPathType is HostPathFile [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Socket [Slow] Should be able to mount socket 'asocket' successfully when HostPathType is HostPathSocket": "Should be able to mount socket 'asocket' successfully when HostPathType is HostPathSocket [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Socket [Slow] Should be able to mount socket 'asocket' successfully when HostPathType is HostPathUnset": "Should be able to mount socket 'asocket' successfully when HostPathType is HostPathUnset [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Socket [Slow] Should fail on mounting non-existent socket 'does-not-exist-socket' when HostPathType is HostPathSocket": "Should fail on mounting non-existent socket 'does-not-exist-socket' when HostPathType is HostPathSocket [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Socket [Slow] Should fail on mounting socket 'asocket' when HostPathType is HostPathBlockDev": "Should fail on mounting socket 'asocket' when HostPathType is HostPathBlockDev [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Socket [Slow] Should fail on mounting socket 'asocket' when HostPathType is HostPathCharDev": "Should fail on mounting socket 'asocket' when HostPathType is HostPathCharDev [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Socket [Slow] Should fail on mounting socket 'asocket' when HostPathType is HostPathDirectory": "Should fail on mounting socket 'asocket' when HostPathType is HostPathDirectory [Suite:k8s]", - - "[Top Level] [sig-storage] HostPathType Socket [Slow] Should fail on mounting socket 'asocket' when HostPathType is HostPathFile": "Should fail on mounting socket 'asocket' when HostPathType is HostPathFile [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: aws] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: azure-disk] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail in binding dynamic provisioned PV to PVC [Slow]": "should fail in binding dynamic provisioned PV to PVC [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to create pod by failing to mount volume [Slow]": "should fail to create pod by failing to mount volume [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: ceph][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: cinder] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail in binding dynamic provisioned PV to PVC [Slow]": "should fail in binding dynamic provisioned PV to PVC [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to create pod by failing to mount volume [Slow]": "should fail to create pod by failing to mount volume [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail in binding dynamic provisioned PV to PVC [Slow]": "should fail in binding dynamic provisioned PV to PVC [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to create pod by failing to mount volume [Slow]": "should fail to create pod by failing to mount volume [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail in binding dynamic provisioned PV to PVC [Slow]": "should fail in binding dynamic provisioned PV to PVC [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to create pod by failing to mount volume [Slow]": "should fail to create pod by failing to mount volume [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail in binding dynamic provisioned PV to PVC [Slow]": "should fail in binding dynamic provisioned PV to PVC [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to create pod by failing to mount volume [Slow]": "should fail to create pod by failing to mount volume [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Disabled:Broken] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Disabled:Broken] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Disabled:Broken] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Broken] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Broken] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Disabled:Broken] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Broken] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Broken] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Broken] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Broken] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Disabled:Broken] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Disabled:Broken] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Disabled:Broken] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Broken] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Broken] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Disabled:Broken] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: iscsi][Feature:Volumes] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail in binding dynamic provisioned PV to PVC [Slow]": "should fail in binding dynamic provisioned PV to PVC [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to create pod by failing to mount volume [Slow]": "should fail to create pod by failing to mount volume [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail in binding dynamic provisioned PV to PVC [Slow]": "should fail in binding dynamic provisioned PV to PVC [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to create pod by failing to mount volume [Slow]": "should fail to create pod by failing to mount volume [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail in binding dynamic provisioned PV to PVC [Slow]": "should fail in binding dynamic provisioned PV to PVC [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to create pod by failing to mount volume [Slow]": "should fail to create pod by failing to mount volume [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail in binding dynamic provisioned PV to PVC [Slow]": "should fail in binding dynamic provisioned PV to PVC [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to create pod by failing to mount volume [Slow]": "should fail to create pod by failing to mount volume [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail in binding dynamic provisioned PV to PVC [Slow]": "should fail in binding dynamic provisioned PV to PVC [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to create pod by failing to mount volume [Slow]": "should fail to create pod by failing to mount volume [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail in binding dynamic provisioned PV to PVC [Slow]": "should fail in binding dynamic provisioned PV to PVC [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to create pod by failing to mount volume [Slow]": "should fail to create pod by failing to mount volume [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail in binding dynamic provisioned PV to PVC [Slow]": "should fail in binding dynamic provisioned PV to PVC [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to create pod by failing to mount volume [Slow]": "should fail to create pod by failing to mount volume [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail in binding dynamic provisioned PV to PVC [Slow]": "should fail in binding dynamic provisioned PV to PVC [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Disabled:Broken] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to create pod by failing to mount volume [Slow]": "should fail to create pod by failing to mount volume [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: rbd][Feature:Volumes][Serial] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Disabled:Unsupported] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail in binding dynamic provisioned PV to PVC [Slow]": "should fail in binding dynamic provisioned PV to PVC [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand Verify if offline PVC expansion works": "Verify if offline PVC expansion works [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)(allowExpansion)] volume-expand should resize volume when PVC is edited while pod is using it": "should resize volume when PVC is edited while pod is using it [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] stress multiple pods should access different volumes repeatedly [Slow] [Serial]": "multiple pods should access different volumes repeatedly [Slow] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] volume-expand should not allow expansion of pvcs without AllowVolumeExpansion property": "should not allow expansion of pvcs without AllowVolumeExpansion property [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (delayed binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (delayed binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits [Serial]": "should support volume limits [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (immediate binding)] topology should fail to schedule a pod which has topologies that conflict with AllowedTopologies": "should fail to schedule a pod which has topologies that conflict with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (immediate binding)] topology should provision a volume and schedule a pod with AllowedTopologies": "should provision a volume and schedule a pod with AllowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options": "should provision storage with mount options [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source in parallel [Slow]": "should provision storage with pvc data source in parallel [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with pvc data source": "should provision storage with pvc data source [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource]": "should provision storage with snapshot data source [Feature:VolumeSnapshotDataSource] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns.": "Should test that pv used in a pod that is force deleted while the kubelet is down cleans up when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (block volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (block volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to create pod by failing to mount volume [Slow]": "should fail to create pod by failing to mount volume [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (block volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (block volmode)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted": "should be able to unmount after the subpath directory is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if non-existent subpath is outside the volume [Slow][LinuxOnly]": "should fail if non-existent subpath is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly]": "should fail if subpath directory is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath file is outside the volume [Slow][LinuxOnly]": "should fail if subpath file is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly]": "should fail if subpath with backstepping is outside the volume [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should support creating multiple subpath from same volumes [Slow]": "should support creating multiple subpath from same volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource": "should support existing directories when readOnly specified in the volumeSource [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory": "should support existing directory [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly]": "should support existing single file [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly]": "should support file as subpath [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path": "should support non-existent path [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount": "should support readOnly directory specified in the volumeMount [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly]": "should support readOnly file specified in the volumeMount [LinuxOnly] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using directory as subpath [Slow]": "should support restarting containers using directory as subpath [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly]": "should support restarting containers using file as subpath [Slow][LinuxOnly] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is force deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly]": "should unmount if pod is gracefully deleted while kubelet is down [Disruptive][Slow][LinuxOnly] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow]": "should verify container cannot write to subpath readonly volumes [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow]": "should write files of various sizes, verify size, validate content [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (ext3)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (ext3)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (ext4)] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (filesystem volmode)] disruptive[Disruptive] Should test that pv written before kubelet restart is readable after restart.": "Should test that pv written before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node": "should access to two volumes with different volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on the same node": "should access to two volumes with different volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on different node": "should access to two volumes with the same volume mode and retain data across pod recreation on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node": "should access to two volumes with the same volume mode and retain data across pod recreation on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single read-only volume from pods on the same node": "should concurrently access the single read-only volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on different node": "should concurrently access the single volume from pods on different node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node": "should concurrently access the single volume from pods on the same node [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should fail to use a volume in a pod with mismatched mode [Slow]": "should fail to use a volume in a pod with mismatched mode [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod": "should not mount / map unused volumes in a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data": "should store data [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should allow exec of files on the volume": "should allow exec of files on the volume [Suite:k8s]", - - "[Top Level] [sig-storage] In-tree Volumes [Driver: vsphere] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data": "should store data [Suite:k8s]", - - "[Top Level] [sig-storage] Mounted flexvolume volume expand [Slow] [Feature:ExpandInUsePersistentVolumes] should be resizable when mounted": "should be resizable when mounted [Suite:k8s]", - - "[Top Level] [sig-storage] Mounted volume expand Should verify mounted devices can be resized": "Should verify mounted devices can be resized [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] NFSPersistentVolumes[Disruptive][Flaky] when kube-controller-manager restarts should delete a bound PVC from a clientPod, restart the kube-control-manager, and ensure the kube-controller-manager does not crash": "should delete a bound PVC from a clientPod, restart the kube-control-manager, and ensure the kube-controller-manager does not crash [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] NFSPersistentVolumes[Disruptive][Flaky] when kubelet restarts Should test that a file written to the mount before kubelet restart is readable after restart.": "Should test that a file written to the mount before kubelet restart is readable after restart. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] NFSPersistentVolumes[Disruptive][Flaky] when kubelet restarts Should test that a volume mounted to a pod that is deleted while the kubelet is down unmounts when the kubelet returns.": "Should test that a volume mounted to a pod that is deleted while the kubelet is down unmounts when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] NFSPersistentVolumes[Disruptive][Flaky] when kubelet restarts Should test that a volume mounted to a pod that is force deleted while the kubelet is down unmounts when the kubelet returns.": "Should test that a volume mounted to a pod that is force deleted while the kubelet is down unmounts when the kubelet returns. [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] Node Poweroff [Feature:vsphere] [Slow] [Disruptive] verify volume status after node power off": "verify volume status after node power off [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] Node Unregister [Feature:vsphere] [Slow] [Disruptive] node unregister": "node unregister [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] PV Protection Verify \"immediate\" deletion of a PV that is not bound to a PVC": "Verify \"immediate\" deletion of a PV that is not bound to a PVC [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PV Protection Verify that PV bound to a PVC is not removed immediately": "Verify that PV bound to a PVC is not removed immediately [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PVC Protection Verify \"immediate\" deletion of a PVC that is not in active use by a pod": "Verify \"immediate\" deletion of a PVC that is not in active use by a pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PVC Protection Verify that PVC in active use by a pod is not removed immediately": "Verify that PVC in active use by a pod is not removed immediately [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PVC Protection Verify that scheduling of a pod that uses PVC that is being deleted fails and the pod becomes Unschedulable": "Verify that scheduling of a pod that uses PVC that is being deleted fails and the pod becomes Unschedulable [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes Default StorageClass pods that use multiple volumes should be reschedulable [Slow]": "should be reschedulable [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes GCEPD should test that deleting a PVC before the pod does not cause pod deletion to fail on PD detach": "should test that deleting a PVC before the pod does not cause pod deletion to fail on PD detach [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes GCEPD should test that deleting the Namespace of a PVC and Pod causes the successful detach of Persistent Disk": "should test that deleting the Namespace of a PVC and Pod causes the successful detach of Persistent Disk [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes GCEPD should test that deleting the PV before the pod does not cause pod deletion to fail on PD detach": "should test that deleting the PV before the pod does not cause pod deletion to fail on PD detach [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes NFS when invoking the Recycle reclaim policy should test that a PV becomes Available and is clean after the PVC is deleted.": "should test that a PV becomes Available and is clean after the PVC is deleted. [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes NFS with Single PV - PVC pairs create a PV and a pre-bound PVC: test write access": "create a PV and a pre-bound PVC: test write access [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes NFS with Single PV - PVC pairs create a PVC and a pre-bound PV: test write access": "create a PVC and a pre-bound PV: test write access [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes NFS with Single PV - PVC pairs create a PVC and non-pre-bound PV: test write access": "create a PVC and non-pre-bound PV: test write access [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes NFS with Single PV - PVC pairs should create a non-pre-bound PV and PVC: test write access ": "should create a non-pre-bound PV and PVC: test write access [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes NFS with multiple PVs and PVCs all in same ns should create 2 PVs and 4 PVCs: test write access": "should create 2 PVs and 4 PVCs: test write access [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes NFS with multiple PVs and PVCs all in same ns should create 3 PVs and 3 PVCs: test write access": "should create 3 PVs and 3 PVCs: test write access [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes NFS with multiple PVs and PVCs all in same ns should create 4 PVs and 2 PVCs: test write access [Slow]": "should create 4 PVs and 2 PVCs: test write access [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes [Feature:vsphere][Feature:LabelSelector] [sig-storage] Selector-Label Volume Binding:vsphere [Feature:vsphere] should bind volume with claim for given label": "should bind volume with claim for given label [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes [Feature:vsphere][Feature:ReclaimPolicy] [sig-storage] persistentvolumereclaim:vsphere [Feature:vsphere] should delete persistent volume when reclaimPolicy set to delete and associated claim is deleted": "should delete persistent volume when reclaimPolicy set to delete and associated claim is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes [Feature:vsphere][Feature:ReclaimPolicy] [sig-storage] persistentvolumereclaim:vsphere [Feature:vsphere] should not detach and unmount PV when associated pvc with delete as reclaimPolicy is deleted when it is in use by the pod": "should not detach and unmount PV when associated pvc with delete as reclaimPolicy is deleted when it is in use by the pod [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes [Feature:vsphere][Feature:ReclaimPolicy] [sig-storage] persistentvolumereclaim:vsphere [Feature:vsphere] should retain persistent volume when reclaimPolicy set to retain when associated claim is deleted": "should retain persistent volume when reclaimPolicy set to retain when associated claim is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local Local volume that cannot be mounted [Slow] should fail due to non-existent path": "should fail due to non-existent path [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local Local volume that cannot be mounted [Slow] should fail due to wrong node": "should fail due to wrong node [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local Pod with node different from PV's NodeAffinity should fail scheduling due to different NodeAffinity": "should fail scheduling due to different NodeAffinity [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local Pod with node different from PV's NodeAffinity should fail scheduling due to different NodeSelector": "should fail scheduling due to different NodeSelector [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local Pods sharing a single local PV [Serial] all pods should be running": "all pods should be running [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local StatefulSet with pod affinity [Slow] should use volumes on one node when pod has affinity": "should use volumes on one node when pod has affinity [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local StatefulSet with pod affinity [Slow] should use volumes on one node when pod management is parallel and pod has affinity": "should use volumes on one node when pod management is parallel and pod has affinity [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local StatefulSet with pod affinity [Slow] should use volumes spread across nodes when pod has anti-affinity": "should use volumes spread across nodes when pod has anti-affinity [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local StatefulSet with pod affinity [Slow] should use volumes spread across nodes when pod management is parallel and pod has anti-affinity": "should use volumes spread across nodes when pod management is parallel and pod has anti-affinity [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local Stress with local volumes [Serial] should be able to process many pods and reuse local volumes": "should be able to process many pods and reuse local volumes [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: block] One pod requesting one prebound PVC should be able to mount volume and read from pod1": "should be able to mount volume and read from pod1 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: block] One pod requesting one prebound PVC should be able to mount volume and write from pod1": "should be able to mount volume and write from pod1 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: block] Set fsGroup for local volume should set different fsGroup for second pod if first pod is deleted": "should set different fsGroup for second pod if first pod is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: block] Set fsGroup for local volume should set fsGroup for one pod [Slow]": "should set fsGroup for one pod [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: block] Set fsGroup for local volume should set same fsGroup for two pods simultaneously [Slow]": "should set same fsGroup for two pods simultaneously [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: block] Two pods mounting a local volume at the same time should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: block] Two pods mounting a local volume one after the other should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: blockfswithformat] One pod requesting one prebound PVC should be able to mount volume and read from pod1": "should be able to mount volume and read from pod1 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: blockfswithformat] One pod requesting one prebound PVC should be able to mount volume and write from pod1": "should be able to mount volume and write from pod1 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: blockfswithformat] Set fsGroup for local volume should set different fsGroup for second pod if first pod is deleted": "should set different fsGroup for second pod if first pod is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: blockfswithformat] Set fsGroup for local volume should set fsGroup for one pod [Slow]": "should set fsGroup for one pod [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: blockfswithformat] Set fsGroup for local volume should set same fsGroup for two pods simultaneously [Slow]": "should set same fsGroup for two pods simultaneously [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: blockfswithformat] Two pods mounting a local volume at the same time should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: blockfswithformat] Two pods mounting a local volume one after the other should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: blockfswithoutformat] One pod requesting one prebound PVC should be able to mount volume and read from pod1": "should be able to mount volume and read from pod1 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: blockfswithoutformat] One pod requesting one prebound PVC should be able to mount volume and write from pod1": "should be able to mount volume and write from pod1 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: blockfswithoutformat] Set fsGroup for local volume should set different fsGroup for second pod if first pod is deleted": "should set different fsGroup for second pod if first pod is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: blockfswithoutformat] Set fsGroup for local volume should set fsGroup for one pod [Slow]": "should set fsGroup for one pod [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: blockfswithoutformat] Set fsGroup for local volume should set same fsGroup for two pods simultaneously [Slow]": "should set same fsGroup for two pods simultaneously [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: blockfswithoutformat] Two pods mounting a local volume at the same time should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: blockfswithoutformat] Two pods mounting a local volume one after the other should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-bindmounted] One pod requesting one prebound PVC should be able to mount volume and read from pod1": "should be able to mount volume and read from pod1 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-bindmounted] One pod requesting one prebound PVC should be able to mount volume and write from pod1": "should be able to mount volume and write from pod1 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-bindmounted] Set fsGroup for local volume should set different fsGroup for second pod if first pod is deleted": "should set different fsGroup for second pod if first pod is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-bindmounted] Set fsGroup for local volume should set fsGroup for one pod [Slow]": "should set fsGroup for one pod [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-bindmounted] Set fsGroup for local volume should set same fsGroup for two pods simultaneously [Slow]": "should set same fsGroup for two pods simultaneously [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-bindmounted] Two pods mounting a local volume at the same time should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-bindmounted] Two pods mounting a local volume one after the other should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-link-bindmounted] One pod requesting one prebound PVC should be able to mount volume and read from pod1": "should be able to mount volume and read from pod1 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-link-bindmounted] One pod requesting one prebound PVC should be able to mount volume and write from pod1": "should be able to mount volume and write from pod1 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-link-bindmounted] Set fsGroup for local volume should set different fsGroup for second pod if first pod is deleted": "should set different fsGroup for second pod if first pod is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-link-bindmounted] Set fsGroup for local volume should set fsGroup for one pod [Slow]": "should set fsGroup for one pod [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-link-bindmounted] Set fsGroup for local volume should set same fsGroup for two pods simultaneously [Slow]": "should set same fsGroup for two pods simultaneously [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-link-bindmounted] Two pods mounting a local volume at the same time should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-link-bindmounted] Two pods mounting a local volume one after the other should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-link] One pod requesting one prebound PVC should be able to mount volume and read from pod1": "should be able to mount volume and read from pod1 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-link] One pod requesting one prebound PVC should be able to mount volume and write from pod1": "should be able to mount volume and write from pod1 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-link] Set fsGroup for local volume should set different fsGroup for second pod if first pod is deleted": "should set different fsGroup for second pod if first pod is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-link] Set fsGroup for local volume should set fsGroup for one pod [Slow]": "should set fsGroup for one pod [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-link] Set fsGroup for local volume should set same fsGroup for two pods simultaneously [Slow]": "should set same fsGroup for two pods simultaneously [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-link] Two pods mounting a local volume at the same time should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir-link] Two pods mounting a local volume one after the other should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir] One pod requesting one prebound PVC should be able to mount volume and read from pod1": "should be able to mount volume and read from pod1 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir] One pod requesting one prebound PVC should be able to mount volume and write from pod1": "should be able to mount volume and write from pod1 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir] Set fsGroup for local volume should set different fsGroup for second pod if first pod is deleted": "should set different fsGroup for second pod if first pod is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir] Set fsGroup for local volume should set fsGroup for one pod [Slow]": "should set fsGroup for one pod [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir] Set fsGroup for local volume should set same fsGroup for two pods simultaneously [Slow]": "should set same fsGroup for two pods simultaneously [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir] Two pods mounting a local volume at the same time should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: dir] Two pods mounting a local volume one after the other should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: gce-localssd-scsi-fs] [Serial] One pod requesting one prebound PVC should be able to mount volume and read from pod1": "should be able to mount volume and read from pod1 [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: gce-localssd-scsi-fs] [Serial] One pod requesting one prebound PVC should be able to mount volume and write from pod1": "should be able to mount volume and write from pod1 [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: gce-localssd-scsi-fs] [Serial] Set fsGroup for local volume should set different fsGroup for second pod if first pod is deleted": "should set different fsGroup for second pod if first pod is deleted [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: gce-localssd-scsi-fs] [Serial] Set fsGroup for local volume should set fsGroup for one pod [Slow]": "should set fsGroup for one pod [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: gce-localssd-scsi-fs] [Serial] Set fsGroup for local volume should set same fsGroup for two pods simultaneously [Slow]": "should set same fsGroup for two pods simultaneously [Slow] [Skipped:gce] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: gce-localssd-scsi-fs] [Serial] Two pods mounting a local volume at the same time should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: gce-localssd-scsi-fs] [Serial] Two pods mounting a local volume one after the other should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Skipped:gce] [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: tmpfs] One pod requesting one prebound PVC should be able to mount volume and read from pod1": "should be able to mount volume and read from pod1 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: tmpfs] One pod requesting one prebound PVC should be able to mount volume and write from pod1": "should be able to mount volume and write from pod1 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: tmpfs] Set fsGroup for local volume should set different fsGroup for second pod if first pod is deleted": "should set different fsGroup for second pod if first pod is deleted [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: tmpfs] Set fsGroup for local volume should set fsGroup for one pod [Slow]": "should set fsGroup for one pod [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: tmpfs] Set fsGroup for local volume should set same fsGroup for two pods simultaneously [Slow]": "should set same fsGroup for two pods simultaneously [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: tmpfs] Two pods mounting a local volume at the same time should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes-local [Volume type: tmpfs] Two pods mounting a local volume one after the other should be able to write from pod1 and read from pod2": "should be able to write from pod1 and read from pod2 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes:vsphere [Feature:vsphere] should test that a file written to the vsphere volume mount before kubelet restart can be read after restart [Disruptive]": "should test that a file written to the vsphere volume mount before kubelet restart can be read after restart [Disruptive] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes:vsphere [Feature:vsphere] should test that a vsphere volume mounted to a pod that is deleted while the kubelet is down unmounts when the kubelet returns [Disruptive]": "should test that a vsphere volume mounted to a pod that is deleted while the kubelet is down unmounts when the kubelet returns [Disruptive] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes:vsphere [Feature:vsphere] should test that deleting a PVC before the pod does not cause pod deletion to fail on vsphere volume detach": "should test that deleting a PVC before the pod does not cause pod deletion to fail on vsphere volume detach [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes:vsphere [Feature:vsphere] should test that deleting the Namespace of a PVC and Pod causes the successful detach of vsphere volume": "should test that deleting the Namespace of a PVC and Pod causes the successful detach of vsphere volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] PersistentVolumes:vsphere [Feature:vsphere] should test that deleting the PV before the pod does not cause pod deletion to fail on vsphere volume detach": "should test that deleting the PV before the pod does not cause pod deletion to fail on vsphere volume detach [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Pod Disks [Serial] attach on previously attached volumes should work": "[Serial] attach on previously attached volumes should work [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] Pod Disks detach in a disrupted environment [Slow] [Disruptive] when node's API object is deleted": "when node's API object is deleted [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] Pod Disks detach in a disrupted environment [Slow] [Disruptive] when pod is evicted": "when pod is evicted [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] Pod Disks schedule a pod w/ RW PD(s) mounted to 1 or more containers, write to PD, verify content, delete pod, and repeat in rapid succession [Slow] using 1 containers and 2 PDs": "using 1 containers and 2 PDs [Suite:k8s]", - - "[Top Level] [sig-storage] Pod Disks schedule a pod w/ RW PD(s) mounted to 1 or more containers, write to PD, verify content, delete pod, and repeat in rapid succession [Slow] using 4 containers and 1 PDs": "using 4 containers and 1 PDs [Suite:k8s]", - - "[Top Level] [sig-storage] Pod Disks schedule pods each with a PD, delete pod and verify detach [Slow] for RW PD with pod delete grace period of \"default (30s)\"": "for RW PD with pod delete grace period of \"default (30s)\" [Suite:k8s]", - - "[Top Level] [sig-storage] Pod Disks schedule pods each with a PD, delete pod and verify detach [Slow] for RW PD with pod delete grace period of \"immediate (0s)\"": "for RW PD with pod delete grace period of \"immediate (0s)\" [Suite:k8s]", - - "[Top Level] [sig-storage] Pod Disks schedule pods each with a PD, delete pod and verify detach [Slow] for read-only PD with pod delete grace period of \"default (30s)\"": "for read-only PD with pod delete grace period of \"default (30s)\" [Suite:k8s]", - - "[Top Level] [sig-storage] Pod Disks schedule pods each with a PD, delete pod and verify detach [Slow] for read-only PD with pod delete grace period of \"immediate (0s)\"": "for read-only PD with pod delete grace period of \"immediate (0s)\" [Suite:k8s]", - - "[Top Level] [sig-storage] Pod Disks should be able to delete a non-existent PD without error": "should be able to delete a non-existent PD without error [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected combined should project all components that make up the projection API [Projection][NodeConformance] [Conformance]": "should project all components that make up the projection API [Projection][NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected configMap Should fail non-optional pod creation due to configMap object does not exist [Slow]": "Should fail non-optional pod creation due to configMap object does not exist [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected configMap Should fail non-optional pod creation due to the key in the configMap object does not exist [Slow]": "Should fail non-optional pod creation due to the key in the configMap object does not exist [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected configMap optional updates should be reflected in volume [NodeConformance] [Conformance]": "optional updates should be reflected in volume [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected configMap should be consumable from pods in volume [NodeConformance] [Conformance]": "should be consumable from pods in volume [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected configMap should be consumable from pods in volume as non-root [NodeConformance] [Conformance]": "should be consumable from pods in volume as non-root [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected configMap should be consumable from pods in volume as non-root with FSGroup [LinuxOnly] [NodeFeature:FSGroup]": "should be consumable from pods in volume as non-root with FSGroup [LinuxOnly] [NodeFeature:FSGroup] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected configMap should be consumable from pods in volume as non-root with defaultMode and fsGroup set [LinuxOnly] [NodeFeature:FSGroup]": "should be consumable from pods in volume as non-root with defaultMode and fsGroup set [LinuxOnly] [NodeFeature:FSGroup] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected configMap should be consumable from pods in volume with defaultMode set [LinuxOnly] [NodeConformance] [Conformance]": "should be consumable from pods in volume with defaultMode set [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected configMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance]": "should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected configMap should be consumable from pods in volume with mappings and Item mode set [LinuxOnly] [NodeConformance] [Conformance]": "should be consumable from pods in volume with mappings and Item mode set [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected configMap should be consumable from pods in volume with mappings as non-root [NodeConformance] [Conformance]": "should be consumable from pods in volume with mappings as non-root [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected configMap should be consumable from pods in volume with mappings as non-root with FSGroup [LinuxOnly] [NodeFeature:FSGroup]": "should be consumable from pods in volume with mappings as non-root with FSGroup [LinuxOnly] [NodeFeature:FSGroup] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected configMap should be consumable in multiple volumes in the same pod [NodeConformance] [Conformance]": "should be consumable in multiple volumes in the same pod [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected configMap updates should be reflected in volume [NodeConformance] [Conformance]": "updates should be reflected in volume [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected downwardAPI should provide container's cpu limit [NodeConformance] [Conformance]": "should provide container's cpu limit [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected downwardAPI should provide container's cpu request [NodeConformance] [Conformance]": "should provide container's cpu request [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected downwardAPI should provide container's memory limit [NodeConformance] [Conformance]": "should provide container's memory limit [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected downwardAPI should provide container's memory request [NodeConformance] [Conformance]": "should provide container's memory request [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected downwardAPI should provide node allocatable (cpu) as default cpu limit if the limit is not set [NodeConformance] [Conformance]": "should provide node allocatable (cpu) as default cpu limit if the limit is not set [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected downwardAPI should provide node allocatable (memory) as default memory limit if the limit is not set [NodeConformance] [Conformance]": "should provide node allocatable (memory) as default memory limit if the limit is not set [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected downwardAPI should provide podname as non-root with fsgroup [LinuxOnly] [NodeFeature:FSGroup]": "should provide podname as non-root with fsgroup [LinuxOnly] [NodeFeature:FSGroup] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected downwardAPI should provide podname as non-root with fsgroup and defaultMode [LinuxOnly] [NodeFeature:FSGroup]": "should provide podname as non-root with fsgroup and defaultMode [LinuxOnly] [NodeFeature:FSGroup] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected downwardAPI should provide podname only [NodeConformance] [Conformance]": "should provide podname only [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected downwardAPI should set DefaultMode on files [LinuxOnly] [NodeConformance] [Conformance]": "should set DefaultMode on files [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected downwardAPI should set mode on item file [LinuxOnly] [NodeConformance] [Conformance]": "should set mode on item file [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected downwardAPI should update annotations on modification [NodeConformance] [Conformance]": "should update annotations on modification [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected downwardAPI should update labels on modification [NodeConformance] [Conformance]": "should update labels on modification [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected secret Should fail non-optional pod creation due to secret object does not exist [Slow]": "Should fail non-optional pod creation due to secret object does not exist [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected secret Should fail non-optional pod creation due to the key in the secret object does not exist [Slow]": "Should fail non-optional pod creation due to the key in the secret object does not exist [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected secret optional updates should be reflected in volume [NodeConformance] [Conformance]": "optional updates should be reflected in volume [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected secret should be able to mount in a volume regardless of a different secret existing with same name in different namespace [NodeConformance]": "should be able to mount in a volume regardless of a different secret existing with same name in different namespace [NodeConformance] [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected secret should be consumable from pods in volume [NodeConformance] [Conformance]": "should be consumable from pods in volume [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected secret should be consumable from pods in volume as non-root with defaultMode and fsGroup set [LinuxOnly] [NodeConformance] [Conformance]": "should be consumable from pods in volume as non-root with defaultMode and fsGroup set [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected secret should be consumable from pods in volume with defaultMode set [LinuxOnly] [NodeConformance] [Conformance]": "should be consumable from pods in volume with defaultMode set [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected secret should be consumable from pods in volume with mappings [NodeConformance] [Conformance]": "should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected secret should be consumable from pods in volume with mappings and Item Mode set [LinuxOnly] [NodeConformance] [Conformance]": "should be consumable from pods in volume with mappings and Item Mode set [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Projected secret should be consumable in multiple volumes in a pod [NodeConformance] [Conformance]": "should be consumable in multiple volumes in a pod [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Regional PD RegionalPD should failover to a different zone when all nodes in one zone become unreachable [Slow] [Disruptive]": "should failover to a different zone when all nodes in one zone become unreachable [Slow] [Disruptive] [Serial] [Suite:k8s]", - - "[Top Level] [sig-storage] Regional PD RegionalPD should provision storage [Slow]": "should provision storage [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] Regional PD RegionalPD should provision storage in the allowedTopologies [Slow]": "should provision storage in the allowedTopologies [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] Regional PD RegionalPD should provision storage in the allowedTopologies with delayed binding [Slow]": "should provision storage in the allowedTopologies with delayed binding [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] Regional PD RegionalPD should provision storage with delayed binding [Slow]": "should provision storage with delayed binding [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] Secrets Should fail non-optional pod creation due to secret object does not exist [Slow]": "Should fail non-optional pod creation due to secret object does not exist [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] Secrets Should fail non-optional pod creation due to the key in the secret object does not exist [Slow]": "Should fail non-optional pod creation due to the key in the secret object does not exist [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] Secrets optional updates should be reflected in volume [NodeConformance] [Conformance]": "optional updates should be reflected in volume [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Secrets should be able to mount in a volume regardless of a different secret existing with same name in different namespace [NodeConformance] [Conformance]": "should be able to mount in a volume regardless of a different secret existing with same name in different namespace [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Secrets should be consumable from pods in volume [NodeConformance] [Conformance]": "should be consumable from pods in volume [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Secrets should be consumable from pods in volume as non-root with defaultMode and fsGroup set [LinuxOnly] [NodeConformance] [Conformance]": "should be consumable from pods in volume as non-root with defaultMode and fsGroup set [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Secrets should be consumable from pods in volume with defaultMode set [LinuxOnly] [NodeConformance] [Conformance]": "should be consumable from pods in volume with defaultMode set [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Secrets should be consumable from pods in volume with mappings [NodeConformance] [Conformance]": "should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Secrets should be consumable from pods in volume with mappings and Item Mode set [LinuxOnly] [NodeConformance] [Conformance]": "should be consumable from pods in volume with mappings and Item Mode set [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Secrets should be consumable in multiple volumes in a pod [NodeConformance] [Conformance]": "should be consumable in multiple volumes in a pod [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Secrets should be immutable if `immutable` field is set": "should be immutable if `immutable` field is set [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Storage Policy Based Volume Provisioning [Feature:vsphere] verify VSAN storage capability with invalid capability name objectSpaceReserve is not honored for dynamically provisioned pvc using storageclass": "verify VSAN storage capability with invalid capability name objectSpaceReserve is not honored for dynamically provisioned pvc using storageclass [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Storage Policy Based Volume Provisioning [Feature:vsphere] verify VSAN storage capability with invalid diskStripes value is not honored for dynamically provisioned pvc using storageclass": "verify VSAN storage capability with invalid diskStripes value is not honored for dynamically provisioned pvc using storageclass [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Storage Policy Based Volume Provisioning [Feature:vsphere] verify VSAN storage capability with invalid hostFailuresToTolerate value is not honored for dynamically provisioned pvc using storageclass": "verify VSAN storage capability with invalid hostFailuresToTolerate value is not honored for dynamically provisioned pvc using storageclass [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Storage Policy Based Volume Provisioning [Feature:vsphere] verify VSAN storage capability with non-vsan datastore is not honored for dynamically provisioned pvc using storageclass": "verify VSAN storage capability with non-vsan datastore is not honored for dynamically provisioned pvc using storageclass [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Storage Policy Based Volume Provisioning [Feature:vsphere] verify VSAN storage capability with valid diskStripes and objectSpaceReservation values and a VSAN datastore is honored for dynamically provisioned pvc using storageclass": "verify VSAN storage capability with valid diskStripes and objectSpaceReservation values and a VSAN datastore is honored for dynamically provisioned pvc using storageclass [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Storage Policy Based Volume Provisioning [Feature:vsphere] verify VSAN storage capability with valid diskStripes and objectSpaceReservation values is honored for dynamically provisioned pvc using storageclass": "verify VSAN storage capability with valid diskStripes and objectSpaceReservation values is honored for dynamically provisioned pvc using storageclass [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Storage Policy Based Volume Provisioning [Feature:vsphere] verify VSAN storage capability with valid hostFailuresToTolerate and cacheReservation values is honored for dynamically provisioned pvc using storageclass": "verify VSAN storage capability with valid hostFailuresToTolerate and cacheReservation values is honored for dynamically provisioned pvc using storageclass [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Storage Policy Based Volume Provisioning [Feature:vsphere] verify VSAN storage capability with valid objectSpaceReservation and iopsLimit values is honored for dynamically provisioned pvc using storageclass": "verify VSAN storage capability with valid objectSpaceReservation and iopsLimit values is honored for dynamically provisioned pvc using storageclass [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Storage Policy Based Volume Provisioning [Feature:vsphere] verify an existing and compatible SPBM policy is honored for dynamically provisioned pvc using storageclass": "verify an existing and compatible SPBM policy is honored for dynamically provisioned pvc using storageclass [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Storage Policy Based Volume Provisioning [Feature:vsphere] verify an if a SPBM policy and VSAN capabilities cannot be honored for dynamically provisioned pvc using storageclass": "verify an if a SPBM policy and VSAN capabilities cannot be honored for dynamically provisioned pvc using storageclass [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Storage Policy Based Volume Provisioning [Feature:vsphere] verify clean up of stale dummy VM for dynamically provisioned pvc using SPBM policy": "verify clean up of stale dummy VM for dynamically provisioned pvc using SPBM policy [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Storage Policy Based Volume Provisioning [Feature:vsphere] verify if a SPBM policy is not honored on a non-compatible datastore for dynamically provisioned pvc using storageclass": "verify if a SPBM policy is not honored on a non-compatible datastore for dynamically provisioned pvc using storageclass [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Storage Policy Based Volume Provisioning [Feature:vsphere] verify if a non-existing SPBM policy is not honored for dynamically provisioned pvc using storageclass": "verify if a non-existing SPBM policy is not honored for dynamically provisioned pvc using storageclass [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Subpath Atomic writer volumes should support subpaths with configmap pod [LinuxOnly] [Conformance]": "should support subpaths with configmap pod [LinuxOnly] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Subpath Atomic writer volumes should support subpaths with configmap pod with mountPath of existing file [LinuxOnly] [Conformance]": "should support subpaths with configmap pod with mountPath of existing file [LinuxOnly] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Subpath Atomic writer volumes should support subpaths with downward pod [LinuxOnly] [Conformance]": "should support subpaths with downward pod [LinuxOnly] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Subpath Atomic writer volumes should support subpaths with projected pod [LinuxOnly] [Conformance]": "should support subpaths with projected pod [LinuxOnly] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Subpath Atomic writer volumes should support subpaths with secret pod [LinuxOnly] [Conformance]": "should support subpaths with secret pod [LinuxOnly] [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]", - - "[Top Level] [sig-storage] Subpath Container restart should verify that container can restart successfully after configmaps modified": "should verify that container can restart successfully after configmaps modified [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Verify Volume Attach Through vpxd Restart [Feature:vsphere][Serial][Disruptive] verify volume remains attached through vpxd restart": "verify volume remains attached through vpxd restart [Suite:k8s]", - - "[Top Level] [sig-storage] Volume Attach Verify [Feature:vsphere][Serial][Disruptive] verify volume remains attached after master kubelet restart": "verify volume remains attached after master kubelet restart [Suite:k8s]", - - "[Top Level] [sig-storage] Volume Disk Format [Feature:vsphere] verify disk format type - eagerzeroedthick is honored for dynamically provisioned pv using storageclass": "verify disk format type - eagerzeroedthick is honored for dynamically provisioned pv using storageclass [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volume Disk Format [Feature:vsphere] verify disk format type - thin is honored for dynamically provisioned pv using storageclass": "verify disk format type - thin is honored for dynamically provisioned pv using storageclass [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volume Disk Format [Feature:vsphere] verify disk format type - zeroedthick is honored for dynamically provisioned pv using storageclass": "verify disk format type - zeroedthick is honored for dynamically provisioned pv using storageclass [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volume Disk Size [Feature:vsphere] verify dynamically provisioned pv has size rounded up correctly": "verify dynamically provisioned pv has size rounded up correctly [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volume FStype [Feature:vsphere] verify fstype - default value should be ext4": "verify fstype - default value should be ext4 [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volume FStype [Feature:vsphere] verify fstype - ext3 formatted volume": "verify fstype - ext3 formatted volume [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volume FStype [Feature:vsphere] verify invalid fstype": "verify invalid fstype [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volume Operations Storm [Feature:vsphere] should create pod with many volumes and verify no attach call fails": "should create pod with many volumes and verify no attach call fails [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volume Placement [Feature:vsphere] should create and delete pod with multiple volumes from different datastore": "should create and delete pod with multiple volumes from different datastore [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volume Placement [Feature:vsphere] should create and delete pod with multiple volumes from same datastore": "should create and delete pod with multiple volumes from same datastore [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volume Placement [Feature:vsphere] should create and delete pod with the same volume source attach/detach to different worker nodes": "should create and delete pod with the same volume source attach/detach to different worker nodes [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volume Placement [Feature:vsphere] should create and delete pod with the same volume source on the same worker node": "should create and delete pod with the same volume source on the same worker node [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volume Placement [Feature:vsphere] test back to back pod creation and deletion with different volume sources on the same worker node": "test back to back pod creation and deletion with different volume sources on the same worker node [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volume Provisioning On Clustered Datastore [Feature:vsphere] verify dynamic provision with default parameter on clustered datastore": "verify dynamic provision with default parameter on clustered datastore [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volume Provisioning On Clustered Datastore [Feature:vsphere] verify dynamic provision with spbm policy on clustered datastore": "verify dynamic provision with spbm policy on clustered datastore [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volume Provisioning On Clustered Datastore [Feature:vsphere] verify static provisioning on clustered datastore": "verify static provisioning on clustered datastore [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volume Provisioning on Datastore [Feature:vsphere] verify dynamically provisioned pv using storageclass fails on an invalid datastore": "verify dynamically provisioned pv using storageclass fails on an invalid datastore [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volume limits should verify that all nodes have volume limits": "should verify that all nodes have volume limits [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Volumes ConfigMap should be mountable": "should be mountable [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify PVC creation fails if no zones are specified in the storage class (No shared datastores exist among all the nodes)": "Verify PVC creation fails if no zones are specified in the storage class (No shared datastores exist among all the nodes) [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify PVC creation fails if only datastore is specified in the storage class (No shared datastores exist among all the nodes)": "Verify PVC creation fails if only datastore is specified in the storage class (No shared datastores exist among all the nodes) [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify PVC creation fails if only storage policy is specified in the storage class (No shared datastores exist among all the nodes)": "Verify PVC creation fails if only storage policy is specified in the storage class (No shared datastores exist among all the nodes) [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify PVC creation fails if the availability zone specified in the storage class have no shared datastores under it.": "Verify PVC creation fails if the availability zone specified in the storage class have no shared datastores under it. [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify PVC creation with an invalid VSAN capability along with a compatible zone combination specified in storage class fails": "Verify PVC creation with an invalid VSAN capability along with a compatible zone combination specified in storage class fails [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify PVC creation with compatible policy and datastore without any zones specified in the storage class fails (No shared datastores exist among all the nodes)": "Verify PVC creation with compatible policy and datastore without any zones specified in the storage class fails (No shared datastores exist among all the nodes) [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify PVC creation with incompatible datastore and zone combination specified in storage class fails": "Verify PVC creation with incompatible datastore and zone combination specified in storage class fails [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify PVC creation with incompatible storage policy along with compatible zone and datastore combination specified in storage class fails": "Verify PVC creation with incompatible storage policy along with compatible zone and datastore combination specified in storage class fails [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify PVC creation with incompatible storagePolicy and zone combination specified in storage class fails": "Verify PVC creation with incompatible storagePolicy and zone combination specified in storage class fails [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify PVC creation with incompatible zone along with compatible storagePolicy and datastore combination specified in storage class fails": "Verify PVC creation with incompatible zone along with compatible storagePolicy and datastore combination specified in storage class fails [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify PVC creation with invalid zone specified in storage class fails": "Verify PVC creation with invalid zone specified in storage class fails [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify a PVC creation fails when multiple zones are specified in the storage class without shared datastores among the zones in waitForFirstConsumer binding mode": "Verify a PVC creation fails when multiple zones are specified in the storage class without shared datastores among the zones in waitForFirstConsumer binding mode [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify a pod fails to get scheduled when conflicting volume topology (allowedTopologies) and pod scheduling constraints(nodeSelector) are specified": "Verify a pod fails to get scheduled when conflicting volume topology (allowedTopologies) and pod scheduling constraints(nodeSelector) are specified [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify a pod is created and attached to a dynamically created PV with storage policy specified in storage class in waitForFirstConsumer binding mode with allowedTopologies": "Verify a pod is created and attached to a dynamically created PV with storage policy specified in storage class in waitForFirstConsumer binding mode with allowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify a pod is created and attached to a dynamically created PV with storage policy specified in storage class in waitForFirstConsumer binding mode with multiple allowedTopologies": "Verify a pod is created and attached to a dynamically created PV with storage policy specified in storage class in waitForFirstConsumer binding mode with multiple allowedTopologies [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify a pod is created and attached to a dynamically created PV with storage policy specified in storage class in waitForFirstConsumer binding mode": "Verify a pod is created and attached to a dynamically created PV with storage policy specified in storage class in waitForFirstConsumer binding mode [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify a pod is created and attached to a dynamically created PV, based on a VSAN capability, datastore and compatible zone specified in storage class": "Verify a pod is created and attached to a dynamically created PV, based on a VSAN capability, datastore and compatible zone specified in storage class [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify a pod is created and attached to a dynamically created PV, based on allowed zones specified in storage class ": "Verify a pod is created and attached to a dynamically created PV, based on allowed zones specified in storage class [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify a pod is created and attached to a dynamically created PV, based on multiple zones specified in storage class ": "Verify a pod is created and attached to a dynamically created PV, based on multiple zones specified in storage class [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify a pod is created and attached to a dynamically created PV, based on multiple zones specified in the storage class. (No shared datastores exist among both zones)": "Verify a pod is created and attached to a dynamically created PV, based on multiple zones specified in the storage class. (No shared datastores exist among both zones) [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify a pod is created and attached to a dynamically created PV, based on the allowed zones and datastore specified in storage class when there are multiple datastores with the same name under different zones across datacenters": "Verify a pod is created and attached to a dynamically created PV, based on the allowed zones and datastore specified in storage class when there are multiple datastores with the same name under different zones across datacenters [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify a pod is created and attached to a dynamically created PV, based on the allowed zones and datastore specified in storage class": "Verify a pod is created and attached to a dynamically created PV, based on the allowed zones and datastore specified in storage class [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify a pod is created and attached to a dynamically created PV, based on the allowed zones and storage policy specified in storage class": "Verify a pod is created and attached to a dynamically created PV, based on the allowed zones and storage policy specified in storage class [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify a pod is created and attached to a dynamically created PV, based on the allowed zones specified in storage class when the datastore under the zone is present in another datacenter": "Verify a pod is created and attached to a dynamically created PV, based on the allowed zones specified in storage class when the datastore under the zone is present in another datacenter [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify a pod is created and attached to a dynamically created PV, based on the allowed zones, datastore and storage policy specified in storage class": "Verify a pod is created and attached to a dynamically created PV, based on the allowed zones, datastore and storage policy specified in storage class [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify a pod is created on a non-Workspace zone and attached to a dynamically created PV, based on the allowed zones and storage policy specified in storage class": "Verify a pod is created on a non-Workspace zone and attached to a dynamically created PV, based on the allowed zones and storage policy specified in storage class [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify dynamically created pv with allowed zones specified in storage class, shows the right zone information on its labels": "Verify dynamically created pv with allowed zones specified in storage class, shows the right zone information on its labels [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] Zone Support [Feature:vsphere] Verify dynamically created pv with multiple zones specified in the storage class, shows both the zones on its labels": "Verify dynamically created pv with multiple zones specified in the storage class, shows both the zones on its labels [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] [Feature:Flexvolumes] Detaching volumes should not work when mount is in progress [Slow]": "should not work when mount is in progress [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] [Feature:Flexvolumes] Mounted flexvolume expand[Slow] Should verify mounted flex volumes can be resized": "Should verify mounted flex volumes can be resized [Suite:k8s]", - - "[Top Level] [sig-storage] [Serial] Volume metrics PVController should create bound pv/pvc count metrics for pvc controller after creating both pv and pvc": "should create bound pv/pvc count metrics for pvc controller after creating both pv and pvc [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] [Serial] Volume metrics PVController should create none metrics for pvc controller before creating any PV or PVC": "should create none metrics for pvc controller before creating any PV or PVC [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] [Serial] Volume metrics PVController should create unbound pv count metrics for pvc controller after creating pv only": "should create unbound pv count metrics for pvc controller after creating pv only [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] [Serial] Volume metrics PVController should create unbound pvc count metrics for pvc controller after creating pvc only": "should create unbound pvc count metrics for pvc controller after creating pvc only [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] [Serial] Volume metrics should create metrics for total number of volumes in A/D Controller": "should create metrics for total number of volumes in A/D Controller [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] [Serial] Volume metrics should create metrics for total time taken in volume operations in P/V Controller": "should create metrics for total time taken in volume operations in P/V Controller [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] [Serial] Volume metrics should create prometheus metrics for volume provisioning and attach/detach": "should create prometheus metrics for volume provisioning and attach/detach [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] [Serial] Volume metrics should create prometheus metrics for volume provisioning errors [Slow]": "should create prometheus metrics for volume provisioning errors [Slow] [Suite:k8s]", - - "[Top Level] [sig-storage] [Serial] Volume metrics should create volume metrics in Volume Manager": "should create volume metrics in Volume Manager [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] [Serial] Volume metrics should create volume metrics with the correct PVC ref": "should create volume metrics with the correct PVC ref [Suite:openshift/conformance/serial] [Suite:k8s]", - - "[Top Level] [sig-storage] vcp at scale [Feature:vsphere] vsphere scale tests": "vsphere scale tests [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] vcp-performance [Feature:vsphere] vcp performance tests": "vcp performance tests [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] vsphere cloud provider stress [Feature:vsphere] vsphere stress tests": "vsphere stress tests [Suite:openshift/conformance/parallel] [Suite:k8s]", - - "[Top Level] [sig-storage] vsphere statefulset [Feature:vsphere] vsphere statefulset testing": "vsphere statefulset testing [Suite:openshift/conformance/parallel] [Suite:k8s]", -} - -func init() { - ginkgo.WalkTests(func(name, parentName string, node types.TestNode) { - combined := name - if len(parentName) > 0 { - combined = parentName + " " + combined - } - if updated, ok := annotations[combined]; ok { - node.SetText(updated) - } else { - panic(fmt.Sprintf("unable to find test %s", combined)) - } - }) -} diff --git a/openshift-hack/e2e/annotate/rules.go b/openshift-hack/e2e/annotate/rules.go deleted file mode 100644 index 0e14585c5f406..0000000000000 --- a/openshift-hack/e2e/annotate/rules.go +++ /dev/null @@ -1,203 +0,0 @@ -package annotate - -import ( - // ensure all the ginkgo tests are loaded - _ "k8s.io/kubernetes/openshift-hack/e2e" -) - -var ( - TestMaps = map[string][]string{ - // alpha features that are not gated - "[Disabled:Alpha]": { - // ALPHA features in 1.19, disabled by default. - // !!! Review their status as part of the 1.20 rebase. - `\[Feature:CSIStorageCapacity\]`, - `\[Feature:IPv6DualStack.*\]`, - `\[Feature:ServiceAccountIssuerDiscovery\]`, - `\[Feature:SetHostnameAsFQDN\]`, - `\[Feature:TTLAfterFinished\]`, - - // BETA features in 1.19, enabled by default - // Their enablement is tracked via bz's targeted at 4.6. - `\[Feature:SCTPConnectivity\]`, // https://bugzilla.redhat.com/show_bug.cgi?id=1861606 - }, - // tests for features that are not implemented in openshift - "[Disabled:Unimplemented]": { - `\[Feature:Networking-IPv6\]`, // openshift-sdn doesn't support yet - `Monitoring`, // Not installed, should be - `Cluster level logging`, // Not installed yet - `Kibana`, // Not installed - `Ubernetes`, // Can't set zone labels today - `kube-ui`, // Not installed by default - `Kubernetes Dashboard`, // Not installed by default (also probably slow image pull) - - `NetworkPolicy.*egress`, // not supported - `NetworkPolicy.*named port`, // not yet implemented - `enforce egress policy`, // not support - `should proxy to cadvisor`, // we don't expose cAdvisor port directly for security reasons - - `NetworkPolicy.*IPBlock`, // not supported - `NetworkPolicy.*Egress`, // not supported - `NetworkPolicy.*default-deny-all`, // not supported - }, - // tests that rely on special configuration that we do not yet support - "[Disabled:SpecialConfig]": { - // GPU node needs to be available - `\[Feature:GPUDevicePlugin\]`, - `\[sig-scheduling\] GPUDevicePluginAcrossRecreate \[Feature:Recreate\]`, - - `\[Feature:ImageQuota\]`, // Quota isn't turned on by default, we should do that and then reenable these tests - `\[Feature:Audit\]`, // Needs special configuration - `\[Feature:LocalStorageCapacityIsolation\]`, // relies on a separate daemonset? - `\[sig-cloud-provider-gcp\]`, // these test require a different configuration - note that GCE tests from the sig-cluster-lifecycle were moved to the sig-cloud-provider-gcpcluster lifecycle see https://github.com/kubernetes/kubernetes/commit/0b3d50b6dccdc4bbd0b3e411c648b092477d79ac#diff-3b1910d08fb8fd8b32956b5e264f87cb - - `kube-dns-autoscaler`, // Don't run kube-dns - `should check if Kubernetes master services is included in cluster-info`, // Don't run kube-dns - `DNS configMap`, // this tests dns federation configuration via configmap, which we don't support yet - - `NodeProblemDetector`, // requires a non-master node to run on - `Advanced Audit should audit API calls`, // expects to be able to call /logs - - `Firewall rule should have correct firewall rules for e2e cluster`, // Upstream-install specific - }, - // tests that are known broken and need to be fixed upstream or in openshift - // always add an issue here - "[Disabled:Broken]": { - `mount an API token into pods`, // We add 6 secrets, not 1 - `ServiceAccounts should ensure a single API token exists`, // We create lots of secrets - `unchanging, static URL paths for kubernetes api services`, // the test needs to exclude URLs that are not part of conformance (/logs) - `Services should be able to up and down services`, // we don't have wget installed on nodes - `Network should set TCP CLOSE_WAIT timeout`, // possibly some difference between ubuntu and fedora - `\[NodeFeature:Sysctls\]`, // needs SCC support - `should check kube-proxy urls`, // previously this test was skipped b/c we reported -1 as the number of nodes, now we report proper number and test fails - `SSH`, // TRIAGE - `should implement service.kubernetes.io/service-proxy-name`, // this is an optional test that requires SSH. sig-network - `should allow ingress access on one named port`, // https://bugzilla.redhat.com/show_bug.cgi?id=1711602 - `recreate nodes and ensure they function upon restart`, // https://bugzilla.redhat.com/show_bug.cgi?id=1756428 - `\[Driver: iscsi\]`, // https://bugzilla.redhat.com/show_bug.cgi?id=1711627 - - "RuntimeClass should reject", - - `Services should implement service.kubernetes.io/headless`, // requires SSH access to function, needs to be refactored - `ClusterDns \[Feature:Example\] should create pod that uses dns`, // doesn't use bindata, not part of kube test binary - `Simple pod should handle in-cluster config`, // kubectl cp doesn't work or is not preserving executable bit, we have this test already - - // TODO(node): configure the cri handler for the runtime class to make this work - "should run a Pod requesting a RuntimeClass with a configured handler", - "should reject a Pod requesting a RuntimeClass with conflicting node selector", - "should run a Pod requesting a RuntimeClass with scheduling", - - // A fix is in progress: https://github.com/openshift/origin/pull/24709 - `Multi-AZ Clusters should spread the pods of a replication controller across zones`, - - // NFS umount is broken in kernels 5.7+ - // https://bugzilla.redhat.com/show_bug.cgi?id=1854379 - `\[sig-storage\].*\[Driver: nfs\] \[Testpattern: Dynamic PV \(default fs\)\].*subPath should be able to unmount after the subpath directory is deleted`, - }, - // tests that may work, but we don't support them - "[Disabled:Unsupported]": { - `\[Driver: rbd\]`, // OpenShift 4.x does not support Ceph RBD (use CSI instead) - `\[Driver: ceph\]`, // OpenShift 4.x does not support CephFS (use CSI instead) - `\[Feature:PodSecurityPolicy\]`, // OpenShift 4.x does not enable PSP by default - }, - // tests too slow to be part of conformance - "[Slow]": { - `\[sig-scalability\]`, // disable from the default set for now - `should create and stop a working application`, // Inordinately slow tests - - `\[Feature:PerformanceDNS\]`, // very slow - - `validates that there exists conflict between pods with same hostPort and protocol but one using 0\.0\.0\.0 hostIP`, // 5m, really? - }, - // tests that are known flaky - "[Flaky]": { - `Job should run a job to completion when tasks sometimes fail and are not locally restarted`, // seems flaky, also may require too many resources - // TODO(node): test works when run alone, but not in the suite in CI - `\[Feature:HPA\] Horizontal pod autoscaling \(scale resource: CPU\) \[sig-autoscaling\] ReplicationController light Should scale from 1 pod to 2 pods`, - }, - // tests that must be run without competition - "[Serial]": { - `\[Disruptive\]`, - `\[Feature:Performance\]`, // requires isolation - - `Service endpoints latency`, // requires low latency - `Clean up pods on node`, // schedules up to max pods per node - `DynamicProvisioner should test that deleting a claim before the volume is provisioned deletes the volume`, // test is very disruptive to other tests - - `Multi-AZ Clusters should spread the pods of a service across zones`, // spreading is a priority, not a predicate, and if the node is temporarily full the priority will be ignored - - `Should be able to support the 1\.7 Sample API Server using the current Aggregator`, // down apiservices break other clients today https://bugzilla.redhat.com/show_bug.cgi?id=1623195 - - `\[Feature:HPA\] Horizontal pod autoscaling \(scale resource: CPU\) \[sig-autoscaling\] ReplicationController light Should scale from 1 pod to 2 pods`, - - `should prevent Ingress creation if more than 1 IngressClass marked as default`, // https://bugzilla.redhat.com/show_bug.cgi?id=1822286 - - `\[sig-network\] IngressClass \[Feature:Ingress\] should set default value on new IngressClass`, //https://bugzilla.redhat.com/show_bug.cgi?id=1833583 - }, - "[Skipped:azure]": { - "Networking should provide Internet connection for containers", // Azure does not allow ICMP traffic to internet. - }, - "[Skipped:gce]": { - // Requires creation of a different compute instance in a different zone and is not compatible with volumeBindingMode of WaitForFirstConsumer which we use in 4.x - `\[sig-scheduling\] Multi-AZ Cluster Volumes \[sig-storage\] should only be allowed to provision PDs in zones where nodes exist`, - - // The following tests try to ssh directly to a node. None of our nodes have external IPs - `\[k8s.io\] \[sig-node\] crictl should be able to run crictl on the node`, - `\[sig-storage\] Flexvolumes should be mountable`, - `\[sig-storage\] Detaching volumes should not work when mount is in progress`, - - // We are using openshift-sdn to conceal metadata - `\[sig-auth\] Metadata Concealment should run a check-metadata-concealment job to completion`, - - // https://bugzilla.redhat.com/show_bug.cgi?id=1740959 - `\[sig-api-machinery\] AdmissionWebhook should be able to deny pod and configmap creation`, - - // https://bugzilla.redhat.com/show_bug.cgi?id=1745720 - `\[sig-storage\] CSI Volumes \[Driver: pd.csi.storage.gke.io\]\[Serial\]`, - - // https://bugzilla.redhat.com/show_bug.cgi?id=1749882 - `\[sig-storage\] CSI Volumes CSI Topology test using GCE PD driver \[Serial\]`, - - // https://bugzilla.redhat.com/show_bug.cgi?id=1751367 - `gce-localssd-scsi-fs`, - - // https://bugzilla.redhat.com/show_bug.cgi?id=1750851 - // should be serial if/when it's re-enabled - `\[HPA\] Horizontal pod autoscaling \(scale resource: Custom Metrics from Stackdriver\)`, - }, - "[sig-node]": { - `\[NodeConformance\]`, - `NodeLease`, - `lease API`, - `\[NodeFeature`, - `\[NodeAlphaFeature`, - `Probing container`, - `Security Context When creating a`, - `Downward API should create a pod that prints his name and namespace`, - `Liveness liveness pods should be automatically restarted`, - `Secret should create a pod that reads a secret`, - `Pods should delete a collection of pods`, - }, - "[sig-cluster-lifecycle]": { - `Feature:ClusterAutoscalerScalability`, - `recreate nodes and ensure they function`, - }, - "[sig-arch]": { - // not run, assigned to arch as catch-all - `\[Feature:GKELocalSSD\]`, - `\[Feature:GKENodePool\]`, - }, - } - - // labelExcludes temporarily block tests out of a specific suite - LabelExcludes = map[string][]string{} - - ExcludedTests = []string{ - `\[Disabled:`, - `\[Disruptive\]`, - `\[Skipped\]`, - `\[Slow\]`, - `\[Flaky\]`, - `\[Local\]`, - } -) diff --git a/openshift-hack/e2e/annotate/rules_test.go b/openshift-hack/e2e/annotate/rules_test.go deleted file mode 100644 index 20ff6570ef2cb..0000000000000 --- a/openshift-hack/e2e/annotate/rules_test.go +++ /dev/null @@ -1,94 +0,0 @@ -package annotate - -import ( - "testing" - - "github.com/onsi/ginkgo/types" -) - -type testNode struct { - text string -} - -func (n *testNode) Type() types.SpecComponentType { - return 0 -} -func (n *testNode) CodeLocation() types.CodeLocation { - return types.CodeLocation{} -} -func (n *testNode) Text() string { - return n.text -} -func (n *testNode) SetText(text string) { - n.text = text -} -func (n *testNode) Flag() types.FlagType { - return 0 -} -func (n *testNode) SetFlag(flag types.FlagType) { -} - -func TestStockRules(t *testing.T) { - tests := []struct { - name string - - testName string - parentName string - - expectedText string - }{ - { - name: "simple serial match", - parentName: "", - testName: "[Serial] test", - expectedText: "[Serial] test [Suite:openshift/conformance/serial]", - }, - { - name: "don't tag skipped", - parentName: "", - testName: `[Serial] example test [Skipped:gce]`, - expectedText: `[Serial] example test [Skipped:gce] [Suite:openshift/conformance/serial]`, // notice that this isn't categorized into any of our buckets - }, - { - name: "not skipped", - parentName: "", - testName: `[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [LinuxOnly] [NodeConformance] [Conformance]`, - expectedText: `[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [LinuxOnly] [NodeConformance] [Conformance] [Suite:openshift/conformance/parallel/minimal]`, - }, - { - name: "should skip localssd on gce", - parentName: "", - testName: `[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted`, - expectedText: `[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: gce-localssd-scsi-fs] [Serial] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted [Skipped:gce] [Suite:openshift/conformance/serial]`, // notice that this isn't categorized into any of our buckets - }, - { - name: "should skip NetworkPolicy tests on multitenant", - parentName: "[Feature:NetworkPolicy]", - testName: `should do something with NetworkPolicy`, - expectedText: `should do something with NetworkPolicy [Skipped:Network/OpenShiftSDN/Multitenant] [Suite:openshift/conformance/parallel]`, - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - testRenamer := newGenerator() - testNode := &testNode{ - text: test.testName, - } - - testRenamer.generateRename(test.testName, test.parentName, testNode) - changed := testRenamer.output[combineNames(test.parentName, test.testName)] - - if e, a := test.expectedText, changed; e != a { - t.Error(a) - } - testRenamer = newRenamerFromGenerated(map[string]string{combineNames(test.parentName, test.testName): test.expectedText}) - testRenamer.updateNodeText(test.testName, test.parentName, testNode) - - if e, a := test.expectedText, testNode.Text(); e != a { - t.Error(a) - } - - }) - } -} diff --git a/openshift-hack/e2e/include.go b/openshift-hack/e2e/include.go deleted file mode 100644 index fb219fb87ff0b..0000000000000 --- a/openshift-hack/e2e/include.go +++ /dev/null @@ -1,23 +0,0 @@ -package e2e - -// This file should import all the packages defining k8s e2e tests that are -// relevant to openshift. It is intended to affect: -// -// - what is included in the k8s-e2e.test binary built from this package -// - the annotations generated by the annotate package - -import ( - _ "k8s.io/kubernetes/test/e2e" - _ "k8s.io/kubernetes/test/e2e/apimachinery" - _ "k8s.io/kubernetes/test/e2e/apps" - _ "k8s.io/kubernetes/test/e2e/auth" - _ "k8s.io/kubernetes/test/e2e/autoscaling" - _ "k8s.io/kubernetes/test/e2e/common" - _ "k8s.io/kubernetes/test/e2e/instrumentation" - _ "k8s.io/kubernetes/test/e2e/kubectl" - _ "k8s.io/kubernetes/test/e2e/network" - _ "k8s.io/kubernetes/test/e2e/node" - _ "k8s.io/kubernetes/test/e2e/scheduling" - _ "k8s.io/kubernetes/test/e2e/servicecatalog" - _ "k8s.io/kubernetes/test/e2e/storage" -) diff --git a/openshift-hack/e2e/kube_e2e_test.go b/openshift-hack/e2e/kube_e2e_test.go deleted file mode 100644 index 27cfc84695b89..0000000000000 --- a/openshift-hack/e2e/kube_e2e_test.go +++ /dev/null @@ -1,110 +0,0 @@ -package e2e - -//go:generate go run -mod vendor ./annotate/cmd -- ./annotate/generated/zz_generated.annotations.go - -// This file duplicates most of test/e2e/e2e_test.go but limits the included -// tests (via include.go) to tests that are relevant to openshift. - -import ( - "flag" - "fmt" - "math/rand" - "os" - "testing" - "time" - - "gopkg.in/yaml.v2" - - // Never, ever remove the line with "/ginkgo". Without it, - // the ginkgo test runner will not detect that this - // directory contains a Ginkgo test suite. - // See https://github.com/kubernetes/kubernetes/issues/74827 - // "github.com/onsi/ginkgo" - - "k8s.io/component-base/version" - "k8s.io/kubernetes/test/e2e" - "k8s.io/kubernetes/test/e2e/framework" - "k8s.io/kubernetes/test/e2e/framework/testfiles" - "k8s.io/kubernetes/test/e2e/generated" - "k8s.io/kubernetes/test/utils/image" - - // Ensure test annotation - _ "k8s.io/kubernetes/openshift-hack/e2e/annotate/generated" -) - -var viperConfig = flag.String("viper-config", "", "The name of a viper config file (https://github.com/spf13/viper#what-is-viper). All e2e command line parameters can also be configured in such a file. May contain a path and may or may not contain the file suffix. The default is to look for an optional file with `e2e` as base name. If a file is specified explicitly, it must be present.") - -func TestMain(m *testing.M) { - var versionFlag bool - flag.CommandLine.BoolVar(&versionFlag, "version", false, "Displays version information.") - - // Register test flags, then parse flags. - e2e.HandleFlags() - - // Now that we know which Viper config (if any) was chosen, - // parse it and update those options which weren't already set via command line flags - // (which have higher priority). - if err := e2e.ViperizeFlagsForKubeE2E(*viperConfig, "e2e", flag.CommandLine); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - - if framework.TestContext.ListImages { - for _, v := range image.GetImageConfigs() { - fmt.Println(v.GetE2EImage()) - } - os.Exit(0) - } - if versionFlag { - fmt.Printf("%s\n", version.Get()) - os.Exit(0) - } - - // Enable bindata file lookup as fallback. - testfiles.AddFileSource(testfiles.BindataFileSource{ - Asset: generated.Asset, - AssetNames: generated.AssetNames, - }) - if framework.TestContext.ListConformanceTests { - var tests []struct { - Testname string `yaml:"testname"` - Codename string `yaml:"codename"` - Description string `yaml:"description"` - Release string `yaml:"release"` - File string `yaml:"file"` - } - - data, err := testfiles.Read("test/conformance/testdata/conformance.yaml") - if err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - if err := yaml.Unmarshal(data, &tests); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - if err := yaml.NewEncoder(os.Stdout).Encode(tests); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - os.Exit(0) - } - - framework.AfterReadingAllFlags(&framework.TestContext) - - // TODO: Deprecating repo-root over time... instead just use gobindata_util.go , see #23987. - // Right now it is still needed, for example by - // test/e2e/framework/ingress/ingress_utils.go - // for providing the optional secret.yaml file and by - // test/e2e/framework/util.go for cluster/log-dump. - if framework.TestContext.RepoRoot != "" { - testfiles.AddFileSource(testfiles.RootFileSource{Root: framework.TestContext.RepoRoot}) - } - - rand.Seed(time.Now().UnixNano()) - os.Exit(m.Run()) -} - -func TestE2E(t *testing.T) { - e2e.RunE2ETests(t) -} diff --git a/openshift-hack/images/OWNERS b/openshift-hack/images/OWNERS deleted file mode 100644 index 7b196b0fb7003..0000000000000 --- a/openshift-hack/images/OWNERS +++ /dev/null @@ -1,11 +0,0 @@ -reviewers: - - smarterclayton - - giuseppe - - JacobTanenbaum - - pweil- - - pecameron - - sdodson -approvers: - - smarterclayton - - pweil- - - sdodson diff --git a/openshift-hack/images/hyperkube/Dockerfile.rhel b/openshift-hack/images/hyperkube/Dockerfile.rhel deleted file mode 100644 index 5cb827d375e56..0000000000000 --- a/openshift-hack/images/hyperkube/Dockerfile.rhel +++ /dev/null @@ -1,16 +0,0 @@ -FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.6 AS builder -WORKDIR /go/src/k8s.io/kubernetes -COPY . . -RUN make WHAT='cmd/kube-apiserver cmd/kube-controller-manager cmd/kube-scheduler cmd/kubelet cmd/watch-termination' && \ - mkdir -p /tmp/build && \ - cp openshift-hack/images/hyperkube/hyperkube /tmp/build && \ - cp /go/src/k8s.io/kubernetes/_output/local/bin/linux/$(go env GOARCH)/{kube-apiserver,kube-controller-manager,kube-scheduler,kubelet,watch-termination} \ - /tmp/build - -FROM registry.ci.openshift.org/ocp/4.6:base -RUN yum install -y --setopt=tsflags=nodocs --setopt=skip_missing_names_on_install=False iproute && yum clean all -COPY --from=builder /tmp/build/* /usr/bin/ -LABEL io.k8s.display-name="OpenShift Kubernetes Server Commands" \ - io.k8s.description="OpenShift is a platform for developing, building, and deploying containerized applications." \ - io.openshift.tags="openshift,hyperkube" \ - io.openshift.build.versions="kubernetes=1.19.4" diff --git a/openshift-hack/images/hyperkube/OWNERS b/openshift-hack/images/hyperkube/OWNERS deleted file mode 100644 index e814678493032..0000000000000 --- a/openshift-hack/images/hyperkube/OWNERS +++ /dev/null @@ -1,5 +0,0 @@ -reviewers: - - smarterclayton - - sdodson -approvers: - - smarterclayton diff --git a/openshift-hack/images/hyperkube/hyperkube b/openshift-hack/images/hyperkube/hyperkube deleted file mode 100755 index cfed9cd737c02..0000000000000 --- a/openshift-hack/images/hyperkube/hyperkube +++ /dev/null @@ -1,57 +0,0 @@ -#!/usr/bin/env bash - -set -o errexit -set -o nounset -set -o pipefail - -BINS=( - kube-apiserver - kube-controller-manager - kube-scheduler - kubelet -) - -function array_contains() { - local search="$1" - local element - shift - for element; do - if [[ "${element}" == "${search}" ]]; then - return 0 - fi - done - return 1 -} - -function print_usage() { - cat </dev/null; then - echo "${command}: command not found" - exit 1 - fi - exec "${command}" "${@}" -} - -main "${@}" \ No newline at end of file diff --git a/openshift-hack/images/os/Dockerfile b/openshift-hack/images/os/Dockerfile deleted file mode 100644 index 6cb0bddfa2a0a..0000000000000 --- a/openshift-hack/images/os/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -FROM fedora:29 AS build - -COPY --from=registry.svc.ci.openshift.org/openshift/origin-v4.0:machine-os-content /srv/ /srv/ -RUN set -x && yum install -y ostree rpm-ostree yum-utils selinux-policy-targeted && \ - curl http://base-4-3-rhel8.ocp.svc > /etc/yum.repos.d/rhel8.repo && \ - commit=$( find /srv -name *.commit | sed -Ee 's|.*objects/(.+)/(.+)\.commit|\1\2|' | head -1 ) && \ - mkdir /tmp/working && cd /tmp/working && \ - rpm-ostree db list --repo /srv/repo $commit > /tmp/packages && \ - PACKAGES=(openshift-hyperkube) && \ - yumdownloader -y --disablerepo=* --enablerepo=built --destdir=/tmp/rpms "${PACKAGES[@]}" && \ - if ! grep -q cri-o /tmp/packages; then yumdownloader -y --disablerepo=* --enablerepo=rhel-8* --destdir=/tmp/rpms cri-o cri-tools; fi && \ - if ! grep -q machine-config-daemon /tmp/packages; then yumdownloader -y --disablerepo=* --enablerepo=rhel-8* --destdir=/tmp/rpms machine-config-daemon; fi && \ - ls /tmp/rpms/ && (cd /tmp/rpms/ && ls ${PACKAGES[@]/%/*}) && \ - for i in $(find /tmp/rpms/ -name *.rpm); do echo "Extracting $i ..."; rpm2cpio $i | cpio -div; done && \ - if [[ -d etc ]]; then mv etc usr/; fi && \ - mkdir -p /tmp/tmprootfs/etc && \ - ostree --repo=/srv/repo checkout -U $commit --subpath /usr/etc/selinux /tmp/tmprootfs/etc/selinux && \ - ostree --repo=/srv/repo commit --parent=$commit --tree=ref=$commit --tree=dir=. \ - --selinux-policy /tmp/tmprootfs \ - -s "origin-ci-dev overlay RPMs" --branch=origin-ci-dev - -FROM scratch -COPY --from=build /srv/ /srv/ diff --git a/openshift-hack/images/tests/Dockerfile.rhel b/openshift-hack/images/tests/Dockerfile.rhel deleted file mode 100644 index c13d4ac7af58b..0000000000000 --- a/openshift-hack/images/tests/Dockerfile.rhel +++ /dev/null @@ -1,21 +0,0 @@ -FROM registry.svc.ci.openshift.org/ocp/builder:rhel-8-golang-1.15-openshift-4.6 AS builder -WORKDIR /go/src/k8s.io/kubernetes -COPY . . -RUN make WHAT=openshift-hack/e2e/k8s-e2e.test; \ - make WHAT=vendor/github.com/onsi/ginkgo/ginkgo; \ - mkdir -p /tmp/build; \ - cp /go/src/k8s.io/kubernetes/_output/local/bin/linux/$(go env GOARCH)/k8s-e2e.test /tmp/build/; \ - cp /go/src/k8s.io/kubernetes/_output/local/bin/linux/$(go env GOARCH)/ginkgo /tmp/build/; \ - cp /go/src/k8s.io/kubernetes/openshift-hack/test-kubernetes-e2e.sh /tmp/build/ - - -FROM registry.svc.ci.openshift.org/ocp/4.6:tools -COPY --from=builder /tmp/build/k8s-e2e.test /usr/bin/ -COPY --from=builder /tmp/build/ginkgo /usr/bin/ -COPY --from=builder /tmp/build/test-kubernetes-e2e.sh /usr/bin/ -RUN yum install --setopt=tsflags=nodocs -y git gzip util-linux && yum clean all && rm -rf /var/cache/yum/* && \ - git config --system user.name test && \ - git config --system user.email test@test.com && \ - chmod g+w /etc/passwd -LABEL io.k8s.display-name="Kubernetes End-to-End Tests" \ - io.openshift.tags="k8s,tests,e2e" diff --git a/openshift-hack/images/tests/OWNERS b/openshift-hack/images/tests/OWNERS deleted file mode 100644 index e814678493032..0000000000000 --- a/openshift-hack/images/tests/OWNERS +++ /dev/null @@ -1,5 +0,0 @@ -reviewers: - - smarterclayton - - sdodson -approvers: - - smarterclayton diff --git a/openshift-hack/lib/build/binaries.sh b/openshift-hack/lib/build/binaries.sh deleted file mode 100644 index e3c71254f37c1..0000000000000 --- a/openshift-hack/lib/build/binaries.sh +++ /dev/null @@ -1,457 +0,0 @@ -#!/usr/bin/env bash - -# This library holds utility functions for building -# and placing Golang binaries for multiple arches. - -# os::build::binaries_from_targets take a list of build targets and return the -# full go package to be built -function os::build::binaries_from_targets() { - local target - for target; do - if [[ -z "${target}" ]]; then - continue - fi - echo "${OS_GO_PACKAGE}/${target}" - done -} -readonly -f os::build::binaries_from_targets - -# Asks golang what it thinks the host platform is. The go tool chain does some -# slightly different things when the target platform matches the host platform. -function os::build::host_platform() { - echo "$(go env GOHOSTOS)/$(go env GOHOSTARCH)" -} -readonly -f os::build::host_platform - -# Create a user friendly version of host_platform for end users -function os::build::host_platform_friendly() { - local platform=${1:-} - if [[ -z "${platform}" ]]; then - platform=$(os::build::host_platform) - fi - if [[ $platform == "windows/amd64" ]]; then - echo "windows" - elif [[ $platform == "darwin/amd64" ]]; then - echo "mac" - elif [[ $platform == "linux/386" ]]; then - echo "linux-32bit" - elif [[ $platform == "linux/amd64" ]]; then - echo "linux-64bit" - elif [[ $platform == "linux/ppc64le" ]]; then - echo "linux-powerpc64" - elif [[ $platform == "linux/arm64" ]]; then - echo "linux-arm64" - elif [[ $platform == "linux/s390x" ]]; then - echo "linux-s390" - else - echo "$(go env GOHOSTOS)-$(go env GOHOSTARCH)" - fi -} -readonly -f os::build::host_platform_friendly - -# This converts from platform/arch to PLATFORM_ARCH, host platform will be -# considered if no parameter passed -function os::build::platform_arch() { - local platform=${1:-} - if [[ -z "${platform}" ]]; then - platform=$(os::build::host_platform) - fi - - echo "${platform}" | tr '[:lower:]/' '[:upper:]_' -} -readonly -f os::build::platform_arch - -# os::build::setup_env will check that the `go` commands is available in -# ${PATH}. If not running on Travis, it will also check that the Go version is -# good enough for the Kubernetes build. -# -# Output Vars: -# export GOPATH - A modified GOPATH to our created tree along with extra -# stuff. -# export GOBIN - This is actively unset if already set as we want binaries -# placed in a predictable place. -function os::build::setup_env() { - os::util::ensure::system_binary_exists 'go' - - if [[ -z "$(which sha256sum)" ]]; then - sha256sum() { - return 0 - } - fi - - # Travis continuous build uses a head go release that doesn't report - # a version number, so we skip this check on Travis. It's unnecessary - # there anyway. - if [[ "${TRAVIS:-}" != "true" ]]; then - os::golang::verify_go_version - fi - # For any tools that expect this to be set (it is default in golang 1.6), - # force vendor experiment. - export GO15VENDOREXPERIMENT=1 - - unset GOBIN - - # create a local GOPATH in _output - GOPATH="${OS_OUTPUT}/go" - OS_TARGET_BIN="${OS_OUTPUT}/go/bin" - local go_pkg_dir="${GOPATH}/src/${OS_GO_PACKAGE}" - local go_pkg_basedir - go_pkg_basedir="$(dirname "${go_pkg_dir}")" - - mkdir -p "${go_pkg_basedir}" - rm -f "${go_pkg_dir}" - - # TODO: This symlink should be relative. - ln -s "${OS_ROOT}" "${go_pkg_dir}" - - # lots of tools "just don't work" unless we're in the GOPATH - cd "${go_pkg_dir}" || exit 1 - - # Append OS_EXTRA_GOPATH to the GOPATH if it is defined. - if [[ -n ${OS_EXTRA_GOPATH:-} ]]; then - GOPATH="${GOPATH}:${OS_EXTRA_GOPATH}" - fi - - export GOPATH - export OS_TARGET_BIN -} -readonly -f os::build::setup_env - -# Build static binary targets. -# -# Input: -# $@ - targets and go flags. If no targets are set then all binaries targets -# are built. -# OS_BUILD_PLATFORMS - Incoming variable of targets to build for. If unset -# then just the host architecture is built. -function os::build::build_static_binaries() { - CGO_ENABLED=0 os::build::build_binaries -installsuffix=cgo "$@" -} -readonly -f os::build::build_static_binaries - -# Build binary targets specified -# -# Input: -# $@ - targets and go flags. If no targets are set then all binaries targets -# are built. -# OS_BUILD_PLATFORMS - Incoming variable of targets to build for. If unset -# then just the host architecture is built. -function os::build::build_binaries() { - if [[ $# -eq 0 ]]; then - return - fi - local -a binaries=( "$@" ) - # Create a sub-shell so that we don't pollute the outer environment - ( os::build::internal::build_binaries "${binaries[@]+"${binaries[@]}"}" ) -} - -# Build binary targets specified. Should always be run in a sub-shell so we don't leak GOBIN -# -# Input: -# $@ - targets and go flags. If no targets are set then all binaries targets -# are built. -# OS_BUILD_PLATFORMS - Incoming variable of targets to build for. If unset -# then just the host architecture is built. -os::build::internal::build_binaries() { - # Check for `go` binary and set ${GOPATH}. - os::build::setup_env - - # Fetch the version. - local version_ldflags - version_ldflags=$(os::build::ldflags) - - local goflags - # Use eval to preserve embedded quoted strings. - eval "goflags=(${OS_GOFLAGS:-})" - gogcflags="${GOGCFLAGS:-}" - - local arg - for arg; do - if [[ "${arg}" == -* ]]; then - # Assume arguments starting with a dash are flags to pass to go. - goflags+=("${arg}") - fi - done - - os::build::export_targets "$@" - - if [[ ! "${targets[*]:+${targets[*]}}" || ! "${binaries[*]:+${binaries[*]}}" ]]; then - return 0 - fi - - local -a nonstatics=() - local -a tests=() - for binary in "${binaries[@]-}"; do - if [[ "${binary}" =~ ".test"$ ]]; then - tests+=("$binary") - else - nonstatics+=("$binary") - fi - done - - local pkgdir="${OS_OUTPUT_PKGDIR}" - if [[ "${CGO_ENABLED-}" == "0" ]]; then - pkgdir+="/static" - fi - - local host_platform - host_platform=$(os::build::host_platform) - local platform - for platform in "${platforms[@]+"${platforms[@]}"}"; do - echo "++ Building go targets for ${platform}:" "${targets[@]}" - mkdir -p "${OS_OUTPUT_BINPATH}/${platform}" - - # output directly to the desired location - if [[ "$platform" == "$host_platform" ]]; then - export GOBIN="${OS_OUTPUT_BINPATH}/${platform}" - else - unset GOBIN - fi - - local platform_gotags_envvar - platform_gotags_envvar=OS_GOFLAGS_TAGS_$(os::build::platform_arch "${platform}") - local platform_gotags_test_envvar - platform_gotags_test_envvar=OS_GOFLAGS_TAGS_TEST_$(os::build::platform_arch "${platform}") - - # work around https://github.com/golang/go/issues/11887 - local local_ldflags="${version_ldflags}" - if [[ "${platform}" == "darwin/amd64" ]]; then - local_ldflags+=" -s" - fi - - #Add Windows File Properties/Version Info and Icon Resource for oc.exe - if [[ "$platform" == "windows/amd64" ]]; then - os::build::generate_windows_versioninfo - fi - - if [[ ${#nonstatics[@]} -gt 0 ]]; then - GOOS=${platform%/*} GOARCH=${platform##*/} go install \ - -tags "${OS_GOFLAGS_TAGS-} ${!platform_gotags_envvar:-}" \ - -ldflags="${local_ldflags}" \ - "${goflags[@]:+${goflags[@]}}" \ - -gcflags "${gogcflags}" \ - "${nonstatics[@]}" - - # GOBIN is not supported on cross-compile in Go 1.5+ - move to the correct target - if [[ "$platform" != "$host_platform" ]]; then - local platform_src="/${platform//\//_}" - mv "${OS_TARGET_BIN}/${platform_src}/"* "${OS_OUTPUT_BINPATH}/${platform}/" - fi - fi - - if [[ "$platform" == "windows/amd64" ]]; then - os::build::clean_windows_versioninfo - fi - - for test in "${tests[@]:+${tests[@]}}"; do - local outfile - outfile="${OS_OUTPUT_BINPATH}/${platform}/$(basename "${test}")" - # disabling cgo allows use of delve - CGO_ENABLED="${OS_TEST_CGO_ENABLED:-}" GOOS=${platform%/*} GOARCH=${platform##*/} go test \ - -tags "${OS_GOFLAGS_TAGS-} ${!platform_gotags_test_envvar:-}" \ - -ldflags "${local_ldflags}" \ - -i -c -o "${outfile}" \ - "${goflags[@]:+${goflags[@]}}" \ - "$(dirname "${test}")" - done - done - - os::build::check_binaries -} -readonly -f os::build::build_binaries - - # Generates the set of target packages, binaries, and platforms to build for. -# Accepts binaries via $@, and platforms via OS_BUILD_PLATFORMS, or defaults to -# the current platform. -function os::build::export_targets() { - platforms=("${OS_BUILD_PLATFORMS[@]:+${OS_BUILD_PLATFORMS[@]}}") - - targets=() - local arg - for arg; do - if [[ "${arg}" != -* ]]; then - targets+=("${arg}") - fi - done - - binaries=($(os::build::binaries_from_targets "${targets[@]-}")) -} -readonly -f os::build::export_targets - -# This will take $@ from $GOPATH/bin and copy them to the appropriate -# place in ${OS_OUTPUT_BINDIR} -# -# If OS_RELEASE_ARCHIVE is set, tar archives prefixed with OS_RELEASE_ARCHIVE for -# each of OS_BUILD_PLATFORMS are created. -# -# Ideally this wouldn't be necessary and we could just set GOBIN to -# OS_OUTPUT_BINDIR but that won't work in the face of cross compilation. 'go -# install' will place binaries that match the host platform directly in $GOBIN -# while placing cross compiled binaries into `platform_arch` subdirs. This -# complicates pretty much everything else we do around packaging and such. -function os::build::place_bins() { - ( - local host_platform - host_platform=$(os::build::host_platform) - - if [[ "${OS_RELEASE_ARCHIVE-}" != "" ]]; then - os::build::version::get_vars - mkdir -p "${OS_OUTPUT_RELEASEPATH}" - fi - - os::build::export_targets "$@" - for platform in "${platforms[@]+"${platforms[@]}"}"; do - # The substitution on platform_src below will replace all slashes with - # underscores. It'll transform darwin/amd64 -> darwin_amd64. - local platform_src="/${platform//\//_}" - - # Skip this directory if the platform has no binaries. - if [[ ! -d "${OS_OUTPUT_BINPATH}/${platform}" ]]; then - continue - fi - - # Create an array of binaries to release. Append .exe variants if the platform is windows. - local -a binaries=() - for binary in "${targets[@]}"; do - binary=$(basename "$binary") - if [[ $platform == "windows/amd64" ]]; then - binaries+=("${binary}.exe") - else - binaries+=("${binary}") - fi - done - - # If no release archive was requested, we're done. - if [[ "${OS_RELEASE_ARCHIVE-}" == "" ]]; then - continue - fi - - # Create a temporary bin directory containing only the binaries marked for release. - local release_binpath - release_binpath=$(mktemp -d "openshift.release.${OS_RELEASE_ARCHIVE}.XXX") - for binary in "${binaries[@]}"; do - cp "${OS_OUTPUT_BINPATH}/${platform}/${binary}" "${release_binpath}/" - done - - # Create the release archive. - platform="$( os::build::host_platform_friendly "${platform}" )" - if [[ ${OS_RELEASE_ARCHIVE} == "openshift-origin" ]]; then - for file in "${OS_BINARY_RELEASE_CLIENT_EXTRA[@]}"; do - cp "${file}" "${release_binpath}/" - done - if [[ $platform == "linux-64bit" ]]; then - OS_RELEASE_ARCHIVE="openshift-origin-server" os::build::archive::tar "${OS_BINARY_RELEASE_SERVER_LINUX[@]}" - elif [[ $platform == "linux-powerpc64" ]]; then - OS_RELEASE_ARCHIVE="openshift-origin-server" os::build::archive::tar "${OS_BINARY_RELEASE_SERVER_LINUX[@]}" - elif [[ $platform == "linux-arm64" ]]; then - OS_RELEASE_ARCHIVE="openshift-origin-server" os::build::archive::tar "${OS_BINARY_RELEASE_SERVER_LINUX[@]}" - elif [[ $platform == "linux-s390" ]]; then - OS_RELEASE_ARCHIVE="openshift-origin-server" os::build::archive::tar "${OS_BINARY_RELEASE_SERVER_LINUX[@]}" - else - echo "++ ERROR: No release type defined for $platform" - fi - else - if [[ $platform == "linux-64bit" || $platform == "linux-powerpc64" || $platform == "linux-arm64" || $platform == "linux-s390" ]]; then - os::build::archive::tar "./*" - else - echo "++ ERROR: No release type defined for $platform" - fi - fi - rm -rf "${release_binpath}" - done - ) -} -readonly -f os::build::place_bins - -# os::build::release_sha calculates a SHA256 checksum over the contents of the -# built release directory. -function os::build::release_sha() { - pushd "${OS_OUTPUT_RELEASEPATH}" &> /dev/null || exit 1 - find . -maxdepth 1 -type f | xargs sha256sum > CHECKSUM - popd &> /dev/null || exit 1 -} -readonly -f os::build::release_sha - -# os::build::make_openshift_binary_symlinks makes symlinks for the openshift -# binary in _output/local/bin/${platform} -function os::build::make_openshift_binary_symlinks() { - platform=$(os::build::host_platform) -} -readonly -f os::build::make_openshift_binary_symlinks - -# DEPRECATED: will be removed -function os::build::ldflag() { - local key=${1} - local val=${2} - - echo "-X ${key}=${val}" -} -readonly -f os::build::ldflag - -# os::build::require_clean_tree exits if the current Git tree is not clean. -function os::build::require_clean_tree() { - if ! git diff-index --quiet HEAD -- || test "$(git ls-files --exclude-standard --others | wc -l)" != 0; then - echo "You can't have any staged or dirty files in $(pwd) for this command." - echo "Either commit them or unstage them to continue." - exit 1 - fi -} -readonly -f os::build::require_clean_tree - -# os::build::commit_range takes one or two arguments - if the first argument is an -# integer, it is assumed to be a pull request and the local origin/pr/# branch is -# used to determine the common range with the second argument. If the first argument -# is not an integer, it is assumed to be a Git commit range and output directly. -function os::build::commit_range() { - local remote - remote="${UPSTREAM_REMOTE:-origin}" - if [[ "$1" =~ ^-?[0-9]+$ ]]; then - local target - target="$(git rev-parse "${remote}/pr/$1")" - if [[ $? -ne 0 ]]; then - echo "Branch does not exist, or you have not configured ${remote}/pr/* style branches from GitHub" 1>&2 - exit 1 - fi - - local base - base="$(git merge-base "${target}" "$2")" - if [[ $? -ne 0 ]]; then - echo "Branch has no common commits with $2" 1>&2 - exit 1 - fi - if [[ "${base}" == "${target}" ]]; then - - # DO NOT TRUST THIS CODE - merged="$(git rev-list --reverse "${target}".."$2" --ancestry-path | head -1)" - if [[ -z "${merged}" ]]; then - echo "Unable to find the commit that merged ${remote}/pr/$1" 1>&2 - exit 1 - fi - #if [[ $? -ne 0 ]]; then - # echo "Unable to find the merge commit for $1: ${merged}" 1>&2 - # exit 1 - #fi - echo "++ pr/$1 appears to have merged at ${merged}" 1>&2 - leftparent="$(git rev-list --parents -n 1 "${merged}" | cut -f2 -d ' ')" - if [[ $? -ne 0 ]]; then - echo "Unable to find the left-parent for the merge of for $1" 1>&2 - exit 1 - fi - base="$(git merge-base "${target}" "${leftparent}")" - if [[ $? -ne 0 ]]; then - echo "Unable to find the common commit between ${leftparent} and $1" 1>&2 - exit 1 - fi - echo "${base}..${target}" - exit 0 - #echo "Branch has already been merged to upstream master, use explicit range instead" 1>&2 - #exit 1 - fi - - echo "${base}...${target}" - exit 0 - fi - - echo "$1" -} -readonly -f os::build::commit_range diff --git a/openshift-hack/lib/build/rpm.sh b/openshift-hack/lib/build/rpm.sh deleted file mode 100644 index 275602de6f067..0000000000000 --- a/openshift-hack/lib/build/rpm.sh +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/env bash - -# This library holds utilities for building RPMs from Origin. - -# os::build::rpm::generate_nevra_vars determines the NEVRA of the RPMs -# that would be built from the current git state. -# -# Globals: -# - OS_GIT_VERSION -# Arguments: -# - None -# Exports: -# - OS_RPM_VERSION -# - OS_RPM_RELEASE -# - OS_RPM_ARCHITECTURE -function os::build::rpm::get_nvra_vars() { - # the package name can be overwritten but is normally 'origin' - OS_RPM_ARCHITECTURE="$(uname -i)" - - # we can extract the package version from the build version - os::build::version::get_vars - if [[ "${OS_GIT_VERSION}" =~ ^v([0-9](\.[0-9]+)*)(.*) ]]; then - OS_RPM_VERSION="${BASH_REMATCH[1]}" - metadata="${BASH_REMATCH[3]}" - else - os::log::fatal "Malformed \$OS_GIT_VERSION: ${OS_GIT_VERSION}" - fi - - # we can generate the package release from the git version metadata - # OS_GIT_VERSION will always have metadata, but either contain - # pre-release information _and_ build metadata, or only the latter. - # Build metadata may or may not contain the number of commits past - # the last tag. If no commit number exists, we are on a tag and use 0. - # ex. - # -alpha.0+shasums-123-dirty - # -alpha.0+shasums-123 - # -alpha.0+shasums-dirty - # -alpha.0+shasums - # +shasums-123-dirty - # +shasums-123 - # +shasums-dirty - # +shasums - if [[ "${metadata:0:1}" == "+" ]]; then - # we only have build metadata, but need to massage it so - # we can generate a valid RPM release from it - if [[ "${metadata}" =~ ^\+([a-z0-9]{7,40})(-([0-9]+))?(-dirty)?$ ]]; then - build_sha="${BASH_REMATCH[1]}" - build_num="${BASH_REMATCH[3]:-0}" - else - os::log::fatal "Malformed git version metadata: ${metadata}" - fi - OS_RPM_RELEASE="1.${build_num}.${build_sha}" - elif [[ "${metadata:0:1}" == "-" ]]; then - # we have both build metadata and pre-release info - if [[ "${metadata}" =~ ^-([^\+]+)\+([a-z0-9]{7,40})(-([0-9]+))?(-dirty)?$ ]]; then - pre_release="${BASH_REMATCH[1]}" - build_sha="${BASH_REMATCH[2]}" - build_num="${BASH_REMATCH[4]:-0}" - else - os::log::fatal "Malformed git version metadata: ${metadata}" - fi - OS_RPM_RELEASE="0.${pre_release}.${build_num}.${build_sha}" - else - os::log::fatal "Malformed git version metadata: ${metadata}" - fi - - OS_RPM_GIT_VARS=$( os::build::version::save_vars | tr '\n' ' ' ) - - export OS_RPM_VERSION OS_RPM_RELEASE OS_RPM_ARCHITECTURE OS_RPM_GIT_VARS -} - - -# os::build::rpm::format_nvra formats the rpm NVRA vars generated by -# os::build::rpm::get_nvra_vars and will generate them if necessary -# -# Globals: -# - OS_RPM_NAME -# - OS_RPM_VERSION -# - OS_RPM_RELEASE -# - OS_RPM_ARCHITECTURE -# Arguments: -# None -# Returns: -# None -function os::build::rpm::format_nvra() { - if [[ -z "${OS_RPM_VERSION:-}" || -z "${OS_RPM_RELEASE:-}" ]]; then - os::build::rpm::get_nvra_vars - fi - if [[ -z "${OS_RPM_NAME-}" ]]; then - OS_RPM_SPECFILE="$( find "${OS_ROOT}" -name '*.spec' )" - OS_RPM_NAME="$( rpmspec -q --qf '%{name}\n' "${OS_RPM_SPECFILE}" | head -1 )" - fi - - echo "${OS_RPM_NAME}-${OS_RPM_VERSION}-${OS_RPM_RELEASE}.${OS_RPM_ARCHITECTURE}" -} diff --git a/openshift-hack/lib/build/version.sh b/openshift-hack/lib/build/version.sh deleted file mode 100644 index 18900881e2e0c..0000000000000 --- a/openshift-hack/lib/build/version.sh +++ /dev/null @@ -1,96 +0,0 @@ -#!/usr/bin/env bash - -# This library holds utility functions for determining -# product versions from Git repository state. - -# os::build::version::get_vars loads the standard version variables as -# ENV vars -function os::build::version::get_vars() { - if [[ -n "${OS_VERSION_FILE-}" ]]; then - if [[ -f "${OS_VERSION_FILE}" ]]; then - source "${OS_VERSION_FILE}" - return - fi - if [[ ! -d "${OS_ROOT}/.git" ]]; then - os::log::fatal "No version file at ${OS_VERSION_FILE}" - fi - os::log::warning "No version file at ${OS_VERSION_FILE}, falling back to git versions" - fi - os::build::version::git_vars -} -readonly -f os::build::version::get_vars - -# os::build::version::git_vars looks up the current Git vars if they have not been calculated. -function os::build::version::git_vars() { - if [[ -n "${OS_GIT_VERSION-}" ]]; then - return 0 - fi - - local git=(git --work-tree "${OS_ROOT}") - - if [[ -n ${OS_GIT_COMMIT-} ]] || OS_GIT_COMMIT=$("${git[@]}" rev-parse --short "HEAD^{commit}" 2>/dev/null); then - if [[ -z ${OS_GIT_TREE_STATE-} ]]; then - # Check if the tree is dirty. default to dirty - if git_status=$("${git[@]}" status --porcelain 2>/dev/null) && [[ -z ${git_status} ]]; then - OS_GIT_TREE_STATE="clean" - else - OS_GIT_TREE_STATE="dirty" - fi - fi - # Use git describe to find the version based on annotated tags. - if [[ -n ${OS_GIT_VERSION-} ]] || OS_GIT_VERSION=$("${git[@]}" describe --long --tags --abbrev=7 --match 'v[0-9]*' "${OS_GIT_COMMIT}^{commit}" 2>/dev/null); then - # Try to match the "git describe" output to a regex to try to extract - # the "major" and "minor" versions and whether this is the exact tagged - # version or whether the tree is between two tagged versions. - if [[ "${OS_GIT_VERSION}" =~ ^v([0-9]+)\.([0-9]+)\.([0-9]+)(\.[0-9]+)*([-].*)?$ ]]; then - OS_GIT_MAJOR=${BASH_REMATCH[1]} - OS_GIT_MINOR=${BASH_REMATCH[2]} - OS_GIT_PATCH=${BASH_REMATCH[3]} - if [[ -n "${BASH_REMATCH[5]}" ]]; then - OS_GIT_MINOR+="+" - fi - fi - - # This translates the "git describe" to an actual semver.org - # compatible semantic version that looks something like this: - # v1.1.0-alpha.0.6+84c76d1-345 - # shellcheck disable=SC2001 - OS_GIT_VERSION=$(echo "${OS_GIT_VERSION}" | sed "s/-\([0-9]\{1,\}\)-g\([0-9a-f]\{7,40\}\)$/\+\2-\1/") - # If this is an exact tag, remove the last segment. - OS_GIT_VERSION="${OS_GIT_VERSION//-0$/}" - if [[ "${OS_GIT_TREE_STATE}" == "dirty" ]]; then - # git describe --dirty only considers changes to existing files, but - # that is problematic since new untracked .go files affect the build, - # so use our idea of "dirty" from git status instead. - OS_GIT_VERSION+="-dirty" - fi - fi - fi - -} -readonly -f os::build::version::git_vars - -# Saves the environment flags to $1 -function os::build::version::save_vars() { - # Set the kube vars to the os vars to ensure correct versioning - # when using rpmbuild. This is necessary to ensure the kube build - # tooling correctly sets the version of binaries when building - # from source. - cat <> "${JUNIT_REPORT_OUTPUT:-/dev/null}" ) - os::test::junit::declare_test_end - return "${return_code}" -} -readonly -f os::cmd::internal::expect_exit_code_run_grep - -# os::cmd::internal::init_tempdir initializes the temporary directory -function os::cmd::internal::init_tempdir() { - mkdir -p "${os_cmd_internal_tmpdir}" - rm -f "${os_cmd_internal_tmpdir}"/tmp_std{out,err}.log -} -readonly -f os::cmd::internal::init_tempdir - -# os::cmd::internal::describe_call determines the file:line of the latest function call made -# from outside of this file in the call stack, and the name of the function being called from -# that line, returning a string describing the call -function os::cmd::internal::describe_call() { - local cmd=$1 - local cmd_eval_func=$2 - local grep_args=${3:-} - local test_eval_func=${4:-} - - local caller_id - caller_id=$(os::cmd::internal::determine_caller) - local full_name="${caller_id}: executing '${cmd}'" - - local cmd_expectation - cmd_expectation=$(os::cmd::internal::describe_expectation "${cmd_eval_func}") - local full_name="${full_name} expecting ${cmd_expectation}" - - if [[ -n "${grep_args}" ]]; then - local text_expecting= - case "${test_eval_func}" in - "os::cmd::internal::success_func") - text_expecting="text" ;; - "os::cmd::internal::failure_func") - text_expecting="not text" ;; - esac - full_name="${full_name} and ${text_expecting} '${grep_args}'" - fi - - echo "${full_name}" -} -readonly -f os::cmd::internal::describe_call - -# os::cmd::internal::determine_caller determines the file relative to the OpenShift Origin root directory -# and line number of the function call to the outer os::cmd wrapper function -function os::cmd::internal::determine_caller() { - local call_depth= - local len_sources="${#BASH_SOURCE[@]}" - for (( i=0; i>"${os_cmd_internal_tmpout}" 2>>"${os_cmd_internal_tmperr}" || result=$? - local result=${result:-0} # if we haven't set result yet, the command succeeded - - return "${result}" -} -readonly -f os::cmd::internal::run_collecting_output - -# os::cmd::internal::success_func determines if the input exit code denotes success -# this function returns 0 for false and 1 for true to be compatible with arithmetic tests -function os::cmd::internal::success_func() { - local exit_code=$1 - - # use a negated test to get output correct for (( )) - [[ "${exit_code}" -ne "0" ]] - return $? -} -readonly -f os::cmd::internal::success_func - -# os::cmd::internal::failure_func determines if the input exit code denotes failure -# this function returns 0 for false and 1 for true to be compatible with arithmetic tests -function os::cmd::internal::failure_func() { - local exit_code=$1 - - # use a negated test to get output correct for (( )) - [[ "${exit_code}" -eq "0" ]] - return $? -} -readonly -f os::cmd::internal::failure_func - -# os::cmd::internal::specific_code_func determines if the input exit code matches the given code -# this function returns 0 for false and 1 for true to be compatible with arithmetic tests -function os::cmd::internal::specific_code_func() { - local expected_code=$1 - local exit_code=$2 - - # use a negated test to get output correct for (( )) - [[ "${exit_code}" -ne "${expected_code}" ]] - return $? -} -readonly -f os::cmd::internal::specific_code_func - -# os::cmd::internal::get_results prints the stderr and stdout files -function os::cmd::internal::get_results() { - cat "${os_cmd_internal_tmpout}" "${os_cmd_internal_tmperr}" -} -readonly -f os::cmd::internal::get_results - -# os::cmd::internal::get_last_results prints the stderr and stdout from the last attempt -function os::cmd::internal::get_last_results() { - awk 'BEGIN { RS = "\x1e" } END { print $0 }' "${os_cmd_internal_tmpout}" - awk 'BEGIN { RS = "\x1e" } END { print $0 }' "${os_cmd_internal_tmperr}" -} -readonly -f os::cmd::internal::get_last_results - -# os::cmd::internal::mark_attempt marks the end of an attempt in the stdout and stderr log files -# this is used to make the try_until_* output more concise -function os::cmd::internal::mark_attempt() { - echo -e '\x1e' >> "${os_cmd_internal_tmpout}" - echo -e '\x1e' >> "${os_cmd_internal_tmperr}" -} -readonly -f os::cmd::internal::mark_attempt - -# os::cmd::internal::compress_output compresses an output file into timeline representation -function os::cmd::internal::compress_output() { - local logfile=$1 - - awk -f "${OS_ROOT}/hack/lib/compress.awk" "${logfile}" -} -readonly -f os::cmd::internal::compress_output - -# os::cmd::internal::print_results pretty-prints the stderr and stdout files. If attempt separators -# are present, this function returns a concise view of the stdout and stderr output files using a -# timeline format, where consecutive output lines that are the same are condensed into one line -# with a counter -function os::cmd::internal::print_results() { - if [[ -s "${os_cmd_internal_tmpout}" ]]; then - echo "Standard output from the command:" - if grep -q $'\x1e' "${os_cmd_internal_tmpout}"; then - os::cmd::internal::compress_output "${os_cmd_internal_tmpout}" - else - cat "${os_cmd_internal_tmpout}"; echo - fi - else - echo "There was no output from the command." - fi - - if [[ -s "${os_cmd_internal_tmperr}" ]]; then - echo "Standard error from the command:" - if grep -q $'\x1e' "${os_cmd_internal_tmperr}"; then - os::cmd::internal::compress_output "${os_cmd_internal_tmperr}" - else - cat "${os_cmd_internal_tmperr}"; echo - fi - else - echo "There was no error output from the command." - fi -} -readonly -f os::cmd::internal::print_results - -# os::cmd::internal::assemble_causes determines from the two input booleans which part of the test -# failed and generates a nice delimited list of failure causes -function os::cmd::internal::assemble_causes() { - local cmd_succeeded=$1 - local test_succeeded=$2 - - local causes=() - if (( ! cmd_succeeded )); then - causes+=("the command returned the wrong error code") - fi - if (( ! test_succeeded )); then - causes+=("the output content test failed") - fi - - local list - list=$(printf '; %s' "${causes[@]}") - echo "${list:2}" -} -readonly -f os::cmd::internal::assemble_causes - -# os::cmd::internal::run_until_exit_code runs the provided command until the exit code test given -# succeeds or the timeout given runs out. Output from the command to be tested is suppressed unless -# either `VERBOSE=1` or the test fails. This function bypasses any error exiting settings or traps -# set by upstream callers by masking the return code of the command with the return code of setting -# the result variable on failure. -# -# Globals: -# - JUNIT_REPORT_OUTPUT -# - VERBOSE -# Arguments: -# - 1: the command to run -# - 2: command evaluation assertion to use -# - 3: timeout duration -# - 4: interval duration -# Returns: -# - 0: if all assertions met before timeout -# - 1: if timeout occurs -function os::cmd::internal::run_until_exit_code() { - local cmd=$1 - local cmd_eval_func=$2 - local duration=$3 - local interval=$4 - - local -a junit_log - - os::cmd::internal::init_tempdir - os::test::junit::declare_test_start - - local description - description=$(os::cmd::internal::describe_call "${cmd}" "${cmd_eval_func}") - local duration_seconds - duration_seconds=$(echo "scale=3; $(( duration )) / 1000" | bc | xargs printf '%5.3f') - local description="${description}; re-trying every ${interval}s until completion or ${duration_seconds}s" - local preamble="Running ${description}..." - echo "${preamble}" - # for ease of parsing, we want the entire declaration on one line, so we replace '\n' with ';' - junit_log+=( "${description//$'\n'/;}" ) - - local start_time - start_time=$(os::cmd::internal::seconds_since_epoch) - - local deadline=$(( $(date +%s000) + duration )) - local cmd_succeeded=0 - while [ "$(date +%s000)" -lt $deadline ]; do - local cmd_result - cmd_result=$( os::cmd::internal::run_collecting_output "${cmd}"; echo $? ) - cmd_succeeded=$( ${cmd_eval_func} "${cmd_result}"; echo $? ) - if (( cmd_succeeded )); then - break - fi - sleep "${interval}" - os::cmd::internal::mark_attempt - done - - local end_time - end_time=$(os::cmd::internal::seconds_since_epoch) - local time_elapsed - time_elapsed=$(echo "scale=9; ${end_time} - ${start_time}" | bc | xargs printf '%5.3f') # in decimal seconds, we need leading zeroes for parsing later - - # clear the preamble so we can print out the success or error message - os::text::clear_string "${preamble}" - - local return_code - if (( cmd_succeeded )); then - os::text::print_green "SUCCESS after ${time_elapsed}s: ${description}" - junit_log+=( "SUCCESS after ${time_elapsed}s: ${description//$'\n'/;}" ) - - if [[ -n ${VERBOSE-} ]]; then - os::cmd::internal::print_results - fi - return_code=0 - else - os::text::print_red_bold "FAILURE after ${time_elapsed}s: ${description}: the command timed out" - junit_log+=( "FAILURE after ${time_elapsed}s: ${description//$'\n'/;}: the command timed out" ) - - os::text::print_red "$(os::cmd::internal::print_results)" - return_code=1 - fi - - junit_log+=( "$(os::cmd::internal::print_results)" ) - ( IFS=$'\n'; echo "${junit_log[*]}" >> "${JUNIT_REPORT_OUTPUT:-/dev/null}" ) - os::test::junit::declare_test_end - return "${return_code}" -} -readonly -f os::cmd::internal::run_until_exit_code - -# os::cmd::internal::run_until_text runs the provided command until the assertion function succeeds with -# the given text on the command output or the timeout given runs out. This can be used to run until the -# output does or does not contain some text. Output from the command to be tested is suppressed unless -# either `VERBOSE=1` or the test fails. This function bypasses any error exiting settings or traps -# set by upstream callers by masking the return code of the command with the return code of setting -# the result variable on failure. -# -# Globals: -# - JUNIT_REPORT_OUTPUT -# - VERBOSE -# Arguments: -# - 1: the command to run -# - 2: text to test for -# - 3: text assertion to use -# - 4: timeout duration -# - 5: interval duration -# Returns: -# - 0: if all assertions met before timeout -# - 1: if timeout occurs -function os::cmd::internal::run_until_text() { - local cmd=$1 - local text=$2 - local test_eval_func=${3:-os::cmd::internal::success_func} - local duration=$4 - local interval=$5 - - local -a junit_log - - os::cmd::internal::init_tempdir - os::test::junit::declare_test_start - - local description - description=$(os::cmd::internal::describe_call "${cmd}" "" "${text}" "${test_eval_func}") - local duration_seconds - duration_seconds=$(echo "scale=3; $(( duration )) / 1000" | bc | xargs printf '%5.3f') - local description="${description}; re-trying every ${interval}s until completion or ${duration_seconds}s" - local preamble="Running ${description}..." - echo "${preamble}" - # for ease of parsing, we want the entire declaration on one line, so we replace '\n' with ';' - junit_log+=( "${description//$'\n'/;}" ) - - local start_time - start_time=$(os::cmd::internal::seconds_since_epoch) - - local deadline - deadline=$(( $(date +%s000) + duration )) - local test_succeeded=0 - while [ "$(date +%s000)" -lt $deadline ]; do - local cmd_result= - cmd_result=$( os::cmd::internal::run_collecting_output "${cmd}"; echo $? ) - local test_result - test_result=$( os::cmd::internal::run_collecting_output 'grep -Eq "'"${text}"'" <(os::cmd::internal::get_last_results)'; echo $? ) - test_succeeded=$( ${test_eval_func} "${test_result}"; echo $? ) - - if (( test_succeeded )); then - break - fi - sleep "${interval}" - os::cmd::internal::mark_attempt - done - - local end_time - end_time=$(os::cmd::internal::seconds_since_epoch) - local time_elapsed - time_elapsed=$(echo "scale=9; ${end_time} - ${start_time}" | bc | xargs printf '%5.3f') # in decimal seconds, we need leading zeroes for parsing later - - # clear the preamble so we can print out the success or error message - os::text::clear_string "${preamble}" - - local return_code - if (( test_succeeded )); then - os::text::print_green "SUCCESS after ${time_elapsed}s: ${description}" - junit_log+=( "SUCCESS after ${time_elapsed}s: ${description//$'\n'/;}" ) - - if [[ -n ${VERBOSE-} ]]; then - os::cmd::internal::print_results - fi - return_code=0 - else - os::text::print_red_bold "FAILURE after ${time_elapsed}s: ${description}: the command timed out" - junit_log+=( "FAILURE after ${time_elapsed}s: ${description//$'\n'/;}: the command timed out" ) - - os::text::print_red "$(os::cmd::internal::print_results)" - return_code=1 - fi - - junit_log+=( "$(os::cmd::internal::print_results)" ) - ( IFS=$'\n'; echo "${junit_log[*]}" >> "${JUNIT_REPORT_OUTPUT:-/dev/null}" ) - os::test::junit::declare_test_end - return "${return_code}" -} -readonly -f os::cmd::internal::run_until_text diff --git a/openshift-hack/lib/constants.sh b/openshift-hack/lib/constants.sh deleted file mode 100755 index 3552d53115d68..0000000000000 --- a/openshift-hack/lib/constants.sh +++ /dev/null @@ -1,324 +0,0 @@ -#!/usr/bin/env bash - -# This script provides constants for the Golang binary build process - -readonly OS_GO_PACKAGE=github.com/openshift/origin - -readonly OS_BUILD_ENV_GOLANG="${OS_BUILD_ENV_GOLANG:-1.15}" -readonly OS_BUILD_ENV_IMAGE="${OS_BUILD_ENV_IMAGE:-openshift/origin-release:golang-${OS_BUILD_ENV_GOLANG}}" -readonly OS_REQUIRED_GO_VERSION="go${OS_BUILD_ENV_GOLANG}" -readonly OS_GLIDE_MINOR_VERSION="13" -readonly OS_REQUIRED_GLIDE_VERSION="0.$OS_GLIDE_MINOR_VERSION" - -readonly OS_GOFLAGS_TAGS="include_gcs include_oss containers_image_openpgp" -readonly OS_GOFLAGS_TAGS_LINUX_AMD64="gssapi selinux" -readonly OS_GOFLAGS_TAGS_LINUX_S390X="gssapi selinux" -readonly OS_GOFLAGS_TAGS_LINUX_ARM64="gssapi selinux" -readonly OS_GOFLAGS_TAGS_LINUX_PPC64LE="gssapi selinux" - -readonly OS_OUTPUT_BASEPATH="${OS_OUTPUT_BASEPATH:-_output}" -readonly OS_BASE_OUTPUT="${OS_ROOT}/${OS_OUTPUT_BASEPATH}" -readonly OS_OUTPUT_SCRIPTPATH="${OS_OUTPUT_SCRIPTPATH:-"${OS_BASE_OUTPUT}/scripts"}" - -readonly OS_OUTPUT_SUBPATH="${OS_OUTPUT_SUBPATH:-${OS_OUTPUT_BASEPATH}/local}" -readonly OS_OUTPUT="${OS_ROOT}/${OS_OUTPUT_SUBPATH}" -readonly OS_OUTPUT_RELEASEPATH="${OS_OUTPUT}/releases" -readonly OS_OUTPUT_RPMPATH="${OS_OUTPUT_RELEASEPATH}/rpms" -readonly OS_OUTPUT_BINPATH="${OS_OUTPUT}/bin" -readonly OS_OUTPUT_PKGDIR="${OS_OUTPUT}/pkgdir" - -readonly OS_IMAGE_COMPILE_TARGETS_LINUX=( - vendor/k8s.io/kubernetes/cmd/kube-apiserver - vendor/k8s.io/kubernetes/cmd/kube-controller-manager - vendor/k8s.io/kubernetes/cmd/kube-scheduler - vendor/k8s.io/kubernetes/cmd/kubelet -) -readonly OS_SCRATCH_IMAGE_COMPILE_TARGETS_LINUX=( - "" -) -readonly OS_IMAGE_COMPILE_BINARIES=("${OS_SCRATCH_IMAGE_COMPILE_TARGETS_LINUX[@]##*/}" "${OS_IMAGE_COMPILE_TARGETS_LINUX[@]##*/}") - -readonly OS_GOVET_BLACKLIST=( -) - -#If you update this list, be sure to get the images/origin/Dockerfile -readonly OS_BINARY_RELEASE_SERVER_LINUX=( - './*' -) -readonly OS_BINARY_RELEASE_CLIENT_EXTRA=( - ${OS_ROOT}/README.md - ${OS_ROOT}/LICENSE -) - -# os::build::get_product_vars exports variables that we expect to change -# depending on the distribution of Origin -function os::build::get_product_vars() { - export OS_BUILD_LDFLAGS_IMAGE_PREFIX="${OS_IMAGE_PREFIX:-"openshift/origin"}" - export OS_BUILD_LDFLAGS_DEFAULT_IMAGE_STREAMS="${OS_BUILD_LDFLAGS_DEFAULT_IMAGE_STREAMS:-"centos7"}" -} - -# os::build::ldflags calculates the -ldflags argument for building OpenShift -function os::build::ldflags() { - # Run this in a subshell to prevent settings/variables from leaking. - set -o errexit - set -o nounset - set -o pipefail - - cd "${OS_ROOT}" - - os::build::version::get_vars - os::build::get_product_vars - - local buildDate="$(date -u +'%Y-%m-%dT%H:%M:%SZ')" - - declare -a ldflags=( - "-s" - "-w" - ) - - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/pkg/version.majorFromGit" "${OS_GIT_MAJOR}")) - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/pkg/version.minorFromGit" "${OS_GIT_MINOR}")) - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/pkg/version.versionFromGit" "${OS_GIT_VERSION}")) - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/pkg/version.commitFromGit" "${OS_GIT_COMMIT}")) - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/pkg/version.gitTreeState" "${OS_GIT_TREE_STATE}")) - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/pkg/version.buildDate" "${buildDate}")) - - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/vendor/k8s.io/component-base/version.gitMajor" "${KUBE_GIT_MAJOR}")) - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/vendor/k8s.io/component-base/version.gitMinor" "${KUBE_GIT_MINOR}")) - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/vendor/k8s.io/component-base/version.gitCommit" "${OS_GIT_COMMIT}")) - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/vendor/k8s.io/component-base/version.gitVersion" "${KUBE_GIT_VERSION}")) - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/vendor/k8s.io/component-base/version.buildDate" "${buildDate}")) - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/vendor/k8s.io/component-base/version.gitTreeState" "clean")) - - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/vendor/k8s.io/client-go/pkg/version.gitMajor" "${KUBE_GIT_MAJOR}")) - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/vendor/k8s.io/client-go/pkg/version.gitMinor" "${KUBE_GIT_MINOR}")) - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/vendor/k8s.io/client-go/pkg/version.gitCommit" "${OS_GIT_COMMIT}")) - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/vendor/k8s.io/client-go/pkg/version.gitVersion" "${KUBE_GIT_VERSION}")) - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/vendor/k8s.io/client-go/pkg/version.buildDate" "${buildDate}")) - ldflags+=($(os::build::ldflag "${OS_GO_PACKAGE}/vendor/k8s.io/client-go/pkg/version.gitTreeState" "clean") -) - - # The -ldflags parameter takes a single string, so join the output. - echo "${ldflags[*]-}" -} -readonly -f os::build::ldflags - -# os::util::list_go_src_files lists files we consider part of our project -# source code, useful for tools that iterate over source to provide vet- -# ting or linting, etc. -# -# Globals: -# None -# Arguments: -# None -# Returns: -# None -function os::util::list_go_src_files() { - find . -not \( \ - \( \ - -wholename './_output' \ - -o -wholename './.*' \ - -o -wholename './pkg/assets/bindata.go' \ - -o -wholename './pkg/assets/*/bindata.go' \ - -o -wholename './pkg/oc/clusterup/manifests/bindata.go' \ - -o -wholename './openshift.local.*' \ - -o -wholename './test/extended/testdata/bindata.go' \ - -o -wholename '*/vendor/*' \ - -o -wholename './assets/bower_components/*' \ - \) -prune \ - \) -name '*.go' | sort -u -} -readonly -f os::util::list_go_src_files - -# os::util::list_go_src_dirs lists dirs in origin/ and cmd/ dirs excluding -# doc.go, useful for tools that iterate over source to provide vetting or -# linting, or for godep-save etc. -# -# Globals: -# None -# Arguments: -# None -# Returns: -# None -function os::util::list_go_src_dirs() { - go list -e ./... | grep -Ev "/(third_party|vendor|staging|clientset_generated)/" | LC_ALL=C sort -u -} -readonly -f os::util::list_go_src_dirs - -# os::util::list_go_deps outputs the list of dependencies for the project. -function os::util::list_go_deps() { - go list -f '{{.ImportPath}}{{.Imports}}' ./test/... ./pkg/... ./cmd/... ./vendor/k8s.io/... | tr '[]' ' ' | - sed -e 's|github.com/openshift/origin/vendor/||g' | - sed -e 's|k8s.io/kubernetes/staging/src/||g' -} - -# os::util::list_test_packages_under lists all packages containing Golang test files that we -# want to run as unit tests under the given base dir in the source tree -function os::util::list_test_packages_under() { - local basedir=$* - - # we do not quote ${basedir} to allow for multiple arguments to be passed in as well as to allow for - # arguments that use expansion, e.g. paths containing brace expansion or wildcards - # we do not quote ${basedir} to allow for multiple arguments to be passed in as well as to allow for - # arguments that use expansion, e.g. paths containing brace expansion or wildcards - find ${basedir} -not \( \ - \( \ - -path 'vendor' \ - -o -path '*_output' \ - -o -path '*.git' \ - -o -path '*openshift.local.*' \ - -o -path '*vendor/*' \ - -o -path '*assets/node_modules' \ - -o -path '*test/*' \ - -o -path '*pkg/proxy' \ - -o -path '*k8s.io/kubernetes/cluster/gce*' \ - \) -prune \ - \) -name '*_test.go' | xargs -n1 dirname | sort -u | xargs -n1 printf "${OS_GO_PACKAGE}/%s\n" - - local kubernetes_path="vendor/k8s.io/kubernetes" - - if [[ -n "${TEST_KUBE-}" ]]; then - # we need to find all of the kubernetes test suites, excluding those we directly whitelisted before, the end-to-end suite, and - # cmd wasn't done before using glide and constantly flakes - # the forked etcd packages are used only by the gce etcd containers - find -L vendor/k8s.io/{api,apimachinery,apiserver,client-go,kube-aggregator,kubernetes} -not \( \ - \( \ - -path "${kubernetes_path}/staging" \ - -o -path "${kubernetes_path}/cmd" \ - -o -path "${kubernetes_path}/test" \ - -o -path "${kubernetes_path}/third_party/forked/etcd*" \ - -o -path "${kubernetes_path}/cluster/gce" \ - \) -prune \ - \) -name '*_test.go' | cut -f 2- -d / | xargs -n1 dirname | sort -u | xargs -n1 printf "${OS_GO_PACKAGE}/vendor/%s\n" - else - echo "${OS_GO_PACKAGE}/vendor/k8s.io/api/..." - echo "${OS_GO_PACKAGE}/vendor/k8s.io/kubernetes/pkg/api/..." - echo "${OS_GO_PACKAGE}/vendor/k8s.io/kubernetes/pkg/apis/..." - fi -} -readonly -f os::util::list_test_packages_under - -# Generates the .syso file used to add compile-time VERSIONINFO metadata to the -# Windows binary. -function os::build::generate_windows_versioninfo() { - os::build::version::get_vars - local major="${OS_GIT_MAJOR}" - local minor="${OS_GIT_MINOR%+}" - local patch="${OS_GIT_PATCH}" - local windows_versioninfo_file=`mktemp --suffix=".versioninfo.json"` - cat <"${windows_versioninfo_file}" -{ - "FixedFileInfo": - { - "FileVersion": { - "Major": ${major}, - "Minor": ${minor}, - "Patch": ${patch} - }, - "ProductVersion": { - "Major": ${major}, - "Minor": ${minor}, - "Patch": ${patch} - }, - "FileFlagsMask": "3f", - "FileFlags ": "00", - "FileOS": "040004", - "FileType": "01", - "FileSubType": "00" - }, - "StringFileInfo": - { - "Comments": "", - "CompanyName": "Red Hat, Inc.", - "InternalName": "openshift client", - "FileVersion": "${OS_GIT_VERSION}", - "InternalName": "oc", - "LegalCopyright": "© Red Hat, Inc. Licensed under the Apache License, Version 2.0", - "LegalTrademarks": "", - "OriginalFilename": "oc.exe", - "PrivateBuild": "", - "ProductName": "OpenShift Client", - "ProductVersion": "${OS_GIT_VERSION}", - "SpecialBuild": "" - }, - "VarFileInfo": - { - "Translation": { - "LangID": "0409", - "CharsetID": "04B0" - } - } -} -EOF - goversioninfo -o ${OS_ROOT}/vendor/github.com/openshift/oc/cmd/oc/oc.syso ${windows_versioninfo_file} -} -readonly -f os::build::generate_windows_versioninfo - -# Removes the .syso file used to add compile-time VERSIONINFO metadata to the -# Windows binary. -function os::build::clean_windows_versioninfo() { - rm ${OS_ROOT}/vendor/github.com/openshift/oc/cmd/oc/oc.syso -} -readonly -f os::build::clean_windows_versioninfo - -# OS_ALL_IMAGES is the list of images built by os::build::images. -readonly OS_ALL_IMAGES=( - origin-hyperkube - origin-tests -) - -# os::build::check_binaries ensures that binary sizes do not grow without approval. -function os::build::check_binaries() { - platform=$(os::build::host_platform) - if [[ "${platform}" != "linux/amd64" && "${platform}" != "darwin/amd64" ]]; then - return 0 - fi - duexe="du" - - # In OSX, the 'du' binary does not provide the --apparent-size flag. However, the homebrew - # provide GNU coreutils which provide 'gdu' binary which is equivalent to Linux du. - # For now, if the 'gdu' binary is not installed, print annoying warning and don't check the - # binary size (the CI will capture possible violation anyway). - if [[ "${platform}" == "darwin/amd64" ]]; then - duexe=$(which gdu || true) - if [[ -z "${duexe}" ]]; then - os::log::warning "Unable to locate 'gdu' binary to determine size of the binary. Please install it using: 'brew install coreutils'" - return 0 - fi - fi - - if [[ -f "${OS_OUTPUT_BINPATH}/${platform}/pod" ]]; then - size=$($duexe --apparent-size -m "${OS_OUTPUT_BINPATH}/${platform}/pod" | cut -f 1) - if [[ "${size}" -gt "2" ]]; then - os::log::fatal "pod binary has grown substantially to ${size}. You must have approval before bumping this limit." - fi - fi -} - -# os::build::images builds all images in this repo. -function os::build::images() { - # Create link to file if the FS supports hardlinks, otherwise copy the file - function ln_or_cp { - local src_file=$1 - local dst_dir=$2 - if os::build::archive::internal::is_hardlink_supported "${dst_dir}" ; then - ln -f "${src_file}" "${dst_dir}" - else - cp -pf "${src_file}" "${dst_dir}" - fi - } - - # determine the correct tag prefix - tag_prefix="${OS_IMAGE_PREFIX:-"openshift/origin"}" - - # images that depend on "${tag_prefix}-source" or "${tag_prefix}-base" - ( os::build::image "${tag_prefix}-hyperkube" images/hyperkube ) & - - for i in $(jobs -p); do wait "$i"; done - - # images that depend on "${tag_prefix}-cli" or hyperkube - ( os::build::image "${tag_prefix}-tests" images/tests ) & - - for i in $(jobs -p); do wait "$i"; done -} -readonly -f os::build::images diff --git a/openshift-hack/lib/deps.sh b/openshift-hack/lib/deps.sh deleted file mode 100644 index 6a9009823de1e..0000000000000 --- a/openshift-hack/lib/deps.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash - -# os::deps::path_with_shellcheck returns a path that includes shellcheck. -# -# Globals: -# None -# Arguments: -# None -# Returns: -# The path that includes shellcheck. -function os::deps::path_with_shellcheck() { - local path="${PATH}" - if ! which shellcheck &> /dev/null; then - local shellcheck_path="${TMPDIR:-/tmp}/shellcheck" - mkdir -p "${shellcheck_path}" - pushd "${shellcheck_path}" > /dev/null || exit 1 - # This version needs to match that required by - # hack/verify-shellcheck.sh to avoid the use of docker. - local version="v0.7.0" - local tar_file="shellcheck-${version}.linux.x86_64.tar.xz" - curl -LO "https://github.com/koalaman/shellcheck/releases/download/${version}/${tar_file}" - tar xf "${tar_file}" - path="${PATH}:$(pwd)/shellcheck-${version}" - popd > /dev/null || exit 1 - fi - echo "${path}" -} -readonly -f os::deps::path_with_shellcheck diff --git a/openshift-hack/lib/init.sh b/openshift-hack/lib/init.sh deleted file mode 100755 index 7dc42e3ebc947..0000000000000 --- a/openshift-hack/lib/init.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env bash - -# This script is meant to be the entrypoint for OpenShift Bash scripts to import all of the support -# libraries at once in order to make Bash script preambles as minimal as possible. This script recur- -# sively `source`s *.sh files in this directory tree. As such, no files should be `source`ed outside -# of this script to ensure that we do not attempt to overwrite read-only variables. - -set -o errexit -set -o nounset -set -o pipefail - -OS_SCRIPT_START_TIME="$( date +%s )"; export OS_SCRIPT_START_TIME - -# os::util::absolute_path returns the absolute path to the directory provided -function os::util::absolute_path() { - local relative_path="$1" - local absolute_path - - pushd "${relative_path}" >/dev/null - relative_path="$( pwd )" - if [[ -h "${relative_path}" ]]; then - absolute_path="$( readlink "${relative_path}" )" - else - absolute_path="${relative_path}" - fi - popd >/dev/null - - echo "${absolute_path}" -} -readonly -f os::util::absolute_path - -# find the absolute path to the root of the Origin source tree -init_source="$( dirname "${BASH_SOURCE[0]}" )/../.." -OS_ROOT="$( os::util::absolute_path "${init_source}" )" -export OS_ROOT -cd "${OS_ROOT}" - -for library_file in $( find "${OS_ROOT}/openshift-hack/lib" -type f -name '*.sh' -not -path '*/openshift-hack/lib/init.sh' ); do - source "${library_file}" -done - -unset library_files library_file init_source - -# all of our Bash scripts need to have the stacktrace -# handler installed to deal with errors -os::log::stacktrace::install - -# All of our Bash scripts need to have access to the -# binaries that we build so we don't have to find -# them before every invocation. -os::util::environment::update_path_var - -if [[ -z "${OS_TMP_ENV_SET-}" ]]; then - # if this file is run via 'source', then $0 will be "-bash" and won't work with basename - if [[ "${0}" =~ .*\.sh ]]; then - os::util::environment::setup_tmpdir_vars "$( basename "${0}" ".sh" )" - else - os::util::environment::setup_tmpdir_vars "shell" - fi -fi - -# Allow setting $JUNIT_REPORT to toggle output behavior -if [[ -n "${JUNIT_REPORT:-}" ]]; then - export JUNIT_REPORT_OUTPUT="${LOG_DIR}/raw_test_output.log" -fi diff --git a/openshift-hack/lib/log/output.sh b/openshift-hack/lib/log/output.sh deleted file mode 100644 index 103fa1ff1bee5..0000000000000 --- a/openshift-hack/lib/log/output.sh +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/env bash - -# This file contains functions used for writing log messages -# to stdout and stderr from scripts while they run. - -# os::log::info writes the message to stdout. -# -# Arguments: -# - all: message to write -function os::log::info() { - local message; message="$( os::log::internal::prefix_lines "[INFO]" "$*" )" - os::log::internal::to_logfile "${message}" - echo "${message}" -} -readonly -f os::log::info - -# os::log::warning writes the message to stderr. -# A warning indicates something went wrong but -# not so wrong that we cannot recover. -# -# Arguments: -# - all: message to write -function os::log::warning() { - local message; message="$( os::log::internal::prefix_lines "[WARNING]" "$*" )" - os::log::internal::to_logfile "${message}" - os::text::print_yellow "${message}" 1>&2 -} -readonly -f os::log::warning - -# os::log::error writes the message to stderr. -# An error indicates that something went wrong -# and we will most likely fail after this. -# -# Arguments: -# - all: message to write -function os::log::error() { - local message; message="$( os::log::internal::prefix_lines "[ERROR]" "$*" )" - os::log::internal::to_logfile "${message}" - os::text::print_red "${message}" 1>&2 -} -readonly -f os::log::error - -# os::log::fatal writes the message to stderr and -# returns a non-zero code to force a process exit. -# A fatal error indicates that there is no chance -# of recovery. -# -# Arguments: -# - all: message to write -function os::log::fatal() { - local message; message="$( os::log::internal::prefix_lines "[FATAL]" "$*" )" - os::log::internal::to_logfile "${message}" - os::text::print_red "${message}" 1>&2 - exit 1 -} -readonly -f os::log::fatal - -# os::log::debug writes the message to stderr if -# the ${OS_DEBUG} variable is set. -# -# Globals: -# - OS_DEBUG -# Arguments: -# - all: message to write -function os::log::debug() { - local message; message="$( os::log::internal::prefix_lines "[DEBUG]" "$*" )" - os::log::internal::to_logfile "${message}" - if [[ -n "${OS_DEBUG:-}" ]]; then - os::text::print_blue "${message}" 1>&2 - fi -} -readonly -f os::log::debug - -# os::log::internal::to_logfile makes a best-effort -# attempt to write the message to the script logfile -# -# Globals: -# - LOG_DIR -# Arguments: -# - all: message to write -function os::log::internal::to_logfile() { - if [[ -n "${LOG_DIR:-}" && -d "${LOG_DIR-}" ]]; then - echo "$*" >>"${LOG_DIR}/scripts.log" - fi -} - -# os::log::internal::prefix_lines prints out the -# original content with the given prefix at the -# start of every line. -# -# Arguments: -# - 1: prefix for lines -# - 2: content to prefix -function os::log::internal::prefix_lines() { - local prefix="$1" - local content="$2" - - local old_ifs="${IFS}" - IFS=$'\n' - for line in ${content}; do - echo "${prefix} ${line}" - done - IFS="${old_ifs}" -} \ No newline at end of file diff --git a/openshift-hack/lib/log/stacktrace.sh b/openshift-hack/lib/log/stacktrace.sh deleted file mode 100644 index e9915efb6342f..0000000000000 --- a/openshift-hack/lib/log/stacktrace.sh +++ /dev/null @@ -1,91 +0,0 @@ -#!/usr/bin/env bash -# -# This library contains an implementation of a stack trace for Bash scripts. - -# os::log::stacktrace::install installs the stacktrace as a handler for the ERR signal if one -# has not already been installed and sets `set -o errtrace` in order to propagate the handler -# If the ERR trap is not initialized, installing this plugin will initialize it. -# -# Globals: -# None -# Arguments: -# None -# Returns: -# - export OS_USE_STACKTRACE -function os::log::stacktrace::install() { - # setting 'errtrace' propagates our ERR handler to functions, expansions and subshells - set -o errtrace - - # OS_USE_STACKTRACE is read by os::util::trap at runtime to request a stacktrace - export OS_USE_STACKTRACE=true - - os::util::trap::init_err -} -readonly -f os::log::stacktrace::install - -# os::log::stacktrace::print prints the stacktrace and exits with the return code from the script that -# called for a stack trace. This function will always return 0 if it is not handling the signal, and if it -# is handling the signal, this function will always `exit`, not return, the return code it receives as -# its first argument. -# -# Globals: -# - BASH_SOURCE -# - BASH_LINENO -# - FUNCNAME -# Arguments: -# - 1: the return code of the command in the script that generated the ERR signal -# - 2: the last command that ran before handlers were invoked -# - 3: whether or not `set -o errexit` was set in the script that generated the ERR signal -# Returns: -# None -function os::log::stacktrace::print() { - local return_code=$1 - local last_command=$2 - local errexit_set=${3:-} - - if [[ "${return_code}" = "0" ]]; then - # we're not supposed to respond when no error has occurred - return 0 - fi - - if [[ -z "${errexit_set}" ]]; then - # if errexit wasn't set in the shell when the ERR signal was issued, then we can ignore the signal - # as this is not cause for failure - return 0 - fi - - # dump the entire stack for debugging purposes - os::log::debug "$( os::util::repository_relative_path "${BASH_SOURCE[0]}:${LINENO}: ${BASH_COMMAND}" )" - for (( i = 0; i < ${#BASH_LINENO[@]}; i++ )); do - os::log::debug "$( os::util::repository_relative_path "${BASH_SOURCE[$i+1]:-"$( os::util::repository_relative_path "$0" )"}" ):${BASH_LINENO[$i]}: ${FUNCNAME[$i]}" - done - - # iterate backwards through the stack until we leave library files, so we can be sure we start logging - # actual script code and not this handler's call - local stack_begin_index - for (( stack_begin_index = 0; stack_begin_index < ${#BASH_SOURCE[@]}; stack_begin_index++ )); do - if [[ ! "${BASH_SOURCE[${stack_begin_index}]}" =~ hack/lib/(log/stacktrace|util/trap)\.sh ]]; then - break - fi - done - - local preamble_finished - local stack_index=1 - local i - for (( i = stack_begin_index; i < ${#BASH_SOURCE[@]}; i++ )); do - local bash_source - bash_source="$( os::util::repository_relative_path "${BASH_SOURCE[$i]}" )" - if [[ -z "${preamble_finished:-}" ]]; then - preamble_finished=true - os::log::error "${bash_source}:${BASH_LINENO[$i-1]}: \`${last_command}\` exited with status ${return_code}." >&2 - exit "${return_code}" - fi - stack_index=$(( stack_index + 1 )) - done - - # we know we're the privileged handler in this chain, so we can safely exit the shell without - # starving another handler of the privilege of reacting to this signal - os::log::info " Exiting with code ${return_code}." >&2 - exit "${return_code}" -} -readonly -f os::log::stacktrace::print diff --git a/openshift-hack/lib/test/junit.sh b/openshift-hack/lib/test/junit.sh deleted file mode 100644 index 18bb3ee857d2c..0000000000000 --- a/openshift-hack/lib/test/junit.sh +++ /dev/null @@ -1,202 +0,0 @@ -#!/usr/bin/env bash -# This utility file contains functions that format test output to be parsed into jUnit XML - -# os::test::junit::declare_suite_start prints a message declaring the start of a test suite -# Any number of suites can be in flight at any time, so there is no failure condition for this -# script based on the number of suites in flight. -# -# Globals: -# - JUNIT_REPORT_OUTPUT -# - NUM_OS_JUNIT_SUITES_IN_FLIGHT -# Arguments: -# - 1: the suite name that is starting -# Returns: -# - increment NUM_OS_JUNIT_SUITES_IN_FLIGHT -function os::test::junit::declare_suite_start() { - local suite_name=$1 - local num_suites=${NUM_OS_JUNIT_SUITES_IN_FLIGHT:-0} - - echo "=== BEGIN TEST SUITE github.com/openshift/origin/test/${suite_name} ===" >> "${JUNIT_REPORT_OUTPUT:-/dev/null}" - NUM_OS_JUNIT_SUITES_IN_FLIGHT=$(( num_suites + 1 )) - export NUM_OS_JUNIT_SUITES_IN_FLIGHT -} -readonly -f os::test::junit::declare_suite_start - -# os::test::junit::declare_suite_end prints a message declaring the end of a test suite -# If there aren't any suites in flight, this function will fail. -# -# Globals: -# - JUNIT_REPORT_OUTPUT -# - NUM_OS_JUNIT_SUITES_IN_FLIGHT -# Arguments: -# - 1: the suite name that is starting -# Returns: -# - export/decrement NUM_OS_JUNIT_SUITES_IN_FLIGHT -function os::test::junit::declare_suite_end() { - local num_suites=${NUM_OS_JUNIT_SUITES_IN_FLIGHT:-0} - if [[ "${num_suites}" -lt "1" ]]; then - # we can't end a suite if none have been started yet - echo "[ERROR] jUnit suite marker could not be placed, expected suites in flight, got ${num_suites}" - return 1 - fi - - echo "=== END TEST SUITE ===" >> "${JUNIT_REPORT_OUTPUT:-/dev/null}" - NUM_OS_JUNIT_SUITES_IN_FLIGHT=$(( num_suites - 1 )) - export NUM_OS_JUNIT_SUITES_IN_FLIGHT -} -readonly -f os::test::junit::declare_suite_end - -# os::test::junit::declare_test_start prints a message declaring the start of a test case -# If there is already a test marked as being in flight, this function will fail. -# -# Globals: -# - JUNIT_REPORT_OUTPUT -# - NUM_OS_JUNIT_TESTS_IN_FLIGHT -# Arguments: -# None -# Returns: -# - increment NUM_OS_JUNIT_TESTS_IN_FLIGHT -function os::test::junit::declare_test_start() { - local num_tests=${NUM_OS_JUNIT_TESTS_IN_FLIGHT:-0} - if [[ "${num_tests}" -ne "0" ]]; then - # someone's declaring the starting of a test when a test is already in flight - echo "[ERROR] jUnit test marker could not be placed, expected no tests in flight, got ${num_tests}" - return 1 - fi - - local num_suites=${NUM_OS_JUNIT_SUITES_IN_FLIGHT:-0} - if [[ "${num_suites}" -lt "1" ]]; then - # we can't end a test if no suites are in flight - echo "[ERROR] jUnit test marker could not be placed, expected suites in flight, got ${num_suites}" - return 1 - fi - - echo "=== BEGIN TEST CASE ===" >> "${JUNIT_REPORT_OUTPUT:-/dev/null}" - NUM_OS_JUNIT_TESTS_IN_FLIGHT=$(( num_tests + 1 )) - export NUM_OS_JUNIT_TESTS_IN_FLIGHT -} -readonly -f os::test::junit::declare_test_start - -# os::test::junit::declare_test_end prints a message declaring the end of a test case -# If there is no test marked as being in flight, this function will fail. -# -# Globals: -# - JUNIT_REPORT_OUTPUT -# - NUM_OS_JUNIT_TESTS_IN_FLIGHT -# Arguments: -# None -# Returns: -# - decrement NUM_OS_JUNIT_TESTS_IN_FLIGHT -function os::test::junit::declare_test_end() { - local num_tests=${NUM_OS_JUNIT_TESTS_IN_FLIGHT:-0} - if [[ "${num_tests}" -ne "1" ]]; then - # someone's declaring the end of a test when a test is not in flight - echo "[ERROR] jUnit test marker could not be placed, expected one test in flight, got ${num_tests}" - return 1 - fi - - echo "=== END TEST CASE ===" >> "${JUNIT_REPORT_OUTPUT:-/dev/null}" - NUM_OS_JUNIT_TESTS_IN_FLIGHT=$(( num_tests - 1 )) - export NUM_OS_JUNIT_TESTS_IN_FLIGHT -} -readonly -f os::test::junit::declare_test_end - -# os::test::junit::check_test_counters checks that we do not have any test suites or test cases in flight -# This function should be called at the very end of any test script using jUnit markers to make sure no error in -# marking has occurred. -# -# Globals: -# - NUM_OS_JUNIT_SUITES_IN_FLIGHT -# - NUM_OS_JUNIT_TESTS_IN_FLIGHT -# Arguments: -# None -# Returns: -# None -function os::test::junit::check_test_counters() { - if [[ "${NUM_OS_JUNIT_SUITES_IN_FLIGHT-}" -ne "0" ]]; then - echo "[ERROR] Expected no test suites to be marked as in-flight at the end of testing, got ${NUM_OS_JUNIT_SUITES_IN_FLIGHT-}" - return 1 - elif [[ "${NUM_OS_JUNIT_TESTS_IN_FLIGHT-}" -ne "0" ]]; then - echo "[ERROR] Expected no test cases to be marked as in-flight at the end of testing, got ${NUM_OS_JUNIT_TESTS_IN_FLIGHT-}" - return 1 - fi -} -readonly -f os::test::junit::check_test_counters - -# os::test::junit::reconcile_output appends the necessary suite and test end statements to the jUnit output file -# in order to ensure that the file is in a consistent state to allow for parsing -# -# Globals: -# - NUM_OS_JUNIT_SUITES_IN_FLIGHT -# - NUM_OS_JUNIT_TESTS_IN_FLIGHT -# Arguments: -# None -# Returns: -# None -function os::test::junit::reconcile_output() { - if [[ "${NUM_OS_JUNIT_TESTS_IN_FLIGHT:-0}" = "1" ]]; then - os::test::junit::declare_test_end - fi - - for (( i = 0; i < ${NUM_OS_JUNIT_SUITES_IN_FLIGHT:-0}; i++ )); do - os::test::junit::declare_suite_end - done -} -readonly -f os::test::junit::reconcile_output - -# os::test::junit::generate_report determines which type of report is to -# be generated and does so from the raw output of the tests. -# -# Globals: -# - JUNIT_REPORT_OUTPUT -# - ARTIFACT_DIR -# Arguments: -# None -# Returns: -# None -function os::test::junit::generate_report() { - if [[ -z "${JUNIT_REPORT_OUTPUT:-}" || - -n "${JUNIT_REPORT_OUTPUT:-}" && ! -s "${JUNIT_REPORT_OUTPUT:-}" ]]; then - # we can't generate a report - return 0 - fi - - if grep -q "=== END TEST CASE ===" "${JUNIT_REPORT_OUTPUT}"; then - os::test::junit::reconcile_output - os::test::junit::check_test_counters - os::test::junit::internal::generate_report "oscmd" - fi -} - -# os::test::junit::internal::generate_report generates an XML jUnit -# report for either `os::cmd` or `go test`, based on the passed -# argument. If the `junitreport` binary is not present, it will be built. -# -# Globals: -# - JUNIT_REPORT_OUTPUT -# - ARTIFACT_DIR -# Arguments: -# - 1: specify which type of tests command output should junitreport read -# Returns: -# export JUNIT_REPORT_NUM_FAILED -function os::test::junit::internal::generate_report() { - local report_type="$1" - os::util::ensure::built_binary_exists 'junitreport' - - local report_file - report_file="$( mktemp "${ARTIFACT_DIR}/${report_type}_report_XXXXX" ).xml" - os::log::info "jUnit XML report placed at $( os::util::repository_relative_path "${report_file}" )" - junitreport --type "${report_type}" \ - --suites nested \ - --roots github.com/openshift/origin \ - --output "${report_file}" \ - <"${JUNIT_REPORT_OUTPUT}" - - local summary - summary=$( junitreport summarize <"${report_file}" ) - - JUNIT_REPORT_NUM_FAILED="$( grep -oE "[0-9]+ failed" <<<"${summary}" )" - export JUNIT_REPORT_NUM_FAILED - - echo "${summary}" -} diff --git a/openshift-hack/lib/util/ensure.sh b/openshift-hack/lib/util/ensure.sh deleted file mode 100644 index 158d94f984f01..0000000000000 --- a/openshift-hack/lib/util/ensure.sh +++ /dev/null @@ -1,116 +0,0 @@ -#!/usr/bin/env bash - -# This script contains helper functions for ensuring that dependencies -# exist on a host system that are required to run Origin scripts. - -# os::util::ensure::system_binary_exists ensures that the -# given binary exists on the system in the $PATH. -# -# Globals: -# None -# Arguments: -# - 1: binary to search for -# Returns: -# None -function os::util::ensure::system_binary_exists() { - local binary="$1" - -if ! os::util::find::system_binary "${binary}" >/dev/null 2>&1; then - os::log::fatal "Required \`${binary}\` binary was not found in \$PATH." - fi -} -readonly -f os::util::ensure::system_binary_exists - -# os::util::ensure::built_binary_exists ensures that the -# given binary exists on the system in the local output -# directory for the current platform. If it doesn't, we -# will attempt to build it if we can determine the correct -# hack/build-go.sh target for the binary. -# -# This function will attempt to determine the correct -# hack/build-go.sh target for the binary, but may not -# be able to do so if the target doesn't live under -# cmd/ or tools/. In that case, one should be given. -# -# Globals: -# - OS_ROOT -# Arguments: -# - 1: binary to search for -# - 2: optional build target for this binary -# Returns: -# None -function os::util::ensure::built_binary_exists() { - local binary="$1" - local target="${2:-}" - - if ! os::util::find::built_binary "${binary}" >/dev/null 2>&1; then - if [[ -z "${target}" ]]; then - if [[ -d "${OS_ROOT}/cmd/${binary}" ]]; then - target="cmd/${binary}" - elif [[ -d "${OS_ROOT}/tools/${binary}" ]]; then - target="tools/${binary}" - elif [[ -d "${OS_ROOT}/openshift-hack/${binary}" ]]; then - target="openshift-hack/${binary}" - fi - fi - - if [[ -n "${target}" ]]; then - os::log::info "No compiled \`${binary}\` binary was found. Attempting to build one using: - $ hack/build-go.sh ${target}" - "${OS_ROOT}/hack/build-go.sh" "${target}" - else - os::log::fatal "No compiled \`${binary}\` binary was found and no build target could be determined. -Provide the binary and try running $0 again." - fi - fi -} -readonly -f os::util::ensure::built_binary_exists - -# os::util::ensure::gopath_binary_exists ensures that the -# given binary exists on the system in $GOPATH. If it -# doesn't, we will attempt to build it if we can determine -# the correct install path for the binary. -# -# Globals: -# - GOPATH -# Arguments: -# - 1: binary to search for -# - 2: [optional] path to install from -# Returns: -# None -function os::util::ensure::gopath_binary_exists() { - local binary="$1" - local install_path="${2:-}" - - if ! os::util::find::gopath_binary "${binary}" >/dev/null 2>&1; then - if [[ -n "${install_path:-}" ]]; then - os::log::info "No installed \`${binary}\` was found in \$GOPATH. Attempting to install using: - $ go get ${install_path}" - go get "${install_path}" - else - os::log::fatal "Required \`${binary}\` binary was not found in \$GOPATH." - fi - fi -} -readonly -f os::util::ensure::gopath_binary_exists - -# os::util::ensure::iptables_privileges_exist tests if the -# testing machine has iptables available and in PATH. Also -# tests that the user can list iptables rules, trying with -# `sudo` if it fails without. -# -# Globals: -# None -# Arguments: -# None -# Returns: -# None -function os::util::ensure::iptables_privileges_exist() { - os::util::ensure::system_binary_exists 'iptables' - - if ! iptables --list >/dev/null 2>&1 && ! sudo iptables --list >/dev/null 2>&1; then - os::log::fatal "You do not have \`iptables\` or \`sudo\` privileges. Kubernetes services will not work -without \`iptables\` access. See https://github.com/kubernetes/kubernetes/issues/1859." - fi -} -readonly -f os::util::ensure::iptables_privileges_exist diff --git a/openshift-hack/lib/util/environment.sh b/openshift-hack/lib/util/environment.sh deleted file mode 100644 index 1b0d55c7c471a..0000000000000 --- a/openshift-hack/lib/util/environment.sh +++ /dev/null @@ -1,296 +0,0 @@ -#!/usr/bin/env bash - -# This script holds library functions for setting up the shell environment for OpenShift scripts - -# os::util::environment::use_sudo updates $USE_SUDO to be 'true', so that later scripts choosing between -# execution using 'sudo' and execution without it chose to use 'sudo' -# -# Globals: -# None -# Arguments: -# None -# Returns: -# - export USE_SUDO -function os::util::environment::use_sudo() { - USE_SUDO=true - export USE_SUDO -} -readonly -f os::util::environment::use_sudo - -# os::util::environment::setup_time_vars sets up environment variables that describe durations of time -# These variables can be used to specify times for other utility functions -# -# Globals: -# None -# Arguments: -# None -# Returns: -# - export TIME_MS -# - export TIME_SEC -# - export TIME_MIN -function os::util::environment::setup_time_vars() { - TIME_MS=1 - export TIME_MS - TIME_SEC="$(( 1000 * TIME_MS ))" - export TIME_SEC - TIME_MIN="$(( 60 * TIME_SEC ))" - export TIME_MIN -} -readonly -f os::util::environment::setup_time_vars - -# os::util::environment::setup_all_server_vars sets up all environment variables necessary to configure and start an OpenShift server -# -# Globals: -# - OS_ROOT -# - PATH -# - TMPDIR -# - LOG_DIR -# - ARTIFACT_DIR -# - KUBELET_SCHEME -# - KUBELET_BIND_HOST -# - KUBELET_HOST -# - KUBELET_PORT -# - BASETMPDIR -# - ETCD_PORT -# - ETCD_PEER_PORT -# - API_BIND_HOST -# - API_HOST -# - API_PORT -# - API_SCHEME -# - PUBLIC_MASTER_HOST -# - USE_IMAGES -# Arguments: -# - 1: the path under the root temporary directory for OpenShift where these subdirectories should be made -# Returns: -# - export PATH -# - export BASETMPDIR -# - export LOG_DIR -# - export VOLUME_DIR -# - export ARTIFACT_DIR -# - export FAKE_HOME_DIR -# - export KUBELET_SCHEME -# - export KUBELET_BIND_HOST -# - export KUBELET_HOST -# - export KUBELET_PORT -# - export ETCD_PORT -# - export ETCD_PEER_PORT -# - export ETCD_DATA_DIR -# - export API_BIND_HOST -# - export API_HOST -# - export API_PORT -# - export API_SCHEME -# - export SERVER_CONFIG_DIR -# - export MASTER_CONFIG_DIR -# - export NODE_CONFIG_DIR -# - export USE_IMAGES -# - export TAG -function os::util::environment::setup_all_server_vars() { - os::util::environment::setup_kubelet_vars - os::util::environment::setup_etcd_vars - os::util::environment::setup_server_vars - os::util::environment::setup_images_vars -} -readonly -f os::util::environment::setup_all_server_vars - -# os::util::environment::update_path_var updates $PATH so that OpenShift binaries are available -# -# Globals: -# - OS_ROOT -# - PATH -# Arguments: -# None -# Returns: -# - export PATH -function os::util::environment::update_path_var() { - local prefix - if os::util::find::system_binary 'go' >/dev/null 2>&1; then - prefix+="${OS_OUTPUT_BINPATH}/$(os::build::host_platform):" - fi - if [[ -n "${GOPATH:-}" ]]; then - prefix+="${GOPATH}/bin:" - fi - - PATH="${prefix:-}${PATH}" - export PATH -} -readonly -f os::util::environment::update_path_var - -# os::util::environment::setup_tmpdir_vars sets up temporary directory path variables -# -# Globals: -# - TMPDIR -# Arguments: -# - 1: the path under the root temporary directory for OpenShift where these subdirectories should be made -# Returns: -# - export BASETMPDIR -# - export BASEOUTDIR -# - export LOG_DIR -# - export VOLUME_DIR -# - export ARTIFACT_DIR -# - export FAKE_HOME_DIR -# - export OS_TMP_ENV_SET -function os::util::environment::setup_tmpdir_vars() { - local sub_dir=$1 - - BASETMPDIR="${TMPDIR:-/tmp}/openshift/${sub_dir}" - export BASETMPDIR - VOLUME_DIR="${BASETMPDIR}/volumes" - export VOLUME_DIR - - BASEOUTDIR="${OS_OUTPUT_SCRIPTPATH}/${sub_dir}" - export BASEOUTDIR - LOG_DIR="${ARTIFACT_DIR:-${BASEOUTDIR}}/logs" - export LOG_DIR - ARTIFACT_DIR="${ARTIFACT_DIR:-${BASEOUTDIR}/artifacts}" - export ARTIFACT_DIR - FAKE_HOME_DIR="${BASEOUTDIR}/openshift.local.home" - export FAKE_HOME_DIR - - mkdir -p "${LOG_DIR}" "${VOLUME_DIR}" "${ARTIFACT_DIR}" "${FAKE_HOME_DIR}" - - export OS_TMP_ENV_SET="${sub_dir}" -} -readonly -f os::util::environment::setup_tmpdir_vars - -# os::util::environment::setup_kubelet_vars sets up environment variables necessary for interacting with the kubelet -# -# Globals: -# - KUBELET_SCHEME -# - KUBELET_BIND_HOST -# - KUBELET_HOST -# - KUBELET_PORT -# Arguments: -# None -# Returns: -# - export KUBELET_SCHEME -# - export KUBELET_BIND_HOST -# - export KUBELET_HOST -# - export KUBELET_PORT -function os::util::environment::setup_kubelet_vars() { - KUBELET_SCHEME="${KUBELET_SCHEME:-https}" - export KUBELET_SCHEME - KUBELET_BIND_HOST="${KUBELET_BIND_HOST:-127.0.0.1}" - export KUBELET_BIND_HOST - KUBELET_HOST="${KUBELET_HOST:-${KUBELET_BIND_HOST}}" - export KUBELET_HOST - KUBELET_PORT="${KUBELET_PORT:-10250}" - export KUBELET_PORT -} -readonly -f os::util::environment::setup_kubelet_vars - -# os::util::environment::setup_etcd_vars sets up environment variables necessary for interacting with etcd -# -# Globals: -# - BASETMPDIR -# - ETCD_HOST -# - ETCD_PORT -# - ETCD_PEER_PORT -# Arguments: -# None -# Returns: -# - export ETCD_HOST -# - export ETCD_PORT -# - export ETCD_PEER_PORT -# - export ETCD_DATA_DIR -function os::util::environment::setup_etcd_vars() { - ETCD_HOST="${ETCD_HOST:-127.0.0.1}" - export ETCD_HOST - ETCD_PORT="${ETCD_PORT:-4001}" - export ETCD_PORT - ETCD_PEER_PORT="${ETCD_PEER_PORT:-7001}" - export ETCD_PEER_PORT - - ETCD_DATA_DIR="${BASETMPDIR}/etcd" - export ETCD_DATA_DIR - - mkdir -p "${ETCD_DATA_DIR}" -} -readonly -f os::util::environment::setup_etcd_vars - -# os::util::environment::setup_server_vars sets up environment variables necessary for interacting with the server -# -# Globals: -# - BASETMPDIR -# - KUBELET_HOST -# - API_BIND_HOST -# - API_HOST -# - API_PORT -# - API_SCHEME -# - PUBLIC_MASTER_HOST -# Arguments: -# None -# Returns: -# - export API_BIND_HOST -# - export API_HOST -# - export API_PORT -# - export API_SCHEME -# - export SERVER_CONFIG_DIR -# - export MASTER_CONFIG_DIR -# - export NODE_CONFIG_DIR -function os::util::environment::setup_server_vars() { - # turn on cache mutation detector every time we start a server - KUBE_CACHE_MUTATION_DETECTOR="${KUBE_CACHE_MUTATION_DETECTOR:-true}" - export KUBE_CACHE_MUTATION_DETECTOR - - API_BIND_HOST="${API_BIND_HOST:-127.0.0.1}" - export API_BIND_HOST - API_HOST="${API_HOST:-${API_BIND_HOST}}" - export API_HOST - API_PORT="${API_PORT:-8443}" - export API_PORT - API_SCHEME="${API_SCHEME:-https}" - export API_SCHEME - - MASTER_ADDR="${API_SCHEME}://${API_HOST}:${API_PORT}" - export MASTER_ADDR - PUBLIC_MASTER_HOST="${PUBLIC_MASTER_HOST:-${API_HOST}}" - export PUBLIC_MASTER_HOST - - SERVER_CONFIG_DIR="${BASETMPDIR}/openshift.local.config" - export SERVER_CONFIG_DIR - MASTER_CONFIG_DIR="${SERVER_CONFIG_DIR}/master" - export MASTER_CONFIG_DIR - NODE_CONFIG_DIR="${SERVER_CONFIG_DIR}/node-${KUBELET_HOST}" - export NODE_CONFIG_DIR - - ETCD_CLIENT_CERT="${MASTER_CONFIG_DIR}/master.etcd-client.crt" - export ETCD_CLIENT_CERT - ETCD_CLIENT_KEY="${MASTER_CONFIG_DIR}/master.etcd-client.key" - export ETCD_CLIENT_KEY - ETCD_CA_BUNDLE="${MASTER_CONFIG_DIR}/ca-bundle.crt" - export ETCD_CA_BUNDLE - - mkdir -p "${SERVER_CONFIG_DIR}" "${MASTER_CONFIG_DIR}" "${NODE_CONFIG_DIR}" -} -readonly -f os::util::environment::setup_server_vars - -# os::util::environment::setup_images_vars sets up environment variables necessary for interacting with release images -# -# Globals: -# - OS_ROOT -# - USE_IMAGES -# Arguments: -# None -# Returns: -# - export USE_IMAGES -# - export TAG -# - export MAX_IMAGES_BULK_IMPORTED_PER_REPOSITORY -function os::util::environment::setup_images_vars() { - # Use either the latest release built images, or latest. - IMAGE_PREFIX="${OS_IMAGE_PREFIX:-"openshift/origin"}" - if [[ -z "${USE_IMAGES-}" ]]; then - TAG='latest' - export TAG - USE_IMAGES="${IMAGE_PREFIX}-\${component}:latest" - export USE_IMAGES - - if [[ -e "${OS_ROOT}/_output/local/releases/.commit" ]]; then - TAG="$(cat "${OS_ROOT}/_output/local/releases/.commit")" - export TAG - USE_IMAGES="${IMAGE_PREFIX}-\${component}:${TAG}" - export USE_IMAGES - fi - fi - export MAX_IMAGES_BULK_IMPORTED_PER_REPOSITORY="${MAX_IMAGES_BULK_IMPORTED_PER_REPOSITORY:-3}" -} -readonly -f os::util::environment::setup_images_vars diff --git a/openshift-hack/lib/util/find.sh b/openshift-hack/lib/util/find.sh deleted file mode 100644 index 4ca12d040f9b3..0000000000000 --- a/openshift-hack/lib/util/find.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env bash - -# This script contains helper functions for finding components -# in the Origin repository or on the host machine running scripts. - -# os::util::find::system_binary determines the absolute path to a -# system binary, if it exists. -# -# Globals: -# None -# Arguments: -# - 1: binary name -# Returns: -# - location of the binary -function os::util::find::system_binary() { - local binary_name="$1" - - command -v "${binary_name}" -} -readonly -f os::util::find::system_binary - -# os::util::find::built_binary determines the absolute path to a -# built binary for the current platform, if it exists. -# -# Globals: -# - OS_OUTPUT_BINPATH -# Arguments: -# - 1: binary name -# Returns: -# - location of the binary -function os::util::find::built_binary() { - local binary_name="$1" - - local binary_path; binary_path="${OS_OUTPUT_BINPATH}/$( os::build::host_platform )/${binary_name}" - # we need to check that the path leads to a file - # as directories also have the executable bit set - if [[ -f "${binary_path}" && -x "${binary_path}" ]]; then - echo "${binary_path}" - return 0 - else - return 1 - fi -} -readonly -f os::util::find::built_binary - -# os::util::find::gopath_binary determines the absolute path to a -# binary installed through the go toolchain, if it exists. -# -# Globals: -# - GOPATH -# Arguments: -# - 1: binary name -# Returns: -# - location of the binary -function os::util::find::gopath_binary() { - local binary_name="$1" - - local old_ifs="${IFS}" - IFS=":" - for part in ${GOPATH}; do - local binary_path="${part}/bin/${binary_name}" - # we need to check that the path leads to a file - # as directories also have the executable bit set - if [[ -f "${binary_path}" && -x "${binary_path}" ]]; then - echo "${binary_path}" - IFS="${old_ifs}" - return 0 - fi - done - IFS="${old_ifs}" - return 1 -} -readonly -f os::util::find::gopath_binary \ No newline at end of file diff --git a/openshift-hack/lib/util/misc.sh b/openshift-hack/lib/util/misc.sh deleted file mode 100644 index 69ea27dc43e2a..0000000000000 --- a/openshift-hack/lib/util/misc.sh +++ /dev/null @@ -1,224 +0,0 @@ -#!/usr/bin/env bash -# -# This library holds miscellaneous utility functions. If there begin to be groups of functions in this -# file that share intent or are thematically similar, they should be split into their own files. - -# os::util::describe_return_code describes an exit code -# -# Globals: -# - OS_SCRIPT_START_TIME -# Arguments: -# - 1: exit code to describe -# Returns: -# None -function os::util::describe_return_code() { - local return_code=$1 - local message - message="$( os::util::repository_relative_path "$0" ) exited with code ${return_code} " - - if [[ -n "${OS_SCRIPT_START_TIME:-}" ]]; then - local end_time - end_time="$(date +%s)" - local elapsed_time - elapsed_time="$(( end_time - OS_SCRIPT_START_TIME ))" - local formatted_time - formatted_time="$( os::util::format_seconds "${elapsed_time}" )" - message+="after ${formatted_time}" - fi - - if [[ "${return_code}" = "0" ]]; then - os::log::info "${message}" - else - os::log::error "${message}" - fi -} -readonly -f os::util::describe_return_code - -# os::util::install_describe_return_code installs the return code describer for the EXIT trap -# If the EXIT trap is not initialized, installing this plugin will initialize it. -# -# Globals: -# None -# Arguments: -# None -# Returns: -# - export OS_DESCRIBE_RETURN_CODE -# - export OS_SCRIPT_START_TIME -function os::util::install_describe_return_code() { - export OS_DESCRIBE_RETURN_CODE="true" - OS_SCRIPT_START_TIME="$( date +%s )"; export OS_SCRIPT_START_TIME - os::util::trap::init_exit -} -readonly -f os::util::install_describe_return_code - -# OS_ORIGINAL_WD is the original working directory the script sourcing this utility file was called -# from. This is an important directory as if $0 is a relative path, we cannot use the following path -# utility without knowing from where $0 is relative. -if [[ -z "${OS_ORIGINAL_WD:-}" ]]; then - # since this could be sourced in a context where the utilities are already loaded, - # we want to ensure that this is re-entrant, so we only set $OS_ORIGINAL_WD if it - # is not set already - OS_ORIGINAL_WD="$( pwd )" - readonly OS_ORIGINAL_WD - export OS_ORIGINAL_WD -fi - -# os::util::repository_relative_path returns the relative path from the $OS_ROOT directory to the -# given file, if the file is inside of the $OS_ROOT directory. If the file is outside of $OS_ROOT, -# this function will return the absolute path to the file -# -# Globals: -# - OS_ROOT -# Arguments: -# - 1: the path to relativize -# Returns: -# None -function os::util::repository_relative_path() { - local filename=$1 - local directory; directory="$( dirname "${filename}" )" - filename="$( basename "${filename}" )" - - if [[ "${directory}" != "${OS_ROOT}"* ]]; then - pushd "${OS_ORIGINAL_WD}" >/dev/null 2>&1 || exit 1 - directory="$( os::util::absolute_path "${directory}" )" - popd >/dev/null 2>&1 || exit 1 - fi - - directory="${directory##*${OS_ROOT}/}" - - echo "${directory}/${filename}" -} -readonly -f os::util::repository_relative_path - -# os::util::format_seconds formats a duration of time in seconds to print in HHh MMm SSs -# -# Globals: -# None -# Arguments: -# - 1: time in seconds to format -# Return: -# None -function os::util::format_seconds() { - local raw_seconds=$1 - - local hours minutes seconds - (( hours=raw_seconds/3600 )) - (( minutes=(raw_seconds%3600)/60 )) - (( seconds=raw_seconds%60 )) - - printf '%02dh %02dm %02ds' "${hours}" "${minutes}" "${seconds}" -} -readonly -f os::util::format_seconds - -# os::util::sed attempts to make our Bash scripts agnostic to the platform -# on which they run `sed` by glossing over a discrepancy in flag use in GNU. -# -# Globals: -# None -# Arguments: -# - all: arguments to pass to `sed -i` -# Return: -# None -function os::util::sed() { - local sudo="${USE_SUDO:+sudo}" - if LANG=C sed --help 2>&1 | grep -q "GNU sed"; then - ${sudo} sed -i'' "$@" - else - ${sudo} sed -i '' "$@" - fi -} -readonly -f os::util::sed - -# os::util::base64decode attempts to make our Bash scripts agnostic to the platform -# on which they run `base64decode` by glossing over a discrepancy in flag use in GNU. -# -# Globals: -# None -# Arguments: -# - all: arguments to pass to `base64decode` -# Return: -# None -function os::util::base64decode() { - if [[ "$(go env GOHOSTOS)" == "darwin" ]]; then - base64 -D "$@" - else - base64 -d "$@" - fi -} -readonly -f os::util::base64decode - -# os::util::curl_etcd sends a request to the backing etcd store for the master. -# We use the administrative client cert and key for access and re-encode them -# as necessary for OSX clients. -# -# Globals: -# MASTER_CONFIG_DIR -# API_SCHEME -# API_HOST -# ETCD_PORT -# Arguments: -# - 1: etcd-relative URL to curl, with leading slash -# Returns: -# None -function os::util::curl_etcd() { - local url="$1" - local full_url="${API_SCHEME}://${API_HOST}:${ETCD_PORT}${url}" - - local etcd_client_cert="${MASTER_CONFIG_DIR}/master.etcd-client.crt" - local etcd_client_key="${MASTER_CONFIG_DIR}/master.etcd-client.key" - local ca_bundle="${MASTER_CONFIG_DIR}/ca-bundle.crt" - - if curl -V | grep -q 'SecureTransport'; then - # on newer OSX `curl` implementations, SSL is not used and client certs - # and keys are expected to be encoded in P12 format instead of PEM format, - # so we need to convert the secrets that the server wrote if we haven't - # already done so - local etcd_client_cert_p12="${MASTER_CONFIG_DIR}/master.etcd-client.crt.p12" - local etcd_client_cert_p12_password="${CURL_CERT_P12_PASSWORD:-'password'}" - if [[ ! -f "${etcd_client_cert_p12}" ]]; then - openssl pkcs12 -export \ - -in "${etcd_client_cert}" \ - -inkey "${etcd_client_key}" \ - -out "${etcd_client_cert_p12}" \ - -password "pass:${etcd_client_cert_p12_password}" - fi - - curl --fail --silent --cacert "${ca_bundle}" \ - --cert "${etcd_client_cert_p12}:${etcd_client_cert_p12_password}" "${full_url}" - else - curl --fail --silent --cacert "${ca_bundle}" \ - --cert "${etcd_client_cert}" --key "${etcd_client_key}" "${full_url}" - fi -} - -# os::util::ensure_tmpfs ensures that the target dir is mounted on tmpfs -# -# Globals: -# OS_TMPFS_REQUIRED -# Arguments: -# - 1: target to check -# Returns: -# None -function os::util::ensure_tmpfs() { - if [[ -z "${OS_TMPFS_REQUIRED:-}" ]]; then - return 0 - fi - - local target="$1" - if [[ ! -d "${target}" ]]; then - os::log::fatal "Target dir ${target} does not exist, cannot perform fstype check." - fi - - os::log::debug "Filesystem information: -$( df -h -T )" - - os::log::debug "Mount information: -$( findmnt --all )" - - local fstype - fstype="$( df --output=fstype "${target}" | tail -n 1 )" - if [[ "${fstype}" != "tmpfs" ]]; then - local message="Expected \`${target}\` to be mounted on \`tmpfs\` but found \`${fstype}\` instead." - os::log::fatal "${message}" - fi -} diff --git a/openshift-hack/lib/util/text.sh b/openshift-hack/lib/util/text.sh deleted file mode 100644 index 708a47251cb20..0000000000000 --- a/openshift-hack/lib/util/text.sh +++ /dev/null @@ -1,164 +0,0 @@ -#!/usr/bin/env bash - -# This file contains helpful aliases for manipulating the output text to the terminal as -# well as functions for one-command augmented printing. - -# os::text::reset resets the terminal output to default if it is called in a TTY -function os::text::reset() { - if os::text::internal::is_tty; then - tput sgr0 - fi -} -readonly -f os::text::reset - -# os::text::bold sets the terminal output to bold text if it is called in a TTY -function os::text::bold() { - if os::text::internal::is_tty; then - tput bold - fi -} -readonly -f os::text::bold - -# os::text::red sets the terminal output to red text if it is called in a TTY -function os::text::red() { - if os::text::internal::is_tty; then - tput setaf 1 - fi -} -readonly -f os::text::red - -# os::text::green sets the terminal output to green text if it is called in a TTY -function os::text::green() { - if os::text::internal::is_tty; then - tput setaf 2 - fi -} -readonly -f os::text::green - -# os::text::blue sets the terminal output to blue text if it is called in a TTY -function os::text::blue() { - if os::text::internal::is_tty; then - tput setaf 4 - fi -} -readonly -f os::text::blue - -# os::text::yellow sets the terminal output to yellow text if it is called in a TTY -function os::text::yellow() { - if os::text::internal::is_tty; then - tput setaf 11 - fi -} -readonly -f os::text::yellow - -# os::text::clear_last_line clears the text from the last line of output to the -# terminal and leaves the cursor on that line to allow for overwriting that text -# if it is called in a TTY -function os::text::clear_last_line() { - if os::text::internal::is_tty; then - tput cuu 1 - tput el - fi -} -readonly -f os::text::clear_last_line - -# os::text::clear_string attempts to clear the entirety of a string from the terminal. -# If the string contains literal tabs or other characters that take up more than one -# character space in output, or if the window size is changed before this function -# is called, it will not function correctly. -# No action is taken if this is called outside of a TTY -function os::text::clear_string() { - local -r string="$1" - if os::text::internal::is_tty; then - echo "${string}" | while read -r line; do - # num_lines is the number of terminal lines this one line of output - # would have taken up with the current terminal width in columns - local num_lines=$(( ${#line} / $( tput cols ) )) - for (( i = 0; i <= num_lines; i++ )); do - os::text::clear_last_line - done - done - fi -} - -# os::text::internal::is_tty determines if we are outputting to a TTY -function os::text::internal::is_tty() { - [[ -t 1 && -n "${TERM:-}" ]] -} -readonly -f os::text::internal::is_tty - -# os::text::print_bold prints all input in bold text -function os::text::print_bold() { - os::text::bold - echo "${*}" - os::text::reset -} -readonly -f os::text::print_bold - -# os::text::print_red prints all input in red text -function os::text::print_red() { - os::text::red - echo "${*}" - os::text::reset -} -readonly -f os::text::print_red - -# os::text::print_red_bold prints all input in bold red text -function os::text::print_red_bold() { - os::text::red - os::text::bold - echo "${*}" - os::text::reset -} -readonly -f os::text::print_red_bold - -# os::text::print_green prints all input in green text -function os::text::print_green() { - os::text::green - echo "${*}" - os::text::reset -} -readonly -f os::text::print_green - -# os::text::print_green_bold prints all input in bold green text -function os::text::print_green_bold() { - os::text::green - os::text::bold - echo "${*}" - os::text::reset -} -readonly -f os::text::print_green_bold - -# os::text::print_blue prints all input in blue text -function os::text::print_blue() { - os::text::blue - echo "${*}" - os::text::reset -} -readonly -f os::text::print_blue - -# os::text::print_blue_bold prints all input in bold blue text -function os::text::print_blue_bold() { - os::text::blue - os::text::bold - echo "${*}" - os::text::reset -} -readonly -f os::text::print_blue_bold - -# os::text::print_yellow prints all input in yellow text -function os::text::print_yellow() { - os::text::yellow - echo "${*}" - os::text::reset -} -readonly -f os::text::print_yellow - -# os::text::print_yellow_bold prints all input in bold yellow text -function os::text::print_yellow_bold() { - os::text::yellow - os::text::bold - echo "${*}" - os::text::reset -} -readonly -f os::text::print_yellow_bold diff --git a/openshift-hack/lib/util/trap.sh b/openshift-hack/lib/util/trap.sh deleted file mode 100644 index f76d6bfe404d5..0000000000000 --- a/openshift-hack/lib/util/trap.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/usr/bin/env bash -# -# This library defines the trap handlers for the ERR and EXIT signals. Any new handler for these signals -# must be added to these handlers and activated by the environment variable mechanism that the rest use. -# These functions ensure that no handler can ever alter the exit code that was emitted by a command -# in a test script. - -# os::util::trap::init_err initializes the privileged handler for the ERR signal if it hasn't -# been registered already. This will overwrite any other handlers registered on the signal. -# -# Globals: -# None -# Arguments: -# None -# Returns: -# None -function os::util::trap::init_err() { - if ! trap -p ERR | grep -q 'os::util::trap::err_handler'; then - trap 'os::util::trap::err_handler;' ERR - fi -} -readonly -f os::util::trap::init_err - -# os::util::trap::init_exit initializes the privileged handler for the EXIT signal if it hasn't -# been registered already. This will overwrite any other handlers registered on the signal. -# -# Globals: -# None -# Arguments: -# None -# Returns: -# None -function os::util::trap::init_exit() { - if ! trap -p EXIT | grep -q 'os::util::trap::exit_handler'; then - trap 'os::util::trap::exit_handler;' EXIT - fi -} -readonly -f os::util::trap::init_exit - -# os::util::trap::err_handler is the handler for the ERR signal. -# -# Globals: -# - OS_TRAP_DEBUG -# - OS_USE_STACKTRACE -# Arguments: -# None -# Returns: -# - returns original return code, allows privileged handler to exit if necessary -function os::util::trap::err_handler() { - local -r return_code=$? - local -r last_command="${BASH_COMMAND}" - - if set +o | grep -q '\-o errexit'; then - local -r errexit_set=true - fi - - if [[ "${OS_TRAP_DEBUG:-}" = "true" ]]; then - echo "[DEBUG] Error handler executing with return code \`${return_code}\`, last command \`${last_command}\`, and errexit set \`${errexit_set:-}\`" - fi - - if [[ "${OS_USE_STACKTRACE:-}" = "true" ]]; then - # the OpenShift stacktrace function is treated as a privileged handler for this signal - # and is therefore allowed to run outside of a subshell in order to allow it to `exit` - # if necessary - os::log::stacktrace::print "${return_code}" "${last_command}" "${errexit_set:-}" - fi - - return "${return_code}" -} -readonly -f os::util::trap::err_handler - -# os::util::trap::exit_handler is the handler for the EXIT signal. -# -# Globals: -# - OS_TRAP_DEBUG -# - OS_DESCRIBE_RETURN_CODE -# Arguments: -# None -# Returns: -# - original exit code of the script that exited -function os::util::trap::exit_handler() { - local -r return_code=$? - - # we do not want these traps to be able to trigger more errors, we can let them fail silently - set +o errexit - - if [[ "${OS_TRAP_DEBUG:-}" = "true" ]]; then - echo "[DEBUG] Exit handler executing with return code \`${return_code}\`" - fi - - # the following envars selectively enable optional exit traps, all of which are run inside of - # a subshell in order to sandbox them and not allow them to influence how this script will exit - if [[ "${OS_DESCRIBE_RETURN_CODE:-}" = "true" ]]; then - ( os::util::describe_return_code "${return_code}" ) - fi - - exit "${return_code}" -} -readonly -f os::util::trap::exit_handler diff --git a/openshift-hack/test-go.sh b/openshift-hack/test-go.sh deleted file mode 100755 index 30793e2b082df..0000000000000 --- a/openshift-hack/test-go.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash - -# shellcheck source=openshift-hack/lib/init.sh -source "$(dirname "${BASH_SOURCE[0]}")/lib/init.sh" - -ARTIFACTS="${ARTIFACTS:-/tmp/artifacts}" -mkdir -p "${ARTIFACTS}" - -export KUBERNETES_SERVICE_HOST= -export KUBE_JUNIT_REPORT_DIR="${ARTIFACTS}" -export KUBE_KEEP_VERBOSE_TEST_OUTPUT=y -export KUBE_RACE=-race -export KUBE_TEST_ARGS='-p 8' -export KUBE_TIMEOUT='--timeout=360s' - -make test diff --git a/openshift-hack/test-integration.sh b/openshift-hack/test-integration.sh deleted file mode 100755 index 93c3ea902b099..0000000000000 --- a/openshift-hack/test-integration.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash - -# shellcheck source=openshift-hack/lib/init.sh -source "$(dirname "${BASH_SOURCE[0]}")/lib/init.sh" - -./hack/install-etcd.sh -PATH="${OS_ROOT}/third_party/etcd:${PATH}" - -ARTIFACTS="${ARTIFACTS:-/tmp/artifacts}" -mkdir -p "${ARTIFACTS}" - -export KUBERNETES_SERVICE_HOST= -export KUBE_JUNIT_REPORT_DIR="${ARTIFACTS}" -export KUBE_KEEP_VERBOSE_TEST_OUTPUT=y -export KUBE_RACE=-race -export KUBE_TEST_ARGS='-p 8' -export LOG_LEVEL=4 -export PATH - -make test-integration diff --git a/openshift-hack/test-kubernetes-e2e.sh b/openshift-hack/test-kubernetes-e2e.sh deleted file mode 100755 index 7b2937db2c5a0..0000000000000 --- a/openshift-hack/test-kubernetes-e2e.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash - -set -o nounset -set -o errexit -set -o pipefail - -# This script is executes kubernetes e2e tests against an openshift -# cluster. It is intended to be copied to the kubernetes-tests image -# for use in CI and should have no dependencies beyond oc, kubectl and -# k8s-e2e.test. - -# Identify the platform under test to allow skipping tests that are -# not compatible. -CLUSTER_TYPE="${CLUSTER_TYPE:-gcp}" -case "${CLUSTER_TYPE}" in - gcp) - # gce is used as a platform label instead of gcp - PLATFORM=gce - ;; - *) - PLATFORM="${CLUSTER_TYPE}" - ;; -esac - -# Support serial and parallel test suites -TEST_SUITE="${TEST_SUITE:-parallel}" -COMMON_SKIPS="\[Slow\]|\[Disruptive\]|\[Flaky\]|\[Disabled:.+\]|\[Skipped:${PLATFORM}\]" -case "${TEST_SUITE}" in -serial) - DEFAULT_TEST_ARGS="-focus=\[Serial\] -skip=${COMMON_SKIPS}" - NODES=1 - ;; -parallel) - DEFAULT_TEST_ARGS="-skip=\[Serial\]|${COMMON_SKIPS}" - # Use the same number of nodes - 30 - as specified for the parallel - # suite defined in origin. - NODES=30 - ;; -*) - echo >&2 "Unsupported test suite '${TEST_SUITE}'" - exit 1 - ;; -esac - -# Set KUBE_E2E_TEST_ARGS to configure test arguments like -# -skip and -focus. -KUBE_E2E_TEST_ARGS="${KUBE_E2E_TEST_ARGS:-${DEFAULT_TEST_ARGS}}" - -# k8s-e2e.test and ginkgo are expected to be in the path in -# CI. Outside of CI, ensure k8s-e2e.test and ginkgo are built and -# available in PATH. -if ! which k8s-e2e.test &> /dev/null; then - make WHAT=vendor/github.com/onsi/ginkgo/ginkgo - make WHAT=openshift-hack/e2e/k8s-e2e.test - ROOT_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")/.."; pwd -P)" - PATH="${ROOT_PATH}/_output/local/bin/$(go env GOHOSTOS)/$(go env GOARCH):${PATH}" - export PATH -fi - -# Execute OpenShift prerequisites -# Disable container security -oc adm policy add-scc-to-group privileged system:authenticated system:serviceaccounts -oc adm policy add-scc-to-group anyuid system:authenticated system:serviceaccounts -# Mark the master nodes as unschedulable so tests ignore them -oc get nodes -o name -l 'node-role.kubernetes.io/master' | xargs -L1 oc adm cordon -unschedulable="$( ( oc get nodes -o name -l 'node-role.kubernetes.io/master'; ) | wc -l )" - -test_report_dir="${ARTIFACTS:-/tmp/artifacts}" -mkdir -p "${test_report_dir}" - -# Retrieve the hostname of the server to enable kubectl testing -SERVER= -SERVER="$( kubectl config view | grep server | head -n 1 | awk '{print $2}' )" - -# shellcheck disable=SC2086 -ginkgo \ - -nodes "${NODES}" -noColor ${KUBE_E2E_TEST_ARGS} \ - "$( which k8s-e2e.test )" -- \ - -report-dir "${test_report_dir}" \ - -host "${SERVER}" \ - -allowed-not-ready-nodes ${unschedulable} \ - 2>&1 | tee -a "${test_report_dir}/k8s-e2e.log" diff --git a/openshift-hack/update-test-annotations.sh b/openshift-hack/update-test-annotations.sh deleted file mode 100755 index 244fdc67e5419..0000000000000 --- a/openshift-hack/update-test-annotations.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -o errexit -set -o nounset -set -o pipefail - -KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/.. -source "${KUBE_ROOT}/hack/lib/init.sh" - -kube::golang::setup_env - -# Update e2e test annotations that indicate openshift compatibility -GO111MODULE=on go generate -mod vendor ./openshift-hack/e2e diff --git a/openshift-hack/verify-commits.sh b/openshift-hack/verify-commits.sh deleted file mode 100755 index 847284221b421..0000000000000 --- a/openshift-hack/verify-commits.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash - -# shellcheck source=openshift-hack/lib/init.sh -source "$(dirname "${BASH_SOURCE[0]}")/lib/init.sh" - -function cleanup() { - return_code=$? - os::test::junit::generate_report - os::util::describe_return_code "${return_code}" - exit "${return_code}" -} -trap "cleanup" EXIT - -if ! git status &> /dev/null; then - os::log::fatal "Not a Git repository" -fi - -os::util::ensure::built_binary_exists 'commitchecker' - -os::test::junit::declare_suite_start "verify/upstream-commits" -os::cmd::expect_success "commitchecker --start ${PULL_BASE_SHA:-master}" -os::test::junit::declare_suite_end diff --git a/openshift-hack/verify-test-annotations.sh b/openshift-hack/verify-test-annotations.sh deleted file mode 100755 index a60e30ba7bc58..0000000000000 --- a/openshift-hack/verify-test-annotations.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -set -o errexit -set -o nounset -set -o pipefail - -KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/.. -source "${KUBE_ROOT}/hack/lib/init.sh" - -# Verify e2e test annotations that indicate openshift compatibility -"${KUBE_ROOT}"/hack/update-test-annotations.sh -git diff --quiet "${KUBE_ROOT}/openshift-hack/e2e/annotate/generated/" diff --git a/openshift-hack/verify.sh b/openshift-hack/verify.sh deleted file mode 100755 index 9361e8f4faea9..0000000000000 --- a/openshift-hack/verify.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash - -# shellcheck source=openshift-hack/lib/init.sh -source "$(dirname "${BASH_SOURCE[0]}")/lib/init.sh" - -# Required for openapi verification -PATH="$(pwd)/third_party/etcd:${PATH}" - -# Attempt to verify without docker if it is not available. -OS_RUN_WITHOUT_DOCKER= -if ! which docker &> /dev/null; then - os::log::warning "docker not available, attempting to run verify without it" - OS_RUN_WITHOUT_DOCKER=y - - # Without docker, shellcheck may need to be installed. - PATH="$( os::deps::path_with_shellcheck )" -fi -export OS_RUN_WITHOUT_DOCKER - -export PATH - -ARTIFACTS="${ARTIFACTS:-/tmp/artifacts}" -mkdir -p "${ARTIFACTS}" -export KUBE_JUNIT_REPORT_DIR="${ARTIFACTS}" - -make verify diff --git a/openshift-kube-apiserver/admission/admissionenablement/admission.go b/openshift-kube-apiserver/admission/admissionenablement/admission.go deleted file mode 100644 index a701f6d285cae..0000000000000 --- a/openshift-kube-apiserver/admission/admissionenablement/admission.go +++ /dev/null @@ -1,15 +0,0 @@ -package admissionenablement - -import ( - "k8s.io/kubernetes/cmd/kube-apiserver/app/options" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/customresourcevalidationregistration" -) - -func InstallOpenShiftAdmissionPlugins(o *options.ServerRunOptions) { - existingAdmissionOrder := o.Admission.GenericAdmission.RecommendedPluginOrder - o.Admission.GenericAdmission.RecommendedPluginOrder = NewOrderedKubeAdmissionPlugins(existingAdmissionOrder) - RegisterOpenshiftKubeAdmissionPlugins(o.Admission.GenericAdmission.Plugins) - customresourcevalidationregistration.RegisterCustomResourceValidation(o.Admission.GenericAdmission.Plugins) - existingDefaultOff := o.Admission.GenericAdmission.DefaultOffPlugins - o.Admission.GenericAdmission.DefaultOffPlugins = NewDefaultOffPluginsFunc(existingDefaultOff)() -} diff --git a/openshift-kube-apiserver/admission/admissionenablement/admission_config.go b/openshift-kube-apiserver/admission/admissionenablement/admission_config.go deleted file mode 100644 index e99d69047fd80..0000000000000 --- a/openshift-kube-apiserver/admission/admissionenablement/admission_config.go +++ /dev/null @@ -1,30 +0,0 @@ -package admissionenablement - -import ( - "time" - - "github.com/openshift/library-go/pkg/apiserver/admission/admissiontimeout" - "k8s.io/apiserver/pkg/admission" - "k8s.io/client-go/informers" - "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/cmd/kube-apiserver/app/options" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/namespaceconditions" -) - -func SetAdmissionDefaults(o *options.ServerRunOptions, informers informers.SharedInformerFactory, kubeClient kubernetes.Interface) { - // set up the decorators we need. This is done late and out of order because our decorators currently require informers which are not - // present until we start running - namespaceLabelDecorator := namespaceconditions.NamespaceLabelConditions{ - NamespaceClient: kubeClient.CoreV1(), - NamespaceLister: informers.Core().V1().Namespaces().Lister(), - - SkipLevelZeroNames: SkipRunLevelZeroPlugins, - SkipLevelOneNames: SkipRunLevelOnePlugins, - } - o.Admission.GenericAdmission.Decorators = append(o.Admission.GenericAdmission.Decorators, - admission.Decorators{ - admission.DecoratorFunc(namespaceLabelDecorator.WithNamespaceLabelConditions), - admission.DecoratorFunc(admissiontimeout.AdmissionTimeout{Timeout: 13 * time.Second}.WithTimeout), - }, - ) -} diff --git a/openshift-kube-apiserver/admission/admissionenablement/register.go b/openshift-kube-apiserver/admission/admissionenablement/register.go deleted file mode 100644 index f91047855f2d6..0000000000000 --- a/openshift-kube-apiserver/admission/admissionenablement/register.go +++ /dev/null @@ -1,111 +0,0 @@ -package admissionenablement - -import ( - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apiserver/pkg/admission" - mutatingwebhook "k8s.io/apiserver/pkg/admission/plugin/webhook/mutating" - "k8s.io/kubernetes/plugin/pkg/admission/resourcequota" - - "github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy" - imagepolicyapiv1 "github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1" - quotaclusterresourcequota "github.com/openshift/apiserver-library-go/pkg/admission/quota/clusterresourcequota" - "github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccadmission" - authorizationrestrictusers "k8s.io/kubernetes/openshift-kube-apiserver/admission/authorization/restrictusers" - quotaclusterresourceoverride "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/clusterresourceoverride" - quotarunonceduration "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/runonceduration" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/customresourcevalidationregistration" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/network/externalipranger" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/network/restrictedendpoints" - ingressadmission "k8s.io/kubernetes/openshift-kube-apiserver/admission/route" - projectnodeenv "k8s.io/kubernetes/openshift-kube-apiserver/admission/scheduler/nodeenv" - schedulerpodnodeconstraints "k8s.io/kubernetes/openshift-kube-apiserver/admission/scheduler/podnodeconstraints" -) - -func RegisterOpenshiftKubeAdmissionPlugins(plugins *admission.Plugins) { - authorizationrestrictusers.Register(plugins) - imagepolicy.Register(plugins) - ingressadmission.Register(plugins) - projectnodeenv.Register(plugins) - quotaclusterresourceoverride.Register(plugins) - quotaclusterresourcequota.Register(plugins) - quotarunonceduration.Register(plugins) - schedulerpodnodeconstraints.Register(plugins) - sccadmission.Register(plugins) - sccadmission.RegisterSCCExecRestrictions(plugins) - externalipranger.RegisterExternalIP(plugins) - restrictedendpoints.RegisterRestrictedEndpoints(plugins) -} - -var ( - - // these are admission plugins that cannot be applied until after the kubeapiserver starts. - // TODO if nothing comes to mind in 3.10, kill this - SkipRunLevelZeroPlugins = sets.NewString() - // these are admission plugins that cannot be applied until after the openshiftapiserver apiserver starts. - SkipRunLevelOnePlugins = sets.NewString( - imagepolicyapiv1.PluginName, // "image.openshift.io/ImagePolicy" - "quota.openshift.io/ClusterResourceQuota", - "security.openshift.io/SecurityContextConstraint", - "security.openshift.io/SCCExecRestrictions", - ) - - // openshiftAdmissionPluginsForKubeBeforeMutating are the admission plugins to add after kube admission, before mutating webhooks - openshiftAdmissionPluginsForKubeBeforeMutating = []string{ - "autoscaling.openshift.io/ClusterResourceOverride", - "authorization.openshift.io/RestrictSubjectBindings", - "autoscaling.openshift.io/RunOnceDuration", - "scheduling.openshift.io/PodNodeConstraints", - "scheduling.openshift.io/OriginPodNodeEnvironment", - "network.openshift.io/ExternalIPRanger", - "network.openshift.io/RestrictedEndpointsAdmission", - imagepolicyapiv1.PluginName, // "image.openshift.io/ImagePolicy" - "security.openshift.io/SecurityContextConstraint", - "security.openshift.io/SCCExecRestrictions", - "route.openshift.io/IngressAdmission", - } - - // openshiftAdmissionPluginsForKubeAfterResourceQuota are the plugins to add after ResourceQuota plugin - openshiftAdmissionPluginsForKubeAfterResourceQuota = []string{ - "quota.openshift.io/ClusterResourceQuota", - } - - // additionalDefaultOnPlugins is a list of plugins we turn on by default that core kube does not. - additionalDefaultOnPlugins = sets.NewString( - "NodeRestriction", - "OwnerReferencesPermissionEnforcement", - "PersistentVolumeLabel", - "PodNodeSelector", - "PodTolerationRestriction", - "Priority", - imagepolicyapiv1.PluginName, // "image.openshift.io/ImagePolicy" - "StorageObjectInUseProtection", - ) -) - -func NewOrderedKubeAdmissionPlugins(kubeAdmissionOrder []string) []string { - ret := []string{} - for _, curr := range kubeAdmissionOrder { - if curr == mutatingwebhook.PluginName { - ret = append(ret, openshiftAdmissionPluginsForKubeBeforeMutating...) - ret = append(ret, customresourcevalidationregistration.AllCustomResourceValidators...) - } - - ret = append(ret, curr) - - if curr == resourcequota.PluginName { - ret = append(ret, openshiftAdmissionPluginsForKubeAfterResourceQuota...) - } - } - return ret -} - -func NewDefaultOffPluginsFunc(kubeDefaultOffAdmission sets.String) func() sets.String { - return func() sets.String { - kubeOff := sets.NewString(kubeDefaultOffAdmission.UnsortedList()...) - kubeOff.Delete(additionalDefaultOnPlugins.List()...) - kubeOff.Delete(openshiftAdmissionPluginsForKubeBeforeMutating...) - kubeOff.Delete(openshiftAdmissionPluginsForKubeAfterResourceQuota...) - kubeOff.Delete(customresourcevalidationregistration.AllCustomResourceValidators...) - return kubeOff - } -} diff --git a/openshift-kube-apiserver/admission/admissionenablement/register_test.go b/openshift-kube-apiserver/admission/admissionenablement/register_test.go deleted file mode 100644 index 3f1182c706f65..0000000000000 --- a/openshift-kube-apiserver/admission/admissionenablement/register_test.go +++ /dev/null @@ -1,54 +0,0 @@ -package admissionenablement - -import ( - "reflect" - "testing" - - "k8s.io/apiserver/pkg/admission" - genericapiserver "k8s.io/apiserver/pkg/server" - "k8s.io/kubernetes/pkg/kubeapiserver/options" - - "github.com/openshift/library-go/pkg/apiserver/admission/admissionregistrationtesting" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/customresourcevalidationregistration" -) - -func TestAdmissionRegistration(t *testing.T) { - orderedAdmissionChain := NewOrderedKubeAdmissionPlugins(options.AllOrderedPlugins) - defaultOffPlugins := NewDefaultOffPluginsFunc(options.DefaultOffAdmissionPlugins())() - registerAllAdmissionPlugins := func(plugins *admission.Plugins) { - genericapiserver.RegisterAllAdmissionPlugins(plugins) - options.RegisterAllAdmissionPlugins(plugins) - RegisterOpenshiftKubeAdmissionPlugins(plugins) - customresourcevalidationregistration.RegisterCustomResourceValidation(plugins) - } - plugins := admission.NewPlugins() - registerAllAdmissionPlugins(plugins) - - err := admissionregistrationtesting.AdmissionRegistrationTest(plugins, orderedAdmissionChain, defaultOffPlugins) - if err != nil { - t.Fatal(err) - } -} - -// TestResourceQuotaBeforeClusterResourceQuota simply test wheather ResourceQuota plugin is before ClusterResourceQuota plugin -func TestResourceQuotaBeforeClusterResourceQuota(t *testing.T) { - orderedAdmissionChain := NewOrderedKubeAdmissionPlugins(options.AllOrderedPlugins) - - expectedOrderedAdmissionSubChain := []string{"ResourceQuota", "quota.openshift.io/ClusterResourceQuota", "AlwaysDeny"} - actualOrderedAdmissionChain := extractSubChain(orderedAdmissionChain, expectedOrderedAdmissionSubChain[0]) - - if !reflect.DeepEqual(actualOrderedAdmissionChain, expectedOrderedAdmissionSubChain) { - t.Fatalf("expected %v, got %v ", expectedOrderedAdmissionSubChain, actualOrderedAdmissionChain) - } -} - -func extractSubChain(admissionChain []string, takeFrom string) []string { - indexOfTake := 0 - for index, admission := range admissionChain { - if admission == takeFrom { - indexOfTake = index - break - } - } - return admissionChain[indexOfTake:] -} diff --git a/openshift-kube-apiserver/admission/authorization/restrictusers/groupcache_test.go b/openshift-kube-apiserver/admission/authorization/restrictusers/groupcache_test.go deleted file mode 100644 index 1dde83cbce2a2..0000000000000 --- a/openshift-kube-apiserver/admission/authorization/restrictusers/groupcache_test.go +++ /dev/null @@ -1,28 +0,0 @@ -package restrictusers - -import ( - userv1 "github.com/openshift/api/user/v1" -) - -type fakeGroupCache struct { - groups []userv1.Group -} - -func (g fakeGroupCache) GroupsFor(user string) ([]*userv1.Group, error) { - ret := []*userv1.Group{} - for i := range g.groups { - group := &g.groups[i] - for _, currUser := range group.Users { - if user == currUser { - ret = append(ret, group) - break - } - } - - } - return ret, nil -} - -func (g fakeGroupCache) HasSynced() bool { - return true -} diff --git a/openshift-kube-apiserver/admission/authorization/restrictusers/intializers.go b/openshift-kube-apiserver/admission/authorization/restrictusers/intializers.go deleted file mode 100644 index d3fdcde4a5113..0000000000000 --- a/openshift-kube-apiserver/admission/authorization/restrictusers/intializers.go +++ /dev/null @@ -1,28 +0,0 @@ -package restrictusers - -import ( - "k8s.io/apiserver/pkg/admission" - - userinformer "github.com/openshift/client-go/user/informers/externalversions" -) - -func NewInitializer(userInformer userinformer.SharedInformerFactory) admission.PluginInitializer { - return &localInitializer{userInformer: userInformer} -} - -type WantsUserInformer interface { - SetUserInformer(userinformer.SharedInformerFactory) - admission.InitializationValidator -} - -type localInitializer struct { - userInformer userinformer.SharedInformerFactory -} - -// Initialize will check the initialization interfaces implemented by each plugin -// and provide the appropriate initialization data -func (i *localInitializer) Initialize(plugin admission.Interface) { - if wants, ok := plugin.(WantsUserInformer); ok { - wants.SetUserInformer(i.userInformer) - } -} diff --git a/openshift-kube-apiserver/admission/authorization/restrictusers/restrictusers.go b/openshift-kube-apiserver/admission/authorization/restrictusers/restrictusers.go deleted file mode 100644 index 4c78858203181..0000000000000 --- a/openshift-kube-apiserver/admission/authorization/restrictusers/restrictusers.go +++ /dev/null @@ -1,234 +0,0 @@ -package restrictusers - -import ( - "context" - "errors" - "fmt" - "io" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - kerrors "k8s.io/apimachinery/pkg/util/errors" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/admission/initializer" - "k8s.io/client-go/kubernetes" - "k8s.io/client-go/rest" - "k8s.io/klog/v2" - "k8s.io/kubernetes/pkg/apis/rbac" - - userv1 "github.com/openshift/api/user/v1" - authorizationtypedclient "github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1" - userclient "github.com/openshift/client-go/user/clientset/versioned" - userinformer "github.com/openshift/client-go/user/informers/externalversions" - "github.com/openshift/library-go/pkg/apiserver/admission/admissionrestconfig" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/authorization/restrictusers/usercache" -) - -func Register(plugins *admission.Plugins) { - plugins.Register("authorization.openshift.io/RestrictSubjectBindings", - func(config io.Reader) (admission.Interface, error) { - return NewRestrictUsersAdmission() - }) -} - -type GroupCache interface { - GroupsFor(string) ([]*userv1.Group, error) - HasSynced() bool -} - -// restrictUsersAdmission implements admission.ValidateInterface and enforces -// restrictions on adding rolebindings in a project to permit only designated -// subjects. -type restrictUsersAdmission struct { - *admission.Handler - - roleBindingRestrictionsGetter authorizationtypedclient.RoleBindingRestrictionsGetter - userClient userclient.Interface - kubeClient kubernetes.Interface - groupCache GroupCache -} - -var _ = admissionrestconfig.WantsRESTClientConfig(&restrictUsersAdmission{}) -var _ = WantsUserInformer(&restrictUsersAdmission{}) -var _ = initializer.WantsExternalKubeClientSet(&restrictUsersAdmission{}) -var _ = admission.ValidationInterface(&restrictUsersAdmission{}) - -// NewRestrictUsersAdmission configures an admission plugin that enforces -// restrictions on adding role bindings in a project. -func NewRestrictUsersAdmission() (admission.Interface, error) { - return &restrictUsersAdmission{ - Handler: admission.NewHandler(admission.Create, admission.Update), - }, nil -} - -func (q *restrictUsersAdmission) SetExternalKubeClientSet(c kubernetes.Interface) { - q.kubeClient = c -} - -func (q *restrictUsersAdmission) SetRESTClientConfig(restClientConfig rest.Config) { - var err error - - // RoleBindingRestriction is served using CRD resource any status update must use JSON - jsonClientConfig := rest.CopyConfig(&restClientConfig) - jsonClientConfig.ContentConfig.AcceptContentTypes = "application/json" - jsonClientConfig.ContentConfig.ContentType = "application/json" - - q.roleBindingRestrictionsGetter, err = authorizationtypedclient.NewForConfig(jsonClientConfig) - if err != nil { - utilruntime.HandleError(err) - return - } - - q.userClient, err = userclient.NewForConfig(&restClientConfig) - if err != nil { - utilruntime.HandleError(err) - return - } -} - -func (q *restrictUsersAdmission) SetUserInformer(userInformers userinformer.SharedInformerFactory) { - q.groupCache = usercache.NewGroupCache(userInformers.User().V1().Groups()) -} - -// subjectsDelta returns the relative complement of elementsToIgnore in -// elements (i.e., elements∖elementsToIgnore). -func subjectsDelta(elementsToIgnore, elements []rbac.Subject) []rbac.Subject { - result := []rbac.Subject{} - - for _, el := range elements { - keep := true - for _, skipEl := range elementsToIgnore { - if el == skipEl { - keep = false - break - } - } - if keep { - result = append(result, el) - } - } - - return result -} - -// Admit makes admission decisions that enforce restrictions on adding -// project-scoped role-bindings. In order for a role binding to be permitted, -// each subject in the binding must be matched by some rolebinding restriction -// in the namespace. -func (q *restrictUsersAdmission) Validate(ctx context.Context, a admission.Attributes, _ admission.ObjectInterfaces) (err error) { - - // We only care about rolebindings - if a.GetResource().GroupResource() != rbac.Resource("rolebindings") { - return nil - } - - // Ignore all operations that correspond to subresource actions. - if len(a.GetSubresource()) != 0 { - return nil - } - - ns := a.GetNamespace() - // Ignore cluster-level resources. - if len(ns) == 0 { - return nil - } - - var oldSubjects []rbac.Subject - - obj, oldObj := a.GetObject(), a.GetOldObject() - - rolebinding, ok := obj.(*rbac.RoleBinding) - if !ok { - return admission.NewForbidden(a, - fmt.Errorf("wrong object type for new rolebinding: %T", obj)) - } - - if len(rolebinding.Subjects) == 0 { - klog.V(4).Infof("No new subjects; admitting") - return nil - } - - if oldObj != nil { - oldrolebinding, ok := oldObj.(*rbac.RoleBinding) - if !ok { - return admission.NewForbidden(a, - fmt.Errorf("wrong object type for old rolebinding: %T", oldObj)) - } - oldSubjects = oldrolebinding.Subjects - } - - klog.V(4).Infof("Handling rolebinding %s/%s", - rolebinding.Namespace, rolebinding.Name) - - newSubjects := subjectsDelta(oldSubjects, rolebinding.Subjects) - if len(newSubjects) == 0 { - klog.V(4).Infof("No new subjects; admitting") - return nil - } - - // RoleBindingRestrictions admission plugin is DefaultAllow, hence RBRs can't use an informer, - // because it's impossible to know if cache is up-to-date - roleBindingRestrictionList, err := q.roleBindingRestrictionsGetter.RoleBindingRestrictions(ns). - List(context.TODO(), metav1.ListOptions{}) - if err != nil { - return admission.NewForbidden(a, fmt.Errorf("could not list rolebinding restrictions: %v", err)) - } - if len(roleBindingRestrictionList.Items) == 0 { - klog.V(4).Infof("No rolebinding restrictions specified; admitting") - return nil - } - - checkers := []SubjectChecker{} - for _, rbr := range roleBindingRestrictionList.Items { - checker, err := NewSubjectChecker(&rbr.Spec) - if err != nil { - return admission.NewForbidden(a, fmt.Errorf("could not create rolebinding restriction subject checker: %v", err)) - } - checkers = append(checkers, checker) - } - - roleBindingRestrictionContext, err := newRoleBindingRestrictionContext(ns, - q.kubeClient, q.userClient.UserV1(), q.groupCache) - if err != nil { - return admission.NewForbidden(a, fmt.Errorf("could not create rolebinding restriction context: %v", err)) - } - - checker := NewUnionSubjectChecker(checkers) - - errs := []error{} - for _, subject := range newSubjects { - allowed, err := checker.Allowed(subject, roleBindingRestrictionContext) - if err != nil { - errs = append(errs, err) - } - if !allowed { - errs = append(errs, - fmt.Errorf("rolebindings to %s %q are not allowed in project %q", - subject.Kind, subject.Name, ns)) - } - } - if len(errs) != 0 { - return admission.NewForbidden(a, kerrors.NewAggregate(errs)) - } - - klog.V(4).Infof("All new subjects are allowed; admitting") - - return nil -} - -func (q *restrictUsersAdmission) ValidateInitialization() error { - if q.kubeClient == nil { - return errors.New("RestrictUsersAdmission plugin requires a Kubernetes client") - } - if q.roleBindingRestrictionsGetter == nil { - return errors.New("RestrictUsersAdmission plugin requires an OpenShift client") - } - if q.userClient == nil { - return errors.New("RestrictUsersAdmission plugin requires an OpenShift user client") - } - if q.groupCache == nil { - return errors.New("RestrictUsersAdmission plugin requires a group cache") - } - - return nil -} diff --git a/openshift-kube-apiserver/admission/authorization/restrictusers/restrictusers_test.go b/openshift-kube-apiserver/admission/authorization/restrictusers/restrictusers_test.go deleted file mode 100644 index 50dd6eb5faea9..0000000000000 --- a/openshift-kube-apiserver/admission/authorization/restrictusers/restrictusers_test.go +++ /dev/null @@ -1,404 +0,0 @@ -package restrictusers - -import ( - "context" - "fmt" - "strings" - "testing" - - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/authentication/user" - "k8s.io/client-go/kubernetes/fake" - "k8s.io/kubernetes/pkg/apis/rbac" - - authorizationv1 "github.com/openshift/api/authorization/v1" - userv1 "github.com/openshift/api/user/v1" - fakeauthorizationclient "github.com/openshift/client-go/authorization/clientset/versioned/fake" - fakeuserclient "github.com/openshift/client-go/user/clientset/versioned/fake" -) - -func TestAdmission(t *testing.T) { - var ( - userAlice = userv1.User{ - ObjectMeta: metav1.ObjectMeta{ - Name: "Alice", - Labels: map[string]string{"foo": "bar"}, - }, - } - userAliceSubj = rbac.Subject{ - Kind: rbac.UserKind, - Name: "Alice", - } - - userBob = userv1.User{ - ObjectMeta: metav1.ObjectMeta{Name: "Bob"}, - Groups: []string{"group"}, - } - userBobSubj = rbac.Subject{ - Kind: rbac.UserKind, - Name: "Bob", - } - - group = userv1.Group{ - ObjectMeta: metav1.ObjectMeta{ - Name: "group", - Labels: map[string]string{"baz": "quux"}, - }, - Users: []string{userBobSubj.Name}, - } - groupSubj = rbac.Subject{ - Kind: rbac.GroupKind, - Name: "group", - } - - serviceaccount = corev1.ServiceAccount{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "namespace", - Name: "serviceaccount", - Labels: map[string]string{"xyzzy": "thud"}, - }, - } - serviceaccountSubj = rbac.Subject{ - Kind: rbac.ServiceAccountKind, - Namespace: "namespace", - Name: "serviceaccount", - } - ) - - testCases := []struct { - name string - expectedErr string - - object runtime.Object - oldObject runtime.Object - kind schema.GroupVersionKind - resource schema.GroupVersionResource - namespace string - subresource string - kubeObjects []runtime.Object - authorizationObjects []runtime.Object - userObjects []runtime.Object - }{ - { - name: "ignore (allow) if subresource is nonempty", - object: &rbac.RoleBinding{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "namespace", - Name: "rolebinding", - }, - Subjects: []rbac.Subject{userAliceSubj}, - }, - oldObject: &rbac.RoleBinding{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "namespace", - Name: "rolebinding", - }, - Subjects: []rbac.Subject{}, - }, - kind: rbac.Kind("RoleBinding").WithVersion("version"), - resource: rbac.Resource("rolebindings").WithVersion("version"), - namespace: "namespace", - subresource: "subresource", - kubeObjects: []runtime.Object{ - &corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: "namespace", - }, - }, - }, - }, - { - name: "ignore (allow) cluster-scoped rolebinding", - object: &rbac.RoleBinding{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "namespace", - Name: "rolebinding", - }, - Subjects: []rbac.Subject{userAliceSubj}, - RoleRef: rbac.RoleRef{Name: "name"}, - }, - oldObject: &rbac.RoleBinding{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "namespace", - Name: "rolebinding", - }, - Subjects: []rbac.Subject{}, - }, - kind: rbac.Kind("RoleBinding").WithVersion("version"), - resource: rbac.Resource("rolebindings").WithVersion("version"), - namespace: "", - subresource: "", - kubeObjects: []runtime.Object{ - &corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: "namespace", - }, - }, - }, - }, - { - name: "allow if the namespace has no rolebinding restrictions", - object: &rbac.RoleBinding{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "namespace", - Name: "rolebinding", - }, - Subjects: []rbac.Subject{ - userAliceSubj, - userBobSubj, - groupSubj, - serviceaccountSubj, - }, - RoleRef: rbac.RoleRef{Name: "name"}, - }, - oldObject: &rbac.RoleBinding{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "namespace", - Name: "rolebinding", - }, - Subjects: []rbac.Subject{}, - RoleRef: rbac.RoleRef{Name: "name"}, - }, - kind: rbac.Kind("RoleBinding").WithVersion("version"), - resource: rbac.Resource("rolebindings").WithVersion("version"), - namespace: "namespace", - subresource: "", - kubeObjects: []runtime.Object{ - &corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: "namespace", - }, - }, - }, - }, - { - name: "allow if any rolebinding with the subject already exists", - object: &rbac.RoleBinding{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "namespace", - Name: "rolebinding", - }, - Subjects: []rbac.Subject{ - userAliceSubj, - groupSubj, - serviceaccountSubj, - }, - RoleRef: rbac.RoleRef{Name: "name"}, - }, - oldObject: &rbac.RoleBinding{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "namespace", - Name: "rolebinding", - }, - Subjects: []rbac.Subject{ - userAliceSubj, - groupSubj, - serviceaccountSubj, - }, - RoleRef: rbac.RoleRef{Name: "name"}, - }, - kind: rbac.Kind("RoleBinding").WithVersion("version"), - resource: rbac.Resource("rolebindings").WithVersion("version"), - namespace: "namespace", - subresource: "", - kubeObjects: []runtime.Object{ - &corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: "namespace", - }, - }, - }, - authorizationObjects: []runtime.Object{ - &authorizationv1.RoleBindingRestriction{ - ObjectMeta: metav1.ObjectMeta{ - Name: "bogus-matcher", - Namespace: "namespace", - }, - Spec: authorizationv1.RoleBindingRestrictionSpec{ - UserRestriction: &authorizationv1.UserRestriction{}, - }, - }, - }, - }, - { - name: "allow a user, group, or service account in a rolebinding if a literal matches", - object: &rbac.RoleBinding{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "namespace", - Name: "rolebinding", - }, - Subjects: []rbac.Subject{ - userAliceSubj, - serviceaccountSubj, - groupSubj, - }, - RoleRef: rbac.RoleRef{Name: "name"}, - }, - oldObject: &rbac.RoleBinding{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "namespace", - Name: "rolebinding", - }, - Subjects: []rbac.Subject{}, - RoleRef: rbac.RoleRef{Name: "name"}, - }, - kind: rbac.Kind("RoleBinding").WithVersion("version"), - resource: rbac.Resource("rolebindings").WithVersion("version"), - namespace: "namespace", - subresource: "", - kubeObjects: []runtime.Object{ - &corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: "namespace", - }, - }, - }, - authorizationObjects: []runtime.Object{ - &authorizationv1.RoleBindingRestriction{ - ObjectMeta: metav1.ObjectMeta{ - Name: "match-users", - Namespace: "namespace", - }, - Spec: authorizationv1.RoleBindingRestrictionSpec{ - UserRestriction: &authorizationv1.UserRestriction{ - Users: []string{userAlice.Name}, - }, - }, - }, - &authorizationv1.RoleBindingRestriction{ - ObjectMeta: metav1.ObjectMeta{ - Name: "match-groups", - Namespace: "namespace", - }, - Spec: authorizationv1.RoleBindingRestrictionSpec{ - GroupRestriction: &authorizationv1.GroupRestriction{ - Groups: []string{group.Name}, - }, - }, - }, - &authorizationv1.RoleBindingRestriction{ - ObjectMeta: metav1.ObjectMeta{ - Name: "match-serviceaccounts", - Namespace: "namespace", - }, - Spec: authorizationv1.RoleBindingRestrictionSpec{ - ServiceAccountRestriction: &authorizationv1.ServiceAccountRestriction{ - ServiceAccounts: []authorizationv1.ServiceAccountReference{ - { - Name: serviceaccount.Name, - Namespace: serviceaccount.Namespace, - }, - }, - }, - }, - }, - }, - }, - { - name: "prohibit user without a matching user literal", - expectedErr: fmt.Sprintf("rolebindings to %s %q are not allowed", - userAliceSubj.Kind, userAliceSubj.Name), - object: &rbac.RoleBinding{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "namespace", - Name: "rolebinding", - }, - Subjects: []rbac.Subject{ - userAliceSubj, - }, - RoleRef: rbac.RoleRef{Name: "name"}, - }, - oldObject: &rbac.RoleBinding{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "namespace", - Name: "rolebinding", - }, - Subjects: []rbac.Subject{}, - RoleRef: rbac.RoleRef{Name: "name"}, - }, - kind: rbac.Kind("RoleBinding").WithVersion("version"), - resource: rbac.Resource("rolebindings").WithVersion("version"), - namespace: "namespace", - subresource: "", - kubeObjects: []runtime.Object{ - &corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: "namespace", - }, - }, - }, - authorizationObjects: []runtime.Object{ - &authorizationv1.RoleBindingRestriction{ - ObjectMeta: metav1.ObjectMeta{ - Name: "match-users-bob", - Namespace: "namespace", - }, - Spec: authorizationv1.RoleBindingRestrictionSpec{ - UserRestriction: &authorizationv1.UserRestriction{ - Users: []string{userBobSubj.Name}, - }, - }, - }, - }, - userObjects: []runtime.Object{ - &userAlice, - &userBob, - }, - }, - } - - stopCh := make(chan struct{}) - defer close(stopCh) - - for _, tc := range testCases { - kclientset := fake.NewSimpleClientset(tc.kubeObjects...) - fakeUserClient := fakeuserclient.NewSimpleClientset(tc.userObjects...) - fakeAuthorizationClient := fakeauthorizationclient.NewSimpleClientset(tc.authorizationObjects...) - - plugin, err := NewRestrictUsersAdmission() - if err != nil { - t.Errorf("unexpected error initializing admission plugin: %v", err) - } - - plugin.(*restrictUsersAdmission).kubeClient = kclientset - plugin.(*restrictUsersAdmission).roleBindingRestrictionsGetter = fakeAuthorizationClient.AuthorizationV1() - plugin.(*restrictUsersAdmission).userClient = fakeUserClient - plugin.(*restrictUsersAdmission).groupCache = fakeGroupCache{} - - err = admission.ValidateInitialization(plugin) - if err != nil { - t.Errorf("unexpected error validating admission plugin: %v", err) - } - - attributes := admission.NewAttributesRecord( - tc.object, - tc.oldObject, - tc.kind, - tc.namespace, - tc.name, - tc.resource, - tc.subresource, - admission.Create, - nil, - false, - &user.DefaultInfo{}, - ) - - err = plugin.(admission.ValidationInterface).Validate(context.TODO(), attributes, nil) - switch { - case len(tc.expectedErr) == 0 && err == nil: - case len(tc.expectedErr) == 0 && err != nil: - t.Errorf("%s: unexpected error: %v", tc.name, err) - case len(tc.expectedErr) != 0 && err == nil: - t.Errorf("%s: missing error: %v", tc.name, tc.expectedErr) - case len(tc.expectedErr) != 0 && err != nil && - !strings.Contains(err.Error(), tc.expectedErr): - t.Errorf("%s: missing error: expected %v, got %v", - tc.name, tc.expectedErr, err) - } - } -} diff --git a/openshift-kube-apiserver/admission/authorization/restrictusers/subjectchecker.go b/openshift-kube-apiserver/admission/authorization/restrictusers/subjectchecker.go deleted file mode 100644 index 2e10e182b9de9..0000000000000 --- a/openshift-kube-apiserver/admission/authorization/restrictusers/subjectchecker.go +++ /dev/null @@ -1,312 +0,0 @@ -package restrictusers - -import ( - "context" - "fmt" - "time" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - kerrors "k8s.io/apimachinery/pkg/util/errors" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/apis/rbac" - - authorizationv1 "github.com/openshift/api/authorization/v1" - userv1 "github.com/openshift/api/user/v1" - userclient "github.com/openshift/client-go/user/clientset/versioned/typed/user/v1" -) - -// SubjectChecker determines whether rolebindings on a subject (user, group, or -// service account) are allowed in a project. -type SubjectChecker interface { - Allowed(rbac.Subject, *RoleBindingRestrictionContext) (bool, error) -} - -// UnionSubjectChecker represents the union of zero or more SubjectCheckers. -type UnionSubjectChecker []SubjectChecker - -// NewUnionSubjectChecker returns a new UnionSubjectChecker. -func NewUnionSubjectChecker(checkers []SubjectChecker) UnionSubjectChecker { - return UnionSubjectChecker(checkers) -} - -// Allowed determines whether the given subject is allowed in rolebindings in -// the project. -func (checkers UnionSubjectChecker) Allowed(subject rbac.Subject, ctx *RoleBindingRestrictionContext) (bool, error) { - errs := []error{} - for _, checker := range []SubjectChecker(checkers) { - allowed, err := checker.Allowed(subject, ctx) - if err != nil { - errs = append(errs, err) - } else if allowed { - return true, nil - } - } - - return false, kerrors.NewAggregate(errs) -} - -// RoleBindingRestrictionContext holds context that is used when determining -// whether a RoleBindingRestriction allows rolebindings on a particular subject. -type RoleBindingRestrictionContext struct { - userClient userclient.UserV1Interface - kclient kubernetes.Interface - - // groupCache maps user name to groups. - groupCache GroupCache - - // userToLabels maps user name to labels.Set. - userToLabelSet map[string]labels.Set - - // groupToLabels maps group name to labels.Set. - groupToLabelSet map[string]labels.Set - - // namespace is the namespace for which the RoleBindingRestriction makes - // determinations. - namespace string -} - -// NewRoleBindingRestrictionContext returns a new RoleBindingRestrictionContext -// object. -func newRoleBindingRestrictionContext(ns string, kc kubernetes.Interface, userClient userclient.UserV1Interface, groupCache GroupCache) (*RoleBindingRestrictionContext, error) { - return &RoleBindingRestrictionContext{ - namespace: ns, - kclient: kc, - userClient: userClient, - groupCache: groupCache, - userToLabelSet: map[string]labels.Set{}, - groupToLabelSet: map[string]labels.Set{}, - }, nil -} - -// labelSetForUser returns the label set for the given user subject. -func (ctx *RoleBindingRestrictionContext) labelSetForUser(subject rbac.Subject) (labels.Set, error) { - if subject.Kind != rbac.UserKind { - return labels.Set{}, fmt.Errorf("not a user: %q", subject.Name) - } - - labelSet, ok := ctx.userToLabelSet[subject.Name] - if ok { - return labelSet, nil - } - - user, err := ctx.userClient.Users().Get(context.TODO(), subject.Name, metav1.GetOptions{}) - if err != nil { - return labels.Set{}, err - } - - ctx.userToLabelSet[subject.Name] = labels.Set(user.Labels) - - return ctx.userToLabelSet[subject.Name], nil -} - -// groupsForUser returns the groups for the given user subject. -func (ctx *RoleBindingRestrictionContext) groupsForUser(subject rbac.Subject) ([]*userv1.Group, error) { - if subject.Kind != rbac.UserKind { - return []*userv1.Group{}, fmt.Errorf("not a user: %q", subject.Name) - } - - err := wait.PollImmediate(1*time.Second, 10*time.Second, func() (bool, error) { - return ctx.groupCache.HasSynced(), nil - }) - if err != nil { - return nil, fmt.Errorf("groups.user.openshift.io cache is not synchronized") - } - - return ctx.groupCache.GroupsFor(subject.Name) -} - -// labelSetForGroup returns the label set for the given group subject. -func (ctx *RoleBindingRestrictionContext) labelSetForGroup(subject rbac.Subject) (labels.Set, error) { - if subject.Kind != rbac.GroupKind { - return labels.Set{}, fmt.Errorf("not a group: %q", subject.Name) - } - - labelSet, ok := ctx.groupToLabelSet[subject.Name] - if ok { - return labelSet, nil - } - - group, err := ctx.userClient.Groups().Get(context.TODO(), subject.Name, metav1.GetOptions{}) - if err != nil { - return labels.Set{}, err - } - - ctx.groupToLabelSet[subject.Name] = labels.Set(group.Labels) - - return ctx.groupToLabelSet[subject.Name], nil -} - -// UserSubjectChecker determines whether a user subject is allowed in -// rolebindings in the project. -type UserSubjectChecker struct { - userRestriction *authorizationv1.UserRestriction -} - -// NewUserSubjectChecker returns a new UserSubjectChecker. -func NewUserSubjectChecker(userRestriction *authorizationv1.UserRestriction) UserSubjectChecker { - return UserSubjectChecker{userRestriction: userRestriction} -} - -// Allowed determines whether the given user subject is allowed in rolebindings -// in the project. -func (checker UserSubjectChecker) Allowed(subject rbac.Subject, ctx *RoleBindingRestrictionContext) (bool, error) { - if subject.Kind != rbac.UserKind { - return false, nil - } - - for _, userName := range checker.userRestriction.Users { - if subject.Name == userName { - return true, nil - } - } - - if len(checker.userRestriction.Groups) != 0 { - subjectGroups, err := ctx.groupsForUser(subject) - if err != nil { - return false, err - } - - for _, groupName := range checker.userRestriction.Groups { - for _, group := range subjectGroups { - if group.Name == groupName { - return true, nil - } - } - } - } - - if len(checker.userRestriction.Selectors) != 0 { - labelSet, err := ctx.labelSetForUser(subject) - if err != nil { - return false, err - } - - for _, labelSelector := range checker.userRestriction.Selectors { - selector, err := metav1.LabelSelectorAsSelector(&labelSelector) - if err != nil { - return false, err - } - - if selector.Matches(labelSet) { - return true, nil - } - } - } - - return false, nil -} - -// GroupSubjectChecker determines whether a group subject is allowed in -// rolebindings in the project. -type GroupSubjectChecker struct { - groupRestriction *authorizationv1.GroupRestriction -} - -// NewGroupSubjectChecker returns a new GroupSubjectChecker. -func NewGroupSubjectChecker(groupRestriction *authorizationv1.GroupRestriction) GroupSubjectChecker { - return GroupSubjectChecker{groupRestriction: groupRestriction} -} - -// Allowed determines whether the given group subject is allowed in rolebindings -// in the project. -func (checker GroupSubjectChecker) Allowed(subject rbac.Subject, ctx *RoleBindingRestrictionContext) (bool, error) { - if subject.Kind != rbac.GroupKind { - return false, nil - } - - for _, groupName := range checker.groupRestriction.Groups { - if subject.Name == groupName { - return true, nil - } - } - - if len(checker.groupRestriction.Selectors) != 0 { - labelSet, err := ctx.labelSetForGroup(subject) - if err != nil { - return false, err - } - - for _, labelSelector := range checker.groupRestriction.Selectors { - selector, err := metav1.LabelSelectorAsSelector(&labelSelector) - if err != nil { - return false, err - } - - if selector.Matches(labelSet) { - return true, nil - } - } - } - - return false, nil -} - -// ServiceAccountSubjectChecker determines whether a serviceaccount subject is -// allowed in rolebindings in the project. -type ServiceAccountSubjectChecker struct { - serviceAccountRestriction *authorizationv1.ServiceAccountRestriction -} - -// NewServiceAccountSubjectChecker returns a new ServiceAccountSubjectChecker. -func NewServiceAccountSubjectChecker(serviceAccountRestriction *authorizationv1.ServiceAccountRestriction) ServiceAccountSubjectChecker { - return ServiceAccountSubjectChecker{ - serviceAccountRestriction: serviceAccountRestriction, - } -} - -// Allowed determines whether the given serviceaccount subject is allowed in -// rolebindings in the project. -func (checker ServiceAccountSubjectChecker) Allowed(subject rbac.Subject, ctx *RoleBindingRestrictionContext) (bool, error) { - if subject.Kind != rbac.ServiceAccountKind { - return false, nil - } - - subjectNamespace := subject.Namespace - if len(subjectNamespace) == 0 { - // If a RoleBinding has a subject that is a ServiceAccount with - // no namespace specified, the namespace will be defaulted to - // that of the RoleBinding. However, admission control plug-ins - // execute before this happens, so in order not to reject such - // subjects erroneously, we copy the logic here of using the - // RoleBinding's namespace if the subject's is empty. - subjectNamespace = ctx.namespace - } - - for _, namespace := range checker.serviceAccountRestriction.Namespaces { - if subjectNamespace == namespace { - return true, nil - } - } - - for _, serviceAccountRef := range checker.serviceAccountRestriction.ServiceAccounts { - serviceAccountNamespace := serviceAccountRef.Namespace - if len(serviceAccountNamespace) == 0 { - serviceAccountNamespace = ctx.namespace - } - - if subject.Name == serviceAccountRef.Name && - subjectNamespace == serviceAccountNamespace { - return true, nil - } - } - - return false, nil -} - -// NewSubjectChecker returns a new SubjectChecker. -func NewSubjectChecker(spec *authorizationv1.RoleBindingRestrictionSpec) (SubjectChecker, error) { - switch { - case spec.UserRestriction != nil: - return NewUserSubjectChecker(spec.UserRestriction), nil - - case spec.GroupRestriction != nil: - return NewGroupSubjectChecker(spec.GroupRestriction), nil - - case spec.ServiceAccountRestriction != nil: - return NewServiceAccountSubjectChecker(spec.ServiceAccountRestriction), nil - } - - return nil, fmt.Errorf("invalid RoleBindingRestrictionSpec: %v", spec) -} diff --git a/openshift-kube-apiserver/admission/authorization/restrictusers/subjectchecker_test.go b/openshift-kube-apiserver/admission/authorization/restrictusers/subjectchecker_test.go deleted file mode 100644 index 4580d3582f93e..0000000000000 --- a/openshift-kube-apiserver/admission/authorization/restrictusers/subjectchecker_test.go +++ /dev/null @@ -1,349 +0,0 @@ -package restrictusers - -import ( - "testing" - "time" - - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/client-go/kubernetes/fake" - "k8s.io/kubernetes/pkg/apis/rbac" - - authorizationv1 "github.com/openshift/api/authorization/v1" - userv1 "github.com/openshift/api/user/v1" - fakeuserclient "github.com/openshift/client-go/user/clientset/versioned/fake" -) - -func mustNewSubjectChecker(t *testing.T, spec *authorizationv1.RoleBindingRestrictionSpec) SubjectChecker { - checker, err := NewSubjectChecker(spec) - if err != nil { - t.Errorf("unexpected error from NewChecker: %v, spec: %#v", err, spec) - } - - return checker -} - -func TestSubjectCheckers(t *testing.T) { - var ( - userBobRef = rbac.Subject{ - Kind: rbac.UserKind, - Name: "Bob", - } - userAliceRef = rbac.Subject{ - Kind: rbac.UserKind, - Name: "Alice", - } - groupRef = rbac.Subject{ - Kind: rbac.GroupKind, - Name: "group", - } - serviceaccountRef = rbac.Subject{ - Kind: rbac.ServiceAccountKind, - Namespace: "namespace", - Name: "serviceaccount", - } - group = userv1.Group{ - ObjectMeta: metav1.ObjectMeta{ - Name: "group", - Labels: map[string]string{"baz": "quux"}, - }, - Users: []string{userBobRef.Name}, - } - userObjects = []runtime.Object{ - &userv1.User{ - ObjectMeta: metav1.ObjectMeta{ - Name: "Alice", - Labels: map[string]string{"foo": "bar"}, - }, - }, - &userv1.User{ - ObjectMeta: metav1.ObjectMeta{Name: "Bob"}, - Groups: []string{"group"}, - }, - &group, - } - kubeObjects = []runtime.Object{ - &corev1.ServiceAccount{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "namespace", - Name: "serviceaccount", - Labels: map[string]string{"xyzzy": "thud"}, - }, - }, - } - ) - - testCases := []struct { - name string - checker SubjectChecker - subject rbac.Subject - shouldAllow bool - }{ - { - name: "allow regular user by literal name match", - checker: mustNewSubjectChecker(t, - &authorizationv1.RoleBindingRestrictionSpec{ - UserRestriction: &authorizationv1.UserRestriction{ - Users: []string{userAliceRef.Name}, - }, - }), - subject: userAliceRef, - shouldAllow: true, - }, - { - name: "allow regular user by group membership", - checker: mustNewSubjectChecker(t, - &authorizationv1.RoleBindingRestrictionSpec{ - UserRestriction: &authorizationv1.UserRestriction{ - Groups: []string{groupRef.Name}, - }, - }), - subject: userBobRef, - shouldAllow: true, - }, - { - name: "prohibit regular user when another user matches on group membership", - checker: mustNewSubjectChecker(t, - &authorizationv1.RoleBindingRestrictionSpec{ - UserRestriction: &authorizationv1.UserRestriction{ - Groups: []string{groupRef.Name}, - }, - }), - subject: userAliceRef, - shouldAllow: false, - }, - { - name: "allow regular user by label selector match", - checker: mustNewSubjectChecker(t, - &authorizationv1.RoleBindingRestrictionSpec{ - UserRestriction: &authorizationv1.UserRestriction{ - Selectors: []metav1.LabelSelector{ - {MatchLabels: map[string]string{"foo": "bar"}}, - }, - }, - }), - subject: userAliceRef, - shouldAllow: true, - }, - { - name: "prohibit regular user when another user matches on label selector", - checker: mustNewSubjectChecker(t, - &authorizationv1.RoleBindingRestrictionSpec{ - UserRestriction: &authorizationv1.UserRestriction{ - Selectors: []metav1.LabelSelector{ - {MatchLabels: map[string]string{"foo": "bar"}}, - }, - }, - }), - subject: userBobRef, - shouldAllow: false, - }, - { - name: "allow regular group by literal name match", - checker: mustNewSubjectChecker(t, - &authorizationv1.RoleBindingRestrictionSpec{ - GroupRestriction: &authorizationv1.GroupRestriction{ - Groups: []string{groupRef.Name}, - }, - }), - subject: groupRef, - shouldAllow: true, - }, - { - name: "allow regular group by label selector match", - checker: mustNewSubjectChecker(t, - &authorizationv1.RoleBindingRestrictionSpec{ - GroupRestriction: &authorizationv1.GroupRestriction{ - Selectors: []metav1.LabelSelector{ - {MatchLabels: map[string]string{"baz": "quux"}}, - }, - }, - }), - subject: groupRef, - shouldAllow: true, - }, - { - name: "allow service account with explicit namespace by match on literal name and explicit namespace", - checker: mustNewSubjectChecker(t, - &authorizationv1.RoleBindingRestrictionSpec{ - ServiceAccountRestriction: &authorizationv1.ServiceAccountRestriction{ - ServiceAccounts: []authorizationv1.ServiceAccountReference{ - { - Name: serviceaccountRef.Name, - Namespace: serviceaccountRef.Namespace, - }, - }, - }, - }), - subject: serviceaccountRef, - shouldAllow: true, - }, - { - name: "allow service account with explicit namespace by match on literal name and implicit namespace", - checker: mustNewSubjectChecker(t, - &authorizationv1.RoleBindingRestrictionSpec{ - ServiceAccountRestriction: &authorizationv1.ServiceAccountRestriction{ - ServiceAccounts: []authorizationv1.ServiceAccountReference{ - {Name: serviceaccountRef.Name}, - }, - }, - }), - subject: serviceaccountRef, - shouldAllow: true, - }, - { - name: "prohibit service account with explicit namespace where literal name matches but explicit namespace does not", - checker: mustNewSubjectChecker(t, - &authorizationv1.RoleBindingRestrictionSpec{ - ServiceAccountRestriction: &authorizationv1.ServiceAccountRestriction{ - ServiceAccounts: []authorizationv1.ServiceAccountReference{ - { - Namespace: serviceaccountRef.Namespace, - Name: serviceaccountRef.Name, - }, - }, - }, - }), - subject: rbac.Subject{ - Kind: rbac.ServiceAccountKind, - Namespace: "othernamespace", - Name: serviceaccountRef.Name, - }, - shouldAllow: false, - }, - { - name: "prohibit service account with explicit namespace where literal name matches but implicit namespace does not", - checker: mustNewSubjectChecker(t, - &authorizationv1.RoleBindingRestrictionSpec{ - ServiceAccountRestriction: &authorizationv1.ServiceAccountRestriction{ - ServiceAccounts: []authorizationv1.ServiceAccountReference{ - {Name: serviceaccountRef.Name}, - }, - }, - }), - subject: rbac.Subject{ - Kind: rbac.ServiceAccountKind, - Namespace: "othernamespace", - Name: serviceaccountRef.Name, - }, - shouldAllow: false, - }, - { - name: "allow service account with implicit namespace by match on literal name and explicit namespace", - checker: mustNewSubjectChecker(t, - &authorizationv1.RoleBindingRestrictionSpec{ - ServiceAccountRestriction: &authorizationv1.ServiceAccountRestriction{ - ServiceAccounts: []authorizationv1.ServiceAccountReference{ - { - Name: serviceaccountRef.Name, - Namespace: serviceaccountRef.Namespace, - }, - }, - }, - }), - subject: rbac.Subject{ - Kind: rbac.ServiceAccountKind, - Name: serviceaccountRef.Name, - }, - shouldAllow: true, - }, - { - name: "allow service account with implicit namespace by match on literal name and implicit namespace", - checker: mustNewSubjectChecker(t, - &authorizationv1.RoleBindingRestrictionSpec{ - ServiceAccountRestriction: &authorizationv1.ServiceAccountRestriction{ - ServiceAccounts: []authorizationv1.ServiceAccountReference{ - {Name: serviceaccountRef.Name}, - }, - }, - }), - subject: rbac.Subject{ - Kind: rbac.ServiceAccountKind, - Name: serviceaccountRef.Name, - }, - shouldAllow: true, - }, - { - name: "prohibit service account with implicit namespace where literal name matches but explicit namespace does not", - checker: mustNewSubjectChecker(t, - &authorizationv1.RoleBindingRestrictionSpec{ - ServiceAccountRestriction: &authorizationv1.ServiceAccountRestriction{ - ServiceAccounts: []authorizationv1.ServiceAccountReference{ - { - Namespace: "othernamespace", - Name: serviceaccountRef.Name, - }, - }, - }, - }), - subject: rbac.Subject{ - Kind: rbac.ServiceAccountKind, - Name: serviceaccountRef.Name, - }, - shouldAllow: false, - }, - { - name: "prohibit service account with explicit namespace where explicit namespace matches but literal name does not", - checker: mustNewSubjectChecker(t, - &authorizationv1.RoleBindingRestrictionSpec{ - ServiceAccountRestriction: &authorizationv1.ServiceAccountRestriction{ - ServiceAccounts: []authorizationv1.ServiceAccountReference{ - { - Namespace: serviceaccountRef.Namespace, - Name: "othername", - }, - }, - }, - }), - subject: serviceaccountRef, - shouldAllow: false, - }, - { - name: "allow service account by match on namespace", - checker: mustNewSubjectChecker(t, - &authorizationv1.RoleBindingRestrictionSpec{ - ServiceAccountRestriction: &authorizationv1.ServiceAccountRestriction{ - Namespaces: []string{serviceaccountRef.Namespace}, - }, - }), - subject: serviceaccountRef, - shouldAllow: true, - }, - } - - stopCh := make(chan struct{}) - defer close(stopCh) - - kclient := fake.NewSimpleClientset(kubeObjects...) - fakeUserClient := fakeuserclient.NewSimpleClientset(userObjects...) - groupCache := fakeGroupCache{groups: []userv1.Group{group}} - // This is a terrible, horrible, no-good, very bad hack to avoid a race - // condition between the test "allow regular user by group membership" - // and the group cache's initialisation. - for { - if groups, _ := groupCache.GroupsFor(group.Users[0]); len(groups) == 1 { - break - } - time.Sleep(10 * time.Millisecond) - } - - ctx, err := newRoleBindingRestrictionContext("namespace", - kclient, fakeUserClient.UserV1(), groupCache) - if err != nil { - t.Errorf("unexpected error: %v", err) - } - - for _, tc := range testCases { - allowed, err := tc.checker.Allowed(tc.subject, ctx) - if err != nil { - t.Errorf("test case %v: unexpected error: %v", tc.name, err) - } - if allowed && !tc.shouldAllow { - t.Errorf("test case %v: subject allowed but should be prohibited", tc.name) - } - if !allowed && tc.shouldAllow { - t.Errorf("test case %v: subject prohibited but should be allowed", tc.name) - } - } -} diff --git a/openshift-kube-apiserver/admission/authorization/restrictusers/usercache/groups.go b/openshift-kube-apiserver/admission/authorization/restrictusers/usercache/groups.go deleted file mode 100644 index 99a8156be3053..0000000000000 --- a/openshift-kube-apiserver/admission/authorization/restrictusers/usercache/groups.go +++ /dev/null @@ -1,55 +0,0 @@ -package usercache - -import ( - "fmt" - - "k8s.io/client-go/tools/cache" - - userapi "github.com/openshift/api/user/v1" - userinformer "github.com/openshift/client-go/user/informers/externalversions/user/v1" -) - -// GroupCache is a skin on an indexer to provide the reverse index from user to groups. -// Once we work out a cleaner way to extend a lister, this should live there. -type GroupCache struct { - indexer cache.Indexer - groupsSynced cache.InformerSynced -} - -const ByUserIndexName = "ByUser" - -// ByUserIndexKeys is cache.IndexFunc for Groups that will index groups by User, so that a direct cache lookup -// using a User.Name will return all Groups that User is a member of -func ByUserIndexKeys(obj interface{}) ([]string, error) { - group, ok := obj.(*userapi.Group) - if !ok { - return nil, fmt.Errorf("unexpected type: %v", obj) - } - - return group.Users, nil -} - -func NewGroupCache(groupInformer userinformer.GroupInformer) *GroupCache { - return &GroupCache{ - indexer: groupInformer.Informer().GetIndexer(), - groupsSynced: groupInformer.Informer().HasSynced, - } -} - -func (c *GroupCache) GroupsFor(username string) ([]*userapi.Group, error) { - objs, err := c.indexer.ByIndex(ByUserIndexName, username) - if err != nil { - return nil, err - } - - groups := make([]*userapi.Group, len(objs)) - for i := range objs { - groups[i] = objs[i].(*userapi.Group) - } - - return groups, nil -} - -func (c *GroupCache) HasSynced() bool { - return c.groupsSynced() -} diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/doc.go b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/doc.go deleted file mode 100644 index 7f2a6f888d472..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// +k8s:deepcopy-gen=package,register - -// Package api is the internal version of the API. -package clusterresourceoverride diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/name.go b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/name.go deleted file mode 100644 index f136def581ed5..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/name.go +++ /dev/null @@ -1,4 +0,0 @@ -package clusterresourceoverride - -const PluginName = "autoscaling.openshift.io/ClusterResourceOverride" -const ConfigKind = "ClusterResourceOverrideConfig" diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/register.go b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/register.go deleted file mode 100644 index 5308853cfd134..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/register.go +++ /dev/null @@ -1,23 +0,0 @@ -package clusterresourceoverride - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var GroupVersion = schema.GroupVersion{Group: "autoscaling.openshift.io", Version: runtime.APIVersionInternal} - -var ( - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - Install = schemeBuilder.AddToScheme -) - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &ClusterResourceOverrideConfig{}, - ) - return nil -} - -func (obj *ClusterResourceOverrideConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/types.go b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/types.go deleted file mode 100644 index 3718e265caafa..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/types.go +++ /dev/null @@ -1,24 +0,0 @@ -package clusterresourceoverride - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ClusterResourceOverrideConfig is the configuration for the ClusterResourceOverride -// admission controller which overrides user-provided container request/limit values. -type ClusterResourceOverrideConfig struct { - metav1.TypeMeta - // For each of the following, if a non-zero ratio is specified then the initial - // value (if any) in the pod spec is overwritten according to the ratio. - // LimitRange defaults are merged prior to the override. - // - // LimitCPUToMemoryPercent (if > 0) overrides the CPU limit to a ratio of the memory limit; - // 100% overrides CPU to 1 core per 1GiB of RAM. This is done before overriding the CPU request. - LimitCPUToMemoryPercent int64 - // CPURequestToLimitPercent (if > 0) overrides CPU request to a percentage of CPU limit - CPURequestToLimitPercent int64 - // MemoryRequestToLimitPercent (if > 0) overrides memory request to a percentage of memory limit - MemoryRequestToLimitPercent int64 -} diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/doc.go b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/doc.go deleted file mode 100644 index 7397986b23605..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/doc.go +++ /dev/null @@ -1,5 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride - -// Package v1 is the v1 version of the API. -package v1 diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/register.go b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/register.go deleted file mode 100644 index 91d44566e3476..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/register.go +++ /dev/null @@ -1,27 +0,0 @@ -package v1 - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - - "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride" -) - -func (obj *ClusterResourceOverrideConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } - -var GroupVersion = schema.GroupVersion{Group: "autoscaling.openshift.io", Version: "v1"} - -var ( - localSchemeBuilder = runtime.NewSchemeBuilder( - addKnownTypes, - clusterresourceoverride.Install, - ) - Install = localSchemeBuilder.AddToScheme -) - -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &ClusterResourceOverrideConfig{}, - ) - return nil -} diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/swagger_doc.go b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/swagger_doc.go deleted file mode 100644 index f909b0db2ee4f..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/swagger_doc.go +++ /dev/null @@ -1,17 +0,0 @@ -package v1 - -// This file contains methods that can be used by the go-restful package to generate Swagger -// documentation for the object types found in 'types.go' This file is automatically generated -// by hack/update-generated-swagger-descriptions.sh and should be run after a full build of OpenShift. -// ==== DO NOT EDIT THIS FILE MANUALLY ==== - -var map_ClusterResourceOverrideConfig = map[string]string{ - "": "ClusterResourceOverrideConfig is the configuration for the ClusterResourceOverride admission controller which overrides user-provided container request/limit values.", - "limitCPUToMemoryPercent": "For each of the following, if a non-zero ratio is specified then the initial value (if any) in the pod spec is overwritten according to the ratio. LimitRange defaults are merged prior to the override.\n\nLimitCPUToMemoryPercent (if > 0) overrides the CPU limit to a ratio of the memory limit; 100% overrides CPU to 1 core per 1GiB of RAM. This is done before overriding the CPU request.", - "cpuRequestToLimitPercent": "CPURequestToLimitPercent (if > 0) overrides CPU request to a percentage of CPU limit", - "memoryRequestToLimitPercent": "MemoryRequestToLimitPercent (if > 0) overrides memory request to a percentage of memory limit", -} - -func (ClusterResourceOverrideConfig) SwaggerDoc() map[string]string { - return map_ClusterResourceOverrideConfig -} diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/types.go b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/types.go deleted file mode 100644 index 9a56034174e15..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/types.go +++ /dev/null @@ -1,24 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ClusterResourceOverrideConfig is the configuration for the ClusterResourceOverride -// admission controller which overrides user-provided container request/limit values. -type ClusterResourceOverrideConfig struct { - metav1.TypeMeta `json:",inline"` - // For each of the following, if a non-zero ratio is specified then the initial - // value (if any) in the pod spec is overwritten according to the ratio. - // LimitRange defaults are merged prior to the override. - // - // LimitCPUToMemoryPercent (if > 0) overrides the CPU limit to a ratio of the memory limit; - // 100% overrides CPU to 1 core per 1GiB of RAM. This is done before overriding the CPU request. - LimitCPUToMemoryPercent int64 `json:"limitCPUToMemoryPercent"` - // CPURequestToLimitPercent (if > 0) overrides CPU request to a percentage of CPU limit - CPURequestToLimitPercent int64 `json:"cpuRequestToLimitPercent"` - // MemoryRequestToLimitPercent (if > 0) overrides memory request to a percentage of memory limit - MemoryRequestToLimitPercent int64 `json:"memoryRequestToLimitPercent"` -} diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/zz_generated.conversion.go b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/zz_generated.conversion.go deleted file mode 100644 index f8ca2c657e34d..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/zz_generated.conversion.go +++ /dev/null @@ -1,71 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 conversion-gen. DO NOT EDIT. - -package v1 - -import ( - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - clusterresourceoverride "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*ClusterResourceOverrideConfig)(nil), (*clusterresourceoverride.ClusterResourceOverrideConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_ClusterResourceOverrideConfig_To_clusterresourceoverride_ClusterResourceOverrideConfig(a.(*ClusterResourceOverrideConfig), b.(*clusterresourceoverride.ClusterResourceOverrideConfig), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*clusterresourceoverride.ClusterResourceOverrideConfig)(nil), (*ClusterResourceOverrideConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_clusterresourceoverride_ClusterResourceOverrideConfig_To_v1_ClusterResourceOverrideConfig(a.(*clusterresourceoverride.ClusterResourceOverrideConfig), b.(*ClusterResourceOverrideConfig), scope) - }); err != nil { - return err - } - return nil -} - -func autoConvert_v1_ClusterResourceOverrideConfig_To_clusterresourceoverride_ClusterResourceOverrideConfig(in *ClusterResourceOverrideConfig, out *clusterresourceoverride.ClusterResourceOverrideConfig, s conversion.Scope) error { - out.LimitCPUToMemoryPercent = in.LimitCPUToMemoryPercent - out.CPURequestToLimitPercent = in.CPURequestToLimitPercent - out.MemoryRequestToLimitPercent = in.MemoryRequestToLimitPercent - return nil -} - -// Convert_v1_ClusterResourceOverrideConfig_To_clusterresourceoverride_ClusterResourceOverrideConfig is an autogenerated conversion function. -func Convert_v1_ClusterResourceOverrideConfig_To_clusterresourceoverride_ClusterResourceOverrideConfig(in *ClusterResourceOverrideConfig, out *clusterresourceoverride.ClusterResourceOverrideConfig, s conversion.Scope) error { - return autoConvert_v1_ClusterResourceOverrideConfig_To_clusterresourceoverride_ClusterResourceOverrideConfig(in, out, s) -} - -func autoConvert_clusterresourceoverride_ClusterResourceOverrideConfig_To_v1_ClusterResourceOverrideConfig(in *clusterresourceoverride.ClusterResourceOverrideConfig, out *ClusterResourceOverrideConfig, s conversion.Scope) error { - out.LimitCPUToMemoryPercent = in.LimitCPUToMemoryPercent - out.CPURequestToLimitPercent = in.CPURequestToLimitPercent - out.MemoryRequestToLimitPercent = in.MemoryRequestToLimitPercent - return nil -} - -// Convert_clusterresourceoverride_ClusterResourceOverrideConfig_To_v1_ClusterResourceOverrideConfig is an autogenerated conversion function. -func Convert_clusterresourceoverride_ClusterResourceOverrideConfig_To_v1_ClusterResourceOverrideConfig(in *clusterresourceoverride.ClusterResourceOverrideConfig, out *ClusterResourceOverrideConfig, s conversion.Scope) error { - return autoConvert_clusterresourceoverride_ClusterResourceOverrideConfig_To_v1_ClusterResourceOverrideConfig(in, out, s) -} diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/zz_generated.deepcopy.go deleted file mode 100644 index e609027ea9ce3..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,50 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - 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 *ClusterResourceOverrideConfig) DeepCopyInto(out *ClusterResourceOverrideConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterResourceOverrideConfig. -func (in *ClusterResourceOverrideConfig) DeepCopy() *ClusterResourceOverrideConfig { - if in == nil { - return nil - } - out := new(ClusterResourceOverrideConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterResourceOverrideConfig) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/validation/validation.go b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/validation/validation.go deleted file mode 100644 index 14cdcdd586abf..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/validation/validation.go +++ /dev/null @@ -1,27 +0,0 @@ -package validation - -import ( - "k8s.io/apimachinery/pkg/util/validation/field" - - "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride" -) - -func Validate(config *clusterresourceoverride.ClusterResourceOverrideConfig) field.ErrorList { - allErrs := field.ErrorList{} - if config == nil { - return allErrs - } - if config.LimitCPUToMemoryPercent == 0 && config.CPURequestToLimitPercent == 0 && config.MemoryRequestToLimitPercent == 0 { - allErrs = append(allErrs, field.Forbidden(field.NewPath(clusterresourceoverride.PluginName), "plugin enabled but no percentages were specified")) - } - if config.LimitCPUToMemoryPercent < 0 { - allErrs = append(allErrs, field.Invalid(field.NewPath(clusterresourceoverride.PluginName, "LimitCPUToMemoryPercent"), config.LimitCPUToMemoryPercent, "must be positive")) - } - if config.CPURequestToLimitPercent < 0 || config.CPURequestToLimitPercent > 100 { - allErrs = append(allErrs, field.Invalid(field.NewPath(clusterresourceoverride.PluginName, "CPURequestToLimitPercent"), config.CPURequestToLimitPercent, "must be between 0 and 100")) - } - if config.MemoryRequestToLimitPercent < 0 || config.MemoryRequestToLimitPercent > 100 { - allErrs = append(allErrs, field.Invalid(field.NewPath(clusterresourceoverride.PluginName, "MemoryRequestToLimitPercent"), config.MemoryRequestToLimitPercent, "must be between 0 and 100")) - } - return allErrs -} diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/zz_generated.deepcopy.go deleted file mode 100644 index d2e3345945004..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/zz_generated.deepcopy.go +++ /dev/null @@ -1,50 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 deepcopy-gen. DO NOT EDIT. - -package clusterresourceoverride - -import ( - 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 *ClusterResourceOverrideConfig) DeepCopyInto(out *ClusterResourceOverrideConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterResourceOverrideConfig. -func (in *ClusterResourceOverrideConfig) DeepCopy() *ClusterResourceOverrideConfig { - if in == nil { - return nil - } - out := new(ClusterResourceOverrideConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterResourceOverrideConfig) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/doc.go b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/doc.go deleted file mode 100644 index 2eb498613c0ad..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// +k8s:deepcopy-gen=package,register - -// Package api is the internal version of the API. -package runonceduration diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/register.go b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/register.go deleted file mode 100644 index 379c2be1ed1a5..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/register.go +++ /dev/null @@ -1,34 +0,0 @@ -package runonceduration - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -// SchemeGroupVersion is group version used to register these objects -var GroupVersion = schema.GroupVersion{Group: "autoscaling.openshift.io", Version: runtime.APIVersionInternal} - -// Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) schema.GroupKind { - return GroupVersion.WithKind(kind).GroupKind() -} - -// Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) schema.GroupResource { - return GroupVersion.WithResource(resource).GroupResource() -} - -var ( - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - Install = schemeBuilder.AddToScheme -) - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &RunOnceDurationConfig{}, - ) - return nil -} - -func (obj *RunOnceDurationConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/types.go b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/types.go deleted file mode 100644 index 1a9f5a112c90a..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/types.go +++ /dev/null @@ -1,26 +0,0 @@ -package runonceduration - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// RunOnceDurationConfig is the configuration for the RunOnceDuration plugin. -// It specifies a maximum value for ActiveDeadlineSeconds for a run-once pod. -// The project that contains the pod may specify a different setting. That setting will -// take precedence over the one configured for the plugin here. -type RunOnceDurationConfig struct { - metav1.TypeMeta - - // ActiveDeadlineSecondsOverride is the maximum value to set on containers of run-once pods - // Only a positive value is valid. Absence of a value means that the plugin - // won't make any changes to the pod - ActiveDeadlineSecondsOverride *int64 -} - -// ActiveDeadlineSecondsLimitAnnotation can be set on a project to limit the number of -// seconds that a run-once pod can be active in that project -// TODO: this label needs to change to reflect its function. It's a limit, not an override. -// It is kept this way for compatibility. Only change it in a new version of the API. -const ActiveDeadlineSecondsLimitAnnotation = "openshift.io/active-deadline-seconds-override" diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/conversion.go b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/conversion.go deleted file mode 100644 index 31253537849a6..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/conversion.go +++ /dev/null @@ -1,26 +0,0 @@ -package v1 - -import ( - "k8s.io/apimachinery/pkg/conversion" - "k8s.io/apimachinery/pkg/runtime" - - internal "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration" -) - -func addConversionFuncs(scheme *runtime.Scheme) error { - err := scheme.AddConversionFunc((*RunOnceDurationConfig)(nil), (*internal.RunOnceDurationConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - in := a.(*RunOnceDurationConfig) - out := b.(*internal.RunOnceDurationConfig) - out.ActiveDeadlineSecondsOverride = in.ActiveDeadlineSecondsOverride - return nil - }) - if err != nil { - return err - } - return scheme.AddConversionFunc((*internal.RunOnceDurationConfig)(nil), (*RunOnceDurationConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - in := a.(*internal.RunOnceDurationConfig) - out := b.(*RunOnceDurationConfig) - out.ActiveDeadlineSecondsOverride = in.ActiveDeadlineSecondsOverride - return nil - }) -} diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/doc.go b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/doc.go deleted file mode 100644 index f70b886a67a72..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/doc.go +++ /dev/null @@ -1,5 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration - -// Package v1 is the v1 version of the API. -package v1 diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/register.go b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/register.go deleted file mode 100644 index b456123c9fab2..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/register.go +++ /dev/null @@ -1,29 +0,0 @@ -package v1 - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - - "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration" -) - -func (obj *RunOnceDurationConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } - -var GroupVersion = schema.GroupVersion{Group: "autoscaling.openshift.io", Version: "v1"} - -var ( - localSchemeBuilder = runtime.NewSchemeBuilder( - addKnownTypes, - runonceduration.Install, - - addConversionFuncs, - ) - Install = localSchemeBuilder.AddToScheme -) - -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &RunOnceDurationConfig{}, - ) - return nil -} diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/swagger_doc.go b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/swagger_doc.go deleted file mode 100644 index 1cb7c3cdb319f..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/swagger_doc.go +++ /dev/null @@ -1,15 +0,0 @@ -package v1 - -// This file contains methods that can be used by the go-restful package to generate Swagger -// documentation for the object types found in 'types.go' This file is automatically generated -// by hack/update-generated-swagger-descriptions.sh and should be run after a full build of OpenShift. -// ==== DO NOT EDIT THIS FILE MANUALLY ==== - -var map_RunOnceDurationConfig = map[string]string{ - "": "RunOnceDurationConfig is the configuration for the RunOnceDuration plugin. It specifies a maximum value for ActiveDeadlineSeconds for a run-once pod. The project that contains the pod may specify a different setting. That setting will take precedence over the one configured for the plugin here.", - "activeDeadlineSecondsOverride": "ActiveDeadlineSecondsOverride is the maximum value to set on containers of run-once pods Only a positive value is valid. Absence of a value means that the plugin won't make any changes to the pod It is kept this way for compatibility. Only change it in a new version of the API.", -} - -func (RunOnceDurationConfig) SwaggerDoc() map[string]string { - return map_RunOnceDurationConfig -} diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/types.go b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/types.go deleted file mode 100644 index 4cfa3823ba10b..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/types.go +++ /dev/null @@ -1,22 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// RunOnceDurationConfig is the configuration for the RunOnceDuration plugin. -// It specifies a maximum value for ActiveDeadlineSeconds for a run-once pod. -// The project that contains the pod may specify a different setting. That setting will -// take precedence over the one configured for the plugin here. -type RunOnceDurationConfig struct { - metav1.TypeMeta `json:",inline"` - - // ActiveDeadlineSecondsOverride is the maximum value to set on containers of run-once pods - // Only a positive value is valid. Absence of a value means that the plugin - // won't make any changes to the pod - // TODO: change the external name of this field to reflect that it is a limit, not an override - // It is kept this way for compatibility. Only change it in a new version of the API. - ActiveDeadlineSecondsOverride *int64 `json:"activeDeadlineSecondsOverride,omitempty" description:"maximum value for activeDeadlineSeconds in run-once pods"` -} diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/zz_generated.conversion.go b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/zz_generated.conversion.go deleted file mode 100644 index c2d65e81b521b..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/zz_generated.conversion.go +++ /dev/null @@ -1,69 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 conversion-gen. DO NOT EDIT. - -package v1 - -import ( - unsafe "unsafe" - - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - runonceduration "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*RunOnceDurationConfig)(nil), (*runonceduration.RunOnceDurationConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_RunOnceDurationConfig_To_runonceduration_RunOnceDurationConfig(a.(*RunOnceDurationConfig), b.(*runonceduration.RunOnceDurationConfig), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*runonceduration.RunOnceDurationConfig)(nil), (*RunOnceDurationConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_runonceduration_RunOnceDurationConfig_To_v1_RunOnceDurationConfig(a.(*runonceduration.RunOnceDurationConfig), b.(*RunOnceDurationConfig), scope) - }); err != nil { - return err - } - return nil -} - -func autoConvert_v1_RunOnceDurationConfig_To_runonceduration_RunOnceDurationConfig(in *RunOnceDurationConfig, out *runonceduration.RunOnceDurationConfig, s conversion.Scope) error { - out.ActiveDeadlineSecondsOverride = (*int64)(unsafe.Pointer(in.ActiveDeadlineSecondsOverride)) - return nil -} - -// Convert_v1_RunOnceDurationConfig_To_runonceduration_RunOnceDurationConfig is an autogenerated conversion function. -func Convert_v1_RunOnceDurationConfig_To_runonceduration_RunOnceDurationConfig(in *RunOnceDurationConfig, out *runonceduration.RunOnceDurationConfig, s conversion.Scope) error { - return autoConvert_v1_RunOnceDurationConfig_To_runonceduration_RunOnceDurationConfig(in, out, s) -} - -func autoConvert_runonceduration_RunOnceDurationConfig_To_v1_RunOnceDurationConfig(in *runonceduration.RunOnceDurationConfig, out *RunOnceDurationConfig, s conversion.Scope) error { - out.ActiveDeadlineSecondsOverride = (*int64)(unsafe.Pointer(in.ActiveDeadlineSecondsOverride)) - return nil -} - -// Convert_runonceduration_RunOnceDurationConfig_To_v1_RunOnceDurationConfig is an autogenerated conversion function. -func Convert_runonceduration_RunOnceDurationConfig_To_v1_RunOnceDurationConfig(in *runonceduration.RunOnceDurationConfig, out *RunOnceDurationConfig, s conversion.Scope) error { - return autoConvert_runonceduration_RunOnceDurationConfig_To_v1_RunOnceDurationConfig(in, out, s) -} diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/zz_generated.deepcopy.go deleted file mode 100644 index ff4c0295065c0..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,55 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - 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 *RunOnceDurationConfig) DeepCopyInto(out *RunOnceDurationConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.ActiveDeadlineSecondsOverride != nil { - in, out := &in.ActiveDeadlineSecondsOverride, &out.ActiveDeadlineSecondsOverride - *out = new(int64) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunOnceDurationConfig. -func (in *RunOnceDurationConfig) DeepCopy() *RunOnceDurationConfig { - if in == nil { - return nil - } - out := new(RunOnceDurationConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *RunOnceDurationConfig) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/validation/validation.go b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/validation/validation.go deleted file mode 100644 index 7ddcad869845a..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/validation/validation.go +++ /dev/null @@ -1,18 +0,0 @@ -package validation - -import ( - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration" -) - -// ValidateRunOnceDurationConfig validates the RunOnceDuration plugin configuration -func ValidateRunOnceDurationConfig(config *runonceduration.RunOnceDurationConfig) field.ErrorList { - allErrs := field.ErrorList{} - if config == nil || config.ActiveDeadlineSecondsOverride == nil { - return allErrs - } - if *config.ActiveDeadlineSecondsOverride <= 0 { - allErrs = append(allErrs, field.Invalid(field.NewPath("activeDeadlineSecondsOverride"), config.ActiveDeadlineSecondsOverride, "must be greater than 0")) - } - return allErrs -} diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/validation/validation_test.go b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/validation/validation_test.go deleted file mode 100644 index 19f6f6d70544b..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/validation/validation_test.go +++ /dev/null @@ -1,29 +0,0 @@ -package validation - -import ( - "testing" - - "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration" -) - -func TestRunOnceDurationConfigValidation(t *testing.T) { - // Check invalid duration returns an error - var invalidSecs int64 = -1 - invalidConfig := &runonceduration.RunOnceDurationConfig{ - ActiveDeadlineSecondsOverride: &invalidSecs, - } - errs := ValidateRunOnceDurationConfig(invalidConfig) - if len(errs) == 0 { - t.Errorf("Did not get expected error on invalid config") - } - - // Check that valid duration returns no error - var validSecs int64 = 5 - validConfig := &runonceduration.RunOnceDurationConfig{ - ActiveDeadlineSecondsOverride: &validSecs, - } - errs = ValidateRunOnceDurationConfig(validConfig) - if len(errs) > 0 { - t.Errorf("Unexpected error on valid config") - } -} diff --git a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/zz_generated.deepcopy.go deleted file mode 100644 index e2e9680e82357..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/zz_generated.deepcopy.go +++ /dev/null @@ -1,55 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 deepcopy-gen. DO NOT EDIT. - -package runonceduration - -import ( - 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 *RunOnceDurationConfig) DeepCopyInto(out *RunOnceDurationConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.ActiveDeadlineSecondsOverride != nil { - in, out := &in.ActiveDeadlineSecondsOverride, &out.ActiveDeadlineSecondsOverride - *out = new(int64) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunOnceDurationConfig. -func (in *RunOnceDurationConfig) DeepCopy() *RunOnceDurationConfig { - if in == nil { - return nil - } - out := new(RunOnceDurationConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *RunOnceDurationConfig) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/openshift-kube-apiserver/admission/autoscaling/clusterresourceoverride/admission.go b/openshift-kube-apiserver/admission/autoscaling/clusterresourceoverride/admission.go deleted file mode 100644 index 6aed487fdef13..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/clusterresourceoverride/admission.go +++ /dev/null @@ -1,348 +0,0 @@ -package clusterresourceoverride - -import ( - "context" - "fmt" - "io" - "strings" - - "github.com/openshift/library-go/pkg/config/helpers" - v1 "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1" - - "k8s.io/klog/v2" - - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/resource" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/admission/initializer" - "k8s.io/client-go/informers" - "k8s.io/client-go/kubernetes" - corev1listers "k8s.io/client-go/listers/core/v1" - coreapi "k8s.io/kubernetes/pkg/apis/core" - "k8s.io/kubernetes/plugin/pkg/admission/limitranger" - - api "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/validation" -) - -const ( - clusterResourceOverrideAnnotation = "autoscaling.openshift.io/cluster-resource-override-enabled" - cpuBaseScaleFactor = 1000.0 / (1024.0 * 1024.0 * 1024.0) // 1000 milliCores per 1GiB -) - -var ( - cpuFloor = resource.MustParse("1m") - memFloor = resource.MustParse("1Mi") -) - -func Register(plugins *admission.Plugins) { - plugins.Register(api.PluginName, - func(config io.Reader) (admission.Interface, error) { - pluginConfig, err := ReadConfig(config) - if err != nil { - return nil, err - } - if pluginConfig == nil { - klog.Infof("Admission plugin %q is not configured so it will be disabled.", api.PluginName) - return nil, nil - } - return newClusterResourceOverride(pluginConfig) - }) -} - -type internalConfig struct { - limitCPUToMemoryRatio float64 - cpuRequestToLimitRatio float64 - memoryRequestToLimitRatio float64 -} -type clusterResourceOverridePlugin struct { - *admission.Handler - config *internalConfig - nsLister corev1listers.NamespaceLister - LimitRanger *limitranger.LimitRanger - limitRangesLister corev1listers.LimitRangeLister -} - -var _ = initializer.WantsExternalKubeInformerFactory(&clusterResourceOverridePlugin{}) -var _ = initializer.WantsExternalKubeClientSet(&clusterResourceOverridePlugin{}) -var _ = admission.MutationInterface(&clusterResourceOverridePlugin{}) -var _ = admission.ValidationInterface(&clusterResourceOverridePlugin{}) - -// newClusterResourceOverride returns an admission controller for containers that -// configurably overrides container resource request/limits -func newClusterResourceOverride(config *api.ClusterResourceOverrideConfig) (admission.Interface, error) { - klog.V(2).Infof("%s admission controller loaded with config: %v", api.PluginName, config) - var internal *internalConfig - if config != nil { - internal = &internalConfig{ - limitCPUToMemoryRatio: float64(config.LimitCPUToMemoryPercent) / 100, - cpuRequestToLimitRatio: float64(config.CPURequestToLimitPercent) / 100, - memoryRequestToLimitRatio: float64(config.MemoryRequestToLimitPercent) / 100, - } - } - - limitRanger, err := limitranger.NewLimitRanger(nil) - if err != nil { - return nil, err - } - - return &clusterResourceOverridePlugin{ - Handler: admission.NewHandler(admission.Create), - config: internal, - LimitRanger: limitRanger, - }, nil -} - -func (d *clusterResourceOverridePlugin) SetExternalKubeClientSet(c kubernetes.Interface) { - d.LimitRanger.SetExternalKubeClientSet(c) -} - -func (d *clusterResourceOverridePlugin) SetExternalKubeInformerFactory(kubeInformers informers.SharedInformerFactory) { - d.LimitRanger.SetExternalKubeInformerFactory(kubeInformers) - d.limitRangesLister = kubeInformers.Core().V1().LimitRanges().Lister() - d.nsLister = kubeInformers.Core().V1().Namespaces().Lister() -} - -func ReadConfig(configFile io.Reader) (*api.ClusterResourceOverrideConfig, error) { - obj, err := helpers.ReadYAMLToInternal(configFile, api.Install, v1.Install) - if err != nil { - klog.V(5).Infof("%s error reading config: %v", api.PluginName, err) - return nil, err - } - if obj == nil { - return nil, nil - } - config, ok := obj.(*api.ClusterResourceOverrideConfig) - if !ok { - return nil, fmt.Errorf("unexpected config object: %#v", obj) - } - klog.V(5).Infof("%s config is: %v", api.PluginName, config) - if errs := validation.Validate(config); len(errs) > 0 { - return nil, errs.ToAggregate() - } - - return config, nil -} - -func (a *clusterResourceOverridePlugin) ValidateInitialization() error { - if a.nsLister == nil { - return fmt.Errorf("%s did not get a namespace lister", api.PluginName) - } - return a.LimitRanger.ValidateInitialization() -} - -// this a real shame to be special cased. -var ( - forbiddenNames = []string{"openshift", "kubernetes", "kube"} - forbiddenPrefixes = []string{"openshift-", "kubernetes-", "kube-"} -) - -func isExemptedNamespace(name string) bool { - for _, s := range forbiddenNames { - if name == s { - return true - } - } - for _, s := range forbiddenPrefixes { - if strings.HasPrefix(name, s) { - return true - } - } - return false -} - -func (a *clusterResourceOverridePlugin) Admit(ctx context.Context, attr admission.Attributes, o admission.ObjectInterfaces) error { - return a.admit(ctx, attr, true, o) -} - -func (a *clusterResourceOverridePlugin) Validate(ctx context.Context, attr admission.Attributes, o admission.ObjectInterfaces) error { - return a.admit(ctx, attr, false, o) -} - -// TODO this will need to update when we have pod requests/limits -func (a *clusterResourceOverridePlugin) admit(ctx context.Context, attr admission.Attributes, mutationAllowed bool, o admission.ObjectInterfaces) error { - klog.V(6).Infof("%s admission controller is invoked", api.PluginName) - if a.config == nil || attr.GetResource().GroupResource() != coreapi.Resource("pods") || attr.GetSubresource() != "" { - return nil // not applicable - } - pod, ok := attr.GetObject().(*coreapi.Pod) - if !ok { - return admission.NewForbidden(attr, fmt.Errorf("unexpected object: %#v", attr.GetObject())) - } - klog.V(5).Infof("%s is looking at creating pod %s in project %s", api.PluginName, pod.Name, attr.GetNamespace()) - - // allow annotations on project to override - ns, err := a.nsLister.Get(attr.GetNamespace()) - if err != nil { - klog.Warningf("%s got an error retrieving namespace: %v", api.PluginName, err) - return admission.NewForbidden(attr, err) // this should not happen though - } - - projectEnabledPlugin, exists := ns.Annotations[clusterResourceOverrideAnnotation] - if exists && projectEnabledPlugin != "true" { - klog.V(5).Infof("%s is disabled for project %s", api.PluginName, attr.GetNamespace()) - return nil // disabled for this project, do nothing - } - - if isExemptedNamespace(ns.Name) { - klog.V(5).Infof("%s is skipping exempted project %s", api.PluginName, attr.GetNamespace()) - return nil // project is exempted, do nothing - } - - namespaceLimits := []*corev1.LimitRange{} - - if a.limitRangesLister != nil { - limits, err := a.limitRangesLister.LimitRanges(attr.GetNamespace()).List(labels.Everything()) - if err != nil { - return err - } - namespaceLimits = limits - } - - // Don't mutate resource requirements below the namespace - // limit minimums. - nsCPUFloor := minResourceLimits(namespaceLimits, corev1.ResourceCPU) - nsMemFloor := minResourceLimits(namespaceLimits, corev1.ResourceMemory) - - // Reuse LimitRanger logic to apply limit/req defaults from the project. Ignore validation - // errors, assume that LimitRanger will run after this plugin to validate. - klog.V(5).Infof("%s: initial pod limits are: %#v", api.PluginName, pod.Spec) - if err := a.LimitRanger.Admit(ctx, attr, o); err != nil { - klog.V(5).Infof("%s: error from LimitRanger: %#v", api.PluginName, err) - } - klog.V(5).Infof("%s: pod limits after LimitRanger: %#v", api.PluginName, pod.Spec) - for i := range pod.Spec.InitContainers { - if err := updateContainerResources(a.config, &pod.Spec.InitContainers[i], nsCPUFloor, nsMemFloor, mutationAllowed); err != nil { - return admission.NewForbidden(attr, fmt.Errorf("spec.initContainers[%d].%v", i, err)) - } - } - for i := range pod.Spec.Containers { - if err := updateContainerResources(a.config, &pod.Spec.Containers[i], nsCPUFloor, nsMemFloor, mutationAllowed); err != nil { - return admission.NewForbidden(attr, fmt.Errorf("spec.containers[%d].%v", i, err)) - } - } - klog.V(5).Infof("%s: pod limits after overrides are: %#v", api.PluginName, pod.Spec) - return nil -} - -func updateContainerResources(config *internalConfig, container *coreapi.Container, nsCPUFloor, nsMemFloor *resource.Quantity, mutationAllowed bool) error { - resources := container.Resources - memLimit, memFound := resources.Limits[coreapi.ResourceMemory] - if memFound && config.memoryRequestToLimitRatio != 0 { - // memory is measured in whole bytes. - // the plugin rounds down to the nearest MiB rather than bytes to improve ease of use for end-users. - amount := memLimit.Value() * int64(config.memoryRequestToLimitRatio*100) / 100 - // TODO: move into resource.Quantity - var mod int64 - switch memLimit.Format { - case resource.BinarySI: - mod = 1024 * 1024 - default: - mod = 1000 * 1000 - } - if rem := amount % mod; rem != 0 { - amount = amount - rem - } - q := resource.NewQuantity(int64(amount), memLimit.Format) - if memFloor.Cmp(*q) > 0 { - clone := memFloor.DeepCopy() - q = &clone - } - if nsMemFloor != nil && q.Cmp(*nsMemFloor) < 0 { - klog.V(5).Infof("%s: %s pod limit %q below namespace limit; setting limit to %q", api.PluginName, corev1.ResourceMemory, q.String(), nsMemFloor.String()) - clone := nsMemFloor.DeepCopy() - q = &clone - } - if err := applyQuantity(resources.Requests, corev1.ResourceMemory, *q, mutationAllowed); err != nil { - return fmt.Errorf("resources.requests.%s %v", corev1.ResourceMemory, err) - } - } - if memFound && config.limitCPUToMemoryRatio != 0 { - amount := float64(memLimit.Value()) * config.limitCPUToMemoryRatio * cpuBaseScaleFactor - q := resource.NewMilliQuantity(int64(amount), resource.DecimalSI) - if cpuFloor.Cmp(*q) > 0 { - clone := cpuFloor.DeepCopy() - q = &clone - } - if nsCPUFloor != nil && q.Cmp(*nsCPUFloor) < 0 { - klog.V(5).Infof("%s: %s pod limit %q below namespace limit; setting limit to %q", api.PluginName, corev1.ResourceCPU, q.String(), nsCPUFloor.String()) - clone := nsCPUFloor.DeepCopy() - q = &clone - } - if err := applyQuantity(resources.Limits, corev1.ResourceCPU, *q, mutationAllowed); err != nil { - return fmt.Errorf("resources.limits.%s %v", corev1.ResourceCPU, err) - } - } - - cpuLimit, cpuFound := resources.Limits[coreapi.ResourceCPU] - if cpuFound && config.cpuRequestToLimitRatio != 0 { - amount := float64(cpuLimit.MilliValue()) * config.cpuRequestToLimitRatio - q := resource.NewMilliQuantity(int64(amount), cpuLimit.Format) - if cpuFloor.Cmp(*q) > 0 { - clone := cpuFloor.DeepCopy() - q = &clone - } - if nsCPUFloor != nil && q.Cmp(*nsCPUFloor) < 0 { - klog.V(5).Infof("%s: %s pod limit %q below namespace limit; setting limit to %q", api.PluginName, corev1.ResourceCPU, q.String(), nsCPUFloor.String()) - clone := nsCPUFloor.DeepCopy() - q = &clone - } - if err := applyQuantity(resources.Requests, corev1.ResourceCPU, *q, mutationAllowed); err != nil { - return fmt.Errorf("resources.requests.%s %v", corev1.ResourceCPU, err) - } - } - - return nil -} - -func applyQuantity(l coreapi.ResourceList, r corev1.ResourceName, v resource.Quantity, mutationAllowed bool) error { - if mutationAllowed { - l[coreapi.ResourceName(r)] = v - return nil - } - - if oldValue, ok := l[coreapi.ResourceName(r)]; !ok { - return fmt.Errorf("mutated, expected: %v, now absent", v) - } else if oldValue.Cmp(v) != 0 { - return fmt.Errorf("mutated, expected: %v, got %v", v, oldValue) - } - - return nil -} - -// minResourceLimits finds the Min limit for resourceName. Nil is -// returned if limitRanges is empty or limits contains no resourceName -// limits. -func minResourceLimits(limitRanges []*corev1.LimitRange, resourceName corev1.ResourceName) *resource.Quantity { - limits := []*resource.Quantity{} - - for _, limitRange := range limitRanges { - for _, limit := range limitRange.Spec.Limits { - if limit.Type == corev1.LimitTypeContainer { - if limit, found := limit.Min[resourceName]; found { - clone := limit.DeepCopy() - limits = append(limits, &clone) - } - } - } - } - - if len(limits) == 0 { - return nil - } - - return minQuantity(limits) -} - -func minQuantity(quantities []*resource.Quantity) *resource.Quantity { - min := quantities[0].DeepCopy() - - for i := range quantities { - if quantities[i].Cmp(min) < 0 { - min = quantities[i].DeepCopy() - } - } - - return &min -} diff --git a/openshift-kube-apiserver/admission/autoscaling/clusterresourceoverride/admission_test.go b/openshift-kube-apiserver/admission/autoscaling/clusterresourceoverride/admission_test.go deleted file mode 100644 index d1c54bb140aae..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/clusterresourceoverride/admission_test.go +++ /dev/null @@ -1,507 +0,0 @@ -package clusterresourceoverride - -import ( - "bytes" - "context" - "fmt" - "io" - "reflect" - "testing" - - "github.com/openshift/library-go/pkg/config/helpers" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/authentication/user" - corev1listers "k8s.io/client-go/listers/core/v1" - "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride" - clusterresourceoverridev1 "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/v1" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/clusterresourceoverride/validation" - kapi "k8s.io/kubernetes/pkg/apis/core" -) - -const ( - yamlConfig = ` -apiVersion: autoscaling.openshift.io/v1 -kind: ClusterResourceOverrideConfig -limitCPUToMemoryPercent: 100 -cpuRequestToLimitPercent: 10 -memoryRequestToLimitPercent: 25 -` - invalidConfig = ` -apiVersion: autoscaling.openshift.io/v1 -kind: ClusterResourceOverrideConfig -cpuRequestToLimitPercent: 200 -` - invalidConfig2 = ` -apiVersion: autoscaling.openshift.io/v1 -kind: ClusterResourceOverrideConfig -` -) - -var ( - deserializedYamlConfig = &clusterresourceoverride.ClusterResourceOverrideConfig{ - LimitCPUToMemoryPercent: 100, - CPURequestToLimitPercent: 10, - MemoryRequestToLimitPercent: 25, - } -) - -func TestConfigReader(t *testing.T) { - initialConfig := testConfig(10, 20, 30) - serializedConfig, serializationErr := helpers.WriteYAML(initialConfig, clusterresourceoverridev1.Install) - if serializationErr != nil { - t.Fatalf("WriteYAML: config serialize failed: %v", serializationErr) - } - - tests := []struct { - name string - config io.Reader - expectErr bool - expectNil bool - expectInvalid bool - expectedConfig *clusterresourceoverride.ClusterResourceOverrideConfig - }{ - { - name: "process nil config", - config: nil, - expectNil: true, - }, { - name: "deserialize initialConfig yaml", - config: bytes.NewReader(serializedConfig), - expectedConfig: initialConfig, - }, { - name: "completely broken config", - config: bytes.NewReader([]byte("asdfasdfasdF")), - expectErr: true, - }, { - name: "deserialize yamlConfig", - config: bytes.NewReader([]byte(yamlConfig)), - expectedConfig: deserializedYamlConfig, - }, { - name: "choke on out-of-bounds ratio", - config: bytes.NewReader([]byte(invalidConfig)), - expectInvalid: true, - expectErr: true, - }, { - name: "complain about no settings", - config: bytes.NewReader([]byte(invalidConfig2)), - expectInvalid: true, - expectErr: true, - }, - } - for _, test := range tests { - config, err := ReadConfig(test.config) - if test.expectErr && err == nil { - t.Errorf("%s: expected error", test.name) - } else if !test.expectErr && err != nil { - t.Errorf("%s: expected no error, saw %v", test.name, err) - } - if err == nil { - if test.expectNil && config != nil { - t.Errorf("%s: expected nil config, but saw: %v", test.name, config) - } else if !test.expectNil && config == nil { - t.Errorf("%s: expected config, but got nil", test.name) - } - } - if config != nil { - if test.expectedConfig != nil && *test.expectedConfig != *config { - t.Errorf("%s: expected %v from reader, but got %v", test.name, test.expectErr, config) - } - if err := validation.Validate(config); test.expectInvalid && len(err) == 0 { - t.Errorf("%s: expected validation to fail, but it passed", test.name) - } else if !test.expectInvalid && len(err) > 0 { - t.Errorf("%s: expected validation to pass, but it failed with %v", test.name, err) - } - } - } -} - -func TestLimitRequestAdmission(t *testing.T) { - tests := []struct { - name string - config *clusterresourceoverride.ClusterResourceOverrideConfig - pod *kapi.Pod - expectedMemRequest resource.Quantity - expectedCpuLimit resource.Quantity - expectedCpuRequest resource.Quantity - namespace *corev1.Namespace - namespaceLimits []*corev1.LimitRange - }{ - { - name: "ignore pods that have no memory limit specified", - config: testConfig(100, 50, 50), - pod: testBestEffortPod(), - expectedMemRequest: resource.MustParse("0"), - expectedCpuLimit: resource.MustParse("0"), - expectedCpuRequest: resource.MustParse("0"), - namespace: fakeNamespace(true), - }, - { - name: "with namespace limits, ignore pods that have no memory limit specified", - config: testConfig(100, 50, 50), - pod: testBestEffortPod(), - expectedMemRequest: resource.MustParse("0"), - expectedCpuLimit: resource.MustParse("0"), - expectedCpuRequest: resource.MustParse("0"), - namespace: fakeNamespace(true), - namespaceLimits: []*corev1.LimitRange{ - fakeMinCPULimitRange("567m"), - fakeMinCPULimitRange("678m"), - fakeMinMemoryLimitRange("700Gi"), - fakeMinMemoryLimitRange("456Gi"), - }, - }, - { - name: "test floor for memory and cpu", - config: testConfig(100, 50, 50), - pod: testPod("1Mi", "0", "0", "0"), - expectedMemRequest: resource.MustParse("1Mi"), - expectedCpuLimit: resource.MustParse("1m"), - expectedCpuRequest: resource.MustParse("1m"), - namespace: fakeNamespace(true), - }, - { - name: "with namespace limits, test floor for memory and cpu", - config: testConfig(100, 50, 50), - pod: testPod("1Mi", "0", "0", "0"), - expectedMemRequest: resource.MustParse("456Gi"), - expectedCpuLimit: resource.MustParse("567m"), - expectedCpuRequest: resource.MustParse("567m"), - namespace: fakeNamespace(true), - namespaceLimits: []*corev1.LimitRange{ - fakeMinCPULimitRange("567m"), - fakeMinCPULimitRange("678m"), - fakeMinMemoryLimitRange("700Gi"), - fakeMinMemoryLimitRange("456Gi"), - }, - }, - { - name: "nil config", - config: nil, - pod: testPod("1", "1", "1", "1"), - expectedMemRequest: resource.MustParse("1"), - expectedCpuLimit: resource.MustParse("1"), - expectedCpuRequest: resource.MustParse("1"), - namespace: fakeNamespace(true), - }, - { - name: "with namespace limits, nil config", - config: nil, - pod: testPod("1", "1", "1", "1"), - expectedMemRequest: resource.MustParse("1"), - expectedCpuLimit: resource.MustParse("1"), - expectedCpuRequest: resource.MustParse("1"), - namespace: fakeNamespace(true), - namespaceLimits: []*corev1.LimitRange{ - fakeMinCPULimitRange("567m"), - fakeMinCPULimitRange("678m"), - fakeMinMemoryLimitRange("700Gi"), - fakeMinMemoryLimitRange("456Gi"), - }, - }, - { - name: "all values are adjusted", - config: testConfig(100, 50, 50), - pod: testPod("1Gi", "0", "2000m", "0"), - expectedMemRequest: resource.MustParse("512Mi"), - expectedCpuLimit: resource.MustParse("1"), - expectedCpuRequest: resource.MustParse("500m"), - namespace: fakeNamespace(true), - }, - { - name: "with namespace limits, all values are adjusted to floor of namespace limits", - config: testConfig(100, 50, 50), - pod: testPod("1Gi", "0", "2000m", "0"), - expectedMemRequest: resource.MustParse("456Gi"), - expectedCpuLimit: resource.MustParse("10567m"), - expectedCpuRequest: resource.MustParse("10567m"), - namespace: fakeNamespace(true), - namespaceLimits: []*corev1.LimitRange{ - fakeMinCPULimitRange("10567m"), - fakeMinCPULimitRange("20678m"), - fakeMinMemoryLimitRange("700Gi"), - fakeMinMemoryLimitRange("456Gi"), - }, - }, - { - name: "just requests are adjusted", - config: testConfig(0, 50, 50), - pod: testPod("10Mi", "0", "50m", "0"), - expectedMemRequest: resource.MustParse("5Mi"), - expectedCpuLimit: resource.MustParse("50m"), - expectedCpuRequest: resource.MustParse("25m"), - namespace: fakeNamespace(true), - }, - { - name: "with namespace limits, all requests are adjusted to floor of namespace limits", - config: testConfig(0, 50, 50), - pod: testPod("10Mi", "0", "50m", "0"), - expectedMemRequest: resource.MustParse("456Gi"), - expectedCpuLimit: resource.MustParse("50m"), - expectedCpuRequest: resource.MustParse("10567m"), - namespace: fakeNamespace(true), - namespaceLimits: []*corev1.LimitRange{ - fakeMinCPULimitRange("10567m"), - fakeMinCPULimitRange("20678m"), - fakeMinMemoryLimitRange("700Gi"), - fakeMinMemoryLimitRange("456Gi"), - }, - }, - { - name: "project annotation disables overrides", - config: testConfig(0, 50, 50), - pod: testPod("10Mi", "0", "50m", "0"), - expectedMemRequest: resource.MustParse("0"), - expectedCpuLimit: resource.MustParse("50m"), - expectedCpuRequest: resource.MustParse("0"), - namespace: fakeNamespace(false), - }, - { - name: "with namespace limits, project annotation disables overrides", - config: testConfig(0, 50, 50), - pod: testPod("10Mi", "0", "50m", "0"), - expectedMemRequest: resource.MustParse("0"), - expectedCpuLimit: resource.MustParse("50m"), - expectedCpuRequest: resource.MustParse("0"), - namespace: fakeNamespace(false), - namespaceLimits: []*corev1.LimitRange{ - fakeMinCPULimitRange("10567m"), - fakeMinCPULimitRange("20678m"), - fakeMinMemoryLimitRange("700Gi"), - fakeMinMemoryLimitRange("456Gi"), - }, - }, - { - name: "large values don't overflow", - config: testConfig(100, 50, 50), - pod: testPod("1Ti", "0", "0", "0"), - expectedMemRequest: resource.MustParse("512Gi"), - expectedCpuLimit: resource.MustParse("1024"), - expectedCpuRequest: resource.MustParse("512"), - namespace: fakeNamespace(true), - }, - { - name: "little values mess things up", - config: testConfig(500, 10, 10), - pod: testPod("1.024Mi", "0", "0", "0"), - expectedMemRequest: resource.MustParse("1Mi"), - expectedCpuLimit: resource.MustParse("5m"), - expectedCpuRequest: resource.MustParse("1m"), - namespace: fakeNamespace(true), - }, - { - name: "test fractional memory requests round up", - config: testConfig(500, 10, 60), - pod: testPod("512Mi", "0", "0", "0"), - expectedMemRequest: resource.MustParse("307Mi"), - expectedCpuLimit: resource.MustParse("2.5"), - expectedCpuRequest: resource.MustParse("250m"), - namespace: fakeNamespace(true), - }, - { - name: "test only containers types are considered with namespace limits", - config: testConfig(100, 50, 50), - pod: testPod("1Gi", "0", "2000m", "0"), - expectedMemRequest: resource.MustParse("512Mi"), - expectedCpuLimit: resource.MustParse("1"), - expectedCpuRequest: resource.MustParse("500m"), - namespace: fakeNamespace(true), - namespaceLimits: []*corev1.LimitRange{ - fakeMinStorageLimitRange("1567Mi"), - }, - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - c, err := newClusterResourceOverride(test.config) - if err != nil { - t.Fatalf("%s: config de/serialize failed: %v", test.name, err) - } - // Override LimitRanger with limits from test case - c.(*clusterResourceOverridePlugin).limitRangesLister = fakeLimitRangeLister{ - namespaceLister: fakeLimitRangeNamespaceLister{ - limits: test.namespaceLimits, - }, - } - c.(*clusterResourceOverridePlugin).nsLister = fakeNamespaceLister(test.namespace) - attrs := admission.NewAttributesRecord(test.pod, nil, schema.GroupVersionKind{}, test.namespace.Name, "name", kapi.Resource("pods").WithVersion("version"), "", admission.Create, nil, false, fakeUser()) - clone := test.pod.DeepCopy() - if err = c.(admission.MutationInterface).Admit(context.TODO(), attrs, nil); err != nil { - t.Fatalf("%s: admission controller returned error: %v", test.name, err) - } - if err = c.(admission.ValidationInterface).Validate(context.TODO(), attrs, nil); err != nil { - t.Fatalf("%s: admission controller returned error: %v", test.name, err) - } - - if !reflect.DeepEqual(test.pod, clone) { - attrs := admission.NewAttributesRecord(clone, nil, schema.GroupVersionKind{}, test.namespace.Name, "name", kapi.Resource("pods").WithVersion("version"), "", admission.Create, nil, false, fakeUser()) - if err = c.(admission.ValidationInterface).Validate(context.TODO(), attrs, nil); err == nil { - t.Fatalf("%s: admission controller returned no error, but should", test.name) - } - } - - resources := test.pod.Spec.InitContainers[0].Resources // only test one container - if actual := resources.Requests[kapi.ResourceMemory]; test.expectedMemRequest.Cmp(actual) != 0 { - t.Errorf("%s: memory requests do not match; %v should be %v", test.name, actual, test.expectedMemRequest) - } - if actual := resources.Requests[kapi.ResourceCPU]; test.expectedCpuRequest.Cmp(actual) != 0 { - t.Errorf("%s: cpu requests do not match; %v should be %v", test.name, actual, test.expectedCpuRequest) - } - if actual := resources.Limits[kapi.ResourceCPU]; test.expectedCpuLimit.Cmp(actual) != 0 { - t.Errorf("%s: cpu limits do not match; %v should be %v", test.name, actual, test.expectedCpuLimit) - } - - resources = test.pod.Spec.Containers[0].Resources // only test one container - if actual := resources.Requests[kapi.ResourceMemory]; test.expectedMemRequest.Cmp(actual) != 0 { - t.Errorf("%s: memory requests do not match; %v should be %v", test.name, actual, test.expectedMemRequest) - } - if actual := resources.Requests[kapi.ResourceCPU]; test.expectedCpuRequest.Cmp(actual) != 0 { - t.Errorf("%s: cpu requests do not match; %v should be %v", test.name, actual, test.expectedCpuRequest) - } - if actual := resources.Limits[kapi.ResourceCPU]; test.expectedCpuLimit.Cmp(actual) != 0 { - t.Errorf("%s: cpu limits do not match; %v should be %v", test.name, actual, test.expectedCpuLimit) - } - }) - } -} - -func testBestEffortPod() *kapi.Pod { - return &kapi.Pod{ - Spec: kapi.PodSpec{ - InitContainers: []kapi.Container{ - { - Resources: kapi.ResourceRequirements{}, - }, - }, - Containers: []kapi.Container{ - { - Resources: kapi.ResourceRequirements{}, - }, - }, - }, - } -} - -func testPod(memLimit string, memRequest string, cpuLimit string, cpuRequest string) *kapi.Pod { - return &kapi.Pod{ - Spec: kapi.PodSpec{ - InitContainers: []kapi.Container{ - { - Resources: kapi.ResourceRequirements{ - Limits: kapi.ResourceList{ - kapi.ResourceCPU: resource.MustParse(cpuLimit), - kapi.ResourceMemory: resource.MustParse(memLimit), - }, - Requests: kapi.ResourceList{ - kapi.ResourceCPU: resource.MustParse(cpuRequest), - kapi.ResourceMemory: resource.MustParse(memRequest), - }, - }, - }, - }, - Containers: []kapi.Container{ - { - Resources: kapi.ResourceRequirements{ - Limits: kapi.ResourceList{ - kapi.ResourceCPU: resource.MustParse(cpuLimit), - kapi.ResourceMemory: resource.MustParse(memLimit), - }, - Requests: kapi.ResourceList{ - kapi.ResourceCPU: resource.MustParse(cpuRequest), - kapi.ResourceMemory: resource.MustParse(memRequest), - }, - }, - }, - }, - }, - } -} - -func fakeUser() user.Info { - return &user.DefaultInfo{ - Name: "testuser", - } -} - -var nsIndex = 0 - -func fakeNamespace(pluginEnabled bool) *corev1.Namespace { - nsIndex++ - ns := &corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: fmt.Sprintf("fakeNS%d", nsIndex), - Annotations: map[string]string{}, - }, - } - if !pluginEnabled { - ns.Annotations[clusterResourceOverrideAnnotation] = "false" - } - return ns -} - -func fakeNamespaceLister(ns *corev1.Namespace) corev1listers.NamespaceLister { - indexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{}) - indexer.Add(ns) - return corev1listers.NewNamespaceLister(indexer) -} - -func testConfig(lc2mr int64, cr2lr int64, mr2lr int64) *clusterresourceoverride.ClusterResourceOverrideConfig { - return &clusterresourceoverride.ClusterResourceOverrideConfig{ - LimitCPUToMemoryPercent: lc2mr, - CPURequestToLimitPercent: cr2lr, - MemoryRequestToLimitPercent: mr2lr, - } -} - -func fakeMinLimitRange(limitType corev1.LimitType, resourceType corev1.ResourceName, limits ...string) *corev1.LimitRange { - r := &corev1.LimitRange{} - - for i := range limits { - rl := corev1.ResourceList{} - rl[resourceType] = resource.MustParse(limits[i]) - r.Spec.Limits = append(r.Spec.Limits, - corev1.LimitRangeItem{ - Type: limitType, - Min: rl, - }, - ) - } - - return r -} - -func fakeMinMemoryLimitRange(limits ...string) *corev1.LimitRange { - return fakeMinLimitRange(corev1.LimitTypeContainer, corev1.ResourceMemory, limits...) -} - -func fakeMinCPULimitRange(limits ...string) *corev1.LimitRange { - return fakeMinLimitRange(corev1.LimitTypeContainer, corev1.ResourceCPU, limits...) -} - -func fakeMinStorageLimitRange(limits ...string) *corev1.LimitRange { - return fakeMinLimitRange(corev1.LimitTypePersistentVolumeClaim, corev1.ResourceStorage, limits...) -} - -type fakeLimitRangeLister struct { - corev1listers.LimitRangeLister - namespaceLister fakeLimitRangeNamespaceLister -} - -type fakeLimitRangeNamespaceLister struct { - corev1listers.LimitRangeNamespaceLister - limits []*corev1.LimitRange -} - -func (f fakeLimitRangeLister) LimitRanges(namespace string) corev1listers.LimitRangeNamespaceLister { - return f.namespaceLister -} - -func (f fakeLimitRangeNamespaceLister) List(selector labels.Selector) ([]*corev1.LimitRange, error) { - return f.limits, nil -} diff --git a/openshift-kube-apiserver/admission/autoscaling/clusterresourceoverride/doc.go b/openshift-kube-apiserver/admission/autoscaling/clusterresourceoverride/doc.go deleted file mode 100644 index aaf2176af054a..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/clusterresourceoverride/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -package clusterresourceoverride - -// The ClusterResourceOverride plugin is only active when admission control config is supplied for it. -// The plugin allows administrators to override user-provided container request/limit values -// in order to control overcommit and optionally pin CPU to memory. -// The plugin's actions can be disabled per-project with the project annotation -// autoscaling.openshift.io/cluster-resource-override-enabled="false", so cluster admins -// can exempt infrastructure projects and such from the overrides. diff --git a/openshift-kube-apiserver/admission/autoscaling/runonceduration/admission.go b/openshift-kube-apiserver/admission/autoscaling/runonceduration/admission.go deleted file mode 100644 index 9326205f9b333..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/runonceduration/admission.go +++ /dev/null @@ -1,148 +0,0 @@ -package runonceduration - -import ( - "context" - "errors" - "fmt" - "io" - "strconv" - - "k8s.io/klog/v2" - - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/admission/initializer" - "k8s.io/client-go/informers" - kapi "k8s.io/kubernetes/pkg/apis/core" - "k8s.io/utils/integer" - - "github.com/openshift/library-go/pkg/config/helpers" - corev1listers "k8s.io/client-go/listers/core/v1" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration" - v1 "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/v1" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration/validation" -) - -func Register(plugins *admission.Plugins) { - plugins.Register("autoscaling.openshift.io/RunOnceDuration", - func(config io.Reader) (admission.Interface, error) { - pluginConfig, err := readConfig(config) - if err != nil { - return nil, err - } - if pluginConfig == nil { - klog.Infof("Admission plugin %q is not configured so it will be disabled.", "autoscaling.openshift.io/RunOnceDuration") - return nil, nil - } - return NewRunOnceDuration(pluginConfig), nil - }) -} - -func readConfig(reader io.Reader) (*runonceduration.RunOnceDurationConfig, error) { - obj, err := helpers.ReadYAMLToInternal(reader, runonceduration.Install, v1.Install) - if err != nil { - return nil, err - } - if obj == nil { - return nil, nil - } - config, ok := obj.(*runonceduration.RunOnceDurationConfig) - if !ok { - return nil, fmt.Errorf("unexpected config object %#v", obj) - } - errs := validation.ValidateRunOnceDurationConfig(config) - if len(errs) > 0 { - return nil, errs.ToAggregate() - } - return config, nil -} - -// NewRunOnceDuration creates a new RunOnceDuration admission plugin -func NewRunOnceDuration(config *runonceduration.RunOnceDurationConfig) admission.Interface { - return &runOnceDuration{ - Handler: admission.NewHandler(admission.Create), - config: config, - } -} - -type runOnceDuration struct { - *admission.Handler - config *runonceduration.RunOnceDurationConfig - nsLister corev1listers.NamespaceLister -} - -var _ = initializer.WantsExternalKubeInformerFactory(&runOnceDuration{}) - -func (a *runOnceDuration) Admit(ctx context.Context, attributes admission.Attributes, _ admission.ObjectInterfaces) error { - switch { - case a.config == nil, - attributes.GetResource().GroupResource() != kapi.Resource("pods"), - len(attributes.GetSubresource()) > 0: - return nil - } - pod, ok := attributes.GetObject().(*kapi.Pod) - if !ok { - return admission.NewForbidden(attributes, fmt.Errorf("unexpected object: %#v", attributes.GetObject())) - } - - // Only update pods with a restart policy of Never or OnFailure - switch pod.Spec.RestartPolicy { - case kapi.RestartPolicyNever, - kapi.RestartPolicyOnFailure: - // continue - default: - return nil - } - - appliedProjectLimit, err := a.applyProjectAnnotationLimit(attributes.GetNamespace(), pod) - if err != nil { - return admission.NewForbidden(attributes, err) - } - - if !appliedProjectLimit && a.config.ActiveDeadlineSecondsOverride != nil { - pod.Spec.ActiveDeadlineSeconds = int64MinP(a.config.ActiveDeadlineSecondsOverride, pod.Spec.ActiveDeadlineSeconds) - } - return nil -} - -func (a *runOnceDuration) SetExternalKubeInformerFactory(kubeInformers informers.SharedInformerFactory) { - a.nsLister = kubeInformers.Core().V1().Namespaces().Lister() -} - -func (a *runOnceDuration) ValidateInitialization() error { - if a.nsLister == nil { - return errors.New("autoscaling.openshift.io/RunOnceDuration plugin requires a namespace listers") - } - return nil -} - -func (a *runOnceDuration) applyProjectAnnotationLimit(namespace string, pod *kapi.Pod) (bool, error) { - ns, err := a.nsLister.Get(namespace) - if err != nil { - return false, fmt.Errorf("error looking up pod namespace: %v", err) - } - if ns.Annotations == nil { - return false, nil - } - limit, hasLimit := ns.Annotations[runonceduration.ActiveDeadlineSecondsLimitAnnotation] - if !hasLimit { - return false, nil - } - limitInt64, err := strconv.ParseInt(limit, 10, 64) - if err != nil { - return false, fmt.Errorf("cannot parse the ActiveDeadlineSeconds limit (%s) for project %s: %v", limit, ns.Name, err) - } - pod.Spec.ActiveDeadlineSeconds = int64MinP(&limitInt64, pod.Spec.ActiveDeadlineSeconds) - return true, nil -} - -func int64MinP(a, b *int64) *int64 { - switch { - case a == nil: - return b - case b == nil: - return a - default: - c := integer.Int64Min(*a, *b) - return &c - } -} diff --git a/openshift-kube-apiserver/admission/autoscaling/runonceduration/admission_test.go b/openshift-kube-apiserver/admission/autoscaling/runonceduration/admission_test.go deleted file mode 100644 index 856d32801bfbb..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/runonceduration/admission_test.go +++ /dev/null @@ -1,215 +0,0 @@ -package runonceduration - -import ( - "bytes" - "context" - "testing" - - corev1 "k8s.io/api/core/v1" - "k8s.io/apiserver/pkg/admission" - corev1listers "k8s.io/client-go/listers/core/v1" - "k8s.io/client-go/tools/cache" - kapi "k8s.io/kubernetes/pkg/apis/core" - - "k8s.io/kubernetes/openshift-kube-apiserver/admission/autoscaling/apis/runonceduration" -) - -func fakeNamespaceLister(projectAnnotations map[string]string) corev1listers.NamespaceLister { - indexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{}) - ns := &corev1.Namespace{} - ns.Name = "default" - ns.Annotations = projectAnnotations - indexer.Add(ns) - return corev1listers.NewNamespaceLister(indexer) -} - -func testConfig(n *int64) *runonceduration.RunOnceDurationConfig { - return &runonceduration.RunOnceDurationConfig{ - ActiveDeadlineSecondsOverride: n, - } -} - -func testRunOncePod() *kapi.Pod { - pod := &kapi.Pod{} - pod.Spec.RestartPolicy = kapi.RestartPolicyNever - return pod -} - -func testRestartOnFailurePod() *kapi.Pod { - pod := &kapi.Pod{} - pod.Spec.RestartPolicy = kapi.RestartPolicyOnFailure - return pod -} - -func testRunOncePodWithDuration(n int64) *kapi.Pod { - pod := testRunOncePod() - pod.Spec.ActiveDeadlineSeconds = &n - return pod -} - -func testRestartAlwaysPod() *kapi.Pod { - pod := &kapi.Pod{} - pod.Spec.RestartPolicy = kapi.RestartPolicyAlways - return pod -} - -func int64p(n int64) *int64 { - return &n -} - -func TestRunOnceDurationAdmit(t *testing.T) { - tests := []struct { - name string - config *runonceduration.RunOnceDurationConfig - pod *kapi.Pod - projectAnnotations map[string]string - expectedActiveDeadlineSeconds *int64 - }{ - { - name: "expect globally configured duration to be set", - config: testConfig(int64p(10)), - pod: testRunOncePod(), - expectedActiveDeadlineSeconds: int64p(10), - }, - { - name: "empty config, no duration to be set", - config: testConfig(nil), - pod: testRunOncePod(), - expectedActiveDeadlineSeconds: nil, - }, - { - name: "expect configured duration to not limit lower existing duration", - config: testConfig(int64p(10)), - pod: testRunOncePodWithDuration(5), - expectedActiveDeadlineSeconds: int64p(5), - }, - { - name: "expect empty config to not limit existing duration", - config: testConfig(nil), - pod: testRunOncePodWithDuration(5), - expectedActiveDeadlineSeconds: int64p(5), - }, - { - name: "expect project limit to be used with nil global value", - config: testConfig(nil), - pod: testRunOncePodWithDuration(2000), - projectAnnotations: map[string]string{ - runonceduration.ActiveDeadlineSecondsLimitAnnotation: "1000", - }, - expectedActiveDeadlineSeconds: int64p(1000), - }, - { - name: "expect project limit to not limit a smaller set value", - config: testConfig(nil), - pod: testRunOncePodWithDuration(10), - projectAnnotations: map[string]string{ - runonceduration.ActiveDeadlineSecondsLimitAnnotation: "1000", - }, - expectedActiveDeadlineSeconds: int64p(10), - }, - { - name: "expect project limit to have priority over global config value", - config: testConfig(int64p(10)), - pod: testRunOncePodWithDuration(2000), - projectAnnotations: map[string]string{ - runonceduration.ActiveDeadlineSecondsLimitAnnotation: "1000", - }, - expectedActiveDeadlineSeconds: int64p(1000), - }, - { - name: "make no change to a pod that is not a run-once pod", - config: testConfig(int64p(10)), - pod: testRestartAlwaysPod(), - expectedActiveDeadlineSeconds: nil, - }, - { - name: "update a pod that has a RestartOnFailure policy", - config: testConfig(int64p(10)), - pod: testRestartOnFailurePod(), - expectedActiveDeadlineSeconds: int64p(10), - }, - } - - for _, tc := range tests { - admissionPlugin := NewRunOnceDuration(tc.config) - admissionPlugin.(*runOnceDuration).nsLister = fakeNamespaceLister(tc.projectAnnotations) - pod := tc.pod - attrs := admission.NewAttributesRecord(pod, nil, kapi.Kind("Pod").WithVersion("version"), "default", "test", kapi.Resource("pods").WithVersion("version"), "", admission.Create, nil, false, nil) - if err := admissionPlugin.(admission.MutationInterface).Admit(context.TODO(), attrs, nil); err != nil { - t.Errorf("%s: unexpected mutating admission error: %v", tc.name, err) - continue - } - - switch { - case tc.expectedActiveDeadlineSeconds == nil && pod.Spec.ActiveDeadlineSeconds == nil: - // continue - case tc.expectedActiveDeadlineSeconds == nil && pod.Spec.ActiveDeadlineSeconds != nil: - t.Errorf("%s: expected nil ActiveDeadlineSeconds. Got: %d", tc.name, *pod.Spec.ActiveDeadlineSeconds) - case tc.expectedActiveDeadlineSeconds != nil && pod.Spec.ActiveDeadlineSeconds == nil: - t.Errorf("%s: unexpected nil ActiveDeadlineSeconds.", tc.name) - case *pod.Spec.ActiveDeadlineSeconds != *tc.expectedActiveDeadlineSeconds: - t.Errorf("%s: unexpected active deadline seconds: %d", tc.name, *pod.Spec.ActiveDeadlineSeconds) - } - } -} - -func TestReadConfig(t *testing.T) { - configStr := `apiVersion: autoscaling.openshift.io/v1 -kind: RunOnceDurationConfig -activeDeadlineSecondsOverride: 3600 -` - buf := bytes.NewBufferString(configStr) - config, err := readConfig(buf) - if err != nil { - t.Fatalf("unexpected error reading config: %v", err) - } - if config.ActiveDeadlineSecondsOverride == nil { - t.Fatalf("nil value for ActiveDeadlineSecondsLimit") - } - if *config.ActiveDeadlineSecondsOverride != 3600 { - t.Errorf("unexpected value for ActiveDeadlineSecondsLimit: %d", config.ActiveDeadlineSecondsOverride) - } -} - -func TestInt64MinP(t *testing.T) { - ten := int64(10) - twenty := int64(20) - tests := []struct { - a, b, expected *int64 - }{ - { - a: &ten, - b: nil, - expected: &ten, - }, - { - a: nil, - b: &ten, - expected: &ten, - }, - { - a: &ten, - b: &twenty, - expected: &ten, - }, - { - a: nil, - b: nil, - expected: nil, - }, - } - - for _, test := range tests { - actual := int64MinP(test.a, test.b) - switch { - case actual == nil && test.expected != nil, - test.expected == nil && actual != nil: - t.Errorf("unexpected %v for %#v", actual, test) - continue - case actual == nil: - continue - case *actual != *test.expected: - t.Errorf("unexpected: %v for %#v", actual, test) - } - } -} diff --git a/openshift-kube-apiserver/admission/autoscaling/runonceduration/doc.go b/openshift-kube-apiserver/admission/autoscaling/runonceduration/doc.go deleted file mode 100644 index c289b04fa9a49..0000000000000 --- a/openshift-kube-apiserver/admission/autoscaling/runonceduration/doc.go +++ /dev/null @@ -1,22 +0,0 @@ -/* -Package runonceduration contains the RunOnceDuration admission control plugin. -The plugin allows overriding the ActiveDeadlineSeconds for pods that have a -RestartPolicy of RestartPolicyNever (run once). If configured to allow a project -annotation override, and an annotation exists in the pod's namespace of: - - openshift.io/active-deadline-seconds-override - -the value of the annotation will take precedence over the globally configured -value in the plugin's configuration. - - -Configuration - -The plugin is configured via a RunOnceDurationConfig object: - - apiVersion: v1 - kind: RunOnceDurationConfig - enabled: true - activeDeadlineSecondsOverride: 3600 -*/ -package runonceduration diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/apiserver/validate_apiserver.go b/openshift-kube-apiserver/admission/customresourcevalidation/apiserver/validate_apiserver.go deleted file mode 100644 index 32551a707ebfb..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/apiserver/validate_apiserver.go +++ /dev/null @@ -1,237 +0,0 @@ -package apiserver - -import ( - "context" - "fmt" - "regexp" - "strings" - - "k8s.io/apimachinery/pkg/api/validation" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" - - configv1 "github.com/openshift/api/config/v1" - configv1client "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1" - libgocrypto "github.com/openshift/library-go/pkg/crypto" -) - -func toAPIServerV1(uncastObj runtime.Object) (*configv1.APIServer, field.ErrorList) { - if uncastObj == nil { - return nil, nil - } - - errs := field.ErrorList{} - - obj, ok := uncastObj.(*configv1.APIServer) - if !ok { - return nil, append(errs, - field.NotSupported(field.NewPath("kind"), fmt.Sprintf("%T", uncastObj), []string{"APIServer"}), - field.NotSupported(field.NewPath("apiVersion"), fmt.Sprintf("%T", uncastObj), []string{"config.openshift.io/v1"})) - } - - return obj, nil -} - -type apiserverV1 struct { - infrastructureGetter func() configv1client.InfrastructuresGetter -} - -func (a apiserverV1) ValidateCreate(uncastObj runtime.Object) field.ErrorList { - obj, errs := toAPIServerV1(uncastObj) - if len(errs) > 0 { - return errs - } - - errs = append(errs, validation.ValidateObjectMeta(&obj.ObjectMeta, false, customresourcevalidation.RequireNameCluster, field.NewPath("metadata"))...) - errs = append(errs, validateAPIServerSpecCreate(obj.Spec)...) - errs = append(errs, a.validateSNINames(obj)...) - - return errs -} - -func (a apiserverV1) validateSNINames(obj *configv1.APIServer) field.ErrorList { - errs := field.ErrorList{} - if len(obj.Spec.ServingCerts.NamedCertificates) == 0 { - return errs - } - - infrastructure, err := a.infrastructureGetter().Infrastructures().Get(context.TODO(), "cluster", metav1.GetOptions{}) - if err != nil { - errs = append(errs, field.InternalError(field.NewPath("metadata"), err)) - } - for i, currSNI := range obj.Spec.ServingCerts.NamedCertificates { - // if names are specified, confirm they do not match - // if names are not specified, the cert can still match, but only the operator resolves the secrets down. We gain a lot of benefit by being sure - // we don't allow an explicit override of these values - for j, currName := range currSNI.Names { - path := field.NewPath("spec").Child("servingCerts").Index(i).Child("names").Index(j) - if currName == infrastructure.Status.APIServerInternalURL { - errs = append(errs, field.Invalid(path, currName, fmt.Sprintf("may not match internal loadbalancer: %q", infrastructure.Status.APIServerInternalURL))) - continue - } - if strings.HasSuffix(currName, ".*") { - withoutSuffix := currName[0 : len(currName)-2] - if strings.HasPrefix(infrastructure.Status.APIServerInternalURL, withoutSuffix) { - errs = append(errs, field.Invalid(path, currName, fmt.Sprintf("may not match internal loadbalancer: %q", infrastructure.Status.APIServerInternalURL))) - } - } - } - } - - return errs -} - -func (a apiserverV1) ValidateUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, errs := toAPIServerV1(uncastObj) - if len(errs) > 0 { - return errs - } - oldObj, errs := toAPIServerV1(uncastOldObj) - if len(errs) > 0 { - return errs - } - - errs = append(errs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - errs = append(errs, validateAPIServerSpecUpdate(obj.Spec, oldObj.Spec)...) - errs = append(errs, a.validateSNINames(obj)...) - - return errs -} - -func (apiserverV1) ValidateStatusUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, errs := toAPIServerV1(uncastObj) - if len(errs) > 0 { - return errs - } - oldObj, errs := toAPIServerV1(uncastOldObj) - if len(errs) > 0 { - return errs - } - - // TODO validate the obj. remember that status validation should *never* fail on spec validation errors. - errs = append(errs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - errs = append(errs, validateAPIServerStatus(obj.Status)...) - - return errs -} - -func validateAPIServerSpecCreate(spec configv1.APIServerSpec) field.ErrorList { - errs := field.ErrorList{} - specPath := field.NewPath("spec") - - errs = append(errs, validateAdditionalCORSAllowedOrigins(specPath.Child("additionalCORSAllowedOrigins"), spec.AdditionalCORSAllowedOrigins)...) - errs = append(errs, validateTLSSecurityProfile(specPath.Child("tlsSecurityProfile"), spec.TLSSecurityProfile)...) - - return errs -} - -func validateAPIServerSpecUpdate(newSpec, oldSpec configv1.APIServerSpec) field.ErrorList { - errs := field.ErrorList{} - specPath := field.NewPath("spec") - - errs = append(errs, validateAdditionalCORSAllowedOrigins(specPath.Child("additionalCORSAllowedOrigins"), newSpec.AdditionalCORSAllowedOrigins)...) - errs = append(errs, validateTLSSecurityProfile(specPath.Child("tlsSecurityProfile"), newSpec.TLSSecurityProfile)...) - - return errs -} - -func validateAPIServerStatus(status configv1.APIServerStatus) field.ErrorList { - errs := field.ErrorList{} - - // TODO - - return errs -} - -func validateAdditionalCORSAllowedOrigins(fieldPath *field.Path, cors []string) field.ErrorList { - errs := field.ErrorList{} - - for i, re := range cors { - if _, err := regexp.Compile(re); err != nil { - errs = append(errs, field.Invalid(fieldPath.Index(i), re, fmt.Sprintf("not a valid regular expression: %v", err))) - } - } - - return errs -} - -func validateTLSSecurityProfile(fieldPath *field.Path, profile *configv1.TLSSecurityProfile) field.ErrorList { - errs := field.ErrorList{} - - if profile == nil { - return errs - } - - errs = append(errs, validateTLSSecurityProfileType(fieldPath, profile)...) - - if profile.Type == configv1.TLSProfileCustomType && profile.Custom != nil { - errs = append(errs, validateCipherSuites(fieldPath.Child("custom", "ciphers"), profile.Custom.Ciphers)...) - errs = append(errs, validateMinTLSVersion(fieldPath.Child("custom", "minTLSVersion"), profile.Custom.MinTLSVersion)...) - } - - return errs -} - -func validateTLSSecurityProfileType(fieldPath *field.Path, profile *configv1.TLSSecurityProfile) field.ErrorList { - const typeProfileMismatchFmt = "type set to %s, but the corresponding field is unset" - typePath := fieldPath.Child("type") - - errs := field.ErrorList{} - - availableTypes := []string{ - string(configv1.TLSProfileOldType), - string(configv1.TLSProfileIntermediateType), - string(configv1.TLSProfileCustomType), - } - - switch profile.Type { - case "": - if profile.Old != nil || profile.Intermediate != nil || profile.Modern != nil || profile.Custom != nil { - errs = append(errs, field.Required(typePath, "one of the profiles is set but 'type' field is empty")) - } - case configv1.TLSProfileOldType: - if profile.Old == nil { - errs = append(errs, field.Required(fieldPath.Child("old"), fmt.Sprintf(typeProfileMismatchFmt, profile.Type))) - } - case configv1.TLSProfileIntermediateType: - if profile.Intermediate == nil { - errs = append(errs, field.Required(fieldPath.Child("intermediate"), fmt.Sprintf(typeProfileMismatchFmt, profile.Type))) - } - case configv1.TLSProfileModernType: - errs = append(errs, field.NotSupported(fieldPath.Child("type"), profile.Type, availableTypes)) - case configv1.TLSProfileCustomType: - if profile.Custom == nil { - errs = append(errs, field.Required(fieldPath.Child("custom"), fmt.Sprintf(typeProfileMismatchFmt, profile.Type))) - } - default: - errs = append(errs, field.Invalid(typePath, profile.Type, fmt.Sprintf("unknown type, valid values are: %v", availableTypes))) - } - - return errs -} - -func validateCipherSuites(fieldPath *field.Path, suites []string) field.ErrorList { - errs := field.ErrorList{} - - if ianaSuites := libgocrypto.OpenSSLToIANACipherSuites(suites); len(ianaSuites) == 0 { - errs = append(errs, field.Invalid(fieldPath, suites, "no supported cipher suite found")) - } - - return errs -} - -func validateMinTLSVersion(fieldPath *field.Path, version configv1.TLSProtocolVersion) field.ErrorList { - errs := field.ErrorList{} - - if version == configv1.VersionTLS13 { - return append(errs, field.NotSupported(fieldPath, version, []string{string(configv1.VersionTLS10), string(configv1.VersionTLS11), string(configv1.VersionTLS12)})) - } - - if _, err := libgocrypto.TLSVersion(string(version)); err != nil { - errs = append(errs, field.Invalid(fieldPath, version, err.Error())) - } - - return errs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/apiserver/validate_apiserver_test.go b/openshift-kube-apiserver/admission/customresourcevalidation/apiserver/validate_apiserver_test.go deleted file mode 100644 index 36bad9db17c38..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/apiserver/validate_apiserver_test.go +++ /dev/null @@ -1,245 +0,0 @@ -package apiserver - -import ( - "testing" - - configv1 "github.com/openshift/api/config/v1" - configclientfake "github.com/openshift/client-go/config/clientset/versioned/fake" - configv1client "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/validation/field" -) - -func TestValidateSNINames(t *testing.T) { - expectNoErrors := func(t *testing.T, errs field.ErrorList) { - t.Helper() - if len(errs) > 0 { - t.Fatal(errs) - } - } - - tests := []struct { - name string - - internalName string - apiserver *configv1.APIServer - - validateErrors func(t *testing.T, errs field.ErrorList) - }{ - { - name: "no sni", - internalName: "internal.host.com", - apiserver: &configv1.APIServer{}, - validateErrors: expectNoErrors, - }, - { - name: "allowed sni", - internalName: "internal.host.com", - apiserver: &configv1.APIServer{ - Spec: configv1.APIServerSpec{ - ServingCerts: configv1.APIServerServingCerts{ - NamedCertificates: []configv1.APIServerNamedServingCert{ - { - Names: []string{"external.host.com", "somwhere.else.*"}, - }, - }, - }, - }, - }, - validateErrors: expectNoErrors, - }, - { - name: "directly invalid sni", - internalName: "internal.host.com", - apiserver: &configv1.APIServer{ - Spec: configv1.APIServerSpec{ - ServingCerts: configv1.APIServerServingCerts{ - NamedCertificates: []configv1.APIServerNamedServingCert{ - {Names: []string{"external.host.com", "somwhere.else.*"}}, - {Names: []string{"foo.bar", "internal.host.com"}}, - }, - }, - }, - }, - validateErrors: func(t *testing.T, errs field.ErrorList) { - t.Helper() - if len(errs) != 1 { - t.Fatal(errs) - } - if errs[0].Error() != `spec.servingCerts[1].names[1]: Invalid value: "internal.host.com": may not match internal loadbalancer: "internal.host.com"` { - t.Error(errs[0]) - } - }, - }, - { - name: "wildcard invalid sni", - internalName: "internal.host.com", - apiserver: &configv1.APIServer{ - Spec: configv1.APIServerSpec{ - ServingCerts: configv1.APIServerServingCerts{ - NamedCertificates: []configv1.APIServerNamedServingCert{ - {Names: []string{"internal.*"}}, - }, - }, - }, - }, - validateErrors: func(t *testing.T, errs field.ErrorList) { - t.Helper() - if len(errs) != 1 { - t.Fatal(errs) - } - if errs[0].Error() != `spec.servingCerts[0].names[0]: Invalid value: "internal.*": may not match internal loadbalancer: "internal.host.com"` { - t.Error(errs[0]) - } - }, - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - fakeclient := configclientfake.NewSimpleClientset(&configv1.Infrastructure{ - ObjectMeta: metav1.ObjectMeta{Name: "cluster"}, - Status: configv1.InfrastructureStatus{ - APIServerInternalURL: test.internalName, - }, - }) - - instance := apiserverV1{ - infrastructureGetter: func() configv1client.InfrastructuresGetter { - return fakeclient.ConfigV1() - }, - } - test.validateErrors(t, instance.validateSNINames(test.apiserver)) - }) - - } -} - -func Test_validateTLSSecurityProfile(t *testing.T) { - rootFieldPath := field.NewPath("testSpec") - - tests := []struct { - name string - profile *configv1.TLSSecurityProfile - want field.ErrorList - }{ - { - name: "nil profile", - profile: nil, - want: field.ErrorList{}, - }, - { - name: "empty profile", - profile: &configv1.TLSSecurityProfile{}, - want: field.ErrorList{}, - }, - { - name: "type does not match set field", - profile: &configv1.TLSSecurityProfile{ - Type: configv1.TLSProfileIntermediateType, - Modern: &configv1.ModernTLSProfile{}, - }, - want: field.ErrorList{ - field.Required(rootFieldPath.Child("intermediate"), "type set to Intermediate, but the corresponding field is unset"), - }, - }, - { - name: "modern type - currently unsupported", - profile: &configv1.TLSSecurityProfile{ - Type: configv1.TLSProfileModernType, - Modern: &configv1.ModernTLSProfile{}, - }, - want: field.ErrorList{ - field.NotSupported(rootFieldPath.Child("type"), configv1.TLSProfileModernType, - []string{ - string(configv1.TLSProfileOldType), - string(configv1.TLSProfileIntermediateType), - string(configv1.TLSProfileCustomType), - }), - }, - }, - { - name: "unknown type", - profile: &configv1.TLSSecurityProfile{ - Type: "something", - }, - want: field.ErrorList{ - field.Invalid(rootFieldPath.Child("type"), "something", "unknown type, valid values are: [Old Intermediate Custom]"), - }, - }, - { - name: "unknown cipher", - profile: &configv1.TLSSecurityProfile{ - Type: "Custom", - Custom: &configv1.CustomTLSProfile{ - TLSProfileSpec: configv1.TLSProfileSpec{ - Ciphers: []string{ - "UNKNOWN_CIPHER", - }, - }, - }, - }, - want: field.ErrorList{ - field.Invalid(rootFieldPath.Child("custom", "ciphers"), []string{"UNKNOWN_CIPHER"}, "no supported cipher suite found"), - }, - }, - { - name: "unknown cipher but a normal cipher", - profile: &configv1.TLSSecurityProfile{ - Type: "Custom", - Custom: &configv1.CustomTLSProfile{ - TLSProfileSpec: configv1.TLSProfileSpec{ - Ciphers: []string{ - "UNKNOWN_CIPHER", "ECDHE-ECDSA-CHACHA20-POLY1305", - }, - }, - }, - }, - want: field.ErrorList{}, - }, - { - name: "no ciphers in custom profile", - profile: &configv1.TLSSecurityProfile{ - Type: "Custom", - Custom: &configv1.CustomTLSProfile{ - TLSProfileSpec: configv1.TLSProfileSpec{}, - }, - }, - want: field.ErrorList{ - field.Invalid(rootFieldPath.Child("custom", "ciphers"), []string(nil), "no supported cipher suite found"), - }, - }, - { - name: "min tls 1.3 - currently unsupported", - profile: &configv1.TLSSecurityProfile{ - Type: "Custom", - Custom: &configv1.CustomTLSProfile{ - TLSProfileSpec: configv1.TLSProfileSpec{ - Ciphers: []string{"ECDHE-ECDSA-CHACHA20-POLY1305"}, - MinTLSVersion: configv1.VersionTLS13, - }, - }, - }, - want: field.ErrorList{ - field.NotSupported(rootFieldPath.Child("custom", "minTLSVersion"), configv1.VersionTLS13, []string{string(configv1.VersionTLS10), string(configv1.VersionTLS11), string(configv1.VersionTLS12)}), - }, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - got := validateTLSSecurityProfile(rootFieldPath, tt.profile) - - if len(tt.want) != len(got) { - t.Errorf("expected %d errors, got %d: %v", len(tt.want), len(got), got) - return - } - - for i, err := range got { - if err.Error() != tt.want[i].Error() { - t.Errorf("expected %v, got %v", tt.want, got) - break - } - } - }) - } -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/apiserver/validation_wrapper.go b/openshift-kube-apiserver/admission/customresourcevalidation/apiserver/validation_wrapper.go deleted file mode 100644 index 06e9e04c1320b..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/apiserver/validation_wrapper.go +++ /dev/null @@ -1,76 +0,0 @@ -package apiserver - -import ( - "fmt" - "io" - - configv1 "github.com/openshift/api/config/v1" - configv1client "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1" - "github.com/openshift/library-go/pkg/apiserver/admission/admissionrestconfig" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" - - "k8s.io/apimachinery/pkg/runtime/schema" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apiserver/pkg/admission" - "k8s.io/client-go/rest" -) - -const PluginName = "config.openshift.io/ValidateAPIServer" - -// Register registers a plugin -func Register(plugins *admission.Plugins) { - plugins.Register(PluginName, func(config io.Reader) (admission.Interface, error) { - return NewValidateAPIServer() - }) -} - -type validateCustomResourceWithClient struct { - admission.ValidationInterface - - infrastructureGetter configv1client.InfrastructuresGetter -} - -func NewValidateAPIServer() (admission.Interface, error) { - ret := &validateCustomResourceWithClient{} - - delegate, err := customresourcevalidation.NewValidator( - map[schema.GroupResource]bool{ - configv1.GroupVersion.WithResource("apiservers").GroupResource(): true, - }, - map[schema.GroupVersionKind]customresourcevalidation.ObjectValidator{ - configv1.GroupVersion.WithKind("APIServer"): apiserverV1{infrastructureGetter: ret.getInfrastructureGetter}, - }) - if err != nil { - return nil, err - } - ret.ValidationInterface = delegate - - return ret, nil -} - -var _ admissionrestconfig.WantsRESTClientConfig = &validateCustomResourceWithClient{} - -func (a *validateCustomResourceWithClient) getInfrastructureGetter() configv1client.InfrastructuresGetter { - return a.infrastructureGetter -} - -func (a *validateCustomResourceWithClient) SetRESTClientConfig(restClientConfig rest.Config) { - var err error - a.infrastructureGetter, err = configv1client.NewForConfig(&restClientConfig) - if err != nil { - utilruntime.HandleError(err) - return - } -} - -func (a *validateCustomResourceWithClient) ValidateInitialization() error { - if a.infrastructureGetter == nil { - return fmt.Errorf(PluginName + " needs an infrastructureGetter") - } - - if initializationValidator, ok := a.ValidationInterface.(admission.InitializationValidator); ok { - return initializationValidator.ValidateInitialization() - } - - return nil -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/attributes.go b/openshift-kube-apiserver/admission/customresourcevalidation/attributes.go deleted file mode 100644 index f72b89a63526b..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/attributes.go +++ /dev/null @@ -1,53 +0,0 @@ -package customresourcevalidation - -import ( - "k8s.io/apimachinery/pkg/runtime" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apiserver/pkg/admission" - - authorizationv1 "github.com/openshift/api/authorization/v1" - configv1 "github.com/openshift/api/config/v1" - quotav1 "github.com/openshift/api/quota/v1" - securityv1 "github.com/openshift/api/security/v1" -) - -// unstructuredUnpackingAttributes tries to convert to a real object in the config scheme -type unstructuredUnpackingAttributes struct { - admission.Attributes -} - -func (a *unstructuredUnpackingAttributes) GetObject() runtime.Object { - return toBestObjectPossible(a.Attributes.GetObject()) -} - -func (a *unstructuredUnpackingAttributes) GetOldObject() runtime.Object { - return toBestObjectPossible(a.Attributes.GetOldObject()) -} - -// toBestObjectPossible tries to convert to a real object in the supported scheme -func toBestObjectPossible(orig runtime.Object) runtime.Object { - unstructuredOrig, ok := orig.(runtime.Unstructured) - if !ok { - return orig - } - - targetObj, err := supportedObjectsScheme.New(unstructuredOrig.GetObjectKind().GroupVersionKind()) - if err != nil { - utilruntime.HandleError(err) - return unstructuredOrig - } - if err := runtime.DefaultUnstructuredConverter.FromUnstructured(unstructuredOrig.UnstructuredContent(), targetObj); err != nil { - utilruntime.HandleError(err) - return unstructuredOrig - } - return targetObj -} - -var supportedObjectsScheme = runtime.NewScheme() - -func init() { - utilruntime.Must(configv1.Install(supportedObjectsScheme)) - utilruntime.Must(quotav1.Install(supportedObjectsScheme)) - utilruntime.Must(securityv1.Install(supportedObjectsScheme)) - utilruntime.Must(authorizationv1.Install(supportedObjectsScheme)) -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/authentication/validate_authentication.go b/openshift-kube-apiserver/admission/customresourcevalidation/authentication/validate_authentication.go deleted file mode 100644 index 94e9828cb9d83..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/authentication/validate_authentication.go +++ /dev/null @@ -1,133 +0,0 @@ -package authentication - -import ( - "fmt" - "io" - - "k8s.io/apimachinery/pkg/api/validation" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/admission" - - configv1 "github.com/openshift/api/config/v1" - crvalidation "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" -) - -const PluginName = "config.openshift.io/ValidateAuthentication" - -// Register registers a plugin -func Register(plugins *admission.Plugins) { - plugins.Register(PluginName, func(config io.Reader) (admission.Interface, error) { - return crvalidation.NewValidator( - map[schema.GroupResource]bool{ - configv1.GroupVersion.WithResource("authentications").GroupResource(): true, - }, - map[schema.GroupVersionKind]crvalidation.ObjectValidator{ - configv1.GroupVersion.WithKind("Authentication"): authenticationV1{}, - }) - }) -} - -func toAuthenticationV1(uncastObj runtime.Object) (*configv1.Authentication, field.ErrorList) { - if uncastObj == nil { - return nil, nil - } - - obj, ok := uncastObj.(*configv1.Authentication) - if !ok { - return nil, field.ErrorList{ - field.NotSupported(field.NewPath("kind"), fmt.Sprintf("%T", uncastObj), []string{"Authentication"}), - field.NotSupported(field.NewPath("apiVersion"), fmt.Sprintf("%T", uncastObj), []string{"config.openshift.io/v1"}), - } - } - - return obj, nil -} - -type authenticationV1 struct{} - -func (authenticationV1) ValidateCreate(uncastObj runtime.Object) field.ErrorList { - obj, errs := toAuthenticationV1(uncastObj) - if len(errs) > 0 { - return errs - } - - errs = append(errs, validation.ValidateObjectMeta(&obj.ObjectMeta, false, crvalidation.RequireNameCluster, field.NewPath("metadata"))...) - errs = append(errs, validateAuthenticationSpecCreate(obj.Spec)...) - - return errs -} - -func (authenticationV1) ValidateUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, errs := toAuthenticationV1(uncastObj) - if len(errs) > 0 { - return errs - } - oldObj, errs := toAuthenticationV1(uncastOldObj) - if len(errs) > 0 { - return errs - } - - errs = append(errs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - errs = append(errs, validateAuthenticationSpecUpdate(obj.Spec, oldObj.Spec)...) - - return errs -} - -func (authenticationV1) ValidateStatusUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, errs := toAuthenticationV1(uncastObj) - if len(errs) > 0 { - return errs - } - oldObj, errs := toAuthenticationV1(uncastOldObj) - if len(errs) > 0 { - return errs - } - - errs = append(errs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - errs = append(errs, validateAuthenticationStatus(obj.Status)...) - - return errs -} - -func validateAuthenticationSpecCreate(spec configv1.AuthenticationSpec) field.ErrorList { - return validateAuthenticationSpec(spec) -} - -func validateAuthenticationSpecUpdate(newspec, oldspec configv1.AuthenticationSpec) field.ErrorList { - return validateAuthenticationSpec(newspec) -} - -func validateAuthenticationSpec(spec configv1.AuthenticationSpec) field.ErrorList { - errs := field.ErrorList{} - specField := field.NewPath("spec") - - switch spec.Type { - case configv1.AuthenticationTypeNone, configv1.AuthenticationTypeIntegratedOAuth, "": - default: - errs = append(errs, field.NotSupported(specField.Child("type"), - spec.Type, - []string{string(configv1.AuthenticationTypeNone), string(configv1.AuthenticationTypeIntegratedOAuth)}, - )) - } - - errs = append(errs, crvalidation.ValidateConfigMapReference(specField.Child("oauthMetadata"), spec.OAuthMetadata, false)...) - - // validate the secret names in WebhookTokenAuthenticators - for i, wh := range spec.WebhookTokenAuthenticators { - errs = append( - errs, - crvalidation.ValidateSecretReference( - specField.Child("webhookTokenAuthenticators").Index(i).Child("kubeConfig"), - wh.KubeConfig, - true, - )...) - } - - return errs -} - -func validateAuthenticationStatus(status configv1.AuthenticationStatus) field.ErrorList { - return crvalidation.ValidateConfigMapReference(field.NewPath("status", "integratedOAuthMetadata"), status.IntegratedOAuthMetadata, false) -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/authentication/validate_authentication_test.go b/openshift-kube-apiserver/admission/customresourcevalidation/authentication/validate_authentication_test.go deleted file mode 100644 index 56f70b29d895b..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/authentication/validate_authentication_test.go +++ /dev/null @@ -1,189 +0,0 @@ -package authentication - -import ( - "testing" - - configv1 "github.com/openshift/api/config/v1" - "k8s.io/apimachinery/pkg/util/validation/field" -) - -func TestFailValidateAuthenticationSpec(t *testing.T) { - errorCases := map[string]struct { - spec configv1.AuthenticationSpec - errorType field.ErrorType - errorField string - }{ - "invalid authn type": { - spec: configv1.AuthenticationSpec{ - Type: "MyCoolOAuthSrv", - }, - errorType: field.ErrorTypeNotSupported, - errorField: "spec.type", - }, - "invalid metadata ref": { - spec: configv1.AuthenticationSpec{ - Type: "", - OAuthMetadata: configv1.ConfigMapNameReference{ - Name: "../shadow", - }, - }, - errorType: field.ErrorTypeInvalid, - errorField: "spec.oauthMetadata.name", - }, - "invalid webhook ref": { - spec: configv1.AuthenticationSpec{ - WebhookTokenAuthenticators: []configv1.DeprecatedWebhookTokenAuthenticator{ - {KubeConfig: configv1.SecretNameReference{Name: "this+that"}}, - }, - }, - errorType: field.ErrorTypeInvalid, - errorField: "spec.webhookTokenAuthenticators[0].kubeConfig.name", - }, - "invalid webhook ref - multiple webhooks": { - spec: configv1.AuthenticationSpec{ - WebhookTokenAuthenticators: []configv1.DeprecatedWebhookTokenAuthenticator{ - {KubeConfig: configv1.SecretNameReference{Name: "that.now"}}, - {KubeConfig: configv1.SecretNameReference{Name: "this+that"}}, - {KubeConfig: configv1.SecretNameReference{Name: "this.then"}}, - }, - }, - errorType: field.ErrorTypeInvalid, - errorField: "spec.webhookTokenAuthenticators[1].kubeConfig.name", - }, - "empty webhook name": { - spec: configv1.AuthenticationSpec{ - WebhookTokenAuthenticators: []configv1.DeprecatedWebhookTokenAuthenticator{ - {KubeConfig: configv1.SecretNameReference{Name: ""}}, - }, - }, - errorType: field.ErrorTypeRequired, - errorField: "spec.webhookTokenAuthenticators[0].kubeConfig.name", - }, - } - - for tcName, tc := range errorCases { - errs := validateAuthenticationSpec(tc.spec) - if len(errs) == 0 { - t.Errorf("'%s': should have failed but did not", tcName) - } - - for _, e := range errs { - if e.Type != tc.errorType { - t.Errorf("'%s': expected errors of type '%s', got %v:", tcName, tc.errorType, e) - } - - if e.Field != tc.errorField { - t.Errorf("'%s': expected errors in field '%s', got %v:", tcName, tc.errorField, e) - } - } - } -} - -func TestSucceedValidateAuthenticationSpec(t *testing.T) { - successCases := map[string]configv1.AuthenticationSpec{ - "integrated oauth authn type": { - Type: "IntegratedOAuth", - }, - "_none_ authn type": { - Type: "None", - }, - "empty authn type": { - Type: "", - }, - "integrated oauth + oauth metadata": { - OAuthMetadata: configv1.ConfigMapNameReference{ - Name: "configmapwithmetadata", - }, - }, - "webhook set": { - WebhookTokenAuthenticators: []configv1.DeprecatedWebhookTokenAuthenticator{ - {KubeConfig: configv1.SecretNameReference{Name: "wheniwaslittleiwantedtobecomeawebhook"}}, - }, - }, - "some webhooks": { - WebhookTokenAuthenticators: []configv1.DeprecatedWebhookTokenAuthenticator{ - {KubeConfig: configv1.SecretNameReference{Name: "whatacoolnameforasecret"}}, - {KubeConfig: configv1.SecretNameReference{Name: "whatacoolnameforasecret2"}}, - {KubeConfig: configv1.SecretNameReference{Name: "thisalsoisacoolname"}}, - {KubeConfig: configv1.SecretNameReference{Name: "letsnotoverdoit"}}, - }, - }, - "all fields set": { - Type: "IntegratedOAuth", - OAuthMetadata: configv1.ConfigMapNameReference{ - Name: "suchname", - }, - WebhookTokenAuthenticators: []configv1.DeprecatedWebhookTokenAuthenticator{ - {KubeConfig: configv1.SecretNameReference{Name: "thisisawebhook"}}, - {KubeConfig: configv1.SecretNameReference{Name: "thisisawebhook2"}}, - {KubeConfig: configv1.SecretNameReference{Name: "thisisawebhook33"}}, - }, - }, - } - - for tcName, s := range successCases { - errs := validateAuthenticationSpec(s) - if len(errs) != 0 { - t.Errorf("'%s': expected success, but failed: %v", tcName, errs.ToAggregate().Error()) - } - } -} - -func TestFailValidateAuthenticationStatus(t *testing.T) { - errorCases := map[string]struct { - status configv1.AuthenticationStatus - errorType field.ErrorType - errorField string - }{ - "wrong reference name": { - status: configv1.AuthenticationStatus{ - IntegratedOAuthMetadata: configv1.ConfigMapNameReference{ - Name: "something_wrong", - }, - }, - errorType: field.ErrorTypeInvalid, - errorField: "status.integratedOAuthMetadata.name", - }, - } - - for tcName, tc := range errorCases { - errs := validateAuthenticationStatus(tc.status) - if len(errs) == 0 { - t.Errorf("'%s': should have failed but did not", tcName) - } - - for _, e := range errs { - if e.Type != tc.errorType { - t.Errorf("'%s': expected errors of type '%s', got %v:", tcName, tc.errorType, e) - } - - if e.Field != tc.errorField { - t.Errorf("'%s': expected errors in field '%s', got %v:", tcName, tc.errorField, e) - } - } - } -} - -func TestSucceedValidateAuthenticationStatus(t *testing.T) { - successCases := map[string]configv1.AuthenticationStatus{ - "basic case": { - IntegratedOAuthMetadata: configv1.ConfigMapNameReference{ - Name: "hey-there", - }, - }, - "empty reference": { - IntegratedOAuthMetadata: configv1.ConfigMapNameReference{ - Name: "", - }, - }, - "empty status": {}, - } - - for tcName, s := range successCases { - errs := validateAuthenticationStatus(s) - if len(errs) != 0 { - t.Errorf("'%s': expected success, but failed: %v", tcName, errs.ToAggregate().Error()) - } - } - -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/clusterresourcequota/validate_crq.go b/openshift-kube-apiserver/admission/customresourcevalidation/clusterresourcequota/validate_crq.go deleted file mode 100644 index 18af783d61305..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/clusterresourcequota/validate_crq.go +++ /dev/null @@ -1,83 +0,0 @@ -package clusterresourcequota - -import ( - "fmt" - "io" - - "k8s.io/apimachinery/pkg/api/validation" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/admission" - - quotav1 "github.com/openshift/api/quota/v1" - - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" - quotavalidation "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/clusterresourcequota/validation" -) - -const PluginName = "quota.openshift.io/ValidateClusterResourceQuota" - -func Register(plugins *admission.Plugins) { - plugins.Register(PluginName, func(config io.Reader) (admission.Interface, error) { - return customresourcevalidation.NewValidator( - map[schema.GroupResource]bool{ - {Group: quotav1.GroupName, Resource: "clusterresourcequotas"}: true, - }, - map[schema.GroupVersionKind]customresourcevalidation.ObjectValidator{ - quotav1.GroupVersion.WithKind("ClusterResourceQuota"): clusterResourceQuotaV1{}, - }) - }) -} - -func toClusterResourceQuota(uncastObj runtime.Object) (*quotav1.ClusterResourceQuota, field.ErrorList) { - if uncastObj == nil { - return nil, nil - } - - allErrs := field.ErrorList{} - - obj, ok := uncastObj.(*quotav1.ClusterResourceQuota) - if !ok { - return nil, append(allErrs, - field.NotSupported(field.NewPath("kind"), fmt.Sprintf("%T", uncastObj), []string{"ClusterResourceQuota"}), - field.NotSupported(field.NewPath("apiVersion"), fmt.Sprintf("%T", uncastObj), []string{quotav1.GroupVersion.String()})) - } - - return obj, nil -} - -type clusterResourceQuotaV1 struct { -} - -func (clusterResourceQuotaV1) ValidateCreate(obj runtime.Object) field.ErrorList { - clusterResourceQuotaObj, errs := toClusterResourceQuota(obj) - if len(errs) > 0 { - return errs - } - - errs = append(errs, validation.ValidateObjectMeta(&clusterResourceQuotaObj.ObjectMeta, false, validation.NameIsDNSSubdomain, field.NewPath("metadata"))...) - errs = append(errs, quotavalidation.ValidateClusterResourceQuota(clusterResourceQuotaObj)...) - - return errs -} - -func (clusterResourceQuotaV1) ValidateUpdate(obj runtime.Object, oldObj runtime.Object) field.ErrorList { - clusterResourceQuotaObj, errs := toClusterResourceQuota(obj) - if len(errs) > 0 { - return errs - } - clusterResourceQuotaOldObj, errs := toClusterResourceQuota(oldObj) - if len(errs) > 0 { - return errs - } - - errs = append(errs, validation.ValidateObjectMeta(&clusterResourceQuotaObj.ObjectMeta, false, validation.NameIsDNSSubdomain, field.NewPath("metadata"))...) - errs = append(errs, quotavalidation.ValidateClusterResourceQuotaUpdate(clusterResourceQuotaObj, clusterResourceQuotaOldObj)...) - - return errs -} - -func (c clusterResourceQuotaV1) ValidateStatusUpdate(obj runtime.Object, oldObj runtime.Object) field.ErrorList { - return c.ValidateUpdate(obj, oldObj) -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/clusterresourcequota/validation/validation.go b/openshift-kube-apiserver/admission/customresourcevalidation/clusterresourcequota/validation/validation.go deleted file mode 100644 index 19993a05fdd60..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/clusterresourcequota/validation/validation.go +++ /dev/null @@ -1,68 +0,0 @@ -package validation - -import ( - "sort" - - unversionedvalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/apis/core" - "k8s.io/kubernetes/pkg/apis/core/v1" - "k8s.io/kubernetes/pkg/apis/core/validation" - - quotav1 "github.com/openshift/api/quota/v1" -) - -func ValidateClusterResourceQuota(clusterquota *quotav1.ClusterResourceQuota) field.ErrorList { - allErrs := validation.ValidateObjectMeta(&clusterquota.ObjectMeta, false, validation.ValidateResourceQuotaName, field.NewPath("metadata")) - - hasSelectionCriteria := (clusterquota.Spec.Selector.LabelSelector != nil && len(clusterquota.Spec.Selector.LabelSelector.MatchLabels)+len(clusterquota.Spec.Selector.LabelSelector.MatchExpressions) > 0) || - (len(clusterquota.Spec.Selector.AnnotationSelector) > 0) - - if !hasSelectionCriteria { - allErrs = append(allErrs, field.Required(field.NewPath("spec", "selector"), "must restrict the selected projects")) - } - if clusterquota.Spec.Selector.LabelSelector != nil { - allErrs = append(allErrs, unversionedvalidation.ValidateLabelSelector(clusterquota.Spec.Selector.LabelSelector, field.NewPath("spec", "selector", "labels"))...) - if len(clusterquota.Spec.Selector.LabelSelector.MatchLabels)+len(clusterquota.Spec.Selector.LabelSelector.MatchExpressions) == 0 { - allErrs = append(allErrs, field.Invalid(field.NewPath("spec", "selector", "labels"), clusterquota.Spec.Selector.LabelSelector, "must restrict the selected projects")) - } - } - if clusterquota.Spec.Selector.AnnotationSelector != nil { - allErrs = append(allErrs, validation.ValidateAnnotations(clusterquota.Spec.Selector.AnnotationSelector, field.NewPath("spec", "selector", "annotations"))...) - } - - internalQuota := &core.ResourceQuotaSpec{} - if err := v1.Convert_v1_ResourceQuotaSpec_To_core_ResourceQuotaSpec(&clusterquota.Spec.Quota, internalQuota, nil); err != nil { - panic(err) - } - internalStatus := &core.ResourceQuotaStatus{} - if err := v1.Convert_v1_ResourceQuotaStatus_To_core_ResourceQuotaStatus(&clusterquota.Status.Total, internalStatus, nil); err != nil { - panic(err) - } - - allErrs = append(allErrs, validation.ValidateResourceQuotaSpec(internalQuota, field.NewPath("spec", "quota"))...) - allErrs = append(allErrs, validation.ValidateResourceQuotaStatus(internalStatus, field.NewPath("status", "overall"))...) - - orderedNamespaces := clusterquota.Status.Namespaces.DeepCopy() - sort.Slice(orderedNamespaces, func(i, j int) bool { - return orderedNamespaces[i].Namespace < orderedNamespaces[j].Namespace - }) - - for _, namespace := range orderedNamespaces { - fldPath := field.NewPath("status", "namespaces").Key(namespace.Namespace) - for k, v := range namespace.Status.Used { - resPath := fldPath.Key(string(k)) - allErrs = append(allErrs, validation.ValidateResourceQuotaResourceName(string(k), resPath)...) - allErrs = append(allErrs, validation.ValidateResourceQuantityValue(string(k), v, resPath)...) - } - } - - return allErrs -} - -func ValidateClusterResourceQuotaUpdate(clusterquota, oldClusterResourceQuota *quotav1.ClusterResourceQuota) field.ErrorList { - allErrs := validation.ValidateObjectMetaUpdate(&clusterquota.ObjectMeta, &oldClusterResourceQuota.ObjectMeta, field.NewPath("metadata")) - allErrs = append(allErrs, ValidateClusterResourceQuota(clusterquota)...) - - return allErrs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/clusterresourcequota/validation/validation_test.go b/openshift-kube-apiserver/admission/customresourcevalidation/clusterresourcequota/validation/validation_test.go deleted file mode 100644 index c1dbf76aecf46..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/clusterresourcequota/validation/validation_test.go +++ /dev/null @@ -1,173 +0,0 @@ -package validation - -import ( - "testing" - - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/apis/core" - corekubev1 "k8s.io/kubernetes/pkg/apis/core/v1" - "k8s.io/kubernetes/pkg/apis/core/validation" - - quotav1 "github.com/openshift/api/quota/v1" -) - -func spec(scopes ...corev1.ResourceQuotaScope) corev1.ResourceQuotaSpec { - return corev1.ResourceQuotaSpec{ - Hard: corev1.ResourceList{ - corev1.ResourceCPU: resource.MustParse("100"), - corev1.ResourceMemory: resource.MustParse("10000"), - corev1.ResourceRequestsCPU: resource.MustParse("100"), - corev1.ResourceRequestsMemory: resource.MustParse("10000"), - corev1.ResourceLimitsCPU: resource.MustParse("100"), - corev1.ResourceLimitsMemory: resource.MustParse("10000"), - corev1.ResourcePods: resource.MustParse("10"), - corev1.ResourceServices: resource.MustParse("0"), - corev1.ResourceReplicationControllers: resource.MustParse("10"), - corev1.ResourceQuotas: resource.MustParse("10"), - corev1.ResourceConfigMaps: resource.MustParse("10"), - corev1.ResourceSecrets: resource.MustParse("10"), - }, - Scopes: scopes, - } -} - -func scopeableSpec(scopes ...corev1.ResourceQuotaScope) corev1.ResourceQuotaSpec { - return corev1.ResourceQuotaSpec{ - Hard: corev1.ResourceList{ - corev1.ResourceCPU: resource.MustParse("100"), - corev1.ResourceMemory: resource.MustParse("10000"), - corev1.ResourceRequestsCPU: resource.MustParse("100"), - corev1.ResourceRequestsMemory: resource.MustParse("10000"), - corev1.ResourceLimitsCPU: resource.MustParse("100"), - corev1.ResourceLimitsMemory: resource.MustParse("10000"), - }, - Scopes: scopes, - } -} - -func TestValidationClusterQuota(t *testing.T) { - // storage is not yet supported as a quota tracked resource - invalidQuotaResourceSpec := corev1.ResourceQuotaSpec{ - Hard: corev1.ResourceList{ - corev1.ResourceStorage: resource.MustParse("10"), - }, - } - validLabels := map[string]string{"a": "b"} - - errs := ValidateClusterResourceQuota( - "av1.ClusterResourceQuota{ - ObjectMeta: metav1.ObjectMeta{Name: "good"}, - Spec: quotav1.ClusterResourceQuotaSpec{ - Selector: quotav1.ClusterResourceQuotaSelector{LabelSelector: &metav1.LabelSelector{MatchLabels: validLabels}}, - Quota: spec(), - }, - }, - ) - if len(errs) != 0 { - t.Errorf("expected success: %v", errs) - } - - errorCases := map[string]struct { - A quotav1.ClusterResourceQuota - T field.ErrorType - F string - }{ - "non-zero-length namespace": { - A: quotav1.ClusterResourceQuota{ - ObjectMeta: metav1.ObjectMeta{Namespace: "bad", Name: "good"}, - Spec: quotav1.ClusterResourceQuotaSpec{ - Selector: quotav1.ClusterResourceQuotaSelector{LabelSelector: &metav1.LabelSelector{MatchLabels: validLabels}}, - Quota: spec(), - }, - }, - T: field.ErrorTypeForbidden, - F: "metadata.namespace", - }, - "missing label selector": { - A: quotav1.ClusterResourceQuota{ - ObjectMeta: metav1.ObjectMeta{Name: "good"}, - Spec: quotav1.ClusterResourceQuotaSpec{ - Quota: spec(), - }, - }, - T: field.ErrorTypeRequired, - F: "spec.selector", - }, - "ok scope": { - A: quotav1.ClusterResourceQuota{ - ObjectMeta: metav1.ObjectMeta{Name: "good"}, - Spec: quotav1.ClusterResourceQuotaSpec{ - Quota: scopeableSpec(corev1.ResourceQuotaScopeNotTerminating), - }, - }, - T: field.ErrorTypeRequired, - F: "spec.selector", - }, - "bad scope": { - A: quotav1.ClusterResourceQuota{ - ObjectMeta: metav1.ObjectMeta{Name: "good"}, - Spec: quotav1.ClusterResourceQuotaSpec{ - Selector: quotav1.ClusterResourceQuotaSelector{LabelSelector: &metav1.LabelSelector{MatchLabels: validLabels}}, - Quota: spec(corev1.ResourceQuotaScopeNotTerminating), - }, - }, - T: field.ErrorTypeInvalid, - F: "spec.quota.scopes", - }, - "bad quota spec": { - A: quotav1.ClusterResourceQuota{ - ObjectMeta: metav1.ObjectMeta{Name: "good"}, - Spec: quotav1.ClusterResourceQuotaSpec{ - Selector: quotav1.ClusterResourceQuotaSelector{LabelSelector: &metav1.LabelSelector{MatchLabels: validLabels}}, - Quota: invalidQuotaResourceSpec, - }, - }, - T: field.ErrorTypeInvalid, - F: "spec.quota.hard[storage]", - }, - } - for k, v := range errorCases { - errs := ValidateClusterResourceQuota(&v.A) - if len(errs) == 0 { - t.Errorf("expected failure %s for %v", k, v.A) - continue - } - for i := range errs { - if errs[i].Type != v.T { - t.Errorf("%s: expected errors to have type %s: %v", k, v.T, errs[i]) - } - if errs[i].Field != v.F { - t.Errorf("%s: expected errors to have field %s: %v", k, v.F, errs[i]) - } - } - } -} - -func TestValidationQuota(t *testing.T) { - tests := map[string]struct { - A corev1.ResourceQuota - T field.ErrorType - F string - }{ - "scope": { - A: corev1.ResourceQuota{ - ObjectMeta: metav1.ObjectMeta{Namespace: "ns", Name: "good"}, - Spec: scopeableSpec(corev1.ResourceQuotaScopeNotTerminating), - }, - }, - } - for k, v := range tests { - internal := core.ResourceQuota{} - if err := corekubev1.Convert_v1_ResourceQuota_To_core_ResourceQuota(&v.A, &internal, nil); err != nil { - panic(err) - } - errs := validation.ValidateResourceQuota(&internal) - if len(errs) != 0 { - t.Errorf("%s: %v", k, errs) - continue - } - } -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/config/deny_delete_cluster_config_resource.go b/openshift-kube-apiserver/admission/customresourcevalidation/config/deny_delete_cluster_config_resource.go deleted file mode 100644 index f637e95cece3a..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/config/deny_delete_cluster_config_resource.go +++ /dev/null @@ -1,54 +0,0 @@ -package config - -import ( - "context" - "fmt" - "io" - - "k8s.io/apiserver/pkg/admission" -) - -const PluginName = "config.openshift.io/DenyDeleteClusterConfiguration" - -// Register registers an admission plugin factory whose plugin prevents the deletion of cluster configuration resources. -func Register(plugins *admission.Plugins) { - plugins.Register(PluginName, func(config io.Reader) (admission.Interface, error) { - return newAdmissionPlugin(), nil - }) -} - -var _ admission.ValidationInterface = &admissionPlugin{} - -type admissionPlugin struct { - *admission.Handler -} - -func newAdmissionPlugin() *admissionPlugin { - return &admissionPlugin{Handler: admission.NewHandler(admission.Delete)} -} - -// Validate returns an error if there is an attempt to delete a cluster configuration resource. -func (p *admissionPlugin) Validate(ctx context.Context, attributes admission.Attributes, _ admission.ObjectInterfaces) error { - if len(attributes.GetSubresource()) > 0 { - return nil - } - if attributes.GetResource().Group != "config.openshift.io" { - return nil - } - // clusteroperators can be deleted so that we can force status refreshes and change over time. - // clusterversions not named `version` can be deleted (none are expected to exist). - // other config.openshift.io resources not named `cluster` can be deleted (none are expected to exist). - switch attributes.GetResource().Resource { - case "clusteroperators": - return nil - case "clusterversions": - if attributes.GetName() != "version" { - return nil - } - default: - if attributes.GetName() != "cluster" { - return nil - } - } - return admission.NewForbidden(attributes, fmt.Errorf("deleting required %s.%s resource, named %s, is not allowed", attributes.GetResource().Resource, attributes.GetResource().Group, attributes.GetName())) -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/config/deny_delete_cluster_config_resource_test.go b/openshift-kube-apiserver/admission/customresourcevalidation/config/deny_delete_cluster_config_resource_test.go deleted file mode 100644 index 70d289f5f26df..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/config/deny_delete_cluster_config_resource_test.go +++ /dev/null @@ -1,73 +0,0 @@ -package config - -import ( - "context" - "testing" - - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apiserver/pkg/admission" -) - -func TestAdmissionPlugin_Validate(t *testing.T) { - testCases := []struct { - tcName string - group string - resource string - name string - denyDelete bool - }{ - { - tcName: "NotWhiteListedResourceNamedCluster", - group: "config.openshift.io", - resource: "notWhitelisted", - name: "cluster", - denyDelete: true, - }, - { - tcName: "NotWhiteListedResourceNotNamedCluster", - group: "config.openshift.io", - resource: "notWhitelisted", - name: "notCluster", - denyDelete: false, - }, - { - tcName: "ClusterVersionVersion", - group: "config.openshift.io", - resource: "clusterversions", - name: "version", - denyDelete: true, - }, - { - tcName: "ClusterVersionNotVersion", - group: "config.openshift.io", - resource: "clusterversions", - name: "instance", - denyDelete: false, - }, - { - tcName: "ClusterOperator", - group: "config.openshift.io", - resource: "clusteroperator", - name: "instance", - denyDelete: false, - }, - { - tcName: "OtherGroup", - group: "not.config.openshift.io", - resource: "notWhitelisted", - name: "cluster", - denyDelete: false, - }, - } - for _, tc := range testCases { - t.Run(tc.tcName, func(t *testing.T) { - err := newAdmissionPlugin().Validate(context.TODO(), admission.NewAttributesRecord( - nil, nil, schema.GroupVersionKind{}, "", - tc.name, schema.GroupVersionResource{Group: tc.group, Resource: tc.resource}, - "", admission.Delete, nil, false, nil), nil) - if tc.denyDelete != (err != nil) { - t.Error(tc.denyDelete, err) - } - }) - } -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/console/validate_console.go b/openshift-kube-apiserver/admission/customresourcevalidation/console/validate_console.go deleted file mode 100644 index 3cdd31c9e4a97..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/console/validate_console.go +++ /dev/null @@ -1,118 +0,0 @@ -package console - -import ( - "fmt" - "io" - - "k8s.io/apimachinery/pkg/api/validation" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/admission" - - configv1 "github.com/openshift/api/config/v1" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" -) - -const PluginName = "config.openshift.io/ValidateConsole" - -// Register registers a plugin -func Register(plugins *admission.Plugins) { - plugins.Register(PluginName, func(config io.Reader) (admission.Interface, error) { - return customresourcevalidation.NewValidator( - map[schema.GroupResource]bool{ - configv1.GroupVersion.WithResource("consoles").GroupResource(): true, - }, - map[schema.GroupVersionKind]customresourcevalidation.ObjectValidator{ - configv1.GroupVersion.WithKind("Console"): consoleV1{}, - }) - }) -} - -func toConsoleV1(uncastObj runtime.Object) (*configv1.Console, field.ErrorList) { - if uncastObj == nil { - return nil, nil - } - - errs := field.ErrorList{} - - obj, ok := uncastObj.(*configv1.Console) - if !ok { - return nil, append(errs, - field.NotSupported(field.NewPath("kind"), fmt.Sprintf("%T", uncastObj), []string{"Console"}), - field.NotSupported(field.NewPath("apiVersion"), fmt.Sprintf("%T", uncastObj), []string{"config.openshift.io/v1"})) - } - - return obj, nil -} - -type consoleV1 struct{} - -func (consoleV1) ValidateCreate(uncastObj runtime.Object) field.ErrorList { - obj, errs := toConsoleV1(uncastObj) - if len(errs) > 0 { - return errs - } - - errs = append(errs, validation.ValidateObjectMeta(&obj.ObjectMeta, false, customresourcevalidation.RequireNameCluster, field.NewPath("metadata"))...) - errs = append(errs, validateConsoleSpecCreate(obj.Spec)...) - - return errs -} - -func (consoleV1) ValidateUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, errs := toConsoleV1(uncastObj) - if len(errs) > 0 { - return errs - } - oldObj, errs := toConsoleV1(uncastOldObj) - if len(errs) > 0 { - return errs - } - - errs = append(errs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - errs = append(errs, validateConsoleSpecUpdate(obj.Spec, oldObj.Spec)...) - - return errs -} - -func (consoleV1) ValidateStatusUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, errs := toConsoleV1(uncastObj) - if len(errs) > 0 { - return errs - } - oldObj, errs := toConsoleV1(uncastOldObj) - if len(errs) > 0 { - return errs - } - - // TODO validate the obj. remember that status validation should *never* fail on spec validation errors. - errs = append(errs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - errs = append(errs, validateConsoleStatus(obj.Status)...) - - return errs -} - -func validateConsoleSpecCreate(spec configv1.ConsoleSpec) field.ErrorList { - errs := field.ErrorList{} - - // TODO - - return errs -} - -func validateConsoleSpecUpdate(newSpec, oldSpec configv1.ConsoleSpec) field.ErrorList { - errs := field.ErrorList{} - - // TODO - - return errs -} - -func validateConsoleStatus(status configv1.ConsoleStatus) field.ErrorList { - errs := field.ErrorList{} - - // TODO - - return errs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/customresourcevalidationregistration/cr_validation_registration.go b/openshift-kube-apiserver/admission/customresourcevalidation/customresourcevalidationregistration/cr_validation_registration.go deleted file mode 100644 index 2495d4eb67b68..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/customresourcevalidationregistration/cr_validation_registration.go +++ /dev/null @@ -1,63 +0,0 @@ -package customresourcevalidationregistration - -import ( - "k8s.io/apiserver/pkg/admission" - - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/apiserver" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/authentication" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/clusterresourcequota" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/config" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/console" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/features" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/image" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/network" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/oauth" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/project" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/rolebindingrestriction" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/scheduler" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints" -) - -// AllCustomResourceValidators are the names of all custom resource validators that should be registered -var AllCustomResourceValidators = []string{ - apiserver.PluginName, - authentication.PluginName, - features.PluginName, - console.PluginName, - image.PluginName, - oauth.PluginName, - project.PluginName, - config.PluginName, - scheduler.PluginName, - clusterresourcequota.PluginName, - securitycontextconstraints.PluginName, - rolebindingrestriction.PluginName, - network.PluginName, - - // this one is special because we don't work without it. - securitycontextconstraints.DefaultingPluginName, -} - -func RegisterCustomResourceValidation(plugins *admission.Plugins) { - apiserver.Register(plugins) - authentication.Register(plugins) - features.Register(plugins) - console.Register(plugins) - image.Register(plugins) - oauth.Register(plugins) - project.Register(plugins) - config.Register(plugins) - scheduler.Register(plugins) - - // This plugin validates the quota.openshift.io/v1 ClusterResourceQuota resources. - // NOTE: This is only allowed because it is required to get a running control plane operator. - clusterresourcequota.Register(plugins) - // This plugin validates the security.openshift.io/v1 SecurityContextConstraints resources. - securitycontextconstraints.Register(plugins) - // This plugin validates the authorization.openshift.io/v1 RoleBindingRestriction resources. - rolebindingrestriction.Register(plugins) - // This plugin validates the network.config.openshift.io object for service node port range changes - network.Register(plugins) - // this one is special because we don't work without it. - securitycontextconstraints.RegisterDefaulting(plugins) -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/customresourcevalidator.go b/openshift-kube-apiserver/admission/customresourcevalidation/customresourcevalidator.go deleted file mode 100644 index 6cb55fe81988c..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/customresourcevalidator.go +++ /dev/null @@ -1,98 +0,0 @@ -package customresourcevalidation - -import ( - "context" - "fmt" - - apierrors "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/admission" -) - -type ObjectValidator interface { - ValidateCreate(obj runtime.Object) field.ErrorList - ValidateUpdate(obj runtime.Object, oldObj runtime.Object) field.ErrorList - ValidateStatusUpdate(obj runtime.Object, oldObj runtime.Object) field.ErrorList -} - -// ValidateCustomResource is an implementation of admission.Interface. -// It looks at all new pods and overrides each container's image pull policy to Always. -type validateCustomResource struct { - *admission.Handler - - resources map[schema.GroupResource]bool - validators map[schema.GroupVersionKind]ObjectValidator -} - -func NewValidator(resources map[schema.GroupResource]bool, validators map[schema.GroupVersionKind]ObjectValidator) (admission.ValidationInterface, error) { - return &validateCustomResource{ - Handler: admission.NewHandler(admission.Create, admission.Update), - resources: resources, - validators: validators, - }, nil -} - -var _ admission.ValidationInterface = &validateCustomResource{} - -// Validate is an admission function that will validate a CRD in config.openshift.io. uncastAttributes are attributes -// that are of type unstructured. -func (a *validateCustomResource) Validate(ctx context.Context, uncastAttributes admission.Attributes, _ admission.ObjectInterfaces) error { - attributes := &unstructuredUnpackingAttributes{Attributes: uncastAttributes} - if a.shouldIgnore(attributes) { - return nil - } - validator, ok := a.validators[attributes.GetKind()] - if !ok { - return admission.NewForbidden(attributes, fmt.Errorf("unhandled kind: %v", attributes.GetKind())) - } - - switch attributes.GetOperation() { - case admission.Create: - // creating subresources isn't something we understand, but we can be pretty sure we don't need to validate it - if len(attributes.GetSubresource()) > 0 { - return nil - } - errors := validator.ValidateCreate(attributes.GetObject()) - if len(errors) == 0 { - return nil - } - return apierrors.NewInvalid(attributes.GetKind().GroupKind(), attributes.GetName(), errors) - - case admission.Update: - switch attributes.GetSubresource() { - case "": - errors := validator.ValidateUpdate(attributes.GetObject(), attributes.GetOldObject()) - if len(errors) == 0 { - return nil - } - return apierrors.NewInvalid(attributes.GetKind().GroupKind(), attributes.GetName(), errors) - - case "status": - errors := validator.ValidateStatusUpdate(attributes.GetObject(), attributes.GetOldObject()) - if len(errors) == 0 { - return nil - } - return apierrors.NewInvalid(attributes.GetKind().GroupKind(), attributes.GetName(), errors) - - default: - return admission.NewForbidden(attributes, fmt.Errorf("unhandled subresource: %v", attributes.GetSubresource())) - } - - default: - return admission.NewForbidden(attributes, fmt.Errorf("unhandled operation: %v", attributes.GetOperation())) - } -} - -func (a *validateCustomResource) shouldIgnore(attributes admission.Attributes) bool { - if !a.resources[attributes.GetResource().GroupResource()] { - return true - } - // if a subresource is specified and it isn't status, skip it - if len(attributes.GetSubresource()) > 0 && attributes.GetSubresource() != "status" { - return true - } - - return false -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/customresourcevalidator_test.go b/openshift-kube-apiserver/admission/customresourcevalidation/customresourcevalidator_test.go deleted file mode 100644 index 6a53c16c062ca..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/customresourcevalidator_test.go +++ /dev/null @@ -1,278 +0,0 @@ -package customresourcevalidation - -import ( - "context" - "errors" - "fmt" - "reflect" - "testing" - - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/authentication/user" - - configv1 "github.com/openshift/api/config/v1" -) - -func TestCustomResourceValidator(t *testing.T) { - - const ( - testGroup = "config.openshift.io" - testVersion = "v1" - testResource = "images" - testKind = "Image" - ) - - var testObjectType *configv1.Image - - testCases := []struct { - description string - object runtime.Object - objectBytes []byte - oldObject runtime.Object - oldObjectBytes []byte - kind schema.GroupVersionKind - namespace string - name string - resource schema.GroupVersionResource - subresource string - operation admission.Operation - userInfo user.Info - expectError bool - expectCreateFuncCalled bool - expectUpdateFuncCalled bool - expectStatusUpdateFuncCalled bool - validateFuncErr bool - expectedObjectType interface{} - }{ - { - description: "ShouldIgnoreUnknownResource", - resource: schema.GroupVersionResource{ - Group: "other_group", - Version: "other_version", - Resource: "other_resource", - }, - }, - { - description: "ShouldIgnoreUnknownSubresource", - subresource: "not_status", - }, - { - description: "ShouldIgnoreUnknownSubresource", - subresource: "not_status", - }, - { - description: "UnhandledOperationConnect", - operation: admission.Connect, - expectError: true, - }, - { - description: "UnhandledOperationDelete", - operation: admission.Delete, - expectError: true, - }, - { - description: "UnhandledKind", - operation: admission.Create, - kind: schema.GroupVersionKind{ - Group: "other_group", - Version: "other_version", - Kind: "other_resource", - }, - expectError: true, - }, - { - description: "Create", - operation: admission.Create, - objectBytes: []byte(fmt.Sprintf(`{"kind":"%v","apiVersion":"%v/%v"}`, testKind, testGroup, testVersion)), - expectCreateFuncCalled: true, - expectedObjectType: testObjectType, - }, - { - description: "CreateSubresourceNope", - operation: admission.Create, - subresource: "status", - objectBytes: []byte(fmt.Sprintf(`{"kind":"%v","apiVersion":"%v/%v"}`, testKind, testGroup, testVersion)), - }, - { - description: "CreateError", - operation: admission.Create, - objectBytes: []byte(fmt.Sprintf(`{"kind":"%v","apiVersion":"%v/%v"}`, testKind, testGroup, testVersion)), - validateFuncErr: true, - expectCreateFuncCalled: true, - expectError: true, - }, - { - description: "Update", - operation: admission.Update, - objectBytes: []byte(fmt.Sprintf(`{"kind":"%v","apiVersion":"%v/%v"}`, testKind, testGroup, testVersion)), - oldObjectBytes: []byte(fmt.Sprintf(`{"kind":"%v","apiVersion":"%v/%v"}`, testKind, testGroup, testVersion)), - expectUpdateFuncCalled: true, - expectedObjectType: testObjectType, - }, - { - description: "UpdateError", - operation: admission.Update, - objectBytes: []byte(fmt.Sprintf(`{"kind":"%v","apiVersion":"%v/%v"}`, testKind, testGroup, testVersion)), - oldObjectBytes: []byte(fmt.Sprintf(`{"kind":"%v","apiVersion":"%v/%v"}`, testKind, testGroup, testVersion)), - validateFuncErr: true, - expectError: true, - }, - { - description: "UpdateStatus", - operation: admission.Update, - subresource: "status", - objectBytes: []byte(fmt.Sprintf(`{"kind":"%v","apiVersion":"%v/%v"}`, testKind, testGroup, testVersion)), - oldObjectBytes: []byte(fmt.Sprintf(`{"kind":"%v","apiVersion":"%v/%v"}`, testKind, testGroup, testVersion)), - expectStatusUpdateFuncCalled: true, - expectedObjectType: testObjectType, - }, - { - description: "UpdateStatusError", - operation: admission.Update, - subresource: "status", - objectBytes: []byte(fmt.Sprintf(`{"kind":"%v","apiVersion":"%v/%v"}`, testKind, testGroup, testVersion)), - oldObjectBytes: []byte(fmt.Sprintf(`{"kind":"%v","apiVersion":"%v/%v"}`, testKind, testGroup, testVersion)), - expectStatusUpdateFuncCalled: true, - validateFuncErr: true, - expectError: true, - }, - } - - for _, tc := range testCases { - t.Run(tc.description, func(t *testing.T) { - - var createFuncCalled bool - var updateFuncCalled bool - var updateStatusFuncCalled bool - var funcArgObject runtime.Object - var funcArgOldObject runtime.Object - - handler, err := NewValidator( - map[schema.GroupResource]bool{ - {Group: testGroup, Resource: testResource}: true, - }, - map[schema.GroupVersionKind]ObjectValidator{ - {Group: testGroup, Version: testVersion, Kind: testKind}: testValidator{ - validateCreate: func(obj runtime.Object) field.ErrorList { - createFuncCalled = true - if tc.validateFuncErr { - return field.ErrorList{field.InternalError(field.NewPath("test"), errors.New("TEST Error"))} - } - funcArgObject = obj - return nil - }, - validateUpdate: func(obj runtime.Object, oldObj runtime.Object) field.ErrorList { - if tc.validateFuncErr { - return field.ErrorList{field.InternalError(field.NewPath("test"), errors.New("TEST Error"))} - } - updateFuncCalled = true - funcArgObject = obj - funcArgOldObject = oldObj - return nil - }, - validateStatusUpdate: func(obj runtime.Object, oldObj runtime.Object) field.ErrorList { - updateStatusFuncCalled = true - if tc.validateFuncErr { - return field.ErrorList{field.InternalError(field.NewPath("test"), errors.New("TEST Error"))} - } - funcArgObject = obj - funcArgOldObject = oldObj - return nil - }, - }, - }, - ) - if err != nil { - t.Fatal(err) - } - validator := handler.(admission.ValidationInterface) - - if len(tc.objectBytes) > 0 { - object, kind, err := unstructured.UnstructuredJSONScheme.Decode(tc.objectBytes, nil, nil) - if err != nil { - t.Fatal(err) - } - tc.object = object.(runtime.Object) - tc.kind = *kind - } - - if len(tc.oldObjectBytes) > 0 { - object, kind, err := unstructured.UnstructuredJSONScheme.Decode(tc.oldObjectBytes, nil, nil) - if err != nil { - t.Fatal(err) - } - tc.oldObject = object.(runtime.Object) - tc.kind = *kind - } - - if tc.resource == (schema.GroupVersionResource{}) { - tc.resource = schema.GroupVersionResource{ - Group: testGroup, - Version: testVersion, - Resource: testResource, - } - } - - attributes := admission.NewAttributesRecord( - tc.object, - tc.oldObject, - tc.kind, - tc.namespace, - tc.name, - tc.resource, - tc.subresource, - tc.operation, - nil, - false, - tc.userInfo, - ) - - err = validator.Validate(context.TODO(), attributes, nil) - switch { - case tc.expectError && err == nil: - t.Error("Error expected") - case !tc.expectError && err != nil: - t.Errorf("Unexpected error: %v", err) - } - if tc.expectCreateFuncCalled != createFuncCalled { - t.Errorf("ValidateObjCreateFunc called: expected: %v, actual: %v", tc.expectCreateFuncCalled, createFuncCalled) - } - if tc.expectUpdateFuncCalled != updateFuncCalled { - t.Errorf("ValidateObjUpdateFunc called: expected: %v, actual: %v", tc.expectUpdateFuncCalled, updateFuncCalled) - } - if tc.expectStatusUpdateFuncCalled != updateStatusFuncCalled { - t.Errorf("ValidateStatusUpdateFunc called: expected: %v, actual: %v", tc.expectStatusUpdateFuncCalled, updateStatusFuncCalled) - } - if reflect.TypeOf(tc.expectedObjectType) != reflect.TypeOf(funcArgObject) { - t.Errorf("Expected %T, actual %T", tc.expectedObjectType, funcArgObject) - } - if (tc.oldObject != nil) && (reflect.TypeOf(tc.expectedObjectType) != reflect.TypeOf(funcArgOldObject)) { - t.Errorf("Expected %T, actual %T", tc.expectedObjectType, funcArgOldObject) - } - }) - } - -} - -type testValidator struct { - validateCreate func(uncastObj runtime.Object) field.ErrorList - validateUpdate func(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList - validateStatusUpdate func(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList -} - -func (v testValidator) ValidateCreate(uncastObj runtime.Object) field.ErrorList { - return v.validateCreate(uncastObj) -} - -func (v testValidator) ValidateUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - return v.validateUpdate(uncastObj, uncastOldObj) - -} - -func (v testValidator) ValidateStatusUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - return v.validateStatusUpdate(uncastObj, uncastOldObj) -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/features/validate_features.go b/openshift-kube-apiserver/admission/customresourcevalidation/features/validate_features.go deleted file mode 100644 index 051ad9d4e3a24..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/features/validate_features.go +++ /dev/null @@ -1,129 +0,0 @@ -package features - -import ( - "fmt" - "io" - - "k8s.io/apimachinery/pkg/util/sets" - - "k8s.io/apimachinery/pkg/api/validation" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/admission" - - configv1 "github.com/openshift/api/config/v1" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" -) - -const PluginName = "config.openshift.io/ValidateFeatureGate" - -// Register registers a plugin -func Register(plugins *admission.Plugins) { - plugins.Register(PluginName, func(config io.Reader) (admission.Interface, error) { - return customresourcevalidation.NewValidator( - map[schema.GroupResource]bool{ - configv1.Resource("features"): true, - }, - map[schema.GroupVersionKind]customresourcevalidation.ObjectValidator{ - configv1.GroupVersion.WithKind("FeatureGate"): featureGateV1{}, - }) - }) -} - -func toFeatureGateV1(uncastObj runtime.Object) (*configv1.FeatureGate, field.ErrorList) { - if uncastObj == nil { - return nil, nil - } - - allErrs := field.ErrorList{} - - obj, ok := uncastObj.(*configv1.FeatureGate) - if !ok { - return nil, append(allErrs, - field.NotSupported(field.NewPath("kind"), fmt.Sprintf("%T", uncastObj), []string{"FeatureGate"}), - field.NotSupported(field.NewPath("apiVersion"), fmt.Sprintf("%T", uncastObj), []string{"config.openshift.io/v1"})) - } - - return obj, nil -} - -type featureGateV1 struct { -} - -var knownFeatureSets = sets.NewString("", string(configv1.TechPreviewNoUpgrade), string(configv1.CustomNoUpgrade)) - -func validateFeatureGateSpecCreate(spec configv1.FeatureGateSpec) field.ErrorList { - allErrs := field.ErrorList{} - - // on create, we only allow values that we are aware of - if !knownFeatureSets.Has(string(spec.FeatureSet)) { - allErrs = append(allErrs, field.NotSupported(field.NewPath("spec.featureSet"), spec.FeatureSet, knownFeatureSets.List())) - } - - return allErrs -} - -func validateFeatureGateSpecUpdate(spec, oldSpec configv1.FeatureGateSpec) field.ErrorList { - allErrs := field.ErrorList{} - - // on update, we don't fail validation on a field we don't recognize as long as it is not changing - if !knownFeatureSets.Has(string(spec.FeatureSet)) && oldSpec.FeatureSet != spec.FeatureSet { - allErrs = append(allErrs, field.NotSupported(field.NewPath("spec.featureSet"), spec.FeatureSet, knownFeatureSets.List())) - } - - // we do not allow anyone to take back TechPreview - if oldSpec.FeatureSet == configv1.TechPreviewNoUpgrade && spec.FeatureSet != configv1.TechPreviewNoUpgrade { - allErrs = append(allErrs, field.Forbidden(field.NewPath("spec.featureSet"), "once enabled, tech preview features may not be disabled")) - } - // we do not allow anyone to take back CustomNoUpgrade - if oldSpec.FeatureSet == configv1.CustomNoUpgrade && spec.FeatureSet != configv1.CustomNoUpgrade { - allErrs = append(allErrs, field.Forbidden(field.NewPath("spec.featureSet"), "once enabled, custom feature gates may not be disabled")) - } - - return allErrs -} - -func (featureGateV1) ValidateCreate(uncastObj runtime.Object) field.ErrorList { - obj, allErrs := toFeatureGateV1(uncastObj) - if len(allErrs) > 0 { - return allErrs - } - - allErrs = append(allErrs, validation.ValidateObjectMeta(&obj.ObjectMeta, false, customresourcevalidation.RequireNameCluster, field.NewPath("metadata"))...) - allErrs = append(allErrs, validateFeatureGateSpecCreate(obj.Spec)...) - - return allErrs -} - -func (featureGateV1) ValidateUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, allErrs := toFeatureGateV1(uncastObj) - if len(allErrs) > 0 { - return allErrs - } - oldObj, allErrs := toFeatureGateV1(uncastOldObj) - if len(allErrs) > 0 { - return allErrs - } - - allErrs = append(allErrs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - allErrs = append(allErrs, validateFeatureGateSpecUpdate(obj.Spec, oldObj.Spec)...) - - return allErrs -} - -func (featureGateV1) ValidateStatusUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, errs := toFeatureGateV1(uncastObj) - if len(errs) > 0 { - return errs - } - oldObj, errs := toFeatureGateV1(uncastOldObj) - if len(errs) > 0 { - return errs - } - - // TODO validate the obj. remember that status validation should *never* fail on spec validation errors. - errs = append(errs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - - return errs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/features/validate_features_test.go b/openshift-kube-apiserver/admission/customresourcevalidation/features/validate_features_test.go deleted file mode 100644 index 840d7d8aea8c8..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/features/validate_features_test.go +++ /dev/null @@ -1,127 +0,0 @@ -package features - -import ( - "strings" - "testing" - - configv1 "github.com/openshift/api/config/v1" -) - -func TestValidateCreateSpec(t *testing.T) { - tests := []struct { - name string - featureSet string - expectedErr string - }{ - { - name: "empty", - featureSet: "", - expectedErr: "", - }, - { - name: "techpreview", - featureSet: string(configv1.TechPreviewNoUpgrade), - expectedErr: "", - }, - { - name: "not real", - featureSet: "fake-value", - expectedErr: "Unsupported value", - }, - } - - for _, tc := range tests { - t.Run(tc.name, func(t *testing.T) { - actual := validateFeatureGateSpecCreate(configv1.FeatureGateSpec{FeatureGateSelection: configv1.FeatureGateSelection{FeatureSet: configv1.FeatureSet(tc.featureSet)}}) - switch { - case len(actual) == 0 && len(tc.expectedErr) == 0: - case len(actual) == 0 && len(tc.expectedErr) != 0: - t.Fatal(tc.expectedErr) - case len(actual) != 0 && len(tc.expectedErr) == 0: - t.Fatal(actual) - case len(actual) != 0 && len(tc.expectedErr) != 0: - found := false - for _, actualErr := range actual { - found = found || strings.Contains(actualErr.Error(), tc.expectedErr) - } - if !found { - t.Fatal(actual) - } - default: - } - - }) - } -} - -func TestValidateUpdateSpec(t *testing.T) { - tests := []struct { - name string - featureSet string - oldFeatureSet string - expectedErr string - }{ - { - name: "empty", - featureSet: "", - oldFeatureSet: "", - expectedErr: "", - }, - { - name: "change to techpreview", - featureSet: string(configv1.TechPreviewNoUpgrade), - oldFeatureSet: "", - expectedErr: "", - }, - { - name: "change from techpreview", - featureSet: "", - oldFeatureSet: string(configv1.TechPreviewNoUpgrade), - expectedErr: "once enabled, tech preview features may not be disabled", - }, - { - name: "change from custom", - featureSet: string(configv1.TechPreviewNoUpgrade), - oldFeatureSet: string(configv1.CustomNoUpgrade), - expectedErr: "once enabled, custom feature gates may not be disabled", - }, - { - name: "unknown, but no change", - featureSet: "fake-value", - oldFeatureSet: "fake-value", - expectedErr: "", - }, - { - name: "unknown, with change", - featureSet: "fake-value", - oldFeatureSet: "fake-value-2", - expectedErr: "Unsupported value", - }, - } - - for _, tc := range tests { - t.Run(tc.name, func(t *testing.T) { - actual := validateFeatureGateSpecUpdate( - configv1.FeatureGateSpec{FeatureGateSelection: configv1.FeatureGateSelection{FeatureSet: configv1.FeatureSet(tc.featureSet)}}, - configv1.FeatureGateSpec{FeatureGateSelection: configv1.FeatureGateSelection{FeatureSet: configv1.FeatureSet(tc.oldFeatureSet)}}, - ) - switch { - case len(actual) == 0 && len(tc.expectedErr) == 0: - case len(actual) == 0 && len(tc.expectedErr) != 0: - t.Fatal(tc.expectedErr) - case len(actual) != 0 && len(tc.expectedErr) == 0: - t.Fatal(actual) - case len(actual) != 0 && len(tc.expectedErr) != 0: - found := false - for _, actualErr := range actual { - found = found || strings.Contains(actualErr.Error(), tc.expectedErr) - } - if !found { - t.Fatal(actual) - } - default: - } - - }) - } -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/helpers.go b/openshift-kube-apiserver/admission/customresourcevalidation/helpers.go deleted file mode 100644 index 9248d469a7b95..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/helpers.go +++ /dev/null @@ -1,40 +0,0 @@ -package customresourcevalidation - -import ( - "strings" - - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/apis/core/validation" - - configv1 "github.com/openshift/api/config/v1" -) - -func ValidateConfigMapReference(path *field.Path, configMap configv1.ConfigMapNameReference, required bool) field.ErrorList { - return validateConfigMapSecret(path.Child("name"), configMap.Name, required, validation.ValidateConfigMapName) -} - -func ValidateSecretReference(path *field.Path, secret configv1.SecretNameReference, required bool) field.ErrorList { - return validateConfigMapSecret(path.Child("name"), secret.Name, required, validation.ValidateSecretName) -} - -func validateConfigMapSecret(path *field.Path, name string, required bool, validator validation.ValidateNameFunc) field.ErrorList { - if len(name) == 0 { - if required { - return field.ErrorList{field.Required(path, "")} - } - return nil - } - - if valErrs := validator(name, false); len(valErrs) > 0 { - return field.ErrorList{field.Invalid(path, name, strings.Join(valErrs, ", "))} - } - return nil -} - -// RequireNameCluster is a name validation function that requires the name to be cluster. It's handy for config.openshift.io types. -func RequireNameCluster(name string, prefix bool) []string { - if name != "cluster" { - return []string{"must be cluster"} - } - return nil -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/image/validate_image.go b/openshift-kube-apiserver/admission/customresourcevalidation/image/validate_image.go deleted file mode 100644 index 535c0908296d0..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/image/validate_image.go +++ /dev/null @@ -1,94 +0,0 @@ -package image - -import ( - "fmt" - "io" - - "k8s.io/apimachinery/pkg/api/validation" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/admission" - - configv1 "github.com/openshift/api/config/v1" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" -) - -const PluginName = "config.openshift.io/ValidateImage" - -// Register registers a plugin -func Register(plugins *admission.Plugins) { - plugins.Register(PluginName, func(config io.Reader) (admission.Interface, error) { - return customresourcevalidation.NewValidator( - map[schema.GroupResource]bool{ - configv1.Resource("images"): true, - }, - map[schema.GroupVersionKind]customresourcevalidation.ObjectValidator{ - configv1.GroupVersion.WithKind("Image"): imageV1{}, - }) - }) -} - -func toImageV1(uncastObj runtime.Object) (*configv1.Image, field.ErrorList) { - if uncastObj == nil { - return nil, nil - } - - allErrs := field.ErrorList{} - - obj, ok := uncastObj.(*configv1.Image) - if !ok { - return nil, append(allErrs, - field.NotSupported(field.NewPath("kind"), fmt.Sprintf("%T", uncastObj), []string{"Image"}), - field.NotSupported(field.NewPath("apiVersion"), fmt.Sprintf("%T", uncastObj), []string{"config.openshift.io/v1"})) - } - - return obj, nil -} - -type imageV1 struct { -} - -func (imageV1) ValidateCreate(uncastObj runtime.Object) field.ErrorList { - obj, errs := toImageV1(uncastObj) - if len(errs) > 0 { - return errs - } - - // TODO validate the obj - errs = append(errs, validation.ValidateObjectMeta(&obj.ObjectMeta, false, customresourcevalidation.RequireNameCluster, field.NewPath("metadata"))...) - - return errs -} - -func (imageV1) ValidateUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, errs := toImageV1(uncastObj) - if len(errs) > 0 { - return errs - } - oldObj, errs := toImageV1(uncastOldObj) - if len(errs) > 0 { - return errs - } - - // TODO validate the obj - errs = append(errs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - - return errs -} - -func (imageV1) ValidateStatusUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, errs := toImageV1(uncastObj) - if len(errs) > 0 { - return errs - } - oldObj, errs := toImageV1(uncastOldObj) - if len(errs) > 0 { - return errs - } - - // TODO validate the obj. remember that status validation should *never* fail on spec validation errors. - errs = append(errs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - - return errs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/network/BUILD b/openshift-kube-apiserver/admission/customresourcevalidation/network/BUILD deleted file mode 100644 index e1819a586cadb..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/network/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["validate_network_config.go"], - importpath = "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/network", - visibility = ["//visibility:public"], - deps = [ - "//openshift-kube-apiserver/admission/customresourcevalidation:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/api/validation:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/util/validation:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/admission:go_default_library", - "//vendor/github.com/openshift/api/config/v1:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/network/validate_network_config.go b/openshift-kube-apiserver/admission/customresourcevalidation/network/validate_network_config.go deleted file mode 100644 index 6362db49efaa9..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/network/validate_network_config.go +++ /dev/null @@ -1,127 +0,0 @@ -package network - -import ( - "fmt" - "io" - - "k8s.io/apimachinery/pkg/api/validation" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - utilnet "k8s.io/apimachinery/pkg/util/net" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/admission" - kubeoptions "k8s.io/kubernetes/pkg/kubeapiserver/options" - - configv1 "github.com/openshift/api/config/v1" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" -) - -const PluginName = "config.openshift.io/ValidateNetwork" - -// Register registers a plugin -func Register(plugins *admission.Plugins) { - plugins.Register(PluginName, func(config io.Reader) (admission.Interface, error) { - return customresourcevalidation.NewValidator( - map[schema.GroupResource]bool{ - configv1.Resource("networks"): true, - }, - map[schema.GroupVersionKind]customresourcevalidation.ObjectValidator{ - configv1.GroupVersion.WithKind("Network"): networkV1{}, - }) - }) -} - -func toNetworkV1(uncastObj runtime.Object) (*configv1.Network, field.ErrorList) { - if uncastObj == nil { - return nil, nil - } - - allErrs := field.ErrorList{} - - obj, ok := uncastObj.(*configv1.Network) - if !ok { - return nil, append(allErrs, - field.NotSupported(field.NewPath("kind"), fmt.Sprintf("%T", uncastObj), []string{"Network"}), - field.NotSupported(field.NewPath("apiVersion"), fmt.Sprintf("%T", uncastObj), []string{"config.openshift.io/v1"})) - } - - return obj, nil -} - -type networkV1 struct { -} - -func validateNetworkServiceNodePortRangeUpdate(obj, oldObj *configv1.Network) *field.Error { - var err error - defaultRange := kubeoptions.DefaultServiceNodePortRange - oldRange := &defaultRange - newRange := &defaultRange - - oldRangeStr := oldObj.Spec.ServiceNodePortRange - if oldRangeStr != "" { - if oldRange, err = utilnet.ParsePortRange(oldRangeStr); err != nil { - return field.Invalid(field.NewPath("spec", "serviceNodePortRange"), - oldRangeStr, - fmt.Sprintf("failed to parse the old port range: %v", err)) - } - } - newRangeStr := obj.Spec.ServiceNodePortRange - if newRangeStr != "" { - if newRange, err = utilnet.ParsePortRange(newRangeStr); err != nil { - return field.Invalid(field.NewPath("spec", "serviceNodePortRange"), - newRangeStr, - fmt.Sprintf("failed to parse the new port range: %v", err)) - } - } - if !newRange.Contains(oldRange.Base) || !newRange.Contains(oldRange.Base+oldRange.Size-1) { - return field.Invalid(field.NewPath("spec", "serviceNodePortRange"), - newRangeStr, - fmt.Sprintf("new service node port range %s does not completely cover the previous range %s", newRange, oldRange)) - } - return nil -} - -func (networkV1) ValidateCreate(uncastObj runtime.Object) field.ErrorList { - obj, allErrs := toNetworkV1(uncastObj) - if len(allErrs) > 0 { - return allErrs - } - - allErrs = append(allErrs, validation.ValidateObjectMeta(&obj.ObjectMeta, false, customresourcevalidation.RequireNameCluster, field.NewPath("metadata"))...) - - return allErrs -} - -func (networkV1) ValidateUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, allErrs := toNetworkV1(uncastObj) - if len(allErrs) > 0 { - return allErrs - } - oldObj, allErrs := toNetworkV1(uncastOldObj) - if len(allErrs) > 0 { - return allErrs - } - - allErrs = append(allErrs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - if err := validateNetworkServiceNodePortRangeUpdate(obj, oldObj); err != nil { - allErrs = append(allErrs, err) - } - - return allErrs -} - -func (networkV1) ValidateStatusUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, errs := toNetworkV1(uncastObj) - if len(errs) > 0 { - return errs - } - oldObj, errs := toNetworkV1(uncastOldObj) - if len(errs) > 0 { - return errs - } - - // TODO validate the obj. remember that status validation should *never* fail on spec validation errors. - errs = append(errs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - - return errs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/helpers.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/helpers.go deleted file mode 100644 index 127c91e1312d1..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/helpers.go +++ /dev/null @@ -1,33 +0,0 @@ -package oauth - -import ( - "net" - - kvalidation "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/apimachinery/pkg/util/validation/field" - - configv1 "github.com/openshift/api/config/v1" - "github.com/openshift/library-go/pkg/config/validation" - crvalidation "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" -) - -func isValidHostname(hostname string) bool { - return len(kvalidation.IsDNS1123Subdomain(hostname)) == 0 || net.ParseIP(hostname) != nil -} - -func ValidateRemoteConnectionInfo(remoteConnectionInfo configv1.OAuthRemoteConnectionInfo, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - - if len(remoteConnectionInfo.URL) == 0 { - allErrs = append(allErrs, field.Required(fldPath.Child("url"), "")) - } else { - _, urlErrs := validation.ValidateSecureURL(remoteConnectionInfo.URL, fldPath.Child("url")) - allErrs = append(allErrs, urlErrs...) - } - - allErrs = append(allErrs, crvalidation.ValidateConfigMapReference(fldPath.Child("ca"), remoteConnectionInfo.CA, false)...) - allErrs = append(allErrs, crvalidation.ValidateSecretReference(fldPath.Child("tlsClientCert"), remoteConnectionInfo.TLSClientCert, false)...) - allErrs = append(allErrs, crvalidation.ValidateSecretReference(fldPath.Child("tlsClientKey"), remoteConnectionInfo.TLSClientKey, false)...) - - return allErrs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_github.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_github.go deleted file mode 100644 index 2ae0b45254a14..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_github.go +++ /dev/null @@ -1,69 +0,0 @@ -package oauth - -import ( - "strings" - - "k8s.io/apimachinery/pkg/util/validation/field" - - configv1 "github.com/openshift/api/config/v1" - crvalidation "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" -) - -func ValidateGitHubIdentityProvider(provider *configv1.GitHubIdentityProvider, mappingMethod configv1.MappingMethodType, fieldPath *field.Path) field.ErrorList { - errs := field.ErrorList{} - if provider == nil { - errs = append(errs, field.Required(fieldPath, "")) - return errs - } - - errs = append(errs, ValidateOAuthIdentityProvider(provider.ClientID, provider.ClientSecret, fieldPath.Child("provider"))...) - - if len(provider.Teams) > 0 && len(provider.Organizations) > 0 { - errs = append(errs, field.Invalid(fieldPath.Child("organizations"), provider.Organizations, "specify organizations or teams, not both")) - errs = append(errs, field.Invalid(fieldPath.Child("teams"), provider.Teams, "specify organizations or teams, not both")) - } - - // only check that there are some teams/orgs if not GitHub Enterprise Server - if len(provider.Hostname) == 0 && len(provider.Teams) == 0 && len(provider.Organizations) == 0 && mappingMethod != configv1.MappingMethodLookup { - errs = append(errs, field.Invalid(fieldPath, nil, "one of organizations or teams must be specified unless hostname is set or lookup is used")) - } - for i, organization := range provider.Organizations { - if strings.Contains(organization, "/") { - errs = append(errs, field.Invalid(fieldPath.Child("organizations").Index(i), organization, "cannot contain /")) - } - if len(organization) == 0 { - errs = append(errs, field.Required(fieldPath.Child("organizations").Index(i), "cannot be empty")) - } - } - for i, team := range provider.Teams { - if split := strings.Split(team, "/"); len(split) != 2 { - errs = append(errs, field.Invalid(fieldPath.Child("teams").Index(i), team, "must be in the format /")) - } else if org, t := split[0], split[1]; len(org) == 0 || len(t) == 0 { - errs = append(errs, field.Invalid(fieldPath.Child("teams").Index(i), team, "must be in the format /")) - } - } - - if hostname := provider.Hostname; len(hostname) != 0 { - hostnamePath := fieldPath.Child("hostname") - - if hostname == "github.com" || strings.HasSuffix(hostname, ".github.com") { - errs = append(errs, field.Invalid(hostnamePath, hostname, "cannot equal [*.]github.com")) - } - - if !isValidHostname(hostname) { - errs = append(errs, field.Invalid(hostnamePath, hostname, "must be a valid DNS subdomain or IP address")) - } - } - - if caFile := provider.CA; len(caFile.Name) != 0 { - caPath := fieldPath.Child("ca") - - errs = append(errs, crvalidation.ValidateConfigMapReference(caPath, caFile, true)...) - - if len(provider.Hostname) == 0 { - errs = append(errs, field.Invalid(caPath, caFile, "cannot be specified when hostname is empty")) - } - } - - return errs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_github_test.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_github_test.go deleted file mode 100644 index a11abb797f231..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_github_test.go +++ /dev/null @@ -1,249 +0,0 @@ -package oauth - -import ( - "reflect" - "testing" - - "k8s.io/apimachinery/pkg/util/validation/field" - - configv1 "github.com/openshift/api/config/v1" -) - -func TestValidateGitHubIdentityProvider(t *testing.T) { - type args struct { - provider *configv1.GitHubIdentityProvider - mappingMethod configv1.MappingMethodType - fieldPath *field.Path - } - tests := []struct { - name string - args args - errors field.ErrorList - }{ - { - name: "cannot use GH as hostname", - args: args{ - provider: &configv1.GitHubIdentityProvider{ - ClientID: "client", - ClientSecret: configv1.SecretNameReference{Name: "secret"}, - Organizations: []string{"org1"}, - Teams: nil, - Hostname: "github.com", - CA: configv1.ConfigMapNameReference{Name: "caconfigmap"}, - }, - mappingMethod: "", - }, - errors: field.ErrorList{ - {Type: field.ErrorTypeInvalid, Field: "hostname", BadValue: "github.com", Detail: "cannot equal [*.]github.com"}, - }, - }, - { - name: "cannot use GH subdomain as hostname", - args: args{ - provider: &configv1.GitHubIdentityProvider{ - ClientID: "client", - ClientSecret: configv1.SecretNameReference{Name: "secret"}, - Organizations: []string{"org1"}, - Teams: nil, - Hostname: "foo.github.com", - CA: configv1.ConfigMapNameReference{Name: "caconfigmap"}, - }, - mappingMethod: "", - }, - errors: field.ErrorList{ - {Type: field.ErrorTypeInvalid, Field: "hostname", BadValue: "foo.github.com", Detail: "cannot equal [*.]github.com"}, - }, - }, - { - name: "valid domain hostname", - args: args{ - provider: &configv1.GitHubIdentityProvider{ - ClientID: "client", - ClientSecret: configv1.SecretNameReference{Name: "secret"}, - Organizations: []string{"org1"}, - Teams: nil, - Hostname: "company.com", - CA: configv1.ConfigMapNameReference{Name: "caconfigmap"}, - }, - mappingMethod: "", - }, - }, - { - name: "valid ip hostname", - args: args{ - provider: &configv1.GitHubIdentityProvider{ - ClientID: "client", - ClientSecret: configv1.SecretNameReference{Name: "secret"}, - Organizations: []string{"org1"}, - Teams: nil, - Hostname: "192.168.8.1", - CA: configv1.ConfigMapNameReference{Name: "caconfigmap"}, - }, - mappingMethod: "", - }, - }, - { - name: "invalid ip hostname with port", - args: args{ - provider: &configv1.GitHubIdentityProvider{ - ClientID: "client", - ClientSecret: configv1.SecretNameReference{Name: "secret"}, - Organizations: []string{"org1"}, - Teams: nil, - Hostname: "192.168.8.1:8080", - CA: configv1.ConfigMapNameReference{Name: "caconfigmap"}, - }, - mappingMethod: "", - }, - errors: field.ErrorList{ - {Type: field.ErrorTypeInvalid, Field: "hostname", BadValue: "192.168.8.1:8080", Detail: "must be a valid DNS subdomain or IP address"}, - }, - }, - { - name: "invalid domain hostname", - args: args{ - provider: &configv1.GitHubIdentityProvider{ - ClientID: "client", - ClientSecret: configv1.SecretNameReference{Name: "secret"}, - Organizations: []string{"org1"}, - Teams: nil, - Hostname: "google-.com", - CA: configv1.ConfigMapNameReference{Name: "caconfigmap"}, - }, - mappingMethod: "", - }, - errors: field.ErrorList{ - {Type: field.ErrorTypeInvalid, Field: "hostname", BadValue: "google-.com", Detail: "must be a valid DNS subdomain or IP address"}, - }, - }, - { - name: "invalid name in ca ref and no hostname", - args: args{ - provider: &configv1.GitHubIdentityProvider{ - ClientID: "client", - ClientSecret: configv1.SecretNameReference{Name: "secret"}, - Organizations: []string{"org1"}, - Teams: nil, - Hostname: "", - CA: configv1.ConfigMapNameReference{Name: "ca&config-map"}, - }, - mappingMethod: "", - }, - errors: field.ErrorList{ - {Type: field.ErrorTypeInvalid, Field: "ca.name", BadValue: "ca&config-map", Detail: "a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')"}, - {Type: field.ErrorTypeInvalid, Field: "ca", BadValue: configv1.ConfigMapNameReference{Name: "ca&config-map"}, Detail: "cannot be specified when hostname is empty"}, - }, - }, - { - name: "valid ca and hostname", - args: args{ - provider: &configv1.GitHubIdentityProvider{ - ClientID: "client", - ClientSecret: configv1.SecretNameReference{Name: "secret"}, - Organizations: []string{"org1"}, - Teams: nil, - Hostname: "mo.co", - CA: configv1.ConfigMapNameReference{Name: "ca-config-map"}, - }, - mappingMethod: "", - }, - }, - { - name: "GitHub requires client ID and secret", - args: args{ - provider: &configv1.GitHubIdentityProvider{ - ClientID: "", - ClientSecret: configv1.SecretNameReference{}, - Organizations: []string{"org1"}, - Teams: nil, - Hostname: "", - CA: configv1.ConfigMapNameReference{}, - }, - mappingMethod: "", - }, - errors: field.ErrorList{ - {Type: field.ErrorTypeRequired, Field: "provider.clientID", BadValue: "", Detail: ""}, - {Type: field.ErrorTypeRequired, Field: "provider.clientSecret.name", BadValue: "", Detail: ""}, - }, - }, - { - name: "GitHub warns when not constrained to organizations or teams without lookup", - args: args{ - provider: &configv1.GitHubIdentityProvider{ - ClientID: "client", - ClientSecret: configv1.SecretNameReference{Name: "secret"}, - Organizations: nil, - Teams: nil, - Hostname: "", - CA: configv1.ConfigMapNameReference{}, - }, - mappingMethod: "", - }, - errors: field.ErrorList{ - {Type: field.ErrorTypeInvalid, Field: "", BadValue: nil, Detail: "one of organizations or teams must be specified unless hostname is set or lookup is used"}, - }, - }, - { - name: "GitHub does not warn when not constrained to organizations or teams with lookup", - args: args{ - provider: &configv1.GitHubIdentityProvider{ - ClientID: "client", - ClientSecret: configv1.SecretNameReference{Name: "secret"}, - Organizations: nil, - Teams: nil, - Hostname: "", - CA: configv1.ConfigMapNameReference{}, - }, - mappingMethod: "lookup", - }, - }, - { - name: "invalid cannot specific both organizations and teams", - args: args{ - provider: &configv1.GitHubIdentityProvider{ - ClientID: "client", - ClientSecret: configv1.SecretNameReference{Name: "secret"}, - Organizations: []string{"org1"}, - Teams: []string{"org1/team1"}, - Hostname: "", - CA: configv1.ConfigMapNameReference{}, - }, - mappingMethod: "", - }, - errors: field.ErrorList{ - {Type: field.ErrorTypeInvalid, Field: "organizations", BadValue: []string{"org1"}, Detail: "specify organizations or teams, not both"}, - {Type: field.ErrorTypeInvalid, Field: "teams", BadValue: []string{"org1/team1"}, Detail: "specify organizations or teams, not both"}, - }, - }, - { - name: "invalid team format", - args: args{ - provider: &configv1.GitHubIdentityProvider{ - ClientID: "client", - ClientSecret: configv1.SecretNameReference{Name: "secret"}, - Organizations: nil, - Teams: []string{"org1/team1", "org2/not/team2", "org3//team3", "", "org4/team4"}, - Hostname: "", - CA: configv1.ConfigMapNameReference{}, - }, - mappingMethod: "", - }, - errors: field.ErrorList{ - {Type: field.ErrorTypeInvalid, Field: "teams[1]", BadValue: "org2/not/team2", Detail: "must be in the format /"}, - {Type: field.ErrorTypeInvalid, Field: "teams[2]", BadValue: "org3//team3", Detail: "must be in the format /"}, - {Type: field.ErrorTypeInvalid, Field: "teams[3]", BadValue: "", Detail: "must be in the format /"}, - }, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - got := ValidateGitHubIdentityProvider(tt.args.provider, tt.args.mappingMethod, tt.args.fieldPath) - if tt.errors == nil && len(got) == 0 { - return - } - if !reflect.DeepEqual(got, tt.errors) { - t.Errorf("ValidateGitHubIdentityProvider() = %v, want %v", got, tt.errors) - } - }) - } -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_gitlab.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_gitlab.go deleted file mode 100644 index ea9fda2ab4d8c..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_gitlab.go +++ /dev/null @@ -1,26 +0,0 @@ -package oauth - -import ( - "k8s.io/apimachinery/pkg/util/validation/field" - - configv1 "github.com/openshift/api/config/v1" - "github.com/openshift/library-go/pkg/config/validation" - crvalidation "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" -) - -func ValidateGitLabIdentityProvider(provider *configv1.GitLabIdentityProvider, fieldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - if provider == nil { - allErrs = append(allErrs, field.Required(fieldPath, "")) - return allErrs - } - - allErrs = append(allErrs, ValidateOAuthIdentityProvider(provider.ClientID, provider.ClientSecret, fieldPath)...) - - _, urlErrs := validation.ValidateSecureURL(provider.URL, fieldPath.Child("url")) - allErrs = append(allErrs, urlErrs...) - - allErrs = append(allErrs, crvalidation.ValidateConfigMapReference(fieldPath.Child("ca"), provider.CA, false)...) - - return allErrs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_gitlab_test.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_gitlab_test.go deleted file mode 100644 index 9ce73cdc731ee..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_gitlab_test.go +++ /dev/null @@ -1,104 +0,0 @@ -package oauth - -import ( - "reflect" - "testing" - - configv1 "github.com/openshift/api/config/v1" - "k8s.io/apimachinery/pkg/util/validation/field" -) - -func gitlabIDP() configv1.IdentityProviderConfig { - return configv1.IdentityProviderConfig{ - Type: configv1.IdentityProviderTypeGitLab, - GitLab: &configv1.GitLabIdentityProvider{ - ClientID: "masterOfInstances", - ClientSecret: configv1.SecretNameReference{Name: "secret-gitlab-secret"}, - URL: "https://thisgitlabinstancerighthere.com", - CA: configv1.ConfigMapNameReference{Name: "letsencrypt-for-gitlab.instance"}, - }, - } -} - -func TestValidateGitLabIdentityProvider(t *testing.T) { - type args struct { - provider *configv1.GitLabIdentityProvider - fieldPath *field.Path - } - tests := []struct { - name string - args args - want field.ErrorList - }{ - { - name: "nil input provider", - want: field.ErrorList{ - field.Required(nil, ""), - }, - }, - { - name: "insecure URL", - args: args{ - provider: &configv1.GitLabIdentityProvider{ - ClientID: "hereBeMyId", - ClientSecret: configv1.SecretNameReference{Name: "gitlab-client-sec"}, - URL: "http://anyonecanseemenow.com", - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("url"), "http://anyonecanseemenow.com", "must use https scheme"), - }, - }, - { - name: "missing client ID and secret", - args: args{ - provider: &configv1.GitLabIdentityProvider{ - URL: "https://privategitlab.com", - }, - }, - want: field.ErrorList{ - field.Required(field.NewPath("clientID"), ""), - field.Required(field.NewPath("clientSecret", "name"), ""), - }, - }, - { - name: "invalid CA ref name", - args: args{ - provider: &configv1.GitLabIdentityProvider{ - ClientID: "hereBeMyId", - ClientSecret: configv1.SecretNameReference{Name: "gitlab-client-sec"}, - URL: "https://anyonecanseemenow.com", - CA: configv1.ConfigMapNameReference{Name: "veryBadRefName?:("}, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("ca", "name"), "veryBadRefName?:(", wrongConfigMapSecretErrMsg), - }, - }, - { - name: "minimal passing case", - args: args{ - provider: &configv1.GitLabIdentityProvider{ - ClientID: "hereBeMyId", - ClientSecret: configv1.SecretNameReference{Name: "gitlab-client-sec"}, - URL: "https://anyonecanseemenow.com", - }, - }, - want: field.ErrorList{}, - }, - { - name: "more complicated case", - args: args{ - provider: gitlabIDP().GitLab, - }, - want: field.ErrorList{}, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - if got := ValidateGitLabIdentityProvider(tt.args.provider, tt.args.fieldPath); !reflect.DeepEqual(got, tt.want) { - t.Errorf("ValidateGitLabIdentityProvider() = %v, want %v", got, tt.want) - } - }) - } -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_google.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_google.go deleted file mode 100644 index 481b162cf756b..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_google.go +++ /dev/null @@ -1,23 +0,0 @@ -package oauth - -import ( - "k8s.io/apimachinery/pkg/util/validation/field" - - configv1 "github.com/openshift/api/config/v1" -) - -func ValidateGoogleIdentityProvider(provider *configv1.GoogleIdentityProvider, mappingMethod configv1.MappingMethodType, fieldPath *field.Path) field.ErrorList { - errs := field.ErrorList{} - if provider == nil { - errs = append(errs, field.Required(fieldPath, "")) - return errs - } - - errs = append(errs, ValidateOAuthIdentityProvider(provider.ClientID, provider.ClientSecret, fieldPath)...) - - if len(provider.HostedDomain) == 0 && mappingMethod != configv1.MappingMethodLookup { - errs = append(errs, field.Invalid(fieldPath.Child("hostedDomain"), nil, "hostedDomain must be specified unless lookup is used")) - } - - return errs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_google_test.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_google_test.go deleted file mode 100644 index 88306d0f1919f..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_google_test.go +++ /dev/null @@ -1,90 +0,0 @@ -package oauth - -import ( - "reflect" - "testing" - - configv1 "github.com/openshift/api/config/v1" - "k8s.io/apimachinery/pkg/util/validation/field" -) - -func googleIDP() configv1.IdentityProviderConfig { - return configv1.IdentityProviderConfig{ - Type: configv1.IdentityProviderTypeGoogle, - Google: &configv1.GoogleIdentityProvider{ - ClientID: "masterOfInstances", - ClientSecret: configv1.SecretNameReference{Name: "secret-google-secret"}, - HostedDomain: "myprivategoogledomain.com", - }, - } -} - -func TestValidateGoogleIdentityProvider(t *testing.T) { - type args struct { - provider *configv1.GoogleIdentityProvider - mappingMethod configv1.MappingMethodType - fieldPath *field.Path - } - tests := []struct { - name string - args args - want field.ErrorList - }{ - { - name: "nil input provider", - want: field.ErrorList{ - field.Required(nil, ""), - }, - }, - { - name: "missing client ID and secret", - args: args{ - provider: &configv1.GoogleIdentityProvider{ - HostedDomain: "myprivategoogledomain.com", - }, - }, - want: field.ErrorList{ - field.Required(field.NewPath("clientID"), ""), - field.Required(field.NewPath("clientSecret", "name"), ""), - }, - }, - { - name: "no hosted domain with mapping method != 'lookup'", - args: args{ - provider: &configv1.GoogleIdentityProvider{ - ClientID: "masterOfInstances", - ClientSecret: configv1.SecretNameReference{Name: "secret-google-secret"}, - }, - mappingMethod: configv1.MappingMethodClaim, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("hostedDomain"), nil, "hostedDomain must be specified unless lookup is used"), - }, - }, - { - name: "no hosted domain with mapping method == 'lookup'", - args: args{ - provider: &configv1.GoogleIdentityProvider{ - ClientID: "masterOfInstances", - ClientSecret: configv1.SecretNameReference{Name: "secret-google-secret"}, - }, - mappingMethod: configv1.MappingMethodLookup, - }, - want: field.ErrorList{}, - }, - { - name: "working example", - args: args{ - provider: googleIDP().Google, - }, - want: field.ErrorList{}, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - if got := ValidateGoogleIdentityProvider(tt.args.provider, tt.args.mappingMethod, tt.args.fieldPath); !reflect.DeepEqual(got, tt.want) { - t.Errorf("ValidateGoogleIdentityProvider() = %v, want %v", got, tt.want) - } - }) - } -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_idp.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_idp.go deleted file mode 100644 index 86e8158c95799..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_idp.go +++ /dev/null @@ -1,215 +0,0 @@ -package oauth - -import ( - "fmt" - "strings" - - "k8s.io/apimachinery/pkg/api/validation/path" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/util/validation/field" - pointerutil "k8s.io/utils/pointer" - - configv1 "github.com/openshift/api/config/v1" - crvalidation "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" -) - -const ( - // MinimumInactivityTimeoutSeconds defines the the smallest value allowed - // for AccessTokenInactivityTimeoutSeconds. - // It also defines the ticker interval for the token update routine as - // MinimumInactivityTimeoutSeconds / 3 is used there. - MinimumInactivityTimeoutSeconds = 5 * 60 -) - -var validMappingMethods = sets.NewString( - string(configv1.MappingMethodLookup), - string(configv1.MappingMethodClaim), - string(configv1.MappingMethodAdd), -) - -func validateOAuthSpec(spec configv1.OAuthSpec) field.ErrorList { - errs := field.ErrorList{} - specPath := field.NewPath("spec") - - providerNames := sets.NewString() - - challengeIssuingIdentityProviders := []string{} - challengeRedirectingIdentityProviders := []string{} - - // TODO move to ValidateIdentityProviders (plural) - for i, identityProvider := range spec.IdentityProviders { - if isUsedAsChallenger(identityProvider.IdentityProviderConfig) { - // TODO fix CAO to properly let you use request header and other challengers by disabling the other ones on CLI - // RequestHeaderIdentityProvider is special, it can only react to challenge clients by redirecting them - // Make sure we don't have more than a single redirector, and don't have a mix of challenge issuers and redirectors - if identityProvider.Type == configv1.IdentityProviderTypeRequestHeader { - challengeRedirectingIdentityProviders = append(challengeRedirectingIdentityProviders, identityProvider.Name) - } else { - challengeIssuingIdentityProviders = append(challengeIssuingIdentityProviders, identityProvider.Name) - } - } - - identityProviderPath := specPath.Child("identityProviders").Index(i) - errs = append(errs, ValidateIdentityProvider(identityProvider, identityProviderPath)...) - - if len(identityProvider.Name) > 0 { - if providerNames.Has(identityProvider.Name) { - errs = append(errs, field.Invalid(identityProviderPath.Child("name"), identityProvider.Name, "must have a unique name")) - } - providerNames.Insert(identityProvider.Name) - } - } - - if len(challengeRedirectingIdentityProviders) > 1 { - errs = append(errs, field.Invalid(specPath.Child("identityProviders"), "", fmt.Sprintf("only one identity provider can redirect clients requesting an authentication challenge, found: %v", strings.Join(challengeRedirectingIdentityProviders, ", ")))) - } - if len(challengeRedirectingIdentityProviders) > 0 && len(challengeIssuingIdentityProviders) > 0 { - errs = append(errs, field.Invalid(specPath.Child("identityProviders"), "", fmt.Sprintf( - "cannot mix providers that redirect clients requesting auth challenges (%s) with providers issuing challenges to those clients (%s)", - strings.Join(challengeRedirectingIdentityProviders, ", "), - strings.Join(challengeIssuingIdentityProviders, ", "), - ))) - } - - // TODO move to ValidateTokenConfig - timeout := spec.TokenConfig.AccessTokenInactivityTimeout - if timeout != nil && timeout.Seconds() < MinimumInactivityTimeoutSeconds { - errs = append(errs, field.Invalid( - specPath.Child("tokenConfig", "accessTokenInactivityTimeout"), timeout, - fmt.Sprintf("the minimum acceptable token timeout value is %d seconds", - MinimumInactivityTimeoutSeconds))) - } - - if tokenMaxAge := spec.TokenConfig.AccessTokenMaxAgeSeconds; tokenMaxAge < 0 { - errs = append(errs, field.Invalid(specPath.Child("tokenConfig", "accessTokenMaxAgeSeconds"), tokenMaxAge, "must be a positive integer or 0")) - } - - // TODO move to ValidateTemplates - errs = append(errs, crvalidation.ValidateSecretReference(specPath.Child("templates", "login"), spec.Templates.Login, false)...) - errs = append(errs, crvalidation.ValidateSecretReference(specPath.Child("templates", "providerSelection"), spec.Templates.ProviderSelection, false)...) - errs = append(errs, crvalidation.ValidateSecretReference(specPath.Child("templates", "error"), spec.Templates.Error, false)...) - - return errs -} - -// if you change this, update the peer in user validation. also, don't change this. -func validateIdentityProviderName(name string) []string { - if reasons := path.ValidatePathSegmentName(name, false); len(reasons) != 0 { - return reasons - } - - if strings.Contains(name, ":") { - return []string{`may not contain ":"`} - } - return nil -} - -func ValidateIdentityProvider(identityProvider configv1.IdentityProvider, fldPath *field.Path) field.ErrorList { - errs := field.ErrorList{} - - if len(identityProvider.Name) == 0 { - errs = append(errs, field.Required(fldPath.Child("name"), "")) - } else if reasons := validateIdentityProviderName(identityProvider.Name); len(reasons) != 0 { - errs = append(errs, field.Invalid(fldPath.Child("name"), identityProvider.Name, strings.Join(reasons, ", "))) - } - - if len(identityProvider.MappingMethod) > 0 && !validMappingMethods.Has(string(identityProvider.MappingMethod)) { - errs = append(errs, field.NotSupported(fldPath.Child("mappingMethod"), identityProvider.MappingMethod, validMappingMethods.List())) - } - - provider := identityProvider.IdentityProviderConfig - // create a copy of the provider to simplify checking that only one IdPs is set - providerCopy := provider.DeepCopy() - switch provider.Type { - case "": - errs = append(errs, field.Required(fldPath.Child("type"), "")) - - case configv1.IdentityProviderTypeRequestHeader: - errs = append(errs, ValidateRequestHeaderIdentityProvider(provider.RequestHeader, fldPath)...) - providerCopy.RequestHeader = nil - - case configv1.IdentityProviderTypeBasicAuth: - // TODO move to ValidateBasicAuthIdentityProvider for consistency - if provider.BasicAuth == nil { - errs = append(errs, field.Required(fldPath.Child("basicAuth"), "")) - } else { - errs = append(errs, ValidateRemoteConnectionInfo(provider.BasicAuth.OAuthRemoteConnectionInfo, fldPath.Child("basicAuth"))...) - } - providerCopy.BasicAuth = nil - - case configv1.IdentityProviderTypeHTPasswd: - // TODO move to ValidateHTPasswdIdentityProvider for consistency - if provider.HTPasswd == nil { - errs = append(errs, field.Required(fldPath.Child("htpasswd"), "")) - } else { - errs = append(errs, crvalidation.ValidateSecretReference(fldPath.Child("htpasswd", "fileData"), provider.HTPasswd.FileData, true)...) - } - providerCopy.HTPasswd = nil - - case configv1.IdentityProviderTypeLDAP: - errs = append(errs, ValidateLDAPIdentityProvider(provider.LDAP, fldPath.Child("ldap"))...) - providerCopy.LDAP = nil - - case configv1.IdentityProviderTypeKeystone: - errs = append(errs, ValidateKeystoneIdentityProvider(provider.Keystone, fldPath.Child("keystone"))...) - providerCopy.Keystone = nil - - case configv1.IdentityProviderTypeGitHub: - errs = append(errs, ValidateGitHubIdentityProvider(provider.GitHub, identityProvider.MappingMethod, fldPath.Child("github"))...) - providerCopy.GitHub = nil - - case configv1.IdentityProviderTypeGitLab: - errs = append(errs, ValidateGitLabIdentityProvider(provider.GitLab, fldPath.Child("gitlab"))...) - providerCopy.GitLab = nil - - case configv1.IdentityProviderTypeGoogle: - errs = append(errs, ValidateGoogleIdentityProvider(provider.Google, identityProvider.MappingMethod, fldPath.Child("google"))...) - providerCopy.Google = nil - - case configv1.IdentityProviderTypeOpenID: - errs = append(errs, ValidateOpenIDIdentityProvider(provider.OpenID, fldPath.Child("openID"))...) - providerCopy.OpenID = nil - - default: - errs = append(errs, field.Invalid(fldPath.Child("type"), identityProvider.Type, "not a valid provider type")) - } - - if !pointerutil.AllPtrFieldsNil(providerCopy) { - errs = append(errs, field.Invalid(fldPath, identityProvider.IdentityProviderConfig, "only one identity provider can be configured in single object")) - } - - return errs -} - -func ValidateOAuthIdentityProvider(clientID string, clientSecretRef configv1.SecretNameReference, fieldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - - if len(clientID) == 0 { - allErrs = append(allErrs, field.Required(fieldPath.Child("clientID"), "")) - } - - allErrs = append(allErrs, crvalidation.ValidateSecretReference(fieldPath.Child("clientSecret"), clientSecretRef, true)...) - - return allErrs -} - -func isUsedAsChallenger(idp configv1.IdentityProviderConfig) bool { - // TODO this is wrong and needs to be more dynamic... - switch idp.Type { - // whitelist all the IdPs that we set `UseAsChallenger: true` in cluster-authentication-operator - case configv1.IdentityProviderTypeBasicAuth, configv1.IdentityProviderTypeGitLab, - configv1.IdentityProviderTypeHTPasswd, configv1.IdentityProviderTypeKeystone, - configv1.IdentityProviderTypeLDAP, - // guard open ID for now because it *could* have challenge in the future - configv1.IdentityProviderTypeOpenID: - return true - case configv1.IdentityProviderTypeRequestHeader: - if idp.RequestHeader == nil { - // this is an error reported elsewhere - return false - } - return len(idp.RequestHeader.ChallengeURL) > 0 - default: - return false - } -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_idp_test.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_idp_test.go deleted file mode 100644 index 9efd2b525c775..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_idp_test.go +++ /dev/null @@ -1,429 +0,0 @@ -package oauth - -import ( - "fmt" - "reflect" - "testing" - "time" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/validation/field" - - configv1 "github.com/openshift/api/config/v1" -) - -const wrongConfigMapSecretErrMsg string = "a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')" - -func htpasswdIDP() configv1.IdentityProviderConfig { - return configv1.IdentityProviderConfig{ - Type: configv1.IdentityProviderTypeHTPasswd, - HTPasswd: &configv1.HTPasswdIdentityProvider{ - FileData: configv1.SecretNameReference{ - Name: "innocent.llama", - }, - }, - } -} - -func TestValidateOAuthSpec(t *testing.T) { - doubledIdPs := configv1.IdentityProviderConfig{ - Type: configv1.IdentityProviderTypeHTPasswd, - HTPasswd: &configv1.HTPasswdIdentityProvider{ - FileData: configv1.SecretNameReference{ - Name: "innocent.llama", - }, - }, - GitLab: &configv1.GitLabIdentityProvider{ - ClientID: "masterOfInstances", - ClientSecret: configv1.SecretNameReference{Name: "secret-gitlab-secret"}, - URL: "https://thisgitlabinstancerighthere.com", - CA: configv1.ConfigMapNameReference{Name: "letsencrypt-for-gitlab.instance"}, - }, - } - - type args struct { - spec configv1.OAuthSpec - } - tests := []struct { - name string - args args - want field.ErrorList - }{ - { - name: "empty object", - args: args{ - spec: configv1.OAuthSpec{}, - }, - }, - { - name: "more than one challenge issuing IdPs", - args: args{ - spec: configv1.OAuthSpec{ - IdentityProviders: []configv1.IdentityProvider{ - { - Name: "htpasswd", - IdentityProviderConfig: htpasswdIDP(), - }, - { - Name: "ldap", - IdentityProviderConfig: ldapIDP(), - }, - }, - }, - }, - }, - { - name: "more than one challenge redirecting IdPs", - args: args{ - spec: configv1.OAuthSpec{ - IdentityProviders: []configv1.IdentityProvider{ - { - Name: "sso1", - IdentityProviderConfig: requestHeaderIDP(true, true), - }, - { - Name: "sso2", - IdentityProviderConfig: requestHeaderIDP(true, false), - }, - }, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("spec", "identityProviders"), "", "only one identity provider can redirect clients requesting an authentication challenge, found: sso1, sso2"), - }, - }, - { - name: "mixing challenge issuing and redirecting IdPs", - args: args{ - spec: configv1.OAuthSpec{ - IdentityProviders: []configv1.IdentityProvider{ - { - Name: "sso", - IdentityProviderConfig: requestHeaderIDP(true, false), - }, - { - Name: "ldap", - IdentityProviderConfig: ldapIDP(), - }, - }, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("spec", "identityProviders"), "", "cannot mix providers that redirect clients requesting auth challenges (sso) with providers issuing challenges to those clients (ldap)"), - }, - }, - { - name: "two IdPs with the same name", - args: args{ - spec: configv1.OAuthSpec{ - IdentityProviders: []configv1.IdentityProvider{ - { - Name: "aname", - IdentityProviderConfig: htpasswdIDP(), - }, - { - Name: "bname", - IdentityProviderConfig: htpasswdIDP(), - }, - { - Name: "aname", - IdentityProviderConfig: htpasswdIDP(), - }, - { - Name: "cname", - IdentityProviderConfig: htpasswdIDP(), - }, - }, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("spec", "identityProviders").Index(2).Child("name"), "aname", "must have a unique name"), - }, - }, - { - name: "negative token inactivity timeout", - args: args{ - spec: configv1.OAuthSpec{ - TokenConfig: configv1.TokenConfig{ - AccessTokenInactivityTimeout: &metav1.Duration{Duration: -50 * time.Second}, - }, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("spec", "tokenConfig", "accessTokenInactivityTimeout"), metav1.Duration{Duration: -50 * time.Second}, fmt.Sprintf("the minimum acceptable token timeout value is %d seconds", MinimumInactivityTimeoutSeconds)), - }, - }, - { - name: "positive token inactivity timeout", - args: args{ - spec: configv1.OAuthSpec{ - TokenConfig: configv1.TokenConfig{ - AccessTokenInactivityTimeout: &metav1.Duration{Duration: 32578 * time.Second}, - }, - }, - }, - }, - { - name: "zero token inactivity timeout", - args: args{ - spec: configv1.OAuthSpec{ - TokenConfig: configv1.TokenConfig{ - AccessTokenInactivityTimeout: &metav1.Duration{Duration: 0}, - }, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("spec", "tokenConfig", "accessTokenInactivityTimeout"), metav1.Duration{Duration: 0 * time.Second}, fmt.Sprintf("the minimum acceptable token timeout value is %d seconds", MinimumInactivityTimeoutSeconds)), - }, - }, - { - name: "token inactivity timeout lower than the api constant minimum", - args: args{ - spec: configv1.OAuthSpec{ - TokenConfig: configv1.TokenConfig{ - AccessTokenInactivityTimeout: &metav1.Duration{Duration: 250 * time.Second}, - }, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("spec", "tokenConfig", "accessTokenInactivityTimeout"), metav1.Duration{Duration: 250 * time.Second}, fmt.Sprintf("the minimum acceptable token timeout value is %d seconds", MinimumInactivityTimeoutSeconds)), - }, - }, - { - name: "negative token max age", - args: args{ - spec: configv1.OAuthSpec{ - TokenConfig: configv1.TokenConfig{ - AccessTokenMaxAgeSeconds: -20, - }, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("spec", "tokenConfig", "accessTokenMaxAgeSeconds"), -20, "must be a positive integer or 0"), - }, - }, - { - name: "positive token max age", - args: args{ - spec: configv1.OAuthSpec{ - TokenConfig: configv1.TokenConfig{ - AccessTokenMaxAgeSeconds: 213123, - }, - }, - }, - }, - { - name: "zero token max age", - args: args{ - spec: configv1.OAuthSpec{ - TokenConfig: configv1.TokenConfig{ - AccessTokenMaxAgeSeconds: 0, - }, - }, - }, - }, - { - name: "template names all messed up", - args: args{ - spec: configv1.OAuthSpec{ - Templates: configv1.OAuthTemplates{ - Login: configv1.SecretNameReference{Name: "/this/is/wrong.html"}, - ProviderSelection: configv1.SecretNameReference{Name: "also_wrong"}, - Error: configv1.SecretNameReference{Name: "the&very+woRst"}, - }, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("spec", "templates", "login", "name"), "/this/is/wrong.html", wrongConfigMapSecretErrMsg), - field.Invalid(field.NewPath("spec", "templates", "providerSelection", "name"), "also_wrong", wrongConfigMapSecretErrMsg), - field.Invalid(field.NewPath("spec", "templates", "error", "name"), "the&very+woRst", wrongConfigMapSecretErrMsg), - }, - }, - { - name: "everything set properly", - args: args{ - spec: configv1.OAuthSpec{ - IdentityProviders: []configv1.IdentityProvider{ - { - Name: "some_httpasswd", - IdentityProviderConfig: htpasswdIDP(), - }, - { - Name: "sso", - IdentityProviderConfig: requestHeaderIDP(false, true), - }, - }, - TokenConfig: configv1.TokenConfig{ - AccessTokenInactivityTimeout: &metav1.Duration{Duration: 300 * time.Second}, - AccessTokenMaxAgeSeconds: 216000, - }, - Templates: configv1.OAuthTemplates{ - Login: configv1.SecretNameReference{Name: "my-login-template"}, - ProviderSelection: configv1.SecretNameReference{Name: "provider-selection.template"}, - Error: configv1.SecretNameReference{Name: "a.template-with-error"}, - }, - }, - }, - }, - { - name: "two different IdPs in one object", - args: args{ - spec: configv1.OAuthSpec{ - IdentityProviders: []configv1.IdentityProvider{ - { - Name: "bad_bad_config", - IdentityProviderConfig: doubledIdPs, - }, - }, - TokenConfig: configv1.TokenConfig{ - AccessTokenMaxAgeSeconds: 216000, - }, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("spec", "identityProviders").Index(0), doubledIdPs, "only one identity provider can be configured in single object"), - }, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - got := validateOAuthSpec(tt.args.spec) - - // DeepEqual does not seem to be working well here - var failedCheck bool - if len(got) != len(tt.want) { - failedCheck = true - } else { - // Check all the errors - for i := range got { - if got[i].Error() != tt.want[i].Error() { - failedCheck = true - break - } - } - } - - if failedCheck { - t.Errorf("validateOAuthSpec() = %v, want %v", got, tt.want) - } - }) - } -} - -func TestValidateIdentityProvider(t *testing.T) { - type args struct { - identityProvider configv1.IdentityProvider - fldPath *field.Path - } - tests := []struct { - name string - args args - want field.ErrorList - }{ - { - name: "empty provider needs at least name and type in provider", - args: args{ - identityProvider: configv1.IdentityProvider{}, - }, - want: field.ErrorList{ - field.Required(field.NewPath("name"), ""), - field.Required(field.NewPath("type"), ""), - }, - }, - { - name: "unknown type name", - args: args{ - identityProvider: configv1.IdentityProvider{ - Name: "providingProvider", - IdentityProviderConfig: configv1.IdentityProviderConfig{ - Type: "someText", - }, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("type"), "someText", "not a valid provider type"), - }, - }, - { - name: "basic provider", - args: args{ - identityProvider: configv1.IdentityProvider{ - Name: "providingProvider", - IdentityProviderConfig: htpasswdIDP(), - }, - }, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - got := ValidateIdentityProvider(tt.args.identityProvider, tt.args.fldPath) - // DeepEqual does not seem to be working well here - var failedCheck bool - if len(got) != len(tt.want) { - failedCheck = true - } else { - // Check all the errors - for i := range got { - if got[i].Error() != tt.want[i].Error() { - failedCheck = true - break - } - } - } - - if failedCheck { - t.Errorf("ValidateIdentityProvider() = %v, want %v", got, tt.want) - } - }) - } -} - -func TestValidateOAuthIdentityProvider(t *testing.T) { - type args struct { - clientID string - clientSecretRef configv1.SecretNameReference - fieldPath *field.Path - } - tests := []struct { - name string - args args - want field.ErrorList - }{ - { - name: "empty client ID and secret ref", - args: args{ - clientID: "", - clientSecretRef: configv1.SecretNameReference{}, - }, - want: field.ErrorList{ - field.Required(field.NewPath("clientID"), ""), - field.Required(field.NewPath("clientSecret", "name"), ""), - }, - }, - { - name: "improper client secret refname", - args: args{ - clientID: "thisBeClient", - clientSecretRef: configv1.SecretNameReference{Name: "terribleName_forASecret"}, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("clientSecret", "name"), "terribleName_forASecret", wrongConfigMapSecretErrMsg), - }, - }, - { - name: "working example", - args: args{ - clientID: "thisBeClient", - clientSecretRef: configv1.SecretNameReference{Name: "client-secret-hideout"}, - }, - want: field.ErrorList{}, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - if got := ValidateOAuthIdentityProvider(tt.args.clientID, tt.args.clientSecretRef, tt.args.fieldPath); !reflect.DeepEqual(got, tt.want) { - t.Errorf("ValidateOAuthIdentityProvider() = %v, want %v", got, tt.want) - } - }) - } -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_keystone.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_keystone.go deleted file mode 100644 index e1bf7cb76aed2..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_keystone.go +++ /dev/null @@ -1,23 +0,0 @@ -package oauth - -import ( - "k8s.io/apimachinery/pkg/util/validation/field" - - configv1 "github.com/openshift/api/config/v1" -) - -func ValidateKeystoneIdentityProvider(provider *configv1.KeystoneIdentityProvider, fldPath *field.Path) field.ErrorList { - errs := field.ErrorList{} - if provider == nil { - errs = append(errs, field.Required(fldPath, "")) - return errs - } - - errs = append(errs, ValidateRemoteConnectionInfo(provider.OAuthRemoteConnectionInfo, fldPath)...) - - if len(provider.DomainName) == 0 { - errs = append(errs, field.Required(field.NewPath("domainName"), "")) - } - - return errs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_keystone_test.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_keystone_test.go deleted file mode 100644 index 6ccdddb7b9ebf..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_keystone_test.go +++ /dev/null @@ -1,96 +0,0 @@ -package oauth - -import ( - "reflect" - "testing" - - configv1 "github.com/openshift/api/config/v1" - "k8s.io/apimachinery/pkg/util/validation/field" -) - -func keystoneIdP() configv1.IdentityProviderConfig { - return configv1.IdentityProviderConfig{ - Type: configv1.IdentityProviderTypeKeystone, - Keystone: &configv1.KeystoneIdentityProvider{ - OAuthRemoteConnectionInfo: configv1.OAuthRemoteConnectionInfo{ - URL: "https://somewhere.over.rainbow/ks", - CA: configv1.ConfigMapNameReference{Name: "govt-ca"}, - }, - DomainName: "production", - }, - } -} - -func TestValidateKeystoneIdentityProvider(t *testing.T) { - type args struct { - provider *configv1.KeystoneIdentityProvider - fldPath *field.Path - } - tests := []struct { - name string - args args - want field.ErrorList - }{ - { - name: "nil input provider", - want: field.ErrorList{ - field.Required(nil, ""), - }, - }, - { - name: "empty url", - args: args{ - provider: &configv1.KeystoneIdentityProvider{ - OAuthRemoteConnectionInfo: configv1.OAuthRemoteConnectionInfo{ - URL: "", - }, - DomainName: "production", - }, - }, - want: field.ErrorList{ - field.Required(field.NewPath("url"), ""), - }, - }, - { - name: "http url", - args: args{ - provider: &configv1.KeystoneIdentityProvider{ - OAuthRemoteConnectionInfo: configv1.OAuthRemoteConnectionInfo{ - URL: "http://foo", - }, - DomainName: "production", - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("url"), "http://foo", "must use https scheme"), - }, - }, - { - name: "missing domain name", - args: args{ - provider: &configv1.KeystoneIdentityProvider{ - OAuthRemoteConnectionInfo: configv1.OAuthRemoteConnectionInfo{ - URL: "https://keystone.openstack.nasa.gov/", - }, - }, - }, - want: field.ErrorList{ - field.Required(field.NewPath("domainName"), ""), - }, - }, - { - name: "working provider", - args: args{ - provider: keystoneIdP().Keystone, - }, - want: field.ErrorList{}, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - if got := ValidateKeystoneIdentityProvider(tt.args.provider, tt.args.fldPath); !reflect.DeepEqual(got, tt.want) { - t.Errorf("ValidateKeystoneIdentityProvider() = %v, want %v", got, tt.want) - } - }) - } -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_ldap.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_ldap.go deleted file mode 100644 index b5f40060b9cc9..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_ldap.go +++ /dev/null @@ -1,66 +0,0 @@ -package oauth - -import ( - "fmt" - - "k8s.io/apimachinery/pkg/util/validation/field" - - configv1 "github.com/openshift/api/config/v1" - "github.com/openshift/library-go/pkg/security/ldaputil" - crvalidation "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" -) - -func ValidateLDAPIdentityProvider(provider *configv1.LDAPIdentityProvider, fldPath *field.Path) field.ErrorList { - errs := field.ErrorList{} - - if provider == nil { - errs = append(errs, field.Required(fldPath, "")) - return errs - } - - errs = append(errs, validateLDAPClientConfig(provider.URL, provider.BindDN, provider.BindPassword.Name, provider.CA.Name, provider.Insecure, fldPath)...) - errs = append(errs, crvalidation.ValidateSecretReference(fldPath.Child("bindPassword"), provider.BindPassword, false)...) - errs = append(errs, crvalidation.ValidateConfigMapReference(fldPath.Child("ca"), provider.CA, false)...) - - // At least one attribute to use as the user id is required - if len(provider.Attributes.ID) == 0 { - errs = append(errs, field.Invalid(fldPath.Child("attributes", "id"), "[]", "at least one id attribute is required (LDAP standard identity attribute is 'dn')")) - } - - return errs -} - -// TODO clean this up -func validateLDAPClientConfig(url, bindDN, bindPasswordRef, CA string, insecure bool, fldPath *field.Path) field.ErrorList { - errs := field.ErrorList{} - - // Make sure bindDN and bindPassword are both set, or both unset - // Both unset means an anonymous bind is used for search (https://tools.ietf.org/html/rfc4513#section-5.1.1) - // Both set means the name/password simple bind is used for search (https://tools.ietf.org/html/rfc4513#section-5.1.3) - if (len(bindDN) == 0) != (len(bindPasswordRef) == 0) { - errs = append(errs, field.Invalid(fldPath.Child("bindDN"), bindDN, "bindDN and bindPassword must both be specified, or both be empty")) - errs = append(errs, field.Invalid(fldPath.Child("bindPassword").Child("name"), bindPasswordRef, "bindDN and bindPassword must both be specified, or both be empty")) - } - - if len(url) == 0 { - errs = append(errs, field.Required(fldPath.Child("url"), "")) - return errs - } - - u, err := ldaputil.ParseURL(url) - if err != nil { - errs = append(errs, field.Invalid(fldPath.Child("url"), url, err.Error())) - return errs - } - - if insecure { - if u.Scheme == ldaputil.SchemeLDAPS { - errs = append(errs, field.Invalid(fldPath.Child("url"), url, fmt.Sprintf("Cannot use %s scheme with insecure=true", u.Scheme))) - } - if len(CA) > 0 { - errs = append(errs, field.Invalid(fldPath.Child("ca"), CA, "Cannot specify a ca with insecure=true")) - } - } - - return errs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_ldap_test.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_ldap_test.go deleted file mode 100644 index 85daa9e182541..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_ldap_test.go +++ /dev/null @@ -1,101 +0,0 @@ -package oauth - -import ( - "reflect" - "testing" - - configv1 "github.com/openshift/api/config/v1" - "k8s.io/apimachinery/pkg/util/validation/field" -) - -func ldapIDP() configv1.IdentityProviderConfig { - return configv1.IdentityProviderConfig{ - Type: configv1.IdentityProviderTypeLDAP, - LDAP: &configv1.LDAPIdentityProvider{ - Attributes: configv1.LDAPAttributeMapping{ - ID: []string{"memberUid"}, - }, - BindDN: "uid=readallaccount,ou=privileged,dc=coolpeople,dc=se", - BindPassword: configv1.SecretNameReference{ - Name: "ldap-secret", - }, - CA: configv1.ConfigMapNameReference{Name: "ldap-ca-configmap"}, - Insecure: false, - URL: "ldaps://ldapinstance.corporate.coolpeople.se/ou=Groups,dc=coolpeople,dc=se?memberUid?sub", - }, - } -} - -func TestValidateLDAPIdentityProvider(t *testing.T) { - type args struct { - provider *configv1.LDAPIdentityProvider - fldPath *field.Path - } - tests := []struct { - name string - args args - want field.ErrorList - }{ - { - name: "nil input provider", - want: field.ErrorList{ - field.Required(nil, ""), - }, - }, - { - name: "invalid bindPassword ref name, missing ID", - args: args{ - provider: &configv1.LDAPIdentityProvider{ - BindPassword: configv1.SecretNameReference{Name: "bad_refname"}, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("bindDN"), "", "bindDN and bindPassword must both be specified, or both be empty"), - field.Invalid(field.NewPath("bindPassword", "name"), "bad_refname", "bindDN and bindPassword must both be specified, or both be empty"), - field.Required(field.NewPath("url"), ""), - field.Invalid(field.NewPath("bindPassword", "name"), "bad_refname", wrongConfigMapSecretErrMsg), - field.Invalid(field.NewPath("attributes", "id"), "[]", "at least one id attribute is required (LDAP standard identity attribute is 'dn')"), - }, - }, - { - name: "invalid url", - args: args{ - provider: &configv1.LDAPIdentityProvider{ - URL: "https://foo", - Attributes: configv1.LDAPAttributeMapping{ - ID: []string{"uid"}, - }, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("url"), "https://foo", `invalid scheme "https"`), - }, - }, - { - name: "minimal passing provider", - args: args{ - provider: &configv1.LDAPIdentityProvider{ - URL: "ldap://foo", - Attributes: configv1.LDAPAttributeMapping{ - ID: []string{"uid"}, - }, - }, - }, - want: field.ErrorList{}, - }, - { - name: "more complicated use", - args: args{ - provider: ldapIDP().LDAP, - }, - want: field.ErrorList{}, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - if got := ValidateLDAPIdentityProvider(tt.args.provider, tt.args.fldPath); !reflect.DeepEqual(got, tt.want) { - t.Errorf("ValidateLDAPIdentityProvider() = %v, want %v", got, tt.want) - } - }) - } -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_oauth.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_oauth.go deleted file mode 100644 index 5b8a146a6733f..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_oauth.go +++ /dev/null @@ -1,110 +0,0 @@ -package oauth - -import ( - "fmt" - "io" - - "k8s.io/apimachinery/pkg/api/validation" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/admission" - - configv1 "github.com/openshift/api/config/v1" - crvalidation "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" -) - -const PluginName = "config.openshift.io/ValidateOAuth" - -// Register registers a plugin -func Register(plugins *admission.Plugins) { - plugins.Register(PluginName, func(config io.Reader) (admission.Interface, error) { - return crvalidation.NewValidator( - map[schema.GroupResource]bool{ - configv1.GroupVersion.WithResource("oauths").GroupResource(): true, - }, - map[schema.GroupVersionKind]crvalidation.ObjectValidator{ - configv1.GroupVersion.WithKind("OAuth"): oauthV1{}, - }) - }) -} - -func toOAuthV1(uncastObj runtime.Object) (*configv1.OAuth, field.ErrorList) { - if uncastObj == nil { - return nil, nil - } - - errs := field.ErrorList{} - - obj, ok := uncastObj.(*configv1.OAuth) - if !ok { - return nil, append(errs, - field.NotSupported(field.NewPath("kind"), fmt.Sprintf("%T", uncastObj), []string{"OAuth"}), - field.NotSupported(field.NewPath("apiVersion"), fmt.Sprintf("%T", uncastObj), []string{"config.openshift.io/v1"})) - } - - return obj, nil -} - -type oauthV1 struct{} - -func (oauthV1) ValidateCreate(uncastObj runtime.Object) field.ErrorList { - obj, errs := toOAuthV1(uncastObj) - if len(errs) > 0 { - return errs - } - - errs = append(errs, validation.ValidateObjectMeta(&obj.ObjectMeta, false, crvalidation.RequireNameCluster, field.NewPath("metadata"))...) - errs = append(errs, validateOAuthSpecCreate(obj.Spec)...) - - return errs -} - -func (oauthV1) ValidateUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, errs := toOAuthV1(uncastObj) - if len(errs) > 0 { - return errs - } - oldObj, errs := toOAuthV1(uncastOldObj) - if len(errs) > 0 { - return errs - } - - errs = append(errs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - errs = append(errs, validateOAuthSpecUpdate(obj.Spec, oldObj.Spec)...) - - return errs -} - -func (oauthV1) ValidateStatusUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, errs := toOAuthV1(uncastObj) - if len(errs) > 0 { - return errs - } - oldObj, errs := toOAuthV1(uncastOldObj) - if len(errs) > 0 { - return errs - } - - // TODO validate the obj. remember that status validation should *never* fail on spec validation errors. - errs = append(errs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - errs = append(errs, validateOAuthStatus(obj.Status)...) - - return errs -} - -func validateOAuthSpecCreate(spec configv1.OAuthSpec) field.ErrorList { - return validateOAuthSpec(spec) -} - -func validateOAuthSpecUpdate(newspec, oldspec configv1.OAuthSpec) field.ErrorList { - return validateOAuthSpec(newspec) -} - -func validateOAuthStatus(status configv1.OAuthStatus) field.ErrorList { - errs := field.ErrorList{} - - // TODO - - return errs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_openid.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_openid.go deleted file mode 100644 index 41d8c35db3f91..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_openid.go +++ /dev/null @@ -1,54 +0,0 @@ -package oauth - -import ( - "fmt" - "strings" - - "k8s.io/apimachinery/pkg/util/validation/field" - - configv1 "github.com/openshift/api/config/v1" - "github.com/openshift/library-go/pkg/config/validation" - crvalidation "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" -) - -func ValidateOpenIDIdentityProvider(provider *configv1.OpenIDIdentityProvider, fieldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - if provider == nil { - allErrs = append(allErrs, field.Required(fieldPath, "")) - return allErrs - } - - allErrs = append(allErrs, ValidateOAuthIdentityProvider(provider.ClientID, provider.ClientSecret, fieldPath)...) - - if provider.Issuer != strings.TrimRight(provider.Issuer, "/") { - allErrs = append(allErrs, field.Invalid(fieldPath.Child("issuer"), provider.Issuer, "cannot end with '/'")) - } - - // The specs are a bit ambiguous on whether this must or needn't be https:// - // schema, but they do require (MUST) TLS support for the discovery and we do - // require this in out API description - // https://openid.net/specs/openid-connect-discovery-1_0.html#TLSRequirements - url, issuerErrs := validation.ValidateSecureURL(provider.Issuer, fieldPath.Child("issuer")) - allErrs = append(allErrs, issuerErrs...) - if len(url.RawQuery) > 0 || len(url.Fragment) > 0 { - allErrs = append(allErrs, field.Invalid(fieldPath.Child("issuer"), provider.Issuer, "must not specify query or fragment component")) - } - - allErrs = append(allErrs, crvalidation.ValidateConfigMapReference(fieldPath.Child("ca"), provider.CA, false)...) - - for i, scope := range provider.ExtraScopes { - // https://tools.ietf.org/html/rfc6749#section-3.3 (full list of allowed chars is %x21 / %x23-5B / %x5D-7E) - // for those without an ascii table, that's `!`, `#-[`, `]-~` inclusive. - for _, ch := range scope { - switch { - case ch == '!': - case ch >= '#' && ch <= '[': - case ch >= ']' && ch <= '~': - default: - allErrs = append(allErrs, field.Invalid(fieldPath.Child("extraScopes").Index(i), scope, fmt.Sprintf("cannot contain %v", ch))) - } - } - } - - return allErrs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_openid_test.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_openid_test.go deleted file mode 100644 index 2c243bcccaa47..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_openid_test.go +++ /dev/null @@ -1,125 +0,0 @@ -package oauth - -import ( - "reflect" - "testing" - - configv1 "github.com/openshift/api/config/v1" - "k8s.io/apimachinery/pkg/util/validation/field" -) - -func openidIDP() configv1.IdentityProviderConfig { - return configv1.IdentityProviderConfig{ - Type: configv1.IdentityProviderTypeOpenID, - OpenID: &configv1.OpenIDIdentityProvider{ - ClientID: "readallPerson", - ClientSecret: configv1.SecretNameReference{Name: "oidc-secret"}, - Issuer: "https://oidc-friendly.domain.com", - CA: configv1.ConfigMapNameReference{Name: "oidc-ca"}, - ExtraScopes: []string{"email", "profile"}, - ExtraAuthorizeParameters: map[string]string{ - "include_granted_scopes": "true", - }, - Claims: configv1.OpenIDClaims{ - PreferredUsername: []string{"full_name", "email"}, - Email: []string{"email"}, - }, - }, - } -} - -func TestValidateOpenIDIdentityProvider(t *testing.T) { - type args struct { - provider *configv1.OpenIDIdentityProvider - fieldPath *field.Path - } - tests := []struct { - name string - args args - want field.ErrorList - }{ - { - name: "nil input provider", - want: field.ErrorList{ - field.Required(nil, ""), - }, - }, - { - name: "missing client ID and secret", - args: args{ - provider: &configv1.OpenIDIdentityProvider{ - Issuer: "https://bigcorp.oidc.com", - }, - }, - want: field.ErrorList{ - field.Required(field.NewPath("clientID"), ""), - field.Required(field.NewPath("clientSecret", "name"), ""), - }, - }, - { - name: "missing issuer", - args: args{ - provider: &configv1.OpenIDIdentityProvider{ - ClientID: "readallPerson", - ClientSecret: configv1.SecretNameReference{Name: "oidc-secret"}, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("issuer"), "", "must contain a scheme (e.g. https://)"), - field.Invalid(field.NewPath("issuer"), "", "must contain a host"), - }, - }, - { - name: "issuer with http:// scheme", - args: args{ - provider: &configv1.OpenIDIdentityProvider{ - ClientID: "gentleDolphin", - ClientSecret: configv1.SecretNameReference{Name: "seemsliggit"}, - Issuer: "http://oidc-friendly.domain.com", - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("issuer"), "http://oidc-friendly.domain.com", "must use https scheme"), - }, - }, - { - name: "bad CA refname", - args: args{ - provider: &configv1.OpenIDIdentityProvider{ - ClientID: "readallPerson", - ClientSecret: configv1.SecretNameReference{Name: "oidc-secret"}, - Issuer: "https://oidc-friendly.domain.com", - CA: configv1.ConfigMapNameReference{Name: "the_Nameofaca"}, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("ca", "name"), "the_Nameofaca", wrongConfigMapSecretErrMsg), - }, - }, - { - name: "minimal working example", - args: args{ - provider: &configv1.OpenIDIdentityProvider{ - ClientID: "readallPerson", - ClientSecret: configv1.SecretNameReference{Name: "oidc-secret"}, - Issuer: "https://oidc-friendly.domain.com", - }, - }, - want: field.ErrorList{}, - }, - { - name: "more complicated use", - args: args{ - provider: openidIDP().OpenID, - }, - want: field.ErrorList{}, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - if got := ValidateOpenIDIdentityProvider(tt.args.provider, tt.args.fieldPath); !reflect.DeepEqual(got, tt.want) { - t.Errorf("ValidateOpenIDIdentityProvider() = %v, want %v", got, tt.want) - } - }) - } -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_requestheader.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_requestheader.go deleted file mode 100644 index 93b7c5844cd4f..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_requestheader.go +++ /dev/null @@ -1,85 +0,0 @@ -package oauth - -import ( - "fmt" - "net/url" - "path" - "strings" - - "k8s.io/apimachinery/pkg/util/validation/field" - - configv1 "github.com/openshift/api/config/v1" - "github.com/openshift/library-go/pkg/config/validation" - crvalidation "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" -) - -const ( - // URLToken in the query of the redirectURL gets replaced with the original request URL, escaped as a query parameter. - // Example use: https://www.example.com/login?then=${url} - urlToken = "${url}" - - // QueryToken in the query of the redirectURL gets replaced with the original request URL, unescaped. - // Example use: https://www.example.com/sso/oauth/authorize?${query} - queryToken = "${query}" -) - -func ValidateRequestHeaderIdentityProvider(provider *configv1.RequestHeaderIdentityProvider, fieldPath *field.Path) field.ErrorList { - errs := field.ErrorList{} - if provider == nil { - errs = append(errs, field.Required(fieldPath, "")) - return errs - } - - errs = append(errs, crvalidation.ValidateConfigMapReference(fieldPath.Child("ca"), provider.ClientCA, true)...) - - if len(provider.Headers) == 0 { - errs = append(errs, field.Required(fieldPath.Child("headers"), "")) - } - - if len(provider.ChallengeURL) == 0 && len(provider.LoginURL) == 0 { - errs = append(errs, field.Required(fieldPath, "at least one of challengeURL or loginURL must be specified")) - } - - if len(provider.ChallengeURL) > 0 { - u, urlErrs := validation.ValidateURL(provider.ChallengeURL, fieldPath.Child("challengeURL")) - errs = append(errs, urlErrs...) - if len(urlErrs) == 0 { - if !hasParamToken(u) { - errs = append(errs, - field.Invalid(field.NewPath("challengeURL"), provider.ChallengeURL, - fmt.Sprintf("query does not include %q or %q, redirect will not preserve original authorize parameters", urlToken, queryToken)), - ) - } - } - } - - if len(provider.LoginURL) > 0 { - u, urlErrs := validation.ValidateURL(provider.LoginURL, fieldPath.Child("loginURL")) - errs = append(errs, urlErrs...) - if len(urlErrs) == 0 { - if !hasParamToken(u) { - errs = append(errs, - field.Invalid(fieldPath.Child("loginURL"), provider.LoginURL, - fmt.Sprintf("query does not include %q or %q, redirect will not preserve original authorize parameters", urlToken, queryToken), - ), - ) - } - if strings.HasSuffix(u.Path, "/") { - errs = append(errs, - field.Invalid(fieldPath.Child("loginURL"), provider.LoginURL, `path ends with "/", grant approval flows will not function correctly`), - ) - } - if _, file := path.Split(u.Path); file != "authorize" { - errs = append(errs, - field.Invalid(fieldPath.Child("loginURL"), provider.LoginURL, `path does not end with "/authorize", grant approval flows will not function correctly`), - ) - } - } - } - - return errs -} - -func hasParamToken(u *url.URL) bool { - return strings.Contains(u.RawQuery, urlToken) || strings.Contains(u.RawQuery, queryToken) -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_requestheader_test.go b/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_requestheader_test.go deleted file mode 100644 index bd4beab060e85..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/oauth/validate_requestheader_test.go +++ /dev/null @@ -1,193 +0,0 @@ -package oauth - -import ( - "reflect" - "testing" - - configv1 "github.com/openshift/api/config/v1" - "k8s.io/apimachinery/pkg/util/validation/field" -) - -func requestHeaderIDP(challenge, login bool) configv1.IdentityProviderConfig { - var challengeURL, loginURL string - - if challenge { - challengeURL = "https://sso.corporate.coolpeople.se/challenges/oauth/authorize?${query}" - } - if login { - loginURL = "https://sso.corporate.coolpeople.se/loginz/oauth/authorize?${query}" - } - - return configv1.IdentityProviderConfig{ - Type: configv1.IdentityProviderTypeRequestHeader, - RequestHeader: &configv1.RequestHeaderIdentityProvider{ - LoginURL: loginURL, - ChallengeURL: challengeURL, - ClientCA: configv1.ConfigMapNameReference{ - Name: "coolpeople-client-ca", - }, - ClientCommonNames: []string{"authn-proxy"}, - Headers: []string{"X-Remote-User", "SSO-User"}, - NameHeaders: []string{"X-Remote-User-Display-Name"}, - }, - } -} - -func TestValidateRequestHeaderIdentityProvider(t *testing.T) { - type args struct { - provider *configv1.RequestHeaderIdentityProvider - fieldPath *field.Path - } - tests := []struct { - name string - args args - want field.ErrorList - }{ - { - name: "nil input provider", - want: field.ErrorList{ - field.Required(nil, ""), - }, - }, - { - name: "empty provider", - args: args{ - provider: &configv1.RequestHeaderIdentityProvider{}, - }, - want: field.ErrorList{ - field.Required(field.NewPath("ca", "name"), ""), - field.Required(field.NewPath("headers"), ""), - {Type: field.ErrorTypeRequired, Field: "", BadValue: "", Detail: "at least one of challengeURL or loginURL must be specified"}, - }, - }, - { - name: "wrong ca refname", - args: args{ - provider: &configv1.RequestHeaderIdentityProvider{ - LoginURL: "http://oauth.coolpeoplecorp.com/login/authorize?${query}", - Headers: []string{"X-Remote-User"}, - ClientCA: configv1.ConfigMapNameReference{Name: "dat_badrefname"}, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("ca", "name"), "dat_badrefname", wrongConfigMapSecretErrMsg), - }, - }, - { - name: "challenge url without query, no client CA set", - args: args{ - provider: &configv1.RequestHeaderIdentityProvider{ - Headers: []string{"X-Remote-User"}, - ChallengeURL: "http://oauth.coolpeoplecorp.com/challenge-endpoint", - }, - }, - want: field.ErrorList{ - field.Required(field.NewPath("ca", "name"), ""), - field.Invalid(field.NewPath("challengeURL"), "http://oauth.coolpeoplecorp.com/challenge-endpoint", "query does not include \"${url}\" or \"${query}\", redirect will not preserve original authorize parameters"), - }, - }, - { - name: "challenge url with query - no ${url}, ${query}", - args: args{ - provider: &configv1.RequestHeaderIdentityProvider{ - Headers: []string{"X-Remote-User"}, - ChallengeURL: "http://oauth.coolpeoplecorp.com/challenge-endpoint?${sender}", - ClientCA: configv1.ConfigMapNameReference{Name: "auth-ca"}, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("challengeURL"), "http://oauth.coolpeoplecorp.com/challenge-endpoint?${sender}", "query does not include \"${url}\" or \"${query}\", redirect will not preserve original authorize parameters"), - }, - }, - { - name: "challenge url with query - ${url}", - args: args{ - provider: &configv1.RequestHeaderIdentityProvider{ - Headers: []string{"X-Remote-User"}, - ChallengeURL: "http://oauth.coolpeoplecorp.com/challenge-endpoint?${url}", - ClientCA: configv1.ConfigMapNameReference{Name: "auth-ca"}, - }, - }, - want: field.ErrorList{}, - }, - { - name: "login url without query and authorize", - args: args{ - provider: &configv1.RequestHeaderIdentityProvider{ - Headers: []string{"X-Remote-User"}, - LoginURL: "http://oauth.coolpeoplecorp.com/challenge-endpoint", - ClientCA: configv1.ConfigMapNameReference{Name: "auth-ca"}, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("loginURL"), "http://oauth.coolpeoplecorp.com/challenge-endpoint", "query does not include \"${url}\" or \"${query}\", redirect will not preserve original authorize parameters"), - field.Invalid(field.NewPath("loginURL"), "http://oauth.coolpeoplecorp.com/challenge-endpoint", "path does not end with \"/authorize\", grant approval flows will not function correctly"), - }, - }, - { - name: "login url with query - no ${url}, ${query} - no client CA set", - args: args{ - provider: &configv1.RequestHeaderIdentityProvider{ - Headers: []string{"X-Remote-User"}, - LoginURL: "http://oauth.coolpeoplecorp.com/login-endpoint/authorize?${custom}", - }, - }, - want: field.ErrorList{ - field.Required(field.NewPath("ca", "name"), ""), - field.Invalid(field.NewPath("loginURL"), "http://oauth.coolpeoplecorp.com/login-endpoint/authorize?${custom}", "query does not include \"${url}\" or \"${query}\", redirect will not preserve original authorize parameters"), - }, - }, - { - name: "login url with query - ${query} - no /authorize", - args: args{ - provider: &configv1.RequestHeaderIdentityProvider{ - Headers: []string{"X-Remote-User"}, - LoginURL: "http://oauth.coolpeoplecorp.com/login-endpoint?${query}", - ClientCA: configv1.ConfigMapNameReference{Name: "auth-ca"}, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("loginURL"), "http://oauth.coolpeoplecorp.com/login-endpoint?${query}", "path does not end with \"/authorize\", grant approval flows will not function correctly"), - }, - }, - { - name: "login url with query - ${query} - ends with /", - args: args{ - provider: &configv1.RequestHeaderIdentityProvider{ - Headers: []string{"X-Remote-User"}, - LoginURL: "http://oauth.coolpeoplecorp.com/login-endpoint/authorize/?${query}", - ClientCA: configv1.ConfigMapNameReference{Name: "auth-ca"}, - }, - }, - want: field.ErrorList{ - field.Invalid(field.NewPath("loginURL"), "http://oauth.coolpeoplecorp.com/login-endpoint/authorize/?${query}", "path ends with \"/\", grant approval flows will not function correctly"), - field.Invalid(field.NewPath("loginURL"), "http://oauth.coolpeoplecorp.com/login-endpoint/authorize/?${query}", "path does not end with \"/authorize\", grant approval flows will not function correctly"), - }, - }, - { - name: "login url with query - ${query}", - args: args{ - provider: &configv1.RequestHeaderIdentityProvider{ - Headers: []string{"X-Remote-User"}, - LoginURL: "http://oauth.coolpeoplecorp.com/login-endpoint/authorize?${query}", - ClientCA: configv1.ConfigMapNameReference{Name: "auth-ca"}, - }, - }, - want: field.ErrorList{}, - }, - { - name: "more complicated use", - args: args{ - provider: requestHeaderIDP(true, true).RequestHeader, - }, - want: field.ErrorList{}, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - if got := ValidateRequestHeaderIdentityProvider(tt.args.provider, tt.args.fieldPath); !reflect.DeepEqual(got, tt.want) { - t.Errorf("ValidateRequestHeaderIdentityProvider() = %v, want %v", got, tt.want) - } - }) - } -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/project/validate_project.go b/openshift-kube-apiserver/admission/customresourcevalidation/project/validate_project.go deleted file mode 100644 index 06ff8d967a1f8..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/project/validate_project.go +++ /dev/null @@ -1,111 +0,0 @@ -package project - -import ( - "fmt" - "io" - - "k8s.io/apimachinery/pkg/api/validation" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - validationutil "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/admission" - - configv1 "github.com/openshift/api/config/v1" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" -) - -const PluginName = "config.openshift.io/ValidateProject" - -// Register registers a plugin -func Register(plugins *admission.Plugins) { - plugins.Register(PluginName, func(config io.Reader) (admission.Interface, error) { - return customresourcevalidation.NewValidator( - map[schema.GroupResource]bool{ - configv1.Resource("projects"): true, - }, - map[schema.GroupVersionKind]customresourcevalidation.ObjectValidator{ - configv1.GroupVersion.WithKind("Project"): projectV1{}, - }) - }) -} - -func toProjectV1(uncastObj runtime.Object) (*configv1.Project, field.ErrorList) { - if uncastObj == nil { - return nil, nil - } - - allErrs := field.ErrorList{} - - obj, ok := uncastObj.(*configv1.Project) - if !ok { - return nil, append(allErrs, - field.NotSupported(field.NewPath("kind"), fmt.Sprintf("%T", uncastObj), []string{"Project"}), - field.NotSupported(field.NewPath("apiVersion"), fmt.Sprintf("%T", uncastObj), []string{"config.openshift.io/v1"})) - } - - return obj, nil -} - -type projectV1 struct { -} - -func validateProjectSpec(spec configv1.ProjectSpec) field.ErrorList { - allErrs := field.ErrorList{} - - if len(spec.ProjectRequestMessage) > 4096 { - allErrs = append(allErrs, field.Invalid(field.NewPath("spec.projectRequestMessage"), spec, validationutil.MaxLenError(4096))) - } - - if name := spec.ProjectRequestTemplate.Name; len(name) > 0 { - for _, msg := range validation.NameIsDNSSubdomain(spec.ProjectRequestTemplate.Name, false) { - allErrs = append(allErrs, field.Invalid(field.NewPath("spec.projectRequestTemplate.name"), name, msg)) - } - } - - return allErrs -} - -func (projectV1) ValidateCreate(uncastObj runtime.Object) field.ErrorList { - obj, allErrs := toProjectV1(uncastObj) - if len(allErrs) > 0 { - return allErrs - } - - allErrs = append(allErrs, validation.ValidateObjectMeta(&obj.ObjectMeta, false, customresourcevalidation.RequireNameCluster, field.NewPath("metadata"))...) - allErrs = append(allErrs, validateProjectSpec(obj.Spec)...) - - return allErrs -} - -func (projectV1) ValidateUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, allErrs := toProjectV1(uncastObj) - if len(allErrs) > 0 { - return allErrs - } - oldObj, allErrs := toProjectV1(uncastOldObj) - if len(allErrs) > 0 { - return allErrs - } - - allErrs = append(allErrs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - allErrs = append(allErrs, validateProjectSpec(obj.Spec)...) - - return allErrs -} - -func (projectV1) ValidateStatusUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, errs := toProjectV1(uncastObj) - if len(errs) > 0 { - return errs - } - oldObj, errs := toProjectV1(uncastOldObj) - if len(errs) > 0 { - return errs - } - - // TODO validate the obj. remember that status validation should *never* fail on spec validation errors. - errs = append(errs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - - return errs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/rolebindingrestriction/validate_rbr.go b/openshift-kube-apiserver/admission/customresourcevalidation/rolebindingrestriction/validate_rbr.go deleted file mode 100644 index f8e04de28bdfc..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/rolebindingrestriction/validate_rbr.go +++ /dev/null @@ -1,83 +0,0 @@ -package rolebindingrestriction - -import ( - "fmt" - "io" - - "k8s.io/apimachinery/pkg/api/validation" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/admission" - - authorizationv1 "github.com/openshift/api/authorization/v1" - - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" - rbrvalidation "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/rolebindingrestriction/validation" -) - -const PluginName = "authorization.openshift.io/ValidateRoleBindingRestriction" - -func Register(plugins *admission.Plugins) { - plugins.Register(PluginName, func(config io.Reader) (admission.Interface, error) { - return customresourcevalidation.NewValidator( - map[schema.GroupResource]bool{ - {Group: authorizationv1.GroupName, Resource: "rolebindingrestrictions"}: true, - }, - map[schema.GroupVersionKind]customresourcevalidation.ObjectValidator{ - authorizationv1.GroupVersion.WithKind("RoleBindingRestriction"): roleBindingRestrictionV1{}, - }) - }) -} - -func toRoleBindingRestriction(uncastObj runtime.Object) (*authorizationv1.RoleBindingRestriction, field.ErrorList) { - if uncastObj == nil { - return nil, nil - } - - allErrs := field.ErrorList{} - - obj, ok := uncastObj.(*authorizationv1.RoleBindingRestriction) - if !ok { - return nil, append(allErrs, - field.NotSupported(field.NewPath("kind"), fmt.Sprintf("%T", uncastObj), []string{"RoleBindingRestriction"}), - field.NotSupported(field.NewPath("apiVersion"), fmt.Sprintf("%T", uncastObj), []string{authorizationv1.GroupVersion.String()})) - } - - return obj, nil -} - -type roleBindingRestrictionV1 struct { -} - -func (roleBindingRestrictionV1) ValidateCreate(obj runtime.Object) field.ErrorList { - roleBindingRestrictionObj, errs := toRoleBindingRestriction(obj) - if len(errs) > 0 { - return errs - } - - errs = append(errs, validation.ValidateObjectMeta(&roleBindingRestrictionObj.ObjectMeta, true, validation.NameIsDNSSubdomain, field.NewPath("metadata"))...) - errs = append(errs, rbrvalidation.ValidateRoleBindingRestriction(roleBindingRestrictionObj)...) - - return errs -} - -func (roleBindingRestrictionV1) ValidateUpdate(obj runtime.Object, oldObj runtime.Object) field.ErrorList { - roleBindingRestrictionObj, errs := toRoleBindingRestriction(obj) - if len(errs) > 0 { - return errs - } - roleBindingRestrictionOldObj, errs := toRoleBindingRestriction(oldObj) - if len(errs) > 0 { - return errs - } - - errs = append(errs, validation.ValidateObjectMeta(&roleBindingRestrictionObj.ObjectMeta, true, validation.NameIsDNSSubdomain, field.NewPath("metadata"))...) - errs = append(errs, rbrvalidation.ValidateRoleBindingRestrictionUpdate(roleBindingRestrictionObj, roleBindingRestrictionOldObj)...) - - return errs -} - -func (r roleBindingRestrictionV1) ValidateStatusUpdate(obj runtime.Object, oldObj runtime.Object) field.ErrorList { - return r.ValidateUpdate(obj, oldObj) -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/rolebindingrestriction/validation/validation.go b/openshift-kube-apiserver/admission/customresourcevalidation/rolebindingrestriction/validation/validation.go deleted file mode 100644 index e6ee1a40b28d3..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/rolebindingrestriction/validation/validation.go +++ /dev/null @@ -1,113 +0,0 @@ -package validation - -import ( - apimachineryvalidation "k8s.io/apimachinery/pkg/api/validation" - unversionedvalidation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/apis/core/validation" - - authorizationv1 "github.com/openshift/api/authorization/v1" -) - -func ValidateRoleBindingRestriction(rbr *authorizationv1.RoleBindingRestriction) field.ErrorList { - allErrs := validation.ValidateObjectMeta(&rbr.ObjectMeta, true, - apimachineryvalidation.NameIsDNSSubdomain, field.NewPath("metadata")) - - allErrs = append(allErrs, - ValidateRoleBindingRestrictionSpec(&rbr.Spec, field.NewPath("spec"))...) - - return allErrs -} - -func ValidateRoleBindingRestrictionUpdate(rbr, old *authorizationv1.RoleBindingRestriction) field.ErrorList { - allErrs := ValidateRoleBindingRestriction(rbr) - - allErrs = append(allErrs, validation.ValidateObjectMetaUpdate(&rbr.ObjectMeta, - &old.ObjectMeta, field.NewPath("metadata"))...) - - return allErrs -} - -func ValidateRoleBindingRestrictionSpec(spec *authorizationv1.RoleBindingRestrictionSpec, fld *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - const invalidMsg = `must specify exactly one of userrestriction, grouprestriction, or serviceaccountrestriction` - - if spec.UserRestriction != nil { - if spec.GroupRestriction != nil { - allErrs = append(allErrs, field.Invalid(fld.Child("grouprestriction"), - "both userrestriction and grouprestriction specified", invalidMsg)) - } - if spec.ServiceAccountRestriction != nil { - allErrs = append(allErrs, - field.Invalid(fld.Child("serviceaccountrestriction"), - "both userrestriction and serviceaccountrestriction specified", invalidMsg)) - } - } else if spec.GroupRestriction != nil { - if spec.ServiceAccountRestriction != nil { - allErrs = append(allErrs, - field.Invalid(fld.Child("serviceaccountrestriction"), - "both grouprestriction and serviceaccountrestriction specified", invalidMsg)) - } - } else if spec.ServiceAccountRestriction == nil { - allErrs = append(allErrs, field.Required(fld.Child("userrestriction"), - invalidMsg)) - } - - if spec.UserRestriction != nil { - allErrs = append(allErrs, ValidateRoleBindingRestrictionUser(spec.UserRestriction, fld.Child("userrestriction"))...) - } - if spec.GroupRestriction != nil { - allErrs = append(allErrs, ValidateRoleBindingRestrictionGroup(spec.GroupRestriction, fld.Child("grouprestriction"))...) - } - if spec.ServiceAccountRestriction != nil { - allErrs = append(allErrs, ValidateRoleBindingRestrictionServiceAccount(spec.ServiceAccountRestriction, fld.Child("serviceaccountrestriction"))...) - } - - return allErrs -} - -func ValidateRoleBindingRestrictionUser(user *authorizationv1.UserRestriction, fld *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - const invalidMsg = `must specify at least one user, group, or label selector` - - if !(len(user.Users) > 0 || len(user.Groups) > 0 || len(user.Selectors) > 0) { - allErrs = append(allErrs, field.Required(fld.Child("users"), invalidMsg)) - } - - for i, selector := range user.Selectors { - allErrs = append(allErrs, - unversionedvalidation.ValidateLabelSelector(&selector, - fld.Child("selector").Index(i))...) - } - - return allErrs -} - -func ValidateRoleBindingRestrictionGroup(group *authorizationv1.GroupRestriction, fld *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - const invalidMsg = `must specify at least one group or label selector` - - if !(len(group.Groups) > 0 || len(group.Selectors) > 0) { - allErrs = append(allErrs, field.Required(fld.Child("groups"), invalidMsg)) - } - - for i, selector := range group.Selectors { - allErrs = append(allErrs, - unversionedvalidation.ValidateLabelSelector(&selector, - fld.Child("selector").Index(i))...) - } - - return allErrs -} - -func ValidateRoleBindingRestrictionServiceAccount(sa *authorizationv1.ServiceAccountRestriction, fld *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - const invalidMsg = `must specify at least one service account or namespace` - - if !(len(sa.ServiceAccounts) > 0 || len(sa.Namespaces) > 0) { - allErrs = append(allErrs, - field.Required(fld.Child("serviceaccounts"), invalidMsg)) - } - - return allErrs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/scheduler/validate_scheduler.go b/openshift-kube-apiserver/admission/customresourcevalidation/scheduler/validate_scheduler.go deleted file mode 100644 index ec5f517663b66..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/scheduler/validate_scheduler.go +++ /dev/null @@ -1,106 +0,0 @@ -package scheduler - -import ( - "fmt" - "io" - - "k8s.io/apimachinery/pkg/api/validation" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/admission" - - configv1 "github.com/openshift/api/config/v1" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" -) - -const PluginName = "config.openshift.io/ValidateScheduler" - -// Register registers a plugin -func Register(plugins *admission.Plugins) { - plugins.Register(PluginName, func(config io.Reader) (admission.Interface, error) { - return customresourcevalidation.NewValidator( - map[schema.GroupResource]bool{ - configv1.Resource("schedulers"): true, - }, - map[schema.GroupVersionKind]customresourcevalidation.ObjectValidator{ - configv1.GroupVersion.WithKind("Scheduler"): schedulerV1{}, - }) - }) -} - -func toSchedulerV1(uncastObj runtime.Object) (*configv1.Scheduler, field.ErrorList) { - if uncastObj == nil { - return nil, nil - } - - allErrs := field.ErrorList{} - - obj, ok := uncastObj.(*configv1.Scheduler) - if !ok { - return nil, append(allErrs, - field.NotSupported(field.NewPath("kind"), fmt.Sprintf("%T", uncastObj), []string{"Scheduler"}), - field.NotSupported(field.NewPath("apiVersion"), fmt.Sprintf("%T", uncastObj), []string{"config.openshift.io/v1"})) - } - - return obj, nil -} - -type schedulerV1 struct { -} - -func validateSchedulerSpec(spec configv1.SchedulerSpec) field.ErrorList { - allErrs := field.ErrorList{} - - if name := spec.Policy.Name; len(name) > 0 { - for _, msg := range validation.NameIsDNSSubdomain(spec.Policy.Name, false) { - allErrs = append(allErrs, field.Invalid(field.NewPath("spec.Policy.name"), name, msg)) - } - } - - return allErrs -} - -func (schedulerV1) ValidateCreate(uncastObj runtime.Object) field.ErrorList { - obj, allErrs := toSchedulerV1(uncastObj) - if len(allErrs) > 0 { - return allErrs - } - - allErrs = append(allErrs, validation.ValidateObjectMeta(&obj.ObjectMeta, false, customresourcevalidation.RequireNameCluster, field.NewPath("metadata"))...) - allErrs = append(allErrs, validateSchedulerSpec(obj.Spec)...) - - return allErrs -} - -func (schedulerV1) ValidateUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, allErrs := toSchedulerV1(uncastObj) - if len(allErrs) > 0 { - return allErrs - } - oldObj, allErrs := toSchedulerV1(uncastOldObj) - if len(allErrs) > 0 { - return allErrs - } - - allErrs = append(allErrs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - allErrs = append(allErrs, validateSchedulerSpec(obj.Spec)...) - - return allErrs -} - -func (schedulerV1) ValidateStatusUpdate(uncastObj runtime.Object, uncastOldObj runtime.Object) field.ErrorList { - obj, errs := toSchedulerV1(uncastObj) - if len(errs) > 0 { - return errs - } - oldObj, errs := toSchedulerV1(uncastOldObj) - if len(errs) > 0 { - return errs - } - - // TODO validate the obj. remember that status validation should *never* fail on spec validation errors. - errs = append(errs, validation.ValidateObjectMetaUpdate(&obj.ObjectMeta, &oldObj.ObjectMeta, field.NewPath("metadata"))...) - - return errs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/defaulting_scc.go b/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/defaulting_scc.go deleted file mode 100644 index 1a7193eff7c75..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/defaulting_scc.go +++ /dev/null @@ -1,93 +0,0 @@ -package securitycontextconstraints - -import ( - "bytes" - "context" - "io" - - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apiserver/pkg/admission" - - securityv1 "github.com/openshift/api/security/v1" -) - -const DefaultingPluginName = "security.openshift.io/DefaultSecurityContextConstraints" - -func RegisterDefaulting(plugins *admission.Plugins) { - plugins.Register(DefaultingPluginName, func(config io.Reader) (admission.Interface, error) { - return NewDefaulter(), nil - }) -} - -type defaultSCC struct { - *admission.Handler - - scheme *runtime.Scheme - codecFactory runtimeserializer.CodecFactory -} - -var _ admission.MutationInterface = &defaultSCC{} - -func NewDefaulter() admission.Interface { - scheme := runtime.NewScheme() - codecFactory := runtimeserializer.NewCodecFactory(scheme) - utilruntime.Must(securityv1.Install(scheme)) - - return &defaultSCC{ - Handler: admission.NewHandler(admission.Create, admission.Update), - scheme: scheme, - codecFactory: codecFactory, - } -} - -// Admit defaults an SCC by going unstructured > external > internal > external > unstructured -func (a *defaultSCC) Admit(ctx context.Context, attributes admission.Attributes, o admission.ObjectInterfaces) error { - if a.shouldIgnore(attributes) { - return nil - } - - unstructuredOrig, ok := attributes.GetObject().(*unstructured.Unstructured) - if !ok { - return nil - } - buf := &bytes.Buffer{} - if err := unstructured.UnstructuredJSONScheme.Encode(unstructuredOrig, buf); err != nil { - return err - } - - uncastObj, err := runtime.Decode(a.codecFactory.UniversalDeserializer(), buf.Bytes()) - if err != nil { - return err - } - - outSCCExternal := uncastObj.(*securityv1.SecurityContextConstraints) - SetDefaults_SCC(outSCCExternal) - defaultedBytes, err := runtime.Encode(a.codecFactory.LegacyCodec(securityv1.GroupVersion), outSCCExternal) - if err != nil { - return err - } - outUnstructured := &unstructured.Unstructured{} - if _, _, err := unstructured.UnstructuredJSONScheme.Decode(defaultedBytes, nil, outUnstructured); err != nil { - return err - } - - unstructuredOrig.Object = outUnstructured.Object - - return nil -} - -func (a *defaultSCC) shouldIgnore(attributes admission.Attributes) bool { - if attributes.GetResource().GroupResource() != (schema.GroupResource{Group: "security.openshift.io", Resource: "securitycontextconstraints"}) { - return true - } - // if a subresource is specified, skip it - if len(attributes.GetSubresource()) > 0 { - return true - } - - return false -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/defaulting_scc_test.go b/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/defaulting_scc_test.go deleted file mode 100644 index 16c6d56af2e2f..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/defaulting_scc_test.go +++ /dev/null @@ -1,274 +0,0 @@ -package securitycontextconstraints - -import ( - "bytes" - "context" - "reflect" - "testing" - - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/diff" - "k8s.io/apiserver/pkg/admission" - - securityv1 "github.com/openshift/api/security/v1" - sccutil "github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/util" -) - -func TestDefaultingHappens(t *testing.T) { - inputSCC := `{ - "allowHostDirVolumePlugin": true, - "allowHostNetwork": true, - "allowHostPID": true, - "allowHostPorts": true, - "apiVersion": "security.openshift.io/v1", - "kind": "SecurityContextConstraints", - "metadata": { - "annotations": { - "kubernetes.io/description": "node-exporter scc is used for the Prometheus node exporter" - }, - "name": "node-exporter" - }, - "readOnlyRootFilesystem": false, - "runAsUser": { - "type": "RunAsAny" - }, - "seLinuxContext": { - "type": "RunAsAny" - }, - "users": [] -}` - - inputUnstructured := &unstructured.Unstructured{} - _, _, err := unstructured.UnstructuredJSONScheme.Decode([]byte(inputSCC), nil, inputUnstructured) - if err != nil { - t.Fatal(err) - } - - attributes := admission.NewAttributesRecord(inputUnstructured, nil, schema.GroupVersionKind{}, "", "", schema.GroupVersionResource{Group: "security.openshift.io", Resource: "securitycontextconstraints"}, "", admission.Create, nil, false, nil) - defaulter := NewDefaulter() - if err := defaulter.(*defaultSCC).Admit(context.TODO(), attributes, nil); err != nil { - t.Fatal(err) - } - - buf := &bytes.Buffer{} - if err := unstructured.UnstructuredJSONScheme.Encode(inputUnstructured, buf); err != nil { - t.Fatal(err) - } - - expectedSCC := `{ - "allowHostDirVolumePlugin": true, - "allowHostIPC": false, - "allowHostNetwork": true, - "allowHostPID": true, - "allowHostPorts": true, - "allowPrivilegeEscalation": true, - "allowPrivilegedContainer": false, - "allowedCapabilities": null, - "apiVersion": "security.openshift.io/v1", - "defaultAddCapabilities": null, - "fsGroup": { - "type": "RunAsAny" - }, - "groups": [], - "kind": "SecurityContextConstraints", - "metadata": { - "annotations": { - "kubernetes.io/description": "node-exporter scc is used for the Prometheus node exporter" - }, - "name": "node-exporter", - "creationTimestamp":null - }, - "priority": null, - "readOnlyRootFilesystem": false, - "requiredDropCapabilities": null, - "runAsUser": { - "type": "RunAsAny" - }, - "seLinuxContext": { - "type": "RunAsAny" - }, - "supplementalGroups": { - "type": "RunAsAny" - }, - "users": [], - "volumes": [ - "*" - ] -}` - expectedUnstructured := &unstructured.Unstructured{} - if _, _, err := unstructured.UnstructuredJSONScheme.Decode([]byte(expectedSCC), nil, expectedUnstructured); err != nil { - t.Fatal(err) - } - - if !reflect.DeepEqual(expectedUnstructured.Object, inputUnstructured.Object) { - t.Fatal(diff.ObjectDiff(expectedUnstructured.Object, inputUnstructured.Object)) - } -} - -func TestDefaultSecurityContextConstraints(t *testing.T) { - tests := map[string]struct { - scc *securityv1.SecurityContextConstraints - expectedFSGroup securityv1.FSGroupStrategyType - expectedSupGroup securityv1.SupplementalGroupsStrategyType - }{ - "shouldn't default": { - scc: &securityv1.SecurityContextConstraints{ - FSGroup: securityv1.FSGroupStrategyOptions{ - Type: securityv1.FSGroupStrategyMustRunAs, - }, - SupplementalGroups: securityv1.SupplementalGroupsStrategyOptions{ - Type: securityv1.SupplementalGroupsStrategyMustRunAs, - }, - }, - expectedFSGroup: securityv1.FSGroupStrategyMustRunAs, - expectedSupGroup: securityv1.SupplementalGroupsStrategyMustRunAs, - }, - "default fsgroup runAsAny": { - scc: &securityv1.SecurityContextConstraints{ - RunAsUser: securityv1.RunAsUserStrategyOptions{ - Type: securityv1.RunAsUserStrategyRunAsAny, - }, - SupplementalGroups: securityv1.SupplementalGroupsStrategyOptions{ - Type: securityv1.SupplementalGroupsStrategyMustRunAs, - }, - }, - expectedFSGroup: securityv1.FSGroupStrategyRunAsAny, - expectedSupGroup: securityv1.SupplementalGroupsStrategyMustRunAs, - }, - "default sup group runAsAny": { - scc: &securityv1.SecurityContextConstraints{ - RunAsUser: securityv1.RunAsUserStrategyOptions{ - Type: securityv1.RunAsUserStrategyRunAsAny, - }, - FSGroup: securityv1.FSGroupStrategyOptions{ - Type: securityv1.FSGroupStrategyMustRunAs, - }, - }, - expectedFSGroup: securityv1.FSGroupStrategyMustRunAs, - expectedSupGroup: securityv1.SupplementalGroupsStrategyRunAsAny, - }, - "default fsgroup runAsAny with mustRunAs UID strategy": { - scc: &securityv1.SecurityContextConstraints{ - RunAsUser: securityv1.RunAsUserStrategyOptions{ - Type: securityv1.RunAsUserStrategyMustRunAsRange, - }, - SupplementalGroups: securityv1.SupplementalGroupsStrategyOptions{ - Type: securityv1.SupplementalGroupsStrategyMustRunAs, - }, - }, - expectedFSGroup: securityv1.FSGroupStrategyRunAsAny, - expectedSupGroup: securityv1.SupplementalGroupsStrategyMustRunAs, - }, - "default sup group runAsAny with mustRunAs UID strategy": { - scc: &securityv1.SecurityContextConstraints{ - RunAsUser: securityv1.RunAsUserStrategyOptions{ - Type: securityv1.RunAsUserStrategyMustRunAsRange, - }, - FSGroup: securityv1.FSGroupStrategyOptions{ - Type: securityv1.FSGroupStrategyMustRunAs, - }, - }, - expectedFSGroup: securityv1.FSGroupStrategyMustRunAs, - expectedSupGroup: securityv1.SupplementalGroupsStrategyRunAsAny, - }, - } - for k, v := range tests { - SetDefaults_SCC(v.scc) - if v.scc.FSGroup.Type != v.expectedFSGroup { - t.Errorf("%s has invalid fsgroup. Expected: %v got: %v", k, v.expectedFSGroup, v.scc.FSGroup.Type) - } - if v.scc.SupplementalGroups.Type != v.expectedSupGroup { - t.Errorf("%s has invalid supplemental group. Expected: %v got: %v", k, v.expectedSupGroup, v.scc.SupplementalGroups.Type) - } - } -} - -func TestDefaultSCCVolumes(t *testing.T) { - tests := map[string]struct { - scc *securityv1.SecurityContextConstraints - expectedVolumes []securityv1.FSType - expectedHostDir bool - }{ - // this expects the volumes to default to all for an empty volume slice - // but since the host dir setting is false it should be all - host dir - "old client - default allow* fields, no volumes slice": { - scc: &securityv1.SecurityContextConstraints{}, - expectedVolumes: StringSetToFSType(sccutil.GetAllFSTypesExcept(string(securityv1.FSTypeHostPath))), - expectedHostDir: false, - }, - // this expects the volumes to default to all for an empty volume slice - "old client - set allowHostDir true fields, no volumes slice": { - scc: &securityv1.SecurityContextConstraints{ - AllowHostDirVolumePlugin: true, - }, - expectedVolumes: []securityv1.FSType{securityv1.FSTypeAll}, - expectedHostDir: true, - }, - "new client - allow* fields set with matching volume slice": { - scc: &securityv1.SecurityContextConstraints{ - Volumes: []securityv1.FSType{securityv1.FSTypeEmptyDir, securityv1.FSTypeHostPath}, - AllowHostDirVolumePlugin: true, - }, - expectedVolumes: []securityv1.FSType{securityv1.FSTypeEmptyDir, securityv1.FSTypeHostPath}, - expectedHostDir: true, - }, - "new client - allow* fields set with mismatch host dir volume slice": { - scc: &securityv1.SecurityContextConstraints{ - Volumes: []securityv1.FSType{securityv1.FSTypeEmptyDir, securityv1.FSTypeHostPath}, - AllowHostDirVolumePlugin: false, - }, - expectedVolumes: []securityv1.FSType{securityv1.FSTypeEmptyDir}, - expectedHostDir: false, - }, - "new client - allow* fields set with mismatch FSTypeAll volume slice": { - scc: &securityv1.SecurityContextConstraints{ - Volumes: []securityv1.FSType{securityv1.FSTypeAll}, - AllowHostDirVolumePlugin: false, - }, - expectedVolumes: StringSetToFSType(sccutil.GetAllFSTypesExcept(string(securityv1.FSTypeHostPath))), - expectedHostDir: false, - }, - "new client - allow* fields unset with volume slice": { - scc: &securityv1.SecurityContextConstraints{ - Volumes: []securityv1.FSType{securityv1.FSTypeEmptyDir, securityv1.FSTypeHostPath}, - }, - expectedVolumes: []securityv1.FSType{securityv1.FSTypeEmptyDir}, - expectedHostDir: false, - }, - "new client - extra volume params retained": { - scc: &securityv1.SecurityContextConstraints{ - Volumes: []securityv1.FSType{securityv1.FSTypeEmptyDir, securityv1.FSTypeHostPath, securityv1.FSTypeGitRepo}, - }, - expectedVolumes: []securityv1.FSType{securityv1.FSTypeEmptyDir, securityv1.FSTypeGitRepo}, - expectedHostDir: false, - }, - "new client - empty volume slice, host dir true": { - scc: &securityv1.SecurityContextConstraints{ - Volumes: []securityv1.FSType{}, - AllowHostDirVolumePlugin: true, - }, - expectedVolumes: []securityv1.FSType{securityv1.FSTypeHostPath}, - expectedHostDir: true, - }, - "new client - empty volume slice, host dir false": { - scc: &securityv1.SecurityContextConstraints{ - Volumes: []securityv1.FSType{}, - AllowHostDirVolumePlugin: false, - }, - expectedVolumes: []securityv1.FSType{securityv1.FSTypeNone}, - expectedHostDir: false, - }, - } - for k, v := range tests { - SetDefaults_SCC(v.scc) - - if !reflect.DeepEqual(v.scc.Volumes, v.expectedVolumes) { - t.Errorf("%s has invalid volumes. Expected: %v got: %v", k, v.expectedVolumes, v.scc.Volumes) - } - - if v.scc.AllowHostDirVolumePlugin != v.expectedHostDir { - t.Errorf("%s has invalid host dir. Expected: %v got: %v", k, v.expectedHostDir, v.scc.AllowHostDirVolumePlugin) - } - } -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/defaults.go b/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/defaults.go deleted file mode 100644 index e6e4b5ff44fc7..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/defaults.go +++ /dev/null @@ -1,100 +0,0 @@ -package securitycontextconstraints - -import ( - "k8s.io/apimachinery/pkg/util/sets" - - securityv1 "github.com/openshift/api/security/v1" - sccutil "github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/util" -) - -// Default SCCs for new fields. FSGroup and SupplementalGroups are -// set to the RunAsAny strategy if they are unset on the scc. -func SetDefaults_SCC(scc *securityv1.SecurityContextConstraints) { - if len(scc.FSGroup.Type) == 0 { - scc.FSGroup.Type = securityv1.FSGroupStrategyRunAsAny - } - if len(scc.SupplementalGroups.Type) == 0 { - scc.SupplementalGroups.Type = securityv1.SupplementalGroupsStrategyRunAsAny - } - - if scc.Users == nil { - scc.Users = []string{} - } - if scc.Groups == nil { - scc.Groups = []string{} - } - - var defaultAllowedVolumes sets.String - switch { - case scc.Volumes == nil: - // assume a nil volume slice is allowing everything for backwards compatibility - defaultAllowedVolumes = sets.NewString(string(securityv1.FSTypeAll)) - - case len(scc.Volumes) == 0 && scc.AllowHostDirVolumePlugin: - // an empty volume slice means "allow no volumes", but the boolean fields will always take precedence. - defaultAllowedVolumes = sets.NewString(string(securityv1.FSTypeHostPath)) - - case len(scc.Volumes) == 0 && !scc.AllowHostDirVolumePlugin: - // an empty volume slice means "allow no volumes", but cannot be persisted in protobuf. - // convert this to volumes:["none"] - defaultAllowedVolumes = sets.NewString(string(securityv1.FSTypeNone)) - - default: - // defaults the volume slice of the SCC. - // In order to support old clients the boolean fields will always take precedence. - defaultAllowedVolumes = fsTypeToStringSet(scc.Volumes) - } - - if scc.AllowHostDirVolumePlugin { - // if already allowing all then there is no reason to add - if !defaultAllowedVolumes.Has(string(securityv1.FSTypeAll)) { - defaultAllowedVolumes.Insert(string(securityv1.FSTypeHostPath)) - } - } else { - // we should only default all volumes if the SCC came in with FSTypeAll or we defaulted it - // otherwise we should only change the volumes slice to ensure that it does not conflict with - // the AllowHostDirVolumePlugin setting - shouldDefaultAllVolumes := defaultAllowedVolumes.Has(string(securityv1.FSTypeAll)) - - // remove anything from volumes that conflicts with AllowHostDirVolumePlugin = false - defaultAllowedVolumes.Delete(string(securityv1.FSTypeAll)) - defaultAllowedVolumes.Delete(string(securityv1.FSTypeHostPath)) - - if shouldDefaultAllVolumes { - allVolumes := sccutil.GetAllFSTypesExcept(string(securityv1.FSTypeHostPath)) - defaultAllowedVolumes.Insert(allVolumes.List()...) - } - } - - scc.Volumes = StringSetToFSType(defaultAllowedVolumes) - - // Constraints that do not include this field must remain as permissive as - // they were prior to the introduction of this field. - if scc.AllowPrivilegeEscalation == nil { - t := true - scc.AllowPrivilegeEscalation = &t - } - -} - -func StringSetToFSType(set sets.String) []securityv1.FSType { - if set == nil { - return nil - } - volumes := []securityv1.FSType{} - for _, v := range set.List() { - volumes = append(volumes, securityv1.FSType(v)) - } - return volumes -} - -func fsTypeToStringSet(volumes []securityv1.FSType) sets.String { - if volumes == nil { - return nil - } - set := sets.NewString() - for _, v := range volumes { - set.Insert(string(v)) - } - return set -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/validate_scc.go b/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/validate_scc.go deleted file mode 100644 index 79ae37f27ccdb..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/validate_scc.go +++ /dev/null @@ -1,79 +0,0 @@ -package securitycontextconstraints - -import ( - "fmt" - "io" - - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/admission" - - securityv1 "github.com/openshift/api/security/v1" - - "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation" - sccvalidation "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/validation" -) - -const PluginName = "security.openshift.io/ValidateSecurityContextConstraints" - -func Register(plugins *admission.Plugins) { - plugins.Register(PluginName, func(config io.Reader) (admission.Interface, error) { - return customresourcevalidation.NewValidator( - map[schema.GroupResource]bool{ - {Group: securityv1.GroupName, Resource: "securitycontextconstraints"}: true, - }, - map[schema.GroupVersionKind]customresourcevalidation.ObjectValidator{ - securityv1.GroupVersion.WithKind("SecurityContextConstraints"): securityContextConstraintsV1{}, - }) - }) -} - -func toSecurityContextConstraints(uncastObj runtime.Object) (*securityv1.SecurityContextConstraints, field.ErrorList) { - if uncastObj == nil { - return nil, nil - } - - obj, ok := uncastObj.(*securityv1.SecurityContextConstraints) - if !ok { - return nil, field.ErrorList{ - field.NotSupported(field.NewPath("kind"), fmt.Sprintf("%T", uncastObj), []string{"SecurityContextConstraints"}), - field.NotSupported(field.NewPath("apiVersion"), fmt.Sprintf("%T", uncastObj), []string{securityv1.GroupVersion.String()}), - } - } - - return obj, nil -} - -type securityContextConstraintsV1 struct { -} - -func (securityContextConstraintsV1) ValidateCreate(obj runtime.Object) field.ErrorList { - securityContextConstraintsObj, errs := toSecurityContextConstraints(obj) - if len(errs) > 0 { - return errs - } - - errs = append(errs, sccvalidation.ValidateSecurityContextConstraints(securityContextConstraintsObj)...) - - return errs -} - -func (securityContextConstraintsV1) ValidateUpdate(obj runtime.Object, oldObj runtime.Object) field.ErrorList { - securityContextConstraintsObj, errs := toSecurityContextConstraints(obj) - if len(errs) > 0 { - return errs - } - securityContextConstraintsOldObj, errs := toSecurityContextConstraints(oldObj) - if len(errs) > 0 { - return errs - } - - errs = append(errs, sccvalidation.ValidateSecurityContextConstraintsUpdate(securityContextConstraintsObj, securityContextConstraintsOldObj)...) - - return errs -} - -func (c securityContextConstraintsV1) ValidateStatusUpdate(obj runtime.Object, oldObj runtime.Object) field.ErrorList { - return c.ValidateUpdate(obj, oldObj) -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/validation/validation.go b/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/validation/validation.go deleted file mode 100644 index 493339867b8c5..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/validation/validation.go +++ /dev/null @@ -1,275 +0,0 @@ -package validation - -import ( - "fmt" - "regexp" - "strings" - - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/validation" - apimachineryvalidation "k8s.io/apimachinery/pkg/api/validation" - "k8s.io/apimachinery/pkg/util/validation/field" - kapivalidation "k8s.io/kubernetes/pkg/apis/core/validation" - - securityv1 "github.com/openshift/api/security/v1" -) - -// ValidateSecurityContextConstraintsName can be used to check whether the given -// security context constraint name is valid. -// Prefix indicates this name will be used as part of generation, in which case -// trailing dashes are allowed. -var ValidateSecurityContextConstraintsName = apimachineryvalidation.NameIsDNSSubdomain - -func ValidateSecurityContextConstraints(scc *securityv1.SecurityContextConstraints) field.ErrorList { - allErrs := validation.ValidateObjectMeta(&scc.ObjectMeta, false, ValidateSecurityContextConstraintsName, field.NewPath("metadata")) - - if scc.Priority != nil { - if *scc.Priority < 0 { - allErrs = append(allErrs, field.Invalid(field.NewPath("priority"), *scc.Priority, "priority cannot be negative")) - } - } - - // ensure the user strategy has a valid type - runAsUserPath := field.NewPath("runAsUser") - switch scc.RunAsUser.Type { - case securityv1.RunAsUserStrategyMustRunAs, securityv1.RunAsUserStrategyMustRunAsNonRoot, securityv1.RunAsUserStrategyRunAsAny, securityv1.RunAsUserStrategyMustRunAsRange: - //good types - default: - msg := fmt.Sprintf("invalid strategy type. Valid values are %s, %s, %s, %s", securityv1.RunAsUserStrategyMustRunAs, securityv1.RunAsUserStrategyMustRunAsNonRoot, securityv1.RunAsUserStrategyMustRunAsRange, securityv1.RunAsUserStrategyRunAsAny) - allErrs = append(allErrs, field.Invalid(runAsUserPath.Child("type"), scc.RunAsUser.Type, msg)) - } - - // if specified, uid cannot be negative - if scc.RunAsUser.UID != nil { - if *scc.RunAsUser.UID < 0 { - allErrs = append(allErrs, field.Invalid(runAsUserPath.Child("uid"), *scc.RunAsUser.UID, "uid cannot be negative")) - } - } - - // ensure the selinux strategy has a valid type - seLinuxContextPath := field.NewPath("seLinuxContext") - switch scc.SELinuxContext.Type { - case securityv1.SELinuxStrategyMustRunAs, securityv1.SELinuxStrategyRunAsAny: - //good types - default: - msg := fmt.Sprintf("invalid strategy type. Valid values are %s, %s", securityv1.SELinuxStrategyMustRunAs, securityv1.SELinuxStrategyRunAsAny) - allErrs = append(allErrs, field.Invalid(seLinuxContextPath.Child("type"), scc.SELinuxContext.Type, msg)) - } - - // ensure the fsgroup strategy has a valid type - if scc.FSGroup.Type != securityv1.FSGroupStrategyMustRunAs && scc.FSGroup.Type != securityv1.FSGroupStrategyRunAsAny { - allErrs = append(allErrs, field.NotSupported(field.NewPath("fsGroup", "type"), scc.FSGroup.Type, - []string{string(securityv1.FSGroupStrategyMustRunAs), string(securityv1.FSGroupStrategyRunAsAny)})) - } - allErrs = append(allErrs, validateIDRanges(scc.FSGroup.Ranges, field.NewPath("fsGroup"))...) - - if scc.SupplementalGroups.Type != securityv1.SupplementalGroupsStrategyMustRunAs && - scc.SupplementalGroups.Type != securityv1.SupplementalGroupsStrategyRunAsAny { - allErrs = append(allErrs, field.NotSupported(field.NewPath("supplementalGroups", "type"), scc.SupplementalGroups.Type, - []string{string(securityv1.SupplementalGroupsStrategyMustRunAs), string(securityv1.SupplementalGroupsStrategyRunAsAny)})) - } - allErrs = append(allErrs, validateIDRanges(scc.SupplementalGroups.Ranges, field.NewPath("supplementalGroups"))...) - - // validate capabilities - allErrs = append(allErrs, validateSCCCapsAgainstDrops(scc.RequiredDropCapabilities, scc.DefaultAddCapabilities, field.NewPath("defaultAddCapabilities"))...) - allErrs = append(allErrs, validateSCCCapsAgainstDrops(scc.RequiredDropCapabilities, scc.AllowedCapabilities, field.NewPath("allowedCapabilities"))...) - - if hasCap(securityv1.AllowAllCapabilities, scc.AllowedCapabilities) && len(scc.RequiredDropCapabilities) > 0 { - allErrs = append(allErrs, field.Invalid(field.NewPath("requiredDropCapabilities"), scc.RequiredDropCapabilities, - "required capabilities must be empty when all capabilities are allowed by a wildcard")) - } - - allErrs = append(allErrs, validateSCCDefaultAllowPrivilegeEscalation(field.NewPath("defaultAllowPrivilegeEscalation"), scc.DefaultAllowPrivilegeEscalation, scc.AllowPrivilegeEscalation)...) - - allowsFlexVolumes := false - hasNoneVolume := false - - if len(scc.Volumes) > 0 { - for _, fsType := range scc.Volumes { - if fsType == securityv1.FSTypeNone { - hasNoneVolume = true - - } else if fsType == securityv1.FSTypeFlexVolume || fsType == securityv1.FSTypeAll { - allowsFlexVolumes = true - } - } - } - - if hasNoneVolume && len(scc.Volumes) > 1 { - allErrs = append(allErrs, field.Invalid(field.NewPath("volumes"), scc.Volumes, - "if 'none' is specified, no other values are allowed")) - } - - if len(scc.AllowedFlexVolumes) > 0 { - if allowsFlexVolumes { - for idx, allowedFlexVolume := range scc.AllowedFlexVolumes { - if len(allowedFlexVolume.Driver) == 0 { - allErrs = append(allErrs, field.Required(field.NewPath("allowedFlexVolumes").Index(idx).Child("driver"), - "must specify a driver")) - } - } - } else { - allErrs = append(allErrs, field.Invalid(field.NewPath("allowedFlexVolumes"), scc.AllowedFlexVolumes, - "volumes does not include 'flexVolume' or '*', so no flex volumes are allowed")) - } - } - - allowedUnsafeSysctlsPath := field.NewPath("allowedUnsafeSysctls") - forbiddenSysctlsPath := field.NewPath("forbiddenSysctls") - allErrs = append(allErrs, validateSCCSysctls(allowedUnsafeSysctlsPath, scc.AllowedUnsafeSysctls)...) - allErrs = append(allErrs, validateSCCSysctls(forbiddenSysctlsPath, scc.ForbiddenSysctls)...) - allErrs = append(allErrs, validatePodSecurityPolicySysctlListsDoNotOverlap(allowedUnsafeSysctlsPath, forbiddenSysctlsPath, scc.AllowedUnsafeSysctls, scc.ForbiddenSysctls)...) - - return allErrs -} - -const sysctlPatternSegmentFmt string = "([a-z0-9][-_a-z0-9]*)?[a-z0-9*]" -const sysctlPatternFmt string = "(" + kapivalidation.SysctlSegmentFmt + "\\.)*" + sysctlPatternSegmentFmt - -var sysctlPatternRegexp = regexp.MustCompile("^" + sysctlPatternFmt + "$") - -func IsValidSysctlPattern(name string) bool { - if len(name) > kapivalidation.SysctlMaxLength { - return false - } - return sysctlPatternRegexp.MatchString(name) -} - -// validatePodSecurityPolicySysctlListsDoNotOverlap validates the values in forbiddenSysctls and allowedSysctls fields do not overlap. -func validatePodSecurityPolicySysctlListsDoNotOverlap(allowedSysctlsFldPath, forbiddenSysctlsFldPath *field.Path, allowedUnsafeSysctls, forbiddenSysctls []string) field.ErrorList { - allErrs := field.ErrorList{} - for i, allowedSysctl := range allowedUnsafeSysctls { - isAllowedSysctlPattern := false - allowedSysctlPrefix := "" - if strings.HasSuffix(allowedSysctl, "*") { - isAllowedSysctlPattern = true - allowedSysctlPrefix = strings.TrimSuffix(allowedSysctl, "*") - } - for j, forbiddenSysctl := range forbiddenSysctls { - isForbiddenSysctlPattern := false - forbiddenSysctlPrefix := "" - if strings.HasSuffix(forbiddenSysctl, "*") { - isForbiddenSysctlPattern = true - forbiddenSysctlPrefix = strings.TrimSuffix(forbiddenSysctl, "*") - } - switch { - case isAllowedSysctlPattern && isForbiddenSysctlPattern: - if strings.HasPrefix(allowedSysctlPrefix, forbiddenSysctlPrefix) { - allErrs = append(allErrs, field.Invalid(allowedSysctlsFldPath.Index(i), allowedUnsafeSysctls[i], fmt.Sprintf("sysctl overlaps with %v", forbiddenSysctl))) - } else if strings.HasPrefix(forbiddenSysctlPrefix, allowedSysctlPrefix) { - allErrs = append(allErrs, field.Invalid(forbiddenSysctlsFldPath.Index(j), forbiddenSysctls[j], fmt.Sprintf("sysctl overlaps with %v", allowedSysctl))) - } - case isAllowedSysctlPattern: - if strings.HasPrefix(forbiddenSysctl, allowedSysctlPrefix) { - allErrs = append(allErrs, field.Invalid(forbiddenSysctlsFldPath.Index(j), forbiddenSysctls[j], fmt.Sprintf("sysctl overlaps with %v", allowedSysctl))) - } - case isForbiddenSysctlPattern: - if strings.HasPrefix(allowedSysctl, forbiddenSysctlPrefix) { - allErrs = append(allErrs, field.Invalid(allowedSysctlsFldPath.Index(i), allowedUnsafeSysctls[i], fmt.Sprintf("sysctl overlaps with %v", forbiddenSysctl))) - } - default: - if allowedSysctl == forbiddenSysctl { - allErrs = append(allErrs, field.Invalid(allowedSysctlsFldPath.Index(i), allowedUnsafeSysctls[i], fmt.Sprintf("sysctl overlaps with %v", forbiddenSysctl))) - } - } - } - } - return allErrs -} - -// validatePodSecurityPolicySysctls validates the sysctls fields of PodSecurityPolicy. -func validateSCCSysctls(fldPath *field.Path, sysctls []string) field.ErrorList { - allErrs := field.ErrorList{} - - if len(sysctls) == 0 { - return allErrs - } - - coversAll := false - for i, s := range sysctls { - if len(s) == 0 { - allErrs = append(allErrs, field.Invalid(fldPath.Index(i), sysctls[i], fmt.Sprintf("empty sysctl not allowed"))) - } else if !IsValidSysctlPattern(string(s)) { - allErrs = append( - allErrs, - field.Invalid(fldPath.Index(i), sysctls[i], fmt.Sprintf("must have at most %d characters and match regex %s", - kapivalidation.SysctlMaxLength, - sysctlPatternFmt, - )), - ) - } else if s[0] == '*' { - coversAll = true - } - } - - if coversAll && len(sysctls) > 1 { - allErrs = append(allErrs, field.Forbidden(fldPath.Child("items"), fmt.Sprintf("if '*' is present, must not specify other sysctls"))) - } - - return allErrs -} - -// validateSCCCapsAgainstDrops ensures an allowed cap is not listed in the required drops. -func validateSCCCapsAgainstDrops(requiredDrops []corev1.Capability, capsToCheck []corev1.Capability, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - if requiredDrops == nil { - return allErrs - } - for _, cap := range capsToCheck { - if hasCap(cap, requiredDrops) { - allErrs = append(allErrs, field.Invalid(fldPath, cap, - fmt.Sprintf("capability is listed in %s and requiredDropCapabilities", fldPath.String()))) - } - } - return allErrs -} - -// validateSCCDefaultAllowPrivilegeEscalation validates the DefaultAllowPrivilegeEscalation field against the AllowPrivilegeEscalation field of a SecurityContextConstraints. -func validateSCCDefaultAllowPrivilegeEscalation(fldPath *field.Path, defaultAllowPrivilegeEscalation, allowPrivilegeEscalation *bool) field.ErrorList { - allErrs := field.ErrorList{} - if defaultAllowPrivilegeEscalation != nil && allowPrivilegeEscalation != nil && *defaultAllowPrivilegeEscalation && !*allowPrivilegeEscalation { - allErrs = append(allErrs, field.Invalid(fldPath, defaultAllowPrivilegeEscalation, "Cannot set DefaultAllowPrivilegeEscalation to true without also setting AllowPrivilegeEscalation to true")) - } - - return allErrs -} - -// hasCap checks for needle in haystack. -func hasCap(needle corev1.Capability, haystack []corev1.Capability) bool { - for _, c := range haystack { - if needle == c { - return true - } - } - return false -} - -// validateIDRanges ensures the range is valid. -func validateIDRanges(rng []securityv1.IDRange, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - - for i, r := range rng { - // if 0 <= Min <= Max then we do not need to validate max. It is always greater than or - // equal to 0 and Min. - minPath := fldPath.Child("ranges").Index(i).Child("min") - maxPath := fldPath.Child("ranges").Index(i).Child("max") - - if r.Min < 0 { - allErrs = append(allErrs, field.Invalid(minPath, r.Min, "min cannot be negative")) - } - if r.Max < 0 { - allErrs = append(allErrs, field.Invalid(maxPath, r.Max, "max cannot be negative")) - } - if r.Min > r.Max { - allErrs = append(allErrs, field.Invalid(minPath, r, "min cannot be greater than max")) - } - } - - return allErrs -} - -func ValidateSecurityContextConstraintsUpdate(newScc, oldScc *securityv1.SecurityContextConstraints) field.ErrorList { - allErrs := validation.ValidateObjectMetaUpdate(&newScc.ObjectMeta, &oldScc.ObjectMeta, field.NewPath("metadata")) - allErrs = append(allErrs, ValidateSecurityContextConstraints(newScc)...) - return allErrs -} diff --git a/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/validation/validation_test.go b/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/validation/validation_test.go deleted file mode 100644 index 01c4d472c0a22..0000000000000 --- a/openshift-kube-apiserver/admission/customresourcevalidation/securitycontextconstraints/validation/validation_test.go +++ /dev/null @@ -1,343 +0,0 @@ -package validation - -import ( - "fmt" - "testing" - - kcorev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/validation/field" - - securityv1 "github.com/openshift/api/security/v1" -) - -func TestValidateSecurityContextConstraints(t *testing.T) { - var invalidUID int64 = -1 - var invalidPriority int32 = -1 - var validPriority int32 = 1 - yes := true - no := false - - validSCC := func() *securityv1.SecurityContextConstraints { - return &securityv1.SecurityContextConstraints{ - ObjectMeta: metav1.ObjectMeta{Name: "foo"}, - SELinuxContext: securityv1.SELinuxContextStrategyOptions{ - Type: securityv1.SELinuxStrategyRunAsAny, - }, - RunAsUser: securityv1.RunAsUserStrategyOptions{ - Type: securityv1.RunAsUserStrategyRunAsAny, - }, - FSGroup: securityv1.FSGroupStrategyOptions{ - Type: securityv1.FSGroupStrategyRunAsAny, - }, - SupplementalGroups: securityv1.SupplementalGroupsStrategyOptions{ - Type: securityv1.SupplementalGroupsStrategyRunAsAny, - }, - Priority: &validPriority, - } - } - - noUserOptions := validSCC() - noUserOptions.RunAsUser.Type = "" - - noSELinuxOptions := validSCC() - noSELinuxOptions.SELinuxContext.Type = "" - - invalidUserStratType := validSCC() - invalidUserStratType.RunAsUser.Type = "invalid" - - invalidSELinuxStratType := validSCC() - invalidSELinuxStratType.SELinuxContext.Type = "invalid" - - invalidUIDSCC := validSCC() - invalidUIDSCC.RunAsUser.Type = securityv1.RunAsUserStrategyMustRunAs - invalidUIDSCC.RunAsUser.UID = &invalidUID - - missingObjectMetaName := validSCC() - missingObjectMetaName.ObjectMeta.Name = "" - - noFSGroupOptions := validSCC() - noFSGroupOptions.FSGroup.Type = "" - - invalidFSGroupStratType := validSCC() - invalidFSGroupStratType.FSGroup.Type = "invalid" - - noSupplementalGroupsOptions := validSCC() - noSupplementalGroupsOptions.SupplementalGroups.Type = "" - - invalidSupGroupStratType := validSCC() - invalidSupGroupStratType.SupplementalGroups.Type = "invalid" - - invalidRangeMinGreaterThanMax := validSCC() - invalidRangeMinGreaterThanMax.FSGroup.Ranges = []securityv1.IDRange{ - {Min: 2, Max: 1}, - } - - invalidRangeNegativeMin := validSCC() - invalidRangeNegativeMin.FSGroup.Ranges = []securityv1.IDRange{ - {Min: -1, Max: 10}, - } - - invalidRangeNegativeMax := validSCC() - invalidRangeNegativeMax.FSGroup.Ranges = []securityv1.IDRange{ - {Min: 1, Max: -10}, - } - - negativePriority := validSCC() - negativePriority.Priority = &invalidPriority - - requiredCapAddAndDrop := validSCC() - requiredCapAddAndDrop.DefaultAddCapabilities = []kcorev1.Capability{"foo"} - requiredCapAddAndDrop.RequiredDropCapabilities = []kcorev1.Capability{"foo"} - - allowedCapListedInRequiredDrop := validSCC() - allowedCapListedInRequiredDrop.RequiredDropCapabilities = []kcorev1.Capability{"foo"} - allowedCapListedInRequiredDrop.AllowedCapabilities = []kcorev1.Capability{"foo"} - - wildcardAllowedCapAndRequiredDrop := validSCC() - wildcardAllowedCapAndRequiredDrop.RequiredDropCapabilities = []kcorev1.Capability{"foo"} - wildcardAllowedCapAndRequiredDrop.AllowedCapabilities = []kcorev1.Capability{securityv1.AllowAllCapabilities} - - emptyFlexDriver := validSCC() - emptyFlexDriver.Volumes = []securityv1.FSType{securityv1.FSTypeFlexVolume} - emptyFlexDriver.AllowedFlexVolumes = []securityv1.AllowedFlexVolume{{}} - - nonEmptyFlexVolumes := validSCC() - nonEmptyFlexVolumes.AllowedFlexVolumes = []securityv1.AllowedFlexVolume{{Driver: "example/driver"}} - - invalidDefaultAllowPrivilegeEscalation := validSCC() - invalidDefaultAllowPrivilegeEscalation.DefaultAllowPrivilegeEscalation = &yes - invalidDefaultAllowPrivilegeEscalation.AllowPrivilegeEscalation = &no - - invalidAllowedUnsafeSysctlPattern := validSCC() - invalidAllowedUnsafeSysctlPattern.AllowedUnsafeSysctls = []string{"a.*.b"} - - invalidForbiddenSysctlPattern := validSCC() - invalidForbiddenSysctlPattern.ForbiddenSysctls = []string{"a.*.b"} - - invalidOverlappingSysctls := validSCC() - invalidOverlappingSysctls.ForbiddenSysctls = []string{"kernel.*", "net.ipv4.ip_local_port_range"} - invalidOverlappingSysctls.AllowedUnsafeSysctls = []string{"kernel.shmmax", "net.ipv4.ip_local_port_range"} - - invalidDuplicatedSysctls := validSCC() - invalidDuplicatedSysctls.ForbiddenSysctls = []string{"net.ipv4.ip_local_port_range"} - invalidDuplicatedSysctls.AllowedUnsafeSysctls = []string{"net.ipv4.ip_local_port_range"} - - errorCases := map[string]struct { - scc *securityv1.SecurityContextConstraints - errorType field.ErrorType - errorDetail string - }{ - "no user options": { - scc: noUserOptions, - errorType: field.ErrorTypeInvalid, - errorDetail: "invalid strategy type. Valid values are MustRunAs, MustRunAsNonRoot, MustRunAsRange, RunAsAny", - }, - "no selinux options": { - scc: noSELinuxOptions, - errorType: field.ErrorTypeInvalid, - errorDetail: "invalid strategy type. Valid values are MustRunAs, RunAsAny", - }, - "no fsgroup options": { - scc: noFSGroupOptions, - errorType: field.ErrorTypeNotSupported, - errorDetail: "supported values: \"MustRunAs\", \"RunAsAny\"", - }, - "no sup group options": { - scc: noSupplementalGroupsOptions, - errorType: field.ErrorTypeNotSupported, - errorDetail: "supported values: \"MustRunAs\", \"RunAsAny\"", - }, - "invalid user strategy type": { - scc: invalidUserStratType, - errorType: field.ErrorTypeInvalid, - errorDetail: "invalid strategy type. Valid values are MustRunAs, MustRunAsNonRoot, MustRunAsRange, RunAsAny", - }, - "invalid selinux strategy type": { - scc: invalidSELinuxStratType, - errorType: field.ErrorTypeInvalid, - errorDetail: "invalid strategy type. Valid values are MustRunAs, RunAsAny", - }, - "invalid sup group strategy type": { - scc: invalidSupGroupStratType, - errorType: field.ErrorTypeNotSupported, - errorDetail: "supported values: \"MustRunAs\", \"RunAsAny\"", - }, - "invalid fs group strategy type": { - scc: invalidFSGroupStratType, - errorType: field.ErrorTypeNotSupported, - errorDetail: "supported values: \"MustRunAs\", \"RunAsAny\"", - }, - "invalid uid": { - scc: invalidUIDSCC, - errorType: field.ErrorTypeInvalid, - errorDetail: "uid cannot be negative", - }, - "missing object meta name": { - scc: missingObjectMetaName, - errorType: field.ErrorTypeRequired, - errorDetail: "name or generateName is required", - }, - "invalid range min greater than max": { - scc: invalidRangeMinGreaterThanMax, - errorType: field.ErrorTypeInvalid, - errorDetail: "min cannot be greater than max", - }, - "invalid range negative min": { - scc: invalidRangeNegativeMin, - errorType: field.ErrorTypeInvalid, - errorDetail: "min cannot be negative", - }, - "invalid range negative max": { - scc: invalidRangeNegativeMax, - errorType: field.ErrorTypeInvalid, - errorDetail: "max cannot be negative", - }, - "negative priority": { - scc: negativePriority, - errorType: field.ErrorTypeInvalid, - errorDetail: "priority cannot be negative", - }, - "invalid required caps": { - scc: requiredCapAddAndDrop, - errorType: field.ErrorTypeInvalid, - errorDetail: "capability is listed in defaultAddCapabilities and requiredDropCapabilities", - }, - "allowed cap listed in required drops": { - scc: allowedCapListedInRequiredDrop, - errorType: field.ErrorTypeInvalid, - errorDetail: "capability is listed in allowedCapabilities and requiredDropCapabilities", - }, - "all caps allowed by a wildcard and required drops is not empty": { - scc: wildcardAllowedCapAndRequiredDrop, - errorType: field.ErrorTypeInvalid, - errorDetail: "required capabilities must be empty when all capabilities are allowed by a wildcard", - }, - "empty flex volume driver": { - scc: emptyFlexDriver, - errorType: field.ErrorTypeRequired, - errorDetail: "must specify a driver", - }, - "non-empty allowed flex volumes": { - scc: nonEmptyFlexVolumes, - errorType: field.ErrorTypeInvalid, - errorDetail: "volumes does not include 'flexVolume' or '*', so no flex volumes are allowed", - }, - "invalid defaultAllowPrivilegeEscalation": { - scc: invalidDefaultAllowPrivilegeEscalation, - errorType: field.ErrorTypeInvalid, - errorDetail: "Cannot set DefaultAllowPrivilegeEscalation to true without also setting AllowPrivilegeEscalation to true", - }, - "invalid allowed unsafe sysctl pattern": { - scc: invalidAllowedUnsafeSysctlPattern, - errorType: field.ErrorTypeInvalid, - errorDetail: fmt.Sprintf("must have at most 253 characters and match regex %s", sysctlPatternFmt), - }, - "invalid forbidden sysctl pattern": { - scc: invalidForbiddenSysctlPattern, - errorType: field.ErrorTypeInvalid, - errorDetail: fmt.Sprintf("must have at most 253 characters and match regex %s", sysctlPatternFmt), - }, - "invalid overlapping sysctl pattern": { - scc: invalidOverlappingSysctls, - errorType: field.ErrorTypeInvalid, - errorDetail: fmt.Sprintf("sysctl overlaps with %s", invalidOverlappingSysctls.ForbiddenSysctls[0]), - }, - "invalid duplicated sysctls": { - scc: invalidDuplicatedSysctls, - errorType: field.ErrorTypeInvalid, - errorDetail: fmt.Sprintf("sysctl overlaps with %s", invalidDuplicatedSysctls.AllowedUnsafeSysctls[0]), - }, - } - - for k, v := range errorCases { - t.Run(k, func(t *testing.T) { - if errs := ValidateSecurityContextConstraints(v.scc); len(errs) == 0 || errs[0].Type != v.errorType || errs[0].Detail != v.errorDetail { - t.Errorf("Expected error type %q with detail %q, got %v", v.errorType, v.errorDetail, errs) - } - }) - } - - var validUID int64 = 1 - - mustRunAs := validSCC() - mustRunAs.FSGroup.Type = securityv1.FSGroupStrategyMustRunAs - mustRunAs.SupplementalGroups.Type = securityv1.SupplementalGroupsStrategyMustRunAs - mustRunAs.RunAsUser.Type = securityv1.RunAsUserStrategyMustRunAs - mustRunAs.RunAsUser.UID = &validUID - mustRunAs.SELinuxContext.Type = securityv1.SELinuxStrategyMustRunAs - - runAsNonRoot := validSCC() - runAsNonRoot.RunAsUser.Type = securityv1.RunAsUserStrategyMustRunAsNonRoot - - caseInsensitiveAddDrop := validSCC() - caseInsensitiveAddDrop.DefaultAddCapabilities = []kcorev1.Capability{"foo"} - caseInsensitiveAddDrop.RequiredDropCapabilities = []kcorev1.Capability{"FOO"} - - caseInsensitiveAllowedDrop := validSCC() - caseInsensitiveAllowedDrop.RequiredDropCapabilities = []kcorev1.Capability{"FOO"} - caseInsensitiveAllowedDrop.AllowedCapabilities = []kcorev1.Capability{"foo"} - - flexvolumeWhenFlexVolumesAllowed := validSCC() - flexvolumeWhenFlexVolumesAllowed.Volumes = []securityv1.FSType{securityv1.FSTypeFlexVolume} - flexvolumeWhenFlexVolumesAllowed.AllowedFlexVolumes = []securityv1.AllowedFlexVolume{ - {Driver: "example/driver1"}, - } - - flexvolumeWhenAllVolumesAllowed := validSCC() - flexvolumeWhenAllVolumesAllowed.Volumes = []securityv1.FSType{securityv1.FSTypeAll} - flexvolumeWhenAllVolumesAllowed.AllowedFlexVolumes = []securityv1.AllowedFlexVolume{ - {Driver: "example/driver2"}, - } - - validDefaultAllowPrivilegeEscalation := validSCC() - validDefaultAllowPrivilegeEscalation.DefaultAllowPrivilegeEscalation = &yes - validDefaultAllowPrivilegeEscalation.AllowPrivilegeEscalation = &yes - - withForbiddenSysctl := validSCC() - withForbiddenSysctl.ForbiddenSysctls = []string{"net.*"} - - withAllowedUnsafeSysctl := validSCC() - withAllowedUnsafeSysctl.AllowedUnsafeSysctls = []string{"net.ipv4.tcp_max_syn_backlog"} - - successCases := map[string]struct { - scc *securityv1.SecurityContextConstraints - }{ - "must run as": { - scc: mustRunAs, - }, - "run as any": { - scc: validSCC(), - }, - "run as non-root (user only)": { - scc: runAsNonRoot, - }, - "comparison for add -> drop is case sensitive": { - scc: caseInsensitiveAddDrop, - }, - "comparison for allowed -> drop is case sensitive": { - scc: caseInsensitiveAllowedDrop, - }, - "allow white-listed flexVolume when flex volumes are allowed": { - scc: flexvolumeWhenFlexVolumesAllowed, - }, - "allow white-listed flexVolume when all volumes are allowed": { - scc: flexvolumeWhenAllVolumesAllowed, - }, - "valid defaultAllowPrivilegeEscalation as true": { - scc: validDefaultAllowPrivilegeEscalation, - }, - "with network sysctls forbidden": { - scc: withForbiddenSysctl, - }, - "with unsafe net.ipv4.tcp_max_syn_backlog sysctl allowed": { - scc: withAllowedUnsafeSysctl, - }, - } - - for k, v := range successCases { - if errs := ValidateSecurityContextConstraints(v.scc); len(errs) != 0 { - t.Errorf("Expected success for %q, got %v", k, errs) - } - } -} diff --git a/openshift-kube-apiserver/admission/namespaceconditions/decorator.go b/openshift-kube-apiserver/admission/namespaceconditions/decorator.go deleted file mode 100644 index 5cfd9dae5ba6e..0000000000000 --- a/openshift-kube-apiserver/admission/namespaceconditions/decorator.go +++ /dev/null @@ -1,60 +0,0 @@ -package namespaceconditions - -import ( - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apiserver/pkg/admission" - corev1client "k8s.io/client-go/kubernetes/typed/core/v1" - corev1lister "k8s.io/client-go/listers/core/v1" -) - -// this is a list of namespaces with special meaning. The kube ones are here in particular because -// we don't control their creation or labeling on their creation -var runLevelZeroNamespaces = sets.NewString("default", "kube-system", "kube-public") -var runLevelOneNamespaces = sets.NewString("openshift-node", "openshift-infra", "openshift") - -func init() { - runLevelOneNamespaces.Insert(runLevelZeroNamespaces.List()...) -} - -// NamespaceLabelConditions provides a decorator that can delegate and conditionally add label conditions -type NamespaceLabelConditions struct { - NamespaceClient corev1client.NamespacesGetter - NamespaceLister corev1lister.NamespaceLister - - SkipLevelZeroNames sets.String - SkipLevelOneNames sets.String -} - -func (d *NamespaceLabelConditions) WithNamespaceLabelConditions(admissionPlugin admission.Interface, name string) admission.Interface { - switch { - case d.SkipLevelOneNames.Has(name): - // return a decorated admission plugin that skips runlevel 0 and 1 namespaces based on name (for known values) and - // label. - return &pluginHandlerWithNamespaceNameConditions{ - admissionPlugin: &pluginHandlerWithNamespaceLabelConditions{ - admissionPlugin: admissionPlugin, - namespaceClient: d.NamespaceClient, - namespaceLister: d.NamespaceLister, - namespaceSelector: skipRunLevelOneSelector, - }, - namespacesToExclude: runLevelOneNamespaces, - } - - case d.SkipLevelZeroNames.Has(name): - // return a decorated admission plugin that skips runlevel 0 namespaces based on name (for known values) and - // label. - return &pluginHandlerWithNamespaceNameConditions{ - admissionPlugin: &pluginHandlerWithNamespaceLabelConditions{ - admissionPlugin: admissionPlugin, - namespaceClient: d.NamespaceClient, - namespaceLister: d.NamespaceLister, - namespaceSelector: skipRunLevelZeroSelector, - }, - namespacesToExclude: runLevelZeroNamespaces, - } - - default: - return admissionPlugin - } - -} diff --git a/openshift-kube-apiserver/admission/namespaceconditions/labelcondition.go b/openshift-kube-apiserver/admission/namespaceconditions/labelcondition.go deleted file mode 100644 index c3ebaf5895306..0000000000000 --- a/openshift-kube-apiserver/admission/namespaceconditions/labelcondition.go +++ /dev/null @@ -1,125 +0,0 @@ -package namespaceconditions - -import ( - "context" - - apierrors "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/api/meta" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apiserver/pkg/admission" - corev1client "k8s.io/client-go/kubernetes/typed/core/v1" - corev1lister "k8s.io/client-go/listers/core/v1" -) - -const runLevelLabel = "openshift.io/run-level" - -var ( - skipRunLevelZeroSelector labels.Selector - skipRunLevelOneSelector labels.Selector -) - -func init() { - var err error - skipRunLevelZeroSelector, err = labels.Parse(runLevelLabel + " notin ( 0 )") - if err != nil { - panic(err) - } - skipRunLevelOneSelector, err = labels.Parse(runLevelLabel + " notin ( 0,1 )") - if err != nil { - panic(err) - } -} - -// pluginHandlerWithNamespaceLabelConditions wraps an admission plugin in a conditional skip based on namespace labels -type pluginHandlerWithNamespaceLabelConditions struct { - admissionPlugin admission.Interface - namespaceClient corev1client.NamespacesGetter - namespaceLister corev1lister.NamespaceLister - namespaceSelector labels.Selector -} - -var _ admission.ValidationInterface = &pluginHandlerWithNamespaceLabelConditions{} -var _ admission.MutationInterface = &pluginHandlerWithNamespaceLabelConditions{} - -func (p pluginHandlerWithNamespaceLabelConditions) Handles(operation admission.Operation) bool { - return p.admissionPlugin.Handles(operation) -} - -// Admit performs a mutating admission control check and emit metrics. -func (p pluginHandlerWithNamespaceLabelConditions) Admit(ctx context.Context, a admission.Attributes, o admission.ObjectInterfaces) error { - if !p.shouldRunAdmission(a) { - return nil - } - - mutatingHandler, ok := p.admissionPlugin.(admission.MutationInterface) - if !ok { - return nil - } - return mutatingHandler.Admit(ctx, a, o) -} - -// Validate performs a non-mutating admission control check and emits metrics. -func (p pluginHandlerWithNamespaceLabelConditions) Validate(ctx context.Context, a admission.Attributes, o admission.ObjectInterfaces) error { - if !p.shouldRunAdmission(a) { - return nil - } - - validatingHandler, ok := p.admissionPlugin.(admission.ValidationInterface) - if !ok { - return nil - } - return validatingHandler.Validate(ctx, a, o) -} - -// MatchNamespaceSelector decideds whether the request matches the -// namespaceSelctor of the webhook. Only when they match, the webhook is called. -func (p pluginHandlerWithNamespaceLabelConditions) shouldRunAdmission(attr admission.Attributes) bool { - namespaceName := attr.GetNamespace() - if len(namespaceName) == 0 && attr.GetResource().Resource != "namespaces" { - // cluster scoped resources always run admission - return true - } - namespaceLabels, err := p.getNamespaceLabels(attr) - if err != nil { - // default to running the hook so we don't leak namespace existence information - return true - } - // TODO: adding an LRU cache to cache the match decision - return p.namespaceSelector.Matches(labels.Set(namespaceLabels)) -} - -// getNamespaceLabels gets the labels of the namespace related to the attr. -func (p pluginHandlerWithNamespaceLabelConditions) getNamespaceLabels(attr admission.Attributes) (map[string]string, error) { - // If the request itself is creating or updating a namespace, then get the - // labels from attr.Object, because namespaceLister doesn't have the latest - // namespace yet. - // - // However, if the request is deleting a namespace, then get the label from - // the namespace in the namespaceLister, because a delete request is not - // going to change the object, and attr.Object will be a DeleteOptions - // rather than a namespace object. - if attr.GetResource().Resource == "namespaces" && - len(attr.GetSubresource()) == 0 && - (attr.GetOperation() == admission.Create || attr.GetOperation() == admission.Update) { - accessor, err := meta.Accessor(attr.GetObject()) - if err != nil { - return nil, err - } - return accessor.GetLabels(), nil - } - - namespaceName := attr.GetNamespace() - namespace, err := p.namespaceLister.Get(namespaceName) - if err != nil && !apierrors.IsNotFound(err) { - return nil, err - } - if apierrors.IsNotFound(err) { - // in case of latency in our caches, make a call direct to storage to verify that it truly exists or not - namespace, err = p.namespaceClient.Namespaces().Get(context.TODO(), namespaceName, metav1.GetOptions{}) - if err != nil { - return nil, err - } - } - return namespace.Labels, nil -} diff --git a/openshift-kube-apiserver/admission/namespaceconditions/labelcondition_test.go b/openshift-kube-apiserver/admission/namespaceconditions/labelcondition_test.go deleted file mode 100644 index 31474a4b7ee93..0000000000000 --- a/openshift-kube-apiserver/admission/namespaceconditions/labelcondition_test.go +++ /dev/null @@ -1,97 +0,0 @@ -package namespaceconditions - -import ( - "reflect" - "testing" - - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apiserver/pkg/admission" -) - -type fakeNamespaceLister struct { - namespaces map[string]*corev1.Namespace -} - -func (f fakeNamespaceLister) List(selector labels.Selector) (ret []*corev1.Namespace, err error) { - return nil, nil -} -func (f fakeNamespaceLister) Get(name string) (*corev1.Namespace, error) { - ns, ok := f.namespaces[name] - if ok { - return ns, nil - } - return nil, errors.NewNotFound(corev1.Resource("namespaces"), name) -} - -func TestGetNamespaceLabels(t *testing.T) { - namespace1Labels := map[string]string{ - "runlevel": "1", - } - namespace1 := corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: "1", - Labels: namespace1Labels, - }, - } - namespace2Labels := map[string]string{ - "runlevel": "2", - } - namespace2 := corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: "2", - Labels: namespace2Labels, - }, - } - namespaceLister := fakeNamespaceLister{map[string]*corev1.Namespace{ - "1": &namespace1, - }, - } - - tests := []struct { - name string - attr admission.Attributes - expectedLabels map[string]string - }{ - { - name: "request is for creating namespace, the labels should be from the object itself", - attr: admission.NewAttributesRecord(&namespace2, nil, schema.GroupVersionKind{}, "", namespace2.Name, schema.GroupVersionResource{Resource: "namespaces"}, "", admission.Create, nil, false, nil), - expectedLabels: namespace2Labels, - }, - { - name: "request is for updating namespace, the labels should be from the new object", - attr: admission.NewAttributesRecord(&namespace2, nil, schema.GroupVersionKind{}, namespace2.Name, namespace2.Name, schema.GroupVersionResource{Resource: "namespaces"}, "", admission.Update, nil, false, nil), - expectedLabels: namespace2Labels, - }, - { - name: "request is for deleting namespace, the labels should be from the cache", - attr: admission.NewAttributesRecord(&namespace2, nil, schema.GroupVersionKind{}, namespace1.Name, namespace1.Name, schema.GroupVersionResource{Resource: "namespaces"}, "", admission.Delete, nil, false, nil), - expectedLabels: namespace1Labels, - }, - { - name: "request is for namespace/finalizer", - attr: admission.NewAttributesRecord(nil, nil, schema.GroupVersionKind{}, namespace1.Name, "mock-name", schema.GroupVersionResource{Resource: "namespaces"}, "finalizers", admission.Create, nil, false, nil), - expectedLabels: namespace1Labels, - }, - { - name: "request is for pod", - attr: admission.NewAttributesRecord(nil, nil, schema.GroupVersionKind{}, namespace1.Name, "mock-name", schema.GroupVersionResource{Resource: "pods"}, "", admission.Create, nil, false, nil), - expectedLabels: namespace1Labels, - }, - } - matcher := pluginHandlerWithNamespaceLabelConditions{ - namespaceLister: namespaceLister, - } - for _, tt := range tests { - actualLabels, err := matcher.getNamespaceLabels(tt.attr) - if err != nil { - t.Error(err) - } - if !reflect.DeepEqual(actualLabels, tt.expectedLabels) { - t.Errorf("expected labels to be %#v, got %#v", tt.expectedLabels, actualLabels) - } - } -} diff --git a/openshift-kube-apiserver/admission/namespaceconditions/namecondition.go b/openshift-kube-apiserver/admission/namespaceconditions/namecondition.go deleted file mode 100644 index 848cef4d13ac4..0000000000000 --- a/openshift-kube-apiserver/admission/namespaceconditions/namecondition.go +++ /dev/null @@ -1,60 +0,0 @@ -package namespaceconditions - -import ( - "context" - - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apiserver/pkg/admission" -) - -// pluginHandlerWithNamespaceNameConditions skips running admission plugins if they deal in the namespaceToExclude list -type pluginHandlerWithNamespaceNameConditions struct { - admissionPlugin admission.Interface - namespacesToExclude sets.String -} - -var _ admission.ValidationInterface = &pluginHandlerWithNamespaceNameConditions{} -var _ admission.MutationInterface = &pluginHandlerWithNamespaceNameConditions{} - -func (p pluginHandlerWithNamespaceNameConditions) Handles(operation admission.Operation) bool { - return p.admissionPlugin.Handles(operation) -} - -// Admit performs a mutating admission control check and emit metrics. -func (p pluginHandlerWithNamespaceNameConditions) Admit(ctx context.Context, a admission.Attributes, o admission.ObjectInterfaces) error { - if !p.shouldRunAdmission(a) { - return nil - } - - mutatingHandler, ok := p.admissionPlugin.(admission.MutationInterface) - if !ok { - return nil - } - return mutatingHandler.Admit(ctx, a, o) -} - -// Validate performs a non-mutating admission control check and emits metrics. -func (p pluginHandlerWithNamespaceNameConditions) Validate(ctx context.Context, a admission.Attributes, o admission.ObjectInterfaces) error { - if !p.shouldRunAdmission(a) { - return nil - } - - validatingHandler, ok := p.admissionPlugin.(admission.ValidationInterface) - if !ok { - return nil - } - return validatingHandler.Validate(ctx, a, o) -} - -func (p pluginHandlerWithNamespaceNameConditions) shouldRunAdmission(attr admission.Attributes) bool { - namespaceName := attr.GetNamespace() - if p.namespacesToExclude.Has(namespaceName) { - return false - } - if (attr.GetResource().GroupResource() == schema.GroupResource{Resource: "namespaces"}) && p.namespacesToExclude.Has(attr.GetName()) { - return false - } - - return true -} diff --git a/openshift-kube-apiserver/admission/network/apis/externalipranger/doc.go b/openshift-kube-apiserver/admission/network/apis/externalipranger/doc.go deleted file mode 100644 index 4ef9330be1224..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/externalipranger/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// +k8s:deepcopy-gen=package,register - -// Package externalipranger is the internal version of the API. -package externalipranger diff --git a/openshift-kube-apiserver/admission/network/apis/externalipranger/register.go b/openshift-kube-apiserver/admission/network/apis/externalipranger/register.go deleted file mode 100644 index fe92abf523c1e..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/externalipranger/register.go +++ /dev/null @@ -1,20 +0,0 @@ -package externalipranger - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var GroupVersion = schema.GroupVersion{Group: "network.openshift.io", Version: runtime.APIVersionInternal} - -var ( - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - Install = schemeBuilder.AddToScheme -) - -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &ExternalIPRangerAdmissionConfig{}, - ) - return nil -} diff --git a/openshift-kube-apiserver/admission/network/apis/externalipranger/types.go b/openshift-kube-apiserver/admission/network/apis/externalipranger/types.go deleted file mode 100644 index f127ca27aadcb..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/externalipranger/types.go +++ /dev/null @@ -1,20 +0,0 @@ -package externalipranger - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// RestrictedEndpointsAdmissionConfig is the configuration for which CIDRs services can't manage -type ExternalIPRangerAdmissionConfig struct { - metav1.TypeMeta - - // ExternalIPNetworkCIDRs controls what values are acceptable for the service external IP field. If empty, no externalIP - // may be set. It may contain a list of CIDRs which are checked for access. If a CIDR is prefixed with !, IPs in that - // CIDR will be rejected. Rejections will be applied first, then the IP checked against one of the allowed CIDRs. You - // should ensure this range does not overlap with your nodes, pods, or service CIDRs for security reasons. - ExternalIPNetworkCIDRs []string - // AllowIngressIP indicates that ingress IPs should be allowed - AllowIngressIP bool -} diff --git a/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/doc.go b/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/doc.go deleted file mode 100644 index 79476f394930a..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/doc.go +++ /dev/null @@ -1,5 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=k8s.io/kubernetes/openshift-kube-apiserver/admission/network/apis/externalipranger - -// Package v1 is the v1 version of the API. -package v1 diff --git a/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/register.go b/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/register.go deleted file mode 100644 index f55b5a5b494df..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/register.go +++ /dev/null @@ -1,24 +0,0 @@ -package v1 - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/network/apis/restrictedendpoints" -) - -var GroupVersion = schema.GroupVersion{Group: "network.openshift.io", Version: "v1"} - -var ( - localSchemeBuilder = runtime.NewSchemeBuilder( - addKnownTypes, - restrictedendpoints.Install, - ) - Install = localSchemeBuilder.AddToScheme -) - -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &ExternalIPRangerAdmissionConfig{}, - ) - return nil -} diff --git a/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/types.go b/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/types.go deleted file mode 100644 index 0fb8ea4ca830a..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/types.go +++ /dev/null @@ -1,20 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ExternalIPRangerAdmissionConfig is the configuration for which CIDRs services can't manage -type ExternalIPRangerAdmissionConfig struct { - metav1.TypeMeta `json:",inline"` - - // ExternalIPNetworkCIDRs controls what values are acceptable for the service external IP field. If empty, no externalIP - // may be set. It may contain a list of CIDRs which are checked for access. If a CIDR is prefixed with !, IPs in that - // CIDR will be rejected. Rejections will be applied first, then the IP checked against one of the allowed CIDRs. You - // should ensure this range does not overlap with your nodes, pods, or service CIDRs for security reasons. - ExternalIPNetworkCIDRs []string `json:"externalIPNetworkCIDRs"` - // AllowIngressIP indicates that ingress IPs should be allowed - AllowIngressIP bool `json:"allowIngressIP"` -} diff --git a/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/zz_generated.conversion.go b/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/zz_generated.conversion.go deleted file mode 100644 index 8ec11178435ca..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/zz_generated.conversion.go +++ /dev/null @@ -1,71 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 conversion-gen. DO NOT EDIT. - -package v1 - -import ( - unsafe "unsafe" - - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - externalipranger "k8s.io/kubernetes/openshift-kube-apiserver/admission/network/apis/externalipranger" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*ExternalIPRangerAdmissionConfig)(nil), (*externalipranger.ExternalIPRangerAdmissionConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_ExternalIPRangerAdmissionConfig_To_externalipranger_ExternalIPRangerAdmissionConfig(a.(*ExternalIPRangerAdmissionConfig), b.(*externalipranger.ExternalIPRangerAdmissionConfig), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*externalipranger.ExternalIPRangerAdmissionConfig)(nil), (*ExternalIPRangerAdmissionConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_externalipranger_ExternalIPRangerAdmissionConfig_To_v1_ExternalIPRangerAdmissionConfig(a.(*externalipranger.ExternalIPRangerAdmissionConfig), b.(*ExternalIPRangerAdmissionConfig), scope) - }); err != nil { - return err - } - return nil -} - -func autoConvert_v1_ExternalIPRangerAdmissionConfig_To_externalipranger_ExternalIPRangerAdmissionConfig(in *ExternalIPRangerAdmissionConfig, out *externalipranger.ExternalIPRangerAdmissionConfig, s conversion.Scope) error { - out.ExternalIPNetworkCIDRs = *(*[]string)(unsafe.Pointer(&in.ExternalIPNetworkCIDRs)) - out.AllowIngressIP = in.AllowIngressIP - return nil -} - -// Convert_v1_ExternalIPRangerAdmissionConfig_To_externalipranger_ExternalIPRangerAdmissionConfig is an autogenerated conversion function. -func Convert_v1_ExternalIPRangerAdmissionConfig_To_externalipranger_ExternalIPRangerAdmissionConfig(in *ExternalIPRangerAdmissionConfig, out *externalipranger.ExternalIPRangerAdmissionConfig, s conversion.Scope) error { - return autoConvert_v1_ExternalIPRangerAdmissionConfig_To_externalipranger_ExternalIPRangerAdmissionConfig(in, out, s) -} - -func autoConvert_externalipranger_ExternalIPRangerAdmissionConfig_To_v1_ExternalIPRangerAdmissionConfig(in *externalipranger.ExternalIPRangerAdmissionConfig, out *ExternalIPRangerAdmissionConfig, s conversion.Scope) error { - out.ExternalIPNetworkCIDRs = *(*[]string)(unsafe.Pointer(&in.ExternalIPNetworkCIDRs)) - out.AllowIngressIP = in.AllowIngressIP - return nil -} - -// Convert_externalipranger_ExternalIPRangerAdmissionConfig_To_v1_ExternalIPRangerAdmissionConfig is an autogenerated conversion function. -func Convert_externalipranger_ExternalIPRangerAdmissionConfig_To_v1_ExternalIPRangerAdmissionConfig(in *externalipranger.ExternalIPRangerAdmissionConfig, out *ExternalIPRangerAdmissionConfig, s conversion.Scope) error { - return autoConvert_externalipranger_ExternalIPRangerAdmissionConfig_To_v1_ExternalIPRangerAdmissionConfig(in, out, s) -} diff --git a/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/zz_generated.deepcopy.go deleted file mode 100644 index 34eaa7cff663f..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/externalipranger/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,55 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - 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 *ExternalIPRangerAdmissionConfig) DeepCopyInto(out *ExternalIPRangerAdmissionConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.ExternalIPNetworkCIDRs != nil { - in, out := &in.ExternalIPNetworkCIDRs, &out.ExternalIPNetworkCIDRs - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalIPRangerAdmissionConfig. -func (in *ExternalIPRangerAdmissionConfig) DeepCopy() *ExternalIPRangerAdmissionConfig { - if in == nil { - return nil - } - out := new(ExternalIPRangerAdmissionConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ExternalIPRangerAdmissionConfig) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/openshift-kube-apiserver/admission/network/apis/externalipranger/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/network/apis/externalipranger/zz_generated.deepcopy.go deleted file mode 100644 index 55601d78cf56c..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/externalipranger/zz_generated.deepcopy.go +++ /dev/null @@ -1,55 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 deepcopy-gen. DO NOT EDIT. - -package externalipranger - -import ( - 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 *ExternalIPRangerAdmissionConfig) DeepCopyInto(out *ExternalIPRangerAdmissionConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.ExternalIPNetworkCIDRs != nil { - in, out := &in.ExternalIPNetworkCIDRs, &out.ExternalIPNetworkCIDRs - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalIPRangerAdmissionConfig. -func (in *ExternalIPRangerAdmissionConfig) DeepCopy() *ExternalIPRangerAdmissionConfig { - if in == nil { - return nil - } - out := new(ExternalIPRangerAdmissionConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ExternalIPRangerAdmissionConfig) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/doc.go b/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/doc.go deleted file mode 100644 index ff46fb9f13d76..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// +k8s:deepcopy-gen=package,register - -// Package restrictedendpoints is the internal version of the API. -package restrictedendpoints diff --git a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/register.go b/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/register.go deleted file mode 100644 index 171a4b1be5182..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/register.go +++ /dev/null @@ -1,20 +0,0 @@ -package restrictedendpoints - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var GroupVersion = schema.GroupVersion{Group: "network.openshift.io", Version: runtime.APIVersionInternal} - -var ( - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - Install = schemeBuilder.AddToScheme -) - -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &RestrictedEndpointsAdmissionConfig{}, - ) - return nil -} diff --git a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/types.go b/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/types.go deleted file mode 100644 index e205762215ba1..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/types.go +++ /dev/null @@ -1,15 +0,0 @@ -package restrictedendpoints - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// RestrictedEndpointsAdmissionConfig is the configuration for which CIDRs services can't manage -type RestrictedEndpointsAdmissionConfig struct { - metav1.TypeMeta - - // RestrictedCIDRs indicates what CIDRs will be disallowed for services. - RestrictedCIDRs []string -} diff --git a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/doc.go b/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/doc.go deleted file mode 100644 index 0dac22208df49..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/doc.go +++ /dev/null @@ -1,5 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=k8s.io/kubernetes/openshift-kube-apiserver/admission/network/apis/restrictedendpoints - -// Package v1 is the v1 version of the API. -package v1 diff --git a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/register.go b/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/register.go deleted file mode 100644 index f924353fe24d3..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/register.go +++ /dev/null @@ -1,24 +0,0 @@ -package v1 - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/network/apis/restrictedendpoints" -) - -var GroupVersion = schema.GroupVersion{Group: "network.openshift.io", Version: "v1"} - -var ( - localSchemeBuilder = runtime.NewSchemeBuilder( - addKnownTypes, - restrictedendpoints.Install, - ) - Install = localSchemeBuilder.AddToScheme -) - -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &RestrictedEndpointsAdmissionConfig{}, - ) - return nil -} diff --git a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/types.go b/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/types.go deleted file mode 100644 index f665aa1e73c2f..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/types.go +++ /dev/null @@ -1,15 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// RestrictedEndpointsAdmissionConfig is the configuration for which CIDRs services can't manage -type RestrictedEndpointsAdmissionConfig struct { - metav1.TypeMeta `json:",inline"` - - // RestrictedCIDRs indicates what CIDRs will be disallowed for services. - RestrictedCIDRs []string `json:"restrictedCIDRs"` -} diff --git a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/zz_generated.conversion.go b/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/zz_generated.conversion.go deleted file mode 100644 index 413965b8ee704..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/zz_generated.conversion.go +++ /dev/null @@ -1,69 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 conversion-gen. DO NOT EDIT. - -package v1 - -import ( - unsafe "unsafe" - - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - restrictedendpoints "k8s.io/kubernetes/openshift-kube-apiserver/admission/network/apis/restrictedendpoints" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*RestrictedEndpointsAdmissionConfig)(nil), (*restrictedendpoints.RestrictedEndpointsAdmissionConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_RestrictedEndpointsAdmissionConfig_To_restrictedendpoints_RestrictedEndpointsAdmissionConfig(a.(*RestrictedEndpointsAdmissionConfig), b.(*restrictedendpoints.RestrictedEndpointsAdmissionConfig), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*restrictedendpoints.RestrictedEndpointsAdmissionConfig)(nil), (*RestrictedEndpointsAdmissionConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_restrictedendpoints_RestrictedEndpointsAdmissionConfig_To_v1_RestrictedEndpointsAdmissionConfig(a.(*restrictedendpoints.RestrictedEndpointsAdmissionConfig), b.(*RestrictedEndpointsAdmissionConfig), scope) - }); err != nil { - return err - } - return nil -} - -func autoConvert_v1_RestrictedEndpointsAdmissionConfig_To_restrictedendpoints_RestrictedEndpointsAdmissionConfig(in *RestrictedEndpointsAdmissionConfig, out *restrictedendpoints.RestrictedEndpointsAdmissionConfig, s conversion.Scope) error { - out.RestrictedCIDRs = *(*[]string)(unsafe.Pointer(&in.RestrictedCIDRs)) - return nil -} - -// Convert_v1_RestrictedEndpointsAdmissionConfig_To_restrictedendpoints_RestrictedEndpointsAdmissionConfig is an autogenerated conversion function. -func Convert_v1_RestrictedEndpointsAdmissionConfig_To_restrictedendpoints_RestrictedEndpointsAdmissionConfig(in *RestrictedEndpointsAdmissionConfig, out *restrictedendpoints.RestrictedEndpointsAdmissionConfig, s conversion.Scope) error { - return autoConvert_v1_RestrictedEndpointsAdmissionConfig_To_restrictedendpoints_RestrictedEndpointsAdmissionConfig(in, out, s) -} - -func autoConvert_restrictedendpoints_RestrictedEndpointsAdmissionConfig_To_v1_RestrictedEndpointsAdmissionConfig(in *restrictedendpoints.RestrictedEndpointsAdmissionConfig, out *RestrictedEndpointsAdmissionConfig, s conversion.Scope) error { - out.RestrictedCIDRs = *(*[]string)(unsafe.Pointer(&in.RestrictedCIDRs)) - return nil -} - -// Convert_restrictedendpoints_RestrictedEndpointsAdmissionConfig_To_v1_RestrictedEndpointsAdmissionConfig is an autogenerated conversion function. -func Convert_restrictedendpoints_RestrictedEndpointsAdmissionConfig_To_v1_RestrictedEndpointsAdmissionConfig(in *restrictedendpoints.RestrictedEndpointsAdmissionConfig, out *RestrictedEndpointsAdmissionConfig, s conversion.Scope) error { - return autoConvert_restrictedendpoints_RestrictedEndpointsAdmissionConfig_To_v1_RestrictedEndpointsAdmissionConfig(in, out, s) -} diff --git a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/zz_generated.deepcopy.go deleted file mode 100644 index d63f90426e6f9..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,55 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - 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 *RestrictedEndpointsAdmissionConfig) DeepCopyInto(out *RestrictedEndpointsAdmissionConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.RestrictedCIDRs != nil { - in, out := &in.RestrictedCIDRs, &out.RestrictedCIDRs - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestrictedEndpointsAdmissionConfig. -func (in *RestrictedEndpointsAdmissionConfig) DeepCopy() *RestrictedEndpointsAdmissionConfig { - if in == nil { - return nil - } - out := new(RestrictedEndpointsAdmissionConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *RestrictedEndpointsAdmissionConfig) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/zz_generated.deepcopy.go deleted file mode 100644 index f6e62a3e11b7f..0000000000000 --- a/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/zz_generated.deepcopy.go +++ /dev/null @@ -1,55 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 deepcopy-gen. DO NOT EDIT. - -package restrictedendpoints - -import ( - 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 *RestrictedEndpointsAdmissionConfig) DeepCopyInto(out *RestrictedEndpointsAdmissionConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.RestrictedCIDRs != nil { - in, out := &in.RestrictedCIDRs, &out.RestrictedCIDRs - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestrictedEndpointsAdmissionConfig. -func (in *RestrictedEndpointsAdmissionConfig) DeepCopy() *RestrictedEndpointsAdmissionConfig { - if in == nil { - return nil - } - out := new(RestrictedEndpointsAdmissionConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *RestrictedEndpointsAdmissionConfig) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/openshift-kube-apiserver/admission/network/externalipranger/externalip_admission.go b/openshift-kube-apiserver/admission/network/externalipranger/externalip_admission.go deleted file mode 100644 index 79a1be9cee7eb..0000000000000 --- a/openshift-kube-apiserver/admission/network/externalipranger/externalip_admission.go +++ /dev/null @@ -1,208 +0,0 @@ -package externalipranger - -import ( - "context" - "fmt" - "io" - "net" - "strings" - - "github.com/openshift/library-go/pkg/config/helpers" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/admission/initializer" - "k8s.io/apiserver/pkg/authorization/authorizer" - "k8s.io/klog/v2" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/network/apis/externalipranger" - v1 "k8s.io/kubernetes/openshift-kube-apiserver/admission/network/apis/externalipranger/v1" - kapi "k8s.io/kubernetes/pkg/apis/core" -) - -const ExternalIPPluginName = "network.openshift.io/ExternalIPRanger" - -func RegisterExternalIP(plugins *admission.Plugins) { - plugins.Register("network.openshift.io/ExternalIPRanger", - func(config io.Reader) (admission.Interface, error) { - pluginConfig, err := readConfig(config) - if err != nil { - return nil, err - } - if pluginConfig == nil { - klog.Infof("Admission plugin %q is not configured so it will be disabled.", ExternalIPPluginName) - return nil, nil - } - - // this needs to be moved upstream to be part of core config - reject, admit, err := ParseRejectAdmitCIDRRules(pluginConfig.ExternalIPNetworkCIDRs) - if err != nil { - // should have been caught with validation - return nil, err - } - - return NewExternalIPRanger(reject, admit, pluginConfig.AllowIngressIP), nil - }) -} - -func readConfig(reader io.Reader) (*externalipranger.ExternalIPRangerAdmissionConfig, error) { - obj, err := helpers.ReadYAMLToInternal(reader, externalipranger.Install, v1.Install) - if err != nil { - return nil, err - } - if obj == nil { - return nil, nil - } - config, ok := obj.(*externalipranger.ExternalIPRangerAdmissionConfig) - if !ok { - return nil, fmt.Errorf("unexpected config object: %#v", obj) - } - // No validation needed since config is just list of strings - return config, nil -} - -type externalIPRanger struct { - *admission.Handler - reject []*net.IPNet - admit []*net.IPNet - authorizer authorizer.Authorizer - allowIngressIP bool -} - -var _ admission.Interface = &externalIPRanger{} -var _ admission.ValidationInterface = &externalIPRanger{} -var _ = initializer.WantsAuthorizer(&externalIPRanger{}) - -// ParseRejectAdmitCIDRRules calculates a blacklist and whitelist from a list of string CIDR rules (treating -// a leading ! as a negation). Returns an error if any rule is invalid. -func ParseRejectAdmitCIDRRules(rules []string) (reject, admit []*net.IPNet, err error) { - for _, s := range rules { - negate := false - if strings.HasPrefix(s, "!") { - negate = true - s = s[1:] - } - _, cidr, err := net.ParseCIDR(s) - if err != nil { - return nil, nil, err - } - if negate { - reject = append(reject, cidr) - } else { - admit = append(admit, cidr) - } - } - return reject, admit, nil -} - -// NewConstraint creates a new SCC constraint admission plugin. -func NewExternalIPRanger(reject, admit []*net.IPNet, allowIngressIP bool) *externalIPRanger { - return &externalIPRanger{ - Handler: admission.NewHandler(admission.Create, admission.Update), - reject: reject, - admit: admit, - allowIngressIP: allowIngressIP, - } -} - -func (r *externalIPRanger) SetAuthorizer(a authorizer.Authorizer) { - r.authorizer = a -} - -func (r *externalIPRanger) ValidateInitialization() error { - if r.authorizer == nil { - return fmt.Errorf("missing authorizer") - } - return nil -} - -// NetworkSlice is a helper for checking whether an IP is contained in a range -// of networks. -type NetworkSlice []*net.IPNet - -func (s NetworkSlice) Contains(ip net.IP) bool { - for _, cidr := range s { - if cidr.Contains(ip) { - return true - } - } - return false -} - -// Admit determines if the service should be admitted based on the configured network CIDR. -func (r *externalIPRanger) Validate(ctx context.Context, a admission.Attributes, _ admission.ObjectInterfaces) error { - if a.GetResource().GroupResource() != kapi.Resource("services") { - return nil - } - - svc, ok := a.GetObject().(*kapi.Service) - // if we can't convert then we don't handle this object so just return - if !ok { - return nil - } - - // Determine if an ingress ip address should be allowed as an - // external ip by checking the loadbalancer status of the previous - // object state. Only updates need to be validated against the - // ingress ip since the loadbalancer status cannot be set on - // create. - ingressIP := "" - retrieveIngressIP := a.GetOperation() == admission.Update && - r.allowIngressIP && svc.Spec.Type == kapi.ServiceTypeLoadBalancer - if retrieveIngressIP { - old, ok := a.GetOldObject().(*kapi.Service) - ipPresent := ok && old != nil && len(old.Status.LoadBalancer.Ingress) > 0 - if ipPresent { - ingressIP = old.Status.LoadBalancer.Ingress[0].IP - } - } - - var errs field.ErrorList - switch { - // administrator disabled externalIPs - case len(svc.Spec.ExternalIPs) > 0 && len(r.admit) == 0: - onlyIngressIP := len(svc.Spec.ExternalIPs) == 1 && svc.Spec.ExternalIPs[0] == ingressIP - if !onlyIngressIP { - errs = append(errs, field.Forbidden(field.NewPath("spec", "externalIPs"), "externalIPs have been disabled")) - } - // administrator has limited the range - case len(svc.Spec.ExternalIPs) > 0 && len(r.admit) > 0: - for i, s := range svc.Spec.ExternalIPs { - ip := net.ParseIP(s) - if ip == nil { - errs = append(errs, field.Forbidden(field.NewPath("spec", "externalIPs").Index(i), "externalIPs must be a valid address")) - continue - } - notIngressIP := s != ingressIP - if (NetworkSlice(r.reject).Contains(ip) || !NetworkSlice(r.admit).Contains(ip)) && notIngressIP { - errs = append(errs, field.Forbidden(field.NewPath("spec", "externalIPs").Index(i), "externalIP is not allowed")) - continue - } - } - } - - if len(errs) > 0 { - //if there are errors reported, resort to RBAC check to see - //if this is an admin user who can over-ride the check - allow, err := r.checkAccess(ctx, a) - if err != nil { - return err - } - if !allow { - return admission.NewForbidden(a, errs.ToAggregate()) - } - } - - return nil -} - -func (r *externalIPRanger) checkAccess(ctx context.Context, attr admission.Attributes) (bool, error) { - authzAttr := authorizer.AttributesRecord{ - User: attr.GetUserInfo(), - Verb: "create", - Resource: "service", - Subresource: "externalips", - APIGroup: "network.openshift.io", - ResourceRequest: true, - } - authorized, _, err := r.authorizer.Authorize(ctx, authzAttr) - return authorized == authorizer.DecisionAllow, err -} diff --git a/openshift-kube-apiserver/admission/network/externalipranger/externalip_admission_test.go b/openshift-kube-apiserver/admission/network/externalipranger/externalip_admission_test.go deleted file mode 100644 index 5b953409b48f3..0000000000000 --- a/openshift-kube-apiserver/admission/network/externalipranger/externalip_admission_test.go +++ /dev/null @@ -1,321 +0,0 @@ -package externalipranger - -import ( - "context" - "fmt" - "net" - "strings" - "testing" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/authorization/authorizer" - - "k8s.io/apiserver/pkg/authentication/user" - - kapi "k8s.io/kubernetes/pkg/apis/core" - "k8s.io/kubernetes/pkg/serviceaccount" -) - -type fakeTestAuthorizer struct { - t *testing.T -} - -func fakeAuthorizer(t *testing.T) authorizer.Authorizer { - return &fakeTestAuthorizer{ - t: t, - } -} - -func (a *fakeTestAuthorizer) Authorize(_ context.Context, attributes authorizer.Attributes) (authorizer.Decision, string, error) { - ui := attributes.GetUser() - if ui == nil { - return authorizer.DecisionNoOpinion, "", fmt.Errorf("No valid UserInfo for Context") - } - // system:serviceaccount:test:admin user aka admin user is allowed to set - // external IPs - if ui.GetName() == "system:serviceaccount:test:admin" { - return authorizer.DecisionAllow, "", nil - } - // Non test:admin user aka without admin privileges: - return authorizer.DecisionDeny, "", nil -} - -// TestAdmission verifies various scenarios involving pod/project/global node label selectors -func TestAdmission(t *testing.T) { - svc := &kapi.Service{ - ObjectMeta: metav1.ObjectMeta{Name: "test"}, - } - var oldSvc *kapi.Service - - _, ipv4, err := net.ParseCIDR("172.0.0.0/16") - if err != nil { - t.Fatal(err) - } - _, ipv4subset, err := net.ParseCIDR("172.0.1.0/24") - if err != nil { - t.Fatal(err) - } - _, ipv4offset, err := net.ParseCIDR("172.200.0.0/24") - if err != nil { - t.Fatal(err) - } - _, none, err := net.ParseCIDR("0.0.0.0/32") - if err != nil { - t.Fatal(err) - } - _, all, err := net.ParseCIDR("0.0.0.0/0") - if err != nil { - t.Fatal(err) - } - - tests := []struct { - testName string - rejects, admits []*net.IPNet - op admission.Operation - externalIPs []string - admit bool - errFn func(err error) bool - loadBalancer bool - ingressIP string - userinfo user.Info - }{ - { - admit: true, - op: admission.Create, - testName: "No external IPs on create for test:ordinary-user user", - userinfo: serviceaccount.UserInfo("test", "ordinary-user", ""), - }, - { - admit: true, - op: admission.Update, - testName: "No external IPs on update for test:admin user", - userinfo: serviceaccount.UserInfo("test", "ordinary-user", ""), - }, - { - admit: false, - externalIPs: []string{"1.2.3.4"}, - op: admission.Create, - testName: "No external IPs allowed on create for test:ordinary-user user", - errFn: func(err error) bool { return strings.Contains(err.Error(), "externalIPs have been disabled") }, - userinfo: serviceaccount.UserInfo("test", "ordinary-user", ""), - }, - { - admit: true, - externalIPs: []string{"1.2.3.4"}, - op: admission.Create, - testName: "External IPs allowed on create for test:admin user", - userinfo: serviceaccount.UserInfo("test", "admin", ""), - }, - { - admit: false, - externalIPs: []string{"1.2.3.4"}, - op: admission.Update, - testName: "No external IPs allowed on update", - errFn: func(err error) bool { return strings.Contains(err.Error(), "externalIPs have been disabled") }, - userinfo: serviceaccount.UserInfo("test", "ordinary-user", ""), - }, - { - admit: true, - externalIPs: []string{"1.2.3.4"}, - op: admission.Update, - testName: "External IPs allowed on update for test:admin user", - userinfo: serviceaccount.UserInfo("test", "admin", ""), - }, - { - admit: false, - admits: []*net.IPNet{ipv4}, - externalIPs: []string{"1.2.3.4"}, - op: admission.Create, - testName: "IP out of range on create", - errFn: func(err error) bool { - return strings.Contains(err.Error(), "externalIP is not allowed") && - strings.Contains(err.Error(), "spec.externalIPs[0]") - }, - userinfo: serviceaccount.UserInfo("test", "ordinary-user", ""), - }, - { - admit: false, - admits: []*net.IPNet{ipv4}, - externalIPs: []string{"1.2.3.4"}, - op: admission.Update, - testName: "IP out of range on update", - errFn: func(err error) bool { - return strings.Contains(err.Error(), "externalIP is not allowed") && - strings.Contains(err.Error(), "spec.externalIPs[0]") - }, - userinfo: serviceaccount.UserInfo("test", "ordinary-user", ""), - }, - { - admit: false, - admits: []*net.IPNet{ipv4}, - rejects: []*net.IPNet{ipv4subset}, - externalIPs: []string{"172.0.1.1"}, - op: admission.Update, - testName: "IP out of range due to blacklist", - errFn: func(err error) bool { - return strings.Contains(err.Error(), "externalIP is not allowed") && - strings.Contains(err.Error(), "spec.externalIPs[0]") - }, - userinfo: serviceaccount.UserInfo("test", "ordinary-user", ""), - }, - { - admit: false, - admits: []*net.IPNet{ipv4}, - rejects: []*net.IPNet{ipv4offset}, - externalIPs: []string{"172.199.1.1"}, - op: admission.Update, - testName: "IP not in reject or admit", - errFn: func(err error) bool { - return strings.Contains(err.Error(), "externalIP is not allowed") && - strings.Contains(err.Error(), "spec.externalIPs[0]") - }, - userinfo: serviceaccount.UserInfo("test", "ordinary-user", ""), - }, - { - admit: true, - admits: []*net.IPNet{ipv4}, - externalIPs: []string{"172.0.0.1"}, - op: admission.Create, - testName: "IP in range on create for test:ordinary-user user", - userinfo: serviceaccount.UserInfo("test", "ordinary-user", ""), - }, - { - admit: true, - admits: []*net.IPNet{ipv4}, - externalIPs: []string{"172.0.0.1"}, - op: admission.Update, - testName: "IP in range on update for test:admin user", - userinfo: serviceaccount.UserInfo("test", "admin", ""), - }, - // other checks - { - admit: false, - admits: []*net.IPNet{ipv4}, - externalIPs: []string{"abcd"}, - op: admission.Create, - testName: "IP unparseable on create", - errFn: func(err error) bool { - return strings.Contains(err.Error(), "externalIPs must be a valid address") && - strings.Contains(err.Error(), "spec.externalIPs[0]") - }, - userinfo: serviceaccount.UserInfo("test", "ordinary-user", ""), - }, - { - admit: false, - admits: []*net.IPNet{none}, - externalIPs: []string{"1.2.3.4"}, - op: admission.Create, - testName: "IP range is empty for test:ordinary-user user", - errFn: func(err error) bool { return strings.Contains(err.Error(), "externalIP is not allowed") }, - userinfo: serviceaccount.UserInfo("test", "ordinary-user", ""), - }, - { - admit: true, - admits: []*net.IPNet{none}, - externalIPs: []string{"1.2.3.4"}, - op: admission.Create, - testName: "IP range is empty, but test:admin user allowed", - userinfo: serviceaccount.UserInfo("test", "admin", ""), - }, - { - admit: false, - rejects: []*net.IPNet{all}, - admits: []*net.IPNet{all}, - externalIPs: []string{"1.2.3.4"}, - op: admission.Create, - testName: "rejections can cover the entire range", - userinfo: serviceaccount.UserInfo("test", "ordinary-user", ""), - }, - // Ingress IP checks - { - admit: true, - externalIPs: []string{"1.2.3.4"}, - op: admission.Update, - testName: "Ingress ip allowed when external ips are disabled", - loadBalancer: true, - ingressIP: "1.2.3.4", - userinfo: serviceaccount.UserInfo("test", "ordinary-user", ""), - }, - { - admit: true, - admits: []*net.IPNet{ipv4}, - externalIPs: []string{"1.2.3.4", "172.0.0.1"}, - op: admission.Update, - testName: "Ingress ip allowed when external ips are enabled", - loadBalancer: true, - ingressIP: "1.2.3.4", - userinfo: serviceaccount.UserInfo("test", "admin", ""), - }, - { - admit: false, - admits: []*net.IPNet{ipv4}, - externalIPs: []string{"1.2.3.4", "172.0.0.1"}, - op: admission.Update, - testName: "Ingress ip not allowed for non-lb service", - loadBalancer: false, - ingressIP: "1.2.3.4", - userinfo: serviceaccount.UserInfo("test", "ordinary-user", ""), - }, - } - for _, test := range tests { - svc.Spec.ExternalIPs = test.externalIPs - allowIngressIP := len(test.ingressIP) > 0 || test.loadBalancer - handler := NewExternalIPRanger(test.rejects, test.admits, allowIngressIP) - handler.SetAuthorizer(fakeAuthorizer(t)) - err := handler.ValidateInitialization() - if err != nil { - t.Errorf("%s: Got an error %s", test.testName, err) - continue - } - if test.loadBalancer { - svc.Spec.Type = kapi.ServiceTypeLoadBalancer - } else { - svc.Spec.Type = kapi.ServiceTypeClusterIP - } - - if len(test.ingressIP) > 0 { - // Provide an ingress ip via the previous object state - oldSvc = &kapi.Service{ - ObjectMeta: metav1.ObjectMeta{Name: "test"}, - Status: kapi.ServiceStatus{ - LoadBalancer: kapi.LoadBalancerStatus{ - Ingress: []kapi.LoadBalancerIngress{ - { - IP: test.ingressIP, - }, - }, - }, - }, - } - - } else { - oldSvc = nil - } - - err = handler.Validate(context.TODO(), admission.NewAttributesRecord(svc, oldSvc, kapi.Kind("Service").WithVersion("version"), "namespace", svc.ObjectMeta.Name, kapi.Resource("services").WithVersion("version"), "", test.op, nil, false, test.userinfo), nil) - - if test.admit && err != nil { - t.Errorf("%s: expected no error but got: %s", test.testName, err) - } else if !test.admit && err == nil { - t.Errorf("%s: expected an error", test.testName) - } - if test.errFn != nil && !test.errFn(err) { - t.Errorf("%s: unexpected error: %v", test.testName, err) - } - } -} - -func TestHandles(t *testing.T) { - for op, shouldHandle := range map[admission.Operation]bool{ - admission.Create: true, - admission.Update: true, - admission.Connect: false, - admission.Delete: false, - } { - ranger := NewExternalIPRanger(nil, nil, false) - if e, a := shouldHandle, ranger.Handles(op); e != a { - t.Errorf("%v: shouldHandle=%t, handles=%t", op, e, a) - } - } -} diff --git a/openshift-kube-apiserver/admission/network/restrictedendpoints/endpoint_admission.go b/openshift-kube-apiserver/admission/network/restrictedendpoints/endpoint_admission.go deleted file mode 100644 index 09566962e713b..0000000000000 --- a/openshift-kube-apiserver/admission/network/restrictedendpoints/endpoint_admission.go +++ /dev/null @@ -1,191 +0,0 @@ -package restrictedendpoints - -import ( - "context" - "fmt" - "io" - "net" - "reflect" - - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/admission/initializer" - "k8s.io/apiserver/pkg/authorization/authorizer" - "k8s.io/klog/v2" - kapi "k8s.io/kubernetes/pkg/apis/core" - - "github.com/openshift/library-go/pkg/config/helpers" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/network/apis/restrictedendpoints" - v1 "k8s.io/kubernetes/openshift-kube-apiserver/admission/network/apis/restrictedendpoints/v1" -) - -const RestrictedEndpointsPluginName = "network.openshift.io/RestrictedEndpointsAdmission" - -func RegisterRestrictedEndpoints(plugins *admission.Plugins) { - plugins.Register(RestrictedEndpointsPluginName, - func(config io.Reader) (admission.Interface, error) { - pluginConfig, err := readConfig(config) - if err != nil { - return nil, err - } - if pluginConfig == nil { - klog.Infof("Admission plugin %q is not configured so it will be disabled.", RestrictedEndpointsPluginName) - return nil, nil - } - restrictedNetworks, err := ParseSimpleCIDRRules(pluginConfig.RestrictedCIDRs) - if err != nil { - // should have been caught with validation - return nil, err - } - - return NewRestrictedEndpointsAdmission(restrictedNetworks), nil - }) -} - -func readConfig(reader io.Reader) (*restrictedendpoints.RestrictedEndpointsAdmissionConfig, error) { - obj, err := helpers.ReadYAMLToInternal(reader, restrictedendpoints.Install, v1.Install) - if err != nil { - return nil, err - } - if obj == nil { - return nil, nil - } - config, ok := obj.(*restrictedendpoints.RestrictedEndpointsAdmissionConfig) - if !ok { - return nil, fmt.Errorf("unexpected config object: %#v", obj) - } - // No validation needed since config is just list of strings - return config, nil -} - -type restrictedEndpointsAdmission struct { - *admission.Handler - - authorizer authorizer.Authorizer - restrictedNetworks []*net.IPNet -} - -var _ = initializer.WantsAuthorizer(&restrictedEndpointsAdmission{}) -var _ = admission.ValidationInterface(&restrictedEndpointsAdmission{}) - -// ParseSimpleCIDRRules parses a list of CIDR strings -func ParseSimpleCIDRRules(rules []string) (networks []*net.IPNet, err error) { - for _, s := range rules { - _, cidr, err := net.ParseCIDR(s) - if err != nil { - return nil, err - } - networks = append(networks, cidr) - } - return networks, nil -} - -// NewRestrictedEndpointsAdmission creates a new endpoints admission plugin. -func NewRestrictedEndpointsAdmission(restrictedNetworks []*net.IPNet) *restrictedEndpointsAdmission { - return &restrictedEndpointsAdmission{ - Handler: admission.NewHandler(admission.Create, admission.Update), - restrictedNetworks: restrictedNetworks, - } -} - -func (r *restrictedEndpointsAdmission) SetAuthorizer(a authorizer.Authorizer) { - r.authorizer = a -} - -func (r *restrictedEndpointsAdmission) ValidateInitialization() error { - if r.authorizer == nil { - return fmt.Errorf("missing authorizer") - } - return nil -} - -var ( - defaultRestrictedPorts = []kapi.EndpointPort{ - // MCS ports - {Protocol: kapi.ProtocolTCP, Port: 22623}, - {Protocol: kapi.ProtocolTCP, Port: 22624}, - } - defaultRestrictedNetworks = []*net.IPNet{ - // IPv4 link-local range 169.254.0.0/16 (including cloud metadata IP) - {IP: net.ParseIP("169.254.0.0"), Mask: net.CIDRMask(16, 32)}, - } -) - -func (r *restrictedEndpointsAdmission) findRestrictedIP(ep *kapi.Endpoints, restricted []*net.IPNet) error { - for _, subset := range ep.Subsets { - for _, addr := range subset.Addresses { - ip := net.ParseIP(addr.IP) - if ip == nil { - continue - } - for _, net := range restricted { - if net.Contains(ip) { - return fmt.Errorf("endpoint address %s is not allowed", addr.IP) - } - } - } - } - return nil -} - -func (r *restrictedEndpointsAdmission) findRestrictedPort(ep *kapi.Endpoints, restricted []kapi.EndpointPort) error { - for _, subset := range ep.Subsets { - for _, port := range subset.Ports { - for _, restricted := range restricted { - if port.Protocol == restricted.Protocol && port.Port == restricted.Port { - return fmt.Errorf("endpoint port %s:%d is not allowed", string(port.Protocol), port.Port) - } - } - } - } - return nil -} - -func (r *restrictedEndpointsAdmission) checkAccess(ctx context.Context, attr admission.Attributes) (bool, error) { - authzAttr := authorizer.AttributesRecord{ - User: attr.GetUserInfo(), - Verb: "create", - Namespace: attr.GetNamespace(), - Resource: "endpoints", - Subresource: "restricted", - APIGroup: kapi.GroupName, - Name: attr.GetName(), - ResourceRequest: true, - } - authorized, _, err := r.authorizer.Authorize(ctx, authzAttr) - return authorized == authorizer.DecisionAllow, err -} - -// Admit determines if the endpoints object should be admitted -func (r *restrictedEndpointsAdmission) Validate(ctx context.Context, a admission.Attributes, _ admission.ObjectInterfaces) error { - if a.GetResource().GroupResource() != kapi.Resource("endpoints") { - return nil - } - ep, ok := a.GetObject().(*kapi.Endpoints) - if !ok { - return nil - } - old, ok := a.GetOldObject().(*kapi.Endpoints) - if ok && reflect.DeepEqual(ep.Subsets, old.Subsets) { - return nil - } - - restrictedErr := r.findRestrictedIP(ep, r.restrictedNetworks) - if restrictedErr == nil { - restrictedErr = r.findRestrictedIP(ep, defaultRestrictedNetworks) - } - if restrictedErr == nil { - restrictedErr = r.findRestrictedPort(ep, defaultRestrictedPorts) - } - if restrictedErr == nil { - return nil - } - - allow, err := r.checkAccess(ctx, a) - if err != nil { - return err - } - if !allow { - return admission.NewForbidden(a, restrictedErr) - } - return nil -} diff --git a/openshift-kube-apiserver/admission/route/apis/ingressadmission/doc.go b/openshift-kube-apiserver/admission/route/apis/ingressadmission/doc.go deleted file mode 100644 index 04727861a1ea1..0000000000000 --- a/openshift-kube-apiserver/admission/route/apis/ingressadmission/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// +k8s:deepcopy-gen=package,register - -// Package api is the internal version of the API. -package ingressadmission diff --git a/openshift-kube-apiserver/admission/route/apis/ingressadmission/register.go b/openshift-kube-apiserver/admission/route/apis/ingressadmission/register.go deleted file mode 100644 index e0e84492781a6..0000000000000 --- a/openshift-kube-apiserver/admission/route/apis/ingressadmission/register.go +++ /dev/null @@ -1,33 +0,0 @@ -package ingressadmission - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -// SchemeGroupVersion is group version used to register these objects -var GroupVersion = schema.GroupVersion{Group: "route.openshift.io", Version: runtime.APIVersionInternal} - -// Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) schema.GroupKind { - return GroupVersion.WithKind(kind).GroupKind() -} - -// Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) schema.GroupResource { - return GroupVersion.WithResource(resource).GroupResource() -} - -var ( - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - Install = schemeBuilder.AddToScheme -) - -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &IngressAdmissionConfig{}, - ) - return nil -} - -func (obj *IngressAdmissionConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/openshift-kube-apiserver/admission/route/apis/ingressadmission/types.go b/openshift-kube-apiserver/admission/route/apis/ingressadmission/types.go deleted file mode 100644 index bc1356398663c..0000000000000 --- a/openshift-kube-apiserver/admission/route/apis/ingressadmission/types.go +++ /dev/null @@ -1,22 +0,0 @@ -package ingressadmission - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// IngressAdmissionConfig is the configuration for the the ingress -// controller limiter plugin. It changes the behavior of ingress -// objects to behave better with openshift routes and routers. -// *NOTE* This has security implications in the router when handling -// ingress objects -type IngressAdmissionConfig struct { - metav1.TypeMeta - - // AllowHostnameChanges when false or unset openshift does not - // allow changing or adding hostnames to ingress objects. If set - // to true then hostnames can be added or modified which has - // security implications in the router. - AllowHostnameChanges bool -} diff --git a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/defaults_test.go b/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/defaults_test.go deleted file mode 100644 index e105c48094abc..0000000000000 --- a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/defaults_test.go +++ /dev/null @@ -1,59 +0,0 @@ -package v1 - -import ( - "reflect" - "testing" - - "k8s.io/apimachinery/pkg/api/apitesting" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/diff" -) - -func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { - scheme, codecs := apitesting.SchemeForOrDie(Install) - data, err := runtime.Encode(codecs.LegacyCodec(GroupVersion), obj) - if err != nil { - t.Errorf("%v\n %#v", err, obj) - return nil - } - obj2, err := runtime.Decode(codecs.UniversalDecoder(), data) - if err != nil { - t.Errorf("%v\nData: %s\nSource: %#v", err, string(data), obj) - return nil - } - obj3 := reflect.New(reflect.TypeOf(obj).Elem()).Interface().(runtime.Object) - err = scheme.Convert(obj2, obj3, nil) - if err != nil { - t.Errorf("%v\nSourceL %#v", err, obj2) - return nil - } - return obj3 -} - -func TestDefaults(t *testing.T) { - tests := []struct { - original *IngressAdmissionConfig - expected *IngressAdmissionConfig - }{ - { - original: &IngressAdmissionConfig{}, - expected: &IngressAdmissionConfig{ - AllowHostnameChanges: false, - }, - }, - } - for i, test := range tests { - t.Logf("test %d", i) - original := test.original - expected := test.expected - obj2 := roundTrip(t, runtime.Object(original)) - got, ok := obj2.(*IngressAdmissionConfig) - if !ok { - t.Errorf("unexpected object: %v", got) - t.FailNow() - } - if !reflect.DeepEqual(got, expected) { - t.Errorf("got different than expected:\nA:\t%#v\nB:\t%#v\n\nDiff:\n%s\n\n%s", got, expected, diff.ObjectDiff(expected, got), diff.ObjectGoPrintSideBySide(expected, got)) - } - } -} diff --git a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/doc.go b/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/doc.go deleted file mode 100644 index 65269e693b22a..0000000000000 --- a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/doc.go +++ /dev/null @@ -1,5 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=k8s.io/kubernetes/openshift-kube-apiserver/admission/route/apis/ingressadmission - -// Package v1 is the v1 version of the API. -package v1 diff --git a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/register.go b/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/register.go deleted file mode 100644 index aecb8a6eec279..0000000000000 --- a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/register.go +++ /dev/null @@ -1,27 +0,0 @@ -package v1 - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - - "k8s.io/kubernetes/openshift-kube-apiserver/admission/route/apis/ingressadmission" -) - -func (obj *IngressAdmissionConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } - -var GroupVersion = schema.GroupVersion{Group: "route.openshift.io", Version: "v1"} - -var ( - localSchemeBuilder = runtime.NewSchemeBuilder( - addKnownTypes, - ingressadmission.Install, - ) - Install = localSchemeBuilder.AddToScheme -) - -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &IngressAdmissionConfig{}, - ) - return nil -} diff --git a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/swagger_doc.go b/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/swagger_doc.go deleted file mode 100644 index 27266bc8b3f6d..0000000000000 --- a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/swagger_doc.go +++ /dev/null @@ -1,15 +0,0 @@ -package v1 - -// This file contains methods that can be used by the go-restful package to generate Swagger -// documentation for the object types found in 'types.go' This file is automatically generated -// by hack/update-generated-swagger-descriptions.sh and should be run after a full build of OpenShift. -// ==== DO NOT EDIT THIS FILE MANUALLY ==== - -var map_IngressAdmissionConfig = map[string]string{ - "": "IngressAdmissionConfig is the configuration for the the ingress controller limiter plugin. It changes the behavior of ingress objects to behave better with openshift routes and routers. *NOTE* This has security implications in the router when handling ingress objects", - "allowHostnameChanges": "AllowHostnameChanges when false or unset openshift does not allow changing or adding hostnames to ingress objects. If set to true then hostnames can be added or modified which has security implications in the router.", -} - -func (IngressAdmissionConfig) SwaggerDoc() map[string]string { - return map_IngressAdmissionConfig -} diff --git a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/types.go b/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/types.go deleted file mode 100644 index a770d0539f449..0000000000000 --- a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/types.go +++ /dev/null @@ -1,22 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// IngressAdmissionConfig is the configuration for the the ingress -// controller limiter plugin. It changes the behavior of ingress -// objects to behave better with openshift routes and routers. -// *NOTE* This has security implications in the router when handling -// ingress objects -type IngressAdmissionConfig struct { - metav1.TypeMeta `json:",inline"` - - // AllowHostnameChanges when false or unset openshift does not - // allow changing or adding hostnames to ingress objects. If set - // to true then hostnames can be added or modified which has - // security implications in the router. - AllowHostnameChanges bool `json:"allowHostnameChanges"` -} diff --git a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/zz_generated.conversion.go b/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/zz_generated.conversion.go deleted file mode 100644 index 1a4fd21ec0e01..0000000000000 --- a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/zz_generated.conversion.go +++ /dev/null @@ -1,67 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 conversion-gen. DO NOT EDIT. - -package v1 - -import ( - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - ingressadmission "k8s.io/kubernetes/openshift-kube-apiserver/admission/route/apis/ingressadmission" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*IngressAdmissionConfig)(nil), (*ingressadmission.IngressAdmissionConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_IngressAdmissionConfig_To_ingressadmission_IngressAdmissionConfig(a.(*IngressAdmissionConfig), b.(*ingressadmission.IngressAdmissionConfig), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*ingressadmission.IngressAdmissionConfig)(nil), (*IngressAdmissionConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_ingressadmission_IngressAdmissionConfig_To_v1_IngressAdmissionConfig(a.(*ingressadmission.IngressAdmissionConfig), b.(*IngressAdmissionConfig), scope) - }); err != nil { - return err - } - return nil -} - -func autoConvert_v1_IngressAdmissionConfig_To_ingressadmission_IngressAdmissionConfig(in *IngressAdmissionConfig, out *ingressadmission.IngressAdmissionConfig, s conversion.Scope) error { - out.AllowHostnameChanges = in.AllowHostnameChanges - return nil -} - -// Convert_v1_IngressAdmissionConfig_To_ingressadmission_IngressAdmissionConfig is an autogenerated conversion function. -func Convert_v1_IngressAdmissionConfig_To_ingressadmission_IngressAdmissionConfig(in *IngressAdmissionConfig, out *ingressadmission.IngressAdmissionConfig, s conversion.Scope) error { - return autoConvert_v1_IngressAdmissionConfig_To_ingressadmission_IngressAdmissionConfig(in, out, s) -} - -func autoConvert_ingressadmission_IngressAdmissionConfig_To_v1_IngressAdmissionConfig(in *ingressadmission.IngressAdmissionConfig, out *IngressAdmissionConfig, s conversion.Scope) error { - out.AllowHostnameChanges = in.AllowHostnameChanges - return nil -} - -// Convert_ingressadmission_IngressAdmissionConfig_To_v1_IngressAdmissionConfig is an autogenerated conversion function. -func Convert_ingressadmission_IngressAdmissionConfig_To_v1_IngressAdmissionConfig(in *ingressadmission.IngressAdmissionConfig, out *IngressAdmissionConfig, s conversion.Scope) error { - return autoConvert_ingressadmission_IngressAdmissionConfig_To_v1_IngressAdmissionConfig(in, out, s) -} diff --git a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/zz_generated.deepcopy.go deleted file mode 100644 index e59ff458868b3..0000000000000 --- a/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,50 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - 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 *IngressAdmissionConfig) DeepCopyInto(out *IngressAdmissionConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressAdmissionConfig. -func (in *IngressAdmissionConfig) DeepCopy() *IngressAdmissionConfig { - if in == nil { - return nil - } - out := new(IngressAdmissionConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *IngressAdmissionConfig) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/openshift-kube-apiserver/admission/route/apis/ingressadmission/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/route/apis/ingressadmission/zz_generated.deepcopy.go deleted file mode 100644 index 159314a6901ea..0000000000000 --- a/openshift-kube-apiserver/admission/route/apis/ingressadmission/zz_generated.deepcopy.go +++ /dev/null @@ -1,50 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 deepcopy-gen. DO NOT EDIT. - -package ingressadmission - -import ( - 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 *IngressAdmissionConfig) DeepCopyInto(out *IngressAdmissionConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressAdmissionConfig. -func (in *IngressAdmissionConfig) DeepCopy() *IngressAdmissionConfig { - if in == nil { - return nil - } - out := new(IngressAdmissionConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *IngressAdmissionConfig) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/openshift-kube-apiserver/admission/route/ingress_admission.go b/openshift-kube-apiserver/admission/route/ingress_admission.go deleted file mode 100644 index f59104fe51a08..0000000000000 --- a/openshift-kube-apiserver/admission/route/ingress_admission.go +++ /dev/null @@ -1,162 +0,0 @@ -// This plugin supplements upstream Ingress admission validation -// It takes care of current Openshift specific constraints on Ingress resources -package admission - -import ( - "context" - "fmt" - "io" - - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/admission/initializer" - "k8s.io/apiserver/pkg/authorization/authorizer" - kextensions "k8s.io/kubernetes/pkg/apis/extensions" - "k8s.io/kubernetes/pkg/apis/networking" - - "github.com/openshift/library-go/pkg/config/helpers" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/route/apis/ingressadmission" - v1 "k8s.io/kubernetes/openshift-kube-apiserver/admission/route/apis/ingressadmission/v1" -) - -const ( - IngressAdmission = "route.openshift.io/IngressAdmission" -) - -func Register(plugins *admission.Plugins) { - plugins.Register(IngressAdmission, - func(config io.Reader) (admission.Interface, error) { - pluginConfig, err := readConfig(config) - if err != nil { - return nil, err - } - return NewIngressAdmission(pluginConfig), nil - }) -} - -type ingressAdmission struct { - *admission.Handler - config *ingressadmission.IngressAdmissionConfig - authorizer authorizer.Authorizer -} - -var _ = initializer.WantsAuthorizer(&ingressAdmission{}) -var _ = admission.ValidationInterface(&ingressAdmission{}) - -func NewIngressAdmission(config *ingressadmission.IngressAdmissionConfig) *ingressAdmission { - return &ingressAdmission{ - Handler: admission.NewHandler(admission.Create, admission.Update), - config: config, - } -} - -func readConfig(reader io.Reader) (*ingressadmission.IngressAdmissionConfig, error) { - obj, err := helpers.ReadYAMLToInternal(reader, ingressadmission.Install, v1.Install) - if err != nil { - return nil, err - } - if obj == nil { - return nil, nil - } - config, ok := obj.(*ingressadmission.IngressAdmissionConfig) - if !ok { - return nil, fmt.Errorf("unexpected config object: %#v", obj) - } - // No validation needed since config is just list of strings - return config, nil -} - -func (r *ingressAdmission) SetAuthorizer(a authorizer.Authorizer) { - r.authorizer = a -} - -func (r *ingressAdmission) ValidateInitialization() error { - if r.authorizer == nil { - return fmt.Errorf("%s needs an Openshift Authorizer", IngressAdmission) - } - return nil -} - -func (r *ingressAdmission) Validate(ctx context.Context, a admission.Attributes, _ admission.ObjectInterfaces) error { - if a.GetResource().GroupResource() == kextensions.Resource("ingresses") { - switch a.GetOperation() { - case admission.Create: - if ingress, ok := a.GetObject().(*networking.Ingress); ok { - // if any rules have a host, check whether the user has permission to set them - for i, rule := range ingress.Spec.Rules { - if len(rule.Host) > 0 { - attr := authorizer.AttributesRecord{ - User: a.GetUserInfo(), - Verb: "create", - Namespace: a.GetNamespace(), - Resource: "routes", - Subresource: "custom-host", - APIGroup: "route.openshift.io", - ResourceRequest: true, - } - kind := schema.GroupKind{Group: a.GetResource().Group, Kind: a.GetResource().Resource} - authorized, _, err := r.authorizer.Authorize(ctx, attr) - if err != nil { - return errors.NewInvalid(kind, ingress.Name, field.ErrorList{field.InternalError(field.NewPath("spec", "rules").Index(i), err)}) - } - if authorized != authorizer.DecisionAllow { - return errors.NewInvalid(kind, ingress.Name, field.ErrorList{field.Forbidden(field.NewPath("spec", "rules").Index(i), "you do not have permission to set host fields in ingress rules")}) - } - break - } - } - } - case admission.Update: - if r.config == nil || r.config.AllowHostnameChanges == false { - oldIngress, ok := a.GetOldObject().(*networking.Ingress) - if !ok { - return nil - } - newIngress, ok := a.GetObject().(*networking.Ingress) - if !ok { - return nil - } - if !haveHostnamesChanged(oldIngress, newIngress) { - attr := authorizer.AttributesRecord{ - User: a.GetUserInfo(), - Verb: "update", - Namespace: a.GetNamespace(), - Name: a.GetName(), - Resource: "routes", - Subresource: "custom-host", - APIGroup: "route.openshift.io", - ResourceRequest: true, - } - kind := schema.GroupKind{Group: a.GetResource().Group, Kind: a.GetResource().Resource} - authorized, _, err := r.authorizer.Authorize(ctx, attr) - if err != nil { - return errors.NewInvalid(kind, newIngress.Name, field.ErrorList{field.InternalError(field.NewPath("spec", "rules"), err)}) - } - if authorized == authorizer.DecisionAllow { - return nil - } - return fmt.Errorf("cannot change hostname") - } - } - } - } - return nil -} - -func haveHostnamesChanged(oldIngress, newIngress *networking.Ingress) bool { - hostnameSet := sets.NewString() - for _, element := range oldIngress.Spec.Rules { - hostnameSet.Insert(element.Host) - } - - for _, element := range newIngress.Spec.Rules { - if present := hostnameSet.Has(element.Host); !present { - return false - } - } - - return true -} diff --git a/openshift-kube-apiserver/admission/route/ingress_admission_test.go b/openshift-kube-apiserver/admission/route/ingress_admission_test.go deleted file mode 100644 index b1013b8346a30..0000000000000 --- a/openshift-kube-apiserver/admission/route/ingress_admission_test.go +++ /dev/null @@ -1,171 +0,0 @@ -package admission - -import ( - "context" - "testing" - - "k8s.io/kubernetes/pkg/apis/networking" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/authorization/authorizer" - kextensions "k8s.io/kubernetes/pkg/apis/extensions" - - "k8s.io/kubernetes/openshift-kube-apiserver/admission/route/apis/ingressadmission" -) - -type fakeAuthorizer struct { - allow authorizer.Decision - err error -} - -func (a *fakeAuthorizer) Authorize(context.Context, authorizer.Attributes) (authorizer.Decision, string, error) { - return a.allow, "", a.err -} - -func TestAdmission(t *testing.T) { - var newIngress *networking.Ingress - var oldIngress *networking.Ingress - - tests := []struct { - config *ingressadmission.IngressAdmissionConfig - testName string - oldHost, newHost string - op admission.Operation - admit bool - allow authorizer.Decision - }{ - { - admit: true, - config: emptyConfig(), - op: admission.Create, - testName: "No errors on create", - }, - { - admit: true, - config: emptyConfig(), - op: admission.Update, - newHost: "foo.com", - oldHost: "foo.com", - testName: "keeping the host the same should pass", - }, - { - admit: true, - config: emptyConfig(), - op: admission.Update, - oldHost: "foo.com", - testName: "deleting a hostname should pass", - }, - { - admit: false, - config: emptyConfig(), - op: admission.Update, - newHost: "foo.com", - oldHost: "bar.com", - testName: "changing hostname should fail", - }, - { - admit: true, - allow: authorizer.DecisionAllow, - config: emptyConfig(), - op: admission.Update, - newHost: "foo.com", - oldHost: "bar.com", - testName: "changing hostname should succeed if the user has permission", - }, - { - admit: false, - config: nil, - op: admission.Update, - newHost: "foo.com", - oldHost: "bar.com", - testName: "unconfigured plugin should still fail", - }, - { - admit: true, - config: testConfigUpdateAllow(), - op: admission.Update, - newHost: "foo.com", - oldHost: "bar.com", - testName: "Upstream Hostname updates enabled", - }, - { - admit: true, - config: testConfigUpdateAllow(), - op: admission.Update, - newHost: "foo.com", - testName: "add new hostname with upstream rules", - }, - { - admit: false, - allow: authorizer.DecisionNoOpinion, - config: emptyConfig(), - op: admission.Create, - newHost: "foo.com", - testName: "setting the host should require permission", - }, - { - admit: true, - allow: authorizer.DecisionAllow, - config: emptyConfig(), - op: admission.Create, - newHost: "foo.com", - testName: "setting the host should pass if user has permission", - }, - } - for _, test := range tests { - if len(test.newHost) > 0 { - newIngress = &networking.Ingress{ - ObjectMeta: metav1.ObjectMeta{Name: "test"}, - Spec: networking.IngressSpec{ - Rules: []networking.IngressRule{ - { - Host: test.newHost, - }, - }, - }, - } - } else { - //Used to test deleting a hostname - newIngress = &networking.Ingress{ - ObjectMeta: metav1.ObjectMeta{Name: "test"}, - } - } - handler := NewIngressAdmission(test.config) - handler.SetAuthorizer(&fakeAuthorizer{allow: test.allow}) - - if len(test.oldHost) > 0 { - //Provides the previous state of an ingress object - oldIngress = &networking.Ingress{ - ObjectMeta: metav1.ObjectMeta{Name: "test"}, - Spec: networking.IngressSpec{ - Rules: []networking.IngressRule{ - { - Host: test.oldHost, - }, - }, - }, - } - } else { - oldIngress = nil - } - - err := handler.Validate(context.TODO(), admission.NewAttributesRecord(newIngress, oldIngress, kextensions.Kind("ingresses").WithVersion("Version"), "namespace", newIngress.ObjectMeta.Name, kextensions.Resource("ingresses").WithVersion("version"), "", test.op, nil, false, nil), nil) - if test.admit && err != nil { - t.Errorf("%s: expected no error but got: %s", test.testName, err) - } else if !test.admit && err == nil { - t.Errorf("%s: expected an error", test.testName) - } - } - -} - -func emptyConfig() *ingressadmission.IngressAdmissionConfig { - return &ingressadmission.IngressAdmissionConfig{} -} - -func testConfigUpdateAllow() *ingressadmission.IngressAdmissionConfig { - return &ingressadmission.IngressAdmissionConfig{ - AllowHostnameChanges: true, - } -} diff --git a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/doc.go b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/doc.go deleted file mode 100644 index ae163f472d40a..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// +k8s:deepcopy-gen=package,register - -// Package api is the internal version of the API. -package podnodeconstraints diff --git a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/register.go b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/register.go deleted file mode 100644 index 5b8add00bb815..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/register.go +++ /dev/null @@ -1,33 +0,0 @@ -package podnodeconstraints - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -// SchemeGroupVersion is group version used to register these objects -var GroupVersion = schema.GroupVersion{Group: "scheduling.openshift.io", Version: runtime.APIVersionInternal} - -// Kind takes an unqualified kind and returns back a Group qualified GroupKind -func Kind(kind string) schema.GroupKind { - return GroupVersion.WithKind(kind).GroupKind() -} - -// Resource takes an unqualified resource and returns back a Group qualified GroupResource -func Resource(resource string) schema.GroupResource { - return GroupVersion.WithResource(resource).GroupResource() -} - -var ( - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - Install = schemeBuilder.AddToScheme -) - -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &PodNodeConstraintsConfig{}, - ) - return nil -} - -func (obj *PodNodeConstraintsConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } diff --git a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/types.go b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/types.go deleted file mode 100644 index 27cebad199ed0..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/types.go +++ /dev/null @@ -1,19 +0,0 @@ -package podnodeconstraints - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// PodNodeConstraintsConfig is the configuration for the pod node name -// and node selector constraint plug-in. For accounts, serviceaccounts, -// and groups which lack the "pods/binding" permission, Loading this -// plugin will prevent setting NodeName on pod specs and will prevent -// setting NodeSelectors whose labels appear in the blacklist field -// "NodeSelectorLabelBlacklist" -type PodNodeConstraintsConfig struct { - metav1.TypeMeta - // NodeSelectorLabelBlacklist specifies a list of labels which cannot be set by entities without the "pods/binding" permission - NodeSelectorLabelBlacklist []string -} diff --git a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/defaults.go b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/defaults.go deleted file mode 100644 index 54d718cfc91af..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/defaults.go +++ /dev/null @@ -1,19 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -func SetDefaults_PodNodeConstraintsConfig(obj *PodNodeConstraintsConfig) { - if obj.NodeSelectorLabelBlacklist == nil { - obj.NodeSelectorLabelBlacklist = []string{ - corev1.LabelHostname, - } - } -} - -func addDefaultingFuncs(scheme *runtime.Scheme) error { - scheme.AddTypeDefaultingFunc(&PodNodeConstraintsConfig{}, func(obj interface{}) { SetDefaults_PodNodeConstraintsConfig(obj.(*PodNodeConstraintsConfig)) }) - return nil -} diff --git a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/defaults_test.go b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/defaults_test.go deleted file mode 100644 index 513084ad95122..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/defaults_test.go +++ /dev/null @@ -1,59 +0,0 @@ -package v1 - -import ( - "reflect" - "testing" - - "k8s.io/apimachinery/pkg/api/apitesting" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/diff" -) - -func roundTrip(t *testing.T, obj runtime.Object) runtime.Object { - scheme, codecs := apitesting.SchemeForOrDie(Install) - data, err := runtime.Encode(codecs.LegacyCodec(GroupVersion), obj) - if err != nil { - t.Errorf("%v\n %#v", err, obj) - return nil - } - obj2, err := runtime.Decode(codecs.UniversalDecoder(), data) - if err != nil { - t.Errorf("%v\nData: %s\nSource: %#v", err, string(data), obj) - return nil - } - obj3 := reflect.New(reflect.TypeOf(obj).Elem()).Interface().(runtime.Object) - err = scheme.Convert(obj2, obj3, nil) - if err != nil { - t.Errorf("%v\nSource: %#v", err, obj2) - return nil - } - return obj3 -} - -func TestDefaults(t *testing.T) { - tests := []struct { - original *PodNodeConstraintsConfig - expected *PodNodeConstraintsConfig - }{ - { - original: &PodNodeConstraintsConfig{}, - expected: &PodNodeConstraintsConfig{ - NodeSelectorLabelBlacklist: []string{"kubernetes.io/hostname"}, - }, - }, - } - for i, test := range tests { - t.Logf("test %d", i) - original := test.original - expected := test.expected - obj2 := roundTrip(t, runtime.Object(original)) - got, ok := obj2.(*PodNodeConstraintsConfig) - if !ok { - t.Errorf("unexpected object: %v", got) - t.FailNow() - } - if !reflect.DeepEqual(got, expected) { - t.Errorf("got different than expected:\nA:\t%#v\nB:\t%#v\n\nDiff:\n%s\n\n%s", got, expected, diff.ObjectDiff(expected, got), diff.ObjectGoPrintSideBySide(expected, got)) - } - } -} diff --git a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/doc.go b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/doc.go deleted file mode 100644 index 602ddf4d19a41..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/doc.go +++ /dev/null @@ -1,5 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=k8s.io/kubernetes/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints - -// Package v1 is the v1 version of the API. -package v1 diff --git a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/register.go b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/register.go deleted file mode 100644 index b836b750fdb3f..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/register.go +++ /dev/null @@ -1,28 +0,0 @@ -package v1 - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints" -) - -func (obj *PodNodeConstraintsConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } - -var GroupVersion = schema.GroupVersion{Group: "scheduling.openshift.io", Version: "v1"} - -var ( - localSchemeBuilder = runtime.NewSchemeBuilder( - addKnownTypes, - podnodeconstraints.Install, - - addDefaultingFuncs, - ) - Install = localSchemeBuilder.AddToScheme -) - -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &PodNodeConstraintsConfig{}, - ) - return nil -} diff --git a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/swagger_doc.go b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/swagger_doc.go deleted file mode 100644 index 95e3d2220841c..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/swagger_doc.go +++ /dev/null @@ -1,15 +0,0 @@ -package v1 - -// This file contains methods that can be used by the go-restful package to generate Swagger -// documentation for the object types found in 'types.go' This file is automatically generated -// by hack/update-generated-swagger-descriptions.sh and should be run after a full build of OpenShift. -// ==== DO NOT EDIT THIS FILE MANUALLY ==== - -var map_PodNodeConstraintsConfig = map[string]string{ - "": "PodNodeConstraintsConfig is the configuration for the pod node name and node selector constraint plug-in. For accounts, serviceaccounts and groups which lack the \"pods/binding\" permission, Loading this plugin will prevent setting NodeName on pod specs and will prevent setting NodeSelectors whose labels appear in the blacklist field \"NodeSelectorLabelBlacklist\"", - "nodeSelectorLabelBlacklist": "NodeSelectorLabelBlacklist specifies a list of labels which cannot be set by entities without the \"pods/binding\" permission", -} - -func (PodNodeConstraintsConfig) SwaggerDoc() map[string]string { - return map_PodNodeConstraintsConfig -} diff --git a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/types.go b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/types.go deleted file mode 100644 index 3ffd5acdb8952..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/types.go +++ /dev/null @@ -1,20 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// PodNodeConstraintsConfig is the configuration for the pod node name -// and node selector constraint plug-in. For accounts, serviceaccounts -// and groups which lack the "pods/binding" permission, Loading this -// plugin will prevent setting NodeName on pod specs and will prevent -// setting NodeSelectors whose labels appear in the blacklist field -// "NodeSelectorLabelBlacklist" -type PodNodeConstraintsConfig struct { - metav1.TypeMeta `json:",inline"` - - // NodeSelectorLabelBlacklist specifies a list of labels which cannot be set by entities without the "pods/binding" permission - NodeSelectorLabelBlacklist []string `json:"nodeSelectorLabelBlacklist" description:"list of labels which cannot be set by entities without the 'pods/binding' permission"` -} diff --git a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/zz_generated.conversion.go b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/zz_generated.conversion.go deleted file mode 100644 index 6a13d569f2ea5..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/zz_generated.conversion.go +++ /dev/null @@ -1,69 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 conversion-gen. DO NOT EDIT. - -package v1 - -import ( - unsafe "unsafe" - - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - podnodeconstraints "k8s.io/kubernetes/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints" -) - -func init() { - localSchemeBuilder.Register(RegisterConversions) -} - -// RegisterConversions adds conversion functions to the given scheme. -// Public to allow building arbitrary schemes. -func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*PodNodeConstraintsConfig)(nil), (*podnodeconstraints.PodNodeConstraintsConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_PodNodeConstraintsConfig_To_podnodeconstraints_PodNodeConstraintsConfig(a.(*PodNodeConstraintsConfig), b.(*podnodeconstraints.PodNodeConstraintsConfig), scope) - }); err != nil { - return err - } - if err := s.AddGeneratedConversionFunc((*podnodeconstraints.PodNodeConstraintsConfig)(nil), (*PodNodeConstraintsConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_podnodeconstraints_PodNodeConstraintsConfig_To_v1_PodNodeConstraintsConfig(a.(*podnodeconstraints.PodNodeConstraintsConfig), b.(*PodNodeConstraintsConfig), scope) - }); err != nil { - return err - } - return nil -} - -func autoConvert_v1_PodNodeConstraintsConfig_To_podnodeconstraints_PodNodeConstraintsConfig(in *PodNodeConstraintsConfig, out *podnodeconstraints.PodNodeConstraintsConfig, s conversion.Scope) error { - out.NodeSelectorLabelBlacklist = *(*[]string)(unsafe.Pointer(&in.NodeSelectorLabelBlacklist)) - return nil -} - -// Convert_v1_PodNodeConstraintsConfig_To_podnodeconstraints_PodNodeConstraintsConfig is an autogenerated conversion function. -func Convert_v1_PodNodeConstraintsConfig_To_podnodeconstraints_PodNodeConstraintsConfig(in *PodNodeConstraintsConfig, out *podnodeconstraints.PodNodeConstraintsConfig, s conversion.Scope) error { - return autoConvert_v1_PodNodeConstraintsConfig_To_podnodeconstraints_PodNodeConstraintsConfig(in, out, s) -} - -func autoConvert_podnodeconstraints_PodNodeConstraintsConfig_To_v1_PodNodeConstraintsConfig(in *podnodeconstraints.PodNodeConstraintsConfig, out *PodNodeConstraintsConfig, s conversion.Scope) error { - out.NodeSelectorLabelBlacklist = *(*[]string)(unsafe.Pointer(&in.NodeSelectorLabelBlacklist)) - return nil -} - -// Convert_podnodeconstraints_PodNodeConstraintsConfig_To_v1_PodNodeConstraintsConfig is an autogenerated conversion function. -func Convert_podnodeconstraints_PodNodeConstraintsConfig_To_v1_PodNodeConstraintsConfig(in *podnodeconstraints.PodNodeConstraintsConfig, out *PodNodeConstraintsConfig, s conversion.Scope) error { - return autoConvert_podnodeconstraints_PodNodeConstraintsConfig_To_v1_PodNodeConstraintsConfig(in, out, s) -} diff --git a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/zz_generated.deepcopy.go deleted file mode 100644 index 624cec3cceb09..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,55 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - 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 *PodNodeConstraintsConfig) DeepCopyInto(out *PodNodeConstraintsConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.NodeSelectorLabelBlacklist != nil { - in, out := &in.NodeSelectorLabelBlacklist, &out.NodeSelectorLabelBlacklist - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodNodeConstraintsConfig. -func (in *PodNodeConstraintsConfig) DeepCopy() *PodNodeConstraintsConfig { - if in == nil { - return nil - } - out := new(PodNodeConstraintsConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *PodNodeConstraintsConfig) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/zz_generated.deepcopy.go b/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/zz_generated.deepcopy.go deleted file mode 100644 index e8f45f4e9b281..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/zz_generated.deepcopy.go +++ /dev/null @@ -1,55 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 deepcopy-gen. DO NOT EDIT. - -package podnodeconstraints - -import ( - 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 *PodNodeConstraintsConfig) DeepCopyInto(out *PodNodeConstraintsConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.NodeSelectorLabelBlacklist != nil { - in, out := &in.NodeSelectorLabelBlacklist, &out.NodeSelectorLabelBlacklist - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodNodeConstraintsConfig. -func (in *PodNodeConstraintsConfig) DeepCopy() *PodNodeConstraintsConfig { - if in == nil { - return nil - } - out := new(PodNodeConstraintsConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *PodNodeConstraintsConfig) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/openshift-kube-apiserver/admission/scheduler/nodeenv/admission.go b/openshift-kube-apiserver/admission/scheduler/nodeenv/admission.go deleted file mode 100644 index 991ba30174c35..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/nodeenv/admission.go +++ /dev/null @@ -1,148 +0,0 @@ -package nodeenv - -import ( - "context" - "errors" - "fmt" - "io" - "time" - - corev1 "k8s.io/api/core/v1" - apierrors "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/admission/initializer" - "k8s.io/client-go/informers" - corev1listers "k8s.io/client-go/listers/core/v1" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/scheduler/nodeenv/labelselector" - coreapi "k8s.io/kubernetes/pkg/apis/core" - - projectv1 "github.com/openshift/api/project/v1" -) - -func Register(plugins *admission.Plugins) { - plugins.Register("scheduling.openshift.io/OriginPodNodeEnvironment", - func(config io.Reader) (admission.Interface, error) { - return NewPodNodeEnvironment() - }) -} - -const ( - timeToWaitForCacheSync = 10 * time.Second - kubeProjectNodeSelector = "scheduler.alpha.kubernetes.io/node-selector" -) - -// podNodeEnvironment is an implementation of admission.MutationInterface. -type podNodeEnvironment struct { - *admission.Handler - nsLister corev1listers.NamespaceLister - nsListerSynced func() bool - // TODO this should become a piece of config passed to the admission plugin - defaultNodeSelector string -} - -var _ = initializer.WantsExternalKubeInformerFactory(&podNodeEnvironment{}) -var _ = WantsDefaultNodeSelector(&podNodeEnvironment{}) -var _ = admission.ValidationInterface(&podNodeEnvironment{}) -var _ = admission.MutationInterface(&podNodeEnvironment{}) - -// Admit enforces that pod and its project node label selectors matches at least a node in the cluster. -func (p *podNodeEnvironment) admit(ctx context.Context, a admission.Attributes, mutationAllowed bool) (err error) { - resource := a.GetResource().GroupResource() - if resource != corev1.Resource("pods") { - return nil - } - if a.GetSubresource() != "" { - // only run the checks below on pods proper and not subresources - return nil - } - - obj := a.GetObject() - pod, ok := obj.(*coreapi.Pod) - if !ok { - return nil - } - - name := pod.Name - - if !p.waitForSyncedStore(time.After(timeToWaitForCacheSync)) { - return admission.NewForbidden(a, errors.New("scheduling.openshift.io/OriginPodNodeEnvironment: caches not synchronized")) - } - namespace, err := p.nsLister.Get(a.GetNamespace()) - if err != nil { - return apierrors.NewForbidden(resource, name, err) - } - - // If scheduler.alpha.kubernetes.io/node-selector is set on the pod, - // do not process the pod further. - if _, ok := namespace.ObjectMeta.Annotations[kubeProjectNodeSelector]; ok { - return nil - } - - selector := p.defaultNodeSelector - if projectNodeSelector, ok := namespace.ObjectMeta.Annotations[projectv1.ProjectNodeSelector]; ok { - selector = projectNodeSelector - } - projectNodeSelector, err := labelselector.Parse(selector) - if err != nil { - return err - } - - if labelselector.Conflicts(projectNodeSelector, pod.Spec.NodeSelector) { - return apierrors.NewForbidden(resource, name, fmt.Errorf("pod node label selector conflicts with its project node label selector")) - } - - if !mutationAllowed && len(labelselector.Merge(projectNodeSelector, pod.Spec.NodeSelector)) != len(pod.Spec.NodeSelector) { - // no conflict, different size => pod.Spec.NodeSelector does not contain projectNodeSelector - return apierrors.NewForbidden(resource, name, fmt.Errorf("pod node label selector does not extend project node label selector")) - } - - // modify pod node selector = project node selector + current pod node selector - pod.Spec.NodeSelector = labelselector.Merge(projectNodeSelector, pod.Spec.NodeSelector) - - return nil -} - -func (p *podNodeEnvironment) Admit(ctx context.Context, a admission.Attributes, _ admission.ObjectInterfaces) (err error) { - return p.admit(ctx, a, true) -} - -func (p *podNodeEnvironment) Validate(ctx context.Context, a admission.Attributes, _ admission.ObjectInterfaces) (err error) { - return p.admit(ctx, a, false) -} - -func (p *podNodeEnvironment) SetDefaultNodeSelector(in string) { - p.defaultNodeSelector = in -} - -func (p *podNodeEnvironment) SetExternalKubeInformerFactory(kubeInformers informers.SharedInformerFactory) { - p.nsLister = kubeInformers.Core().V1().Namespaces().Lister() - p.nsListerSynced = kubeInformers.Core().V1().Namespaces().Informer().HasSynced -} - -func (p *podNodeEnvironment) waitForSyncedStore(timeout <-chan time.Time) bool { - for !p.nsListerSynced() { - select { - case <-time.After(100 * time.Millisecond): - case <-timeout: - return p.nsListerSynced() - } - } - - return true -} - -func (p *podNodeEnvironment) ValidateInitialization() error { - if p.nsLister == nil { - return fmt.Errorf("project node environment plugin needs a namespace lister") - } - if p.nsListerSynced == nil { - return fmt.Errorf("project node environment plugin needs a namespace lister synced") - } - return nil -} - -func NewPodNodeEnvironment() (admission.Interface, error) { - return &podNodeEnvironment{ - Handler: admission.NewHandler(admission.Create), - }, nil -} diff --git a/openshift-kube-apiserver/admission/scheduler/nodeenv/admission_test.go b/openshift-kube-apiserver/admission/scheduler/nodeenv/admission_test.go deleted file mode 100644 index 6738a9b097dd9..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/nodeenv/admission_test.go +++ /dev/null @@ -1,160 +0,0 @@ -package nodeenv - -import ( - "context" - "strings" - "testing" - - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apiserver/pkg/admission" - corev1listers "k8s.io/client-go/listers/core/v1" - "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/scheduler/nodeenv/labelselector" - kapi "k8s.io/kubernetes/pkg/apis/core" - - projectv1 "github.com/openshift/api/project/v1" -) - -// TestPodAdmission verifies various scenarios involving pod/project/global node label selectors -func TestPodAdmission(t *testing.T) { - namespace := &corev1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Name: "testProject", - Namespace: "", - }, - } - - handler := &podNodeEnvironment{} - pod := &kapi.Pod{ - ObjectMeta: metav1.ObjectMeta{Name: "testPod"}, - } - - tests := []struct { - defaultNodeSelector string - projectNodeSelector string - podNodeSelector map[string]string - mergedNodeSelector map[string]string - ignoreProjectNodeSelector bool - admit bool - testName string - }{ - { - defaultNodeSelector: "", - podNodeSelector: map[string]string{}, - mergedNodeSelector: map[string]string{}, - ignoreProjectNodeSelector: true, - admit: true, - testName: "No node selectors", - }, - { - defaultNodeSelector: "infra = false", - podNodeSelector: map[string]string{}, - mergedNodeSelector: map[string]string{"infra": "false"}, - ignoreProjectNodeSelector: true, - admit: true, - testName: "Default node selector and no conflicts", - }, - { - defaultNodeSelector: "", - projectNodeSelector: "infra = false", - podNodeSelector: map[string]string{}, - mergedNodeSelector: map[string]string{"infra": "false"}, - admit: true, - testName: "Project node selector and no conflicts", - }, - { - defaultNodeSelector: "infra = false", - projectNodeSelector: "", - podNodeSelector: map[string]string{}, - mergedNodeSelector: map[string]string{}, - admit: true, - testName: "Empty project node selector and no conflicts", - }, - { - defaultNodeSelector: "infra = false", - projectNodeSelector: "infra=true", - podNodeSelector: map[string]string{}, - mergedNodeSelector: map[string]string{"infra": "true"}, - admit: true, - testName: "Default and project node selector, no conflicts", - }, - { - defaultNodeSelector: "infra = false", - projectNodeSelector: "infra=true", - podNodeSelector: map[string]string{"env": "test"}, - mergedNodeSelector: map[string]string{"infra": "true", "env": "test"}, - admit: true, - testName: "Project and pod node selector, no conflicts", - }, - { - defaultNodeSelector: "env = test", - projectNodeSelector: "infra=true", - podNodeSelector: map[string]string{"infra": "false"}, - mergedNodeSelector: map[string]string{"infra": "false"}, - admit: false, - testName: "Conflicting pod and project node selector, one label", - }, - { - defaultNodeSelector: "env=dev", - projectNodeSelector: "infra=false, env = test", - podNodeSelector: map[string]string{"env": "dev", "color": "blue"}, - mergedNodeSelector: map[string]string{"env": "dev", "color": "blue"}, - admit: false, - testName: "Conflicting pod and project node selector, multiple labels", - }, - } - for _, test := range tests { - indexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{}) - indexer.Add(namespace) - handler.nsLister = corev1listers.NewNamespaceLister(indexer) - handler.nsListerSynced = func() bool { return true } - handler.defaultNodeSelector = test.defaultNodeSelector - - if !test.ignoreProjectNodeSelector { - namespace.ObjectMeta.Annotations = map[string]string{projectv1.ProjectNodeSelector: test.projectNodeSelector} - } - pod.Spec = kapi.PodSpec{NodeSelector: test.podNodeSelector} - - attrs := admission.NewAttributesRecord(pod, nil, kapi.Kind("Pod").WithVersion("version"), "testProject", namespace.ObjectMeta.Name, kapi.Resource("pods").WithVersion("version"), "", admission.Create, nil, false, nil) - err := handler.Admit(context.TODO(), attrs, nil) - if test.admit && err != nil { - t.Errorf("Test: %s, expected no error but got: %s", test.testName, err) - } else if !test.admit && err == nil { - t.Errorf("Test: %s, expected an error", test.testName) - } else if err == nil { - if err := handler.Validate(context.TODO(), attrs, nil); err != nil { - t.Errorf("Test: %s, unexpected Validate error after Admit succeeded: %v", test.testName, err) - } - } - - if !labelselector.Equals(test.mergedNodeSelector, pod.Spec.NodeSelector) { - t.Errorf("Test: %s, expected: %s but got: %s", test.testName, test.mergedNodeSelector, pod.Spec.NodeSelector) - } else if len(test.projectNodeSelector) > 0 { - firstProjectKey := strings.TrimSpace(strings.Split(test.projectNodeSelector, "=")[0]) - delete(pod.Spec.NodeSelector, firstProjectKey) - if err := handler.Validate(context.TODO(), attrs, nil); err == nil { - t.Errorf("Test: %s, expected Validate error after removing project key %q", test.testName, firstProjectKey) - } - } - } -} - -func TestHandles(t *testing.T) { - for op, shouldHandle := range map[admission.Operation]bool{ - admission.Create: true, - admission.Update: false, - admission.Connect: false, - admission.Delete: false, - } { - nodeEnvionment, err := NewPodNodeEnvironment() - if err != nil { - t.Errorf("%v: error getting node environment: %v", op, err) - continue - } - - if e, a := shouldHandle, nodeEnvionment.Handles(op); e != a { - t.Errorf("%v: shouldHandle=%t, handles=%t", op, e, a) - } - } -} diff --git a/openshift-kube-apiserver/admission/scheduler/nodeenv/intializers.go b/openshift-kube-apiserver/admission/scheduler/nodeenv/intializers.go deleted file mode 100644 index 534905cb06120..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/nodeenv/intializers.go +++ /dev/null @@ -1,28 +0,0 @@ -package nodeenv - -import ( - "k8s.io/apiserver/pkg/admission" -) - -func NewInitializer(defaultNodeSelector string) admission.PluginInitializer { - return &localInitializer{ - defaultNodeSelector: defaultNodeSelector, - } -} - -type WantsDefaultNodeSelector interface { - SetDefaultNodeSelector(string) - admission.InitializationValidator -} - -type localInitializer struct { - defaultNodeSelector string -} - -// Initialize will check the initialization interfaces implemented by each plugin -// and provide the appropriate initialization data -func (i *localInitializer) Initialize(plugin admission.Interface) { - if wants, ok := plugin.(WantsDefaultNodeSelector); ok { - wants.SetDefaultNodeSelector(i.defaultNodeSelector) - } -} diff --git a/openshift-kube-apiserver/admission/scheduler/nodeenv/labelselector/labelselector.go b/openshift-kube-apiserver/admission/scheduler/nodeenv/labelselector/labelselector.go deleted file mode 100644 index 046d253396c98..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/nodeenv/labelselector/labelselector.go +++ /dev/null @@ -1,359 +0,0 @@ -// labelselector is trim down version of k8s/pkg/labels/selector.go -// It only accepts exact label matches -// Example: "k1=v1, k2 = v2" -package labelselector - -import ( - "fmt" - - kvalidation "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/apimachinery/pkg/util/validation/field" -) - -// constants definition for lexer token -type Token int - -const ( - ErrorToken Token = iota - EndOfStringToken - CommaToken - EqualsToken - IdentifierToken // to represent keys and values -) - -// string2token contains the mapping between lexer Token and token literal -// (except IdentifierToken, EndOfStringToken and ErrorToken since it makes no sense) -var string2token = map[string]Token{ - ",": CommaToken, - "=": EqualsToken, -} - -// ScannedItem are the item produced by the lexer. It contains the Token and the literal. -type ScannedItem struct { - tok Token - literal string -} - -// isWhitespace returns true if the rune is a space, tab, or newline. -func isWhitespace(ch byte) bool { - return ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n' -} - -// isSpecialSymbol detect if the character ch can be an operator -func isSpecialSymbol(ch byte) bool { - switch ch { - case '=', ',': - return true - } - return false -} - -// Lexer represents the Lexer struct for label selector. -// It contains necessary informationt to tokenize the input string -type Lexer struct { - // s stores the string to be tokenized - s string - // pos is the position currently tokenized - pos int -} - -// read return the character currently lexed -// increment the position and check the buffer overflow -func (l *Lexer) read() (b byte) { - b = 0 - if l.pos < len(l.s) { - b = l.s[l.pos] - l.pos++ - } - return b -} - -// unread 'undoes' the last read character -func (l *Lexer) unread() { - l.pos-- -} - -// scanIdOrKeyword scans string to recognize literal token or an identifier. -func (l *Lexer) scanIdOrKeyword() (tok Token, lit string) { - var buffer []byte -IdentifierLoop: - for { - switch ch := l.read(); { - case ch == 0: - break IdentifierLoop - case isSpecialSymbol(ch) || isWhitespace(ch): - l.unread() - break IdentifierLoop - default: - buffer = append(buffer, ch) - } - } - s := string(buffer) - if val, ok := string2token[s]; ok { // is a literal token - return val, s - } - return IdentifierToken, s // otherwise is an identifier -} - -// scanSpecialSymbol scans string starting with special symbol. -// special symbol identify non literal operators: "=" -func (l *Lexer) scanSpecialSymbol() (Token, string) { - lastScannedItem := ScannedItem{} - var buffer []byte -SpecialSymbolLoop: - for { - switch ch := l.read(); { - case ch == 0: - break SpecialSymbolLoop - case isSpecialSymbol(ch): - buffer = append(buffer, ch) - if token, ok := string2token[string(buffer)]; ok { - lastScannedItem = ScannedItem{tok: token, literal: string(buffer)} - } else if lastScannedItem.tok != 0 { - l.unread() - break SpecialSymbolLoop - } - default: - l.unread() - break SpecialSymbolLoop - } - } - if lastScannedItem.tok == 0 { - return ErrorToken, fmt.Sprintf("error expected: keyword found '%s'", buffer) - } - return lastScannedItem.tok, lastScannedItem.literal -} - -// skipWhiteSpaces consumes all blank characters -// returning the first non blank character -func (l *Lexer) skipWhiteSpaces(ch byte) byte { - for { - if !isWhitespace(ch) { - return ch - } - ch = l.read() - } -} - -// Lex returns a pair of Token and the literal -// literal is meaningfull only for IdentifierToken token -func (l *Lexer) Lex() (tok Token, lit string) { - switch ch := l.skipWhiteSpaces(l.read()); { - case ch == 0: - return EndOfStringToken, "" - case isSpecialSymbol(ch): - l.unread() - return l.scanSpecialSymbol() - default: - l.unread() - return l.scanIdOrKeyword() - } -} - -// Parser data structure contains the label selector parser data structure -type Parser struct { - l *Lexer - scannedItems []ScannedItem - position int -} - -// lookahead func returns the current token and string. No increment of current position -func (p *Parser) lookahead() (Token, string) { - tok, lit := p.scannedItems[p.position].tok, p.scannedItems[p.position].literal - return tok, lit -} - -// consume returns current token and string. Increments the the position -func (p *Parser) consume() (Token, string) { - p.position++ - if p.position > len(p.scannedItems) { - return EndOfStringToken, "" - } - tok, lit := p.scannedItems[p.position-1].tok, p.scannedItems[p.position-1].literal - return tok, lit -} - -// scan runs through the input string and stores the ScannedItem in an array -// Parser can now lookahead and consume the tokens -func (p *Parser) scan() { - for { - token, literal := p.l.Lex() - p.scannedItems = append(p.scannedItems, ScannedItem{token, literal}) - if token == EndOfStringToken { - break - } - } -} - -// parse runs the left recursive descending algorithm -// on input string. It returns a list of map[key]value. -func (p *Parser) parse() (map[string]string, error) { - p.scan() // init scannedItems - - labelsMap := map[string]string{} - for { - tok, lit := p.lookahead() - switch tok { - case IdentifierToken: - key, value, err := p.parseLabel() - if err != nil { - return nil, fmt.Errorf("unable to parse requirement: %v", err) - } - labelsMap[key] = value - t, l := p.consume() - switch t { - case EndOfStringToken: - return labelsMap, nil - case CommaToken: - t2, l2 := p.lookahead() - if t2 != IdentifierToken { - return nil, fmt.Errorf("found '%s', expected: identifier after ','", l2) - } - default: - return nil, fmt.Errorf("found '%s', expected: ',' or 'end of string'", l) - } - case EndOfStringToken: - return labelsMap, nil - default: - return nil, fmt.Errorf("found '%s', expected: identifier or 'end of string'", lit) - } - } -} - -func (p *Parser) parseLabel() (string, string, error) { - key, err := p.parseKey() - if err != nil { - return "", "", err - } - op, err := p.parseOperator() - if err != nil { - return "", "", err - } - if op != "=" { - return "", "", fmt.Errorf("invalid operator: %s, expected: '='", op) - } - value, err := p.parseExactValue() - if err != nil { - return "", "", err - } - return key, value, nil -} - -// parseKey parse literals. -func (p *Parser) parseKey() (string, error) { - tok, literal := p.consume() - if tok != IdentifierToken { - err := fmt.Errorf("found '%s', expected: identifier", literal) - return "", err - } - if err := validateLabelKey(literal); err != nil { - return "", err - } - return literal, nil -} - -// parseOperator returns operator -func (p *Parser) parseOperator() (op string, err error) { - tok, lit := p.consume() - switch tok { - case EqualsToken: - op = "=" - default: - return "", fmt.Errorf("found '%s', expected: '='", lit) - } - return op, nil -} - -// parseExactValue parses the only value for exact match style -func (p *Parser) parseExactValue() (string, error) { - tok, lit := p.consume() - if tok != IdentifierToken && tok != EndOfStringToken { - return "", fmt.Errorf("found '%s', expected: identifier", lit) - } - if err := validateLabelValue(lit); err != nil { - return "", err - } - return lit, nil -} - -// Parse takes a string representing a selector and returns -// map[key]value, or an error. -// The input will cause an error if it does not follow this form: -// -// ::= [ | "," ] -// ::= KEY "=" VALUE -// KEY is a sequence of one or more characters following [ DNS_SUBDOMAIN "/" ] DNS_LABEL -// VALUE is a sequence of zero or more characters "([A-Za-z0-9_-\.])". Max length is 64 character. -// Delimiter is white space: (' ', '\t') -// -// -func Parse(selector string) (map[string]string, error) { - p := &Parser{l: &Lexer{s: selector, pos: 0}} - labels, error := p.parse() - if error != nil { - return map[string]string{}, error - } - return labels, nil -} - -// Conflicts takes 2 maps -// returns true if there a key match between the maps but the value doesn't match -// returns false in other cases -func Conflicts(labels1, labels2 map[string]string) bool { - for k, v := range labels1 { - if val, match := labels2[k]; match { - if val != v { - return true - } - } - } - return false -} - -// Merge combines given maps -// Note: It doesn't not check for any conflicts between the maps -func Merge(labels1, labels2 map[string]string) map[string]string { - mergedMap := map[string]string{} - - for k, v := range labels1 { - mergedMap[k] = v - } - for k, v := range labels2 { - mergedMap[k] = v - } - return mergedMap -} - -// Equals returns true if the given maps are equal -func Equals(labels1, labels2 map[string]string) bool { - if len(labels1) != len(labels2) { - return false - } - - for k, v := range labels1 { - value, ok := labels2[k] - if !ok { - return false - } - if value != v { - return false - } - } - return true -} - -const qualifiedNameErrorMsg string = "must match format [ DNS 1123 subdomain / ] DNS 1123 label" - -func validateLabelKey(k string) error { - if len(kvalidation.IsQualifiedName(k)) != 0 { - return field.Invalid(field.NewPath("label key"), k, qualifiedNameErrorMsg) - } - return nil -} - -func validateLabelValue(v string) error { - if len(kvalidation.IsValidLabelValue(v)) != 0 { - return field.Invalid(field.NewPath("label value"), v, qualifiedNameErrorMsg) - } - return nil -} diff --git a/openshift-kube-apiserver/admission/scheduler/nodeenv/labelselector/labelselector_test.go b/openshift-kube-apiserver/admission/scheduler/nodeenv/labelselector/labelselector_test.go deleted file mode 100644 index f0729ae1b27a5..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/nodeenv/labelselector/labelselector_test.go +++ /dev/null @@ -1,181 +0,0 @@ -package labelselector - -import ( - "testing" -) - -func TestLabelSelectorParse(t *testing.T) { - tests := []struct { - selector string - labels map[string]string - valid bool - }{ - { - selector: "", - labels: map[string]string{}, - valid: true, - }, - { - selector: " ", - labels: map[string]string{}, - valid: true, - }, - { - selector: "x=a", - labels: map[string]string{"x": "a"}, - valid: true, - }, - { - selector: "x=a,y=b,z=c", - labels: map[string]string{"x": "a", "y": "b", "z": "c"}, - valid: true, - }, - { - selector: "x = a, y=b ,z = c ", - labels: map[string]string{"x": "a", "y": "b", "z": "c"}, - valid: true, - }, - { - selector: "color=green, env = test ,service= front ", - labels: map[string]string{"color": "green", "env": "test", "service": "front"}, - valid: true, - }, - { - selector: ",", - labels: map[string]string{}, - valid: false, - }, - { - selector: "x", - labels: map[string]string{}, - valid: false, - }, - { - selector: "x,y", - labels: map[string]string{}, - valid: false, - }, - { - selector: "x=$y", - labels: map[string]string{}, - valid: false, - }, - { - selector: "x!=y", - labels: map[string]string{}, - valid: false, - }, - { - selector: "x==y", - labels: map[string]string{}, - valid: false, - }, - { - selector: "x=a||y=b", - labels: map[string]string{}, - valid: false, - }, - { - selector: "x in (y)", - labels: map[string]string{}, - valid: false, - }, - { - selector: "x notin (y)", - labels: map[string]string{}, - valid: false, - }, - { - selector: "x y", - labels: map[string]string{}, - valid: false, - }, - { - selector: "node-role.kubernetes.io/infra=", - labels: map[string]string{"node-role.kubernetes.io/infra": ""}, - valid: true, - }, - } - for _, test := range tests { - labels, err := Parse(test.selector) - if test.valid && err != nil { - t.Errorf("selector: %s, expected no error but got: %s", test.selector, err) - } else if !test.valid && err == nil { - t.Errorf("selector: %s, expected an error", test.selector) - } - - if !Equals(labels, test.labels) { - t.Errorf("expected: %s but got: %s", test.labels, labels) - } - } -} - -func TestLabelConflict(t *testing.T) { - tests := []struct { - labels1 map[string]string - labels2 map[string]string - conflict bool - }{ - { - labels1: map[string]string{}, - labels2: map[string]string{}, - conflict: false, - }, - { - labels1: map[string]string{"env": "test"}, - labels2: map[string]string{"infra": "true"}, - conflict: false, - }, - { - labels1: map[string]string{"env": "test"}, - labels2: map[string]string{"infra": "true", "env": "test"}, - conflict: false, - }, - { - labels1: map[string]string{"env": "test"}, - labels2: map[string]string{"env": "dev"}, - conflict: true, - }, - { - labels1: map[string]string{"env": "test", "infra": "false"}, - labels2: map[string]string{"infra": "true", "color": "blue"}, - conflict: true, - }, - } - for _, test := range tests { - conflict := Conflicts(test.labels1, test.labels2) - if conflict != test.conflict { - t.Errorf("expected: %v but got: %v", test.conflict, conflict) - } - } -} - -func TestLabelMerge(t *testing.T) { - tests := []struct { - labels1 map[string]string - labels2 map[string]string - mergedLabels map[string]string - }{ - { - labels1: map[string]string{}, - labels2: map[string]string{}, - mergedLabels: map[string]string{}, - }, - { - labels1: map[string]string{"infra": "true"}, - labels2: map[string]string{}, - mergedLabels: map[string]string{"infra": "true"}, - }, - { - labels1: map[string]string{"infra": "true"}, - labels2: map[string]string{"env": "test", "color": "blue"}, - mergedLabels: map[string]string{"infra": "true", "env": "test", "color": "blue"}, - }, - } - for _, test := range tests { - mergedLabels := Merge(test.labels1, test.labels2) - if !Equals(mergedLabels, test.mergedLabels) { - t.Errorf("expected: %v but got: %v", test.mergedLabels, mergedLabels) - } - } -} diff --git a/openshift-kube-apiserver/admission/scheduler/podnodeconstraints/admission.go b/openshift-kube-apiserver/admission/scheduler/podnodeconstraints/admission.go deleted file mode 100644 index 05ef26277fcac..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/podnodeconstraints/admission.go +++ /dev/null @@ -1,205 +0,0 @@ -package podnodeconstraints - -import ( - "context" - "fmt" - "io" - - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/admission/initializer" - "k8s.io/apiserver/pkg/authorization/authorizer" - "k8s.io/klog/v2" - coreapi "k8s.io/kubernetes/pkg/apis/core" - "k8s.io/kubernetes/pkg/auth/nodeidentifier" - - "github.com/openshift/library-go/pkg/config/helpers" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints" - v1 "k8s.io/kubernetes/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints/v1" -) - -const PluginName = "scheduling.openshift.io/PodNodeConstraints" - -func Register(plugins *admission.Plugins) { - plugins.Register(PluginName, - func(config io.Reader) (admission.Interface, error) { - pluginConfig, err := readConfig(config) - if err != nil { - return nil, err - } - if pluginConfig == nil { - klog.Infof("Admission plugin %q is not configured so it will be disabled.", PluginName) - return nil, nil - } - return NewPodNodeConstraints(pluginConfig, nodeidentifier.NewDefaultNodeIdentifier()), nil - }) -} - -// NewPodNodeConstraints creates a new admission plugin to prevent objects that contain pod templates -// from containing node bindings by name or selector based on role permissions. -func NewPodNodeConstraints(config *podnodeconstraints.PodNodeConstraintsConfig, nodeIdentifier nodeidentifier.NodeIdentifier) admission.Interface { - plugin := podNodeConstraints{ - config: config, - Handler: admission.NewHandler(admission.Create, admission.Update), - nodeIdentifier: nodeIdentifier, - } - if config != nil { - plugin.selectorLabelBlacklist = sets.NewString(config.NodeSelectorLabelBlacklist...) - } - - return &plugin -} - -type podNodeConstraints struct { - *admission.Handler - selectorLabelBlacklist sets.String - config *podnodeconstraints.PodNodeConstraintsConfig - authorizer authorizer.Authorizer - nodeIdentifier nodeidentifier.NodeIdentifier -} - -var _ = initializer.WantsAuthorizer(&podNodeConstraints{}) -var _ = admission.ValidationInterface(&podNodeConstraints{}) - -func shouldCheckResource(resource schema.GroupResource, kind schema.GroupKind) (bool, error) { - expectedKind, shouldCheck := resourcesToCheck[resource] - if !shouldCheck { - return false, nil - } - if expectedKind != kind { - return false, fmt.Errorf("Unexpected resource kind %v for resource %v", &kind, &resource) - } - return true, nil -} - -// resourcesToCheck is a map of resources and corresponding kinds of things that we want handled in this plugin -var resourcesToCheck = map[schema.GroupResource]schema.GroupKind{ - coreapi.Resource("pods"): coreapi.Kind("Pod"), -} - -func readConfig(reader io.Reader) (*podnodeconstraints.PodNodeConstraintsConfig, error) { - obj, err := helpers.ReadYAMLToInternal(reader, podnodeconstraints.Install, v1.Install) - if err != nil { - return nil, err - } - if obj == nil { - return nil, nil - } - config, ok := obj.(*podnodeconstraints.PodNodeConstraintsConfig) - if !ok { - return nil, fmt.Errorf("unexpected config object: %#v", obj) - } - // No validation needed since config is just list of strings - return config, nil -} - -func (o *podNodeConstraints) Validate(ctx context.Context, attr admission.Attributes, _ admission.ObjectInterfaces) error { - switch { - case o.config == nil, - attr.GetSubresource() != "": - return nil - } - shouldCheck, err := shouldCheckResource(attr.GetResource().GroupResource(), attr.GetKind().GroupKind()) - if err != nil { - return err - } - if !shouldCheck { - return nil - } - // Only check Create operation on pods - if attr.GetResource().GroupResource() == coreapi.Resource("pods") && attr.GetOperation() != admission.Create { - return nil - } - - return o.validatePodSpec(ctx, attr, attr.GetObject().(*coreapi.Pod).Spec) -} - -// validate PodSpec if NodeName or NodeSelector are specified -func (o *podNodeConstraints) validatePodSpec(ctx context.Context, attr admission.Attributes, ps coreapi.PodSpec) error { - // a node creating a mirror pod that targets itself is allowed - // see the NodeRestriction plugin for further details - if o.isNodeSelfTargetWithMirrorPod(attr, ps.NodeName) { - return nil - } - - matchingLabels := []string{} - // nodeSelector blacklist filter - for nodeSelectorLabel := range ps.NodeSelector { - if o.selectorLabelBlacklist.Has(nodeSelectorLabel) { - matchingLabels = append(matchingLabels, nodeSelectorLabel) - } - } - // nodeName constraint - if len(ps.NodeName) > 0 || len(matchingLabels) > 0 { - allow, err := o.checkPodsBindAccess(ctx, attr) - if err != nil { - return err - } - if !allow { - switch { - case len(ps.NodeName) > 0 && len(matchingLabels) == 0: - return admission.NewForbidden(attr, fmt.Errorf("node selection by nodeName is prohibited by policy for your role")) - case len(ps.NodeName) == 0 && len(matchingLabels) > 0: - return admission.NewForbidden(attr, fmt.Errorf("node selection by label(s) %v is prohibited by policy for your role", matchingLabels)) - case len(ps.NodeName) > 0 && len(matchingLabels) > 0: - return admission.NewForbidden(attr, fmt.Errorf("node selection by nodeName and label(s) %v is prohibited by policy for your role", matchingLabels)) - } - } - } - return nil -} - -func (o *podNodeConstraints) SetAuthorizer(a authorizer.Authorizer) { - o.authorizer = a -} - -func (o *podNodeConstraints) ValidateInitialization() error { - if o.authorizer == nil { - return fmt.Errorf("%s requires an authorizer", PluginName) - } - if o.nodeIdentifier == nil { - return fmt.Errorf("%s requires a node identifier", PluginName) - } - return nil -} - -// build LocalSubjectAccessReview struct to validate role via checkAccess -func (o *podNodeConstraints) checkPodsBindAccess(ctx context.Context, attr admission.Attributes) (bool, error) { - authzAttr := authorizer.AttributesRecord{ - User: attr.GetUserInfo(), - Verb: "create", - Namespace: attr.GetNamespace(), - Resource: "pods", - Subresource: "binding", - APIGroup: coreapi.GroupName, - ResourceRequest: true, - } - if attr.GetResource().GroupResource() == coreapi.Resource("pods") { - authzAttr.Name = attr.GetName() - } - authorized, _, err := o.authorizer.Authorize(ctx, authzAttr) - return authorized == authorizer.DecisionAllow, err -} - -func (o *podNodeConstraints) isNodeSelfTargetWithMirrorPod(attr admission.Attributes, nodeName string) bool { - // make sure we are actually trying to target a node - if len(nodeName) == 0 { - return false - } - // this check specifically requires the object to be pod (unlike the other checks where we want any pod spec) - pod, ok := attr.GetObject().(*coreapi.Pod) - if !ok { - return false - } - // note that anyone can create a mirror pod, but they are not privileged in any way - // they are actually highly constrained since they cannot reference secrets - // nodes can only create and delete them, and they will delete any "orphaned" mirror pods - if _, isMirrorPod := pod.Annotations[coreapi.MirrorPodAnnotationKey]; !isMirrorPod { - return false - } - // we are targeting a node with a mirror pod - // confirm the user is a node that is targeting itself - actualNodeName, isNode := o.nodeIdentifier.NodeIdentity(attr.GetUserInfo()) - return isNode && actualNodeName == nodeName -} diff --git a/openshift-kube-apiserver/admission/scheduler/podnodeconstraints/admission_test.go b/openshift-kube-apiserver/admission/scheduler/podnodeconstraints/admission_test.go deleted file mode 100644 index 202cade822195..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/podnodeconstraints/admission_test.go +++ /dev/null @@ -1,283 +0,0 @@ -package podnodeconstraints - -import ( - "bytes" - "context" - "fmt" - "testing" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/admission/initializer" - "k8s.io/apiserver/pkg/authentication/user" - "k8s.io/apiserver/pkg/authorization/authorizer" - kapi "k8s.io/kubernetes/pkg/apis/core" - "k8s.io/kubernetes/pkg/auth/nodeidentifier" - "k8s.io/kubernetes/pkg/serviceaccount" - - authorizationv1 "github.com/openshift/api/authorization/v1" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/scheduler/apis/podnodeconstraints" -) - -func TestPodNodeConstraints(t *testing.T) { - ns := metav1.NamespaceDefault - tests := []struct { - config *podnodeconstraints.PodNodeConstraintsConfig - resource runtime.Object - kind schema.GroupKind - groupresource schema.GroupResource - userinfo user.Info - reviewResponse *authorizationv1.SubjectAccessReviewResponse - expectedResource string - expectedErrorMsg string - }{ - // 0: expect unspecified defaults to not error - { - config: emptyConfig(), - resource: defaultPod(), - userinfo: serviceaccount.UserInfo("", "", ""), - reviewResponse: reviewResponse(false, ""), - expectedResource: "pods/binding", - expectedErrorMsg: "", - }, - // 1: expect nodeSelector to error with user which lacks "pods/binding" access - { - config: testConfig(), - resource: nodeSelectorPod(), - userinfo: serviceaccount.UserInfo("", "", ""), - reviewResponse: reviewResponse(false, ""), - expectedResource: "pods/binding", - expectedErrorMsg: "node selection by label(s) [bogus] is prohibited by policy for your role", - }, - // 2: expect nodeName to fail with user that lacks "pods/binding" access - { - config: testConfig(), - resource: nodeNamePod(), - userinfo: serviceaccount.UserInfo("herpy", "derpy", ""), - reviewResponse: reviewResponse(false, ""), - expectedResource: "pods/binding", - expectedErrorMsg: "node selection by nodeName is prohibited by policy for your role", - }, - // 3: expect nodeName and nodeSelector to fail with user that lacks "pods/binding" access - { - config: testConfig(), - resource: nodeNameNodeSelectorPod(), - userinfo: serviceaccount.UserInfo("herpy", "derpy", ""), - reviewResponse: reviewResponse(false, ""), - expectedResource: "pods/binding", - expectedErrorMsg: "node selection by nodeName and label(s) [bogus] is prohibited by policy for your role", - }, - // 4: expect nodeSelector to succeed with user that has "pods/binding" access - { - config: testConfig(), - resource: nodeSelectorPod(), - userinfo: serviceaccount.UserInfo("openshift-infra", "daemonset-controller", ""), - reviewResponse: reviewResponse(true, ""), - expectedResource: "pods/binding", - expectedErrorMsg: "", - }, - // 5: expect nodeName to succeed with user that has "pods/binding" access - { - config: testConfig(), - resource: nodeNamePod(), - userinfo: serviceaccount.UserInfo("openshift-infra", "daemonset-controller", ""), - reviewResponse: reviewResponse(true, ""), - expectedResource: "pods/binding", - expectedErrorMsg: "", - }, - // 6: expect nil config to bypass admission - { - config: nil, - resource: defaultPod(), - userinfo: serviceaccount.UserInfo("", "", ""), - reviewResponse: reviewResponse(false, ""), - expectedResource: "pods/binding", - expectedErrorMsg: "", - }, - // 7: expect nodeName to succeed with node user self targeting mirror pod - { - config: testConfig(), - resource: nodeNameMirrorPod(), - userinfo: &user.DefaultInfo{Name: "system:node:frank", Groups: []string{user.NodesGroup}}, - expectedErrorMsg: "", - }, - // 8: expect nodeName to fail with node user self targeting non-mirror pod - { - config: testConfig(), - resource: nodeNamePod(), - userinfo: &user.DefaultInfo{Name: "system:node:frank", Groups: []string{user.NodesGroup}}, - expectedErrorMsg: "node selection by nodeName is prohibited by policy for your role", - }, - // 9: expect nodeName to fail with node user non-self targeting mirror pod - { - config: testConfig(), - resource: nodeNameMirrorPod(), - userinfo: &user.DefaultInfo{Name: "system:node:bob", Groups: []string{user.NodesGroup}}, - expectedErrorMsg: "node selection by nodeName is prohibited by policy for your role", - }, - // 10: expect nodeName to fail with node user non-self targeting non-mirror pod - { - config: testConfig(), - resource: nodeNamePod(), - userinfo: &user.DefaultInfo{Name: "system:node:bob", Groups: []string{user.NodesGroup}}, - expectedErrorMsg: "node selection by nodeName is prohibited by policy for your role", - }, - } - for i, tc := range tests { - var expectedError error - errPrefix := fmt.Sprintf("%d", i) - prc := NewPodNodeConstraints(tc.config, nodeidentifier.NewDefaultNodeIdentifier()) - prc.(initializer.WantsAuthorizer).SetAuthorizer(fakeAuthorizer(t)) - err := prc.(admission.InitializationValidator).ValidateInitialization() - if err != nil { - checkAdmitError(t, err, expectedError, errPrefix) - continue - } - attrs := admission.NewAttributesRecord(tc.resource, nil, kapi.Kind("Pod").WithVersion("version"), ns, "test", kapi.Resource("pods").WithVersion("version"), "", admission.Create, nil, false, tc.userinfo) - if tc.expectedErrorMsg != "" { - expectedError = admission.NewForbidden(attrs, fmt.Errorf(tc.expectedErrorMsg)) - } - err = prc.(admission.ValidationInterface).Validate(context.TODO(), attrs, nil) - checkAdmitError(t, err, expectedError, errPrefix) - } -} - -func TestPodNodeConstraintsPodUpdate(t *testing.T) { - ns := metav1.NamespaceDefault - var expectedError error - errPrefix := "PodUpdate" - prc := NewPodNodeConstraints(testConfig(), nodeidentifier.NewDefaultNodeIdentifier()) - prc.(initializer.WantsAuthorizer).SetAuthorizer(fakeAuthorizer(t)) - err := prc.(admission.InitializationValidator).ValidateInitialization() - if err != nil { - checkAdmitError(t, err, expectedError, errPrefix) - return - } - attrs := admission.NewAttributesRecord(nodeNamePod(), nodeNamePod(), kapi.Kind("Pod").WithVersion("version"), ns, "test", kapi.Resource("pods").WithVersion("version"), "", admission.Update, nil, false, serviceaccount.UserInfo("", "", "")) - err = prc.(admission.ValidationInterface).Validate(context.TODO(), attrs, nil) - checkAdmitError(t, err, expectedError, errPrefix) -} - -func TestPodNodeConstraintsNonHandledResources(t *testing.T) { - ns := metav1.NamespaceDefault - errPrefix := "ResourceQuotaTest" - var expectedError error - prc := NewPodNodeConstraints(testConfig(), nodeidentifier.NewDefaultNodeIdentifier()) - prc.(initializer.WantsAuthorizer).SetAuthorizer(fakeAuthorizer(t)) - err := prc.(admission.InitializationValidator).ValidateInitialization() - if err != nil { - checkAdmitError(t, err, expectedError, errPrefix) - return - } - attrs := admission.NewAttributesRecord(resourceQuota(), nil, kapi.Kind("ResourceQuota").WithVersion("version"), ns, "test", kapi.Resource("resourcequotas").WithVersion("version"), "", admission.Create, nil, false, serviceaccount.UserInfo("", "", "")) - err = prc.(admission.ValidationInterface).Validate(context.TODO(), attrs, nil) - checkAdmitError(t, err, expectedError, errPrefix) -} - -func emptyConfig() *podnodeconstraints.PodNodeConstraintsConfig { - return &podnodeconstraints.PodNodeConstraintsConfig{} -} - -func testConfig() *podnodeconstraints.PodNodeConstraintsConfig { - return &podnodeconstraints.PodNodeConstraintsConfig{ - NodeSelectorLabelBlacklist: []string{"bogus"}, - } -} - -func defaultPod() *kapi.Pod { - pod := &kapi.Pod{} - return pod -} - -func nodeNameNodeSelectorPod() *kapi.Pod { - pod := &kapi.Pod{} - pod.Spec.NodeName = "frank" - pod.Spec.NodeSelector = map[string]string{"bogus": "frank"} - return pod -} - -func nodeNamePod() *kapi.Pod { - pod := &kapi.Pod{} - pod.Spec.NodeName = "frank" - return pod -} - -func nodeNameMirrorPod() *kapi.Pod { - pod := &kapi.Pod{} - pod.Annotations = map[string]string{kapi.MirrorPodAnnotationKey: "true"} - pod.Spec.NodeName = "frank" - return pod -} - -func nodeSelectorPod() *kapi.Pod { - pod := &kapi.Pod{} - pod.Spec.NodeSelector = map[string]string{"bogus": "frank"} - return pod -} - -func resourceQuota() runtime.Object { - rq := &kapi.ResourceQuota{} - return rq -} - -func checkAdmitError(t *testing.T, err error, expectedError error, prefix string) { - switch { - case expectedError == nil && err == nil: - // continue - case expectedError != nil && err != nil && err.Error() != expectedError.Error(): - t.Errorf("%s: expected error %q, got: %q", prefix, expectedError.Error(), err.Error()) - case expectedError == nil && err != nil: - t.Errorf("%s: expected no error, got: %q", prefix, err.Error()) - case expectedError != nil && err == nil: - t.Errorf("%s: expected error %q, no error received", prefix, expectedError.Error()) - } -} - -type fakeTestAuthorizer struct { - t *testing.T -} - -func fakeAuthorizer(t *testing.T) authorizer.Authorizer { - return &fakeTestAuthorizer{ - t: t, - } -} - -func (a *fakeTestAuthorizer) Authorize(_ context.Context, attributes authorizer.Attributes) (authorizer.Decision, string, error) { - ui := attributes.GetUser() - if ui == nil { - return authorizer.DecisionNoOpinion, "", fmt.Errorf("No valid UserInfo for Context") - } - // User with pods/bindings. permission: - if ui.GetName() == "system:serviceaccount:openshift-infra:daemonset-controller" { - return authorizer.DecisionAllow, "", nil - } - // User without pods/bindings. permission: - return authorizer.DecisionNoOpinion, "", nil -} - -func reviewResponse(allowed bool, msg string) *authorizationv1.SubjectAccessReviewResponse { - return &authorizationv1.SubjectAccessReviewResponse{ - Allowed: allowed, - Reason: msg, - } -} - -func TestReadConfig(t *testing.T) { - configStr := `apiVersion: scheduling.openshift.io/v1 -kind: PodNodeConstraintsConfig -nodeSelectorLabelBlacklist: - - bogus - - foo -` - buf := bytes.NewBufferString(configStr) - config, err := readConfig(buf) - if err != nil { - t.Fatalf("unexpected error reading config: %v", err) - } - if len(config.NodeSelectorLabelBlacklist) == 0 { - t.Fatalf("NodeSelectorLabelBlacklist didn't take specified value") - } -} diff --git a/openshift-kube-apiserver/admission/scheduler/podnodeconstraints/doc.go b/openshift-kube-apiserver/admission/scheduler/podnodeconstraints/doc.go deleted file mode 100644 index dfdf50a8102f0..0000000000000 --- a/openshift-kube-apiserver/admission/scheduler/podnodeconstraints/doc.go +++ /dev/null @@ -1,44 +0,0 @@ -/* -Package podnodeconstraints contains the PodNodeConstraints admission -control plugin. This plugin allows administrators to set policy -governing the use of the NodeName and NodeSelector attributes in pod -specs. - -Enabling this plugin will prevent the use of the NodeName field in Pod -templates for users and serviceaccounts which lack the "pods/binding" -permission, and which don't belong to groups which have the -"pods/binding" permission. - -This plugin will also prevent users, serviceaccounts and groups which -lack the "pods/binding" permission from specifying the NodeSelector field -in Pod templates for labels which appear in the -nodeSelectorLabelBlacklist list field. - -Configuration - -The plugin is configured via a PodNodeConstraintsConfig object in the -origin and kubernetes Master configs: - -admissionConfig: - pluginConfig: - PodNodeConstraints: - configuration: - apiVersion: v1 - kind: PodNodeConstraintsConfig - nodeSelectorLabelBlacklist: - - label1 - - label2 -... -kubernetesMasterConfig: - admissionConfig: - pluginConfig: - PodNodeConstraints: - configuration: - apiVersion: v1 - kind: PodNodeConstraintsConfig - nodeSelectorLabelBlacklist: - - label1 - - label2 -*/ - -package podnodeconstraints diff --git a/openshift-kube-apiserver/authentication/oauth/bootstrapauthenticator.go b/openshift-kube-apiserver/authentication/oauth/bootstrapauthenticator.go deleted file mode 100644 index fc594f218f83a..0000000000000 --- a/openshift-kube-apiserver/authentication/oauth/bootstrapauthenticator.go +++ /dev/null @@ -1,113 +0,0 @@ -package oauth - -import ( - "context" - "crypto/sha256" - "encoding/base64" - "fmt" - "strings" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/types" - kauthenticator "k8s.io/apiserver/pkg/authentication/authenticator" - kuser "k8s.io/apiserver/pkg/authentication/user" - - authorizationv1 "github.com/openshift/api/authorization/v1" - userv1 "github.com/openshift/api/user/v1" - oauthclient "github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1" - bootstrap "github.com/openshift/library-go/pkg/authentication/bootstrapauthenticator" -) - -const ClusterAdminGroup = "system:cluster-admins" - -type bootstrapAuthenticator struct { - tokens oauthclient.OAuthAccessTokenInterface - getter bootstrap.BootstrapUserDataGetter - validator OAuthTokenValidator - implicitAudiences kauthenticator.Audiences -} - -func NewBootstrapAuthenticator(tokens oauthclient.OAuthAccessTokenInterface, getter bootstrap.BootstrapUserDataGetter, implicitAudiences kauthenticator.Audiences, validators ...OAuthTokenValidator) kauthenticator.Token { - return &bootstrapAuthenticator{ - tokens: tokens, - getter: getter, - validator: OAuthTokenValidators(validators), - implicitAudiences: implicitAudiences, - } -} - -func (a *bootstrapAuthenticator) AuthenticateToken(ctx context.Context, name string) (*kauthenticator.Response, bool, error) { - // hash token for new-style sha256~ prefixed token - // TODO: reject non-sha256 prefix tokens in 4.7+ - if strings.HasPrefix(name, sha256Prefix) { - withoutPrefix := strings.TrimPrefix(name, sha256Prefix) - h := sha256.Sum256([]byte(withoutPrefix)) - name = sha256Prefix + base64.RawURLEncoding.EncodeToString(h[0:]) - } - - token, err := a.tokens.Get(context.TODO(), name, metav1.GetOptions{}) - if err != nil { - return nil, false, errLookup // mask the error so we do not leak token data in logs - } - - if token.UserName != bootstrap.BootstrapUser { - return nil, false, nil - } - - data, ok, err := a.getter.Get() - if err != nil || !ok { - return nil, ok, err - } - - // this allows us to reuse existing validators - // since the uid is based on the secret, if the secret changes, all - // tokens issued for the bootstrap user before that change stop working - fakeUser := &userv1.User{ - ObjectMeta: metav1.ObjectMeta{ - UID: types.UID(data.UID), - }, - } - - if err := a.validator.Validate(token, fakeUser); err != nil { - return nil, false, err - } - - tokenAudiences := a.implicitAudiences - requestedAudiences, ok := kauthenticator.AudiencesFrom(ctx) - if !ok { - // default to apiserver audiences - requestedAudiences = a.implicitAudiences - } - - auds := kauthenticator.Audiences(tokenAudiences).Intersect(requestedAudiences) - if len(auds) == 0 && len(a.implicitAudiences) != 0 { - return nil, false, fmt.Errorf("token audiences %q is invalid for the target audiences %q", tokenAudiences, requestedAudiences) - } - - // we explicitly do not set UID as we do not want to leak any derivative of the password - return &kauthenticator.Response{ - Audiences: auds, - User: &kuser.DefaultInfo{ - Name: bootstrap.BootstrapUser, - // we cannot use SystemPrivilegedGroup because it cannot be properly scoped. - // see openshift/origin#18922 and how loopback connections are handled upstream via AuthorizeClientBearerToken. - // api aggregation with delegated authorization makes this impossible to control, see WithAlwaysAllowGroups. - // an openshift specific cluster role binding binds ClusterAdminGroup to the cluster role cluster-admin. - // thus this group is authorized to do everything via RBAC. - // this does make the bootstrap user susceptible to anything that causes the RBAC authorizer to fail. - // this is a safe trade-off because scopes must always be evaluated before RBAC for them to work at all. - // a failure in that logic means scopes are broken instead of a specific failure related to the bootstrap user. - // if this becomes a problem in the future, we could generate a custom extra value based on the secret content - // and store it in BootstrapUserData, similar to how UID is calculated. this extra value would then be wired - // to a custom authorizer that allows all actions. the problem with such an approach is that since we do not - // allow remote authorizers in OpenShift, the BootstrapUserDataGetter logic would have to be shared between the - // the kube api server and osin instead of being an implementation detail hidden inside of osin. currently the - // only shared code is the value of the BootstrapUser constant (since it is special cased in validation). - Groups: []string{ClusterAdminGroup}, - Extra: map[string][]string{ - // this user still needs scopes because it can be used in OAuth flows (unlike cert based users) - authorizationv1.ScopesKey: token.Scopes, - }, - }, - }, true, nil -} diff --git a/openshift-kube-apiserver/authentication/oauth/expirationvalidator.go b/openshift-kube-apiserver/authentication/oauth/expirationvalidator.go deleted file mode 100644 index 67e2f26e2fbc8..0000000000000 --- a/openshift-kube-apiserver/authentication/oauth/expirationvalidator.go +++ /dev/null @@ -1,31 +0,0 @@ -package oauth - -import ( - "errors" - "time" - - oauthv1 "github.com/openshift/api/oauth/v1" - userv1 "github.com/openshift/api/user/v1" -) - -var errExpired = errors.New("token is expired") - -func NewExpirationValidator() OAuthTokenValidator { - return OAuthTokenValidatorFunc( - func(token *oauthv1.OAuthAccessToken, _ *userv1.User) error { - if token.ExpiresIn > 0 { - if expire(token).Before(time.Now()) { - return errExpired - } - } - if token.DeletionTimestamp != nil { - return errExpired - } - return nil - }, - ) -} - -func expire(token *oauthv1.OAuthAccessToken) time.Time { - return token.CreationTimestamp.Add(time.Duration(token.ExpiresIn) * time.Second) -} diff --git a/openshift-kube-apiserver/authentication/oauth/expirationvalidator_test.go b/openshift-kube-apiserver/authentication/oauth/expirationvalidator_test.go deleted file mode 100644 index f538d1a237565..0000000000000 --- a/openshift-kube-apiserver/authentication/oauth/expirationvalidator_test.go +++ /dev/null @@ -1,72 +0,0 @@ -package oauth - -import ( - "context" - "testing" - "time" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - oauthv1 "github.com/openshift/api/oauth/v1" - userv1 "github.com/openshift/api/user/v1" - oauthfake "github.com/openshift/client-go/oauth/clientset/versioned/fake" - userfake "github.com/openshift/client-go/user/clientset/versioned/fake" -) - -func TestAuthenticateTokenExpired(t *testing.T) { - fakeOAuthClient := oauthfake.NewSimpleClientset( - // expired token that had a lifetime of 10 minutes - &oauthv1.OAuthAccessToken{ - ObjectMeta: metav1.ObjectMeta{Name: "token1", CreationTimestamp: metav1.Time{Time: time.Now().Add(-1 * time.Hour)}}, - ExpiresIn: 600, - UserName: "foo", - }, - // non-expired token that has a lifetime of 10 minutes, but has a non-nil deletion timestamp - &oauthv1.OAuthAccessToken{ - ObjectMeta: metav1.ObjectMeta{Name: "token2", CreationTimestamp: metav1.Time{Time: time.Now()}, DeletionTimestamp: &metav1.Time{}}, - ExpiresIn: 600, - UserName: "foo", - }, - ) - fakeUserClient := userfake.NewSimpleClientset(&userv1.User{ObjectMeta: metav1.ObjectMeta{Name: "foo", UID: "bar"}}) - - tokenAuthenticator := NewTokenAuthenticator(fakeOAuthClient.OauthV1().OAuthAccessTokens(), fakeUserClient.UserV1().Users(), NoopGroupMapper{}, nil, NewExpirationValidator()) - - for _, tokenName := range []string{"token1", "token2"} { - userInfo, found, err := tokenAuthenticator.AuthenticateToken(context.TODO(), tokenName) - if found { - t.Error("Found token, but it should be missing!") - } - if err != errExpired { - t.Errorf("Unexpected error: %v", err) - } - if userInfo != nil { - t.Errorf("Unexpected user: %v", userInfo) - } - } -} - -func TestAuthenticateTokenValidated(t *testing.T) { - fakeOAuthClient := oauthfake.NewSimpleClientset( - &oauthv1.OAuthAccessToken{ - ObjectMeta: metav1.ObjectMeta{Name: "token", CreationTimestamp: metav1.Time{Time: time.Now()}}, - ExpiresIn: 600, // 10 minutes - UserName: "foo", - UserUID: string("bar"), - }, - ) - fakeUserClient := userfake.NewSimpleClientset(&userv1.User{ObjectMeta: metav1.ObjectMeta{Name: "foo", UID: "bar"}}) - - tokenAuthenticator := NewTokenAuthenticator(fakeOAuthClient.OauthV1().OAuthAccessTokens(), fakeUserClient.UserV1().Users(), NoopGroupMapper{}, nil, NewExpirationValidator(), NewUIDValidator()) - - userInfo, found, err := tokenAuthenticator.AuthenticateToken(context.TODO(), "token") - if !found { - t.Error("Did not find a token!") - } - if err != nil { - t.Errorf("Unexpected error: %v", err) - } - if userInfo == nil { - t.Error("Did not get a user!") - } -} diff --git a/openshift-kube-apiserver/authentication/oauth/interfaces.go b/openshift-kube-apiserver/authentication/oauth/interfaces.go deleted file mode 100644 index 002f30421cf1d..0000000000000 --- a/openshift-kube-apiserver/authentication/oauth/interfaces.go +++ /dev/null @@ -1,41 +0,0 @@ -package oauth - -import ( - oauthv1 "github.com/openshift/api/oauth/v1" - userv1 "github.com/openshift/api/user/v1" -) - -type OAuthTokenValidator interface { - Validate(token *oauthv1.OAuthAccessToken, user *userv1.User) error -} - -var _ OAuthTokenValidator = OAuthTokenValidatorFunc(nil) - -type OAuthTokenValidatorFunc func(token *oauthv1.OAuthAccessToken, user *userv1.User) error - -func (f OAuthTokenValidatorFunc) Validate(token *oauthv1.OAuthAccessToken, user *userv1.User) error { - return f(token, user) -} - -var _ OAuthTokenValidator = OAuthTokenValidators(nil) - -type OAuthTokenValidators []OAuthTokenValidator - -func (v OAuthTokenValidators) Validate(token *oauthv1.OAuthAccessToken, user *userv1.User) error { - for _, validator := range v { - if err := validator.Validate(token, user); err != nil { - return err - } - } - return nil -} - -type UserToGroupMapper interface { - GroupsFor(username string) ([]*userv1.Group, error) -} - -type NoopGroupMapper struct{} - -func (n NoopGroupMapper) GroupsFor(username string) ([]*userv1.Group, error) { - return []*userv1.Group{}, nil -} diff --git a/openshift-kube-apiserver/authentication/oauth/rankedset/rankedset.go b/openshift-kube-apiserver/authentication/oauth/rankedset/rankedset.go deleted file mode 100644 index 892fede13429a..0000000000000 --- a/openshift-kube-apiserver/authentication/oauth/rankedset/rankedset.go +++ /dev/null @@ -1,162 +0,0 @@ -package rankedset - -import "github.com/google/btree" - -// Item represents a single object in a RankedSet. -type Item interface { - // Key returns the unique identifier for this item. - Key() string - // Rank is used to sort items. - // Items with the same rank are sorted lexicographically based on Key. - Rank() int64 -} - -// RankedSet stores Items based on Key (uniqueness) and Rank (sorting). -type RankedSet struct { - rank *btree.BTree - set map[string]*treeItem -} - -// StringItem implements Item using a string. -// It has two main uses: -// 1. If all items in a RankedSet are StringItems, the set becomes a store of unique strings sorted lexicographically. -// 2. It serves as a Key item that can be passed into methods that ignore Rank such as RankedSet.Delete. -type StringItem string - -func (s StringItem) Key() string { - return string(s) -} - -func (s StringItem) Rank() int64 { - return 0 -} - -func New() *RankedSet { - return &RankedSet{ - rank: btree.New(32), - set: make(map[string]*treeItem), - } -} - -// Insert adds the item into the set. -// If an item with the same Key existed in the set, it is deleted and returned. -func (s *RankedSet) Insert(item Item) Item { - old := s.Delete(item) - - key := item.Key() - value := &treeItem{item: item} - - s.rank.ReplaceOrInsert(value) // should always return nil because we call Delete first - s.set[key] = value - - return old -} - -// Delete removes the item from the set based on Key (Rank is ignored). -// The removed item is returned if it existed in the set. -func (s *RankedSet) Delete(item Item) Item { - key := item.Key() - value, ok := s.set[key] - if !ok { - return nil - } - - s.rank.Delete(value) // should always return the same data as value (non-nil) - delete(s.set, key) - - return value.item -} - -func (s *RankedSet) Min() Item { - if min := s.rank.Min(); min != nil { - return min.(*treeItem).item - } - return nil -} - -func (s *RankedSet) Max() Item { - if max := s.rank.Max(); max != nil { - return max.(*treeItem).item - } - return nil -} - -func (s *RankedSet) Len() int { - return len(s.set) -} - -func (s *RankedSet) Get(item Item) Item { - if value, ok := s.set[item.Key()]; ok { - return value.item - } - return nil -} - -func (s *RankedSet) Has(item Item) bool { - _, ok := s.set[item.Key()] - return ok -} - -// List returns all items in the set in ranked order. -// If delete is set to true, the returned items are removed from the set. -func (s *RankedSet) List(delete bool) []Item { - return s.ascend( - func(item Item) bool { - return true - }, - delete, - ) -} - -// LessThan returns all items less than the given rank in ranked order. -// If delete is set to true, the returned items are removed from the set. -func (s *RankedSet) LessThan(rank int64, delete bool) []Item { - return s.ascend( - func(item Item) bool { - return item.Rank() < rank - }, - delete, - ) -} - -// setItemIterator allows callers of ascend to iterate in-order over the set. -// When this function returns false, iteration will stop. -type setItemIterator func(item Item) bool - -func (s *RankedSet) ascend(iterator setItemIterator, delete bool) []Item { - var items []Item - s.rank.Ascend(func(i btree.Item) bool { - item := i.(*treeItem).item - if !iterator(item) { - return false - } - items = append(items, item) - return true - }) - // delete after Ascend since it is probably not safe to remove while iterating - if delete { - for _, item := range items { - s.Delete(item) - } - } - return items -} - -var _ btree.Item = &treeItem{} - -type treeItem struct { - item Item -} - -func (i *treeItem) Less(than btree.Item) bool { - other := than.(*treeItem).item - - selfRank := i.item.Rank() - otherRank := other.Rank() - - if selfRank == otherRank { - return i.item.Key() < other.Key() - } - - return selfRank < otherRank -} diff --git a/openshift-kube-apiserver/authentication/oauth/rankedset/rankedset_test.go b/openshift-kube-apiserver/authentication/oauth/rankedset/rankedset_test.go deleted file mode 100644 index 92d56dc7aa63e..0000000000000 --- a/openshift-kube-apiserver/authentication/oauth/rankedset/rankedset_test.go +++ /dev/null @@ -1,273 +0,0 @@ -package rankedset - -import "testing" - -func TestRankedSet(t *testing.T) { - s := New() - a := newTestSetItem("A", 5, "AD") - b := newTestSetItem("B", 6, "BD") - c := newTestSetItem("C", 4, "CD") - d := newTestSetItem("D", 6, "DD") - e := newTestSetItem("E", 1, "ED") - - for _, tc := range []struct { - name string - f func(*testing.T) - }{ - { - name: "insert", - f: func(t *testing.T) { - assertLen(s, 0, t) - s.Insert(a) - assertLen(s, 1, t) - s.Insert(b) - assertLen(s, 2, t) - s.Insert(c) - assertLen(s, 3, t) - s.Insert(d) - assertLen(s, 4, t) - s.Insert(e) - assertLen(s, 5, t) - }, - }, - { - name: "list order", - f: func(t *testing.T) { - assertOrder(s.List(false), t, e, c, a, b, d) - assertItem(e, s.Min(), t) - assertItem(d, s.Max(), t) - }, - }, - { - name: "delete list order 1", - f: func(t *testing.T) { - assertItem(a, s.Delete(a), t) - assertOrder(s.List(false), t, e, c, b, d) - assertLen(s, 4, t) - assertItem(e, s.Min(), t) - assertItem(d, s.Max(), t) - }, - }, - { - name: "delete list order 2", - f: func(t *testing.T) { - assertItem(b, s.Delete(b), t) - assertOrder(s.List(false), t, e, c, d) - assertLen(s, 3, t) - assertItem(e, s.Min(), t) - assertItem(d, s.Max(), t) - }, - }, - { - name: "has", - f: func(t *testing.T) { - assertHas("A", false, s, t) - assertHas("B", false, s, t) - assertHas("C", true, s, t) - assertHas("D", true, s, t) - assertHas("E", true, s, t) - assertHas("F", false, s, t) - }, - }, - { - name: "get", - f: func(t *testing.T) { - assertItem(nil, s.Get(StringItem("A")), t) - assertItem(nil, s.Get(StringItem("B")), t) - assertItem(c, s.Get(StringItem("C")), t) - assertItem(d, s.Get(StringItem("D")), t) - assertItem(e, s.Get(StringItem("E")), t) - assertItem(nil, s.Get(StringItem("F")), t) - }, - }, - { - name: "delete list order 3", - f: func(t *testing.T) { - assertItem(nil, s.Delete(b), t) - assertOrder(s.List(false), t, e, c, d) - assertLen(s, 3, t) - assertItem(e, s.Min(), t) - assertItem(d, s.Max(), t) - }, - }, - { - name: "delete list order 4", - f: func(t *testing.T) { - assertItem(c, s.Delete(c), t) - assertOrder(s.List(false), t, e, d) - assertLen(s, 2, t) - assertItem(e, s.Min(), t) - assertItem(d, s.Max(), t) - }, - }, - { - name: "insert list order", - f: func(t *testing.T) { - assertItem(nil, s.Insert(a), t) - assertOrder(s.List(false), t, e, a, d) - assertLen(s, 3, t) - assertItem(e, s.Min(), t) - assertItem(d, s.Max(), t) - }, - }, - { - name: "less than order", - f: func(t *testing.T) { - assertOrder(s.LessThan(6, false), t, e, a) - assertLen(s, 3, t) - assertItem(e, s.Min(), t) - assertItem(d, s.Max(), t) - }, - }, - { - name: "less than order delete", - f: func(t *testing.T) { - assertOrder(s.LessThan(6, true), t, e, a) - assertLen(s, 1, t) - assertItem(d, s.Min(), t) - assertItem(d, s.Max(), t) - }, - }, - { - name: "list order delete", - f: func(t *testing.T) { - assertOrder(s.List(true), t, d) - assertLen(s, 0, t) - assertItem(nil, s.Min(), t) - assertItem(nil, s.Max(), t) - }, - }, - { - name: "insert min max", - f: func(t *testing.T) { - assertItem(nil, s.Insert(b), t) - assertItem(nil, s.Insert(a), t) - assertItem(nil, s.Insert(e), t) - assertOrder(s.List(false), t, e, a, b) - assertLen(s, 3, t) - assertItem(e, s.Min(), t) - assertItem(b, s.Max(), t) - assertItem(e, s.Delete(e), t) - assertLen(s, 2, t) - assertItem(a, s.Min(), t) - assertItem(b, s.Max(), t) - }, - }, - { - name: "insert replace", - f: func(t *testing.T) { - a0 := newTestSetItem("A", 1, "AD0") - a1 := newTestSetItem("A", 2, "AD1") - a2 := newTestSetItem("A", 3, "AD2") - - assertItem(nil, s.Insert(e), t) - assertOrder(s.List(false), t, e, a, b) - assertLen(s, 3, t) - assertItem(e, s.Min(), t) - assertItem(b, s.Max(), t) - - assertItem(a, s.Insert(a0), t) - assertOrder(s.List(false), t, a0, e, b) - assertLen(s, 3, t) - assertItem(a0, s.Min(), t) - assertItem(b, s.Max(), t) - - assertItem(a0, s.Insert(a1), t) - assertOrder(s.List(false), t, e, a1, b) - assertLen(s, 3, t) - assertItem(e, s.Min(), t) - assertItem(b, s.Max(), t) - - assertItem(a1, s.Insert(a2), t) - assertOrder(s.List(false), t, e, a2, b) - assertLen(s, 3, t) - assertItem(e, s.Min(), t) - assertItem(b, s.Max(), t) - }, - }, - } { - t.Run(tc.name, tc.f) - } -} - -func assertLen(s *RankedSet, length int, t *testing.T) { - if s.Len() != length { - t.Errorf("%s expected len: %d got %d for %v", t.Name(), length, s.Len(), noPointerItems(s.List(false))) - } -} - -func assertOrder(actual []Item, t *testing.T, items ...*testSetItem) { - if len(items) != len(actual) { - t.Errorf("%s expected len: %d got %d for %v and %v", t.Name(), len(items), len(actual), noPointers(items), noPointerItems(actual)) - return - } - for i, item := range items { - if actualItem := actual[i].(*testSetItem); *item != *actualItem { - t.Errorf("%s expected item: %v got %v for idx %d", t.Name(), *item, *actualItem, i) - } - } -} - -func assertItem(item *testSetItem, actual Item, t *testing.T) { - itemNil := item == nil - actualNil := actual == nil - - if itemNil != actualNil { - t.Errorf("%s expected or actual is nil: %v vs %v", t.Name(), item, actual) - return - } - - if itemNil { - return - } - - if actualItem := actual.(*testSetItem); *item != *actualItem { - t.Errorf("%s expected item: %v got %v", t.Name(), *item, *actualItem) - } -} - -func assertHas(key string, expected bool, s *RankedSet, t *testing.T) { - if expected != s.Has(StringItem(key)) { - t.Errorf("%s expected %v for %s with %v", t.Name(), expected, key, noPointerItems(s.List(false))) - } -} - -func newTestSetItem(key string, rank int64, data string) *testSetItem { - return &testSetItem{ - key: key, - rank: rank, - data: data, - } -} - -type testSetItem struct { - key string - rank int64 - data string -} - -func (i *testSetItem) Key() string { - return i.key -} - -func (i *testSetItem) Rank() int64 { - return i.rank -} - -// funcs below make the printing of these slices better - -func noPointers(items []*testSetItem) []testSetItem { - var out []testSetItem - for _, item := range items { - out = append(out, *item) - } - return out -} - -func noPointerItems(items []Item) []testSetItem { - var out []testSetItem - for _, item := range items { - out = append(out, *(item.(*testSetItem))) - } - return out -} diff --git a/openshift-kube-apiserver/authentication/oauth/timeoutvalidator.go b/openshift-kube-apiserver/authentication/oauth/timeoutvalidator.go deleted file mode 100644 index 4d51502fd4569..0000000000000 --- a/openshift-kube-apiserver/authentication/oauth/timeoutvalidator.go +++ /dev/null @@ -1,233 +0,0 @@ -package oauth - -import ( - "context" - "errors" - "time" - - "k8s.io/apimachinery/pkg/util/clock" - "k8s.io/klog/v2" - - apierrors "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/runtime" - - oauthv1 "github.com/openshift/api/oauth/v1" - userv1 "github.com/openshift/api/user/v1" - oauthclient "github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1" - oauthclientlister "github.com/openshift/client-go/oauth/listers/oauth/v1" - "k8s.io/kubernetes/openshift-kube-apiserver/authentication/oauth/rankedset" -) - -var errTimedout = errors.New("token timed out") - -// Implements rankedset.Item -var _ = rankedset.Item(&tokenData{}) - -type tokenData struct { - token *oauthv1.OAuthAccessToken - seen time.Time -} - -func (a *tokenData) timeout() time.Time { - return a.token.CreationTimestamp.Time.Add(time.Duration(a.token.InactivityTimeoutSeconds) * time.Second) -} - -func (a *tokenData) Key() string { - return a.token.Name -} - -func (a *tokenData) Rank() int64 { - return a.timeout().Unix() -} - -func timeoutAsDuration(timeout int32) time.Duration { - return time.Duration(timeout) * time.Second -} - -type TimeoutValidator struct { - oauthClients oauthclientlister.OAuthClientLister - tokens oauthclient.OAuthAccessTokenInterface - tokenChannel chan *tokenData - data *rankedset.RankedSet - defaultTimeout time.Duration - tickerInterval time.Duration - - // fields that are used to have a deterministic order of events in unit tests - flushHandler func(flushHorizon time.Time) // allows us to decorate this func during unit tests - putTokenHandler func(td *tokenData) // allows us to decorate this func during unit tests - clock clock.Clock // allows us to control time during unit tests -} - -func NewTimeoutValidator(tokens oauthclient.OAuthAccessTokenInterface, oauthClients oauthclientlister.OAuthClientLister, defaultTimeout int32, minValidTimeout int32) *TimeoutValidator { - a := &TimeoutValidator{ - oauthClients: oauthClients, - tokens: tokens, - tokenChannel: make(chan *tokenData), - data: rankedset.New(), - defaultTimeout: timeoutAsDuration(defaultTimeout), - tickerInterval: timeoutAsDuration(minValidTimeout / 3), // we tick at least 3 times within each timeout period - clock: clock.RealClock{}, - } - a.flushHandler = a.flush - a.putTokenHandler = a.putToken - klog.V(5).Infof("Token Timeout Validator primed with defaultTimeout=%s tickerInterval=%s", a.defaultTimeout, a.tickerInterval) - return a -} - -// Validate is called with a token when it is seen by an authenticator -// it touches only the tokenChannel so it is safe to call from other threads -func (a *TimeoutValidator) Validate(token *oauthv1.OAuthAccessToken, _ *userv1.User) error { - if token.InactivityTimeoutSeconds == 0 { - // We care only if the token was created with a timeout to start with - return nil - } - - td := &tokenData{ - token: token, - seen: a.clock.Now(), - } - if td.timeout().Before(td.seen) { - return errTimedout - } - - if token.ExpiresIn != 0 && token.ExpiresIn <= int64(token.InactivityTimeoutSeconds) { - // skip if the timeout is already larger than expiration deadline - return nil - } - // After a positive timeout check we need to update the timeout and - // schedule an update so that we can either set or update the Timeout - // we do that launching a micro goroutine to avoid blocking - go a.putTokenHandler(td) - - return nil -} - -func (a *TimeoutValidator) putToken(td *tokenData) { - a.tokenChannel <- td -} - -func (a *TimeoutValidator) clientTimeout(name string) time.Duration { - oauthClient, err := a.oauthClients.Get(name) - if err != nil { - klog.V(5).Infof("Failed to fetch OAuthClient %q for timeout value: %v", name, err) - return a.defaultTimeout - } - if oauthClient.AccessTokenInactivityTimeoutSeconds == nil { - return a.defaultTimeout - } - return timeoutAsDuration(*oauthClient.AccessTokenInactivityTimeoutSeconds) -} - -func (a *TimeoutValidator) update(td *tokenData) error { - // Obtain the timeout interval for this client - delta := a.clientTimeout(td.token.ClientName) - // if delta is 0 it means the OAuthClient has been changed to the - // no-timeout value. In this case we set newTimeout also to 0 so - // that the token will no longer timeout once updated. - newTimeout := int32(0) - if delta > 0 { - // InactivityTimeoutSeconds is the number of seconds since creation: - // InactivityTimeoutSeconds = Seen(Time) - CreationTimestamp(Time) + delta(Duration) - newTimeout = int32((td.seen.Sub(td.token.CreationTimestamp.Time) + delta) / time.Second) - } - // We need to get the token again here because it may have changed in the - // DB and we need to verify it is still worth updating - token, err := a.tokens.Get(context.TODO(), td.token.Name, v1.GetOptions{}) - if err != nil { - return err - } - if newTimeout != 0 && token.InactivityTimeoutSeconds >= newTimeout { - // if the token was already updated with a higher or equal timeout we - // do not have anything to do - return nil - } - token.InactivityTimeoutSeconds = newTimeout - _, err = a.tokens.Update(context.TODO(), token, v1.UpdateOptions{}) - return err -} - -func (a *TimeoutValidator) flush(flushHorizon time.Time) { - // flush all tokens that are about to expire before the flushHorizon. - // Typically the flushHorizon is set to a time slightly past the next - // ticker interval, so that not token ends up timing out between flushes - klog.V(5).Infof("Flushing tokens timing out before %s", flushHorizon) - - // grab all tokens that need to be update in this flush interval - // and remove them from the stored data, they either flush now or never - tokenList := a.data.LessThan(flushHorizon.Unix(), true) - - var retryList []*tokenData - flushedTokens := 0 - - for _, item := range tokenList { - td := item.(*tokenData) - err := a.update(td) - // not logging the full errors here as it would leak the token. - switch { - case err == nil: - flushedTokens++ - case apierrors.IsConflict(err) || apierrors.IsServerTimeout(err): - klog.V(5).Infof("Token update deferred for token belonging to %s", - td.token.UserName) - retryList = append(retryList, td) - default: - klog.V(5).Infof("Token timeout for user=%q client=%q scopes=%v was not updated", - td.token.UserName, td.token.ClientName, td.token.Scopes) - } - } - - // we try once more and if it still fails we stop trying here and defer - // to a future regular update if the token is used again - for _, td := range retryList { - err := a.update(td) - if err != nil { - klog.V(5).Infof("Token timeout for user=%q client=%q scopes=%v was not updated", - td.token.UserName, td.token.ClientName, td.token.Scopes) - } else { - flushedTokens++ - } - } - - klog.V(5).Infof("Successfully flushed %d tokens out of %d", - flushedTokens, len(tokenList)) -} - -func (a *TimeoutValidator) nextTick() time.Time { - // Add a small safety Margin so flushes tend to - // overlap a little rather than have gaps - return a.clock.Now().Add(a.tickerInterval + 10*time.Second) -} - -func (a *TimeoutValidator) Run(stopCh <-chan struct{}) { - defer runtime.HandleCrash() - klog.V(5).Infof("Started Token Timeout Flush Handling thread!") - - ticker := a.clock.NewTicker(a.tickerInterval) - // make sure to kill the ticker when we exit - defer ticker.Stop() - - nextTick := a.nextTick() - - for { - select { - case <-stopCh: - // if channel closes terminate - return - - case td := <-a.tokenChannel: - a.data.Insert(td) - // if this token is going to time out before the timer, flush now - tokenTimeout := td.timeout() - if tokenTimeout.Before(nextTick) { - klog.V(5).Infof("Timeout for user=%q client=%q scopes=%v falls before next ticker (%s < %s), forcing flush!", - td.token.UserName, td.token.ClientName, td.token.Scopes, tokenTimeout, nextTick) - a.flushHandler(nextTick) - } - - case <-ticker.C(): - nextTick = a.nextTick() - a.flushHandler(nextTick) - } - } -} diff --git a/openshift-kube-apiserver/authentication/oauth/tokenauthenticator.go b/openshift-kube-apiserver/authentication/oauth/tokenauthenticator.go deleted file mode 100644 index 3ce6e0e7a9c07..0000000000000 --- a/openshift-kube-apiserver/authentication/oauth/tokenauthenticator.go +++ /dev/null @@ -1,97 +0,0 @@ -package oauth - -import ( - "context" - "crypto/sha256" - "encoding/base64" - "errors" - "fmt" - "strings" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - kauthenticator "k8s.io/apiserver/pkg/authentication/authenticator" - kuser "k8s.io/apiserver/pkg/authentication/user" - - authorizationv1 "github.com/openshift/api/authorization/v1" - oauthclient "github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1" - userclient "github.com/openshift/client-go/user/clientset/versioned/typed/user/v1" -) - -var errLookup = errors.New("token lookup failed") - -type tokenAuthenticator struct { - tokens oauthclient.OAuthAccessTokenInterface - users userclient.UserInterface - groupMapper UserToGroupMapper - validators OAuthTokenValidator - implicitAuds kauthenticator.Audiences -} - -func NewTokenAuthenticator(tokens oauthclient.OAuthAccessTokenInterface, users userclient.UserInterface, groupMapper UserToGroupMapper, implicitAuds kauthenticator.Audiences, validators ...OAuthTokenValidator) kauthenticator.Token { - return &tokenAuthenticator{ - tokens: tokens, - users: users, - groupMapper: groupMapper, - validators: OAuthTokenValidators(validators), - implicitAuds: implicitAuds, - } -} - -const sha256Prefix = "sha256~" - -func (a *tokenAuthenticator) AuthenticateToken(ctx context.Context, name string) (*kauthenticator.Response, bool, error) { - // hash token for new-style sha256~ prefixed token - // TODO: reject non-sha256 prefix tokens in 4.7+ - if strings.HasPrefix(name, sha256Prefix) { - withoutPrefix := strings.TrimPrefix(name, sha256Prefix) - h := sha256.Sum256([]byte(withoutPrefix)) - name = sha256Prefix + base64.RawURLEncoding.EncodeToString(h[0:]) - } - - token, err := a.tokens.Get(context.TODO(), name, metav1.GetOptions{}) - if err != nil { - return nil, false, errLookup // mask the error so we do not leak token data in logs - } - - user, err := a.users.Get(context.TODO(), token.UserName, metav1.GetOptions{}) - if err != nil { - return nil, false, err - } - - if err := a.validators.Validate(token, user); err != nil { - return nil, false, err - } - - groups, err := a.groupMapper.GroupsFor(user.Name) - if err != nil { - return nil, false, err - } - groupNames := make([]string, 0, len(groups)) - for _, group := range groups { - groupNames = append(groupNames, group.Name) - } - - tokenAudiences := a.implicitAuds - requestedAudiences, ok := kauthenticator.AudiencesFrom(ctx) - if !ok { - // default to apiserver audiences - requestedAudiences = a.implicitAuds - } - - auds := kauthenticator.Audiences(tokenAudiences).Intersect(requestedAudiences) - if len(auds) == 0 && len(a.implicitAuds) != 0 { - return nil, false, fmt.Errorf("token audiences %q is invalid for the target audiences %q", tokenAudiences, requestedAudiences) - } - - return &kauthenticator.Response{ - User: &kuser.DefaultInfo{ - Name: user.Name, - UID: string(user.UID), - Groups: groupNames, - Extra: map[string][]string{ - authorizationv1.ScopesKey: token.Scopes, - }, - }, - Audiences: auds, - }, true, nil -} diff --git a/openshift-kube-apiserver/authentication/oauth/tokenauthenticator_test.go b/openshift-kube-apiserver/authentication/oauth/tokenauthenticator_test.go deleted file mode 100644 index 4aadbb6e1f2b5..0000000000000 --- a/openshift-kube-apiserver/authentication/oauth/tokenauthenticator_test.go +++ /dev/null @@ -1,426 +0,0 @@ -package oauth - -import ( - "context" - "crypto/sha256" - "encoding/base64" - "errors" - "testing" - "time" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/clock" - "k8s.io/apiserver/pkg/authentication/authenticator" - clienttesting "k8s.io/client-go/testing" - - oauthv1 "github.com/openshift/api/oauth/v1" - userv1 "github.com/openshift/api/user/v1" - oauthfake "github.com/openshift/client-go/oauth/clientset/versioned/fake" - oauthclient "github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1" - userfake "github.com/openshift/client-go/user/clientset/versioned/fake" -) - -func TestAuthenticateTokenInvalidUID(t *testing.T) { - fakeOAuthClient := oauthfake.NewSimpleClientset( - &oauthv1.OAuthAccessToken{ - ObjectMeta: metav1.ObjectMeta{Name: "token", CreationTimestamp: metav1.Time{Time: time.Now()}}, - ExpiresIn: 600, // 10 minutes - UserName: "foo", - UserUID: string("bar1"), - }, - ) - fakeUserClient := userfake.NewSimpleClientset(&userv1.User{ObjectMeta: metav1.ObjectMeta{Name: "foo", UID: "bar2"}}) - - tokenAuthenticator := NewTokenAuthenticator(fakeOAuthClient.OauthV1().OAuthAccessTokens(), fakeUserClient.UserV1().Users(), NoopGroupMapper{}, nil, NewUIDValidator()) - - userInfo, found, err := tokenAuthenticator.AuthenticateToken(context.TODO(), "token") - if found { - t.Error("Found token, but it should be missing!") - } - if err.Error() != "user.UID (bar2) does not match token.userUID (bar1)" { - t.Errorf("Unexpected error: %v", err) - } - if userInfo != nil { - t.Errorf("Unexpected user: %v", userInfo) - } -} - -func TestAuthenticateTokenFormats(t *testing.T) { - h := sha256.Sum256([]byte("token")) - tokenSha256 := base64.RawURLEncoding.EncodeToString(h[:]) - - h2 := sha256.Sum256([]byte("token2")) - token2Sha256 := base64.RawURLEncoding.EncodeToString(h2[:]) - - fakeOAuthClient := oauthfake.NewSimpleClientset( - &oauthv1.OAuthAccessToken{ - ObjectMeta: metav1.ObjectMeta{Name: "sha256~" + tokenSha256, CreationTimestamp: metav1.Time{Time: time.Now()}}, - ExpiresIn: 600, // 10 minutes - UserName: "tokenUser", - UserUID: "tokenUserID", - }, - &oauthv1.OAuthAccessToken{ - ObjectMeta: metav1.ObjectMeta{Name: "token2", CreationTimestamp: metav1.Time{Time: time.Now()}}, - ExpiresIn: 600, // 10 minutes - UserName: "token2User", - UserUID: "token2UserID", - }, - ) - fakeUserClient := userfake.NewSimpleClientset( - &userv1.User{ObjectMeta: metav1.ObjectMeta{Name: "tokenUser", UID: "tokenUserID"}}, - &userv1.User{ObjectMeta: metav1.ObjectMeta{Name: "token2User", UID: "token2UserID"}}, - ) - - tokenAuthenticator := NewTokenAuthenticator(fakeOAuthClient.OauthV1().OAuthAccessTokens(), fakeUserClient.UserV1().Users(), NoopGroupMapper{}, nil, NewUIDValidator()) - - type Test struct { - name string - bearerToken string - expectedError bool - expectedFound bool - expectedUserName string - } - for _, test := range []Test{ - {"unknown", "unknown", true, false, ""}, - {"unprefixed token", "token", true, false, ""}, - {"prefixed token", "sha256~token", false, true, "tokenUser"}, - {"unprefixed hash token", tokenSha256, true, false, ""}, - {"prefixed hash token", "sha256~" + tokenSha256, true, false, ""}, - {"unprefixed token2", "token2", false, true, "token2User"}, - {"prefixed token2", "sha256~token2", true, false, ""}, - {"unprefixed hash token2", token2Sha256, true, false, ""}, - {"prefixed hash token2", "sha256~" + token2Sha256, true, false, ""}, - } { - t.Run(test.name, func(t *testing.T) { - userInfo, found, err := tokenAuthenticator.AuthenticateToken(context.TODO(), test.bearerToken) - if !test.expectedError && err != nil { - t.Fatalf("Unexpected error: %v", err) - } - if test.expectedError && err == nil { - t.Fatalf("Unexpected non-error: found=%v userInfo=%#v", found, userInfo) - } - if !test.expectedFound && found { - t.Fatalf("Expected error, but token was found: %#v", userInfo) - } - if test.expectedFound && !found { - t.Fatalf("Expected token to be found, but it was not") - } - if userInfo != nil && userInfo.User.GetName() != test.expectedUserName { - t.Errorf("Wrong user name, expected %q, got %q", test.expectedUserName, userInfo.User.GetName()) - } - if userInfo == nil && len(test.expectedUserName) > 0 { - t.Errorf("Got no user info, but expected user name %q", test.expectedUserName) - } - }) - } -} - -func TestAuthenticateTokenNotFoundSuppressed(t *testing.T) { - fakeOAuthClient := oauthfake.NewSimpleClientset() - fakeUserClient := userfake.NewSimpleClientset() - tokenAuthenticator := NewTokenAuthenticator(fakeOAuthClient.OauthV1().OAuthAccessTokens(), fakeUserClient.UserV1().Users(), NoopGroupMapper{}, nil) - - userInfo, found, err := tokenAuthenticator.AuthenticateToken(context.TODO(), "token") - if found { - t.Error("Found token, but it should be missing!") - } - if err != errLookup { - t.Error("Expected not found error to be suppressed with lookup error") - } - if userInfo != nil { - t.Errorf("Unexpected user: %v", userInfo) - } -} - -func TestAuthenticateTokenOtherGetErrorSuppressed(t *testing.T) { - fakeOAuthClient := oauthfake.NewSimpleClientset() - fakeOAuthClient.PrependReactor("get", "oauthaccesstokens", func(action clienttesting.Action) (handled bool, ret runtime.Object, err error) { - return true, nil, errors.New("get error") - }) - fakeUserClient := userfake.NewSimpleClientset() - tokenAuthenticator := NewTokenAuthenticator(fakeOAuthClient.OauthV1().OAuthAccessTokens(), fakeUserClient.UserV1().Users(), NoopGroupMapper{}, nil) - - userInfo, found, err := tokenAuthenticator.AuthenticateToken(context.TODO(), "token") - if found { - t.Error("Found token, but it should be missing!") - } - if err != errLookup { - t.Error("Expected custom get error to be suppressed with lookup error") - } - if userInfo != nil { - t.Errorf("Unexpected user: %v", userInfo) - } -} - -func TestAuthenticateTokenTimeout(t *testing.T) { - stopCh := make(chan struct{}) - defer close(stopCh) - - testClock := clock.NewFakeClock(time.Time{}) - - defaultTimeout := int32(30) // 30 seconds - clientTimeout := int32(15) // 15 seconds - minTimeout := int32(10) // 10 seconds -> 10/3 = a tick per 3 seconds - - testClient := oauthv1.OAuthClient{ - ObjectMeta: metav1.ObjectMeta{Name: "testClient"}, - AccessTokenInactivityTimeoutSeconds: &clientTimeout, - } - quickClient := oauthv1.OAuthClient{ - ObjectMeta: metav1.ObjectMeta{Name: "quickClient"}, - AccessTokenInactivityTimeoutSeconds: &minTimeout, - } - slowClient := oauthv1.OAuthClient{ - ObjectMeta: metav1.ObjectMeta{Name: "slowClient"}, - } - testToken := oauthv1.OAuthAccessToken{ - ObjectMeta: metav1.ObjectMeta{Name: "testToken", CreationTimestamp: metav1.Time{Time: testClock.Now()}}, - ClientName: "testClient", - ExpiresIn: 600, // 10 minutes - UserName: "foo", - UserUID: string("bar"), - InactivityTimeoutSeconds: clientTimeout, - } - quickToken := oauthv1.OAuthAccessToken{ - ObjectMeta: metav1.ObjectMeta{Name: "quickToken", CreationTimestamp: metav1.Time{Time: testClock.Now()}}, - ClientName: "quickClient", - ExpiresIn: 600, // 10 minutes - UserName: "foo", - UserUID: string("bar"), - InactivityTimeoutSeconds: minTimeout, - } - slowToken := oauthv1.OAuthAccessToken{ - ObjectMeta: metav1.ObjectMeta{Name: "slowToken", CreationTimestamp: metav1.Time{Time: testClock.Now()}}, - ClientName: "slowClient", - ExpiresIn: 600, // 10 minutes - UserName: "foo", - UserUID: string("bar"), - InactivityTimeoutSeconds: defaultTimeout, - } - emergToken := oauthv1.OAuthAccessToken{ - ObjectMeta: metav1.ObjectMeta{Name: "emergToken", CreationTimestamp: metav1.Time{Time: testClock.Now()}}, - ClientName: "quickClient", - ExpiresIn: 600, // 10 minutes - UserName: "foo", - UserUID: string("bar"), - InactivityTimeoutSeconds: 5, // super short timeout - } - fakeOAuthClient := oauthfake.NewSimpleClientset(&testToken, &quickToken, &slowToken, &emergToken, &testClient, &quickClient, &slowClient) - fakeUserClient := userfake.NewSimpleClientset(&userv1.User{ObjectMeta: metav1.ObjectMeta{Name: "foo", UID: "bar"}}) - accessTokenGetter := fakeOAuthClient.OauthV1().OAuthAccessTokens() - oauthClients := fakeOAuthClient.OauthV1().OAuthClients() - lister := &fakeOAuthClientLister{ - clients: oauthClients, - } - - timeouts := NewTimeoutValidator(accessTokenGetter, lister, defaultTimeout, minTimeout) - - // inject fake clock, which has some interesting properties - // 1. A sleep will cause at most one ticker event, regardless of how long the sleep was - // 2. The clock will hold one tick event and will drop the next one if something does not consume it first - timeouts.clock = testClock - - // decorate flush - // The fake clock 1. and 2. require that we issue a wait(t, timeoutsSync) after each testClock.Sleep that causes a tick - originalFlush := timeouts.flushHandler - timeoutsSync := make(chan struct{}) - timeouts.flushHandler = func(flushHorizon time.Time) { - originalFlush(flushHorizon) - timeoutsSync <- struct{}{} // signal that flush is complete so we never race against it - } - - // decorate putToken - // We must issue a wait(t, putTokenSync) after each call to checkToken that should be successful - originalPutToken := timeouts.putTokenHandler - putTokenSync := make(chan struct{}) - timeouts.putTokenHandler = func(td *tokenData) { - originalPutToken(td) - putTokenSync <- struct{}{} // signal that putToken is complete so we never race against it - } - - // add some padding to all sleep invocations to make sure we are not failing on any boundary values - buffer := time.Nanosecond - - tokenAuthenticator := NewTokenAuthenticator(accessTokenGetter, fakeUserClient.UserV1().Users(), NoopGroupMapper{}, nil, timeouts) - - go timeouts.Run(stopCh) - - // TIME: 0 seconds have passed here - - // first time should succeed for all - checkToken(t, "testToken", tokenAuthenticator, accessTokenGetter, testClock, true) - wait(t, putTokenSync) - - checkToken(t, "quickToken", tokenAuthenticator, accessTokenGetter, testClock, true) - wait(t, putTokenSync) - - wait(t, timeoutsSync) // from emergency flush because quickToken has a short enough timeout - - checkToken(t, "slowToken", tokenAuthenticator, accessTokenGetter, testClock, true) - wait(t, putTokenSync) - - // this should cause an emergency flush, if not the next auth will fail, - // as the token will be timed out - checkToken(t, "emergToken", tokenAuthenticator, accessTokenGetter, testClock, true) - wait(t, putTokenSync) - - wait(t, timeoutsSync) // from emergency flush because emergToken has a super short timeout - - // wait 6 seconds - testClock.Sleep(5*time.Second + buffer) - - // a tick happens every 3 seconds - wait(t, timeoutsSync) - - // TIME: 6th second - - // See if emergency flush happened - checkToken(t, "emergToken", tokenAuthenticator, accessTokenGetter, testClock, true) - wait(t, putTokenSync) - - wait(t, timeoutsSync) // from emergency flush because emergToken has a super short timeout - - // wait for timeout (minTimeout + 1 - the previously waited 6 seconds) - testClock.Sleep(time.Duration(minTimeout-5)*time.Second + buffer) - wait(t, timeoutsSync) - - // TIME: 11th second - - // now we change the testClient and see if the testToken will still be - // valid instead of timing out - changeClient, ret := oauthClients.Get(context.TODO(), "testClient", metav1.GetOptions{}) - if ret != nil { - t.Error("Failed to get testClient") - } else { - longTimeout := int32(20) - changeClient.AccessTokenInactivityTimeoutSeconds = &longTimeout - _, ret = oauthClients.Update(context.TODO(), changeClient, metav1.UpdateOptions{}) - if ret != nil { - t.Error("Failed to update testClient") - } - } - - // this should fail, thus no call to wait(t, putTokenSync) - checkToken(t, "quickToken", tokenAuthenticator, accessTokenGetter, testClock, false) - - // while this should get updated - checkToken(t, "testToken", tokenAuthenticator, accessTokenGetter, testClock, true) - wait(t, putTokenSync) - - wait(t, timeoutsSync) - - // wait for timeout - testClock.Sleep(time.Duration(clientTimeout+1)*time.Second + buffer) - - // 16 seconds equals 5 more flushes, but the fake clock will only tick once during this time - wait(t, timeoutsSync) - - // TIME: 27th second - - // this should get updated - checkToken(t, "slowToken", tokenAuthenticator, accessTokenGetter, testClock, true) - wait(t, putTokenSync) - - wait(t, timeoutsSync) - - // while this should not fail - checkToken(t, "testToken", tokenAuthenticator, accessTokenGetter, testClock, true) - wait(t, putTokenSync) - - wait(t, timeoutsSync) - // and should be updated to last at least till the 31st second - token, err := accessTokenGetter.Get(context.TODO(), "testToken", metav1.GetOptions{}) - if err != nil { - t.Error("Failed to get testToken") - } else { - if token.InactivityTimeoutSeconds < 31 { - t.Errorf("Expected timeout in more than 31 seconds, found: %d", token.InactivityTimeoutSeconds) - } - } - - //now change testClient again, so that tokens do not expire anymore - changeclient, ret := oauthClients.Get(context.TODO(), "testClient", metav1.GetOptions{}) - if ret != nil { - t.Error("Failed to get testClient") - } else { - changeclient.AccessTokenInactivityTimeoutSeconds = new(int32) - _, ret = oauthClients.Update(context.TODO(), changeclient, metav1.UpdateOptions{}) - if ret != nil { - t.Error("Failed to update testClient") - } - } - - // and wait until test token should time out, and has been flushed for sure - testClock.Sleep(time.Duration(minTimeout)*time.Second + buffer) - wait(t, timeoutsSync) - - // while this should not fail - checkToken(t, "testToken", tokenAuthenticator, accessTokenGetter, testClock, true) - wait(t, putTokenSync) - - wait(t, timeoutsSync) - - // and should be updated to have a ZERO timeout - token, err = accessTokenGetter.Get(context.TODO(), "testToken", metav1.GetOptions{}) - if err != nil { - t.Error("Failed to get testToken") - } else { - if token.InactivityTimeoutSeconds != 0 { - t.Errorf("Expected timeout of 0 seconds, found: %d", token.InactivityTimeoutSeconds) - } - } -} - -type fakeOAuthClientLister struct { - clients oauthclient.OAuthClientInterface -} - -func (f fakeOAuthClientLister) Get(name string) (*oauthv1.OAuthClient, error) { - return f.clients.Get(context.TODO(), name, metav1.GetOptions{}) -} - -func (f fakeOAuthClientLister) List(selector labels.Selector) ([]*oauthv1.OAuthClient, error) { - panic("not used") -} - -func checkToken(t *testing.T, name string, authf authenticator.Token, tokens oauthclient.OAuthAccessTokenInterface, current clock.Clock, present bool) { - t.Helper() - userInfo, found, err := authf.AuthenticateToken(context.TODO(), name) - if present { - if !found { - t.Errorf("Did not find token %s!", name) - } - if err != nil { - t.Errorf("Unexpected error checking for token %s: %v", name, err) - } - if userInfo == nil { - t.Errorf("Did not get a user for token %s!", name) - } - } else { - if found { - token, tokenErr := tokens.Get(context.TODO(), name, metav1.GetOptions{}) - if tokenErr != nil { - t.Fatal(tokenErr) - } - t.Errorf("Found token (created=%s, timeout=%di, now=%s), but it should be gone!", - token.CreationTimestamp, token.InactivityTimeoutSeconds, current.Now()) - } - if err != errTimedout { - t.Errorf("Unexpected error checking absence of token %s: %v", name, err) - } - if userInfo != nil { - t.Errorf("Unexpected user checking absence of token %s: %v", name, userInfo) - } - } -} - -func wait(t *testing.T, c chan struct{}) { - t.Helper() - select { - case <-c: - case <-time.After(30 * time.Second): - t.Fatal("failed to see channel event") - } -} diff --git a/openshift-kube-apiserver/authentication/oauth/uidvalidator.go b/openshift-kube-apiserver/authentication/oauth/uidvalidator.go deleted file mode 100644 index a6029e5d51030..0000000000000 --- a/openshift-kube-apiserver/authentication/oauth/uidvalidator.go +++ /dev/null @@ -1,21 +0,0 @@ -package oauth - -import ( - "fmt" - - oauthv1 "github.com/openshift/api/oauth/v1" - userv1 "github.com/openshift/api/user/v1" -) - -const errInvalidUIDStr = "user.UID (%s) does not match token.userUID (%s)" - -func NewUIDValidator() OAuthTokenValidator { - return OAuthTokenValidatorFunc( - func(token *oauthv1.OAuthAccessToken, user *userv1.User) error { - if string(user.UID) != token.UserUID { - return fmt.Errorf(errInvalidUIDStr, user.UID, token.UserUID) - } - return nil - }, - ) -} diff --git a/openshift-kube-apiserver/authorization/browsersafe/authorizer.go b/openshift-kube-apiserver/authorization/browsersafe/authorizer.go deleted file mode 100644 index 2b39b309f69b8..0000000000000 --- a/openshift-kube-apiserver/authorization/browsersafe/authorizer.go +++ /dev/null @@ -1,107 +0,0 @@ -package browsersafe - -import ( - "context" - "fmt" - - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apiserver/pkg/authorization/authorizer" -) - -const ( - proxyAction = "proxy" - unsafeProxy = "unsafeproxy" -) - -type browserSafeAuthorizer struct { - delegate authorizer.Authorizer - - // list of groups, any of which indicate the request is authenticated - authenticatedGroups sets.String -} - -func NewBrowserSafeAuthorizer(delegate authorizer.Authorizer, authenticatedGroups ...string) authorizer.Authorizer { - return &browserSafeAuthorizer{ - delegate: delegate, - authenticatedGroups: sets.NewString(authenticatedGroups...), - } -} - -func (a *browserSafeAuthorizer) Authorize(ctx context.Context, attributes authorizer.Attributes) (authorizer.Decision, string, error) { - attrs := a.getBrowserSafeAttributes(attributes) - decision, reason, err := a.delegate.Authorize(ctx, attrs) - safeAttributes, changed := attrs.(*browserSafeAttributes) - - // check if the request was not allowed and we changed the attributes - if decision == authorizer.DecisionAllow || !changed { - return decision, reason, err - } - - // if so, use this information to update the reason - return decision, safeAttributes.reason(reason), err -} - -func (a *browserSafeAuthorizer) getBrowserSafeAttributes(attributes authorizer.Attributes) authorizer.Attributes { - if !attributes.IsResourceRequest() { - return attributes - } - - isProxyVerb := attributes.GetVerb() == proxyAction - isProxySubresource := attributes.GetSubresource() == proxyAction - - if !isProxyVerb && !isProxySubresource { - // Requests to non-proxy resources don't expose HTML or HTTP-handling user content to browsers - return attributes - } - - if user := attributes.GetUser(); user != nil { - if a.authenticatedGroups.HasAny(user.GetGroups()...) { - // An authenticated request indicates this isn't a browser page load. - // Browsers cannot make direct authenticated requests. - // This depends on the API not enabling basic or cookie-based auth. - return attributes - } - } - - return &browserSafeAttributes{ - Attributes: attributes, - isProxyVerb: isProxyVerb, - isProxySubresource: isProxySubresource, - } -} - -type browserSafeAttributes struct { - authorizer.Attributes - - isProxyVerb, isProxySubresource bool -} - -func (b *browserSafeAttributes) GetVerb() string { - if b.isProxyVerb { - return unsafeProxy - } - return b.Attributes.GetVerb() -} - -func (b *browserSafeAttributes) GetSubresource() string { - if b.isProxySubresource { - return unsafeProxy - } - return b.Attributes.GetSubresource() -} - -func (b *browserSafeAttributes) reason(reason string) string { - if b.isProxyVerb { - if len(reason) != 0 { - reason += ", " - } - reason += fmt.Sprintf("%s verb changed to %s", proxyAction, unsafeProxy) - } - if b.isProxySubresource { - if len(reason) != 0 { - reason += ", " - } - reason += fmt.Sprintf("%s subresource changed to %s", proxyAction, unsafeProxy) - } - return reason -} diff --git a/openshift-kube-apiserver/authorization/browsersafe/authorizer_test.go b/openshift-kube-apiserver/authorization/browsersafe/authorizer_test.go deleted file mode 100644 index 1d14a86daddeb..0000000000000 --- a/openshift-kube-apiserver/authorization/browsersafe/authorizer_test.go +++ /dev/null @@ -1,80 +0,0 @@ -package browsersafe - -import ( - "context" - "testing" - - "k8s.io/apiserver/pkg/authentication/user" - "k8s.io/apiserver/pkg/authorization/authorizer" -) - -func TestBrowserSafeAuthorizer(t *testing.T) { - for name, tc := range map[string]struct { - attributes authorizer.Attributes - - expectedVerb string - expectedSubresource string - expectedReason string - }{ - "non-resource": { - attributes: authorizer.AttributesRecord{ResourceRequest: false, Verb: "GET"}, - expectedVerb: "GET", - }, - - "non-proxy": { - attributes: authorizer.AttributesRecord{ResourceRequest: true, Verb: "get", Resource: "pods", Subresource: "logs"}, - expectedVerb: "get", - expectedSubresource: "logs", - }, - - "unsafe proxy subresource": { - attributes: authorizer.AttributesRecord{ResourceRequest: true, Verb: "get", Resource: "pods", Subresource: "proxy"}, - expectedVerb: "get", - expectedSubresource: "unsafeproxy", - expectedReason: "proxy subresource changed to unsafeproxy", - }, - "unsafe proxy verb": { - attributes: authorizer.AttributesRecord{ResourceRequest: true, Verb: "proxy", Resource: "nodes"}, - expectedVerb: "unsafeproxy", - expectedReason: "proxy verb changed to unsafeproxy", - }, - "unsafe proxy verb anonymous": { - attributes: authorizer.AttributesRecord{ResourceRequest: true, Verb: "proxy", Resource: "nodes", - User: &user.DefaultInfo{Name: "system:anonymous", Groups: []string{"system:unauthenticated"}}}, - expectedVerb: "unsafeproxy", - expectedReason: "proxy verb changed to unsafeproxy", - }, - - "proxy subresource authenticated": { - attributes: authorizer.AttributesRecord{ResourceRequest: true, Verb: "get", Resource: "pods", Subresource: "proxy", - User: &user.DefaultInfo{Name: "bob", Groups: []string{"system:authenticated"}}}, - expectedVerb: "get", - expectedSubresource: "proxy", - }, - } { - delegateAuthorizer := &recordingAuthorizer{} - safeAuthorizer := NewBrowserSafeAuthorizer(delegateAuthorizer, "system:authenticated") - - authorized, reason, err := safeAuthorizer.Authorize(context.TODO(), tc.attributes) - if authorized == authorizer.DecisionAllow || reason != tc.expectedReason || err != nil { - t.Errorf("%s: unexpected output: %v %s %v", name, authorized, reason, err) - continue - } - - if delegateAuthorizer.attributes.GetVerb() != tc.expectedVerb { - t.Errorf("%s: expected verb %s, got %s", name, tc.expectedVerb, delegateAuthorizer.attributes.GetVerb()) - } - if delegateAuthorizer.attributes.GetSubresource() != tc.expectedSubresource { - t.Errorf("%s: expected verb %s, got %s", name, tc.expectedSubresource, delegateAuthorizer.attributes.GetSubresource()) - } - } -} - -type recordingAuthorizer struct { - attributes authorizer.Attributes -} - -func (t *recordingAuthorizer) Authorize(_ context.Context, a authorizer.Attributes) (authorized authorizer.Decision, reason string, err error) { - t.attributes = a - return authorizer.DecisionNoOpinion, "", nil -} diff --git a/openshift-kube-apiserver/authorization/scopeauthorizer/authorizer.go b/openshift-kube-apiserver/authorization/scopeauthorizer/authorizer.go deleted file mode 100644 index 989f70609528d..0000000000000 --- a/openshift-kube-apiserver/authorization/scopeauthorizer/authorizer.go +++ /dev/null @@ -1,49 +0,0 @@ -package scopeauthorizer - -import ( - "context" - "fmt" - - "k8s.io/apiserver/pkg/authorization/authorizer" - rbaclisters "k8s.io/client-go/listers/rbac/v1" - authorizerrbac "k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac" - - authorizationv1 "github.com/openshift/api/authorization/v1" - "github.com/openshift/apiserver-library-go/pkg/authorization/scope" -) - -type scopeAuthorizer struct { - clusterRoleGetter rbaclisters.ClusterRoleLister -} - -func NewAuthorizer(clusterRoleGetter rbaclisters.ClusterRoleLister) authorizer.Authorizer { - return &scopeAuthorizer{clusterRoleGetter: clusterRoleGetter} -} - -func (a *scopeAuthorizer) Authorize(ctx context.Context, attributes authorizer.Attributes) (authorizer.Decision, string, error) { - user := attributes.GetUser() - if user == nil { - return authorizer.DecisionNoOpinion, "", fmt.Errorf("user missing from context") - } - - scopes := user.GetExtra()[authorizationv1.ScopesKey] - if len(scopes) == 0 { - return authorizer.DecisionNoOpinion, "", nil - } - - nonFatalErrors := "" - - // scopeResolutionErrors aren't fatal. If any of the scopes we find allow this, then the overall scope limits allow it - rules, err := scope.ScopesToRules(scopes, attributes.GetNamespace(), a.clusterRoleGetter) - if err != nil { - nonFatalErrors = fmt.Sprintf(", additionally the following non-fatal errors were reported: %v", err) - } - - // check rules against attributes - if authorizerrbac.RulesAllow(attributes, rules...) { - return authorizer.DecisionNoOpinion, "", nil - } - - // the scope prevent this. We need to authoritatively deny - return authorizer.DecisionDeny, fmt.Sprintf("scopes %v prevent this action%s", scopes, nonFatalErrors), nil -} diff --git a/openshift-kube-apiserver/authorization/scopeauthorizer/authorizer_test.go b/openshift-kube-apiserver/authorization/scopeauthorizer/authorizer_test.go deleted file mode 100644 index 9b73e6c2e23ac..0000000000000 --- a/openshift-kube-apiserver/authorization/scopeauthorizer/authorizer_test.go +++ /dev/null @@ -1,150 +0,0 @@ -package scopeauthorizer - -import ( - "context" - "strings" - "testing" - - "k8s.io/apiserver/pkg/authentication/user" - kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" - - authorizationv1 "github.com/openshift/api/authorization/v1" -) - -func TestAuthorize(t *testing.T) { - testCases := []struct { - name string - attributes kauthorizer.AttributesRecord - expectedAllowed kauthorizer.Decision - expectedErr string - expectedMsg string - }{ - { - name: "no user", - attributes: kauthorizer.AttributesRecord{ - ResourceRequest: true, - Namespace: "ns", - }, - expectedAllowed: kauthorizer.DecisionNoOpinion, - expectedErr: `user missing from context`, - }, - { - name: "no extra", - attributes: kauthorizer.AttributesRecord{ - User: &user.DefaultInfo{}, - ResourceRequest: true, - Namespace: "ns", - }, - expectedAllowed: kauthorizer.DecisionNoOpinion, - }, - { - name: "empty extra", - attributes: kauthorizer.AttributesRecord{ - User: &user.DefaultInfo{Extra: map[string][]string{}}, - ResourceRequest: true, - Namespace: "ns", - }, - expectedAllowed: kauthorizer.DecisionNoOpinion, - }, - { - name: "empty scopes", - attributes: kauthorizer.AttributesRecord{ - User: &user.DefaultInfo{Extra: map[string][]string{authorizationv1.ScopesKey: {}}}, - ResourceRequest: true, - Namespace: "ns", - }, - expectedAllowed: kauthorizer.DecisionNoOpinion, - }, - { - name: "bad scope", - attributes: kauthorizer.AttributesRecord{ - User: &user.DefaultInfo{Extra: map[string][]string{authorizationv1.ScopesKey: {"does-not-exist"}}}, - ResourceRequest: true, - Namespace: "ns", - }, - expectedAllowed: kauthorizer.DecisionDeny, - expectedMsg: `scopes [does-not-exist] prevent this action, additionally the following non-fatal errors were reported: no scope evaluator found for "does-not-exist"`, - }, - { - name: "bad scope 2", - attributes: kauthorizer.AttributesRecord{ - User: &user.DefaultInfo{Extra: map[string][]string{authorizationv1.ScopesKey: {"role:dne"}}}, - ResourceRequest: true, - Namespace: "ns", - }, - expectedAllowed: kauthorizer.DecisionDeny, - expectedMsg: `scopes [role:dne] prevent this action, additionally the following non-fatal errors were reported: bad format for scope role:dne`, - }, - { - name: "scope doesn't cover", - attributes: kauthorizer.AttributesRecord{ - User: &user.DefaultInfo{Extra: map[string][]string{authorizationv1.ScopesKey: {"user:info"}}}, - ResourceRequest: true, - Namespace: "ns", - Verb: "get", Resource: "users", Name: "harold"}, - expectedAllowed: kauthorizer.DecisionDeny, - expectedMsg: `scopes [user:info] prevent this action`, - }, - { - name: "scope covers", - attributes: kauthorizer.AttributesRecord{ - User: &user.DefaultInfo{Extra: map[string][]string{authorizationv1.ScopesKey: {"user:info"}}}, - ResourceRequest: true, - Namespace: "ns", - Verb: "get", Resource: "users", Name: "~"}, - expectedAllowed: kauthorizer.DecisionNoOpinion, - }, - { - name: "scope covers for discovery", - attributes: kauthorizer.AttributesRecord{ - User: &user.DefaultInfo{Extra: map[string][]string{authorizationv1.ScopesKey: {"user:info"}}}, - ResourceRequest: false, - Namespace: "ns", - Verb: "get", Path: "/api"}, - expectedAllowed: kauthorizer.DecisionNoOpinion, - }, - { - name: "user:full covers any resource", - attributes: kauthorizer.AttributesRecord{ - User: &user.DefaultInfo{Extra: map[string][]string{authorizationv1.ScopesKey: {"user:full"}}}, - ResourceRequest: true, - Namespace: "ns", - Verb: "update", Resource: "users", Name: "harold"}, - expectedAllowed: kauthorizer.DecisionNoOpinion, - }, - { - name: "user:full covers any non-resource", - attributes: kauthorizer.AttributesRecord{ - User: &user.DefaultInfo{Extra: map[string][]string{authorizationv1.ScopesKey: {"user:full"}}}, - ResourceRequest: false, - Namespace: "ns", - Verb: "post", Path: "/foo/bar/baz"}, - expectedAllowed: kauthorizer.DecisionNoOpinion, - }, - } - - for _, tc := range testCases { - t.Run(tc.name, func(t *testing.T) { - authorizer := NewAuthorizer(nil) - - actualAllowed, actualMsg, actualErr := authorizer.Authorize(context.TODO(), tc.attributes) - switch { - case len(tc.expectedErr) == 0 && actualErr == nil: - case len(tc.expectedErr) == 0 && actualErr != nil: - t.Errorf("%s: unexpected error: %v", tc.name, actualErr) - case len(tc.expectedErr) != 0 && actualErr == nil: - t.Errorf("%s: missing error: %v", tc.name, tc.expectedErr) - case len(tc.expectedErr) != 0 && actualErr != nil: - if !strings.Contains(actualErr.Error(), tc.expectedErr) { - t.Errorf("expected %v, got %v", tc.expectedErr, actualErr) - } - } - if tc.expectedMsg != actualMsg { - t.Errorf("expected %v, got %v", tc.expectedMsg, actualMsg) - } - if tc.expectedAllowed != actualAllowed { - t.Errorf("expected %v, got %v", tc.expectedAllowed, actualAllowed) - } - }) - } -} diff --git a/openshift-kube-apiserver/configdefault/kubecontrolplane_default.go b/openshift-kube-apiserver/configdefault/kubecontrolplane_default.go deleted file mode 100644 index 7e48ecea2ec9a..0000000000000 --- a/openshift-kube-apiserver/configdefault/kubecontrolplane_default.go +++ /dev/null @@ -1,115 +0,0 @@ -package configdefault - -import ( - "io/ioutil" - "os" - "path/filepath" - - kubecontrolplanev1 "github.com/openshift/api/kubecontrolplane/v1" - "github.com/openshift/library-go/pkg/config/configdefaults" - "k8s.io/klog/v2" -) - -// ResolveDirectoriesForSATokenVerification takes our config (which allows directories) and navigates one level of -// those directories for files. This makes it easy to build a single configmap that contains lots of aggregated files. -// if we fail to open the file for inspection, the resolving code in kube-apiserver may have drifted from us -// we include the raw file and let the kube-apiserver succeed or fail. -func ResolveDirectoriesForSATokenVerification(config *kubecontrolplanev1.KubeAPIServerConfig) { - // kube doesn't honor directories, but we want to allow them in our sa token validators - resolvedSATokenValidationCerts := []string{} - for _, filename := range config.ServiceAccountPublicKeyFiles { - file, err := os.Open(filename) - if err != nil { - resolvedSATokenValidationCerts = append(resolvedSATokenValidationCerts, filename) - klog.Warningf(err.Error()) - continue - } - fileInfo, err := file.Stat() - if err != nil { - resolvedSATokenValidationCerts = append(resolvedSATokenValidationCerts, filename) - klog.Warningf(err.Error()) - continue - } - if !fileInfo.IsDir() { - resolvedSATokenValidationCerts = append(resolvedSATokenValidationCerts, filename) - continue - } - - contents, err := ioutil.ReadDir(filename) - switch { - case os.IsNotExist(err) || os.IsPermission(err): - klog.Warningf(err.Error()) - case err != nil: - panic(err) // some weird, unexpected error - default: - for _, content := range contents { - if !content.Mode().IsRegular() { - continue - } - resolvedSATokenValidationCerts = append(resolvedSATokenValidationCerts, filepath.Join(filename, content.Name())) - } - } - } - - config.ServiceAccountPublicKeyFiles = resolvedSATokenValidationCerts -} - -func SetRecommendedKubeAPIServerConfigDefaults(config *kubecontrolplanev1.KubeAPIServerConfig) { - configdefaults.DefaultString(&config.GenericAPIServerConfig.StorageConfig.StoragePrefix, "kubernetes.io") - configdefaults.DefaultString(&config.GenericAPIServerConfig.ServingInfo.BindAddress, "0.0.0.0:6443") - - configdefaults.SetRecommendedGenericAPIServerConfigDefaults(&config.GenericAPIServerConfig) - SetRecommendedMasterAuthConfigDefaults(&config.AuthConfig) - SetRecommendedAggregatorConfigDefaults(&config.AggregatorConfig) - SetRecommendedKubeletConnectionInfoDefaults(&config.KubeletClientInfo) - - configdefaults.DefaultString(&config.ServicesSubnet, "10.0.0.0/24") - configdefaults.DefaultString(&config.ServicesNodePortRange, "30000-32767") - - if len(config.ServiceAccountPublicKeyFiles) == 0 { - config.ServiceAccountPublicKeyFiles = append([]string{}, "/etc/kubernetes/static-pod-resources/configmaps/sa-token-signing-certs") - } - - // after the aggregator defaults are set, we can default the auth config values - // TODO this indicates that we're set two different things to the same value - if config.AuthConfig.RequestHeader == nil { - config.AuthConfig.RequestHeader = &kubecontrolplanev1.RequestHeaderAuthenticationOptions{} - configdefaults.DefaultStringSlice(&config.AuthConfig.RequestHeader.ClientCommonNames, []string{"system:openshift-aggregator"}) - configdefaults.DefaultString(&config.AuthConfig.RequestHeader.ClientCA, "/var/run/configmaps/aggregator-client-ca/ca-bundle.crt") - configdefaults.DefaultStringSlice(&config.AuthConfig.RequestHeader.UsernameHeaders, []string{"X-Remote-User"}) - configdefaults.DefaultStringSlice(&config.AuthConfig.RequestHeader.GroupHeaders, []string{"X-Remote-Group"}) - configdefaults.DefaultStringSlice(&config.AuthConfig.RequestHeader.ExtraHeaderPrefixes, []string{"X-Remote-Extra-"}) - } - - // Set defaults Cache TTLs for external Webhook Token Reviewers - for i := range config.AuthConfig.WebhookTokenAuthenticators { - if len(config.AuthConfig.WebhookTokenAuthenticators[i].CacheTTL) == 0 { - config.AuthConfig.WebhookTokenAuthenticators[i].CacheTTL = "2m" - } - } - - if config.OAuthConfig != nil { - for i := range config.OAuthConfig.IdentityProviders { - // By default, only let one identity provider authenticate a particular user - // If multiple identity providers collide, the second one in will fail to auth - // The admin can set this to "add" if they want to allow new identities to join existing users - configdefaults.DefaultString(&config.OAuthConfig.IdentityProviders[i].MappingMethod, "claim") - } - } -} - -func SetRecommendedMasterAuthConfigDefaults(config *kubecontrolplanev1.MasterAuthConfig) { -} - -func SetRecommendedAggregatorConfigDefaults(config *kubecontrolplanev1.AggregatorConfig) { - configdefaults.DefaultString(&config.ProxyClientInfo.KeyFile, "/var/run/secrets/aggregator-client/tls.key") - configdefaults.DefaultString(&config.ProxyClientInfo.CertFile, "/var/run/secrets/aggregator-client/tls.crt") -} - -func SetRecommendedKubeletConnectionInfoDefaults(config *kubecontrolplanev1.KubeletConnectionInfo) { - if config.Port == 0 { - config.Port = 10250 - } - configdefaults.DefaultString(&config.CertInfo.KeyFile, "/var/run/secrets/kubelet-client/tls.key") - configdefaults.DefaultString(&config.CertInfo.CertFile, "/var/run/secrets/kubelet-client/tls.crt") -} diff --git a/openshift-kube-apiserver/configdefault/kubecontrolplane_refs.go b/openshift-kube-apiserver/configdefault/kubecontrolplane_refs.go deleted file mode 100644 index 449952e5650d1..0000000000000 --- a/openshift-kube-apiserver/configdefault/kubecontrolplane_refs.go +++ /dev/null @@ -1,122 +0,0 @@ -package configdefault - -import ( - kubecontrolplanev1 "github.com/openshift/api/kubecontrolplane/v1" - osinv1 "github.com/openshift/api/osin/v1" - "github.com/openshift/library-go/pkg/config/helpers" -) - -func GetKubeAPIServerConfigFileReferences(config *kubecontrolplanev1.KubeAPIServerConfig) []*string { - if config == nil { - return []*string{} - } - - refs := []*string{} - - refs = append(refs, helpers.GetGenericAPIServerConfigFileReferences(&config.GenericAPIServerConfig)...) - refs = append(refs, GetKubeletConnectionInfoFileReferences(&config.KubeletClientInfo)...) - - if config.OAuthConfig != nil { - refs = append(refs, GetOAuthConfigFileReferences(config.OAuthConfig)...) - } - - refs = append(refs, &config.AggregatorConfig.ProxyClientInfo.CertFile) - refs = append(refs, &config.AggregatorConfig.ProxyClientInfo.KeyFile) - - if config.AuthConfig.RequestHeader != nil { - refs = append(refs, &config.AuthConfig.RequestHeader.ClientCA) - } - for k := range config.AuthConfig.WebhookTokenAuthenticators { - refs = append(refs, &config.AuthConfig.WebhookTokenAuthenticators[k].ConfigFile) - } - if len(config.AuthConfig.OAuthMetadataFile) > 0 { - refs = append(refs, &config.AuthConfig.OAuthMetadataFile) - } - - refs = append(refs, &config.AggregatorConfig.ProxyClientInfo.CertFile) - refs = append(refs, &config.AggregatorConfig.ProxyClientInfo.KeyFile) - - for i := range config.ServiceAccountPublicKeyFiles { - refs = append(refs, &config.ServiceAccountPublicKeyFiles[i]) - } - - return refs -} - -func GetKubeletConnectionInfoFileReferences(config *kubecontrolplanev1.KubeletConnectionInfo) []*string { - if config == nil { - return []*string{} - } - - refs := []*string{} - refs = append(refs, helpers.GetCertFileReferences(&config.CertInfo)...) - refs = append(refs, &config.CA) - return refs -} - -func GetOAuthConfigFileReferences(config *osinv1.OAuthConfig) []*string { - if config == nil { - return []*string{} - } - - refs := []*string{} - - if config.MasterCA != nil { - refs = append(refs, config.MasterCA) - } - - refs = append(refs, GetSessionConfigFileReferences(config.SessionConfig)...) - for _, identityProvider := range config.IdentityProviders { - switch provider := identityProvider.Provider.Object.(type) { - case (*osinv1.RequestHeaderIdentityProvider): - refs = append(refs, &provider.ClientCA) - - case (*osinv1.HTPasswdPasswordIdentityProvider): - refs = append(refs, &provider.File) - - case (*osinv1.LDAPPasswordIdentityProvider): - refs = append(refs, &provider.CA) - refs = append(refs, helpers.GetStringSourceFileReferences(&provider.BindPassword)...) - - case (*osinv1.BasicAuthPasswordIdentityProvider): - refs = append(refs, helpers.GetRemoteConnectionInfoFileReferences(&provider.RemoteConnectionInfo)...) - - case (*osinv1.KeystonePasswordIdentityProvider): - refs = append(refs, helpers.GetRemoteConnectionInfoFileReferences(&provider.RemoteConnectionInfo)...) - - case (*osinv1.GitLabIdentityProvider): - refs = append(refs, &provider.CA) - refs = append(refs, helpers.GetStringSourceFileReferences(&provider.ClientSecret)...) - - case (*osinv1.OpenIDIdentityProvider): - refs = append(refs, &provider.CA) - refs = append(refs, helpers.GetStringSourceFileReferences(&provider.ClientSecret)...) - - case (*osinv1.GoogleIdentityProvider): - refs = append(refs, helpers.GetStringSourceFileReferences(&provider.ClientSecret)...) - - case (*osinv1.GitHubIdentityProvider): - refs = append(refs, helpers.GetStringSourceFileReferences(&provider.ClientSecret)...) - refs = append(refs, &provider.CA) - - } - } - - if config.Templates != nil { - refs = append(refs, &config.Templates.Login) - refs = append(refs, &config.Templates.ProviderSelection) - refs = append(refs, &config.Templates.Error) - } - - return refs -} - -func GetSessionConfigFileReferences(config *osinv1.SessionConfig) []*string { - if config == nil { - return []*string{} - } - - refs := []*string{} - refs = append(refs, &config.SessionSecretsFile) - return refs -} diff --git a/openshift-kube-apiserver/enablement/enablement.go b/openshift-kube-apiserver/enablement/enablement.go deleted file mode 100644 index d955f66825181..0000000000000 --- a/openshift-kube-apiserver/enablement/enablement.go +++ /dev/null @@ -1,71 +0,0 @@ -package enablement - -import ( - "fmt" - "runtime/debug" - - kubecontrolplanev1 "github.com/openshift/api/kubecontrolplane/v1" - genericapiserver "k8s.io/apiserver/pkg/server" - "k8s.io/client-go/rest" -) - -func ForceOpenShift(newOpenshiftConfig *kubecontrolplanev1.KubeAPIServerConfig) { - isOpenShift = true - openshiftConfig = newOpenshiftConfig -} - -func SetLoopbackClientConfig(kubeClientConfig *rest.Config) { - loopbackClientConfig = rest.CopyConfig(kubeClientConfig) -} - -var ( - isOpenShift = false - openshiftConfig *kubecontrolplanev1.KubeAPIServerConfig - postStartHooks = map[string]PostStartHookConfigEntry{} - appendPostStartHooksCalled = false - loopbackClientConfig *rest.Config -) - -type PostStartHookConfigEntry struct { - Hook genericapiserver.PostStartHookFunc - // originatingStack holds the stack that registered postStartHooks. This allows us to show a more helpful message - // for duplicate registration. - OriginatingStack string -} - -func IsOpenShift() bool { - return isOpenShift -} - -func OpenshiftConfig() *kubecontrolplanev1.KubeAPIServerConfig { - return openshiftConfig -} - -func LoopbackClientConfig() *rest.Config { - return loopbackClientConfig -} - -func AddPostStartHookOrDie(name string, hook genericapiserver.PostStartHookFunc) { - if appendPostStartHooksCalled { - panic(fmt.Errorf("already appended post start hooks")) - } - if len(name) == 0 { - panic(fmt.Errorf("missing name")) - } - if hook == nil { - panic(fmt.Errorf("hook func may not be nil: %q", name)) - } - - if postStartHook, exists := postStartHooks[name]; exists { - // this is programmer error, but it can be hard to debug - panic(fmt.Errorf("unable to add %q because it was already registered by: %s", name, postStartHook.OriginatingStack)) - } - postStartHooks[name] = PostStartHookConfigEntry{Hook: hook, OriginatingStack: string(debug.Stack())} -} - -func AppendPostStartHooksOrDie(config *genericapiserver.Config) { - appendPostStartHooksCalled = true - for name, curr := range postStartHooks { - config.AddPostStartHookOrDie(name, curr.Hook) - } -} diff --git a/openshift-kube-apiserver/enablement/intialization.go b/openshift-kube-apiserver/enablement/intialization.go deleted file mode 100644 index e6f8b43b08593..0000000000000 --- a/openshift-kube-apiserver/enablement/intialization.go +++ /dev/null @@ -1,85 +0,0 @@ -package enablement - -import ( - "io/ioutil" - "path" - - configv1 "github.com/openshift/api/config/v1" - kubecontrolplanev1 "github.com/openshift/api/kubecontrolplane/v1" - osinv1 "github.com/openshift/api/osin/v1" - "github.com/openshift/library-go/pkg/config/helpers" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/runtime/serializer" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apiserver/pkg/server" - "k8s.io/client-go/tools/clientcmd/api" - aggregatorapiserver "k8s.io/kube-aggregator/pkg/apiserver" - "k8s.io/kubernetes/openshift-kube-apiserver/configdefault" - "k8s.io/kubernetes/pkg/capabilities" - kubelettypes "k8s.io/kubernetes/pkg/kubelet/types" - "k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac/bootstrappolicy" -) - -func GetOpenshiftConfig(openshiftConfigFile string) (*kubecontrolplanev1.KubeAPIServerConfig, error) { - // try to decode into our new types first. right now there is no validation, no file path resolution. this unsticks the operator to start. - // TODO add those things - configContent, err := ioutil.ReadFile(openshiftConfigFile) - if err != nil { - return nil, err - } - scheme := runtime.NewScheme() - utilruntime.Must(kubecontrolplanev1.Install(scheme)) - codecs := serializer.NewCodecFactory(scheme) - obj, err := runtime.Decode(codecs.UniversalDecoder(kubecontrolplanev1.GroupVersion, configv1.GroupVersion, osinv1.GroupVersion), configContent) - if err != nil { - - return nil, err - } - - // Resolve relative to CWD - absoluteConfigFile, err := api.MakeAbs(openshiftConfigFile, "") - if err != nil { - return nil, err - } - configFileLocation := path.Dir(absoluteConfigFile) - - config := obj.(*kubecontrolplanev1.KubeAPIServerConfig) - if err := helpers.ResolvePaths(configdefault.GetKubeAPIServerConfigFileReferences(config), configFileLocation); err != nil { - return nil, err - } - configdefault.SetRecommendedKubeAPIServerConfigDefaults(config) - configdefault.ResolveDirectoriesForSATokenVerification(config) - - return config, nil -} - -func ForceGlobalInitializationForOpenShift() { - // This allows to move crqs, sccs, and rbrs to CRD - aggregatorapiserver.AddAlwaysLocalDelegateForPrefix("/apis/quota.openshift.io/v1/clusterresourcequotas") - aggregatorapiserver.AddAlwaysLocalDelegateForPrefix("/apis/security.openshift.io/v1/securitycontextconstraints") - aggregatorapiserver.AddAlwaysLocalDelegateForPrefix("/apis/authorization.openshift.io/v1/rolebindingrestrictions") - aggregatorapiserver.AddAlwaysLocalDelegateGroupResource(schema.GroupResource{Group: "authorization.openshift.io", Resource: "rolebindingrestrictions"}) - - // This allows the CRD registration to avoid fighting with the APIService from the operator - aggregatorapiserver.AddOverlappingGroupVersion(schema.GroupVersion{Group: "authorization.openshift.io", Version: "v1"}) - - // Allow privileged containers - capabilities.Initialize(capabilities.Capabilities{ - AllowPrivileged: true, - PrivilegedSources: capabilities.PrivilegedSources{ - HostNetworkSources: []string{kubelettypes.ApiserverSource, kubelettypes.FileSource}, - HostPIDSources: []string{kubelettypes.ApiserverSource, kubelettypes.FileSource}, - HostIPCSources: []string{kubelettypes.ApiserverSource, kubelettypes.FileSource}, - }, - }) - - // add permissions we require on our kube-apiserver - // TODO, we should scrub these out - bootstrappolicy.ClusterRoles = bootstrappolicy.OpenshiftClusterRoles - bootstrappolicy.ClusterRoleBindings = bootstrappolicy.OpenshiftClusterRoleBindings - - // we need to have the authorization chain place something before system:masters - // SkipSystemMastersAuthorizer disable implicitly added system/master authz, and turn it into another authz mode "SystemMasters", to be added via authorization-mode - server.SkipSystemMastersAuthorizer() -} diff --git a/openshift-kube-apiserver/openshiftkubeapiserver/flags.go b/openshift-kube-apiserver/openshiftkubeapiserver/flags.go deleted file mode 100644 index b28dd265ee29b..0000000000000 --- a/openshift-kube-apiserver/openshiftkubeapiserver/flags.go +++ /dev/null @@ -1,222 +0,0 @@ -package openshiftkubeapiserver - -import ( - "fmt" - "io/ioutil" - "net" - "strings" - - configv1 "github.com/openshift/api/config/v1" - kubecontrolplanev1 "github.com/openshift/api/kubecontrolplane/v1" - "github.com/openshift/apiserver-library-go/pkg/configflags" - "github.com/openshift/library-go/pkg/config/helpers" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/sets" - apiserverv1alpha1 "k8s.io/apiserver/pkg/apis/apiserver/v1alpha1" -) - -func ConfigToFlags(kubeAPIServerConfig *kubecontrolplanev1.KubeAPIServerConfig) ([]string, error) { - args := unmaskArgs(kubeAPIServerConfig.APIServerArguments) - - host, portString, err := net.SplitHostPort(kubeAPIServerConfig.ServingInfo.BindAddress) - if err != nil { - return nil, err - } - - // TODO this list (and the content below) will be used to drive a config struct and a reflective test matching config to flags - // these flags are overridden by a patch - // admission-control - // authentication-token-webhook-cache-ttl - // authentication-token-webhook-config-file - // authorization-mode - // authorization-policy-file - // authorization-webhook-cache-authorized-ttl - // authorization-webhook-cache-unauthorized-ttl - // authorization-webhook-config-file - // basic-auth-file - // enable-aggregator-routing - // enable-bootstrap-token-auth - // oidc-client-id - // oidc-groups-claim - // oidc-groups-prefix - // oidc-issuer-url - // oidc-required-claim - // oidc-signing-algs - // oidc-username-claim - // oidc-username-prefix - // token-auth-file - - // alsologtostderr - don't know whether to change it - // apiserver-count - ignored, hopefully we don't have to fix via patch - // cert-dir - ignored because we set certs - - // these flags were never supported via config - // cloud-config - // cloud-provider - // cloud-provider-gce-lb-src-cidrs - // contention-profiling - // default-not-ready-toleration-seconds - // default-unreachable-toleration-seconds - // default-watch-cache-size - // delete-collection-workers - // deserialization-cache-size - // enable-garbage-collector - // etcd-compaction-interval - // etcd-count-metric-poll-period - // etcd-servers-overrides - // experimental-encryption-provider-config - // feature-gates - // http2-max-streams-per-connection - // insecure-bind-address - // kubelet-timeout - // log-backtrace-at - // log-dir - // log-flush-frequency - // logtostderr - // master-service-namespace - // max-connection-bytes-per-sec - // profiling - // request-timeout - // runtime-config - // service-account-api-audiences - // service-account-issuer - // service-account-key-file - // service-account-max-token-expiration - // stderrthreshold - // storage-versions - // target-ram-mb - // v - // version - // vmodule - // watch-cache - // watch-cache-sizes - - // TODO, we need to set these in order to enable the right admission plugins in each of the servers - // TODO this is needed for a viable cluster up - admissionFlags, err := admissionFlags(kubeAPIServerConfig.AdmissionConfig) - if err != nil { - return nil, err - } - for flag, value := range admissionFlags { - configflags.SetIfUnset(args, flag, value...) - } - configflags.SetIfUnset(args, "allow-privileged", "true") - configflags.SetIfUnset(args, "anonymous-auth", "true") - configflags.SetIfUnset(args, "authorization-mode", "Scope", "SystemMasters", "RBAC", "Node") // overridden later, but this runs the poststarthook for bootstrapping RBAC - for flag, value := range configflags.AuditFlags(&kubeAPIServerConfig.AuditConfig, configflags.ArgsWithPrefix(args, "audit-")) { - configflags.SetIfUnset(args, flag, value...) - } - configflags.SetIfUnset(args, "bind-address", host) - configflags.SetIfUnset(args, "client-ca-file", kubeAPIServerConfig.ServingInfo.ClientCA) - configflags.SetIfUnset(args, "cors-allowed-origins", kubeAPIServerConfig.CORSAllowedOrigins...) - configflags.SetIfUnset(args, "enable-logs-handler", "false") - configflags.SetIfUnset(args, "enable-swagger-ui", "true") - configflags.SetIfUnset(args, "endpoint-reconciler-type", "lease") - configflags.SetIfUnset(args, "etcd-cafile", kubeAPIServerConfig.StorageConfig.CA) - configflags.SetIfUnset(args, "etcd-certfile", kubeAPIServerConfig.StorageConfig.CertFile) - configflags.SetIfUnset(args, "etcd-keyfile", kubeAPIServerConfig.StorageConfig.KeyFile) - configflags.SetIfUnset(args, "etcd-prefix", kubeAPIServerConfig.StorageConfig.StoragePrefix) - configflags.SetIfUnset(args, "etcd-servers", kubeAPIServerConfig.StorageConfig.URLs...) - configflags.SetIfUnset(args, "event-ttl", "3h") // set a TTL long enough to last for our CI tests so we see the first set of events. - configflags.SetIfUnset(args, "insecure-port", "0") - configflags.SetIfUnset(args, "kubelet-certificate-authority", kubeAPIServerConfig.KubeletClientInfo.CA) - configflags.SetIfUnset(args, "kubelet-client-certificate", kubeAPIServerConfig.KubeletClientInfo.CertFile) - configflags.SetIfUnset(args, "kubelet-client-key", kubeAPIServerConfig.KubeletClientInfo.KeyFile) - configflags.SetIfUnset(args, "kubelet-https", "true") - configflags.SetIfUnset(args, "kubelet-preferred-address-types", "Hostname", "InternalIP", "ExternalIP") - configflags.SetIfUnset(args, "kubelet-read-only-port", "0") - configflags.SetIfUnset(args, "kubernetes-service-node-port", "0") - configflags.SetIfUnset(args, "max-mutating-requests-inflight", fmt.Sprintf("%d", kubeAPIServerConfig.ServingInfo.MaxRequestsInFlight/2)) - configflags.SetIfUnset(args, "max-requests-inflight", fmt.Sprintf("%d", kubeAPIServerConfig.ServingInfo.MaxRequestsInFlight)) - configflags.SetIfUnset(args, "min-request-timeout", fmt.Sprintf("%d", kubeAPIServerConfig.ServingInfo.RequestTimeoutSeconds)) - configflags.SetIfUnset(args, "proxy-client-cert-file", kubeAPIServerConfig.AggregatorConfig.ProxyClientInfo.CertFile) - configflags.SetIfUnset(args, "proxy-client-key-file", kubeAPIServerConfig.AggregatorConfig.ProxyClientInfo.KeyFile) - configflags.SetIfUnset(args, "requestheader-allowed-names", kubeAPIServerConfig.AuthConfig.RequestHeader.ClientCommonNames...) - configflags.SetIfUnset(args, "requestheader-client-ca-file", kubeAPIServerConfig.AuthConfig.RequestHeader.ClientCA) - configflags.SetIfUnset(args, "requestheader-extra-headers-prefix", kubeAPIServerConfig.AuthConfig.RequestHeader.ExtraHeaderPrefixes...) - configflags.SetIfUnset(args, "requestheader-group-headers", kubeAPIServerConfig.AuthConfig.RequestHeader.GroupHeaders...) - configflags.SetIfUnset(args, "requestheader-username-headers", kubeAPIServerConfig.AuthConfig.RequestHeader.UsernameHeaders...) - configflags.SetIfUnset(args, "secure-port", portString) - configflags.SetIfUnset(args, "service-account-key-file", kubeAPIServerConfig.ServiceAccountPublicKeyFiles...) - configflags.SetIfUnset(args, "service-account-lookup", "true") - configflags.SetIfUnset(args, "service-cluster-ip-range", kubeAPIServerConfig.ServicesSubnet) - configflags.SetIfUnset(args, "service-node-port-range", kubeAPIServerConfig.ServicesNodePortRange) - configflags.SetIfUnset(args, "storage-backend", "etcd3") - configflags.SetIfUnset(args, "storage-media-type", "application/vnd.kubernetes.protobuf") - configflags.SetIfUnset(args, "tls-cert-file", kubeAPIServerConfig.ServingInfo.CertFile) - configflags.SetIfUnset(args, "tls-cipher-suites", kubeAPIServerConfig.ServingInfo.CipherSuites...) - configflags.SetIfUnset(args, "tls-min-version", kubeAPIServerConfig.ServingInfo.MinTLSVersion) - configflags.SetIfUnset(args, "tls-private-key-file", kubeAPIServerConfig.ServingInfo.KeyFile) - configflags.SetIfUnset(args, "tls-sni-cert-key", sniCertKeys(kubeAPIServerConfig.ServingInfo.NamedCertificates)...) - configflags.SetIfUnset(args, "secure-port", portString) - - return configflags.ToFlagSlice(args), nil -} - -func admissionFlags(admissionConfig configv1.AdmissionConfig) (map[string][]string, error) { - args := map[string][]string{} - - upstreamAdmissionConfig, err := ConvertOpenshiftAdmissionConfigToKubeAdmissionConfig(admissionConfig.PluginConfig) - if err != nil { - return nil, err - } - configBytes, err := helpers.WriteYAML(upstreamAdmissionConfig, apiserverv1alpha1.AddToScheme) - if err != nil { - return nil, err - } - - tempFile, err := ioutil.TempFile("", "kubeapiserver-admission-config.yaml") - if err != nil { - return nil, err - } - if _, err := tempFile.Write(configBytes); err != nil { - return nil, err - } - tempFile.Close() - - configflags.SetIfUnset(args, "admission-control-config-file", tempFile.Name()) - configflags.SetIfUnset(args, "disable-admission-plugins", admissionConfig.DisabledAdmissionPlugins...) - configflags.SetIfUnset(args, "enable-admission-plugins", admissionConfig.EnabledAdmissionPlugins...) - - return args, nil -} - -func sniCertKeys(namedCertificates []configv1.NamedCertificate) []string { - args := []string{} - for _, nc := range namedCertificates { - names := "" - if len(nc.Names) > 0 { - names = ":" + strings.Join(nc.Names, ",") - } - args = append(args, fmt.Sprintf("%s,%s%s", nc.CertFile, nc.KeyFile, names)) - } - return args -} - -func unmaskArgs(args map[string]kubecontrolplanev1.Arguments) map[string][]string { - ret := map[string][]string{} - for key, slice := range args { - for _, val := range slice { - ret[key] = append(ret[key], val) - } - } - return ret -} - -func ConvertOpenshiftAdmissionConfigToKubeAdmissionConfig(in map[string]configv1.AdmissionPluginConfig) (*apiserverv1alpha1.AdmissionConfiguration, error) { - ret := &apiserverv1alpha1.AdmissionConfiguration{} - - for _, pluginName := range sets.StringKeySet(in).List() { - kubeConfig := apiserverv1alpha1.AdmissionPluginConfiguration{ - Name: pluginName, - Path: in[pluginName].Location, - Configuration: &runtime.Unknown{ - Raw: in[pluginName].Configuration.Raw, - }, - } - - ret.Plugins = append(ret.Plugins, kubeConfig) - } - - return ret, nil -} diff --git a/openshift-kube-apiserver/openshiftkubeapiserver/flags_test.go b/openshift-kube-apiserver/openshiftkubeapiserver/flags_test.go deleted file mode 100644 index 3241b9b432981..0000000000000 --- a/openshift-kube-apiserver/openshiftkubeapiserver/flags_test.go +++ /dev/null @@ -1,26 +0,0 @@ -package openshiftkubeapiserver - -import ( - "testing" - - "github.com/openshift/api/config/v1" -) - -func TestSNICertKeys(t *testing.T) { - testCases := []struct { - names []string - expected string - }{ - {names: []string{"foo"}, expected: "secret.crt,secret.key:foo"}, - {names: []string{"foo", "bar"}, expected: "secret.crt,secret.key:foo,bar"}, - {expected: "secret.crt,secret.key"}, - } - for _, tc := range testCases { - t.Run("", func(t *testing.T) { - result := sniCertKeys([]v1.NamedCertificate{{Names: tc.names, CertInfo: v1.CertInfo{CertFile: "secret.crt", KeyFile: "secret.key"}}}) - if len(result) != 1 || result[0] != tc.expected { - t.Errorf("expected: %v, actual: %v", []string{tc.expected}, result) - } - }) - } -} diff --git a/openshift-kube-apiserver/openshiftkubeapiserver/patch.go b/openshift-kube-apiserver/openshiftkubeapiserver/patch.go deleted file mode 100644 index bd5d050fdd8d9..0000000000000 --- a/openshift-kube-apiserver/openshiftkubeapiserver/patch.go +++ /dev/null @@ -1,160 +0,0 @@ -package openshiftkubeapiserver - -import ( - "time" - - "k8s.io/kubernetes/openshift-kube-apiserver/enablement" - - "k8s.io/apiserver/pkg/admission" - genericapiserver "k8s.io/apiserver/pkg/server" - clientgoinformers "k8s.io/client-go/informers" - corev1informers "k8s.io/client-go/informers/core/v1" - "k8s.io/client-go/rest" - "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/pkg/quota/v1/generic" - "k8s.io/kubernetes/pkg/quota/v1/install" - - "github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy" - "github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/imagereferencemutators" - "github.com/openshift/apiserver-library-go/pkg/admission/quota/clusterresourcequota" - "github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccadmission" - quotaclient "github.com/openshift/client-go/quota/clientset/versioned" - quotainformer "github.com/openshift/client-go/quota/informers/externalversions" - quotav1informer "github.com/openshift/client-go/quota/informers/externalversions/quota/v1" - securityv1client "github.com/openshift/client-go/security/clientset/versioned" - securityv1informer "github.com/openshift/client-go/security/informers/externalversions" - userclient "github.com/openshift/client-go/user/clientset/versioned" - userinformer "github.com/openshift/client-go/user/informers/externalversions" - "github.com/openshift/library-go/pkg/apiserver/admission/admissionrestconfig" - "github.com/openshift/library-go/pkg/apiserver/apiserverconfig" - "github.com/openshift/library-go/pkg/quota/clusterquotamapping" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/authorization/restrictusers" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/authorization/restrictusers/usercache" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/scheduler/nodeenv" -) - -func OpenShiftKubeAPIServerConfigPatch(genericConfig *genericapiserver.Config, kubeInformers clientgoinformers.SharedInformerFactory, pluginInitializers *[]admission.PluginInitializer) error { - if !enablement.IsOpenShift() { - return nil - } - - openshiftInformers, err := newInformers(genericConfig.LoopbackClientConfig) - if err != nil { - return err - } - - // AUTHORIZER - genericConfig.RequestInfoResolver = apiserverconfig.OpenshiftRequestInfoResolver() - // END AUTHORIZER - - // Inject OpenShift API long running endpoints (like for binary builds). - // TODO: We should disable the timeout code for aggregated endpoints as this can cause problems when upstream add additional endpoints. - genericConfig.LongRunningFunc = apiserverconfig.IsLongRunningRequest - - // ADMISSION - clusterQuotaMappingController := newClusterQuotaMappingController(kubeInformers.Core().V1().Namespaces(), openshiftInformers.OpenshiftQuotaInformers.Quota().V1().ClusterResourceQuotas()) - genericConfig.AddPostStartHookOrDie("quota.openshift.io-clusterquotamapping", func(context genericapiserver.PostStartHookContext) error { - go clusterQuotaMappingController.Run(5, context.StopCh) - return nil - }) - - *pluginInitializers = append(*pluginInitializers, - imagepolicy.NewInitializer(imagereferencemutators.KubeImageMutators{}, enablement.OpenshiftConfig().ImagePolicyConfig.InternalRegistryHostname), - restrictusers.NewInitializer(openshiftInformers.getOpenshiftUserInformers()), - sccadmission.NewInitializer(openshiftInformers.getOpenshiftSecurityInformers().Security().V1().SecurityContextConstraints()), - clusterresourcequota.NewInitializer( - openshiftInformers.getOpenshiftQuotaInformers().Quota().V1().ClusterResourceQuotas(), - clusterQuotaMappingController.GetClusterQuotaMapper(), - generic.NewRegistry(install.NewQuotaConfigurationForAdmission().Evaluators()), - ), - nodeenv.NewInitializer(enablement.OpenshiftConfig().ProjectConfig.DefaultNodeSelector), - admissionrestconfig.NewInitializer(*rest.CopyConfig(genericConfig.LoopbackClientConfig)), - ) - // END ADMISSION - - // HANDLER CHAIN (with oauth server and web console) - genericConfig.BuildHandlerChainFunc, err = BuildHandlerChain(enablement.OpenshiftConfig().ConsolePublicURL, enablement.OpenshiftConfig().AuthConfig.OAuthMetadataFile) - if err != nil { - return err - } - // END HANDLER CHAIN - - openshiftAPIServiceReachabilityCheck := newOpenshiftAPIServiceReachabilityCheck() - genericConfig.ReadyzChecks = append(genericConfig.ReadyzChecks, openshiftAPIServiceReachabilityCheck) - - genericConfig.AddPostStartHookOrDie("openshift.io-startkubeinformers", func(context genericapiserver.PostStartHookContext) error { - go openshiftInformers.Start(context.StopCh) - return nil - }) - genericConfig.AddPostStartHookOrDie("openshift.io-openshift-apiserver-reachable", func(context genericapiserver.PostStartHookContext) error { - go openshiftAPIServiceReachabilityCheck.checkForConnection(context) - return nil - }) - enablement.AppendPostStartHooksOrDie(genericConfig) - - return nil -} - -// newInformers is only exposed for the build's integration testing until it can be fixed more appropriately. -func newInformers(loopbackClientConfig *rest.Config) (*kubeAPIServerInformers, error) { - // ClusterResourceQuota is served using CRD resource any status update must use JSON - jsonLoopbackClientConfig := rest.CopyConfig(loopbackClientConfig) - jsonLoopbackClientConfig.ContentConfig.AcceptContentTypes = "application/json" - jsonLoopbackClientConfig.ContentConfig.ContentType = "application/json" - - quotaClient, err := quotaclient.NewForConfig(jsonLoopbackClientConfig) - if err != nil { - return nil, err - } - securityClient, err := securityv1client.NewForConfig(jsonLoopbackClientConfig) - if err != nil { - return nil, err - } - userClient, err := userclient.NewForConfig(loopbackClientConfig) - if err != nil { - return nil, err - } - - // TODO find a single place to create and start informers. During the 1.7 rebase this will come more naturally in a config object, - // before then we should try to eliminate our direct to storage access. It's making us do weird things. - const defaultInformerResyncPeriod = 10 * time.Minute - - ret := &kubeAPIServerInformers{ - OpenshiftQuotaInformers: quotainformer.NewSharedInformerFactory(quotaClient, defaultInformerResyncPeriod), - OpenshiftSecurityInformers: securityv1informer.NewSharedInformerFactory(securityClient, defaultInformerResyncPeriod), - OpenshiftUserInformers: userinformer.NewSharedInformerFactory(userClient, defaultInformerResyncPeriod), - } - if err := ret.OpenshiftUserInformers.User().V1().Groups().Informer().AddIndexers(cache.Indexers{ - usercache.ByUserIndexName: usercache.ByUserIndexKeys, - }); err != nil { - return nil, err - } - - return ret, nil -} - -type kubeAPIServerInformers struct { - OpenshiftQuotaInformers quotainformer.SharedInformerFactory - OpenshiftSecurityInformers securityv1informer.SharedInformerFactory - OpenshiftUserInformers userinformer.SharedInformerFactory -} - -func (i *kubeAPIServerInformers) getOpenshiftQuotaInformers() quotainformer.SharedInformerFactory { - return i.OpenshiftQuotaInformers -} -func (i *kubeAPIServerInformers) getOpenshiftSecurityInformers() securityv1informer.SharedInformerFactory { - return i.OpenshiftSecurityInformers -} -func (i *kubeAPIServerInformers) getOpenshiftUserInformers() userinformer.SharedInformerFactory { - return i.OpenshiftUserInformers -} - -func (i *kubeAPIServerInformers) Start(stopCh <-chan struct{}) { - i.OpenshiftQuotaInformers.Start(stopCh) - i.OpenshiftSecurityInformers.Start(stopCh) - i.OpenshiftUserInformers.Start(stopCh) -} - -func newClusterQuotaMappingController(nsInternalInformer corev1informers.NamespaceInformer, clusterQuotaInformer quotav1informer.ClusterResourceQuotaInformer) *clusterquotamapping.ClusterQuotaMappingController { - return clusterquotamapping.NewClusterQuotaMappingController(nsInternalInformer, clusterQuotaInformer) -} diff --git a/openshift-kube-apiserver/openshiftkubeapiserver/patch_handlerchain.go b/openshift-kube-apiserver/openshiftkubeapiserver/patch_handlerchain.go deleted file mode 100644 index 804116c1efa1d..0000000000000 --- a/openshift-kube-apiserver/openshiftkubeapiserver/patch_handlerchain.go +++ /dev/null @@ -1,97 +0,0 @@ -package openshiftkubeapiserver - -import ( - "net/http" - "strings" - - authenticationv1 "k8s.io/api/authentication/v1" - genericapiserver "k8s.io/apiserver/pkg/server" - - authorizationv1 "github.com/openshift/api/authorization/v1" - "github.com/openshift/library-go/pkg/apiserver/httprequest" -) - -// TODO switch back to taking a kubeapiserver config. For now make it obviously safe for 3.11 -func BuildHandlerChain(consolePublicURL string, oauthMetadataFile string) (func(apiHandler http.Handler, kc *genericapiserver.Config) http.Handler, error) { - // load the oauthmetadata when we can return an error - oAuthMetadata := []byte{} - if len(oauthMetadataFile) > 0 { - var err error - oAuthMetadata, err = loadOAuthMetadataFile(oauthMetadataFile) - if err != nil { - return nil, err - } - } - - return func(apiHandler http.Handler, genericConfig *genericapiserver.Config) http.Handler { - // well-known comes after the normal handling chain. This shows where to connect for oauth information - handler := withOAuthInfo(apiHandler, oAuthMetadata) - - // this is the normal kube handler chain - handler = genericapiserver.DefaultBuildHandlerChain(handler, genericConfig) - - // these handlers are all before the normal kube chain - handler = translateLegacyScopeImpersonation(handler) - - // redirects from / and /console to consolePublicURL if you're using a browser - handler = withConsoleRedirect(handler, consolePublicURL) - - return handler - }, - nil -} - -// If we know the location of the asset server, redirect to it when / is requested -// and the Accept header supports text/html -func withOAuthInfo(handler http.Handler, oAuthMetadata []byte) http.Handler { - if len(oAuthMetadata) == 0 { - return handler - } - - return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - if req.URL.Path != oauthMetadataEndpoint { - // Dispatch to the next handler - handler.ServeHTTP(w, req) - return - } - - w.Header().Set("Content-Type", "application/json") - w.WriteHeader(http.StatusOK) - w.Write(oAuthMetadata) - }) -} - -// If we know the location of the asset server, redirect to it when / is requested -// and the Accept header supports text/html -func withConsoleRedirect(handler http.Handler, consolePublicURL string) http.Handler { - if len(consolePublicURL) == 0 { - return handler - } - - return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - if strings.HasPrefix(req.URL.Path, "/console") || - (req.URL.Path == "/" && httprequest.PrefersHTML(req)) { - http.Redirect(w, req, consolePublicURL, http.StatusFound) - return - } - // Dispatch to the next handler - handler.ServeHTTP(w, req) - }) -} - -// legacyImpersonateUserScopeHeader is the header name older servers were using -// just for scopes, so we need to translate it from clients that may still be -// using it. -const legacyImpersonateUserScopeHeader = "Impersonate-User-Scope" - -// translateLegacyScopeImpersonation is a filter that will translates user scope impersonation for openshift into the equivalent kube headers. -func translateLegacyScopeImpersonation(handler http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - for _, scope := range req.Header[legacyImpersonateUserScopeHeader] { - req.Header[authenticationv1.ImpersonateUserExtraHeaderPrefix+authorizationv1.ScopesKey] = - append(req.Header[authenticationv1.ImpersonateUserExtraHeaderPrefix+authorizationv1.ScopesKey], scope) - } - - handler.ServeHTTP(w, req) - }) -} diff --git a/openshift-kube-apiserver/openshiftkubeapiserver/sdn_readyz_wait.go b/openshift-kube-apiserver/openshiftkubeapiserver/sdn_readyz_wait.go deleted file mode 100644 index 3d8a86cf714c2..0000000000000 --- a/openshift-kube-apiserver/openshiftkubeapiserver/sdn_readyz_wait.go +++ /dev/null @@ -1,126 +0,0 @@ -package openshiftkubeapiserver - -import ( - gocontext "context" - "crypto/tls" - "fmt" - "net" - "net/http" - "net/http/httputil" - "time" - - apierrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apimachinery/pkg/util/wait" - genericapiserver "k8s.io/apiserver/pkg/server" - "k8s.io/client-go/kubernetes" - "k8s.io/klog/v2" -) - -func newOpenshiftAPIServiceReachabilityCheck() *openshiftAPIServiceAvailabilityCheck { - return &openshiftAPIServiceAvailabilityCheck{done: make(chan struct{})} -} - -type openshiftAPIServiceAvailabilityCheck struct { - // done indicates that this check is complete (success or failure) and the check should return true - done chan struct{} -} - -func (c *openshiftAPIServiceAvailabilityCheck) Name() string { - return "openshift-apiservices-available" -} - -func (c *openshiftAPIServiceAvailabilityCheck) Check(req *http.Request) error { - select { - case <-c.done: - return nil - default: - return fmt.Errorf("check is not yet complete") - } -} - -func (c *openshiftAPIServiceAvailabilityCheck) checkForConnection(context genericapiserver.PostStartHookContext) { - defer utilruntime.HandleCrash() - - reachedOpenshiftAPIServer := make(chan struct{}) - noOpenshiftAPIServer := make(chan struct{}) - waitUntilCh := make(chan struct{}) - defer func() { - close(waitUntilCh) // this stops the endpoint check - close(c.done) // once this method is done, the ready check should return true - }() - start := time.Now() - - kubeClient, err := kubernetes.NewForConfig(context.LoopbackClientConfig) - if err != nil { - // shouldn't happen. this means the loopback config didn't work. - panic(err) - } - - // Start a thread which repeatedly tries to connect to any openshift-apiserver endpoint. - // 1. if the openshift-apiserver endpoint doesn't exist, logs a warning and reports ready - // 2. if a connection cannot be made, after 60 seconds logs an error and reports ready -- this avoids a rebootstrapping cycle - // 3. as soon as a connection can be made, logs a time to be ready and reports ready. - go func() { - defer utilruntime.HandleCrash() - - client := http.Client{ - Transport: &http.Transport{ - // since any http return code satisfies us, we don't bother to send credentials. - // we don't care about someone faking a response and we aren't sending credentials, so we don't check the server CA - TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, - }, - Timeout: 1 * time.Second, // these should all be very fast. if none work, we continue anyway. - } - - wait.PollImmediateUntil(1*time.Second, func() (bool, error) { - ctx := gocontext.TODO() - openshiftEndpoints, err := kubeClient.CoreV1().Endpoints("openshift-apiserver").Get(ctx, "api", metav1.GetOptions{}) - if apierrors.IsNotFound(err) { - // if we have no openshift apiserver endpoint, we have no reason to wait - klog.Warning("api.openshift-apiserver.svc endpoints were not found") - close(noOpenshiftAPIServer) - return true, nil - } - if err != nil { - utilruntime.HandleError(err) - return false, nil - } - for _, subset := range openshiftEndpoints.Subsets { - for _, address := range subset.Addresses { - url := fmt.Sprintf("https://%v", net.JoinHostPort(address.IP, "8443")) - resp, err := client.Get(url) - if err == nil { // any http response is fine. it means that we made contact - response, dumpErr := httputil.DumpResponse(resp, true) - klog.V(4).Infof("reached to connect to %q: %v\n%v", url, dumpErr, string(response)) - close(reachedOpenshiftAPIServer) - resp.Body.Close() - return true, nil - } - klog.V(2).Infof("failed to connect to %q: %v", url, err) - } - } - - return false, nil - }, waitUntilCh) - }() - - select { - case <-time.After(60 * time.Second): - // if we timeout, always return ok so that we can start from a case where all kube-apiservers are down and the SDN isn't coming up - utilruntime.HandleError(fmt.Errorf("openshift.io-openshift-apiserver-reachable never reached openshift apiservice")) - return - case <-context.StopCh: - utilruntime.HandleError(fmt.Errorf("openshift.io-openshift-apiserver-reachable interrupted")) - return - case <-noOpenshiftAPIServer: - utilruntime.HandleError(fmt.Errorf("openshift.io-openshift-apiserver-reachable did not find an openshift-apiserver endpoint")) - return - - case <-reachedOpenshiftAPIServer: - end := time.Now() - klog.Infof("reached openshift apiserver via SDN after %v milliseconds", end.Sub(start).Milliseconds()) - return - } -} diff --git a/openshift-kube-apiserver/openshiftkubeapiserver/wellknown_oauth.go b/openshift-kube-apiserver/openshiftkubeapiserver/wellknown_oauth.go deleted file mode 100644 index 8b34da7aa3203..0000000000000 --- a/openshift-kube-apiserver/openshiftkubeapiserver/wellknown_oauth.go +++ /dev/null @@ -1,57 +0,0 @@ -package openshiftkubeapiserver - -import ( - "encoding/json" - "fmt" - "io/ioutil" - "net/url" - - "github.com/openshift/library-go/pkg/oauth/oauthdiscovery" -) - -const ( - // Discovery endpoint for OAuth 2.0 Authorization Server Metadata - // See IETF Draft: - // https://tools.ietf.org/html/draft-ietf-oauth-discovery-04#section-2 - oauthMetadataEndpoint = "/.well-known/oauth-authorization-server" -) - -func validateURL(urlString string) error { - urlObj, err := url.Parse(urlString) - if err != nil { - return fmt.Errorf("%q is an invalid URL: %v", urlString, err) - } - if len(urlObj.Scheme) == 0 { - return fmt.Errorf("must contain a valid scheme") - } - if len(urlObj.Host) == 0 { - return fmt.Errorf("must contain a valid host") - } - return nil -} - -func loadOAuthMetadataFile(metadataFile string) ([]byte, error) { - data, err := ioutil.ReadFile(metadataFile) - if err != nil { - return nil, fmt.Errorf("unable to read External OAuth Metadata file: %v", err) - } - - oauthMetadata := &oauthdiscovery.OauthAuthorizationServerMetadata{} - if err := json.Unmarshal(data, oauthMetadata); err != nil { - return nil, fmt.Errorf("unable to decode External OAuth Metadata file: %v", err) - } - - if err := validateURL(oauthMetadata.Issuer); err != nil { - return nil, fmt.Errorf("error validating External OAuth Metadata Issuer field: %v", err) - } - - if err := validateURL(oauthMetadata.AuthorizationEndpoint); err != nil { - return nil, fmt.Errorf("error validating External OAuth Metadata AuthorizationEndpoint field: %v", err) - } - - if err := validateURL(oauthMetadata.TokenEndpoint); err != nil { - return nil, fmt.Errorf("error validating External OAuth Metadata TokenEndpoint field: %v", err) - } - - return data, nil -} diff --git a/openshift.spec b/openshift.spec deleted file mode 100644 index c6695f46fd98a..0000000000000 --- a/openshift.spec +++ /dev/null @@ -1,129 +0,0 @@ -#debuginfo not supported with Go -%global debug_package %{nil} -# modifying the Go binaries breaks the DWARF debugging -%global __os_install_post %{_rpmconfigdir}/brp-compress - -%global gopath %{_datadir}/gocode -%global import_path k8s.io/kubernetes - -%global golang_version 1.15 - -%{!?commit: -# DO NOT MODIFY: the value on the line below is sed-like replaced by openshift/doozer -%global commit 86b5e46426ba828f49195af21c56f7c6674b48f7 -} -%global shortcommit %(c=%{commit}; echo ${c:0:7}) -# DO NOT MODIFY: the value on the line below is sed-like replaced by openshift/doozer -%{!?os_git_vars: -%global os_git_vars OS_GIT_VERSION='' OS_GIT_COMMIT='' OS_GIT_MAJOR='' OS_GIT_MINOR='' OS_GIT_TREE_STATE='' -} - -%if 0%{?skip_build} -%global do_build 0 -%else -%global do_build 1 -%endif -%if 0%{?skip_prep} -%global do_prep 0 -%else -%global do_prep 1 -%endif -%if 0%{?skip_dist} -%global package_dist %{nil} -%else -%global package_dist %{dist} -%endif - -%{!?version: %global version 4.0.0} -%{!?release: %global release 1} - -Name: openshift -Version: %{version} -Release: %{release}%{package_dist} -Summary: Open Source Container Management by Red Hat -License: ASL 2.0 -URL: https://%{import_path} - -# If go_arches not defined fall through to implicit golang archs -%if 0%{?go_arches:1} -ExclusiveArch: %{go_arches} -%else -ExclusiveArch: x86_64 aarch64 ppc64le s390x -%endif - -# TODO(marun) tar archives are no longer published for 4.x. Should this value be removed? -Source0: https://%{import_path}/archive/%{commit}/%{name}-%{version}.tar.gz -BuildRequires: systemd -BuildRequires: bsdtar -BuildRequires: golang >= %{golang_version} -BuildRequires: krb5-devel -BuildRequires: rsync - -%description -OpenShift is a distribution of Kubernetes optimized for enterprise application -development and deployment. OpenShift adds developer and operational centric -tools on top of Kubernetes to enable rapid application development, easy -deployment and scaling, and long-term lifecycle maintenance for small and large -teams and applications. It provides a secure and multi-tenant configuration for -Kubernetes allowing you to safely host many different applications and workloads -on a unified cluster. - -%package hyperkube -Summary: OpenShift Kubernetes server commands -Requires: util-linux -Requires: socat -Requires: iptables -Provides: hyperkube = %{version} -Obsoletes: atomic-openshift-hyperkube <= %{version} -Obsoletes: atomic-openshift-node <= %{version} - -%description hyperkube -%{summary} - -%prep -%if 0%{do_prep} -%setup -q -%endif - -%build -%if 0%{do_build} -# Create Binaries only for building arch -%ifarch x86_64 - BUILD_PLATFORM="linux/amd64" -%endif -%ifarch ppc64le - BUILD_PLATFORM="linux/ppc64le" -%endif -%ifarch %{arm} aarch64 - BUILD_PLATFORM="linux/arm64" -%endif -%ifarch s390x - BUILD_PLATFORM="linux/s390x" -%endif -KUBE_BUILD_PLATFORMS="${BUILD_PLATFORM}" %{os_git_vars} make all WHAT='cmd/kube-apiserver cmd/kube-controller-manager cmd/kube-scheduler cmd/kubelet' -%endif - -%install - -PLATFORM="$(go env GOHOSTOS)/$(go env GOHOSTARCH)" -install -d %{buildroot}%{_bindir} - -# Install linux components -for bin in kube-apiserver kube-controller-manager kube-scheduler kubelet -do - echo "+++ INSTALLING ${bin}" - install -p -m 755 _output/local/bin/${PLATFORM}/${bin} %{buildroot}%{_bindir}/${bin} -done - -install -p -m 755 openshift-hack/images/hyperkube/hyperkube %{buildroot}%{_bindir}/hyperkube - -%files hyperkube -%license LICENSE -%{_bindir}/hyperkube -%{_bindir}/kube-apiserver -%{_bindir}/kube-controller-manager -%{_bindir}/kube-scheduler -%{_bindir}/kubelet -%defattr(-,root,root,0700) - -%changelog diff --git a/pkg/api/pod/util.go b/pkg/api/pod/util.go index 260414d5bc74a..4d68552e37aeb 100644 --- a/pkg/api/pod/util.go +++ b/pkg/api/pod/util.go @@ -87,11 +87,23 @@ func VisitContainers(podSpec *api.PodSpec, mask ContainerType, visitor Container // Visitor is called with each object name, and returns true if visiting should continue type Visitor func(name string) (shouldContinue bool) +func skipEmptyNames(visitor Visitor) Visitor { + return func(name string) bool { + if len(name) == 0 { + // continue visiting + return true + } + // delegate to visitor + return visitor(name) + } +} + // VisitPodSecretNames invokes the visitor function with the name of every secret // referenced by the pod spec. If visitor returns false, visiting is short-circuited. // Transitive references (e.g. pod -> pvc -> pv -> secret) are not visited. // Returns true if visiting completed, false if visiting was short-circuited. func VisitPodSecretNames(pod *api.Pod, visitor Visitor, containerType ContainerType) bool { + visitor = skipEmptyNames(visitor) for _, reference := range pod.Spec.ImagePullSecrets { if !visitor(reference.Name) { return false @@ -180,6 +192,7 @@ func visitContainerSecretNames(container *api.Container, visitor Visitor) bool { // Transitive references (e.g. pod -> pvc -> pv -> secret) are not visited. // Returns true if visiting completed, false if visiting was short-circuited. func VisitPodConfigmapNames(pod *api.Pod, visitor Visitor, containerType ContainerType) bool { + visitor = skipEmptyNames(visitor) VisitContainers(&pod.Spec, containerType, func(c *api.Container, containerType ContainerType) bool { return visitContainerConfigmapNames(c, visitor) }) diff --git a/pkg/api/pod/util_test.go b/pkg/api/pod/util_test.go index 693ca2a0ae7ee..a00de96585a12 100644 --- a/pkg/api/pod/util_test.go +++ b/pkg/api/pod/util_test.go @@ -365,6 +365,21 @@ func TestPodSecrets(t *testing.T) { t.Logf("Extra secret names:\n%s", strings.Join(extraNames.List(), "\n")) t.Error("Extra secret names extracted. Verify VisitPodSecretNames() is correctly extracting secret names") } + + // emptyPod is a stub containing empty object names + emptyPod := &api.Pod{ + Spec: api.PodSpec{ + Containers: []api.Container{{ + EnvFrom: []api.EnvFromSource{{ + SecretRef: &api.SecretEnvSource{ + LocalObjectReference: api.LocalObjectReference{ + Name: ""}}}}}}, + }, + } + VisitPodSecretNames(emptyPod, func(name string) bool { + t.Fatalf("expected no empty names collected, got %q", name) + return false + }, AllContainers) } // collectResourcePaths traverses the object, computing all the struct paths that lead to fields with resourcename in the name. @@ -494,6 +509,21 @@ func TestPodConfigmaps(t *testing.T) { t.Logf("Extra names:\n%s", strings.Join(extraNames.List(), "\n")) t.Error("Extra names extracted. Verify VisitPodConfigmapNames() is correctly extracting resource names") } + + // emptyPod is a stub containing empty object names + emptyPod := &api.Pod{ + Spec: api.PodSpec{ + Containers: []api.Container{{ + EnvFrom: []api.EnvFromSource{{ + ConfigMapRef: &api.ConfigMapEnvSource{ + LocalObjectReference: api.LocalObjectReference{ + Name: ""}}}}}}, + }, + } + VisitPodConfigmapNames(emptyPod, func(name string) bool { + t.Fatalf("expected no empty names collected, got %q", name) + return false + }, AllContainers) } func TestDropFSGroupFields(t *testing.T) { diff --git a/pkg/api/v1/persistentvolume/util.go b/pkg/api/v1/persistentvolume/util.go index 003b2e70d9788..376021a292ba5 100644 --- a/pkg/api/v1/persistentvolume/util.go +++ b/pkg/api/v1/persistentvolume/util.go @@ -30,10 +30,22 @@ func getClaimRefNamespace(pv *corev1.PersistentVolume) string { // Visitor is called with each object's namespace and name, and returns true if visiting should continue type Visitor func(namespace, name string, kubeletVisible bool) (shouldContinue bool) +func skipEmptyNames(visitor Visitor) Visitor { + return func(namespace, name string, kubeletVisible bool) bool { + if len(name) == 0 { + // continue visiting + return true + } + // delegate to visitor + return visitor(namespace, name, kubeletVisible) + } +} + // VisitPVSecretNames invokes the visitor function with the name of every secret // referenced by the PV spec. If visitor returns false, visiting is short-circuited. // Returns true if visiting completed, false if visiting was short-circuited. func VisitPVSecretNames(pv *corev1.PersistentVolume, visitor Visitor) bool { + visitor = skipEmptyNames(visitor) source := &pv.Spec.PersistentVolumeSource switch { case source.AzureFile != nil: diff --git a/pkg/api/v1/persistentvolume/util_test.go b/pkg/api/v1/persistentvolume/util_test.go index 1f891cb48d4fa..8ae481bb5be87 100644 --- a/pkg/api/v1/persistentvolume/util_test.go +++ b/pkg/api/v1/persistentvolume/util_test.go @@ -238,6 +238,19 @@ func TestPVSecrets(t *testing.T) { t.Logf("Extra namespaced names:\n%s", strings.Join(extraNames.List(), "\n")) t.Error("Extra namespaced names extracted. Verify VisitPVSecretNames() is correctly extracting secret names") } + + emptyPV := &corev1.PersistentVolume{ + Spec: corev1.PersistentVolumeSpec{ + ClaimRef: &corev1.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, + PersistentVolumeSource: corev1.PersistentVolumeSource{ + CephFS: &corev1.CephFSPersistentVolumeSource{ + SecretRef: &corev1.SecretReference{ + Name: "", + Namespace: "cephfs"}}}}} + VisitPVSecretNames(emptyPV, func(namespace, name string, kubeletVisible bool) bool { + t.Fatalf("expected no empty names collected, got %q", name) + return false + }) } // collectSecretPaths traverses the object, computing all the struct paths that lead to fields with "secret" in the name. diff --git a/pkg/api/v1/pod/util.go b/pkg/api/v1/pod/util.go index 90c3d34f506db..1cbdd428edb73 100644 --- a/pkg/api/v1/pod/util.go +++ b/pkg/api/v1/pod/util.go @@ -82,6 +82,17 @@ type ContainerVisitor func(container *v1.Container, containerType ContainerType) // Visitor is called with each object name, and returns true if visiting should continue type Visitor func(name string) (shouldContinue bool) +func skipEmptyNames(visitor Visitor) Visitor { + return func(name string) bool { + if len(name) == 0 { + // continue visiting + return true + } + // delegate to visitor + return visitor(name) + } +} + // VisitContainers invokes the visitor function with a pointer to every container // spec in the given pod spec with type set in mask. If visitor returns false, // visiting is short-circuited. VisitContainers returns true if visiting completes, @@ -116,6 +127,7 @@ func VisitContainers(podSpec *v1.PodSpec, mask ContainerType, visitor ContainerV // Transitive references (e.g. pod -> pvc -> pv -> secret) are not visited. // Returns true if visiting completed, false if visiting was short-circuited. func VisitPodSecretNames(pod *v1.Pod, visitor Visitor) bool { + visitor = skipEmptyNames(visitor) for _, reference := range pod.Spec.ImagePullSecrets { if !visitor(reference.Name) { return false @@ -205,6 +217,7 @@ func visitContainerSecretNames(container *v1.Container, visitor Visitor) bool { // Transitive references (e.g. pod -> pvc -> pv -> secret) are not visited. // Returns true if visiting completed, false if visiting was short-circuited. func VisitPodConfigmapNames(pod *v1.Pod, visitor Visitor) bool { + visitor = skipEmptyNames(visitor) VisitContainers(&pod.Spec, AllContainers, func(c *v1.Container, containerType ContainerType) bool { return visitContainerConfigmapNames(c, visitor) }) diff --git a/pkg/api/v1/pod/util_test.go b/pkg/api/v1/pod/util_test.go index 1f86e4753f720..45d22d7c968ac 100644 --- a/pkg/api/v1/pod/util_test.go +++ b/pkg/api/v1/pod/util_test.go @@ -531,6 +531,21 @@ func TestPodSecrets(t *testing.T) { t.Logf("Extra secret names:\n%s", strings.Join(extraNames.List(), "\n")) t.Error("Extra secret names extracted. Verify VisitPodSecretNames() is correctly extracting secret names") } + + // emptyPod is a stub containing empty object names + emptyPod := &v1.Pod{ + Spec: v1.PodSpec{ + Containers: []v1.Container{{ + EnvFrom: []v1.EnvFromSource{{ + SecretRef: &v1.SecretEnvSource{ + LocalObjectReference: v1.LocalObjectReference{ + Name: ""}}}}}}, + }, + } + VisitPodSecretNames(emptyPod, func(name string) bool { + t.Fatalf("expected no empty names collected, got %q", name) + return false + }) } // collectResourcePaths traverses the object, computing all the struct paths that lead to fields with resourcename in the name. @@ -660,6 +675,21 @@ func TestPodConfigmaps(t *testing.T) { t.Logf("Extra names:\n%s", strings.Join(extraNames.List(), "\n")) t.Error("Extra names extracted. Verify VisitPodConfigmapNames() is correctly extracting resource names") } + + // emptyPod is a stub containing empty object names + emptyPod := &v1.Pod{ + Spec: v1.PodSpec{ + Containers: []v1.Container{{ + EnvFrom: []v1.EnvFromSource{{ + ConfigMapRef: &v1.ConfigMapEnvSource{ + LocalObjectReference: v1.LocalObjectReference{ + Name: ""}}}}}}, + }, + } + VisitPodConfigmapNames(emptyPod, func(name string) bool { + t.Fatalf("expected no empty names collected, got %q", name) + return false + }) } func newPod(now metav1.Time, ready bool, beforeSec int) *v1.Pod { diff --git a/pkg/apis/apps/validation/validation.go b/pkg/apis/apps/validation/validation.go index 6ac73cb6b7eb8..03e0d2024ddec 100644 --- a/pkg/apis/apps/validation/validation.go +++ b/pkg/apis/apps/validation/validation.go @@ -144,21 +144,15 @@ func ValidateStatefulSet(statefulSet *apps.StatefulSet) field.ErrorList { func ValidateStatefulSetUpdate(statefulSet, oldStatefulSet *apps.StatefulSet) field.ErrorList { allErrs := apivalidation.ValidateObjectMetaUpdate(&statefulSet.ObjectMeta, &oldStatefulSet.ObjectMeta, field.NewPath("metadata")) - restoreReplicas := statefulSet.Spec.Replicas - statefulSet.Spec.Replicas = oldStatefulSet.Spec.Replicas - - restoreTemplate := statefulSet.Spec.Template - statefulSet.Spec.Template = oldStatefulSet.Spec.Template - - restoreStrategy := statefulSet.Spec.UpdateStrategy - statefulSet.Spec.UpdateStrategy = oldStatefulSet.Spec.UpdateStrategy - - if !apiequality.Semantic.DeepEqual(statefulSet.Spec, oldStatefulSet.Spec) { + // statefulset updates aren't super common and general updates are likely to be touching spec, so we'll do this + // deep copy right away. This avoids mutating our inputs + newStatefulSetClone := statefulSet.DeepCopy() + newStatefulSetClone.Spec.Replicas = oldStatefulSet.Spec.Replicas // +k8s:verify-mutation:reason=clone + newStatefulSetClone.Spec.Template = oldStatefulSet.Spec.Template // +k8s:verify-mutation:reason=clone + newStatefulSetClone.Spec.UpdateStrategy = oldStatefulSet.Spec.UpdateStrategy // +k8s:verify-mutation:reason=clone + if !apiequality.Semantic.DeepEqual(newStatefulSetClone.Spec, oldStatefulSet.Spec) { allErrs = append(allErrs, field.Forbidden(field.NewPath("spec"), "updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden")) } - statefulSet.Spec.Replicas = restoreReplicas - statefulSet.Spec.Template = restoreTemplate - statefulSet.Spec.UpdateStrategy = restoreStrategy allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(statefulSet.Spec.Replicas), field.NewPath("spec", "replicas"))...) return allErrs diff --git a/pkg/apis/core/validation/BUILD b/pkg/apis/core/validation/BUILD index 8fb48c2400b6d..c66874e03e4cd 100644 --- a/pkg/apis/core/validation/BUILD +++ b/pkg/apis/core/validation/BUILD @@ -41,7 +41,6 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/util/validation:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", - "//vendor/k8s.io/klog/v2:go_default_library", "//vendor/k8s.io/utils/net:go_default_library", ], ) diff --git a/pkg/apis/core/validation/validation.go b/pkg/apis/core/validation/validation.go index 87e946293dfab..6d6c75b61dd22 100644 --- a/pkg/apis/core/validation/validation.go +++ b/pkg/apis/core/validation/validation.go @@ -29,8 +29,6 @@ import ( "unicode" "unicode/utf8" - "k8s.io/klog/v2" - v1 "k8s.io/api/core/v1" apiequality "k8s.io/apimachinery/pkg/api/equality" "k8s.io/apimachinery/pkg/api/resource" @@ -1941,13 +1939,11 @@ func ValidatePersistentVolumeUpdate(newPv, oldPv *core.PersistentVolume) field.E } // ValidatePersistentVolumeStatusUpdate tests to see if the status update is legal for an end user to make. -// newPv is updated with fields that cannot be changed. func ValidatePersistentVolumeStatusUpdate(newPv, oldPv *core.PersistentVolume) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newPv.ObjectMeta, &oldPv.ObjectMeta, field.NewPath("metadata")) if len(newPv.ResourceVersion) == 0 { allErrs = append(allErrs, field.Required(field.NewPath("resourceVersion"), "")) } - newPv.Spec = oldPv.Spec return allErrs } @@ -2020,7 +2016,7 @@ func ValidatePersistentVolumeClaimUpdate(newPvc, oldPvc *core.PersistentVolumeCl // Claims are immutable in order to enforce quota, range limits, etc. without gaming the system. if len(oldPvc.Spec.VolumeName) == 0 { // volumeName changes are allowed once. - oldPvcClone.Spec.VolumeName = newPvcClone.Spec.VolumeName + oldPvcClone.Spec.VolumeName = newPvcClone.Spec.VolumeName // +k8s:verify-mutation:reason=clone } if validateStorageClassUpgrade(oldPvcClone.Annotations, newPvcClone.Annotations, @@ -2036,7 +2032,7 @@ func ValidatePersistentVolumeClaimUpdate(newPvc, oldPvc *core.PersistentVolumeCl if utilfeature.DefaultFeatureGate.Enabled(features.ExpandPersistentVolumes) { // lets make sure storage values are same. if newPvc.Status.Phase == core.ClaimBound && newPvcClone.Spec.Resources.Requests != nil { - newPvcClone.Spec.Resources.Requests["storage"] = oldPvc.Spec.Resources.Requests["storage"] + newPvcClone.Spec.Resources.Requests["storage"] = oldPvc.Spec.Resources.Requests["storage"] // +k8s:verify-mutation:reason=clone } oldSize := oldPvc.Spec.Resources.Requests["storage"] @@ -2093,7 +2089,6 @@ func ValidatePersistentVolumeClaimStatusUpdate(newPvc, oldPvc *core.PersistentVo for r, qty := range newPvc.Status.Capacity { allErrs = append(allErrs, validateBasicResource(qty, capPath.Key(string(r)))...) } - newPvc.Spec = oldPvc.Spec return allErrs } @@ -2387,13 +2382,13 @@ func GetVolumeMountMap(mounts []core.VolumeMount) map[string]string { } func GetVolumeDeviceMap(devices []core.VolumeDevice) map[string]string { - voldevices := make(map[string]string) + volDevices := make(map[string]string) for _, dev := range devices { - voldevices[dev.Name] = dev.DevicePath + volDevices[dev.Name] = dev.DevicePath } - return voldevices + return volDevices } func ValidateVolumeMounts(mounts []core.VolumeMount, voldevices map[string]string, volumes map[string]core.VolumeSource, container *core.Container, fldPath *field.Path) field.ErrorList { @@ -3057,10 +3052,11 @@ func validateOnlyAddedTolerations(newTolerations []core.Toleration, oldToleratio allErrs := field.ErrorList{} for _, old := range oldTolerations { found := false - old.TolerationSeconds = nil - for _, new := range newTolerations { - new.TolerationSeconds = nil - if reflect.DeepEqual(old, new) { + oldTolerationClone := old.DeepCopy() + for _, newToleration := range newTolerations { + // assign to our clone before doing a deep equal so we can allow tolerationseconds to change. + oldTolerationClone.TolerationSeconds = newToleration.TolerationSeconds // +k8s:verify-mutation:reason=clone + if reflect.DeepEqual(*oldTolerationClone, newToleration) { found = true break } @@ -3960,37 +3956,44 @@ func ValidatePodUpdate(newPod, oldPod *core.Pod, opts PodValidationOptions) fiel allErrs = append(allErrs, field.Invalid(specPath.Child("activeDeadlineSeconds"), newPod.Spec.ActiveDeadlineSeconds, "must not update from a positive integer to nil value")) } + // Allow only additions to tolerations updates. + allErrs = append(allErrs, validateOnlyAddedTolerations(newPod.Spec.Tolerations, oldPod.Spec.Tolerations, specPath.Child("tolerations"))...) + + // the last thing to check is pod spec equality. If the pod specs are equal, then we can simply return the errors we have + // so far and save the cost of a deep copy. + if apiequality.Semantic.DeepEqual(newPod.Spec, oldPod.Spec) { + return allErrs + } + // handle updateable fields by munging those fields prior to deep equal comparison. - mungedPod := *newPod + mungedPodSpec := *newPod.Spec.DeepCopy() // munge spec.containers[*].image var newContainers []core.Container - for ix, container := range mungedPod.Spec.Containers { - container.Image = oldPod.Spec.Containers[ix].Image + for ix, container := range mungedPodSpec.Containers { + container.Image = oldPod.Spec.Containers[ix].Image // +k8s:verify-mutation:reason=clone newContainers = append(newContainers, container) } - mungedPod.Spec.Containers = newContainers + mungedPodSpec.Containers = newContainers // munge spec.initContainers[*].image var newInitContainers []core.Container - for ix, container := range mungedPod.Spec.InitContainers { - container.Image = oldPod.Spec.InitContainers[ix].Image + for ix, container := range mungedPodSpec.InitContainers { + container.Image = oldPod.Spec.InitContainers[ix].Image // +k8s:verify-mutation:reason=clone newInitContainers = append(newInitContainers, container) } - mungedPod.Spec.InitContainers = newInitContainers + mungedPodSpec.InitContainers = newInitContainers // munge spec.activeDeadlineSeconds - mungedPod.Spec.ActiveDeadlineSeconds = nil + mungedPodSpec.ActiveDeadlineSeconds = nil if oldPod.Spec.ActiveDeadlineSeconds != nil { activeDeadlineSeconds := *oldPod.Spec.ActiveDeadlineSeconds - mungedPod.Spec.ActiveDeadlineSeconds = &activeDeadlineSeconds + mungedPodSpec.ActiveDeadlineSeconds = &activeDeadlineSeconds } + // tolerations are checked before the deep copy, so munge those too + mungedPodSpec.Tolerations = oldPod.Spec.Tolerations // +k8s:verify-mutation:reason=clone - // Allow only additions to tolerations updates. - mungedPod.Spec.Tolerations = oldPod.Spec.Tolerations - allErrs = append(allErrs, validateOnlyAddedTolerations(newPod.Spec.Tolerations, oldPod.Spec.Tolerations, specPath.Child("tolerations"))...) - - if !apiequality.Semantic.DeepEqual(mungedPod.Spec, oldPod.Spec) { + if !apiequality.Semantic.DeepEqual(mungedPodSpec, oldPod.Spec) { // This diff isn't perfect, but it's a helluva lot better an "I'm not going to tell you what the difference is". //TODO: Pinpoint the specific field that causes the invalid error after we have strategic merge diff - specDiff := diff.ObjectDiff(mungedPod.Spec, oldPod.Spec) + specDiff := diff.ObjectDiff(mungedPodSpec, oldPod.Spec) allErrs = append(allErrs, field.Forbidden(specPath, fmt.Sprintf("pod updates may not change fields other than `spec.containers[*].image`, `spec.initContainers[*].image`, `spec.activeDeadlineSeconds` or `spec.tolerations` (only additions to existing tolerations)\n%v", specDiff))) } @@ -4022,8 +4025,7 @@ func ValidateContainerStateTransition(newStatuses, oldStatuses []core.ContainerS return allErrs } -// ValidatePodStatusUpdate tests to see if the update is legal for an end user to make. newPod is updated with fields -// that cannot be changed. +// ValidatePodStatusUpdate tests to see if the update is legal for an end user to make. func ValidatePodStatusUpdate(newPod, oldPod *core.Pod) field.ErrorList { fldPath := field.NewPath("metadata") allErrs := ValidateObjectMetaUpdate(&newPod.ObjectMeta, &oldPod.ObjectMeta, fldPath) @@ -4054,9 +4056,6 @@ func ValidatePodStatusUpdate(newPod, oldPod *core.Pod) field.ErrorList { } } - // For status update we ignore changes to pod spec. - newPod.Spec = oldPod.Spec - return allErrs } @@ -4220,7 +4219,7 @@ func ValidateService(service *core.Service, allowAppProtocol bool) field.ErrorLi allErrs = append(allErrs, field.Invalid(idxPath, ip, msgs[i])) } } else { - allErrs = append(allErrs, validateNonSpecialIP(ip, idxPath)...) + allErrs = append(allErrs, ValidateNonSpecialIP(ip, idxPath)...) } } @@ -4756,11 +4755,8 @@ func ValidateNodeUpdate(node, oldNode *core.Node) field.ErrorList { addresses[address] = true } - if len(oldNode.Spec.PodCIDRs) == 0 { - // Allow the controller manager to assign a CIDR to a node if it doesn't have one. - //this is a no op for a string slice. - oldNode.Spec.PodCIDRs = node.Spec.PodCIDRs - } else { + // Allow the controller manager to assign a CIDR to a node if it doesn't have one. + if len(oldNode.Spec.PodCIDRs) > 0 { // compare the entire slice if len(oldNode.Spec.PodCIDRs) != len(node.Spec.PodCIDRs) { allErrs = append(allErrs, field.Forbidden(field.NewPath("spec", "podCIDRs"), "node updates may not change podCIDR except from \"\" to valid")) @@ -4774,46 +4770,35 @@ func ValidateNodeUpdate(node, oldNode *core.Node) field.ErrorList { } // Allow controller manager updating provider ID when not set - if len(oldNode.Spec.ProviderID) == 0 { - oldNode.Spec.ProviderID = node.Spec.ProviderID - } else { - if oldNode.Spec.ProviderID != node.Spec.ProviderID { - allErrs = append(allErrs, field.Forbidden(field.NewPath("spec", "providerID"), "node updates may not change providerID except from \"\" to valid")) - } + if len(oldNode.Spec.ProviderID) > 0 && oldNode.Spec.ProviderID != node.Spec.ProviderID { + allErrs = append(allErrs, field.Forbidden(field.NewPath("spec", "providerID"), "node updates may not change providerID except from \"\" to valid")) } if node.Spec.ConfigSource != nil { allErrs = append(allErrs, validateNodeConfigSourceSpec(node.Spec.ConfigSource, field.NewPath("spec", "configSource"))...) } - oldNode.Spec.ConfigSource = node.Spec.ConfigSource if node.Status.Config != nil { allErrs = append(allErrs, validateNodeConfigStatus(node.Status.Config, field.NewPath("status", "config"))...) } - oldNode.Status.Config = node.Status.Config - - // TODO: move reset function to its own location - // Ignore metadata changes now that they have been tested - oldNode.ObjectMeta = node.ObjectMeta - // Allow users to update capacity - oldNode.Status.Capacity = node.Status.Capacity - // Allow users to unschedule node - oldNode.Spec.Unschedulable = node.Spec.Unschedulable - // Clear status - oldNode.Status = node.Status // update taints if len(node.Spec.Taints) > 0 { allErrs = append(allErrs, validateNodeTaints(node.Spec.Taints, fldPath.Child("taints"))...) } - oldNode.Spec.Taints = node.Spec.Taints - // We made allowed changes to oldNode, and now we compare oldNode to node. Any remaining differences indicate changes to protected fields. - // TODO: Add a 'real' error type for this error and provide print actual diffs. - if !apiequality.Semantic.DeepEqual(oldNode, node) { - klog.V(4).Infof("Update failed validation %#v vs %#v", oldNode, node) - allErrs = append(allErrs, field.Forbidden(field.NewPath(""), "node updates may only change labels, taints, or capacity (or configSource, if the DynamicKubeletConfig feature gate is enabled)")) + if node.Spec.DoNotUseExternalID != oldNode.Spec.DoNotUseExternalID { + allErrs = append(allErrs, field.Forbidden(field.NewPath("spec", "externalID"), "may not be updated")) } + // status and metadata are allowed change (barring restrictions above), so separately test spec field. + // spec only has a few fields, so check the ones we don't allow changing + // 1. PodCIDRs - immutable after first set - checked above + // 2. ProviderID - immutable after first set - checked above + // 3. Unschedulable - allowed to change + // 4. Taints - allowed to change + // 5. ConfigSource - allowed to change (and checked above) + // 6. DoNotUseExternalID - immutable - checked above + return allErrs } @@ -5226,10 +5211,6 @@ func ValidateSecret(secret *core.Secret) field.ErrorList { func ValidateSecretUpdate(newSecret, oldSecret *core.Secret) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newSecret.ObjectMeta, &oldSecret.ObjectMeta, field.NewPath("metadata")) - if len(newSecret.Type) == 0 { - newSecret.Type = oldSecret.Type - } - allErrs = append(allErrs, ValidateImmutableField(newSecret.Type, oldSecret.Type, field.NewPath("type"))...) if oldSecret.Immutable != nil && *oldSecret.Immutable { if newSecret.Immutable == nil || !*newSecret.Immutable { @@ -5529,7 +5510,6 @@ func ValidateResourceQuantityValue(resource string, value resource.Quantity, fld } // ValidateResourceQuotaUpdate tests to see if the update is legal for an end user to make. -// newResourceQuota is updated with fields that cannot be changed. func ValidateResourceQuotaUpdate(newResourceQuota, oldResourceQuota *core.ResourceQuota) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newResourceQuota.ObjectMeta, &oldResourceQuota.ObjectMeta, field.NewPath("metadata")) allErrs = append(allErrs, ValidateResourceQuotaSpec(&newResourceQuota.Spec, field.NewPath("spec"))...) @@ -5548,12 +5528,10 @@ func ValidateResourceQuotaUpdate(newResourceQuota, oldResourceQuota *core.Resour allErrs = append(allErrs, field.Invalid(fldPath, newResourceQuota.Spec.Scopes, fieldImmutableErrorMsg)) } - newResourceQuota.Status = oldResourceQuota.Status return allErrs } // ValidateResourceQuotaStatusUpdate tests to see if the status update is legal for an end user to make. -// newResourceQuota is updated with fields that cannot be changed. func ValidateResourceQuotaStatusUpdate(newResourceQuota, oldResourceQuota *core.ResourceQuota) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newResourceQuota.ObjectMeta, &oldResourceQuota.ObjectMeta, field.NewPath("metadata")) if len(newResourceQuota.ResourceVersion) == 0 { @@ -5571,7 +5549,6 @@ func ValidateResourceQuotaStatusUpdate(newResourceQuota, oldResourceQuota *core. allErrs = append(allErrs, ValidateResourceQuotaResourceName(string(k), resPath)...) allErrs = append(allErrs, ValidateResourceQuantityValue(string(k), v, resPath)...) } - newResourceQuota.Spec = oldResourceQuota.Spec return allErrs } @@ -5604,19 +5581,14 @@ func validateKubeFinalizerName(stringValue string, fldPath *field.Path) field.Er } // ValidateNamespaceUpdate tests to make sure a namespace update can be applied. -// newNamespace is updated with fields that cannot be changed func ValidateNamespaceUpdate(newNamespace *core.Namespace, oldNamespace *core.Namespace) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newNamespace.ObjectMeta, &oldNamespace.ObjectMeta, field.NewPath("metadata")) - newNamespace.Spec.Finalizers = oldNamespace.Spec.Finalizers - newNamespace.Status = oldNamespace.Status return allErrs } -// ValidateNamespaceStatusUpdate tests to see if the update is legal for an end user to make. newNamespace is updated with fields -// that cannot be changed. +// ValidateNamespaceStatusUpdate tests to see if the update is legal for an end user to make. func ValidateNamespaceStatusUpdate(newNamespace, oldNamespace *core.Namespace) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newNamespace.ObjectMeta, &oldNamespace.ObjectMeta, field.NewPath("metadata")) - newNamespace.Spec = oldNamespace.Spec if newNamespace.DeletionTimestamp.IsZero() { if newNamespace.Status.Phase != core.NamespaceActive { allErrs = append(allErrs, field.Invalid(field.NewPath("status", "Phase"), newNamespace.Status.Phase, "may only be 'Active' if `deletionTimestamp` is empty")) @@ -5630,7 +5602,6 @@ func ValidateNamespaceStatusUpdate(newNamespace, oldNamespace *core.Namespace) f } // ValidateNamespaceFinalizeUpdate tests to see if the update is legal for an end user to make. -// newNamespace is updated with fields that cannot be changed. func ValidateNamespaceFinalizeUpdate(newNamespace, oldNamespace *core.Namespace) field.ErrorList { allErrs := ValidateObjectMetaUpdate(&newNamespace.ObjectMeta, &oldNamespace.ObjectMeta, field.NewPath("metadata")) @@ -5639,7 +5610,6 @@ func ValidateNamespaceFinalizeUpdate(newNamespace, oldNamespace *core.Namespace) idxPath := fldPath.Index(i) allErrs = append(allErrs, validateFinalizerName(string(newNamespace.Spec.Finalizers[i]), idxPath)...) } - newNamespace.Status = oldNamespace.Status return allErrs } @@ -5717,15 +5687,19 @@ func validateEndpointAddress(address *core.EndpointAddress, fldPath *field.Path) allErrs = append(allErrs, field.Invalid(fldPath.Child("nodeName"), *address.NodeName, msg)) } } - allErrs = append(allErrs, validateNonSpecialIP(address.IP, fldPath.Child("ip"))...) + allErrs = append(allErrs, ValidateNonSpecialIP(address.IP, fldPath.Child("ip"))...) return allErrs } -func validateNonSpecialIP(ipAddress string, fldPath *field.Path) field.ErrorList { - // We disallow some IPs as endpoints or external-ips. Specifically, - // unspecified and loopback addresses are nonsensical and link-local - // addresses tend to be used for node-centric purposes (e.g. metadata - // service). +// ValidateNonSpecialIP is used to validate Endpoints, EndpointSlices, and +// external IPs. Specifically, this disallows unspecified and loopback addresses +// are nonsensical and link-local addresses tend to be used for node-centric +// purposes (e.g. metadata service). +// +// IPv6 references +// - https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml +// - https://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml +func ValidateNonSpecialIP(ipAddress string, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} ip := net.ParseIP(ipAddress) if ip == nil { diff --git a/pkg/apis/core/validation/validation_test.go b/pkg/apis/core/validation/validation_test.go index 6629a882bcf6c..043a088cd7f69 100644 --- a/pkg/apis/core/validation/validation_test.go +++ b/pkg/apis/core/validation/validation_test.go @@ -16028,3 +16028,43 @@ func TestValidatePodTemplateSpecSeccomp(t *testing.T) { asserttestify.Equal(t, test.expectedErr, err, "TestCase[%d]: %s", i, test.description) } } + +func TestValidateNonSpecialIP(t *testing.T) { + fp := field.NewPath("ip") + + // Valid values. + for _, tc := range []struct { + desc string + ip string + }{ + {"ipv4", "10.1.2.3"}, + {"ipv6", "2000::1"}, + } { + t.Run(tc.desc, func(t *testing.T) { + errs := ValidateNonSpecialIP(tc.ip, fp) + if len(errs) != 0 { + t.Errorf("ValidateNonSpecialIP(%q, ...) = %v; want nil", tc.ip, errs) + } + }) + } + // Invalid cases + for _, tc := range []struct { + desc string + ip string + }{ + {"ipv4 unspecified", "0.0.0.0"}, + {"ipv6 unspecified", "::0"}, + {"ipv4 localhost", "127.0.0.0"}, + {"ipv4 localhost", "127.255.255.255"}, + {"ipv6 localhost", "::1"}, + {"ipv6 link local", "fe80::"}, + {"ipv6 local multicast", "ff02::"}, + } { + t.Run(tc.desc, func(t *testing.T) { + errs := ValidateNonSpecialIP(tc.ip, fp) + if len(errs) == 0 { + t.Errorf("ValidateNonSpecialIP(%q, ...) = nil; want non-nil (errors)", tc.ip) + } + }) + } +} diff --git a/pkg/apis/discovery/validation/validation.go b/pkg/apis/discovery/validation/validation.go index 810f2ca124d57..c0294e91cdd2d 100644 --- a/pkg/apis/discovery/validation/validation.go +++ b/pkg/apis/discovery/validation/validation.go @@ -43,7 +43,7 @@ var ( ) maxTopologyLabels = 16 maxAddresses = 100 - maxPorts = 100 + maxPorts = 20000 maxEndpoints = 1000 ) @@ -103,8 +103,10 @@ func validateEndpoints(endpoints []discovery.Endpoint, addrType discovery.Addres } case discovery.AddressTypeIPv4: allErrs = append(allErrs, validation.IsValidIPv4Address(addressPath.Index(i), address)...) + allErrs = append(allErrs, apivalidation.ValidateNonSpecialIP(address, addressPath.Index(i))...) case discovery.AddressTypeIPv6: allErrs = append(allErrs, validation.IsValidIPv6Address(addressPath.Index(i), address)...) + allErrs = append(allErrs, apivalidation.ValidateNonSpecialIP(address, addressPath.Index(i))...) case discovery.AddressTypeFQDN: allErrs = append(allErrs, validation.IsFullyQualifiedDomainName(addressPath.Index(i), address)...) } diff --git a/pkg/apis/discovery/validation/validation_test.go b/pkg/apis/discovery/validation/validation_test.go index 060545f93ab31..58179e9e85c0c 100644 --- a/pkg/apis/discovery/validation/validation_test.go +++ b/pkg/apis/discovery/validation/validation_test.go @@ -52,6 +52,21 @@ func TestValidateEndpointSlice(t *testing.T) { }}, }, }, + "good-ipv6": { + expectedErrors: 0, + endpointSlice: &discovery.EndpointSlice{ + ObjectMeta: standardMeta, + AddressType: discovery.AddressTypeIPv6, + Ports: []discovery.EndpointPort{{ + Name: utilpointer.StringPtr("http"), + Protocol: protocolPtr(api.ProtocolTCP), + }}, + Endpoints: []discovery.Endpoint{{ + Addresses: []string{"a00:100::4"}, + Hostname: utilpointer.StringPtr("valid-123"), + }}, + }, + }, "good-fqdns": { expectedErrors: 0, endpointSlice: &discovery.EndpointSlice{ @@ -390,7 +405,7 @@ func TestValidateEndpointSlice(t *testing.T) { }, }, "bad-ipv4": { - expectedErrors: 2, + expectedErrors: 3, endpointSlice: &discovery.EndpointSlice{ ObjectMeta: standardMeta, AddressType: discovery.AddressTypeIPv4, @@ -405,7 +420,7 @@ func TestValidateEndpointSlice(t *testing.T) { }, }, "bad-ipv6": { - expectedErrors: 2, + expectedErrors: 4, endpointSlice: &discovery.EndpointSlice{ ObjectMeta: standardMeta, AddressType: discovery.AddressTypeIPv6, @@ -454,6 +469,36 @@ func TestValidateEndpointSlice(t *testing.T) { expectedErrors: 3, endpointSlice: &discovery.EndpointSlice{}, }, + "special-ipv4": { + expectedErrors: 1, + endpointSlice: &discovery.EndpointSlice{ + ObjectMeta: standardMeta, + AddressType: discovery.AddressTypeIPv4, + Ports: []discovery.EndpointPort{{ + Name: utilpointer.StringPtr("http"), + Protocol: protocolPtr(api.ProtocolTCP), + }}, + Endpoints: []discovery.Endpoint{{ + Addresses: []string{"127.0.0.1"}, + Hostname: utilpointer.StringPtr("valid-123"), + }}, + }, + }, + "special-ipv6": { + expectedErrors: 1, + endpointSlice: &discovery.EndpointSlice{ + ObjectMeta: standardMeta, + AddressType: discovery.AddressTypeIPv6, + Ports: []discovery.EndpointPort{{ + Name: utilpointer.StringPtr("http"), + Protocol: protocolPtr(api.ProtocolTCP), + }}, + Endpoints: []discovery.Endpoint{{ + Addresses: []string{"fe80::9656:d028:8652:66b6"}, + Hostname: utilpointer.StringPtr("valid-123"), + }}, + }, + }, } for name, testCase := range testCases { diff --git a/pkg/controller/daemon/daemon_controller.go b/pkg/controller/daemon/daemon_controller.go index aad47534218e9..a0fc135156ece 100644 --- a/pkg/controller/daemon/daemon_controller.go +++ b/pkg/controller/daemon/daemon_controller.go @@ -121,13 +121,7 @@ type DaemonSetsController struct { nodeLister corelisters.NodeLister // nodeStoreSynced returns true if the node store has been synced at least once. // Added as a member to the struct to allow injection for testing. - nodeStoreSynced cache.InformerSynced - namespaceLister corelisters.NamespaceLister - namespaceStoreSynced cache.InformerSynced - openshiftDefaultNodeSelectorString string - openshiftDefaultNodeSelector labels.Selector - kubeDefaultNodeSelectorString string - kubeDefaultNodeSelector labels.Selector + nodeStoreSynced cache.InformerSynced // DaemonSet keys that need to be synced. queue workqueue.RateLimitingInterface @@ -294,11 +288,6 @@ func (dsc *DaemonSetsController) Run(workers int, stopCh <-chan struct{}) { if !cache.WaitForNamedCacheSync("daemon sets", stopCh, dsc.podStoreSynced, dsc.nodeStoreSynced, dsc.historyStoreSynced, dsc.dsStoreSynced) { return } - if dsc.namespaceStoreSynced != nil { - if !cache.WaitForNamedCacheSync("daemon sets", stopCh, dsc.namespaceStoreSynced) { - return - } - } for i := 0; i < workers; i++ { go wait.Until(dsc.runWorker, time.Second, stopCh) @@ -1255,10 +1244,6 @@ func (dsc *DaemonSetsController) nodeShouldRunDaemonPod(node *v1.Node, ds *apps. return false, shouldContinueRunning, nil } - if matches, matchErr := dsc.namespaceNodeSelectorMatches(node, ds); !matches || matchErr != nil { - return false, false, matchErr - } - return true, true, nil } diff --git a/pkg/controller/daemon/patch_nodeselector.go b/pkg/controller/daemon/patch_nodeselector.go deleted file mode 100644 index bad02d253b641..0000000000000 --- a/pkg/controller/daemon/patch_nodeselector.go +++ /dev/null @@ -1,95 +0,0 @@ -package daemon - -import ( - appsv1 "k8s.io/api/apps/v1" - "k8s.io/api/core/v1" - apierrors "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - appsinformers "k8s.io/client-go/informers/apps/v1" - coreinformers "k8s.io/client-go/informers/core/v1" - clientset "k8s.io/client-go/kubernetes" - "k8s.io/client-go/util/flowcontrol" - - projectv1 "github.com/openshift/api/project/v1" -) - -func NewNodeSelectorAwareDaemonSetsController(openshiftDefaultNodeSelectorString, kubeDefaultNodeSelectorString string, namepaceInformer coreinformers.NamespaceInformer, daemonSetInformer appsinformers.DaemonSetInformer, historyInformer appsinformers.ControllerRevisionInformer, podInformer coreinformers.PodInformer, nodeInformer coreinformers.NodeInformer, kubeClient clientset.Interface, failedPodsBackoff *flowcontrol.Backoff) (*DaemonSetsController, error) { - controller, err := NewDaemonSetsController(daemonSetInformer, historyInformer, podInformer, nodeInformer, kubeClient, failedPodsBackoff) - if err != nil { - return controller, err - } - controller.namespaceLister = namepaceInformer.Lister() - controller.namespaceStoreSynced = namepaceInformer.Informer().HasSynced - controller.openshiftDefaultNodeSelectorString = openshiftDefaultNodeSelectorString - if len(controller.openshiftDefaultNodeSelectorString) > 0 { - controller.openshiftDefaultNodeSelector, err = labels.Parse(controller.openshiftDefaultNodeSelectorString) - if err != nil { - return nil, err - } - } - controller.kubeDefaultNodeSelectorString = kubeDefaultNodeSelectorString - if len(controller.kubeDefaultNodeSelectorString) > 0 { - controller.kubeDefaultNodeSelector, err = labels.Parse(controller.kubeDefaultNodeSelectorString) - if err != nil { - return nil, err - } - } - - return controller, nil -} - -func (dsc *DaemonSetsController) namespaceNodeSelectorMatches(node *v1.Node, ds *appsv1.DaemonSet) (bool, error) { - if dsc.namespaceLister == nil { - return true, nil - } - - // this is racy (different listers) and we get to choose which way to fail. This should requeue. - ns, err := dsc.namespaceLister.Get(ds.Namespace) - if apierrors.IsNotFound(err) { - return false, err - } - // if we had any error, default to the safe option of creating a pod for the node. - if err != nil { - utilruntime.HandleError(err) - return true, nil - } - - return dsc.nodeSelectorMatches(node, ns), nil -} - -func (dsc *DaemonSetsController) nodeSelectorMatches(node *v1.Node, ns *v1.Namespace) bool { - kubeNodeSelector, ok := ns.Annotations["scheduler.alpha.kubernetes.io/node-selector"] - if !ok { - originNodeSelector, ok := ns.Annotations[projectv1.ProjectNodeSelector] - switch { - case ok: - selector, err := labels.Parse(originNodeSelector) - if err == nil { - if !selector.Matches(labels.Set(node.Labels)) { - return false - } - } - case !ok && len(dsc.openshiftDefaultNodeSelectorString) > 0: - if !dsc.openshiftDefaultNodeSelector.Matches(labels.Set(node.Labels)) { - return false - } - } - } - - switch { - case ok: - selector, err := labels.Parse(kubeNodeSelector) - if err == nil { - if !selector.Matches(labels.Set(node.Labels)) { - return false - } - } - case !ok && len(dsc.kubeDefaultNodeSelectorString) > 0: - if !dsc.kubeDefaultNodeSelector.Matches(labels.Set(node.Labels)) { - return false - } - } - - return true -} diff --git a/pkg/controller/daemon/patch_nodeselector_test.go b/pkg/controller/daemon/patch_nodeselector_test.go deleted file mode 100644 index 6553fe694ea0a..0000000000000 --- a/pkg/controller/daemon/patch_nodeselector_test.go +++ /dev/null @@ -1,186 +0,0 @@ -package daemon - -import ( - "testing" - - projectv1 "github.com/openshift/api/project/v1" - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" -) - -func TestNamespaceNodeSelectorMatches(t *testing.T) { - nodes := []*v1.Node{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: "first", - Labels: map[string]string{ - "alpha": "bravo", - }, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "second", - Labels: map[string]string{ - "charlie": "delta", - }, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "third", - Labels: map[string]string{ - "echo": "foxtrot", - }, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "fourth", - Labels: map[string]string{}, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "fifth", - Labels: map[string]string{ - "charlie": "delta", - "echo": "foxtrot", - }, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "sixth", - Labels: map[string]string{ - "alpha": "bravo", - "charlie": "delta", - "echo": "foxtrot", - }, - }, - }, - } - - pureDefault := &v1.Namespace{ - ObjectMeta: metav1.ObjectMeta{}, - } - all := &v1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - projectv1.ProjectNodeSelector: "", - }, - }, - } - projectSpecified := &v1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - projectv1.ProjectNodeSelector: "echo=foxtrot", - }, - }, - } - schedulerSpecified := &v1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - "scheduler.alpha.kubernetes.io/node-selector": "charlie=delta", - }, - }, - } - bothSpecified := &v1.Namespace{ - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - projectv1.ProjectNodeSelector: "echo=foxtrot", - "scheduler.alpha.kubernetes.io/node-selector": "charlie=delta", - }, - }, - } - - tests := []struct { - name string - defaultSelector string - namespace *v1.Namespace - expected map[string]bool - }{ - { - name: "pure-default", - defaultSelector: "alpha=bravo", - namespace: pureDefault, - expected: map[string]bool{ - "first": true, - "sixth": true, - }, - }, - { - name: "all", - defaultSelector: "alpha=bravo", - namespace: all, - expected: map[string]bool{ - "first": true, - "second": true, - "third": true, - "fourth": true, - "fifth": true, - "sixth": true, - }, - }, - { - name: "pure-default-without-default", - namespace: pureDefault, - expected: map[string]bool{ - "first": true, - "second": true, - "third": true, - "fourth": true, - "fifth": true, - "sixth": true, - }, - }, - { - name: "projectSpecified", - namespace: projectSpecified, - expected: map[string]bool{ - "third": true, - "fifth": true, - "sixth": true, - }, - }, - { - name: "schedulerSpecified", - namespace: schedulerSpecified, - expected: map[string]bool{ - "second": true, - "fifth": true, - "sixth": true, - }, - }, - { - name: "bothSpecified", - namespace: bothSpecified, - expected: map[string]bool{ - "second": true, - "fifth": true, - "sixth": true, - }, - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - c := &DaemonSetsController{} - c.openshiftDefaultNodeSelectorString = test.defaultSelector - if len(c.openshiftDefaultNodeSelectorString) > 0 { - var err error - c.openshiftDefaultNodeSelector, err = labels.Parse(c.openshiftDefaultNodeSelectorString) - if err != nil { - t.Fatal(err) - } - } - - for _, node := range nodes { - if e, a := test.expected[node.Name], c.nodeSelectorMatches(node, test.namespace); e != a { - t.Errorf("%q expected %v, got %v", node.Name, e, a) - } - } - }) - } -} diff --git a/pkg/controller/disruption/disruption.go b/pkg/controller/disruption/disruption.go index c0a02c2b50abb..f9a8b97991958 100644 --- a/pkg/controller/disruption/disruption.go +++ b/pkg/controller/disruption/disruption.go @@ -471,12 +471,12 @@ func (dc *DisruptionController) getPdbForPod(pod *v1.Pod) *policy.PodDisruptionB // IMPORTANT NOTE : the returned pods should NOT be modified. func (dc *DisruptionController) getPodsForPdb(pdb *policy.PodDisruptionBudget) ([]*v1.Pod, error) { sel, err := metav1.LabelSelectorAsSelector(pdb.Spec.Selector) - if sel.Empty() { - return []*v1.Pod{}, nil - } if err != nil { return []*v1.Pod{}, err } + if sel.Empty() { + return []*v1.Pod{}, nil + } pods, err := dc.podLister.Pods(pdb.Namespace).List(sel) if err != nil { return []*v1.Pod{}, err diff --git a/pkg/controller/disruption/disruption_test.go b/pkg/controller/disruption/disruption_test.go index dbda1fdaece31..28a69150f40e6 100644 --- a/pkg/controller/disruption/disruption_test.go +++ b/pkg/controller/disruption/disruption_test.go @@ -1160,6 +1160,44 @@ func TestUpdatePDBStatusRetries(t *testing.T) { } } +func TestInvalidSelectors(t *testing.T) { + testCases := map[string]struct { + labelSelector *metav1.LabelSelector + }{ + "illegal value key": { + labelSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "k8s.io/too/many/slashes": "value", + }, + }, + }, + "illegal operator": { + labelSelector: &metav1.LabelSelector{ + MatchExpressions: []metav1.LabelSelectorRequirement{ + { + Key: "foo", + Operator: metav1.LabelSelectorOperator("illegal"), + Values: []string{"bar"}, + }, + }, + }, + }, + } + + for tn, tc := range testCases { + t.Run(tn, func(t *testing.T) { + dc, ps := newFakeDisruptionController() + + pdb, pdbName := newMinAvailablePodDisruptionBudget(t, intstr.FromInt(3)) + pdb.Spec.Selector = tc.labelSelector + + add(t, dc.pdbStore, pdb) + dc.sync(pdbName) + ps.VerifyPdbStatus(t, pdbName, 0, 0, 0, 0, map[string]metav1.Time{}) + }) + } +} + // waitForCacheCount blocks until the given cache store has the desired number // of items in it. This will return an error if the condition is not met after a // 10 second timeout. diff --git a/pkg/controller/endpointslice/BUILD b/pkg/controller/endpointslice/BUILD index 79e77eb0de438..a882036beaee9 100644 --- a/pkg/controller/endpointslice/BUILD +++ b/pkg/controller/endpointslice/BUILD @@ -6,6 +6,7 @@ go_library( "endpointset.go", "endpointslice_controller.go", "endpointslice_tracker.go", + "errors.go", "reconciler.go", "utils.go", ], diff --git a/pkg/controller/endpointslice/endpointslice_controller.go b/pkg/controller/endpointslice/endpointslice_controller.go index 4021e1b45ec57..87b26e123f51e 100644 --- a/pkg/controller/endpointslice/endpointslice_controller.go +++ b/pkg/controller/endpointslice/endpointslice_controller.go @@ -346,6 +346,10 @@ func (c *Controller) syncService(key string) error { return err } + if c.endpointSliceTracker.StaleSlices(service, endpointSlices) { + return &StaleInformerCache{"EndpointSlice informer cache is out of date"} + } + // We call ComputeEndpointLastChangeTriggerTime here to make sure that the // state of the trigger time tracker gets updated even if the sync turns out // to be no-op and we don't update the EndpointSlice objects. @@ -395,7 +399,7 @@ func (c *Controller) onEndpointSliceAdd(obj interface{}) { utilruntime.HandleError(fmt.Errorf("Invalid EndpointSlice provided to onEndpointSliceAdd()")) return } - if managedByController(endpointSlice) && c.endpointSliceTracker.Stale(endpointSlice) { + if managedByController(endpointSlice) && c.endpointSliceTracker.ShouldSync(endpointSlice) { c.queueServiceForEndpointSlice(endpointSlice) } } @@ -411,7 +415,18 @@ func (c *Controller) onEndpointSliceUpdate(prevObj, obj interface{}) { utilruntime.HandleError(fmt.Errorf("Invalid EndpointSlice provided to onEndpointSliceUpdate()")) return } - if managedByChanged(prevEndpointSlice, endpointSlice) || (managedByController(endpointSlice) && c.endpointSliceTracker.Stale(endpointSlice)) { + // EndpointSlice generation does not change when labels change. Although the + // controller will never change LabelServiceName, users might. This check + // ensures that we handle changes to this label. + svcName := endpointSlice.Labels[discovery.LabelServiceName] + prevSvcName := prevEndpointSlice.Labels[discovery.LabelServiceName] + if svcName != prevSvcName { + klog.Warningf("%s label changed from %s to %s for %s", discovery.LabelServiceName, prevSvcName, svcName, endpointSlice.Name) + c.queueServiceForEndpointSlice(endpointSlice) + c.queueServiceForEndpointSlice(prevEndpointSlice) + return + } + if managedByChanged(prevEndpointSlice, endpointSlice) || (managedByController(endpointSlice) && c.endpointSliceTracker.ShouldSync(endpointSlice)) { c.queueServiceForEndpointSlice(endpointSlice) } } @@ -422,7 +437,11 @@ func (c *Controller) onEndpointSliceUpdate(prevObj, obj interface{}) { func (c *Controller) onEndpointSliceDelete(obj interface{}) { endpointSlice := getEndpointSliceFromDeleteAction(obj) if endpointSlice != nil && managedByController(endpointSlice) && c.endpointSliceTracker.Has(endpointSlice) { - c.queueServiceForEndpointSlice(endpointSlice) + // This returns false if we didn't expect the EndpointSlice to be + // deleted. If that is the case, we queue the Service for another sync. + if !c.endpointSliceTracker.HandleDeletion(endpointSlice) { + c.queueServiceForEndpointSlice(endpointSlice) + } } } diff --git a/pkg/controller/endpointslice/endpointslice_controller_test.go b/pkg/controller/endpointslice/endpointslice_controller_test.go index 3b481a77abe56..65534f0d7f3e9 100644 --- a/pkg/controller/endpointslice/endpointslice_controller_test.go +++ b/pkg/controller/endpointslice/endpointslice_controller_test.go @@ -32,6 +32,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" + "k8s.io/apimachinery/pkg/util/rand" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/informers" "k8s.io/client-go/kubernetes/fake" @@ -56,7 +57,8 @@ type endpointSliceController struct { } func newController(nodeNames []string, batchPeriod time.Duration) (*fake.Clientset, *endpointSliceController) { - client := newClientset() + client := fake.NewSimpleClientset() + informerFactory := informers.NewSharedInformerFactory(client, controller.NoResyncPeriodFunc()) nodeInformer := informerFactory.Core().V1().Nodes() indexer := nodeInformer.Informer().GetIndexer() @@ -64,11 +66,36 @@ func newController(nodeNames []string, batchPeriod time.Duration) (*fake.Clients indexer.Add(&v1.Node{ObjectMeta: metav1.ObjectMeta{Name: nodeName}}) } + esInformer := informerFactory.Discovery().V1beta1().EndpointSlices() + esIndexer := esInformer.Informer().GetIndexer() + + // These reactors are required to mock functionality that would be covered + // automatically if we weren't using the fake client. + client.PrependReactor("create", "endpointslices", k8stesting.ReactionFunc(func(action k8stesting.Action) (bool, runtime.Object, error) { + endpointSlice := action.(k8stesting.CreateAction).GetObject().(*discovery.EndpointSlice) + + if endpointSlice.ObjectMeta.GenerateName != "" { + endpointSlice.ObjectMeta.Name = fmt.Sprintf("%s-%s", endpointSlice.ObjectMeta.GenerateName, rand.String(8)) + endpointSlice.ObjectMeta.GenerateName = "" + } + endpointSlice.Generation = 1 + esIndexer.Add(endpointSlice) + + return false, endpointSlice, nil + })) + client.PrependReactor("update", "endpointslices", k8stesting.ReactionFunc(func(action k8stesting.Action) (bool, runtime.Object, error) { + endpointSlice := action.(k8stesting.CreateAction).GetObject().(*discovery.EndpointSlice) + endpointSlice.Generation++ + esIndexer.Update(endpointSlice) + + return false, endpointSlice, nil + })) + esController := NewController( informerFactory.Core().V1().Pods(), informerFactory.Core().V1().Services(), nodeInformer, - informerFactory.Discovery().V1beta1().EndpointSlices(), + esInformer, int32(100), client, batchPeriod) @@ -783,6 +810,81 @@ func TestPodDeleteBatching(t *testing.T) { } } +func TestSyncServiceStaleInformer(t *testing.T) { + testcases := []struct { + name string + informerGenerationNumber int64 + trackerGenerationNumber int64 + expectError bool + }{ + { + name: "informer cache outdated", + informerGenerationNumber: 10, + trackerGenerationNumber: 12, + expectError: true, + }, + { + name: "cache and tracker synced", + informerGenerationNumber: 10, + trackerGenerationNumber: 10, + expectError: false, + }, + { + name: "tracker outdated", + informerGenerationNumber: 10, + trackerGenerationNumber: 1, + expectError: false, + }, + } + + for _, testcase := range testcases { + t.Run(testcase.name, func(t *testing.T) { + _, esController := newController([]string{"node-1"}, time.Duration(0)) + ns := metav1.NamespaceDefault + serviceName := "testing-1" + + // Store Service in the cache + esController.serviceStore.Add(&v1.Service{ + ObjectMeta: metav1.ObjectMeta{Name: serviceName, Namespace: ns}, + Spec: v1.ServiceSpec{ + Selector: map[string]string{"foo": "bar"}, + Ports: []v1.ServicePort{{TargetPort: intstr.FromInt(80)}}, + }, + }) + + // Create EndpointSlice in the informer cache with informerGenerationNumber + epSlice1 := &discovery.EndpointSlice{ + ObjectMeta: metav1.ObjectMeta{ + Name: "matching-1", + Namespace: ns, + Generation: testcase.informerGenerationNumber, + Labels: map[string]string{ + discovery.LabelServiceName: serviceName, + discovery.LabelManagedBy: controllerName, + }, + }, + AddressType: discovery.AddressTypeIPv4, + } + err := esController.endpointSliceStore.Add(epSlice1) + if err != nil { + t.Fatalf("Expected no error adding EndpointSlice: %v", err) + } + + // Create EndpointSlice in the tracker with trackerGenerationNumber + epSlice2 := epSlice1.DeepCopy() + epSlice2.Generation = testcase.trackerGenerationNumber + esController.endpointSliceTracker.Update(epSlice2) + + err = esController.syncService(fmt.Sprintf("%s/%s", ns, serviceName)) + // Check if we got a StaleInformerCache error + if isStaleInformerCacheErr(err) != testcase.expectError { + t.Fatalf("Expected error because informer cache is outdated") + } + + }) + } +} + // Test helpers func addPods(t *testing.T, esController *endpointSliceController, namespace string, podsCount int) { t.Helper() diff --git a/pkg/controller/endpointslice/endpointslice_tracker.go b/pkg/controller/endpointslice/endpointslice_tracker.go index d404edd353a63..b5bfcc9d729ec 100644 --- a/pkg/controller/endpointslice/endpointslice_tracker.go +++ b/pkg/controller/endpointslice/endpointslice_tracker.go @@ -19,102 +19,168 @@ package endpointslice import ( "sync" + "k8s.io/api/core/v1" discovery "k8s.io/api/discovery/v1beta1" "k8s.io/apimachinery/pkg/types" ) -// endpointSliceResourceVersions tracks expected EndpointSlice resource versions -// by EndpointSlice name. -type endpointSliceResourceVersions map[string]string +const ( + deletionExpected = -1 +) + +// generationsBySlice tracks expected EndpointSlice generations by EndpointSlice +// uid. A value of deletionExpected (-1) may be used here to indicate that we +// expect this EndpointSlice to be deleted. +type generationsBySlice map[types.UID]int64 -// endpointSliceTracker tracks EndpointSlices and their associated resource -// versions to help determine if a change to an EndpointSlice has been processed -// by the EndpointSlice controller. +// endpointSliceTracker tracks EndpointSlices and their associated generation to +// help determine if a change to an EndpointSlice has been processed by the +// EndpointSlice controller. type endpointSliceTracker struct { - // lock protects resourceVersionsByService. + // lock protects generationsByService. lock sync.Mutex - // resourceVersionsByService tracks the list of EndpointSlices and - // associated resource versions expected for a given Service. - resourceVersionsByService map[types.NamespacedName]endpointSliceResourceVersions + // generationsByService tracks the generations of EndpointSlices for each + // Service. + generationsByService map[types.NamespacedName]generationsBySlice } // newEndpointSliceTracker creates and initializes a new endpointSliceTracker. func newEndpointSliceTracker() *endpointSliceTracker { return &endpointSliceTracker{ - resourceVersionsByService: map[types.NamespacedName]endpointSliceResourceVersions{}, + generationsByService: map[types.NamespacedName]generationsBySlice{}, } } -// Has returns true if the endpointSliceTracker has a resource version for the +// Has returns true if the endpointSliceTracker has a generation for the // provided EndpointSlice. func (est *endpointSliceTracker) Has(endpointSlice *discovery.EndpointSlice) bool { est.lock.Lock() defer est.lock.Unlock() - rrv, ok := est.relatedResourceVersions(endpointSlice) + gfs, ok := est.generationsForSliceUnsafe(endpointSlice) if !ok { return false } - _, ok = rrv[endpointSlice.Name] + _, ok = gfs[endpointSlice.UID] return ok } -// Stale returns true if this endpointSliceTracker does not have a resource -// version for the provided EndpointSlice or it does not match the resource -// version of the provided EndpointSlice. -func (est *endpointSliceTracker) Stale(endpointSlice *discovery.EndpointSlice) bool { +// ShouldSync returns true if this endpointSliceTracker does not have a +// generation for the provided EndpointSlice or it is greater than the +// generation of the tracked EndpointSlice. +func (est *endpointSliceTracker) ShouldSync(endpointSlice *discovery.EndpointSlice) bool { est.lock.Lock() defer est.lock.Unlock() - rrv, ok := est.relatedResourceVersions(endpointSlice) + gfs, ok := est.generationsForSliceUnsafe(endpointSlice) if !ok { return true } - return rrv[endpointSlice.Name] != endpointSlice.ResourceVersion + g, ok := gfs[endpointSlice.UID] + return !ok || endpointSlice.Generation > g } -// Update adds or updates the resource version in this endpointSliceTracker for -// the provided EndpointSlice. +// StaleSlices returns true if any of the following are true: +// 1. One or more of the provided EndpointSlices have older generations than the +// corresponding tracked ones. +// 2. The tracker is expecting one or more of the provided EndpointSlices to be +// deleted. +// 3. The tracker is tracking EndpointSlices that have not been provided. +func (est *endpointSliceTracker) StaleSlices(service *v1.Service, endpointSlices []*discovery.EndpointSlice) bool { + est.lock.Lock() + defer est.lock.Unlock() + + nn := types.NamespacedName{Name: service.Name, Namespace: service.Namespace} + gfs, ok := est.generationsByService[nn] + if !ok { + return false + } + providedSlices := map[types.UID]int64{} + for _, endpointSlice := range endpointSlices { + providedSlices[endpointSlice.UID] = endpointSlice.Generation + g, ok := gfs[endpointSlice.UID] + if ok && (g == deletionExpected || g > endpointSlice.Generation) { + return true + } + } + for uid, generation := range gfs { + if generation == deletionExpected { + continue + } + _, ok := providedSlices[uid] + if !ok { + return true + } + } + return false +} + +// Update adds or updates the generation in this endpointSliceTracker for the +// provided EndpointSlice. func (est *endpointSliceTracker) Update(endpointSlice *discovery.EndpointSlice) { est.lock.Lock() defer est.lock.Unlock() - rrv, ok := est.relatedResourceVersions(endpointSlice) + gfs, ok := est.generationsForSliceUnsafe(endpointSlice) + if !ok { - rrv = endpointSliceResourceVersions{} - est.resourceVersionsByService[getServiceNN(endpointSlice)] = rrv + gfs = generationsBySlice{} + est.generationsByService[getServiceNN(endpointSlice)] = gfs } - rrv[endpointSlice.Name] = endpointSlice.ResourceVersion + gfs[endpointSlice.UID] = endpointSlice.Generation } -// DeleteService removes the set of resource versions tracked for the Service. +// DeleteService removes the set of generations tracked for the Service. func (est *endpointSliceTracker) DeleteService(namespace, name string) { est.lock.Lock() defer est.lock.Unlock() serviceNN := types.NamespacedName{Name: name, Namespace: namespace} - delete(est.resourceVersionsByService, serviceNN) + delete(est.generationsByService, serviceNN) } -// Delete removes the resource version in this endpointSliceTracker for the -// provided EndpointSlice. -func (est *endpointSliceTracker) Delete(endpointSlice *discovery.EndpointSlice) { +// ExpectDeletion sets the generation to deletionExpected in this +// endpointSliceTracker for the provided EndpointSlice. +func (est *endpointSliceTracker) ExpectDeletion(endpointSlice *discovery.EndpointSlice) { + est.lock.Lock() + defer est.lock.Unlock() + + gfs, ok := est.generationsForSliceUnsafe(endpointSlice) + + if !ok { + gfs = generationsBySlice{} + est.generationsByService[getServiceNN(endpointSlice)] = gfs + } + gfs[endpointSlice.UID] = deletionExpected +} + +// HandleDeletion removes the generation in this endpointSliceTracker for the +// provided EndpointSlice. This returns true if the tracker expected this +// EndpointSlice to be deleted and false if not. +func (est *endpointSliceTracker) HandleDeletion(endpointSlice *discovery.EndpointSlice) bool { est.lock.Lock() defer est.lock.Unlock() - rrv, ok := est.relatedResourceVersions(endpointSlice) + gfs, ok := est.generationsForSliceUnsafe(endpointSlice) + if ok { - delete(rrv, endpointSlice.Name) + g, ok := gfs[endpointSlice.UID] + delete(gfs, endpointSlice.UID) + if ok && g != deletionExpected { + return false + } } + + return true } -// relatedResourceVersions returns the set of resource versions tracked for the -// Service corresponding to the provided EndpointSlice, and a bool to indicate -// if it exists. -func (est *endpointSliceTracker) relatedResourceVersions(endpointSlice *discovery.EndpointSlice) (endpointSliceResourceVersions, bool) { +// generationsForSliceUnsafe returns the generations for the Service +// corresponding to the provided EndpointSlice, and a bool to indicate if it +// exists. A lock must be applied before calling this function. +func (est *endpointSliceTracker) generationsForSliceUnsafe(endpointSlice *discovery.EndpointSlice) (generationsBySlice, bool) { serviceNN := getServiceNN(endpointSlice) - vers, ok := est.resourceVersionsByService[serviceNN] - return vers, ok + generations, ok := est.generationsByService[serviceNN] + return generations, ok } // getServiceNN returns a namespaced name for the Service corresponding to the diff --git a/pkg/controller/endpointslice/endpointslice_tracker_test.go b/pkg/controller/endpointslice/endpointslice_tracker_test.go index 500fa84755662..5b694a76fdbf0 100644 --- a/pkg/controller/endpointslice/endpointslice_tracker_test.go +++ b/pkg/controller/endpointslice/endpointslice_tracker_test.go @@ -19,8 +19,7 @@ package endpointslice import ( "testing" - "github.com/stretchr/testify/assert" - + "k8s.io/api/core/v1" discovery "k8s.io/api/discovery/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" @@ -29,72 +28,59 @@ import ( func TestEndpointSliceTrackerUpdate(t *testing.T) { epSlice1 := &discovery.EndpointSlice{ ObjectMeta: metav1.ObjectMeta{ - Name: "example-1", - Namespace: "ns1", - ResourceVersion: "rv1", - Labels: map[string]string{discovery.LabelServiceName: "svc1"}, + Name: "example-1", + Namespace: "ns1", + UID: "original", + Generation: 1, + Labels: map[string]string{discovery.LabelServiceName: "svc1"}, }, } epSlice1DifferentNS := epSlice1.DeepCopy() epSlice1DifferentNS.Namespace = "ns2" + epSlice1DifferentNS.UID = "diff-ns" epSlice1DifferentService := epSlice1.DeepCopy() epSlice1DifferentService.Labels[discovery.LabelServiceName] = "svc2" + epSlice1DifferentService.UID = "diff-svc" - epSlice1DifferentRV := epSlice1.DeepCopy() - epSlice1DifferentRV.ResourceVersion = "rv2" + epSlice1NewerGen := epSlice1.DeepCopy() + epSlice1NewerGen.Generation = 2 testCases := map[string]struct { - updateParam *discovery.EndpointSlice - checksParam *discovery.EndpointSlice - expectHas bool - expectStale bool - expectResourceVersionsByService map[types.NamespacedName]endpointSliceResourceVersions + updateParam *discovery.EndpointSlice + checksParam *discovery.EndpointSlice + expectHas bool + expectShouldSync bool + expectGeneration int64 }{ "same slice": { - updateParam: epSlice1, - checksParam: epSlice1, - expectHas: true, - expectStale: false, - expectResourceVersionsByService: map[types.NamespacedName]endpointSliceResourceVersions{ - {Namespace: epSlice1.Namespace, Name: "svc1"}: { - epSlice1.Name: epSlice1.ResourceVersion, - }, - }, + updateParam: epSlice1, + checksParam: epSlice1, + expectHas: true, + expectShouldSync: false, + expectGeneration: epSlice1.Generation, }, "different namespace": { - updateParam: epSlice1, - checksParam: epSlice1DifferentNS, - expectHas: false, - expectStale: true, - expectResourceVersionsByService: map[types.NamespacedName]endpointSliceResourceVersions{ - {Namespace: epSlice1.Namespace, Name: "svc1"}: { - epSlice1.Name: epSlice1.ResourceVersion, - }, - }, + updateParam: epSlice1, + checksParam: epSlice1DifferentNS, + expectHas: false, + expectShouldSync: true, + expectGeneration: epSlice1.Generation, }, "different service": { - updateParam: epSlice1, - checksParam: epSlice1DifferentService, - expectHas: false, - expectStale: true, - expectResourceVersionsByService: map[types.NamespacedName]endpointSliceResourceVersions{ - {Namespace: epSlice1.Namespace, Name: "svc1"}: { - epSlice1.Name: epSlice1.ResourceVersion, - }, - }, + updateParam: epSlice1, + checksParam: epSlice1DifferentService, + expectHas: false, + expectShouldSync: true, + expectGeneration: epSlice1.Generation, }, - "different resource version": { - updateParam: epSlice1, - checksParam: epSlice1DifferentRV, - expectHas: true, - expectStale: true, - expectResourceVersionsByService: map[types.NamespacedName]endpointSliceResourceVersions{ - {Namespace: epSlice1.Namespace, Name: "svc1"}: { - epSlice1.Name: epSlice1.ResourceVersion, - }, - }, + "newer generation": { + updateParam: epSlice1, + checksParam: epSlice1NewerGen, + expectHas: true, + expectShouldSync: true, + expectGeneration: epSlice1.Generation, }, } @@ -105,80 +91,219 @@ func TestEndpointSliceTrackerUpdate(t *testing.T) { if esTracker.Has(tc.checksParam) != tc.expectHas { t.Errorf("tc.tracker.Has(%+v) == %t, expected %t", tc.checksParam, esTracker.Has(tc.checksParam), tc.expectHas) } - if esTracker.Stale(tc.checksParam) != tc.expectStale { - t.Errorf("tc.tracker.Stale(%+v) == %t, expected %t", tc.checksParam, esTracker.Stale(tc.checksParam), tc.expectStale) + if esTracker.ShouldSync(tc.checksParam) != tc.expectShouldSync { + t.Errorf("tc.tracker.ShouldSync(%+v) == %t, expected %t", tc.checksParam, esTracker.ShouldSync(tc.checksParam), tc.expectShouldSync) + } + serviceNN := types.NamespacedName{Namespace: epSlice1.Namespace, Name: "svc1"} + gfs, ok := esTracker.generationsByService[serviceNN] + if !ok { + t.Fatalf("expected tracker to have generations for %s Service", serviceNN.Name) + } + generation, ok := gfs[epSlice1.UID] + if !ok { + t.Fatalf("expected tracker to have generation for %s EndpointSlice", epSlice1.Name) + } + if tc.expectGeneration != generation { + t.Fatalf("expected generation to be %d, got %d", tc.expectGeneration, generation) } - assert.Equal(t, tc.expectResourceVersionsByService, esTracker.resourceVersionsByService) }) } } -func TestEndpointSliceTrackerDelete(t *testing.T) { +func TestEndpointSliceTrackerStaleSlices(t *testing.T) { + epSlice1 := &discovery.EndpointSlice{ + ObjectMeta: metav1.ObjectMeta{ + Name: "example-1", + Namespace: "ns1", + UID: "original", + Generation: 1, + Labels: map[string]string{discovery.LabelServiceName: "svc1"}, + }, + } + + epSlice1NewerGen := epSlice1.DeepCopy() + epSlice1NewerGen.Generation = 2 + + testCases := []struct { + name string + tracker *endpointSliceTracker + serviceParam *v1.Service + slicesParam []*discovery.EndpointSlice + expectNewer bool + }{{ + name: "empty tracker", + tracker: &endpointSliceTracker{ + generationsByService: map[types.NamespacedName]generationsBySlice{}, + }, + serviceParam: &v1.Service{ObjectMeta: metav1.ObjectMeta{Name: "svc1", Namespace: "ns1"}}, + slicesParam: []*discovery.EndpointSlice{}, + expectNewer: false, + }, { + name: "empty slices", + tracker: &endpointSliceTracker{ + generationsByService: map[types.NamespacedName]generationsBySlice{ + {Name: "svc1", Namespace: "ns1"}: {}, + }, + }, + serviceParam: &v1.Service{ObjectMeta: metav1.ObjectMeta{Name: "svc1", Namespace: "ns1"}}, + slicesParam: []*discovery.EndpointSlice{}, + expectNewer: false, + }, { + name: "matching slices", + tracker: &endpointSliceTracker{ + generationsByService: map[types.NamespacedName]generationsBySlice{ + {Name: "svc1", Namespace: "ns1"}: { + epSlice1.UID: epSlice1.Generation, + }, + }, + }, + serviceParam: &v1.Service{ObjectMeta: metav1.ObjectMeta{Name: "svc1", Namespace: "ns1"}}, + slicesParam: []*discovery.EndpointSlice{epSlice1}, + expectNewer: false, + }, { + name: "newer slice in tracker", + tracker: &endpointSliceTracker{ + generationsByService: map[types.NamespacedName]generationsBySlice{ + {Name: "svc1", Namespace: "ns1"}: { + epSlice1.UID: epSlice1NewerGen.Generation, + }, + }, + }, + serviceParam: &v1.Service{ObjectMeta: metav1.ObjectMeta{Name: "svc1", Namespace: "ns1"}}, + slicesParam: []*discovery.EndpointSlice{epSlice1}, + expectNewer: true, + }, { + name: "newer slice in params", + tracker: &endpointSliceTracker{ + generationsByService: map[types.NamespacedName]generationsBySlice{ + {Name: "svc1", Namespace: "ns1"}: { + epSlice1.UID: epSlice1.Generation, + }, + }, + }, + serviceParam: &v1.Service{ObjectMeta: metav1.ObjectMeta{Name: "svc1", Namespace: "ns1"}}, + slicesParam: []*discovery.EndpointSlice{epSlice1NewerGen}, + expectNewer: false, + }, { + name: "slice in params is expected to be deleted", + tracker: &endpointSliceTracker{ + generationsByService: map[types.NamespacedName]generationsBySlice{ + {Name: "svc1", Namespace: "ns1"}: { + epSlice1.UID: deletionExpected, + }, + }, + }, + serviceParam: &v1.Service{ObjectMeta: metav1.ObjectMeta{Name: "svc1", Namespace: "ns1"}}, + slicesParam: []*discovery.EndpointSlice{epSlice1}, + expectNewer: true, + }, { + name: "slice in tracker but not in params", + tracker: &endpointSliceTracker{ + generationsByService: map[types.NamespacedName]generationsBySlice{ + {Name: "svc1", Namespace: "ns1"}: { + epSlice1.UID: epSlice1.Generation, + }, + }, + }, + serviceParam: &v1.Service{ObjectMeta: metav1.ObjectMeta{Name: "svc1", Namespace: "ns1"}}, + slicesParam: []*discovery.EndpointSlice{}, + expectNewer: true, + }} + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + actualNewer := tc.tracker.StaleSlices(tc.serviceParam, tc.slicesParam) + if actualNewer != tc.expectNewer { + t.Errorf("Expected %t, got %t", tc.expectNewer, actualNewer) + } + }) + } +} +func TestEndpointSliceTrackerDeletion(t *testing.T) { epSlice1 := &discovery.EndpointSlice{ ObjectMeta: metav1.ObjectMeta{ - Name: "example-1", - Namespace: "ns1", - ResourceVersion: "rv1", - Labels: map[string]string{discovery.LabelServiceName: "svc1"}, + Name: "example-1", + Namespace: "ns1", + UID: "original", + Generation: 1, + Labels: map[string]string{discovery.LabelServiceName: "svc1"}, }, } epSlice1DifferentNS := epSlice1.DeepCopy() epSlice1DifferentNS.Namespace = "ns2" + epSlice1DifferentNS.UID = "diff-ns" epSlice1DifferentService := epSlice1.DeepCopy() epSlice1DifferentService.Labels[discovery.LabelServiceName] = "svc2" + epSlice1DifferentService.UID = "diff-svc" - epSlice1DifferentRV := epSlice1.DeepCopy() - epSlice1DifferentRV.ResourceVersion = "rv2" + epSlice1NewerGen := epSlice1.DeepCopy() + epSlice1NewerGen.Generation = 2 testCases := map[string]struct { - deleteParam *discovery.EndpointSlice - checksParam *discovery.EndpointSlice - expectHas bool - expectStale bool + expectDeletionParam *discovery.EndpointSlice + checksParam *discovery.EndpointSlice + deleteParam *discovery.EndpointSlice + expectHas bool + expectShouldSync bool + expectedHandleDeletionResp bool }{ "same slice": { - deleteParam: epSlice1, - checksParam: epSlice1, - expectHas: false, - expectStale: true, + expectDeletionParam: epSlice1, + checksParam: epSlice1, + deleteParam: epSlice1, + expectHas: true, + expectShouldSync: true, + expectedHandleDeletionResp: true, }, "different namespace": { - deleteParam: epSlice1DifferentNS, - checksParam: epSlice1DifferentNS, - expectHas: false, - expectStale: true, + expectDeletionParam: epSlice1DifferentNS, + checksParam: epSlice1DifferentNS, + deleteParam: epSlice1DifferentNS, + expectHas: true, + expectShouldSync: true, + expectedHandleDeletionResp: false, }, "different namespace, check original ep slice": { - deleteParam: epSlice1DifferentNS, - checksParam: epSlice1, - expectHas: true, - expectStale: false, + expectDeletionParam: epSlice1DifferentNS, + checksParam: epSlice1, + deleteParam: epSlice1DifferentNS, + expectHas: true, + expectShouldSync: false, + expectedHandleDeletionResp: false, }, "different service": { - deleteParam: epSlice1DifferentService, - checksParam: epSlice1DifferentService, - expectHas: false, - expectStale: true, + expectDeletionParam: epSlice1DifferentService, + checksParam: epSlice1DifferentService, + deleteParam: epSlice1DifferentService, + expectHas: true, + expectShouldSync: true, + expectedHandleDeletionResp: false, }, - "different service, check original ep slice": { - deleteParam: epSlice1DifferentService, - checksParam: epSlice1, - expectHas: true, - expectStale: false, + "expectDelete different service, check original ep slice, delete original": { + expectDeletionParam: epSlice1DifferentService, + checksParam: epSlice1, + deleteParam: epSlice1, + expectHas: true, + expectShouldSync: false, + expectedHandleDeletionResp: false, }, - "different resource version": { - deleteParam: epSlice1DifferentRV, - checksParam: epSlice1DifferentRV, - expectHas: false, - expectStale: true, + "different generation": { + expectDeletionParam: epSlice1NewerGen, + checksParam: epSlice1NewerGen, + deleteParam: epSlice1NewerGen, + expectHas: true, + expectShouldSync: true, + expectedHandleDeletionResp: true, }, - "different resource version, check original ep slice": { - deleteParam: epSlice1DifferentRV, - checksParam: epSlice1, - expectHas: false, - expectStale: true, + "expectDelete different generation, check original ep slice, delete original": { + expectDeletionParam: epSlice1NewerGen, + checksParam: epSlice1, + deleteParam: epSlice1, + expectHas: true, + expectShouldSync: true, + expectedHandleDeletionResp: true, }, } @@ -187,13 +312,20 @@ func TestEndpointSliceTrackerDelete(t *testing.T) { esTracker := newEndpointSliceTracker() esTracker.Update(epSlice1) - esTracker.Delete(tc.deleteParam) + esTracker.ExpectDeletion(tc.expectDeletionParam) if esTracker.Has(tc.checksParam) != tc.expectHas { t.Errorf("esTracker.Has(%+v) == %t, expected %t", tc.checksParam, esTracker.Has(tc.checksParam), tc.expectHas) } - if esTracker.Stale(tc.checksParam) != tc.expectStale { - t.Errorf("esTracker.Stale(%+v) == %t, expected %t", tc.checksParam, esTracker.Stale(tc.checksParam), tc.expectStale) + if esTracker.ShouldSync(tc.checksParam) != tc.expectShouldSync { + t.Errorf("esTracker.ShouldSync(%+v) == %t, expected %t", tc.checksParam, esTracker.ShouldSync(tc.checksParam), tc.expectShouldSync) } + if esTracker.HandleDeletion(epSlice1) != tc.expectedHandleDeletionResp { + t.Errorf("esTracker.ShouldSync(%+v) == %t, expected %t", epSlice1, esTracker.HandleDeletion(epSlice1), tc.expectedHandleDeletionResp) + } + if esTracker.Has(epSlice1) != false { + t.Errorf("esTracker.Has(%+v) == %t, expected false", epSlice1, esTracker.Has(epSlice1)) + } + }) } } @@ -203,48 +335,39 @@ func TestEndpointSliceTrackerDeleteService(t *testing.T) { svcName2, svcNS2 := "svc2", "ns2" epSlice1 := &discovery.EndpointSlice{ ObjectMeta: metav1.ObjectMeta{ - Name: "example-1", - Namespace: svcNS1, - ResourceVersion: "rv1", - Labels: map[string]string{discovery.LabelServiceName: svcName1}, + Name: "example-1", + Namespace: svcNS1, + Generation: 1, + Labels: map[string]string{discovery.LabelServiceName: svcName1}, }, } testCases := map[string]struct { - updateParam *discovery.EndpointSlice - deleteServiceParam *types.NamespacedName - expectHas bool - expectStale bool - expectResourceVersionsByService map[types.NamespacedName]endpointSliceResourceVersions + updateParam *discovery.EndpointSlice + deleteServiceParam *types.NamespacedName + expectHas bool + expectShouldSync bool + expectGeneration int64 }{ "same service": { - updateParam: epSlice1, - deleteServiceParam: &types.NamespacedName{Namespace: svcNS1, Name: svcName1}, - expectHas: false, - expectStale: true, - expectResourceVersionsByService: map[types.NamespacedName]endpointSliceResourceVersions{}, + updateParam: epSlice1, + deleteServiceParam: &types.NamespacedName{Namespace: svcNS1, Name: svcName1}, + expectHas: false, + expectShouldSync: true, }, "different namespace": { updateParam: epSlice1, deleteServiceParam: &types.NamespacedName{Namespace: svcNS2, Name: svcName1}, expectHas: true, - expectStale: false, - expectResourceVersionsByService: map[types.NamespacedName]endpointSliceResourceVersions{ - {Namespace: epSlice1.Namespace, Name: "svc1"}: { - epSlice1.Name: epSlice1.ResourceVersion, - }, - }, + expectShouldSync: false, + expectGeneration: epSlice1.Generation, }, "different service": { updateParam: epSlice1, deleteServiceParam: &types.NamespacedName{Namespace: svcNS1, Name: svcName2}, expectHas: true, - expectStale: false, - expectResourceVersionsByService: map[types.NamespacedName]endpointSliceResourceVersions{ - {Namespace: epSlice1.Namespace, Name: "svc1"}: { - epSlice1.Name: epSlice1.ResourceVersion, - }, - }, + expectShouldSync: false, + expectGeneration: epSlice1.Generation, }, } @@ -256,10 +379,23 @@ func TestEndpointSliceTrackerDeleteService(t *testing.T) { if esTracker.Has(tc.updateParam) != tc.expectHas { t.Errorf("tc.tracker.Has(%+v) == %t, expected %t", tc.updateParam, esTracker.Has(tc.updateParam), tc.expectHas) } - if esTracker.Stale(tc.updateParam) != tc.expectStale { - t.Errorf("tc.tracker.Stale(%+v) == %t, expected %t", tc.updateParam, esTracker.Stale(tc.updateParam), tc.expectStale) + if esTracker.ShouldSync(tc.updateParam) != tc.expectShouldSync { + t.Errorf("tc.tracker.ShouldSync(%+v) == %t, expected %t", tc.updateParam, esTracker.ShouldSync(tc.updateParam), tc.expectShouldSync) + } + if tc.expectGeneration != 0 { + serviceNN := types.NamespacedName{Namespace: epSlice1.Namespace, Name: "svc1"} + gfs, ok := esTracker.generationsByService[serviceNN] + if !ok { + t.Fatalf("expected tracker to have status for %s Service", serviceNN.Name) + } + generation, ok := gfs[epSlice1.UID] + if !ok { + t.Fatalf("expected tracker to have generation for %s EndpointSlice", epSlice1.Name) + } + if tc.expectGeneration != generation { + t.Fatalf("expected generation to be %d, got %d", tc.expectGeneration, generation) + } } - assert.Equal(t, tc.expectResourceVersionsByService, esTracker.resourceVersionsByService) }) } } diff --git a/pkg/controller/endpointslice/errors.go b/pkg/controller/endpointslice/errors.go new file mode 100644 index 0000000000000..f7bcb20c6738b --- /dev/null +++ b/pkg/controller/endpointslice/errors.go @@ -0,0 +1,30 @@ +/* +Copyright 2021 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 endpointslice + +// StaleInformerCache errors indicate that the informer cache includes out of +// date resources. +type StaleInformerCache struct { + msg string +} + +func (e *StaleInformerCache) Error() string { return e.msg } + +func isStaleInformerCacheErr(err error) bool { + _, ok := err.(*StaleInformerCache) + return ok +} diff --git a/pkg/controller/endpointslice/reconciler.go b/pkg/controller/endpointslice/reconciler.go index 166aa1f00d901..7655e4ff1a72c 100644 --- a/pkg/controller/endpointslice/reconciler.go +++ b/pkg/controller/endpointslice/reconciler.go @@ -239,7 +239,7 @@ func (r *reconciler) finalize( if err != nil { return fmt.Errorf("failed to delete %s EndpointSlice for Service %s/%s: %v", endpointSlice.Name, service.Namespace, service.Name, err) } - r.endpointSliceTracker.Delete(endpointSlice) + r.endpointSliceTracker.ExpectDeletion(endpointSlice) metrics.EndpointSliceChanges.WithLabelValues("delete").Inc() } diff --git a/pkg/controller/endpointslice/reconciler_test.go b/pkg/controller/endpointslice/reconciler_test.go index 695d2b6bb9eb8..55712cb4aeae3 100644 --- a/pkg/controller/endpointslice/reconciler_test.go +++ b/pkg/controller/endpointslice/reconciler_test.go @@ -62,7 +62,7 @@ func TestReconcileEmpty(t *testing.T) { assert.Equal(t, svc.Name, slices[0].Labels[discovery.LabelServiceName]) assert.EqualValues(t, []discovery.EndpointPort{}, slices[0].Ports) assert.EqualValues(t, []discovery.Endpoint{}, slices[0].Endpoints) - expectTrackedResourceVersion(t, r.endpointSliceTracker, &slices[0], "100") + expectTrackedGeneration(t, r.endpointSliceTracker, &slices[0], 1) expectMetrics(t, expectedMetrics{desiredSlices: 1, actualSlices: 1, desiredEndpoints: 0, addedPerSync: 0, removedPerSync: 0, numCreated: 1, numUpdated: 0, numDeleted: 0}) } @@ -191,9 +191,8 @@ func TestReconcile1Pod(t *testing.T) { t.Errorf("Expected endpoint: %+v, got: %+v", testCase.expectedEndpoint, endpoint) } - expectTrackedResourceVersion(t, r.endpointSliceTracker, &slice, "100") - expectMetrics(t, expectedMetrics{desiredSlices: 1, actualSlices: 1, desiredEndpoints: 1, addedPerSync: 1, removedPerSync: 0, numCreated: 1, numUpdated: 0, numDeleted: 0}) + expectTrackedGeneration(t, r.endpointSliceTracker, &slice, 1) }) } } @@ -224,7 +223,7 @@ func TestReconcile1EndpointSlice(t *testing.T) { assert.Equal(t, svc.Name, slices[0].Labels[discovery.LabelServiceName]) assert.EqualValues(t, []discovery.EndpointPort{}, slices[0].Ports) assert.EqualValues(t, []discovery.Endpoint{}, slices[0].Endpoints) - expectTrackedResourceVersion(t, r.endpointSliceTracker, &slices[0], "200") + expectTrackedGeneration(t, r.endpointSliceTracker, &slices[0], 1) expectMetrics(t, expectedMetrics{desiredSlices: 1, actualSlices: 1, desiredEndpoints: 0, addedPerSync: 0, removedPerSync: 0, numCreated: 0, numUpdated: 1, numDeleted: 0}) } @@ -1062,14 +1061,17 @@ func expectActions(t *testing.T, actions []k8stesting.Action, num int, verb, res } } -func expectTrackedResourceVersion(t *testing.T, tracker *endpointSliceTracker, slice *discovery.EndpointSlice, expectedRV string) { - rrv, _ := tracker.relatedResourceVersions(slice) - rv, tracked := rrv[slice.Name] - if !tracked { +func expectTrackedGeneration(t *testing.T, tracker *endpointSliceTracker, slice *discovery.EndpointSlice, expectedGeneration int64) { + gfs, ok := tracker.generationsForSliceUnsafe(slice) + if !ok { + t.Fatalf("Expected Service to be tracked for EndpointSlices %s", slice.Name) + } + generation, ok := gfs[slice.UID] + if !ok { t.Fatalf("Expected EndpointSlice %s to be tracked", slice.Name) } - if rv != expectedRV { - t.Errorf("Expected ResourceVersion of %s to be %s, got %s", slice.Name, expectedRV, rv) + if generation != expectedGeneration { + t.Errorf("Expected Generation of %s to be %d, got %d", slice.Name, expectedGeneration, generation) } } diff --git a/pkg/controller/endpointslice/utils_test.go b/pkg/controller/endpointslice/utils_test.go index b8e216ac664ff..e4b032b6a9376 100644 --- a/pkg/controller/endpointslice/utils_test.go +++ b/pkg/controller/endpointslice/utils_test.go @@ -435,13 +435,13 @@ func newClientset() *fake.Clientset { endpointSlice.ObjectMeta.Name = fmt.Sprintf("%s-%s", endpointSlice.ObjectMeta.GenerateName, rand.String(8)) endpointSlice.ObjectMeta.GenerateName = "" } - endpointSlice.ObjectMeta.ResourceVersion = "100" + endpointSlice.Generation = 1 return false, endpointSlice, nil })) client.PrependReactor("update", "endpointslices", k8stesting.ReactionFunc(func(action k8stesting.Action) (bool, runtime.Object, error) { endpointSlice := action.(k8stesting.CreateAction).GetObject().(*discovery.EndpointSlice) - endpointSlice.ObjectMeta.ResourceVersion = "200" + endpointSlice.Generation++ return false, endpointSlice, nil })) diff --git a/pkg/controller/endpointslicemirroring/BUILD b/pkg/controller/endpointslicemirroring/BUILD index c6e2fb74f08fc..cff66d2b6856c 100644 --- a/pkg/controller/endpointslicemirroring/BUILD +++ b/pkg/controller/endpointslicemirroring/BUILD @@ -6,6 +6,7 @@ go_library( "endpointset.go", "endpointslice_tracker.go", "endpointslicemirroring_controller.go", + "errors.go", "events.go", "reconciler.go", "reconciler_helpers.go", diff --git a/pkg/controller/endpointslicemirroring/endpointslice_tracker.go b/pkg/controller/endpointslicemirroring/endpointslice_tracker.go index c16df7c10b80c..85ec119d41141 100644 --- a/pkg/controller/endpointslicemirroring/endpointslice_tracker.go +++ b/pkg/controller/endpointslicemirroring/endpointslice_tracker.go @@ -19,102 +19,168 @@ package endpointslicemirroring import ( "sync" + "k8s.io/api/core/v1" discovery "k8s.io/api/discovery/v1beta1" "k8s.io/apimachinery/pkg/types" ) -// endpointSliceResourceVersions tracks expected EndpointSlice resource versions -// by EndpointSlice name. -type endpointSliceResourceVersions map[string]string +const ( + deletionExpected = -1 +) + +// generationsBySlice tracks expected EndpointSlice generations by EndpointSlice +// uid. A value of deletionExpected (-1) may be used here to indicate that we +// expect this EndpointSlice to be deleted. +type generationsBySlice map[types.UID]int64 -// endpointSliceTracker tracks EndpointSlices and their associated resource -// versions to help determine if a change to an EndpointSlice has been processed -// by the EndpointSlice controller. +// endpointSliceTracker tracks EndpointSlices and their associated generation to +// help determine if a change to an EndpointSlice has been processed by the +// EndpointSlice controller. type endpointSliceTracker struct { - // lock protects resourceVersionsByService. + // lock protects generationsByService. lock sync.Mutex - // resourceVersionsByService tracks the list of EndpointSlices and - // associated resource versions expected for a given Service. - resourceVersionsByService map[types.NamespacedName]endpointSliceResourceVersions + // generationsByService tracks the generations of EndpointSlices for each + // Service. + generationsByService map[types.NamespacedName]generationsBySlice } // newEndpointSliceTracker creates and initializes a new endpointSliceTracker. func newEndpointSliceTracker() *endpointSliceTracker { return &endpointSliceTracker{ - resourceVersionsByService: map[types.NamespacedName]endpointSliceResourceVersions{}, + generationsByService: map[types.NamespacedName]generationsBySlice{}, } } -// Has returns true if the endpointSliceTracker has a resource version for the +// Has returns true if the endpointSliceTracker has a generation for the // provided EndpointSlice. func (est *endpointSliceTracker) Has(endpointSlice *discovery.EndpointSlice) bool { est.lock.Lock() defer est.lock.Unlock() - rrv, ok := est.relatedResourceVersions(endpointSlice) + gfs, ok := est.generationsForSliceUnsafe(endpointSlice) if !ok { return false } - _, ok = rrv[endpointSlice.Name] + _, ok = gfs[endpointSlice.UID] return ok } -// Stale returns true if this endpointSliceTracker does not have a resource -// version for the provided EndpointSlice or it does not match the resource -// version of the provided EndpointSlice. -func (est *endpointSliceTracker) Stale(endpointSlice *discovery.EndpointSlice) bool { +// ShouldSync returns true if this endpointSliceTracker does not have a +// generation for the provided EndpointSlice or it is greater than the +// generation of the tracked EndpointSlice. +func (est *endpointSliceTracker) ShouldSync(endpointSlice *discovery.EndpointSlice) bool { est.lock.Lock() defer est.lock.Unlock() - rrv, ok := est.relatedResourceVersions(endpointSlice) + gfs, ok := est.generationsForSliceUnsafe(endpointSlice) if !ok { return true } - return rrv[endpointSlice.Name] != endpointSlice.ResourceVersion + g, ok := gfs[endpointSlice.UID] + return !ok || endpointSlice.Generation > g } -// Update adds or updates the resource version in this endpointSliceTracker for -// the provided EndpointSlice. +// StaleSlices returns true if any of the following are true: +// 1. One or more of the provided EndpointSlices have older generations than the +// corresponding tracked ones. +// 2. The tracker is expecting one or more of the provided EndpointSlices to be +// deleted. +// 3. The tracker is tracking EndpointSlices that have not been provided. +func (est *endpointSliceTracker) StaleSlices(service *v1.Service, endpointSlices []*discovery.EndpointSlice) bool { + est.lock.Lock() + defer est.lock.Unlock() + + nn := types.NamespacedName{Name: service.Name, Namespace: service.Namespace} + gfs, ok := est.generationsByService[nn] + if !ok { + return false + } + providedSlices := map[types.UID]int64{} + for _, endpointSlice := range endpointSlices { + providedSlices[endpointSlice.UID] = endpointSlice.Generation + g, ok := gfs[endpointSlice.UID] + if ok && (g == deletionExpected || g > endpointSlice.Generation) { + return true + } + } + for uid, generation := range gfs { + if generation == deletionExpected { + continue + } + _, ok := providedSlices[uid] + if !ok { + return true + } + } + return false +} + +// Update adds or updates the generation in this endpointSliceTracker for the +// provided EndpointSlice. func (est *endpointSliceTracker) Update(endpointSlice *discovery.EndpointSlice) { est.lock.Lock() defer est.lock.Unlock() - rrv, ok := est.relatedResourceVersions(endpointSlice) + gfs, ok := est.generationsForSliceUnsafe(endpointSlice) + if !ok { - rrv = endpointSliceResourceVersions{} - est.resourceVersionsByService[getServiceNN(endpointSlice)] = rrv + gfs = generationsBySlice{} + est.generationsByService[getServiceNN(endpointSlice)] = gfs } - rrv[endpointSlice.Name] = endpointSlice.ResourceVersion + gfs[endpointSlice.UID] = endpointSlice.Generation } -// DeleteService removes the set of resource versions tracked for the Service. +// DeleteService removes the set of generations tracked for the Service. func (est *endpointSliceTracker) DeleteService(namespace, name string) { est.lock.Lock() defer est.lock.Unlock() serviceNN := types.NamespacedName{Name: name, Namespace: namespace} - delete(est.resourceVersionsByService, serviceNN) + delete(est.generationsByService, serviceNN) } -// Delete removes the resource version in this endpointSliceTracker for the -// provided EndpointSlice. -func (est *endpointSliceTracker) Delete(endpointSlice *discovery.EndpointSlice) { +// ExpectDeletion sets the generation to deletionExpected in this +// endpointSliceTracker for the provided EndpointSlice. +func (est *endpointSliceTracker) ExpectDeletion(endpointSlice *discovery.EndpointSlice) { + est.lock.Lock() + defer est.lock.Unlock() + + gfs, ok := est.generationsForSliceUnsafe(endpointSlice) + + if !ok { + gfs = generationsBySlice{} + est.generationsByService[getServiceNN(endpointSlice)] = gfs + } + gfs[endpointSlice.UID] = deletionExpected +} + +// HandleDeletion removes the generation in this endpointSliceTracker for the +// provided EndpointSlice. This returns true if the tracker expected this +// EndpointSlice to be deleted and false if not. +func (est *endpointSliceTracker) HandleDeletion(endpointSlice *discovery.EndpointSlice) bool { est.lock.Lock() defer est.lock.Unlock() - rrv, ok := est.relatedResourceVersions(endpointSlice) + gfs, ok := est.generationsForSliceUnsafe(endpointSlice) + if ok { - delete(rrv, endpointSlice.Name) + g, ok := gfs[endpointSlice.UID] + delete(gfs, endpointSlice.UID) + if ok && g != deletionExpected { + return false + } } + + return true } -// relatedResourceVersions returns the set of resource versions tracked for the -// Service corresponding to the provided EndpointSlice, and a bool to indicate -// if it exists. -func (est *endpointSliceTracker) relatedResourceVersions(endpointSlice *discovery.EndpointSlice) (endpointSliceResourceVersions, bool) { +// generationsForSliceUnsafe returns the generations for the Service +// corresponding to the provided EndpointSlice, and a bool to indicate if it +// exists. A lock must be applied before calling this function. +func (est *endpointSliceTracker) generationsForSliceUnsafe(endpointSlice *discovery.EndpointSlice) (generationsBySlice, bool) { serviceNN := getServiceNN(endpointSlice) - vers, ok := est.resourceVersionsByService[serviceNN] - return vers, ok + generations, ok := est.generationsByService[serviceNN] + return generations, ok } // getServiceNN returns a namespaced name for the Service corresponding to the diff --git a/pkg/controller/endpointslicemirroring/endpointslice_tracker_test.go b/pkg/controller/endpointslicemirroring/endpointslice_tracker_test.go index 12d56b66348a2..44a4800065469 100644 --- a/pkg/controller/endpointslicemirroring/endpointslice_tracker_test.go +++ b/pkg/controller/endpointslicemirroring/endpointslice_tracker_test.go @@ -19,8 +19,7 @@ package endpointslicemirroring import ( "testing" - "github.com/stretchr/testify/assert" - + "k8s.io/api/core/v1" discovery "k8s.io/api/discovery/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" @@ -29,72 +28,59 @@ import ( func TestEndpointSliceTrackerUpdate(t *testing.T) { epSlice1 := &discovery.EndpointSlice{ ObjectMeta: metav1.ObjectMeta{ - Name: "example-1", - Namespace: "ns1", - ResourceVersion: "rv1", - Labels: map[string]string{discovery.LabelServiceName: "svc1"}, + Name: "example-1", + Namespace: "ns1", + UID: "original", + Generation: 1, + Labels: map[string]string{discovery.LabelServiceName: "svc1"}, }, } epSlice1DifferentNS := epSlice1.DeepCopy() epSlice1DifferentNS.Namespace = "ns2" + epSlice1DifferentNS.UID = "diff-ns" epSlice1DifferentService := epSlice1.DeepCopy() epSlice1DifferentService.Labels[discovery.LabelServiceName] = "svc2" + epSlice1DifferentService.UID = "diff-svc" - epSlice1DifferentRV := epSlice1.DeepCopy() - epSlice1DifferentRV.ResourceVersion = "rv2" + epSlice1NewerGen := epSlice1.DeepCopy() + epSlice1NewerGen.Generation = 2 testCases := map[string]struct { - updateParam *discovery.EndpointSlice - checksParam *discovery.EndpointSlice - expectHas bool - expectStale bool - expectResourceVersionsByService map[types.NamespacedName]endpointSliceResourceVersions + updateParam *discovery.EndpointSlice + checksParam *discovery.EndpointSlice + expectHas bool + expectShouldSync bool + expectGeneration int64 }{ "same slice": { - updateParam: epSlice1, - checksParam: epSlice1, - expectHas: true, - expectStale: false, - expectResourceVersionsByService: map[types.NamespacedName]endpointSliceResourceVersions{ - {Namespace: epSlice1.Namespace, Name: "svc1"}: { - epSlice1.Name: epSlice1.ResourceVersion, - }, - }, + updateParam: epSlice1, + checksParam: epSlice1, + expectHas: true, + expectShouldSync: false, + expectGeneration: epSlice1.Generation, }, "different namespace": { - updateParam: epSlice1, - checksParam: epSlice1DifferentNS, - expectHas: false, - expectStale: true, - expectResourceVersionsByService: map[types.NamespacedName]endpointSliceResourceVersions{ - {Namespace: epSlice1.Namespace, Name: "svc1"}: { - epSlice1.Name: epSlice1.ResourceVersion, - }, - }, + updateParam: epSlice1, + checksParam: epSlice1DifferentNS, + expectHas: false, + expectShouldSync: true, + expectGeneration: epSlice1.Generation, }, "different service": { - updateParam: epSlice1, - checksParam: epSlice1DifferentService, - expectHas: false, - expectStale: true, - expectResourceVersionsByService: map[types.NamespacedName]endpointSliceResourceVersions{ - {Namespace: epSlice1.Namespace, Name: "svc1"}: { - epSlice1.Name: epSlice1.ResourceVersion, - }, - }, + updateParam: epSlice1, + checksParam: epSlice1DifferentService, + expectHas: false, + expectShouldSync: true, + expectGeneration: epSlice1.Generation, }, - "different resource version": { - updateParam: epSlice1, - checksParam: epSlice1DifferentRV, - expectHas: true, - expectStale: true, - expectResourceVersionsByService: map[types.NamespacedName]endpointSliceResourceVersions{ - {Namespace: epSlice1.Namespace, Name: "svc1"}: { - epSlice1.Name: epSlice1.ResourceVersion, - }, - }, + "newer generation": { + updateParam: epSlice1, + checksParam: epSlice1NewerGen, + expectHas: true, + expectShouldSync: true, + expectGeneration: epSlice1.Generation, }, } @@ -105,80 +91,219 @@ func TestEndpointSliceTrackerUpdate(t *testing.T) { if esTracker.Has(tc.checksParam) != tc.expectHas { t.Errorf("tc.tracker.Has(%+v) == %t, expected %t", tc.checksParam, esTracker.Has(tc.checksParam), tc.expectHas) } - if esTracker.Stale(tc.checksParam) != tc.expectStale { - t.Errorf("tc.tracker.Stale(%+v) == %t, expected %t", tc.checksParam, esTracker.Stale(tc.checksParam), tc.expectStale) + if esTracker.ShouldSync(tc.checksParam) != tc.expectShouldSync { + t.Errorf("tc.tracker.ShouldSync(%+v) == %t, expected %t", tc.checksParam, esTracker.ShouldSync(tc.checksParam), tc.expectShouldSync) + } + serviceNN := types.NamespacedName{Namespace: epSlice1.Namespace, Name: "svc1"} + gfs, ok := esTracker.generationsByService[serviceNN] + if !ok { + t.Fatalf("expected tracker to have generations for %s Service", serviceNN.Name) + } + generation, ok := gfs[epSlice1.UID] + if !ok { + t.Fatalf("expected tracker to have generation for %s EndpointSlice", epSlice1.Name) + } + if tc.expectGeneration != generation { + t.Fatalf("expected generation to be %d, got %d", tc.expectGeneration, generation) } - assert.Equal(t, tc.expectResourceVersionsByService, esTracker.resourceVersionsByService) }) } } -func TestEndpointSliceTrackerDelete(t *testing.T) { +func TestEndpointSliceTrackerStaleSlices(t *testing.T) { + epSlice1 := &discovery.EndpointSlice{ + ObjectMeta: metav1.ObjectMeta{ + Name: "example-1", + Namespace: "ns1", + UID: "original", + Generation: 1, + Labels: map[string]string{discovery.LabelServiceName: "svc1"}, + }, + } + + epSlice1NewerGen := epSlice1.DeepCopy() + epSlice1NewerGen.Generation = 2 + + testCases := []struct { + name string + tracker *endpointSliceTracker + serviceParam *v1.Service + slicesParam []*discovery.EndpointSlice + expectNewer bool + }{{ + name: "empty tracker", + tracker: &endpointSliceTracker{ + generationsByService: map[types.NamespacedName]generationsBySlice{}, + }, + serviceParam: &v1.Service{ObjectMeta: metav1.ObjectMeta{Name: "svc1", Namespace: "ns1"}}, + slicesParam: []*discovery.EndpointSlice{}, + expectNewer: false, + }, { + name: "empty slices", + tracker: &endpointSliceTracker{ + generationsByService: map[types.NamespacedName]generationsBySlice{ + {Name: "svc1", Namespace: "ns1"}: {}, + }, + }, + serviceParam: &v1.Service{ObjectMeta: metav1.ObjectMeta{Name: "svc1", Namespace: "ns1"}}, + slicesParam: []*discovery.EndpointSlice{}, + expectNewer: false, + }, { + name: "matching slices", + tracker: &endpointSliceTracker{ + generationsByService: map[types.NamespacedName]generationsBySlice{ + {Name: "svc1", Namespace: "ns1"}: { + epSlice1.UID: epSlice1.Generation, + }, + }, + }, + serviceParam: &v1.Service{ObjectMeta: metav1.ObjectMeta{Name: "svc1", Namespace: "ns1"}}, + slicesParam: []*discovery.EndpointSlice{epSlice1}, + expectNewer: false, + }, { + name: "newer slice in tracker", + tracker: &endpointSliceTracker{ + generationsByService: map[types.NamespacedName]generationsBySlice{ + {Name: "svc1", Namespace: "ns1"}: { + epSlice1.UID: epSlice1NewerGen.Generation, + }, + }, + }, + serviceParam: &v1.Service{ObjectMeta: metav1.ObjectMeta{Name: "svc1", Namespace: "ns1"}}, + slicesParam: []*discovery.EndpointSlice{epSlice1}, + expectNewer: true, + }, { + name: "newer slice in params", + tracker: &endpointSliceTracker{ + generationsByService: map[types.NamespacedName]generationsBySlice{ + {Name: "svc1", Namespace: "ns1"}: { + epSlice1.UID: epSlice1.Generation, + }, + }, + }, + serviceParam: &v1.Service{ObjectMeta: metav1.ObjectMeta{Name: "svc1", Namespace: "ns1"}}, + slicesParam: []*discovery.EndpointSlice{epSlice1NewerGen}, + expectNewer: false, + }, { + name: "slice in params is expected to be deleted", + tracker: &endpointSliceTracker{ + generationsByService: map[types.NamespacedName]generationsBySlice{ + {Name: "svc1", Namespace: "ns1"}: { + epSlice1.UID: deletionExpected, + }, + }, + }, + serviceParam: &v1.Service{ObjectMeta: metav1.ObjectMeta{Name: "svc1", Namespace: "ns1"}}, + slicesParam: []*discovery.EndpointSlice{epSlice1}, + expectNewer: true, + }, { + name: "slice in tracker but not in params", + tracker: &endpointSliceTracker{ + generationsByService: map[types.NamespacedName]generationsBySlice{ + {Name: "svc1", Namespace: "ns1"}: { + epSlice1.UID: epSlice1.Generation, + }, + }, + }, + serviceParam: &v1.Service{ObjectMeta: metav1.ObjectMeta{Name: "svc1", Namespace: "ns1"}}, + slicesParam: []*discovery.EndpointSlice{}, + expectNewer: true, + }} + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + actualNewer := tc.tracker.StaleSlices(tc.serviceParam, tc.slicesParam) + if actualNewer != tc.expectNewer { + t.Errorf("Expected %t, got %t", tc.expectNewer, actualNewer) + } + }) + } +} +func TestEndpointSliceTrackerDeletion(t *testing.T) { epSlice1 := &discovery.EndpointSlice{ ObjectMeta: metav1.ObjectMeta{ - Name: "example-1", - Namespace: "ns1", - ResourceVersion: "rv1", - Labels: map[string]string{discovery.LabelServiceName: "svc1"}, + Name: "example-1", + Namespace: "ns1", + UID: "original", + Generation: 1, + Labels: map[string]string{discovery.LabelServiceName: "svc1"}, }, } epSlice1DifferentNS := epSlice1.DeepCopy() epSlice1DifferentNS.Namespace = "ns2" + epSlice1DifferentNS.UID = "diff-ns" epSlice1DifferentService := epSlice1.DeepCopy() epSlice1DifferentService.Labels[discovery.LabelServiceName] = "svc2" + epSlice1DifferentService.UID = "diff-svc" - epSlice1DifferentRV := epSlice1.DeepCopy() - epSlice1DifferentRV.ResourceVersion = "rv2" + epSlice1NewerGen := epSlice1.DeepCopy() + epSlice1NewerGen.Generation = 2 testCases := map[string]struct { - deleteParam *discovery.EndpointSlice - checksParam *discovery.EndpointSlice - expectHas bool - expectStale bool + expectDeletionParam *discovery.EndpointSlice + checksParam *discovery.EndpointSlice + deleteParam *discovery.EndpointSlice + expectHas bool + expectShouldSync bool + expectedHandleDeletionResp bool }{ "same slice": { - deleteParam: epSlice1, - checksParam: epSlice1, - expectHas: false, - expectStale: true, + expectDeletionParam: epSlice1, + checksParam: epSlice1, + deleteParam: epSlice1, + expectHas: true, + expectShouldSync: true, + expectedHandleDeletionResp: true, }, "different namespace": { - deleteParam: epSlice1DifferentNS, - checksParam: epSlice1DifferentNS, - expectHas: false, - expectStale: true, + expectDeletionParam: epSlice1DifferentNS, + checksParam: epSlice1DifferentNS, + deleteParam: epSlice1DifferentNS, + expectHas: true, + expectShouldSync: true, + expectedHandleDeletionResp: false, }, "different namespace, check original ep slice": { - deleteParam: epSlice1DifferentNS, - checksParam: epSlice1, - expectHas: true, - expectStale: false, + expectDeletionParam: epSlice1DifferentNS, + checksParam: epSlice1, + deleteParam: epSlice1DifferentNS, + expectHas: true, + expectShouldSync: false, + expectedHandleDeletionResp: false, }, "different service": { - deleteParam: epSlice1DifferentService, - checksParam: epSlice1DifferentService, - expectHas: false, - expectStale: true, + expectDeletionParam: epSlice1DifferentService, + checksParam: epSlice1DifferentService, + deleteParam: epSlice1DifferentService, + expectHas: true, + expectShouldSync: true, + expectedHandleDeletionResp: false, }, - "different service, check original ep slice": { - deleteParam: epSlice1DifferentService, - checksParam: epSlice1, - expectHas: true, - expectStale: false, + "expectDelete different service, check original ep slice, delete original": { + expectDeletionParam: epSlice1DifferentService, + checksParam: epSlice1, + deleteParam: epSlice1, + expectHas: true, + expectShouldSync: false, + expectedHandleDeletionResp: false, }, - "different resource version": { - deleteParam: epSlice1DifferentRV, - checksParam: epSlice1DifferentRV, - expectHas: false, - expectStale: true, + "different generation": { + expectDeletionParam: epSlice1NewerGen, + checksParam: epSlice1NewerGen, + deleteParam: epSlice1NewerGen, + expectHas: true, + expectShouldSync: true, + expectedHandleDeletionResp: true, }, - "different resource version, check original ep slice": { - deleteParam: epSlice1DifferentRV, - checksParam: epSlice1, - expectHas: false, - expectStale: true, + "expectDelete different generation, check original ep slice, delete original": { + expectDeletionParam: epSlice1NewerGen, + checksParam: epSlice1, + deleteParam: epSlice1, + expectHas: true, + expectShouldSync: true, + expectedHandleDeletionResp: true, }, } @@ -187,13 +312,20 @@ func TestEndpointSliceTrackerDelete(t *testing.T) { esTracker := newEndpointSliceTracker() esTracker.Update(epSlice1) - esTracker.Delete(tc.deleteParam) + esTracker.ExpectDeletion(tc.expectDeletionParam) if esTracker.Has(tc.checksParam) != tc.expectHas { t.Errorf("esTracker.Has(%+v) == %t, expected %t", tc.checksParam, esTracker.Has(tc.checksParam), tc.expectHas) } - if esTracker.Stale(tc.checksParam) != tc.expectStale { - t.Errorf("esTracker.Stale(%+v) == %t, expected %t", tc.checksParam, esTracker.Stale(tc.checksParam), tc.expectStale) + if esTracker.ShouldSync(tc.checksParam) != tc.expectShouldSync { + t.Errorf("esTracker.ShouldSync(%+v) == %t, expected %t", tc.checksParam, esTracker.ShouldSync(tc.checksParam), tc.expectShouldSync) } + if esTracker.HandleDeletion(epSlice1) != tc.expectedHandleDeletionResp { + t.Errorf("esTracker.ShouldSync(%+v) == %t, expected %t", epSlice1, esTracker.HandleDeletion(epSlice1), tc.expectedHandleDeletionResp) + } + if esTracker.Has(epSlice1) != false { + t.Errorf("esTracker.Has(%+v) == %t, expected false", epSlice1, esTracker.Has(epSlice1)) + } + }) } } @@ -203,48 +335,39 @@ func TestEndpointSliceTrackerDeleteService(t *testing.T) { svcName2, svcNS2 := "svc2", "ns2" epSlice1 := &discovery.EndpointSlice{ ObjectMeta: metav1.ObjectMeta{ - Name: "example-1", - Namespace: svcNS1, - ResourceVersion: "rv1", - Labels: map[string]string{discovery.LabelServiceName: svcName1}, + Name: "example-1", + Namespace: svcNS1, + Generation: 1, + Labels: map[string]string{discovery.LabelServiceName: svcName1}, }, } testCases := map[string]struct { - updateParam *discovery.EndpointSlice - deleteServiceParam *types.NamespacedName - expectHas bool - expectStale bool - expectResourceVersionsByService map[types.NamespacedName]endpointSliceResourceVersions + updateParam *discovery.EndpointSlice + deleteServiceParam *types.NamespacedName + expectHas bool + expectShouldSync bool + expectGeneration int64 }{ "same service": { - updateParam: epSlice1, - deleteServiceParam: &types.NamespacedName{Namespace: svcNS1, Name: svcName1}, - expectHas: false, - expectStale: true, - expectResourceVersionsByService: map[types.NamespacedName]endpointSliceResourceVersions{}, + updateParam: epSlice1, + deleteServiceParam: &types.NamespacedName{Namespace: svcNS1, Name: svcName1}, + expectHas: false, + expectShouldSync: true, }, "different namespace": { updateParam: epSlice1, deleteServiceParam: &types.NamespacedName{Namespace: svcNS2, Name: svcName1}, expectHas: true, - expectStale: false, - expectResourceVersionsByService: map[types.NamespacedName]endpointSliceResourceVersions{ - {Namespace: epSlice1.Namespace, Name: "svc1"}: { - epSlice1.Name: epSlice1.ResourceVersion, - }, - }, + expectShouldSync: false, + expectGeneration: epSlice1.Generation, }, "different service": { updateParam: epSlice1, deleteServiceParam: &types.NamespacedName{Namespace: svcNS1, Name: svcName2}, expectHas: true, - expectStale: false, - expectResourceVersionsByService: map[types.NamespacedName]endpointSliceResourceVersions{ - {Namespace: epSlice1.Namespace, Name: "svc1"}: { - epSlice1.Name: epSlice1.ResourceVersion, - }, - }, + expectShouldSync: false, + expectGeneration: epSlice1.Generation, }, } @@ -256,10 +379,23 @@ func TestEndpointSliceTrackerDeleteService(t *testing.T) { if esTracker.Has(tc.updateParam) != tc.expectHas { t.Errorf("tc.tracker.Has(%+v) == %t, expected %t", tc.updateParam, esTracker.Has(tc.updateParam), tc.expectHas) } - if esTracker.Stale(tc.updateParam) != tc.expectStale { - t.Errorf("tc.tracker.Stale(%+v) == %t, expected %t", tc.updateParam, esTracker.Stale(tc.updateParam), tc.expectStale) + if esTracker.ShouldSync(tc.updateParam) != tc.expectShouldSync { + t.Errorf("tc.tracker.ShouldSync(%+v) == %t, expected %t", tc.updateParam, esTracker.ShouldSync(tc.updateParam), tc.expectShouldSync) + } + if tc.expectGeneration != 0 { + serviceNN := types.NamespacedName{Namespace: epSlice1.Namespace, Name: "svc1"} + gfs, ok := esTracker.generationsByService[serviceNN] + if !ok { + t.Fatalf("expected tracker to have status for %s Service", serviceNN.Name) + } + generation, ok := gfs[epSlice1.UID] + if !ok { + t.Fatalf("expected tracker to have generation for %s EndpointSlice", epSlice1.Name) + } + if tc.expectGeneration != generation { + t.Fatalf("expected generation to be %d, got %d", tc.expectGeneration, generation) + } } - assert.Equal(t, tc.expectResourceVersionsByService, esTracker.resourceVersionsByService) }) } } diff --git a/pkg/controller/endpointslicemirroring/endpointslicemirroring_controller.go b/pkg/controller/endpointslicemirroring/endpointslicemirroring_controller.go index 61f912ceead69..6ed19266ddce5 100644 --- a/pkg/controller/endpointslicemirroring/endpointslicemirroring_controller.go +++ b/pkg/controller/endpointslicemirroring/endpointslicemirroring_controller.go @@ -316,6 +316,10 @@ func (c *Controller) syncEndpoints(key string) error { return err } + if c.endpointSliceTracker.StaleSlices(svc, endpointSlices) { + return &StaleInformerCache{"EndpointSlice informer cache is out of date"} + } + err = c.reconciler.reconcile(endpoints, endpointSlices) if err != nil { return err @@ -439,7 +443,7 @@ func (c *Controller) onEndpointSliceAdd(obj interface{}) { utilruntime.HandleError(fmt.Errorf("onEndpointSliceAdd() expected type discovery.EndpointSlice, got %T", obj)) return } - if managedByController(endpointSlice) && c.endpointSliceTracker.Stale(endpointSlice) { + if managedByController(endpointSlice) && c.endpointSliceTracker.ShouldSync(endpointSlice) { c.queueEndpointsForEndpointSlice(endpointSlice) } } @@ -455,7 +459,18 @@ func (c *Controller) onEndpointSliceUpdate(prevObj, obj interface{}) { utilruntime.HandleError(fmt.Errorf("onEndpointSliceUpdated() expected type discovery.EndpointSlice, got %T, %T", prevObj, obj)) return } - if managedByChanged(prevEndpointSlice, endpointSlice) || (managedByController(endpointSlice) && c.endpointSliceTracker.Stale(endpointSlice)) { + // EndpointSlice generation does not change when labels change. Although the + // controller will never change LabelServiceName, users might. This check + // ensures that we handle changes to this label. + svcName := endpointSlice.Labels[discovery.LabelServiceName] + prevSvcName := prevEndpointSlice.Labels[discovery.LabelServiceName] + if svcName != prevSvcName { + klog.Warningf("%s label changed from %s to %s for %s", discovery.LabelServiceName, prevSvcName, svcName, endpointSlice.Name) + c.queueEndpointsForEndpointSlice(endpointSlice) + c.queueEndpointsForEndpointSlice(prevEndpointSlice) + return + } + if managedByChanged(prevEndpointSlice, endpointSlice) || (managedByController(endpointSlice) && c.endpointSliceTracker.ShouldSync(endpointSlice)) { c.queueEndpointsForEndpointSlice(endpointSlice) } } @@ -470,7 +485,11 @@ func (c *Controller) onEndpointSliceDelete(obj interface{}) { return } if managedByController(endpointSlice) && c.endpointSliceTracker.Has(endpointSlice) { - c.queueEndpointsForEndpointSlice(endpointSlice) + // This returns false if we didn't expect the EndpointSlice to be + // deleted. If that is the case, we queue the Service for another sync. + if !c.endpointSliceTracker.HandleDeletion(endpointSlice) { + c.queueEndpointsForEndpointSlice(endpointSlice) + } } } diff --git a/pkg/controller/endpointslicemirroring/errors.go b/pkg/controller/endpointslicemirroring/errors.go new file mode 100644 index 0000000000000..5d940f36ea86b --- /dev/null +++ b/pkg/controller/endpointslicemirroring/errors.go @@ -0,0 +1,25 @@ +/* +Copyright 2021 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 endpointslicemirroring + +// StaleInformerCache errors indicate that the informer cache includes out of +// date resources. +type StaleInformerCache struct { + msg string +} + +func (e *StaleInformerCache) Error() string { return e.msg } diff --git a/pkg/controller/endpointslicemirroring/reconciler.go b/pkg/controller/endpointslicemirroring/reconciler.go index 83cd7ab1ac1a3..498474fcf9f3d 100644 --- a/pkg/controller/endpointslicemirroring/reconciler.go +++ b/pkg/controller/endpointslicemirroring/reconciler.go @@ -22,6 +22,7 @@ import ( corev1 "k8s.io/api/core/v1" discovery "k8s.io/api/discovery/v1beta1" + apiequality "k8s.io/apimachinery/pkg/api/equality" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" @@ -196,9 +197,14 @@ func (r *reconciler) reconcileByPortMapping( // if >0 existing slices, mark all but 1 for deletion. slices.toDelete = existingSlices[1:] - // Return early if first slice matches desired endpoints. + // generated slices must mirror all endpoints annotations but EndpointsLastChangeTriggerTime + compareAnnotations := cloneAndRemoveKeys(endpoints.Annotations, corev1.EndpointsLastChangeTriggerTime) + compareLabels := cloneAndRemoveKeys(existingSlices[0].Labels, discovery.LabelManagedBy, discovery.LabelServiceName) + // Return early if first slice matches desired endpoints, labels and annotations totals = totalChanges(existingSlices[0], desiredSet) - if totals.added == 0 && totals.updated == 0 && totals.removed == 0 { + if totals.added == 0 && totals.updated == 0 && totals.removed == 0 && + apiequality.Semantic.DeepEqual(endpoints.Labels, compareLabels) && + apiequality.Semantic.DeepEqual(compareAnnotations, existingSlices[0].Annotations) { return slices, totals } } @@ -263,7 +269,7 @@ func (r *reconciler) finalize(endpoints *corev1.Endpoints, slices slicesByAction if err != nil { return fmt.Errorf("failed to delete %s EndpointSlice for Endpoints %s/%s: %v", endpointSlice.Name, endpoints.Namespace, endpoints.Name, err) } - r.endpointSliceTracker.Delete(endpointSlice) + r.endpointSliceTracker.ExpectDeletion(endpointSlice) metrics.EndpointSliceChanges.WithLabelValues("delete").Inc() } diff --git a/pkg/controller/endpointslicemirroring/reconciler_test.go b/pkg/controller/endpointslicemirroring/reconciler_test.go index da371ee3f96f1..f77b2b0bc481e 100644 --- a/pkg/controller/endpointslicemirroring/reconciler_test.go +++ b/pkg/controller/endpointslicemirroring/reconciler_test.go @@ -43,6 +43,7 @@ func TestReconcile(t *testing.T) { testCases := []struct { testName string subsets []corev1.EndpointSubset + epLabels map[string]string endpointsDeletionPending bool maxEndpointsPerSubset int32 existingEndpointSlices []*discovery.EndpointSlice @@ -105,6 +106,102 @@ func TestReconcile(t *testing.T) { existingEndpointSlices: []*discovery.EndpointSlice{}, expectedNumSlices: 0, expectedClientActions: 0, + }, { + testName: "Endpoints with 1 subset, port, and address and existing slice with same fields", + subsets: []corev1.EndpointSubset{{ + Ports: []corev1.EndpointPort{{ + Name: "http", + Port: 80, + Protocol: corev1.ProtocolTCP, + }}, + Addresses: []corev1.EndpointAddress{{ + IP: "10.0.0.1", + Hostname: "pod-1", + }}, + }}, + existingEndpointSlices: []*discovery.EndpointSlice{{ + ObjectMeta: metav1.ObjectMeta{ + Name: "test-ep-1", + }, + AddressType: discovery.AddressTypeIPv4, + Ports: []discovery.EndpointPort{{ + Name: utilpointer.StringPtr("http"), + Port: utilpointer.Int32Ptr(80), + Protocol: &protoTCP, + }}, + Endpoints: []discovery.Endpoint{{ + Addresses: []string{"10.0.0.1"}, + Hostname: utilpointer.StringPtr("pod-1"), + Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, + }}, + }}, + expectedNumSlices: 1, + expectedClientActions: 0, + }, { + testName: "Endpoints with 1 subset, port, and address and existing slice with an additional annotation", + subsets: []corev1.EndpointSubset{{ + Ports: []corev1.EndpointPort{{ + Name: "http", + Port: 80, + Protocol: corev1.ProtocolTCP, + }}, + Addresses: []corev1.EndpointAddress{{ + IP: "10.0.0.1", + Hostname: "pod-1", + }}, + }}, + existingEndpointSlices: []*discovery.EndpointSlice{{ + ObjectMeta: metav1.ObjectMeta{ + Name: "test-ep-1", + Annotations: map[string]string{"foo": "bar"}, + }, + AddressType: discovery.AddressTypeIPv4, + Ports: []discovery.EndpointPort{{ + Name: utilpointer.StringPtr("http"), + Port: utilpointer.Int32Ptr(80), + Protocol: &protoTCP, + }}, + Endpoints: []discovery.Endpoint{{ + Addresses: []string{"10.0.0.1"}, + Hostname: utilpointer.StringPtr("pod-1"), + Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, + }}, + }}, + expectedNumSlices: 1, + expectedClientActions: 1, + }, { + testName: "Endpoints with 1 subset, port, label and address and existing slice with same fields but the label", + subsets: []corev1.EndpointSubset{{ + Ports: []corev1.EndpointPort{{ + Name: "http", + Port: 80, + Protocol: corev1.ProtocolTCP, + }}, + Addresses: []corev1.EndpointAddress{{ + IP: "10.0.0.1", + Hostname: "pod-1", + }}, + }}, + epLabels: map[string]string{"foo": "bar"}, + existingEndpointSlices: []*discovery.EndpointSlice{{ + ObjectMeta: metav1.ObjectMeta{ + Name: "test-ep-1", + Annotations: map[string]string{"foo": "bar"}, + }, + AddressType: discovery.AddressTypeIPv4, + Ports: []discovery.EndpointPort{{ + Name: utilpointer.StringPtr("http"), + Port: utilpointer.Int32Ptr(80), + Protocol: &protoTCP, + }}, + Endpoints: []discovery.Endpoint{{ + Addresses: []string{"10.0.0.1"}, + Hostname: utilpointer.StringPtr("pod-1"), + Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, + }}, + }}, + expectedNumSlices: 1, + expectedClientActions: 1, }, { testName: "Endpoints with 1 subset, 2 ports, and 2 addresses", subsets: []corev1.EndpointSubset{{ @@ -641,7 +738,7 @@ func TestReconcile(t *testing.T) { setupMetrics() namespace := "test" endpoints := corev1.Endpoints{ - ObjectMeta: metav1.ObjectMeta{Name: "test-ep", Namespace: namespace}, + ObjectMeta: metav1.ObjectMeta{Name: "test-ep", Namespace: namespace, Labels: tc.epLabels}, Subsets: tc.subsets, } diff --git a/pkg/controller/endpointslicemirroring/utils.go b/pkg/controller/endpointslicemirroring/utils.go index ca4d8f1a22f6e..82b4a7874cc31 100644 --- a/pkg/controller/endpointslicemirroring/utils.go +++ b/pkg/controller/endpointslicemirroring/utils.go @@ -89,6 +89,7 @@ func newEndpointSlice(endpoints *corev1.Endpoints, ports []discovery.EndpointPor epSlice := &discovery.EndpointSlice{ ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{}, + Annotations: map[string]string{}, OwnerReferences: []metav1.OwnerReference{*ownerRef}, Namespace: endpoints.Namespace, }, @@ -97,13 +98,23 @@ func newEndpointSlice(endpoints *corev1.Endpoints, ports []discovery.EndpointPor Endpoints: []discovery.Endpoint{}, } + // clone all labels for label, val := range endpoints.Labels { epSlice.Labels[label] = val } + // overwrite specific labels epSlice.Labels[discovery.LabelServiceName] = endpoints.Name epSlice.Labels[discovery.LabelManagedBy] = controllerName + // clone all annotations but EndpointsLastChangeTriggerTime + for annotation, val := range endpoints.Annotations { + if annotation == corev1.EndpointsLastChangeTriggerTime { + continue + } + epSlice.Annotations[annotation] = val + } + if sliceName == "" { epSlice.GenerateName = getEndpointSlicePrefix(endpoints.Name) } else { @@ -273,3 +284,22 @@ func hasLeaderElection(annotations map[string]string) bool { _, ok := annotations[resourcelock.LeaderElectionRecordAnnotationKey] return ok } + +// cloneAndRemoveKeys is a copy of CloneAndRemoveLabels +// it is used here for annotations and labels +func cloneAndRemoveKeys(a map[string]string, keys ...string) map[string]string { + if len(keys) == 0 { + // Don't need to remove a key. + return a + } + // Clone. + newMap := map[string]string{} + for k, v := range a { + newMap[k] = v + } + // remove keys + for _, key := range keys { + delete(newMap, key) + } + return newMap +} diff --git a/pkg/controller/endpointslicemirroring/utils_test.go b/pkg/controller/endpointslicemirroring/utils_test.go index 9944f191edf87..d68f42f36c7b4 100644 --- a/pkg/controller/endpointslicemirroring/utils_test.go +++ b/pkg/controller/endpointslicemirroring/utils_test.go @@ -21,6 +21,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/api/core/v1" discovery "k8s.io/api/discovery/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -37,42 +38,153 @@ func TestNewEndpointSlice(t *testing.T) { ports := []discovery.EndpointPort{{Name: &portName, Protocol: &protocol}} addrType := discovery.AddressTypeIPv4 + gvk := schema.GroupVersionKind{Version: "v1", Kind: "Endpoints"} endpoints := v1.Endpoints{ ObjectMeta: metav1.ObjectMeta{ Name: "foo", Namespace: "test", - Labels: map[string]string{"foo": "bar"}, }, Subsets: []v1.EndpointSubset{{ Ports: []v1.EndpointPort{{Port: 80}}, }}, } - - gvk := schema.GroupVersionKind{Version: "v1", Kind: "Endpoints"} ownerRef := metav1.NewControllerRef(&endpoints, gvk) - expectedSlice := discovery.EndpointSlice{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{ - "foo": "bar", - discovery.LabelServiceName: endpoints.Name, - discovery.LabelManagedBy: controllerName, + testCases := []struct { + name string + tweakEndpoint func(ep *corev1.Endpoints) + expectedSlice discovery.EndpointSlice + }{ + { + name: "create slice from endpoints", + tweakEndpoint: func(ep *corev1.Endpoints) { + }, + expectedSlice: discovery.EndpointSlice{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + discovery.LabelServiceName: endpoints.Name, + discovery.LabelManagedBy: controllerName, + }, + Annotations: map[string]string{}, + GenerateName: fmt.Sprintf("%s-", endpoints.Name), + Namespace: endpoints.Namespace, + OwnerReferences: []metav1.OwnerReference{*ownerRef}, + }, + Ports: ports, + AddressType: addrType, + Endpoints: []discovery.Endpoint{}, + }, + }, + { + name: "create slice from endpoints with annotations", + tweakEndpoint: func(ep *corev1.Endpoints) { + annotations := map[string]string{"foo": "bar"} + ep.Annotations = annotations + }, + expectedSlice: discovery.EndpointSlice{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + discovery.LabelServiceName: endpoints.Name, + discovery.LabelManagedBy: controllerName, + }, + Annotations: map[string]string{"foo": "bar"}, + GenerateName: fmt.Sprintf("%s-", endpoints.Name), + Namespace: endpoints.Namespace, + OwnerReferences: []metav1.OwnerReference{*ownerRef}, + }, + Ports: ports, + AddressType: addrType, + Endpoints: []discovery.Endpoint{}, + }, + }, + { + name: "create slice from endpoints with labels", + tweakEndpoint: func(ep *corev1.Endpoints) { + labels := map[string]string{"foo": "bar"} + ep.Labels = labels + }, + expectedSlice: discovery.EndpointSlice{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "foo": "bar", + discovery.LabelServiceName: endpoints.Name, + discovery.LabelManagedBy: controllerName, + }, + Annotations: map[string]string{}, + GenerateName: fmt.Sprintf("%s-", endpoints.Name), + Namespace: endpoints.Namespace, + OwnerReferences: []metav1.OwnerReference{*ownerRef}, + }, + Ports: ports, + AddressType: addrType, + Endpoints: []discovery.Endpoint{}, + }, + }, + { + name: "create slice from endpoints with labels and annotations", + tweakEndpoint: func(ep *corev1.Endpoints) { + labels := map[string]string{"foo": "bar"} + ep.Labels = labels + annotations := map[string]string{"foo2": "bar2"} + ep.Annotations = annotations + }, + expectedSlice: discovery.EndpointSlice{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "foo": "bar", + discovery.LabelServiceName: endpoints.Name, + discovery.LabelManagedBy: controllerName, + }, + Annotations: map[string]string{"foo2": "bar2"}, + GenerateName: fmt.Sprintf("%s-", endpoints.Name), + Namespace: endpoints.Namespace, + OwnerReferences: []metav1.OwnerReference{*ownerRef}, + }, + Ports: ports, + AddressType: addrType, + Endpoints: []discovery.Endpoint{}, + }, + }, + { + name: "create slice from endpoints with labels and annotations triggertime", + tweakEndpoint: func(ep *corev1.Endpoints) { + labels := map[string]string{"foo": "bar"} + ep.Labels = labels + annotations := map[string]string{ + "foo2": "bar2", + corev1.EndpointsLastChangeTriggerTime: "date", + } + ep.Annotations = annotations + }, + expectedSlice: discovery.EndpointSlice{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "foo": "bar", + discovery.LabelServiceName: endpoints.Name, + discovery.LabelManagedBy: controllerName, + }, + Annotations: map[string]string{"foo2": "bar2"}, + GenerateName: fmt.Sprintf("%s-", endpoints.Name), + Namespace: endpoints.Namespace, + OwnerReferences: []metav1.OwnerReference{*ownerRef}, + }, + Ports: ports, + AddressType: addrType, + Endpoints: []discovery.Endpoint{}, }, - GenerateName: fmt.Sprintf("%s-", endpoints.Name), - OwnerReferences: []metav1.OwnerReference{*ownerRef}, - Namespace: endpoints.Namespace, }, - Ports: ports, - AddressType: addrType, - Endpoints: []discovery.Endpoint{}, } - generatedSlice := newEndpointSlice(&endpoints, ports, addrType, "") - - assert.EqualValues(t, expectedSlice, *generatedSlice) - - if len(endpoints.Labels) > 1 { - t.Errorf("Expected Endpoints labels to not be modified, got %+v", endpoints.Labels) + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + ep := endpoints.DeepCopy() + tc.tweakEndpoint(ep) + generatedSlice := newEndpointSlice(ep, ports, addrType, "") + assert.EqualValues(t, tc.expectedSlice, *generatedSlice) + if len(endpoints.Labels) > 1 { + t.Errorf("Expected Endpoints labels to not be modified, got %+v", endpoints.Labels) + } + }) } } @@ -88,13 +200,13 @@ func newClientset() *fake.Clientset { endpointSlice.ObjectMeta.Name = fmt.Sprintf("%s-%s", endpointSlice.ObjectMeta.GenerateName, rand.String(8)) endpointSlice.ObjectMeta.GenerateName = "" } - endpointSlice.ObjectMeta.ResourceVersion = "100" + endpointSlice.ObjectMeta.Generation = 1 return false, endpointSlice, nil })) client.PrependReactor("update", "endpointslices", k8stesting.ReactionFunc(func(action k8stesting.Action) (bool, runtime.Object, error) { endpointSlice := action.(k8stesting.CreateAction).GetObject().(*discovery.EndpointSlice) - endpointSlice.ObjectMeta.ResourceVersion = "200" + endpointSlice.ObjectMeta.Generation++ return false, endpointSlice, nil })) diff --git a/pkg/controller/nodeipam/ipam/cidrset/cidr_set.go b/pkg/controller/nodeipam/ipam/cidrset/cidr_set.go index 359f830e3a6bb..91a946c9eea4b 100644 --- a/pkg/controller/nodeipam/ipam/cidrset/cidr_set.go +++ b/pkg/controller/nodeipam/ipam/cidrset/cidr_set.go @@ -232,16 +232,20 @@ func (s *CidrSet) Release(cidr *net.IPNet) error { s.Lock() defer s.Unlock() for i := begin; i <= end; i++ { - s.used.SetBit(&s.used, i, 0) - s.allocatedCIDRs-- - cidrSetReleases.WithLabelValues(s.label).Inc() + // Only change the counters if we change the bit to prevent + // double counting. + if s.used.Bit(i) != 0 { + s.used.SetBit(&s.used, i, 0) + s.allocatedCIDRs-- + cidrSetReleases.WithLabelValues(s.label).Inc() + } } cidrSetUsage.WithLabelValues(s.label).Set(float64(s.allocatedCIDRs) / float64(s.maxCIDRs)) return nil } -// Occupy marks the given CIDR range as used. Occupy does not check if the CIDR +// Occupy marks the given CIDR range as used. Occupy succeeds even if the CIDR // range was previously used. func (s *CidrSet) Occupy(cidr *net.IPNet) (err error) { begin, end, err := s.getBeginingAndEndIndices(cidr) @@ -251,9 +255,13 @@ func (s *CidrSet) Occupy(cidr *net.IPNet) (err error) { s.Lock() defer s.Unlock() for i := begin; i <= end; i++ { - s.used.SetBit(&s.used, i, 1) - s.allocatedCIDRs++ - cidrSetAllocations.WithLabelValues(s.label).Inc() + // Only change the counters if we change the bit to prevent + // double counting. + if s.used.Bit(i) == 0 { + s.used.SetBit(&s.used, i, 1) + s.allocatedCIDRs++ + cidrSetAllocations.WithLabelValues(s.label).Inc() + } } cidrSetUsage.WithLabelValues(s.label).Set(float64(s.allocatedCIDRs) / float64(s.maxCIDRs)) diff --git a/pkg/controller/nodeipam/ipam/cidrset/cidr_set_test.go b/pkg/controller/nodeipam/ipam/cidrset/cidr_set_test.go index ead684ea15910..52bb209d7d6ec 100644 --- a/pkg/controller/nodeipam/ipam/cidrset/cidr_set_test.go +++ b/pkg/controller/nodeipam/ipam/cidrset/cidr_set_test.go @@ -316,6 +316,8 @@ func TestCIDRSet_AllocationOccupied(t *testing.T) { for i := numCIDRs / 2; i < numCIDRs; i++ { a.Occupy(cidrs[i]) } + // occupy the first of the last 128 again + a.Occupy(cidrs[numCIDRs/2]) // allocate the first 128 CIDRs again var rcidrs []*net.IPNet @@ -341,6 +343,98 @@ func TestCIDRSet_AllocationOccupied(t *testing.T) { } } +func TestDoubleOccupyRelease(t *testing.T) { + // Run a sequence of operations and check the number of occupied CIDRs + // after each one. + clusterCIDRStr := "10.42.0.0/16" + operations := []struct { + cidrStr string + operation string + numOccupied int + }{ + // Occupy 1 element: +1 + { + cidrStr: "10.42.5.0/24", + operation: "occupy", + numOccupied: 1, + }, + // Occupy 1 more element: +1 + { + cidrStr: "10.42.9.0/24", + operation: "occupy", + numOccupied: 2, + }, + // Occupy 4 elements overlapping with one from the above: +3 + { + cidrStr: "10.42.8.0/22", + operation: "occupy", + numOccupied: 5, + }, + // Occupy an already-coccupied element: no change + { + cidrStr: "10.42.9.0/24", + operation: "occupy", + numOccupied: 5, + }, + // Release an coccupied element: -1 + { + cidrStr: "10.42.9.0/24", + operation: "release", + numOccupied: 4, + }, + // Release an unoccupied element: no change + { + cidrStr: "10.42.9.0/24", + operation: "release", + numOccupied: 4, + }, + // Release 4 elements, only one of which is occupied: -1 + { + cidrStr: "10.42.4.0/22", + operation: "release", + numOccupied: 3, + }, + } + // Check that there are exactly that many allocatable CIDRs after all + // operations have been executed. + numAllocatable24s := (1 << 8) - 3 + + _, clusterCIDR, _ := net.ParseCIDR(clusterCIDRStr) + a, err := NewCIDRSet(clusterCIDR, 24) + if err != nil { + t.Fatalf("Error allocating CIDRSet") + } + + // Execute the operations + for _, op := range operations { + _, cidr, _ := net.ParseCIDR(op.cidrStr) + switch op.operation { + case "occupy": + a.Occupy(cidr) + case "release": + a.Release(cidr) + default: + t.Fatalf("test error: unknown operation %v", op.operation) + } + if a.allocatedCIDRs != op.numOccupied { + t.Fatalf("Expected %d occupied CIDRS, got %d", op.numOccupied, a.allocatedCIDRs) + } + } + + // Make sure that we can allocate exactly `numAllocatable24s` elements. + for i := 0; i < numAllocatable24s; i++ { + _, err := a.AllocateNext() + if err != nil { + t.Fatalf("Expected to be able to allocate %d CIDRS, failed after %d", numAllocatable24s, i) + } + } + + _, err = a.AllocateNext() + if err == nil { + t.Fatalf("Expected to be able to allocate exactly %d CIDRS, got one more", numAllocatable24s) + } +} + func TestGetBitforCIDR(t *testing.T) { cases := []struct { clusterCIDRStr string diff --git a/pkg/controller/nodeipam/ipam/range_allocator_test.go b/pkg/controller/nodeipam/ipam/range_allocator_test.go index 92cf51af2d4d5..e72b7707dca89 100644 --- a/pkg/controller/nodeipam/ipam/range_allocator_test.go +++ b/pkg/controller/nodeipam/ipam/range_allocator_test.go @@ -486,12 +486,55 @@ func TestAllocateOrOccupyCIDRSuccess(t *testing.T) { NodeCIDRMaskSizes: []int{24, 98, 24}, }, }, + { + description: "no double counting", + fakeNodeHandler: &testutil.FakeNodeHandler{ + Existing: []*v1.Node{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node0", + }, + Spec: v1.NodeSpec{ + PodCIDRs: []string{"10.10.0.0/24"}, + }, + }, + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node1", + }, + Spec: v1.NodeSpec{ + PodCIDRs: []string{"10.10.2.0/24"}, + }, + }, + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node2", + }, + }, + }, + Clientset: fake.NewSimpleClientset(), + }, + allocatorParams: CIDRAllocatorParams{ + ClusterCIDRs: func() []*net.IPNet { + _, clusterCIDR, _ := net.ParseCIDR("10.10.0.0/22") + return []*net.IPNet{clusterCIDR} + }(), + ServiceCIDR: nil, + SecondaryServiceCIDR: nil, + NodeCIDRMaskSizes: []int{24}, + }, + expectedAllocatedCIDR: map[int]string{ + 0: "10.10.1.0/24", + }, + }, } // test function testFunc := func(tc testCase) { + fakeNodeInformer := getFakeNodeInformer(tc.fakeNodeHandler) + nodeList, _ := tc.fakeNodeHandler.List(context.TODO(), metav1.ListOptions{}) // Initialize the range allocator. - allocator, err := NewCIDRRangeAllocator(tc.fakeNodeHandler, getFakeNodeInformer(tc.fakeNodeHandler), tc.allocatorParams, nil) + allocator, err := NewCIDRRangeAllocator(tc.fakeNodeHandler, fakeNodeInformer, tc.allocatorParams, nodeList) if err != nil { t.Errorf("%v: failed to create CIDRRangeAllocator with error %v", tc.description, err) return @@ -517,13 +560,23 @@ func TestAllocateOrOccupyCIDRSuccess(t *testing.T) { t.Fatalf("%v: unexpected error when occupying CIDR %v: %v", tc.description, allocated, err) } } - if err := allocator.AllocateOrOccupyCIDR(tc.fakeNodeHandler.Existing[0]); err != nil { - t.Errorf("%v: unexpected error in AllocateOrOccupyCIDR: %v", tc.description, err) + } + + updateCount := 0 + for _, node := range tc.fakeNodeHandler.Existing { + if node.Spec.PodCIDRs == nil { + updateCount++ } - if err := waitForUpdatedNodeWithTimeout(tc.fakeNodeHandler, 1, wait.ForeverTestTimeout); err != nil { - t.Fatalf("%v: timeout while waiting for Node update: %v", tc.description, err) + if err := allocator.AllocateOrOccupyCIDR(node); err != nil { + t.Errorf("%v: unexpected error in AllocateOrOccupyCIDR: %v", tc.description, err) } } + if updateCount != 1 { + t.Fatalf("test error: all tests must update exactly one node") + } + if err := waitForUpdatedNodeWithTimeout(tc.fakeNodeHandler, updateCount, wait.ForeverTestTimeout); err != nil { + t.Fatalf("%v: timeout while waiting for Node update: %v", tc.description, err) + } if len(tc.expectedAllocatedCIDR) == 0 { // nothing further expected diff --git a/pkg/controller/nodelifecycle/node_lifecycle_controller.go b/pkg/controller/nodelifecycle/node_lifecycle_controller.go index 33f4c35b59c62..4f7fe5e1c66ee 100644 --- a/pkg/controller/nodelifecycle/node_lifecycle_controller.go +++ b/pkg/controller/nodelifecycle/node_lifecycle_controller.go @@ -1477,13 +1477,13 @@ func (nc *Controller) markNodeForTainting(node *v1.Node, status v1.ConditionStat defer nc.evictorLock.Unlock() if status == v1.ConditionFalse { if !taintutils.TaintExists(node.Spec.Taints, NotReadyTaintTemplate) { - nc.zoneNoExecuteTainter[utilnode.GetZoneKey(node)].SetRemove(node.Name) + nc.zoneNoExecuteTainter[utilnode.GetZoneKey(node)].Remove(node.Name) } } if status == v1.ConditionUnknown { if !taintutils.TaintExists(node.Spec.Taints, UnreachableTaintTemplate) { - nc.zoneNoExecuteTainter[utilnode.GetZoneKey(node)].SetRemove(node.Name) + nc.zoneNoExecuteTainter[utilnode.GetZoneKey(node)].Remove(node.Name) } } diff --git a/pkg/controller/nodelifecycle/node_lifecycle_controller_test.go b/pkg/controller/nodelifecycle/node_lifecycle_controller_test.go index cd44946c4cb2e..e0830d9763bb2 100644 --- a/pkg/controller/nodelifecycle/node_lifecycle_controller_test.go +++ b/pkg/controller/nodelifecycle/node_lifecycle_controller_test.go @@ -2782,6 +2782,239 @@ func TestApplyNoExecuteTaints(t *testing.T) { } } +// TestApplyNoExecuteTaintsToNodesEnqueueTwice ensures we taint every node with NoExecute even if enqueued twice +func TestApplyNoExecuteTaintsToNodesEnqueueTwice(t *testing.T) { + fakeNow := metav1.Date(2017, 1, 1, 12, 0, 0, 0, time.UTC) + evictionTimeout := 10 * time.Minute + + fakeNodeHandler := &testutil.FakeNodeHandler{ + Existing: []*v1.Node{ + // Unreachable Taint with effect 'NoExecute' should be applied to this node. + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node0", + CreationTimestamp: metav1.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC), + Labels: map[string]string{ + v1.LabelZoneRegionStable: "region1", + v1.LabelZoneFailureDomainStable: "zone1", + v1.LabelZoneRegion: "region1", + v1.LabelZoneFailureDomain: "zone1", + }, + }, + Status: v1.NodeStatus{ + Conditions: []v1.NodeCondition{ + { + Type: v1.NodeReady, + Status: v1.ConditionUnknown, + LastHeartbeatTime: metav1.Date(2015, 1, 1, 12, 0, 0, 0, time.UTC), + LastTransitionTime: metav1.Date(2015, 1, 1, 12, 0, 0, 0, time.UTC), + }, + }, + }, + }, + // Because of the logic that prevents NC from evicting anything when all Nodes are NotReady + // we need second healthy node in tests. + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node1", + CreationTimestamp: metav1.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC), + Labels: map[string]string{ + v1.LabelZoneRegionStable: "region1", + v1.LabelZoneFailureDomainStable: "zone1", + v1.LabelZoneRegion: "region1", + v1.LabelZoneFailureDomain: "zone1", + }, + }, + Status: v1.NodeStatus{ + Conditions: []v1.NodeCondition{ + { + Type: v1.NodeReady, + Status: v1.ConditionTrue, + LastHeartbeatTime: metav1.Date(2017, 1, 1, 12, 0, 0, 0, time.UTC), + LastTransitionTime: metav1.Date(2017, 1, 1, 12, 0, 0, 0, time.UTC), + }, + }, + }, + }, + // NotReady Taint with NoExecute effect should be applied to this node. + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node2", + CreationTimestamp: metav1.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC), + Labels: map[string]string{ + v1.LabelZoneRegionStable: "region1", + v1.LabelZoneFailureDomainStable: "zone1", + v1.LabelZoneRegion: "region1", + v1.LabelZoneFailureDomain: "zone1", + }, + }, + Status: v1.NodeStatus{ + Conditions: []v1.NodeCondition{ + { + Type: v1.NodeReady, + Status: v1.ConditionFalse, + LastHeartbeatTime: metav1.Date(2015, 1, 1, 12, 0, 0, 0, time.UTC), + LastTransitionTime: metav1.Date(2015, 1, 1, 12, 0, 0, 0, time.UTC), + }, + }, + }, + }, + }, + Clientset: fake.NewSimpleClientset(&v1.PodList{Items: []v1.Pod{*testutil.NewPod("pod0", "node0")}}), + } + healthyNodeNewStatus := v1.NodeStatus{ + Conditions: []v1.NodeCondition{ + { + Type: v1.NodeReady, + Status: v1.ConditionTrue, + LastHeartbeatTime: metav1.Date(2017, 1, 1, 12, 10, 0, 0, time.UTC), + LastTransitionTime: metav1.Date(2017, 1, 1, 12, 0, 0, 0, time.UTC), + }, + }, + } + nodeController, _ := newNodeLifecycleControllerFromClient( + fakeNodeHandler, + evictionTimeout, + testRateLimiterQPS, + testRateLimiterQPS, + testLargeClusterThreshold, + testUnhealthyThreshold, + testNodeMonitorGracePeriod, + testNodeStartupGracePeriod, + testNodeMonitorPeriod, + true) + nodeController.now = func() metav1.Time { return fakeNow } + nodeController.recorder = testutil.NewFakeRecorder() + nodeController.getPodsAssignedToNode = fakeGetPodsAssignedToNode(fakeNodeHandler.Clientset) + if err := nodeController.syncNodeStore(fakeNodeHandler); err != nil { + t.Errorf("unexpected error: %v", err) + } + // 1. monitor node health twice, add untainted node once + if err := nodeController.monitorNodeHealth(); err != nil { + t.Errorf("unexpected error: %v", err) + } + if err := nodeController.monitorNodeHealth(); err != nil { + t.Errorf("unexpected error: %v", err) + } + + // 2. mark node0 healthy + node0, err := fakeNodeHandler.Get(context.TODO(), "node0", metav1.GetOptions{}) + if err != nil { + t.Errorf("Can't get current node0...") + return + } + node0.Status = healthyNodeNewStatus + _, err = fakeNodeHandler.UpdateStatus(context.TODO(), node0, metav1.UpdateOptions{}) + if err != nil { + t.Errorf(err.Error()) + return + } + + // add other notReady nodes + fakeNodeHandler.Existing = append(fakeNodeHandler.Existing, []*v1.Node{ + // Unreachable Taint with effect 'NoExecute' should be applied to this node. + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node3", + CreationTimestamp: metav1.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC), + Labels: map[string]string{ + v1.LabelZoneRegionStable: "region1", + v1.LabelZoneFailureDomainStable: "zone1", + v1.LabelZoneRegion: "region1", + v1.LabelZoneFailureDomain: "zone1", + }, + }, + Status: v1.NodeStatus{ + Conditions: []v1.NodeCondition{ + { + Type: v1.NodeReady, + Status: v1.ConditionUnknown, + LastHeartbeatTime: metav1.Date(2015, 1, 1, 12, 0, 0, 0, time.UTC), + LastTransitionTime: metav1.Date(2015, 1, 1, 12, 0, 0, 0, time.UTC), + }, + }, + }, + }, + // Because of the logic that prevents NC from evicting anything when all Nodes are NotReady + // we need second healthy node in tests. + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node4", + CreationTimestamp: metav1.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC), + Labels: map[string]string{ + v1.LabelZoneRegionStable: "region1", + v1.LabelZoneFailureDomainStable: "zone1", + v1.LabelZoneRegion: "region1", + v1.LabelZoneFailureDomain: "zone1", + }, + }, + Status: v1.NodeStatus{ + Conditions: []v1.NodeCondition{ + { + Type: v1.NodeReady, + Status: v1.ConditionTrue, + LastHeartbeatTime: metav1.Date(2017, 1, 1, 12, 0, 0, 0, time.UTC), + LastTransitionTime: metav1.Date(2017, 1, 1, 12, 0, 0, 0, time.UTC), + }, + }, + }, + }, + // NotReady Taint with NoExecute effect should be applied to this node. + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node5", + CreationTimestamp: metav1.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC), + Labels: map[string]string{ + v1.LabelZoneRegionStable: "region1", + v1.LabelZoneFailureDomainStable: "zone1", + v1.LabelZoneRegion: "region1", + v1.LabelZoneFailureDomain: "zone1", + }, + }, + Status: v1.NodeStatus{ + Conditions: []v1.NodeCondition{ + { + Type: v1.NodeReady, + Status: v1.ConditionFalse, + LastHeartbeatTime: metav1.Date(2015, 1, 1, 12, 0, 0, 0, time.UTC), + LastTransitionTime: metav1.Date(2015, 1, 1, 12, 0, 0, 0, time.UTC), + }, + }, + }, + }, + }...) + if err := nodeController.syncNodeStore(fakeNodeHandler); err != nil { + t.Errorf("unexpected error: %v", err) + } + // 3. start monitor node health again, add untainted node twice, construct UniqueQueue with duplicated node cache + if err := nodeController.monitorNodeHealth(); err != nil { + t.Errorf("unexpected error: %v", err) + } + + // 4. do NoExecute taint pass + // when processing with node0, condition.Status is NodeReady, and return true with default case + // then remove the set value and queue value both, the taint job never stuck + nodeController.doNoExecuteTaintingPass() + + // 5. get node3 and node5, see if it has ready got NoExecute taint + node3, err := fakeNodeHandler.Get(context.TODO(), "node3", metav1.GetOptions{}) + if err != nil { + t.Errorf("Can't get current node3...") + return + } + if !taintutils.TaintExists(node3.Spec.Taints, UnreachableTaintTemplate) || len(node3.Spec.Taints) == 0 { + t.Errorf("Not found taint %v in %v, which should be present in %s", UnreachableTaintTemplate, node3.Spec.Taints, node3.Name) + } + node5, err := fakeNodeHandler.Get(context.TODO(), "node5", metav1.GetOptions{}) + if err != nil { + t.Errorf("Can't get current node5...") + return + } + if !taintutils.TaintExists(node5.Spec.Taints, NotReadyTaintTemplate) || len(node5.Spec.Taints) == 0 { + t.Errorf("Not found taint %v in %v, which should be present in %s", NotReadyTaintTemplate, node5.Spec.Taints, node5.Name) + } +} + func TestSwapUnreachableNotReadyTaints(t *testing.T) { fakeNow := metav1.Date(2017, 1, 1, 12, 0, 0, 0, time.UTC) evictionTimeout := 10 * time.Minute diff --git a/pkg/controller/nodelifecycle/scheduler/rate_limited_queue.go b/pkg/controller/nodelifecycle/scheduler/rate_limited_queue.go index 26bcd29d84015..e343fa59667e3 100644 --- a/pkg/controller/nodelifecycle/scheduler/rate_limited_queue.go +++ b/pkg/controller/nodelifecycle/scheduler/rate_limited_queue.go @@ -194,15 +194,6 @@ func (q *UniqueQueue) Clear() { } } -// SetRemove remove value from the set if value existed -func (q *UniqueQueue) SetRemove(value string) { - q.lock.Lock() - defer q.lock.Unlock() - if q.set.Has(value) { - q.set.Delete(value) - } -} - // RateLimitedTimedQueue is a unique item priority queue ordered by // the expected next time of execution. It is also rate limited. type RateLimitedTimedQueue struct { @@ -289,11 +280,6 @@ func (q *RateLimitedTimedQueue) Clear() { q.queue.Clear() } -// SetRemove remove value from the set of the queue -func (q *RateLimitedTimedQueue) SetRemove(value string) { - q.queue.SetRemove(value) -} - // SwapLimiter safely swaps current limiter for this queue with the // passed one if capacities or qps's differ. func (q *RateLimitedTimedQueue) SwapLimiter(newQPS float32) { diff --git a/pkg/controller/nodelifecycle/scheduler/rate_limited_queue_test.go b/pkg/controller/nodelifecycle/scheduler/rate_limited_queue_test.go index 00411792df8ab..644b6569039b4 100644 --- a/pkg/controller/nodelifecycle/scheduler/rate_limited_queue_test.go +++ b/pkg/controller/nodelifecycle/scheduler/rate_limited_queue_test.go @@ -282,17 +282,6 @@ func TestClear(t *testing.T) { } } -func TestSetRemove(t *testing.T) { - evictor := NewRateLimitedTimedQueue(flowcontrol.NewFakeAlwaysRateLimiter()) - evictor.Add("first", "11111") - - evictor.SetRemove("first") - - if evictor.queue.set.Len() != 0 { - t.Fatalf("SetRemove should remove element from the set.") - } -} - func TestSwapLimiter(t *testing.T) { evictor := NewRateLimitedTimedQueue(flowcontrol.NewFakeAlwaysRateLimiter()) fakeAlways := flowcontrol.NewFakeAlwaysRateLimiter() diff --git a/pkg/controller/podautoscaler/horizontal.go b/pkg/controller/podautoscaler/horizontal.go index 1dd7588973fc6..ff0d4c9b2c2a3 100644 --- a/pkg/controller/podautoscaler/horizontal.go +++ b/pkg/controller/podautoscaler/horizontal.go @@ -564,7 +564,6 @@ func (a *HorizontalController) reconcileAutoscaler(hpav1Shared *autoscalingv1.Ho } mappings, err := a.mapper.RESTMappings(targetGK) - mappings, err = overrideMappingsForOapiDeploymentConfig(mappings, err, targetGK) if err != nil { a.eventRecorder.Event(hpa, v1.EventTypeWarning, "FailedGetScale", err.Error()) setCondition(hpa, autoscalingv2.AbleToScale, v1.ConditionFalse, "FailedGetScale", "the HPA controller was unable to get the target's current scale: %v", err) diff --git a/pkg/controller/podautoscaler/patch_dc.go b/pkg/controller/podautoscaler/patch_dc.go deleted file mode 100644 index 6c5ef50afc8f2..0000000000000 --- a/pkg/controller/podautoscaler/patch_dc.go +++ /dev/null @@ -1,20 +0,0 @@ -package podautoscaler - -import ( - "k8s.io/apimachinery/pkg/runtime/schema" - - apimeta "k8s.io/apimachinery/pkg/api/meta" -) - -func overrideMappingsForOapiDeploymentConfig(mappings []*apimeta.RESTMapping, err error, targetGK schema.GroupKind) ([]*apimeta.RESTMapping, error) { - if (targetGK == schema.GroupKind{Kind: "DeploymentConfig"}) { - err = nil - mappings = []*apimeta.RESTMapping{ - { - Resource: schema.GroupVersionResource{Group: "apps.openshift.io", Version: "v1", Resource: "deploymentconfigs"}, - GroupVersionKind: schema.GroupVersionKind{Group: "apps.openshift.io", Version: "v1", Kind: "DeploymentConfig"}, - }, - } - } - return mappings, err -} diff --git a/pkg/controller/serviceaccount/tokens_controller.go b/pkg/controller/serviceaccount/tokens_controller.go index 577929ab3a673..f490ad23ab0d5 100644 --- a/pkg/controller/serviceaccount/tokens_controller.go +++ b/pkg/controller/serviceaccount/tokens_controller.go @@ -42,8 +42,6 @@ import ( "k8s.io/kubernetes/pkg/serviceaccount" ) -const ServiceServingCASecretKey = "service-ca.crt" - // RemoveTokenBackoff is the recommended (empirical) retry interval for removing // a secret reference from a service account when the secret is deleted. It is // exported for use by custom secret controllers. @@ -69,9 +67,6 @@ type TokensControllerOptions struct { // MaxRetries controls the maximum number of times a particular key is retried before giving up // If zero, a default max is used MaxRetries int - - // This CA will be added in the secrets of service accounts - ServiceServingCA []byte } // NewTokensController returns a new *TokensController. @@ -82,10 +77,9 @@ func NewTokensController(serviceAccounts informers.ServiceAccountInformer, secre } e := &TokensController{ - client: cl, - token: options.TokenGenerator, - rootCA: options.RootCA, - serviceServingCA: options.ServiceServingCA, + client: cl, + token: options.TokenGenerator, + rootCA: options.RootCA, syncServiceAccountQueue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "serviceaccount_tokens_service"), syncSecretQueue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "serviceaccount_tokens_secret"), @@ -140,8 +134,7 @@ type TokensController struct { client clientset.Interface token serviceaccount.TokenGenerator - rootCA []byte - serviceServingCA []byte + rootCA []byte serviceAccounts listersv1.ServiceAccountLister // updatedSecrets is a wrapper around the shared cache which allows us to record @@ -412,9 +405,6 @@ func (e *TokensController) ensureReferencedToken(serviceAccount *v1.ServiceAccou if e.rootCA != nil && len(e.rootCA) > 0 { secret.Data[v1.ServiceAccountRootCAKey] = e.rootCA } - if e.serviceServingCA != nil && len(e.serviceServingCA) > 0 { - secret.Data[ServiceServingCASecretKey] = e.serviceServingCA - } // Save the secret createdToken, err := e.client.CoreV1().Secrets(serviceAccount.Namespace).Create(context.TODO(), secret, metav1.CreateOptions{}) @@ -508,23 +498,22 @@ func (e *TokensController) hasReferencedToken(serviceAccount *v1.ServiceAccount) return false, nil } -func (e *TokensController) secretUpdateNeeded(secret *v1.Secret) (bool, bool, bool, bool) { +func (e *TokensController) secretUpdateNeeded(secret *v1.Secret) (bool, bool, bool) { caData := secret.Data[v1.ServiceAccountRootCAKey] needsCA := len(e.rootCA) > 0 && !bytes.Equal(caData, e.rootCA) - needsServiceServingCA := len(e.serviceServingCA) > 0 && bytes.Compare(secret.Data[ServiceServingCASecretKey], e.serviceServingCA) != 0 needsNamespace := len(secret.Data[v1.ServiceAccountNamespaceKey]) == 0 tokenData := secret.Data[v1.ServiceAccountTokenKey] needsToken := len(tokenData) == 0 - return needsCA, needsServiceServingCA, needsNamespace, needsToken + return needsCA, needsNamespace, needsToken } // generateTokenIfNeeded populates the token data for the given Secret if not already set func (e *TokensController) generateTokenIfNeeded(serviceAccount *v1.ServiceAccount, cachedSecret *v1.Secret) ( /* retry */ bool, error) { // Check the cached secret to see if changes are needed - if needsCA, needsServiceServingCA, needsNamespace, needsToken := e.secretUpdateNeeded(cachedSecret); !needsCA && !needsServiceServingCA && !needsToken && !needsNamespace { + if needsCA, needsNamespace, needsToken := e.secretUpdateNeeded(cachedSecret); !needsCA && !needsToken && !needsNamespace { return false, nil } @@ -543,8 +532,8 @@ func (e *TokensController) generateTokenIfNeeded(serviceAccount *v1.ServiceAccou return false, nil } - needsCA, needsServiceServingCA, needsNamespace, needsToken := e.secretUpdateNeeded(liveSecret) - if !needsCA && !needsServiceServingCA && !needsToken && !needsNamespace { + needsCA, needsNamespace, needsToken := e.secretUpdateNeeded(liveSecret) + if !needsCA && !needsToken && !needsNamespace { return false, nil } @@ -559,9 +548,6 @@ func (e *TokensController) generateTokenIfNeeded(serviceAccount *v1.ServiceAccou if needsCA { liveSecret.Data[v1.ServiceAccountRootCAKey] = e.rootCA } - if needsServiceServingCA { - liveSecret.Data[ServiceServingCASecretKey] = e.serviceServingCA - } // Set the namespace if needsNamespace { liveSecret.Data[v1.ServiceAccountNamespaceKey] = []byte(liveSecret.Namespace) diff --git a/pkg/controller/statefulset/stateful_pod_control.go b/pkg/controller/statefulset/stateful_pod_control.go index eff625d706848..b995d0892f5b2 100644 --- a/pkg/controller/statefulset/stateful_pod_control.go +++ b/pkg/controller/statefulset/stateful_pod_control.go @@ -181,7 +181,7 @@ func (spc *realStatefulPodControl) recordClaimEvent(verb string, set *apps.State func (spc *realStatefulPodControl) createPersistentVolumeClaims(set *apps.StatefulSet, pod *v1.Pod) error { var errs []error for _, claim := range getPersistentVolumeClaims(set, pod) { - _, err := spc.pvcLister.PersistentVolumeClaims(claim.Namespace).Get(claim.Name) + pvc, err := spc.pvcLister.PersistentVolumeClaims(claim.Namespace).Get(claim.Name) switch { case apierrors.IsNotFound(err): _, err := spc.client.CoreV1().PersistentVolumeClaims(claim.Namespace).Create(context.TODO(), &claim, metav1.CreateOptions{}) @@ -194,6 +194,10 @@ func (spc *realStatefulPodControl) createPersistentVolumeClaims(set *apps.Statef case err != nil: errs = append(errs, fmt.Errorf("failed to retrieve PVC %s: %s", claim.Name, err)) spc.recordClaimEvent("create", set, pod, &claim, err) + case err == nil: + if pvc.DeletionTimestamp != nil { + errs = append(errs, fmt.Errorf("pvc %s is being deleted", claim.Name)) + } } // TODO: Check resource requirements and accessmodes, update if necessary } diff --git a/pkg/controller/statefulset/stateful_pod_control_test.go b/pkg/controller/statefulset/stateful_pod_control_test.go index 8c924e8c0a12e..b4403b06a595b 100644 --- a/pkg/controller/statefulset/stateful_pod_control_test.go +++ b/pkg/controller/statefulset/stateful_pod_control_test.go @@ -20,6 +20,7 @@ import ( "errors" "strings" "testing" + "time" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" @@ -29,6 +30,7 @@ import ( "k8s.io/client-go/tools/record" "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes/fake" corelisters "k8s.io/client-go/listers/core/v1" _ "k8s.io/kubernetes/pkg/apis/apps/install" @@ -128,6 +130,42 @@ func TestStatefulPodControlCreatePodPvcCreateFailure(t *testing.T) { } } } +func TestStatefulPodControlCreatePodPvcDeleting(t *testing.T) { + recorder := record.NewFakeRecorder(10) + set := newStatefulSet(3) + pod := newStatefulSetPod(set, 0) + fakeClient := &fake.Clientset{} + pvcs := getPersistentVolumeClaims(set, pod) + pvcIndexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) + deleteTime := time.Date(2019, time.January, 1, 0, 0, 0, 0, time.UTC) + for k := range pvcs { + pvc := pvcs[k] + pvc.DeletionTimestamp = &metav1.Time{Time: deleteTime} + pvcIndexer.Add(&pvc) + } + pvcLister := corelisters.NewPersistentVolumeClaimLister(pvcIndexer) + control := NewRealStatefulPodControl(fakeClient, nil, nil, pvcLister, recorder) + fakeClient.AddReactor("create", "persistentvolumeclaims", func(action core.Action) (bool, runtime.Object, error) { + create := action.(core.CreateAction) + return true, create.GetObject(), nil + }) + fakeClient.AddReactor("create", "pods", func(action core.Action) (bool, runtime.Object, error) { + create := action.(core.CreateAction) + return true, create.GetObject(), nil + }) + if err := control.CreateStatefulPod(set, pod); err == nil { + t.Error("Failed to produce error on deleting PVC") + } + events := collectEvents(recorder.Events) + if eventCount := len(events); eventCount != 1 { + t.Errorf("Deleting PVC: got %d events, but want 1", eventCount) + } + for i := range events { + if !strings.Contains(events[i], v1.EventTypeWarning) { + t.Errorf("Found unexpected non-warning event %s", events[i]) + } + } +} type fakeIndexer struct { cache.Indexer diff --git a/pkg/controller/volume/attachdetach/BUILD b/pkg/controller/volume/attachdetach/BUILD index cb412ec61f81d..970312bc6fde1 100644 --- a/pkg/controller/volume/attachdetach/BUILD +++ b/pkg/controller/volume/attachdetach/BUILD @@ -20,6 +20,7 @@ go_library( "//pkg/controller/volume/common:go_default_library", "//pkg/features:go_default_library", "//pkg/volume:go_default_library", + "//pkg/volume/csi:go_default_library", "//pkg/volume/csimigration:go_default_library", "//pkg/volume/util:go_default_library", "//pkg/volume/util/operationexecutor:go_default_library", @@ -59,13 +60,18 @@ go_test( "//pkg/controller:go_default_library", "//pkg/controller/volume/attachdetach/cache:go_default_library", "//pkg/controller/volume/attachdetach/testing:go_default_library", + "//pkg/features:go_default_library", "//pkg/volume:go_default_library", + "//pkg/volume/csi:go_default_library", + "//pkg/volume/util:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", "//staging/src/k8s.io/client-go/informers:go_default_library", "//staging/src/k8s.io/client-go/tools/cache:go_default_library", + "//staging/src/k8s.io/component-base/featuregate/testing:go_default_library", ], ) diff --git a/pkg/controller/volume/attachdetach/attach_detach_controller.go b/pkg/controller/volume/attachdetach/attach_detach_controller.go index dfcfe7b50d965..d4492b7a840e7 100644 --- a/pkg/controller/volume/attachdetach/attach_detach_controller.go +++ b/pkg/controller/volume/attachdetach/attach_detach_controller.go @@ -56,6 +56,7 @@ import ( "k8s.io/kubernetes/pkg/controller/volume/common" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/volume" + "k8s.io/kubernetes/pkg/volume/csi" "k8s.io/kubernetes/pkg/volume/csimigration" volumeutil "k8s.io/kubernetes/pkg/volume/util" "k8s.io/kubernetes/pkg/volume/util/operationexecutor" @@ -385,7 +386,11 @@ func (adc *attachDetachController) populateActualStateOfWorld() error { adc.addNodeToDswp(node, types.NodeName(node.Name)) } } - return nil + err = adc.processVolumeAttachments() + if err != nil { + klog.Errorf("Failed to process volume attachments: %v", err) + } + return err } func (adc *attachDetachController) getNodeVolumeDevicePath( @@ -455,7 +460,12 @@ func (adc *attachDetachController) populateDesiredStateOfWorld() error { err) continue } - if adc.actualStateOfWorld.IsVolumeAttachedToNode(volumeName, nodeName) { + attachState := adc.actualStateOfWorld.GetAttachState(volumeName, nodeName) + if attachState == cache.AttachStateAttached { + klog.V(10).Infof("Volume %q is attached to node %q. Marking as attached in ActualStateOfWorld", + volumeName, + nodeName, + ) devicePath, err := adc.getNodeVolumeDevicePath(volumeName, nodeName) if err != nil { klog.Errorf("Failed to find device path: %v", err) @@ -673,6 +683,95 @@ func (adc *attachDetachController) processVolumesInUse( } } +// Process Volume-Attachment objects. +// Should be called only after populating attached volumes in the ASW. +// For each VA object, this function checks if its present in the ASW. +// If not, adds the volume to ASW as an "uncertain" attachment. +// In the reconciler, the logic checks if the volume is present in the DSW; +// if yes, the reconciler will attempt attach on the volume; +// if not (could be a dangling attachment), the reconciler will detach this volume. +func (adc *attachDetachController) processVolumeAttachments() error { + vas, err := adc.volumeAttachmentLister.List(labels.Everything()) + if err != nil { + klog.Errorf("failed to list VolumeAttachment objects: %v", err) + return err + } + for _, va := range vas { + nodeName := types.NodeName(va.Spec.NodeName) + pvName := va.Spec.Source.PersistentVolumeName + if pvName == nil { + // Currently VA objects are created for CSI volumes only. nil pvName is unexpected, generate a warning + klog.Warningf("Skipping the va as its pvName is nil, va.Name: %q, nodeName: %q", + va.Name, nodeName) + continue + } + pv, err := adc.pvLister.Get(*pvName) + if err != nil { + klog.Errorf("Unable to lookup pv object for: %q, err: %v", *pvName, err) + continue + } + + var plugin volume.AttachableVolumePlugin + volumeSpec := volume.NewSpecFromPersistentVolume(pv, false) + + // Consult csiMigratedPluginManager first before querying the plugins registered during runtime in volumePluginMgr. + // In-tree plugins that provisioned PVs will not be registered anymore after migration to CSI, once the respective + // feature gate is enabled. + if inTreePluginName, err := adc.csiMigratedPluginManager.GetInTreePluginNameFromSpec(pv, nil); err == nil { + if adc.csiMigratedPluginManager.IsMigrationEnabledForPlugin(inTreePluginName) { + // PV is migrated and should be handled by the CSI plugin instead of the in-tree one + plugin, _ = adc.volumePluginMgr.FindAttachablePluginByName(csi.CSIPluginName) + // podNamespace is not needed here for Azurefile as the volumeName generated will be the same with or without podNamespace + volumeSpec, err = csimigration.TranslateInTreeSpecToCSI(volumeSpec, "" /* podNamespace */, adc.intreeToCSITranslator) + if err != nil { + klog.Errorf( + "Failed to translate intree volumeSpec to CSI volumeSpec for volume:%q, va.Name:%q, nodeName:%q: %s. Error: %v", + *pvName, + va.Name, + nodeName, + inTreePluginName, + err) + continue + } + } + } + + if plugin == nil { + plugin, err = adc.volumePluginMgr.FindAttachablePluginBySpec(volumeSpec) + if err != nil || plugin == nil { + // Currently VA objects are created for CSI volumes only. nil plugin is unexpected, generate a warning + klog.Warningf( + "Skipping processing the volume %q on nodeName: %q, no attacher interface found. err=%v", + *pvName, + nodeName, + err) + continue + } + } + + volumeName, err := volumeutil.GetUniqueVolumeNameFromSpec(plugin, volumeSpec) + if err != nil { + klog.Errorf( + "Failed to find unique name for volume:%q, va.Name:%q, nodeName:%q: %v", + *pvName, + va.Name, + nodeName, + err) + continue + } + attachState := adc.actualStateOfWorld.GetAttachState(volumeName, nodeName) + if attachState == cache.AttachStateDetached { + klog.V(1).Infof("Marking volume attachment as uncertain as volume:%q (%q) is not attached (%v)", + volumeName, nodeName, attachState) + err = adc.actualStateOfWorld.MarkVolumeAsUncertain(volumeName, volumeSpec, nodeName) + if err != nil { + klog.Errorf("MarkVolumeAsUncertain fail to add the volume %q (%q) to ASW. err: %s", volumeName, nodeName, err) + } + } + } + return nil +} + var _ volume.VolumeHost = &attachDetachController{} var _ volume.AttachDetachVolumeHost = &attachDetachController{} diff --git a/pkg/controller/volume/attachdetach/attach_detach_controller_test.go b/pkg/controller/volume/attachdetach/attach_detach_controller_test.go index 1698856343819..14809b149fdc1 100644 --- a/pkg/controller/volume/attachdetach/attach_detach_controller_test.go +++ b/pkg/controller/volume/attachdetach/attach_detach_controller_test.go @@ -26,12 +26,22 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/types" + utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/informers" kcache "k8s.io/client-go/tools/cache" + featuregatetesting "k8s.io/component-base/featuregate/testing" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller/volume/attachdetach/cache" controllervolumetesting "k8s.io/kubernetes/pkg/controller/volume/attachdetach/testing" + "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/volume" + "k8s.io/kubernetes/pkg/volume/csi" + "k8s.io/kubernetes/pkg/volume/util" +) + +const ( + intreePDUniqueNamePrefix = "kubernetes.io/gce-pd/" + csiPDUniqueNamePrefix = "kubernetes.io/csi/pd.csi.storage.gke.io^projects/UNSPECIFIED/zones/UNSPECIFIED/disks/" ) func Test_NewAttachDetachController_Positive(t *testing.T) { @@ -71,18 +81,21 @@ func Test_AttachDetachControllerStateOfWolrdPopulators_Positive(t *testing.T) { nodeInformer := informerFactory.Core().V1().Nodes() pvcInformer := informerFactory.Core().V1().PersistentVolumeClaims() pvInformer := informerFactory.Core().V1().PersistentVolumes() + volumeAttachmentInformer := informerFactory.Storage().V1().VolumeAttachments() adc := &attachDetachController{ - kubeClient: fakeKubeClient, - pvcLister: pvcInformer.Lister(), - pvcsSynced: pvcInformer.Informer().HasSynced, - pvLister: pvInformer.Lister(), - pvsSynced: pvInformer.Informer().HasSynced, - podLister: podInformer.Lister(), - podsSynced: podInformer.Informer().HasSynced, - nodeLister: nodeInformer.Lister(), - nodesSynced: nodeInformer.Informer().HasSynced, - cloud: nil, + kubeClient: fakeKubeClient, + pvcLister: pvcInformer.Lister(), + pvcsSynced: pvcInformer.Informer().HasSynced, + pvLister: pvInformer.Lister(), + pvsSynced: pvInformer.Informer().HasSynced, + podLister: podInformer.Lister(), + podsSynced: podInformer.Informer().HasSynced, + nodeLister: nodeInformer.Lister(), + nodesSynced: nodeInformer.Informer().HasSynced, + volumeAttachmentLister: volumeAttachmentInformer.Lister(), + volumeAttachmentSynced: volumeAttachmentInformer.Informer().HasSynced, + cloud: nil, } // Act @@ -115,8 +128,8 @@ func Test_AttachDetachControllerStateOfWolrdPopulators_Positive(t *testing.T) { for _, node := range nodes { nodeName := types.NodeName(node.Name) for _, attachedVolume := range node.Status.VolumesAttached { - found := adc.actualStateOfWorld.IsVolumeAttachedToNode(attachedVolume.Name, nodeName) - if !found { + attachedState := adc.actualStateOfWorld.GetAttachState(attachedVolume.Name, nodeName) + if attachedState != cache.AttachStateAttached { t.Fatalf("Run failed with error. Node %s, volume %s not found", nodeName, attachedVolume.Name) } } @@ -332,3 +345,293 @@ func attachDetachRecoveryTestCase(t *testing.T, extraPods1 []*v1.Pod, extraPods2 } } + +type vaTest struct { + testName string + volName string + podName string + podNodeName string + pvName string + vaName string + vaNodeName string + vaAttachStatus bool + csiMigration bool + expected_attaches map[string][]string + expected_detaches map[string][]string + expectedASWAttachState cache.AttachState +} + +func Test_ADC_VolumeAttachmentRecovery(t *testing.T) { + for _, tc := range []vaTest{ + { // pod is scheduled + testName: "Scheduled pod", + volName: "vol1", + podName: "pod1", + podNodeName: "mynode-1", + pvName: "pv1", + vaName: "va1", + vaNodeName: "mynode-1", + vaAttachStatus: false, + expected_attaches: map[string][]string{"mynode-1": {"vol1"}}, + expected_detaches: map[string][]string{}, + }, + { // pod is deleted, attach status:true, verify dangling volume is detached + testName: "VA status is attached", + volName: "vol1", + pvName: "pv1", + vaName: "va1", + vaNodeName: "mynode-1", + vaAttachStatus: true, + expected_attaches: map[string][]string{}, + expected_detaches: map[string][]string{"mynode-1": {"vol1"}}, + }, + { // pod is deleted, attach status:false, verify dangling volume is detached + testName: "VA status is unattached", + volName: "vol1", + pvName: "pv1", + vaName: "va1", + vaNodeName: "mynode-1", + vaAttachStatus: false, + expected_attaches: map[string][]string{}, + expected_detaches: map[string][]string{"mynode-1": {"vol1"}}, + }, + { // pod is scheduled, volume is migrated, attach status:false, verify volume is marked as attached + testName: "Scheduled Pod with migrated PV", + volName: "vol1", + podNodeName: "mynode-1", + pvName: "pv1", + vaName: "va1", + vaNodeName: "mynode-1", + vaAttachStatus: false, + csiMigration: true, + expectedASWAttachState: cache.AttachStateAttached, + }, + { // pod is deleted, volume is migrated, attach status:false, verify volume is marked as uncertain + testName: "Deleted Pod with migrated PV", + volName: "vol1", + pvName: "pv1", + vaName: "va1", + vaNodeName: "mynode-1", + vaAttachStatus: false, + csiMigration: true, + expectedASWAttachState: cache.AttachStateUncertain, + }, + } { + t.Run(tc.testName, func(t *testing.T) { + volumeAttachmentRecoveryTestCase(t, tc) + }) + } +} + +func volumeAttachmentRecoveryTestCase(t *testing.T, tc vaTest) { + fakeKubeClient := controllervolumetesting.CreateTestClient() + informerFactory := informers.NewSharedInformerFactory(fakeKubeClient, time.Second*1) + var plugins []volume.VolumePlugin + if tc.csiMigration { + defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigration, tc.csiMigration)() + defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, tc.csiMigration)() + defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCEComplete, tc.csiMigration)() + + // if InTreePluginGCEUnregister is enabled, only the CSI plugin is registered but not the in-tree one + plugins = append(plugins, csi.ProbeVolumePlugins()...) + } else { + plugins = controllervolumetesting.CreateTestPlugin() + } + nodeInformer := informerFactory.Core().V1().Nodes().Informer() + podInformer := informerFactory.Core().V1().Pods().Informer() + pvInformer := informerFactory.Core().V1().PersistentVolumes().Informer() + vaInformer := informerFactory.Storage().V1().VolumeAttachments().Informer() + + // Create the controller + adcObj, err := NewAttachDetachController( + fakeKubeClient, + informerFactory.Core().V1().Pods(), + informerFactory.Core().V1().Nodes(), + informerFactory.Core().V1().PersistentVolumeClaims(), + informerFactory.Core().V1().PersistentVolumes(), + informerFactory.Storage().V1().CSINodes(), + informerFactory.Storage().V1().CSIDrivers(), + informerFactory.Storage().V1().VolumeAttachments(), + nil, /* cloud */ + plugins, + nil, /* prober */ + false, + 1*time.Second, + DefaultTimerConfig, + ) + if err != nil { + t.Fatalf("NewAttachDetachController failed with error. Expected: Actual: <%v>", err) + } + adc := adcObj.(*attachDetachController) + + // Add existing objects (created by testplugin) to the respective informers + pods, err := fakeKubeClient.CoreV1().Pods(v1.NamespaceAll).List(context.TODO(), metav1.ListOptions{}) + if err != nil { + t.Fatalf("Run failed with error. Expected: Actual: %v", err) + } + for _, pod := range pods.Items { + podToAdd := pod + podInformer.GetIndexer().Add(&podToAdd) + } + nodes, err := fakeKubeClient.CoreV1().Nodes().List(context.TODO(), metav1.ListOptions{}) + if err != nil { + t.Fatalf("Run failed with error. Expected: Actual: %v", err) + } + for _, node := range nodes.Items { + nodeToAdd := node + nodeInformer.GetIndexer().Add(&nodeToAdd) + } + + if tc.csiMigration { + newNode := &v1.Node{ + ObjectMeta: metav1.ObjectMeta{ + Name: tc.podNodeName, + Labels: map[string]string{ + "name": tc.podNodeName, + }, + Annotations: map[string]string{ + util.ControllerManagedAttachAnnotation: "true", + }, + }, + Status: v1.NodeStatus{ + VolumesAttached: []v1.AttachedVolume{ + { + Name: v1.UniqueVolumeName(csiPDUniqueNamePrefix + tc.volName), + DevicePath: "fake/path", + }, + }, + }, + } + _, err = adc.kubeClient.CoreV1().Nodes().Update(context.TODO(), newNode, metav1.UpdateOptions{}) + if err != nil { + t.Fatalf("Run failed with error. Failed to create a new pod: <%v>", err) + } + nodeInformer.GetIndexer().Add(&newNode) + } + // Create and add objects requested by the test + if tc.podName != "" { + newPod := controllervolumetesting.NewPodWithVolume(tc.podName, tc.volName, tc.podNodeName) + _, err = adc.kubeClient.CoreV1().Pods(newPod.ObjectMeta.Namespace).Create(context.TODO(), newPod, metav1.CreateOptions{}) + if err != nil { + t.Fatalf("Run failed with error. Failed to create a new pod: <%v>", err) + } + podInformer.GetIndexer().Add(newPod) + } + if tc.pvName != "" { + newPv := controllervolumetesting.NewPV(tc.pvName, tc.volName) + _, err = adc.kubeClient.CoreV1().PersistentVolumes().Create(context.TODO(), newPv, metav1.CreateOptions{}) + if err != nil { + t.Fatalf("Run failed with error. Failed to create a new pv: <%v>", err) + } + pvInformer.GetIndexer().Add(newPv) + } + if tc.vaName != "" { + newVa := controllervolumetesting.NewVolumeAttachment(tc.vaName, tc.pvName, tc.vaNodeName, tc.vaAttachStatus) + _, err = adc.kubeClient.StorageV1().VolumeAttachments().Create(context.TODO(), newVa, metav1.CreateOptions{}) + if err != nil { + t.Fatalf("Run failed with error. Failed to create a new volumeAttachment: <%v>", err) + } + vaInformer.GetIndexer().Add(newVa) + } + + // Makesure the informer cache is synced + stopCh := make(chan struct{}) + informerFactory.Start(stopCh) + + if !kcache.WaitForNamedCacheSync("attach detach", stopCh, + informerFactory.Core().V1().Pods().Informer().HasSynced, + informerFactory.Core().V1().Nodes().Informer().HasSynced, + informerFactory.Core().V1().PersistentVolumes().Informer().HasSynced, + informerFactory.Storage().V1().VolumeAttachments().Informer().HasSynced) { + t.Fatalf("Error waiting for the informer caches to sync") + } + + // Populate ASW + err = adc.populateActualStateOfWorld() + if err != nil { + t.Fatalf("Run failed with error. Expected: Actual: <%v>", err) + } + + // Populate DSW + err = adc.populateDesiredStateOfWorld() + if err != nil { + t.Fatalf("Run failed with error. Expected: Actual: %v", err) + } + // Run reconciler and DSW populator loops + go adc.reconciler.Run(stopCh) + go adc.desiredStateOfWorldPopulator.Run(stopCh) + defer close(stopCh) + + if tc.csiMigration { + verifyExpectedVolumeState(t, adc, tc) + } else { + // Verify if expected attaches and detaches have happened + testPlugin := plugins[0].(*controllervolumetesting.TestPlugin) + verifyAttachDetachCalls(t, testPlugin, tc) + } + +} + +func verifyExpectedVolumeState(t *testing.T, adc *attachDetachController, tc vaTest) { + // Since csi migration is turned on, the attach state for the PV should be in CSI format. + attachedState := adc.actualStateOfWorld.GetAttachState( + v1.UniqueVolumeName(csiPDUniqueNamePrefix+tc.volName), types.NodeName(tc.vaNodeName)) + if attachedState != tc.expectedASWAttachState { + t.Fatalf("Expected attachedState %v, but it is %v", tc.expectedASWAttachState, attachedState) + } + + // kubernetes.io/gce-pd/ should not be marked when CSI Migration is on + // so it should be in detach status + attachedState = adc.actualStateOfWorld.GetAttachState( + v1.UniqueVolumeName(intreePDUniqueNamePrefix+tc.volName), types.NodeName(tc.vaNodeName)) + if attachedState != cache.AttachStateDetached { + t.Fatalf("Expected attachedState not to be %v, but it is %v", cache.AttachStateDetached, attachedState) + } +} + +func verifyAttachDetachCalls(t *testing.T, testPlugin *controllervolumetesting.TestPlugin, tc vaTest) { + for tries := 0; tries <= 10; tries++ { // wait & try few times before failing the test + expected_op_map := tc.expected_attaches + plugin_map := testPlugin.GetAttachedVolumes() + verify_op := "attach" + volFound, nodeFound := false, false + for i := 0; i <= 1; i++ { // verify attaches and detaches + if i == 1 { + expected_op_map = tc.expected_detaches + plugin_map = testPlugin.GetDetachedVolumes() + verify_op = "detach" + } + // Verify every (node, volume) in the expected_op_map is in the + // plugin_map + for expectedNode, expectedVolumeList := range expected_op_map { + var volumeList []string + volumeList, nodeFound = plugin_map[expectedNode] + if !nodeFound && tries == 10 { + t.Fatalf("Expected node not found, node:%v, op: %v, tries: %d", + expectedNode, verify_op, tries) + } + for _, expectedVolume := range expectedVolumeList { + volFound = false + for _, volume := range volumeList { + if expectedVolume == volume { + volFound = true + break + } + } + if !volFound && tries == 10 { + t.Fatalf("Expected %v operation not found, node:%v, volume: %v, tries: %d", + verify_op, expectedNode, expectedVolume, tries) + } + } + } + } + if nodeFound && volFound { + break + } + time.Sleep(time.Second * 1) + } + + if testPlugin.GetErrorEncountered() { + t.Fatalf("Fatal error encountered in the testing volume plugin") + } +} diff --git a/pkg/controller/volume/attachdetach/cache/actual_state_of_world.go b/pkg/controller/volume/attachdetach/cache/actual_state_of_world.go index 6d597cf875137..9513d09a60341 100644 --- a/pkg/controller/volume/attachdetach/cache/actual_state_of_world.go +++ b/pkg/controller/volume/attachdetach/cache/actual_state_of_world.go @@ -96,10 +96,13 @@ type ActualStateOfWorld interface { // nodes, the volume is also deleted. DeleteVolumeNode(volumeName v1.UniqueVolumeName, nodeName types.NodeName) - // IsVolumeAttachedToNode returns true if the specified volume/node combo exists - // in the underlying store indicating the specified volume is attached to - // the specified node. - IsVolumeAttachedToNode(volumeName v1.UniqueVolumeName, nodeName types.NodeName) bool + // GetAttachState returns the attach state for the given volume-node + // combination. + // Returns AttachStateAttached if the specified volume/node combo exists in + // the underlying store indicating the specified volume is attached to the + // specified node, AttachStateDetached if the combo does not exist, or + // AttachStateUncertain if the attached state is marked as uncertain. + GetAttachState(volumeName v1.UniqueVolumeName, nodeName types.NodeName) AttachState // GetAttachedVolumes generates and returns a list of volumes/node pairs // reflecting which volumes might attached to which nodes based on the @@ -153,6 +156,31 @@ type AttachedVolume struct { DetachRequestedTime time.Time } +// AttachState represents the attach state of a volume to a node known to the +// Actual State of World. +// This type is used as external representation of attach state (specifically +// as the return type of GetAttachState only); the state is represented +// differently in the internal cache implementation. +type AttachState int + +const ( + // AttachStateAttached represents the state in which the volume is attached to + // the node. + AttachStateAttached AttachState = iota + + // AttachStateUncertain represents the state in which the Actual State of World + // does not know whether the volume is attached to the node. + AttachStateUncertain + + // AttachStateDetached represents the state in which the volume is not + // attached to the node. + AttachStateDetached +) + +func (s AttachState) String() string { + return []string{"Attached", "Uncertain", "Detached"}[s] +} + // NewActualStateOfWorld returns a new instance of ActualStateOfWorld. func NewActualStateOfWorld(volumePluginMgr *volume.VolumePluginMgr) ActualStateOfWorld { return &actualStateOfWorld{ @@ -530,19 +558,22 @@ func (asw *actualStateOfWorld) DeleteVolumeNode( asw.removeVolumeFromReportAsAttached(volumeName, nodeName) } -func (asw *actualStateOfWorld) IsVolumeAttachedToNode( - volumeName v1.UniqueVolumeName, nodeName types.NodeName) bool { +func (asw *actualStateOfWorld) GetAttachState( + volumeName v1.UniqueVolumeName, nodeName types.NodeName) AttachState { asw.RLock() defer asw.RUnlock() volumeObj, volumeExists := asw.attachedVolumes[volumeName] if volumeExists { if node, nodeExists := volumeObj.nodesAttachedTo[nodeName]; nodeExists { - return node.attachedConfirmed + if node.attachedConfirmed { + return AttachStateAttached + } + return AttachStateUncertain } } - return false + return AttachStateDetached } func (asw *actualStateOfWorld) GetAttachedVolumes() []AttachedVolume { diff --git a/pkg/controller/volume/attachdetach/cache/actual_state_of_world_test.go b/pkg/controller/volume/attachdetach/cache/actual_state_of_world_test.go index 4a1a3e0b283d7..71406909a9a0a 100644 --- a/pkg/controller/volume/attachdetach/cache/actual_state_of_world_test.go +++ b/pkg/controller/volume/attachdetach/cache/actual_state_of_world_test.go @@ -20,7 +20,7 @@ import ( "testing" "time" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" controllervolumetesting "k8s.io/kubernetes/pkg/controller/volume/attachdetach/testing" volumetesting "k8s.io/kubernetes/pkg/volume/testing" @@ -47,9 +47,9 @@ func Test_AddVolumeNode_Positive_NewVolumeNewNode(t *testing.T) { t.Fatalf("AddVolumeNode failed. Expected: Actual: <%v>", err) } - volumeNodeComboExists := asw.IsVolumeAttachedToNode(generatedVolumeName, nodeName) - if !volumeNodeComboExists { - t.Fatalf("%q/%q volume/node combo does not exist, it should.", generatedVolumeName, nodeName) + volumeNodeComboState := asw.GetAttachState(generatedVolumeName, nodeName) + if volumeNodeComboState != AttachStateAttached { + t.Fatalf("%q/%q volume/node combo is marked %q; expected 'Attached'.", generatedVolumeName, nodeName, volumeNodeComboState) } attachedVolumes := asw.GetAttachedVolumes() @@ -82,9 +82,9 @@ func Test_AddVolumeNode_Positive_NewVolumeNewNodeWithFalseAttached(t *testing.T) t.Fatalf("AddVolumeNode failed. Expected: Actual: <%v>", err) } - volumeNodeComboExists := asw.IsVolumeAttachedToNode(generatedVolumeName, nodeName) - if volumeNodeComboExists { - t.Fatalf("%q/%q volume/node combo does exist, it should not.", generatedVolumeName, nodeName) + volumeNodeComboState := asw.GetAttachState(generatedVolumeName, nodeName) + if volumeNodeComboState != AttachStateUncertain { + t.Fatalf("%q/%q volume/node combo is marked %q, expected 'Uncertain'.", generatedVolumeName, nodeName, volumeNodeComboState) } allVolumes := asw.GetAttachedVolumes() @@ -131,9 +131,9 @@ func Test_AddVolumeNode_Positive_NewVolumeNewNodeWithFalseAttached(t *testing.T) generatedVolumeName2) } - volumeNodeComboExists = asw.IsVolumeAttachedToNode(generatedVolumeName, nodeName) - if !volumeNodeComboExists { - t.Fatalf("%q/%q combo does not exist, it should.", generatedVolumeName, nodeName) + volumeNodeComboState = asw.GetAttachState(generatedVolumeName, nodeName) + if volumeNodeComboState != AttachStateAttached { + t.Fatalf("%q/%q volume/node combo is marked %q; expected 'Attached'.", generatedVolumeName, nodeName, volumeNodeComboState) } attachedVolumes := asw.GetAttachedVolumes() @@ -182,9 +182,9 @@ func Test_AddVolumeNode_Positive_NewVolumeTwoNodesWithFalseAttached(t *testing.T t.Fatalf("AddVolumeNode failed. Expected: Actual: <%v>", err) } - volumeNodeComboExists := asw.IsVolumeAttachedToNode(generatedVolumeName, node1Name) - if volumeNodeComboExists { - t.Fatalf("%q/%q volume/node combo does exist, it should not.", generatedVolumeName, node1Name) + volumeNodeComboState := asw.GetAttachState(generatedVolumeName, node1Name) + if volumeNodeComboState != AttachStateUncertain { + t.Fatalf("%q/%q volume/node combo is marked %q, expected 'Uncertain'.", generatedVolumeName, node1Name, volumeNodeComboState) } generatedVolumeName2, add2Err := asw.AddVolumeNode(volumeName, volumeSpec, node2Name, devicePath, true) @@ -201,9 +201,9 @@ func Test_AddVolumeNode_Positive_NewVolumeTwoNodesWithFalseAttached(t *testing.T generatedVolumeName2) } - volumeNodeComboExists = asw.IsVolumeAttachedToNode(generatedVolumeName, node2Name) - if !volumeNodeComboExists { - t.Fatalf("%q/%q combo does not exist, it should.", generatedVolumeName, node2Name) + volumeNodeComboState = asw.GetAttachState(generatedVolumeName, node2Name) + if volumeNodeComboState != AttachStateAttached { + t.Fatalf("%q/%q volume/node combo is marked %q; expected 'Attached'.", generatedVolumeName, node2Name, volumeNodeComboState) } attachedVolumes := asw.GetAttachedVolumes() @@ -268,14 +268,14 @@ func Test_AddVolumeNode_Positive_ExistingVolumeNewNode(t *testing.T) { generatedVolumeName2) } - volumeNode1ComboExists := asw.IsVolumeAttachedToNode(generatedVolumeName1, node1Name) - if !volumeNode1ComboExists { - t.Fatalf("%q/%q volume/node combo does not exist, it should.", generatedVolumeName1, node1Name) + volumeNode1ComboState := asw.GetAttachState(generatedVolumeName1, node1Name) + if volumeNode1ComboState != AttachStateAttached { + t.Fatalf("%q/%q volume/node combo is marked %q; expected 'Attached'.", generatedVolumeName1, node1Name, volumeNode1ComboState) } - volumeNode2ComboExists := asw.IsVolumeAttachedToNode(generatedVolumeName1, node2Name) - if !volumeNode2ComboExists { - t.Fatalf("%q/%q volume/node combo does not exist, it should.", generatedVolumeName1, node2Name) + volumeNode2ComboState := asw.GetAttachState(generatedVolumeName1, node2Name) + if volumeNode2ComboState != AttachStateAttached { + t.Fatalf("%q/%q volume/node combo is marked %q; expected 'Attached'.", generatedVolumeName1, node2Name, volumeNode2ComboState) } attachedVolumes := asw.GetAttachedVolumes() @@ -317,9 +317,9 @@ func Test_AddVolumeNode_Positive_ExistingVolumeExistingNode(t *testing.T) { generatedVolumeName2) } - volumeNodeComboExists := asw.IsVolumeAttachedToNode(generatedVolumeName1, nodeName) - if !volumeNodeComboExists { - t.Fatalf("%q/%q volume/node combo does not exist, it should.", generatedVolumeName1, nodeName) + volumeNodeComboState := asw.GetAttachState(generatedVolumeName1, nodeName) + if volumeNodeComboState != AttachStateAttached { + t.Fatalf("%q/%q volume/node combo is marked %q; expected 'Attached'.", generatedVolumeName1, nodeName, volumeNodeComboState) } attachedVolumes := asw.GetAttachedVolumes() @@ -350,9 +350,9 @@ func Test_DeleteVolumeNode_Positive_VolumeExistsNodeExists(t *testing.T) { asw.DeleteVolumeNode(generatedVolumeName, nodeName) // Assert - volumeNodeComboExists := asw.IsVolumeAttachedToNode(generatedVolumeName, nodeName) - if volumeNodeComboExists { - t.Fatalf("%q/%q volume/node combo exists, it should not.", generatedVolumeName, nodeName) + volumeNodeComboState := asw.GetAttachState(generatedVolumeName, nodeName) + if volumeNodeComboState != AttachStateDetached { + t.Fatalf("%q/%q volume/node combo is marked %q, expected 'Detached'.", generatedVolumeName, nodeName, volumeNodeComboState) } attachedVolumes := asw.GetAttachedVolumes() @@ -374,9 +374,9 @@ func Test_DeleteVolumeNode_Positive_VolumeDoesntExistNodeDoesntExist(t *testing. asw.DeleteVolumeNode(volumeName, nodeName) // Assert - volumeNodeComboExists := asw.IsVolumeAttachedToNode(volumeName, nodeName) - if volumeNodeComboExists { - t.Fatalf("%q/%q volume/node combo exists, it should not.", volumeName, nodeName) + volumeNodeComboState := asw.GetAttachState(volumeName, nodeName) + if volumeNodeComboState != AttachStateDetached { + t.Fatalf("%q/%q volume/node combo is marked %q, expected 'Detached'.", volumeName, nodeName, volumeNodeComboState) } attachedVolumes := asw.GetAttachedVolumes() @@ -417,14 +417,14 @@ func Test_DeleteVolumeNode_Positive_TwoNodesOneDeleted(t *testing.T) { asw.DeleteVolumeNode(generatedVolumeName1, node1Name) // Assert - volumeNodeComboExists := asw.IsVolumeAttachedToNode(generatedVolumeName1, node1Name) - if volumeNodeComboExists { - t.Fatalf("%q/%q volume/node combo exists, it should not.", generatedVolumeName1, node1Name) + volumeNodeComboState := asw.GetAttachState(generatedVolumeName1, node1Name) + if volumeNodeComboState != AttachStateDetached { + t.Fatalf("%q/%q volume/node combo is marked %q, expected 'Detached'.", generatedVolumeName1, node1Name, volumeNodeComboState) } - volumeNodeComboExists = asw.IsVolumeAttachedToNode(generatedVolumeName1, node2Name) - if !volumeNodeComboExists { - t.Fatalf("%q/%q volume/node combo does not exist, it should.", generatedVolumeName1, node2Name) + volumeNodeComboState = asw.GetAttachState(generatedVolumeName1, node2Name) + if volumeNodeComboState != AttachStateAttached { + t.Fatalf("%q/%q volume/node combo is marked %q; expected 'Attached'.", generatedVolumeName1, node2Name, volumeNodeComboState) } attachedVolumes := asw.GetAttachedVolumes() @@ -436,7 +436,7 @@ func Test_DeleteVolumeNode_Positive_TwoNodesOneDeleted(t *testing.T) { } // Populates data struct with one volume/node entry. -// Calls IsVolumeAttachedToNode() to verify entry. +// Calls GetAttachState() to verify entry. // Verifies the populated volume/node entry exists. func Test_VolumeNodeExists_Positive_VolumeExistsNodeExists(t *testing.T) { // Arrange @@ -452,11 +452,11 @@ func Test_VolumeNodeExists_Positive_VolumeExistsNodeExists(t *testing.T) { } // Act - volumeNodeComboExists := asw.IsVolumeAttachedToNode(generatedVolumeName, nodeName) + volumeNodeComboState := asw.GetAttachState(generatedVolumeName, nodeName) // Assert - if !volumeNodeComboExists { - t.Fatalf("%q/%q volume/node combo does not exist, it should.", generatedVolumeName, nodeName) + if volumeNodeComboState != AttachStateAttached { + t.Fatalf("%q/%q volume/node combo is marked %q; expected 'Attached'.", generatedVolumeName, nodeName, volumeNodeComboState) } attachedVolumes := asw.GetAttachedVolumes() @@ -468,7 +468,7 @@ func Test_VolumeNodeExists_Positive_VolumeExistsNodeExists(t *testing.T) { } // Populates data struct with one volume1/node1 entry. -// Calls IsVolumeAttachedToNode() with volume1/node2. +// Calls GetAttachState() with volume1/node2. // Verifies requested entry does not exist, but populated entry does. func Test_VolumeNodeExists_Positive_VolumeExistsNodeDoesntExist(t *testing.T) { // Arrange @@ -485,11 +485,11 @@ func Test_VolumeNodeExists_Positive_VolumeExistsNodeDoesntExist(t *testing.T) { } // Act - volumeNodeComboExists := asw.IsVolumeAttachedToNode(generatedVolumeName, node2Name) + volumeNodeComboState := asw.GetAttachState(generatedVolumeName, node2Name) // Assert - if volumeNodeComboExists { - t.Fatalf("%q/%q volume/node combo exists, it should not.", generatedVolumeName, node2Name) + if volumeNodeComboState != AttachStateDetached { + t.Fatalf("%q/%q volume/node combo is marked %q, expected 'Detached'.", generatedVolumeName, node2Name, volumeNodeComboState) } attachedVolumes := asw.GetAttachedVolumes() @@ -500,7 +500,7 @@ func Test_VolumeNodeExists_Positive_VolumeExistsNodeDoesntExist(t *testing.T) { verifyAttachedVolume(t, attachedVolumes, generatedVolumeName, string(volumeName), node1Name, devicePath, true /* expectedMountedByNode */, false /* expectNonZeroDetachRequestedTime */) } -// Calls IsVolumeAttachedToNode() on empty data struct. +// Calls GetAttachState() on empty data struct. // Verifies requested entry does not exist. func Test_VolumeNodeExists_Positive_VolumeAndNodeDontExist(t *testing.T) { // Arrange @@ -510,11 +510,11 @@ func Test_VolumeNodeExists_Positive_VolumeAndNodeDontExist(t *testing.T) { nodeName := types.NodeName("node-name") // Act - volumeNodeComboExists := asw.IsVolumeAttachedToNode(volumeName, nodeName) + volumeNodeComboState := asw.GetAttachState(volumeName, nodeName) // Assert - if volumeNodeComboExists { - t.Fatalf("%q/%q volume/node combo exists, it should not.", volumeName, nodeName) + if volumeNodeComboState != AttachStateDetached { + t.Fatalf("%q/%q volume/node combo is marked %q, expected 'Detached'.", volumeName, nodeName, volumeNodeComboState) } attachedVolumes := asw.GetAttachedVolumes() @@ -1374,6 +1374,79 @@ func Test_updateNodeStatusUpdateNeededError(t *testing.T) { } } +// Mark a volume as attached to a node. +// Verify GetAttachState returns AttachedState +// Verify GetAttachedVolumes return this volume +func Test_MarkVolumeAsAttached(t *testing.T) { + // Arrange + volumePluginMgr, _ := volumetesting.GetTestVolumePluginMgr(t) + asw := NewActualStateOfWorld(volumePluginMgr) + volumeName := v1.UniqueVolumeName("volume-name") + volumeSpec := controllervolumetesting.GetTestVolumeSpec(string(volumeName), volumeName) + + nodeName := types.NodeName("node-name") + devicePath := "fake/device/path" + + plugin, err := volumePluginMgr.FindAttachablePluginBySpec(volumeSpec) + if err != nil || plugin == nil { + t.Fatalf("Failed to get volume plugin from spec %v, %v", volumeSpec, err) + } + + // Act + err = asw.MarkVolumeAsAttached(volumeName, volumeSpec, nodeName, devicePath) + + // Assert + if err != nil { + t.Fatalf("MarkVolumeAsAttached failed. Expected: Actual: <%v>", err) + } + + volumeNodeComboState := asw.GetAttachState(volumeName, nodeName) + if volumeNodeComboState != AttachStateAttached { + t.Fatalf("asw says the volume: %q is not attached (%v) to node:%q, it should.", + volumeName, AttachStateAttached, nodeName) + } + attachedVolumes := asw.GetAttachedVolumes() + if len(attachedVolumes) != 1 { + t.Fatalf("len(attachedVolumes) Expected: <1> Actual: <%v>", len(attachedVolumes)) + } + verifyAttachedVolume(t, attachedVolumes, volumeName, string(volumeName), nodeName, devicePath, true /* expectedMountedByNode */, false /* expectNonZeroDetachRequestedTime */) +} + +// Mark a volume as attachment as uncertain. +// Verify GetAttachState returns UncertainState +// Verify GetAttachedVolumes return this volume +func Test_MarkVolumeAsUncertain(t *testing.T) { + // Arrange + volumePluginMgr, _ := volumetesting.GetTestVolumePluginMgr(t) + asw := NewActualStateOfWorld(volumePluginMgr) + volumeName := v1.UniqueVolumeName("volume-name") + volumeSpec := controllervolumetesting.GetTestVolumeSpec(string(volumeName), volumeName) + nodeName := types.NodeName("node-name") + + plugin, err := volumePluginMgr.FindAttachablePluginBySpec(volumeSpec) + if err != nil || plugin == nil { + t.Fatalf("Failed to get volume plugin from spec %v, %v", volumeSpec, err) + } + + // Act + err = asw.MarkVolumeAsUncertain(volumeName, volumeSpec, nodeName) + + // Assert + if err != nil { + t.Fatalf("MarkVolumeAsUncertain failed. Expected: Actual: <%v>", err) + } + volumeNodeComboState := asw.GetAttachState(volumeName, nodeName) + if volumeNodeComboState != AttachStateUncertain { + t.Fatalf("asw says the volume: %q is attached (%v) to node:%q, it should not.", + volumeName, volumeNodeComboState, nodeName) + } + attachedVolumes := asw.GetAttachedVolumes() + if len(attachedVolumes) != 1 { + t.Fatalf("len(attachedVolumes) Expected: <1> Actual: <%v>", len(attachedVolumes)) + } + verifyAttachedVolume(t, attachedVolumes, volumeName, string(volumeName), nodeName, "", true /* expectedMountedByNode */, false /* expectNonZeroDetachRequestedTime */) +} + func verifyAttachedVolume( t *testing.T, attachedVolumes []AttachedVolume, diff --git a/pkg/controller/volume/attachdetach/reconciler/reconciler.go b/pkg/controller/volume/attachdetach/reconciler/reconciler.go index a010630d77e5e..247b49ca64063 100644 --- a/pkg/controller/volume/attachdetach/reconciler/reconciler.go +++ b/pkg/controller/volume/attachdetach/reconciler/reconciler.go @@ -142,6 +142,7 @@ func (rc *reconciler) reconcile() { for _, attachedVolume := range rc.actualStateOfWorld.GetAttachedVolumes() { if !rc.desiredStateOfWorld.VolumeExists( attachedVolume.VolumeName, attachedVolume.NodeName) { + // Check whether there already exist an operation pending, and don't even // try to start an operation if there is already one running. // This check must be done before we do any other checks, as otherwise the other checks @@ -161,6 +162,21 @@ func (rc *reconciler) reconcile() { } } + // Because the detach operation updates the ActualStateOfWorld before + // marking itself complete, it's possible for the volume to be removed + // from the ActualStateOfWorld between the GetAttachedVolumes() check + // and the IsOperationPending() check above. + // Check the ActualStateOfWorld again to avoid issuing an unnecessary + // detach. + // See https://github.com/kubernetes/kubernetes/issues/93902 + attachState := rc.actualStateOfWorld.GetAttachState(attachedVolume.VolumeName, attachedVolume.NodeName) + if attachState == cache.AttachStateDetached { + if klog.V(5).Enabled() { + klog.Infof(attachedVolume.GenerateMsgDetailed("Volume detached--skipping", "")) + } + continue + } + // Set the detach request time elapsedTime, err := rc.actualStateOfWorld.SetDetachRequestTime(attachedVolume.VolumeName, attachedVolume.NodeName) if err != nil { @@ -226,17 +242,7 @@ func (rc *reconciler) reconcile() { func (rc *reconciler) attachDesiredVolumes() { // Ensure volumes that should be attached are attached. for _, volumeToAttach := range rc.desiredStateOfWorld.GetVolumesToAttach() { - if rc.actualStateOfWorld.IsVolumeAttachedToNode(volumeToAttach.VolumeName, volumeToAttach.NodeName) { - // Volume/Node exists, touch it to reset detachRequestedTime - if klog.V(5).Enabled() { - klog.Infof(volumeToAttach.GenerateMsgDetailed("Volume attached--touching", "")) - } - rc.actualStateOfWorld.ResetDetachRequestTime(volumeToAttach.VolumeName, volumeToAttach.NodeName) - continue - } - if util.IsMultiAttachAllowed(volumeToAttach.VolumeSpec) { - // Don't even try to start an operation if there is already one running for the given volume and node. if rc.attacherDetacher.IsOperationPending(volumeToAttach.VolumeName, "" /* podName */, volumeToAttach.NodeName) { if klog.V(10).Enabled() { @@ -244,9 +250,7 @@ func (rc *reconciler) attachDesiredVolumes() { } continue } - } else { - // Don't even try to start an operation if there is already one running for the given volume if rc.attacherDetacher.IsOperationPending(volumeToAttach.VolumeName, "" /* podName */, "" /* nodeName */) { if klog.V(10).Enabled() { @@ -254,7 +258,24 @@ func (rc *reconciler) attachDesiredVolumes() { } continue } + } + // Because the attach operation updates the ActualStateOfWorld before + // marking itself complete, IsOperationPending() must be checked before + // GetAttachState() to guarantee the ActualStateOfWorld is + // up-to-date when it's read. + // See https://github.com/kubernetes/kubernetes/issues/93902 + attachState := rc.actualStateOfWorld.GetAttachState(volumeToAttach.VolumeName, volumeToAttach.NodeName) + if attachState == cache.AttachStateAttached { + // Volume/Node exists, touch it to reset detachRequestedTime + if klog.V(5).Enabled() { + klog.Infof(volumeToAttach.GenerateMsgDetailed("Volume attached--touching", "")) + } + rc.actualStateOfWorld.ResetDetachRequestTime(volumeToAttach.VolumeName, volumeToAttach.NodeName) + continue + } + + if !util.IsMultiAttachAllowed(volumeToAttach.VolumeSpec) { nodes := rc.actualStateOfWorld.GetNodesForAttachedVolume(volumeToAttach.VolumeName) if len(nodes) > 0 { if !volumeToAttach.MultiAttachErrorReported { @@ -263,7 +284,6 @@ func (rc *reconciler) attachDesiredVolumes() { } continue } - } // Volume/Node doesn't exist, spawn a goroutine to attach it diff --git a/pkg/controller/volume/attachdetach/reconciler/reconciler_test.go b/pkg/controller/volume/attachdetach/reconciler/reconciler_test.go index 90023eb0ad209..84ffaf49d134d 100644 --- a/pkg/controller/volume/attachdetach/reconciler/reconciler_test.go +++ b/pkg/controller/volume/attachdetach/reconciler/reconciler_test.go @@ -347,7 +347,7 @@ func Test_Run_Negative_OneDesiredVolumeAttachThenDetachWithUnmountedVolumeUpdate } // Creates a volume with accessMode ReadWriteMany -// Populates desiredStateOfWorld cache with two ode/volume/pod tuples pointing to the created volume +// Populates desiredStateOfWorld cache with two node/volume/pod tuples pointing to the created volume // Calls Run() // Verifies there are two attach calls and no detach calls. // Deletes the first node/volume/pod tuple from desiredStateOfWorld cache without first marking the node/volume as unmounted. @@ -536,7 +536,7 @@ func Test_Run_OneVolumeAttachAndDetachMultipleNodesWithReadWriteOnce(t *testing. // Creates a volume with accessMode ReadWriteOnce // First create a pod which will try to attach the volume to the a node named "uncertain-node". The attach call for this node will // fail for timeout, but the volume will be actually attached to the node after the call. -// Secondly, delete the this pod. +// Secondly, delete this pod. // Lastly, create a pod scheduled to a normal node which will trigger attach volume to the node. The attach should return successfully. func Test_Run_OneVolumeAttachAndDetachUncertainNodesWithReadWriteOnce(t *testing.T) { // Arrange @@ -577,9 +577,9 @@ func Test_Run_OneVolumeAttachAndDetachUncertainNodesWithReadWriteOnce(t *testing } time.Sleep(1 * time.Second) - // Volume is added to asw. Because attach operation fails, volume should not reported as attached to the node. + // Volume is added to asw. Because attach operation fails, volume should not be reported as attached to the node. waitForVolumeAddedToNode(t, generatedVolumeName, nodeName1, asw) - verifyVolumeAttachedToNode(t, generatedVolumeName, nodeName1, true, asw) + verifyVolumeAttachedToNode(t, generatedVolumeName, nodeName1, cache.AttachStateAttached, asw) verifyVolumeReportedAsAttachedToNode(t, generatedVolumeName, nodeName1, true, asw) // When volume is added to the node, it is set to mounted by default. Then the status will be updated by checking node status VolumeInUse. @@ -596,7 +596,7 @@ func Test_Run_OneVolumeAttachAndDetachUncertainNodesWithReadWriteOnce(t *testing t.Fatalf("AddPod failed. Expected: Actual: <%v>", podAddErr) } waitForVolumeAttachedToNode(t, generatedVolumeName, nodeName2, asw) - verifyVolumeAttachedToNode(t, generatedVolumeName, nodeName2, true, asw) + verifyVolumeAttachedToNode(t, generatedVolumeName, nodeName2, cache.AttachStateAttached, asw) } @@ -643,9 +643,9 @@ func Test_Run_OneVolumeAttachAndDetachTimeoutNodesWithReadWriteOnce(t *testing.T t.Fatalf("AddPod failed. Expected: Actual: <%v>", podAddErr) } - // Volume is added to asw. Because attach operation fails, volume should not reported as attached to the node. + // Volume is added to asw. Because attach operation fails, volume should not be reported as attached to the node. waitForVolumeAddedToNode(t, generatedVolumeName, nodeName1, asw) - verifyVolumeAttachedToNode(t, generatedVolumeName, nodeName1, false, asw) + verifyVolumeAttachedToNode(t, generatedVolumeName, nodeName1, cache.AttachStateUncertain, asw) verifyVolumeReportedAsAttachedToNode(t, generatedVolumeName, nodeName1, false, asw) // When volume is added to the node, it is set to mounted by default. Then the status will be updated by checking node status VolumeInUse. @@ -662,7 +662,7 @@ func Test_Run_OneVolumeAttachAndDetachTimeoutNodesWithReadWriteOnce(t *testing.T t.Fatalf("AddPod failed. Expected: Actual: <%v>", podAddErr) } waitForVolumeAttachedToNode(t, generatedVolumeName, nodeName2, asw) - verifyVolumeAttachedToNode(t, generatedVolumeName, nodeName2, true, asw) + verifyVolumeAttachedToNode(t, generatedVolumeName, nodeName2, cache.AttachStateAttached, asw) } @@ -1048,7 +1048,8 @@ func waitForVolumeAttachedToNode( err := retryWithExponentialBackOff( time.Duration(500*time.Millisecond), func() (bool, error) { - if asw.IsVolumeAttachedToNode(volumeName, nodeName) { + attachState := asw.GetAttachState(volumeName, nodeName) + if attachState == cache.AttachStateAttached { return true, nil } t.Logf( @@ -1060,7 +1061,8 @@ func waitForVolumeAttachedToNode( }, ) - if err != nil && !asw.IsVolumeAttachedToNode(volumeName, nodeName) { + attachState := asw.GetAttachState(volumeName, nodeName) + if err != nil && attachState != cache.AttachStateAttached { t.Fatalf( "Volume <%v> is not attached to node <%v>.", volumeName, @@ -1141,19 +1143,17 @@ func verifyVolumeAttachedToNode( t *testing.T, volumeName v1.UniqueVolumeName, nodeName k8stypes.NodeName, - isAttached bool, + expectedAttachState cache.AttachState, asw cache.ActualStateOfWorld, ) { - result := asw.IsVolumeAttachedToNode(volumeName, nodeName) - if result == isAttached { - return + attachState := asw.GetAttachState(volumeName, nodeName) + if attachState != expectedAttachState { + t.Fatalf("Check volume <%v> is attached to node <%v>, got %v, expected %v", + volumeName, + nodeName, + attachState, + expectedAttachState) } - t.Fatalf("Check volume <%v> is attached to node <%v>, got %v, expected %v", - volumeName, - nodeName, - result, - isAttached) - } func verifyVolumeReportedAsAttachedToNode( diff --git a/pkg/controller/volume/attachdetach/testing/testvolumespec.go b/pkg/controller/volume/attachdetach/testing/testvolumespec.go index af3cc35d35b35..7ab8c8b25cf10 100644 --- a/pkg/controller/volume/attachdetach/testing/testvolumespec.go +++ b/pkg/controller/volume/attachdetach/testing/testvolumespec.go @@ -60,6 +60,9 @@ func GetTestVolumeSpec(volumeName string, diskName v1.UniqueVolumeName) *volume. } var extraPods *v1.PodList +var volumeAttachments *storagev1.VolumeAttachmentList +var pvs *v1.PersistentVolumeList +var nodes *v1.NodeList func CreateTestClient() *fake.Clientset { fakeClient := &fake.Clientset{} @@ -143,40 +146,58 @@ func CreateTestClient() *fake.Clientset { } return true, obj, nil }) - fakeClient.AddReactor("list", "nodes", func(action core.Action) (handled bool, ret runtime.Object, err error) { - obj := &v1.NodeList{} - nodeNamePrefix := "mynode" - for i := 0; i < 5; i++ { - var nodeName string - if i != 0 { - nodeName = fmt.Sprintf("%s-%d", nodeNamePrefix, i) - } else { - // We want also the "mynode" node since all the testing pods live there - nodeName = nodeNamePrefix - } - node := v1.Node{ - ObjectMeta: metav1.ObjectMeta{ - Name: nodeName, - Labels: map[string]string{ - "name": nodeName, - }, - Annotations: map[string]string{ - util.ControllerManagedAttachAnnotation: "true", - }, - }, - Status: v1.NodeStatus{ - VolumesAttached: []v1.AttachedVolume{ - { - Name: TestPluginName + "/lostVolumeName", - DevicePath: "fake/path", - }, - }, - }, + nodes = &v1.NodeList{} + nodeNamePrefix := "mynode" + for i := 0; i < 5; i++ { + var nodeName string + if i != 0 { + nodeName = fmt.Sprintf("%s-%d", nodeNamePrefix, i) + } else { + // We want also the "mynode" node since all the testing pods live there + nodeName = nodeNamePrefix + } + attachVolumeToNode("lostVolumeName", nodeName) + } + fakeClient.AddReactor("update", "nodes", func(action core.Action) (handled bool, ret runtime.Object, err error) { + updateAction := action.(core.UpdateAction) + node := updateAction.GetObject().(*v1.Node) + for index, n := range nodes.Items { + if n.Name == node.Name { + nodes.Items[index] = *node } - obj.Items = append(obj.Items, node) } + return true, updateAction.GetObject(), nil + }) + fakeClient.AddReactor("list", "nodes", func(action core.Action) (handled bool, ret runtime.Object, err error) { + obj := &v1.NodeList{} + obj.Items = append(obj.Items, nodes.Items...) + return true, obj, nil + }) + volumeAttachments = &storagev1.VolumeAttachmentList{} + fakeClient.AddReactor("list", "volumeattachments", func(action core.Action) (handled bool, ret runtime.Object, err error) { + obj := &storagev1.VolumeAttachmentList{} + obj.Items = append(obj.Items, volumeAttachments.Items...) return true, obj, nil }) + fakeClient.AddReactor("create", "volumeattachments", func(action core.Action) (handled bool, ret runtime.Object, err error) { + createAction := action.(core.CreateAction) + va := createAction.GetObject().(*storagev1.VolumeAttachment) + volumeAttachments.Items = append(volumeAttachments.Items, *va) + return true, createAction.GetObject(), nil + }) + + pvs = &v1.PersistentVolumeList{} + fakeClient.AddReactor("list", "persistentvolumes", func(action core.Action) (handled bool, ret runtime.Object, err error) { + obj := &v1.PersistentVolumeList{} + obj.Items = append(obj.Items, pvs.Items...) + return true, obj, nil + }) + fakeClient.AddReactor("create", "persistentvolumes", func(action core.Action) (handled bool, ret runtime.Object, err error) { + createAction := action.(core.CreateAction) + pv := createAction.GetObject().(*v1.PersistentVolume) + pvs.Items = append(pvs.Items, *pv) + return true, createAction.GetObject(), nil + }) fakeWatch := watch.NewFake() fakeClient.AddWatchReactor("*", core.DefaultWatchReactor(fakeWatch, nil)) @@ -237,6 +258,88 @@ func NewPodWithVolume(podName, volumeName, nodeName string) *v1.Pod { } } +// Returns a volumeAttachment object +func NewVolumeAttachment(vaName, pvName, nodeName string, status bool) *storagev1.VolumeAttachment { + return &storagev1.VolumeAttachment{ + + ObjectMeta: metav1.ObjectMeta{ + UID: types.UID(vaName), + Name: vaName, + }, + Spec: storagev1.VolumeAttachmentSpec{ + Attacher: "test.storage.gke.io", + NodeName: nodeName, + Source: storagev1.VolumeAttachmentSource{ + PersistentVolumeName: &pvName, + }, + }, + Status: storagev1.VolumeAttachmentStatus{ + Attached: status, + }, + } +} + +// Returns a persistentVolume object +func NewPV(pvName, volumeName string) *v1.PersistentVolume { + return &v1.PersistentVolume{ + ObjectMeta: metav1.ObjectMeta{ + UID: types.UID(pvName), + Name: pvName, + }, + Spec: v1.PersistentVolumeSpec{ + PersistentVolumeSource: v1.PersistentVolumeSource{ + GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{ + PDName: volumeName, + }, + }, + }, + } +} + +func attachVolumeToNode(volumeName, nodeName string) { + // if nodeName exists, get the object.. if not create node object + var node *v1.Node + found := false + nodes.Size() + for i := range nodes.Items { + curNode := nodes.Items[i] + if curNode.ObjectMeta.Name == nodeName { + node = &curNode + found = true + break + } + } + if !found { + node = &v1.Node{ + ObjectMeta: metav1.ObjectMeta{ + Name: nodeName, + Labels: map[string]string{ + "name": nodeName, + }, + Annotations: map[string]string{ + util.ControllerManagedAttachAnnotation: "true", + }, + }, + Status: v1.NodeStatus{ + VolumesAttached: []v1.AttachedVolume{ + { + Name: v1.UniqueVolumeName(TestPluginName + "/" + volumeName), + DevicePath: "fake/path", + }, + }, + }, + } + } else { + volumeAttached := v1.AttachedVolume{ + Name: v1.UniqueVolumeName(TestPluginName + "/" + volumeName), + DevicePath: "fake/path", + } + node.Status.VolumesAttached = append(node.Status.VolumesAttached, volumeAttached) + } + + nodes.Items = append(nodes.Items, *node) +} + type TestPlugin struct { ErrorEncountered bool attachedVolumeMap map[string][]string @@ -258,8 +361,15 @@ func (plugin *TestPlugin) GetVolumeName(spec *volume.Spec) (string, error) { if spec == nil { klog.Errorf("GetVolumeName called with nil volume spec") plugin.ErrorEncountered = true + return "", fmt.Errorf("GetVolumeName called with nil volume spec") + } + if spec.Volume != nil { + return spec.Name(), nil + } else if spec.PersistentVolume != nil { + return spec.PersistentVolume.Spec.PersistentVolumeSource.GCEPersistentDisk.PDName, nil + } else { + return "", nil } - return spec.Name(), nil } func (plugin *TestPlugin) CanSupport(spec *volume.Spec) bool { diff --git a/pkg/controller/volume/attachdetach/util/util.go b/pkg/controller/volume/attachdetach/util/util.go index 389fbec77f63a..d434cec01c2fa 100644 --- a/pkg/controller/volume/attachdetach/util/util.go +++ b/pkg/controller/volume/attachdetach/util/util.go @@ -21,7 +21,7 @@ import ( "fmt" "strings" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" utilfeature "k8s.io/apiserver/pkg/util/feature" @@ -85,7 +85,7 @@ func CreateVolumeSpec(podVolume v1.Volume, pod *v1.Pod, nodeName types.NodeName, err) } - volumeSpec, err = translateInTreeSpecToCSIIfNeeded(volumeSpec, nodeName, vpm, csiMigratedPluginManager, csiTranslator) + volumeSpec, err = translateInTreeSpecToCSIIfNeeded(volumeSpec, nodeName, vpm, csiMigratedPluginManager, csiTranslator, pod.Namespace) if err != nil { return nil, fmt.Errorf( "error performing CSI migration checks and translation for PVC %q/%q: %v", @@ -110,7 +110,7 @@ func CreateVolumeSpec(podVolume v1.Volume, pod *v1.Pod, nodeName types.NodeName, clonedPodVolume := podVolume.DeepCopy() origspec := volume.NewSpecFromVolume(clonedPodVolume) - spec, err := translateInTreeSpecToCSIIfNeeded(origspec, nodeName, vpm, csiMigratedPluginManager, csiTranslator) + spec, err := translateInTreeSpecToCSIIfNeeded(origspec, nodeName, vpm, csiMigratedPluginManager, csiTranslator, pod.Namespace) if err != nil { return nil, fmt.Errorf( "error performing CSI migration checks and translation for inline volume %q: %v", @@ -286,7 +286,7 @@ func ProcessPodVolumes(pod *v1.Pod, addVolumes bool, desiredStateOfWorld cache.D return } -func translateInTreeSpecToCSIIfNeeded(spec *volume.Spec, nodeName types.NodeName, vpm *volume.VolumePluginMgr, csiMigratedPluginManager csimigration.PluginManager, csiTranslator csimigration.InTreeToCSITranslator) (*volume.Spec, error) { +func translateInTreeSpecToCSIIfNeeded(spec *volume.Spec, nodeName types.NodeName, vpm *volume.VolumePluginMgr, csiMigratedPluginManager csimigration.PluginManager, csiTranslator csimigration.InTreeToCSITranslator, podNamespace string) (*volume.Spec, error) { translatedSpec := spec migratable, err := csiMigratedPluginManager.IsMigratable(spec) if err != nil { @@ -301,7 +301,7 @@ func translateInTreeSpecToCSIIfNeeded(spec *volume.Spec, nodeName types.NodeName return nil, err } if migratable && migrationSupportedOnNode { - translatedSpec, err = csimigration.TranslateInTreeSpecToCSI(spec, csiTranslator) + translatedSpec, err = csimigration.TranslateInTreeSpecToCSI(spec, podNamespace, csiTranslator) if err != nil { return nil, err } diff --git a/pkg/controller/volume/expand/BUILD b/pkg/controller/volume/expand/BUILD index e63043ecbd854..4dcf60cbdb3b2 100644 --- a/pkg/controller/volume/expand/BUILD +++ b/pkg/controller/volume/expand/BUILD @@ -17,7 +17,6 @@ go_library( "//staging/src/k8s.io/api/authentication/v1:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", diff --git a/pkg/controller/volume/expand/expand_controller.go b/pkg/controller/volume/expand/expand_controller.go index 6e31791a47ba6..e845213ce9ae1 100644 --- a/pkg/controller/volume/expand/expand_controller.go +++ b/pkg/controller/volume/expand/expand_controller.go @@ -17,7 +17,6 @@ limitations under the License. package expand import ( - "context" "fmt" "net" "time" @@ -29,7 +28,6 @@ import ( authenticationv1 "k8s.io/api/authentication/v1" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" @@ -216,7 +214,7 @@ func (expc *expandController) syncHandler(key string) error { return err } - pv, err := expc.getPersistentVolume(pvc) + pv, err := getPersistentVolume(pvc, expc.pvLister) if err != nil { klog.V(5).Infof("Error getting Persistent Volume for PVC %q (uid: %q) from informer : %v", util.GetPersistentVolumeClaimQualifiedName(pvc), pvc.UID, err) return err @@ -321,12 +319,12 @@ func (expc *expandController) runWorker() { } } -func (expc *expandController) getPersistentVolume(pvc *v1.PersistentVolumeClaim) (*v1.PersistentVolume, error) { +func getPersistentVolume(pvc *v1.PersistentVolumeClaim, pvLister corelisters.PersistentVolumeLister) (*v1.PersistentVolume, error) { volumeName := pvc.Spec.VolumeName - pv, err := expc.kubeClient.CoreV1().PersistentVolumes().Get(context.TODO(), volumeName, metav1.GetOptions{}) + pv, err := pvLister.Get(volumeName) if err != nil { - return nil, fmt.Errorf("failed to get PV %q: %v", volumeName, err) + return nil, fmt.Errorf("failed to find PV %q in PV informer cache with error : %v", volumeName, err) } return pv.DeepCopy(), nil diff --git a/pkg/controller/volume/expand/expand_controller_test.go b/pkg/controller/volume/expand/expand_controller_test.go index bbe596f236517..0bc0f83cc66c0 100644 --- a/pkg/controller/volume/expand/expand_controller_test.go +++ b/pkg/controller/volume/expand/expand_controller_test.go @@ -23,7 +23,7 @@ import ( "regexp" "testing" - v1 "k8s.io/api/core/v1" + "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" @@ -126,11 +126,6 @@ func TestSyncHandler(t *testing.T) { return nil, nil }) - if test.pv != nil { - fakeKubeClient.AddReactor("get", "persistentvolumes", func(action coretesting.Action) (bool, runtime.Object, error) { - return true, test.pv, nil - }) - } fakeKubeClient.AddReactor("patch", "persistentvolumeclaims", func(action coretesting.Action) (bool, runtime.Object, error) { if action.GetSubresource() == "status" { patchActionaction, _ := action.(coretesting.PatchAction) diff --git a/pkg/controller/volume/scheduling/scheduler_binder.go b/pkg/controller/volume/scheduling/scheduler_binder.go index 10c4caccc131b..68e0f91536d07 100644 --- a/pkg/controller/volume/scheduling/scheduler_binder.go +++ b/pkg/controller/volume/scheduling/scheduler_binder.go @@ -68,6 +68,8 @@ const ( ErrReasonNodeConflict ConflictReason = "node(s) had volume node affinity conflict" // ErrReasonNotEnoughSpace is used when a pod cannot start on a node because not enough storage space is available. ErrReasonNotEnoughSpace = "node(s) did not have enough free storage" + // ErrReasonPVNotExist is used when a PVC can't find the bound persistent volumes" + ErrReasonPVNotExist = "pvc(s) bound to non-existent pv(s)" ) // BindingInfo holds a binding between PV and PVC. @@ -246,6 +248,7 @@ func (b *volumeBinder) FindPodVolumes(pod *v1.Pod, boundClaims, claimsToBind []* unboundVolumesSatisfied := true boundVolumesSatisfied := true sufficientStorage := true + boundPVsFound := true defer func() { if err != nil { return @@ -259,6 +262,9 @@ func (b *volumeBinder) FindPodVolumes(pod *v1.Pod, boundClaims, claimsToBind []* if !sufficientStorage { reasons = append(reasons, ErrReasonNotEnoughSpace) } + if !boundPVsFound { + reasons = append(reasons, ErrReasonPVNotExist) + } }() start := time.Now() @@ -288,7 +294,7 @@ func (b *volumeBinder) FindPodVolumes(pod *v1.Pod, boundClaims, claimsToBind []* // Check PV node affinity on bound volumes if len(boundClaims) > 0 { - boundVolumesSatisfied, err = b.checkBoundClaims(boundClaims, node, podName) + boundVolumesSatisfied, boundPVsFound, err = b.checkBoundClaims(boundClaims, node, podName) if err != nil { return } @@ -762,7 +768,7 @@ func (b *volumeBinder) GetPodVolumes(pod *v1.Pod) (boundClaims []*v1.PersistentV return boundClaims, unboundClaimsDelayBinding, unboundClaimsImmediate, nil } -func (b *volumeBinder) checkBoundClaims(claims []*v1.PersistentVolumeClaim, node *v1.Node, podName string) (bool, error) { +func (b *volumeBinder) checkBoundClaims(claims []*v1.PersistentVolumeClaim, node *v1.Node, podName string) (bool, bool, error) { csiNode, err := b.csiNodeLister.Get(node.Name) if err != nil { // TODO: return the error once CSINode is created by default @@ -773,24 +779,27 @@ func (b *volumeBinder) checkBoundClaims(claims []*v1.PersistentVolumeClaim, node pvName := pvc.Spec.VolumeName pv, err := b.pvCache.GetPV(pvName) if err != nil { - return false, err + if _, ok := err.(*errNotFound); ok { + err = nil + } + return true, false, err } pv, err = b.tryTranslatePVToCSI(pv, csiNode) if err != nil { - return false, err + return false, true, err } err = volumeutil.CheckNodeAffinity(pv, node.Labels) if err != nil { klog.V(4).Infof("PersistentVolume %q, Node %q mismatch for Pod %q: %v", pvName, node.Name, podName, err) - return false, nil + return false, true, nil } klog.V(5).Infof("PersistentVolume %q, Node %q matches for Pod %q", pvName, node.Name, podName) } klog.V(4).Infof("All bound volumes for Pod %q match with Node %q", podName, node.Name) - return true, nil + return true, true, nil } // findMatchingVolumes tries to find matching volumes for given claims, diff --git a/pkg/controller/volume/scheduling/scheduler_binder_test.go b/pkg/controller/volume/scheduling/scheduler_binder_test.go index 93815e8f49803..bb14291597418 100644 --- a/pkg/controller/volume/scheduling/scheduler_binder_test.go +++ b/pkg/controller/volume/scheduling/scheduler_binder_test.go @@ -880,7 +880,8 @@ func TestFindPodVolumesWithoutProvisioning(t *testing.T) { }, "bound-pvc,pv-not-exists": { podPVCs: []*v1.PersistentVolumeClaim{boundPVC}, - shouldFail: true, + shouldFail: false, + reasons: ConflictReasons{ErrReasonPVNotExist}, }, "prebound-pvc": { podPVCs: []*v1.PersistentVolumeClaim{preboundPVC}, diff --git a/pkg/credentialprovider/azure/BUILD b/pkg/credentialprovider/azure/BUILD index 85485c6e26b32..c8c6ac266448b 100644 --- a/pkg/credentialprovider/azure/BUILD +++ b/pkg/credentialprovider/azure/BUILD @@ -16,6 +16,7 @@ go_library( importpath = "k8s.io/kubernetes/pkg/credentialprovider/azure", deps = [ "//pkg/credentialprovider:go_default_library", + "//staging/src/k8s.io/client-go/tools/cache:go_default_library", "//staging/src/k8s.io/legacy-cloud-providers/azure/auth:go_default_library", "//vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry:go_default_library", "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", @@ -32,6 +33,7 @@ go_test( srcs = ["azure_credentials_test.go"], embed = [":go_default_library"], deps = [ + "//staging/src/k8s.io/client-go/tools/cache:go_default_library", "//vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry:go_default_library", "//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library", "//vendor/github.com/Azure/go-autorest/autorest/to:go_default_library", diff --git a/pkg/credentialprovider/azure/azure_credentials.go b/pkg/credentialprovider/azure/azure_credentials.go index f10288825001e..2d9281482bf29 100644 --- a/pkg/credentialprovider/azure/azure_credentials.go +++ b/pkg/credentialprovider/azure/azure_credentials.go @@ -34,6 +34,7 @@ import ( "github.com/Azure/go-autorest/autorest/azure" "github.com/spf13/pflag" + "k8s.io/client-go/tools/cache" "k8s.io/klog/v2" "k8s.io/kubernetes/pkg/credentialprovider" "k8s.io/legacy-cloud-providers/azure/auth" @@ -56,12 +57,30 @@ var ( // init registers the various means by which credentials may // be resolved on Azure. func init() { - credentialprovider.RegisterCredentialProvider("azure", - &credentialprovider.CachingDockerConfigProvider{ - Provider: NewACRProvider(flagConfigFile), - Lifetime: 1 * time.Minute, - ShouldCache: func(d credentialprovider.DockerConfig) bool { return len(d) > 0 }, - }) + credentialprovider.RegisterCredentialProvider( + "azure", + NewACRProvider(flagConfigFile), + ) +} + +type cacheEntry struct { + expiresAt time.Time + credentials credentialprovider.DockerConfigEntry + registry string +} + +// acrExpirationPolicy implements ExpirationPolicy from client-go. +type acrExpirationPolicy struct{} + +// stringKeyFunc returns the cache key as a string +func stringKeyFunc(obj interface{}) (string, error) { + key := obj.(*cacheEntry).registry + return key, nil +} + +// IsExpired checks if the ACR credentials are expired. +func (p *acrExpirationPolicy) IsExpired(entry *cache.TimestampedEntry) bool { + return time.Now().After(entry.Obj.(*cacheEntry).expiresAt) } // RegistriesClient is a testable interface for the ACR client List operation. @@ -105,7 +124,8 @@ func (az *azRegistriesClient) List(ctx context.Context) ([]containerregistry.Reg // NewACRProvider parses the specified configFile and returns a DockerConfigProvider func NewACRProvider(configFile *string) credentialprovider.DockerConfigProvider { return &acrProvider{ - file: configFile, + file: configFile, + cache: cache.NewExpirationStore(stringKeyFunc, &acrExpirationPolicy{}), } } @@ -115,6 +135,7 @@ type acrProvider struct { environment *azure.Environment registryClient RegistriesClient servicePrincipalToken *adal.ServicePrincipalToken + cache cache.Store } // ParseConfig returns a parsed configuration for an Azure cloudprovider config file @@ -185,25 +206,63 @@ func (a *acrProvider) Enabled() bool { return true } -func (a *acrProvider) Provide(image string) credentialprovider.DockerConfig { - klog.V(4).Infof("try to provide secret for image %s", image) +// getFromCache attempts to get credentials from the cache +func (a *acrProvider) getFromCache(loginServer string) (credentialprovider.DockerConfig, bool) { cfg := credentialprovider.DockerConfig{} + obj, exists, err := a.cache.GetByKey(loginServer) + if err != nil { + klog.Errorf("error getting ACR credentials from cache: %v", err) + return cfg, false + } + if !exists { + return cfg, false + } - defaultConfigEntry := credentialprovider.DockerConfigEntry{ - Username: "", - Password: "", - Email: dummyRegistryEmail, + entry := obj.(*cacheEntry) + cfg[entry.registry] = entry.credentials + return cfg, true +} + +// getFromACR gets credentials from ACR since they are not in the cache +func (a *acrProvider) getFromACR(loginServer string) (credentialprovider.DockerConfig, error) { + cfg := credentialprovider.DockerConfig{} + cred, err := getACRDockerEntryFromARMToken(a, loginServer) + if err != nil { + return cfg, err + } + + entry := &cacheEntry{ + expiresAt: time.Now().Add(10 * time.Minute), + credentials: *cred, + registry: loginServer, + } + if err := a.cache.Add(entry); err != nil { + return cfg, err + } + cfg[loginServer] = *cred + return cfg, nil +} + +func (a *acrProvider) Provide(image string) credentialprovider.DockerConfig { + loginServer := a.parseACRLoginServerFromImage(image) + if loginServer == "" { + klog.V(2).Infof("image(%s) is not from ACR, return empty authentication", image) + return credentialprovider.DockerConfig{} } - if a.config.UseManagedIdentityExtension { - if loginServer := a.parseACRLoginServerFromImage(image); loginServer == "" { - klog.V(4).Infof("image(%s) is not from ACR, skip MSI authentication", image) + cfg := credentialprovider.DockerConfig{} + if a.config != nil && a.config.UseManagedIdentityExtension { + var exists bool + cfg, exists = a.getFromCache(loginServer) + if exists { + klog.V(4).Infof("Got ACR credentials from cache for %s", loginServer) } else { - if cred, err := getACRDockerEntryFromARMToken(a, loginServer); err == nil { - cfg[loginServer] = *cred + klog.V(2).Infof("unable to get ACR credentials from cache for %s, checking ACR API", loginServer) + var err error + cfg, err = a.getFromACR(loginServer) + if err != nil { + klog.Errorf("error getting credentials from ACR for %s %v", loginServer, err) } - // add ACR anonymous repo support: use empty username and password for anonymous access - cfg["*.azurecr.*"] = defaultConfigEntry } } else { // Add our entry for each of the supported container registry URLs @@ -237,10 +296,15 @@ func (a *acrProvider) Provide(image string) credentialprovider.DockerConfig { cfg[customAcrSuffix] = *cred } } + } - // add ACR anonymous repo support: use empty username and password for anonymous access - cfg["*.azurecr.*"] = defaultConfigEntry + // add ACR anonymous repo support: use empty username and password for anonymous access + defaultConfigEntry := credentialprovider.DockerConfigEntry{ + Username: "", + Password: "", + Email: dummyRegistryEmail, } + cfg["*.azurecr.*"] = defaultConfigEntry return cfg } diff --git a/pkg/credentialprovider/azure/azure_credentials_test.go b/pkg/credentialprovider/azure/azure_credentials_test.go index 2cda325ade2d9..edacfc98b5149 100644 --- a/pkg/credentialprovider/azure/azure_credentials_test.go +++ b/pkg/credentialprovider/azure/azure_credentials_test.go @@ -26,6 +26,7 @@ import ( "github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry" "github.com/Azure/go-autorest/autorest/azure" "github.com/Azure/go-autorest/autorest/to" + "k8s.io/client-go/tools/cache" "github.com/stretchr/testify/assert" ) @@ -76,10 +77,11 @@ func Test(t *testing.T) { provider := &acrProvider{ registryClient: fakeClient, + cache: cache.NewExpirationStore(stringKeyFunc, &acrExpirationPolicy{}), } provider.loadConfig(bytes.NewBufferString(configStr)) - creds := provider.Provide("") + creds := provider.Provide("foo.azurecr.io/nginx:v1") if len(creds) != len(result)+1 { t.Errorf("Unexpected list: %v, expected length %d", creds, len(result)+1) @@ -103,11 +105,13 @@ func Test(t *testing.T) { func TestProvide(t *testing.T) { testCases := []struct { desc string + image string configStr string expectedCredsLength int }{ { - desc: "return multiple credentials using Service Principal", + desc: "return multiple credentials using Service Principal", + image: "foo.azurecr.io/bar/image:v1", configStr: ` { "aadClientId": "foo", @@ -116,7 +120,8 @@ func TestProvide(t *testing.T) { expectedCredsLength: 5, }, { - desc: "retuen 0 credential for non-ACR image using Managed Identity", + desc: "retuen 0 credential for non-ACR image using Managed Identity", + image: "busybox", configStr: ` { "UseManagedIdentityExtension": true @@ -128,10 +133,11 @@ func TestProvide(t *testing.T) { for i, test := range testCases { provider := &acrProvider{ registryClient: &fakeClient{}, + cache: cache.NewExpirationStore(stringKeyFunc, &acrExpirationPolicy{}), } provider.loadConfig(bytes.NewBufferString(test.configStr)) - creds := provider.Provide("busybox") + creds := provider.Provide(test.image) assert.Equal(t, test.expectedCredsLength, len(creds), "TestCase[%d]: %s", i, test.desc) } } diff --git a/pkg/generated/openapi/.gitignore b/pkg/generated/openapi/.gitignore deleted file mode 100644 index 94138bddbae8f..0000000000000 --- a/pkg/generated/openapi/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Ensure that openapi definitions are not ignored to ensure that -# openshift/origin can vendor them. -!zz_generated.openapi.go diff --git a/pkg/generated/openapi/zz_generated.openapi.go b/pkg/generated/openapi/zz_generated.openapi.go deleted file mode 100644 index 1390fc99b64c9..0000000000000 --- a/pkg/generated/openapi/zz_generated.openapi.go +++ /dev/null @@ -1,47248 +0,0 @@ -// +build !ignore_autogenerated - -/* -Copyright 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 openapi-gen. DO NOT EDIT. - -// This file was autogenerated by openapi-gen. Do not edit it manually! - -package openapi - -import ( - spec "github.com/go-openapi/spec" - v1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - v1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" - resource "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - intstr "k8s.io/apimachinery/pkg/util/intstr" - common "k8s.io/kube-openapi/pkg/common" -) - -func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition { - return map[string]common.OpenAPIDefinition{ - "k8s.io/api/admissionregistration/v1.MutatingWebhook": schema_k8sio_api_admissionregistration_v1_MutatingWebhook(ref), - "k8s.io/api/admissionregistration/v1.MutatingWebhookConfiguration": schema_k8sio_api_admissionregistration_v1_MutatingWebhookConfiguration(ref), - "k8s.io/api/admissionregistration/v1.MutatingWebhookConfigurationList": schema_k8sio_api_admissionregistration_v1_MutatingWebhookConfigurationList(ref), - "k8s.io/api/admissionregistration/v1.Rule": schema_k8sio_api_admissionregistration_v1_Rule(ref), - "k8s.io/api/admissionregistration/v1.RuleWithOperations": schema_k8sio_api_admissionregistration_v1_RuleWithOperations(ref), - "k8s.io/api/admissionregistration/v1.ServiceReference": schema_k8sio_api_admissionregistration_v1_ServiceReference(ref), - "k8s.io/api/admissionregistration/v1.ValidatingWebhook": schema_k8sio_api_admissionregistration_v1_ValidatingWebhook(ref), - "k8s.io/api/admissionregistration/v1.ValidatingWebhookConfiguration": schema_k8sio_api_admissionregistration_v1_ValidatingWebhookConfiguration(ref), - "k8s.io/api/admissionregistration/v1.ValidatingWebhookConfigurationList": schema_k8sio_api_admissionregistration_v1_ValidatingWebhookConfigurationList(ref), - "k8s.io/api/admissionregistration/v1.WebhookClientConfig": schema_k8sio_api_admissionregistration_v1_WebhookClientConfig(ref), - "k8s.io/api/admissionregistration/v1beta1.MutatingWebhook": schema_k8sio_api_admissionregistration_v1beta1_MutatingWebhook(ref), - "k8s.io/api/admissionregistration/v1beta1.MutatingWebhookConfiguration": schema_k8sio_api_admissionregistration_v1beta1_MutatingWebhookConfiguration(ref), - "k8s.io/api/admissionregistration/v1beta1.MutatingWebhookConfigurationList": schema_k8sio_api_admissionregistration_v1beta1_MutatingWebhookConfigurationList(ref), - "k8s.io/api/admissionregistration/v1beta1.Rule": schema_k8sio_api_admissionregistration_v1beta1_Rule(ref), - "k8s.io/api/admissionregistration/v1beta1.RuleWithOperations": schema_k8sio_api_admissionregistration_v1beta1_RuleWithOperations(ref), - "k8s.io/api/admissionregistration/v1beta1.ServiceReference": schema_k8sio_api_admissionregistration_v1beta1_ServiceReference(ref), - "k8s.io/api/admissionregistration/v1beta1.ValidatingWebhook": schema_k8sio_api_admissionregistration_v1beta1_ValidatingWebhook(ref), - "k8s.io/api/admissionregistration/v1beta1.ValidatingWebhookConfiguration": schema_k8sio_api_admissionregistration_v1beta1_ValidatingWebhookConfiguration(ref), - "k8s.io/api/admissionregistration/v1beta1.ValidatingWebhookConfigurationList": schema_k8sio_api_admissionregistration_v1beta1_ValidatingWebhookConfigurationList(ref), - "k8s.io/api/admissionregistration/v1beta1.WebhookClientConfig": schema_k8sio_api_admissionregistration_v1beta1_WebhookClientConfig(ref), - "k8s.io/api/apps/v1.ControllerRevision": schema_k8sio_api_apps_v1_ControllerRevision(ref), - "k8s.io/api/apps/v1.ControllerRevisionList": schema_k8sio_api_apps_v1_ControllerRevisionList(ref), - "k8s.io/api/apps/v1.DaemonSet": schema_k8sio_api_apps_v1_DaemonSet(ref), - "k8s.io/api/apps/v1.DaemonSetCondition": schema_k8sio_api_apps_v1_DaemonSetCondition(ref), - "k8s.io/api/apps/v1.DaemonSetList": schema_k8sio_api_apps_v1_DaemonSetList(ref), - "k8s.io/api/apps/v1.DaemonSetSpec": schema_k8sio_api_apps_v1_DaemonSetSpec(ref), - "k8s.io/api/apps/v1.DaemonSetStatus": schema_k8sio_api_apps_v1_DaemonSetStatus(ref), - "k8s.io/api/apps/v1.DaemonSetUpdateStrategy": schema_k8sio_api_apps_v1_DaemonSetUpdateStrategy(ref), - "k8s.io/api/apps/v1.Deployment": schema_k8sio_api_apps_v1_Deployment(ref), - "k8s.io/api/apps/v1.DeploymentCondition": schema_k8sio_api_apps_v1_DeploymentCondition(ref), - "k8s.io/api/apps/v1.DeploymentList": schema_k8sio_api_apps_v1_DeploymentList(ref), - "k8s.io/api/apps/v1.DeploymentSpec": schema_k8sio_api_apps_v1_DeploymentSpec(ref), - "k8s.io/api/apps/v1.DeploymentStatus": schema_k8sio_api_apps_v1_DeploymentStatus(ref), - "k8s.io/api/apps/v1.DeploymentStrategy": schema_k8sio_api_apps_v1_DeploymentStrategy(ref), - "k8s.io/api/apps/v1.ReplicaSet": schema_k8sio_api_apps_v1_ReplicaSet(ref), - "k8s.io/api/apps/v1.ReplicaSetCondition": schema_k8sio_api_apps_v1_ReplicaSetCondition(ref), - "k8s.io/api/apps/v1.ReplicaSetList": schema_k8sio_api_apps_v1_ReplicaSetList(ref), - "k8s.io/api/apps/v1.ReplicaSetSpec": schema_k8sio_api_apps_v1_ReplicaSetSpec(ref), - "k8s.io/api/apps/v1.ReplicaSetStatus": schema_k8sio_api_apps_v1_ReplicaSetStatus(ref), - "k8s.io/api/apps/v1.RollingUpdateDaemonSet": schema_k8sio_api_apps_v1_RollingUpdateDaemonSet(ref), - "k8s.io/api/apps/v1.RollingUpdateDeployment": schema_k8sio_api_apps_v1_RollingUpdateDeployment(ref), - "k8s.io/api/apps/v1.RollingUpdateStatefulSetStrategy": schema_k8sio_api_apps_v1_RollingUpdateStatefulSetStrategy(ref), - "k8s.io/api/apps/v1.StatefulSet": schema_k8sio_api_apps_v1_StatefulSet(ref), - "k8s.io/api/apps/v1.StatefulSetCondition": schema_k8sio_api_apps_v1_StatefulSetCondition(ref), - "k8s.io/api/apps/v1.StatefulSetList": schema_k8sio_api_apps_v1_StatefulSetList(ref), - "k8s.io/api/apps/v1.StatefulSetSpec": schema_k8sio_api_apps_v1_StatefulSetSpec(ref), - "k8s.io/api/apps/v1.StatefulSetStatus": schema_k8sio_api_apps_v1_StatefulSetStatus(ref), - "k8s.io/api/apps/v1.StatefulSetUpdateStrategy": schema_k8sio_api_apps_v1_StatefulSetUpdateStrategy(ref), - "k8s.io/api/apps/v1beta1.ControllerRevision": schema_k8sio_api_apps_v1beta1_ControllerRevision(ref), - "k8s.io/api/apps/v1beta1.ControllerRevisionList": schema_k8sio_api_apps_v1beta1_ControllerRevisionList(ref), - "k8s.io/api/apps/v1beta1.Deployment": schema_k8sio_api_apps_v1beta1_Deployment(ref), - "k8s.io/api/apps/v1beta1.DeploymentCondition": schema_k8sio_api_apps_v1beta1_DeploymentCondition(ref), - "k8s.io/api/apps/v1beta1.DeploymentList": schema_k8sio_api_apps_v1beta1_DeploymentList(ref), - "k8s.io/api/apps/v1beta1.DeploymentRollback": schema_k8sio_api_apps_v1beta1_DeploymentRollback(ref), - "k8s.io/api/apps/v1beta1.DeploymentSpec": schema_k8sio_api_apps_v1beta1_DeploymentSpec(ref), - "k8s.io/api/apps/v1beta1.DeploymentStatus": schema_k8sio_api_apps_v1beta1_DeploymentStatus(ref), - "k8s.io/api/apps/v1beta1.DeploymentStrategy": schema_k8sio_api_apps_v1beta1_DeploymentStrategy(ref), - "k8s.io/api/apps/v1beta1.RollbackConfig": schema_k8sio_api_apps_v1beta1_RollbackConfig(ref), - "k8s.io/api/apps/v1beta1.RollingUpdateDeployment": schema_k8sio_api_apps_v1beta1_RollingUpdateDeployment(ref), - "k8s.io/api/apps/v1beta1.RollingUpdateStatefulSetStrategy": schema_k8sio_api_apps_v1beta1_RollingUpdateStatefulSetStrategy(ref), - "k8s.io/api/apps/v1beta1.Scale": schema_k8sio_api_apps_v1beta1_Scale(ref), - "k8s.io/api/apps/v1beta1.ScaleSpec": schema_k8sio_api_apps_v1beta1_ScaleSpec(ref), - "k8s.io/api/apps/v1beta1.ScaleStatus": schema_k8sio_api_apps_v1beta1_ScaleStatus(ref), - "k8s.io/api/apps/v1beta1.StatefulSet": schema_k8sio_api_apps_v1beta1_StatefulSet(ref), - "k8s.io/api/apps/v1beta1.StatefulSetCondition": schema_k8sio_api_apps_v1beta1_StatefulSetCondition(ref), - "k8s.io/api/apps/v1beta1.StatefulSetList": schema_k8sio_api_apps_v1beta1_StatefulSetList(ref), - "k8s.io/api/apps/v1beta1.StatefulSetSpec": schema_k8sio_api_apps_v1beta1_StatefulSetSpec(ref), - "k8s.io/api/apps/v1beta1.StatefulSetStatus": schema_k8sio_api_apps_v1beta1_StatefulSetStatus(ref), - "k8s.io/api/apps/v1beta1.StatefulSetUpdateStrategy": schema_k8sio_api_apps_v1beta1_StatefulSetUpdateStrategy(ref), - "k8s.io/api/apps/v1beta2.ControllerRevision": schema_k8sio_api_apps_v1beta2_ControllerRevision(ref), - "k8s.io/api/apps/v1beta2.ControllerRevisionList": schema_k8sio_api_apps_v1beta2_ControllerRevisionList(ref), - "k8s.io/api/apps/v1beta2.DaemonSet": schema_k8sio_api_apps_v1beta2_DaemonSet(ref), - "k8s.io/api/apps/v1beta2.DaemonSetCondition": schema_k8sio_api_apps_v1beta2_DaemonSetCondition(ref), - "k8s.io/api/apps/v1beta2.DaemonSetList": schema_k8sio_api_apps_v1beta2_DaemonSetList(ref), - "k8s.io/api/apps/v1beta2.DaemonSetSpec": schema_k8sio_api_apps_v1beta2_DaemonSetSpec(ref), - "k8s.io/api/apps/v1beta2.DaemonSetStatus": schema_k8sio_api_apps_v1beta2_DaemonSetStatus(ref), - "k8s.io/api/apps/v1beta2.DaemonSetUpdateStrategy": schema_k8sio_api_apps_v1beta2_DaemonSetUpdateStrategy(ref), - "k8s.io/api/apps/v1beta2.Deployment": schema_k8sio_api_apps_v1beta2_Deployment(ref), - "k8s.io/api/apps/v1beta2.DeploymentCondition": schema_k8sio_api_apps_v1beta2_DeploymentCondition(ref), - "k8s.io/api/apps/v1beta2.DeploymentList": schema_k8sio_api_apps_v1beta2_DeploymentList(ref), - "k8s.io/api/apps/v1beta2.DeploymentSpec": schema_k8sio_api_apps_v1beta2_DeploymentSpec(ref), - "k8s.io/api/apps/v1beta2.DeploymentStatus": schema_k8sio_api_apps_v1beta2_DeploymentStatus(ref), - "k8s.io/api/apps/v1beta2.DeploymentStrategy": schema_k8sio_api_apps_v1beta2_DeploymentStrategy(ref), - "k8s.io/api/apps/v1beta2.ReplicaSet": schema_k8sio_api_apps_v1beta2_ReplicaSet(ref), - "k8s.io/api/apps/v1beta2.ReplicaSetCondition": schema_k8sio_api_apps_v1beta2_ReplicaSetCondition(ref), - "k8s.io/api/apps/v1beta2.ReplicaSetList": schema_k8sio_api_apps_v1beta2_ReplicaSetList(ref), - "k8s.io/api/apps/v1beta2.ReplicaSetSpec": schema_k8sio_api_apps_v1beta2_ReplicaSetSpec(ref), - "k8s.io/api/apps/v1beta2.ReplicaSetStatus": schema_k8sio_api_apps_v1beta2_ReplicaSetStatus(ref), - "k8s.io/api/apps/v1beta2.RollingUpdateDaemonSet": schema_k8sio_api_apps_v1beta2_RollingUpdateDaemonSet(ref), - "k8s.io/api/apps/v1beta2.RollingUpdateDeployment": schema_k8sio_api_apps_v1beta2_RollingUpdateDeployment(ref), - "k8s.io/api/apps/v1beta2.RollingUpdateStatefulSetStrategy": schema_k8sio_api_apps_v1beta2_RollingUpdateStatefulSetStrategy(ref), - "k8s.io/api/apps/v1beta2.Scale": schema_k8sio_api_apps_v1beta2_Scale(ref), - "k8s.io/api/apps/v1beta2.ScaleSpec": schema_k8sio_api_apps_v1beta2_ScaleSpec(ref), - "k8s.io/api/apps/v1beta2.ScaleStatus": schema_k8sio_api_apps_v1beta2_ScaleStatus(ref), - "k8s.io/api/apps/v1beta2.StatefulSet": schema_k8sio_api_apps_v1beta2_StatefulSet(ref), - "k8s.io/api/apps/v1beta2.StatefulSetCondition": schema_k8sio_api_apps_v1beta2_StatefulSetCondition(ref), - "k8s.io/api/apps/v1beta2.StatefulSetList": schema_k8sio_api_apps_v1beta2_StatefulSetList(ref), - "k8s.io/api/apps/v1beta2.StatefulSetSpec": schema_k8sio_api_apps_v1beta2_StatefulSetSpec(ref), - "k8s.io/api/apps/v1beta2.StatefulSetStatus": schema_k8sio_api_apps_v1beta2_StatefulSetStatus(ref), - "k8s.io/api/apps/v1beta2.StatefulSetUpdateStrategy": schema_k8sio_api_apps_v1beta2_StatefulSetUpdateStrategy(ref), - "k8s.io/api/authentication/v1.BoundObjectReference": schema_k8sio_api_authentication_v1_BoundObjectReference(ref), - "k8s.io/api/authentication/v1.TokenRequest": schema_k8sio_api_authentication_v1_TokenRequest(ref), - "k8s.io/api/authentication/v1.TokenRequestSpec": schema_k8sio_api_authentication_v1_TokenRequestSpec(ref), - "k8s.io/api/authentication/v1.TokenRequestStatus": schema_k8sio_api_authentication_v1_TokenRequestStatus(ref), - "k8s.io/api/authentication/v1.TokenReview": schema_k8sio_api_authentication_v1_TokenReview(ref), - "k8s.io/api/authentication/v1.TokenReviewSpec": schema_k8sio_api_authentication_v1_TokenReviewSpec(ref), - "k8s.io/api/authentication/v1.TokenReviewStatus": schema_k8sio_api_authentication_v1_TokenReviewStatus(ref), - "k8s.io/api/authentication/v1.UserInfo": schema_k8sio_api_authentication_v1_UserInfo(ref), - "k8s.io/api/authentication/v1beta1.TokenReview": schema_k8sio_api_authentication_v1beta1_TokenReview(ref), - "k8s.io/api/authentication/v1beta1.TokenReviewSpec": schema_k8sio_api_authentication_v1beta1_TokenReviewSpec(ref), - "k8s.io/api/authentication/v1beta1.TokenReviewStatus": schema_k8sio_api_authentication_v1beta1_TokenReviewStatus(ref), - "k8s.io/api/authentication/v1beta1.UserInfo": schema_k8sio_api_authentication_v1beta1_UserInfo(ref), - "k8s.io/api/authorization/v1.LocalSubjectAccessReview": schema_k8sio_api_authorization_v1_LocalSubjectAccessReview(ref), - "k8s.io/api/authorization/v1.NonResourceAttributes": schema_k8sio_api_authorization_v1_NonResourceAttributes(ref), - "k8s.io/api/authorization/v1.NonResourceRule": schema_k8sio_api_authorization_v1_NonResourceRule(ref), - "k8s.io/api/authorization/v1.ResourceAttributes": schema_k8sio_api_authorization_v1_ResourceAttributes(ref), - "k8s.io/api/authorization/v1.ResourceRule": schema_k8sio_api_authorization_v1_ResourceRule(ref), - "k8s.io/api/authorization/v1.SelfSubjectAccessReview": schema_k8sio_api_authorization_v1_SelfSubjectAccessReview(ref), - "k8s.io/api/authorization/v1.SelfSubjectAccessReviewSpec": schema_k8sio_api_authorization_v1_SelfSubjectAccessReviewSpec(ref), - "k8s.io/api/authorization/v1.SelfSubjectRulesReview": schema_k8sio_api_authorization_v1_SelfSubjectRulesReview(ref), - "k8s.io/api/authorization/v1.SelfSubjectRulesReviewSpec": schema_k8sio_api_authorization_v1_SelfSubjectRulesReviewSpec(ref), - "k8s.io/api/authorization/v1.SubjectAccessReview": schema_k8sio_api_authorization_v1_SubjectAccessReview(ref), - "k8s.io/api/authorization/v1.SubjectAccessReviewSpec": schema_k8sio_api_authorization_v1_SubjectAccessReviewSpec(ref), - "k8s.io/api/authorization/v1.SubjectAccessReviewStatus": schema_k8sio_api_authorization_v1_SubjectAccessReviewStatus(ref), - "k8s.io/api/authorization/v1.SubjectRulesReviewStatus": schema_k8sio_api_authorization_v1_SubjectRulesReviewStatus(ref), - "k8s.io/api/authorization/v1beta1.LocalSubjectAccessReview": schema_k8sio_api_authorization_v1beta1_LocalSubjectAccessReview(ref), - "k8s.io/api/authorization/v1beta1.NonResourceAttributes": schema_k8sio_api_authorization_v1beta1_NonResourceAttributes(ref), - "k8s.io/api/authorization/v1beta1.NonResourceRule": schema_k8sio_api_authorization_v1beta1_NonResourceRule(ref), - "k8s.io/api/authorization/v1beta1.ResourceAttributes": schema_k8sio_api_authorization_v1beta1_ResourceAttributes(ref), - "k8s.io/api/authorization/v1beta1.ResourceRule": schema_k8sio_api_authorization_v1beta1_ResourceRule(ref), - "k8s.io/api/authorization/v1beta1.SelfSubjectAccessReview": schema_k8sio_api_authorization_v1beta1_SelfSubjectAccessReview(ref), - "k8s.io/api/authorization/v1beta1.SelfSubjectAccessReviewSpec": schema_k8sio_api_authorization_v1beta1_SelfSubjectAccessReviewSpec(ref), - "k8s.io/api/authorization/v1beta1.SelfSubjectRulesReview": schema_k8sio_api_authorization_v1beta1_SelfSubjectRulesReview(ref), - "k8s.io/api/authorization/v1beta1.SelfSubjectRulesReviewSpec": schema_k8sio_api_authorization_v1beta1_SelfSubjectRulesReviewSpec(ref), - "k8s.io/api/authorization/v1beta1.SubjectAccessReview": schema_k8sio_api_authorization_v1beta1_SubjectAccessReview(ref), - "k8s.io/api/authorization/v1beta1.SubjectAccessReviewSpec": schema_k8sio_api_authorization_v1beta1_SubjectAccessReviewSpec(ref), - "k8s.io/api/authorization/v1beta1.SubjectAccessReviewStatus": schema_k8sio_api_authorization_v1beta1_SubjectAccessReviewStatus(ref), - "k8s.io/api/authorization/v1beta1.SubjectRulesReviewStatus": schema_k8sio_api_authorization_v1beta1_SubjectRulesReviewStatus(ref), - "k8s.io/api/autoscaling/v1.CrossVersionObjectReference": schema_k8sio_api_autoscaling_v1_CrossVersionObjectReference(ref), - "k8s.io/api/autoscaling/v1.ExternalMetricSource": schema_k8sio_api_autoscaling_v1_ExternalMetricSource(ref), - "k8s.io/api/autoscaling/v1.ExternalMetricStatus": schema_k8sio_api_autoscaling_v1_ExternalMetricStatus(ref), - "k8s.io/api/autoscaling/v1.HorizontalPodAutoscaler": schema_k8sio_api_autoscaling_v1_HorizontalPodAutoscaler(ref), - "k8s.io/api/autoscaling/v1.HorizontalPodAutoscalerCondition": schema_k8sio_api_autoscaling_v1_HorizontalPodAutoscalerCondition(ref), - "k8s.io/api/autoscaling/v1.HorizontalPodAutoscalerList": schema_k8sio_api_autoscaling_v1_HorizontalPodAutoscalerList(ref), - "k8s.io/api/autoscaling/v1.HorizontalPodAutoscalerSpec": schema_k8sio_api_autoscaling_v1_HorizontalPodAutoscalerSpec(ref), - "k8s.io/api/autoscaling/v1.HorizontalPodAutoscalerStatus": schema_k8sio_api_autoscaling_v1_HorizontalPodAutoscalerStatus(ref), - "k8s.io/api/autoscaling/v1.MetricSpec": schema_k8sio_api_autoscaling_v1_MetricSpec(ref), - "k8s.io/api/autoscaling/v1.MetricStatus": schema_k8sio_api_autoscaling_v1_MetricStatus(ref), - "k8s.io/api/autoscaling/v1.ObjectMetricSource": schema_k8sio_api_autoscaling_v1_ObjectMetricSource(ref), - "k8s.io/api/autoscaling/v1.ObjectMetricStatus": schema_k8sio_api_autoscaling_v1_ObjectMetricStatus(ref), - "k8s.io/api/autoscaling/v1.PodsMetricSource": schema_k8sio_api_autoscaling_v1_PodsMetricSource(ref), - "k8s.io/api/autoscaling/v1.PodsMetricStatus": schema_k8sio_api_autoscaling_v1_PodsMetricStatus(ref), - "k8s.io/api/autoscaling/v1.ResourceMetricSource": schema_k8sio_api_autoscaling_v1_ResourceMetricSource(ref), - "k8s.io/api/autoscaling/v1.ResourceMetricStatus": schema_k8sio_api_autoscaling_v1_ResourceMetricStatus(ref), - "k8s.io/api/autoscaling/v1.Scale": schema_k8sio_api_autoscaling_v1_Scale(ref), - "k8s.io/api/autoscaling/v1.ScaleSpec": schema_k8sio_api_autoscaling_v1_ScaleSpec(ref), - "k8s.io/api/autoscaling/v1.ScaleStatus": schema_k8sio_api_autoscaling_v1_ScaleStatus(ref), - "k8s.io/api/autoscaling/v2beta1.CrossVersionObjectReference": schema_k8sio_api_autoscaling_v2beta1_CrossVersionObjectReference(ref), - "k8s.io/api/autoscaling/v2beta1.ExternalMetricSource": schema_k8sio_api_autoscaling_v2beta1_ExternalMetricSource(ref), - "k8s.io/api/autoscaling/v2beta1.ExternalMetricStatus": schema_k8sio_api_autoscaling_v2beta1_ExternalMetricStatus(ref), - "k8s.io/api/autoscaling/v2beta1.HorizontalPodAutoscaler": schema_k8sio_api_autoscaling_v2beta1_HorizontalPodAutoscaler(ref), - "k8s.io/api/autoscaling/v2beta1.HorizontalPodAutoscalerCondition": schema_k8sio_api_autoscaling_v2beta1_HorizontalPodAutoscalerCondition(ref), - "k8s.io/api/autoscaling/v2beta1.HorizontalPodAutoscalerList": schema_k8sio_api_autoscaling_v2beta1_HorizontalPodAutoscalerList(ref), - "k8s.io/api/autoscaling/v2beta1.HorizontalPodAutoscalerSpec": schema_k8sio_api_autoscaling_v2beta1_HorizontalPodAutoscalerSpec(ref), - "k8s.io/api/autoscaling/v2beta1.HorizontalPodAutoscalerStatus": schema_k8sio_api_autoscaling_v2beta1_HorizontalPodAutoscalerStatus(ref), - "k8s.io/api/autoscaling/v2beta1.MetricSpec": schema_k8sio_api_autoscaling_v2beta1_MetricSpec(ref), - "k8s.io/api/autoscaling/v2beta1.MetricStatus": schema_k8sio_api_autoscaling_v2beta1_MetricStatus(ref), - "k8s.io/api/autoscaling/v2beta1.ObjectMetricSource": schema_k8sio_api_autoscaling_v2beta1_ObjectMetricSource(ref), - "k8s.io/api/autoscaling/v2beta1.ObjectMetricStatus": schema_k8sio_api_autoscaling_v2beta1_ObjectMetricStatus(ref), - "k8s.io/api/autoscaling/v2beta1.PodsMetricSource": schema_k8sio_api_autoscaling_v2beta1_PodsMetricSource(ref), - "k8s.io/api/autoscaling/v2beta1.PodsMetricStatus": schema_k8sio_api_autoscaling_v2beta1_PodsMetricStatus(ref), - "k8s.io/api/autoscaling/v2beta1.ResourceMetricSource": schema_k8sio_api_autoscaling_v2beta1_ResourceMetricSource(ref), - "k8s.io/api/autoscaling/v2beta1.ResourceMetricStatus": schema_k8sio_api_autoscaling_v2beta1_ResourceMetricStatus(ref), - "k8s.io/api/autoscaling/v2beta2.CrossVersionObjectReference": schema_k8sio_api_autoscaling_v2beta2_CrossVersionObjectReference(ref), - "k8s.io/api/autoscaling/v2beta2.ExternalMetricSource": schema_k8sio_api_autoscaling_v2beta2_ExternalMetricSource(ref), - "k8s.io/api/autoscaling/v2beta2.ExternalMetricStatus": schema_k8sio_api_autoscaling_v2beta2_ExternalMetricStatus(ref), - "k8s.io/api/autoscaling/v2beta2.HPAScalingPolicy": schema_k8sio_api_autoscaling_v2beta2_HPAScalingPolicy(ref), - "k8s.io/api/autoscaling/v2beta2.HPAScalingRules": schema_k8sio_api_autoscaling_v2beta2_HPAScalingRules(ref), - "k8s.io/api/autoscaling/v2beta2.HorizontalPodAutoscaler": schema_k8sio_api_autoscaling_v2beta2_HorizontalPodAutoscaler(ref), - "k8s.io/api/autoscaling/v2beta2.HorizontalPodAutoscalerBehavior": schema_k8sio_api_autoscaling_v2beta2_HorizontalPodAutoscalerBehavior(ref), - "k8s.io/api/autoscaling/v2beta2.HorizontalPodAutoscalerCondition": schema_k8sio_api_autoscaling_v2beta2_HorizontalPodAutoscalerCondition(ref), - "k8s.io/api/autoscaling/v2beta2.HorizontalPodAutoscalerList": schema_k8sio_api_autoscaling_v2beta2_HorizontalPodAutoscalerList(ref), - "k8s.io/api/autoscaling/v2beta2.HorizontalPodAutoscalerSpec": schema_k8sio_api_autoscaling_v2beta2_HorizontalPodAutoscalerSpec(ref), - "k8s.io/api/autoscaling/v2beta2.HorizontalPodAutoscalerStatus": schema_k8sio_api_autoscaling_v2beta2_HorizontalPodAutoscalerStatus(ref), - "k8s.io/api/autoscaling/v2beta2.MetricIdentifier": schema_k8sio_api_autoscaling_v2beta2_MetricIdentifier(ref), - "k8s.io/api/autoscaling/v2beta2.MetricSpec": schema_k8sio_api_autoscaling_v2beta2_MetricSpec(ref), - "k8s.io/api/autoscaling/v2beta2.MetricStatus": schema_k8sio_api_autoscaling_v2beta2_MetricStatus(ref), - "k8s.io/api/autoscaling/v2beta2.MetricTarget": schema_k8sio_api_autoscaling_v2beta2_MetricTarget(ref), - "k8s.io/api/autoscaling/v2beta2.MetricValueStatus": schema_k8sio_api_autoscaling_v2beta2_MetricValueStatus(ref), - "k8s.io/api/autoscaling/v2beta2.ObjectMetricSource": schema_k8sio_api_autoscaling_v2beta2_ObjectMetricSource(ref), - "k8s.io/api/autoscaling/v2beta2.ObjectMetricStatus": schema_k8sio_api_autoscaling_v2beta2_ObjectMetricStatus(ref), - "k8s.io/api/autoscaling/v2beta2.PodsMetricSource": schema_k8sio_api_autoscaling_v2beta2_PodsMetricSource(ref), - "k8s.io/api/autoscaling/v2beta2.PodsMetricStatus": schema_k8sio_api_autoscaling_v2beta2_PodsMetricStatus(ref), - "k8s.io/api/autoscaling/v2beta2.ResourceMetricSource": schema_k8sio_api_autoscaling_v2beta2_ResourceMetricSource(ref), - "k8s.io/api/autoscaling/v2beta2.ResourceMetricStatus": schema_k8sio_api_autoscaling_v2beta2_ResourceMetricStatus(ref), - "k8s.io/api/batch/v1.Job": schema_k8sio_api_batch_v1_Job(ref), - "k8s.io/api/batch/v1.JobCondition": schema_k8sio_api_batch_v1_JobCondition(ref), - "k8s.io/api/batch/v1.JobList": schema_k8sio_api_batch_v1_JobList(ref), - "k8s.io/api/batch/v1.JobSpec": schema_k8sio_api_batch_v1_JobSpec(ref), - "k8s.io/api/batch/v1.JobStatus": schema_k8sio_api_batch_v1_JobStatus(ref), - "k8s.io/api/batch/v1beta1.CronJob": schema_k8sio_api_batch_v1beta1_CronJob(ref), - "k8s.io/api/batch/v1beta1.CronJobList": schema_k8sio_api_batch_v1beta1_CronJobList(ref), - "k8s.io/api/batch/v1beta1.CronJobSpec": schema_k8sio_api_batch_v1beta1_CronJobSpec(ref), - "k8s.io/api/batch/v1beta1.CronJobStatus": schema_k8sio_api_batch_v1beta1_CronJobStatus(ref), - "k8s.io/api/batch/v1beta1.JobTemplate": schema_k8sio_api_batch_v1beta1_JobTemplate(ref), - "k8s.io/api/batch/v1beta1.JobTemplateSpec": schema_k8sio_api_batch_v1beta1_JobTemplateSpec(ref), - "k8s.io/api/batch/v2alpha1.CronJob": schema_k8sio_api_batch_v2alpha1_CronJob(ref), - "k8s.io/api/batch/v2alpha1.CronJobList": schema_k8sio_api_batch_v2alpha1_CronJobList(ref), - "k8s.io/api/batch/v2alpha1.CronJobSpec": schema_k8sio_api_batch_v2alpha1_CronJobSpec(ref), - "k8s.io/api/batch/v2alpha1.CronJobStatus": schema_k8sio_api_batch_v2alpha1_CronJobStatus(ref), - "k8s.io/api/batch/v2alpha1.JobTemplate": schema_k8sio_api_batch_v2alpha1_JobTemplate(ref), - "k8s.io/api/batch/v2alpha1.JobTemplateSpec": schema_k8sio_api_batch_v2alpha1_JobTemplateSpec(ref), - "k8s.io/api/certificates/v1.CertificateSigningRequest": schema_k8sio_api_certificates_v1_CertificateSigningRequest(ref), - "k8s.io/api/certificates/v1.CertificateSigningRequestCondition": schema_k8sio_api_certificates_v1_CertificateSigningRequestCondition(ref), - "k8s.io/api/certificates/v1.CertificateSigningRequestList": schema_k8sio_api_certificates_v1_CertificateSigningRequestList(ref), - "k8s.io/api/certificates/v1.CertificateSigningRequestSpec": schema_k8sio_api_certificates_v1_CertificateSigningRequestSpec(ref), - "k8s.io/api/certificates/v1.CertificateSigningRequestStatus": schema_k8sio_api_certificates_v1_CertificateSigningRequestStatus(ref), - "k8s.io/api/certificates/v1beta1.CertificateSigningRequest": schema_k8sio_api_certificates_v1beta1_CertificateSigningRequest(ref), - "k8s.io/api/certificates/v1beta1.CertificateSigningRequestCondition": schema_k8sio_api_certificates_v1beta1_CertificateSigningRequestCondition(ref), - "k8s.io/api/certificates/v1beta1.CertificateSigningRequestList": schema_k8sio_api_certificates_v1beta1_CertificateSigningRequestList(ref), - "k8s.io/api/certificates/v1beta1.CertificateSigningRequestSpec": schema_k8sio_api_certificates_v1beta1_CertificateSigningRequestSpec(ref), - "k8s.io/api/certificates/v1beta1.CertificateSigningRequestStatus": schema_k8sio_api_certificates_v1beta1_CertificateSigningRequestStatus(ref), - "k8s.io/api/coordination/v1.Lease": schema_k8sio_api_coordination_v1_Lease(ref), - "k8s.io/api/coordination/v1.LeaseList": schema_k8sio_api_coordination_v1_LeaseList(ref), - "k8s.io/api/coordination/v1.LeaseSpec": schema_k8sio_api_coordination_v1_LeaseSpec(ref), - "k8s.io/api/coordination/v1beta1.Lease": schema_k8sio_api_coordination_v1beta1_Lease(ref), - "k8s.io/api/coordination/v1beta1.LeaseList": schema_k8sio_api_coordination_v1beta1_LeaseList(ref), - "k8s.io/api/coordination/v1beta1.LeaseSpec": schema_k8sio_api_coordination_v1beta1_LeaseSpec(ref), - "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource": schema_k8sio_api_core_v1_AWSElasticBlockStoreVolumeSource(ref), - "k8s.io/api/core/v1.Affinity": schema_k8sio_api_core_v1_Affinity(ref), - "k8s.io/api/core/v1.AttachedVolume": schema_k8sio_api_core_v1_AttachedVolume(ref), - "k8s.io/api/core/v1.AvoidPods": schema_k8sio_api_core_v1_AvoidPods(ref), - "k8s.io/api/core/v1.AzureDiskVolumeSource": schema_k8sio_api_core_v1_AzureDiskVolumeSource(ref), - "k8s.io/api/core/v1.AzureFilePersistentVolumeSource": schema_k8sio_api_core_v1_AzureFilePersistentVolumeSource(ref), - "k8s.io/api/core/v1.AzureFileVolumeSource": schema_k8sio_api_core_v1_AzureFileVolumeSource(ref), - "k8s.io/api/core/v1.Binding": schema_k8sio_api_core_v1_Binding(ref), - "k8s.io/api/core/v1.CSIPersistentVolumeSource": schema_k8sio_api_core_v1_CSIPersistentVolumeSource(ref), - "k8s.io/api/core/v1.CSIVolumeSource": schema_k8sio_api_core_v1_CSIVolumeSource(ref), - "k8s.io/api/core/v1.Capabilities": schema_k8sio_api_core_v1_Capabilities(ref), - "k8s.io/api/core/v1.CephFSPersistentVolumeSource": schema_k8sio_api_core_v1_CephFSPersistentVolumeSource(ref), - "k8s.io/api/core/v1.CephFSVolumeSource": schema_k8sio_api_core_v1_CephFSVolumeSource(ref), - "k8s.io/api/core/v1.CinderPersistentVolumeSource": schema_k8sio_api_core_v1_CinderPersistentVolumeSource(ref), - "k8s.io/api/core/v1.CinderVolumeSource": schema_k8sio_api_core_v1_CinderVolumeSource(ref), - "k8s.io/api/core/v1.ClientIPConfig": schema_k8sio_api_core_v1_ClientIPConfig(ref), - "k8s.io/api/core/v1.ComponentCondition": schema_k8sio_api_core_v1_ComponentCondition(ref), - "k8s.io/api/core/v1.ComponentStatus": schema_k8sio_api_core_v1_ComponentStatus(ref), - "k8s.io/api/core/v1.ComponentStatusList": schema_k8sio_api_core_v1_ComponentStatusList(ref), - "k8s.io/api/core/v1.ConfigMap": schema_k8sio_api_core_v1_ConfigMap(ref), - "k8s.io/api/core/v1.ConfigMapEnvSource": schema_k8sio_api_core_v1_ConfigMapEnvSource(ref), - "k8s.io/api/core/v1.ConfigMapKeySelector": schema_k8sio_api_core_v1_ConfigMapKeySelector(ref), - "k8s.io/api/core/v1.ConfigMapList": schema_k8sio_api_core_v1_ConfigMapList(ref), - "k8s.io/api/core/v1.ConfigMapNodeConfigSource": schema_k8sio_api_core_v1_ConfigMapNodeConfigSource(ref), - "k8s.io/api/core/v1.ConfigMapProjection": schema_k8sio_api_core_v1_ConfigMapProjection(ref), - "k8s.io/api/core/v1.ConfigMapVolumeSource": schema_k8sio_api_core_v1_ConfigMapVolumeSource(ref), - "k8s.io/api/core/v1.Container": schema_k8sio_api_core_v1_Container(ref), - "k8s.io/api/core/v1.ContainerImage": schema_k8sio_api_core_v1_ContainerImage(ref), - "k8s.io/api/core/v1.ContainerPort": schema_k8sio_api_core_v1_ContainerPort(ref), - "k8s.io/api/core/v1.ContainerState": schema_k8sio_api_core_v1_ContainerState(ref), - "k8s.io/api/core/v1.ContainerStateRunning": schema_k8sio_api_core_v1_ContainerStateRunning(ref), - "k8s.io/api/core/v1.ContainerStateTerminated": schema_k8sio_api_core_v1_ContainerStateTerminated(ref), - "k8s.io/api/core/v1.ContainerStateWaiting": schema_k8sio_api_core_v1_ContainerStateWaiting(ref), - "k8s.io/api/core/v1.ContainerStatus": schema_k8sio_api_core_v1_ContainerStatus(ref), - "k8s.io/api/core/v1.DaemonEndpoint": schema_k8sio_api_core_v1_DaemonEndpoint(ref), - "k8s.io/api/core/v1.DownwardAPIProjection": schema_k8sio_api_core_v1_DownwardAPIProjection(ref), - "k8s.io/api/core/v1.DownwardAPIVolumeFile": schema_k8sio_api_core_v1_DownwardAPIVolumeFile(ref), - "k8s.io/api/core/v1.DownwardAPIVolumeSource": schema_k8sio_api_core_v1_DownwardAPIVolumeSource(ref), - "k8s.io/api/core/v1.EmptyDirVolumeSource": schema_k8sio_api_core_v1_EmptyDirVolumeSource(ref), - "k8s.io/api/core/v1.EndpointAddress": schema_k8sio_api_core_v1_EndpointAddress(ref), - "k8s.io/api/core/v1.EndpointPort": schema_k8sio_api_core_v1_EndpointPort(ref), - "k8s.io/api/core/v1.EndpointSubset": schema_k8sio_api_core_v1_EndpointSubset(ref), - "k8s.io/api/core/v1.Endpoints": schema_k8sio_api_core_v1_Endpoints(ref), - "k8s.io/api/core/v1.EndpointsList": schema_k8sio_api_core_v1_EndpointsList(ref), - "k8s.io/api/core/v1.EnvFromSource": schema_k8sio_api_core_v1_EnvFromSource(ref), - "k8s.io/api/core/v1.EnvVar": schema_k8sio_api_core_v1_EnvVar(ref), - "k8s.io/api/core/v1.EnvVarSource": schema_k8sio_api_core_v1_EnvVarSource(ref), - "k8s.io/api/core/v1.EphemeralContainer": schema_k8sio_api_core_v1_EphemeralContainer(ref), - "k8s.io/api/core/v1.EphemeralContainerCommon": schema_k8sio_api_core_v1_EphemeralContainerCommon(ref), - "k8s.io/api/core/v1.EphemeralContainers": schema_k8sio_api_core_v1_EphemeralContainers(ref), - "k8s.io/api/core/v1.EphemeralVolumeSource": schema_k8sio_api_core_v1_EphemeralVolumeSource(ref), - "k8s.io/api/core/v1.Event": schema_k8sio_api_core_v1_Event(ref), - "k8s.io/api/core/v1.EventList": schema_k8sio_api_core_v1_EventList(ref), - "k8s.io/api/core/v1.EventSeries": schema_k8sio_api_core_v1_EventSeries(ref), - "k8s.io/api/core/v1.EventSource": schema_k8sio_api_core_v1_EventSource(ref), - "k8s.io/api/core/v1.ExecAction": schema_k8sio_api_core_v1_ExecAction(ref), - "k8s.io/api/core/v1.FCVolumeSource": schema_k8sio_api_core_v1_FCVolumeSource(ref), - "k8s.io/api/core/v1.FlexPersistentVolumeSource": schema_k8sio_api_core_v1_FlexPersistentVolumeSource(ref), - "k8s.io/api/core/v1.FlexVolumeSource": schema_k8sio_api_core_v1_FlexVolumeSource(ref), - "k8s.io/api/core/v1.FlockerVolumeSource": schema_k8sio_api_core_v1_FlockerVolumeSource(ref), - "k8s.io/api/core/v1.GCEPersistentDiskVolumeSource": schema_k8sio_api_core_v1_GCEPersistentDiskVolumeSource(ref), - "k8s.io/api/core/v1.GitRepoVolumeSource": schema_k8sio_api_core_v1_GitRepoVolumeSource(ref), - "k8s.io/api/core/v1.GlusterfsPersistentVolumeSource": schema_k8sio_api_core_v1_GlusterfsPersistentVolumeSource(ref), - "k8s.io/api/core/v1.GlusterfsVolumeSource": schema_k8sio_api_core_v1_GlusterfsVolumeSource(ref), - "k8s.io/api/core/v1.HTTPGetAction": schema_k8sio_api_core_v1_HTTPGetAction(ref), - "k8s.io/api/core/v1.HTTPHeader": schema_k8sio_api_core_v1_HTTPHeader(ref), - "k8s.io/api/core/v1.Handler": schema_k8sio_api_core_v1_Handler(ref), - "k8s.io/api/core/v1.HostAlias": schema_k8sio_api_core_v1_HostAlias(ref), - "k8s.io/api/core/v1.HostPathVolumeSource": schema_k8sio_api_core_v1_HostPathVolumeSource(ref), - "k8s.io/api/core/v1.ISCSIPersistentVolumeSource": schema_k8sio_api_core_v1_ISCSIPersistentVolumeSource(ref), - "k8s.io/api/core/v1.ISCSIVolumeSource": schema_k8sio_api_core_v1_ISCSIVolumeSource(ref), - "k8s.io/api/core/v1.KeyToPath": schema_k8sio_api_core_v1_KeyToPath(ref), - "k8s.io/api/core/v1.Lifecycle": schema_k8sio_api_core_v1_Lifecycle(ref), - "k8s.io/api/core/v1.LimitRange": schema_k8sio_api_core_v1_LimitRange(ref), - "k8s.io/api/core/v1.LimitRangeItem": schema_k8sio_api_core_v1_LimitRangeItem(ref), - "k8s.io/api/core/v1.LimitRangeList": schema_k8sio_api_core_v1_LimitRangeList(ref), - "k8s.io/api/core/v1.LimitRangeSpec": schema_k8sio_api_core_v1_LimitRangeSpec(ref), - "k8s.io/api/core/v1.List": schema_k8sio_api_core_v1_List(ref), - "k8s.io/api/core/v1.LoadBalancerIngress": schema_k8sio_api_core_v1_LoadBalancerIngress(ref), - "k8s.io/api/core/v1.LoadBalancerStatus": schema_k8sio_api_core_v1_LoadBalancerStatus(ref), - "k8s.io/api/core/v1.LocalObjectReference": schema_k8sio_api_core_v1_LocalObjectReference(ref), - "k8s.io/api/core/v1.LocalVolumeSource": schema_k8sio_api_core_v1_LocalVolumeSource(ref), - "k8s.io/api/core/v1.NFSVolumeSource": schema_k8sio_api_core_v1_NFSVolumeSource(ref), - "k8s.io/api/core/v1.Namespace": schema_k8sio_api_core_v1_Namespace(ref), - "k8s.io/api/core/v1.NamespaceCondition": schema_k8sio_api_core_v1_NamespaceCondition(ref), - "k8s.io/api/core/v1.NamespaceList": schema_k8sio_api_core_v1_NamespaceList(ref), - "k8s.io/api/core/v1.NamespaceSpec": schema_k8sio_api_core_v1_NamespaceSpec(ref), - "k8s.io/api/core/v1.NamespaceStatus": schema_k8sio_api_core_v1_NamespaceStatus(ref), - "k8s.io/api/core/v1.Node": schema_k8sio_api_core_v1_Node(ref), - "k8s.io/api/core/v1.NodeAddress": schema_k8sio_api_core_v1_NodeAddress(ref), - "k8s.io/api/core/v1.NodeAffinity": schema_k8sio_api_core_v1_NodeAffinity(ref), - "k8s.io/api/core/v1.NodeCondition": schema_k8sio_api_core_v1_NodeCondition(ref), - "k8s.io/api/core/v1.NodeConfigSource": schema_k8sio_api_core_v1_NodeConfigSource(ref), - "k8s.io/api/core/v1.NodeConfigStatus": schema_k8sio_api_core_v1_NodeConfigStatus(ref), - "k8s.io/api/core/v1.NodeDaemonEndpoints": schema_k8sio_api_core_v1_NodeDaemonEndpoints(ref), - "k8s.io/api/core/v1.NodeList": schema_k8sio_api_core_v1_NodeList(ref), - "k8s.io/api/core/v1.NodeProxyOptions": schema_k8sio_api_core_v1_NodeProxyOptions(ref), - "k8s.io/api/core/v1.NodeResources": schema_k8sio_api_core_v1_NodeResources(ref), - "k8s.io/api/core/v1.NodeSelector": schema_k8sio_api_core_v1_NodeSelector(ref), - "k8s.io/api/core/v1.NodeSelectorRequirement": schema_k8sio_api_core_v1_NodeSelectorRequirement(ref), - "k8s.io/api/core/v1.NodeSelectorTerm": schema_k8sio_api_core_v1_NodeSelectorTerm(ref), - "k8s.io/api/core/v1.NodeSpec": schema_k8sio_api_core_v1_NodeSpec(ref), - "k8s.io/api/core/v1.NodeStatus": schema_k8sio_api_core_v1_NodeStatus(ref), - "k8s.io/api/core/v1.NodeSystemInfo": schema_k8sio_api_core_v1_NodeSystemInfo(ref), - "k8s.io/api/core/v1.ObjectFieldSelector": schema_k8sio_api_core_v1_ObjectFieldSelector(ref), - "k8s.io/api/core/v1.ObjectReference": schema_k8sio_api_core_v1_ObjectReference(ref), - "k8s.io/api/core/v1.PersistentVolume": schema_k8sio_api_core_v1_PersistentVolume(ref), - "k8s.io/api/core/v1.PersistentVolumeClaim": schema_k8sio_api_core_v1_PersistentVolumeClaim(ref), - "k8s.io/api/core/v1.PersistentVolumeClaimCondition": schema_k8sio_api_core_v1_PersistentVolumeClaimCondition(ref), - "k8s.io/api/core/v1.PersistentVolumeClaimList": schema_k8sio_api_core_v1_PersistentVolumeClaimList(ref), - "k8s.io/api/core/v1.PersistentVolumeClaimSpec": schema_k8sio_api_core_v1_PersistentVolumeClaimSpec(ref), - "k8s.io/api/core/v1.PersistentVolumeClaimStatus": schema_k8sio_api_core_v1_PersistentVolumeClaimStatus(ref), - "k8s.io/api/core/v1.PersistentVolumeClaimTemplate": schema_k8sio_api_core_v1_PersistentVolumeClaimTemplate(ref), - "k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource": schema_k8sio_api_core_v1_PersistentVolumeClaimVolumeSource(ref), - "k8s.io/api/core/v1.PersistentVolumeList": schema_k8sio_api_core_v1_PersistentVolumeList(ref), - "k8s.io/api/core/v1.PersistentVolumeSource": schema_k8sio_api_core_v1_PersistentVolumeSource(ref), - "k8s.io/api/core/v1.PersistentVolumeSpec": schema_k8sio_api_core_v1_PersistentVolumeSpec(ref), - "k8s.io/api/core/v1.PersistentVolumeStatus": schema_k8sio_api_core_v1_PersistentVolumeStatus(ref), - "k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource": schema_k8sio_api_core_v1_PhotonPersistentDiskVolumeSource(ref), - "k8s.io/api/core/v1.Pod": schema_k8sio_api_core_v1_Pod(ref), - "k8s.io/api/core/v1.PodAffinity": schema_k8sio_api_core_v1_PodAffinity(ref), - "k8s.io/api/core/v1.PodAffinityTerm": schema_k8sio_api_core_v1_PodAffinityTerm(ref), - "k8s.io/api/core/v1.PodAntiAffinity": schema_k8sio_api_core_v1_PodAntiAffinity(ref), - "k8s.io/api/core/v1.PodAttachOptions": schema_k8sio_api_core_v1_PodAttachOptions(ref), - "k8s.io/api/core/v1.PodCondition": schema_k8sio_api_core_v1_PodCondition(ref), - "k8s.io/api/core/v1.PodDNSConfig": schema_k8sio_api_core_v1_PodDNSConfig(ref), - "k8s.io/api/core/v1.PodDNSConfigOption": schema_k8sio_api_core_v1_PodDNSConfigOption(ref), - "k8s.io/api/core/v1.PodExecOptions": schema_k8sio_api_core_v1_PodExecOptions(ref), - "k8s.io/api/core/v1.PodIP": schema_k8sio_api_core_v1_PodIP(ref), - "k8s.io/api/core/v1.PodList": schema_k8sio_api_core_v1_PodList(ref), - "k8s.io/api/core/v1.PodLogOptions": schema_k8sio_api_core_v1_PodLogOptions(ref), - "k8s.io/api/core/v1.PodPortForwardOptions": schema_k8sio_api_core_v1_PodPortForwardOptions(ref), - "k8s.io/api/core/v1.PodProxyOptions": schema_k8sio_api_core_v1_PodProxyOptions(ref), - "k8s.io/api/core/v1.PodReadinessGate": schema_k8sio_api_core_v1_PodReadinessGate(ref), - "k8s.io/api/core/v1.PodSecurityContext": schema_k8sio_api_core_v1_PodSecurityContext(ref), - "k8s.io/api/core/v1.PodSignature": schema_k8sio_api_core_v1_PodSignature(ref), - "k8s.io/api/core/v1.PodSpec": schema_k8sio_api_core_v1_PodSpec(ref), - "k8s.io/api/core/v1.PodStatus": schema_k8sio_api_core_v1_PodStatus(ref), - "k8s.io/api/core/v1.PodStatusResult": schema_k8sio_api_core_v1_PodStatusResult(ref), - "k8s.io/api/core/v1.PodTemplate": schema_k8sio_api_core_v1_PodTemplate(ref), - "k8s.io/api/core/v1.PodTemplateList": schema_k8sio_api_core_v1_PodTemplateList(ref), - "k8s.io/api/core/v1.PodTemplateSpec": schema_k8sio_api_core_v1_PodTemplateSpec(ref), - "k8s.io/api/core/v1.PortworxVolumeSource": schema_k8sio_api_core_v1_PortworxVolumeSource(ref), - "k8s.io/api/core/v1.PreferAvoidPodsEntry": schema_k8sio_api_core_v1_PreferAvoidPodsEntry(ref), - "k8s.io/api/core/v1.PreferredSchedulingTerm": schema_k8sio_api_core_v1_PreferredSchedulingTerm(ref), - "k8s.io/api/core/v1.Probe": schema_k8sio_api_core_v1_Probe(ref), - "k8s.io/api/core/v1.ProjectedVolumeSource": schema_k8sio_api_core_v1_ProjectedVolumeSource(ref), - "k8s.io/api/core/v1.QuobyteVolumeSource": schema_k8sio_api_core_v1_QuobyteVolumeSource(ref), - "k8s.io/api/core/v1.RBDPersistentVolumeSource": schema_k8sio_api_core_v1_RBDPersistentVolumeSource(ref), - "k8s.io/api/core/v1.RBDVolumeSource": schema_k8sio_api_core_v1_RBDVolumeSource(ref), - "k8s.io/api/core/v1.RangeAllocation": schema_k8sio_api_core_v1_RangeAllocation(ref), - "k8s.io/api/core/v1.ReplicationController": schema_k8sio_api_core_v1_ReplicationController(ref), - "k8s.io/api/core/v1.ReplicationControllerCondition": schema_k8sio_api_core_v1_ReplicationControllerCondition(ref), - "k8s.io/api/core/v1.ReplicationControllerList": schema_k8sio_api_core_v1_ReplicationControllerList(ref), - "k8s.io/api/core/v1.ReplicationControllerSpec": schema_k8sio_api_core_v1_ReplicationControllerSpec(ref), - "k8s.io/api/core/v1.ReplicationControllerStatus": schema_k8sio_api_core_v1_ReplicationControllerStatus(ref), - "k8s.io/api/core/v1.ResourceFieldSelector": schema_k8sio_api_core_v1_ResourceFieldSelector(ref), - "k8s.io/api/core/v1.ResourceQuota": schema_k8sio_api_core_v1_ResourceQuota(ref), - "k8s.io/api/core/v1.ResourceQuotaList": schema_k8sio_api_core_v1_ResourceQuotaList(ref), - "k8s.io/api/core/v1.ResourceQuotaSpec": schema_k8sio_api_core_v1_ResourceQuotaSpec(ref), - "k8s.io/api/core/v1.ResourceQuotaStatus": schema_k8sio_api_core_v1_ResourceQuotaStatus(ref), - "k8s.io/api/core/v1.ResourceRequirements": schema_k8sio_api_core_v1_ResourceRequirements(ref), - "k8s.io/api/core/v1.SELinuxOptions": schema_k8sio_api_core_v1_SELinuxOptions(ref), - "k8s.io/api/core/v1.ScaleIOPersistentVolumeSource": schema_k8sio_api_core_v1_ScaleIOPersistentVolumeSource(ref), - "k8s.io/api/core/v1.ScaleIOVolumeSource": schema_k8sio_api_core_v1_ScaleIOVolumeSource(ref), - "k8s.io/api/core/v1.ScopeSelector": schema_k8sio_api_core_v1_ScopeSelector(ref), - "k8s.io/api/core/v1.ScopedResourceSelectorRequirement": schema_k8sio_api_core_v1_ScopedResourceSelectorRequirement(ref), - "k8s.io/api/core/v1.SeccompProfile": schema_k8sio_api_core_v1_SeccompProfile(ref), - "k8s.io/api/core/v1.Secret": schema_k8sio_api_core_v1_Secret(ref), - "k8s.io/api/core/v1.SecretEnvSource": schema_k8sio_api_core_v1_SecretEnvSource(ref), - "k8s.io/api/core/v1.SecretKeySelector": schema_k8sio_api_core_v1_SecretKeySelector(ref), - "k8s.io/api/core/v1.SecretList": schema_k8sio_api_core_v1_SecretList(ref), - "k8s.io/api/core/v1.SecretProjection": schema_k8sio_api_core_v1_SecretProjection(ref), - "k8s.io/api/core/v1.SecretReference": schema_k8sio_api_core_v1_SecretReference(ref), - "k8s.io/api/core/v1.SecretVolumeSource": schema_k8sio_api_core_v1_SecretVolumeSource(ref), - "k8s.io/api/core/v1.SecurityContext": schema_k8sio_api_core_v1_SecurityContext(ref), - "k8s.io/api/core/v1.SerializedReference": schema_k8sio_api_core_v1_SerializedReference(ref), - "k8s.io/api/core/v1.Service": schema_k8sio_api_core_v1_Service(ref), - "k8s.io/api/core/v1.ServiceAccount": schema_k8sio_api_core_v1_ServiceAccount(ref), - "k8s.io/api/core/v1.ServiceAccountList": schema_k8sio_api_core_v1_ServiceAccountList(ref), - "k8s.io/api/core/v1.ServiceAccountTokenProjection": schema_k8sio_api_core_v1_ServiceAccountTokenProjection(ref), - "k8s.io/api/core/v1.ServiceList": schema_k8sio_api_core_v1_ServiceList(ref), - "k8s.io/api/core/v1.ServicePort": schema_k8sio_api_core_v1_ServicePort(ref), - "k8s.io/api/core/v1.ServiceProxyOptions": schema_k8sio_api_core_v1_ServiceProxyOptions(ref), - "k8s.io/api/core/v1.ServiceSpec": schema_k8sio_api_core_v1_ServiceSpec(ref), - "k8s.io/api/core/v1.ServiceStatus": schema_k8sio_api_core_v1_ServiceStatus(ref), - "k8s.io/api/core/v1.SessionAffinityConfig": schema_k8sio_api_core_v1_SessionAffinityConfig(ref), - "k8s.io/api/core/v1.StorageOSPersistentVolumeSource": schema_k8sio_api_core_v1_StorageOSPersistentVolumeSource(ref), - "k8s.io/api/core/v1.StorageOSVolumeSource": schema_k8sio_api_core_v1_StorageOSVolumeSource(ref), - "k8s.io/api/core/v1.Sysctl": schema_k8sio_api_core_v1_Sysctl(ref), - "k8s.io/api/core/v1.TCPSocketAction": schema_k8sio_api_core_v1_TCPSocketAction(ref), - "k8s.io/api/core/v1.Taint": schema_k8sio_api_core_v1_Taint(ref), - "k8s.io/api/core/v1.Toleration": schema_k8sio_api_core_v1_Toleration(ref), - "k8s.io/api/core/v1.TopologySelectorLabelRequirement": schema_k8sio_api_core_v1_TopologySelectorLabelRequirement(ref), - "k8s.io/api/core/v1.TopologySelectorTerm": schema_k8sio_api_core_v1_TopologySelectorTerm(ref), - "k8s.io/api/core/v1.TopologySpreadConstraint": schema_k8sio_api_core_v1_TopologySpreadConstraint(ref), - "k8s.io/api/core/v1.TypedLocalObjectReference": schema_k8sio_api_core_v1_TypedLocalObjectReference(ref), - "k8s.io/api/core/v1.Volume": schema_k8sio_api_core_v1_Volume(ref), - "k8s.io/api/core/v1.VolumeDevice": schema_k8sio_api_core_v1_VolumeDevice(ref), - "k8s.io/api/core/v1.VolumeMount": schema_k8sio_api_core_v1_VolumeMount(ref), - "k8s.io/api/core/v1.VolumeNodeAffinity": schema_k8sio_api_core_v1_VolumeNodeAffinity(ref), - "k8s.io/api/core/v1.VolumeProjection": schema_k8sio_api_core_v1_VolumeProjection(ref), - "k8s.io/api/core/v1.VolumeSource": schema_k8sio_api_core_v1_VolumeSource(ref), - "k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource": schema_k8sio_api_core_v1_VsphereVirtualDiskVolumeSource(ref), - "k8s.io/api/core/v1.WeightedPodAffinityTerm": schema_k8sio_api_core_v1_WeightedPodAffinityTerm(ref), - "k8s.io/api/core/v1.WindowsSecurityContextOptions": schema_k8sio_api_core_v1_WindowsSecurityContextOptions(ref), - "k8s.io/api/discovery/v1alpha1.Endpoint": schema_k8sio_api_discovery_v1alpha1_Endpoint(ref), - "k8s.io/api/discovery/v1alpha1.EndpointConditions": schema_k8sio_api_discovery_v1alpha1_EndpointConditions(ref), - "k8s.io/api/discovery/v1alpha1.EndpointPort": schema_k8sio_api_discovery_v1alpha1_EndpointPort(ref), - "k8s.io/api/discovery/v1alpha1.EndpointSlice": schema_k8sio_api_discovery_v1alpha1_EndpointSlice(ref), - "k8s.io/api/discovery/v1alpha1.EndpointSliceList": schema_k8sio_api_discovery_v1alpha1_EndpointSliceList(ref), - "k8s.io/api/discovery/v1beta1.Endpoint": schema_k8sio_api_discovery_v1beta1_Endpoint(ref), - "k8s.io/api/discovery/v1beta1.EndpointConditions": schema_k8sio_api_discovery_v1beta1_EndpointConditions(ref), - "k8s.io/api/discovery/v1beta1.EndpointPort": schema_k8sio_api_discovery_v1beta1_EndpointPort(ref), - "k8s.io/api/discovery/v1beta1.EndpointSlice": schema_k8sio_api_discovery_v1beta1_EndpointSlice(ref), - "k8s.io/api/discovery/v1beta1.EndpointSliceList": schema_k8sio_api_discovery_v1beta1_EndpointSliceList(ref), - "k8s.io/api/events/v1.Event": schema_k8sio_api_events_v1_Event(ref), - "k8s.io/api/events/v1.EventList": schema_k8sio_api_events_v1_EventList(ref), - "k8s.io/api/events/v1.EventSeries": schema_k8sio_api_events_v1_EventSeries(ref), - "k8s.io/api/events/v1beta1.Event": schema_k8sio_api_events_v1beta1_Event(ref), - "k8s.io/api/events/v1beta1.EventList": schema_k8sio_api_events_v1beta1_EventList(ref), - "k8s.io/api/events/v1beta1.EventSeries": schema_k8sio_api_events_v1beta1_EventSeries(ref), - "k8s.io/api/extensions/v1beta1.AllowedCSIDriver": schema_k8sio_api_extensions_v1beta1_AllowedCSIDriver(ref), - "k8s.io/api/extensions/v1beta1.AllowedFlexVolume": schema_k8sio_api_extensions_v1beta1_AllowedFlexVolume(ref), - "k8s.io/api/extensions/v1beta1.AllowedHostPath": schema_k8sio_api_extensions_v1beta1_AllowedHostPath(ref), - "k8s.io/api/extensions/v1beta1.DaemonSet": schema_k8sio_api_extensions_v1beta1_DaemonSet(ref), - "k8s.io/api/extensions/v1beta1.DaemonSetCondition": schema_k8sio_api_extensions_v1beta1_DaemonSetCondition(ref), - "k8s.io/api/extensions/v1beta1.DaemonSetList": schema_k8sio_api_extensions_v1beta1_DaemonSetList(ref), - "k8s.io/api/extensions/v1beta1.DaemonSetSpec": schema_k8sio_api_extensions_v1beta1_DaemonSetSpec(ref), - "k8s.io/api/extensions/v1beta1.DaemonSetStatus": schema_k8sio_api_extensions_v1beta1_DaemonSetStatus(ref), - "k8s.io/api/extensions/v1beta1.DaemonSetUpdateStrategy": schema_k8sio_api_extensions_v1beta1_DaemonSetUpdateStrategy(ref), - "k8s.io/api/extensions/v1beta1.Deployment": schema_k8sio_api_extensions_v1beta1_Deployment(ref), - "k8s.io/api/extensions/v1beta1.DeploymentCondition": schema_k8sio_api_extensions_v1beta1_DeploymentCondition(ref), - "k8s.io/api/extensions/v1beta1.DeploymentList": schema_k8sio_api_extensions_v1beta1_DeploymentList(ref), - "k8s.io/api/extensions/v1beta1.DeploymentRollback": schema_k8sio_api_extensions_v1beta1_DeploymentRollback(ref), - "k8s.io/api/extensions/v1beta1.DeploymentSpec": schema_k8sio_api_extensions_v1beta1_DeploymentSpec(ref), - "k8s.io/api/extensions/v1beta1.DeploymentStatus": schema_k8sio_api_extensions_v1beta1_DeploymentStatus(ref), - "k8s.io/api/extensions/v1beta1.DeploymentStrategy": schema_k8sio_api_extensions_v1beta1_DeploymentStrategy(ref), - "k8s.io/api/extensions/v1beta1.FSGroupStrategyOptions": schema_k8sio_api_extensions_v1beta1_FSGroupStrategyOptions(ref), - "k8s.io/api/extensions/v1beta1.HTTPIngressPath": schema_k8sio_api_extensions_v1beta1_HTTPIngressPath(ref), - "k8s.io/api/extensions/v1beta1.HTTPIngressRuleValue": schema_k8sio_api_extensions_v1beta1_HTTPIngressRuleValue(ref), - "k8s.io/api/extensions/v1beta1.HostPortRange": schema_k8sio_api_extensions_v1beta1_HostPortRange(ref), - "k8s.io/api/extensions/v1beta1.IDRange": schema_k8sio_api_extensions_v1beta1_IDRange(ref), - "k8s.io/api/extensions/v1beta1.IPBlock": schema_k8sio_api_extensions_v1beta1_IPBlock(ref), - "k8s.io/api/extensions/v1beta1.Ingress": schema_k8sio_api_extensions_v1beta1_Ingress(ref), - "k8s.io/api/extensions/v1beta1.IngressBackend": schema_k8sio_api_extensions_v1beta1_IngressBackend(ref), - "k8s.io/api/extensions/v1beta1.IngressList": schema_k8sio_api_extensions_v1beta1_IngressList(ref), - "k8s.io/api/extensions/v1beta1.IngressRule": schema_k8sio_api_extensions_v1beta1_IngressRule(ref), - "k8s.io/api/extensions/v1beta1.IngressRuleValue": schema_k8sio_api_extensions_v1beta1_IngressRuleValue(ref), - "k8s.io/api/extensions/v1beta1.IngressSpec": schema_k8sio_api_extensions_v1beta1_IngressSpec(ref), - "k8s.io/api/extensions/v1beta1.IngressStatus": schema_k8sio_api_extensions_v1beta1_IngressStatus(ref), - "k8s.io/api/extensions/v1beta1.IngressTLS": schema_k8sio_api_extensions_v1beta1_IngressTLS(ref), - "k8s.io/api/extensions/v1beta1.NetworkPolicy": schema_k8sio_api_extensions_v1beta1_NetworkPolicy(ref), - "k8s.io/api/extensions/v1beta1.NetworkPolicyEgressRule": schema_k8sio_api_extensions_v1beta1_NetworkPolicyEgressRule(ref), - "k8s.io/api/extensions/v1beta1.NetworkPolicyIngressRule": schema_k8sio_api_extensions_v1beta1_NetworkPolicyIngressRule(ref), - "k8s.io/api/extensions/v1beta1.NetworkPolicyList": schema_k8sio_api_extensions_v1beta1_NetworkPolicyList(ref), - "k8s.io/api/extensions/v1beta1.NetworkPolicyPeer": schema_k8sio_api_extensions_v1beta1_NetworkPolicyPeer(ref), - "k8s.io/api/extensions/v1beta1.NetworkPolicyPort": schema_k8sio_api_extensions_v1beta1_NetworkPolicyPort(ref), - "k8s.io/api/extensions/v1beta1.NetworkPolicySpec": schema_k8sio_api_extensions_v1beta1_NetworkPolicySpec(ref), - "k8s.io/api/extensions/v1beta1.PodSecurityPolicy": schema_k8sio_api_extensions_v1beta1_PodSecurityPolicy(ref), - "k8s.io/api/extensions/v1beta1.PodSecurityPolicyList": schema_k8sio_api_extensions_v1beta1_PodSecurityPolicyList(ref), - "k8s.io/api/extensions/v1beta1.PodSecurityPolicySpec": schema_k8sio_api_extensions_v1beta1_PodSecurityPolicySpec(ref), - "k8s.io/api/extensions/v1beta1.ReplicaSet": schema_k8sio_api_extensions_v1beta1_ReplicaSet(ref), - "k8s.io/api/extensions/v1beta1.ReplicaSetCondition": schema_k8sio_api_extensions_v1beta1_ReplicaSetCondition(ref), - "k8s.io/api/extensions/v1beta1.ReplicaSetList": schema_k8sio_api_extensions_v1beta1_ReplicaSetList(ref), - "k8s.io/api/extensions/v1beta1.ReplicaSetSpec": schema_k8sio_api_extensions_v1beta1_ReplicaSetSpec(ref), - "k8s.io/api/extensions/v1beta1.ReplicaSetStatus": schema_k8sio_api_extensions_v1beta1_ReplicaSetStatus(ref), - "k8s.io/api/extensions/v1beta1.RollbackConfig": schema_k8sio_api_extensions_v1beta1_RollbackConfig(ref), - "k8s.io/api/extensions/v1beta1.RollingUpdateDaemonSet": schema_k8sio_api_extensions_v1beta1_RollingUpdateDaemonSet(ref), - "k8s.io/api/extensions/v1beta1.RollingUpdateDeployment": schema_k8sio_api_extensions_v1beta1_RollingUpdateDeployment(ref), - "k8s.io/api/extensions/v1beta1.RunAsGroupStrategyOptions": schema_k8sio_api_extensions_v1beta1_RunAsGroupStrategyOptions(ref), - "k8s.io/api/extensions/v1beta1.RunAsUserStrategyOptions": schema_k8sio_api_extensions_v1beta1_RunAsUserStrategyOptions(ref), - "k8s.io/api/extensions/v1beta1.RuntimeClassStrategyOptions": schema_k8sio_api_extensions_v1beta1_RuntimeClassStrategyOptions(ref), - "k8s.io/api/extensions/v1beta1.SELinuxStrategyOptions": schema_k8sio_api_extensions_v1beta1_SELinuxStrategyOptions(ref), - "k8s.io/api/extensions/v1beta1.Scale": schema_k8sio_api_extensions_v1beta1_Scale(ref), - "k8s.io/api/extensions/v1beta1.ScaleSpec": schema_k8sio_api_extensions_v1beta1_ScaleSpec(ref), - "k8s.io/api/extensions/v1beta1.ScaleStatus": schema_k8sio_api_extensions_v1beta1_ScaleStatus(ref), - "k8s.io/api/extensions/v1beta1.SupplementalGroupsStrategyOptions": schema_k8sio_api_extensions_v1beta1_SupplementalGroupsStrategyOptions(ref), - "k8s.io/api/flowcontrol/v1alpha1.FlowDistinguisherMethod": schema_k8sio_api_flowcontrol_v1alpha1_FlowDistinguisherMethod(ref), - "k8s.io/api/flowcontrol/v1alpha1.FlowSchema": schema_k8sio_api_flowcontrol_v1alpha1_FlowSchema(ref), - "k8s.io/api/flowcontrol/v1alpha1.FlowSchemaCondition": schema_k8sio_api_flowcontrol_v1alpha1_FlowSchemaCondition(ref), - "k8s.io/api/flowcontrol/v1alpha1.FlowSchemaList": schema_k8sio_api_flowcontrol_v1alpha1_FlowSchemaList(ref), - "k8s.io/api/flowcontrol/v1alpha1.FlowSchemaSpec": schema_k8sio_api_flowcontrol_v1alpha1_FlowSchemaSpec(ref), - "k8s.io/api/flowcontrol/v1alpha1.FlowSchemaStatus": schema_k8sio_api_flowcontrol_v1alpha1_FlowSchemaStatus(ref), - "k8s.io/api/flowcontrol/v1alpha1.GroupSubject": schema_k8sio_api_flowcontrol_v1alpha1_GroupSubject(ref), - "k8s.io/api/flowcontrol/v1alpha1.LimitResponse": schema_k8sio_api_flowcontrol_v1alpha1_LimitResponse(ref), - "k8s.io/api/flowcontrol/v1alpha1.LimitedPriorityLevelConfiguration": schema_k8sio_api_flowcontrol_v1alpha1_LimitedPriorityLevelConfiguration(ref), - "k8s.io/api/flowcontrol/v1alpha1.NonResourcePolicyRule": schema_k8sio_api_flowcontrol_v1alpha1_NonResourcePolicyRule(ref), - "k8s.io/api/flowcontrol/v1alpha1.PolicyRulesWithSubjects": schema_k8sio_api_flowcontrol_v1alpha1_PolicyRulesWithSubjects(ref), - "k8s.io/api/flowcontrol/v1alpha1.PriorityLevelConfiguration": schema_k8sio_api_flowcontrol_v1alpha1_PriorityLevelConfiguration(ref), - "k8s.io/api/flowcontrol/v1alpha1.PriorityLevelConfigurationCondition": schema_k8sio_api_flowcontrol_v1alpha1_PriorityLevelConfigurationCondition(ref), - "k8s.io/api/flowcontrol/v1alpha1.PriorityLevelConfigurationList": schema_k8sio_api_flowcontrol_v1alpha1_PriorityLevelConfigurationList(ref), - "k8s.io/api/flowcontrol/v1alpha1.PriorityLevelConfigurationReference": schema_k8sio_api_flowcontrol_v1alpha1_PriorityLevelConfigurationReference(ref), - "k8s.io/api/flowcontrol/v1alpha1.PriorityLevelConfigurationSpec": schema_k8sio_api_flowcontrol_v1alpha1_PriorityLevelConfigurationSpec(ref), - "k8s.io/api/flowcontrol/v1alpha1.PriorityLevelConfigurationStatus": schema_k8sio_api_flowcontrol_v1alpha1_PriorityLevelConfigurationStatus(ref), - "k8s.io/api/flowcontrol/v1alpha1.QueuingConfiguration": schema_k8sio_api_flowcontrol_v1alpha1_QueuingConfiguration(ref), - "k8s.io/api/flowcontrol/v1alpha1.ResourcePolicyRule": schema_k8sio_api_flowcontrol_v1alpha1_ResourcePolicyRule(ref), - "k8s.io/api/flowcontrol/v1alpha1.ServiceAccountSubject": schema_k8sio_api_flowcontrol_v1alpha1_ServiceAccountSubject(ref), - "k8s.io/api/flowcontrol/v1alpha1.Subject": schema_k8sio_api_flowcontrol_v1alpha1_Subject(ref), - "k8s.io/api/flowcontrol/v1alpha1.UserSubject": schema_k8sio_api_flowcontrol_v1alpha1_UserSubject(ref), - "k8s.io/api/imagepolicy/v1alpha1.ImageReview": schema_k8sio_api_imagepolicy_v1alpha1_ImageReview(ref), - "k8s.io/api/imagepolicy/v1alpha1.ImageReviewContainerSpec": schema_k8sio_api_imagepolicy_v1alpha1_ImageReviewContainerSpec(ref), - "k8s.io/api/imagepolicy/v1alpha1.ImageReviewSpec": schema_k8sio_api_imagepolicy_v1alpha1_ImageReviewSpec(ref), - "k8s.io/api/imagepolicy/v1alpha1.ImageReviewStatus": schema_k8sio_api_imagepolicy_v1alpha1_ImageReviewStatus(ref), - "k8s.io/api/networking/v1.HTTPIngressPath": schema_k8sio_api_networking_v1_HTTPIngressPath(ref), - "k8s.io/api/networking/v1.HTTPIngressRuleValue": schema_k8sio_api_networking_v1_HTTPIngressRuleValue(ref), - "k8s.io/api/networking/v1.IPBlock": schema_k8sio_api_networking_v1_IPBlock(ref), - "k8s.io/api/networking/v1.Ingress": schema_k8sio_api_networking_v1_Ingress(ref), - "k8s.io/api/networking/v1.IngressBackend": schema_k8sio_api_networking_v1_IngressBackend(ref), - "k8s.io/api/networking/v1.IngressClass": schema_k8sio_api_networking_v1_IngressClass(ref), - "k8s.io/api/networking/v1.IngressClassList": schema_k8sio_api_networking_v1_IngressClassList(ref), - "k8s.io/api/networking/v1.IngressClassSpec": schema_k8sio_api_networking_v1_IngressClassSpec(ref), - "k8s.io/api/networking/v1.IngressList": schema_k8sio_api_networking_v1_IngressList(ref), - "k8s.io/api/networking/v1.IngressRule": schema_k8sio_api_networking_v1_IngressRule(ref), - "k8s.io/api/networking/v1.IngressRuleValue": schema_k8sio_api_networking_v1_IngressRuleValue(ref), - "k8s.io/api/networking/v1.IngressServiceBackend": schema_k8sio_api_networking_v1_IngressServiceBackend(ref), - "k8s.io/api/networking/v1.IngressSpec": schema_k8sio_api_networking_v1_IngressSpec(ref), - "k8s.io/api/networking/v1.IngressStatus": schema_k8sio_api_networking_v1_IngressStatus(ref), - "k8s.io/api/networking/v1.IngressTLS": schema_k8sio_api_networking_v1_IngressTLS(ref), - "k8s.io/api/networking/v1.NetworkPolicy": schema_k8sio_api_networking_v1_NetworkPolicy(ref), - "k8s.io/api/networking/v1.NetworkPolicyEgressRule": schema_k8sio_api_networking_v1_NetworkPolicyEgressRule(ref), - "k8s.io/api/networking/v1.NetworkPolicyIngressRule": schema_k8sio_api_networking_v1_NetworkPolicyIngressRule(ref), - "k8s.io/api/networking/v1.NetworkPolicyList": schema_k8sio_api_networking_v1_NetworkPolicyList(ref), - "k8s.io/api/networking/v1.NetworkPolicyPeer": schema_k8sio_api_networking_v1_NetworkPolicyPeer(ref), - "k8s.io/api/networking/v1.NetworkPolicyPort": schema_k8sio_api_networking_v1_NetworkPolicyPort(ref), - "k8s.io/api/networking/v1.NetworkPolicySpec": schema_k8sio_api_networking_v1_NetworkPolicySpec(ref), - "k8s.io/api/networking/v1.ServiceBackendPort": schema_k8sio_api_networking_v1_ServiceBackendPort(ref), - "k8s.io/api/networking/v1beta1.HTTPIngressPath": schema_k8sio_api_networking_v1beta1_HTTPIngressPath(ref), - "k8s.io/api/networking/v1beta1.HTTPIngressRuleValue": schema_k8sio_api_networking_v1beta1_HTTPIngressRuleValue(ref), - "k8s.io/api/networking/v1beta1.Ingress": schema_k8sio_api_networking_v1beta1_Ingress(ref), - "k8s.io/api/networking/v1beta1.IngressBackend": schema_k8sio_api_networking_v1beta1_IngressBackend(ref), - "k8s.io/api/networking/v1beta1.IngressClass": schema_k8sio_api_networking_v1beta1_IngressClass(ref), - "k8s.io/api/networking/v1beta1.IngressClassList": schema_k8sio_api_networking_v1beta1_IngressClassList(ref), - "k8s.io/api/networking/v1beta1.IngressClassSpec": schema_k8sio_api_networking_v1beta1_IngressClassSpec(ref), - "k8s.io/api/networking/v1beta1.IngressList": schema_k8sio_api_networking_v1beta1_IngressList(ref), - "k8s.io/api/networking/v1beta1.IngressRule": schema_k8sio_api_networking_v1beta1_IngressRule(ref), - "k8s.io/api/networking/v1beta1.IngressRuleValue": schema_k8sio_api_networking_v1beta1_IngressRuleValue(ref), - "k8s.io/api/networking/v1beta1.IngressSpec": schema_k8sio_api_networking_v1beta1_IngressSpec(ref), - "k8s.io/api/networking/v1beta1.IngressStatus": schema_k8sio_api_networking_v1beta1_IngressStatus(ref), - "k8s.io/api/networking/v1beta1.IngressTLS": schema_k8sio_api_networking_v1beta1_IngressTLS(ref), - "k8s.io/api/node/v1alpha1.Overhead": schema_k8sio_api_node_v1alpha1_Overhead(ref), - "k8s.io/api/node/v1alpha1.RuntimeClass": schema_k8sio_api_node_v1alpha1_RuntimeClass(ref), - "k8s.io/api/node/v1alpha1.RuntimeClassList": schema_k8sio_api_node_v1alpha1_RuntimeClassList(ref), - "k8s.io/api/node/v1alpha1.RuntimeClassSpec": schema_k8sio_api_node_v1alpha1_RuntimeClassSpec(ref), - "k8s.io/api/node/v1alpha1.Scheduling": schema_k8sio_api_node_v1alpha1_Scheduling(ref), - "k8s.io/api/node/v1beta1.Overhead": schema_k8sio_api_node_v1beta1_Overhead(ref), - "k8s.io/api/node/v1beta1.RuntimeClass": schema_k8sio_api_node_v1beta1_RuntimeClass(ref), - "k8s.io/api/node/v1beta1.RuntimeClassList": schema_k8sio_api_node_v1beta1_RuntimeClassList(ref), - "k8s.io/api/node/v1beta1.Scheduling": schema_k8sio_api_node_v1beta1_Scheduling(ref), - "k8s.io/api/policy/v1beta1.AllowedCSIDriver": schema_k8sio_api_policy_v1beta1_AllowedCSIDriver(ref), - "k8s.io/api/policy/v1beta1.AllowedFlexVolume": schema_k8sio_api_policy_v1beta1_AllowedFlexVolume(ref), - "k8s.io/api/policy/v1beta1.AllowedHostPath": schema_k8sio_api_policy_v1beta1_AllowedHostPath(ref), - "k8s.io/api/policy/v1beta1.Eviction": schema_k8sio_api_policy_v1beta1_Eviction(ref), - "k8s.io/api/policy/v1beta1.FSGroupStrategyOptions": schema_k8sio_api_policy_v1beta1_FSGroupStrategyOptions(ref), - "k8s.io/api/policy/v1beta1.HostPortRange": schema_k8sio_api_policy_v1beta1_HostPortRange(ref), - "k8s.io/api/policy/v1beta1.IDRange": schema_k8sio_api_policy_v1beta1_IDRange(ref), - "k8s.io/api/policy/v1beta1.PodDisruptionBudget": schema_k8sio_api_policy_v1beta1_PodDisruptionBudget(ref), - "k8s.io/api/policy/v1beta1.PodDisruptionBudgetList": schema_k8sio_api_policy_v1beta1_PodDisruptionBudgetList(ref), - "k8s.io/api/policy/v1beta1.PodDisruptionBudgetSpec": schema_k8sio_api_policy_v1beta1_PodDisruptionBudgetSpec(ref), - "k8s.io/api/policy/v1beta1.PodDisruptionBudgetStatus": schema_k8sio_api_policy_v1beta1_PodDisruptionBudgetStatus(ref), - "k8s.io/api/policy/v1beta1.PodSecurityPolicy": schema_k8sio_api_policy_v1beta1_PodSecurityPolicy(ref), - "k8s.io/api/policy/v1beta1.PodSecurityPolicyList": schema_k8sio_api_policy_v1beta1_PodSecurityPolicyList(ref), - "k8s.io/api/policy/v1beta1.PodSecurityPolicySpec": schema_k8sio_api_policy_v1beta1_PodSecurityPolicySpec(ref), - "k8s.io/api/policy/v1beta1.RunAsGroupStrategyOptions": schema_k8sio_api_policy_v1beta1_RunAsGroupStrategyOptions(ref), - "k8s.io/api/policy/v1beta1.RunAsUserStrategyOptions": schema_k8sio_api_policy_v1beta1_RunAsUserStrategyOptions(ref), - "k8s.io/api/policy/v1beta1.RuntimeClassStrategyOptions": schema_k8sio_api_policy_v1beta1_RuntimeClassStrategyOptions(ref), - "k8s.io/api/policy/v1beta1.SELinuxStrategyOptions": schema_k8sio_api_policy_v1beta1_SELinuxStrategyOptions(ref), - "k8s.io/api/policy/v1beta1.SupplementalGroupsStrategyOptions": schema_k8sio_api_policy_v1beta1_SupplementalGroupsStrategyOptions(ref), - "k8s.io/api/rbac/v1.AggregationRule": schema_k8sio_api_rbac_v1_AggregationRule(ref), - "k8s.io/api/rbac/v1.ClusterRole": schema_k8sio_api_rbac_v1_ClusterRole(ref), - "k8s.io/api/rbac/v1.ClusterRoleBinding": schema_k8sio_api_rbac_v1_ClusterRoleBinding(ref), - "k8s.io/api/rbac/v1.ClusterRoleBindingList": schema_k8sio_api_rbac_v1_ClusterRoleBindingList(ref), - "k8s.io/api/rbac/v1.ClusterRoleList": schema_k8sio_api_rbac_v1_ClusterRoleList(ref), - "k8s.io/api/rbac/v1.PolicyRule": schema_k8sio_api_rbac_v1_PolicyRule(ref), - "k8s.io/api/rbac/v1.Role": schema_k8sio_api_rbac_v1_Role(ref), - "k8s.io/api/rbac/v1.RoleBinding": schema_k8sio_api_rbac_v1_RoleBinding(ref), - "k8s.io/api/rbac/v1.RoleBindingList": schema_k8sio_api_rbac_v1_RoleBindingList(ref), - "k8s.io/api/rbac/v1.RoleList": schema_k8sio_api_rbac_v1_RoleList(ref), - "k8s.io/api/rbac/v1.RoleRef": schema_k8sio_api_rbac_v1_RoleRef(ref), - "k8s.io/api/rbac/v1.Subject": schema_k8sio_api_rbac_v1_Subject(ref), - "k8s.io/api/rbac/v1alpha1.AggregationRule": schema_k8sio_api_rbac_v1alpha1_AggregationRule(ref), - "k8s.io/api/rbac/v1alpha1.ClusterRole": schema_k8sio_api_rbac_v1alpha1_ClusterRole(ref), - "k8s.io/api/rbac/v1alpha1.ClusterRoleBinding": schema_k8sio_api_rbac_v1alpha1_ClusterRoleBinding(ref), - "k8s.io/api/rbac/v1alpha1.ClusterRoleBindingList": schema_k8sio_api_rbac_v1alpha1_ClusterRoleBindingList(ref), - "k8s.io/api/rbac/v1alpha1.ClusterRoleList": schema_k8sio_api_rbac_v1alpha1_ClusterRoleList(ref), - "k8s.io/api/rbac/v1alpha1.PolicyRule": schema_k8sio_api_rbac_v1alpha1_PolicyRule(ref), - "k8s.io/api/rbac/v1alpha1.Role": schema_k8sio_api_rbac_v1alpha1_Role(ref), - "k8s.io/api/rbac/v1alpha1.RoleBinding": schema_k8sio_api_rbac_v1alpha1_RoleBinding(ref), - "k8s.io/api/rbac/v1alpha1.RoleBindingList": schema_k8sio_api_rbac_v1alpha1_RoleBindingList(ref), - "k8s.io/api/rbac/v1alpha1.RoleList": schema_k8sio_api_rbac_v1alpha1_RoleList(ref), - "k8s.io/api/rbac/v1alpha1.RoleRef": schema_k8sio_api_rbac_v1alpha1_RoleRef(ref), - "k8s.io/api/rbac/v1alpha1.Subject": schema_k8sio_api_rbac_v1alpha1_Subject(ref), - "k8s.io/api/rbac/v1beta1.AggregationRule": schema_k8sio_api_rbac_v1beta1_AggregationRule(ref), - "k8s.io/api/rbac/v1beta1.ClusterRole": schema_k8sio_api_rbac_v1beta1_ClusterRole(ref), - "k8s.io/api/rbac/v1beta1.ClusterRoleBinding": schema_k8sio_api_rbac_v1beta1_ClusterRoleBinding(ref), - "k8s.io/api/rbac/v1beta1.ClusterRoleBindingList": schema_k8sio_api_rbac_v1beta1_ClusterRoleBindingList(ref), - "k8s.io/api/rbac/v1beta1.ClusterRoleList": schema_k8sio_api_rbac_v1beta1_ClusterRoleList(ref), - "k8s.io/api/rbac/v1beta1.PolicyRule": schema_k8sio_api_rbac_v1beta1_PolicyRule(ref), - "k8s.io/api/rbac/v1beta1.Role": schema_k8sio_api_rbac_v1beta1_Role(ref), - "k8s.io/api/rbac/v1beta1.RoleBinding": schema_k8sio_api_rbac_v1beta1_RoleBinding(ref), - "k8s.io/api/rbac/v1beta1.RoleBindingList": schema_k8sio_api_rbac_v1beta1_RoleBindingList(ref), - "k8s.io/api/rbac/v1beta1.RoleList": schema_k8sio_api_rbac_v1beta1_RoleList(ref), - "k8s.io/api/rbac/v1beta1.RoleRef": schema_k8sio_api_rbac_v1beta1_RoleRef(ref), - "k8s.io/api/rbac/v1beta1.Subject": schema_k8sio_api_rbac_v1beta1_Subject(ref), - "k8s.io/api/scheduling/v1.PriorityClass": schema_k8sio_api_scheduling_v1_PriorityClass(ref), - "k8s.io/api/scheduling/v1.PriorityClassList": schema_k8sio_api_scheduling_v1_PriorityClassList(ref), - "k8s.io/api/scheduling/v1alpha1.PriorityClass": schema_k8sio_api_scheduling_v1alpha1_PriorityClass(ref), - "k8s.io/api/scheduling/v1alpha1.PriorityClassList": schema_k8sio_api_scheduling_v1alpha1_PriorityClassList(ref), - "k8s.io/api/scheduling/v1beta1.PriorityClass": schema_k8sio_api_scheduling_v1beta1_PriorityClass(ref), - "k8s.io/api/scheduling/v1beta1.PriorityClassList": schema_k8sio_api_scheduling_v1beta1_PriorityClassList(ref), - "k8s.io/api/settings/v1alpha1.PodPreset": schema_k8sio_api_settings_v1alpha1_PodPreset(ref), - "k8s.io/api/settings/v1alpha1.PodPresetList": schema_k8sio_api_settings_v1alpha1_PodPresetList(ref), - "k8s.io/api/settings/v1alpha1.PodPresetSpec": schema_k8sio_api_settings_v1alpha1_PodPresetSpec(ref), - "k8s.io/api/storage/v1.CSIDriver": schema_k8sio_api_storage_v1_CSIDriver(ref), - "k8s.io/api/storage/v1.CSIDriverList": schema_k8sio_api_storage_v1_CSIDriverList(ref), - "k8s.io/api/storage/v1.CSIDriverSpec": schema_k8sio_api_storage_v1_CSIDriverSpec(ref), - "k8s.io/api/storage/v1.CSINode": schema_k8sio_api_storage_v1_CSINode(ref), - "k8s.io/api/storage/v1.CSINodeDriver": schema_k8sio_api_storage_v1_CSINodeDriver(ref), - "k8s.io/api/storage/v1.CSINodeList": schema_k8sio_api_storage_v1_CSINodeList(ref), - "k8s.io/api/storage/v1.CSINodeSpec": schema_k8sio_api_storage_v1_CSINodeSpec(ref), - "k8s.io/api/storage/v1.StorageClass": schema_k8sio_api_storage_v1_StorageClass(ref), - "k8s.io/api/storage/v1.StorageClassList": schema_k8sio_api_storage_v1_StorageClassList(ref), - "k8s.io/api/storage/v1.VolumeAttachment": schema_k8sio_api_storage_v1_VolumeAttachment(ref), - "k8s.io/api/storage/v1.VolumeAttachmentList": schema_k8sio_api_storage_v1_VolumeAttachmentList(ref), - "k8s.io/api/storage/v1.VolumeAttachmentSource": schema_k8sio_api_storage_v1_VolumeAttachmentSource(ref), - "k8s.io/api/storage/v1.VolumeAttachmentSpec": schema_k8sio_api_storage_v1_VolumeAttachmentSpec(ref), - "k8s.io/api/storage/v1.VolumeAttachmentStatus": schema_k8sio_api_storage_v1_VolumeAttachmentStatus(ref), - "k8s.io/api/storage/v1.VolumeError": schema_k8sio_api_storage_v1_VolumeError(ref), - "k8s.io/api/storage/v1.VolumeNodeResources": schema_k8sio_api_storage_v1_VolumeNodeResources(ref), - "k8s.io/api/storage/v1alpha1.CSIStorageCapacity": schema_k8sio_api_storage_v1alpha1_CSIStorageCapacity(ref), - "k8s.io/api/storage/v1alpha1.CSIStorageCapacityList": schema_k8sio_api_storage_v1alpha1_CSIStorageCapacityList(ref), - "k8s.io/api/storage/v1alpha1.VolumeAttachment": schema_k8sio_api_storage_v1alpha1_VolumeAttachment(ref), - "k8s.io/api/storage/v1alpha1.VolumeAttachmentList": schema_k8sio_api_storage_v1alpha1_VolumeAttachmentList(ref), - "k8s.io/api/storage/v1alpha1.VolumeAttachmentSource": schema_k8sio_api_storage_v1alpha1_VolumeAttachmentSource(ref), - "k8s.io/api/storage/v1alpha1.VolumeAttachmentSpec": schema_k8sio_api_storage_v1alpha1_VolumeAttachmentSpec(ref), - "k8s.io/api/storage/v1alpha1.VolumeAttachmentStatus": schema_k8sio_api_storage_v1alpha1_VolumeAttachmentStatus(ref), - "k8s.io/api/storage/v1alpha1.VolumeError": schema_k8sio_api_storage_v1alpha1_VolumeError(ref), - "k8s.io/api/storage/v1beta1.CSIDriver": schema_k8sio_api_storage_v1beta1_CSIDriver(ref), - "k8s.io/api/storage/v1beta1.CSIDriverList": schema_k8sio_api_storage_v1beta1_CSIDriverList(ref), - "k8s.io/api/storage/v1beta1.CSIDriverSpec": schema_k8sio_api_storage_v1beta1_CSIDriverSpec(ref), - "k8s.io/api/storage/v1beta1.CSINode": schema_k8sio_api_storage_v1beta1_CSINode(ref), - "k8s.io/api/storage/v1beta1.CSINodeDriver": schema_k8sio_api_storage_v1beta1_CSINodeDriver(ref), - "k8s.io/api/storage/v1beta1.CSINodeList": schema_k8sio_api_storage_v1beta1_CSINodeList(ref), - "k8s.io/api/storage/v1beta1.CSINodeSpec": schema_k8sio_api_storage_v1beta1_CSINodeSpec(ref), - "k8s.io/api/storage/v1beta1.StorageClass": schema_k8sio_api_storage_v1beta1_StorageClass(ref), - "k8s.io/api/storage/v1beta1.StorageClassList": schema_k8sio_api_storage_v1beta1_StorageClassList(ref), - "k8s.io/api/storage/v1beta1.VolumeAttachment": schema_k8sio_api_storage_v1beta1_VolumeAttachment(ref), - "k8s.io/api/storage/v1beta1.VolumeAttachmentList": schema_k8sio_api_storage_v1beta1_VolumeAttachmentList(ref), - "k8s.io/api/storage/v1beta1.VolumeAttachmentSource": schema_k8sio_api_storage_v1beta1_VolumeAttachmentSource(ref), - "k8s.io/api/storage/v1beta1.VolumeAttachmentSpec": schema_k8sio_api_storage_v1beta1_VolumeAttachmentSpec(ref), - "k8s.io/api/storage/v1beta1.VolumeAttachmentStatus": schema_k8sio_api_storage_v1beta1_VolumeAttachmentStatus(ref), - "k8s.io/api/storage/v1beta1.VolumeError": schema_k8sio_api_storage_v1beta1_VolumeError(ref), - "k8s.io/api/storage/v1beta1.VolumeNodeResources": schema_k8sio_api_storage_v1beta1_VolumeNodeResources(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.ConversionRequest": schema_pkg_apis_apiextensions_v1_ConversionRequest(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.ConversionResponse": schema_pkg_apis_apiextensions_v1_ConversionResponse(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.ConversionReview": schema_pkg_apis_apiextensions_v1_ConversionReview(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceColumnDefinition": schema_pkg_apis_apiextensions_v1_CustomResourceColumnDefinition(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceConversion": schema_pkg_apis_apiextensions_v1_CustomResourceConversion(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinition": schema_pkg_apis_apiextensions_v1_CustomResourceDefinition(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionCondition": schema_pkg_apis_apiextensions_v1_CustomResourceDefinitionCondition(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionList": schema_pkg_apis_apiextensions_v1_CustomResourceDefinitionList(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionNames": schema_pkg_apis_apiextensions_v1_CustomResourceDefinitionNames(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionSpec": schema_pkg_apis_apiextensions_v1_CustomResourceDefinitionSpec(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionStatus": schema_pkg_apis_apiextensions_v1_CustomResourceDefinitionStatus(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionVersion": schema_pkg_apis_apiextensions_v1_CustomResourceDefinitionVersion(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceSubresourceScale": schema_pkg_apis_apiextensions_v1_CustomResourceSubresourceScale(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceSubresourceStatus": schema_pkg_apis_apiextensions_v1_CustomResourceSubresourceStatus(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceSubresources": schema_pkg_apis_apiextensions_v1_CustomResourceSubresources(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceValidation": schema_pkg_apis_apiextensions_v1_CustomResourceValidation(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.ExternalDocumentation": schema_pkg_apis_apiextensions_v1_ExternalDocumentation(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON": schema_pkg_apis_apiextensions_v1_JSON(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaProps": schema_pkg_apis_apiextensions_v1_JSONSchemaProps(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaPropsOrArray": schema_pkg_apis_apiextensions_v1_JSONSchemaPropsOrArray(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaPropsOrBool": schema_pkg_apis_apiextensions_v1_JSONSchemaPropsOrBool(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaPropsOrStringArray": schema_pkg_apis_apiextensions_v1_JSONSchemaPropsOrStringArray(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.ServiceReference": schema_pkg_apis_apiextensions_v1_ServiceReference(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.WebhookClientConfig": schema_pkg_apis_apiextensions_v1_WebhookClientConfig(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.WebhookConversion": schema_pkg_apis_apiextensions_v1_WebhookConversion(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.ConversionRequest": schema_pkg_apis_apiextensions_v1beta1_ConversionRequest(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.ConversionResponse": schema_pkg_apis_apiextensions_v1beta1_ConversionResponse(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.ConversionReview": schema_pkg_apis_apiextensions_v1beta1_ConversionReview(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceColumnDefinition": schema_pkg_apis_apiextensions_v1beta1_CustomResourceColumnDefinition(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceConversion": schema_pkg_apis_apiextensions_v1beta1_CustomResourceConversion(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinition": schema_pkg_apis_apiextensions_v1beta1_CustomResourceDefinition(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionCondition": schema_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionCondition(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionList": schema_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionList(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionNames": schema_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionNames(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionSpec": schema_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionSpec(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionStatus": schema_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionStatus(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionVersion": schema_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionVersion(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceSubresourceScale": schema_pkg_apis_apiextensions_v1beta1_CustomResourceSubresourceScale(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceSubresourceStatus": schema_pkg_apis_apiextensions_v1beta1_CustomResourceSubresourceStatus(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceSubresources": schema_pkg_apis_apiextensions_v1beta1_CustomResourceSubresources(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceValidation": schema_pkg_apis_apiextensions_v1beta1_CustomResourceValidation(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.ExternalDocumentation": schema_pkg_apis_apiextensions_v1beta1_ExternalDocumentation(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSON": schema_pkg_apis_apiextensions_v1beta1_JSON(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps": schema_pkg_apis_apiextensions_v1beta1_JSONSchemaProps(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaPropsOrArray": schema_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrArray(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaPropsOrBool": schema_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrBool(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaPropsOrStringArray": schema_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrStringArray(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.ServiceReference": schema_pkg_apis_apiextensions_v1beta1_ServiceReference(ref), - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.WebhookClientConfig": schema_pkg_apis_apiextensions_v1beta1_WebhookClientConfig(ref), - "k8s.io/apimachinery/pkg/api/resource.Quantity": schema_apimachinery_pkg_api_resource_Quantity(ref), - "k8s.io/apimachinery/pkg/api/resource.int64Amount": schema_apimachinery_pkg_api_resource_int64Amount(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.APIGroup": schema_pkg_apis_meta_v1_APIGroup(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.APIGroupList": schema_pkg_apis_meta_v1_APIGroupList(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.APIResource": schema_pkg_apis_meta_v1_APIResource(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.APIResourceList": schema_pkg_apis_meta_v1_APIResourceList(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.APIVersions": schema_pkg_apis_meta_v1_APIVersions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.Condition": schema_pkg_apis_meta_v1_Condition(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.CreateOptions": schema_pkg_apis_meta_v1_CreateOptions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.DeleteOptions": schema_pkg_apis_meta_v1_DeleteOptions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration": schema_pkg_apis_meta_v1_Duration(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.ExportOptions": schema_pkg_apis_meta_v1_ExportOptions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.FieldsV1": schema_pkg_apis_meta_v1_FieldsV1(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.GetOptions": schema_pkg_apis_meta_v1_GetOptions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.GroupKind": schema_pkg_apis_meta_v1_GroupKind(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.GroupResource": schema_pkg_apis_meta_v1_GroupResource(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersion": schema_pkg_apis_meta_v1_GroupVersion(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery": schema_pkg_apis_meta_v1_GroupVersionForDiscovery(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionKind": schema_pkg_apis_meta_v1_GroupVersionKind(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionResource": schema_pkg_apis_meta_v1_GroupVersionResource(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.InternalEvent": schema_pkg_apis_meta_v1_InternalEvent(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector": schema_pkg_apis_meta_v1_LabelSelector(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement": schema_pkg_apis_meta_v1_LabelSelectorRequirement(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.List": schema_pkg_apis_meta_v1_List(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta": schema_pkg_apis_meta_v1_ListMeta(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.ListOptions": schema_pkg_apis_meta_v1_ListOptions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.ManagedFieldsEntry": schema_pkg_apis_meta_v1_ManagedFieldsEntry(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime": schema_pkg_apis_meta_v1_MicroTime(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta": schema_pkg_apis_meta_v1_ObjectMeta(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference": schema_pkg_apis_meta_v1_OwnerReference(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadata": schema_pkg_apis_meta_v1_PartialObjectMetadata(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadataList": schema_pkg_apis_meta_v1_PartialObjectMetadataList(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.Patch": schema_pkg_apis_meta_v1_Patch(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.PatchOptions": schema_pkg_apis_meta_v1_PatchOptions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.Preconditions": schema_pkg_apis_meta_v1_Preconditions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.RootPaths": schema_pkg_apis_meta_v1_RootPaths(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR": schema_pkg_apis_meta_v1_ServerAddressByClientCIDR(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.Status": schema_pkg_apis_meta_v1_Status(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.StatusCause": schema_pkg_apis_meta_v1_StatusCause(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.StatusDetails": schema_pkg_apis_meta_v1_StatusDetails(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.Table": schema_pkg_apis_meta_v1_Table(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.TableColumnDefinition": schema_pkg_apis_meta_v1_TableColumnDefinition(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.TableOptions": schema_pkg_apis_meta_v1_TableOptions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.TableRow": schema_pkg_apis_meta_v1_TableRow(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.TableRowCondition": schema_pkg_apis_meta_v1_TableRowCondition(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.Time": schema_pkg_apis_meta_v1_Time(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.Timestamp": schema_pkg_apis_meta_v1_Timestamp(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.TypeMeta": schema_pkg_apis_meta_v1_TypeMeta(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.UpdateOptions": schema_pkg_apis_meta_v1_UpdateOptions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.WatchEvent": schema_pkg_apis_meta_v1_WatchEvent(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1beta1.PartialObjectMetadataList": schema_pkg_apis_meta_v1beta1_PartialObjectMetadataList(ref), - "k8s.io/apimachinery/pkg/runtime.RawExtension": schema_k8sio_apimachinery_pkg_runtime_RawExtension(ref), - "k8s.io/apimachinery/pkg/runtime.TypeMeta": schema_k8sio_apimachinery_pkg_runtime_TypeMeta(ref), - "k8s.io/apimachinery/pkg/runtime.Unknown": schema_k8sio_apimachinery_pkg_runtime_Unknown(ref), - "k8s.io/apimachinery/pkg/util/intstr.IntOrString": schema_apimachinery_pkg_util_intstr_IntOrString(ref), - "k8s.io/apimachinery/pkg/version.Info": schema_k8sio_apimachinery_pkg_version_Info(ref), - "k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1.ServerStorageVersion": schema_pkg_apis_apiserverinternal_v1alpha1_ServerStorageVersion(ref), - "k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1.StorageVersion": schema_pkg_apis_apiserverinternal_v1alpha1_StorageVersion(ref), - "k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1.StorageVersionCondition": schema_pkg_apis_apiserverinternal_v1alpha1_StorageVersionCondition(ref), - "k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1.StorageVersionList": schema_pkg_apis_apiserverinternal_v1alpha1_StorageVersionList(ref), - "k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1.StorageVersionSpec": schema_pkg_apis_apiserverinternal_v1alpha1_StorageVersionSpec(ref), - "k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1.StorageVersionStatus": schema_pkg_apis_apiserverinternal_v1alpha1_StorageVersionStatus(ref), - "k8s.io/apiserver/pkg/apis/audit/v1.Event": schema_pkg_apis_audit_v1_Event(ref), - "k8s.io/apiserver/pkg/apis/audit/v1.EventList": schema_pkg_apis_audit_v1_EventList(ref), - "k8s.io/apiserver/pkg/apis/audit/v1.GroupResources": schema_pkg_apis_audit_v1_GroupResources(ref), - "k8s.io/apiserver/pkg/apis/audit/v1.ObjectReference": schema_pkg_apis_audit_v1_ObjectReference(ref), - "k8s.io/apiserver/pkg/apis/audit/v1.Policy": schema_pkg_apis_audit_v1_Policy(ref), - "k8s.io/apiserver/pkg/apis/audit/v1.PolicyList": schema_pkg_apis_audit_v1_PolicyList(ref), - "k8s.io/apiserver/pkg/apis/audit/v1.PolicyRule": schema_pkg_apis_audit_v1_PolicyRule(ref), - "k8s.io/apiserver/pkg/apis/audit/v1alpha1.Event": schema_pkg_apis_audit_v1alpha1_Event(ref), - "k8s.io/apiserver/pkg/apis/audit/v1alpha1.EventList": schema_pkg_apis_audit_v1alpha1_EventList(ref), - "k8s.io/apiserver/pkg/apis/audit/v1alpha1.GroupResources": schema_pkg_apis_audit_v1alpha1_GroupResources(ref), - "k8s.io/apiserver/pkg/apis/audit/v1alpha1.ObjectReference": schema_pkg_apis_audit_v1alpha1_ObjectReference(ref), - "k8s.io/apiserver/pkg/apis/audit/v1alpha1.Policy": schema_pkg_apis_audit_v1alpha1_Policy(ref), - "k8s.io/apiserver/pkg/apis/audit/v1alpha1.PolicyList": schema_pkg_apis_audit_v1alpha1_PolicyList(ref), - "k8s.io/apiserver/pkg/apis/audit/v1alpha1.PolicyRule": schema_pkg_apis_audit_v1alpha1_PolicyRule(ref), - "k8s.io/apiserver/pkg/apis/audit/v1beta1.Event": schema_pkg_apis_audit_v1beta1_Event(ref), - "k8s.io/apiserver/pkg/apis/audit/v1beta1.EventList": schema_pkg_apis_audit_v1beta1_EventList(ref), - "k8s.io/apiserver/pkg/apis/audit/v1beta1.GroupResources": schema_pkg_apis_audit_v1beta1_GroupResources(ref), - "k8s.io/apiserver/pkg/apis/audit/v1beta1.ObjectReference": schema_pkg_apis_audit_v1beta1_ObjectReference(ref), - "k8s.io/apiserver/pkg/apis/audit/v1beta1.Policy": schema_pkg_apis_audit_v1beta1_Policy(ref), - "k8s.io/apiserver/pkg/apis/audit/v1beta1.PolicyList": schema_pkg_apis_audit_v1beta1_PolicyList(ref), - "k8s.io/apiserver/pkg/apis/audit/v1beta1.PolicyRule": schema_pkg_apis_audit_v1beta1_PolicyRule(ref), - "k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1.ExecCredential": schema_pkg_apis_clientauthentication_v1alpha1_ExecCredential(ref), - "k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1.ExecCredentialSpec": schema_pkg_apis_clientauthentication_v1alpha1_ExecCredentialSpec(ref), - "k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1.ExecCredentialStatus": schema_pkg_apis_clientauthentication_v1alpha1_ExecCredentialStatus(ref), - "k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1.Response": schema_pkg_apis_clientauthentication_v1alpha1_Response(ref), - "k8s.io/client-go/pkg/apis/clientauthentication/v1beta1.ExecCredential": schema_pkg_apis_clientauthentication_v1beta1_ExecCredential(ref), - "k8s.io/client-go/pkg/apis/clientauthentication/v1beta1.ExecCredentialSpec": schema_pkg_apis_clientauthentication_v1beta1_ExecCredentialSpec(ref), - "k8s.io/client-go/pkg/apis/clientauthentication/v1beta1.ExecCredentialStatus": schema_pkg_apis_clientauthentication_v1beta1_ExecCredentialStatus(ref), - "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1.APIService": schema_pkg_apis_apiregistration_v1_APIService(ref), - "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1.APIServiceCondition": schema_pkg_apis_apiregistration_v1_APIServiceCondition(ref), - "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1.APIServiceList": schema_pkg_apis_apiregistration_v1_APIServiceList(ref), - "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1.APIServiceSpec": schema_pkg_apis_apiregistration_v1_APIServiceSpec(ref), - "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1.APIServiceStatus": schema_pkg_apis_apiregistration_v1_APIServiceStatus(ref), - "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1.ServiceReference": schema_pkg_apis_apiregistration_v1_ServiceReference(ref), - "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1.APIService": schema_pkg_apis_apiregistration_v1beta1_APIService(ref), - "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1.APIServiceCondition": schema_pkg_apis_apiregistration_v1beta1_APIServiceCondition(ref), - "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1.APIServiceList": schema_pkg_apis_apiregistration_v1beta1_APIServiceList(ref), - "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1.APIServiceSpec": schema_pkg_apis_apiregistration_v1beta1_APIServiceSpec(ref), - "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1.APIServiceStatus": schema_pkg_apis_apiregistration_v1beta1_APIServiceStatus(ref), - "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1.ServiceReference": schema_pkg_apis_apiregistration_v1beta1_ServiceReference(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.AttachDetachControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_AttachDetachControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.CSRSigningConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_CSRSigningConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.CSRSigningControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_CSRSigningControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.CloudProviderConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_CloudProviderConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.DaemonSetControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_DaemonSetControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.DeploymentControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_DeploymentControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.DeprecatedControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_DeprecatedControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.EndpointControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_EndpointControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.EndpointSliceControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_EndpointSliceControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.EndpointSliceMirroringControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_EndpointSliceMirroringControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.GarbageCollectorControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_GarbageCollectorControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.GenericControllerManagerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_GenericControllerManagerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.GroupResource": schema_k8sio_kube_controller_manager_config_v1alpha1_GroupResource(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.HPAControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_HPAControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.JobControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_JobControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.KubeCloudSharedConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_KubeCloudSharedConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.KubeControllerManagerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_KubeControllerManagerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.NamespaceControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_NamespaceControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.NodeIPAMControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_NodeIPAMControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.NodeLifecycleControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_NodeLifecycleControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.PersistentVolumeBinderControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_PersistentVolumeBinderControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.PersistentVolumeRecyclerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_PersistentVolumeRecyclerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.PodGCControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_PodGCControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.ReplicaSetControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_ReplicaSetControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.ReplicationControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_ReplicationControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.ResourceQuotaControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_ResourceQuotaControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.SAControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_SAControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.ServiceControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_ServiceControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.StatefulSetControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_StatefulSetControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.TTLAfterFinishedControllerConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_TTLAfterFinishedControllerConfiguration(ref), - "k8s.io/kube-controller-manager/config/v1alpha1.VolumeConfiguration": schema_k8sio_kube_controller_manager_config_v1alpha1_VolumeConfiguration(ref), - "k8s.io/kube-proxy/config/v1alpha1.KubeProxyConfiguration": schema_k8sio_kube_proxy_config_v1alpha1_KubeProxyConfiguration(ref), - "k8s.io/kube-proxy/config/v1alpha1.KubeProxyConntrackConfiguration": schema_k8sio_kube_proxy_config_v1alpha1_KubeProxyConntrackConfiguration(ref), - "k8s.io/kube-proxy/config/v1alpha1.KubeProxyIPTablesConfiguration": schema_k8sio_kube_proxy_config_v1alpha1_KubeProxyIPTablesConfiguration(ref), - "k8s.io/kube-proxy/config/v1alpha1.KubeProxyIPVSConfiguration": schema_k8sio_kube_proxy_config_v1alpha1_KubeProxyIPVSConfiguration(ref), - "k8s.io/kube-proxy/config/v1alpha1.KubeProxyWinkernelConfiguration": schema_k8sio_kube_proxy_config_v1alpha1_KubeProxyWinkernelConfiguration(ref), - "k8s.io/kube-scheduler/config/v1.ExtenderManagedResource": schema_k8sio_kube_scheduler_config_v1_ExtenderManagedResource(ref), - "k8s.io/kube-scheduler/config/v1.ExtenderTLSConfig": schema_k8sio_kube_scheduler_config_v1_ExtenderTLSConfig(ref), - "k8s.io/kube-scheduler/config/v1.LabelPreference": schema_k8sio_kube_scheduler_config_v1_LabelPreference(ref), - "k8s.io/kube-scheduler/config/v1.LabelsPresence": schema_k8sio_kube_scheduler_config_v1_LabelsPresence(ref), - "k8s.io/kube-scheduler/config/v1.LegacyExtender": schema_k8sio_kube_scheduler_config_v1_LegacyExtender(ref), - "k8s.io/kube-scheduler/config/v1.Policy": schema_k8sio_kube_scheduler_config_v1_Policy(ref), - "k8s.io/kube-scheduler/config/v1.PredicateArgument": schema_k8sio_kube_scheduler_config_v1_PredicateArgument(ref), - "k8s.io/kube-scheduler/config/v1.PredicatePolicy": schema_k8sio_kube_scheduler_config_v1_PredicatePolicy(ref), - "k8s.io/kube-scheduler/config/v1.PriorityArgument": schema_k8sio_kube_scheduler_config_v1_PriorityArgument(ref), - "k8s.io/kube-scheduler/config/v1.PriorityPolicy": schema_k8sio_kube_scheduler_config_v1_PriorityPolicy(ref), - "k8s.io/kube-scheduler/config/v1.RequestedToCapacityRatioArguments": schema_k8sio_kube_scheduler_config_v1_RequestedToCapacityRatioArguments(ref), - "k8s.io/kube-scheduler/config/v1.ResourceSpec": schema_k8sio_kube_scheduler_config_v1_ResourceSpec(ref), - "k8s.io/kube-scheduler/config/v1.ServiceAffinity": schema_k8sio_kube_scheduler_config_v1_ServiceAffinity(ref), - "k8s.io/kube-scheduler/config/v1.ServiceAntiAffinity": schema_k8sio_kube_scheduler_config_v1_ServiceAntiAffinity(ref), - "k8s.io/kube-scheduler/config/v1.UtilizationShapePoint": schema_k8sio_kube_scheduler_config_v1_UtilizationShapePoint(ref), - "k8s.io/kube-scheduler/config/v1beta1.Extender": schema_k8sio_kube_scheduler_config_v1beta1_Extender(ref), - "k8s.io/kube-scheduler/config/v1beta1.InterPodAffinityArgs": schema_k8sio_kube_scheduler_config_v1beta1_InterPodAffinityArgs(ref), - "k8s.io/kube-scheduler/config/v1beta1.KubeSchedulerConfiguration": schema_k8sio_kube_scheduler_config_v1beta1_KubeSchedulerConfiguration(ref), - "k8s.io/kube-scheduler/config/v1beta1.KubeSchedulerProfile": schema_k8sio_kube_scheduler_config_v1beta1_KubeSchedulerProfile(ref), - "k8s.io/kube-scheduler/config/v1beta1.NodeLabelArgs": schema_k8sio_kube_scheduler_config_v1beta1_NodeLabelArgs(ref), - "k8s.io/kube-scheduler/config/v1beta1.NodeResourcesFitArgs": schema_k8sio_kube_scheduler_config_v1beta1_NodeResourcesFitArgs(ref), - "k8s.io/kube-scheduler/config/v1beta1.NodeResourcesLeastAllocatedArgs": schema_k8sio_kube_scheduler_config_v1beta1_NodeResourcesLeastAllocatedArgs(ref), - "k8s.io/kube-scheduler/config/v1beta1.NodeResourcesMostAllocatedArgs": schema_k8sio_kube_scheduler_config_v1beta1_NodeResourcesMostAllocatedArgs(ref), - "k8s.io/kube-scheduler/config/v1beta1.Plugin": schema_k8sio_kube_scheduler_config_v1beta1_Plugin(ref), - "k8s.io/kube-scheduler/config/v1beta1.PluginConfig": schema_k8sio_kube_scheduler_config_v1beta1_PluginConfig(ref), - "k8s.io/kube-scheduler/config/v1beta1.PluginSet": schema_k8sio_kube_scheduler_config_v1beta1_PluginSet(ref), - "k8s.io/kube-scheduler/config/v1beta1.Plugins": schema_k8sio_kube_scheduler_config_v1beta1_Plugins(ref), - "k8s.io/kube-scheduler/config/v1beta1.PodTopologySpreadArgs": schema_k8sio_kube_scheduler_config_v1beta1_PodTopologySpreadArgs(ref), - "k8s.io/kube-scheduler/config/v1beta1.RequestedToCapacityRatioArgs": schema_k8sio_kube_scheduler_config_v1beta1_RequestedToCapacityRatioArgs(ref), - "k8s.io/kube-scheduler/config/v1beta1.ResourceSpec": schema_k8sio_kube_scheduler_config_v1beta1_ResourceSpec(ref), - "k8s.io/kube-scheduler/config/v1beta1.ServiceAffinityArgs": schema_k8sio_kube_scheduler_config_v1beta1_ServiceAffinityArgs(ref), - "k8s.io/kube-scheduler/config/v1beta1.UtilizationShapePoint": schema_k8sio_kube_scheduler_config_v1beta1_UtilizationShapePoint(ref), - "k8s.io/kube-scheduler/config/v1beta1.VolumeBindingArgs": schema_k8sio_kube_scheduler_config_v1beta1_VolumeBindingArgs(ref), - "k8s.io/kubelet/config/v1beta1.KubeletAnonymousAuthentication": schema_k8sio_kubelet_config_v1beta1_KubeletAnonymousAuthentication(ref), - "k8s.io/kubelet/config/v1beta1.KubeletAuthentication": schema_k8sio_kubelet_config_v1beta1_KubeletAuthentication(ref), - "k8s.io/kubelet/config/v1beta1.KubeletAuthorization": schema_k8sio_kubelet_config_v1beta1_KubeletAuthorization(ref), - "k8s.io/kubelet/config/v1beta1.KubeletConfiguration": schema_k8sio_kubelet_config_v1beta1_KubeletConfiguration(ref), - "k8s.io/kubelet/config/v1beta1.KubeletWebhookAuthentication": schema_k8sio_kubelet_config_v1beta1_KubeletWebhookAuthentication(ref), - "k8s.io/kubelet/config/v1beta1.KubeletWebhookAuthorization": schema_k8sio_kubelet_config_v1beta1_KubeletWebhookAuthorization(ref), - "k8s.io/kubelet/config/v1beta1.KubeletX509Authentication": schema_k8sio_kubelet_config_v1beta1_KubeletX509Authentication(ref), - "k8s.io/kubelet/config/v1beta1.SerializedNodeConfigSource": schema_k8sio_kubelet_config_v1beta1_SerializedNodeConfigSource(ref), - "k8s.io/kubernetes/cmd/cloud-controller-manager/app/apis/config/v1alpha1.CloudControllerManagerConfiguration": schema_app_apis_config_v1alpha1_CloudControllerManagerConfiguration(ref), - "k8s.io/kubernetes/pkg/apis/abac/v1beta1.Policy": schema_pkg_apis_abac_v1beta1_Policy(ref), - "k8s.io/kubernetes/pkg/apis/abac/v1beta1.PolicySpec": schema_pkg_apis_abac_v1beta1_PolicySpec(ref), - "k8s.io/metrics/pkg/apis/custom_metrics/v1beta1.MetricListOptions": schema_pkg_apis_custom_metrics_v1beta1_MetricListOptions(ref), - "k8s.io/metrics/pkg/apis/custom_metrics/v1beta1.MetricValue": schema_pkg_apis_custom_metrics_v1beta1_MetricValue(ref), - "k8s.io/metrics/pkg/apis/custom_metrics/v1beta1.MetricValueList": schema_pkg_apis_custom_metrics_v1beta1_MetricValueList(ref), - "k8s.io/metrics/pkg/apis/custom_metrics/v1beta2.MetricIdentifier": schema_pkg_apis_custom_metrics_v1beta2_MetricIdentifier(ref), - "k8s.io/metrics/pkg/apis/custom_metrics/v1beta2.MetricListOptions": schema_pkg_apis_custom_metrics_v1beta2_MetricListOptions(ref), - "k8s.io/metrics/pkg/apis/custom_metrics/v1beta2.MetricValue": schema_pkg_apis_custom_metrics_v1beta2_MetricValue(ref), - "k8s.io/metrics/pkg/apis/custom_metrics/v1beta2.MetricValueList": schema_pkg_apis_custom_metrics_v1beta2_MetricValueList(ref), - "k8s.io/metrics/pkg/apis/external_metrics/v1beta1.ExternalMetricValue": schema_pkg_apis_external_metrics_v1beta1_ExternalMetricValue(ref), - "k8s.io/metrics/pkg/apis/external_metrics/v1beta1.ExternalMetricValueList": schema_pkg_apis_external_metrics_v1beta1_ExternalMetricValueList(ref), - "k8s.io/metrics/pkg/apis/metrics/v1alpha1.ContainerMetrics": schema_pkg_apis_metrics_v1alpha1_ContainerMetrics(ref), - "k8s.io/metrics/pkg/apis/metrics/v1alpha1.NodeMetrics": schema_pkg_apis_metrics_v1alpha1_NodeMetrics(ref), - "k8s.io/metrics/pkg/apis/metrics/v1alpha1.NodeMetricsList": schema_pkg_apis_metrics_v1alpha1_NodeMetricsList(ref), - "k8s.io/metrics/pkg/apis/metrics/v1alpha1.PodMetrics": schema_pkg_apis_metrics_v1alpha1_PodMetrics(ref), - "k8s.io/metrics/pkg/apis/metrics/v1alpha1.PodMetricsList": schema_pkg_apis_metrics_v1alpha1_PodMetricsList(ref), - "k8s.io/metrics/pkg/apis/metrics/v1beta1.ContainerMetrics": schema_pkg_apis_metrics_v1beta1_ContainerMetrics(ref), - "k8s.io/metrics/pkg/apis/metrics/v1beta1.NodeMetrics": schema_pkg_apis_metrics_v1beta1_NodeMetrics(ref), - "k8s.io/metrics/pkg/apis/metrics/v1beta1.NodeMetricsList": schema_pkg_apis_metrics_v1beta1_NodeMetricsList(ref), - "k8s.io/metrics/pkg/apis/metrics/v1beta1.PodMetrics": schema_pkg_apis_metrics_v1beta1_PodMetrics(ref), - "k8s.io/metrics/pkg/apis/metrics/v1beta1.PodMetricsList": schema_pkg_apis_metrics_v1beta1_PodMetricsList(ref), - } -} - -func schema_k8sio_api_admissionregistration_v1_MutatingWebhook(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MutatingWebhook describes an admission webhook and the resources and operations it applies to.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - "clientConfig": { - SchemaProps: spec.SchemaProps{ - Description: "ClientConfig defines how to communicate with the hook. Required", - Ref: ref("k8s.io/api/admissionregistration/v1.WebhookClientConfig"), - }, - }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/admissionregistration/v1.RuleWithOperations"), - }, - }, - }, - }, - }, - "failurePolicy": { - SchemaProps: spec.SchemaProps{ - Description: "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.", - Type: []string{"string"}, - Format: "", - }, - }, - "matchPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", - Type: []string{"string"}, - Format: "", - }, - }, - "namespaceSelector": { - SchemaProps: spec.SchemaProps{ - Description: "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "objectSelector": { - SchemaProps: spec.SchemaProps{ - Description: "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "sideEffects": { - SchemaProps: spec.SchemaProps{ - Description: "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", - Type: []string{"string"}, - Format: "", - }, - }, - "timeoutSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "admissionReviewVersions": { - SchemaProps: spec.SchemaProps{ - Description: "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "reinvocationPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"name", "clientConfig", "sideEffects", "admissionReviewVersions"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/admissionregistration/v1.RuleWithOperations", "k8s.io/api/admissionregistration/v1.WebhookClientConfig", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_admissionregistration_v1_MutatingWebhookConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "webhooks": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Webhooks is a list of webhooks and the affected resources and operations.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/admissionregistration/v1.MutatingWebhook"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/admissionregistration/v1.MutatingWebhook", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_admissionregistration_v1_MutatingWebhookConfigurationList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of MutatingWebhookConfiguration.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/admissionregistration/v1.MutatingWebhookConfiguration"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/admissionregistration/v1.MutatingWebhookConfiguration", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_admissionregistration_v1_Rule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended to make sure that all the tuple expansions are valid.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "apiGroups": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "apiVersions": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "scope": { - SchemaProps: spec.SchemaProps{ - Description: "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_admissionregistration_v1_RuleWithOperations(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "operations": { - SchemaProps: spec.SchemaProps{ - Description: "Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "apiGroups": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "apiVersions": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "scope": { - SchemaProps: spec.SchemaProps{ - Description: "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_admissionregistration_v1_ServiceReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceReference holds a reference to Service.legacy.k8s.io", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "`namespace` is the namespace of the service. Required", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "`name` is the name of the service. Required", - Type: []string{"string"}, - Format: "", - }, - }, - "path": { - SchemaProps: spec.SchemaProps{ - Description: "`path` is an optional URL path which will be sent in any request to this service.", - Type: []string{"string"}, - Format: "", - }, - }, - "port": { - SchemaProps: spec.SchemaProps{ - Description: "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"namespace", "name"}, - }, - }, - } -} - -func schema_k8sio_api_admissionregistration_v1_ValidatingWebhook(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - "clientConfig": { - SchemaProps: spec.SchemaProps{ - Description: "ClientConfig defines how to communicate with the hook. Required", - Ref: ref("k8s.io/api/admissionregistration/v1.WebhookClientConfig"), - }, - }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/admissionregistration/v1.RuleWithOperations"), - }, - }, - }, - }, - }, - "failurePolicy": { - SchemaProps: spec.SchemaProps{ - Description: "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.", - Type: []string{"string"}, - Format: "", - }, - }, - "matchPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Equivalent\"", - Type: []string{"string"}, - Format: "", - }, - }, - "namespaceSelector": { - SchemaProps: spec.SchemaProps{ - Description: "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "objectSelector": { - SchemaProps: spec.SchemaProps{ - Description: "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "sideEffects": { - SchemaProps: spec.SchemaProps{ - Description: "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", - Type: []string{"string"}, - Format: "", - }, - }, - "timeoutSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "admissionReviewVersions": { - SchemaProps: spec.SchemaProps{ - Description: "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"name", "clientConfig", "sideEffects", "admissionReviewVersions"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/admissionregistration/v1.RuleWithOperations", "k8s.io/api/admissionregistration/v1.WebhookClientConfig", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_admissionregistration_v1_ValidatingWebhookConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "webhooks": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Webhooks is a list of webhooks and the affected resources and operations.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/admissionregistration/v1.ValidatingWebhook"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/admissionregistration/v1.ValidatingWebhook", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_admissionregistration_v1_ValidatingWebhookConfigurationList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of ValidatingWebhookConfiguration.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/admissionregistration/v1.ValidatingWebhookConfiguration"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/admissionregistration/v1.ValidatingWebhookConfiguration", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_admissionregistration_v1_WebhookClientConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "WebhookClientConfig contains the information to make a TLS connection with the webhook", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "url": { - SchemaProps: spec.SchemaProps{ - Description: "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - Type: []string{"string"}, - Format: "", - }, - }, - "service": { - SchemaProps: spec.SchemaProps{ - Description: "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`.", - Ref: ref("k8s.io/api/admissionregistration/v1.ServiceReference"), - }, - }, - "caBundle": { - SchemaProps: spec.SchemaProps{ - Description: "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - Type: []string{"string"}, - Format: "byte", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/admissionregistration/v1.ServiceReference"}, - } -} - -func schema_k8sio_api_admissionregistration_v1beta1_MutatingWebhook(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MutatingWebhook describes an admission webhook and the resources and operations it applies to.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - "clientConfig": { - SchemaProps: spec.SchemaProps{ - Description: "ClientConfig defines how to communicate with the hook. Required", - Ref: ref("k8s.io/api/admissionregistration/v1beta1.WebhookClientConfig"), - }, - }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/admissionregistration/v1beta1.RuleWithOperations"), - }, - }, - }, - }, - }, - "failurePolicy": { - SchemaProps: spec.SchemaProps{ - Description: "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", - Type: []string{"string"}, - Format: "", - }, - }, - "matchPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Exact\"", - Type: []string{"string"}, - Format: "", - }, - }, - "namespaceSelector": { - SchemaProps: spec.SchemaProps{ - Description: "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "objectSelector": { - SchemaProps: spec.SchemaProps{ - Description: "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "sideEffects": { - SchemaProps: spec.SchemaProps{ - Description: "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "timeoutSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "admissionReviewVersions": { - SchemaProps: spec.SchemaProps{ - Description: "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "reinvocationPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \"Never\" and \"IfNeeded\".\n\nNever: the webhook will not be called more than once in a single admission evaluation.\n\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\nDefaults to \"Never\".", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"name", "clientConfig"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/admissionregistration/v1beta1.RuleWithOperations", "k8s.io/api/admissionregistration/v1beta1.WebhookClientConfig", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_admissionregistration_v1beta1_MutatingWebhookConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 MutatingWebhookConfiguration instead.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "webhooks": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Webhooks is a list of webhooks and the affected resources and operations.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/admissionregistration/v1beta1.MutatingWebhook"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/admissionregistration/v1beta1.MutatingWebhook", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_admissionregistration_v1beta1_MutatingWebhookConfigurationList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of MutatingWebhookConfiguration.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/admissionregistration/v1beta1.MutatingWebhookConfiguration"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/admissionregistration/v1beta1.MutatingWebhookConfiguration", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_admissionregistration_v1beta1_Rule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended to make sure that all the tuple expansions are valid.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "apiGroups": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "apiVersions": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "scope": { - SchemaProps: spec.SchemaProps{ - Description: "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_admissionregistration_v1beta1_RuleWithOperations(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "operations": { - SchemaProps: spec.SchemaProps{ - Description: "Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "apiGroups": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "apiVersions": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "scope": { - SchemaProps: spec.SchemaProps{ - Description: "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_admissionregistration_v1beta1_ServiceReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceReference holds a reference to Service.legacy.k8s.io", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "`namespace` is the namespace of the service. Required", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "`name` is the name of the service. Required", - Type: []string{"string"}, - Format: "", - }, - }, - "path": { - SchemaProps: spec.SchemaProps{ - Description: "`path` is an optional URL path which will be sent in any request to this service.", - Type: []string{"string"}, - Format: "", - }, - }, - "port": { - SchemaProps: spec.SchemaProps{ - Description: "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"namespace", "name"}, - }, - }, - } -} - -func schema_k8sio_api_admissionregistration_v1beta1_ValidatingWebhook(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - "clientConfig": { - SchemaProps: spec.SchemaProps{ - Description: "ClientConfig defines how to communicate with the hook. Required", - Ref: ref("k8s.io/api/admissionregistration/v1beta1.WebhookClientConfig"), - }, - }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/admissionregistration/v1beta1.RuleWithOperations"), - }, - }, - }, - }, - }, - "failurePolicy": { - SchemaProps: spec.SchemaProps{ - Description: "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", - Type: []string{"string"}, - Format: "", - }, - }, - "matchPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\nDefaults to \"Exact\"", - Type: []string{"string"}, - Format: "", - }, - }, - "namespaceSelector": { - SchemaProps: spec.SchemaProps{ - Description: "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "objectSelector": { - SchemaProps: spec.SchemaProps{ - Description: "ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "sideEffects": { - SchemaProps: spec.SchemaProps{ - Description: "SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "timeoutSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "admissionReviewVersions": { - SchemaProps: spec.SchemaProps{ - Description: "AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"name", "clientConfig"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/admissionregistration/v1beta1.RuleWithOperations", "k8s.io/api/admissionregistration/v1beta1.WebhookClientConfig", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_admissionregistration_v1beta1_ValidatingWebhookConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration instead.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "webhooks": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Webhooks is a list of webhooks and the affected resources and operations.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/admissionregistration/v1beta1.ValidatingWebhook"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/admissionregistration/v1beta1.ValidatingWebhook", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_admissionregistration_v1beta1_ValidatingWebhookConfigurationList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of ValidatingWebhookConfiguration.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/admissionregistration/v1beta1.ValidatingWebhookConfiguration"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/admissionregistration/v1beta1.ValidatingWebhookConfiguration", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_admissionregistration_v1beta1_WebhookClientConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "WebhookClientConfig contains the information to make a TLS connection with the webhook", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "url": { - SchemaProps: spec.SchemaProps{ - Description: "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - Type: []string{"string"}, - Format: "", - }, - }, - "service": { - SchemaProps: spec.SchemaProps{ - Description: "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`.", - Ref: ref("k8s.io/api/admissionregistration/v1beta1.ServiceReference"), - }, - }, - "caBundle": { - SchemaProps: spec.SchemaProps{ - Description: "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - Type: []string{"string"}, - Format: "byte", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/admissionregistration/v1beta1.ServiceReference"}, - } -} - -func schema_k8sio_api_apps_v1_ControllerRevision(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "data": { - SchemaProps: spec.SchemaProps{ - Description: "Data is the serialized representation of the state.", - Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), - }, - }, - "revision": { - SchemaProps: spec.SchemaProps{ - Description: "Revision indicates the revision of the state represented by Data.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - }, - Required: []string{"revision"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apimachinery/pkg/runtime.RawExtension"}, - } -} - -func schema_k8sio_api_apps_v1_ControllerRevisionList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of ControllerRevisions", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1.ControllerRevision"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.ControllerRevision", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_apps_v1_DaemonSet(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DaemonSet represents the configuration of a daemon set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/apps/v1.DaemonSetSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/apps/v1.DaemonSetStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.DaemonSetSpec", "k8s.io/api/apps/v1.DaemonSetStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_apps_v1_DaemonSetCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DaemonSetCondition describes the state of a DaemonSet at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of DaemonSet condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "The reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about the transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_apps_v1_DaemonSetList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DaemonSetList is a collection of daemon sets.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "A list of daemon sets.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1.DaemonSet"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.DaemonSet", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_apps_v1_DaemonSetSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DaemonSetSpec is the specification of a daemon set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", - Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"), - }, - }, - "updateStrategy": { - SchemaProps: spec.SchemaProps{ - Description: "An update strategy to replace existing DaemonSet pods with new pods.", - Ref: ref("k8s.io/api/apps/v1.DaemonSetUpdateStrategy"), - }, - }, - "minReadySeconds": { - SchemaProps: spec.SchemaProps{ - Description: "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "revisionHistoryLimit": { - SchemaProps: spec.SchemaProps{ - Description: "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"selector", "template"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.DaemonSetUpdateStrategy", "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_apps_v1_DaemonSetStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DaemonSetStatus represents the current status of a daemon set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "currentNumberScheduled": { - SchemaProps: spec.SchemaProps{ - Description: "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "numberMisscheduled": { - SchemaProps: spec.SchemaProps{ - Description: "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "desiredNumberScheduled": { - SchemaProps: spec.SchemaProps{ - Description: "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "numberReady": { - SchemaProps: spec.SchemaProps{ - Description: "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "The most recent generation observed by the daemon set controller.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "updatedNumberScheduled": { - SchemaProps: spec.SchemaProps{ - Description: "The total number of nodes that are running updated daemon pod", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "numberAvailable": { - SchemaProps: spec.SchemaProps{ - Description: "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "numberUnavailable": { - SchemaProps: spec.SchemaProps{ - Description: "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "collisionCount": { - SchemaProps: spec.SchemaProps{ - Description: "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Represents the latest available observations of a DaemonSet's current state.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1.DaemonSetCondition"), - }, - }, - }, - }, - }, - }, - Required: []string{"currentNumberScheduled", "numberMisscheduled", "desiredNumberScheduled", "numberReady"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.DaemonSetCondition"}, - } -} - -func schema_k8sio_api_apps_v1_DaemonSetUpdateStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.", - Type: []string{"string"}, - Format: "", - }, - }, - "rollingUpdate": { - SchemaProps: spec.SchemaProps{ - Description: "Rolling update config params. Present only if type = \"RollingUpdate\".", - Ref: ref("k8s.io/api/apps/v1.RollingUpdateDaemonSet"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.RollingUpdateDaemonSet"}, - } -} - -func schema_k8sio_api_apps_v1_Deployment(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Deployment enables declarative updates for Pods and ReplicaSets.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the desired behavior of the Deployment.", - Ref: ref("k8s.io/api/apps/v1.DeploymentSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Most recently observed status of the Deployment.", - Ref: ref("k8s.io/api/apps/v1.DeploymentStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.DeploymentSpec", "k8s.io/api/apps/v1.DeploymentStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_apps_v1_DeploymentCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentCondition describes the state of a deployment at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of deployment condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastUpdateTime": { - SchemaProps: spec.SchemaProps{ - Description: "The last time this condition was updated.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "The reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about the transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_apps_v1_DeploymentList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentList is a list of Deployments.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of Deployments.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1.Deployment"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.Deployment", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_apps_v1_DeploymentSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentSpec is the specification of the desired behavior of the Deployment.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "Template describes the pods that will be created.", - Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"), - }, - }, - "strategy": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-strategy": "retainKeys", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "The deployment strategy to use to replace existing pods with new ones.", - Ref: ref("k8s.io/api/apps/v1.DeploymentStrategy"), - }, - }, - "minReadySeconds": { - SchemaProps: spec.SchemaProps{ - Description: "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "revisionHistoryLimit": { - SchemaProps: spec.SchemaProps{ - Description: "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "paused": { - SchemaProps: spec.SchemaProps{ - Description: "Indicates that the deployment is paused.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "progressDeadlineSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "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.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"selector", "template"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.DeploymentStrategy", "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_apps_v1_DeploymentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentStatus is the most recently observed status of the Deployment.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "The generation observed by the deployment controller.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "updatedReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "readyReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of ready pods targeted by this deployment.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "availableReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "unavailableReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Represents the latest available observations of a deployment's current state.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1.DeploymentCondition"), - }, - }, - }, - }, - }, - "collisionCount": { - SchemaProps: spec.SchemaProps{ - Description: "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.DeploymentCondition"}, - } -} - -func schema_k8sio_api_apps_v1_DeploymentStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentStrategy describes how to replace existing pods with new ones.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", - Type: []string{"string"}, - Format: "", - }, - }, - "rollingUpdate": { - SchemaProps: spec.SchemaProps{ - Description: "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.", - Ref: ref("k8s.io/api/apps/v1.RollingUpdateDeployment"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.RollingUpdateDeployment"}, - } -} - -func schema_k8sio_api_apps_v1_ReplicaSet(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicaSet ensures that a specified number of pod replicas are running at any given time.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/apps/v1.ReplicaSetSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/apps/v1.ReplicaSetStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.ReplicaSetSpec", "k8s.io/api/apps/v1.ReplicaSetStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_apps_v1_ReplicaSetCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicaSetCondition describes the state of a replica set at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of replica set condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "The last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "The reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about the transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_apps_v1_ReplicaSetList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicaSetList is a collection of ReplicaSets.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1.ReplicaSet"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.ReplicaSet", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_apps_v1_ReplicaSetSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicaSetSpec is the specification of a ReplicaSet.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "minReadySeconds": { - SchemaProps: spec.SchemaProps{ - Description: "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", - Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"), - }, - }, - }, - Required: []string{"selector"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_apps_v1_ReplicaSetStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicaSetStatus represents the current status of a ReplicaSet.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "fullyLabeledReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "The number of pods that have labels matching the labels of the pod template of the replicaset.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "readyReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "The number of ready replicas for this replica set.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "availableReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "The number of available replicas (ready for at least minReadySeconds) for this replica set.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Represents the latest available observations of a replica set's current state.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1.ReplicaSetCondition"), - }, - }, - }, - }, - }, - }, - Required: []string{"replicas"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.ReplicaSetCondition"}, - } -} - -func schema_k8sio_api_apps_v1_RollingUpdateDaemonSet(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Spec to control the desired behavior of daemon set rolling update.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "maxUnavailable": { - SchemaProps: spec.SchemaProps{ - Description: "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/util/intstr.IntOrString"}, - } -} - -func schema_k8sio_api_apps_v1_RollingUpdateDeployment(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Spec to control the desired behavior of rolling update.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "maxUnavailable": { - SchemaProps: spec.SchemaProps{ - Description: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - "maxSurge": { - SchemaProps: spec.SchemaProps{ - Description: "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/util/intstr.IntOrString"}, - } -} - -func schema_k8sio_api_apps_v1_RollingUpdateStatefulSetStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "partition": { - SchemaProps: spec.SchemaProps{ - Description: "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_apps_v1_StatefulSet(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec defines the desired identities of pods in this set.", - Ref: ref("k8s.io/api/apps/v1.StatefulSetSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.", - Ref: ref("k8s.io/api/apps/v1.StatefulSetStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.StatefulSetSpec", "k8s.io/api/apps/v1.StatefulSetStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_apps_v1_StatefulSetCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StatefulSetCondition describes the state of a statefulset at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of statefulset condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "The reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about the transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_apps_v1_StatefulSetList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StatefulSetList is a collection of StatefulSets.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1.StatefulSet"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.StatefulSet", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_apps_v1_StatefulSetSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "A StatefulSetSpec is the specification of a StatefulSet.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet.", - Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"), - }, - }, - "volumeClaimTemplates": { - SchemaProps: spec.SchemaProps{ - Description: "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaim"), - }, - }, - }, - }, - }, - "serviceName": { - SchemaProps: spec.SchemaProps{ - Description: "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.", - Type: []string{"string"}, - Format: "", - }, - }, - "podManagementPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", - Type: []string{"string"}, - Format: "", - }, - }, - "updateStrategy": { - SchemaProps: spec.SchemaProps{ - Description: "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.", - Ref: ref("k8s.io/api/apps/v1.StatefulSetUpdateStrategy"), - }, - }, - "revisionHistoryLimit": { - SchemaProps: spec.SchemaProps{ - Description: "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"selector", "template", "serviceName"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.StatefulSetUpdateStrategy", "k8s.io/api/core/v1.PersistentVolumeClaim", "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_apps_v1_StatefulSetStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StatefulSetStatus represents the current state of a StatefulSet.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "replicas is the number of Pods created by the StatefulSet controller.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "readyReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "currentReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "updatedReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "currentRevision": { - SchemaProps: spec.SchemaProps{ - Description: "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", - Type: []string{"string"}, - Format: "", - }, - }, - "updateRevision": { - SchemaProps: spec.SchemaProps{ - Description: "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", - Type: []string{"string"}, - Format: "", - }, - }, - "collisionCount": { - SchemaProps: spec.SchemaProps{ - Description: "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Represents the latest available observations of a statefulset's current state.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1.StatefulSetCondition"), - }, - }, - }, - }, - }, - }, - Required: []string{"replicas"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.StatefulSetCondition"}, - } -} - -func schema_k8sio_api_apps_v1_StatefulSetUpdateStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", - Type: []string{"string"}, - Format: "", - }, - }, - "rollingUpdate": { - SchemaProps: spec.SchemaProps{ - Description: "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", - Ref: ref("k8s.io/api/apps/v1.RollingUpdateStatefulSetStrategy"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1.RollingUpdateStatefulSetStrategy"}, - } -} - -func schema_k8sio_api_apps_v1beta1_ControllerRevision(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1beta2/ControllerRevision. See the release notes for more information. ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "data": { - SchemaProps: spec.SchemaProps{ - Description: "Data is the serialized representation of the state.", - Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), - }, - }, - "revision": { - SchemaProps: spec.SchemaProps{ - Description: "Revision indicates the revision of the state represented by Data.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - }, - Required: []string{"revision"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apimachinery/pkg/runtime.RawExtension"}, - } -} - -func schema_k8sio_api_apps_v1beta1_ControllerRevisionList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of ControllerRevisions", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1beta1.ControllerRevision"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta1.ControllerRevision", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_apps_v1beta1_Deployment(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the desired behavior of the Deployment.", - Ref: ref("k8s.io/api/apps/v1beta1.DeploymentSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Most recently observed status of the Deployment.", - Ref: ref("k8s.io/api/apps/v1beta1.DeploymentStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta1.DeploymentSpec", "k8s.io/api/apps/v1beta1.DeploymentStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_apps_v1beta1_DeploymentCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentCondition describes the state of a deployment at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of deployment condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastUpdateTime": { - SchemaProps: spec.SchemaProps{ - Description: "The last time this condition was updated.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "The reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about the transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_apps_v1beta1_DeploymentList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentList is a list of Deployments.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of Deployments.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1beta1.Deployment"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta1.Deployment", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_apps_v1beta1_DeploymentRollback(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Required: This must match the Name of a deployment.", - Type: []string{"string"}, - Format: "", - }, - }, - "updatedAnnotations": { - SchemaProps: spec.SchemaProps{ - Description: "The annotations to be updated to a deployment", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "rollbackTo": { - SchemaProps: spec.SchemaProps{ - Description: "The config of this deployment rollback.", - Ref: ref("k8s.io/api/apps/v1beta1.RollbackConfig"), - }, - }, - }, - Required: []string{"name", "rollbackTo"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta1.RollbackConfig"}, - } -} - -func schema_k8sio_api_apps_v1beta1_DeploymentSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentSpec is the specification of the desired behavior of the Deployment.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "Template describes the pods that will be created.", - Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"), - }, - }, - "strategy": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-strategy": "retainKeys", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "The deployment strategy to use to replace existing pods with new ones.", - Ref: ref("k8s.io/api/apps/v1beta1.DeploymentStrategy"), - }, - }, - "minReadySeconds": { - SchemaProps: spec.SchemaProps{ - Description: "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "revisionHistoryLimit": { - SchemaProps: spec.SchemaProps{ - Description: "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 2.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "paused": { - SchemaProps: spec.SchemaProps{ - Description: "Indicates that the deployment is paused.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "rollbackTo": { - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.", - Ref: ref("k8s.io/api/apps/v1beta1.RollbackConfig"), - }, - }, - "progressDeadlineSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "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.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"template"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta1.DeploymentStrategy", "k8s.io/api/apps/v1beta1.RollbackConfig", "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_apps_v1beta1_DeploymentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentStatus is the most recently observed status of the Deployment.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "The generation observed by the deployment controller.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "updatedReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "readyReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of ready pods targeted by this deployment.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "availableReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "unavailableReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Represents the latest available observations of a deployment's current state.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1beta1.DeploymentCondition"), - }, - }, - }, - }, - }, - "collisionCount": { - SchemaProps: spec.SchemaProps{ - Description: "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta1.DeploymentCondition"}, - } -} - -func schema_k8sio_api_apps_v1beta1_DeploymentStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentStrategy describes how to replace existing pods with new ones.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", - Type: []string{"string"}, - Format: "", - }, - }, - "rollingUpdate": { - SchemaProps: spec.SchemaProps{ - Description: "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.", - Ref: ref("k8s.io/api/apps/v1beta1.RollingUpdateDeployment"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta1.RollingUpdateDeployment"}, - } -} - -func schema_k8sio_api_apps_v1beta1_RollbackConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "revision": { - SchemaProps: spec.SchemaProps{ - Description: "The revision to rollback to. If set to 0, rollback to the last revision.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_apps_v1beta1_RollingUpdateDeployment(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Spec to control the desired behavior of rolling update.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "maxUnavailable": { - SchemaProps: spec.SchemaProps{ - Description: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - "maxSurge": { - SchemaProps: spec.SchemaProps{ - Description: "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/util/intstr.IntOrString"}, - } -} - -func schema_k8sio_api_apps_v1beta1_RollingUpdateStatefulSetStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "partition": { - SchemaProps: spec.SchemaProps{ - Description: "Partition indicates the ordinal at which the StatefulSet should be partitioned.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_apps_v1beta1_Scale(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Scale represents a scaling request for a resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.", - Ref: ref("k8s.io/api/apps/v1beta1.ScaleSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.", - Ref: ref("k8s.io/api/apps/v1beta1.ScaleStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta1.ScaleSpec", "k8s.io/api/apps/v1beta1.ScaleStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_apps_v1beta1_ScaleSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ScaleSpec describes the attributes of a scale subresource", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "desired number of instances for the scaled object.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_apps_v1beta1_ScaleStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ScaleStatus represents the current status of a scale subresource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "actual number of observed instances of the scaled object.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "targetSelector": { - SchemaProps: spec.SchemaProps{ - Description: "label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"replicas"}, - }, - }, - } -} - -func schema_k8sio_api_apps_v1beta1_StatefulSet(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED - This group version of StatefulSet is deprecated by apps/v1beta2/StatefulSet. See the release notes for more information. StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec defines the desired identities of pods in this set.", - Ref: ref("k8s.io/api/apps/v1beta1.StatefulSetSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.", - Ref: ref("k8s.io/api/apps/v1beta1.StatefulSetStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta1.StatefulSetSpec", "k8s.io/api/apps/v1beta1.StatefulSetStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_apps_v1beta1_StatefulSetCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StatefulSetCondition describes the state of a statefulset at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of statefulset condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "The reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about the transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_apps_v1beta1_StatefulSetList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StatefulSetList is a collection of StatefulSets.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1beta1.StatefulSet"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta1.StatefulSet", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_apps_v1beta1_StatefulSetSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "A StatefulSetSpec is the specification of a StatefulSet.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "selector is a label query over pods that should match the replica count. If empty, defaulted to labels on the pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet.", - Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"), - }, - }, - "volumeClaimTemplates": { - SchemaProps: spec.SchemaProps{ - Description: "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaim"), - }, - }, - }, - }, - }, - "serviceName": { - SchemaProps: spec.SchemaProps{ - Description: "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.", - Type: []string{"string"}, - Format: "", - }, - }, - "podManagementPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", - Type: []string{"string"}, - Format: "", - }, - }, - "updateStrategy": { - SchemaProps: spec.SchemaProps{ - Description: "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.", - Ref: ref("k8s.io/api/apps/v1beta1.StatefulSetUpdateStrategy"), - }, - }, - "revisionHistoryLimit": { - SchemaProps: spec.SchemaProps{ - Description: "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"template", "serviceName"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta1.StatefulSetUpdateStrategy", "k8s.io/api/core/v1.PersistentVolumeClaim", "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_apps_v1beta1_StatefulSetStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StatefulSetStatus represents the current state of a StatefulSet.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "replicas is the number of Pods created by the StatefulSet controller.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "readyReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "currentReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "updatedReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "currentRevision": { - SchemaProps: spec.SchemaProps{ - Description: "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", - Type: []string{"string"}, - Format: "", - }, - }, - "updateRevision": { - SchemaProps: spec.SchemaProps{ - Description: "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", - Type: []string{"string"}, - Format: "", - }, - }, - "collisionCount": { - SchemaProps: spec.SchemaProps{ - Description: "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Represents the latest available observations of a statefulset's current state.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1beta1.StatefulSetCondition"), - }, - }, - }, - }, - }, - }, - Required: []string{"replicas"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta1.StatefulSetCondition"}, - } -} - -func schema_k8sio_api_apps_v1beta1_StatefulSetUpdateStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type indicates the type of the StatefulSetUpdateStrategy.", - Type: []string{"string"}, - Format: "", - }, - }, - "rollingUpdate": { - SchemaProps: spec.SchemaProps{ - Description: "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", - Ref: ref("k8s.io/api/apps/v1beta1.RollingUpdateStatefulSetStrategy"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta1.RollingUpdateStatefulSetStrategy"}, - } -} - -func schema_k8sio_api_apps_v1beta2_ControllerRevision(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1/ControllerRevision. See the release notes for more information. ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "data": { - SchemaProps: spec.SchemaProps{ - Description: "Data is the serialized representation of the state.", - Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), - }, - }, - "revision": { - SchemaProps: spec.SchemaProps{ - Description: "Revision indicates the revision of the state represented by Data.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - }, - Required: []string{"revision"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apimachinery/pkg/runtime.RawExtension"}, - } -} - -func schema_k8sio_api_apps_v1beta2_ControllerRevisionList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of ControllerRevisions", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1beta2.ControllerRevision"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.ControllerRevision", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_apps_v1beta2_DaemonSet(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED - This group version of DaemonSet is deprecated by apps/v1/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/apps/v1beta2.DaemonSetSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/apps/v1beta2.DaemonSetStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.DaemonSetSpec", "k8s.io/api/apps/v1beta2.DaemonSetStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_apps_v1beta2_DaemonSetCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DaemonSetCondition describes the state of a DaemonSet at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of DaemonSet condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "The reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about the transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_apps_v1beta2_DaemonSetList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DaemonSetList is a collection of daemon sets.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "A list of daemon sets.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1beta2.DaemonSet"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.DaemonSet", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_apps_v1beta2_DaemonSetSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DaemonSetSpec is the specification of a daemon set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", - Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"), - }, - }, - "updateStrategy": { - SchemaProps: spec.SchemaProps{ - Description: "An update strategy to replace existing DaemonSet pods with new pods.", - Ref: ref("k8s.io/api/apps/v1beta2.DaemonSetUpdateStrategy"), - }, - }, - "minReadySeconds": { - SchemaProps: spec.SchemaProps{ - Description: "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "revisionHistoryLimit": { - SchemaProps: spec.SchemaProps{ - Description: "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"selector", "template"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.DaemonSetUpdateStrategy", "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_apps_v1beta2_DaemonSetStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DaemonSetStatus represents the current status of a daemon set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "currentNumberScheduled": { - SchemaProps: spec.SchemaProps{ - Description: "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "numberMisscheduled": { - SchemaProps: spec.SchemaProps{ - Description: "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "desiredNumberScheduled": { - SchemaProps: spec.SchemaProps{ - Description: "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "numberReady": { - SchemaProps: spec.SchemaProps{ - Description: "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "The most recent generation observed by the daemon set controller.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "updatedNumberScheduled": { - SchemaProps: spec.SchemaProps{ - Description: "The total number of nodes that are running updated daemon pod", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "numberAvailable": { - SchemaProps: spec.SchemaProps{ - Description: "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "numberUnavailable": { - SchemaProps: spec.SchemaProps{ - Description: "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "collisionCount": { - SchemaProps: spec.SchemaProps{ - Description: "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Represents the latest available observations of a DaemonSet's current state.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1beta2.DaemonSetCondition"), - }, - }, - }, - }, - }, - }, - Required: []string{"currentNumberScheduled", "numberMisscheduled", "desiredNumberScheduled", "numberReady"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.DaemonSetCondition"}, - } -} - -func schema_k8sio_api_apps_v1beta2_DaemonSetUpdateStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.", - Type: []string{"string"}, - Format: "", - }, - }, - "rollingUpdate": { - SchemaProps: spec.SchemaProps{ - Description: "Rolling update config params. Present only if type = \"RollingUpdate\".", - Ref: ref("k8s.io/api/apps/v1beta2.RollingUpdateDaemonSet"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.RollingUpdateDaemonSet"}, - } -} - -func schema_k8sio_api_apps_v1beta2_Deployment(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED - This group version of Deployment is deprecated by apps/v1/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the desired behavior of the Deployment.", - Ref: ref("k8s.io/api/apps/v1beta2.DeploymentSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Most recently observed status of the Deployment.", - Ref: ref("k8s.io/api/apps/v1beta2.DeploymentStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.DeploymentSpec", "k8s.io/api/apps/v1beta2.DeploymentStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_apps_v1beta2_DeploymentCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentCondition describes the state of a deployment at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of deployment condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastUpdateTime": { - SchemaProps: spec.SchemaProps{ - Description: "The last time this condition was updated.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "The reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about the transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_apps_v1beta2_DeploymentList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentList is a list of Deployments.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of Deployments.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1beta2.Deployment"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.Deployment", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_apps_v1beta2_DeploymentSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentSpec is the specification of the desired behavior of the Deployment.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "Template describes the pods that will be created.", - Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"), - }, - }, - "strategy": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-strategy": "retainKeys", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "The deployment strategy to use to replace existing pods with new ones.", - Ref: ref("k8s.io/api/apps/v1beta2.DeploymentStrategy"), - }, - }, - "minReadySeconds": { - SchemaProps: spec.SchemaProps{ - Description: "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "revisionHistoryLimit": { - SchemaProps: spec.SchemaProps{ - Description: "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "paused": { - SchemaProps: spec.SchemaProps{ - Description: "Indicates that the deployment is paused.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "progressDeadlineSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "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.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"selector", "template"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.DeploymentStrategy", "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_apps_v1beta2_DeploymentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentStatus is the most recently observed status of the Deployment.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "The generation observed by the deployment controller.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "updatedReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "readyReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of ready pods targeted by this deployment.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "availableReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "unavailableReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Represents the latest available observations of a deployment's current state.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1beta2.DeploymentCondition"), - }, - }, - }, - }, - }, - "collisionCount": { - SchemaProps: spec.SchemaProps{ - Description: "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.DeploymentCondition"}, - } -} - -func schema_k8sio_api_apps_v1beta2_DeploymentStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentStrategy describes how to replace existing pods with new ones.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", - Type: []string{"string"}, - Format: "", - }, - }, - "rollingUpdate": { - SchemaProps: spec.SchemaProps{ - Description: "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.", - Ref: ref("k8s.io/api/apps/v1beta2.RollingUpdateDeployment"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.RollingUpdateDeployment"}, - } -} - -func schema_k8sio_api_apps_v1beta2_ReplicaSet(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1/ReplicaSet. See the release notes for more information. ReplicaSet ensures that a specified number of pod replicas are running at any given time.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/apps/v1beta2.ReplicaSetSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/apps/v1beta2.ReplicaSetStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.ReplicaSetSpec", "k8s.io/api/apps/v1beta2.ReplicaSetStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_apps_v1beta2_ReplicaSetCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicaSetCondition describes the state of a replica set at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of replica set condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "The last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "The reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about the transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_apps_v1beta2_ReplicaSetList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicaSetList is a collection of ReplicaSets.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1beta2.ReplicaSet"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.ReplicaSet", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_apps_v1beta2_ReplicaSetSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicaSetSpec is the specification of a ReplicaSet.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "minReadySeconds": { - SchemaProps: spec.SchemaProps{ - Description: "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", - Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"), - }, - }, - }, - Required: []string{"selector"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_apps_v1beta2_ReplicaSetStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicaSetStatus represents the current status of a ReplicaSet.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "fullyLabeledReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "The number of pods that have labels matching the labels of the pod template of the replicaset.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "readyReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "The number of ready replicas for this replica set.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "availableReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "The number of available replicas (ready for at least minReadySeconds) for this replica set.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Represents the latest available observations of a replica set's current state.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1beta2.ReplicaSetCondition"), - }, - }, - }, - }, - }, - }, - Required: []string{"replicas"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.ReplicaSetCondition"}, - } -} - -func schema_k8sio_api_apps_v1beta2_RollingUpdateDaemonSet(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Spec to control the desired behavior of daemon set rolling update.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "maxUnavailable": { - SchemaProps: spec.SchemaProps{ - Description: "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/util/intstr.IntOrString"}, - } -} - -func schema_k8sio_api_apps_v1beta2_RollingUpdateDeployment(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Spec to control the desired behavior of rolling update.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "maxUnavailable": { - SchemaProps: spec.SchemaProps{ - Description: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - "maxSurge": { - SchemaProps: spec.SchemaProps{ - Description: "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/util/intstr.IntOrString"}, - } -} - -func schema_k8sio_api_apps_v1beta2_RollingUpdateStatefulSetStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "partition": { - SchemaProps: spec.SchemaProps{ - Description: "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_apps_v1beta2_Scale(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Scale represents a scaling request for a resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.", - Ref: ref("k8s.io/api/apps/v1beta2.ScaleSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.", - Ref: ref("k8s.io/api/apps/v1beta2.ScaleStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.ScaleSpec", "k8s.io/api/apps/v1beta2.ScaleStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_apps_v1beta2_ScaleSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ScaleSpec describes the attributes of a scale subresource", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "desired number of instances for the scaled object.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_apps_v1beta2_ScaleStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ScaleStatus represents the current status of a scale subresource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "actual number of observed instances of the scaled object.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "targetSelector": { - SchemaProps: spec.SchemaProps{ - Description: "label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"replicas"}, - }, - }, - } -} - -func schema_k8sio_api_apps_v1beta2_StatefulSet(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED - This group version of StatefulSet is deprecated by apps/v1/StatefulSet. See the release notes for more information. StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec defines the desired identities of pods in this set.", - Ref: ref("k8s.io/api/apps/v1beta2.StatefulSetSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.", - Ref: ref("k8s.io/api/apps/v1beta2.StatefulSetStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.StatefulSetSpec", "k8s.io/api/apps/v1beta2.StatefulSetStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_apps_v1beta2_StatefulSetCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StatefulSetCondition describes the state of a statefulset at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of statefulset condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "The reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about the transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_apps_v1beta2_StatefulSetList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StatefulSetList is a collection of StatefulSets.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1beta2.StatefulSet"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.StatefulSet", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_apps_v1beta2_StatefulSetSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "A StatefulSetSpec is the specification of a StatefulSet.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet.", - Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"), - }, - }, - "volumeClaimTemplates": { - SchemaProps: spec.SchemaProps{ - Description: "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaim"), - }, - }, - }, - }, - }, - "serviceName": { - SchemaProps: spec.SchemaProps{ - Description: "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.", - Type: []string{"string"}, - Format: "", - }, - }, - "podManagementPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", - Type: []string{"string"}, - Format: "", - }, - }, - "updateStrategy": { - SchemaProps: spec.SchemaProps{ - Description: "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.", - Ref: ref("k8s.io/api/apps/v1beta2.StatefulSetUpdateStrategy"), - }, - }, - "revisionHistoryLimit": { - SchemaProps: spec.SchemaProps{ - Description: "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"selector", "template", "serviceName"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.StatefulSetUpdateStrategy", "k8s.io/api/core/v1.PersistentVolumeClaim", "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_apps_v1beta2_StatefulSetStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StatefulSetStatus represents the current state of a StatefulSet.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "replicas is the number of Pods created by the StatefulSet controller.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "readyReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "currentReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "updatedReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "currentRevision": { - SchemaProps: spec.SchemaProps{ - Description: "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", - Type: []string{"string"}, - Format: "", - }, - }, - "updateRevision": { - SchemaProps: spec.SchemaProps{ - Description: "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", - Type: []string{"string"}, - Format: "", - }, - }, - "collisionCount": { - SchemaProps: spec.SchemaProps{ - Description: "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Represents the latest available observations of a statefulset's current state.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/apps/v1beta2.StatefulSetCondition"), - }, - }, - }, - }, - }, - }, - Required: []string{"replicas"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.StatefulSetCondition"}, - } -} - -func schema_k8sio_api_apps_v1beta2_StatefulSetUpdateStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", - Type: []string{"string"}, - Format: "", - }, - }, - "rollingUpdate": { - SchemaProps: spec.SchemaProps{ - Description: "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", - Ref: ref("k8s.io/api/apps/v1beta2.RollingUpdateStatefulSetStrategy"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/apps/v1beta2.RollingUpdateStatefulSetStrategy"}, - } -} - -func schema_k8sio_api_authentication_v1_BoundObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "BoundObjectReference is a reference to an object that a token is bound to.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind of the referent. Valid kinds are 'Pod' and 'Secret'.", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "API version of the referent.", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the referent.", - Type: []string{"string"}, - Format: "", - }, - }, - "uid": { - SchemaProps: spec.SchemaProps{ - Description: "UID of the referent.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_authentication_v1_TokenRequest(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TokenRequest requests a token for a given service account.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/authentication/v1.TokenRequestSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/authentication/v1.TokenRequestStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/authentication/v1.TokenRequestSpec", "k8s.io/api/authentication/v1.TokenRequestStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_authentication_v1_TokenRequestSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TokenRequestSpec contains client provided parameters of a token request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "audiences": { - SchemaProps: spec.SchemaProps{ - Description: "Audiences are the intendend audiences of the token. A recipient of a token must identitfy themself with an identifier in the list of audiences of the token, and otherwise should reject the token. A token issued for multiple audiences may be used to authenticate against any of the audiences listed but implies a high degree of trust between the target audiences.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "expirationSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "ExpirationSeconds is the requested duration of validity of the request. The token issuer may return a token with a different validity duration so a client needs to check the 'expiration' field in a response.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "boundObjectRef": { - SchemaProps: spec.SchemaProps{ - Description: "BoundObjectRef is a reference to an object that the token will be bound to. The token will only be valid for as long as the bound object exists. NOTE: The API server's TokenReview endpoint will validate the BoundObjectRef, but other audiences may not. Keep ExpirationSeconds small if you want prompt revocation.", - Ref: ref("k8s.io/api/authentication/v1.BoundObjectReference"), - }, - }, - }, - Required: []string{"audiences"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/authentication/v1.BoundObjectReference"}, - } -} - -func schema_k8sio_api_authentication_v1_TokenRequestStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TokenRequestStatus is the result of a token request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "token": { - SchemaProps: spec.SchemaProps{ - Description: "Token is the opaque bearer token.", - Type: []string{"string"}, - Format: "", - }, - }, - "expirationTimestamp": { - SchemaProps: spec.SchemaProps{ - Description: "ExpirationTimestamp is the time of expiration of the returned token.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - }, - Required: []string{"token", "expirationTimestamp"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_authentication_v1_TokenReview(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec holds information about the request being evaluated", - Ref: ref("k8s.io/api/authentication/v1.TokenReviewSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is filled in by the server and indicates whether the request can be authenticated.", - Ref: ref("k8s.io/api/authentication/v1.TokenReviewStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/authentication/v1.TokenReviewSpec", "k8s.io/api/authentication/v1.TokenReviewStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_authentication_v1_TokenReviewSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TokenReviewSpec is a description of the token authentication request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "token": { - SchemaProps: spec.SchemaProps{ - Description: "Token is the opaque bearer token.", - Type: []string{"string"}, - Format: "", - }, - }, - "audiences": { - SchemaProps: spec.SchemaProps{ - Description: "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_authentication_v1_TokenReviewStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TokenReviewStatus is the result of the token authentication request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "authenticated": { - SchemaProps: spec.SchemaProps{ - Description: "Authenticated indicates that the token was associated with a known user.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "user": { - SchemaProps: spec.SchemaProps{ - Description: "User is the UserInfo associated with the provided token.", - Ref: ref("k8s.io/api/authentication/v1.UserInfo"), - }, - }, - "audiences": { - SchemaProps: spec.SchemaProps{ - Description: "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "error": { - SchemaProps: spec.SchemaProps{ - Description: "Error indicates that the token couldn't be checked", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/authentication/v1.UserInfo"}, - } -} - -func schema_k8sio_api_authentication_v1_UserInfo(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "UserInfo holds the information about the user needed to implement the user.Info interface.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "username": { - SchemaProps: spec.SchemaProps{ - Description: "The name that uniquely identifies this user among all active users.", - Type: []string{"string"}, - Format: "", - }, - }, - "uid": { - SchemaProps: spec.SchemaProps{ - Description: "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", - Type: []string{"string"}, - Format: "", - }, - }, - "groups": { - SchemaProps: spec.SchemaProps{ - Description: "The names of groups this user is a part of.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "extra": { - SchemaProps: spec.SchemaProps{ - Description: "Any additional information provided by the authenticator.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_authentication_v1beta1_TokenReview(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec holds information about the request being evaluated", - Ref: ref("k8s.io/api/authentication/v1beta1.TokenReviewSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is filled in by the server and indicates whether the request can be authenticated.", - Ref: ref("k8s.io/api/authentication/v1beta1.TokenReviewStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/authentication/v1beta1.TokenReviewSpec", "k8s.io/api/authentication/v1beta1.TokenReviewStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_authentication_v1beta1_TokenReviewSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TokenReviewSpec is a description of the token authentication request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "token": { - SchemaProps: spec.SchemaProps{ - Description: "Token is the opaque bearer token.", - Type: []string{"string"}, - Format: "", - }, - }, - "audiences": { - SchemaProps: spec.SchemaProps{ - Description: "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_authentication_v1beta1_TokenReviewStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TokenReviewStatus is the result of the token authentication request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "authenticated": { - SchemaProps: spec.SchemaProps{ - Description: "Authenticated indicates that the token was associated with a known user.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "user": { - SchemaProps: spec.SchemaProps{ - Description: "User is the UserInfo associated with the provided token.", - Ref: ref("k8s.io/api/authentication/v1beta1.UserInfo"), - }, - }, - "audiences": { - SchemaProps: spec.SchemaProps{ - Description: "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "error": { - SchemaProps: spec.SchemaProps{ - Description: "Error indicates that the token couldn't be checked", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/authentication/v1beta1.UserInfo"}, - } -} - -func schema_k8sio_api_authentication_v1beta1_UserInfo(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "UserInfo holds the information about the user needed to implement the user.Info interface.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "username": { - SchemaProps: spec.SchemaProps{ - Description: "The name that uniquely identifies this user among all active users.", - Type: []string{"string"}, - Format: "", - }, - }, - "uid": { - SchemaProps: spec.SchemaProps{ - Description: "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", - Type: []string{"string"}, - Format: "", - }, - }, - "groups": { - SchemaProps: spec.SchemaProps{ - Description: "The names of groups this user is a part of.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "extra": { - SchemaProps: spec.SchemaProps{ - Description: "Any additional information provided by the authenticator.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_authorization_v1_LocalSubjectAccessReview(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted.", - Ref: ref("k8s.io/api/authorization/v1.SubjectAccessReviewSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is filled in by the server and indicates whether the request is allowed or not", - Ref: ref("k8s.io/api/authorization/v1.SubjectAccessReviewStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/authorization/v1.SubjectAccessReviewSpec", "k8s.io/api/authorization/v1.SubjectAccessReviewStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_authorization_v1_NonResourceAttributes(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "path": { - SchemaProps: spec.SchemaProps{ - Description: "Path is the URL path of the request", - Type: []string{"string"}, - Format: "", - }, - }, - "verb": { - SchemaProps: spec.SchemaProps{ - Description: "Verb is the standard HTTP verb", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_authorization_v1_NonResourceRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NonResourceRule holds information that describes a rule for the non-resource", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "verbs": { - SchemaProps: spec.SchemaProps{ - Description: "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "nonResourceURLs": { - SchemaProps: spec.SchemaProps{ - Description: "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path. \"*\" means all.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"verbs"}, - }, - }, - } -} - -func schema_k8sio_api_authorization_v1_ResourceAttributes(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", - Type: []string{"string"}, - Format: "", - }, - }, - "verb": { - SchemaProps: spec.SchemaProps{ - Description: "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - Type: []string{"string"}, - Format: "", - }, - }, - "group": { - SchemaProps: spec.SchemaProps{ - Description: "Group is the API Group of the Resource. \"*\" means all.", - Type: []string{"string"}, - Format: "", - }, - }, - "version": { - SchemaProps: spec.SchemaProps{ - Description: "Version is the API Version of the Resource. \"*\" means all.", - Type: []string{"string"}, - Format: "", - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "Resource is one of the existing resource types. \"*\" means all.", - Type: []string{"string"}, - Format: "", - }, - }, - "subresource": { - SchemaProps: spec.SchemaProps{ - Description: "Subresource is one of the existing resource types. \"\" means none.", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_authorization_v1_ResourceRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "verbs": { - SchemaProps: spec.SchemaProps{ - Description: "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "apiGroups": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"*\" means all.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resourceNames": { - SchemaProps: spec.SchemaProps{ - Description: "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"verbs"}, - }, - }, - } -} - -func schema_k8sio_api_authorization_v1_SelfSubjectAccessReview(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec holds information about the request being evaluated. user and groups must be empty", - Ref: ref("k8s.io/api/authorization/v1.SelfSubjectAccessReviewSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is filled in by the server and indicates whether the request is allowed or not", - Ref: ref("k8s.io/api/authorization/v1.SubjectAccessReviewStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/authorization/v1.SelfSubjectAccessReviewSpec", "k8s.io/api/authorization/v1.SubjectAccessReviewStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_authorization_v1_SelfSubjectAccessReviewSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "resourceAttributes": { - SchemaProps: spec.SchemaProps{ - Description: "ResourceAuthorizationAttributes describes information for a resource access request", - Ref: ref("k8s.io/api/authorization/v1.ResourceAttributes"), - }, - }, - "nonResourceAttributes": { - SchemaProps: spec.SchemaProps{ - Description: "NonResourceAttributes describes information for a non-resource access request", - Ref: ref("k8s.io/api/authorization/v1.NonResourceAttributes"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/authorization/v1.NonResourceAttributes", "k8s.io/api/authorization/v1.ResourceAttributes"}, - } -} - -func schema_k8sio_api_authorization_v1_SelfSubjectRulesReview(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec holds information about the request being evaluated.", - Ref: ref("k8s.io/api/authorization/v1.SelfSubjectRulesReviewSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is filled in by the server and indicates the set of actions a user can perform.", - Ref: ref("k8s.io/api/authorization/v1.SubjectRulesReviewStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/authorization/v1.SelfSubjectRulesReviewSpec", "k8s.io/api/authorization/v1.SubjectRulesReviewStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_authorization_v1_SelfSubjectRulesReviewSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "Namespace to evaluate rules for. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_authorization_v1_SubjectAccessReview(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SubjectAccessReview checks whether or not a user or group can perform an action.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec holds information about the request being evaluated", - Ref: ref("k8s.io/api/authorization/v1.SubjectAccessReviewSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is filled in by the server and indicates whether the request is allowed or not", - Ref: ref("k8s.io/api/authorization/v1.SubjectAccessReviewStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/authorization/v1.SubjectAccessReviewSpec", "k8s.io/api/authorization/v1.SubjectAccessReviewStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_authorization_v1_SubjectAccessReviewSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "resourceAttributes": { - SchemaProps: spec.SchemaProps{ - Description: "ResourceAuthorizationAttributes describes information for a resource access request", - Ref: ref("k8s.io/api/authorization/v1.ResourceAttributes"), - }, - }, - "nonResourceAttributes": { - SchemaProps: spec.SchemaProps{ - Description: "NonResourceAttributes describes information for a non-resource access request", - Ref: ref("k8s.io/api/authorization/v1.NonResourceAttributes"), - }, - }, - "user": { - SchemaProps: spec.SchemaProps{ - Description: "User is the user you're testing for. If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups", - Type: []string{"string"}, - Format: "", - }, - }, - "groups": { - SchemaProps: spec.SchemaProps{ - Description: "Groups is the groups you're testing for.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "extra": { - SchemaProps: spec.SchemaProps{ - Description: "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - "uid": { - SchemaProps: spec.SchemaProps{ - Description: "UID information about the requesting user.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/authorization/v1.NonResourceAttributes", "k8s.io/api/authorization/v1.ResourceAttributes"}, - } -} - -func schema_k8sio_api_authorization_v1_SubjectAccessReviewStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SubjectAccessReviewStatus", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "allowed": { - SchemaProps: spec.SchemaProps{ - Description: "Allowed is required. True if the action would be allowed, false otherwise.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "denied": { - SchemaProps: spec.SchemaProps{ - Description: "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "Reason is optional. It indicates why a request was allowed or denied.", - Type: []string{"string"}, - Format: "", - }, - }, - "evaluationError": { - SchemaProps: spec.SchemaProps{ - Description: "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"allowed"}, - }, - }, - } -} - -func schema_k8sio_api_authorization_v1_SubjectRulesReviewStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "resourceRules": { - SchemaProps: spec.SchemaProps{ - Description: "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/authorization/v1.ResourceRule"), - }, - }, - }, - }, - }, - "nonResourceRules": { - SchemaProps: spec.SchemaProps{ - Description: "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/authorization/v1.NonResourceRule"), - }, - }, - }, - }, - }, - "incomplete": { - SchemaProps: spec.SchemaProps{ - Description: "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "evaluationError": { - SchemaProps: spec.SchemaProps{ - Description: "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"resourceRules", "nonResourceRules", "incomplete"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/authorization/v1.NonResourceRule", "k8s.io/api/authorization/v1.ResourceRule"}, - } -} - -func schema_k8sio_api_authorization_v1beta1_LocalSubjectAccessReview(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted.", - Ref: ref("k8s.io/api/authorization/v1beta1.SubjectAccessReviewSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is filled in by the server and indicates whether the request is allowed or not", - Ref: ref("k8s.io/api/authorization/v1beta1.SubjectAccessReviewStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/authorization/v1beta1.SubjectAccessReviewSpec", "k8s.io/api/authorization/v1beta1.SubjectAccessReviewStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_authorization_v1beta1_NonResourceAttributes(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "path": { - SchemaProps: spec.SchemaProps{ - Description: "Path is the URL path of the request", - Type: []string{"string"}, - Format: "", - }, - }, - "verb": { - SchemaProps: spec.SchemaProps{ - Description: "Verb is the standard HTTP verb", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_authorization_v1beta1_NonResourceRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NonResourceRule holds information that describes a rule for the non-resource", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "verbs": { - SchemaProps: spec.SchemaProps{ - Description: "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "nonResourceURLs": { - SchemaProps: spec.SchemaProps{ - Description: "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path. \"*\" means all.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"verbs"}, - }, - }, - } -} - -func schema_k8sio_api_authorization_v1beta1_ResourceAttributes(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", - Type: []string{"string"}, - Format: "", - }, - }, - "verb": { - SchemaProps: spec.SchemaProps{ - Description: "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - Type: []string{"string"}, - Format: "", - }, - }, - "group": { - SchemaProps: spec.SchemaProps{ - Description: "Group is the API Group of the Resource. \"*\" means all.", - Type: []string{"string"}, - Format: "", - }, - }, - "version": { - SchemaProps: spec.SchemaProps{ - Description: "Version is the API Version of the Resource. \"*\" means all.", - Type: []string{"string"}, - Format: "", - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "Resource is one of the existing resource types. \"*\" means all.", - Type: []string{"string"}, - Format: "", - }, - }, - "subresource": { - SchemaProps: spec.SchemaProps{ - Description: "Subresource is one of the existing resource types. \"\" means none.", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_authorization_v1beta1_ResourceRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "verbs": { - SchemaProps: spec.SchemaProps{ - Description: "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "apiGroups": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"*\" means all.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resourceNames": { - SchemaProps: spec.SchemaProps{ - Description: "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"verbs"}, - }, - }, - } -} - -func schema_k8sio_api_authorization_v1beta1_SelfSubjectAccessReview(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec holds information about the request being evaluated. user and groups must be empty", - Ref: ref("k8s.io/api/authorization/v1beta1.SelfSubjectAccessReviewSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is filled in by the server and indicates whether the request is allowed or not", - Ref: ref("k8s.io/api/authorization/v1beta1.SubjectAccessReviewStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/authorization/v1beta1.SelfSubjectAccessReviewSpec", "k8s.io/api/authorization/v1beta1.SubjectAccessReviewStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_authorization_v1beta1_SelfSubjectAccessReviewSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "resourceAttributes": { - SchemaProps: spec.SchemaProps{ - Description: "ResourceAuthorizationAttributes describes information for a resource access request", - Ref: ref("k8s.io/api/authorization/v1beta1.ResourceAttributes"), - }, - }, - "nonResourceAttributes": { - SchemaProps: spec.SchemaProps{ - Description: "NonResourceAttributes describes information for a non-resource access request", - Ref: ref("k8s.io/api/authorization/v1beta1.NonResourceAttributes"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/authorization/v1beta1.NonResourceAttributes", "k8s.io/api/authorization/v1beta1.ResourceAttributes"}, - } -} - -func schema_k8sio_api_authorization_v1beta1_SelfSubjectRulesReview(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec holds information about the request being evaluated.", - Ref: ref("k8s.io/api/authorization/v1beta1.SelfSubjectRulesReviewSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is filled in by the server and indicates the set of actions a user can perform.", - Ref: ref("k8s.io/api/authorization/v1beta1.SubjectRulesReviewStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/authorization/v1beta1.SelfSubjectRulesReviewSpec", "k8s.io/api/authorization/v1beta1.SubjectRulesReviewStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_authorization_v1beta1_SelfSubjectRulesReviewSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "Namespace to evaluate rules for. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_authorization_v1beta1_SubjectAccessReview(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SubjectAccessReview checks whether or not a user or group can perform an action.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec holds information about the request being evaluated", - Ref: ref("k8s.io/api/authorization/v1beta1.SubjectAccessReviewSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is filled in by the server and indicates whether the request is allowed or not", - Ref: ref("k8s.io/api/authorization/v1beta1.SubjectAccessReviewStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/authorization/v1beta1.SubjectAccessReviewSpec", "k8s.io/api/authorization/v1beta1.SubjectAccessReviewStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_authorization_v1beta1_SubjectAccessReviewSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "resourceAttributes": { - SchemaProps: spec.SchemaProps{ - Description: "ResourceAuthorizationAttributes describes information for a resource access request", - Ref: ref("k8s.io/api/authorization/v1beta1.ResourceAttributes"), - }, - }, - "nonResourceAttributes": { - SchemaProps: spec.SchemaProps{ - Description: "NonResourceAttributes describes information for a non-resource access request", - Ref: ref("k8s.io/api/authorization/v1beta1.NonResourceAttributes"), - }, - }, - "user": { - SchemaProps: spec.SchemaProps{ - Description: "User is the user you're testing for. If you specify \"User\" but not \"Group\", then is it interpreted as \"What if User were not a member of any groups", - Type: []string{"string"}, - Format: "", - }, - }, - "group": { - SchemaProps: spec.SchemaProps{ - Description: "Groups is the groups you're testing for.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "extra": { - SchemaProps: spec.SchemaProps{ - Description: "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - "uid": { - SchemaProps: spec.SchemaProps{ - Description: "UID information about the requesting user.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/authorization/v1beta1.NonResourceAttributes", "k8s.io/api/authorization/v1beta1.ResourceAttributes"}, - } -} - -func schema_k8sio_api_authorization_v1beta1_SubjectAccessReviewStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SubjectAccessReviewStatus", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "allowed": { - SchemaProps: spec.SchemaProps{ - Description: "Allowed is required. True if the action would be allowed, false otherwise.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "denied": { - SchemaProps: spec.SchemaProps{ - Description: "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "Reason is optional. It indicates why a request was allowed or denied.", - Type: []string{"string"}, - Format: "", - }, - }, - "evaluationError": { - SchemaProps: spec.SchemaProps{ - Description: "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"allowed"}, - }, - }, - } -} - -func schema_k8sio_api_authorization_v1beta1_SubjectRulesReviewStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "resourceRules": { - SchemaProps: spec.SchemaProps{ - Description: "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/authorization/v1beta1.ResourceRule"), - }, - }, - }, - }, - }, - "nonResourceRules": { - SchemaProps: spec.SchemaProps{ - Description: "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/authorization/v1beta1.NonResourceRule"), - }, - }, - }, - }, - }, - "incomplete": { - SchemaProps: spec.SchemaProps{ - Description: "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "evaluationError": { - SchemaProps: spec.SchemaProps{ - Description: "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"resourceRules", "nonResourceRules", "incomplete"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/authorization/v1beta1.NonResourceRule", "k8s.io/api/authorization/v1beta1.ResourceRule"}, - } -} - -func schema_k8sio_api_autoscaling_v1_CrossVersionObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\"", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "API version of the referent", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"kind", "name"}, - }, - }, - } -} - -func schema_k8sio_api_autoscaling_v1_ExternalMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metricName": { - SchemaProps: spec.SchemaProps{ - Description: "metricName is the name of the metric in question.", - Type: []string{"string"}, - Format: "", - }, - }, - "metricSelector": { - SchemaProps: spec.SchemaProps{ - Description: "metricSelector is used to identify a specific time series within a given metric.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "targetValue": { - SchemaProps: spec.SchemaProps{ - Description: "targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue.", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - "targetAverageValue": { - SchemaProps: spec.SchemaProps{ - Description: "targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue.", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - Required: []string{"metricName"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_autoscaling_v1_ExternalMetricStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metricName": { - SchemaProps: spec.SchemaProps{ - Description: "metricName is the name of a metric used for autoscaling in metric system.", - Type: []string{"string"}, - Format: "", - }, - }, - "metricSelector": { - SchemaProps: spec.SchemaProps{ - Description: "metricSelector is used to identify a specific time series within a given metric.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "currentValue": { - SchemaProps: spec.SchemaProps{ - Description: "currentValue is the current value of the metric (as a quantity)", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - "currentAverageValue": { - SchemaProps: spec.SchemaProps{ - Description: "currentAverageValue is the current value of metric averaged over autoscaled pods.", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - Required: []string{"metricName", "currentValue"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_autoscaling_v1_HorizontalPodAutoscaler(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "configuration of a horizontal pod autoscaler.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.", - Ref: ref("k8s.io/api/autoscaling/v1.HorizontalPodAutoscalerSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "current information about the autoscaler.", - Ref: ref("k8s.io/api/autoscaling/v1.HorizontalPodAutoscalerStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v1.HorizontalPodAutoscalerSpec", "k8s.io/api/autoscaling/v1.HorizontalPodAutoscalerStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_autoscaling_v1_HorizontalPodAutoscalerCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type describes the current condition", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status is the status of the condition (True, False, Unknown)", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "lastTransitionTime is the last time the condition transitioned from one status to another", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "reason is the reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "message is a human-readable explanation containing details about the transition", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_autoscaling_v1_HorizontalPodAutoscalerList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "list of horizontal pod autoscaler objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "list of horizontal pod autoscaler objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v1.HorizontalPodAutoscaler"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v1.HorizontalPodAutoscaler", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_autoscaling_v1_HorizontalPodAutoscalerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "specification of a horizontal pod autoscaler.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "scaleTargetRef": { - SchemaProps: spec.SchemaProps{ - Description: "reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption and will set the desired number of pods by using its Scale subresource.", - Ref: ref("k8s.io/api/autoscaling/v1.CrossVersionObjectReference"), - }, - }, - "minReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "maxReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "targetCPUUtilizationPercentage": { - SchemaProps: spec.SchemaProps{ - Description: "target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"scaleTargetRef", "maxReplicas"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v1.CrossVersionObjectReference"}, - } -} - -func schema_k8sio_api_autoscaling_v1_HorizontalPodAutoscalerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "current status of a horizontal pod autoscaler", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "most recent generation observed by this autoscaler.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "lastScaleTime": { - SchemaProps: spec.SchemaProps{ - Description: "last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "currentReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "current number of replicas of pods managed by this autoscaler.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "desiredReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "desired number of replicas of pods managed by this autoscaler.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "currentCPUUtilizationPercentage": { - SchemaProps: spec.SchemaProps{ - Description: "current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"currentReplicas", "desiredReplicas"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_autoscaling_v1_MetricSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type is the type of metric source. It should be one of \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.", - Type: []string{"string"}, - Format: "", - }, - }, - "object": { - SchemaProps: spec.SchemaProps{ - Description: "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).", - Ref: ref("k8s.io/api/autoscaling/v1.ObjectMetricSource"), - }, - }, - "pods": { - SchemaProps: spec.SchemaProps{ - Description: "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - Ref: ref("k8s.io/api/autoscaling/v1.PodsMetricSource"), - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - Ref: ref("k8s.io/api/autoscaling/v1.ResourceMetricSource"), - }, - }, - "external": { - SchemaProps: spec.SchemaProps{ - Description: "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", - Ref: ref("k8s.io/api/autoscaling/v1.ExternalMetricSource"), - }, - }, - }, - Required: []string{"type"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v1.ExternalMetricSource", "k8s.io/api/autoscaling/v1.ObjectMetricSource", "k8s.io/api/autoscaling/v1.PodsMetricSource", "k8s.io/api/autoscaling/v1.ResourceMetricSource"}, - } -} - -func schema_k8sio_api_autoscaling_v1_MetricStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MetricStatus describes the last-read state of a single metric.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type is the type of metric source. It will be one of \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.", - Type: []string{"string"}, - Format: "", - }, - }, - "object": { - SchemaProps: spec.SchemaProps{ - Description: "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).", - Ref: ref("k8s.io/api/autoscaling/v1.ObjectMetricStatus"), - }, - }, - "pods": { - SchemaProps: spec.SchemaProps{ - Description: "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - Ref: ref("k8s.io/api/autoscaling/v1.PodsMetricStatus"), - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - Ref: ref("k8s.io/api/autoscaling/v1.ResourceMetricStatus"), - }, - }, - "external": { - SchemaProps: spec.SchemaProps{ - Description: "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", - Ref: ref("k8s.io/api/autoscaling/v1.ExternalMetricStatus"), - }, - }, - }, - Required: []string{"type"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v1.ExternalMetricStatus", "k8s.io/api/autoscaling/v1.ObjectMetricStatus", "k8s.io/api/autoscaling/v1.PodsMetricStatus", "k8s.io/api/autoscaling/v1.ResourceMetricStatus"}, - } -} - -func schema_k8sio_api_autoscaling_v1_ObjectMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "target": { - SchemaProps: spec.SchemaProps{ - Description: "target is the described Kubernetes object.", - Ref: ref("k8s.io/api/autoscaling/v1.CrossVersionObjectReference"), - }, - }, - "metricName": { - SchemaProps: spec.SchemaProps{ - Description: "metricName is the name of the metric in question.", - Type: []string{"string"}, - Format: "", - }, - }, - "targetValue": { - SchemaProps: spec.SchemaProps{ - Description: "targetValue is the target value of the metric (as a quantity).", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "selector is the string-encoded form of a standard kubernetes label selector for the given metric. When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "averageValue": { - SchemaProps: spec.SchemaProps{ - Description: "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - Required: []string{"target", "metricName", "targetValue"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v1.CrossVersionObjectReference", "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_autoscaling_v1_ObjectMetricStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "target": { - SchemaProps: spec.SchemaProps{ - Description: "target is the described Kubernetes object.", - Ref: ref("k8s.io/api/autoscaling/v1.CrossVersionObjectReference"), - }, - }, - "metricName": { - SchemaProps: spec.SchemaProps{ - Description: "metricName is the name of the metric in question.", - Type: []string{"string"}, - Format: "", - }, - }, - "currentValue": { - SchemaProps: spec.SchemaProps{ - Description: "currentValue is the current value of the metric (as a quantity).", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "averageValue": { - SchemaProps: spec.SchemaProps{ - Description: "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - Required: []string{"target", "metricName", "currentValue"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v1.CrossVersionObjectReference", "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_autoscaling_v1_PodsMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metricName": { - SchemaProps: spec.SchemaProps{ - Description: "metricName is the name of the metric in question", - Type: []string{"string"}, - Format: "", - }, - }, - "targetAverageValue": { - SchemaProps: spec.SchemaProps{ - Description: "targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - }, - Required: []string{"metricName", "targetAverageValue"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_autoscaling_v1_PodsMetricStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metricName": { - SchemaProps: spec.SchemaProps{ - Description: "metricName is the name of the metric in question", - Type: []string{"string"}, - Format: "", - }, - }, - "currentAverageValue": { - SchemaProps: spec.SchemaProps{ - Description: "currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - }, - Required: []string{"metricName", "currentAverageValue"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_autoscaling_v1_ResourceMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is the name of the resource in question.", - Type: []string{"string"}, - Format: "", - }, - }, - "targetAverageUtilization": { - SchemaProps: spec.SchemaProps{ - Description: "targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "targetAverageValue": { - SchemaProps: spec.SchemaProps{ - Description: "targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type.", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - Required: []string{"name"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_autoscaling_v1_ResourceMetricStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is the name of the resource in question.", - Type: []string{"string"}, - Format: "", - }, - }, - "currentAverageUtilization": { - SchemaProps: spec.SchemaProps{ - Description: "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "currentAverageValue": { - SchemaProps: spec.SchemaProps{ - Description: "currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type. It will always be set, regardless of the corresponding metric specification.", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - Required: []string{"name", "currentAverageValue"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_autoscaling_v1_Scale(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Scale represents a scaling request for a resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.", - Ref: ref("k8s.io/api/autoscaling/v1.ScaleSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.", - Ref: ref("k8s.io/api/autoscaling/v1.ScaleStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v1.ScaleSpec", "k8s.io/api/autoscaling/v1.ScaleStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_autoscaling_v1_ScaleSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ScaleSpec describes the attributes of a scale subresource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "desired number of instances for the scaled object.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_autoscaling_v1_ScaleStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ScaleStatus represents the current status of a scale subresource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "actual number of observed instances of the scaled object.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"replicas"}, - }, - }, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_CrossVersionObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\"", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "API version of the referent", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"kind", "name"}, - }, - }, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_ExternalMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). Exactly one \"target\" type should be set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metricName": { - SchemaProps: spec.SchemaProps{ - Description: "metricName is the name of the metric in question.", - Type: []string{"string"}, - Format: "", - }, - }, - "metricSelector": { - SchemaProps: spec.SchemaProps{ - Description: "metricSelector is used to identify a specific time series within a given metric.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "targetValue": { - SchemaProps: spec.SchemaProps{ - Description: "targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue.", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - "targetAverageValue": { - SchemaProps: spec.SchemaProps{ - Description: "targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue.", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - Required: []string{"metricName"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_ExternalMetricStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metricName": { - SchemaProps: spec.SchemaProps{ - Description: "metricName is the name of a metric used for autoscaling in metric system.", - Type: []string{"string"}, - Format: "", - }, - }, - "metricSelector": { - SchemaProps: spec.SchemaProps{ - Description: "metricSelector is used to identify a specific time series within a given metric.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "currentValue": { - SchemaProps: spec.SchemaProps{ - Description: "currentValue is the current value of the metric (as a quantity)", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - "currentAverageValue": { - SchemaProps: spec.SchemaProps{ - Description: "currentAverageValue is the current value of metric averaged over autoscaled pods.", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - Required: []string{"metricName", "currentValue"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_HorizontalPodAutoscaler(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.HorizontalPodAutoscalerSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status is the current information about the autoscaler.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.HorizontalPodAutoscalerStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.HorizontalPodAutoscalerSpec", "k8s.io/api/autoscaling/v2beta1.HorizontalPodAutoscalerStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_HorizontalPodAutoscalerCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type describes the current condition", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status is the status of the condition (True, False, Unknown)", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "lastTransitionTime is the last time the condition transitioned from one status to another", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "reason is the reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "message is a human-readable explanation containing details about the transition", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_HorizontalPodAutoscalerList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata is the standard list metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is the list of horizontal pod autoscaler objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta1.HorizontalPodAutoscaler"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.HorizontalPodAutoscaler", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_HorizontalPodAutoscalerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "scaleTargetRef": { - SchemaProps: spec.SchemaProps{ - Description: "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.CrossVersionObjectReference"), - }, - }, - "minReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "maxReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "metrics": { - SchemaProps: spec.SchemaProps{ - Description: "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta1.MetricSpec"), - }, - }, - }, - }, - }, - }, - Required: []string{"scaleTargetRef", "maxReplicas"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.CrossVersionObjectReference", "k8s.io/api/autoscaling/v2beta1.MetricSpec"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_HorizontalPodAutoscalerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "observedGeneration is the most recent generation observed by this autoscaler.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "lastScaleTime": { - SchemaProps: spec.SchemaProps{ - Description: "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "currentReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "desiredReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "currentMetrics": { - SchemaProps: spec.SchemaProps{ - Description: "currentMetrics is the last read state of the metrics used by this autoscaler.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta1.MetricStatus"), - }, - }, - }, - }, - }, - "conditions": { - SchemaProps: spec.SchemaProps{ - Description: "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta1.HorizontalPodAutoscalerCondition"), - }, - }, - }, - }, - }, - }, - Required: []string{"currentReplicas", "desiredReplicas", "conditions"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.HorizontalPodAutoscalerCondition", "k8s.io/api/autoscaling/v2beta1.MetricStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_MetricSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type is the type of metric source. It should be one of \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.", - Type: []string{"string"}, - Format: "", - }, - }, - "object": { - SchemaProps: spec.SchemaProps{ - Description: "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).", - Ref: ref("k8s.io/api/autoscaling/v2beta1.ObjectMetricSource"), - }, - }, - "pods": { - SchemaProps: spec.SchemaProps{ - Description: "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.PodsMetricSource"), - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.ResourceMetricSource"), - }, - }, - "external": { - SchemaProps: spec.SchemaProps{ - Description: "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", - Ref: ref("k8s.io/api/autoscaling/v2beta1.ExternalMetricSource"), - }, - }, - }, - Required: []string{"type"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.ExternalMetricSource", "k8s.io/api/autoscaling/v2beta1.ObjectMetricSource", "k8s.io/api/autoscaling/v2beta1.PodsMetricSource", "k8s.io/api/autoscaling/v2beta1.ResourceMetricSource"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_MetricStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MetricStatus describes the last-read state of a single metric.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type is the type of metric source. It will be one of \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.", - Type: []string{"string"}, - Format: "", - }, - }, - "object": { - SchemaProps: spec.SchemaProps{ - Description: "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).", - Ref: ref("k8s.io/api/autoscaling/v2beta1.ObjectMetricStatus"), - }, - }, - "pods": { - SchemaProps: spec.SchemaProps{ - Description: "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.PodsMetricStatus"), - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.ResourceMetricStatus"), - }, - }, - "external": { - SchemaProps: spec.SchemaProps{ - Description: "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", - Ref: ref("k8s.io/api/autoscaling/v2beta1.ExternalMetricStatus"), - }, - }, - }, - Required: []string{"type"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.ExternalMetricStatus", "k8s.io/api/autoscaling/v2beta1.ObjectMetricStatus", "k8s.io/api/autoscaling/v2beta1.PodsMetricStatus", "k8s.io/api/autoscaling/v2beta1.ResourceMetricStatus"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_ObjectMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "target": { - SchemaProps: spec.SchemaProps{ - Description: "target is the described Kubernetes object.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.CrossVersionObjectReference"), - }, - }, - "metricName": { - SchemaProps: spec.SchemaProps{ - Description: "metricName is the name of the metric in question.", - Type: []string{"string"}, - Format: "", - }, - }, - "targetValue": { - SchemaProps: spec.SchemaProps{ - Description: "targetValue is the target value of the metric (as a quantity).", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "averageValue": { - SchemaProps: spec.SchemaProps{ - Description: "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - Required: []string{"target", "metricName", "targetValue"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.CrossVersionObjectReference", "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_ObjectMetricStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "target": { - SchemaProps: spec.SchemaProps{ - Description: "target is the described Kubernetes object.", - Ref: ref("k8s.io/api/autoscaling/v2beta1.CrossVersionObjectReference"), - }, - }, - "metricName": { - SchemaProps: spec.SchemaProps{ - Description: "metricName is the name of the metric in question.", - Type: []string{"string"}, - Format: "", - }, - }, - "currentValue": { - SchemaProps: spec.SchemaProps{ - Description: "currentValue is the current value of the metric (as a quantity).", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "averageValue": { - SchemaProps: spec.SchemaProps{ - Description: "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - Required: []string{"target", "metricName", "currentValue"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta1.CrossVersionObjectReference", "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_PodsMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metricName": { - SchemaProps: spec.SchemaProps{ - Description: "metricName is the name of the metric in question", - Type: []string{"string"}, - Format: "", - }, - }, - "targetAverageValue": { - SchemaProps: spec.SchemaProps{ - Description: "targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - }, - Required: []string{"metricName", "targetAverageValue"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_PodsMetricStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metricName": { - SchemaProps: spec.SchemaProps{ - Description: "metricName is the name of the metric in question", - Type: []string{"string"}, - Format: "", - }, - }, - "currentAverageValue": { - SchemaProps: spec.SchemaProps{ - Description: "currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - }, - Required: []string{"metricName", "currentAverageValue"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_ResourceMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is the name of the resource in question.", - Type: []string{"string"}, - Format: "", - }, - }, - "targetAverageUtilization": { - SchemaProps: spec.SchemaProps{ - Description: "targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "targetAverageValue": { - SchemaProps: spec.SchemaProps{ - Description: "targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type.", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - Required: []string{"name"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta1_ResourceMetricStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is the name of the resource in question.", - Type: []string{"string"}, - Format: "", - }, - }, - "currentAverageUtilization": { - SchemaProps: spec.SchemaProps{ - Description: "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "currentAverageValue": { - SchemaProps: spec.SchemaProps{ - Description: "currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type. It will always be set, regardless of the corresponding metric specification.", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - Required: []string{"name", "currentAverageValue"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_CrossVersionObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\"", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "API version of the referent", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"kind", "name"}, - }, - }, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_ExternalMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metric": { - SchemaProps: spec.SchemaProps{ - Description: "metric identifies the target metric by name and selector", - Ref: ref("k8s.io/api/autoscaling/v2beta2.MetricIdentifier"), - }, - }, - "target": { - SchemaProps: spec.SchemaProps{ - Description: "target specifies the target value for the given metric", - Ref: ref("k8s.io/api/autoscaling/v2beta2.MetricTarget"), - }, - }, - }, - Required: []string{"metric", "target"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta2.MetricIdentifier", "k8s.io/api/autoscaling/v2beta2.MetricTarget"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_ExternalMetricStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metric": { - SchemaProps: spec.SchemaProps{ - Description: "metric identifies the target metric by name and selector", - Ref: ref("k8s.io/api/autoscaling/v2beta2.MetricIdentifier"), - }, - }, - "current": { - SchemaProps: spec.SchemaProps{ - Description: "current contains the current value for the given metric", - Ref: ref("k8s.io/api/autoscaling/v2beta2.MetricValueStatus"), - }, - }, - }, - Required: []string{"metric", "current"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta2.MetricIdentifier", "k8s.io/api/autoscaling/v2beta2.MetricValueStatus"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_HPAScalingPolicy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HPAScalingPolicy is a single policy which must hold true for a specified past interval.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type is used to specify the scaling policy.", - Type: []string{"string"}, - Format: "", - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Description: "Value contains the amount of change which is permitted by the policy. It must be greater than zero", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "periodSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "PeriodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"type", "value", "periodSeconds"}, - }, - }, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_HPAScalingRules(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "stabilizationWindowSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "StabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "selectPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "selectPolicy is used to specify which policy should be used. If not set, the default value MaxPolicySelect is used.", - Type: []string{"string"}, - Format: "", - }, - }, - "policies": { - SchemaProps: spec.SchemaProps{ - Description: "policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta2.HPAScalingPolicy"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta2.HPAScalingPolicy"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_HorizontalPodAutoscaler(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.", - Ref: ref("k8s.io/api/autoscaling/v2beta2.HorizontalPodAutoscalerSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status is the current information about the autoscaler.", - Ref: ref("k8s.io/api/autoscaling/v2beta2.HorizontalPodAutoscalerStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta2.HorizontalPodAutoscalerSpec", "k8s.io/api/autoscaling/v2beta2.HorizontalPodAutoscalerStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_HorizontalPodAutoscalerBehavior(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "scaleUp": { - SchemaProps: spec.SchemaProps{ - Description: "scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:\n * increase no more than 4 pods per 60 seconds\n * double the number of pods per 60 seconds\nNo stabilization is used.", - Ref: ref("k8s.io/api/autoscaling/v2beta2.HPAScalingRules"), - }, - }, - "scaleDown": { - SchemaProps: spec.SchemaProps{ - Description: "scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used).", - Ref: ref("k8s.io/api/autoscaling/v2beta2.HPAScalingRules"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta2.HPAScalingRules"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_HorizontalPodAutoscalerCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type describes the current condition", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status is the status of the condition (True, False, Unknown)", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "lastTransitionTime is the last time the condition transitioned from one status to another", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "reason is the reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "message is a human-readable explanation containing details about the transition", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_HorizontalPodAutoscalerList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata is the standard list metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is the list of horizontal pod autoscaler objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta2.HorizontalPodAutoscaler"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta2.HorizontalPodAutoscaler", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_HorizontalPodAutoscalerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "scaleTargetRef": { - SchemaProps: spec.SchemaProps{ - Description: "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count.", - Ref: ref("k8s.io/api/autoscaling/v2beta2.CrossVersionObjectReference"), - }, - }, - "minReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "maxReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "metrics": { - SchemaProps: spec.SchemaProps{ - Description: "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta2.MetricSpec"), - }, - }, - }, - }, - }, - "behavior": { - SchemaProps: spec.SchemaProps{ - Description: "behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used.", - Ref: ref("k8s.io/api/autoscaling/v2beta2.HorizontalPodAutoscalerBehavior"), - }, - }, - }, - Required: []string{"scaleTargetRef", "maxReplicas"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta2.CrossVersionObjectReference", "k8s.io/api/autoscaling/v2beta2.HorizontalPodAutoscalerBehavior", "k8s.io/api/autoscaling/v2beta2.MetricSpec"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_HorizontalPodAutoscalerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "observedGeneration is the most recent generation observed by this autoscaler.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "lastScaleTime": { - SchemaProps: spec.SchemaProps{ - Description: "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "currentReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "desiredReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "currentMetrics": { - SchemaProps: spec.SchemaProps{ - Description: "currentMetrics is the last read state of the metrics used by this autoscaler.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta2.MetricStatus"), - }, - }, - }, - }, - }, - "conditions": { - SchemaProps: spec.SchemaProps{ - Description: "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta2.HorizontalPodAutoscalerCondition"), - }, - }, - }, - }, - }, - }, - Required: []string{"currentReplicas", "desiredReplicas", "conditions"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta2.HorizontalPodAutoscalerCondition", "k8s.io/api/autoscaling/v2beta2.MetricStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_MetricIdentifier(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MetricIdentifier defines the name and optionally selector for a metric", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is the name of the given metric", - Type: []string{"string"}, - Format: "", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - }, - Required: []string{"name"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_MetricSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type is the type of metric source. It should be one of \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.", - Type: []string{"string"}, - Format: "", - }, - }, - "object": { - SchemaProps: spec.SchemaProps{ - Description: "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).", - Ref: ref("k8s.io/api/autoscaling/v2beta2.ObjectMetricSource"), - }, - }, - "pods": { - SchemaProps: spec.SchemaProps{ - Description: "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - Ref: ref("k8s.io/api/autoscaling/v2beta2.PodsMetricSource"), - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - Ref: ref("k8s.io/api/autoscaling/v2beta2.ResourceMetricSource"), - }, - }, - "external": { - SchemaProps: spec.SchemaProps{ - Description: "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", - Ref: ref("k8s.io/api/autoscaling/v2beta2.ExternalMetricSource"), - }, - }, - }, - Required: []string{"type"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta2.ExternalMetricSource", "k8s.io/api/autoscaling/v2beta2.ObjectMetricSource", "k8s.io/api/autoscaling/v2beta2.PodsMetricSource", "k8s.io/api/autoscaling/v2beta2.ResourceMetricSource"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_MetricStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MetricStatus describes the last-read state of a single metric.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type is the type of metric source. It will be one of \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.", - Type: []string{"string"}, - Format: "", - }, - }, - "object": { - SchemaProps: spec.SchemaProps{ - Description: "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).", - Ref: ref("k8s.io/api/autoscaling/v2beta2.ObjectMetricStatus"), - }, - }, - "pods": { - SchemaProps: spec.SchemaProps{ - Description: "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - Ref: ref("k8s.io/api/autoscaling/v2beta2.PodsMetricStatus"), - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - Ref: ref("k8s.io/api/autoscaling/v2beta2.ResourceMetricStatus"), - }, - }, - "external": { - SchemaProps: spec.SchemaProps{ - Description: "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", - Ref: ref("k8s.io/api/autoscaling/v2beta2.ExternalMetricStatus"), - }, - }, - }, - Required: []string{"type"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta2.ExternalMetricStatus", "k8s.io/api/autoscaling/v2beta2.ObjectMetricStatus", "k8s.io/api/autoscaling/v2beta2.PodsMetricStatus", "k8s.io/api/autoscaling/v2beta2.ResourceMetricStatus"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_MetricTarget(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MetricTarget defines the target value, average value, or average utilization of a specific metric", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type represents whether the metric type is Utilization, Value, or AverageValue", - Type: []string{"string"}, - Format: "", - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Description: "value is the target value of the metric (as a quantity).", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - "averageValue": { - SchemaProps: spec.SchemaProps{ - Description: "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - "averageUtilization": { - SchemaProps: spec.SchemaProps{ - Description: "averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"type"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_MetricValueStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MetricValueStatus holds the current value for a metric", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "value": { - SchemaProps: spec.SchemaProps{ - Description: "value is the current value of the metric (as a quantity).", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - "averageValue": { - SchemaProps: spec.SchemaProps{ - Description: "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - "averageUtilization": { - SchemaProps: spec.SchemaProps{ - Description: "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_ObjectMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "describedObject": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta2.CrossVersionObjectReference"), - }, - }, - "target": { - SchemaProps: spec.SchemaProps{ - Description: "target specifies the target value for the given metric", - Ref: ref("k8s.io/api/autoscaling/v2beta2.MetricTarget"), - }, - }, - "metric": { - SchemaProps: spec.SchemaProps{ - Description: "metric identifies the target metric by name and selector", - Ref: ref("k8s.io/api/autoscaling/v2beta2.MetricIdentifier"), - }, - }, - }, - Required: []string{"describedObject", "target", "metric"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta2.CrossVersionObjectReference", "k8s.io/api/autoscaling/v2beta2.MetricIdentifier", "k8s.io/api/autoscaling/v2beta2.MetricTarget"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_ObjectMetricStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metric": { - SchemaProps: spec.SchemaProps{ - Description: "metric identifies the target metric by name and selector", - Ref: ref("k8s.io/api/autoscaling/v2beta2.MetricIdentifier"), - }, - }, - "current": { - SchemaProps: spec.SchemaProps{ - Description: "current contains the current value for the given metric", - Ref: ref("k8s.io/api/autoscaling/v2beta2.MetricValueStatus"), - }, - }, - "describedObject": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/autoscaling/v2beta2.CrossVersionObjectReference"), - }, - }, - }, - Required: []string{"metric", "current", "describedObject"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta2.CrossVersionObjectReference", "k8s.io/api/autoscaling/v2beta2.MetricIdentifier", "k8s.io/api/autoscaling/v2beta2.MetricValueStatus"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_PodsMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metric": { - SchemaProps: spec.SchemaProps{ - Description: "metric identifies the target metric by name and selector", - Ref: ref("k8s.io/api/autoscaling/v2beta2.MetricIdentifier"), - }, - }, - "target": { - SchemaProps: spec.SchemaProps{ - Description: "target specifies the target value for the given metric", - Ref: ref("k8s.io/api/autoscaling/v2beta2.MetricTarget"), - }, - }, - }, - Required: []string{"metric", "target"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta2.MetricIdentifier", "k8s.io/api/autoscaling/v2beta2.MetricTarget"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_PodsMetricStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metric": { - SchemaProps: spec.SchemaProps{ - Description: "metric identifies the target metric by name and selector", - Ref: ref("k8s.io/api/autoscaling/v2beta2.MetricIdentifier"), - }, - }, - "current": { - SchemaProps: spec.SchemaProps{ - Description: "current contains the current value for the given metric", - Ref: ref("k8s.io/api/autoscaling/v2beta2.MetricValueStatus"), - }, - }, - }, - Required: []string{"metric", "current"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta2.MetricIdentifier", "k8s.io/api/autoscaling/v2beta2.MetricValueStatus"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_ResourceMetricSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is the name of the resource in question.", - Type: []string{"string"}, - Format: "", - }, - }, - "target": { - SchemaProps: spec.SchemaProps{ - Description: "target specifies the target value for the given metric", - Ref: ref("k8s.io/api/autoscaling/v2beta2.MetricTarget"), - }, - }, - }, - Required: []string{"name", "target"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta2.MetricTarget"}, - } -} - -func schema_k8sio_api_autoscaling_v2beta2_ResourceMetricStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name is the name of the resource in question.", - Type: []string{"string"}, - Format: "", - }, - }, - "current": { - SchemaProps: spec.SchemaProps{ - Description: "current contains the current value for the given metric", - Ref: ref("k8s.io/api/autoscaling/v2beta2.MetricValueStatus"), - }, - }, - }, - Required: []string{"name", "current"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/autoscaling/v2beta2.MetricValueStatus"}, - } -} - -func schema_k8sio_api_batch_v1_Job(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Job represents the configuration of a single job.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/batch/v1.JobSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/batch/v1.JobStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/batch/v1.JobSpec", "k8s.io/api/batch/v1.JobStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_batch_v1_JobCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JobCondition describes current state of a job.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of job condition, Complete or Failed.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastProbeTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition was checked.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition transit from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "(brief) reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "Human readable message indicating details about last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_batch_v1_JobList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JobList is a collection of jobs.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is the list of Jobs.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/batch/v1.Job"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/batch/v1.Job", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_batch_v1_JobSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JobSpec describes how the job execution will look like.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "parallelism": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "completions": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the desired number of successfully finished pods the job should be run with. Setting to nil means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "activeDeadlineSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "backoffLimit": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the number of retries before marking this job failed. Defaults to 6", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "manualSelector": { - SchemaProps: spec.SchemaProps{ - Description: "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector", - Type: []string{"boolean"}, - Format: "", - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"), - }, - }, - "ttlSecondsAfterFinished": { - SchemaProps: spec.SchemaProps{ - Description: "ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes. This field is alpha-level and is only honored by servers that enable the TTLAfterFinished feature.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"template"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_batch_v1_JobStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JobStatus represents the current state of a Job.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "The latest available observations of an object's current state. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/batch/v1.JobCondition"), - }, - }, - }, - }, - }, - "startTime": { - SchemaProps: spec.SchemaProps{ - Description: "Represents time when the job was acknowledged by the job controller. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "completionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "active": { - SchemaProps: spec.SchemaProps{ - Description: "The number of actively running pods.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "succeeded": { - SchemaProps: spec.SchemaProps{ - Description: "The number of pods which reached phase Succeeded.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "failed": { - SchemaProps: spec.SchemaProps{ - Description: "The number of pods which reached phase Failed.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/batch/v1.JobCondition", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_batch_v1beta1_CronJob(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CronJob represents the configuration of a single cron job.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/batch/v1beta1.CronJobSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/batch/v1beta1.CronJobStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/batch/v1beta1.CronJobSpec", "k8s.io/api/batch/v1beta1.CronJobStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_batch_v1beta1_CronJobList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CronJobList is a collection of cron jobs.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is the list of CronJobs.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/batch/v1beta1.CronJob"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/batch/v1beta1.CronJob", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_batch_v1beta1_CronJobSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CronJobSpec describes how the job execution will look like and when it will actually run.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "schedule": { - SchemaProps: spec.SchemaProps{ - Description: "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.", - Type: []string{"string"}, - Format: "", - }, - }, - "startingDeadlineSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "concurrencyPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", - Type: []string{"string"}, - Format: "", - }, - }, - "suspend": { - SchemaProps: spec.SchemaProps{ - Description: "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "jobTemplate": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the job that will be created when executing a CronJob.", - Ref: ref("k8s.io/api/batch/v1beta1.JobTemplateSpec"), - }, - }, - "successfulJobsHistoryLimit": { - SchemaProps: spec.SchemaProps{ - Description: "The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 3.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "failedJobsHistoryLimit": { - SchemaProps: spec.SchemaProps{ - Description: "The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"schedule", "jobTemplate"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/batch/v1beta1.JobTemplateSpec"}, - } -} - -func schema_k8sio_api_batch_v1beta1_CronJobStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CronJobStatus represents the current state of a cron job.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "active": { - SchemaProps: spec.SchemaProps{ - Description: "A list of pointers to currently running jobs.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - }, - }, - }, - "lastScheduleTime": { - SchemaProps: spec.SchemaProps{ - Description: "Information when was the last time the job was successfully scheduled.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_batch_v1beta1_JobTemplate(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JobTemplate describes a template for creating copies of a predefined pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "Defines jobs that will be created from this template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/batch/v1beta1.JobTemplateSpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/batch/v1beta1.JobTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_batch_v1beta1_JobTemplateSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JobTemplateSpec describes the data a Job should have when created from a template", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/batch/v1.JobSpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/batch/v1.JobSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_batch_v2alpha1_CronJob(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CronJob represents the configuration of a single cron job.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/batch/v2alpha1.CronJobSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/batch/v2alpha1.CronJobStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/batch/v2alpha1.CronJobSpec", "k8s.io/api/batch/v2alpha1.CronJobStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_batch_v2alpha1_CronJobList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CronJobList is a collection of cron jobs.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is the list of CronJobs.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/batch/v2alpha1.CronJob"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/batch/v2alpha1.CronJob", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_batch_v2alpha1_CronJobSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CronJobSpec describes how the job execution will look like and when it will actually run.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "schedule": { - SchemaProps: spec.SchemaProps{ - Description: "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.", - Type: []string{"string"}, - Format: "", - }, - }, - "startingDeadlineSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "concurrencyPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", - Type: []string{"string"}, - Format: "", - }, - }, - "suspend": { - SchemaProps: spec.SchemaProps{ - Description: "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "jobTemplate": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the job that will be created when executing a CronJob.", - Ref: ref("k8s.io/api/batch/v2alpha1.JobTemplateSpec"), - }, - }, - "successfulJobsHistoryLimit": { - SchemaProps: spec.SchemaProps{ - Description: "The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "failedJobsHistoryLimit": { - SchemaProps: spec.SchemaProps{ - Description: "The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"schedule", "jobTemplate"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/batch/v2alpha1.JobTemplateSpec"}, - } -} - -func schema_k8sio_api_batch_v2alpha1_CronJobStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CronJobStatus represents the current state of a cron job.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "active": { - SchemaProps: spec.SchemaProps{ - Description: "A list of pointers to currently running jobs.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - }, - }, - }, - "lastScheduleTime": { - SchemaProps: spec.SchemaProps{ - Description: "Information when was the last time the job was successfully scheduled.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_batch_v2alpha1_JobTemplate(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JobTemplate describes a template for creating copies of a predefined pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "Defines jobs that will be created from this template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/batch/v2alpha1.JobTemplateSpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/batch/v2alpha1.JobTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_batch_v2alpha1_JobTemplateSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JobTemplateSpec describes the data a Job should have when created from a template", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/batch/v1.JobSpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/batch/v1.JobSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_certificates_v1_CertificateSigningRequest(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CertificateSigningRequest objects provide a mechanism to obtain x509 certificates by submitting a certificate signing request, and having it asynchronously approved and issued.\n\nKubelets use this API to obtain:\n 1. client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client-kubelet\" signerName).\n 2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the \"kubernetes.io/kubelet-serving\" signerName).\n\nThis API can be used to request client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client\" signerName), or to obtain certificates from custom non-Kubernetes signers.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec contains the certificate request, and is immutable after creation. Only the request, signerName, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users.", - Ref: ref("k8s.io/api/certificates/v1.CertificateSigningRequestSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status contains information about whether the request is approved or denied, and the certificate issued by the signer, or the failure condition indicating signer failure.", - Ref: ref("k8s.io/api/certificates/v1.CertificateSigningRequestStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/certificates/v1.CertificateSigningRequestSpec", "k8s.io/api/certificates/v1.CertificateSigningRequestStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_certificates_v1_CertificateSigningRequestCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type of the condition. Known conditions are \"Approved\", \"Denied\", and \"Failed\".\n\nAn \"Approved\" condition is added via the /approval subresource, indicating the request was approved and should be issued by the signer.\n\nA \"Denied\" condition is added via the /approval subresource, indicating the request was denied and should not be issued by the signer.\n\nA \"Failed\" condition is added via the /status subresource, indicating the signer failed to issue the certificate.\n\nApproved and Denied conditions are mutually exclusive. Approved, Denied, and Failed conditions cannot be removed once added.\n\nOnly one condition of a given type is allowed.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".", - Type: []string{"string"}, - Format: "", - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "reason indicates a brief reason for the request state", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "message contains a human readable message with details about the request state", - Type: []string{"string"}, - Format: "", - }, - }, - "lastUpdateTime": { - SchemaProps: spec.SchemaProps{ - Description: "lastUpdateTime is the time of the last update to this condition", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_certificates_v1_CertificateSigningRequestList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CertificateSigningRequestList is a collection of CertificateSigningRequest objects", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is a collection of CertificateSigningRequest objects", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/certificates/v1.CertificateSigningRequest"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/certificates/v1.CertificateSigningRequest", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_certificates_v1_CertificateSigningRequestSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CertificateSigningRequestSpec contains the certificate request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "request": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "request contains an x509 certificate signing request encoded in a \"CERTIFICATE REQUEST\" PEM block. When serialized as JSON or YAML, the data is additionally base64-encoded.", - Type: []string{"string"}, - Format: "byte", - }, - }, - "signerName": { - SchemaProps: spec.SchemaProps{ - Description: "signerName indicates the requested signer, and is a qualified name.\n\nList/watch requests for CertificateSigningRequests can filter on this field using a \"spec.signerName=NAME\" fieldSelector.\n\nWell-known Kubernetes signers are:\n 1. \"kubernetes.io/kube-apiserver-client\": issues client certificates that can be used to authenticate to kube-apiserver.\n Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the \"csrsigning\" controller in kube-controller-manager.\n 2. \"kubernetes.io/kube-apiserver-client-kubelet\": issues client certificates that kubelets use to authenticate to kube-apiserver.\n Requests for this signer can be auto-approved by the \"csrapproving\" controller in kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n 3. \"kubernetes.io/kubelet-serving\" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely.\n Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\nMore details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers\n\nCustom signerNames can also be specified. The signer defines:\n 1. Trust distribution: how trust (CA bundles) are distributed.\n 2. Permitted subjects: and behavior when a disallowed subject is requested.\n 3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested.\n 4. Required, permitted, or forbidden key usages / extended key usages.\n 5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin.\n 6. Whether or not requests for CA certificates are allowed.", - Type: []string{"string"}, - Format: "", - }, - }, - "usages": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "usages specifies a set of key usages requested in the issued certificate.\n\nRequests for TLS client certificates typically request: \"digital signature\", \"key encipherment\", \"client auth\".\n\nRequests for TLS serving certificates typically request: \"key encipherment\", \"digital signature\", \"server auth\".\n\nValid values are:\n \"signing\", \"digital signature\", \"content commitment\",\n \"key encipherment\", \"key agreement\", \"data encipherment\",\n \"cert sign\", \"crl sign\", \"encipher only\", \"decipher only\", \"any\",\n \"server auth\", \"client auth\",\n \"code signing\", \"email protection\", \"s/mime\",\n \"ipsec end system\", \"ipsec tunnel\", \"ipsec user\",\n \"timestamping\", \"ocsp signing\", \"microsoft sgc\", \"netscape sgc\"", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "username": { - SchemaProps: spec.SchemaProps{ - Description: "username contains the name of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", - Type: []string{"string"}, - Format: "", - }, - }, - "uid": { - SchemaProps: spec.SchemaProps{ - Description: "uid contains the uid of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", - Type: []string{"string"}, - Format: "", - }, - }, - "groups": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "groups contains group membership of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "extra": { - SchemaProps: spec.SchemaProps{ - Description: "extra contains extra attributes of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - }, - Required: []string{"request", "signerName"}, - }, - }, - } -} - -func schema_k8sio_api_certificates_v1_CertificateSigningRequestStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CertificateSigningRequestStatus contains conditions used to indicate approved/denied/failed status of the request, and the issued certificate.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "conditions applied to the request. Known conditions are \"Approved\", \"Denied\", and \"Failed\".", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/certificates/v1.CertificateSigningRequestCondition"), - }, - }, - }, - }, - }, - "certificate": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "certificate is populated with an issued certificate by the signer after an Approved condition is present. This field is set via the /status subresource. Once populated, this field is immutable.\n\nIf the certificate signing request is denied, a condition of type \"Denied\" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type \"Failed\" is added and this field remains empty.\n\nValidation requirements:\n 1. certificate must contain one or more PEM blocks.\n 2. All PEM blocks must have the \"CERTIFICATE\" label, contain no headers, and the encoded data\n must be a BER-encoded ASN.1 Certificate structure as described in section 4 of RFC5280.\n 3. Non-PEM content may appear before or after the \"CERTIFICATE\" PEM blocks and is unvalidated,\n to allow for explanatory text as described in section 5.2 of RFC7468.\n\nIf more than one PEM block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes.\n\nThe certificate is encoded in PEM format.\n\nWhen serialized as JSON or YAML, the data is additionally base64-encoded, so it consists of:\n\n base64(\n -----BEGIN CERTIFICATE-----\n ...\n -----END CERTIFICATE-----\n )", - Type: []string{"string"}, - Format: "byte", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/certificates/v1.CertificateSigningRequestCondition"}, - } -} - -func schema_k8sio_api_certificates_v1beta1_CertificateSigningRequest(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Describes a certificate signing request", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "The certificate request itself and any additional information.", - Ref: ref("k8s.io/api/certificates/v1beta1.CertificateSigningRequestSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Derived information about the request.", - Ref: ref("k8s.io/api/certificates/v1beta1.CertificateSigningRequestStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/certificates/v1beta1.CertificateSigningRequestSpec", "k8s.io/api/certificates/v1beta1.CertificateSigningRequestStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_certificates_v1beta1_CertificateSigningRequestCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type of the condition. Known conditions include \"Approved\", \"Denied\", and \"Failed\".", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\". Defaults to \"True\". If unset, should be treated as \"True\".", - Type: []string{"string"}, - Format: "", - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "brief reason for the request state", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "human readable message with details about the request state", - Type: []string{"string"}, - Format: "", - }, - }, - "lastUpdateTime": { - SchemaProps: spec.SchemaProps{ - Description: "timestamp for the last update to this condition", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - }, - Required: []string{"type"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_certificates_v1beta1_CertificateSigningRequestList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/certificates/v1beta1.CertificateSigningRequest"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/certificates/v1beta1.CertificateSigningRequest", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_certificates_v1beta1_CertificateSigningRequestSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "This information is immutable after the request is created. Only the Request and Usages fields can be set on creation, other fields are derived by Kubernetes and cannot be modified by users.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "request": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Base64-encoded PKCS#10 CSR data", - Type: []string{"string"}, - Format: "byte", - }, - }, - "signerName": { - SchemaProps: spec.SchemaProps{ - Description: "Requested signer for the request. It is a qualified name in the form: `scope-hostname.io/name`. If empty, it will be defaulted:\n 1. If it's a kubelet client certificate, it is assigned\n \"kubernetes.io/kube-apiserver-client-kubelet\".\n 2. If it's a kubelet serving certificate, it is assigned\n \"kubernetes.io/kubelet-serving\".\n 3. Otherwise, it is assigned \"kubernetes.io/legacy-unknown\".\nDistribution of trust for signers happens out of band. You can select on this field using `spec.signerName`.", - Type: []string{"string"}, - Format: "", - }, - }, - "usages": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "allowedUsages specifies a set of usage contexts the key will be valid for. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3\n https://tools.ietf.org/html/rfc5280#section-4.2.1.12\nValid values are:\n \"signing\",\n \"digital signature\",\n \"content commitment\",\n \"key encipherment\",\n \"key agreement\",\n \"data encipherment\",\n \"cert sign\",\n \"crl sign\",\n \"encipher only\",\n \"decipher only\",\n \"any\",\n \"server auth\",\n \"client auth\",\n \"code signing\",\n \"email protection\",\n \"s/mime\",\n \"ipsec end system\",\n \"ipsec tunnel\",\n \"ipsec user\",\n \"timestamping\",\n \"ocsp signing\",\n \"microsoft sgc\",\n \"netscape sgc\"", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "username": { - SchemaProps: spec.SchemaProps{ - Description: "Information about the requesting user. See user.Info interface for details.", - Type: []string{"string"}, - Format: "", - }, - }, - "uid": { - SchemaProps: spec.SchemaProps{ - Description: "UID information about the requesting user. See user.Info interface for details.", - Type: []string{"string"}, - Format: "", - }, - }, - "groups": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Group information about the requesting user. See user.Info interface for details.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "extra": { - SchemaProps: spec.SchemaProps{ - Description: "Extra information about the requesting user. See user.Info interface for details.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - }, - Required: []string{"request"}, - }, - }, - } -} - -func schema_k8sio_api_certificates_v1beta1_CertificateSigningRequestStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Conditions applied to the request, such as approval or denial.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/certificates/v1beta1.CertificateSigningRequestCondition"), - }, - }, - }, - }, - }, - "certificate": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "If request was approved, the controller will place the issued certificate here.", - Type: []string{"string"}, - Format: "byte", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/certificates/v1beta1.CertificateSigningRequestCondition"}, - } -} - -func schema_k8sio_api_coordination_v1_Lease(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Lease defines a lease concept.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/coordination/v1.LeaseSpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/coordination/v1.LeaseSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_coordination_v1_LeaseList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LeaseList is a list of Lease objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of schema objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/coordination/v1.Lease"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/coordination/v1.Lease", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_coordination_v1_LeaseSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LeaseSpec is a specification of a Lease.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "holderIdentity": { - SchemaProps: spec.SchemaProps{ - Description: "holderIdentity contains the identity of the holder of a current lease.", - Type: []string{"string"}, - Format: "", - }, - }, - "leaseDurationSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "acquireTime": { - SchemaProps: spec.SchemaProps{ - Description: "acquireTime is a time when the current lease was acquired.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"), - }, - }, - "renewTime": { - SchemaProps: spec.SchemaProps{ - Description: "renewTime is a time when the current holder of a lease has last updated the lease.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"), - }, - }, - "leaseTransitions": { - SchemaProps: spec.SchemaProps{ - Description: "leaseTransitions is the number of transitions of a lease between holders.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"}, - } -} - -func schema_k8sio_api_coordination_v1beta1_Lease(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Lease defines a lease concept.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/coordination/v1beta1.LeaseSpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/coordination/v1beta1.LeaseSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_coordination_v1beta1_LeaseList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LeaseList is a list of Lease objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of schema objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/coordination/v1beta1.Lease"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/coordination/v1beta1.Lease", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_coordination_v1beta1_LeaseSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LeaseSpec is a specification of a Lease.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "holderIdentity": { - SchemaProps: spec.SchemaProps{ - Description: "holderIdentity contains the identity of the holder of a current lease.", - Type: []string{"string"}, - Format: "", - }, - }, - "leaseDurationSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "acquireTime": { - SchemaProps: spec.SchemaProps{ - Description: "acquireTime is a time when the current lease was acquired.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"), - }, - }, - "renewTime": { - SchemaProps: spec.SchemaProps{ - Description: "renewTime is a time when the current holder of a lease has last updated the lease.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"), - }, - }, - "leaseTransitions": { - SchemaProps: spec.SchemaProps{ - Description: "leaseTransitions is the number of transitions of a lease between holders.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"}, - } -} - -func schema_k8sio_api_core_v1_AWSElasticBlockStoreVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "volumeID": { - SchemaProps: spec.SchemaProps{ - Description: "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Type: []string{"string"}, - Format: "", - }, - }, - "partition": { - SchemaProps: spec.SchemaProps{ - Description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"volumeID"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_Affinity(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Affinity is a group of affinity scheduling rules.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "nodeAffinity": { - SchemaProps: spec.SchemaProps{ - Description: "Describes node affinity scheduling rules for the pod.", - Ref: ref("k8s.io/api/core/v1.NodeAffinity"), - }, - }, - "podAffinity": { - SchemaProps: spec.SchemaProps{ - Description: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - Ref: ref("k8s.io/api/core/v1.PodAffinity"), - }, - }, - "podAntiAffinity": { - SchemaProps: spec.SchemaProps{ - Description: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - Ref: ref("k8s.io/api/core/v1.PodAntiAffinity"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.NodeAffinity", "k8s.io/api/core/v1.PodAffinity", "k8s.io/api/core/v1.PodAntiAffinity"}, - } -} - -func schema_k8sio_api_core_v1_AttachedVolume(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "AttachedVolume describes a volume attached to a node", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the attached volume", - Type: []string{"string"}, - Format: "", - }, - }, - "devicePath": { - SchemaProps: spec.SchemaProps{ - Description: "DevicePath represents the device path where the volume should be available", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"name", "devicePath"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_AvoidPods(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "AvoidPods describes pods that should avoid this node. This is the value for a Node annotation with key scheduler.alpha.kubernetes.io/preferAvoidPods and will eventually become a field of NodeStatus.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "preferAvoidPods": { - SchemaProps: spec.SchemaProps{ - Description: "Bounded-sized list of signatures of pods that should avoid this node, sorted in timestamp order from oldest to newest. Size of the slice is unspecified.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.PreferAvoidPodsEntry"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PreferAvoidPodsEntry"}, - } -} - -func schema_k8sio_api_core_v1_AzureDiskVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "diskName": { - SchemaProps: spec.SchemaProps{ - Description: "The Name of the data disk in the blob storage", - Type: []string{"string"}, - Format: "", - }, - }, - "diskURI": { - SchemaProps: spec.SchemaProps{ - Description: "The URI the data disk in the blob storage", - Type: []string{"string"}, - Format: "", - }, - }, - "cachingMode": { - SchemaProps: spec.SchemaProps{ - Description: "Host Caching mode: None, Read Only, Read Write.", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"diskName", "diskURI"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_AzureFilePersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "secretName": { - SchemaProps: spec.SchemaProps{ - Description: "the name of secret that contains Azure Storage Account Name and Key", - Type: []string{"string"}, - Format: "", - }, - }, - "shareName": { - SchemaProps: spec.SchemaProps{ - Description: "Share Name", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "secretNamespace": { - SchemaProps: spec.SchemaProps{ - Description: "the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"secretName", "shareName"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_AzureFileVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "secretName": { - SchemaProps: spec.SchemaProps{ - Description: "the name of secret that contains Azure Storage Account Name and Key", - Type: []string{"string"}, - Format: "", - }, - }, - "shareName": { - SchemaProps: spec.SchemaProps{ - Description: "Share Name", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"secretName", "shareName"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_Binding(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "target": { - SchemaProps: spec.SchemaProps{ - Description: "The target object that you want to bind to the standard object.", - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - }, - Required: []string{"target"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_CSIPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents storage that is managed by an external CSI volume driver (Beta feature)", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "driver": { - SchemaProps: spec.SchemaProps{ - Description: "Driver is the name of the driver to use for this volume. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - "volumeHandle": { - SchemaProps: spec.SchemaProps{ - Description: "VolumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: The value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).", - Type: []string{"boolean"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\".", - Type: []string{"string"}, - Format: "", - }, - }, - "volumeAttributes": { - SchemaProps: spec.SchemaProps{ - Description: "Attributes of the volume to publish.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "controllerPublishSecretRef": { - SchemaProps: spec.SchemaProps{ - Description: "ControllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.", - Ref: ref("k8s.io/api/core/v1.SecretReference"), - }, - }, - "nodeStageSecretRef": { - SchemaProps: spec.SchemaProps{ - Description: "NodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.", - Ref: ref("k8s.io/api/core/v1.SecretReference"), - }, - }, - "nodePublishSecretRef": { - SchemaProps: spec.SchemaProps{ - Description: "NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.", - Ref: ref("k8s.io/api/core/v1.SecretReference"), - }, - }, - "controllerExpandSecretRef": { - SchemaProps: spec.SchemaProps{ - Description: "ControllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This is an alpha field and requires enabling ExpandCSIVolumes feature gate. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.", - Ref: ref("k8s.io/api/core/v1.SecretReference"), - }, - }, - }, - Required: []string{"driver", "volumeHandle"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.SecretReference"}, - } -} - -func schema_k8sio_api_core_v1_CSIVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a source location of a volume to mount, managed by an external CSI driver", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "driver": { - SchemaProps: spec.SchemaProps{ - Description: "Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies a read-only configuration for the volume. Defaults to false (read/write).", - Type: []string{"boolean"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.", - Type: []string{"string"}, - Format: "", - }, - }, - "volumeAttributes": { - SchemaProps: spec.SchemaProps{ - Description: "VolumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "nodePublishSecretRef": { - SchemaProps: spec.SchemaProps{ - Description: "NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.", - Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), - }, - }, - }, - Required: []string{"driver"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.LocalObjectReference"}, - } -} - -func schema_k8sio_api_core_v1_Capabilities(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Adds and removes POSIX capabilities from running containers.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "add": { - SchemaProps: spec.SchemaProps{ - Description: "Added capabilities", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "drop": { - SchemaProps: spec.SchemaProps{ - Description: "Removed capabilities", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_CephFSPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "monitors": { - SchemaProps: spec.SchemaProps{ - Description: "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "path": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - Type: []string{"string"}, - Format: "", - }, - }, - "user": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Type: []string{"string"}, - Format: "", - }, - }, - "secretFile": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Type: []string{"string"}, - Format: "", - }, - }, - "secretRef": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Ref: ref("k8s.io/api/core/v1.SecretReference"), - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"monitors"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.SecretReference"}, - } -} - -func schema_k8sio_api_core_v1_CephFSVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "monitors": { - SchemaProps: spec.SchemaProps{ - Description: "Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "path": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - Type: []string{"string"}, - Format: "", - }, - }, - "user": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Type: []string{"string"}, - Format: "", - }, - }, - "secretFile": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Type: []string{"string"}, - Format: "", - }, - }, - "secretRef": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"monitors"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.LocalObjectReference"}, - } -} - -func schema_k8sio_api_core_v1_CinderPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "volumeID": { - SchemaProps: spec.SchemaProps{ - Description: "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Type: []string{"boolean"}, - Format: "", - }, - }, - "secretRef": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: points to a secret object containing parameters used to connect to OpenStack.", - Ref: ref("k8s.io/api/core/v1.SecretReference"), - }, - }, - }, - Required: []string{"volumeID"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.SecretReference"}, - } -} - -func schema_k8sio_api_core_v1_CinderVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "volumeID": { - SchemaProps: spec.SchemaProps{ - Description: "volume id used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Type: []string{"boolean"}, - Format: "", - }, - }, - "secretRef": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: points to a secret object containing parameters used to connect to OpenStack.", - Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), - }, - }, - }, - Required: []string{"volumeID"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.LocalObjectReference"}, - } -} - -func schema_k8sio_api_core_v1_ClientIPConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ClientIPConfig represents the configurations of Client IP based session affinity.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "timeoutSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_ComponentCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Information about the condition of a component.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of condition for a component. Valid value: \"Healthy\"", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "Message about the condition for a component. For example, information about a health check.", - Type: []string{"string"}, - Format: "", - }, - }, - "error": { - SchemaProps: spec.SchemaProps{ - Description: "Condition error code for a component. For example, a health check error code.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_ComponentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "List of component conditions observed", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ComponentCondition"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ComponentCondition", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_ComponentStatusList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Status of all the conditions for the component as a list of ComponentStatus objects. Deprecated: This API is deprecated in v1.19+", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of ComponentStatus objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ComponentStatus"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ComponentStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_core_v1_ConfigMap(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ConfigMap holds configuration data for pods to consume.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "immutable": { - SchemaProps: spec.SchemaProps{ - Description: "Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. This is a beta field enabled by ImmutableEphemeralVolumes feature gate.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "data": { - SchemaProps: spec.SchemaProps{ - Description: "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "binaryData": { - SchemaProps: spec.SchemaProps{ - Description: "BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "byte", - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_ConfigMapEnvSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Type: []string{"string"}, - Format: "", - }, - }, - "optional": { - SchemaProps: spec.SchemaProps{ - Description: "Specify whether the ConfigMap must be defined", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_ConfigMapKeySelector(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Selects a key from a ConfigMap.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Type: []string{"string"}, - Format: "", - }, - }, - "key": { - SchemaProps: spec.SchemaProps{ - Description: "The key to select.", - Type: []string{"string"}, - Format: "", - }, - }, - "optional": { - SchemaProps: spec.SchemaProps{ - Description: "Specify whether the ConfigMap or its key must be defined", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"key"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_ConfigMapList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ConfigMapList is a resource containing a list of ConfigMap objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of ConfigMaps.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ConfigMap"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ConfigMap", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_core_v1_ConfigMapNodeConfigSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.", - Type: []string{"string"}, - Format: "", - }, - }, - "uid": { - SchemaProps: spec.SchemaProps{ - Description: "UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", - Type: []string{"string"}, - Format: "", - }, - }, - "resourceVersion": { - SchemaProps: spec.SchemaProps{ - Description: "ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", - Type: []string{"string"}, - Format: "", - }, - }, - "kubeletConfigKey": { - SchemaProps: spec.SchemaProps{ - Description: "KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"namespace", "name", "kubeletConfigKey"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_ConfigMapProjection(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Type: []string{"string"}, - Format: "", - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.KeyToPath"), - }, - }, - }, - }, - }, - "optional": { - SchemaProps: spec.SchemaProps{ - Description: "Specify whether the ConfigMap or its keys must be defined", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.KeyToPath"}, - } -} - -func schema_k8sio_api_core_v1_ConfigMapVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Type: []string{"string"}, - Format: "", - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.KeyToPath"), - }, - }, - }, - }, - }, - "defaultMode": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "optional": { - SchemaProps: spec.SchemaProps{ - Description: "Specify whether the ConfigMap or its keys must be defined", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.KeyToPath"}, - } -} - -func schema_k8sio_api_core_v1_Container(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "A single application container that you want to run within a pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.", - Type: []string{"string"}, - Format: "", - }, - }, - "image": { - SchemaProps: spec.SchemaProps{ - Description: "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - Type: []string{"string"}, - Format: "", - }, - }, - "command": { - SchemaProps: spec.SchemaProps{ - Description: "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "args": { - SchemaProps: spec.SchemaProps{ - Description: "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "workingDir": { - SchemaProps: spec.SchemaProps{ - Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", - Type: []string{"string"}, - Format: "", - }, - }, - "ports": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "containerPort", - "protocol", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "containerPort", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ContainerPort"), - }, - }, - }, - }, - }, - "envFrom": { - SchemaProps: spec.SchemaProps{ - Description: "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.EnvFromSource"), - }, - }, - }, - }, - }, - "env": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "List of environment variables to set in the container. Cannot be updated.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.EnvVar"), - }, - }, - }, - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - Ref: ref("k8s.io/api/core/v1.ResourceRequirements"), - }, - }, - "volumeMounts": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "mountPath", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.VolumeMount"), - }, - }, - }, - }, - }, - "volumeDevices": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "devicePath", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "volumeDevices is the list of block devices to be used by the container.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.VolumeDevice"), - }, - }, - }, - }, - }, - "livenessProbe": { - SchemaProps: spec.SchemaProps{ - Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Ref: ref("k8s.io/api/core/v1.Probe"), - }, - }, - "readinessProbe": { - SchemaProps: spec.SchemaProps{ - Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Ref: ref("k8s.io/api/core/v1.Probe"), - }, - }, - "startupProbe": { - SchemaProps: spec.SchemaProps{ - Description: "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. This is a beta feature enabled by the StartupProbe feature flag. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Ref: ref("k8s.io/api/core/v1.Probe"), - }, - }, - "lifecycle": { - SchemaProps: spec.SchemaProps{ - Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.", - Ref: ref("k8s.io/api/core/v1.Lifecycle"), - }, - }, - "terminationMessagePath": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", - Type: []string{"string"}, - Format: "", - }, - }, - "terminationMessagePolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", - Type: []string{"string"}, - Format: "", - }, - }, - "imagePullPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", - Type: []string{"string"}, - Format: "", - }, - }, - "securityContext": { - SchemaProps: spec.SchemaProps{ - Description: "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/", - Ref: ref("k8s.io/api/core/v1.SecurityContext"), - }, - }, - "stdin": { - SchemaProps: spec.SchemaProps{ - Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "stdinOnce": { - SchemaProps: spec.SchemaProps{ - Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", - Type: []string{"boolean"}, - Format: "", - }, - }, - "tty": { - SchemaProps: spec.SchemaProps{ - Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"name"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"}, - } -} - -func schema_k8sio_api_core_v1_ContainerImage(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Describe a container image", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "names": { - SchemaProps: spec.SchemaProps{ - Description: "Names by which this image is known. e.g. [\"k8s.gcr.io/hyperkube:v1.0.7\", \"dockerhub.io/google_containers/hyperkube:v1.0.7\"]", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "sizeBytes": { - SchemaProps: spec.SchemaProps{ - Description: "The size of the image in bytes.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - }, - Required: []string{"names"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_ContainerPort(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ContainerPort represents a network port in a single container.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.", - Type: []string{"string"}, - Format: "", - }, - }, - "hostPort": { - SchemaProps: spec.SchemaProps{ - Description: "Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "containerPort": { - SchemaProps: spec.SchemaProps{ - Description: "Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "protocol": { - SchemaProps: spec.SchemaProps{ - Description: "Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \"TCP\".", - Type: []string{"string"}, - Format: "", - }, - }, - "hostIP": { - SchemaProps: spec.SchemaProps{ - Description: "What host IP to bind the external port to.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"containerPort"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_ContainerState(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "waiting": { - SchemaProps: spec.SchemaProps{ - Description: "Details about a waiting container", - Ref: ref("k8s.io/api/core/v1.ContainerStateWaiting"), - }, - }, - "running": { - SchemaProps: spec.SchemaProps{ - Description: "Details about a running container", - Ref: ref("k8s.io/api/core/v1.ContainerStateRunning"), - }, - }, - "terminated": { - SchemaProps: spec.SchemaProps{ - Description: "Details about a terminated container", - Ref: ref("k8s.io/api/core/v1.ContainerStateTerminated"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ContainerStateRunning", "k8s.io/api/core/v1.ContainerStateTerminated", "k8s.io/api/core/v1.ContainerStateWaiting"}, - } -} - -func schema_k8sio_api_core_v1_ContainerStateRunning(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ContainerStateRunning is a running state of a container.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "startedAt": { - SchemaProps: spec.SchemaProps{ - Description: "Time at which the container was last (re-)started", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_core_v1_ContainerStateTerminated(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ContainerStateTerminated is a terminated state of a container.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "exitCode": { - SchemaProps: spec.SchemaProps{ - Description: "Exit status from the last termination of the container", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "signal": { - SchemaProps: spec.SchemaProps{ - Description: "Signal from the last termination of the container", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "(brief) reason from the last termination of the container", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "Message regarding the last termination of the container", - Type: []string{"string"}, - Format: "", - }, - }, - "startedAt": { - SchemaProps: spec.SchemaProps{ - Description: "Time at which previous execution of the container started", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "finishedAt": { - SchemaProps: spec.SchemaProps{ - Description: "Time at which the container last terminated", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "containerID": { - SchemaProps: spec.SchemaProps{ - Description: "Container's ID in the format 'docker://'", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"exitCode"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_core_v1_ContainerStateWaiting(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ContainerStateWaiting is a waiting state of a container.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "(brief) reason the container is not yet running.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "Message regarding why the container is not yet running.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_ContainerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ContainerStatus contains details for the current status of this container.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.", - Type: []string{"string"}, - Format: "", - }, - }, - "state": { - SchemaProps: spec.SchemaProps{ - Description: "Details about the container's current condition.", - Ref: ref("k8s.io/api/core/v1.ContainerState"), - }, - }, - "lastState": { - SchemaProps: spec.SchemaProps{ - Description: "Details about the container's last termination condition.", - Ref: ref("k8s.io/api/core/v1.ContainerState"), - }, - }, - "ready": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies whether the container has passed its readiness probe.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "restartCount": { - SchemaProps: spec.SchemaProps{ - Description: "The number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed. Note that this is calculated from dead containers. But those containers are subject to garbage collection. This value will get capped at 5 by GC.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "image": { - SchemaProps: spec.SchemaProps{ - Description: "The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images", - Type: []string{"string"}, - Format: "", - }, - }, - "imageID": { - SchemaProps: spec.SchemaProps{ - Description: "ImageID of the container's image.", - Type: []string{"string"}, - Format: "", - }, - }, - "containerID": { - SchemaProps: spec.SchemaProps{ - Description: "Container's ID in the format 'docker://'.", - Type: []string{"string"}, - Format: "", - }, - }, - "started": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies whether the container has passed its startup probe. Initialized as false, becomes true after startupProbe is considered successful. Resets to false when the container is restarted, or if kubelet loses state temporarily. Is always true when no startupProbe is defined.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"name", "ready", "restartCount", "image", "imageID"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ContainerState"}, - } -} - -func schema_k8sio_api_core_v1_DaemonEndpoint(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DaemonEndpoint contains information about a single Daemon endpoint.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "Port": { - SchemaProps: spec.SchemaProps{ - Description: "Port number of the given endpoint.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"Port"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_DownwardAPIProjection(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of DownwardAPIVolume file", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.DownwardAPIVolumeFile"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.DownwardAPIVolumeFile"}, - } -} - -func schema_k8sio_api_core_v1_DownwardAPIVolumeFile(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DownwardAPIVolumeFile represents information to create the file containing the pod field", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "path": { - SchemaProps: spec.SchemaProps{ - Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - Type: []string{"string"}, - Format: "", - }, - }, - "fieldRef": { - SchemaProps: spec.SchemaProps{ - Description: "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.", - Ref: ref("k8s.io/api/core/v1.ObjectFieldSelector"), - }, - }, - "resourceFieldRef": { - SchemaProps: spec.SchemaProps{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - Ref: ref("k8s.io/api/core/v1.ResourceFieldSelector"), - }, - }, - "mode": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"path"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ObjectFieldSelector", "k8s.io/api/core/v1.ResourceFieldSelector"}, - } -} - -func schema_k8sio_api_core_v1_DownwardAPIVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of downward API volume file", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.DownwardAPIVolumeFile"), - }, - }, - }, - }, - }, - "defaultMode": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.DownwardAPIVolumeFile"}, - } -} - -func schema_k8sio_api_core_v1_EmptyDirVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "medium": { - SchemaProps: spec.SchemaProps{ - Description: "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Type: []string{"string"}, - Format: "", - }, - }, - "sizeLimit": { - SchemaProps: spec.SchemaProps{ - Description: "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_core_v1_EndpointAddress(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EndpointAddress is a tuple that describes single IP address.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ip": { - SchemaProps: spec.SchemaProps{ - Description: "The IP of this endpoint. May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16), or link-local multicast ((224.0.0.0/24). IPv6 is also accepted but not fully supported on all platforms. Also, certain kubernetes components, like kube-proxy, are not IPv6 ready.", - Type: []string{"string"}, - Format: "", - }, - }, - "hostname": { - SchemaProps: spec.SchemaProps{ - Description: "The Hostname of this endpoint", - Type: []string{"string"}, - Format: "", - }, - }, - "nodeName": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.", - Type: []string{"string"}, - Format: "", - }, - }, - "targetRef": { - SchemaProps: spec.SchemaProps{ - Description: "Reference to object providing the endpoint.", - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - }, - Required: []string{"ip"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ObjectReference"}, - } -} - -func schema_k8sio_api_core_v1_EndpointPort(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EndpointPort is a tuple that describes a single port.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "The name of this port. This must match the 'name' field in the corresponding ServicePort. Must be a DNS_LABEL. Optional only if one port is defined.", - Type: []string{"string"}, - Format: "", - }, - }, - "port": { - SchemaProps: spec.SchemaProps{ - Description: "The port number of the endpoint.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "protocol": { - SchemaProps: spec.SchemaProps{ - Description: "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", - Type: []string{"string"}, - Format: "", - }, - }, - "appProtocol": { - SchemaProps: spec.SchemaProps{ - Description: "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol. This is a beta field that is guarded by the ServiceAppProtocol feature gate and enabled by default.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"port"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_EndpointSubset(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n }\nThe resulting set of endpoints can be viewed as:\n a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n b: [ 10.10.1.1:309, 10.10.2.2:309 ]", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "addresses": { - SchemaProps: spec.SchemaProps{ - Description: "IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.EndpointAddress"), - }, - }, - }, - }, - }, - "notReadyAddresses": { - SchemaProps: spec.SchemaProps{ - Description: "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.EndpointAddress"), - }, - }, - }, - }, - }, - "ports": { - SchemaProps: spec.SchemaProps{ - Description: "Port numbers available on the related IP addresses.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.EndpointPort"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.EndpointAddress", "k8s.io/api/core/v1.EndpointPort"}, - } -} - -func schema_k8sio_api_core_v1_Endpoints(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Endpoints is a collection of endpoints that implement the actual service. Example:\n Name: \"mysvc\",\n Subsets: [\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n },\n {\n Addresses: [{\"ip\": \"10.10.3.3\"}],\n Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n },\n ]", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "subsets": { - SchemaProps: spec.SchemaProps{ - Description: "The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.EndpointSubset"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.EndpointSubset", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_EndpointsList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EndpointsList is a list of endpoints.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of endpoints.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.Endpoints"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.Endpoints", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_core_v1_EnvFromSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EnvFromSource represents the source of a set of ConfigMaps", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "prefix": { - SchemaProps: spec.SchemaProps{ - Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - Type: []string{"string"}, - Format: "", - }, - }, - "configMapRef": { - SchemaProps: spec.SchemaProps{ - Description: "The ConfigMap to select from", - Ref: ref("k8s.io/api/core/v1.ConfigMapEnvSource"), - }, - }, - "secretRef": { - SchemaProps: spec.SchemaProps{ - Description: "The Secret to select from", - Ref: ref("k8s.io/api/core/v1.SecretEnvSource"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ConfigMapEnvSource", "k8s.io/api/core/v1.SecretEnvSource"}, - } -} - -func schema_k8sio_api_core_v1_EnvVar(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EnvVar represents an environment variable present in a Container.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the environment variable. Must be a C_IDENTIFIER.", - Type: []string{"string"}, - Format: "", - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Description: "Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\".", - Type: []string{"string"}, - Format: "", - }, - }, - "valueFrom": { - SchemaProps: spec.SchemaProps{ - Description: "Source for the environment variable's value. Cannot be used if value is not empty.", - Ref: ref("k8s.io/api/core/v1.EnvVarSource"), - }, - }, - }, - Required: []string{"name"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.EnvVarSource"}, - } -} - -func schema_k8sio_api_core_v1_EnvVarSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EnvVarSource represents a source for the value of an EnvVar.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "fieldRef": { - SchemaProps: spec.SchemaProps{ - Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", - Ref: ref("k8s.io/api/core/v1.ObjectFieldSelector"), - }, - }, - "resourceFieldRef": { - SchemaProps: spec.SchemaProps{ - Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - Ref: ref("k8s.io/api/core/v1.ResourceFieldSelector"), - }, - }, - "configMapKeyRef": { - SchemaProps: spec.SchemaProps{ - Description: "Selects a key of a ConfigMap.", - Ref: ref("k8s.io/api/core/v1.ConfigMapKeySelector"), - }, - }, - "secretKeyRef": { - SchemaProps: spec.SchemaProps{ - Description: "Selects a key of a secret in the pod's namespace", - Ref: ref("k8s.io/api/core/v1.SecretKeySelector"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ConfigMapKeySelector", "k8s.io/api/core/v1.ObjectFieldSelector", "k8s.io/api/core/v1.ResourceFieldSelector", "k8s.io/api/core/v1.SecretKeySelector"}, - } -} - -func schema_k8sio_api_core_v1_EphemeralContainer(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "An EphemeralContainer is a container that may be added temporarily to an existing pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a pod is removed or restarted. If an ephemeral container causes a pod to exceed its resource allocation, the pod may be evicted. Ephemeral containers may not be added by directly updating the pod spec. They must be added via the pod's ephemeralcontainers subresource, and they will appear in the pod spec once added. This is an alpha feature enabled by the EphemeralContainers feature flag.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.", - Type: []string{"string"}, - Format: "", - }, - }, - "image": { - SchemaProps: spec.SchemaProps{ - Description: "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images", - Type: []string{"string"}, - Format: "", - }, - }, - "command": { - SchemaProps: spec.SchemaProps{ - Description: "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "args": { - SchemaProps: spec.SchemaProps{ - Description: "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "workingDir": { - SchemaProps: spec.SchemaProps{ - Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", - Type: []string{"string"}, - Format: "", - }, - }, - "ports": { - SchemaProps: spec.SchemaProps{ - Description: "Ports are not allowed for ephemeral containers.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ContainerPort"), - }, - }, - }, - }, - }, - "envFrom": { - SchemaProps: spec.SchemaProps{ - Description: "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.EnvFromSource"), - }, - }, - }, - }, - }, - "env": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "List of environment variables to set in the container. Cannot be updated.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.EnvVar"), - }, - }, - }, - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.", - Ref: ref("k8s.io/api/core/v1.ResourceRequirements"), - }, - }, - "volumeMounts": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "mountPath", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.VolumeMount"), - }, - }, - }, - }, - }, - "volumeDevices": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "devicePath", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "volumeDevices is the list of block devices to be used by the container.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.VolumeDevice"), - }, - }, - }, - }, - }, - "livenessProbe": { - SchemaProps: spec.SchemaProps{ - Description: "Probes are not allowed for ephemeral containers.", - Ref: ref("k8s.io/api/core/v1.Probe"), - }, - }, - "readinessProbe": { - SchemaProps: spec.SchemaProps{ - Description: "Probes are not allowed for ephemeral containers.", - Ref: ref("k8s.io/api/core/v1.Probe"), - }, - }, - "startupProbe": { - SchemaProps: spec.SchemaProps{ - Description: "Probes are not allowed for ephemeral containers.", - Ref: ref("k8s.io/api/core/v1.Probe"), - }, - }, - "lifecycle": { - SchemaProps: spec.SchemaProps{ - Description: "Lifecycle is not allowed for ephemeral containers.", - Ref: ref("k8s.io/api/core/v1.Lifecycle"), - }, - }, - "terminationMessagePath": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", - Type: []string{"string"}, - Format: "", - }, - }, - "terminationMessagePolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", - Type: []string{"string"}, - Format: "", - }, - }, - "imagePullPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", - Type: []string{"string"}, - Format: "", - }, - }, - "securityContext": { - SchemaProps: spec.SchemaProps{ - Description: "SecurityContext is not allowed for ephemeral containers.", - Ref: ref("k8s.io/api/core/v1.SecurityContext"), - }, - }, - "stdin": { - SchemaProps: spec.SchemaProps{ - Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "stdinOnce": { - SchemaProps: spec.SchemaProps{ - Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", - Type: []string{"boolean"}, - Format: "", - }, - }, - "tty": { - SchemaProps: spec.SchemaProps{ - Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "targetContainerName": { - SchemaProps: spec.SchemaProps{ - Description: "If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container is run in whatever namespaces are shared for the pod. Note that the container runtime must support this feature.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"name"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"}, - } -} - -func schema_k8sio_api_core_v1_EphemeralContainerCommon(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EphemeralContainerCommon is a copy of all fields in Container to be inlined in EphemeralContainer. This separate type allows easy conversion from EphemeralContainer to Container and allows separate documentation for the fields of EphemeralContainer. When a new field is added to Container it must be added here as well.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.", - Type: []string{"string"}, - Format: "", - }, - }, - "image": { - SchemaProps: spec.SchemaProps{ - Description: "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images", - Type: []string{"string"}, - Format: "", - }, - }, - "command": { - SchemaProps: spec.SchemaProps{ - Description: "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "args": { - SchemaProps: spec.SchemaProps{ - Description: "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "workingDir": { - SchemaProps: spec.SchemaProps{ - Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", - Type: []string{"string"}, - Format: "", - }, - }, - "ports": { - SchemaProps: spec.SchemaProps{ - Description: "Ports are not allowed for ephemeral containers.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ContainerPort"), - }, - }, - }, - }, - }, - "envFrom": { - SchemaProps: spec.SchemaProps{ - Description: "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.EnvFromSource"), - }, - }, - }, - }, - }, - "env": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "List of environment variables to set in the container. Cannot be updated.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.EnvVar"), - }, - }, - }, - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.", - Ref: ref("k8s.io/api/core/v1.ResourceRequirements"), - }, - }, - "volumeMounts": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "mountPath", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.VolumeMount"), - }, - }, - }, - }, - }, - "volumeDevices": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "devicePath", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "volumeDevices is the list of block devices to be used by the container.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.VolumeDevice"), - }, - }, - }, - }, - }, - "livenessProbe": { - SchemaProps: spec.SchemaProps{ - Description: "Probes are not allowed for ephemeral containers.", - Ref: ref("k8s.io/api/core/v1.Probe"), - }, - }, - "readinessProbe": { - SchemaProps: spec.SchemaProps{ - Description: "Probes are not allowed for ephemeral containers.", - Ref: ref("k8s.io/api/core/v1.Probe"), - }, - }, - "startupProbe": { - SchemaProps: spec.SchemaProps{ - Description: "Probes are not allowed for ephemeral containers.", - Ref: ref("k8s.io/api/core/v1.Probe"), - }, - }, - "lifecycle": { - SchemaProps: spec.SchemaProps{ - Description: "Lifecycle is not allowed for ephemeral containers.", - Ref: ref("k8s.io/api/core/v1.Lifecycle"), - }, - }, - "terminationMessagePath": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", - Type: []string{"string"}, - Format: "", - }, - }, - "terminationMessagePolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", - Type: []string{"string"}, - Format: "", - }, - }, - "imagePullPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", - Type: []string{"string"}, - Format: "", - }, - }, - "securityContext": { - SchemaProps: spec.SchemaProps{ - Description: "SecurityContext is not allowed for ephemeral containers.", - Ref: ref("k8s.io/api/core/v1.SecurityContext"), - }, - }, - "stdin": { - SchemaProps: spec.SchemaProps{ - Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "stdinOnce": { - SchemaProps: spec.SchemaProps{ - Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", - Type: []string{"boolean"}, - Format: "", - }, - }, - "tty": { - SchemaProps: spec.SchemaProps{ - Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"name"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"}, - } -} - -func schema_k8sio_api_core_v1_EphemeralContainers(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "A list of ephemeral containers used with the Pod ephemeralcontainers subresource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "ephemeralContainers": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "A list of ephemeral containers associated with this pod. New ephemeral containers may be appended to this list, but existing ephemeral containers may not be removed or modified.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.EphemeralContainer"), - }, - }, - }, - }, - }, - }, - Required: []string{"ephemeralContainers"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.EphemeralContainer", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_EphemeralVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents an ephemeral volume that is handled by a normal storage driver.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "volumeClaimTemplate": { - SchemaProps: spec.SchemaProps{ - Description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `-` where `` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\n\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\n\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\n\nRequired, must not be nil.", - Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimTemplate"), - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies a read-only configuration for the volume. Defaults to false (read/write).", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PersistentVolumeClaimTemplate"}, - } -} - -func schema_k8sio_api_core_v1_Event(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Event is a report of an event somewhere in the cluster.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "involvedObject": { - SchemaProps: spec.SchemaProps{ - Description: "The object that this event is about.", - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "This should be a short, machine understandable string that gives the reason for the transition into the object's current status.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human-readable description of the status of this operation.", - Type: []string{"string"}, - Format: "", - }, - }, - "source": { - SchemaProps: spec.SchemaProps{ - Description: "The component reporting this event. Should be a short machine understandable string.", - Ref: ref("k8s.io/api/core/v1.EventSource"), - }, - }, - "firstTimestamp": { - SchemaProps: spec.SchemaProps{ - Description: "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "lastTimestamp": { - SchemaProps: spec.SchemaProps{ - Description: "The time at which the most recent occurrence of this event was recorded.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "count": { - SchemaProps: spec.SchemaProps{ - Description: "The number of times this event has occurred.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of this event (Normal, Warning), new types could be added in the future", - Type: []string{"string"}, - Format: "", - }, - }, - "eventTime": { - SchemaProps: spec.SchemaProps{ - Description: "Time when this Event was first observed.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"), - }, - }, - "series": { - SchemaProps: spec.SchemaProps{ - Description: "Data about the Event series this event represents or nil if it's a singleton Event.", - Ref: ref("k8s.io/api/core/v1.EventSeries"), - }, - }, - "action": { - SchemaProps: spec.SchemaProps{ - Description: "What action was taken/failed regarding to the Regarding object.", - Type: []string{"string"}, - Format: "", - }, - }, - "related": { - SchemaProps: spec.SchemaProps{ - Description: "Optional secondary object for more complex actions.", - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - "reportingComponent": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.", - Type: []string{"string"}, - Format: "", - }, - }, - "reportingInstance": { - SchemaProps: spec.SchemaProps{ - Description: "ID of the controller instance, e.g. `kubelet-xyzf`.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"metadata", "involvedObject"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.EventSeries", "k8s.io/api/core/v1.EventSource", "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_core_v1_EventList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EventList is a list of events.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of events", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.Event"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.Event", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_core_v1_EventSeries(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "count": { - SchemaProps: spec.SchemaProps{ - Description: "Number of occurrences in this series up to the last heartbeat time", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "lastObservedTime": { - SchemaProps: spec.SchemaProps{ - Description: "Time of the last occurrence observed", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"}, - } -} - -func schema_k8sio_api_core_v1_EventSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EventSource contains information for an event.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "component": { - SchemaProps: spec.SchemaProps{ - Description: "Component from which the event is generated.", - Type: []string{"string"}, - Format: "", - }, - }, - "host": { - SchemaProps: spec.SchemaProps{ - Description: "Node name on which the event is generated.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_ExecAction(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExecAction describes a \"run in container\" action.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "command": { - SchemaProps: spec.SchemaProps{ - Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_FCVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "targetWWNs": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: FC target worldwide names (WWNs)", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "lun": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: FC target lun number", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "wwids": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_FlexPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "driver": { - SchemaProps: spec.SchemaProps{ - Description: "Driver is the name of the driver to use for this volume.", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.", - Type: []string{"string"}, - Format: "", - }, - }, - "secretRef": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - Ref: ref("k8s.io/api/core/v1.SecretReference"), - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "options": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: Extra command options if any.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"driver"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.SecretReference"}, - } -} - -func schema_k8sio_api_core_v1_FlexVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "driver": { - SchemaProps: spec.SchemaProps{ - Description: "Driver is the name of the driver to use for this volume.", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.", - Type: []string{"string"}, - Format: "", - }, - }, - "secretRef": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "options": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: Extra command options if any.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"driver"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.LocalObjectReference"}, - } -} - -func schema_k8sio_api_core_v1_FlockerVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "datasetName": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated", - Type: []string{"string"}, - Format: "", - }, - }, - "datasetUUID": { - SchemaProps: spec.SchemaProps{ - Description: "UUID of the dataset. This is unique identifier of a Flocker dataset", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_GCEPersistentDiskVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "pdName": { - SchemaProps: spec.SchemaProps{ - Description: "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Type: []string{"string"}, - Format: "", - }, - }, - "partition": { - SchemaProps: spec.SchemaProps{ - Description: "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"pdName"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_GitRepoVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "repository": { - SchemaProps: spec.SchemaProps{ - Description: "Repository URL", - Type: []string{"string"}, - Format: "", - }, - }, - "revision": { - SchemaProps: spec.SchemaProps{ - Description: "Commit hash for the specified revision.", - Type: []string{"string"}, - Format: "", - }, - }, - "directory": { - SchemaProps: spec.SchemaProps{ - Description: "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"repository"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_GlusterfsPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "endpoints": { - SchemaProps: spec.SchemaProps{ - Description: "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Type: []string{"string"}, - Format: "", - }, - }, - "path": { - SchemaProps: spec.SchemaProps{ - Description: "Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Type: []string{"boolean"}, - Format: "", - }, - }, - "endpointsNamespace": { - SchemaProps: spec.SchemaProps{ - Description: "EndpointsNamespace is the namespace that contains Glusterfs endpoint. If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"endpoints", "path"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_GlusterfsVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "endpoints": { - SchemaProps: spec.SchemaProps{ - Description: "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Type: []string{"string"}, - Format: "", - }, - }, - "path": { - SchemaProps: spec.SchemaProps{ - Description: "Path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"endpoints", "path"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_HTTPGetAction(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HTTPGetAction describes an action based on HTTP Get requests.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "path": { - SchemaProps: spec.SchemaProps{ - Description: "Path to access on the HTTP server.", - Type: []string{"string"}, - Format: "", - }, - }, - "port": { - SchemaProps: spec.SchemaProps{ - Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - "host": { - SchemaProps: spec.SchemaProps{ - Description: "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.", - Type: []string{"string"}, - Format: "", - }, - }, - "scheme": { - SchemaProps: spec.SchemaProps{ - Description: "Scheme to use for connecting to the host. Defaults to HTTP.", - Type: []string{"string"}, - Format: "", - }, - }, - "httpHeaders": { - SchemaProps: spec.SchemaProps{ - Description: "Custom headers to set in the request. HTTP allows repeated headers.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.HTTPHeader"), - }, - }, - }, - }, - }, - }, - Required: []string{"port"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.HTTPHeader", "k8s.io/apimachinery/pkg/util/intstr.IntOrString"}, - } -} - -func schema_k8sio_api_core_v1_HTTPHeader(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HTTPHeader describes a custom header to be used in HTTP probes", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "The header field name", - Type: []string{"string"}, - Format: "", - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Description: "The header field value", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"name", "value"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_Handler(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Handler defines a specific action that should be taken", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "exec": { - SchemaProps: spec.SchemaProps{ - Description: "One and only one of the following should be specified. Exec specifies the action to take.", - Ref: ref("k8s.io/api/core/v1.ExecAction"), - }, - }, - "httpGet": { - SchemaProps: spec.SchemaProps{ - Description: "HTTPGet specifies the http request to perform.", - Ref: ref("k8s.io/api/core/v1.HTTPGetAction"), - }, - }, - "tcpSocket": { - SchemaProps: spec.SchemaProps{ - Description: "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported", - Ref: ref("k8s.io/api/core/v1.TCPSocketAction"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ExecAction", "k8s.io/api/core/v1.HTTPGetAction", "k8s.io/api/core/v1.TCPSocketAction"}, - } -} - -func schema_k8sio_api_core_v1_HostAlias(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ip": { - SchemaProps: spec.SchemaProps{ - Description: "IP address of the host file entry.", - Type: []string{"string"}, - Format: "", - }, - }, - "hostnames": { - SchemaProps: spec.SchemaProps{ - Description: "Hostnames for the above IP address.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_HostPathVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "path": { - SchemaProps: spec.SchemaProps{ - Description: "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Type: []string{"string"}, - Format: "", - }, - }, - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"path"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_ISCSIPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "targetPortal": { - SchemaProps: spec.SchemaProps{ - Description: "iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - Type: []string{"string"}, - Format: "", - }, - }, - "iqn": { - SchemaProps: spec.SchemaProps{ - Description: "Target iSCSI Qualified Name.", - Type: []string{"string"}, - Format: "", - }, - }, - "lun": { - SchemaProps: spec.SchemaProps{ - Description: "iSCSI Target Lun number.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "iscsiInterface": { - SchemaProps: spec.SchemaProps{ - Description: "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "portals": { - SchemaProps: spec.SchemaProps{ - Description: "iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "chapAuthDiscovery": { - SchemaProps: spec.SchemaProps{ - Description: "whether support iSCSI Discovery CHAP authentication", - Type: []string{"boolean"}, - Format: "", - }, - }, - "chapAuthSession": { - SchemaProps: spec.SchemaProps{ - Description: "whether support iSCSI Session CHAP authentication", - Type: []string{"boolean"}, - Format: "", - }, - }, - "secretRef": { - SchemaProps: spec.SchemaProps{ - Description: "CHAP Secret for iSCSI target and initiator authentication", - Ref: ref("k8s.io/api/core/v1.SecretReference"), - }, - }, - "initiatorName": { - SchemaProps: spec.SchemaProps{ - Description: "Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"targetPortal", "iqn", "lun"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.SecretReference"}, - } -} - -func schema_k8sio_api_core_v1_ISCSIVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "targetPortal": { - SchemaProps: spec.SchemaProps{ - Description: "iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - Type: []string{"string"}, - Format: "", - }, - }, - "iqn": { - SchemaProps: spec.SchemaProps{ - Description: "Target iSCSI Qualified Name.", - Type: []string{"string"}, - Format: "", - }, - }, - "lun": { - SchemaProps: spec.SchemaProps{ - Description: "iSCSI Target Lun number.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "iscsiInterface": { - SchemaProps: spec.SchemaProps{ - Description: "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "portals": { - SchemaProps: spec.SchemaProps{ - Description: "iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "chapAuthDiscovery": { - SchemaProps: spec.SchemaProps{ - Description: "whether support iSCSI Discovery CHAP authentication", - Type: []string{"boolean"}, - Format: "", - }, - }, - "chapAuthSession": { - SchemaProps: spec.SchemaProps{ - Description: "whether support iSCSI Session CHAP authentication", - Type: []string{"boolean"}, - Format: "", - }, - }, - "secretRef": { - SchemaProps: spec.SchemaProps{ - Description: "CHAP Secret for iSCSI target and initiator authentication", - Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), - }, - }, - "initiatorName": { - SchemaProps: spec.SchemaProps{ - Description: "Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"targetPortal", "iqn", "lun"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.LocalObjectReference"}, - } -} - -func schema_k8sio_api_core_v1_KeyToPath(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Maps a string key to a path within a volume.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "key": { - SchemaProps: spec.SchemaProps{ - Description: "The key to project.", - Type: []string{"string"}, - Format: "", - }, - }, - "path": { - SchemaProps: spec.SchemaProps{ - Description: "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - Type: []string{"string"}, - Format: "", - }, - }, - "mode": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"key", "path"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_Lifecycle(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "postStart": { - SchemaProps: spec.SchemaProps{ - Description: "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks", - Ref: ref("k8s.io/api/core/v1.Handler"), - }, - }, - "preStop": { - SchemaProps: spec.SchemaProps{ - Description: "PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The reason for termination is passed to the handler. The Pod's termination grace period countdown begins before the PreStop hooked is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks", - Ref: ref("k8s.io/api/core/v1.Handler"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.Handler"}, - } -} - -func schema_k8sio_api_core_v1_LimitRange(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LimitRange sets resource usage limits for each kind of resource in a Namespace.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/core/v1.LimitRangeSpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.LimitRangeSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_LimitRangeItem(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LimitRangeItem defines a min/max usage limit for any resource that matches on kind.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of resource that this limit applies to.", - Type: []string{"string"}, - Format: "", - }, - }, - "max": { - SchemaProps: spec.SchemaProps{ - Description: "Max usage constraints on this kind by resource name.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "min": { - SchemaProps: spec.SchemaProps{ - Description: "Min usage constraints on this kind by resource name.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "default": { - SchemaProps: spec.SchemaProps{ - Description: "Default resource requirement limit value by resource name if resource limit is omitted.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "defaultRequest": { - SchemaProps: spec.SchemaProps{ - Description: "DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "maxLimitRequestRatio": { - SchemaProps: spec.SchemaProps{ - Description: "MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - }, - Required: []string{"type"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_core_v1_LimitRangeList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LimitRangeList is a list of LimitRange items.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.LimitRange"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.LimitRange", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_core_v1_LimitRangeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LimitRangeSpec defines a min/max usage limit for resources that match on kind.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "limits": { - SchemaProps: spec.SchemaProps{ - Description: "Limits is the list of LimitRangeItem objects that are enforced.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.LimitRangeItem"), - }, - }, - }, - }, - }, - }, - Required: []string{"limits"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.LimitRangeItem"}, - } -} - -func schema_k8sio_api_core_v1_List(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "List holds a list of objects, which may not be known by the server.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of objects", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/runtime.RawExtension"}, - } -} - -func schema_k8sio_api_core_v1_LoadBalancerIngress(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ip": { - SchemaProps: spec.SchemaProps{ - Description: "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)", - Type: []string{"string"}, - Format: "", - }, - }, - "hostname": { - SchemaProps: spec.SchemaProps{ - Description: "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_LoadBalancerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LoadBalancerStatus represents the status of a load-balancer.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ingress": { - SchemaProps: spec.SchemaProps{ - Description: "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.LoadBalancerIngress"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.LoadBalancerIngress"}, - } -} - -func schema_k8sio_api_core_v1_LocalObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_LocalVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Local represents directly-attached storage with node affinity (Beta feature)", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "path": { - SchemaProps: spec.SchemaProps{ - Description: "The full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default value is to auto-select a fileystem if unspecified.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"path"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_NFSVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "server": { - SchemaProps: spec.SchemaProps{ - Description: "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Type: []string{"string"}, - Format: "", - }, - }, - "path": { - SchemaProps: spec.SchemaProps{ - Description: "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"server", "path"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_Namespace(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Namespace provides a scope for Names. Use of multiple namespaces is optional.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/core/v1.NamespaceSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/core/v1.NamespaceStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.NamespaceSpec", "k8s.io/api/core/v1.NamespaceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_NamespaceCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NamespaceCondition contains details about state of namespace.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of namespace controller condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_core_v1_NamespaceList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NamespaceList is a list of Namespaces.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.Namespace"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.Namespace", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_core_v1_NamespaceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NamespaceSpec describes the attributes on a Namespace.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "finalizers": { - SchemaProps: spec.SchemaProps{ - Description: "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_NamespaceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NamespaceStatus is information about the current status of a Namespace.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "phase": { - SchemaProps: spec.SchemaProps{ - Description: "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", - Type: []string{"string"}, - Format: "", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Represents the latest available observations of a namespace's current state.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.NamespaceCondition"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.NamespaceCondition"}, - } -} - -func schema_k8sio_api_core_v1_Node(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/core/v1.NodeSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/core/v1.NodeStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.NodeSpec", "k8s.io/api/core/v1.NodeStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_NodeAddress(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeAddress contains information for the node's address.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Node address type, one of Hostname, ExternalIP or InternalIP.", - Type: []string{"string"}, - Format: "", - }, - }, - "address": { - SchemaProps: spec.SchemaProps{ - Description: "The node address.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "address"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_NodeAffinity(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Node affinity is a group of node affinity scheduling rules.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "requiredDuringSchedulingIgnoredDuringExecution": { - SchemaProps: spec.SchemaProps{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - Ref: ref("k8s.io/api/core/v1.NodeSelector"), - }, - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - SchemaProps: spec.SchemaProps{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.PreferredSchedulingTerm"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.NodeSelector", "k8s.io/api/core/v1.PreferredSchedulingTerm"}, - } -} - -func schema_k8sio_api_core_v1_NodeCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeCondition contains condition information for a node.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of node condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastHeartbeatTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time we got an update on a given condition.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition transit from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "(brief) reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "Human readable message indicating details about last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_core_v1_NodeConfigSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "configMap": { - SchemaProps: spec.SchemaProps{ - Description: "ConfigMap is a reference to a Node's ConfigMap", - Ref: ref("k8s.io/api/core/v1.ConfigMapNodeConfigSource"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ConfigMapNodeConfigSource"}, - } -} - -func schema_k8sio_api_core_v1_NodeConfigStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "assigned": { - SchemaProps: spec.SchemaProps{ - Description: "Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned.", - Ref: ref("k8s.io/api/core/v1.NodeConfigSource"), - }, - }, - "active": { - SchemaProps: spec.SchemaProps{ - Description: "Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error.", - Ref: ref("k8s.io/api/core/v1.NodeConfigSource"), - }, - }, - "lastKnownGood": { - SchemaProps: spec.SchemaProps{ - Description: "LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future.", - Ref: ref("k8s.io/api/core/v1.NodeConfigSource"), - }, - }, - "error": { - SchemaProps: spec.SchemaProps{ - Description: "Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.NodeConfigSource"}, - } -} - -func schema_k8sio_api_core_v1_NodeDaemonEndpoints(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeDaemonEndpoints lists ports opened by daemons running on the Node.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kubeletEndpoint": { - SchemaProps: spec.SchemaProps{ - Description: "Endpoint on which Kubelet is listening.", - Ref: ref("k8s.io/api/core/v1.DaemonEndpoint"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.DaemonEndpoint"}, - } -} - -func schema_k8sio_api_core_v1_NodeList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeList is the whole list of all Nodes which have been registered with master.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of nodes", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.Node"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.Node", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_core_v1_NodeProxyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeProxyOptions is the query options to a Node's proxy call.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "path": { - SchemaProps: spec.SchemaProps{ - Description: "Path is the URL path to use for the current proxy request to node.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_NodeResources(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeResources is an object for conveying resource information about a node. see https://kubernetes.io/docs/concepts/architecture/nodes/#capacity for more details.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "Capacity": { - SchemaProps: spec.SchemaProps{ - Description: "Capacity represents the available resources of a node", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - }, - Required: []string{"Capacity"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_core_v1_NodeSelector(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "nodeSelectorTerms": { - SchemaProps: spec.SchemaProps{ - Description: "Required. A list of node selector terms. The terms are ORed.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.NodeSelectorTerm"), - }, - }, - }, - }, - }, - }, - Required: []string{"nodeSelectorTerms"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.NodeSelectorTerm"}, - } -} - -func schema_k8sio_api_core_v1_NodeSelectorRequirement(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "key": { - SchemaProps: spec.SchemaProps{ - Description: "The label key that the selector applies to.", - Type: []string{"string"}, - Format: "", - }, - }, - "operator": { - SchemaProps: spec.SchemaProps{ - Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - Type: []string{"string"}, - Format: "", - }, - }, - "values": { - SchemaProps: spec.SchemaProps{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"key", "operator"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_NodeSelectorTerm(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "matchExpressions": { - SchemaProps: spec.SchemaProps{ - Description: "A list of node selector requirements by node's labels.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.NodeSelectorRequirement"), - }, - }, - }, - }, - }, - "matchFields": { - SchemaProps: spec.SchemaProps{ - Description: "A list of node selector requirements by node's fields.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.NodeSelectorRequirement"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.NodeSelectorRequirement"}, - } -} - -func schema_k8sio_api_core_v1_NodeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeSpec describes the attributes that a node is created with.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "podCIDR": { - SchemaProps: spec.SchemaProps{ - Description: "PodCIDR represents the pod IP range assigned to the node.", - Type: []string{"string"}, - Format: "", - }, - }, - "podCIDRs": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "providerID": { - SchemaProps: spec.SchemaProps{ - Description: "ID of the node assigned by the cloud provider in the format: ://", - Type: []string{"string"}, - Format: "", - }, - }, - "unschedulable": { - SchemaProps: spec.SchemaProps{ - Description: "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration", - Type: []string{"boolean"}, - Format: "", - }, - }, - "taints": { - SchemaProps: spec.SchemaProps{ - Description: "If specified, the node's taints.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.Taint"), - }, - }, - }, - }, - }, - "configSource": { - SchemaProps: spec.SchemaProps{ - Description: "If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field", - Ref: ref("k8s.io/api/core/v1.NodeConfigSource"), - }, - }, - "externalID": { - SchemaProps: spec.SchemaProps{ - Description: "Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.NodeConfigSource", "k8s.io/api/core/v1.Taint"}, - } -} - -func schema_k8sio_api_core_v1_NodeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeStatus is information about the current status of a node.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "capacity": { - SchemaProps: spec.SchemaProps{ - Description: "Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "allocatable": { - SchemaProps: spec.SchemaProps{ - Description: "Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "phase": { - SchemaProps: spec.SchemaProps{ - Description: "NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.", - Type: []string{"string"}, - Format: "", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.NodeCondition"), - }, - }, - }, - }, - }, - "addresses": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See http://pr.k8s.io/79391 for an example.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.NodeAddress"), - }, - }, - }, - }, - }, - "daemonEndpoints": { - SchemaProps: spec.SchemaProps{ - Description: "Endpoints of daemons running on the Node.", - Ref: ref("k8s.io/api/core/v1.NodeDaemonEndpoints"), - }, - }, - "nodeInfo": { - SchemaProps: spec.SchemaProps{ - Description: "Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info", - Ref: ref("k8s.io/api/core/v1.NodeSystemInfo"), - }, - }, - "images": { - SchemaProps: spec.SchemaProps{ - Description: "List of container images on this node", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ContainerImage"), - }, - }, - }, - }, - }, - "volumesInUse": { - SchemaProps: spec.SchemaProps{ - Description: "List of attachable volumes in use (mounted) by the node.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "volumesAttached": { - SchemaProps: spec.SchemaProps{ - Description: "List of volumes that are attached to the node.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.AttachedVolume"), - }, - }, - }, - }, - }, - "config": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the config assigned to the node via the dynamic Kubelet config feature.", - Ref: ref("k8s.io/api/core/v1.NodeConfigStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.AttachedVolume", "k8s.io/api/core/v1.ContainerImage", "k8s.io/api/core/v1.NodeAddress", "k8s.io/api/core/v1.NodeCondition", "k8s.io/api/core/v1.NodeConfigStatus", "k8s.io/api/core/v1.NodeDaemonEndpoints", "k8s.io/api/core/v1.NodeSystemInfo", "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_core_v1_NodeSystemInfo(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeSystemInfo is a set of ids/uuids to uniquely identify the node.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "machineID": { - SchemaProps: spec.SchemaProps{ - Description: "MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html", - Type: []string{"string"}, - Format: "", - }, - }, - "systemUUID": { - SchemaProps: spec.SchemaProps{ - Description: "SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid", - Type: []string{"string"}, - Format: "", - }, - }, - "bootID": { - SchemaProps: spec.SchemaProps{ - Description: "Boot ID reported by the node.", - Type: []string{"string"}, - Format: "", - }, - }, - "kernelVersion": { - SchemaProps: spec.SchemaProps{ - Description: "Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).", - Type: []string{"string"}, - Format: "", - }, - }, - "osImage": { - SchemaProps: spec.SchemaProps{ - Description: "OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).", - Type: []string{"string"}, - Format: "", - }, - }, - "containerRuntimeVersion": { - SchemaProps: spec.SchemaProps{ - Description: "ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).", - Type: []string{"string"}, - Format: "", - }, - }, - "kubeletVersion": { - SchemaProps: spec.SchemaProps{ - Description: "Kubelet Version reported by the node.", - Type: []string{"string"}, - Format: "", - }, - }, - "kubeProxyVersion": { - SchemaProps: spec.SchemaProps{ - Description: "KubeProxy Version reported by the node.", - Type: []string{"string"}, - Format: "", - }, - }, - "operatingSystem": { - SchemaProps: spec.SchemaProps{ - Description: "The Operating System reported by the node", - Type: []string{"string"}, - Format: "", - }, - }, - "architecture": { - SchemaProps: spec.SchemaProps{ - Description: "The Architecture reported by the node", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"machineID", "systemUUID", "bootID", "kernelVersion", "osImage", "containerRuntimeVersion", "kubeletVersion", "kubeProxyVersion", "operatingSystem", "architecture"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_ObjectFieldSelector(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ObjectFieldSelector selects an APIVersioned field of an object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "Version of the schema the FieldPath is written in terms of, defaults to \"v1\".", - Type: []string{"string"}, - Format: "", - }, - }, - "fieldPath": { - SchemaProps: spec.SchemaProps{ - Description: "Path of the field to select in the specified API version.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"fieldPath"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_ObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ObjectReference contains enough information to let you inspect or modify the referred object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Type: []string{"string"}, - Format: "", - }, - }, - "uid": { - SchemaProps: spec.SchemaProps{ - Description: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "API version of the referent.", - Type: []string{"string"}, - Format: "", - }, - }, - "resourceVersion": { - SchemaProps: spec.SchemaProps{ - Description: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - Type: []string{"string"}, - Format: "", - }, - }, - "fieldPath": { - SchemaProps: spec.SchemaProps{ - Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_PersistentVolume(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes", - Ref: ref("k8s.io/api/core/v1.PersistentVolumeSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes", - Ref: ref("k8s.io/api/core/v1.PersistentVolumeStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PersistentVolumeSpec", "k8s.io/api/core/v1.PersistentVolumeStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_PersistentVolumeClaim(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PersistentVolumeClaim is a user's request for and claim to a persistent volume", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PersistentVolumeClaimSpec", "k8s.io/api/core/v1.PersistentVolumeClaimStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_PersistentVolumeClaimCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PersistentVolumeClaimCondition contails details about state of pvc", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "lastProbeTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time we probed the condition.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "Unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"ResizeStarted\" that means the underlying persistent volume is being resized.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "Human-readable message indicating details about last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_core_v1_PersistentVolumeClaimList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PersistentVolumeClaimList is a list of PersistentVolumeClaim items.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "A list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaim"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PersistentVolumeClaim", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_core_v1_PersistentVolumeClaimSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "accessModes": { - SchemaProps: spec.SchemaProps{ - Description: "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "A label query over volumes to consider for binding.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - Ref: ref("k8s.io/api/core/v1.ResourceRequirements"), - }, - }, - "volumeName": { - SchemaProps: spec.SchemaProps{ - Description: "VolumeName is the binding reference to the PersistentVolume backing this claim.", - Type: []string{"string"}, - Format: "", - }, - }, - "storageClassName": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - Type: []string{"string"}, - Format: "", - }, - }, - "volumeMode": { - SchemaProps: spec.SchemaProps{ - Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.", - Type: []string{"string"}, - Format: "", - }, - }, - "dataSource": { - SchemaProps: spec.SchemaProps{ - Description: "This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot - Beta) * An existing PVC (PersistentVolumeClaim) * An existing custom resource/object that implements data population (Alpha) In order to use VolumeSnapshot object types, the appropriate feature gate must be enabled (VolumeSnapshotDataSource or AnyVolumeDataSource) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the specified data source is not supported, the volume will not be created and the failure will be reported as an event. In the future, we plan to support more data source types and the behavior of the provisioner may change.", - Ref: ref("k8s.io/api/core/v1.TypedLocalObjectReference"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.TypedLocalObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_core_v1_PersistentVolumeClaimStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PersistentVolumeClaimStatus is the current status of a persistent volume claim.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "phase": { - SchemaProps: spec.SchemaProps{ - Description: "Phase represents the current phase of PersistentVolumeClaim.", - Type: []string{"string"}, - Format: "", - }, - }, - "accessModes": { - SchemaProps: spec.SchemaProps{ - Description: "AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "capacity": { - SchemaProps: spec.SchemaProps{ - Description: "Represents the actual resources of the underlying volume.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimCondition"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PersistentVolumeClaimCondition", "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_core_v1_PersistentVolumeClaimTemplate(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.", - Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimSpec"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PersistentVolumeClaimSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_PersistentVolumeClaimVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "claimName": { - SchemaProps: spec.SchemaProps{ - Description: "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Will force the ReadOnly setting in VolumeMounts. Default false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"claimName"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_PersistentVolumeList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PersistentVolumeList is a list of PersistentVolume items.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.PersistentVolume"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PersistentVolume", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_core_v1_PersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PersistentVolumeSource is similar to VolumeSource but meant for the administrator who creates PVs. Exactly one of its members must be set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "gcePersistentDisk": { - SchemaProps: spec.SchemaProps{ - Description: "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"), - }, - }, - "awsElasticBlockStore": { - SchemaProps: spec.SchemaProps{ - Description: "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"), - }, - }, - "hostPath": { - SchemaProps: spec.SchemaProps{ - Description: "HostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Ref: ref("k8s.io/api/core/v1.HostPathVolumeSource"), - }, - }, - "glusterfs": { - SchemaProps: spec.SchemaProps{ - Description: "Glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - Ref: ref("k8s.io/api/core/v1.GlusterfsPersistentVolumeSource"), - }, - }, - "nfs": { - SchemaProps: spec.SchemaProps{ - Description: "NFS represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Ref: ref("k8s.io/api/core/v1.NFSVolumeSource"), - }, - }, - "rbd": { - SchemaProps: spec.SchemaProps{ - Description: "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - Ref: ref("k8s.io/api/core/v1.RBDPersistentVolumeSource"), - }, - }, - "iscsi": { - SchemaProps: spec.SchemaProps{ - Description: "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin.", - Ref: ref("k8s.io/api/core/v1.ISCSIPersistentVolumeSource"), - }, - }, - "cinder": { - SchemaProps: spec.SchemaProps{ - Description: "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Ref: ref("k8s.io/api/core/v1.CinderPersistentVolumeSource"), - }, - }, - "cephfs": { - SchemaProps: spec.SchemaProps{ - Description: "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - Ref: ref("k8s.io/api/core/v1.CephFSPersistentVolumeSource"), - }, - }, - "fc": { - SchemaProps: spec.SchemaProps{ - Description: "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - Ref: ref("k8s.io/api/core/v1.FCVolumeSource"), - }, - }, - "flocker": { - SchemaProps: spec.SchemaProps{ - Description: "Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running", - Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"), - }, - }, - "flexVolume": { - SchemaProps: spec.SchemaProps{ - Description: "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - Ref: ref("k8s.io/api/core/v1.FlexPersistentVolumeSource"), - }, - }, - "azureFile": { - SchemaProps: spec.SchemaProps{ - Description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - Ref: ref("k8s.io/api/core/v1.AzureFilePersistentVolumeSource"), - }, - }, - "vsphereVolume": { - SchemaProps: spec.SchemaProps{ - Description: "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"), - }, - }, - "quobyte": { - SchemaProps: spec.SchemaProps{ - Description: "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"), - }, - }, - "azureDisk": { - SchemaProps: spec.SchemaProps{ - Description: "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"), - }, - }, - "photonPersistentDisk": { - SchemaProps: spec.SchemaProps{ - Description: "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"), - }, - }, - "portworxVolume": { - SchemaProps: spec.SchemaProps{ - Description: "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine", - Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"), - }, - }, - "scaleIO": { - SchemaProps: spec.SchemaProps{ - Description: "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - Ref: ref("k8s.io/api/core/v1.ScaleIOPersistentVolumeSource"), - }, - }, - "local": { - SchemaProps: spec.SchemaProps{ - Description: "Local represents directly-attached storage with node affinity", - Ref: ref("k8s.io/api/core/v1.LocalVolumeSource"), - }, - }, - "storageos": { - SchemaProps: spec.SchemaProps{ - Description: "StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md", - Ref: ref("k8s.io/api/core/v1.StorageOSPersistentVolumeSource"), - }, - }, - "csi": { - SchemaProps: spec.SchemaProps{ - Description: "CSI represents storage that is handled by an external CSI driver (Beta feature).", - Ref: ref("k8s.io/api/core/v1.CSIPersistentVolumeSource"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource", "k8s.io/api/core/v1.AzureDiskVolumeSource", "k8s.io/api/core/v1.AzureFilePersistentVolumeSource", "k8s.io/api/core/v1.CSIPersistentVolumeSource", "k8s.io/api/core/v1.CephFSPersistentVolumeSource", "k8s.io/api/core/v1.CinderPersistentVolumeSource", "k8s.io/api/core/v1.FCVolumeSource", "k8s.io/api/core/v1.FlexPersistentVolumeSource", "k8s.io/api/core/v1.FlockerVolumeSource", "k8s.io/api/core/v1.GCEPersistentDiskVolumeSource", "k8s.io/api/core/v1.GlusterfsPersistentVolumeSource", "k8s.io/api/core/v1.HostPathVolumeSource", "k8s.io/api/core/v1.ISCSIPersistentVolumeSource", "k8s.io/api/core/v1.LocalVolumeSource", "k8s.io/api/core/v1.NFSVolumeSource", "k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource", "k8s.io/api/core/v1.PortworxVolumeSource", "k8s.io/api/core/v1.QuobyteVolumeSource", "k8s.io/api/core/v1.RBDPersistentVolumeSource", "k8s.io/api/core/v1.ScaleIOPersistentVolumeSource", "k8s.io/api/core/v1.StorageOSPersistentVolumeSource", "k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"}, - } -} - -func schema_k8sio_api_core_v1_PersistentVolumeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PersistentVolumeSpec is the specification of a persistent volume.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "capacity": { - SchemaProps: spec.SchemaProps{ - Description: "A description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "gcePersistentDisk": { - SchemaProps: spec.SchemaProps{ - Description: "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"), - }, - }, - "awsElasticBlockStore": { - SchemaProps: spec.SchemaProps{ - Description: "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"), - }, - }, - "hostPath": { - SchemaProps: spec.SchemaProps{ - Description: "HostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Ref: ref("k8s.io/api/core/v1.HostPathVolumeSource"), - }, - }, - "glusterfs": { - SchemaProps: spec.SchemaProps{ - Description: "Glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - Ref: ref("k8s.io/api/core/v1.GlusterfsPersistentVolumeSource"), - }, - }, - "nfs": { - SchemaProps: spec.SchemaProps{ - Description: "NFS represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Ref: ref("k8s.io/api/core/v1.NFSVolumeSource"), - }, - }, - "rbd": { - SchemaProps: spec.SchemaProps{ - Description: "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - Ref: ref("k8s.io/api/core/v1.RBDPersistentVolumeSource"), - }, - }, - "iscsi": { - SchemaProps: spec.SchemaProps{ - Description: "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin.", - Ref: ref("k8s.io/api/core/v1.ISCSIPersistentVolumeSource"), - }, - }, - "cinder": { - SchemaProps: spec.SchemaProps{ - Description: "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Ref: ref("k8s.io/api/core/v1.CinderPersistentVolumeSource"), - }, - }, - "cephfs": { - SchemaProps: spec.SchemaProps{ - Description: "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - Ref: ref("k8s.io/api/core/v1.CephFSPersistentVolumeSource"), - }, - }, - "fc": { - SchemaProps: spec.SchemaProps{ - Description: "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - Ref: ref("k8s.io/api/core/v1.FCVolumeSource"), - }, - }, - "flocker": { - SchemaProps: spec.SchemaProps{ - Description: "Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running", - Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"), - }, - }, - "flexVolume": { - SchemaProps: spec.SchemaProps{ - Description: "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - Ref: ref("k8s.io/api/core/v1.FlexPersistentVolumeSource"), - }, - }, - "azureFile": { - SchemaProps: spec.SchemaProps{ - Description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - Ref: ref("k8s.io/api/core/v1.AzureFilePersistentVolumeSource"), - }, - }, - "vsphereVolume": { - SchemaProps: spec.SchemaProps{ - Description: "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"), - }, - }, - "quobyte": { - SchemaProps: spec.SchemaProps{ - Description: "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"), - }, - }, - "azureDisk": { - SchemaProps: spec.SchemaProps{ - Description: "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"), - }, - }, - "photonPersistentDisk": { - SchemaProps: spec.SchemaProps{ - Description: "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"), - }, - }, - "portworxVolume": { - SchemaProps: spec.SchemaProps{ - Description: "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine", - Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"), - }, - }, - "scaleIO": { - SchemaProps: spec.SchemaProps{ - Description: "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - Ref: ref("k8s.io/api/core/v1.ScaleIOPersistentVolumeSource"), - }, - }, - "local": { - SchemaProps: spec.SchemaProps{ - Description: "Local represents directly-attached storage with node affinity", - Ref: ref("k8s.io/api/core/v1.LocalVolumeSource"), - }, - }, - "storageos": { - SchemaProps: spec.SchemaProps{ - Description: "StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md", - Ref: ref("k8s.io/api/core/v1.StorageOSPersistentVolumeSource"), - }, - }, - "csi": { - SchemaProps: spec.SchemaProps{ - Description: "CSI represents storage that is handled by an external CSI driver (Beta feature).", - Ref: ref("k8s.io/api/core/v1.CSIPersistentVolumeSource"), - }, - }, - "accessModes": { - SchemaProps: spec.SchemaProps{ - Description: "AccessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "claimRef": { - SchemaProps: spec.SchemaProps{ - Description: "ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding", - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - "persistentVolumeReclaimPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "What happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming", - Type: []string{"string"}, - Format: "", - }, - }, - "storageClassName": { - SchemaProps: spec.SchemaProps{ - Description: "Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.", - Type: []string{"string"}, - Format: "", - }, - }, - "mountOptions": { - SchemaProps: spec.SchemaProps{ - Description: "A list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "volumeMode": { - SchemaProps: spec.SchemaProps{ - Description: "volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec.", - Type: []string{"string"}, - Format: "", - }, - }, - "nodeAffinity": { - SchemaProps: spec.SchemaProps{ - Description: "NodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume.", - Ref: ref("k8s.io/api/core/v1.VolumeNodeAffinity"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource", "k8s.io/api/core/v1.AzureDiskVolumeSource", "k8s.io/api/core/v1.AzureFilePersistentVolumeSource", "k8s.io/api/core/v1.CSIPersistentVolumeSource", "k8s.io/api/core/v1.CephFSPersistentVolumeSource", "k8s.io/api/core/v1.CinderPersistentVolumeSource", "k8s.io/api/core/v1.FCVolumeSource", "k8s.io/api/core/v1.FlexPersistentVolumeSource", "k8s.io/api/core/v1.FlockerVolumeSource", "k8s.io/api/core/v1.GCEPersistentDiskVolumeSource", "k8s.io/api/core/v1.GlusterfsPersistentVolumeSource", "k8s.io/api/core/v1.HostPathVolumeSource", "k8s.io/api/core/v1.ISCSIPersistentVolumeSource", "k8s.io/api/core/v1.LocalVolumeSource", "k8s.io/api/core/v1.NFSVolumeSource", "k8s.io/api/core/v1.ObjectReference", "k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource", "k8s.io/api/core/v1.PortworxVolumeSource", "k8s.io/api/core/v1.QuobyteVolumeSource", "k8s.io/api/core/v1.RBDPersistentVolumeSource", "k8s.io/api/core/v1.ScaleIOPersistentVolumeSource", "k8s.io/api/core/v1.StorageOSPersistentVolumeSource", "k8s.io/api/core/v1.VolumeNodeAffinity", "k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource", "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_core_v1_PersistentVolumeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PersistentVolumeStatus is the current status of a persistent volume.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "phase": { - SchemaProps: spec.SchemaProps{ - Description: "Phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human-readable message indicating details about why the volume is in this state.", - Type: []string{"string"}, - Format: "", - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_PhotonPersistentDiskVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a Photon Controller persistent disk resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "pdID": { - SchemaProps: spec.SchemaProps{ - Description: "ID that identifies Photon Controller persistent disk", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"pdID"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_Pod(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/core/v1.PodSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/core/v1.PodStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PodSpec", "k8s.io/api/core/v1.PodStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_PodAffinity(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Pod affinity is a group of inter pod affinity scheduling rules.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "requiredDuringSchedulingIgnoredDuringExecution": { - SchemaProps: spec.SchemaProps{ - Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.PodAffinityTerm"), - }, - }, - }, - }, - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - SchemaProps: spec.SchemaProps{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.WeightedPodAffinityTerm"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PodAffinityTerm", "k8s.io/api/core/v1.WeightedPodAffinityTerm"}, - } -} - -func schema_k8sio_api_core_v1_PodAffinityTerm(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "labelSelector": { - SchemaProps: spec.SchemaProps{ - Description: "A label query over a set of resources, in this case pods.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "namespaces": { - SchemaProps: spec.SchemaProps{ - Description: "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "topologyKey": { - SchemaProps: spec.SchemaProps{ - Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"topologyKey"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_core_v1_PodAntiAffinity(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "requiredDuringSchedulingIgnoredDuringExecution": { - SchemaProps: spec.SchemaProps{ - Description: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.PodAffinityTerm"), - }, - }, - }, - }, - }, - "preferredDuringSchedulingIgnoredDuringExecution": { - SchemaProps: spec.SchemaProps{ - Description: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.WeightedPodAffinityTerm"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PodAffinityTerm", "k8s.io/api/core/v1.WeightedPodAffinityTerm"}, - } -} - -func schema_k8sio_api_core_v1_PodAttachOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodAttachOptions is the query options to a Pod's remote attach call.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "stdin": { - SchemaProps: spec.SchemaProps{ - Description: "Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "stdout": { - SchemaProps: spec.SchemaProps{ - Description: "Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "stderr": { - SchemaProps: spec.SchemaProps{ - Description: "Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "tty": { - SchemaProps: spec.SchemaProps{ - Description: "TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "container": { - SchemaProps: spec.SchemaProps{ - Description: "The container in which to execute the command. Defaults to only container if there is only one container in the pod.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_PodCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodCondition contains details for the current condition of this pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - Type: []string{"string"}, - Format: "", - }, - }, - "lastProbeTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time we probed the condition.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "Unique, one-word, CamelCase reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "Human-readable message indicating details about last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_core_v1_PodDNSConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "nameservers": { - SchemaProps: spec.SchemaProps{ - Description: "A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "searches": { - SchemaProps: spec.SchemaProps{ - Description: "A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "options": { - SchemaProps: spec.SchemaProps{ - Description: "A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.PodDNSConfigOption"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PodDNSConfigOption"}, - } -} - -func schema_k8sio_api_core_v1_PodDNSConfigOption(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodDNSConfigOption defines DNS resolver options of a pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Required.", - Type: []string{"string"}, - Format: "", - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_PodExecOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodExecOptions is the query options to a Pod's remote exec call.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "stdin": { - SchemaProps: spec.SchemaProps{ - Description: "Redirect the standard input stream of the pod for this call. Defaults to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "stdout": { - SchemaProps: spec.SchemaProps{ - Description: "Redirect the standard output stream of the pod for this call. Defaults to true.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "stderr": { - SchemaProps: spec.SchemaProps{ - Description: "Redirect the standard error stream of the pod for this call. Defaults to true.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "tty": { - SchemaProps: spec.SchemaProps{ - Description: "TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "container": { - SchemaProps: spec.SchemaProps{ - Description: "Container in which to execute the command. Defaults to only container if there is only one container in the pod.", - Type: []string{"string"}, - Format: "", - }, - }, - "command": { - SchemaProps: spec.SchemaProps{ - Description: "Command is the remote command to execute. argv array. Not executed within a shell.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"command"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_PodIP(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IP address information for entries in the (plural) PodIPs field. Each entry includes:\n IP: An IP address allocated to the pod. Routable at least within the cluster.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ip": { - SchemaProps: spec.SchemaProps{ - Description: "ip is an IP address (IPv4 or IPv6) assigned to the pod", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_PodList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodList is a list of Pods.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.Pod"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.Pod", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_core_v1_PodLogOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodLogOptions is the query options for a Pod's logs REST call.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "container": { - SchemaProps: spec.SchemaProps{ - Description: "The container for which to stream logs. Defaults to only container if there is one container in the pod.", - Type: []string{"string"}, - Format: "", - }, - }, - "follow": { - SchemaProps: spec.SchemaProps{ - Description: "Follow the log stream of the pod. Defaults to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "previous": { - SchemaProps: spec.SchemaProps{ - Description: "Return previous terminated container logs. Defaults to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "sinceSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "sinceTime": { - SchemaProps: spec.SchemaProps{ - Description: "An RFC3339 timestamp from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "timestamps": { - SchemaProps: spec.SchemaProps{ - Description: "If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "tailLines": { - SchemaProps: spec.SchemaProps{ - Description: "If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "limitBytes": { - SchemaProps: spec.SchemaProps{ - Description: "If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "insecureSkipTLSVerifyBackend": { - SchemaProps: spec.SchemaProps{ - Description: "insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the serving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real kubelet. If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept the actual log data coming from the real kubelet).", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_core_v1_PodPortForwardOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodPortForwardOptions is the query options to a Pod's port forward call when using WebSockets. The `port` query parameter must specify the port or ports (comma separated) to forward over. Port forwarding over SPDY does not use these options. It requires the port to be passed in the `port` header as part of request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "ports": { - SchemaProps: spec.SchemaProps{ - Description: "List of ports to forward Required when using WebSockets", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_PodProxyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodProxyOptions is the query options to a Pod's proxy call.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "path": { - SchemaProps: spec.SchemaProps{ - Description: "Path is the URL path to use for the current proxy request to pod.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_PodReadinessGate(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodReadinessGate contains the reference to a pod condition", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "conditionType": { - SchemaProps: spec.SchemaProps{ - Description: "ConditionType refers to a condition in the pod's condition list with matching type.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"conditionType"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_PodSecurityContext(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "seLinuxOptions": { - SchemaProps: spec.SchemaProps{ - Description: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", - Ref: ref("k8s.io/api/core/v1.SELinuxOptions"), - }, - }, - "windowsOptions": { - SchemaProps: spec.SchemaProps{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Ref: ref("k8s.io/api/core/v1.WindowsSecurityContextOptions"), - }, - }, - "runAsUser": { - SchemaProps: spec.SchemaProps{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "runAsGroup": { - SchemaProps: spec.SchemaProps{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "runAsNonRoot": { - SchemaProps: spec.SchemaProps{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "supplementalGroups": { - SchemaProps: spec.SchemaProps{ - Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"integer"}, - Format: "int64", - }, - }, - }, - }, - }, - "fsGroup": { - SchemaProps: spec.SchemaProps{ - Description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "sysctls": { - SchemaProps: spec.SchemaProps{ - Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.Sysctl"), - }, - }, - }, - }, - }, - "fsGroupChangePolicy": { - SchemaProps: spec.SchemaProps{ - Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified defaults to \"Always\".", - Type: []string{"string"}, - Format: "", - }, - }, - "seccompProfile": { - SchemaProps: spec.SchemaProps{ - Description: "The seccomp options to use by the containers in this pod.", - Ref: ref("k8s.io/api/core/v1.SeccompProfile"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.SELinuxOptions", "k8s.io/api/core/v1.SeccompProfile", "k8s.io/api/core/v1.Sysctl", "k8s.io/api/core/v1.WindowsSecurityContextOptions"}, - } -} - -func schema_k8sio_api_core_v1_PodSignature(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Describes the class of pods that should avoid this node. Exactly one field should be set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "podController": { - SchemaProps: spec.SchemaProps{ - Description: "Reference to controller whose pods should avoid this node.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference"}, - } -} - -func schema_k8sio_api_core_v1_PodSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodSpec is a description of a pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "volumes": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge,retainKeys", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.Volume"), - }, - }, - }, - }, - }, - "initContainers": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.Container"), - }, - }, - }, - }, - }, - "containers": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.Container"), - }, - }, - }, - }, - }, - "ephemeralContainers": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource. This field is alpha-level and is only honored by servers that enable the EphemeralContainers feature.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.EphemeralContainer"), - }, - }, - }, - }, - }, - "restartPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy", - Type: []string{"string"}, - Format: "", - }, - }, - "terminationGracePeriodSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "activeDeadlineSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "dnsPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.", - Type: []string{"string"}, - Format: "", - }, - }, - "nodeSelector": { - SchemaProps: spec.SchemaProps{ - Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "serviceAccountName": { - SchemaProps: spec.SchemaProps{ - Description: "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", - Type: []string{"string"}, - Format: "", - }, - }, - "serviceAccount": { - SchemaProps: spec.SchemaProps{ - Description: "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.", - Type: []string{"string"}, - Format: "", - }, - }, - "automountServiceAccountToken": { - SchemaProps: spec.SchemaProps{ - Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "nodeName": { - SchemaProps: spec.SchemaProps{ - Description: "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.", - Type: []string{"string"}, - Format: "", - }, - }, - "hostNetwork": { - SchemaProps: spec.SchemaProps{ - Description: "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "hostPID": { - SchemaProps: spec.SchemaProps{ - Description: "Use the host's pid namespace. Optional: Default to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "hostIPC": { - SchemaProps: spec.SchemaProps{ - Description: "Use the host's ipc namespace. Optional: Default to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "shareProcessNamespace": { - SchemaProps: spec.SchemaProps{ - Description: "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "securityContext": { - SchemaProps: spec.SchemaProps{ - Description: "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.", - Ref: ref("k8s.io/api/core/v1.PodSecurityContext"), - }, - }, - "imagePullSecrets": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), - }, - }, - }, - }, - }, - "hostname": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.", - Type: []string{"string"}, - Format: "", - }, - }, - "subdomain": { - SchemaProps: spec.SchemaProps{ - Description: "If specified, the fully qualified Pod hostname will be \"...svc.\". If not specified, the pod will not have a domainname at all.", - Type: []string{"string"}, - Format: "", - }, - }, - "affinity": { - SchemaProps: spec.SchemaProps{ - Description: "If specified, the pod's scheduling constraints", - Ref: ref("k8s.io/api/core/v1.Affinity"), - }, - }, - "schedulerName": { - SchemaProps: spec.SchemaProps{ - Description: "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.", - Type: []string{"string"}, - Format: "", - }, - }, - "tolerations": { - SchemaProps: spec.SchemaProps{ - Description: "If specified, the pod's tolerations.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.Toleration"), - }, - }, - }, - }, - }, - "hostAliases": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "ip", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.HostAlias"), - }, - }, - }, - }, - }, - "priorityClassName": { - SchemaProps: spec.SchemaProps{ - Description: "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.", - Type: []string{"string"}, - Format: "", - }, - }, - "priority": { - SchemaProps: spec.SchemaProps{ - Description: "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "dnsConfig": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", - Ref: ref("k8s.io/api/core/v1.PodDNSConfig"), - }, - }, - "readinessGates": { - SchemaProps: spec.SchemaProps{ - Description: "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.PodReadinessGate"), - }, - }, - }, - }, - }, - "runtimeClassName": { - SchemaProps: spec.SchemaProps{ - Description: "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md This is a beta feature as of Kubernetes v1.14.", - Type: []string{"string"}, - Format: "", - }, - }, - "enableServiceLinks": { - SchemaProps: spec.SchemaProps{ - Description: "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "preemptionPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.", - Type: []string{"string"}, - Format: "", - }, - }, - "overhead": { - SchemaProps: spec.SchemaProps{ - Description: "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.16, and is only honored by servers that enable the PodOverhead feature.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "topologySpreadConstraints": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "topologyKey", - "whenUnsatisfiable", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "topologyKey", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), - }, - }, - }, - }, - }, - "setHostnameAsFQDN": { - SchemaProps: spec.SchemaProps{ - Description: "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"containers"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EphemeralContainer", "k8s.io/api/core/v1.HostAlias", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint", "k8s.io/api/core/v1.Volume", "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_core_v1_PodStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "phase": { - SchemaProps: spec.SchemaProps{ - Description: "The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\n\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase", - Type: []string{"string"}, - Format: "", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.PodCondition"), - }, - }, - }, - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about why the pod is in this condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'", - Type: []string{"string"}, - Format: "", - }, - }, - "nominatedNodeName": { - SchemaProps: spec.SchemaProps{ - Description: "nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled.", - Type: []string{"string"}, - Format: "", - }, - }, - "hostIP": { - SchemaProps: spec.SchemaProps{ - Description: "IP address of the host to which the pod is assigned. Empty if not yet scheduled.", - Type: []string{"string"}, - Format: "", - }, - }, - "podIP": { - SchemaProps: spec.SchemaProps{ - Description: "IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.", - Type: []string{"string"}, - Format: "", - }, - }, - "podIPs": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "ip", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.PodIP"), - }, - }, - }, - }, - }, - "startTime": { - SchemaProps: spec.SchemaProps{ - Description: "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "initContainerStatuses": { - SchemaProps: spec.SchemaProps{ - Description: "The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ContainerStatus"), - }, - }, - }, - }, - }, - "containerStatuses": { - SchemaProps: spec.SchemaProps{ - Description: "The list has one entry per container in the manifest. Each entry is currently the output of `docker inspect`. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ContainerStatus"), - }, - }, - }, - }, - }, - "qosClass": { - SchemaProps: spec.SchemaProps{ - Description: "The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md", - Type: []string{"string"}, - Format: "", - }, - }, - "ephemeralContainerStatuses": { - SchemaProps: spec.SchemaProps{ - Description: "Status for any ephemeral containers that have run in this pod. This field is alpha-level and is only populated by servers that enable the EphemeralContainers feature.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ContainerStatus"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ContainerStatus", "k8s.io/api/core/v1.PodCondition", "k8s.io/api/core/v1.PodIP", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_core_v1_PodStatusResult(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodStatusResult is a wrapper for PodStatus returned by kubelet that can be encode/decoded", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/core/v1.PodStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PodStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_PodTemplate(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodTemplate describes a template for creating copies of a predefined pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_PodTemplateList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodTemplateList is a list of PodTemplates.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of pod templates", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.PodTemplate"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PodTemplate", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_core_v1_PodTemplateSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodTemplateSpec describes the data a pod should have when created from a template", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/core/v1.PodSpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PodSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_PortworxVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PortworxVolumeSource represents a Portworx volume resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "volumeID": { - SchemaProps: spec.SchemaProps{ - Description: "VolumeID uniquely identifies a Portworx volume", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified.", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"volumeID"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_PreferAvoidPodsEntry(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Describes a class of pods that should avoid this node.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "podSignature": { - SchemaProps: spec.SchemaProps{ - Description: "The class of pods.", - Ref: ref("k8s.io/api/core/v1.PodSignature"), - }, - }, - "evictionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Time at which this entry was added to the list.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "(brief) reason why this entry was added to the list.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "Human readable message indicating why this entry was added to the list.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"podSignature"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PodSignature", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_core_v1_PreferredSchedulingTerm(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "weight": { - SchemaProps: spec.SchemaProps{ - Description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "preference": { - SchemaProps: spec.SchemaProps{ - Description: "A node selector term, associated with the corresponding weight.", - Ref: ref("k8s.io/api/core/v1.NodeSelectorTerm"), - }, - }, - }, - Required: []string{"weight", "preference"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.NodeSelectorTerm"}, - } -} - -func schema_k8sio_api_core_v1_Probe(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "exec": { - SchemaProps: spec.SchemaProps{ - Description: "One and only one of the following should be specified. Exec specifies the action to take.", - Ref: ref("k8s.io/api/core/v1.ExecAction"), - }, - }, - "httpGet": { - SchemaProps: spec.SchemaProps{ - Description: "HTTPGet specifies the http request to perform.", - Ref: ref("k8s.io/api/core/v1.HTTPGetAction"), - }, - }, - "tcpSocket": { - SchemaProps: spec.SchemaProps{ - Description: "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported", - Ref: ref("k8s.io/api/core/v1.TCPSocketAction"), - }, - }, - "initialDelaySeconds": { - SchemaProps: spec.SchemaProps{ - Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "timeoutSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "periodSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "successThreshold": { - SchemaProps: spec.SchemaProps{ - Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "failureThreshold": { - SchemaProps: spec.SchemaProps{ - Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ExecAction", "k8s.io/api/core/v1.HTTPGetAction", "k8s.io/api/core/v1.TCPSocketAction"}, - } -} - -func schema_k8sio_api_core_v1_ProjectedVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a projected volume source", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "sources": { - SchemaProps: spec.SchemaProps{ - Description: "list of volume projections", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.VolumeProjection"), - }, - }, - }, - }, - }, - "defaultMode": { - SchemaProps: spec.SchemaProps{ - Description: "Mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"sources"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.VolumeProjection"}, - } -} - -func schema_k8sio_api_core_v1_QuobyteVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "registry": { - SchemaProps: spec.SchemaProps{ - Description: "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - Type: []string{"string"}, - Format: "", - }, - }, - "volume": { - SchemaProps: spec.SchemaProps{ - Description: "Volume is a string that references an already created Quobyte volume by name.", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "user": { - SchemaProps: spec.SchemaProps{ - Description: "User to map volume access to Defaults to serivceaccount user", - Type: []string{"string"}, - Format: "", - }, - }, - "group": { - SchemaProps: spec.SchemaProps{ - Description: "Group to map volume access to Default is no group", - Type: []string{"string"}, - Format: "", - }, - }, - "tenant": { - SchemaProps: spec.SchemaProps{ - Description: "Tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"registry", "volume"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_RBDPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "monitors": { - SchemaProps: spec.SchemaProps{ - Description: "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "image": { - SchemaProps: spec.SchemaProps{ - Description: "The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - Type: []string{"string"}, - Format: "", - }, - }, - "pool": { - SchemaProps: spec.SchemaProps{ - Description: "The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Type: []string{"string"}, - Format: "", - }, - }, - "user": { - SchemaProps: spec.SchemaProps{ - Description: "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Type: []string{"string"}, - Format: "", - }, - }, - "keyring": { - SchemaProps: spec.SchemaProps{ - Description: "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Type: []string{"string"}, - Format: "", - }, - }, - "secretRef": { - SchemaProps: spec.SchemaProps{ - Description: "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Ref: ref("k8s.io/api/core/v1.SecretReference"), - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"monitors", "image"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.SecretReference"}, - } -} - -func schema_k8sio_api_core_v1_RBDVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "monitors": { - SchemaProps: spec.SchemaProps{ - Description: "A collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "image": { - SchemaProps: spec.SchemaProps{ - Description: "The rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - Type: []string{"string"}, - Format: "", - }, - }, - "pool": { - SchemaProps: spec.SchemaProps{ - Description: "The rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Type: []string{"string"}, - Format: "", - }, - }, - "user": { - SchemaProps: spec.SchemaProps{ - Description: "The rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Type: []string{"string"}, - Format: "", - }, - }, - "keyring": { - SchemaProps: spec.SchemaProps{ - Description: "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Type: []string{"string"}, - Format: "", - }, - }, - "secretRef": { - SchemaProps: spec.SchemaProps{ - Description: "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"monitors", "image"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.LocalObjectReference"}, - } -} - -func schema_k8sio_api_core_v1_RangeAllocation(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RangeAllocation is not a public type.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "range": { - SchemaProps: spec.SchemaProps{ - Description: "Range is string that identifies the range represented by 'data'.", - Type: []string{"string"}, - Format: "", - }, - }, - "data": { - SchemaProps: spec.SchemaProps{ - Description: "Data is a bit array containing all allocated addresses in the previous segment.", - Type: []string{"string"}, - Format: "byte", - }, - }, - }, - Required: []string{"range", "data"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_ReplicationController(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicationController represents the configuration of a replication controller.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/core/v1.ReplicationControllerSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/core/v1.ReplicationControllerStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ReplicationControllerSpec", "k8s.io/api/core/v1.ReplicationControllerStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_ReplicationControllerCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicationControllerCondition describes the state of a replication controller at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of replication controller condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "The last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "The reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about the transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_core_v1_ReplicationControllerList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicationControllerList is a collection of replication controllers.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ReplicationController"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ReplicationController", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_core_v1_ReplicationControllerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicationControllerSpec is the specification of a replication controller.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "minReadySeconds": { - SchemaProps: spec.SchemaProps{ - Description: "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", - Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PodTemplateSpec"}, - } -} - -func schema_k8sio_api_core_v1_ReplicationControllerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicationControllerStatus represents the current status of a replication controller.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "fullyLabeledReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "The number of pods that have labels matching the labels of the pod template of the replication controller.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "readyReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "The number of ready replicas for this replication controller.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "availableReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "The number of available replicas (ready for at least minReadySeconds) for this replication controller.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "ObservedGeneration reflects the generation of the most recently observed replication controller.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Represents the latest available observations of a replication controller's current state.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ReplicationControllerCondition"), - }, - }, - }, - }, - }, - }, - Required: []string{"replicas"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ReplicationControllerCondition"}, - } -} - -func schema_k8sio_api_core_v1_ResourceFieldSelector(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceFieldSelector represents container resources (cpu, memory) and their output format", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "containerName": { - SchemaProps: spec.SchemaProps{ - Description: "Container name: required for volumes, optional for env vars", - Type: []string{"string"}, - Format: "", - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "Required: resource to select", - Type: []string{"string"}, - Format: "", - }, - }, - "divisor": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the output format of the exposed resources, defaults to \"1\"", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - Required: []string{"resource"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_core_v1_ResourceQuota(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceQuota sets aggregate quota restrictions enforced per namespace", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/core/v1.ResourceQuotaSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/core/v1.ResourceQuotaStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ResourceQuotaSpec", "k8s.io/api/core/v1.ResourceQuotaStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_ResourceQuotaList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceQuotaList is a list of ResourceQuota items.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ResourceQuota"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ResourceQuota", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_core_v1_ResourceQuotaSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "hard": { - SchemaProps: spec.SchemaProps{ - Description: "hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "scopes": { - SchemaProps: spec.SchemaProps{ - Description: "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "scopeSelector": { - SchemaProps: spec.SchemaProps{ - Description: "scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.", - Ref: ref("k8s.io/api/core/v1.ScopeSelector"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ScopeSelector", "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_core_v1_ResourceQuotaStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceQuotaStatus defines the enforced hard limits and observed use.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "hard": { - SchemaProps: spec.SchemaProps{ - Description: "Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "used": { - SchemaProps: spec.SchemaProps{ - Description: "Used is the current observed total usage of the resource in the namespace.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_core_v1_ResourceRequirements(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceRequirements describes the compute resource requirements.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "limits": { - SchemaProps: spec.SchemaProps{ - Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - "requests": { - SchemaProps: spec.SchemaProps{ - Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_core_v1_SELinuxOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SELinuxOptions are the labels to be applied to the container", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "user": { - SchemaProps: spec.SchemaProps{ - Description: "User is a SELinux user label that applies to the container.", - Type: []string{"string"}, - Format: "", - }, - }, - "role": { - SchemaProps: spec.SchemaProps{ - Description: "Role is a SELinux role label that applies to the container.", - Type: []string{"string"}, - Format: "", - }, - }, - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type is a SELinux type label that applies to the container.", - Type: []string{"string"}, - Format: "", - }, - }, - "level": { - SchemaProps: spec.SchemaProps{ - Description: "Level is SELinux level label that applies to the container.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_ScaleIOPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "gateway": { - SchemaProps: spec.SchemaProps{ - Description: "The host address of the ScaleIO API Gateway.", - Type: []string{"string"}, - Format: "", - }, - }, - "system": { - SchemaProps: spec.SchemaProps{ - Description: "The name of the storage system as configured in ScaleIO.", - Type: []string{"string"}, - Format: "", - }, - }, - "secretRef": { - SchemaProps: spec.SchemaProps{ - Description: "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - Ref: ref("k8s.io/api/core/v1.SecretReference"), - }, - }, - "sslEnabled": { - SchemaProps: spec.SchemaProps{ - Description: "Flag to enable/disable SSL communication with Gateway, default false", - Type: []string{"boolean"}, - Format: "", - }, - }, - "protectionDomain": { - SchemaProps: spec.SchemaProps{ - Description: "The name of the ScaleIO Protection Domain for the configured storage.", - Type: []string{"string"}, - Format: "", - }, - }, - "storagePool": { - SchemaProps: spec.SchemaProps{ - Description: "The ScaleIO Storage Pool associated with the protection domain.", - Type: []string{"string"}, - Format: "", - }, - }, - "storageMode": { - SchemaProps: spec.SchemaProps{ - Description: "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - Type: []string{"string"}, - Format: "", - }, - }, - "volumeName": { - SchemaProps: spec.SchemaProps{ - Description: "The name of a volume already created in the ScaleIO system that is associated with this volume source.", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"gateway", "system", "secretRef"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.SecretReference"}, - } -} - -func schema_k8sio_api_core_v1_ScaleIOVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ScaleIOVolumeSource represents a persistent ScaleIO volume", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "gateway": { - SchemaProps: spec.SchemaProps{ - Description: "The host address of the ScaleIO API Gateway.", - Type: []string{"string"}, - Format: "", - }, - }, - "system": { - SchemaProps: spec.SchemaProps{ - Description: "The name of the storage system as configured in ScaleIO.", - Type: []string{"string"}, - Format: "", - }, - }, - "secretRef": { - SchemaProps: spec.SchemaProps{ - Description: "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), - }, - }, - "sslEnabled": { - SchemaProps: spec.SchemaProps{ - Description: "Flag to enable/disable SSL communication with Gateway, default false", - Type: []string{"boolean"}, - Format: "", - }, - }, - "protectionDomain": { - SchemaProps: spec.SchemaProps{ - Description: "The name of the ScaleIO Protection Domain for the configured storage.", - Type: []string{"string"}, - Format: "", - }, - }, - "storagePool": { - SchemaProps: spec.SchemaProps{ - Description: "The ScaleIO Storage Pool associated with the protection domain.", - Type: []string{"string"}, - Format: "", - }, - }, - "storageMode": { - SchemaProps: spec.SchemaProps{ - Description: "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", - Type: []string{"string"}, - Format: "", - }, - }, - "volumeName": { - SchemaProps: spec.SchemaProps{ - Description: "The name of a volume already created in the ScaleIO system that is associated with this volume source.", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\".", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"gateway", "system", "secretRef"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.LocalObjectReference"}, - } -} - -func schema_k8sio_api_core_v1_ScopeSelector(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "matchExpressions": { - SchemaProps: spec.SchemaProps{ - Description: "A list of scope selector requirements by scope of the resources.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ScopedResourceSelectorRequirement"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ScopedResourceSelectorRequirement"}, - } -} - -func schema_k8sio_api_core_v1_ScopedResourceSelectorRequirement(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "scopeName": { - SchemaProps: spec.SchemaProps{ - Description: "The name of the scope that the selector applies to.", - Type: []string{"string"}, - Format: "", - }, - }, - "operator": { - SchemaProps: spec.SchemaProps{ - Description: "Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.", - Type: []string{"string"}, - Format: "", - }, - }, - "values": { - SchemaProps: spec.SchemaProps{ - Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"scopeName", "operator"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_SeccompProfile(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type indicates which kind of seccomp profile will be applied. Valid options are:\n\nLocalhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.", - Type: []string{"string"}, - Format: "", - }, - }, - "localhostProfile": { - SchemaProps: spec.SchemaProps{ - Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is \"Localhost\".", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type"}, - }, - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-unions": []interface{}{ - map[string]interface{}{ - "discriminator": "type", - "fields-to-discriminateBy": map[string]interface{}{ - "localhostProfile": "LocalhostProfile", - }, - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_Secret(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "immutable": { - SchemaProps: spec.SchemaProps{ - Description: "Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil. This is a beta field enabled by ImmutableEphemeralVolumes feature gate.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "data": { - SchemaProps: spec.SchemaProps{ - Description: "Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "byte", - }, - }, - }, - }, - }, - "stringData": { - SchemaProps: spec.SchemaProps{ - Description: "stringData allows specifying non-binary secret data in string form. It is provided as a write-only convenience method. All keys and values are merged into the data field on write, overwriting any existing values. It is never output when reading from the API.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Used to facilitate programmatic handling of secret data.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_SecretEnvSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Type: []string{"string"}, - Format: "", - }, - }, - "optional": { - SchemaProps: spec.SchemaProps{ - Description: "Specify whether the Secret must be defined", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_SecretKeySelector(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SecretKeySelector selects a key of a Secret.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Type: []string{"string"}, - Format: "", - }, - }, - "key": { - SchemaProps: spec.SchemaProps{ - Description: "The key of the secret to select from. Must be a valid secret key.", - Type: []string{"string"}, - Format: "", - }, - }, - "optional": { - SchemaProps: spec.SchemaProps{ - Description: "Specify whether the Secret or its key must be defined", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"key"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_SecretList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SecretList is a list of Secret.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.Secret"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.Secret", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_core_v1_SecretProjection(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Type: []string{"string"}, - Format: "", - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.KeyToPath"), - }, - }, - }, - }, - }, - "optional": { - SchemaProps: spec.SchemaProps{ - Description: "Specify whether the Secret or its key must be defined", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.KeyToPath"}, - } -} - -func schema_k8sio_api_core_v1_SecretReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name is unique within a namespace to reference a secret resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "Namespace defines the space within which the secret name must be unique.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_SecretVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "secretName": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - Type: []string{"string"}, - Format: "", - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.KeyToPath"), - }, - }, - }, - }, - }, - "defaultMode": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "optional": { - SchemaProps: spec.SchemaProps{ - Description: "Specify whether the Secret or its keys must be defined", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.KeyToPath"}, - } -} - -func schema_k8sio_api_core_v1_SecurityContext(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "capabilities": { - SchemaProps: spec.SchemaProps{ - Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.", - Ref: ref("k8s.io/api/core/v1.Capabilities"), - }, - }, - "privileged": { - SchemaProps: spec.SchemaProps{ - Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "seLinuxOptions": { - SchemaProps: spec.SchemaProps{ - Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Ref: ref("k8s.io/api/core/v1.SELinuxOptions"), - }, - }, - "windowsOptions": { - SchemaProps: spec.SchemaProps{ - Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Ref: ref("k8s.io/api/core/v1.WindowsSecurityContextOptions"), - }, - }, - "runAsUser": { - SchemaProps: spec.SchemaProps{ - Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "runAsGroup": { - SchemaProps: spec.SchemaProps{ - Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "runAsNonRoot": { - SchemaProps: spec.SchemaProps{ - Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "readOnlyRootFilesystem": { - SchemaProps: spec.SchemaProps{ - Description: "Whether this container has a read-only root filesystem. Default is false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "allowPrivilegeEscalation": { - SchemaProps: spec.SchemaProps{ - Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN", - Type: []string{"boolean"}, - Format: "", - }, - }, - "procMount": { - SchemaProps: spec.SchemaProps{ - Description: "procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled.", - Type: []string{"string"}, - Format: "", - }, - }, - "seccompProfile": { - SchemaProps: spec.SchemaProps{ - Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options.", - Ref: ref("k8s.io/api/core/v1.SeccompProfile"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.Capabilities", "k8s.io/api/core/v1.SELinuxOptions", "k8s.io/api/core/v1.SeccompProfile", "k8s.io/api/core/v1.WindowsSecurityContextOptions"}, - } -} - -func schema_k8sio_api_core_v1_SerializedReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SerializedReference is a reference to serialized object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "reference": { - SchemaProps: spec.SchemaProps{ - Description: "The reference to an object in the system.", - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ObjectReference"}, - } -} - -func schema_k8sio_api_core_v1_Service(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/core/v1.ServiceSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/core/v1.ServiceStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ServiceSpec", "k8s.io/api/core/v1.ServiceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_ServiceAccount(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "secrets": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount. More info: https://kubernetes.io/docs/concepts/configuration/secret", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - }, - }, - }, - "imagePullSecrets": { - SchemaProps: spec.SchemaProps{ - Description: "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), - }, - }, - }, - }, - }, - "automountServiceAccountToken": { - SchemaProps: spec.SchemaProps{ - Description: "AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_core_v1_ServiceAccountList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceAccountList is a list of ServiceAccount objects", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ServiceAccount"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ServiceAccount", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_core_v1_ServiceAccountTokenProjection(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "audience": { - SchemaProps: spec.SchemaProps{ - Description: "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", - Type: []string{"string"}, - Format: "", - }, - }, - "expirationSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "path": { - SchemaProps: spec.SchemaProps{ - Description: "Path is the path relative to the mount point of the file to project the token into.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"path"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_ServiceList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceList holds a list of services.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of services", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.Service"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.Service", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_core_v1_ServicePort(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServicePort contains information on service's port.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.", - Type: []string{"string"}, - Format: "", - }, - }, - "protocol": { - SchemaProps: spec.SchemaProps{ - Description: "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.", - Type: []string{"string"}, - Format: "", - }, - }, - "appProtocol": { - SchemaProps: spec.SchemaProps{ - Description: "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol. This is a beta field that is guarded by the ServiceAppProtocol feature gate and enabled by default.", - Type: []string{"string"}, - Format: "", - }, - }, - "port": { - SchemaProps: spec.SchemaProps{ - Description: "The port that will be exposed by this service.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "targetPort": { - SchemaProps: spec.SchemaProps{ - Description: "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - "nodePort": { - SchemaProps: spec.SchemaProps{ - Description: "The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"port"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/util/intstr.IntOrString"}, - } -} - -func schema_k8sio_api_core_v1_ServiceProxyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceProxyOptions is the query options to a Service's proxy call.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "path": { - SchemaProps: spec.SchemaProps{ - Description: "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_ServiceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceSpec describes the attributes that a user creates on a service.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ports": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "port", - "protocol", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "port", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.ServicePort"), - }, - }, - }, - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "clusterIP": { - SchemaProps: spec.SchemaProps{ - Description: "clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are \"None\", empty string (\"\"), or a valid IP address. \"None\" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - Type: []string{"string"}, - Format: "", - }, - }, - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ExternalName\" maps to the specified externalName. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types", - Type: []string{"string"}, - Format: "", - }, - }, - "externalIPs": { - SchemaProps: spec.SchemaProps{ - Description: "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "sessionAffinity": { - SchemaProps: spec.SchemaProps{ - Description: "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - Type: []string{"string"}, - Format: "", - }, - }, - "loadBalancerIP": { - SchemaProps: spec.SchemaProps{ - Description: "Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.", - Type: []string{"string"}, - Format: "", - }, - }, - "loadBalancerSourceRanges": { - SchemaProps: spec.SchemaProps{ - Description: "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "externalName": { - SchemaProps: spec.SchemaProps{ - Description: "externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Type to be ExternalName.", - Type: []string{"string"}, - Format: "", - }, - }, - "externalTrafficPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.", - Type: []string{"string"}, - Format: "", - }, - }, - "healthCheckNodePort": { - SchemaProps: spec.SchemaProps{ - Description: "healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "publishNotReadyAddresses": { - SchemaProps: spec.SchemaProps{ - Description: "publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered \"ready\" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "sessionAffinityConfig": { - SchemaProps: spec.SchemaProps{ - Description: "sessionAffinityConfig contains the configurations of session affinity.", - Ref: ref("k8s.io/api/core/v1.SessionAffinityConfig"), - }, - }, - "ipFamily": { - SchemaProps: spec.SchemaProps{ - Description: "ipFamily specifies whether this Service has a preference for a particular IP family (e.g. IPv4 vs. IPv6) when the IPv6DualStack feature gate is enabled. In a dual-stack cluster, you can specify ipFamily when creating a ClusterIP Service to determine whether the controller will allocate an IPv4 or IPv6 IP for it, and you can specify ipFamily when creating a headless Service to determine whether it will have IPv4 or IPv6 Endpoints. In either case, if you do not specify an ipFamily explicitly, it will default to the cluster's primary IP family. This field is part of an alpha feature, and you should not make any assumptions about its semantics other than those described above. In particular, you should not assume that it can (or cannot) be changed after creation time; that it can only have the values \"IPv4\" and \"IPv6\"; or that its current value on a given Service correctly reflects the current state of that Service. (For ClusterIP Services, look at clusterIP to see if the Service is IPv4 or IPv6. For headless Services, look at the endpoints, which may be dual-stack in the future. For ExternalName Services, ipFamily has no meaning, but it may be set to an irrelevant value anyway.)", - Type: []string{"string"}, - Format: "", - }, - }, - "topologyKeys": { - SchemaProps: spec.SchemaProps{ - Description: "topologyKeys is a preference-order list of topology keys which implementations of services should use to preferentially sort endpoints when accessing this Service, it can not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and at most 16 keys may be specified. Endpoints are chosen based on the first topology key with available backends. If this field is specified and all entries have no backends that match the topology of the client, the service has no backends for that client and connections should fail. The special value \"*\" may be used to mean \"any topology\". This catch-all value, if used, only makes sense as the last value in the list. If this is not specified or empty, no topology constraints will be applied.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ServicePort", "k8s.io/api/core/v1.SessionAffinityConfig"}, - } -} - -func schema_k8sio_api_core_v1_ServiceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceStatus represents the current status of a service.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "loadBalancer": { - SchemaProps: spec.SchemaProps{ - Description: "LoadBalancer contains the current status of the load-balancer, if one is present.", - Ref: ref("k8s.io/api/core/v1.LoadBalancerStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.LoadBalancerStatus"}, - } -} - -func schema_k8sio_api_core_v1_SessionAffinityConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SessionAffinityConfig represents the configurations of session affinity.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "clientIP": { - SchemaProps: spec.SchemaProps{ - Description: "clientIP contains the configurations of Client IP based session affinity.", - Ref: ref("k8s.io/api/core/v1.ClientIPConfig"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ClientIPConfig"}, - } -} - -func schema_k8sio_api_core_v1_StorageOSPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a StorageOS persistent volume resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "volumeName": { - SchemaProps: spec.SchemaProps{ - Description: "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - Type: []string{"string"}, - Format: "", - }, - }, - "volumeNamespace": { - SchemaProps: spec.SchemaProps{ - Description: "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "secretRef": { - SchemaProps: spec.SchemaProps{ - Description: "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ObjectReference"}, - } -} - -func schema_k8sio_api_core_v1_StorageOSVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a StorageOS persistent volume resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "volumeName": { - SchemaProps: spec.SchemaProps{ - Description: "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - Type: []string{"string"}, - Format: "", - }, - }, - "volumeNamespace": { - SchemaProps: spec.SchemaProps{ - Description: "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "secretRef": { - SchemaProps: spec.SchemaProps{ - Description: "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.LocalObjectReference"}, - } -} - -func schema_k8sio_api_core_v1_Sysctl(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Sysctl defines a kernel parameter to be set", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of a property to set", - Type: []string{"string"}, - Format: "", - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Description: "Value of a property to set", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"name", "value"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_TCPSocketAction(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TCPSocketAction describes an action based on opening a socket", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "port": { - SchemaProps: spec.SchemaProps{ - Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - "host": { - SchemaProps: spec.SchemaProps{ - Description: "Optional: Host name to connect to, defaults to the pod IP.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"port"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/util/intstr.IntOrString"}, - } -} - -func schema_k8sio_api_core_v1_Taint(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "The node this Taint is attached to has the \"effect\" on any pod that does not tolerate the Taint.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "key": { - SchemaProps: spec.SchemaProps{ - Description: "Required. The taint key to be applied to a node.", - Type: []string{"string"}, - Format: "", - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Description: "The taint value corresponding to the taint key.", - Type: []string{"string"}, - Format: "", - }, - }, - "effect": { - SchemaProps: spec.SchemaProps{ - Description: "Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.", - Type: []string{"string"}, - Format: "", - }, - }, - "timeAdded": { - SchemaProps: spec.SchemaProps{ - Description: "TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - }, - Required: []string{"key", "effect"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_core_v1_Toleration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator .", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "key": { - SchemaProps: spec.SchemaProps{ - Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - Type: []string{"string"}, - Format: "", - }, - }, - "operator": { - SchemaProps: spec.SchemaProps{ - Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - Type: []string{"string"}, - Format: "", - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - Type: []string{"string"}, - Format: "", - }, - }, - "effect": { - SchemaProps: spec.SchemaProps{ - Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - Type: []string{"string"}, - Format: "", - }, - }, - "tolerationSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_core_v1_TopologySelectorLabelRequirement(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "key": { - SchemaProps: spec.SchemaProps{ - Description: "The label key that the selector applies to.", - Type: []string{"string"}, - Format: "", - }, - }, - "values": { - SchemaProps: spec.SchemaProps{ - Description: "An array of string values. One value must match the label to be selected. Each entry in Values is ORed.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"key", "values"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_TopologySelectorTerm(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "matchLabelExpressions": { - SchemaProps: spec.SchemaProps{ - Description: "A list of topology selector requirements by labels.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.TopologySelectorLabelRequirement"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.TopologySelectorLabelRequirement"}, - } -} - -func schema_k8sio_api_core_v1_TopologySpreadConstraint(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TopologySpreadConstraint specifies how to spread matching pods among the given topology.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "maxSkew": { - SchemaProps: spec.SchemaProps{ - Description: "MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 1/1/0: | zone1 | zone2 | zone3 | | P | P | | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1; scheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "topologyKey": { - SchemaProps: spec.SchemaProps{ - Description: "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a \"bucket\", and try to put balanced number of pods into each bucket. It's a required field.", - Type: []string{"string"}, - Format: "", - }, - }, - "whenUnsatisfiable": { - SchemaProps: spec.SchemaProps{ - Description: "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location,\n but giving higher precedence to topologies that would help reduce the\n skew.\nA constraint is considered \"Unsatisfiable\" for an incoming pod if and only if every possible node assigment for that pod would violate \"MaxSkew\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.", - Type: []string{"string"}, - Format: "", - }, - }, - "labelSelector": { - SchemaProps: spec.SchemaProps{ - Description: "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - }, - Required: []string{"maxSkew", "topologyKey", "whenUnsatisfiable"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_core_v1_TypedLocalObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "apiGroup": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", - Type: []string{"string"}, - Format: "", - }, - }, - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is the type of resource being referenced", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name is the name of resource being referenced", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"kind", "name"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_Volume(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Volume represents a named volume in a pod that may be accessed by any container in the pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - Type: []string{"string"}, - Format: "", - }, - }, - "hostPath": { - SchemaProps: spec.SchemaProps{ - Description: "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Ref: ref("k8s.io/api/core/v1.HostPathVolumeSource"), - }, - }, - "emptyDir": { - SchemaProps: spec.SchemaProps{ - Description: "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Ref: ref("k8s.io/api/core/v1.EmptyDirVolumeSource"), - }, - }, - "gcePersistentDisk": { - SchemaProps: spec.SchemaProps{ - Description: "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"), - }, - }, - "awsElasticBlockStore": { - SchemaProps: spec.SchemaProps{ - Description: "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"), - }, - }, - "gitRepo": { - SchemaProps: spec.SchemaProps{ - Description: "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - Ref: ref("k8s.io/api/core/v1.GitRepoVolumeSource"), - }, - }, - "secret": { - SchemaProps: spec.SchemaProps{ - Description: "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - Ref: ref("k8s.io/api/core/v1.SecretVolumeSource"), - }, - }, - "nfs": { - SchemaProps: spec.SchemaProps{ - Description: "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Ref: ref("k8s.io/api/core/v1.NFSVolumeSource"), - }, - }, - "iscsi": { - SchemaProps: spec.SchemaProps{ - Description: "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - Ref: ref("k8s.io/api/core/v1.ISCSIVolumeSource"), - }, - }, - "glusterfs": { - SchemaProps: spec.SchemaProps{ - Description: "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - Ref: ref("k8s.io/api/core/v1.GlusterfsVolumeSource"), - }, - }, - "persistentVolumeClaim": { - SchemaProps: spec.SchemaProps{ - Description: "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource"), - }, - }, - "rbd": { - SchemaProps: spec.SchemaProps{ - Description: "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - Ref: ref("k8s.io/api/core/v1.RBDVolumeSource"), - }, - }, - "flexVolume": { - SchemaProps: spec.SchemaProps{ - Description: "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - Ref: ref("k8s.io/api/core/v1.FlexVolumeSource"), - }, - }, - "cinder": { - SchemaProps: spec.SchemaProps{ - Description: "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Ref: ref("k8s.io/api/core/v1.CinderVolumeSource"), - }, - }, - "cephfs": { - SchemaProps: spec.SchemaProps{ - Description: "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - Ref: ref("k8s.io/api/core/v1.CephFSVolumeSource"), - }, - }, - "flocker": { - SchemaProps: spec.SchemaProps{ - Description: "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"), - }, - }, - "downwardAPI": { - SchemaProps: spec.SchemaProps{ - Description: "DownwardAPI represents downward API about the pod that should populate this volume", - Ref: ref("k8s.io/api/core/v1.DownwardAPIVolumeSource"), - }, - }, - "fc": { - SchemaProps: spec.SchemaProps{ - Description: "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - Ref: ref("k8s.io/api/core/v1.FCVolumeSource"), - }, - }, - "azureFile": { - SchemaProps: spec.SchemaProps{ - Description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - Ref: ref("k8s.io/api/core/v1.AzureFileVolumeSource"), - }, - }, - "configMap": { - SchemaProps: spec.SchemaProps{ - Description: "ConfigMap represents a configMap that should populate this volume", - Ref: ref("k8s.io/api/core/v1.ConfigMapVolumeSource"), - }, - }, - "vsphereVolume": { - SchemaProps: spec.SchemaProps{ - Description: "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"), - }, - }, - "quobyte": { - SchemaProps: spec.SchemaProps{ - Description: "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"), - }, - }, - "azureDisk": { - SchemaProps: spec.SchemaProps{ - Description: "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"), - }, - }, - "photonPersistentDisk": { - SchemaProps: spec.SchemaProps{ - Description: "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"), - }, - }, - "projected": { - SchemaProps: spec.SchemaProps{ - Description: "Items for all in one resources secrets, configmaps, and downward API", - Ref: ref("k8s.io/api/core/v1.ProjectedVolumeSource"), - }, - }, - "portworxVolume": { - SchemaProps: spec.SchemaProps{ - Description: "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine", - Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"), - }, - }, - "scaleIO": { - SchemaProps: spec.SchemaProps{ - Description: "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - Ref: ref("k8s.io/api/core/v1.ScaleIOVolumeSource"), - }, - }, - "storageos": { - SchemaProps: spec.SchemaProps{ - Description: "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", - Ref: ref("k8s.io/api/core/v1.StorageOSVolumeSource"), - }, - }, - "csi": { - SchemaProps: spec.SchemaProps{ - Description: "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - Ref: ref("k8s.io/api/core/v1.CSIVolumeSource"), - }, - }, - "ephemeral": { - SchemaProps: spec.SchemaProps{ - Description: "Ephemeral represents a volume that is handled by a cluster storage driver (Alpha feature). The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\n\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\n tracking are needed,\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\n information on the connection between this volume type\n and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\n\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.", - Ref: ref("k8s.io/api/core/v1.EphemeralVolumeSource"), - }, - }, - }, - Required: []string{"name"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource", "k8s.io/api/core/v1.AzureDiskVolumeSource", "k8s.io/api/core/v1.AzureFileVolumeSource", "k8s.io/api/core/v1.CSIVolumeSource", "k8s.io/api/core/v1.CephFSVolumeSource", "k8s.io/api/core/v1.CinderVolumeSource", "k8s.io/api/core/v1.ConfigMapVolumeSource", "k8s.io/api/core/v1.DownwardAPIVolumeSource", "k8s.io/api/core/v1.EmptyDirVolumeSource", "k8s.io/api/core/v1.EphemeralVolumeSource", "k8s.io/api/core/v1.FCVolumeSource", "k8s.io/api/core/v1.FlexVolumeSource", "k8s.io/api/core/v1.FlockerVolumeSource", "k8s.io/api/core/v1.GCEPersistentDiskVolumeSource", "k8s.io/api/core/v1.GitRepoVolumeSource", "k8s.io/api/core/v1.GlusterfsVolumeSource", "k8s.io/api/core/v1.HostPathVolumeSource", "k8s.io/api/core/v1.ISCSIVolumeSource", "k8s.io/api/core/v1.NFSVolumeSource", "k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource", "k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource", "k8s.io/api/core/v1.PortworxVolumeSource", "k8s.io/api/core/v1.ProjectedVolumeSource", "k8s.io/api/core/v1.QuobyteVolumeSource", "k8s.io/api/core/v1.RBDVolumeSource", "k8s.io/api/core/v1.ScaleIOVolumeSource", "k8s.io/api/core/v1.SecretVolumeSource", "k8s.io/api/core/v1.StorageOSVolumeSource", "k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"}, - } -} - -func schema_k8sio_api_core_v1_VolumeDevice(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "volumeDevice describes a mapping of a raw block device within a container.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name must match the name of a persistentVolumeClaim in the pod", - Type: []string{"string"}, - Format: "", - }, - }, - "devicePath": { - SchemaProps: spec.SchemaProps{ - Description: "devicePath is the path inside of the container that the device will be mapped to.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"name", "devicePath"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_VolumeMount(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeMount describes a mounting of a Volume within a container.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "This must match the Name of a Volume.", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "mountPath": { - SchemaProps: spec.SchemaProps{ - Description: "Path within the container at which the volume should be mounted. Must not contain ':'.", - Type: []string{"string"}, - Format: "", - }, - }, - "subPath": { - SchemaProps: spec.SchemaProps{ - Description: "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", - Type: []string{"string"}, - Format: "", - }, - }, - "mountPropagation": { - SchemaProps: spec.SchemaProps{ - Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", - Type: []string{"string"}, - Format: "", - }, - }, - "subPathExpr": { - SchemaProps: spec.SchemaProps{ - Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \"\" (volume's root). SubPathExpr and SubPath are mutually exclusive.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"name", "mountPath"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_VolumeNodeAffinity(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "required": { - SchemaProps: spec.SchemaProps{ - Description: "Required specifies hard node constraints that must be met.", - Ref: ref("k8s.io/api/core/v1.NodeSelector"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.NodeSelector"}, - } -} - -func schema_k8sio_api_core_v1_VolumeProjection(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Projection that may be projected along with other supported volume types", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "secret": { - SchemaProps: spec.SchemaProps{ - Description: "information about the secret data to project", - Ref: ref("k8s.io/api/core/v1.SecretProjection"), - }, - }, - "downwardAPI": { - SchemaProps: spec.SchemaProps{ - Description: "information about the downwardAPI data to project", - Ref: ref("k8s.io/api/core/v1.DownwardAPIProjection"), - }, - }, - "configMap": { - SchemaProps: spec.SchemaProps{ - Description: "information about the configMap data to project", - Ref: ref("k8s.io/api/core/v1.ConfigMapProjection"), - }, - }, - "serviceAccountToken": { - SchemaProps: spec.SchemaProps{ - Description: "information about the serviceAccountToken data to project", - Ref: ref("k8s.io/api/core/v1.ServiceAccountTokenProjection"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ConfigMapProjection", "k8s.io/api/core/v1.DownwardAPIProjection", "k8s.io/api/core/v1.SecretProjection", "k8s.io/api/core/v1.ServiceAccountTokenProjection"}, - } -} - -func schema_k8sio_api_core_v1_VolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents the source of a volume to mount. Only one of its members may be specified.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "hostPath": { - SchemaProps: spec.SchemaProps{ - Description: "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - Ref: ref("k8s.io/api/core/v1.HostPathVolumeSource"), - }, - }, - "emptyDir": { - SchemaProps: spec.SchemaProps{ - Description: "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - Ref: ref("k8s.io/api/core/v1.EmptyDirVolumeSource"), - }, - }, - "gcePersistentDisk": { - SchemaProps: spec.SchemaProps{ - Description: "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"), - }, - }, - "awsElasticBlockStore": { - SchemaProps: spec.SchemaProps{ - Description: "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"), - }, - }, - "gitRepo": { - SchemaProps: spec.SchemaProps{ - Description: "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", - Ref: ref("k8s.io/api/core/v1.GitRepoVolumeSource"), - }, - }, - "secret": { - SchemaProps: spec.SchemaProps{ - Description: "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - Ref: ref("k8s.io/api/core/v1.SecretVolumeSource"), - }, - }, - "nfs": { - SchemaProps: spec.SchemaProps{ - Description: "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - Ref: ref("k8s.io/api/core/v1.NFSVolumeSource"), - }, - }, - "iscsi": { - SchemaProps: spec.SchemaProps{ - Description: "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md", - Ref: ref("k8s.io/api/core/v1.ISCSIVolumeSource"), - }, - }, - "glusterfs": { - SchemaProps: spec.SchemaProps{ - Description: "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md", - Ref: ref("k8s.io/api/core/v1.GlusterfsVolumeSource"), - }, - }, - "persistentVolumeClaim": { - SchemaProps: spec.SchemaProps{ - Description: "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource"), - }, - }, - "rbd": { - SchemaProps: spec.SchemaProps{ - Description: "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md", - Ref: ref("k8s.io/api/core/v1.RBDVolumeSource"), - }, - }, - "flexVolume": { - SchemaProps: spec.SchemaProps{ - Description: "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - Ref: ref("k8s.io/api/core/v1.FlexVolumeSource"), - }, - }, - "cinder": { - SchemaProps: spec.SchemaProps{ - Description: "Cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md", - Ref: ref("k8s.io/api/core/v1.CinderVolumeSource"), - }, - }, - "cephfs": { - SchemaProps: spec.SchemaProps{ - Description: "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - Ref: ref("k8s.io/api/core/v1.CephFSVolumeSource"), - }, - }, - "flocker": { - SchemaProps: spec.SchemaProps{ - Description: "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"), - }, - }, - "downwardAPI": { - SchemaProps: spec.SchemaProps{ - Description: "DownwardAPI represents downward API about the pod that should populate this volume", - Ref: ref("k8s.io/api/core/v1.DownwardAPIVolumeSource"), - }, - }, - "fc": { - SchemaProps: spec.SchemaProps{ - Description: "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - Ref: ref("k8s.io/api/core/v1.FCVolumeSource"), - }, - }, - "azureFile": { - SchemaProps: spec.SchemaProps{ - Description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - Ref: ref("k8s.io/api/core/v1.AzureFileVolumeSource"), - }, - }, - "configMap": { - SchemaProps: spec.SchemaProps{ - Description: "ConfigMap represents a configMap that should populate this volume", - Ref: ref("k8s.io/api/core/v1.ConfigMapVolumeSource"), - }, - }, - "vsphereVolume": { - SchemaProps: spec.SchemaProps{ - Description: "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"), - }, - }, - "quobyte": { - SchemaProps: spec.SchemaProps{ - Description: "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"), - }, - }, - "azureDisk": { - SchemaProps: spec.SchemaProps{ - Description: "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"), - }, - }, - "photonPersistentDisk": { - SchemaProps: spec.SchemaProps{ - Description: "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"), - }, - }, - "projected": { - SchemaProps: spec.SchemaProps{ - Description: "Items for all in one resources secrets, configmaps, and downward API", - Ref: ref("k8s.io/api/core/v1.ProjectedVolumeSource"), - }, - }, - "portworxVolume": { - SchemaProps: spec.SchemaProps{ - Description: "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine", - Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"), - }, - }, - "scaleIO": { - SchemaProps: spec.SchemaProps{ - Description: "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - Ref: ref("k8s.io/api/core/v1.ScaleIOVolumeSource"), - }, - }, - "storageos": { - SchemaProps: spec.SchemaProps{ - Description: "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", - Ref: ref("k8s.io/api/core/v1.StorageOSVolumeSource"), - }, - }, - "csi": { - SchemaProps: spec.SchemaProps{ - Description: "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).", - Ref: ref("k8s.io/api/core/v1.CSIVolumeSource"), - }, - }, - "ephemeral": { - SchemaProps: spec.SchemaProps{ - Description: "Ephemeral represents a volume that is handled by a cluster storage driver (Alpha feature). The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\n\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\n tracking are needed,\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\n information on the connection between this volume type\n and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\n\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.", - Ref: ref("k8s.io/api/core/v1.EphemeralVolumeSource"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource", "k8s.io/api/core/v1.AzureDiskVolumeSource", "k8s.io/api/core/v1.AzureFileVolumeSource", "k8s.io/api/core/v1.CSIVolumeSource", "k8s.io/api/core/v1.CephFSVolumeSource", "k8s.io/api/core/v1.CinderVolumeSource", "k8s.io/api/core/v1.ConfigMapVolumeSource", "k8s.io/api/core/v1.DownwardAPIVolumeSource", "k8s.io/api/core/v1.EmptyDirVolumeSource", "k8s.io/api/core/v1.EphemeralVolumeSource", "k8s.io/api/core/v1.FCVolumeSource", "k8s.io/api/core/v1.FlexVolumeSource", "k8s.io/api/core/v1.FlockerVolumeSource", "k8s.io/api/core/v1.GCEPersistentDiskVolumeSource", "k8s.io/api/core/v1.GitRepoVolumeSource", "k8s.io/api/core/v1.GlusterfsVolumeSource", "k8s.io/api/core/v1.HostPathVolumeSource", "k8s.io/api/core/v1.ISCSIVolumeSource", "k8s.io/api/core/v1.NFSVolumeSource", "k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource", "k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource", "k8s.io/api/core/v1.PortworxVolumeSource", "k8s.io/api/core/v1.ProjectedVolumeSource", "k8s.io/api/core/v1.QuobyteVolumeSource", "k8s.io/api/core/v1.RBDVolumeSource", "k8s.io/api/core/v1.ScaleIOVolumeSource", "k8s.io/api/core/v1.SecretVolumeSource", "k8s.io/api/core/v1.StorageOSVolumeSource", "k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"}, - } -} - -func schema_k8sio_api_core_v1_VsphereVirtualDiskVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Represents a vSphere volume resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "volumePath": { - SchemaProps: spec.SchemaProps{ - Description: "Path that identifies vSphere volume vmdk", - Type: []string{"string"}, - Format: "", - }, - }, - "fsType": { - SchemaProps: spec.SchemaProps{ - Description: "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - Type: []string{"string"}, - Format: "", - }, - }, - "storagePolicyName": { - SchemaProps: spec.SchemaProps{ - Description: "Storage Policy Based Management (SPBM) profile name.", - Type: []string{"string"}, - Format: "", - }, - }, - "storagePolicyID": { - SchemaProps: spec.SchemaProps{ - Description: "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"volumePath"}, - }, - }, - } -} - -func schema_k8sio_api_core_v1_WeightedPodAffinityTerm(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "weight": { - SchemaProps: spec.SchemaProps{ - Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "podAffinityTerm": { - SchemaProps: spec.SchemaProps{ - Description: "Required. A pod affinity term, associated with the corresponding weight.", - Ref: ref("k8s.io/api/core/v1.PodAffinityTerm"), - }, - }, - }, - Required: []string{"weight", "podAffinityTerm"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PodAffinityTerm"}, - } -} - -func schema_k8sio_api_core_v1_WindowsSecurityContextOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "WindowsSecurityContextOptions contain Windows-specific options and credentials.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "gmsaCredentialSpecName": { - SchemaProps: spec.SchemaProps{ - Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.", - Type: []string{"string"}, - Format: "", - }, - }, - "gmsaCredentialSpec": { - SchemaProps: spec.SchemaProps{ - Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.", - Type: []string{"string"}, - Format: "", - }, - }, - "runAsUserName": { - SchemaProps: spec.SchemaProps{ - Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_discovery_v1alpha1_Endpoint(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Endpoint represents a single logical \"backend\" implementing a service.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "addresses": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. Consumers must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "conditions": { - SchemaProps: spec.SchemaProps{ - Description: "conditions contains information about the current status of the endpoint.", - Ref: ref("k8s.io/api/discovery/v1alpha1.EndpointConditions"), - }, - }, - "hostname": { - SchemaProps: spec.SchemaProps{ - Description: "hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must pass DNS Label (RFC 1123) validation.", - Type: []string{"string"}, - Format: "", - }, - }, - "targetRef": { - SchemaProps: spec.SchemaProps{ - Description: "targetRef is a reference to a Kubernetes object that represents this endpoint.", - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - "topology": { - SchemaProps: spec.SchemaProps{ - Description: "topology contains arbitrary topology information associated with the endpoint. These key/value pairs must conform with the label format. https://kubernetes.io/docs/concepts/overview/working-with-objects/labels Topology may include a maximum of 16 key/value pairs. This includes, but is not limited to the following well known keys: * kubernetes.io/hostname: the value indicates the hostname of the node\n where the endpoint is located. This should match the corresponding\n node label.\n* topology.kubernetes.io/zone: the value indicates the zone where the\n endpoint is located. This should match the corresponding node label.\n* topology.kubernetes.io/region: the value indicates the region where the\n endpoint is located. This should match the corresponding node label.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"addresses"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ObjectReference", "k8s.io/api/discovery/v1alpha1.EndpointConditions"}, - } -} - -func schema_k8sio_api_discovery_v1alpha1_EndpointConditions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EndpointConditions represents the current condition of an endpoint.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ready": { - SchemaProps: spec.SchemaProps{ - Description: "ready indicates that this endpoint is prepared to receive traffic, according to whatever system is managing the endpoint. A nil value indicates an unknown state. In most cases consumers should interpret this unknown state as ready.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_discovery_v1alpha1_EndpointPort(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EndpointPort represents a Port used by an EndpointSlice", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "The name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.", - Type: []string{"string"}, - Format: "", - }, - }, - "protocol": { - SchemaProps: spec.SchemaProps{ - Description: "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", - Type: []string{"string"}, - Format: "", - }, - }, - "port": { - SchemaProps: spec.SchemaProps{ - Description: "The port number of the endpoint. If this is not specified, ports are not restricted and must be interpreted in the context of the specific consumer.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "appProtocol": { - SchemaProps: spec.SchemaProps{ - Description: "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names. Default is empty string.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_discovery_v1alpha1_EndpointSlice(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EndpointSlice represents a subset of the endpoints that implement a service. For a given service there may be multiple EndpointSlice objects, selected by labels, which must be joined to produce the full set of endpoints.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "addressType": { - SchemaProps: spec.SchemaProps{ - Description: "addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name.", - Type: []string{"string"}, - Format: "", - }, - }, - "endpoints": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/discovery/v1alpha1.Endpoint"), - }, - }, - }, - }, - }, - "ports": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are no defined ports. When a port is defined with a nil port value, it indicates \"all ports\". Each slice may include a maximum of 100 ports.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/discovery/v1alpha1.EndpointPort"), - }, - }, - }, - }, - }, - }, - Required: []string{"addressType", "endpoints"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/discovery/v1alpha1.Endpoint", "k8s.io/api/discovery/v1alpha1.EndpointPort", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_discovery_v1alpha1_EndpointSliceList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EndpointSliceList represents a list of endpoint slices", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of endpoint slices", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/discovery/v1alpha1.EndpointSlice"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/discovery/v1alpha1.EndpointSlice", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_discovery_v1beta1_Endpoint(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Endpoint represents a single logical \"backend\" implementing a service.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "addresses": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. Consumers must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "conditions": { - SchemaProps: spec.SchemaProps{ - Description: "conditions contains information about the current status of the endpoint.", - Ref: ref("k8s.io/api/discovery/v1beta1.EndpointConditions"), - }, - }, - "hostname": { - SchemaProps: spec.SchemaProps{ - Description: "hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must pass DNS Label (RFC 1123) validation.", - Type: []string{"string"}, - Format: "", - }, - }, - "targetRef": { - SchemaProps: spec.SchemaProps{ - Description: "targetRef is a reference to a Kubernetes object that represents this endpoint.", - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - "topology": { - SchemaProps: spec.SchemaProps{ - Description: "topology contains arbitrary topology information associated with the endpoint. These key/value pairs must conform with the label format. https://kubernetes.io/docs/concepts/overview/working-with-objects/labels Topology may include a maximum of 16 key/value pairs. This includes, but is not limited to the following well known keys: * kubernetes.io/hostname: the value indicates the hostname of the node\n where the endpoint is located. This should match the corresponding\n node label.\n* topology.kubernetes.io/zone: the value indicates the zone where the\n endpoint is located. This should match the corresponding node label.\n* topology.kubernetes.io/region: the value indicates the region where the\n endpoint is located. This should match the corresponding node label.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"addresses"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ObjectReference", "k8s.io/api/discovery/v1beta1.EndpointConditions"}, - } -} - -func schema_k8sio_api_discovery_v1beta1_EndpointConditions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EndpointConditions represents the current condition of an endpoint.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ready": { - SchemaProps: spec.SchemaProps{ - Description: "ready indicates that this endpoint is prepared to receive traffic, according to whatever system is managing the endpoint. A nil value indicates an unknown state. In most cases consumers should interpret this unknown state as ready.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_discovery_v1beta1_EndpointPort(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EndpointPort represents a Port used by an EndpointSlice", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "The name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is dervied from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.", - Type: []string{"string"}, - Format: "", - }, - }, - "protocol": { - SchemaProps: spec.SchemaProps{ - Description: "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", - Type: []string{"string"}, - Format: "", - }, - }, - "port": { - SchemaProps: spec.SchemaProps{ - Description: "The port number of the endpoint. If this is not specified, ports are not restricted and must be interpreted in the context of the specific consumer.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "appProtocol": { - SchemaProps: spec.SchemaProps{ - Description: "The application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_discovery_v1beta1_EndpointSlice(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EndpointSlice represents a subset of the endpoints that implement a service. For a given service there may be multiple EndpointSlice objects, selected by labels, which must be joined to produce the full set of endpoints.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "addressType": { - SchemaProps: spec.SchemaProps{ - Description: "addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name.", - Type: []string{"string"}, - Format: "", - }, - }, - "endpoints": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/discovery/v1beta1.Endpoint"), - }, - }, - }, - }, - }, - "ports": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are no defined ports. When a port is defined with a nil port value, it indicates \"all ports\". Each slice may include a maximum of 100 ports.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/discovery/v1beta1.EndpointPort"), - }, - }, - }, - }, - }, - }, - Required: []string{"addressType", "endpoints"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/discovery/v1beta1.Endpoint", "k8s.io/api/discovery/v1beta1.EndpointPort", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_discovery_v1beta1_EndpointSliceList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EndpointSliceList represents a list of endpoint slices", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of endpoint slices", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/discovery/v1beta1.EndpointSlice"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/discovery/v1beta1.EndpointSlice", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_events_v1_Event(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "eventTime": { - SchemaProps: spec.SchemaProps{ - Description: "eventTime is the time when this Event was first observed. It is required.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"), - }, - }, - "series": { - SchemaProps: spec.SchemaProps{ - Description: "series is data about the Event series this event represents or nil if it's a singleton Event.", - Ref: ref("k8s.io/api/events/v1.EventSeries"), - }, - }, - "reportingController": { - SchemaProps: spec.SchemaProps{ - Description: "reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.", - Type: []string{"string"}, - Format: "", - }, - }, - "reportingInstance": { - SchemaProps: spec.SchemaProps{ - Description: "reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`. This field cannot be empty for new Events and it can have at most 128 characters.", - Type: []string{"string"}, - Format: "", - }, - }, - "action": { - SchemaProps: spec.SchemaProps{ - Description: "action is what action was taken/failed regarding to the regarding object. It is machine-readable. This field can have at most 128 characters.", - Type: []string{"string"}, - Format: "", - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "reason is why the action was taken. It is human-readable. This field can have at most 128 characters.", - Type: []string{"string"}, - Format: "", - }, - }, - "regarding": { - SchemaProps: spec.SchemaProps{ - Description: "regarding contains the object this Event is about. In most cases it's an Object reporting controller implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object.", - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - "related": { - SchemaProps: spec.SchemaProps{ - Description: "related is the optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object.", - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - "note": { - SchemaProps: spec.SchemaProps{ - Description: "note is a human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.", - Type: []string{"string"}, - Format: "", - }, - }, - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type is the type of this event (Normal, Warning), new types could be added in the future. It is machine-readable.", - Type: []string{"string"}, - Format: "", - }, - }, - "deprecatedSource": { - SchemaProps: spec.SchemaProps{ - Description: "deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type.", - Ref: ref("k8s.io/api/core/v1.EventSource"), - }, - }, - "deprecatedFirstTimestamp": { - SchemaProps: spec.SchemaProps{ - Description: "deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "deprecatedLastTimestamp": { - SchemaProps: spec.SchemaProps{ - Description: "deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "deprecatedCount": { - SchemaProps: spec.SchemaProps{ - Description: "deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"eventTime"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.EventSource", "k8s.io/api/core/v1.ObjectReference", "k8s.io/api/events/v1.EventSeries", "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_events_v1_EventList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EventList is a list of Event objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is a list of schema objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/events/v1.Event"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/events/v1.Event", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_events_v1_EventSeries(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time. How often to update the EventSeries is up to the event reporters. The default event reporter in \"k8s.io/client-go/tools/events/event_broadcaster.go\" shows how this struct is updated on heartbeats and can guide customized reporter implementations.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "count": { - SchemaProps: spec.SchemaProps{ - Description: "count is the number of occurrences in this series up to the last heartbeat time.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "lastObservedTime": { - SchemaProps: spec.SchemaProps{ - Description: "lastObservedTime is the time when last Event from the series was seen before last heartbeat.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"), - }, - }, - }, - Required: []string{"count", "lastObservedTime"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"}, - } -} - -func schema_k8sio_api_events_v1beta1_Event(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "eventTime": { - SchemaProps: spec.SchemaProps{ - Description: "eventTime is the time when this Event was first observed. It is required.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"), - }, - }, - "series": { - SchemaProps: spec.SchemaProps{ - Description: "series is data about the Event series this event represents or nil if it's a singleton Event.", - Ref: ref("k8s.io/api/events/v1beta1.EventSeries"), - }, - }, - "reportingController": { - SchemaProps: spec.SchemaProps{ - Description: "reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.", - Type: []string{"string"}, - Format: "", - }, - }, - "reportingInstance": { - SchemaProps: spec.SchemaProps{ - Description: "reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`. This field cannot be empty for new Events and it can have at most 128 characters.", - Type: []string{"string"}, - Format: "", - }, - }, - "action": { - SchemaProps: spec.SchemaProps{ - Description: "action is what action was taken/failed regarding to the regarding object. It is machine-readable. This field can have at most 128 characters.", - Type: []string{"string"}, - Format: "", - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "reason is why the action was taken. It is human-readable. This field can have at most 128 characters.", - Type: []string{"string"}, - Format: "", - }, - }, - "regarding": { - SchemaProps: spec.SchemaProps{ - Description: "regarding contains the object this Event is about. In most cases it's an Object reporting controller implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object.", - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - "related": { - SchemaProps: spec.SchemaProps{ - Description: "related is the optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object.", - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - "note": { - SchemaProps: spec.SchemaProps{ - Description: "note is a human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.", - Type: []string{"string"}, - Format: "", - }, - }, - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type is the type of this event (Normal, Warning), new types could be added in the future. It is machine-readable.", - Type: []string{"string"}, - Format: "", - }, - }, - "deprecatedSource": { - SchemaProps: spec.SchemaProps{ - Description: "deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type.", - Ref: ref("k8s.io/api/core/v1.EventSource"), - }, - }, - "deprecatedFirstTimestamp": { - SchemaProps: spec.SchemaProps{ - Description: "deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "deprecatedLastTimestamp": { - SchemaProps: spec.SchemaProps{ - Description: "deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "deprecatedCount": { - SchemaProps: spec.SchemaProps{ - Description: "deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"eventTime"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.EventSource", "k8s.io/api/core/v1.ObjectReference", "k8s.io/api/events/v1beta1.EventSeries", "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_events_v1beta1_EventList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EventList is a list of Event objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is a list of schema objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/events/v1beta1.Event"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/events/v1beta1.Event", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_events_v1beta1_EventSeries(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "count": { - SchemaProps: spec.SchemaProps{ - Description: "count is the number of occurrences in this series up to the last heartbeat time.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "lastObservedTime": { - SchemaProps: spec.SchemaProps{ - Description: "lastObservedTime is the time when last Event from the series was seen before last heartbeat.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"), - }, - }, - }, - Required: []string{"count", "lastObservedTime"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_AllowedCSIDriver(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "AllowedCSIDriver represents a single inline CSI Driver that is allowed to be used.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name is the registered name of the CSI driver", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"name"}, - }, - }, - } -} - -func schema_k8sio_api_extensions_v1beta1_AllowedFlexVolume(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "AllowedFlexVolume represents a single Flexvolume that is allowed to be used. Deprecated: use AllowedFlexVolume from policy API Group instead.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "driver": { - SchemaProps: spec.SchemaProps{ - Description: "driver is the name of the Flexvolume driver.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"driver"}, - }, - }, - } -} - -func schema_k8sio_api_extensions_v1beta1_AllowedHostPath(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined. Deprecated: use AllowedHostPath from policy API Group instead.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "pathPrefix": { - SchemaProps: spec.SchemaProps{ - Description: "pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_extensions_v1beta1_DaemonSet(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/extensions/v1beta1.DaemonSetSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/extensions/v1beta1.DaemonSetStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.DaemonSetSpec", "k8s.io/api/extensions/v1beta1.DaemonSetStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_DaemonSetCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DaemonSetCondition describes the state of a DaemonSet at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of DaemonSet condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "The reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about the transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_DaemonSetList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DaemonSetList is a collection of daemon sets.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "A list of daemon sets.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.DaemonSet"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.DaemonSet", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_DaemonSetSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DaemonSetSpec is the specification of a daemon set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", - Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"), - }, - }, - "updateStrategy": { - SchemaProps: spec.SchemaProps{ - Description: "An update strategy to replace existing DaemonSet pods with new pods.", - Ref: ref("k8s.io/api/extensions/v1beta1.DaemonSetUpdateStrategy"), - }, - }, - "minReadySeconds": { - SchemaProps: spec.SchemaProps{ - Description: "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "templateGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "revisionHistoryLimit": { - SchemaProps: spec.SchemaProps{ - Description: "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"template"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/api/extensions/v1beta1.DaemonSetUpdateStrategy", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_DaemonSetStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DaemonSetStatus represents the current status of a daemon set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "currentNumberScheduled": { - SchemaProps: spec.SchemaProps{ - Description: "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "numberMisscheduled": { - SchemaProps: spec.SchemaProps{ - Description: "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "desiredNumberScheduled": { - SchemaProps: spec.SchemaProps{ - Description: "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "numberReady": { - SchemaProps: spec.SchemaProps{ - Description: "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "The most recent generation observed by the daemon set controller.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "updatedNumberScheduled": { - SchemaProps: spec.SchemaProps{ - Description: "The total number of nodes that are running updated daemon pod", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "numberAvailable": { - SchemaProps: spec.SchemaProps{ - Description: "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "numberUnavailable": { - SchemaProps: spec.SchemaProps{ - Description: "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "collisionCount": { - SchemaProps: spec.SchemaProps{ - Description: "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Represents the latest available observations of a DaemonSet's current state.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.DaemonSetCondition"), - }, - }, - }, - }, - }, - }, - Required: []string{"currentNumberScheduled", "numberMisscheduled", "desiredNumberScheduled", "numberReady"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.DaemonSetCondition"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_DaemonSetUpdateStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is OnDelete.", - Type: []string{"string"}, - Format: "", - }, - }, - "rollingUpdate": { - SchemaProps: spec.SchemaProps{ - Description: "Rolling update config params. Present only if type = \"RollingUpdate\".", - Ref: ref("k8s.io/api/extensions/v1beta1.RollingUpdateDaemonSet"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.RollingUpdateDaemonSet"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_Deployment(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the desired behavior of the Deployment.", - Ref: ref("k8s.io/api/extensions/v1beta1.DeploymentSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Most recently observed status of the Deployment.", - Ref: ref("k8s.io/api/extensions/v1beta1.DeploymentStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.DeploymentSpec", "k8s.io/api/extensions/v1beta1.DeploymentStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_DeploymentCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentCondition describes the state of a deployment at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of deployment condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastUpdateTime": { - SchemaProps: spec.SchemaProps{ - Description: "The last time this condition was updated.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "The reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about the transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_DeploymentList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentList is a list of Deployments.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of Deployments.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.Deployment"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.Deployment", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_DeploymentRollback(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Required: This must match the Name of a deployment.", - Type: []string{"string"}, - Format: "", - }, - }, - "updatedAnnotations": { - SchemaProps: spec.SchemaProps{ - Description: "The annotations to be updated to a deployment", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "rollbackTo": { - SchemaProps: spec.SchemaProps{ - Description: "The config of this deployment rollback.", - Ref: ref("k8s.io/api/extensions/v1beta1.RollbackConfig"), - }, - }, - }, - Required: []string{"name", "rollbackTo"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.RollbackConfig"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_DeploymentSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentSpec is the specification of the desired behavior of the Deployment.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "Template describes the pods that will be created.", - Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"), - }, - }, - "strategy": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-strategy": "retainKeys", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "The deployment strategy to use to replace existing pods with new ones.", - Ref: ref("k8s.io/api/extensions/v1beta1.DeploymentStrategy"), - }, - }, - "minReadySeconds": { - SchemaProps: spec.SchemaProps{ - Description: "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "revisionHistoryLimit": { - SchemaProps: spec.SchemaProps{ - Description: "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. This is set to the max value of int32 (i.e. 2147483647) by default, which means \"retaining all old ReplicaSets\".", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "paused": { - SchemaProps: spec.SchemaProps{ - Description: "Indicates that the deployment is paused and will not be processed by the deployment controller.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "rollbackTo": { - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.", - Ref: ref("k8s.io/api/extensions/v1beta1.RollbackConfig"), - }, - }, - "progressDeadlineSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "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. This is set to the max value of int32 (i.e. 2147483647) by default, which means \"no deadline\".", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"template"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/api/extensions/v1beta1.DeploymentStrategy", "k8s.io/api/extensions/v1beta1.RollbackConfig", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_DeploymentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentStatus is the most recently observed status of the Deployment.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "The generation observed by the deployment controller.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "updatedReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "readyReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of ready pods targeted by this deployment.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "availableReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "unavailableReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Represents the latest available observations of a deployment's current state.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.DeploymentCondition"), - }, - }, - }, - }, - }, - "collisionCount": { - SchemaProps: spec.SchemaProps{ - Description: "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.DeploymentCondition"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_DeploymentStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentStrategy describes how to replace existing pods with new ones.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", - Type: []string{"string"}, - Format: "", - }, - }, - "rollingUpdate": { - SchemaProps: spec.SchemaProps{ - Description: "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.", - Ref: ref("k8s.io/api/extensions/v1beta1.RollingUpdateDeployment"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.RollingUpdateDeployment"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_FSGroupStrategyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "FSGroupStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use FSGroupStrategyOptions from policy API Group instead.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "rule": { - SchemaProps: spec.SchemaProps{ - Description: "rule is the strategy that will dictate what FSGroup is used in the SecurityContext.", - Type: []string{"string"}, - Format: "", - }, - }, - "ranges": { - SchemaProps: spec.SchemaProps{ - Description: "ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.IDRange"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.IDRange"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_HTTPIngressPath(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "path": { - SchemaProps: spec.SchemaProps{ - Description: "Path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \"path\" part of a URL as defined by RFC 3986. Paths must begin with a '/'. When unspecified, all paths from incoming requests are matched.", - Type: []string{"string"}, - Format: "", - }, - }, - "pathType": { - SchemaProps: spec.SchemaProps{ - Description: "PathType determines the interpretation of the Path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n done on a path element by element basis. A path element refers is the\n list of labels in the path split by the '/' separator. A request is a\n match for path p if every p is an element-wise prefix of p of the\n request path. Note that if the last element of the path is a substring\n of the last element in request path, it is not a match (e.g. /foo/bar\n matches /foo/bar/baz, but does not match /foo/barbaz).\n* ImplementationSpecific: Interpretation of the Path matching is up to\n the IngressClass. Implementations can treat this as a separate PathType\n or treat it identically to Prefix or Exact path types.\nImplementations are required to support all path types. Defaults to ImplementationSpecific.", - Type: []string{"string"}, - Format: "", - }, - }, - "backend": { - SchemaProps: spec.SchemaProps{ - Description: "Backend defines the referenced service endpoint to which the traffic will be forwarded to.", - Ref: ref("k8s.io/api/extensions/v1beta1.IngressBackend"), - }, - }, - }, - Required: []string{"backend"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.IngressBackend"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_HTTPIngressRuleValue(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http:///? -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "paths": { - SchemaProps: spec.SchemaProps{ - Description: "A collection of paths that map requests to backends.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.HTTPIngressPath"), - }, - }, - }, - }, - }, - }, - Required: []string{"paths"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.HTTPIngressPath"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_HostPortRange(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HostPortRange defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined. Deprecated: use HostPortRange from policy API Group instead.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "min": { - SchemaProps: spec.SchemaProps{ - Description: "min is the start of the range, inclusive.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "max": { - SchemaProps: spec.SchemaProps{ - Description: "max is the end of the range, inclusive.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"min", "max"}, - }, - }, - } -} - -func schema_k8sio_api_extensions_v1beta1_IDRange(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IDRange provides a min/max of an allowed range of IDs. Deprecated: use IDRange from policy API Group instead.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "min": { - SchemaProps: spec.SchemaProps{ - Description: "min is the start of the range, inclusive.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "max": { - SchemaProps: spec.SchemaProps{ - Description: "max is the end of the range, inclusive.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - }, - Required: []string{"min", "max"}, - }, - }, - } -} - -func schema_k8sio_api_extensions_v1beta1_IPBlock(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED 1.9 - This group version of IPBlock is deprecated by networking/v1/IPBlock. IPBlock describes a particular CIDR (Ex. \"192.168.1.1/24\",\"2001:db9::/64\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "cidr": { - SchemaProps: spec.SchemaProps{ - Description: "CIDR is a string representing the IP Block Valid examples are \"192.168.1.1/24\" or \"2001:db9::/64\"", - Type: []string{"string"}, - Format: "", - }, - }, - "except": { - SchemaProps: spec.SchemaProps{ - Description: "Except is a slice of CIDRs that should not be included within an IP Block Valid examples are \"192.168.1.1/24\" or \"2001:db9::/64\" Except values will be rejected if they are outside the CIDR range", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"cidr"}, - }, - }, - } -} - -func schema_k8sio_api_extensions_v1beta1_Ingress(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc. DEPRECATED - This group version of Ingress is deprecated by networking.k8s.io/v1beta1 Ingress. See the release notes for more information.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/extensions/v1beta1.IngressSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/extensions/v1beta1.IngressStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.IngressSpec", "k8s.io/api/extensions/v1beta1.IngressStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_IngressBackend(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressBackend describes all endpoints for a given service and port.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "serviceName": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the name of the referenced service.", - Type: []string{"string"}, - Format: "", - }, - }, - "servicePort": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the port of the referenced service.", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "Resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified.", - Ref: ref("k8s.io/api/core/v1.TypedLocalObjectReference"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.TypedLocalObjectReference", "k8s.io/apimachinery/pkg/util/intstr.IntOrString"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_IngressList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressList is a collection of Ingress.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of Ingress.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.Ingress"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.Ingress", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_IngressRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "host": { - SchemaProps: spec.SchemaProps{ - Description: "Host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \"host\" part of the URI as defined in RFC 3986: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n the IP in the Spec of the parent Ingress.\n2. The `:` delimiter is not respected because ports are not allowed.\n\t Currently the port of an Ingress is implicitly :80 for http and\n\t :443 for https.\nBoth these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.\n\nHost can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. \"*.foo.com\"). The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\"). Requests will be matched against the Host field in the following way: 1. If Host is precise, the request matches this rule if the http host header is equal to Host. 2. If Host is a wildcard, then the request matches this rule if the http host header is to equal to the suffix (removing the first label) of the wildcard rule.", - Type: []string{"string"}, - Format: "", - }, - }, - "http": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.HTTPIngressRuleValue"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.HTTPIngressRuleValue"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_IngressRuleValue(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressRuleValue represents a rule to apply against incoming requests. If the rule is satisfied, the request is routed to the specified backend. Currently mixing different types of rules in a single Ingress is disallowed, so exactly one of the following must be set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "http": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.HTTPIngressRuleValue"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.HTTPIngressRuleValue"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_IngressSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressSpec describes the Ingress the user wishes to exist.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ingressClassName": { - SchemaProps: spec.SchemaProps{ - Description: "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", - Type: []string{"string"}, - Format: "", - }, - }, - "backend": { - SchemaProps: spec.SchemaProps{ - Description: "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default.", - Ref: ref("k8s.io/api/extensions/v1beta1.IngressBackend"), - }, - }, - "tls": { - SchemaProps: spec.SchemaProps{ - Description: "TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.IngressTLS"), - }, - }, - }, - }, - }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.IngressRule"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.IngressBackend", "k8s.io/api/extensions/v1beta1.IngressRule", "k8s.io/api/extensions/v1beta1.IngressTLS"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_IngressStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressStatus describe the current state of the Ingress.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "loadBalancer": { - SchemaProps: spec.SchemaProps{ - Description: "LoadBalancer contains the current status of the load-balancer.", - Ref: ref("k8s.io/api/core/v1.LoadBalancerStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.LoadBalancerStatus"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_IngressTLS(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressTLS describes the transport layer security associated with an Ingress.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "hosts": { - SchemaProps: spec.SchemaProps{ - Description: "Hosts are a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "secretName": { - SchemaProps: spec.SchemaProps{ - Description: "SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \"Host\" header field used by an IngressRule, the SNI host is used for termination and value of the Host header is used for routing.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_extensions_v1beta1_NetworkPolicy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED 1.9 - This group version of NetworkPolicy is deprecated by networking/v1/NetworkPolicy. NetworkPolicy describes what network traffic is allowed for a set of Pods", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the desired behavior for this NetworkPolicy.", - Ref: ref("k8s.io/api/extensions/v1beta1.NetworkPolicySpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.NetworkPolicySpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_NetworkPolicyEgressRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED 1.9 - This group version of NetworkPolicyEgressRule is deprecated by networking/v1/NetworkPolicyEgressRule. NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ports": { - SchemaProps: spec.SchemaProps{ - Description: "List of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.NetworkPolicyPort"), - }, - }, - }, - }, - }, - "to": { - SchemaProps: spec.SchemaProps{ - Description: "List of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.NetworkPolicyPeer"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.NetworkPolicyPeer", "k8s.io/api/extensions/v1beta1.NetworkPolicyPort"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_NetworkPolicyIngressRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED 1.9 - This group version of NetworkPolicyIngressRule is deprecated by networking/v1/NetworkPolicyIngressRule. This NetworkPolicyIngressRule matches traffic if and only if the traffic matches both ports AND from.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ports": { - SchemaProps: spec.SchemaProps{ - Description: "List of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.NetworkPolicyPort"), - }, - }, - }, - }, - }, - "from": { - SchemaProps: spec.SchemaProps{ - Description: "List of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all sources (traffic not restricted by source). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the from list.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.NetworkPolicyPeer"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.NetworkPolicyPeer", "k8s.io/api/extensions/v1beta1.NetworkPolicyPort"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_NetworkPolicyList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED 1.9 - This group version of NetworkPolicyList is deprecated by networking/v1/NetworkPolicyList. Network Policy List is a list of NetworkPolicy objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of schema objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.NetworkPolicy"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.NetworkPolicy", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_NetworkPolicyPeer(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "podSelector": { - SchemaProps: spec.SchemaProps{ - Description: "This is a label selector which selects Pods. This field follows standard label selector semantics; if present but empty, it selects all pods.\n\nIf NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the Pods matching PodSelector in the policy's own Namespace.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "namespaceSelector": { - SchemaProps: spec.SchemaProps{ - Description: "Selects Namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces.\n\nIf PodSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "ipBlock": { - SchemaProps: spec.SchemaProps{ - Description: "IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.", - Ref: ref("k8s.io/api/extensions/v1beta1.IPBlock"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.IPBlock", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_NetworkPolicyPort(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "protocol": { - SchemaProps: spec.SchemaProps{ - Description: "Optional. The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", - Type: []string{"string"}, - Format: "", - }, - }, - "port": { - SchemaProps: spec.SchemaProps{ - Description: "If specified, the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/util/intstr.IntOrString"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_NetworkPolicySpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED 1.9 - This group version of NetworkPolicySpec is deprecated by networking/v1/NetworkPolicySpec.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "podSelector": { - SchemaProps: spec.SchemaProps{ - Description: "Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "ingress": { - SchemaProps: spec.SchemaProps{ - Description: "List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default).", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.NetworkPolicyIngressRule"), - }, - }, - }, - }, - }, - "egress": { - SchemaProps: spec.SchemaProps{ - Description: "List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.NetworkPolicyEgressRule"), - }, - }, - }, - }, - }, - "policyTypes": { - SchemaProps: spec.SchemaProps{ - Description: "List of rule types that the NetworkPolicy relates to. Valid options are \"Ingress\", \"Egress\", or \"Ingress,Egress\". If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an Egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"podSelector"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.NetworkPolicyEgressRule", "k8s.io/api/extensions/v1beta1.NetworkPolicyIngressRule", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_PodSecurityPolicy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container. Deprecated: use PodSecurityPolicy from policy API Group instead.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec defines the policy enforced.", - Ref: ref("k8s.io/api/extensions/v1beta1.PodSecurityPolicySpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.PodSecurityPolicySpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_PodSecurityPolicyList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodSecurityPolicyList is a list of PodSecurityPolicy objects. Deprecated: use PodSecurityPolicyList from policy API Group instead.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is a list of schema objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.PodSecurityPolicy"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.PodSecurityPolicy", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_PodSecurityPolicySpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodSecurityPolicySpec defines the policy enforced. Deprecated: use PodSecurityPolicySpec from policy API Group instead.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "privileged": { - SchemaProps: spec.SchemaProps{ - Description: "privileged determines if a pod can request to be run as privileged.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "defaultAddCapabilities": { - SchemaProps: spec.SchemaProps{ - Description: "defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "requiredDropCapabilities": { - SchemaProps: spec.SchemaProps{ - Description: "requiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "allowedCapabilities": { - SchemaProps: spec.SchemaProps{ - Description: "allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "volumes": { - SchemaProps: spec.SchemaProps{ - Description: "volumes is an allowlist of volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "hostNetwork": { - SchemaProps: spec.SchemaProps{ - Description: "hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "hostPorts": { - SchemaProps: spec.SchemaProps{ - Description: "hostPorts determines which host port ranges are allowed to be exposed.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.HostPortRange"), - }, - }, - }, - }, - }, - "hostPID": { - SchemaProps: spec.SchemaProps{ - Description: "hostPID determines if the policy allows the use of HostPID in the pod spec.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "hostIPC": { - SchemaProps: spec.SchemaProps{ - Description: "hostIPC determines if the policy allows the use of HostIPC in the pod spec.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "seLinux": { - SchemaProps: spec.SchemaProps{ - Description: "seLinux is the strategy that will dictate the allowable labels that may be set.", - Ref: ref("k8s.io/api/extensions/v1beta1.SELinuxStrategyOptions"), - }, - }, - "runAsUser": { - SchemaProps: spec.SchemaProps{ - Description: "runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.", - Ref: ref("k8s.io/api/extensions/v1beta1.RunAsUserStrategyOptions"), - }, - }, - "runAsGroup": { - SchemaProps: spec.SchemaProps{ - Description: "RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set. If this field is omitted, the pod's RunAsGroup can take any value. This field requires the RunAsGroup feature gate to be enabled.", - Ref: ref("k8s.io/api/extensions/v1beta1.RunAsGroupStrategyOptions"), - }, - }, - "supplementalGroups": { - SchemaProps: spec.SchemaProps{ - Description: "supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.", - Ref: ref("k8s.io/api/extensions/v1beta1.SupplementalGroupsStrategyOptions"), - }, - }, - "fsGroup": { - SchemaProps: spec.SchemaProps{ - Description: "fsGroup is the strategy that will dictate what fs group is used by the SecurityContext.", - Ref: ref("k8s.io/api/extensions/v1beta1.FSGroupStrategyOptions"), - }, - }, - "readOnlyRootFilesystem": { - SchemaProps: spec.SchemaProps{ - Description: "readOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "defaultAllowPrivilegeEscalation": { - SchemaProps: spec.SchemaProps{ - Description: "defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "allowPrivilegeEscalation": { - SchemaProps: spec.SchemaProps{ - Description: "allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "allowedHostPaths": { - SchemaProps: spec.SchemaProps{ - Description: "allowedHostPaths is an allowlist of host paths. Empty indicates that all host paths may be used.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.AllowedHostPath"), - }, - }, - }, - }, - }, - "allowedFlexVolumes": { - SchemaProps: spec.SchemaProps{ - Description: "allowedFlexVolumes is an allowlist of Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"volumes\" field.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.AllowedFlexVolume"), - }, - }, - }, - }, - }, - "allowedCSIDrivers": { - SchemaProps: spec.SchemaProps{ - Description: "AllowedCSIDrivers is an allowlist of inline CSI drivers that must be explicitly set to be embedded within a pod spec. An empty value indicates that any CSI driver can be used for inline ephemeral volumes.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.AllowedCSIDriver"), - }, - }, - }, - }, - }, - "allowedUnsafeSysctls": { - SchemaProps: spec.SchemaProps{ - Description: "allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to allowlist all unsafe sysctls explicitly to avoid rejection.\n\nExamples: e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" allows \"foo.bar\", \"foo.baz\", etc.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "forbiddenSysctls": { - SchemaProps: spec.SchemaProps{ - Description: "forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\n\nExamples: e.g. \"foo/*\" forbids \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" forbids \"foo.bar\", \"foo.baz\", etc.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "allowedProcMountTypes": { - SchemaProps: spec.SchemaProps{ - Description: "AllowedProcMountTypes is an allowlist of allowed ProcMountTypes. Empty or nil indicates that only the DefaultProcMountType may be used. This requires the ProcMountType feature flag to be enabled.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "runtimeClass": { - SchemaProps: spec.SchemaProps{ - Description: "runtimeClass is the strategy that will dictate the allowable RuntimeClasses for a pod. If this field is omitted, the pod's runtimeClassName field is unrestricted. Enforcement of this field depends on the RuntimeClass feature gate being enabled.", - Ref: ref("k8s.io/api/extensions/v1beta1.RuntimeClassStrategyOptions"), - }, - }, - }, - Required: []string{"seLinux", "runAsUser", "supplementalGroups", "fsGroup"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.AllowedCSIDriver", "k8s.io/api/extensions/v1beta1.AllowedFlexVolume", "k8s.io/api/extensions/v1beta1.AllowedHostPath", "k8s.io/api/extensions/v1beta1.FSGroupStrategyOptions", "k8s.io/api/extensions/v1beta1.HostPortRange", "k8s.io/api/extensions/v1beta1.RunAsGroupStrategyOptions", "k8s.io/api/extensions/v1beta1.RunAsUserStrategyOptions", "k8s.io/api/extensions/v1beta1.RuntimeClassStrategyOptions", "k8s.io/api/extensions/v1beta1.SELinuxStrategyOptions", "k8s.io/api/extensions/v1beta1.SupplementalGroupsStrategyOptions"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_ReplicaSet(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for more information. ReplicaSet ensures that a specified number of pod replicas are running at any given time.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/extensions/v1beta1.ReplicaSetSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/extensions/v1beta1.ReplicaSetStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.ReplicaSetSpec", "k8s.io/api/extensions/v1beta1.ReplicaSetStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_ReplicaSetCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicaSetCondition describes the state of a replica set at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of replica set condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "The last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "The reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about the transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_ReplicaSetList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicaSetList is a collection of ReplicaSets.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.ReplicaSet"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.ReplicaSet", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_ReplicaSetSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicaSetSpec is the specification of a ReplicaSet.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "minReadySeconds": { - SchemaProps: spec.SchemaProps{ - Description: "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "Selector is a label query over pods that should match the replica count. If the selector is empty, it is defaulted to the labels present on the pod template. Label keys and values that must match in order to be controlled by this replica set. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "template": { - SchemaProps: spec.SchemaProps{ - Description: "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", - Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_ReplicaSetStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicaSetStatus represents the current status of a ReplicaSet.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "fullyLabeledReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "The number of pods that have labels matching the labels of the pod template of the replicaset.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "readyReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "The number of ready replicas for this replica set.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "availableReplicas": { - SchemaProps: spec.SchemaProps{ - Description: "The number of available replicas (ready for at least minReadySeconds) for this replica set.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Represents the latest available observations of a replica set's current state.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.ReplicaSetCondition"), - }, - }, - }, - }, - }, - }, - Required: []string{"replicas"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.ReplicaSetCondition"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_RollbackConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "revision": { - SchemaProps: spec.SchemaProps{ - Description: "The revision to rollback to. If set to 0, rollback to the last revision.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_extensions_v1beta1_RollingUpdateDaemonSet(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Spec to control the desired behavior of daemon set rolling update.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "maxUnavailable": { - SchemaProps: spec.SchemaProps{ - Description: "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/util/intstr.IntOrString"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_RollingUpdateDeployment(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Spec to control the desired behavior of rolling update.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "maxUnavailable": { - SchemaProps: spec.SchemaProps{ - Description: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. By default, a fixed value of 1 is used. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - "maxSurge": { - SchemaProps: spec.SchemaProps{ - Description: "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. By default, a value of 1 is used. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/util/intstr.IntOrString"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_RunAsGroupStrategyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use RunAsGroupStrategyOptions from policy API Group instead.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "rule": { - SchemaProps: spec.SchemaProps{ - Description: "rule is the strategy that will dictate the allowable RunAsGroup values that may be set.", - Type: []string{"string"}, - Format: "", - }, - }, - "ranges": { - SchemaProps: spec.SchemaProps{ - Description: "ranges are the allowed ranges of gids that may be used. If you would like to force a single gid then supply a single range with the same start and end. Required for MustRunAs.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.IDRange"), - }, - }, - }, - }, - }, - }, - Required: []string{"rule"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.IDRange"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_RunAsUserStrategyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use RunAsUserStrategyOptions from policy API Group instead.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "rule": { - SchemaProps: spec.SchemaProps{ - Description: "rule is the strategy that will dictate the allowable RunAsUser values that may be set.", - Type: []string{"string"}, - Format: "", - }, - }, - "ranges": { - SchemaProps: spec.SchemaProps{ - Description: "ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.IDRange"), - }, - }, - }, - }, - }, - }, - Required: []string{"rule"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.IDRange"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_RuntimeClassStrategyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RuntimeClassStrategyOptions define the strategy that will dictate the allowable RuntimeClasses for a pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "allowedRuntimeClassNames": { - SchemaProps: spec.SchemaProps{ - Description: "allowedRuntimeClassNames is an allowlist of RuntimeClass names that may be specified on a pod. A value of \"*\" means that any RuntimeClass name is allowed, and must be the only item in the list. An empty list requires the RuntimeClassName field to be unset.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "defaultRuntimeClassName": { - SchemaProps: spec.SchemaProps{ - Description: "defaultRuntimeClassName is the default RuntimeClassName to set on the pod. The default MUST be allowed by the allowedRuntimeClassNames list. A value of nil does not mutate the Pod.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"allowedRuntimeClassNames"}, - }, - }, - } -} - -func schema_k8sio_api_extensions_v1beta1_SELinuxStrategyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SELinuxStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use SELinuxStrategyOptions from policy API Group instead.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "rule": { - SchemaProps: spec.SchemaProps{ - Description: "rule is the strategy that will dictate the allowable labels that may be set.", - Type: []string{"string"}, - Format: "", - }, - }, - "seLinuxOptions": { - SchemaProps: spec.SchemaProps{ - Description: "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/", - Ref: ref("k8s.io/api/core/v1.SELinuxOptions"), - }, - }, - }, - Required: []string{"rule"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.SELinuxOptions"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_Scale(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "represents a scaling request for a resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.", - Ref: ref("k8s.io/api/extensions/v1beta1.ScaleSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.", - Ref: ref("k8s.io/api/extensions/v1beta1.ScaleStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.ScaleSpec", "k8s.io/api/extensions/v1beta1.ScaleStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_extensions_v1beta1_ScaleSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "describes the attributes of a scale subresource", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "desired number of instances for the scaled object.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_extensions_v1beta1_ScaleStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "represents the current status of a scale subresource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "replicas": { - SchemaProps: spec.SchemaProps{ - Description: "actual number of observed instances of the scaled object.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "targetSelector": { - SchemaProps: spec.SchemaProps{ - Description: "label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"replicas"}, - }, - }, - } -} - -func schema_k8sio_api_extensions_v1beta1_SupplementalGroupsStrategyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use SupplementalGroupsStrategyOptions from policy API Group instead.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "rule": { - SchemaProps: spec.SchemaProps{ - Description: "rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.", - Type: []string{"string"}, - Format: "", - }, - }, - "ranges": { - SchemaProps: spec.SchemaProps{ - Description: "ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/extensions/v1beta1.IDRange"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/extensions/v1beta1.IDRange"}, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_FlowDistinguisherMethod(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "FlowDistinguisherMethod specifies the method of a flow distinguisher.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "`type` is the type of flow distinguisher method The supported types are \"ByUser\" and \"ByNamespace\". Required.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type"}, - }, - }, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_FlowSchema(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "`spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.FlowSchemaSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "`status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.FlowSchemaStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/flowcontrol/v1alpha1.FlowSchemaSpec", "k8s.io/api/flowcontrol/v1alpha1.FlowSchemaStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_FlowSchemaCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "FlowSchemaCondition describes conditions for a FlowSchema.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "`type` is the type of the condition. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "`status` is the status of the condition. Can be True, False, Unknown. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "`lastTransitionTime` is the last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "`reason` is a unique, one-word, CamelCase reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "`message` is a human-readable message indicating details about last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_FlowSchemaList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "FlowSchemaList is a list of FlowSchema objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "`metadata` is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "`items` is a list of FlowSchemas.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.FlowSchema"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/flowcontrol/v1alpha1.FlowSchema", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_FlowSchemaSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "FlowSchemaSpec describes how the FlowSchema's specification looks like.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "priorityLevelConfiguration": { - SchemaProps: spec.SchemaProps{ - Description: "`priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required.", - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.PriorityLevelConfigurationReference"), - }, - }, - "matchingPrecedence": { - SchemaProps: spec.SchemaProps{ - Description: "`matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence. Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "distinguisherMethod": { - SchemaProps: spec.SchemaProps{ - Description: "`distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string.", - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.FlowDistinguisherMethod"), - }, - }, - "rules": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "`rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.PolicyRulesWithSubjects"), - }, - }, - }, - }, - }, - }, - Required: []string{"priorityLevelConfiguration"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/flowcontrol/v1alpha1.FlowDistinguisherMethod", "k8s.io/api/flowcontrol/v1alpha1.PolicyRulesWithSubjects", "k8s.io/api/flowcontrol/v1alpha1.PriorityLevelConfigurationReference"}, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_FlowSchemaStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "FlowSchemaStatus represents the current state of a FlowSchema.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "`conditions` is a list of the current states of FlowSchema.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.FlowSchemaCondition"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/flowcontrol/v1alpha1.FlowSchemaCondition"}, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_GroupSubject(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GroupSubject holds detailed information for group-kind subject.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is the user group that matches, or \"*\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"name"}, - }, - }, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_LimitResponse(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LimitResponse defines how to handle requests that can not be executed right now.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "`type` is \"Queue\" or \"Reject\". \"Queue\" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. \"Reject\" means that requests that can not be executed upon arrival are rejected. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - "queuing": { - SchemaProps: spec.SchemaProps{ - Description: "`queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `\"Queue\"`.", - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.QueuingConfiguration"), - }, - }, - }, - Required: []string{"type"}, - }, - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-unions": []interface{}{ - map[string]interface{}{ - "discriminator": "type", - "fields-to-discriminateBy": map[string]interface{}{ - "queuing": "Queuing", - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/flowcontrol/v1alpha1.QueuingConfiguration"}, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_LimitedPriorityLevelConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues:\n * How are requests for this priority level limited?\n * What should be done with requests that exceed the limit?", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "assuredConcurrencyShares": { - SchemaProps: spec.SchemaProps{ - Description: "`assuredConcurrencyShares` (ACS) configures the execution limit, which is a limit on the number of requests of this priority level that may be exeucting at a given time. ACS must be a positive number. The server's concurrency limit (SCL) is divided among the concurrency-controlled priority levels in proportion to their assured concurrency shares. This produces the assured concurrency value (ACV) --- the number of requests that may be executing at a time --- for each such priority level:\n\n ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) )\n\nbigger numbers of ACS mean more reserved concurrent requests (at the expense of every other PL). This field has a default value of 30.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "limitResponse": { - SchemaProps: spec.SchemaProps{ - Description: "`limitResponse` indicates what to do with requests that can not be executed right now", - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.LimitResponse"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/flowcontrol/v1alpha1.LimitResponse"}, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_NonResourcePolicyRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "verbs": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "`verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs. If it is present, it must be the only entry. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "nonResourceURLs": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "`nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example:\n - \"/healthz\" is legal\n - \"/hea*\" is illegal\n - \"/hea\" is legal but matches nothing\n - \"/hea/*\" also matches nothing\n - \"/healthz/*\" matches all per-component health checks.\n\"*\" matches all non-resource urls. if it is present, it must be the only entry. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"verbs", "nonResourceURLs"}, - }, - }, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_PolicyRulesWithSubjects(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "subjects": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.Subject"), - }, - }, - }, - }, - }, - "resourceRules": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "`resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.ResourcePolicyRule"), - }, - }, - }, - }, - }, - "nonResourceRules": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "`nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.NonResourcePolicyRule"), - }, - }, - }, - }, - }, - }, - Required: []string{"subjects"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/flowcontrol/v1alpha1.NonResourcePolicyRule", "k8s.io/api/flowcontrol/v1alpha1.ResourcePolicyRule", "k8s.io/api/flowcontrol/v1alpha1.Subject"}, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_PriorityLevelConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PriorityLevelConfiguration represents the configuration of a priority level.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "`spec` is the specification of the desired behavior of a \"request-priority\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.PriorityLevelConfigurationSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "`status` is the current status of a \"request-priority\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.PriorityLevelConfigurationStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/flowcontrol/v1alpha1.PriorityLevelConfigurationSpec", "k8s.io/api/flowcontrol/v1alpha1.PriorityLevelConfigurationStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_PriorityLevelConfigurationCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PriorityLevelConfigurationCondition defines the condition of priority level.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "`type` is the type of the condition. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "`status` is the status of the condition. Can be True, False, Unknown. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "`lastTransitionTime` is the last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "`reason` is a unique, one-word, CamelCase reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "`message` is a human-readable message indicating details about last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_PriorityLevelConfigurationList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "`items` is a list of request-priorities.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.PriorityLevelConfiguration"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/flowcontrol/v1alpha1.PriorityLevelConfiguration", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_PriorityLevelConfigurationReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "`name` is the name of the priority level configuration being referenced Required.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"name"}, - }, - }, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_PriorityLevelConfigurationSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PriorityLevelConfigurationSpec specifies the configuration of a priority level.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "`type` indicates whether this priority level is subject to limitation on request execution. A value of `\"Exempt\"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels. A value of `\"Limited\"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - "limited": { - SchemaProps: spec.SchemaProps{ - Description: "`limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `\"Limited\"`.", - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.LimitedPriorityLevelConfiguration"), - }, - }, - }, - Required: []string{"type"}, - }, - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-unions": []interface{}{ - map[string]interface{}{ - "discriminator": "type", - "fields-to-discriminateBy": map[string]interface{}{ - "limited": "Limited", - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/flowcontrol/v1alpha1.LimitedPriorityLevelConfiguration"}, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_PriorityLevelConfigurationStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "`conditions` is the current state of \"request-priority\".", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.PriorityLevelConfigurationCondition"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/flowcontrol/v1alpha1.PriorityLevelConfigurationCondition"}, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_QueuingConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "QueuingConfiguration holds the configuration parameters for queuing", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "queues": { - SchemaProps: spec.SchemaProps{ - Description: "`queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive. Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant. This field has a default value of 64.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "handSize": { - SchemaProps: spec.SchemaProps{ - Description: "`handSize` is a small positive number that configures the shuffle sharding of requests into queues. When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here. The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues). See the user-facing documentation for more extensive guidance on setting this field. This field has a default value of 8.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "queueLengthLimit": { - SchemaProps: spec.SchemaProps{ - Description: "`queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected. This value must be positive. If not specified, it will be defaulted to 50.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_ResourcePolicyRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) least one member of namespaces matches the request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "verbs": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "`verbs` is a list of matching verbs and may not be empty. \"*\" matches all verbs and, if present, must be the only entry. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "apiGroups": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "`apiGroups` is a list of matching API groups and may not be empty. \"*\" matches all API groups and, if present, must be the only entry. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resources": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "`resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource. For example, [ \"services\", \"nodes/status\" ]. This list may not be empty. \"*\" matches all resources and, if present, must be the only entry. Required.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "clusterScope": { - SchemaProps: spec.SchemaProps{ - Description: "`clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "namespaces": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "`namespaces` is a list of target namespaces that restricts matches. A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains \"*\". Note that \"*\" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"verbs", "apiGroups", "resources"}, - }, - }, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_ServiceAccountSubject(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceAccountSubject holds detailed information for service-account-kind subject.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "`namespace` is the namespace of matching ServiceAccount objects. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "`name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"namespace", "name"}, - }, - }, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_Subject(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Required", - Type: []string{"string"}, - Format: "", - }, - }, - "user": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.UserSubject"), - }, - }, - "group": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.GroupSubject"), - }, - }, - "serviceAccount": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/flowcontrol/v1alpha1.ServiceAccountSubject"), - }, - }, - }, - Required: []string{"kind"}, - }, - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-unions": []interface{}{ - map[string]interface{}{ - "discriminator": "kind", - "fields-to-discriminateBy": map[string]interface{}{ - "group": "Group", - "serviceAccount": "ServiceAccount", - "user": "User", - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/flowcontrol/v1alpha1.GroupSubject", "k8s.io/api/flowcontrol/v1alpha1.ServiceAccountSubject", "k8s.io/api/flowcontrol/v1alpha1.UserSubject"}, - } -} - -func schema_k8sio_api_flowcontrol_v1alpha1_UserSubject(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "UserSubject holds detailed information for user-kind subject.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "`name` is the username that matches, or \"*\" to match all usernames. Required.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"name"}, - }, - }, - } -} - -func schema_k8sio_api_imagepolicy_v1alpha1_ImageReview(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ImageReview checks if the set of images in a pod are allowed.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec holds information about the pod being evaluated", - Ref: ref("k8s.io/api/imagepolicy/v1alpha1.ImageReviewSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is filled in by the backend and indicates whether the pod should be allowed.", - Ref: ref("k8s.io/api/imagepolicy/v1alpha1.ImageReviewStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/imagepolicy/v1alpha1.ImageReviewSpec", "k8s.io/api/imagepolicy/v1alpha1.ImageReviewStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_imagepolicy_v1alpha1_ImageReviewContainerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ImageReviewContainerSpec is a description of a container within the pod creation request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "image": { - SchemaProps: spec.SchemaProps{ - Description: "This can be in the form image:tag or image@SHA:012345679abcdef.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_imagepolicy_v1alpha1_ImageReviewSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ImageReviewSpec is a description of the pod creation request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "containers": { - SchemaProps: spec.SchemaProps{ - Description: "Containers is a list of a subset of the information in each container of the Pod being created.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/imagepolicy/v1alpha1.ImageReviewContainerSpec"), - }, - }, - }, - }, - }, - "annotations": { - SchemaProps: spec.SchemaProps{ - Description: "Annotations is a list of key-value pairs extracted from the Pod's annotations. It only includes keys which match the pattern `*.image-policy.k8s.io/*`. It is up to each webhook backend to determine how to interpret these annotations, if at all.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "Namespace is the namespace the pod is being created in.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/imagepolicy/v1alpha1.ImageReviewContainerSpec"}, - } -} - -func schema_k8sio_api_imagepolicy_v1alpha1_ImageReviewStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ImageReviewStatus is the result of the review for the pod creation request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "allowed": { - SchemaProps: spec.SchemaProps{ - Description: "Allowed indicates that all images were allowed to be run.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "Reason should be empty unless Allowed is false in which case it may contain a short description of what is wrong. Kubernetes may truncate excessively long errors when displaying to the user.", - Type: []string{"string"}, - Format: "", - }, - }, - "auditAnnotations": { - SchemaProps: spec.SchemaProps{ - Description: "AuditAnnotations will be added to the attributes object of the admission controller request using 'AddAnnotation'. The keys should be prefix-less (i.e., the admission controller will add an appropriate prefix).", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"allowed"}, - }, - }, - } -} - -func schema_k8sio_api_networking_v1_HTTPIngressPath(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "path": { - SchemaProps: spec.SchemaProps{ - Description: "Path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \"path\" part of a URL as defined by RFC 3986. Paths must begin with a '/'. When unspecified, all paths from incoming requests are matched.", - Type: []string{"string"}, - Format: "", - }, - }, - "pathType": { - SchemaProps: spec.SchemaProps{ - Description: "PathType determines the interpretation of the Path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n done on a path element by element basis. A path element refers is the\n list of labels in the path split by the '/' separator. A request is a\n match for path p if every p is an element-wise prefix of p of the\n request path. Note that if the last element of the path is a substring\n of the last element in request path, it is not a match (e.g. /foo/bar\n matches /foo/bar/baz, but does not match /foo/barbaz).\n* ImplementationSpecific: Interpretation of the Path matching is up to\n the IngressClass. Implementations can treat this as a separate PathType\n or treat it identically to Prefix or Exact path types.\nImplementations are required to support all path types.", - Type: []string{"string"}, - Format: "", - }, - }, - "backend": { - SchemaProps: spec.SchemaProps{ - Description: "Backend defines the referenced service endpoint to which the traffic will be forwarded to.", - Ref: ref("k8s.io/api/networking/v1.IngressBackend"), - }, - }, - }, - Required: []string{"backend"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1.IngressBackend"}, - } -} - -func schema_k8sio_api_networking_v1_HTTPIngressRuleValue(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http:///? -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "paths": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "A collection of paths that map requests to backends.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1.HTTPIngressPath"), - }, - }, - }, - }, - }, - }, - Required: []string{"paths"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1.HTTPIngressPath"}, - } -} - -func schema_k8sio_api_networking_v1_IPBlock(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IPBlock describes a particular CIDR (Ex. \"192.168.1.1/24\",\"2001:db9::/64\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "cidr": { - SchemaProps: spec.SchemaProps{ - Description: "CIDR is a string representing the IP Block Valid examples are \"192.168.1.1/24\" or \"2001:db9::/64\"", - Type: []string{"string"}, - Format: "", - }, - }, - "except": { - SchemaProps: spec.SchemaProps{ - Description: "Except is a slice of CIDRs that should not be included within an IP Block Valid examples are \"192.168.1.1/24\" or \"2001:db9::/64\" Except values will be rejected if they are outside the CIDR range", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"cidr"}, - }, - }, - } -} - -func schema_k8sio_api_networking_v1_Ingress(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/networking/v1.IngressSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/networking/v1.IngressStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1.IngressSpec", "k8s.io/api/networking/v1.IngressStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_networking_v1_IngressBackend(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressBackend describes all endpoints for a given service and port.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "service": { - SchemaProps: spec.SchemaProps{ - Description: "Service references a Service as a Backend. This is a mutually exclusive setting with \"Resource\".", - Ref: ref("k8s.io/api/networking/v1.IngressServiceBackend"), - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "Resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, a service.Name and service.Port must not be specified. This is a mutually exclusive setting with \"Service\".", - Ref: ref("k8s.io/api/core/v1.TypedLocalObjectReference"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.TypedLocalObjectReference", "k8s.io/api/networking/v1.IngressServiceBackend"}, - } -} - -func schema_k8sio_api_networking_v1_IngressClass(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/networking/v1.IngressClassSpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1.IngressClassSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_networking_v1_IngressClassList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressClassList is a collection of IngressClasses.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of IngressClasses.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1.IngressClass"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1.IngressClass", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_networking_v1_IngressClassSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressClassSpec provides information about the class of an Ingress.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "controller": { - SchemaProps: spec.SchemaProps{ - Description: "Controller refers to the name of the controller that should handle this class. This allows for different \"flavors\" that are controlled by the same controller. For example, you may have different Parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \"acme.io/ingress-controller\". This field is immutable.", - Type: []string{"string"}, - Format: "", - }, - }, - "parameters": { - SchemaProps: spec.SchemaProps{ - Description: "Parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters.", - Ref: ref("k8s.io/api/core/v1.TypedLocalObjectReference"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.TypedLocalObjectReference"}, - } -} - -func schema_k8sio_api_networking_v1_IngressList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressList is a collection of Ingress.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of Ingress.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1.Ingress"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1.Ingress", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_networking_v1_IngressRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "host": { - SchemaProps: spec.SchemaProps{ - Description: "Host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \"host\" part of the URI as defined in RFC 3986: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n the IP in the Spec of the parent Ingress.\n2. The `:` delimiter is not respected because ports are not allowed.\n\t Currently the port of an Ingress is implicitly :80 for http and\n\t :443 for https.\nBoth these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.\n\nHost can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. \"*.foo.com\"). The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\"). Requests will be matched against the Host field in the following way: 1. If Host is precise, the request matches this rule if the http host header is equal to Host. 2. If Host is a wildcard, then the request matches this rule if the http host header is to equal to the suffix (removing the first label) of the wildcard rule.", - Type: []string{"string"}, - Format: "", - }, - }, - "http": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1.HTTPIngressRuleValue"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1.HTTPIngressRuleValue"}, - } -} - -func schema_k8sio_api_networking_v1_IngressRuleValue(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressRuleValue represents a rule to apply against incoming requests. If the rule is satisfied, the request is routed to the specified backend. Currently mixing different types of rules in a single Ingress is disallowed, so exactly one of the following must be set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "http": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1.HTTPIngressRuleValue"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1.HTTPIngressRuleValue"}, - } -} - -func schema_k8sio_api_networking_v1_IngressServiceBackend(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressServiceBackend references a Kubernetes Service as a Backend.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name is the referenced service. The service must exist in the same namespace as the Ingress object.", - Type: []string{"string"}, - Format: "", - }, - }, - "port": { - SchemaProps: spec.SchemaProps{ - Description: "Port of the referenced service. A port name or port number is required for a IngressServiceBackend.", - Ref: ref("k8s.io/api/networking/v1.ServiceBackendPort"), - }, - }, - }, - Required: []string{"name"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1.ServiceBackendPort"}, - } -} - -func schema_k8sio_api_networking_v1_IngressSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressSpec describes the Ingress the user wishes to exist.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ingressClassName": { - SchemaProps: spec.SchemaProps{ - Description: "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", - Type: []string{"string"}, - Format: "", - }, - }, - "defaultBackend": { - SchemaProps: spec.SchemaProps{ - Description: "DefaultBackend is the backend that should handle requests that don't match any rule. If Rules are not specified, DefaultBackend must be specified. If DefaultBackend is not set, the handling of requests that do not match any of the rules will be up to the Ingress controller.", - Ref: ref("k8s.io/api/networking/v1.IngressBackend"), - }, - }, - "tls": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1.IngressTLS"), - }, - }, - }, - }, - }, - "rules": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1.IngressRule"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1.IngressBackend", "k8s.io/api/networking/v1.IngressRule", "k8s.io/api/networking/v1.IngressTLS"}, - } -} - -func schema_k8sio_api_networking_v1_IngressStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressStatus describe the current state of the Ingress.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "loadBalancer": { - SchemaProps: spec.SchemaProps{ - Description: "LoadBalancer contains the current status of the load-balancer.", - Ref: ref("k8s.io/api/core/v1.LoadBalancerStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.LoadBalancerStatus"}, - } -} - -func schema_k8sio_api_networking_v1_IngressTLS(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressTLS describes the transport layer security associated with an Ingress.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "hosts": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Hosts are a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "secretName": { - SchemaProps: spec.SchemaProps{ - Description: "SecretName is the name of the secret used to terminate TLS traffic on port 443. Field is left optional to allow TLS routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \"Host\" header field used by an IngressRule, the SNI host is used for termination and value of the Host header is used for routing.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_networking_v1_NetworkPolicy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NetworkPolicy describes what network traffic is allowed for a set of Pods", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the desired behavior for this NetworkPolicy.", - Ref: ref("k8s.io/api/networking/v1.NetworkPolicySpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1.NetworkPolicySpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_networking_v1_NetworkPolicyEgressRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ports": { - SchemaProps: spec.SchemaProps{ - Description: "List of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1.NetworkPolicyPort"), - }, - }, - }, - }, - }, - "to": { - SchemaProps: spec.SchemaProps{ - Description: "List of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1.NetworkPolicyPeer"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1.NetworkPolicyPeer", "k8s.io/api/networking/v1.NetworkPolicyPort"}, - } -} - -func schema_k8sio_api_networking_v1_NetworkPolicyIngressRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ports": { - SchemaProps: spec.SchemaProps{ - Description: "List of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1.NetworkPolicyPort"), - }, - }, - }, - }, - }, - "from": { - SchemaProps: spec.SchemaProps{ - Description: "List of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all sources (traffic not restricted by source). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the from list.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1.NetworkPolicyPeer"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1.NetworkPolicyPeer", "k8s.io/api/networking/v1.NetworkPolicyPort"}, - } -} - -func schema_k8sio_api_networking_v1_NetworkPolicyList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NetworkPolicyList is a list of NetworkPolicy objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of schema objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1.NetworkPolicy"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1.NetworkPolicy", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_networking_v1_NetworkPolicyPeer(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "podSelector": { - SchemaProps: spec.SchemaProps{ - Description: "This is a label selector which selects Pods. This field follows standard label selector semantics; if present but empty, it selects all pods.\n\nIf NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the Pods matching PodSelector in the policy's own Namespace.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "namespaceSelector": { - SchemaProps: spec.SchemaProps{ - Description: "Selects Namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces.\n\nIf PodSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "ipBlock": { - SchemaProps: spec.SchemaProps{ - Description: "IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.", - Ref: ref("k8s.io/api/networking/v1.IPBlock"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1.IPBlock", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_networking_v1_NetworkPolicyPort(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NetworkPolicyPort describes a port to allow traffic on", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "protocol": { - SchemaProps: spec.SchemaProps{ - Description: "The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", - Type: []string{"string"}, - Format: "", - }, - }, - "port": { - SchemaProps: spec.SchemaProps{ - Description: "The port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers.", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/util/intstr.IntOrString"}, - } -} - -func schema_k8sio_api_networking_v1_NetworkPolicySpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NetworkPolicySpec provides the specification of a NetworkPolicy", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "podSelector": { - SchemaProps: spec.SchemaProps{ - Description: "Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "ingress": { - SchemaProps: spec.SchemaProps{ - Description: "List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1.NetworkPolicyIngressRule"), - }, - }, - }, - }, - }, - "egress": { - SchemaProps: spec.SchemaProps{ - Description: "List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1.NetworkPolicyEgressRule"), - }, - }, - }, - }, - }, - "policyTypes": { - SchemaProps: spec.SchemaProps{ - Description: "List of rule types that the NetworkPolicy relates to. Valid options are \"Ingress\", \"Egress\", or \"Ingress,Egress\". If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an Egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"podSelector"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1.NetworkPolicyEgressRule", "k8s.io/api/networking/v1.NetworkPolicyIngressRule", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_networking_v1_ServiceBackendPort(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceBackendPort is the service port being referenced.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name is the name of the port on the Service. This is a mutually exclusive setting with \"Number\".", - Type: []string{"string"}, - Format: "", - }, - }, - "number": { - SchemaProps: spec.SchemaProps{ - Description: "Number is the numerical port number (e.g. 80) on the Service. This is a mutually exclusive setting with \"Name\".", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_networking_v1beta1_HTTPIngressPath(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "path": { - SchemaProps: spec.SchemaProps{ - Description: "Path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \"path\" part of a URL as defined by RFC 3986. Paths must begin with a '/'. When unspecified, all paths from incoming requests are matched.", - Type: []string{"string"}, - Format: "", - }, - }, - "pathType": { - SchemaProps: spec.SchemaProps{ - Description: "PathType determines the interpretation of the Path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n done on a path element by element basis. A path element refers is the\n list of labels in the path split by the '/' separator. A request is a\n match for path p if every p is an element-wise prefix of p of the\n request path. Note that if the last element of the path is a substring\n of the last element in request path, it is not a match (e.g. /foo/bar\n matches /foo/bar/baz, but does not match /foo/barbaz).\n* ImplementationSpecific: Interpretation of the Path matching is up to\n the IngressClass. Implementations can treat this as a separate PathType\n or treat it identically to Prefix or Exact path types.\nImplementations are required to support all path types. Defaults to ImplementationSpecific.", - Type: []string{"string"}, - Format: "", - }, - }, - "backend": { - SchemaProps: spec.SchemaProps{ - Description: "Backend defines the referenced service endpoint to which the traffic will be forwarded to.", - Ref: ref("k8s.io/api/networking/v1beta1.IngressBackend"), - }, - }, - }, - Required: []string{"backend"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1beta1.IngressBackend"}, - } -} - -func schema_k8sio_api_networking_v1beta1_HTTPIngressRuleValue(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http:///? -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "paths": { - SchemaProps: spec.SchemaProps{ - Description: "A collection of paths that map requests to backends.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1beta1.HTTPIngressPath"), - }, - }, - }, - }, - }, - }, - Required: []string{"paths"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1beta1.HTTPIngressPath"}, - } -} - -func schema_k8sio_api_networking_v1beta1_Ingress(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/networking/v1beta1.IngressSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/networking/v1beta1.IngressStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1beta1.IngressSpec", "k8s.io/api/networking/v1beta1.IngressStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_networking_v1beta1_IngressBackend(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressBackend describes all endpoints for a given service and port.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "serviceName": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the name of the referenced service.", - Type: []string{"string"}, - Format: "", - }, - }, - "servicePort": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the port of the referenced service.", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "Resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified.", - Ref: ref("k8s.io/api/core/v1.TypedLocalObjectReference"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.TypedLocalObjectReference", "k8s.io/apimachinery/pkg/util/intstr.IntOrString"}, - } -} - -func schema_k8sio_api_networking_v1beta1_IngressClass(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/networking/v1beta1.IngressClassSpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1beta1.IngressClassSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_networking_v1beta1_IngressClassList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressClassList is a collection of IngressClasses.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of IngressClasses.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1beta1.IngressClass"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1beta1.IngressClass", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_networking_v1beta1_IngressClassSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressClassSpec provides information about the class of an Ingress.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "controller": { - SchemaProps: spec.SchemaProps{ - Description: "Controller refers to the name of the controller that should handle this class. This allows for different \"flavors\" that are controlled by the same controller. For example, you may have different Parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \"acme.io/ingress-controller\". This field is immutable.", - Type: []string{"string"}, - Format: "", - }, - }, - "parameters": { - SchemaProps: spec.SchemaProps{ - Description: "Parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters.", - Ref: ref("k8s.io/api/core/v1.TypedLocalObjectReference"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.TypedLocalObjectReference"}, - } -} - -func schema_k8sio_api_networking_v1beta1_IngressList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressList is a collection of Ingress.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of Ingress.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1beta1.Ingress"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1beta1.Ingress", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_networking_v1beta1_IngressRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "host": { - SchemaProps: spec.SchemaProps{ - Description: "Host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \"host\" part of the URI as defined in RFC 3986: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n the IP in the Spec of the parent Ingress.\n2. The `:` delimiter is not respected because ports are not allowed.\n\t Currently the port of an Ingress is implicitly :80 for http and\n\t :443 for https.\nBoth these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.\n\nHost can be \"precise\" which is a domain name without the terminating dot of a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name prefixed with a single wildcard label (e.g. \"*.foo.com\"). The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\"). Requests will be matched against the Host field in the following way: 1. If Host is precise, the request matches this rule if the http host header is equal to Host. 2. If Host is a wildcard, then the request matches this rule if the http host header is to equal to the suffix (removing the first label) of the wildcard rule.", - Type: []string{"string"}, - Format: "", - }, - }, - "http": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1beta1.HTTPIngressRuleValue"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1beta1.HTTPIngressRuleValue"}, - } -} - -func schema_k8sio_api_networking_v1beta1_IngressRuleValue(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressRuleValue represents a rule to apply against incoming requests. If the rule is satisfied, the request is routed to the specified backend. Currently mixing different types of rules in a single Ingress is disallowed, so exactly one of the following must be set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "http": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1beta1.HTTPIngressRuleValue"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1beta1.HTTPIngressRuleValue"}, - } -} - -func schema_k8sio_api_networking_v1beta1_IngressSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressSpec describes the Ingress the user wishes to exist.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ingressClassName": { - SchemaProps: spec.SchemaProps{ - Description: "IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.", - Type: []string{"string"}, - Format: "", - }, - }, - "backend": { - SchemaProps: spec.SchemaProps{ - Description: "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default.", - Ref: ref("k8s.io/api/networking/v1beta1.IngressBackend"), - }, - }, - "tls": { - SchemaProps: spec.SchemaProps{ - Description: "TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1beta1.IngressTLS"), - }, - }, - }, - }, - }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/networking/v1beta1.IngressRule"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/networking/v1beta1.IngressBackend", "k8s.io/api/networking/v1beta1.IngressRule", "k8s.io/api/networking/v1beta1.IngressTLS"}, - } -} - -func schema_k8sio_api_networking_v1beta1_IngressStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressStatus describe the current state of the Ingress.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "loadBalancer": { - SchemaProps: spec.SchemaProps{ - Description: "LoadBalancer contains the current status of the load-balancer.", - Ref: ref("k8s.io/api/core/v1.LoadBalancerStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.LoadBalancerStatus"}, - } -} - -func schema_k8sio_api_networking_v1beta1_IngressTLS(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IngressTLS describes the transport layer security associated with an Ingress.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "hosts": { - SchemaProps: spec.SchemaProps{ - Description: "Hosts are a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "secretName": { - SchemaProps: spec.SchemaProps{ - Description: "SecretName is the name of the secret used to terminate TLS traffic on port 443. Field is left optional to allow TLS routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \"Host\" header field used by an IngressRule, the SNI host is used for termination and value of the Host header is used for routing.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_node_v1alpha1_Overhead(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Overhead structure represents the resource overhead associated with running a pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "podFixed": { - SchemaProps: spec.SchemaProps{ - Description: "PodFixed represents the fixed resource overhead associated with running a pod.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_node_v1alpha1_RuntimeClass(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are (currently) manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod. For more details, see https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the RuntimeClass More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Ref: ref("k8s.io/api/node/v1alpha1.RuntimeClassSpec"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/node/v1alpha1.RuntimeClassSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_node_v1alpha1_RuntimeClassList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RuntimeClassList is a list of RuntimeClass objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of schema objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/node/v1alpha1.RuntimeClass"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/node/v1alpha1.RuntimeClass", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_node_v1alpha1_RuntimeClassSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RuntimeClassSpec is a specification of a RuntimeClass. It contains parameters that are required to describe the RuntimeClass to the Container Runtime Interface (CRI) implementation, as well as any other components that need to understand how the pod will be run. The RuntimeClassSpec is immutable.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "runtimeHandler": { - SchemaProps: spec.SchemaProps{ - Description: "RuntimeHandler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node & CRI configuration. It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \"runc\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The RuntimeHandler must conform to the DNS Label (RFC 1123) requirements and is immutable.", - Type: []string{"string"}, - Format: "", - }, - }, - "overhead": { - SchemaProps: spec.SchemaProps{ - Description: "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.15, and is only honored by servers that enable the PodOverhead feature.", - Ref: ref("k8s.io/api/node/v1alpha1.Overhead"), - }, - }, - "scheduling": { - SchemaProps: spec.SchemaProps{ - Description: "Scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes.", - Ref: ref("k8s.io/api/node/v1alpha1.Scheduling"), - }, - }, - }, - Required: []string{"runtimeHandler"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/node/v1alpha1.Overhead", "k8s.io/api/node/v1alpha1.Scheduling"}, - } -} - -func schema_k8sio_api_node_v1alpha1_Scheduling(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "nodeSelector": { - SchemaProps: spec.SchemaProps{ - Description: "nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "tolerations": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.Toleration"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.Toleration"}, - } -} - -func schema_k8sio_api_node_v1beta1_Overhead(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Overhead structure represents the resource overhead associated with running a pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "podFixed": { - SchemaProps: spec.SchemaProps{ - Description: "PodFixed represents the fixed resource overhead associated with running a pod.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_k8sio_api_node_v1beta1_RuntimeClass(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are (currently) manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod. For more details, see https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "handler": { - SchemaProps: spec.SchemaProps{ - Description: "Handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node & CRI configuration. It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \"runc\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must conform to the DNS Label (RFC 1123) requirements, and is immutable.", - Type: []string{"string"}, - Format: "", - }, - }, - "overhead": { - SchemaProps: spec.SchemaProps{ - Description: "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md This field is alpha-level as of Kubernetes v1.15, and is only honored by servers that enable the PodOverhead feature.", - Ref: ref("k8s.io/api/node/v1beta1.Overhead"), - }, - }, - "scheduling": { - SchemaProps: spec.SchemaProps{ - Description: "Scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes.", - Ref: ref("k8s.io/api/node/v1beta1.Scheduling"), - }, - }, - }, - Required: []string{"handler"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/node/v1beta1.Overhead", "k8s.io/api/node/v1beta1.Scheduling", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_node_v1beta1_RuntimeClassList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RuntimeClassList is a list of RuntimeClass objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of schema objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/node/v1beta1.RuntimeClass"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/node/v1beta1.RuntimeClass", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_node_v1beta1_Scheduling(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "nodeSelector": { - SchemaProps: spec.SchemaProps{ - Description: "nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "tolerations": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.Toleration"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.Toleration"}, - } -} - -func schema_k8sio_api_policy_v1beta1_AllowedCSIDriver(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "AllowedCSIDriver represents a single inline CSI Driver that is allowed to be used.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name is the registered name of the CSI driver", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"name"}, - }, - }, - } -} - -func schema_k8sio_api_policy_v1beta1_AllowedFlexVolume(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "AllowedFlexVolume represents a single Flexvolume that is allowed to be used.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "driver": { - SchemaProps: spec.SchemaProps{ - Description: "driver is the name of the Flexvolume driver.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"driver"}, - }, - }, - } -} - -func schema_k8sio_api_policy_v1beta1_AllowedHostPath(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "pathPrefix": { - SchemaProps: spec.SchemaProps{ - Description: "pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`", - Type: []string{"string"}, - Format: "", - }, - }, - "readOnly": { - SchemaProps: spec.SchemaProps{ - Description: "when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_policy_v1beta1_Eviction(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods//evictions.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "ObjectMeta describes the pod that is being evicted.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "deleteOptions": { - SchemaProps: spec.SchemaProps{ - Description: "DeleteOptions may be provided", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.DeleteOptions"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.DeleteOptions", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_policy_v1beta1_FSGroupStrategyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "FSGroupStrategyOptions defines the strategy type and options used to create the strategy.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "rule": { - SchemaProps: spec.SchemaProps{ - Description: "rule is the strategy that will dictate what FSGroup is used in the SecurityContext.", - Type: []string{"string"}, - Format: "", - }, - }, - "ranges": { - SchemaProps: spec.SchemaProps{ - Description: "ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/policy/v1beta1.IDRange"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/policy/v1beta1.IDRange"}, - } -} - -func schema_k8sio_api_policy_v1beta1_HostPortRange(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HostPortRange defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "min": { - SchemaProps: spec.SchemaProps{ - Description: "min is the start of the range, inclusive.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "max": { - SchemaProps: spec.SchemaProps{ - Description: "max is the end of the range, inclusive.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"min", "max"}, - }, - }, - } -} - -func schema_k8sio_api_policy_v1beta1_IDRange(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IDRange provides a min/max of an allowed range of IDs.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "min": { - SchemaProps: spec.SchemaProps{ - Description: "min is the start of the range, inclusive.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "max": { - SchemaProps: spec.SchemaProps{ - Description: "max is the end of the range, inclusive.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - }, - Required: []string{"min", "max"}, - }, - }, - } -} - -func schema_k8sio_api_policy_v1beta1_PodDisruptionBudget(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the desired behavior of the PodDisruptionBudget.", - Ref: ref("k8s.io/api/policy/v1beta1.PodDisruptionBudgetSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Most recently observed status of the PodDisruptionBudget.", - Ref: ref("k8s.io/api/policy/v1beta1.PodDisruptionBudgetStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/policy/v1beta1.PodDisruptionBudgetSpec", "k8s.io/api/policy/v1beta1.PodDisruptionBudgetStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_policy_v1beta1_PodDisruptionBudgetList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodDisruptionBudgetList is a collection of PodDisruptionBudgets.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/policy/v1beta1.PodDisruptionBudget"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/policy/v1beta1.PodDisruptionBudget", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_policy_v1beta1_PodDisruptionBudgetSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "minAvailable": { - SchemaProps: spec.SchemaProps{ - Description: "An eviction is allowed if at least \"minAvailable\" pods selected by \"selector\" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying \"100%\".", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "Label query over pods whose evictions are managed by the disruption budget.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "maxUnavailable": { - SchemaProps: spec.SchemaProps{ - Description: "An eviction is allowed if at most \"maxUnavailable\" pods selected by \"selector\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \"minAvailable\".", - Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector", "k8s.io/apimachinery/pkg/util/intstr.IntOrString"}, - } -} - -func schema_k8sio_api_policy_v1beta1_PodDisruptionBudgetStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "Most recent generation observed when updating this PDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "disruptedPods": { - SchemaProps: spec.SchemaProps{ - Description: "DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - }, - }, - }, - "disruptionsAllowed": { - SchemaProps: spec.SchemaProps{ - Description: "Number of pod disruptions that are currently allowed.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "currentHealthy": { - SchemaProps: spec.SchemaProps{ - Description: "current number of healthy pods", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "desiredHealthy": { - SchemaProps: spec.SchemaProps{ - Description: "minimum desired number of healthy pods", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "expectedPods": { - SchemaProps: spec.SchemaProps{ - Description: "total number of pods counted by this disruption budget", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"disruptionsAllowed", "currentHealthy", "desiredHealthy", "expectedPods"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_policy_v1beta1_PodSecurityPolicy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec defines the policy enforced.", - Ref: ref("k8s.io/api/policy/v1beta1.PodSecurityPolicySpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/policy/v1beta1.PodSecurityPolicySpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_policy_v1beta1_PodSecurityPolicyList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodSecurityPolicyList is a list of PodSecurityPolicy objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is a list of schema objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/policy/v1beta1.PodSecurityPolicy"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/policy/v1beta1.PodSecurityPolicy", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_policy_v1beta1_PodSecurityPolicySpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodSecurityPolicySpec defines the policy enforced.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "privileged": { - SchemaProps: spec.SchemaProps{ - Description: "privileged determines if a pod can request to be run as privileged.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "defaultAddCapabilities": { - SchemaProps: spec.SchemaProps{ - Description: "defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "requiredDropCapabilities": { - SchemaProps: spec.SchemaProps{ - Description: "requiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "allowedCapabilities": { - SchemaProps: spec.SchemaProps{ - Description: "allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "volumes": { - SchemaProps: spec.SchemaProps{ - Description: "volumes is an allowlist of volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "hostNetwork": { - SchemaProps: spec.SchemaProps{ - Description: "hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "hostPorts": { - SchemaProps: spec.SchemaProps{ - Description: "hostPorts determines which host port ranges are allowed to be exposed.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/policy/v1beta1.HostPortRange"), - }, - }, - }, - }, - }, - "hostPID": { - SchemaProps: spec.SchemaProps{ - Description: "hostPID determines if the policy allows the use of HostPID in the pod spec.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "hostIPC": { - SchemaProps: spec.SchemaProps{ - Description: "hostIPC determines if the policy allows the use of HostIPC in the pod spec.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "seLinux": { - SchemaProps: spec.SchemaProps{ - Description: "seLinux is the strategy that will dictate the allowable labels that may be set.", - Ref: ref("k8s.io/api/policy/v1beta1.SELinuxStrategyOptions"), - }, - }, - "runAsUser": { - SchemaProps: spec.SchemaProps{ - Description: "runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.", - Ref: ref("k8s.io/api/policy/v1beta1.RunAsUserStrategyOptions"), - }, - }, - "runAsGroup": { - SchemaProps: spec.SchemaProps{ - Description: "RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set. If this field is omitted, the pod's RunAsGroup can take any value. This field requires the RunAsGroup feature gate to be enabled.", - Ref: ref("k8s.io/api/policy/v1beta1.RunAsGroupStrategyOptions"), - }, - }, - "supplementalGroups": { - SchemaProps: spec.SchemaProps{ - Description: "supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.", - Ref: ref("k8s.io/api/policy/v1beta1.SupplementalGroupsStrategyOptions"), - }, - }, - "fsGroup": { - SchemaProps: spec.SchemaProps{ - Description: "fsGroup is the strategy that will dictate what fs group is used by the SecurityContext.", - Ref: ref("k8s.io/api/policy/v1beta1.FSGroupStrategyOptions"), - }, - }, - "readOnlyRootFilesystem": { - SchemaProps: spec.SchemaProps{ - Description: "readOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "defaultAllowPrivilegeEscalation": { - SchemaProps: spec.SchemaProps{ - Description: "defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "allowPrivilegeEscalation": { - SchemaProps: spec.SchemaProps{ - Description: "allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "allowedHostPaths": { - SchemaProps: spec.SchemaProps{ - Description: "allowedHostPaths is an allowlist of host paths. Empty indicates that all host paths may be used.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/policy/v1beta1.AllowedHostPath"), - }, - }, - }, - }, - }, - "allowedFlexVolumes": { - SchemaProps: spec.SchemaProps{ - Description: "allowedFlexVolumes is an allowlist of Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"volumes\" field.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/policy/v1beta1.AllowedFlexVolume"), - }, - }, - }, - }, - }, - "allowedCSIDrivers": { - SchemaProps: spec.SchemaProps{ - Description: "AllowedCSIDrivers is an allowlist of inline CSI drivers that must be explicitly set to be embedded within a pod spec. An empty value indicates that any CSI driver can be used for inline ephemeral volumes. This is a beta field, and is only honored if the API server enables the CSIInlineVolume feature gate.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/policy/v1beta1.AllowedCSIDriver"), - }, - }, - }, - }, - }, - "allowedUnsafeSysctls": { - SchemaProps: spec.SchemaProps{ - Description: "allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to allowlist all allowed unsafe sysctls explicitly to avoid rejection.\n\nExamples: e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" allows \"foo.bar\", \"foo.baz\", etc.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "forbiddenSysctls": { - SchemaProps: spec.SchemaProps{ - Description: "forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\n\nExamples: e.g. \"foo/*\" forbids \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" forbids \"foo.bar\", \"foo.baz\", etc.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "allowedProcMountTypes": { - SchemaProps: spec.SchemaProps{ - Description: "AllowedProcMountTypes is an allowlist of allowed ProcMountTypes. Empty or nil indicates that only the DefaultProcMountType may be used. This requires the ProcMountType feature flag to be enabled.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "runtimeClass": { - SchemaProps: spec.SchemaProps{ - Description: "runtimeClass is the strategy that will dictate the allowable RuntimeClasses for a pod. If this field is omitted, the pod's runtimeClassName field is unrestricted. Enforcement of this field depends on the RuntimeClass feature gate being enabled.", - Ref: ref("k8s.io/api/policy/v1beta1.RuntimeClassStrategyOptions"), - }, - }, - }, - Required: []string{"seLinux", "runAsUser", "supplementalGroups", "fsGroup"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/policy/v1beta1.AllowedCSIDriver", "k8s.io/api/policy/v1beta1.AllowedFlexVolume", "k8s.io/api/policy/v1beta1.AllowedHostPath", "k8s.io/api/policy/v1beta1.FSGroupStrategyOptions", "k8s.io/api/policy/v1beta1.HostPortRange", "k8s.io/api/policy/v1beta1.RunAsGroupStrategyOptions", "k8s.io/api/policy/v1beta1.RunAsUserStrategyOptions", "k8s.io/api/policy/v1beta1.RuntimeClassStrategyOptions", "k8s.io/api/policy/v1beta1.SELinuxStrategyOptions", "k8s.io/api/policy/v1beta1.SupplementalGroupsStrategyOptions"}, - } -} - -func schema_k8sio_api_policy_v1beta1_RunAsGroupStrategyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "rule": { - SchemaProps: spec.SchemaProps{ - Description: "rule is the strategy that will dictate the allowable RunAsGroup values that may be set.", - Type: []string{"string"}, - Format: "", - }, - }, - "ranges": { - SchemaProps: spec.SchemaProps{ - Description: "ranges are the allowed ranges of gids that may be used. If you would like to force a single gid then supply a single range with the same start and end. Required for MustRunAs.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/policy/v1beta1.IDRange"), - }, - }, - }, - }, - }, - }, - Required: []string{"rule"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/policy/v1beta1.IDRange"}, - } -} - -func schema_k8sio_api_policy_v1beta1_RunAsUserStrategyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "rule": { - SchemaProps: spec.SchemaProps{ - Description: "rule is the strategy that will dictate the allowable RunAsUser values that may be set.", - Type: []string{"string"}, - Format: "", - }, - }, - "ranges": { - SchemaProps: spec.SchemaProps{ - Description: "ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/policy/v1beta1.IDRange"), - }, - }, - }, - }, - }, - }, - Required: []string{"rule"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/policy/v1beta1.IDRange"}, - } -} - -func schema_k8sio_api_policy_v1beta1_RuntimeClassStrategyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RuntimeClassStrategyOptions define the strategy that will dictate the allowable RuntimeClasses for a pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "allowedRuntimeClassNames": { - SchemaProps: spec.SchemaProps{ - Description: "allowedRuntimeClassNames is an allowlist of RuntimeClass names that may be specified on a pod. A value of \"*\" means that any RuntimeClass name is allowed, and must be the only item in the list. An empty list requires the RuntimeClassName field to be unset.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "defaultRuntimeClassName": { - SchemaProps: spec.SchemaProps{ - Description: "defaultRuntimeClassName is the default RuntimeClassName to set on the pod. The default MUST be allowed by the allowedRuntimeClassNames list. A value of nil does not mutate the Pod.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"allowedRuntimeClassNames"}, - }, - }, - } -} - -func schema_k8sio_api_policy_v1beta1_SELinuxStrategyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SELinuxStrategyOptions defines the strategy type and any options used to create the strategy.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "rule": { - SchemaProps: spec.SchemaProps{ - Description: "rule is the strategy that will dictate the allowable labels that may be set.", - Type: []string{"string"}, - Format: "", - }, - }, - "seLinuxOptions": { - SchemaProps: spec.SchemaProps{ - Description: "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/", - Ref: ref("k8s.io/api/core/v1.SELinuxOptions"), - }, - }, - }, - Required: []string{"rule"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.SELinuxOptions"}, - } -} - -func schema_k8sio_api_policy_v1beta1_SupplementalGroupsStrategyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "rule": { - SchemaProps: spec.SchemaProps{ - Description: "rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.", - Type: []string{"string"}, - Format: "", - }, - }, - "ranges": { - SchemaProps: spec.SchemaProps{ - Description: "ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/policy/v1beta1.IDRange"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/policy/v1beta1.IDRange"}, - } -} - -func schema_k8sio_api_rbac_v1_AggregationRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "clusterRoleSelectors": { - SchemaProps: spec.SchemaProps{ - Description: "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_rbac_v1_ClusterRole(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "Rules holds all the PolicyRules for this ClusterRole", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1.PolicyRule"), - }, - }, - }, - }, - }, - "aggregationRule": { - SchemaProps: spec.SchemaProps{ - Description: "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.", - Ref: ref("k8s.io/api/rbac/v1.AggregationRule"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1.AggregationRule", "k8s.io/api/rbac/v1.PolicyRule", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_rbac_v1_ClusterRoleBinding(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "subjects": { - SchemaProps: spec.SchemaProps{ - Description: "Subjects holds references to the objects the role applies to.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1.Subject"), - }, - }, - }, - }, - }, - "roleRef": { - SchemaProps: spec.SchemaProps{ - Description: "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.", - Ref: ref("k8s.io/api/rbac/v1.RoleRef"), - }, - }, - }, - Required: []string{"roleRef"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1.RoleRef", "k8s.io/api/rbac/v1.Subject", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_rbac_v1_ClusterRoleBindingList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ClusterRoleBindingList is a collection of ClusterRoleBindings", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of ClusterRoleBindings", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1.ClusterRoleBinding"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1.ClusterRoleBinding", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_rbac_v1_ClusterRoleList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ClusterRoleList is a collection of ClusterRoles", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of ClusterRoles", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1.ClusterRole"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1.ClusterRole", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_rbac_v1_PolicyRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "verbs": { - SchemaProps: spec.SchemaProps{ - Description: "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "apiGroups": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources is a list of resources this rule applies to. ResourceAll represents all resources.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resourceNames": { - SchemaProps: spec.SchemaProps{ - Description: "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "nonResourceURLs": { - SchemaProps: spec.SchemaProps{ - Description: "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"verbs"}, - }, - }, - } -} - -func schema_k8sio_api_rbac_v1_Role(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "Rules holds all the PolicyRules for this Role", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1.PolicyRule"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1.PolicyRule", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_rbac_v1_RoleBinding(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "subjects": { - SchemaProps: spec.SchemaProps{ - Description: "Subjects holds references to the objects the role applies to.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1.Subject"), - }, - }, - }, - }, - }, - "roleRef": { - SchemaProps: spec.SchemaProps{ - Description: "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.", - Ref: ref("k8s.io/api/rbac/v1.RoleRef"), - }, - }, - }, - Required: []string{"roleRef"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1.RoleRef", "k8s.io/api/rbac/v1.Subject", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_rbac_v1_RoleBindingList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleBindingList is a collection of RoleBindings", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of RoleBindings", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1.RoleBinding"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1.RoleBinding", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_rbac_v1_RoleList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleList is a collection of Roles", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of Roles", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1.Role"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1.Role", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_rbac_v1_RoleRef(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleRef contains information that points to the role being used", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "apiGroup": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroup is the group for the resource being referenced", - Type: []string{"string"}, - Format: "", - }, - }, - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is the type of resource being referenced", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name is the name of resource being referenced", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"apiGroup", "kind", "name"}, - }, - }, - } -} - -func schema_k8sio_api_rbac_v1_Subject(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.", - Type: []string{"string"}, - Format: "", - }, - }, - "apiGroup": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroup holds the API group of the referenced subject. Defaults to \"\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the object being referenced.", - Type: []string{"string"}, - Format: "", - }, - }, - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"kind", "name"}, - }, - }, - } -} - -func schema_k8sio_api_rbac_v1alpha1_AggregationRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "clusterRoleSelectors": { - SchemaProps: spec.SchemaProps{ - Description: "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_rbac_v1alpha1_ClusterRole(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "Rules holds all the PolicyRules for this ClusterRole", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1alpha1.PolicyRule"), - }, - }, - }, - }, - }, - "aggregationRule": { - SchemaProps: spec.SchemaProps{ - Description: "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.", - Ref: ref("k8s.io/api/rbac/v1alpha1.AggregationRule"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1alpha1.AggregationRule", "k8s.io/api/rbac/v1alpha1.PolicyRule", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_rbac_v1alpha1_ClusterRoleBinding(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "subjects": { - SchemaProps: spec.SchemaProps{ - Description: "Subjects holds references to the objects the role applies to.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1alpha1.Subject"), - }, - }, - }, - }, - }, - "roleRef": { - SchemaProps: spec.SchemaProps{ - Description: "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.", - Ref: ref("k8s.io/api/rbac/v1alpha1.RoleRef"), - }, - }, - }, - Required: []string{"roleRef"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1alpha1.RoleRef", "k8s.io/api/rbac/v1alpha1.Subject", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_rbac_v1alpha1_ClusterRoleBindingList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindings, and will no longer be served in v1.22.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of ClusterRoleBindings", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1alpha1.ClusterRoleBinding"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1alpha1.ClusterRoleBinding", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_rbac_v1alpha1_ClusterRoleList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.22.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of ClusterRoles", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1alpha1.ClusterRole"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1alpha1.ClusterRole", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_rbac_v1alpha1_PolicyRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "verbs": { - SchemaProps: spec.SchemaProps{ - Description: "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "apiGroups": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources is a list of resources this rule applies to. ResourceAll represents all resources.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resourceNames": { - SchemaProps: spec.SchemaProps{ - Description: "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "nonResourceURLs": { - SchemaProps: spec.SchemaProps{ - Description: "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"verbs"}, - }, - }, - } -} - -func schema_k8sio_api_rbac_v1alpha1_Role(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "Rules holds all the PolicyRules for this Role", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1alpha1.PolicyRule"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1alpha1.PolicyRule", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_rbac_v1alpha1_RoleBinding(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "subjects": { - SchemaProps: spec.SchemaProps{ - Description: "Subjects holds references to the objects the role applies to.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1alpha1.Subject"), - }, - }, - }, - }, - }, - "roleRef": { - SchemaProps: spec.SchemaProps{ - Description: "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.", - Ref: ref("k8s.io/api/rbac/v1alpha1.RoleRef"), - }, - }, - }, - Required: []string{"roleRef"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1alpha1.RoleRef", "k8s.io/api/rbac/v1alpha1.Subject", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_rbac_v1alpha1_RoleBindingList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.22.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of RoleBindings", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1alpha1.RoleBinding"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1alpha1.RoleBinding", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_rbac_v1alpha1_RoleList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleList is a collection of Roles. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.22.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of Roles", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1alpha1.Role"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1alpha1.Role", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_rbac_v1alpha1_RoleRef(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleRef contains information that points to the role being used", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "apiGroup": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroup is the group for the resource being referenced", - Type: []string{"string"}, - Format: "", - }, - }, - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is the type of resource being referenced", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name is the name of resource being referenced", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"apiGroup", "kind", "name"}, - }, - }, - } -} - -func schema_k8sio_api_rbac_v1alpha1_Subject(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion holds the API group and version of the referenced subject. Defaults to \"v1\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io/v1alpha1\" for User and Group subjects.", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the object being referenced.", - Type: []string{"string"}, - Format: "", - }, - }, - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"kind", "name"}, - }, - }, - } -} - -func schema_k8sio_api_rbac_v1beta1_AggregationRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "clusterRoleSelectors": { - SchemaProps: spec.SchemaProps{ - Description: "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_rbac_v1beta1_ClusterRole(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "Rules holds all the PolicyRules for this ClusterRole", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1beta1.PolicyRule"), - }, - }, - }, - }, - }, - "aggregationRule": { - SchemaProps: spec.SchemaProps{ - Description: "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.", - Ref: ref("k8s.io/api/rbac/v1beta1.AggregationRule"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1beta1.AggregationRule", "k8s.io/api/rbac/v1beta1.PolicyRule", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_rbac_v1beta1_ClusterRoleBinding(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "subjects": { - SchemaProps: spec.SchemaProps{ - Description: "Subjects holds references to the objects the role applies to.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1beta1.Subject"), - }, - }, - }, - }, - }, - "roleRef": { - SchemaProps: spec.SchemaProps{ - Description: "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.", - Ref: ref("k8s.io/api/rbac/v1beta1.RoleRef"), - }, - }, - }, - Required: []string{"roleRef"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1beta1.RoleRef", "k8s.io/api/rbac/v1beta1.Subject", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_rbac_v1beta1_ClusterRoleBindingList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in v1.22.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of ClusterRoleBindings", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1beta1.ClusterRoleBinding"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1beta1.ClusterRoleBinding", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_rbac_v1beta1_ClusterRoleList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.22.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of ClusterRoles", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1beta1.ClusterRole"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1beta1.ClusterRole", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_rbac_v1beta1_PolicyRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "verbs": { - SchemaProps: spec.SchemaProps{ - Description: "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "apiGroups": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resourceNames": { - SchemaProps: spec.SchemaProps{ - Description: "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "nonResourceURLs": { - SchemaProps: spec.SchemaProps{ - Description: "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"verbs"}, - }, - }, - } -} - -func schema_k8sio_api_rbac_v1beta1_Role(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "Rules holds all the PolicyRules for this Role", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1beta1.PolicyRule"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1beta1.PolicyRule", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_rbac_v1beta1_RoleBinding(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "subjects": { - SchemaProps: spec.SchemaProps{ - Description: "Subjects holds references to the objects the role applies to.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1beta1.Subject"), - }, - }, - }, - }, - }, - "roleRef": { - SchemaProps: spec.SchemaProps{ - Description: "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.", - Ref: ref("k8s.io/api/rbac/v1beta1.RoleRef"), - }, - }, - }, - Required: []string{"roleRef"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1beta1.RoleRef", "k8s.io/api/rbac/v1beta1.Subject", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_rbac_v1beta1_RoleBindingList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.22.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of RoleBindings", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1beta1.RoleBinding"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1beta1.RoleBinding", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_rbac_v1beta1_RoleList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleList is a collection of Roles Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.22.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of Roles", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/rbac/v1beta1.Role"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1beta1.Role", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_rbac_v1beta1_RoleRef(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleRef contains information that points to the role being used", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "apiGroup": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroup is the group for the resource being referenced", - Type: []string{"string"}, - Format: "", - }, - }, - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is the type of resource being referenced", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name is the name of resource being referenced", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"apiGroup", "kind", "name"}, - }, - }, - } -} - -func schema_k8sio_api_rbac_v1beta1_Subject(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.", - Type: []string{"string"}, - Format: "", - }, - }, - "apiGroup": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroup holds the API group of the referenced subject. Defaults to \"\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the object being referenced.", - Type: []string{"string"}, - Format: "", - }, - }, - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"kind", "name"}, - }, - }, - } -} - -func schema_k8sio_api_scheduling_v1_PriorityClass(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Description: "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "globalDefault": { - SchemaProps: spec.SchemaProps{ - Description: "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", - Type: []string{"string"}, - Format: "", - }, - }, - "preemptionPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"value"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_scheduling_v1_PriorityClassList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PriorityClassList is a collection of priority classes.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is the list of PriorityClasses", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/scheduling/v1.PriorityClass"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/scheduling/v1.PriorityClass", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_scheduling_v1alpha1_PriorityClass(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass. PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Description: "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "globalDefault": { - SchemaProps: spec.SchemaProps{ - Description: "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", - Type: []string{"string"}, - Format: "", - }, - }, - "preemptionPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"value"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_scheduling_v1alpha1_PriorityClassList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PriorityClassList is a collection of priority classes.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is the list of PriorityClasses", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/scheduling/v1alpha1.PriorityClass"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/scheduling/v1alpha1.PriorityClass", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_scheduling_v1beta1_PriorityClass(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass. PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Description: "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "globalDefault": { - SchemaProps: spec.SchemaProps{ - Description: "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", - Type: []string{"string"}, - Format: "", - }, - }, - "preemptionPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"value"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_scheduling_v1beta1_PriorityClassList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PriorityClassList is a collection of priority classes.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is the list of PriorityClasses", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/scheduling/v1beta1.PriorityClass"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/scheduling/v1beta1.PriorityClass", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_settings_v1alpha1_PodPreset(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodPreset is a policy resource that defines additional runtime requirements for a Pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/settings/v1alpha1.PodPresetSpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/settings/v1alpha1.PodPresetSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_settings_v1alpha1_PodPresetList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodPresetList is a list of PodPreset objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is a list of schema objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/settings/v1alpha1.PodPreset"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/settings/v1alpha1.PodPreset", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_settings_v1alpha1_PodPresetSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodPresetSpec is a description of a pod preset.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "Selector is a label query over a set of resources, in this case pods. Required.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "env": { - SchemaProps: spec.SchemaProps{ - Description: "Env defines the collection of EnvVar to inject into containers.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.EnvVar"), - }, - }, - }, - }, - }, - "envFrom": { - SchemaProps: spec.SchemaProps{ - Description: "EnvFrom defines the collection of EnvFromSource to inject into containers.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.EnvFromSource"), - }, - }, - }, - }, - }, - "volumes": { - SchemaProps: spec.SchemaProps{ - Description: "Volumes defines the collection of Volume to inject into the pod.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.Volume"), - }, - }, - }, - }, - }, - "volumeMounts": { - SchemaProps: spec.SchemaProps{ - Description: "VolumeMounts defines the collection of VolumeMount to inject into containers.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.VolumeMount"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Volume", "k8s.io/api/core/v1.VolumeMount", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_k8sio_api_storage_v1_CSIDriver(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the CSI Driver.", - Ref: ref("k8s.io/api/storage/v1.CSIDriverSpec"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1.CSIDriverSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_storage_v1_CSIDriverList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CSIDriverList is a collection of CSIDriver objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is the list of CSIDriver", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/storage/v1.CSIDriver"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1.CSIDriver", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_storage_v1_CSIDriverSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CSIDriverSpec is the specification of a CSIDriver.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "attachRequired": { - SchemaProps: spec.SchemaProps{ - Description: "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "podInfoOnMount": { - SchemaProps: spec.SchemaProps{ - Description: "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "volumeLifecycleModes": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future. This field is beta.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "storageCapacity": { - SchemaProps: spec.SchemaProps{ - Description: "If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.\n\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\n\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\n\nThis is an alpha field and only available when the CSIStorageCapacity feature is enabled. The default is false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "fsGroupPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field is alpha-level, and is only honored by servers that enable the CSIVolumeFSGroupPolicy feature gate.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_storage_v1_CSINode(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata.name must be the Kubernetes node name.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec is the specification of CSINode", - Ref: ref("k8s.io/api/storage/v1.CSINodeSpec"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1.CSINodeSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_storage_v1_CSINodeDriver(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CSINodeDriver holds information about the specification of one CSI driver installed on a node", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "This is the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.", - Type: []string{"string"}, - Format: "", - }, - }, - "nodeID": { - SchemaProps: spec.SchemaProps{ - Description: "nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.", - Type: []string{"string"}, - Format: "", - }, - }, - "topologyKeys": { - SchemaProps: spec.SchemaProps{ - Description: "topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \"company.com/zone\", \"company.com/region\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "allocatable": { - SchemaProps: spec.SchemaProps{ - Description: "allocatable represents the volume resources of a node that are available for scheduling. This field is beta.", - Ref: ref("k8s.io/api/storage/v1.VolumeNodeResources"), - }, - }, - }, - Required: []string{"name", "nodeID"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1.VolumeNodeResources"}, - } -} - -func schema_k8sio_api_storage_v1_CSINodeList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CSINodeList is a collection of CSINode objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is the list of CSINode", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/storage/v1.CSINode"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1.CSINode", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_storage_v1_CSINodeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CSINodeSpec holds information about the specification of all CSI drivers installed on a node", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "drivers": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/storage/v1.CSINodeDriver"), - }, - }, - }, - }, - }, - }, - Required: []string{"drivers"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1.CSINodeDriver"}, - } -} - -func schema_k8sio_api_storage_v1_StorageClass(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "provisioner": { - SchemaProps: spec.SchemaProps{ - Description: "Provisioner indicates the type of the provisioner.", - Type: []string{"string"}, - Format: "", - }, - }, - "parameters": { - SchemaProps: spec.SchemaProps{ - Description: "Parameters holds the parameters for the provisioner that should create volumes of this storage class.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "reclaimPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", - Type: []string{"string"}, - Format: "", - }, - }, - "mountOptions": { - SchemaProps: spec.SchemaProps{ - Description: "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "allowVolumeExpansion": { - SchemaProps: spec.SchemaProps{ - Description: "AllowVolumeExpansion shows whether the storage class allow volume expand", - Type: []string{"boolean"}, - Format: "", - }, - }, - "volumeBindingMode": { - SchemaProps: spec.SchemaProps{ - Description: "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.", - Type: []string{"string"}, - Format: "", - }, - }, - "allowedTopologies": { - SchemaProps: spec.SchemaProps{ - Description: "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.TopologySelectorTerm"), - }, - }, - }, - }, - }, - }, - Required: []string{"provisioner"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.TopologySelectorTerm", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_storage_v1_StorageClassList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StorageClassList is a collection of storage classes.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of StorageClasses", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/storage/v1.StorageClass"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1.StorageClass", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_storage_v1_VolumeAttachment(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.", - Ref: ref("k8s.io/api/storage/v1.VolumeAttachmentSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.", - Ref: ref("k8s.io/api/storage/v1.VolumeAttachmentStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1.VolumeAttachmentSpec", "k8s.io/api/storage/v1.VolumeAttachmentStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_storage_v1_VolumeAttachmentList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeAttachmentList is a collection of VolumeAttachment objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of VolumeAttachments", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/storage/v1.VolumeAttachment"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1.VolumeAttachment", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_storage_v1_VolumeAttachmentSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "persistentVolumeName": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the persistent volume to attach.", - Type: []string{"string"}, - Format: "", - }, - }, - "inlineVolumeSpec": { - SchemaProps: spec.SchemaProps{ - Description: "inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is alpha-level and is only honored by servers that enabled the CSIMigration feature.", - Ref: ref("k8s.io/api/core/v1.PersistentVolumeSpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PersistentVolumeSpec"}, - } -} - -func schema_k8sio_api_storage_v1_VolumeAttachmentSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "attacher": { - SchemaProps: spec.SchemaProps{ - Description: "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", - Type: []string{"string"}, - Format: "", - }, - }, - "source": { - SchemaProps: spec.SchemaProps{ - Description: "Source represents the volume that should be attached.", - Ref: ref("k8s.io/api/storage/v1.VolumeAttachmentSource"), - }, - }, - "nodeName": { - SchemaProps: spec.SchemaProps{ - Description: "The node that the volume should be attached to.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"attacher", "source", "nodeName"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1.VolumeAttachmentSource"}, - } -} - -func schema_k8sio_api_storage_v1_VolumeAttachmentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeAttachmentStatus is the status of a VolumeAttachment request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "attached": { - SchemaProps: spec.SchemaProps{ - Description: "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "attachmentMetadata": { - SchemaProps: spec.SchemaProps{ - Description: "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "attachError": { - SchemaProps: spec.SchemaProps{ - Description: "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - Ref: ref("k8s.io/api/storage/v1.VolumeError"), - }, - }, - "detachError": { - SchemaProps: spec.SchemaProps{ - Description: "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher.", - Ref: ref("k8s.io/api/storage/v1.VolumeError"), - }, - }, - }, - Required: []string{"attached"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1.VolumeError"}, - } -} - -func schema_k8sio_api_storage_v1_VolumeError(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeError captures an error encountered during a volume operation.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "time": { - SchemaProps: spec.SchemaProps{ - Description: "Time the error was encountered.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_storage_v1_VolumeNodeResources(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeNodeResources is a set of resource limits for scheduling of volumes.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "count": { - SchemaProps: spec.SchemaProps{ - Description: "Maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is not specified, then the supported number of volumes on this node is unbounded.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_storage_v1alpha1_CSIStorageCapacity(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CSIStorageCapacity stores the result of one CSI GetCapacity call. For a given StorageClass, this describes the available capacity in a particular topology segment. This can be used when considering where to instantiate new PersistentVolumes.\n\nFor example this can express things like: - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\" - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n\nThe following three cases all imply that no capacity is available for a certain combination: - no object exists with suitable topology and storage class name - such an object exists, but the capacity is unset - such an object exists, but the capacity is zero\n\nThe producer of these objects can decide which approach is more suitable.\n\nThis is an alpha feature and only available when the CSIStorageCapacity feature is enabled.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. The name has no particular meaning. It must be be a DNS subdomain (dots allowed, 253 characters). To ensure that there are no conflicts with other CSI drivers on the cluster, the recommendation is to use csisc-, a generated name, or a reverse-domain name which ends with the unique CSI driver name.\n\nObjects are namespaced.\n\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "nodeTopology": { - SchemaProps: spec.SchemaProps{ - Description: "NodeTopology defines which nodes have access to the storage for which capacity was reported. If not set, the storage is not accessible from any node in the cluster. If empty, the storage is accessible from all nodes. This field is immutable.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - "storageClassName": { - SchemaProps: spec.SchemaProps{ - Description: "The name of the StorageClass that the reported capacity applies to. It must meet the same requirements as the name of a StorageClass object (non-empty, DNS subdomain). If that object no longer exists, the CSIStorageCapacity object is obsolete and should be removed by its creator. This field is immutable.", - Type: []string{"string"}, - Format: "", - }, - }, - "capacity": { - SchemaProps: spec.SchemaProps{ - Description: "Capacity is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\n\nThe semantic is currently (CSI spec 1.2) defined as: The available capacity, in bytes, of the storage that can be used to provision volumes. If not set, that information is currently unavailable and treated like zero capacity.", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - Required: []string{"storageClassName"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_storage_v1alpha1_CSIStorageCapacityList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CSIStorageCapacityList is a collection of CSIStorageCapacity objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "name", - }, - "x-kubernetes-list-type": "map", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of CSIStorageCapacity objects.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/storage/v1alpha1.CSIStorageCapacity"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1alpha1.CSIStorageCapacity", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_storage_v1alpha1_VolumeAttachment(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.", - Ref: ref("k8s.io/api/storage/v1alpha1.VolumeAttachmentSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.", - Ref: ref("k8s.io/api/storage/v1alpha1.VolumeAttachmentStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1alpha1.VolumeAttachmentSpec", "k8s.io/api/storage/v1alpha1.VolumeAttachmentStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_storage_v1alpha1_VolumeAttachmentList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeAttachmentList is a collection of VolumeAttachment objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of VolumeAttachments", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/storage/v1alpha1.VolumeAttachment"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1alpha1.VolumeAttachment", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_storage_v1alpha1_VolumeAttachmentSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "persistentVolumeName": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the persistent volume to attach.", - Type: []string{"string"}, - Format: "", - }, - }, - "inlineVolumeSpec": { - SchemaProps: spec.SchemaProps{ - Description: "inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is alpha-level and is only honored by servers that enabled the CSIMigration feature.", - Ref: ref("k8s.io/api/core/v1.PersistentVolumeSpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PersistentVolumeSpec"}, - } -} - -func schema_k8sio_api_storage_v1alpha1_VolumeAttachmentSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "attacher": { - SchemaProps: spec.SchemaProps{ - Description: "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", - Type: []string{"string"}, - Format: "", - }, - }, - "source": { - SchemaProps: spec.SchemaProps{ - Description: "Source represents the volume that should be attached.", - Ref: ref("k8s.io/api/storage/v1alpha1.VolumeAttachmentSource"), - }, - }, - "nodeName": { - SchemaProps: spec.SchemaProps{ - Description: "The node that the volume should be attached to.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"attacher", "source", "nodeName"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1alpha1.VolumeAttachmentSource"}, - } -} - -func schema_k8sio_api_storage_v1alpha1_VolumeAttachmentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeAttachmentStatus is the status of a VolumeAttachment request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "attached": { - SchemaProps: spec.SchemaProps{ - Description: "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "attachmentMetadata": { - SchemaProps: spec.SchemaProps{ - Description: "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "attachError": { - SchemaProps: spec.SchemaProps{ - Description: "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - Ref: ref("k8s.io/api/storage/v1alpha1.VolumeError"), - }, - }, - "detachError": { - SchemaProps: spec.SchemaProps{ - Description: "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher.", - Ref: ref("k8s.io/api/storage/v1alpha1.VolumeError"), - }, - }, - }, - Required: []string{"attached"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1alpha1.VolumeError"}, - } -} - -func schema_k8sio_api_storage_v1alpha1_VolumeError(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeError captures an error encountered during a volume operation.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "time": { - SchemaProps: spec.SchemaProps{ - Description: "Time the error was encountered.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "String detailing the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_storage_v1beta1_CSIDriver(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. CSI drivers do not need to create the CSIDriver object directly. Instead they may use the cluster-driver-registrar sidecar container. When deployed with a CSI driver it automatically creates a CSIDriver object representing the driver. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the CSI Driver.", - Ref: ref("k8s.io/api/storage/v1beta1.CSIDriverSpec"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1beta1.CSIDriverSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_storage_v1beta1_CSIDriverList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CSIDriverList is a collection of CSIDriver objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is the list of CSIDriver", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/storage/v1beta1.CSIDriver"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1beta1.CSIDriver", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_storage_v1beta1_CSIDriverSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CSIDriverSpec is the specification of a CSIDriver.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "attachRequired": { - SchemaProps: spec.SchemaProps{ - Description: "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "podInfoOnMount": { - SchemaProps: spec.SchemaProps{ - Description: "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "volumeLifecycleModes": { - SchemaProps: spec.SchemaProps{ - Description: "VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "storageCapacity": { - SchemaProps: spec.SchemaProps{ - Description: "If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.\n\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\n\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\n\nThis is an alpha field and only available when the CSIStorageCapacity feature is enabled. The default is false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "fsGroupPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field is alpha-level, and is only honored by servers that enable the CSIVolumeFSGroupPolicy feature gate.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_api_storage_v1beta1_CSINode(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED - This group version of CSINode is deprecated by storage/v1/CSINode. See the release notes for more information. CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata.name must be the Kubernetes node name.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec is the specification of CSINode", - Ref: ref("k8s.io/api/storage/v1beta1.CSINodeSpec"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1beta1.CSINodeSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_storage_v1beta1_CSINodeDriver(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CSINodeDriver holds information about the specification of one CSI driver installed on a node", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "This is the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.", - Type: []string{"string"}, - Format: "", - }, - }, - "nodeID": { - SchemaProps: spec.SchemaProps{ - Description: "nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \"node1\", but the storage system may refer to the same node as \"nodeA\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \"nodeA\" instead of \"node1\". This field is required.", - Type: []string{"string"}, - Format: "", - }, - }, - "topologyKeys": { - SchemaProps: spec.SchemaProps{ - Description: "topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \"company.com/zone\", \"company.com/region\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "allocatable": { - SchemaProps: spec.SchemaProps{ - Description: "allocatable represents the volume resources of a node that are available for scheduling.", - Ref: ref("k8s.io/api/storage/v1beta1.VolumeNodeResources"), - }, - }, - }, - Required: []string{"name", "nodeID"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1beta1.VolumeNodeResources"}, - } -} - -func schema_k8sio_api_storage_v1beta1_CSINodeList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CSINodeList is a collection of CSINode objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items is the list of CSINode", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/storage/v1beta1.CSINode"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1beta1.CSINode", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_storage_v1beta1_CSINodeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CSINodeSpec holds information about the specification of all CSI drivers installed on a node", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "drivers": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/storage/v1beta1.CSINodeDriver"), - }, - }, - }, - }, - }, - }, - Required: []string{"drivers"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1beta1.CSINodeDriver"}, - } -} - -func schema_k8sio_api_storage_v1beta1_StorageClass(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "provisioner": { - SchemaProps: spec.SchemaProps{ - Description: "Provisioner indicates the type of the provisioner.", - Type: []string{"string"}, - Format: "", - }, - }, - "parameters": { - SchemaProps: spec.SchemaProps{ - Description: "Parameters holds the parameters for the provisioner that should create volumes of this storage class.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "reclaimPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", - Type: []string{"string"}, - Format: "", - }, - }, - "mountOptions": { - SchemaProps: spec.SchemaProps{ - Description: "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "allowVolumeExpansion": { - SchemaProps: spec.SchemaProps{ - Description: "AllowVolumeExpansion shows whether the storage class allow volume expand", - Type: []string{"boolean"}, - Format: "", - }, - }, - "volumeBindingMode": { - SchemaProps: spec.SchemaProps{ - Description: "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.", - Type: []string{"string"}, - Format: "", - }, - }, - "allowedTopologies": { - SchemaProps: spec.SchemaProps{ - Description: "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.TopologySelectorTerm"), - }, - }, - }, - }, - }, - }, - Required: []string{"provisioner"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.TopologySelectorTerm", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_storage_v1beta1_StorageClassList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StorageClassList is a collection of storage classes.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of StorageClasses", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/storage/v1beta1.StorageClass"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1beta1.StorageClass", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_storage_v1beta1_VolumeAttachment(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.", - Ref: ref("k8s.io/api/storage/v1beta1.VolumeAttachmentSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.", - Ref: ref("k8s.io/api/storage/v1beta1.VolumeAttachmentStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1beta1.VolumeAttachmentSpec", "k8s.io/api/storage/v1beta1.VolumeAttachmentStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_k8sio_api_storage_v1beta1_VolumeAttachmentList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeAttachmentList is a collection of VolumeAttachment objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "Items is the list of VolumeAttachments", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/storage/v1beta1.VolumeAttachment"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1beta1.VolumeAttachment", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_k8sio_api_storage_v1beta1_VolumeAttachmentSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "persistentVolumeName": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the persistent volume to attach.", - Type: []string{"string"}, - Format: "", - }, - }, - "inlineVolumeSpec": { - SchemaProps: spec.SchemaProps{ - Description: "inlineVolumeSpec contains all the information necessary to attach a persistent volume defined by a pod's inline VolumeSource. This field is populated only for the CSIMigration feature. It contains translated fields from a pod's inline VolumeSource to a PersistentVolumeSpec. This field is alpha-level and is only honored by servers that enabled the CSIMigration feature.", - Ref: ref("k8s.io/api/core/v1.PersistentVolumeSpec"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.PersistentVolumeSpec"}, - } -} - -func schema_k8sio_api_storage_v1beta1_VolumeAttachmentSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "attacher": { - SchemaProps: spec.SchemaProps{ - Description: "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", - Type: []string{"string"}, - Format: "", - }, - }, - "source": { - SchemaProps: spec.SchemaProps{ - Description: "Source represents the volume that should be attached.", - Ref: ref("k8s.io/api/storage/v1beta1.VolumeAttachmentSource"), - }, - }, - "nodeName": { - SchemaProps: spec.SchemaProps{ - Description: "The node that the volume should be attached to.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"attacher", "source", "nodeName"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1beta1.VolumeAttachmentSource"}, - } -} - -func schema_k8sio_api_storage_v1beta1_VolumeAttachmentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeAttachmentStatus is the status of a VolumeAttachment request.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "attached": { - SchemaProps: spec.SchemaProps{ - Description: "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "attachmentMetadata": { - SchemaProps: spec.SchemaProps{ - Description: "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "attachError": { - SchemaProps: spec.SchemaProps{ - Description: "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - Ref: ref("k8s.io/api/storage/v1beta1.VolumeError"), - }, - }, - "detachError": { - SchemaProps: spec.SchemaProps{ - Description: "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher.", - Ref: ref("k8s.io/api/storage/v1beta1.VolumeError"), - }, - }, - }, - Required: []string{"attached"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/storage/v1beta1.VolumeError"}, - } -} - -func schema_k8sio_api_storage_v1beta1_VolumeError(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeError captures an error encountered during a volume operation.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "time": { - SchemaProps: spec.SchemaProps{ - Description: "Time the error was encountered.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_k8sio_api_storage_v1beta1_VolumeNodeResources(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeNodeResources is a set of resource limits for scheduling of volumes.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "count": { - SchemaProps: spec.SchemaProps{ - Description: "Maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is nil, then the supported number of volumes on this node is unbounded.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1_ConversionRequest(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ConversionRequest describes the conversion request parameters.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "uid": { - SchemaProps: spec.SchemaProps{ - Description: "uid is an identifier for the individual request/response. It allows distinguishing instances of requests which are otherwise identical (parallel requests, etc). The UID is meant to track the round trip (request/response) between the Kubernetes API server and the webhook, not the user request. It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.", - Type: []string{"string"}, - Format: "", - }, - }, - "desiredAPIVersion": { - SchemaProps: spec.SchemaProps{ - Description: "desiredAPIVersion is the version to convert given objects to. e.g. \"myapi.example.com/v1\"", - Type: []string{"string"}, - Format: "", - }, - }, - "objects": { - SchemaProps: spec.SchemaProps{ - Description: "objects is the list of custom resource objects to be converted.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), - }, - }, - }, - }, - }, - }, - Required: []string{"uid", "desiredAPIVersion", "objects"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/runtime.RawExtension"}, - } -} - -func schema_pkg_apis_apiextensions_v1_ConversionResponse(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ConversionResponse describes a conversion response.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "uid": { - SchemaProps: spec.SchemaProps{ - Description: "uid is an identifier for the individual request/response. This should be copied over from the corresponding `request.uid`.", - Type: []string{"string"}, - Format: "", - }, - }, - "convertedObjects": { - SchemaProps: spec.SchemaProps{ - Description: "convertedObjects is the list of converted version of `request.objects` if the `result` is successful, otherwise empty. The webhook is expected to set `apiVersion` of these objects to the `request.desiredAPIVersion`. The list must also have the same size as the input list with the same objects in the same order (equal kind, metadata.uid, metadata.name and metadata.namespace). The webhook is allowed to mutate labels and annotations. Any other change to the metadata is silently ignored.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), - }, - }, - }, - }, - }, - "result": { - SchemaProps: spec.SchemaProps{ - Description: "result contains the result of conversion with extra details if the conversion failed. `result.status` determines if the conversion failed or succeeded. The `result.status` field is required and represents the success or failure of the conversion. A successful conversion must set `result.status` to `Success`. A failed conversion must set `result.status` to `Failure` and provide more details in `result.message` and return http status 200. The `result.message` will be used to construct an error message for the end user.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Status"), - }, - }, - }, - Required: []string{"uid", "convertedObjects", "result"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Status", "k8s.io/apimachinery/pkg/runtime.RawExtension"}, - } -} - -func schema_pkg_apis_apiextensions_v1_ConversionReview(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ConversionReview describes a conversion request/response.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "request": { - SchemaProps: spec.SchemaProps{ - Description: "request describes the attributes for the conversion request.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.ConversionRequest"), - }, - }, - "response": { - SchemaProps: spec.SchemaProps{ - Description: "response describes the attributes for the conversion response.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.ConversionResponse"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.ConversionRequest", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.ConversionResponse"}, - } -} - -func schema_pkg_apis_apiextensions_v1_CustomResourceColumnDefinition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceColumnDefinition specifies a column for server side printing.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is a human readable name for the column.", - Type: []string{"string"}, - Format: "", - }, - }, - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - Type: []string{"string"}, - Format: "", - }, - }, - "format": { - SchemaProps: spec.SchemaProps{ - Description: "format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - Type: []string{"string"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description is a human readable description of this column.", - Type: []string{"string"}, - Format: "", - }, - }, - "priority": { - SchemaProps: spec.SchemaProps{ - Description: "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "jsonPath": { - SchemaProps: spec.SchemaProps{ - Description: "jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"name", "type", "jsonPath"}, - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1_CustomResourceConversion(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceConversion describes how to convert different versions of a CR.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "strategy": { - SchemaProps: spec.SchemaProps{ - Description: "strategy specifies how custom resources are converted between versions. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information\n is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set.", - Type: []string{"string"}, - Format: "", - }, - }, - "webhook": { - SchemaProps: spec.SchemaProps{ - Description: "webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.WebhookConversion"), - }, - }, - }, - Required: []string{"strategy"}, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.WebhookConversion"}, - } -} - -func schema_pkg_apis_apiextensions_v1_CustomResourceDefinition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format <.spec.name>.<.spec.group>.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec describes how the user wants the resources to appear", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status indicates the actual state of the CustomResourceDefinition", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionSpec", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_pkg_apis_apiextensions_v1_CustomResourceDefinitionCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceDefinitionCondition contains details for the current condition of this pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type is the type of the condition. Types include Established, NamesAccepted and Terminating.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status is the status of the condition. Can be True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "lastTransitionTime last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "reason is a unique, one-word, CamelCase reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "message is a human-readable message indicating details about last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_pkg_apis_apiextensions_v1_CustomResourceDefinitionList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceDefinitionList is a list of CustomResourceDefinition objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items list individual CustomResourceDefinition objects", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinition"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinition", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_pkg_apis_apiextensions_v1_CustomResourceDefinitionNames(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "plural": { - SchemaProps: spec.SchemaProps{ - Description: "plural is the plural name of the resource to serve. The custom resources are served under `/apis///.../`. Must match the name of the CustomResourceDefinition (in the form `.`). Must be all lowercase.", - Type: []string{"string"}, - Format: "", - }, - }, - "singular": { - SchemaProps: spec.SchemaProps{ - Description: "singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.", - Type: []string{"string"}, - Format: "", - }, - }, - "shortNames": { - SchemaProps: spec.SchemaProps{ - Description: "shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get `. It must be all lowercase.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.", - Type: []string{"string"}, - Format: "", - }, - }, - "listKind": { - SchemaProps: spec.SchemaProps{ - Description: "listKind is the serialized kind of the list for this resource. Defaults to \"`kind`List\".", - Type: []string{"string"}, - Format: "", - }, - }, - "categories": { - SchemaProps: spec.SchemaProps{ - Description: "categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"plural", "kind"}, - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1_CustomResourceDefinitionSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceDefinitionSpec describes how a user wants their resource to appear", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "group": { - SchemaProps: spec.SchemaProps{ - Description: "group is the API group of the defined custom resource. The custom resources are served under `/apis//...`. Must match the name of the CustomResourceDefinition (in the form `.`).", - Type: []string{"string"}, - Format: "", - }, - }, - "names": { - SchemaProps: spec.SchemaProps{ - Description: "names specify the resource and kind names for the custom resource.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionNames"), - }, - }, - "scope": { - SchemaProps: spec.SchemaProps{ - Description: "scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`.", - Type: []string{"string"}, - Format: "", - }, - }, - "versions": { - SchemaProps: spec.SchemaProps{ - Description: "versions is the list of all API versions of the defined custom resource. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionVersion"), - }, - }, - }, - }, - }, - "conversion": { - SchemaProps: spec.SchemaProps{ - Description: "conversion defines conversion settings for the CRD.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceConversion"), - }, - }, - "preserveUnknownFields": { - SchemaProps: spec.SchemaProps{ - Description: "preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. This field is deprecated in favor of setting `x-preserve-unknown-fields` to true in `spec.versions[*].schema.openAPIV3Schema`. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#pruning-versus-preserving-unknown-fields for details.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"group", "names", "scope", "versions"}, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceConversion", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionNames", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionVersion"}, - } -} - -func schema_pkg_apis_apiextensions_v1_CustomResourceDefinitionStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "conditions": { - SchemaProps: spec.SchemaProps{ - Description: "conditions indicate state for particular aspects of a CustomResourceDefinition", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionCondition"), - }, - }, - }, - }, - }, - "acceptedNames": { - SchemaProps: spec.SchemaProps{ - Description: "acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionNames"), - }, - }, - "storedVersions": { - SchemaProps: spec.SchemaProps{ - Description: "storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionCondition", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionNames"}, - } -} - -func schema_pkg_apis_apiextensions_v1_CustomResourceDefinitionVersion(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceDefinitionVersion describes a version for CRD.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis///...` if `served` is true.", - Type: []string{"string"}, - Format: "", - }, - }, - "served": { - SchemaProps: spec.SchemaProps{ - Description: "served is a flag enabling/disabling this version from being served via REST APIs", - Type: []string{"boolean"}, - Format: "", - }, - }, - "storage": { - SchemaProps: spec.SchemaProps{ - Description: "storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "deprecated": { - SchemaProps: spec.SchemaProps{ - Description: "deprecated indicates this version of the custom resource API is deprecated. When set to true, API requests to this version receive a warning header in the server response. Defaults to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "deprecationWarning": { - SchemaProps: spec.SchemaProps{ - Description: "deprecationWarning overrides the default warning returned to API clients. May only be set when `deprecated` is true. The default warning indicates this version is deprecated and recommends use of the newest served version of equal or greater stability, if one exists.", - Type: []string{"string"}, - Format: "", - }, - }, - "schema": { - SchemaProps: spec.SchemaProps{ - Description: "schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceValidation"), - }, - }, - "subresources": { - SchemaProps: spec.SchemaProps{ - Description: "subresources specify what subresources this version of the defined custom resource have.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceSubresources"), - }, - }, - "additionalPrinterColumns": { - SchemaProps: spec.SchemaProps{ - Description: "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If no columns are specified, a single column displaying the age of the custom resource is used.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceColumnDefinition"), - }, - }, - }, - }, - }, - }, - Required: []string{"name", "served", "storage"}, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceColumnDefinition", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceSubresources", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceValidation"}, - } -} - -func schema_pkg_apis_apiextensions_v1_CustomResourceSubresourceScale(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "specReplicasPath": { - SchemaProps: spec.SchemaProps{ - Description: "specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.", - Type: []string{"string"}, - Format: "", - }, - }, - "statusReplicasPath": { - SchemaProps: spec.SchemaProps{ - Description: "statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.", - Type: []string{"string"}, - Format: "", - }, - }, - "labelSelectorPath": { - SchemaProps: spec.SchemaProps{ - Description: "labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"specReplicasPath", "statusReplicasPath"}, - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1_CustomResourceSubresourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza", - Type: []string{"object"}, - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1_CustomResourceSubresources(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceSubresources defines the status and scale subresources for CustomResources.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceSubresourceStatus"), - }, - }, - "scale": { - SchemaProps: spec.SchemaProps{ - Description: "scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceSubresourceScale"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceSubresourceScale", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceSubresourceStatus"}, - } -} - -func schema_pkg_apis_apiextensions_v1_CustomResourceValidation(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceValidation is a list of validation methods for CustomResources.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "openAPIV3Schema": { - SchemaProps: spec.SchemaProps{ - Description: "openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaProps"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaProps"}, - } -} - -func schema_pkg_apis_apiextensions_v1_ExternalDocumentation(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExternalDocumentation allows referencing an external resource for extended documentation.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "description": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "url": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1_JSON(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.", - Type: v1.JSON{}.OpenAPISchemaType(), - Format: v1.JSON{}.OpenAPISchemaFormat(), - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1_JSONSchemaProps(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "id": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "$schema": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "$ref": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "type": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "format": { - SchemaProps: spec.SchemaProps{ - Description: "format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated:\n\n- bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like \"0321751043\" or \"978-0321751041\" - isbn10: an ISBN10 number string like \"0321751043\" - isbn13: an ISBN13 number string like \"978-0321751041\" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like \"#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\" - byte: base64 encoded binary data - password: any kind of string - date: a date string like \"2006-01-02\" as defined by full-date in RFC3339 - duration: a duration string like \"22 ns\" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like \"2014-12-15T19:30:20.000Z\" as defined by date-time in RFC3339.", - Type: []string{"string"}, - Format: "", - }, - }, - "title": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "default": { - SchemaProps: spec.SchemaProps{ - Description: "default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. Defaulting requires spec.preserveUnknownFields to be false.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"), - }, - }, - "maximum": { - SchemaProps: spec.SchemaProps{ - Type: []string{"number"}, - Format: "double", - }, - }, - "exclusiveMaximum": { - SchemaProps: spec.SchemaProps{ - Type: []string{"boolean"}, - Format: "", - }, - }, - "minimum": { - SchemaProps: spec.SchemaProps{ - Type: []string{"number"}, - Format: "double", - }, - }, - "exclusiveMinimum": { - SchemaProps: spec.SchemaProps{ - Type: []string{"boolean"}, - Format: "", - }, - }, - "maxLength": { - SchemaProps: spec.SchemaProps{ - Type: []string{"integer"}, - Format: "int64", - }, - }, - "minLength": { - SchemaProps: spec.SchemaProps{ - Type: []string{"integer"}, - Format: "int64", - }, - }, - "pattern": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "maxItems": { - SchemaProps: spec.SchemaProps{ - Type: []string{"integer"}, - Format: "int64", - }, - }, - "minItems": { - SchemaProps: spec.SchemaProps{ - Type: []string{"integer"}, - Format: "int64", - }, - }, - "uniqueItems": { - SchemaProps: spec.SchemaProps{ - Type: []string{"boolean"}, - Format: "", - }, - }, - "multipleOf": { - SchemaProps: spec.SchemaProps{ - Type: []string{"number"}, - Format: "double", - }, - }, - "enum": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"), - }, - }, - }, - }, - }, - "maxProperties": { - SchemaProps: spec.SchemaProps{ - Type: []string{"integer"}, - Format: "int64", - }, - }, - "minProperties": { - SchemaProps: spec.SchemaProps{ - Type: []string{"integer"}, - Format: "int64", - }, - }, - "required": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaPropsOrArray"), - }, - }, - "allOf": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaProps"), - }, - }, - }, - }, - }, - "oneOf": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaProps"), - }, - }, - }, - }, - }, - "anyOf": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaProps"), - }, - }, - }, - }, - }, - "not": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaProps"), - }, - }, - "properties": { - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaProps"), - }, - }, - }, - }, - }, - "additionalProperties": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaPropsOrBool"), - }, - }, - "patternProperties": { - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaProps"), - }, - }, - }, - }, - }, - "dependencies": { - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaPropsOrStringArray"), - }, - }, - }, - }, - }, - "additionalItems": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaPropsOrBool"), - }, - }, - "definitions": { - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaProps"), - }, - }, - }, - }, - }, - "externalDocs": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.ExternalDocumentation"), - }, - }, - "example": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"), - }, - }, - "nullable": { - SchemaProps: spec.SchemaProps{ - Type: []string{"boolean"}, - Format: "", - }, - }, - "x-kubernetes-preserve-unknown-fields": { - SchemaProps: spec.SchemaProps{ - Description: "x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "x-kubernetes-embedded-resource": { - SchemaProps: spec.SchemaProps{ - Description: "x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).", - Type: []string{"boolean"}, - Format: "", - }, - }, - "x-kubernetes-int-or-string": { - SchemaProps: spec.SchemaProps{ - Description: "x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:\n\n1) anyOf:\n - type: integer\n - type: string\n2) allOf:\n - anyOf:\n - type: integer\n - type: string\n - ... zero or more", - Type: []string{"boolean"}, - Format: "", - }, - }, - "x-kubernetes-list-map-keys": { - SchemaProps: spec.SchemaProps{ - Description: "x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map.\n\nThis tag MUST only be used on lists that have the \"x-kubernetes-list-type\" extension set to \"map\". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).\n\nThe properties specified must either be required or have a default value, to ensure those properties are present for all list items.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "x-kubernetes-list-type": { - SchemaProps: spec.SchemaProps{ - Description: "x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:\n\n1) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic lists will be entirely replaced when updated. This extension\n may be used on any type of list (struct, scalar, ...).\n2) `set`:\n Sets are lists that must not have multiple items with the same value. Each\n value must be a scalar, an object with x-kubernetes-map-type `atomic` or an\n array with x-kubernetes-list-type `atomic`.\n3) `map`:\n These lists are like maps in that their elements have a non-index key\n used to identify them. Order is preserved upon merge. The map tag\n must only be used on a list with elements of type object.\nDefaults to atomic for arrays.", - Type: []string{"string"}, - Format: "", - }, - }, - "x-kubernetes-map-type": { - SchemaProps: spec.SchemaProps{ - Description: "x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values:\n\n1) `granular`:\n These maps are actual maps (key-value pairs) and each fields are independent\n from each other (they can each be manipulated by separate actors). This is\n the default behaviour for all maps.\n2) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic maps will be entirely replaced when updated.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.ExternalDocumentation", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaProps", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaPropsOrArray", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaPropsOrBool", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSONSchemaPropsOrStringArray"}, - } -} - -func schema_pkg_apis_apiextensions_v1_JSONSchemaPropsOrArray(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes.", - Type: v1.JSONSchemaPropsOrArray{}.OpenAPISchemaType(), - Format: v1.JSONSchemaPropsOrArray{}.OpenAPISchemaFormat(), - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1_JSONSchemaPropsOrBool(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.", - Type: v1.JSONSchemaPropsOrBool{}.OpenAPISchemaType(), - Format: v1.JSONSchemaPropsOrBool{}.OpenAPISchemaFormat(), - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1_JSONSchemaPropsOrStringArray(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array.", - Type: v1.JSONSchemaPropsOrStringArray{}.OpenAPISchemaType(), - Format: v1.JSONSchemaPropsOrStringArray{}.OpenAPISchemaFormat(), - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1_ServiceReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceReference holds a reference to Service.legacy.k8s.io", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "namespace is the namespace of the service. Required", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is the name of the service. Required", - Type: []string{"string"}, - Format: "", - }, - }, - "path": { - SchemaProps: spec.SchemaProps{ - Description: "path is an optional URL path at which the webhook will be contacted.", - Type: []string{"string"}, - Format: "", - }, - }, - "port": { - SchemaProps: spec.SchemaProps{ - Description: "port is an optional service port at which the webhook will be contacted. `port` should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"namespace", "name"}, - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1_WebhookClientConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "WebhookClientConfig contains the information to make a TLS connection with the webhook.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "url": { - SchemaProps: spec.SchemaProps{ - Description: "url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - Type: []string{"string"}, - Format: "", - }, - }, - "service": { - SchemaProps: spec.SchemaProps{ - Description: "service is a reference to the service for this webhook. Either service or url must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.ServiceReference"), - }, - }, - "caBundle": { - SchemaProps: spec.SchemaProps{ - Description: "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - Type: []string{"string"}, - Format: "byte", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.ServiceReference"}, - } -} - -func schema_pkg_apis_apiextensions_v1_WebhookConversion(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "WebhookConversion describes how to call a conversion webhook", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "clientConfig": { - SchemaProps: spec.SchemaProps{ - Description: "clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.WebhookClientConfig"), - }, - }, - "conversionReviewVersions": { - SchemaProps: spec.SchemaProps{ - Description: "conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"conversionReviewVersions"}, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.WebhookClientConfig"}, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_ConversionRequest(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ConversionRequest describes the conversion request parameters.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "uid": { - SchemaProps: spec.SchemaProps{ - Description: "uid is an identifier for the individual request/response. It allows distinguishing instances of requests which are otherwise identical (parallel requests, etc). The UID is meant to track the round trip (request/response) between the Kubernetes API server and the webhook, not the user request. It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.", - Type: []string{"string"}, - Format: "", - }, - }, - "desiredAPIVersion": { - SchemaProps: spec.SchemaProps{ - Description: "desiredAPIVersion is the version to convert given objects to. e.g. \"myapi.example.com/v1\"", - Type: []string{"string"}, - Format: "", - }, - }, - "objects": { - SchemaProps: spec.SchemaProps{ - Description: "objects is the list of custom resource objects to be converted.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), - }, - }, - }, - }, - }, - }, - Required: []string{"uid", "desiredAPIVersion", "objects"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/runtime.RawExtension"}, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_ConversionResponse(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ConversionResponse describes a conversion response.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "uid": { - SchemaProps: spec.SchemaProps{ - Description: "uid is an identifier for the individual request/response. This should be copied over from the corresponding `request.uid`.", - Type: []string{"string"}, - Format: "", - }, - }, - "convertedObjects": { - SchemaProps: spec.SchemaProps{ - Description: "convertedObjects is the list of converted version of `request.objects` if the `result` is successful, otherwise empty. The webhook is expected to set `apiVersion` of these objects to the `request.desiredAPIVersion`. The list must also have the same size as the input list with the same objects in the same order (equal kind, metadata.uid, metadata.name and metadata.namespace). The webhook is allowed to mutate labels and annotations. Any other change to the metadata is silently ignored.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), - }, - }, - }, - }, - }, - "result": { - SchemaProps: spec.SchemaProps{ - Description: "result contains the result of conversion with extra details if the conversion failed. `result.status` determines if the conversion failed or succeeded. The `result.status` field is required and represents the success or failure of the conversion. A successful conversion must set `result.status` to `Success`. A failed conversion must set `result.status` to `Failure` and provide more details in `result.message` and return http status 200. The `result.message` will be used to construct an error message for the end user.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Status"), - }, - }, - }, - Required: []string{"uid", "convertedObjects", "result"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Status", "k8s.io/apimachinery/pkg/runtime.RawExtension"}, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_ConversionReview(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ConversionReview describes a conversion request/response.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "request": { - SchemaProps: spec.SchemaProps{ - Description: "request describes the attributes for the conversion request.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.ConversionRequest"), - }, - }, - "response": { - SchemaProps: spec.SchemaProps{ - Description: "response describes the attributes for the conversion response.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.ConversionResponse"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.ConversionRequest", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.ConversionResponse"}, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_CustomResourceColumnDefinition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceColumnDefinition specifies a column for server side printing.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is a human readable name for the column.", - Type: []string{"string"}, - Format: "", - }, - }, - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - Type: []string{"string"}, - Format: "", - }, - }, - "format": { - SchemaProps: spec.SchemaProps{ - Description: "format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.", - Type: []string{"string"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description is a human readable description of this column.", - Type: []string{"string"}, - Format: "", - }, - }, - "priority": { - SchemaProps: spec.SchemaProps{ - Description: "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "JSONPath": { - SchemaProps: spec.SchemaProps{ - Description: "JSONPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"name", "type", "JSONPath"}, - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_CustomResourceConversion(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceConversion describes how to convert different versions of a CR.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "strategy": { - SchemaProps: spec.SchemaProps{ - Description: "strategy specifies how custom resources are converted between versions. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the custom resource. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information\n is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhookClientConfig to be set.", - Type: []string{"string"}, - Format: "", - }, - }, - "webhookClientConfig": { - SchemaProps: spec.SchemaProps{ - Description: "webhookClientConfig is the instructions for how to call the webhook if strategy is `Webhook`. Required when `strategy` is set to `Webhook`.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.WebhookClientConfig"), - }, - }, - "conversionReviewVersions": { - SchemaProps: spec.SchemaProps{ - Description: "conversionReviewVersions is an ordered list of preferred `ConversionReview` versions the Webhook expects. The API server will use the first version in the list which it supports. If none of the versions specified in this list are supported by API server, conversion will fail for the custom resource. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail. Defaults to `[\"v1beta1\"]`.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"strategy"}, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.WebhookClientConfig"}, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_CustomResourceDefinition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format <.spec.name>.<.spec.group>. Deprecated in v1.16, planned for removal in v1.22. Use apiextensions.k8s.io/v1 CustomResourceDefinition instead.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec describes how the user wants the resources to appear", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status indicates the actual state of the CustomResourceDefinition", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionSpec", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceDefinitionCondition contains details for the current condition of this pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type is the type of the condition. Types include Established, NamesAccepted and Terminating.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status is the status of the condition. Can be True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "lastTransitionTime last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "reason is a unique, one-word, CamelCase reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "message is a human-readable message indicating details about last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceDefinitionList is a list of CustomResourceDefinition objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items list individual CustomResourceDefinition objects", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinition"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinition", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionNames(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "plural": { - SchemaProps: spec.SchemaProps{ - Description: "plural is the plural name of the resource to serve. The custom resources are served under `/apis///.../`. Must match the name of the CustomResourceDefinition (in the form `.`). Must be all lowercase.", - Type: []string{"string"}, - Format: "", - }, - }, - "singular": { - SchemaProps: spec.SchemaProps{ - Description: "singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.", - Type: []string{"string"}, - Format: "", - }, - }, - "shortNames": { - SchemaProps: spec.SchemaProps{ - Description: "shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get `. It must be all lowercase.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.", - Type: []string{"string"}, - Format: "", - }, - }, - "listKind": { - SchemaProps: spec.SchemaProps{ - Description: "listKind is the serialized kind of the list for this resource. Defaults to \"`kind`List\".", - Type: []string{"string"}, - Format: "", - }, - }, - "categories": { - SchemaProps: spec.SchemaProps{ - Description: "categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"plural", "kind"}, - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceDefinitionSpec describes how a user wants their resource to appear", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "group": { - SchemaProps: spec.SchemaProps{ - Description: "group is the API group of the defined custom resource. The custom resources are served under `/apis//...`. Must match the name of the CustomResourceDefinition (in the form `.`).", - Type: []string{"string"}, - Format: "", - }, - }, - "version": { - SchemaProps: spec.SchemaProps{ - Description: "version is the API version of the defined custom resource. The custom resources are served under `/apis///...`. Must match the name of the first item in the `versions` list if `version` and `versions` are both specified. Optional if `versions` is specified. Deprecated: use `versions` instead.", - Type: []string{"string"}, - Format: "", - }, - }, - "names": { - SchemaProps: spec.SchemaProps{ - Description: "names specify the resource and kind names for the custom resource.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionNames"), - }, - }, - "scope": { - SchemaProps: spec.SchemaProps{ - Description: "scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`. Default is `Namespaced`.", - Type: []string{"string"}, - Format: "", - }, - }, - "validation": { - SchemaProps: spec.SchemaProps{ - Description: "validation describes the schema used for validation and pruning of the custom resource. If present, this validation schema is used to validate all versions. Top-level and per-version schemas are mutually exclusive.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceValidation"), - }, - }, - "subresources": { - SchemaProps: spec.SchemaProps{ - Description: "subresources specify what subresources the defined custom resource has. If present, this field configures subresources for all versions. Top-level and per-version subresources are mutually exclusive.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceSubresources"), - }, - }, - "versions": { - SchemaProps: spec.SchemaProps{ - Description: "versions is the list of all API versions of the defined custom resource. Optional if `version` is specified. The name of the first item in the `versions` list must match the `version` field if `version` and `versions` are both specified. Version names are used to compute the order in which served versions are listed in API discovery. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionVersion"), - }, - }, - }, - }, - }, - "additionalPrinterColumns": { - SchemaProps: spec.SchemaProps{ - Description: "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If present, this field configures columns for all versions. Top-level and per-version columns are mutually exclusive. If no top-level or per-version columns are specified, a single column displaying the age of the custom resource is used.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceColumnDefinition"), - }, - }, - }, - }, - }, - "conversion": { - SchemaProps: spec.SchemaProps{ - Description: "conversion defines conversion settings for the CRD.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceConversion"), - }, - }, - "preserveUnknownFields": { - SchemaProps: spec.SchemaProps{ - Description: "preserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. If false, schemas must be defined for all versions. Defaults to true in v1beta for backwards compatibility. Deprecated: will be required to be false in v1. Preservation of unknown fields can be specified in the validation schema using the `x-kubernetes-preserve-unknown-fields: true` extension. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#pruning-versus-preserving-unknown-fields for details.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"group", "names", "scope"}, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceColumnDefinition", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceConversion", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionNames", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionVersion", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceSubresources", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceValidation"}, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "conditions": { - SchemaProps: spec.SchemaProps{ - Description: "conditions indicate state for particular aspects of a CustomResourceDefinition", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionCondition"), - }, - }, - }, - }, - }, - "acceptedNames": { - SchemaProps: spec.SchemaProps{ - Description: "acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionNames"), - }, - }, - "storedVersions": { - SchemaProps: spec.SchemaProps{ - Description: "storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionCondition", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceDefinitionNames"}, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_CustomResourceDefinitionVersion(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceDefinitionVersion describes a version for CRD.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis///...` if `served` is true.", - Type: []string{"string"}, - Format: "", - }, - }, - "served": { - SchemaProps: spec.SchemaProps{ - Description: "served is a flag enabling/disabling this version from being served via REST APIs", - Type: []string{"boolean"}, - Format: "", - }, - }, - "storage": { - SchemaProps: spec.SchemaProps{ - Description: "storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "deprecated": { - SchemaProps: spec.SchemaProps{ - Description: "deprecated indicates this version of the custom resource API is deprecated. When set to true, API requests to this version receive a warning header in the server response. Defaults to false.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "deprecationWarning": { - SchemaProps: spec.SchemaProps{ - Description: "deprecationWarning overrides the default warning returned to API clients. May only be set when `deprecated` is true. The default warning indicates this version is deprecated and recommends use of the newest served version of equal or greater stability, if one exists.", - Type: []string{"string"}, - Format: "", - }, - }, - "schema": { - SchemaProps: spec.SchemaProps{ - Description: "schema describes the schema used for validation and pruning of this version of the custom resource. Top-level and per-version schemas are mutually exclusive. Per-version schemas must not all be set to identical values (top-level validation schema should be used instead).", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceValidation"), - }, - }, - "subresources": { - SchemaProps: spec.SchemaProps{ - Description: "subresources specify what subresources this version of the defined custom resource have. Top-level and per-version subresources are mutually exclusive. Per-version subresources must not all be set to identical values (top-level subresources should be used instead).", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceSubresources"), - }, - }, - "additionalPrinterColumns": { - SchemaProps: spec.SchemaProps{ - Description: "additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. Top-level and per-version columns are mutually exclusive. Per-version columns must not all be set to identical values (top-level columns should be used instead). If no top-level or per-version columns are specified, a single column displaying the age of the custom resource is used.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceColumnDefinition"), - }, - }, - }, - }, - }, - }, - Required: []string{"name", "served", "storage"}, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceColumnDefinition", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceSubresources", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceValidation"}, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_CustomResourceSubresourceScale(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "specReplicasPath": { - SchemaProps: spec.SchemaProps{ - Description: "specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `spec.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.spec`. If there is no value under the given path in the custom resource, the `/scale` subresource will return an error on GET.", - Type: []string{"string"}, - Format: "", - }, - }, - "statusReplicasPath": { - SchemaProps: spec.SchemaProps{ - Description: "statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale `status.replicas`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status`. If there is no value under the given path in the custom resource, the `status.replicas` value in the `/scale` subresource will default to 0.", - Type: []string{"string"}, - Format: "", - }, - }, - "labelSelectorPath": { - SchemaProps: spec.SchemaProps{ - Description: "labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale `status.selector`. Only JSON paths without the array notation are allowed. Must be a JSON Path under `.status` or `.spec`. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the `status.selector` value in the `/scale` subresource will default to the empty string.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"specReplicasPath", "statusReplicasPath"}, - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_CustomResourceSubresourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza", - Type: []string{"object"}, - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_CustomResourceSubresources(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceSubresources defines the status and scale subresources for CustomResources.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status indicates the custom resource should serve a `/status` subresource. When enabled: 1. requests to the custom resource primary endpoint ignore changes to the `status` stanza of the object. 2. requests to the custom resource `/status` subresource ignore changes to anything other than the `status` stanza of the object.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceSubresourceStatus"), - }, - }, - "scale": { - SchemaProps: spec.SchemaProps{ - Description: "scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceSubresourceScale"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceSubresourceScale", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.CustomResourceSubresourceStatus"}, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_CustomResourceValidation(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CustomResourceValidation is a list of validation methods for CustomResources.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "openAPIV3Schema": { - SchemaProps: spec.SchemaProps{ - Description: "openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"}, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_ExternalDocumentation(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExternalDocumentation allows referencing an external resource for extended documentation.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "description": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "url": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_JSON(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.", - Type: v1beta1.JSON{}.OpenAPISchemaType(), - Format: v1beta1.JSON{}.OpenAPISchemaFormat(), - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_JSONSchemaProps(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "id": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "$schema": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "$ref": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "type": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "format": { - SchemaProps: spec.SchemaProps{ - Description: "format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated:\n\n- bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an ISBN10 or ISBN13 number string like \"0321751043\" or \"978-0321751041\" - isbn10: an ISBN10 number string like \"0321751043\" - isbn13: an ISBN13 number string like \"978-0321751041\" - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - hexcolor: an hexadecimal color code like \"#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like rgb like \"rgb(255,255,2559\" - byte: base64 encoded binary data - password: any kind of string - date: a date string like \"2006-01-02\" as defined by full-date in RFC3339 - duration: a duration string like \"22 ns\" as parsed by Golang time.ParseDuration or compatible with Scala duration format - datetime: a date time string like \"2014-12-15T19:30:20.000Z\" as defined by date-time in RFC3339.", - Type: []string{"string"}, - Format: "", - }, - }, - "title": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "default": { - SchemaProps: spec.SchemaProps{ - Description: "default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. CustomResourceDefinitions with defaults must be created using the v1 (or newer) CustomResourceDefinition API.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSON"), - }, - }, - "maximum": { - SchemaProps: spec.SchemaProps{ - Type: []string{"number"}, - Format: "double", - }, - }, - "exclusiveMaximum": { - SchemaProps: spec.SchemaProps{ - Type: []string{"boolean"}, - Format: "", - }, - }, - "minimum": { - SchemaProps: spec.SchemaProps{ - Type: []string{"number"}, - Format: "double", - }, - }, - "exclusiveMinimum": { - SchemaProps: spec.SchemaProps{ - Type: []string{"boolean"}, - Format: "", - }, - }, - "maxLength": { - SchemaProps: spec.SchemaProps{ - Type: []string{"integer"}, - Format: "int64", - }, - }, - "minLength": { - SchemaProps: spec.SchemaProps{ - Type: []string{"integer"}, - Format: "int64", - }, - }, - "pattern": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "maxItems": { - SchemaProps: spec.SchemaProps{ - Type: []string{"integer"}, - Format: "int64", - }, - }, - "minItems": { - SchemaProps: spec.SchemaProps{ - Type: []string{"integer"}, - Format: "int64", - }, - }, - "uniqueItems": { - SchemaProps: spec.SchemaProps{ - Type: []string{"boolean"}, - Format: "", - }, - }, - "multipleOf": { - SchemaProps: spec.SchemaProps{ - Type: []string{"number"}, - Format: "double", - }, - }, - "enum": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSON"), - }, - }, - }, - }, - }, - "maxProperties": { - SchemaProps: spec.SchemaProps{ - Type: []string{"integer"}, - Format: "int64", - }, - }, - "minProperties": { - SchemaProps: spec.SchemaProps{ - Type: []string{"integer"}, - Format: "int64", - }, - }, - "required": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaPropsOrArray"), - }, - }, - "allOf": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"), - }, - }, - }, - }, - }, - "oneOf": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"), - }, - }, - }, - }, - }, - "anyOf": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"), - }, - }, - }, - }, - }, - "not": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"), - }, - }, - "properties": { - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"), - }, - }, - }, - }, - }, - "additionalProperties": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaPropsOrBool"), - }, - }, - "patternProperties": { - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"), - }, - }, - }, - }, - }, - "dependencies": { - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaPropsOrStringArray"), - }, - }, - }, - }, - }, - "additionalItems": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaPropsOrBool"), - }, - }, - "definitions": { - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps"), - }, - }, - }, - }, - }, - "externalDocs": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.ExternalDocumentation"), - }, - }, - "example": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSON"), - }, - }, - "nullable": { - SchemaProps: spec.SchemaProps{ - Type: []string{"boolean"}, - Format: "", - }, - }, - "x-kubernetes-preserve-unknown-fields": { - SchemaProps: spec.SchemaProps{ - Description: "x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "x-kubernetes-embedded-resource": { - SchemaProps: spec.SchemaProps{ - Description: "x-kubernetes-embedded-resource defines that the value is an embedded Kubernetes runtime.Object, with TypeMeta and ObjectMeta. The type must be object. It is allowed to further restrict the embedded object. kind, apiVersion and metadata are validated automatically. x-kubernetes-preserve-unknown-fields is allowed to be true, but does not have to be if the object is fully specified (up to kind, apiVersion, metadata).", - Type: []string{"boolean"}, - Format: "", - }, - }, - "x-kubernetes-int-or-string": { - SchemaProps: spec.SchemaProps{ - Description: "x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns:\n\n1) anyOf:\n - type: integer\n - type: string\n2) allOf:\n - anyOf:\n - type: integer\n - type: string\n - ... zero or more", - Type: []string{"boolean"}, - Format: "", - }, - }, - "x-kubernetes-list-map-keys": { - SchemaProps: spec.SchemaProps{ - Description: "x-kubernetes-list-map-keys annotates an array with the x-kubernetes-list-type `map` by specifying the keys used as the index of the map.\n\nThis tag MUST only be used on lists that have the \"x-kubernetes-list-type\" extension set to \"map\". Also, the values specified for this attribute must be a scalar typed field of the child structure (no nesting is supported).\n\nThe properties specified must either be required or have a default value, to ensure those properties are present for all list items.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "x-kubernetes-list-type": { - SchemaProps: spec.SchemaProps{ - Description: "x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:\n\n1) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic lists will be entirely replaced when updated. This extension\n may be used on any type of list (struct, scalar, ...).\n2) `set`:\n Sets are lists that must not have multiple items with the same value. Each\n value must be a scalar, an object with x-kubernetes-map-type `atomic` or an\n array with x-kubernetes-list-type `atomic`.\n3) `map`:\n These lists are like maps in that their elements have a non-index key\n used to identify them. Order is preserved upon merge. The map tag\n must only be used on a list with elements of type object.\nDefaults to atomic for arrays.", - Type: []string{"string"}, - Format: "", - }, - }, - "x-kubernetes-map-type": { - SchemaProps: spec.SchemaProps{ - Description: "x-kubernetes-map-type annotates an object to further describe its topology. This extension must only be used when type is object and may have 2 possible values:\n\n1) `granular`:\n These maps are actual maps (key-value pairs) and each fields are independent\n from each other (they can each be manipulated by separate actors). This is\n the default behaviour for all maps.\n2) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic maps will be entirely replaced when updated.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.ExternalDocumentation", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSON", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaProps", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaPropsOrArray", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaPropsOrBool", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSONSchemaPropsOrStringArray"}, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrArray(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes.", - Type: v1beta1.JSONSchemaPropsOrArray{}.OpenAPISchemaType(), - Format: v1beta1.JSONSchemaPropsOrArray{}.OpenAPISchemaFormat(), - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrBool(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.", - Type: v1beta1.JSONSchemaPropsOrBool{}.OpenAPISchemaType(), - Format: v1beta1.JSONSchemaPropsOrBool{}.OpenAPISchemaFormat(), - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_JSONSchemaPropsOrStringArray(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array.", - Type: v1beta1.JSONSchemaPropsOrStringArray{}.OpenAPISchemaType(), - Format: v1beta1.JSONSchemaPropsOrStringArray{}.OpenAPISchemaFormat(), - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_ServiceReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceReference holds a reference to Service.legacy.k8s.io", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "namespace is the namespace of the service. Required", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is the name of the service. Required", - Type: []string{"string"}, - Format: "", - }, - }, - "path": { - SchemaProps: spec.SchemaProps{ - Description: "path is an optional URL path at which the webhook will be contacted.", - Type: []string{"string"}, - Format: "", - }, - }, - "port": { - SchemaProps: spec.SchemaProps{ - Description: "port is an optional service port at which the webhook will be contacted. `port` should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"namespace", "name"}, - }, - }, - } -} - -func schema_pkg_apis_apiextensions_v1beta1_WebhookClientConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "WebhookClientConfig contains the information to make a TLS connection with the webhook.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "url": { - SchemaProps: spec.SchemaProps{ - Description: "url gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - Type: []string{"string"}, - Format: "", - }, - }, - "service": { - SchemaProps: spec.SchemaProps{ - Description: "service is a reference to the service for this webhook. Either service or url must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`.", - Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.ServiceReference"), - }, - }, - "caBundle": { - SchemaProps: spec.SchemaProps{ - Description: "caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", - Type: []string{"string"}, - Format: "byte", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.ServiceReference"}, - } -} - -func schema_apimachinery_pkg_api_resource_Quantity(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n ::= \n (Note that may be empty, from the \"\" case in .)\n ::= 0 | 1 | ... | 9 ::= | ::= | . | . | . ::= \"+\" | \"-\" ::= | ::= | | ::= Ki | Mi | Gi | Ti | Pi | Ei\n (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n ::= m | \"\" | k | M | G | T | P | E\n (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n ::= \"e\" | \"E\" \n\nNo matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:\n a. No precision is lost\n b. No fractional digits will be emitted\n c. The exponent (or suffix) is as large as possible.\nThe sign will be omitted unless the number is negative.\n\nExamples:\n 1.5 will be serialized as \"1500m\"\n 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.", - Type: resource.Quantity{}.OpenAPISchemaType(), - Format: resource.Quantity{}.OpenAPISchemaFormat(), - }, - }, - } -} - -func schema_apimachinery_pkg_api_resource_int64Amount(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "int64Amount represents a fixed precision numerator and arbitrary scale exponent. It is faster than operations on inf.Dec for values that can be represented as int64.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "value": { - SchemaProps: spec.SchemaProps{ - Type: []string{"integer"}, - Format: "int64", - }, - }, - "scale": { - SchemaProps: spec.SchemaProps{ - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"value", "scale"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_APIGroup(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "APIGroup contains the name, the supported versions, and the preferred version of a group.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is the name of the group.", - Type: []string{"string"}, - Format: "", - }, - }, - "versions": { - SchemaProps: spec.SchemaProps{ - Description: "versions are the versions supported in this group.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery"), - }, - }, - }, - }, - }, - "preferredVersion": { - SchemaProps: spec.SchemaProps{ - Description: "preferredVersion is the version preferred by the API server, which probably is the storage version.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery"), - }, - }, - "serverAddressByClientCIDRs": { - SchemaProps: spec.SchemaProps{ - Description: "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR"), - }, - }, - }, - }, - }, - }, - Required: []string{"name", "versions"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery", "k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR"}, - } -} - -func schema_pkg_apis_meta_v1_APIGroupList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "groups": { - SchemaProps: spec.SchemaProps{ - Description: "groups is a list of APIGroup.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.APIGroup"), - }, - }, - }, - }, - }, - }, - Required: []string{"groups"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.APIGroup"}, - } -} - -func schema_pkg_apis_meta_v1_APIResource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "APIResource specifies the name of a resource and whether it is namespaced.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is the plural name of the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "singularName": { - SchemaProps: spec.SchemaProps{ - Description: "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.", - Type: []string{"string"}, - Format: "", - }, - }, - "namespaced": { - SchemaProps: spec.SchemaProps{ - Description: "namespaced indicates if a resource is namespaced or not.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "group": { - SchemaProps: spec.SchemaProps{ - Description: "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".", - Type: []string{"string"}, - Format: "", - }, - }, - "version": { - SchemaProps: spec.SchemaProps{ - Description: "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".", - Type: []string{"string"}, - Format: "", - }, - }, - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')", - Type: []string{"string"}, - Format: "", - }, - }, - "verbs": { - SchemaProps: spec.SchemaProps{ - Description: "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "shortNames": { - SchemaProps: spec.SchemaProps{ - Description: "shortNames is a list of suggested short names of the resource.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "categories": { - SchemaProps: spec.SchemaProps{ - Description: "categories is a list of the grouped resources this resource belongs to (e.g. 'all')", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "storageVersionHash": { - SchemaProps: spec.SchemaProps{ - Description: "The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"name", "singularName", "namespaced", "kind", "verbs"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_APIResourceList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "groupVersion": { - SchemaProps: spec.SchemaProps{ - Description: "groupVersion is the group and version this APIResourceList is for.", - Type: []string{"string"}, - Format: "", - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "resources contains the name of the resources and if they are namespaced.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.APIResource"), - }, - }, - }, - }, - }, - }, - Required: []string{"groupVersion", "resources"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.APIResource"}, - } -} - -func schema_pkg_apis_meta_v1_APIVersions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "versions": { - SchemaProps: spec.SchemaProps{ - Description: "versions are the api versions that are available.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "serverAddressByClientCIDRs": { - SchemaProps: spec.SchemaProps{ - Description: "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR"), - }, - }, - }, - }, - }, - }, - Required: []string{"versions", "serverAddressByClientCIDRs"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR"}, - } -} - -func schema_pkg_apis_meta_v1_Condition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Condition contains details for one aspect of the current state of this API Resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type of condition in CamelCase or in foo.example.com/CamelCase.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "message is a human readable message indicating details about the transition. This may be an empty string.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status", "lastTransitionTime", "reason", "message"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_pkg_apis_meta_v1_CreateOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CreateOptions may be provided when creating an API object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "dryRun": { - SchemaProps: spec.SchemaProps{ - Description: "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "fieldManager": { - SchemaProps: spec.SchemaProps{ - Description: "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_DeleteOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeleteOptions may be provided when deleting an API object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "gracePeriodSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "preconditions": { - SchemaProps: spec.SchemaProps{ - Description: "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Preconditions"), - }, - }, - "orphanDependents": { - SchemaProps: spec.SchemaProps{ - Description: "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "propagationPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - Type: []string{"string"}, - Format: "", - }, - }, - "dryRun": { - SchemaProps: spec.SchemaProps{ - Description: "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Preconditions"}, - } -} - -func schema_pkg_apis_meta_v1_Duration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Duration is a wrapper around time.Duration which supports correct marshaling to YAML and JSON. In particular, it marshals into strings, which can be used as map keys in json.", - Type: metav1.Duration{}.OpenAPISchemaType(), - Format: metav1.Duration{}.OpenAPISchemaFormat(), - }, - }, - } -} - -func schema_pkg_apis_meta_v1_ExportOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExportOptions is the query options to the standard REST get call. Deprecated. Planned for removal in 1.18.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "export": { - SchemaProps: spec.SchemaProps{ - Description: "Should this value be exported. Export strips fields that a user can not specify. Deprecated. Planned for removal in 1.18.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "exact": { - SchemaProps: spec.SchemaProps{ - Description: "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'. Deprecated. Planned for removal in 1.18.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"export", "exact"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_FieldsV1(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff", - Type: []string{"object"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_GetOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GetOptions is the standard query options to the standard REST get call.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "resourceVersion": { - SchemaProps: spec.SchemaProps{ - Description: "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_GroupKind(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GroupKind specifies a Group and a Kind, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "group": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "kind": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"group", "kind"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_GroupResource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GroupResource specifies a Group and a Resource, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "group": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"group", "resource"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_GroupVersion(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GroupVersion contains the \"group\" and the \"version\", which uniquely identifies the API.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "group": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "version": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"group", "version"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_GroupVersionForDiscovery(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "groupVersion": { - SchemaProps: spec.SchemaProps{ - Description: "groupVersion specifies the API group and version in the form \"group/version\"", - Type: []string{"string"}, - Format: "", - }, - }, - "version": { - SchemaProps: spec.SchemaProps{ - Description: "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"groupVersion", "version"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_GroupVersionKind(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GroupVersionKind unambiguously identifies a kind. It doesn't anonymously include GroupVersion to avoid automatic coersion. It doesn't use a GroupVersion to avoid custom marshalling", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "group": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "version": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "kind": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"group", "version", "kind"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_GroupVersionResource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GroupVersionResource unambiguously identifies a resource. It doesn't anonymously include GroupVersion to avoid automatic coersion. It doesn't use a GroupVersion to avoid custom marshalling", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "group": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "version": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"group", "version", "resource"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_InternalEvent(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "InternalEvent makes watch.Event versioned", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "Type": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "Object": { - SchemaProps: spec.SchemaProps{ - Description: "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Bookmark: the object (instance of a type being watched) where\n only ResourceVersion field is set. On successful restart of watch from a\n bookmark resourceVersion, client is guaranteed to not get repeat event\n nor miss any events.\n * If Type is Error: *api.Status is recommended; other types may make sense\n depending on context.", - Ref: ref("k8s.io/apimachinery/pkg/runtime.Object"), - }, - }, - }, - Required: []string{"Type", "Object"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/runtime.Object"}, - } -} - -func schema_pkg_apis_meta_v1_LabelSelector(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "matchLabels": { - SchemaProps: spec.SchemaProps{ - Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "matchExpressions": { - SchemaProps: spec.SchemaProps{ - Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement"}, - } -} - -func schema_pkg_apis_meta_v1_LabelSelectorRequirement(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "key": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "key", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "key is the label key that the selector applies to.", - Type: []string{"string"}, - Format: "", - }, - }, - "operator": { - SchemaProps: spec.SchemaProps{ - Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - Type: []string{"string"}, - Format: "", - }, - }, - "values": { - SchemaProps: spec.SchemaProps{ - Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"key", "operator"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_List(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "List holds a list of objects, which may not be known by the server.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of objects", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/runtime.RawExtension"}, - } -} - -func schema_pkg_apis_meta_v1_ListMeta(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "selfLink": { - SchemaProps: spec.SchemaProps{ - Description: "selfLink is a URL representing this object. Populated by the system. Read-only.\n\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.", - Type: []string{"string"}, - Format: "", - }, - }, - "resourceVersion": { - SchemaProps: spec.SchemaProps{ - Description: "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - Type: []string{"string"}, - Format: "", - }, - }, - "continue": { - SchemaProps: spec.SchemaProps{ - Description: "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.", - Type: []string{"string"}, - Format: "", - }, - }, - "remainingItemCount": { - SchemaProps: spec.SchemaProps{ - Description: "remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_ListOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ListOptions is the query options to a standard REST list call.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "labelSelector": { - SchemaProps: spec.SchemaProps{ - Description: "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - Type: []string{"string"}, - Format: "", - }, - }, - "fieldSelector": { - SchemaProps: spec.SchemaProps{ - Description: "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - Type: []string{"string"}, - Format: "", - }, - }, - "watch": { - SchemaProps: spec.SchemaProps{ - Description: "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "allowWatchBookmarks": { - SchemaProps: spec.SchemaProps{ - Description: "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. If the feature gate WatchBookmarks is not enabled in apiserver, this field is ignored.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "resourceVersion": { - SchemaProps: spec.SchemaProps{ - Description: "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - Type: []string{"string"}, - Format: "", - }, - }, - "resourceVersionMatch": { - SchemaProps: spec.SchemaProps{ - Description: "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", - Type: []string{"string"}, - Format: "", - }, - }, - "timeoutSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "limit": { - SchemaProps: spec.SchemaProps{ - Description: "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "continue": { - SchemaProps: spec.SchemaProps{ - Description: "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_ManagedFieldsEntry(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "manager": { - SchemaProps: spec.SchemaProps{ - Description: "Manager is an identifier of the workflow managing these fields.", - Type: []string{"string"}, - Format: "", - }, - }, - "operation": { - SchemaProps: spec.SchemaProps{ - Description: "Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the version of this resource that this field set applies to. The format is \"group/version\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.", - Type: []string{"string"}, - Format: "", - }, - }, - "time": { - SchemaProps: spec.SchemaProps{ - Description: "Time is timestamp of when these fields were set. It should always be empty if Operation is 'Apply'", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "fieldsType": { - SchemaProps: spec.SchemaProps{ - Description: "FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \"FieldsV1\"", - Type: []string{"string"}, - Format: "", - }, - }, - "fieldsV1": { - SchemaProps: spec.SchemaProps{ - Description: "FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.FieldsV1"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.FieldsV1", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_pkg_apis_meta_v1_MicroTime(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MicroTime is version of Time with microsecond level precision.", - Type: metav1.MicroTime{}.OpenAPISchemaType(), - Format: metav1.MicroTime{}.OpenAPISchemaFormat(), - }, - }, - } -} - -func schema_pkg_apis_meta_v1_ObjectMeta(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", - Type: []string{"string"}, - Format: "", - }, - }, - "generateName": { - SchemaProps: spec.SchemaProps{ - Description: "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency", - Type: []string{"string"}, - Format: "", - }, - }, - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces", - Type: []string{"string"}, - Format: "", - }, - }, - "selfLink": { - SchemaProps: spec.SchemaProps{ - Description: "SelfLink is a URL representing this object. Populated by the system. Read-only.\n\nDEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.", - Type: []string{"string"}, - Format: "", - }, - }, - "uid": { - SchemaProps: spec.SchemaProps{ - Description: "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - Type: []string{"string"}, - Format: "", - }, - }, - "resourceVersion": { - SchemaProps: spec.SchemaProps{ - Description: "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", - Type: []string{"string"}, - Format: "", - }, - }, - "generation": { - SchemaProps: spec.SchemaProps{ - Description: "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "creationTimestamp": { - SchemaProps: spec.SchemaProps{ - Description: "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "deletionTimestamp": { - SchemaProps: spec.SchemaProps{ - Description: "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "deletionGracePeriodSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "labels": { - SchemaProps: spec.SchemaProps{ - Description: "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "annotations": { - SchemaProps: spec.SchemaProps{ - Description: "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "ownerReferences": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-merge-key": "uid", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference"), - }, - }, - }, - }, - }, - "finalizers": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "clusterName": { - SchemaProps: spec.SchemaProps{ - Description: "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.", - Type: []string{"string"}, - Format: "", - }, - }, - "managedFields": { - SchemaProps: spec.SchemaProps{ - Description: "ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \"ci-cd\". The set of fields is always in the version that the workflow used when modifying the object.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ManagedFieldsEntry"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ManagedFieldsEntry", "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_pkg_apis_meta_v1_OwnerReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "API version of the referent.", - Type: []string{"string"}, - Format: "", - }, - }, - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names", - Type: []string{"string"}, - Format: "", - }, - }, - "uid": { - SchemaProps: spec.SchemaProps{ - Description: "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - Type: []string{"string"}, - Format: "", - }, - }, - "controller": { - SchemaProps: spec.SchemaProps{ - Description: "If true, this reference points to the managing controller.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "blockOwnerDeletion": { - SchemaProps: spec.SchemaProps{ - Description: "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"apiVersion", "kind", "name", "uid"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_PartialObjectMetadata(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PartialObjectMetadata is a generic representation of any object with ObjectMeta. It allows clients to get access to a particular ObjectMeta schema without knowing the details of the version.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_pkg_apis_meta_v1_PartialObjectMetadataList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PartialObjectMetadataList contains a list of objects containing only their metadata", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items contains each of the included items.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadata"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadata"}, - } -} - -func schema_pkg_apis_meta_v1_Patch(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", - Type: []string{"object"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_PatchOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PatchOptions may be provided when patching an API object. PatchOptions is meant to be a superset of UpdateOptions.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "dryRun": { - SchemaProps: spec.SchemaProps{ - Description: "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "force": { - SchemaProps: spec.SchemaProps{ - Description: "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "fieldManager": { - SchemaProps: spec.SchemaProps{ - Description: "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_Preconditions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "uid": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the target UID.", - Type: []string{"string"}, - Format: "", - }, - }, - "resourceVersion": { - SchemaProps: spec.SchemaProps{ - Description: "Specifies the target ResourceVersion", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_RootPaths(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RootPaths lists the paths available at root. For example: \"/healthz\", \"/apis\".", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "paths": { - SchemaProps: spec.SchemaProps{ - Description: "paths are the paths available at root.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"paths"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_ServerAddressByClientCIDR(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "clientCIDR": { - SchemaProps: spec.SchemaProps{ - Description: "The CIDR with which clients can match their IP to figure out the server address that they should use.", - Type: []string{"string"}, - Format: "", - }, - }, - "serverAddress": { - SchemaProps: spec.SchemaProps{ - Description: "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"clientCIDR", "serverAddress"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_Status(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Status is a return value for calls that don't return other objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human-readable description of the status of this operation.", - Type: []string{"string"}, - Format: "", - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.", - Type: []string{"string"}, - Format: "", - }, - }, - "details": { - SchemaProps: spec.SchemaProps{ - Description: "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.StatusDetails"), - }, - }, - "code": { - SchemaProps: spec.SchemaProps{ - Description: "Suggested HTTP return code for this status, 0 if not set.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.StatusDetails"}, - } -} - -func schema_pkg_apis_meta_v1_StatusCause(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "A machine-readable description of the cause of the error. If this value is empty there is no information available.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human-readable description of the cause of the error. This field may be presented as-is to a reader.", - Type: []string{"string"}, - Format: "", - }, - }, - "field": { - SchemaProps: spec.SchemaProps{ - Description: "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_StatusDetails(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).", - Type: []string{"string"}, - Format: "", - }, - }, - "group": { - SchemaProps: spec.SchemaProps{ - Description: "The group attribute of the resource associated with the status StatusReason.", - Type: []string{"string"}, - Format: "", - }, - }, - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "uid": { - SchemaProps: spec.SchemaProps{ - Description: "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - Type: []string{"string"}, - Format: "", - }, - }, - "causes": { - SchemaProps: spec.SchemaProps{ - Description: "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.StatusCause"), - }, - }, - }, - }, - }, - "retryAfterSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.StatusCause"}, - } -} - -func schema_pkg_apis_meta_v1_Table(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Table is a tabular representation of a set of API resources. The server transforms the object into a set of preferred columns for quickly reviewing the objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "columnDefinitions": { - SchemaProps: spec.SchemaProps{ - Description: "columnDefinitions describes each column in the returned items array. The number of cells per row will always match the number of column definitions.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.TableColumnDefinition"), - }, - }, - }, - }, - }, - "rows": { - SchemaProps: spec.SchemaProps{ - Description: "rows is the list of items in the table.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.TableRow"), - }, - }, - }, - }, - }, - }, - Required: []string{"columnDefinitions", "rows"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.TableColumnDefinition", "k8s.io/apimachinery/pkg/apis/meta/v1.TableRow"}, - } -} - -func schema_pkg_apis_meta_v1_TableColumnDefinition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TableColumnDefinition contains information about a column returned in the Table.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is a human readable name for the column.", - Type: []string{"string"}, - Format: "", - }, - }, - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type is an OpenAPI type definition for this column, such as number, integer, string, or array. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.", - Type: []string{"string"}, - Format: "", - }, - }, - "format": { - SchemaProps: spec.SchemaProps{ - Description: "format is an optional OpenAPI type modifier for this column. A format modifies the type and imposes additional rules, like date or time formatting for a string. The 'name' format is applied to the primary identifier column which has type 'string' to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.", - Type: []string{"string"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description is a human readable description of this column.", - Type: []string{"string"}, - Format: "", - }, - }, - "priority": { - SchemaProps: spec.SchemaProps{ - Description: "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a higher priority.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"name", "type", "format", "description", "priority"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_TableOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TableOptions are used when a Table is requested by the caller.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "includeObject": { - SchemaProps: spec.SchemaProps{ - Description: "includeObject decides whether to include each object along with its columnar information. Specifying \"None\" will return no object, specifying \"Object\" will return the full object contents, and specifying \"Metadata\" (the default) will return the object's metadata in the PartialObjectMetadata kind in version v1beta1 of the meta.k8s.io API group.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_TableRow(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TableRow is an individual row in a table.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "cells": { - SchemaProps: spec.SchemaProps{ - Description: "cells will be as wide as the column definitions array and may contain strings, numbers (float64 or int64), booleans, simple maps, lists, or null. See the type field of the column definition for a more detailed description.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Format: "", - }, - }, - }, - }, - }, - "conditions": { - SchemaProps: spec.SchemaProps{ - Description: "conditions describe additional status of a row that are relevant for a human user. These conditions apply to the row, not to the object, and will be specific to table output. The only defined condition type is 'Completed', for a row that indicates a resource that has run to completion and can be given less visual priority.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.TableRowCondition"), - }, - }, - }, - }, - }, - "object": { - SchemaProps: spec.SchemaProps{ - Description: "This field contains the requested additional information about each object based on the includeObject policy when requesting the Table. If \"None\", this field is empty, if \"Object\" this will be the default serialization of the object for the current API version, and if \"Metadata\" (the default) will contain the object metadata. Check the returned kind and apiVersion of the object before parsing. The media type of the object will always match the enclosing list - if this as a JSON table, these will be JSON encoded objects.", - Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), - }, - }, - }, - Required: []string{"cells"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.TableRowCondition", "k8s.io/apimachinery/pkg/runtime.RawExtension"}, - } -} - -func schema_pkg_apis_meta_v1_TableRowCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TableRowCondition allows a row to be marked with additional information.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of row condition. The only defined value is 'Completed' indicating that the object this row represents has reached a completed state and may be given less visual priority than other rows. Clients are not required to honor any conditions but should be consistent where possible about handling the conditions.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "(brief) machine readable reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "Human readable message indicating details about last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_Time(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", - Type: metav1.Time{}.OpenAPISchemaType(), - Format: metav1.Time{}.OpenAPISchemaFormat(), - }, - }, - } -} - -func schema_pkg_apis_meta_v1_Timestamp(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Timestamp is a struct that is equivalent to Time, but intended for protobuf marshalling/unmarshalling. It is generated into a serialization that matches Time. Do not use in Go structs.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "seconds": { - SchemaProps: spec.SchemaProps{ - Description: "Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "nanos": { - SchemaProps: spec.SchemaProps{ - Description: "Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive. This field may be limited in precision depending on context.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"seconds", "nanos"}, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_TypeMeta(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TypeMeta describes an individual object in an API response or request with strings representing the type of the object and its API schema version. Structures that are versioned or persisted should inline TypeMeta.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_UpdateOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "UpdateOptions may be provided when updating an API object. All fields in UpdateOptions should also be present in PatchOptions.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "dryRun": { - SchemaProps: spec.SchemaProps{ - Description: "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "fieldManager": { - SchemaProps: spec.SchemaProps{ - Description: "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_meta_v1_WatchEvent(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Event represents a single event to a watched resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "object": { - SchemaProps: spec.SchemaProps{ - Description: "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Error: *Status is recommended; other types may make sense\n depending on context.", - Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), - }, - }, - }, - Required: []string{"type", "object"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/runtime.RawExtension"}, - } -} - -func schema_pkg_apis_meta_v1beta1_PartialObjectMetadataList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PartialObjectMetadataList contains a list of objects containing only their metadata.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items contains each of the included items.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadata"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadata"}, - } -} - -func schema_k8sio_apimachinery_pkg_runtime_RawExtension(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RawExtension is used to hold extensions in external versions.\n\nTo use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.\n\n// Internal package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.Object `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// External package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// On the wire, the JSON will look something like this: {\n\t\"kind\":\"MyAPIObject\",\n\t\"apiVersion\":\"v1\",\n\t\"myPlugin\": {\n\t\t\"kind\":\"PluginA\",\n\t\t\"aOption\":\"foo\",\n\t},\n}\n\nSo what happens? Decode first uses json or yaml to unmarshal the serialized data into your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked. The next step is to copy (using pkg/conversion) into the internal struct. The runtime package's DefaultScheme has conversion functions installed which will unpack the JSON stored in RawExtension, turning it into the correct object type, and storing it in the Object. (TODO: In the case where the object is of an unknown type, a runtime.Unknown object will be created and stored.)", - Type: []string{"object"}, - }, - }, - } -} - -func schema_k8sio_apimachinery_pkg_runtime_TypeMeta(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TypeMeta is shared by all top level objects. The proper way to use it is to inline it in your type, like this: type MyAwesomeAPIObject struct {\n runtime.TypeMeta `json:\",inline\"`\n ... // other fields\n} func (obj *MyAwesomeAPIObject) SetGroupVersionKind(gvk *metav1.GroupVersionKind) { metav1.UpdateTypeMeta(obj,gvk) }; GroupVersionKind() *GroupVersionKind\n\nTypeMeta is provided here for convenience. You may use it directly from this package or define your own with the same fields.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "kind": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_apimachinery_pkg_runtime_Unknown(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Unknown allows api objects with unknown types to be passed-through. This can be used to deal with the API objects from a plug-in. Unknown objects still have functioning TypeMeta features-- kind, version, etc. metadata and field mutatation.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "kind": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "Raw": { - SchemaProps: spec.SchemaProps{ - Description: "Raw will hold the complete serialized object which couldn't be matched with a registered type. Most likely, nothing should be done with this except for passing it through the system.", - Type: []string{"string"}, - Format: "byte", - }, - }, - "ContentEncoding": { - SchemaProps: spec.SchemaProps{ - Description: "ContentEncoding is encoding used to encode 'Raw' data. Unspecified means no encoding.", - Type: []string{"string"}, - Format: "", - }, - }, - "ContentType": { - SchemaProps: spec.SchemaProps{ - Description: "ContentType is serialization method used to serialize 'Raw'. Unspecified means ContentTypeJSON.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"Raw", "ContentEncoding", "ContentType"}, - }, - }, - } -} - -func schema_apimachinery_pkg_util_intstr_IntOrString(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.", - Type: intstr.IntOrString{}.OpenAPISchemaType(), - Format: intstr.IntOrString{}.OpenAPISchemaFormat(), - }, - }, - } -} - -func schema_k8sio_apimachinery_pkg_version_Info(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Info contains versioning information. how we'll want to distribute that information.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "major": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "minor": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "gitVersion": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "gitCommit": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "gitTreeState": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "buildDate": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "goVersion": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "compiler": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "platform": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"major", "minor", "gitVersion", "gitCommit", "gitTreeState", "buildDate", "goVersion", "compiler", "platform"}, - }, - }, - } -} - -func schema_pkg_apis_apiserverinternal_v1alpha1_ServerStorageVersion(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "An API server instance reports the version it can decode and the version it encodes objects to when persisting objects in the backend.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "apiServerID": { - SchemaProps: spec.SchemaProps{ - Description: "The ID of the reporting API server.", - Type: []string{"string"}, - Format: "", - }, - }, - "encodingVersion": { - SchemaProps: spec.SchemaProps{ - Description: "The API server encodes the object to this version when persisting it in the backend (e.g., etcd).", - Type: []string{"string"}, - Format: "", - }, - }, - "decodableVersions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "The API server can decode objects encoded in these versions. The encodingVersion must be included in the decodableVersions.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_apiserverinternal_v1alpha1_StorageVersion(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "\n Storage version of a specific resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "The name is ..", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec is an empty spec. It is here to comply with Kubernetes API style.", - Ref: ref("k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1.StorageVersionSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "API server instances report the version they can decode and the version they encode objects to when persisting objects in the backend.", - Ref: ref("k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1.StorageVersionStatus"), - }, - }, - }, - Required: []string{"spec", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1.StorageVersionSpec", "k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1.StorageVersionStatus"}, - } -} - -func schema_pkg_apis_apiserverinternal_v1alpha1_StorageVersionCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Describes the state of the storageVersion at a certain point.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type of the condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status of the condition, one of True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "observedGeneration": { - SchemaProps: spec.SchemaProps{ - Description: "If set, this represents the .metadata.generation that the condition was set based upon.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "The reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about the transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status", "reason"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_pkg_apis_apiserverinternal_v1alpha1_StorageVersionList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "A list of StorageVersions.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1.StorageVersion"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1.StorageVersion"}, - } -} - -func schema_pkg_apis_apiserverinternal_v1alpha1_StorageVersionSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StorageVersionSpec is an empty spec.", - Type: []string{"object"}, - }, - }, - } -} - -func schema_pkg_apis_apiserverinternal_v1alpha1_StorageVersionStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "API server instances report the versions they can decode and the version they encode objects to when persisting objects in the backend.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "storageVersions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "apiserverID", - }, - "x-kubernetes-list-type": "map", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "The reported versions per API server instance.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1.ServerStorageVersion"), - }, - }, - }, - }, - }, - "commonEncodingVersion": { - SchemaProps: spec.SchemaProps{ - Description: "If all API server instances agree on the same encoding storage version, then this field is set to that version. Otherwise this field is left empty. API servers should finish updating its storageVersionStatus entry before serving write operations, so that this field will be in sync with the reality.", - Type: []string{"string"}, - Format: "", - }, - }, - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "The latest available observations of the storageVersion's state.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1.StorageVersionCondition"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1.ServerStorageVersion", "k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1.StorageVersionCondition"}, - } -} - -func schema_pkg_apis_audit_v1_Event(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Event captures all the information that can be included in an API audit log.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "level": { - SchemaProps: spec.SchemaProps{ - Description: "AuditLevel at which event was generated", - Type: []string{"string"}, - Format: "", - }, - }, - "auditID": { - SchemaProps: spec.SchemaProps{ - Description: "Unique audit ID, generated for each request.", - Type: []string{"string"}, - Format: "", - }, - }, - "stage": { - SchemaProps: spec.SchemaProps{ - Description: "Stage of the request handling when this event instance was generated.", - Type: []string{"string"}, - Format: "", - }, - }, - "requestURI": { - SchemaProps: spec.SchemaProps{ - Description: "RequestURI is the request URI as sent by the client to a server.", - Type: []string{"string"}, - Format: "", - }, - }, - "verb": { - SchemaProps: spec.SchemaProps{ - Description: "Verb is the kubernetes verb associated with the request. For non-resource requests, this is the lower-cased HTTP method.", - Type: []string{"string"}, - Format: "", - }, - }, - "user": { - SchemaProps: spec.SchemaProps{ - Description: "Authenticated user information.", - Ref: ref("k8s.io/api/authentication/v1.UserInfo"), - }, - }, - "impersonatedUser": { - SchemaProps: spec.SchemaProps{ - Description: "Impersonated user information.", - Ref: ref("k8s.io/api/authentication/v1.UserInfo"), - }, - }, - "sourceIPs": { - SchemaProps: spec.SchemaProps{ - Description: "Source IPs, from where the request originated and intermediate proxies.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "userAgent": { - SchemaProps: spec.SchemaProps{ - Description: "UserAgent records the user agent string reported by the client. Note that the UserAgent is provided by the client, and must not be trusted.", - Type: []string{"string"}, - Format: "", - }, - }, - "objectRef": { - SchemaProps: spec.SchemaProps{ - Description: "Object reference this request is targeted at. Does not apply for List-type requests, or non-resource requests.", - Ref: ref("k8s.io/apiserver/pkg/apis/audit/v1.ObjectReference"), - }, - }, - "responseStatus": { - SchemaProps: spec.SchemaProps{ - Description: "The response status, populated even when the ResponseObject is not a Status type. For successful responses, this will only include the Code and StatusSuccess. For non-status type error responses, this will be auto-populated with the error Message.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Status"), - }, - }, - "requestObject": { - SchemaProps: spec.SchemaProps{ - Description: "API object from the request, in JSON format. The RequestObject is recorded as-is in the request (possibly re-encoded as JSON), prior to version conversion, defaulting, admission or merging. It is an external versioned object type, and may not be a valid object on its own. Omitted for non-resource requests. Only logged at Request Level and higher.", - Ref: ref("k8s.io/apimachinery/pkg/runtime.Unknown"), - }, - }, - "responseObject": { - SchemaProps: spec.SchemaProps{ - Description: "API object returned in the response, in JSON. The ResponseObject is recorded after conversion to the external type, and serialized as JSON. Omitted for non-resource requests. Only logged at Response Level.", - Ref: ref("k8s.io/apimachinery/pkg/runtime.Unknown"), - }, - }, - "requestReceivedTimestamp": { - SchemaProps: spec.SchemaProps{ - Description: "Time the request reached the apiserver.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"), - }, - }, - "stageTimestamp": { - SchemaProps: spec.SchemaProps{ - Description: "Time the request reached current audit stage.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"), - }, - }, - "annotations": { - SchemaProps: spec.SchemaProps{ - Description: "Annotations is an unstructured key value map stored with an audit event that may be set by plugins invoked in the request serving chain, including authentication, authorization and admission plugins. Note that these annotations are for the audit event, and do not correspond to the metadata.annotations of the submitted object. Keys should uniquely identify the informing component to avoid name collisions (e.g. podsecuritypolicy.admission.k8s.io/policy). Values should be short. Annotations are included in the Metadata level.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"level", "auditID", "stage", "requestURI", "verb", "user"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/authentication/v1.UserInfo", "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime", "k8s.io/apimachinery/pkg/apis/meta/v1.Status", "k8s.io/apimachinery/pkg/runtime.Unknown", "k8s.io/apiserver/pkg/apis/audit/v1.ObjectReference"}, - } -} - -func schema_pkg_apis_audit_v1_EventList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EventList is a list of audit Events.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiserver/pkg/apis/audit/v1.Event"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apiserver/pkg/apis/audit/v1.Event"}, - } -} - -func schema_pkg_apis_audit_v1_GroupResources(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GroupResources represents resource kinds in an API group.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "group": { - SchemaProps: spec.SchemaProps{ - Description: "Group is the name of the API group that contains the resources. The empty string represents the core API group.", - Type: []string{"string"}, - Format: "", - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' matches pods. 'pods/log' matches the log subresource of pods. '*' matches all resources and their subresources. 'pods/*' matches all subresources of pods. '*/scale' matches all scale subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nAn empty list implies all resources and subresources in this API groups apply.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resourceNames": { - SchemaProps: spec.SchemaProps{ - Description: "ResourceNames is a list of resource instance names that the policy matches. Using this field requires Resources to be specified. An empty list implies that every instance of the resource is matched.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_audit_v1_ObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ObjectReference contains enough information to let you inspect or modify the referred object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "resource": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "namespace": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "uid": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "apiGroup": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroup is the name of the API group that contains the referred object. The empty string represents the core API group.", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion is the version of the API group that contains the referred object.", - Type: []string{"string"}, - Format: "", - }, - }, - "resourceVersion": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "subresource": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_audit_v1_Policy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Policy defines the configuration of audit logging, and the rules for how different request categories are logged.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "ObjectMeta is included for interoperability with API infrastructure.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "Rules specify the audit Level a request should be recorded at. A request may match multiple rules, in which case the FIRST matching rule is used. The default audit level is None, but can be overridden by a catch-all rule at the end of the list. PolicyRules are strictly ordered.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiserver/pkg/apis/audit/v1.PolicyRule"), - }, - }, - }, - }, - }, - "omitStages": { - SchemaProps: spec.SchemaProps{ - Description: "OmitStages is a list of stages for which no events are created. Note that this can also be specified per rule in which case the union of both are omitted.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"rules"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apiserver/pkg/apis/audit/v1.PolicyRule"}, - } -} - -func schema_pkg_apis_audit_v1_PolicyList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PolicyList is a list of audit Policies.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiserver/pkg/apis/audit/v1.Policy"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apiserver/pkg/apis/audit/v1.Policy"}, - } -} - -func schema_pkg_apis_audit_v1_PolicyRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PolicyRule maps requests based off metadata to an audit Level. Requests must match the rules of every field (an intersection of rules).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "level": { - SchemaProps: spec.SchemaProps{ - Description: "The Level that requests matching this rule are recorded at.", - Type: []string{"string"}, - Format: "", - }, - }, - "users": { - SchemaProps: spec.SchemaProps{ - Description: "The users (by authenticated user name) this rule applies to. An empty list implies every user.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "userGroups": { - SchemaProps: spec.SchemaProps{ - Description: "The user groups this rule applies to. A user is considered matching if it is a member of any of the UserGroups. An empty list implies every user group.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "verbs": { - SchemaProps: spec.SchemaProps{ - Description: "The verbs that match this rule. An empty list implies every verb.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources that this rule matches. An empty list implies all kinds in all API groups.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiserver/pkg/apis/audit/v1.GroupResources"), - }, - }, - }, - }, - }, - "namespaces": { - SchemaProps: spec.SchemaProps{ - Description: "Namespaces that this rule matches. The empty string \"\" matches non-namespaced resources. An empty list implies every namespace.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "nonResourceURLs": { - SchemaProps: spec.SchemaProps{ - Description: "NonResourceURLs is a set of URL paths that should be audited. *s are allowed, but only as the full, final step in the path. Examples:\n \"/metrics\" - Log requests for apiserver metrics\n \"/healthz*\" - Log all health checks", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "omitStages": { - SchemaProps: spec.SchemaProps{ - Description: "OmitStages is a list of stages for which no events are created. Note that this can also be specified policy wide in which case the union of both are omitted. An empty list means no restrictions will apply.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"level"}, - }, - }, - Dependencies: []string{ - "k8s.io/apiserver/pkg/apis/audit/v1.GroupResources"}, - } -} - -func schema_pkg_apis_audit_v1alpha1_Event(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Event captures all the information that can be included in an API audit log.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "ObjectMeta is included for interoperability with API infrastructure.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "level": { - SchemaProps: spec.SchemaProps{ - Description: "AuditLevel at which event was generated", - Type: []string{"string"}, - Format: "", - }, - }, - "timestamp": { - SchemaProps: spec.SchemaProps{ - Description: "Time the request reached the apiserver.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "auditID": { - SchemaProps: spec.SchemaProps{ - Description: "Unique audit ID, generated for each request.", - Type: []string{"string"}, - Format: "", - }, - }, - "stage": { - SchemaProps: spec.SchemaProps{ - Description: "Stage of the request handling when this event instance was generated.", - Type: []string{"string"}, - Format: "", - }, - }, - "requestURI": { - SchemaProps: spec.SchemaProps{ - Description: "RequestURI is the request URI as sent by the client to a server.", - Type: []string{"string"}, - Format: "", - }, - }, - "verb": { - SchemaProps: spec.SchemaProps{ - Description: "Verb is the kubernetes verb associated with the request. For non-resource requests, this is the lower-cased HTTP method.", - Type: []string{"string"}, - Format: "", - }, - }, - "user": { - SchemaProps: spec.SchemaProps{ - Description: "Authenticated user information.", - Ref: ref("k8s.io/api/authentication/v1.UserInfo"), - }, - }, - "impersonatedUser": { - SchemaProps: spec.SchemaProps{ - Description: "Impersonated user information.", - Ref: ref("k8s.io/api/authentication/v1.UserInfo"), - }, - }, - "sourceIPs": { - SchemaProps: spec.SchemaProps{ - Description: "Source IPs, from where the request originated and intermediate proxies.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "userAgent": { - SchemaProps: spec.SchemaProps{ - Description: "UserAgent records the user agent string reported by the client. Note that the UserAgent is provided by the client, and must not be trusted.", - Type: []string{"string"}, - Format: "", - }, - }, - "objectRef": { - SchemaProps: spec.SchemaProps{ - Description: "Object reference this request is targeted at. Does not apply for List-type requests, or non-resource requests.", - Ref: ref("k8s.io/apiserver/pkg/apis/audit/v1alpha1.ObjectReference"), - }, - }, - "responseStatus": { - SchemaProps: spec.SchemaProps{ - Description: "The response status, populated even when the ResponseObject is not a Status type. For successful responses, this will only include the Code and StatusSuccess. For non-status type error responses, this will be auto-populated with the error Message.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Status"), - }, - }, - "requestObject": { - SchemaProps: spec.SchemaProps{ - Description: "API object from the request, in JSON format. The RequestObject is recorded as-is in the request (possibly re-encoded as JSON), prior to version conversion, defaulting, admission or merging. It is an external versioned object type, and may not be a valid object on its own. Omitted for non-resource requests. Only logged at Request Level and higher.", - Ref: ref("k8s.io/apimachinery/pkg/runtime.Unknown"), - }, - }, - "responseObject": { - SchemaProps: spec.SchemaProps{ - Description: "API object returned in the response, in JSON. The ResponseObject is recorded after conversion to the external type, and serialized as JSON. Omitted for non-resource requests. Only logged at Response Level.", - Ref: ref("k8s.io/apimachinery/pkg/runtime.Unknown"), - }, - }, - "requestReceivedTimestamp": { - SchemaProps: spec.SchemaProps{ - Description: "Time the request reached the apiserver.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"), - }, - }, - "stageTimestamp": { - SchemaProps: spec.SchemaProps{ - Description: "Time the request reached current audit stage.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"), - }, - }, - "annotations": { - SchemaProps: spec.SchemaProps{ - Description: "Annotations is an unstructured key value map stored with an audit event that may be set by plugins invoked in the request serving chain, including authentication, authorization and admission plugins. Note that these annotations are for the audit event, and do not correspond to the metadata.annotations of the submitted object. Keys should uniquely identify the informing component to avoid name collisions (e.g. podsecuritypolicy.admission.k8s.io/policy). Values should be short. Annotations are included in the Metadata level.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"level", "timestamp", "auditID", "stage", "requestURI", "verb", "user"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/authentication/v1.UserInfo", "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.Status", "k8s.io/apimachinery/pkg/apis/meta/v1.Time", "k8s.io/apimachinery/pkg/runtime.Unknown", "k8s.io/apiserver/pkg/apis/audit/v1alpha1.ObjectReference"}, - } -} - -func schema_pkg_apis_audit_v1alpha1_EventList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EventList is a list of audit Events.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiserver/pkg/apis/audit/v1alpha1.Event"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apiserver/pkg/apis/audit/v1alpha1.Event"}, - } -} - -func schema_pkg_apis_audit_v1alpha1_GroupResources(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GroupResources represents resource kinds in an API group.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "group": { - SchemaProps: spec.SchemaProps{ - Description: "Group is the name of the API group that contains the resources. The empty string represents the core API group.", - Type: []string{"string"}, - Format: "", - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' matches pods. 'pods/log' matches the log subresource of pods. '*' matches all resources and their subresources. 'pods/*' matches all subresources of pods. '*/scale' matches all scale subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nAn empty list implies all resources and subresources in this API groups apply.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resourceNames": { - SchemaProps: spec.SchemaProps{ - Description: "ResourceNames is a list of resource instance names that the policy matches. Using this field requires Resources to be specified. An empty list implies that every instance of the resource is matched.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_audit_v1alpha1_ObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ObjectReference contains enough information to let you inspect or modify the referred object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "resource": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "namespace": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "uid": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "resourceVersion": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "subresource": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_audit_v1alpha1_Policy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Policy defines the configuration of audit logging, and the rules for how different request categories are logged.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "ObjectMeta is included for interoperability with API infrastructure.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "Rules specify the audit Level a request should be recorded at. A request may match multiple rules, in which case the FIRST matching rule is used. The default audit level is None, but can be overridden by a catch-all rule at the end of the list. PolicyRules are strictly ordered.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiserver/pkg/apis/audit/v1alpha1.PolicyRule"), - }, - }, - }, - }, - }, - "omitStages": { - SchemaProps: spec.SchemaProps{ - Description: "OmitStages is a list of stages for which no events are created. Note that this can also be specified per rule in which case the union of both are omitted.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"rules"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apiserver/pkg/apis/audit/v1alpha1.PolicyRule"}, - } -} - -func schema_pkg_apis_audit_v1alpha1_PolicyList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PolicyList is a list of audit Policies.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiserver/pkg/apis/audit/v1alpha1.Policy"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apiserver/pkg/apis/audit/v1alpha1.Policy"}, - } -} - -func schema_pkg_apis_audit_v1alpha1_PolicyRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PolicyRule maps requests based off metadata to an audit Level. Requests must match the rules of every field (an intersection of rules).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "level": { - SchemaProps: spec.SchemaProps{ - Description: "The Level that requests matching this rule are recorded at.", - Type: []string{"string"}, - Format: "", - }, - }, - "users": { - SchemaProps: spec.SchemaProps{ - Description: "The users (by authenticated user name) this rule applies to. An empty list implies every user.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "userGroups": { - SchemaProps: spec.SchemaProps{ - Description: "The user groups this rule applies to. A user is considered matching if it is a member of any of the UserGroups. An empty list implies every user group.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "verbs": { - SchemaProps: spec.SchemaProps{ - Description: "The verbs that match this rule. An empty list implies every verb.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources that this rule matches. An empty list implies all kinds in all API groups.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiserver/pkg/apis/audit/v1alpha1.GroupResources"), - }, - }, - }, - }, - }, - "namespaces": { - SchemaProps: spec.SchemaProps{ - Description: "Namespaces that this rule matches. The empty string \"\" matches non-namespaced resources. An empty list implies every namespace.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "nonResourceURLs": { - SchemaProps: spec.SchemaProps{ - Description: "NonResourceURLs is a set of URL paths that should be audited. *s are allowed, but only as the full, final step in the path. Examples:\n \"/metrics\" - Log requests for apiserver metrics\n \"/healthz*\" - Log all health checks", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "omitStages": { - SchemaProps: spec.SchemaProps{ - Description: "OmitStages is a list of stages for which no events are created. Note that this can also be specified policy wide in which case the union of both are omitted. An empty list means no restrictions will apply.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"level"}, - }, - }, - Dependencies: []string{ - "k8s.io/apiserver/pkg/apis/audit/v1alpha1.GroupResources"}, - } -} - -func schema_pkg_apis_audit_v1beta1_Event(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Event captures all the information that can be included in an API audit log.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "ObjectMeta is included for interoperability with API infrastructure. DEPRECATED: Use StageTimestamp which supports micro second instead of ObjectMeta.CreateTimestamp and the rest of the object is not used", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "level": { - SchemaProps: spec.SchemaProps{ - Description: "AuditLevel at which event was generated", - Type: []string{"string"}, - Format: "", - }, - }, - "timestamp": { - SchemaProps: spec.SchemaProps{ - Description: "Time the request reached the apiserver. DEPRECATED: Use RequestReceivedTimestamp which supports micro second instead.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "auditID": { - SchemaProps: spec.SchemaProps{ - Description: "Unique audit ID, generated for each request.", - Type: []string{"string"}, - Format: "", - }, - }, - "stage": { - SchemaProps: spec.SchemaProps{ - Description: "Stage of the request handling when this event instance was generated.", - Type: []string{"string"}, - Format: "", - }, - }, - "requestURI": { - SchemaProps: spec.SchemaProps{ - Description: "RequestURI is the request URI as sent by the client to a server.", - Type: []string{"string"}, - Format: "", - }, - }, - "verb": { - SchemaProps: spec.SchemaProps{ - Description: "Verb is the kubernetes verb associated with the request. For non-resource requests, this is the lower-cased HTTP method.", - Type: []string{"string"}, - Format: "", - }, - }, - "user": { - SchemaProps: spec.SchemaProps{ - Description: "Authenticated user information.", - Ref: ref("k8s.io/api/authentication/v1.UserInfo"), - }, - }, - "impersonatedUser": { - SchemaProps: spec.SchemaProps{ - Description: "Impersonated user information.", - Ref: ref("k8s.io/api/authentication/v1.UserInfo"), - }, - }, - "sourceIPs": { - SchemaProps: spec.SchemaProps{ - Description: "Source IPs, from where the request originated and intermediate proxies.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "userAgent": { - SchemaProps: spec.SchemaProps{ - Description: "UserAgent records the user agent string reported by the client. Note that the UserAgent is provided by the client, and must not be trusted.", - Type: []string{"string"}, - Format: "", - }, - }, - "objectRef": { - SchemaProps: spec.SchemaProps{ - Description: "Object reference this request is targeted at. Does not apply for List-type requests, or non-resource requests.", - Ref: ref("k8s.io/apiserver/pkg/apis/audit/v1beta1.ObjectReference"), - }, - }, - "responseStatus": { - SchemaProps: spec.SchemaProps{ - Description: "The response status, populated even when the ResponseObject is not a Status type. For successful responses, this will only include the Code and StatusSuccess. For non-status type error responses, this will be auto-populated with the error Message.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Status"), - }, - }, - "requestObject": { - SchemaProps: spec.SchemaProps{ - Description: "API object from the request, in JSON format. The RequestObject is recorded as-is in the request (possibly re-encoded as JSON), prior to version conversion, defaulting, admission or merging. It is an external versioned object type, and may not be a valid object on its own. Omitted for non-resource requests. Only logged at Request Level and higher.", - Ref: ref("k8s.io/apimachinery/pkg/runtime.Unknown"), - }, - }, - "responseObject": { - SchemaProps: spec.SchemaProps{ - Description: "API object returned in the response, in JSON. The ResponseObject is recorded after conversion to the external type, and serialized as JSON. Omitted for non-resource requests. Only logged at Response Level.", - Ref: ref("k8s.io/apimachinery/pkg/runtime.Unknown"), - }, - }, - "requestReceivedTimestamp": { - SchemaProps: spec.SchemaProps{ - Description: "Time the request reached the apiserver.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"), - }, - }, - "stageTimestamp": { - SchemaProps: spec.SchemaProps{ - Description: "Time the request reached current audit stage.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"), - }, - }, - "annotations": { - SchemaProps: spec.SchemaProps{ - Description: "Annotations is an unstructured key value map stored with an audit event that may be set by plugins invoked in the request serving chain, including authentication, authorization and admission plugins. Note that these annotations are for the audit event, and do not correspond to the metadata.annotations of the submitted object. Keys should uniquely identify the informing component to avoid name collisions (e.g. podsecuritypolicy.admission.k8s.io/policy). Values should be short. Annotations are included in the Metadata level.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"level", "timestamp", "auditID", "stage", "requestURI", "verb", "user"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/authentication/v1.UserInfo", "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.Status", "k8s.io/apimachinery/pkg/apis/meta/v1.Time", "k8s.io/apimachinery/pkg/runtime.Unknown", "k8s.io/apiserver/pkg/apis/audit/v1beta1.ObjectReference"}, - } -} - -func schema_pkg_apis_audit_v1beta1_EventList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EventList is a list of audit Events.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiserver/pkg/apis/audit/v1beta1.Event"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apiserver/pkg/apis/audit/v1beta1.Event"}, - } -} - -func schema_pkg_apis_audit_v1beta1_GroupResources(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GroupResources represents resource kinds in an API group.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "group": { - SchemaProps: spec.SchemaProps{ - Description: "Group is the name of the API group that contains the resources. The empty string represents the core API group.", - Type: []string{"string"}, - Format: "", - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' matches pods. 'pods/log' matches the log subresource of pods. '*' matches all resources and their subresources. 'pods/*' matches all subresources of pods. '*/scale' matches all scale subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nAn empty list implies all resources and subresources in this API groups apply.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resourceNames": { - SchemaProps: spec.SchemaProps{ - Description: "ResourceNames is a list of resource instance names that the policy matches. Using this field requires Resources to be specified. An empty list implies that every instance of the resource is matched.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_audit_v1beta1_ObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ObjectReference contains enough information to let you inspect or modify the referred object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "resource": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "namespace": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "uid": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "apiGroup": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroup is the name of the API group that contains the referred object. The empty string represents the core API group.", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion is the version of the API group that contains the referred object.", - Type: []string{"string"}, - Format: "", - }, - }, - "resourceVersion": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - "subresource": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_audit_v1beta1_Policy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Policy defines the configuration of audit logging, and the rules for how different request categories are logged.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "ObjectMeta is included for interoperability with API infrastructure.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "Rules specify the audit Level a request should be recorded at. A request may match multiple rules, in which case the FIRST matching rule is used. The default audit level is None, but can be overridden by a catch-all rule at the end of the list. PolicyRules are strictly ordered.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiserver/pkg/apis/audit/v1beta1.PolicyRule"), - }, - }, - }, - }, - }, - "omitStages": { - SchemaProps: spec.SchemaProps{ - Description: "OmitStages is a list of stages for which no events are created. Note that this can also be specified per rule in which case the union of both are omitted.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"rules"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apiserver/pkg/apis/audit/v1beta1.PolicyRule"}, - } -} - -func schema_pkg_apis_audit_v1beta1_PolicyList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PolicyList is a list of audit Policies.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiserver/pkg/apis/audit/v1beta1.Policy"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apiserver/pkg/apis/audit/v1beta1.Policy"}, - } -} - -func schema_pkg_apis_audit_v1beta1_PolicyRule(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PolicyRule maps requests based off metadata to an audit Level. Requests must match the rules of every field (an intersection of rules).", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "level": { - SchemaProps: spec.SchemaProps{ - Description: "The Level that requests matching this rule are recorded at.", - Type: []string{"string"}, - Format: "", - }, - }, - "users": { - SchemaProps: spec.SchemaProps{ - Description: "The users (by authenticated user name) this rule applies to. An empty list implies every user.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "userGroups": { - SchemaProps: spec.SchemaProps{ - Description: "The user groups this rule applies to. A user is considered matching if it is a member of any of the UserGroups. An empty list implies every user group.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "verbs": { - SchemaProps: spec.SchemaProps{ - Description: "The verbs that match this rule. An empty list implies every verb.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Description: "Resources that this rule matches. An empty list implies all kinds in all API groups.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apiserver/pkg/apis/audit/v1beta1.GroupResources"), - }, - }, - }, - }, - }, - "namespaces": { - SchemaProps: spec.SchemaProps{ - Description: "Namespaces that this rule matches. The empty string \"\" matches non-namespaced resources. An empty list implies every namespace.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "nonResourceURLs": { - SchemaProps: spec.SchemaProps{ - Description: "NonResourceURLs is a set of URL paths that should be audited. *s are allowed, but only as the full, final step in the path. Examples:\n \"/metrics\" - Log requests for apiserver metrics\n \"/healthz*\" - Log all health checks", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "omitStages": { - SchemaProps: spec.SchemaProps{ - Description: "OmitStages is a list of stages for which no events are created. Note that this can also be specified policy wide in which case the union of both are omitted. An empty list means no restrictions will apply.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"level"}, - }, - }, - Dependencies: []string{ - "k8s.io/apiserver/pkg/apis/audit/v1beta1.GroupResources"}, - } -} - -func schema_pkg_apis_clientauthentication_v1alpha1_ExecCredential(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExecCredential is used by exec-based plugins to communicate credentials to HTTP transports.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec holds information passed to the plugin by the transport. This contains request and runtime specific information, such as if the session is interactive.", - Ref: ref("k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1.ExecCredentialSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is filled in by the plugin and holds the credentials that the transport should use to contact the API.", - Ref: ref("k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1.ExecCredentialStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1.ExecCredentialSpec", "k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1.ExecCredentialStatus"}, - } -} - -func schema_pkg_apis_clientauthentication_v1alpha1_ExecCredentialSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExecCredenitalSpec holds request and runtime specific information provided by the transport.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "response": { - SchemaProps: spec.SchemaProps{ - Description: "Response is populated when the transport encounters HTTP status codes, such as 401, suggesting previous credentials were invalid.", - Ref: ref("k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1.Response"), - }, - }, - "interactive": { - SchemaProps: spec.SchemaProps{ - Description: "Interactive is true when the transport detects the command is being called from an interactive prompt.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1.Response"}, - } -} - -func schema_pkg_apis_clientauthentication_v1alpha1_ExecCredentialStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExecCredentialStatus holds credentials for the transport to use.\n\nToken and ClientKeyData are sensitive fields. This data should only be transmitted in-memory between client and exec plugin process. Exec plugin itself should at least be protected via file permissions.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "expirationTimestamp": { - SchemaProps: spec.SchemaProps{ - Description: "ExpirationTimestamp indicates a time when the provided credentials expire.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "token": { - SchemaProps: spec.SchemaProps{ - Description: "Token is a bearer token used by the client for request authentication.", - Type: []string{"string"}, - Format: "", - }, - }, - "clientCertificateData": { - SchemaProps: spec.SchemaProps{ - Description: "PEM-encoded client TLS certificates (including intermediates, if any).", - Type: []string{"string"}, - Format: "", - }, - }, - "clientKeyData": { - SchemaProps: spec.SchemaProps{ - Description: "PEM-encoded private key for the above certificate.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_pkg_apis_clientauthentication_v1alpha1_Response(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Response defines metadata about a failed request, including HTTP status code and response headers.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "header": { - SchemaProps: spec.SchemaProps{ - Description: "Header holds HTTP headers returned by the server.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - "code": { - SchemaProps: spec.SchemaProps{ - Description: "Code is the HTTP status code returned by the server.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_clientauthentication_v1beta1_ExecCredential(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExecCredentials is used by exec-based plugins to communicate credentials to HTTP transports.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec holds information passed to the plugin by the transport. This contains request and runtime specific information, such as if the session is interactive.", - Ref: ref("k8s.io/client-go/pkg/apis/clientauthentication/v1beta1.ExecCredentialSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is filled in by the plugin and holds the credentials that the transport should use to contact the API.", - Ref: ref("k8s.io/client-go/pkg/apis/clientauthentication/v1beta1.ExecCredentialStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/client-go/pkg/apis/clientauthentication/v1beta1.ExecCredentialSpec", "k8s.io/client-go/pkg/apis/clientauthentication/v1beta1.ExecCredentialStatus"}, - } -} - -func schema_pkg_apis_clientauthentication_v1beta1_ExecCredentialSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExecCredenitalSpec holds request and runtime specific information provided by the transport.", - Type: []string{"object"}, - }, - }, - } -} - -func schema_pkg_apis_clientauthentication_v1beta1_ExecCredentialStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExecCredentialStatus holds credentials for the transport to use.\n\nToken and ClientKeyData are sensitive fields. This data should only be transmitted in-memory between client and exec plugin process. Exec plugin itself should at least be protected via file permissions.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "expirationTimestamp": { - SchemaProps: spec.SchemaProps{ - Description: "ExpirationTimestamp indicates a time when the provided credentials expire.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "token": { - SchemaProps: spec.SchemaProps{ - Description: "Token is a bearer token used by the client for request authentication.", - Type: []string{"string"}, - Format: "", - }, - }, - "clientCertificateData": { - SchemaProps: spec.SchemaProps{ - Description: "PEM-encoded client TLS certificates (including intermediates, if any).", - Type: []string{"string"}, - Format: "", - }, - }, - "clientKeyData": { - SchemaProps: spec.SchemaProps{ - Description: "PEM-encoded private key for the above certificate.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_pkg_apis_apiregistration_v1_APIService(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "APIService represents a server for a particular GroupVersion. Name must be \"version.group\".", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec contains information for locating and communicating with a server", - Ref: ref("k8s.io/kube-aggregator/pkg/apis/apiregistration/v1.APIServiceSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status contains derived information about an API server", - Ref: ref("k8s.io/kube-aggregator/pkg/apis/apiregistration/v1.APIServiceStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1.APIServiceSpec", "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1.APIServiceStatus"}, - } -} - -func schema_pkg_apis_apiregistration_v1_APIServiceCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "APIServiceCondition describes the state of an APIService at a particular point", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type is the type of the condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is the status of the condition. Can be True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "Unique, one-word, CamelCase reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "Human-readable message indicating details about last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_pkg_apis_apiregistration_v1_APIServiceList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "APIServiceList is a list of APIService objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-aggregator/pkg/apis/apiregistration/v1.APIService"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1.APIService"}, - } -} - -func schema_pkg_apis_apiregistration_v1_APIServiceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "service": { - SchemaProps: spec.SchemaProps{ - Description: "Service is a reference to the service for this API server. It must communicate on port 443. If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled.", - Ref: ref("k8s.io/kube-aggregator/pkg/apis/apiregistration/v1.ServiceReference"), - }, - }, - "group": { - SchemaProps: spec.SchemaProps{ - Description: "Group is the API group name this server hosts", - Type: []string{"string"}, - Format: "", - }, - }, - "version": { - SchemaProps: spec.SchemaProps{ - Description: "Version is the API version this server hosts. For example, \"v1\"", - Type: []string{"string"}, - Format: "", - }, - }, - "insecureSkipTLSVerify": { - SchemaProps: spec.SchemaProps{ - Description: "InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "caBundle": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used.", - Type: []string{"string"}, - Format: "byte", - }, - }, - "groupPriorityMinimum": { - SchemaProps: spec.SchemaProps{ - Description: "GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "versionPriority": { - SchemaProps: spec.SchemaProps{ - Description: "VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"groupPriorityMinimum", "versionPriority"}, - }, - }, - Dependencies: []string{ - "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1.ServiceReference"}, - } -} - -func schema_pkg_apis_apiregistration_v1_APIServiceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "APIServiceStatus contains derived information about an API server", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Current service state of apiService.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-aggregator/pkg/apis/apiregistration/v1.APIServiceCondition"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1.APIServiceCondition"}, - } -} - -func schema_pkg_apis_apiregistration_v1_ServiceReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceReference holds a reference to Service.legacy.k8s.io", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "Namespace is the namespace of the service", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name is the name of the service", - Type: []string{"string"}, - Format: "", - }, - }, - "port": { - SchemaProps: spec.SchemaProps{ - Description: "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_apiregistration_v1beta1_APIService(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "APIService represents a server for a particular GroupVersion. Name must be \"version.group\".", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec contains information for locating and communicating with a server", - Ref: ref("k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1.APIServiceSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status contains derived information about an API server", - Ref: ref("k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1.APIServiceStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1.APIServiceSpec", "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1.APIServiceStatus"}, - } -} - -func schema_pkg_apis_apiregistration_v1beta1_APIServiceCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "APIServiceCondition describes the state of an APIService at a particular point", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "Type is the type of the condition.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "Status is the status of the condition. Can be True, False, Unknown.", - Type: []string{"string"}, - Format: "", - }, - }, - "lastTransitionTime": { - SchemaProps: spec.SchemaProps{ - Description: "Last time the condition transitioned from one status to another.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "reason": { - SchemaProps: spec.SchemaProps{ - Description: "Unique, one-word, CamelCase reason for the condition's last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { - SchemaProps: spec.SchemaProps{ - Description: "Human-readable message indicating details about last transition.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "status"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_pkg_apis_apiregistration_v1beta1_APIServiceList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "APIServiceList is a list of APIService objects.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1.APIService"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1.APIService"}, - } -} - -func schema_pkg_apis_apiregistration_v1beta1_APIServiceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "service": { - SchemaProps: spec.SchemaProps{ - Description: "Service is a reference to the service for this API server. It must communicate on port 443. If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled.", - Ref: ref("k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1.ServiceReference"), - }, - }, - "group": { - SchemaProps: spec.SchemaProps{ - Description: "Group is the API group name this server hosts", - Type: []string{"string"}, - Format: "", - }, - }, - "version": { - SchemaProps: spec.SchemaProps{ - Description: "Version is the API version this server hosts. For example, \"v1\"", - Type: []string{"string"}, - Format: "", - }, - }, - "insecureSkipTLSVerify": { - SchemaProps: spec.SchemaProps{ - Description: "InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "caBundle": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate. If unspecified, system trust roots on the apiserver are used.", - Type: []string{"string"}, - Format: "byte", - }, - }, - "groupPriorityMinimum": { - SchemaProps: spec.SchemaProps{ - Description: "GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "versionPriority": { - SchemaProps: spec.SchemaProps{ - Description: "VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"groupPriorityMinimum", "versionPriority"}, - }, - }, - Dependencies: []string{ - "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1.ServiceReference"}, - } -} - -func schema_pkg_apis_apiregistration_v1beta1_APIServiceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "APIServiceStatus contains derived information about an API server", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Current service state of apiService.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1.APIServiceCondition"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1.APIServiceCondition"}, - } -} - -func schema_pkg_apis_apiregistration_v1beta1_ServiceReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceReference holds a reference to Service.legacy.k8s.io", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "Namespace is the namespace of the service", - Type: []string{"string"}, - Format: "", - }, - }, - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name is the name of the service", - Type: []string{"string"}, - Format: "", - }, - }, - "port": { - SchemaProps: spec.SchemaProps{ - Description: "If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_AttachDetachControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "AttachDetachControllerConfiguration contains elements describing AttachDetachController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "DisableAttachDetachReconcilerSync": { - SchemaProps: spec.SchemaProps{ - Description: "Reconciler runs a periodic loop to reconcile the desired state of the with the actual state of the world by triggering attach detach operations. This flag enables or disables reconcile. Is false by default, and thus enabled.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "ReconcilerSyncLoopPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "ReconcilerSyncLoopPeriod is the amount of time the reconciler sync states loop wait between successive executions. Is set to 5 sec by default.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - }, - Required: []string{"DisableAttachDetachReconcilerSync", "ReconcilerSyncLoopPeriod"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration"}, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_CSRSigningConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CSRSigningConfiguration holds information about a particular CSR signer", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "CertFile": { - SchemaProps: spec.SchemaProps{ - Description: "certFile is the filename containing a PEM-encoded X509 CA certificate used to issue certificates", - Type: []string{"string"}, - Format: "", - }, - }, - "KeyFile": { - SchemaProps: spec.SchemaProps{ - Description: "keyFile is the filename containing a PEM-encoded RSA or ECDSA private key used to issue certificates", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"CertFile", "KeyFile"}, - }, - }, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_CSRSigningControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CSRSigningControllerConfiguration contains elements describing CSRSigningController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ClusterSigningCertFile": { - SchemaProps: spec.SchemaProps{ - Description: "clusterSigningCertFile is the filename containing a PEM-encoded X509 CA certificate used to issue cluster-scoped certificates", - Type: []string{"string"}, - Format: "", - }, - }, - "ClusterSigningKeyFile": { - SchemaProps: spec.SchemaProps{ - Description: "clusterSigningCertFile is the filename containing a PEM-encoded RSA or ECDSA private key used to issue cluster-scoped certificates", - Type: []string{"string"}, - Format: "", - }, - }, - "KubeletServingSignerConfiguration": { - SchemaProps: spec.SchemaProps{ - Description: "kubeletServingSignerConfiguration holds the certificate and key used to issue certificates for the kubernetes.io/kubelet-serving signer", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.CSRSigningConfiguration"), - }, - }, - "KubeletClientSignerConfiguration": { - SchemaProps: spec.SchemaProps{ - Description: "kubeletClientSignerConfiguration holds the certificate and key used to issue certificates for the kubernetes.io/kube-apiserver-client-kubelet", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.CSRSigningConfiguration"), - }, - }, - "KubeAPIServerClientSignerConfiguration": { - SchemaProps: spec.SchemaProps{ - Description: "kubeAPIServerClientSignerConfiguration holds the certificate and key used to issue certificates for the kubernetes.io/kube-apiserver-client", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.CSRSigningConfiguration"), - }, - }, - "LegacyUnknownSignerConfiguration": { - SchemaProps: spec.SchemaProps{ - Description: "legacyUnknownSignerConfiguration holds the certificate and key used to issue certificates for the kubernetes.io/legacy-unknown", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.CSRSigningConfiguration"), - }, - }, - "ClusterSigningDuration": { - SchemaProps: spec.SchemaProps{ - Description: "clusterSigningDuration is the length of duration signed certificates will be given.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - }, - Required: []string{"ClusterSigningCertFile", "ClusterSigningKeyFile", "KubeletServingSignerConfiguration", "KubeletClientSignerConfiguration", "KubeAPIServerClientSignerConfiguration", "LegacyUnknownSignerConfiguration", "ClusterSigningDuration"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration", "k8s.io/kube-controller-manager/config/v1alpha1.CSRSigningConfiguration"}, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_CloudProviderConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CloudProviderConfiguration contains basically elements about cloud provider.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "Name": { - SchemaProps: spec.SchemaProps{ - Description: "Name is the provider for cloud services.", - Type: []string{"string"}, - Format: "", - }, - }, - "CloudConfigFile": { - SchemaProps: spec.SchemaProps{ - Description: "cloudConfigFile is the path to the cloud provider configuration file.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"Name", "CloudConfigFile"}, - }, - }, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_DaemonSetControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DaemonSetControllerConfiguration contains elements describing DaemonSetController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ConcurrentDaemonSetSyncs": { - SchemaProps: spec.SchemaProps{ - Description: "concurrentDaemonSetSyncs is the number of daemonset objects that are allowed to sync concurrently. Larger number = more responsive daemonset, but more CPU (and network) load.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"ConcurrentDaemonSetSyncs"}, - }, - }, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_DeploymentControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeploymentControllerConfiguration contains elements describing DeploymentController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ConcurrentDeploymentSyncs": { - SchemaProps: spec.SchemaProps{ - Description: "concurrentDeploymentSyncs is the number of deployment objects that are allowed to sync concurrently. Larger number = more responsive deployments, but more CPU (and network) load.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "DeploymentControllerSyncPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "deploymentControllerSyncPeriod is the period for syncing the deployments.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - }, - Required: []string{"ConcurrentDeploymentSyncs", "DeploymentControllerSyncPeriod"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration"}, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_DeprecatedControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DeprecatedControllerConfiguration contains elements be deprecated.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "DeletingPodsQPS": { - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED: deletingPodsQps is the number of nodes per second on which pods are deleted in case of node failure.", - Type: []string{"number"}, - Format: "float", - }, - }, - "DeletingPodsBurst": { - SchemaProps: spec.SchemaProps{ - Description: "DEPRECATED: deletingPodsBurst is the number of nodes on which pods are bursty deleted in case of node failure. For more details look into RateLimiter.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "RegisterRetryCount": { - SchemaProps: spec.SchemaProps{ - Description: "registerRetryCount is the number of retries for initial node registration. Retry interval equals node-sync-period.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"DeletingPodsQPS", "DeletingPodsBurst", "RegisterRetryCount"}, - }, - }, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_EndpointControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EndpointControllerConfiguration contains elements describing EndpointController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ConcurrentEndpointSyncs": { - SchemaProps: spec.SchemaProps{ - Description: "concurrentEndpointSyncs is the number of endpoint syncing operations that will be done concurrently. Larger number = faster endpoint updating, but more CPU (and network) load.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "EndpointUpdatesBatchPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "EndpointUpdatesBatchPeriod describes the length of endpoint updates batching period. Processing of pod changes will be delayed by this duration to join them with potential upcoming updates and reduce the overall number of endpoints updates.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - }, - Required: []string{"ConcurrentEndpointSyncs", "EndpointUpdatesBatchPeriod"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration"}, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_EndpointSliceControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EndpointSliceControllerConfiguration contains elements describing EndpointSliceController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ConcurrentServiceEndpointSyncs": { - SchemaProps: spec.SchemaProps{ - Description: "concurrentServiceEndpointSyncs is the number of service endpoint syncing operations that will be done concurrently. Larger number = faster endpoint slice updating, but more CPU (and network) load.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "MaxEndpointsPerSlice": { - SchemaProps: spec.SchemaProps{ - Description: "maxEndpointsPerSlice is the maximum number of endpoints that will be added to an EndpointSlice. More endpoints per slice will result in fewer and larger endpoint slices, but larger resources.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "EndpointUpdatesBatchPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "EndpointUpdatesBatchPeriod describes the length of endpoint updates batching period. Processing of pod changes will be delayed by this duration to join them with potential upcoming updates and reduce the overall number of endpoints updates.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - }, - Required: []string{"ConcurrentServiceEndpointSyncs", "MaxEndpointsPerSlice", "EndpointUpdatesBatchPeriod"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration"}, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_EndpointSliceMirroringControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EndpointSliceMirroringControllerConfiguration contains elements describing EndpointSliceMirroringController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "MirroringConcurrentServiceEndpointSyncs": { - SchemaProps: spec.SchemaProps{ - Description: "mirroringConcurrentServiceEndpointSyncs is the number of service endpoint syncing operations that will be done concurrently. Larger number = faster endpoint slice updating, but more CPU (and network) load.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "MirroringMaxEndpointsPerSubset": { - SchemaProps: spec.SchemaProps{ - Description: "mirroringMaxEndpointsPerSubset is the maximum number of endpoints that will be mirrored to an EndpointSlice for an EndpointSubset.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "MirroringEndpointUpdatesBatchPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "mirroringEndpointUpdatesBatchPeriod can be used to batch EndpointSlice updates. All updates triggered by EndpointSlice changes will be delayed by up to 'mirroringEndpointUpdatesBatchPeriod'. If other addresses in the same Endpoints resource change in that period, they will be batched to a single EndpointSlice update. Default 0 value means that each Endpoints update triggers an EndpointSlice update.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - }, - Required: []string{"MirroringConcurrentServiceEndpointSyncs", "MirroringMaxEndpointsPerSubset", "MirroringEndpointUpdatesBatchPeriod"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration"}, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_GarbageCollectorControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GarbageCollectorControllerConfiguration contains elements describing GarbageCollectorController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "EnableGarbageCollector": { - SchemaProps: spec.SchemaProps{ - Description: "enables the generic garbage collector. MUST be synced with the corresponding flag of the kube-apiserver. WARNING: the generic garbage collector is an alpha feature.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "ConcurrentGCSyncs": { - SchemaProps: spec.SchemaProps{ - Description: "concurrentGCSyncs is the number of garbage collector workers that are allowed to sync concurrently.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "GCIgnoredResources": { - SchemaProps: spec.SchemaProps{ - Description: "gcIgnoredResources is the list of GroupResources that garbage collection should ignore.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.GroupResource"), - }, - }, - }, - }, - }, - }, - Required: []string{"EnableGarbageCollector", "ConcurrentGCSyncs", "GCIgnoredResources"}, - }, - }, - Dependencies: []string{ - "k8s.io/kube-controller-manager/config/v1alpha1.GroupResource"}, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_GenericControllerManagerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GenericControllerManagerConfiguration holds configuration for a generic controller-manager.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "Port": { - SchemaProps: spec.SchemaProps{ - Description: "port is the port that the controller-manager's http service runs on.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "Address": { - SchemaProps: spec.SchemaProps{ - Description: "address is the IP address to serve on (set to 0.0.0.0 for all interfaces).", - Type: []string{"string"}, - Format: "", - }, - }, - "MinResyncPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "minResyncPeriod is the resync period in reflectors; will be random between minResyncPeriod and 2*minResyncPeriod.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "ClientConnection": { - SchemaProps: spec.SchemaProps{ - Description: "ClientConnection specifies the kubeconfig file and client connection settings for the proxy server to use when communicating with the apiserver.", - Ref: ref("k8s.io/component-base/config/v1alpha1.ClientConnectionConfiguration"), - }, - }, - "ControllerStartInterval": { - SchemaProps: spec.SchemaProps{ - Description: "How long to wait between starting controller managers", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "LeaderElection": { - SchemaProps: spec.SchemaProps{ - Description: "leaderElection defines the configuration of leader election client.", - Ref: ref("k8s.io/component-base/config/v1alpha1.LeaderElectionConfiguration"), - }, - }, - "Controllers": { - SchemaProps: spec.SchemaProps{ - Description: "Controllers is the list of controllers to enable or disable '*' means \"all enabled by default controllers\" 'foo' means \"enable 'foo'\" '-foo' means \"disable 'foo'\" first item for a particular name wins", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "Debugging": { - SchemaProps: spec.SchemaProps{ - Description: "DebuggingConfiguration holds configuration for Debugging related features.", - Ref: ref("k8s.io/component-base/config/v1alpha1.DebuggingConfiguration"), - }, - }, - }, - Required: []string{"Port", "Address", "MinResyncPeriod", "ClientConnection", "ControllerStartInterval", "LeaderElection", "Controllers", "Debugging"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration", "k8s.io/component-base/config/v1alpha1.ClientConnectionConfiguration", "k8s.io/component-base/config/v1alpha1.DebuggingConfiguration", "k8s.io/component-base/config/v1alpha1.LeaderElectionConfiguration"}, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_GroupResource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GroupResource describes an group resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "Group": { - SchemaProps: spec.SchemaProps{ - Description: "group is the group portion of the GroupResource.", - Type: []string{"string"}, - Format: "", - }, - }, - "Resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource is the resource portion of the GroupResource.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"Group", "Resource"}, - }, - }, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_HPAControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "HPAControllerConfiguration contains elements describing HPAController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "HorizontalPodAutoscalerSyncPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscalerSyncPeriod is the period for syncing the number of pods in horizontal pod autoscaler.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "HorizontalPodAutoscalerUpscaleForbiddenWindow": { - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscalerUpscaleForbiddenWindow is a period after which next upscale allowed.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "HorizontalPodAutoscalerDownscaleStabilizationWindow": { - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscalerDowncaleStabilizationWindow is a period for which autoscaler will look backwards and not scale down below any recommendation it made during that period.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "HorizontalPodAutoscalerDownscaleForbiddenWindow": { - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscalerDownscaleForbiddenWindow is a period after which next downscale allowed.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "HorizontalPodAutoscalerTolerance": { - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscalerTolerance is the tolerance for when resource usage suggests upscaling/downscaling", - Type: []string{"number"}, - Format: "double", - }, - }, - "HorizontalPodAutoscalerUseRESTClients": { - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscalerUseRESTClients causes the HPA controller to use REST clients through the kube-aggregator when enabled, instead of using the legacy metrics client through the API server proxy.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "HorizontalPodAutoscalerCPUInitializationPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscalerCPUInitializationPeriod is the period after pod start when CPU samples might be skipped.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "HorizontalPodAutoscalerInitialReadinessDelay": { - SchemaProps: spec.SchemaProps{ - Description: "HorizontalPodAutoscalerInitialReadinessDelay is period after pod start during which readiness changes are treated as readiness being set for the first time. The only effect of this is that HPA will disregard CPU samples from unready pods that had last readiness change during that period.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - }, - Required: []string{"HorizontalPodAutoscalerSyncPeriod", "HorizontalPodAutoscalerUpscaleForbiddenWindow", "HorizontalPodAutoscalerDownscaleStabilizationWindow", "HorizontalPodAutoscalerDownscaleForbiddenWindow", "HorizontalPodAutoscalerTolerance", "HorizontalPodAutoscalerUseRESTClients", "HorizontalPodAutoscalerCPUInitializationPeriod", "HorizontalPodAutoscalerInitialReadinessDelay"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration"}, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_JobControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "JobControllerConfiguration contains elements describing JobController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ConcurrentJobSyncs": { - SchemaProps: spec.SchemaProps{ - Description: "concurrentJobSyncs is the number of job objects that are allowed to sync concurrently. Larger number = more responsive jobs, but more CPU (and network) load.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"ConcurrentJobSyncs"}, - }, - }, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_KubeCloudSharedConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "KubeCloudSharedConfiguration contains elements shared by both kube-controller manager and cloud-controller manager, but not genericconfig.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "CloudProvider": { - SchemaProps: spec.SchemaProps{ - Description: "CloudProviderConfiguration holds configuration for CloudProvider related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.CloudProviderConfiguration"), - }, - }, - "ExternalCloudVolumePlugin": { - SchemaProps: spec.SchemaProps{ - Description: "externalCloudVolumePlugin specifies the plugin to use when cloudProvider is \"external\". It is currently used by the in repo cloud providers to handle node and volume control in the KCM.", - Type: []string{"string"}, - Format: "", - }, - }, - "UseServiceAccountCredentials": { - SchemaProps: spec.SchemaProps{ - Description: "useServiceAccountCredentials indicates whether controllers should be run with individual service account credentials.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "AllowUntaggedCloud": { - SchemaProps: spec.SchemaProps{ - Description: "run with untagged cloud instances", - Type: []string{"boolean"}, - Format: "", - }, - }, - "RouteReconciliationPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "routeReconciliationPeriod is the period for reconciling routes created for Nodes by cloud provider..", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "NodeMonitorPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "nodeMonitorPeriod is the period for syncing NodeStatus in NodeController.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "ClusterName": { - SchemaProps: spec.SchemaProps{ - Description: "clusterName is the instance prefix for the cluster.", - Type: []string{"string"}, - Format: "", - }, - }, - "ClusterCIDR": { - SchemaProps: spec.SchemaProps{ - Description: "clusterCIDR is CIDR Range for Pods in cluster.", - Type: []string{"string"}, - Format: "", - }, - }, - "AllocateNodeCIDRs": { - SchemaProps: spec.SchemaProps{ - Description: "AllocateNodeCIDRs enables CIDRs for Pods to be allocated and, if ConfigureCloudRoutes is true, to be set on the cloud provider.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "CIDRAllocatorType": { - SchemaProps: spec.SchemaProps{ - Description: "CIDRAllocatorType determines what kind of pod CIDR allocator will be used.", - Type: []string{"string"}, - Format: "", - }, - }, - "ConfigureCloudRoutes": { - SchemaProps: spec.SchemaProps{ - Description: "configureCloudRoutes enables CIDRs allocated with allocateNodeCIDRs to be configured on the cloud provider.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "NodeSyncPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "nodeSyncPeriod is the period for syncing nodes from cloudprovider. Longer periods will result in fewer calls to cloud provider, but may delay addition of new nodes to cluster.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - }, - Required: []string{"CloudProvider", "ExternalCloudVolumePlugin", "UseServiceAccountCredentials", "AllowUntaggedCloud", "RouteReconciliationPeriod", "NodeMonitorPeriod", "ClusterName", "ClusterCIDR", "AllocateNodeCIDRs", "CIDRAllocatorType", "ConfigureCloudRoutes", "NodeSyncPeriod"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration", "k8s.io/kube-controller-manager/config/v1alpha1.CloudProviderConfiguration"}, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_KubeControllerManagerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "KubeControllerManagerConfiguration contains elements describing kube-controller manager.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "Generic": { - SchemaProps: spec.SchemaProps{ - Description: "Generic holds configuration for a generic controller-manager", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.GenericControllerManagerConfiguration"), - }, - }, - "KubeCloudShared": { - SchemaProps: spec.SchemaProps{ - Description: "KubeCloudSharedConfiguration holds configuration for shared related features both in cloud controller manager and kube-controller manager.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.KubeCloudSharedConfiguration"), - }, - }, - "AttachDetachController": { - SchemaProps: spec.SchemaProps{ - Description: "AttachDetachControllerConfiguration holds configuration for AttachDetachController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.AttachDetachControllerConfiguration"), - }, - }, - "CSRSigningController": { - SchemaProps: spec.SchemaProps{ - Description: "CSRSigningControllerConfiguration holds configuration for CSRSigningController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.CSRSigningControllerConfiguration"), - }, - }, - "DaemonSetController": { - SchemaProps: spec.SchemaProps{ - Description: "DaemonSetControllerConfiguration holds configuration for DaemonSetController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.DaemonSetControllerConfiguration"), - }, - }, - "DeploymentController": { - SchemaProps: spec.SchemaProps{ - Description: "DeploymentControllerConfiguration holds configuration for DeploymentController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.DeploymentControllerConfiguration"), - }, - }, - "StatefulSetController": { - SchemaProps: spec.SchemaProps{ - Description: "StatefulSetControllerConfiguration holds configuration for StatefulSetController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.StatefulSetControllerConfiguration"), - }, - }, - "DeprecatedController": { - SchemaProps: spec.SchemaProps{ - Description: "DeprecatedControllerConfiguration holds configuration for some deprecated features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.DeprecatedControllerConfiguration"), - }, - }, - "EndpointController": { - SchemaProps: spec.SchemaProps{ - Description: "EndpointControllerConfiguration holds configuration for EndpointController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.EndpointControllerConfiguration"), - }, - }, - "EndpointSliceController": { - SchemaProps: spec.SchemaProps{ - Description: "EndpointSliceControllerConfiguration holds configuration for EndpointSliceController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.EndpointSliceControllerConfiguration"), - }, - }, - "EndpointSliceMirroringController": { - SchemaProps: spec.SchemaProps{ - Description: "EndpointSliceMirroringControllerConfiguration holds configuration for EndpointSliceMirroringController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.EndpointSliceMirroringControllerConfiguration"), - }, - }, - "GarbageCollectorController": { - SchemaProps: spec.SchemaProps{ - Description: "GarbageCollectorControllerConfiguration holds configuration for GarbageCollectorController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.GarbageCollectorControllerConfiguration"), - }, - }, - "HPAController": { - SchemaProps: spec.SchemaProps{ - Description: "HPAControllerConfiguration holds configuration for HPAController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.HPAControllerConfiguration"), - }, - }, - "JobController": { - SchemaProps: spec.SchemaProps{ - Description: "JobControllerConfiguration holds configuration for JobController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.JobControllerConfiguration"), - }, - }, - "NamespaceController": { - SchemaProps: spec.SchemaProps{ - Description: "NamespaceControllerConfiguration holds configuration for NamespaceController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.NamespaceControllerConfiguration"), - }, - }, - "NodeIPAMController": { - SchemaProps: spec.SchemaProps{ - Description: "NodeIPAMControllerConfiguration holds configuration for NodeIPAMController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.NodeIPAMControllerConfiguration"), - }, - }, - "NodeLifecycleController": { - SchemaProps: spec.SchemaProps{ - Description: "NodeLifecycleControllerConfiguration holds configuration for NodeLifecycleController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.NodeLifecycleControllerConfiguration"), - }, - }, - "PersistentVolumeBinderController": { - SchemaProps: spec.SchemaProps{ - Description: "PersistentVolumeBinderControllerConfiguration holds configuration for PersistentVolumeBinderController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.PersistentVolumeBinderControllerConfiguration"), - }, - }, - "PodGCController": { - SchemaProps: spec.SchemaProps{ - Description: "PodGCControllerConfiguration holds configuration for PodGCController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.PodGCControllerConfiguration"), - }, - }, - "ReplicaSetController": { - SchemaProps: spec.SchemaProps{ - Description: "ReplicaSetControllerConfiguration holds configuration for ReplicaSet related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.ReplicaSetControllerConfiguration"), - }, - }, - "ReplicationController": { - SchemaProps: spec.SchemaProps{ - Description: "ReplicationControllerConfiguration holds configuration for ReplicationController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.ReplicationControllerConfiguration"), - }, - }, - "ResourceQuotaController": { - SchemaProps: spec.SchemaProps{ - Description: "ResourceQuotaControllerConfiguration holds configuration for ResourceQuotaController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.ResourceQuotaControllerConfiguration"), - }, - }, - "SAController": { - SchemaProps: spec.SchemaProps{ - Description: "SAControllerConfiguration holds configuration for ServiceAccountController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.SAControllerConfiguration"), - }, - }, - "ServiceController": { - SchemaProps: spec.SchemaProps{ - Description: "ServiceControllerConfiguration holds configuration for ServiceController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.ServiceControllerConfiguration"), - }, - }, - "TTLAfterFinishedController": { - SchemaProps: spec.SchemaProps{ - Description: "TTLAfterFinishedControllerConfiguration holds configuration for TTLAfterFinishedController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.TTLAfterFinishedControllerConfiguration"), - }, - }, - }, - Required: []string{"Generic", "KubeCloudShared", "AttachDetachController", "CSRSigningController", "DaemonSetController", "DeploymentController", "StatefulSetController", "DeprecatedController", "EndpointController", "EndpointSliceController", "EndpointSliceMirroringController", "GarbageCollectorController", "HPAController", "JobController", "NamespaceController", "NodeIPAMController", "NodeLifecycleController", "PersistentVolumeBinderController", "PodGCController", "ReplicaSetController", "ReplicationController", "ResourceQuotaController", "SAController", "ServiceController", "TTLAfterFinishedController"}, - }, - }, - Dependencies: []string{ - "k8s.io/kube-controller-manager/config/v1alpha1.AttachDetachControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.CSRSigningControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.DaemonSetControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.DeploymentControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.DeprecatedControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.EndpointControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.EndpointSliceControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.EndpointSliceMirroringControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.GarbageCollectorControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.GenericControllerManagerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.HPAControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.JobControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.KubeCloudSharedConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.NamespaceControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.NodeIPAMControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.NodeLifecycleControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.PersistentVolumeBinderControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.PodGCControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.ReplicaSetControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.ReplicationControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.ResourceQuotaControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.SAControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.ServiceControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.StatefulSetControllerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.TTLAfterFinishedControllerConfiguration"}, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_NamespaceControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NamespaceControllerConfiguration contains elements describing NamespaceController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "NamespaceSyncPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "namespaceSyncPeriod is the period for syncing namespace life-cycle updates.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "ConcurrentNamespaceSyncs": { - SchemaProps: spec.SchemaProps{ - Description: "concurrentNamespaceSyncs is the number of namespace objects that are allowed to sync concurrently.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"NamespaceSyncPeriod", "ConcurrentNamespaceSyncs"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration"}, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_NodeIPAMControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeIPAMControllerConfiguration contains elements describing NodeIpamController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ServiceCIDR": { - SchemaProps: spec.SchemaProps{ - Description: "serviceCIDR is CIDR Range for Services in cluster.", - Type: []string{"string"}, - Format: "", - }, - }, - "SecondaryServiceCIDR": { - SchemaProps: spec.SchemaProps{ - Description: "secondaryServiceCIDR is CIDR Range for Services in cluster. This is used in dual stack clusters. SecondaryServiceCIDR must be of different IP family than ServiceCIDR", - Type: []string{"string"}, - Format: "", - }, - }, - "NodeCIDRMaskSize": { - SchemaProps: spec.SchemaProps{ - Description: "NodeCIDRMaskSize is the mask size for node cidr in cluster.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "NodeCIDRMaskSizeIPv4": { - SchemaProps: spec.SchemaProps{ - Description: "NodeCIDRMaskSizeIPv4 is the mask size for node cidr in dual-stack cluster.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "NodeCIDRMaskSizeIPv6": { - SchemaProps: spec.SchemaProps{ - Description: "NodeCIDRMaskSizeIPv6 is the mask size for node cidr in dual-stack cluster.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"ServiceCIDR", "SecondaryServiceCIDR", "NodeCIDRMaskSize", "NodeCIDRMaskSizeIPv4", "NodeCIDRMaskSizeIPv6"}, - }, - }, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_NodeLifecycleControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeLifecycleControllerConfiguration contains elements describing NodeLifecycleController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "EnableTaintManager": { - SchemaProps: spec.SchemaProps{ - Description: "If set to true enables NoExecute Taints and will evict all not-tolerating Pod running on Nodes tainted with this kind of Taints.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "NodeEvictionRate": { - SchemaProps: spec.SchemaProps{ - Description: "nodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is healthy", - Type: []string{"number"}, - Format: "float", - }, - }, - "SecondaryNodeEvictionRate": { - SchemaProps: spec.SchemaProps{ - Description: "secondaryNodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is unhealthy", - Type: []string{"number"}, - Format: "float", - }, - }, - "NodeStartupGracePeriod": { - SchemaProps: spec.SchemaProps{ - Description: "nodeStartupGracePeriod is the amount of time which we allow starting a node to be unresponsive before marking it unhealthy.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "NodeMonitorGracePeriod": { - SchemaProps: spec.SchemaProps{ - Description: "nodeMontiorGracePeriod is the amount of time which we allow a running node to be unresponsive before marking it unhealthy. Must be N times more than kubelet's nodeStatusUpdateFrequency, where N means number of retries allowed for kubelet to post node status.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "PodEvictionTimeout": { - SchemaProps: spec.SchemaProps{ - Description: "podEvictionTimeout is the grace period for deleting pods on failed nodes.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "LargeClusterSizeThreshold": { - SchemaProps: spec.SchemaProps{ - Description: "secondaryNodeEvictionRate is implicitly overridden to 0 for clusters smaller than or equal to largeClusterSizeThreshold", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "UnhealthyZoneThreshold": { - SchemaProps: spec.SchemaProps{ - Description: "Zone is treated as unhealthy in nodeEvictionRate and secondaryNodeEvictionRate when at least unhealthyZoneThreshold (no less than 3) of Nodes in the zone are NotReady", - Type: []string{"number"}, - Format: "float", - }, - }, - }, - Required: []string{"EnableTaintManager", "NodeEvictionRate", "SecondaryNodeEvictionRate", "NodeStartupGracePeriod", "NodeMonitorGracePeriod", "PodEvictionTimeout", "LargeClusterSizeThreshold", "UnhealthyZoneThreshold"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration"}, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_PersistentVolumeBinderControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PersistentVolumeBinderControllerConfiguration contains elements describing PersistentVolumeBinderController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "PVClaimBinderSyncPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "pvClaimBinderSyncPeriod is the period for syncing persistent volumes and persistent volume claims.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "VolumeConfiguration": { - SchemaProps: spec.SchemaProps{ - Description: "volumeConfiguration holds configuration for volume related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.VolumeConfiguration"), - }, - }, - }, - Required: []string{"PVClaimBinderSyncPeriod", "VolumeConfiguration"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration", "k8s.io/kube-controller-manager/config/v1alpha1.VolumeConfiguration"}, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_PersistentVolumeRecyclerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PersistentVolumeRecyclerConfiguration contains elements describing persistent volume plugins.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "MaximumRetry": { - SchemaProps: spec.SchemaProps{ - Description: "maximumRetry is number of retries the PV recycler will execute on failure to recycle PV.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "MinimumTimeoutNFS": { - SchemaProps: spec.SchemaProps{ - Description: "minimumTimeoutNFS is the minimum ActiveDeadlineSeconds to use for an NFS Recycler pod.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "PodTemplateFilePathNFS": { - SchemaProps: spec.SchemaProps{ - Description: "podTemplateFilePathNFS is the file path to a pod definition used as a template for NFS persistent volume recycling", - Type: []string{"string"}, - Format: "", - }, - }, - "IncrementTimeoutNFS": { - SchemaProps: spec.SchemaProps{ - Description: "incrementTimeoutNFS is the increment of time added per Gi to ActiveDeadlineSeconds for an NFS scrubber pod.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "PodTemplateFilePathHostPath": { - SchemaProps: spec.SchemaProps{ - Description: "podTemplateFilePathHostPath is the file path to a pod definition used as a template for HostPath persistent volume recycling. This is for development and testing only and will not work in a multi-node cluster.", - Type: []string{"string"}, - Format: "", - }, - }, - "MinimumTimeoutHostPath": { - SchemaProps: spec.SchemaProps{ - Description: "minimumTimeoutHostPath is the minimum ActiveDeadlineSeconds to use for a HostPath Recycler pod. This is for development and testing only and will not work in a multi-node cluster.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "IncrementTimeoutHostPath": { - SchemaProps: spec.SchemaProps{ - Description: "incrementTimeoutHostPath is the increment of time added per Gi to ActiveDeadlineSeconds for a HostPath scrubber pod. This is for development and testing only and will not work in a multi-node cluster.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"MaximumRetry", "MinimumTimeoutNFS", "PodTemplateFilePathNFS", "IncrementTimeoutNFS", "PodTemplateFilePathHostPath", "MinimumTimeoutHostPath", "IncrementTimeoutHostPath"}, - }, - }, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_PodGCControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodGCControllerConfiguration contains elements describing PodGCController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "TerminatedPodGCThreshold": { - SchemaProps: spec.SchemaProps{ - Description: "terminatedPodGCThreshold is the number of terminated pods that can exist before the terminated pod garbage collector starts deleting terminated pods. If <= 0, the terminated pod garbage collector is disabled.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"TerminatedPodGCThreshold"}, - }, - }, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_ReplicaSetControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicaSetControllerConfiguration contains elements describing ReplicaSetController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ConcurrentRSSyncs": { - SchemaProps: spec.SchemaProps{ - Description: "concurrentRSSyncs is the number of replica sets that are allowed to sync concurrently. Larger number = more responsive replica management, but more CPU (and network) load.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"ConcurrentRSSyncs"}, - }, - }, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_ReplicationControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ReplicationControllerConfiguration contains elements describing ReplicationController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ConcurrentRCSyncs": { - SchemaProps: spec.SchemaProps{ - Description: "concurrentRCSyncs is the number of replication controllers that are allowed to sync concurrently. Larger number = more responsive replica management, but more CPU (and network) load.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"ConcurrentRCSyncs"}, - }, - }, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_ResourceQuotaControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceQuotaControllerConfiguration contains elements describing ResourceQuotaController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ResourceQuotaSyncPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "resourceQuotaSyncPeriod is the period for syncing quota usage status in the system.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "ConcurrentResourceQuotaSyncs": { - SchemaProps: spec.SchemaProps{ - Description: "concurrentResourceQuotaSyncs is the number of resource quotas that are allowed to sync concurrently. Larger number = more responsive quota management, but more CPU (and network) load.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"ResourceQuotaSyncPeriod", "ConcurrentResourceQuotaSyncs"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration"}, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_SAControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SAControllerConfiguration contains elements describing ServiceAccountController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ServiceAccountKeyFile": { - SchemaProps: spec.SchemaProps{ - Description: "serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key used to sign service account tokens.", - Type: []string{"string"}, - Format: "", - }, - }, - "ConcurrentSATokenSyncs": { - SchemaProps: spec.SchemaProps{ - Description: "concurrentSATokenSyncs is the number of service account token syncing operations that will be done concurrently.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "RootCAFile": { - SchemaProps: spec.SchemaProps{ - Description: "rootCAFile is the root certificate authority will be included in service account's token secret. This must be a valid PEM-encoded CA bundle.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"ServiceAccountKeyFile", "ConcurrentSATokenSyncs", "RootCAFile"}, - }, - }, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_ServiceControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceControllerConfiguration contains elements describing ServiceController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ConcurrentServiceSyncs": { - SchemaProps: spec.SchemaProps{ - Description: "concurrentServiceSyncs is the number of services that are allowed to sync concurrently. Larger number = more responsive service management, but more CPU (and network) load.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"ConcurrentServiceSyncs"}, - }, - }, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_StatefulSetControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StatefulSetControllerConfiguration contains elements describing StatefulSetController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ConcurrentStatefulSetSyncs": { - SchemaProps: spec.SchemaProps{ - Description: "concurrentStatefulSetSyncs is the number of statefulset objects that are allowed to sync concurrently. Larger number = more responsive statefulsets, but more CPU (and network) load.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"ConcurrentStatefulSetSyncs"}, - }, - }, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_TTLAfterFinishedControllerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "TTLAfterFinishedControllerConfiguration contains elements describing TTLAfterFinishedController.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ConcurrentTTLSyncs": { - SchemaProps: spec.SchemaProps{ - Description: "concurrentTTLSyncs is the number of TTL-after-finished collector workers that are allowed to sync concurrently.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"ConcurrentTTLSyncs"}, - }, - }, - } -} - -func schema_k8sio_kube_controller_manager_config_v1alpha1_VolumeConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeConfiguration contains *all* enumerated flags meant to configure all volume plugins. From this config, the controller-manager binary will create many instances of volume.VolumeConfig, each containing only the configuration needed for that plugin which are then passed to the appropriate plugin. The ControllerManager binary is the only part of the code which knows what plugins are supported and which flags correspond to each plugin.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "EnableHostPathProvisioning": { - SchemaProps: spec.SchemaProps{ - Description: "enableHostPathProvisioning enables HostPath PV provisioning when running without a cloud provider. This allows testing and development of provisioning features. HostPath provisioning is not supported in any way, won't work in a multi-node cluster, and should not be used for anything other than testing or development.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "EnableDynamicProvisioning": { - SchemaProps: spec.SchemaProps{ - Description: "enableDynamicProvisioning enables the provisioning of volumes when running within an environment that supports dynamic provisioning. Defaults to true.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "PersistentVolumeRecyclerConfiguration": { - SchemaProps: spec.SchemaProps{ - Description: "persistentVolumeRecyclerConfiguration holds configuration for persistent volume plugins.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.PersistentVolumeRecyclerConfiguration"), - }, - }, - "FlexVolumePluginDir": { - SchemaProps: spec.SchemaProps{ - Description: "volumePluginDir is the full path of the directory in which the flex volume plugin should search for additional third party volume plugins", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"EnableHostPathProvisioning", "EnableDynamicProvisioning", "PersistentVolumeRecyclerConfiguration", "FlexVolumePluginDir"}, - }, - }, - Dependencies: []string{ - "k8s.io/kube-controller-manager/config/v1alpha1.PersistentVolumeRecyclerConfiguration"}, - } -} - -func schema_k8sio_kube_proxy_config_v1alpha1_KubeProxyConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "KubeProxyConfiguration contains everything necessary to configure the Kubernetes proxy server.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "featureGates": { - SchemaProps: spec.SchemaProps{ - Description: "featureGates is a map of feature names to bools that enable or disable alpha/experimental features.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - "bindAddress": { - SchemaProps: spec.SchemaProps{ - Description: "bindAddress is the IP address for the proxy server to serve on (set to 0.0.0.0 for all interfaces)", - Type: []string{"string"}, - Format: "", - }, - }, - "healthzBindAddress": { - SchemaProps: spec.SchemaProps{ - Description: "healthzBindAddress is the IP address and port for the health check server to serve on, defaulting to 0.0.0.0:10256", - Type: []string{"string"}, - Format: "", - }, - }, - "metricsBindAddress": { - SchemaProps: spec.SchemaProps{ - Description: "metricsBindAddress is the IP address and port for the metrics server to serve on, defaulting to 127.0.0.1:10249 (set to 0.0.0.0 for all interfaces)", - Type: []string{"string"}, - Format: "", - }, - }, - "bindAddressHardFail": { - SchemaProps: spec.SchemaProps{ - Description: "bindAddressHardFail, if true, kube-proxy will treat failure to bind to a port as fatal and exit", - Type: []string{"boolean"}, - Format: "", - }, - }, - "enableProfiling": { - SchemaProps: spec.SchemaProps{ - Description: "enableProfiling enables profiling via web interface on /debug/pprof handler. Profiling handlers will be handled by metrics server.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "clusterCIDR": { - SchemaProps: spec.SchemaProps{ - Description: "clusterCIDR is the CIDR range of the pods in the cluster. It is used to bridge traffic coming from outside of the cluster. If not provided, no off-cluster bridging will be performed.", - Type: []string{"string"}, - Format: "", - }, - }, - "hostnameOverride": { - SchemaProps: spec.SchemaProps{ - Description: "hostnameOverride, if non-empty, will be used as the identity instead of the actual hostname.", - Type: []string{"string"}, - Format: "", - }, - }, - "clientConnection": { - SchemaProps: spec.SchemaProps{ - Description: "clientConnection specifies the kubeconfig file and client connection settings for the proxy server to use when communicating with the apiserver.", - Ref: ref("k8s.io/component-base/config/v1alpha1.ClientConnectionConfiguration"), - }, - }, - "iptables": { - SchemaProps: spec.SchemaProps{ - Description: "iptables contains iptables-related configuration options.", - Ref: ref("k8s.io/kube-proxy/config/v1alpha1.KubeProxyIPTablesConfiguration"), - }, - }, - "ipvs": { - SchemaProps: spec.SchemaProps{ - Description: "ipvs contains ipvs-related configuration options.", - Ref: ref("k8s.io/kube-proxy/config/v1alpha1.KubeProxyIPVSConfiguration"), - }, - }, - "oomScoreAdj": { - SchemaProps: spec.SchemaProps{ - Description: "oomScoreAdj is the oom-score-adj value for kube-proxy process. Values must be within the range [-1000, 1000]", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "mode": { - SchemaProps: spec.SchemaProps{ - Description: "mode specifies which proxy mode to use.", - Type: []string{"string"}, - Format: "", - }, - }, - "portRange": { - SchemaProps: spec.SchemaProps{ - Description: "portRange is the range of host ports (beginPort-endPort, inclusive) that may be consumed in order to proxy service traffic. If unspecified (0-0) then ports will be randomly chosen.", - Type: []string{"string"}, - Format: "", - }, - }, - "udpIdleTimeout": { - SchemaProps: spec.SchemaProps{ - Description: "udpIdleTimeout is how long an idle UDP connection will be kept open (e.g. '250ms', '2s'). Must be greater than 0. Only applicable for proxyMode=userspace.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "conntrack": { - SchemaProps: spec.SchemaProps{ - Description: "conntrack contains conntrack-related configuration options.", - Ref: ref("k8s.io/kube-proxy/config/v1alpha1.KubeProxyConntrackConfiguration"), - }, - }, - "configSyncPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "configSyncPeriod is how often configuration from the apiserver is refreshed. Must be greater than 0.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "nodePortAddresses": { - SchemaProps: spec.SchemaProps{ - Description: "nodePortAddresses is the --nodeport-addresses value for kube-proxy process. Values must be valid IP blocks. These values are as a parameter to select the interfaces where nodeport works. In case someone would like to expose a service on localhost for local visit and some other interfaces for particular purpose, a list of IP blocks would do that. If set it to \"127.0.0.0/8\", kube-proxy will only select the loopback interface for NodePort. If set it to a non-zero IP block, kube-proxy will filter that down to just the IPs that applied to the node. An empty string slice is meant to select all network interfaces.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "winkernel": { - SchemaProps: spec.SchemaProps{ - Description: "winkernel contains winkernel-related configuration options.", - Ref: ref("k8s.io/kube-proxy/config/v1alpha1.KubeProxyWinkernelConfiguration"), - }, - }, - "showHiddenMetricsForVersion": { - SchemaProps: spec.SchemaProps{ - Description: "ShowHiddenMetricsForVersion is the version for which you want to show hidden metrics.", - Type: []string{"string"}, - Format: "", - }, - }, - "detectLocalMode": { - SchemaProps: spec.SchemaProps{ - Description: "DetectLocalMode determines mode to use for detecting local traffic, defaults to LocalModeClusterCIDR", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"bindAddress", "healthzBindAddress", "metricsBindAddress", "bindAddressHardFail", "enableProfiling", "clusterCIDR", "hostnameOverride", "clientConnection", "iptables", "ipvs", "oomScoreAdj", "mode", "portRange", "udpIdleTimeout", "conntrack", "configSyncPeriod", "nodePortAddresses", "winkernel", "showHiddenMetricsForVersion", "detectLocalMode"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration", "k8s.io/component-base/config/v1alpha1.ClientConnectionConfiguration", "k8s.io/kube-proxy/config/v1alpha1.KubeProxyConntrackConfiguration", "k8s.io/kube-proxy/config/v1alpha1.KubeProxyIPTablesConfiguration", "k8s.io/kube-proxy/config/v1alpha1.KubeProxyIPVSConfiguration", "k8s.io/kube-proxy/config/v1alpha1.KubeProxyWinkernelConfiguration"}, - } -} - -func schema_k8sio_kube_proxy_config_v1alpha1_KubeProxyConntrackConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "KubeProxyConntrackConfiguration contains conntrack settings for the Kubernetes proxy server.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "maxPerCore": { - SchemaProps: spec.SchemaProps{ - Description: "maxPerCore is the maximum number of NAT connections to track per CPU core (0 to leave the limit as-is and ignore min).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "min": { - SchemaProps: spec.SchemaProps{ - Description: "min is the minimum value of connect-tracking records to allocate, regardless of conntrackMaxPerCore (set maxPerCore=0 to leave the limit as-is).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "tcpEstablishedTimeout": { - SchemaProps: spec.SchemaProps{ - Description: "tcpEstablishedTimeout is how long an idle TCP connection will be kept open (e.g. '2s'). Must be greater than 0 to set.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "tcpCloseWaitTimeout": { - SchemaProps: spec.SchemaProps{ - Description: "tcpCloseWaitTimeout is how long an idle conntrack entry in CLOSE_WAIT state will remain in the conntrack table. (e.g. '60s'). Must be greater than 0 to set.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - }, - Required: []string{"maxPerCore", "min", "tcpEstablishedTimeout", "tcpCloseWaitTimeout"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration"}, - } -} - -func schema_k8sio_kube_proxy_config_v1alpha1_KubeProxyIPTablesConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "KubeProxyIPTablesConfiguration contains iptables-related configuration details for the Kubernetes proxy server.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "masqueradeBit": { - SchemaProps: spec.SchemaProps{ - Description: "masqueradeBit is the bit of the iptables fwmark space to use for SNAT if using the pure iptables proxy mode. Values must be within the range [0, 31].", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "masqueradeAll": { - SchemaProps: spec.SchemaProps{ - Description: "masqueradeAll tells kube-proxy to SNAT everything if using the pure iptables proxy mode.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "syncPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "syncPeriod is the period that iptables rules are refreshed (e.g. '5s', '1m', '2h22m'). Must be greater than 0.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "minSyncPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "minSyncPeriod is the minimum period that iptables rules are refreshed (e.g. '5s', '1m', '2h22m').", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - }, - Required: []string{"masqueradeBit", "masqueradeAll", "syncPeriod", "minSyncPeriod"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration"}, - } -} - -func schema_k8sio_kube_proxy_config_v1alpha1_KubeProxyIPVSConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "KubeProxyIPVSConfiguration contains ipvs-related configuration details for the Kubernetes proxy server.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "syncPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "syncPeriod is the period that ipvs rules are refreshed (e.g. '5s', '1m', '2h22m'). Must be greater than 0.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "minSyncPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "minSyncPeriod is the minimum period that ipvs rules are refreshed (e.g. '5s', '1m', '2h22m').", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "scheduler": { - SchemaProps: spec.SchemaProps{ - Description: "ipvs scheduler", - Type: []string{"string"}, - Format: "", - }, - }, - "excludeCIDRs": { - SchemaProps: spec.SchemaProps{ - Description: "excludeCIDRs is a list of CIDR's which the ipvs proxier should not touch when cleaning up ipvs services.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "strictARP": { - SchemaProps: spec.SchemaProps{ - Description: "strict ARP configure arp_ignore and arp_announce to avoid answering ARP queries from kube-ipvs0 interface", - Type: []string{"boolean"}, - Format: "", - }, - }, - "tcpTimeout": { - SchemaProps: spec.SchemaProps{ - Description: "tcpTimeout is the timeout value used for idle IPVS TCP sessions. The default value is 0, which preserves the current timeout value on the system.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "tcpFinTimeout": { - SchemaProps: spec.SchemaProps{ - Description: "tcpFinTimeout is the timeout value used for IPVS TCP sessions after receiving a FIN. The default value is 0, which preserves the current timeout value on the system.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "udpTimeout": { - SchemaProps: spec.SchemaProps{ - Description: "udpTimeout is the timeout value used for IPVS UDP packets. The default value is 0, which preserves the current timeout value on the system.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - }, - Required: []string{"syncPeriod", "minSyncPeriod", "scheduler", "excludeCIDRs", "strictARP", "tcpTimeout", "tcpFinTimeout", "udpTimeout"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration"}, - } -} - -func schema_k8sio_kube_proxy_config_v1alpha1_KubeProxyWinkernelConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "KubeProxyWinkernelConfiguration contains Windows/HNS settings for the Kubernetes proxy server.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "networkName": { - SchemaProps: spec.SchemaProps{ - Description: "networkName is the name of the network kube-proxy will use to create endpoints and policies", - Type: []string{"string"}, - Format: "", - }, - }, - "sourceVip": { - SchemaProps: spec.SchemaProps{ - Description: "sourceVip is the IP address of the source VIP endoint used for NAT when loadbalancing", - Type: []string{"string"}, - Format: "", - }, - }, - "enableDSR": { - SchemaProps: spec.SchemaProps{ - Description: "enableDSR tells kube-proxy whether HNS policies should be created with DSR", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"networkName", "sourceVip", "enableDSR"}, - }, - }, - } -} - -func schema_k8sio_kube_scheduler_config_v1_ExtenderManagedResource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExtenderManagedResource describes the arguments of extended resources managed by an extender.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name is the extended resource name.", - Type: []string{"string"}, - Format: "", - }, - }, - "ignoredByScheduler": { - SchemaProps: spec.SchemaProps{ - Description: "IgnoredByScheduler indicates whether kube-scheduler should ignore this resource when applying predicates.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"name"}, - }, - }, - } -} - -func schema_k8sio_kube_scheduler_config_v1_ExtenderTLSConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExtenderTLSConfig contains settings to enable TLS with extender", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "insecure": { - SchemaProps: spec.SchemaProps{ - Description: "Server should be accessed without verifying the TLS certificate. For testing only.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "serverName": { - SchemaProps: spec.SchemaProps{ - Description: "ServerName is passed to the server for SNI and is used in the client to check server certificates against. If ServerName is empty, the hostname used to contact the server is used.", - Type: []string{"string"}, - Format: "", - }, - }, - "certFile": { - SchemaProps: spec.SchemaProps{ - Description: "Server requires TLS client certificate authentication", - Type: []string{"string"}, - Format: "", - }, - }, - "keyFile": { - SchemaProps: spec.SchemaProps{ - Description: "Server requires TLS client certificate authentication", - Type: []string{"string"}, - Format: "", - }, - }, - "caFile": { - SchemaProps: spec.SchemaProps{ - Description: "Trusted root certificates for server", - Type: []string{"string"}, - Format: "", - }, - }, - "certData": { - SchemaProps: spec.SchemaProps{ - Description: "CertData holds PEM-encoded bytes (typically read from a client certificate file). CertData takes precedence over CertFile", - Type: []string{"string"}, - Format: "byte", - }, - }, - "keyData": { - SchemaProps: spec.SchemaProps{ - Description: "KeyData holds PEM-encoded bytes (typically read from a client certificate key file). KeyData takes precedence over KeyFile", - Type: []string{"string"}, - Format: "byte", - }, - }, - "caData": { - SchemaProps: spec.SchemaProps{ - Description: "CAData holds PEM-encoded bytes (typically read from a root certificates bundle). CAData takes precedence over CAFile", - Type: []string{"string"}, - Format: "byte", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_kube_scheduler_config_v1_LabelPreference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LabelPreference holds the parameters that are used to configure the corresponding priority function", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "label": { - SchemaProps: spec.SchemaProps{ - Description: "Used to identify node \"groups\"", - Type: []string{"string"}, - Format: "", - }, - }, - "presence": { - SchemaProps: spec.SchemaProps{ - Description: "This is a boolean flag If true, higher priority is given to nodes that have the label If false, higher priority is given to nodes that do not have the label", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"label", "presence"}, - }, - }, - } -} - -func schema_k8sio_kube_scheduler_config_v1_LabelsPresence(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LabelsPresence holds the parameters that are used to configure the corresponding predicate in scheduler policy configuration.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "labels": { - SchemaProps: spec.SchemaProps{ - Description: "The list of labels that identify node \"groups\" All of the labels should be either present (or absent) for the node to be considered a fit for hosting the pod", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "presence": { - SchemaProps: spec.SchemaProps{ - Description: "The boolean flag that indicates whether the labels should be present or absent from the node", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"labels", "presence"}, - }, - }, - } -} - -func schema_k8sio_kube_scheduler_config_v1_LegacyExtender(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LegacyExtender holds the parameters used to communicate with the extender. If a verb is unspecified/empty, it is assumed that the extender chose not to provide that extension.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "urlPrefix": { - SchemaProps: spec.SchemaProps{ - Description: "URLPrefix at which the extender is available", - Type: []string{"string"}, - Format: "", - }, - }, - "filterVerb": { - SchemaProps: spec.SchemaProps{ - Description: "Verb for the filter call, empty if not supported. This verb is appended to the URLPrefix when issuing the filter call to extender.", - Type: []string{"string"}, - Format: "", - }, - }, - "preemptVerb": { - SchemaProps: spec.SchemaProps{ - Description: "Verb for the preempt call, empty if not supported. This verb is appended to the URLPrefix when issuing the preempt call to extender.", - Type: []string{"string"}, - Format: "", - }, - }, - "prioritizeVerb": { - SchemaProps: spec.SchemaProps{ - Description: "Verb for the prioritize call, empty if not supported. This verb is appended to the URLPrefix when issuing the prioritize call to extender.", - Type: []string{"string"}, - Format: "", - }, - }, - "weight": { - SchemaProps: spec.SchemaProps{ - Description: "The numeric multiplier for the node scores that the prioritize call generates. The weight should be a positive integer", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "bindVerb": { - SchemaProps: spec.SchemaProps{ - Description: "Verb for the bind call, empty if not supported. This verb is appended to the URLPrefix when issuing the bind call to extender. If this method is implemented by the extender, it is the extender's responsibility to bind the pod to apiserver. Only one extender can implement this function.", - Type: []string{"string"}, - Format: "", - }, - }, - "enableHttps": { - SchemaProps: spec.SchemaProps{ - Description: "EnableHTTPS specifies whether https should be used to communicate with the extender", - Type: []string{"boolean"}, - Format: "", - }, - }, - "tlsConfig": { - SchemaProps: spec.SchemaProps{ - Description: "TLSConfig specifies the transport layer security config", - Ref: ref("k8s.io/kube-scheduler/config/v1.ExtenderTLSConfig"), - }, - }, - "httpTimeout": { - SchemaProps: spec.SchemaProps{ - Description: "HTTPTimeout specifies the timeout duration for a call to the extender. Filter timeout fails the scheduling of the pod. Prioritize timeout is ignored, k8s/other extenders priorities are used to select the node.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "nodeCacheCapable": { - SchemaProps: spec.SchemaProps{ - Description: "NodeCacheCapable specifies that the extender is capable of caching node information, so the scheduler should only send minimal information about the eligible nodes assuming that the extender already cached full details of all nodes in the cluster", - Type: []string{"boolean"}, - Format: "", - }, - }, - "managedResources": { - SchemaProps: spec.SchemaProps{ - Description: "ManagedResources is a list of extended resources that are managed by this extender. - A pod will be sent to the extender on the Filter, Prioritize and Bind\n (if the extender is the binder) phases iff the pod requests at least\n one of the extended resources in this list. If empty or unspecified,\n all pods will be sent to this extender.\n- If IgnoredByScheduler is set to true for a resource, kube-scheduler\n will skip checking the resource in predicates.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-scheduler/config/v1.ExtenderManagedResource"), - }, - }, - }, - }, - }, - "ignorable": { - SchemaProps: spec.SchemaProps{ - Description: "Ignorable specifies if the extender is ignorable, i.e. scheduling should not fail when the extender returns an error or is not reachable.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"urlPrefix"}, - }, - }, - Dependencies: []string{ - "k8s.io/kube-scheduler/config/v1.ExtenderManagedResource", "k8s.io/kube-scheduler/config/v1.ExtenderTLSConfig"}, - } -} - -func schema_k8sio_kube_scheduler_config_v1_Policy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Policy describes a struct for a policy resource used in api.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "predicates": { - SchemaProps: spec.SchemaProps{ - Description: "Holds the information to configure the fit predicate functions", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-scheduler/config/v1.PredicatePolicy"), - }, - }, - }, - }, - }, - "priorities": { - SchemaProps: spec.SchemaProps{ - Description: "Holds the information to configure the priority functions", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-scheduler/config/v1.PriorityPolicy"), - }, - }, - }, - }, - }, - "extenders": { - SchemaProps: spec.SchemaProps{ - Description: "Holds the information to communicate with the extender(s)", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-scheduler/config/v1.LegacyExtender"), - }, - }, - }, - }, - }, - "hardPodAffinitySymmetricWeight": { - SchemaProps: spec.SchemaProps{ - Description: "RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule corresponding to every RequiredDuringScheduling affinity rule. HardPodAffinitySymmetricWeight represents the weight of implicit PreferredDuringScheduling affinity rule, in the range 1-100.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "alwaysCheckAllPredicates": { - SchemaProps: spec.SchemaProps{ - Description: "When AlwaysCheckAllPredicates is set to true, scheduler checks all the configured predicates even after one or more of them fails. When the flag is set to false, scheduler skips checking the rest of the predicates after it finds one predicate that failed.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"predicates", "priorities", "extenders", "hardPodAffinitySymmetricWeight", "alwaysCheckAllPredicates"}, - }, - }, - Dependencies: []string{ - "k8s.io/kube-scheduler/config/v1.LegacyExtender", "k8s.io/kube-scheduler/config/v1.PredicatePolicy", "k8s.io/kube-scheduler/config/v1.PriorityPolicy"}, - } -} - -func schema_k8sio_kube_scheduler_config_v1_PredicateArgument(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PredicateArgument represents the arguments to configure predicate functions in scheduler policy configuration. Only one of its members may be specified", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "serviceAffinity": { - SchemaProps: spec.SchemaProps{ - Description: "The predicate that provides affinity for pods belonging to a service It uses a label to identify nodes that belong to the same \"group\"", - Ref: ref("k8s.io/kube-scheduler/config/v1.ServiceAffinity"), - }, - }, - "labelsPresence": { - SchemaProps: spec.SchemaProps{ - Description: "The predicate that checks whether a particular node has a certain label defined or not, regardless of value", - Ref: ref("k8s.io/kube-scheduler/config/v1.LabelsPresence"), - }, - }, - }, - Required: []string{"serviceAffinity", "labelsPresence"}, - }, - }, - Dependencies: []string{ - "k8s.io/kube-scheduler/config/v1.LabelsPresence", "k8s.io/kube-scheduler/config/v1.ServiceAffinity"}, - } -} - -func schema_k8sio_kube_scheduler_config_v1_PredicatePolicy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PredicatePolicy describes a struct of a predicate policy.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Identifier of the predicate policy For a custom predicate, the name can be user-defined For the Kubernetes provided predicates, the name is the identifier of the pre-defined predicate", - Type: []string{"string"}, - Format: "", - }, - }, - "argument": { - SchemaProps: spec.SchemaProps{ - Description: "Holds the parameters to configure the given predicate", - Ref: ref("k8s.io/kube-scheduler/config/v1.PredicateArgument"), - }, - }, - }, - Required: []string{"name", "argument"}, - }, - }, - Dependencies: []string{ - "k8s.io/kube-scheduler/config/v1.PredicateArgument"}, - } -} - -func schema_k8sio_kube_scheduler_config_v1_PriorityArgument(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PriorityArgument represents the arguments to configure priority functions in scheduler policy configuration. Only one of its members may be specified", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "serviceAntiAffinity": { - SchemaProps: spec.SchemaProps{ - Description: "The priority function that ensures a good spread (anti-affinity) for pods belonging to a service It uses a label to identify nodes that belong to the same \"group\"", - Ref: ref("k8s.io/kube-scheduler/config/v1.ServiceAntiAffinity"), - }, - }, - "labelPreference": { - SchemaProps: spec.SchemaProps{ - Description: "The priority function that checks whether a particular node has a certain label defined or not, regardless of value", - Ref: ref("k8s.io/kube-scheduler/config/v1.LabelPreference"), - }, - }, - "requestedToCapacityRatioArguments": { - SchemaProps: spec.SchemaProps{ - Description: "The RequestedToCapacityRatio priority function is parametrized with function shape.", - Ref: ref("k8s.io/kube-scheduler/config/v1.RequestedToCapacityRatioArguments"), - }, - }, - }, - Required: []string{"serviceAntiAffinity", "labelPreference", "requestedToCapacityRatioArguments"}, - }, - }, - Dependencies: []string{ - "k8s.io/kube-scheduler/config/v1.LabelPreference", "k8s.io/kube-scheduler/config/v1.RequestedToCapacityRatioArguments", "k8s.io/kube-scheduler/config/v1.ServiceAntiAffinity"}, - } -} - -func schema_k8sio_kube_scheduler_config_v1_PriorityPolicy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PriorityPolicy describes a struct of a priority policy.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Identifier of the priority policy For a custom priority, the name can be user-defined For the Kubernetes provided priority functions, the name is the identifier of the pre-defined priority function", - Type: []string{"string"}, - Format: "", - }, - }, - "weight": { - SchemaProps: spec.SchemaProps{ - Description: "The numeric multiplier for the node scores that the priority function generates The weight should be non-zero and can be a positive or a negative integer", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "argument": { - SchemaProps: spec.SchemaProps{ - Description: "Holds the parameters to configure the given priority function", - Ref: ref("k8s.io/kube-scheduler/config/v1.PriorityArgument"), - }, - }, - }, - Required: []string{"name", "weight", "argument"}, - }, - }, - Dependencies: []string{ - "k8s.io/kube-scheduler/config/v1.PriorityArgument"}, - } -} - -func schema_k8sio_kube_scheduler_config_v1_RequestedToCapacityRatioArguments(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RequestedToCapacityRatioArguments holds arguments specific to RequestedToCapacityRatio priority function.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "shape": { - SchemaProps: spec.SchemaProps{ - Description: "Array of point defining priority function shape.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-scheduler/config/v1.UtilizationShapePoint"), - }, - }, - }, - }, - }, - "resources": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-scheduler/config/v1.ResourceSpec"), - }, - }, - }, - }, - }, - }, - Required: []string{"shape"}, - }, - }, - Dependencies: []string{ - "k8s.io/kube-scheduler/config/v1.ResourceSpec", "k8s.io/kube-scheduler/config/v1.UtilizationShapePoint"}, - } -} - -func schema_k8sio_kube_scheduler_config_v1_ResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceSpec represents single resource and weight for bin packing of priority RequestedToCapacityRatioArguments.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the resource to be managed by RequestedToCapacityRatio function.", - Type: []string{"string"}, - Format: "", - }, - }, - "weight": { - SchemaProps: spec.SchemaProps{ - Description: "Weight of the resource.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - }, - Required: []string{"name"}, - }, - }, - } -} - -func schema_k8sio_kube_scheduler_config_v1_ServiceAffinity(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceAffinity holds the parameters that are used to configure the corresponding predicate in scheduler policy configuration.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "labels": { - SchemaProps: spec.SchemaProps{ - Description: "The list of labels that identify node \"groups\" All of the labels should match for the node to be considered a fit for hosting the pod", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - Required: []string{"labels"}, - }, - }, - } -} - -func schema_k8sio_kube_scheduler_config_v1_ServiceAntiAffinity(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceAntiAffinity holds the parameters that are used to configure the corresponding priority function", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "label": { - SchemaProps: spec.SchemaProps{ - Description: "Used to identify node \"groups\"", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"label"}, - }, - }, - } -} - -func schema_k8sio_kube_scheduler_config_v1_UtilizationShapePoint(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "UtilizationShapePoint represents single point of priority function shape.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "utilization": { - SchemaProps: spec.SchemaProps{ - Description: "Utilization (x axis). Valid values are 0 to 100. Fully utilized node maps to 100.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "score": { - SchemaProps: spec.SchemaProps{ - Description: "Score assigned to given utilization (y axis). Valid values are 0 to 10.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"utilization", "score"}, - }, - }, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_Extender(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Extender holds the parameters used to communicate with the extender. If a verb is unspecified/empty, it is assumed that the extender chose not to provide that extension.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "urlPrefix": { - SchemaProps: spec.SchemaProps{ - Description: "URLPrefix at which the extender is available", - Type: []string{"string"}, - Format: "", - }, - }, - "filterVerb": { - SchemaProps: spec.SchemaProps{ - Description: "Verb for the filter call, empty if not supported. This verb is appended to the URLPrefix when issuing the filter call to extender.", - Type: []string{"string"}, - Format: "", - }, - }, - "preemptVerb": { - SchemaProps: spec.SchemaProps{ - Description: "Verb for the preempt call, empty if not supported. This verb is appended to the URLPrefix when issuing the preempt call to extender.", - Type: []string{"string"}, - Format: "", - }, - }, - "prioritizeVerb": { - SchemaProps: spec.SchemaProps{ - Description: "Verb for the prioritize call, empty if not supported. This verb is appended to the URLPrefix when issuing the prioritize call to extender.", - Type: []string{"string"}, - Format: "", - }, - }, - "weight": { - SchemaProps: spec.SchemaProps{ - Description: "The numeric multiplier for the node scores that the prioritize call generates. The weight should be a positive integer", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "bindVerb": { - SchemaProps: spec.SchemaProps{ - Description: "Verb for the bind call, empty if not supported. This verb is appended to the URLPrefix when issuing the bind call to extender. If this method is implemented by the extender, it is the extender's responsibility to bind the pod to apiserver. Only one extender can implement this function.", - Type: []string{"string"}, - Format: "", - }, - }, - "enableHTTPS": { - SchemaProps: spec.SchemaProps{ - Description: "EnableHTTPS specifies whether https should be used to communicate with the extender", - Type: []string{"boolean"}, - Format: "", - }, - }, - "tlsConfig": { - SchemaProps: spec.SchemaProps{ - Description: "TLSConfig specifies the transport layer security config", - Ref: ref("k8s.io/kube-scheduler/config/v1.ExtenderTLSConfig"), - }, - }, - "httpTimeout": { - SchemaProps: spec.SchemaProps{ - Description: "HTTPTimeout specifies the timeout duration for a call to the extender. Filter timeout fails the scheduling of the pod. Prioritize timeout is ignored, k8s/other extenders priorities are used to select the node.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "nodeCacheCapable": { - SchemaProps: spec.SchemaProps{ - Description: "NodeCacheCapable specifies that the extender is capable of caching node information, so the scheduler should only send minimal information about the eligible nodes assuming that the extender already cached full details of all nodes in the cluster", - Type: []string{"boolean"}, - Format: "", - }, - }, - "managedResources": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "ManagedResources is a list of extended resources that are managed by this extender. - A pod will be sent to the extender on the Filter, Prioritize and Bind\n (if the extender is the binder) phases iff the pod requests at least\n one of the extended resources in this list. If empty or unspecified,\n all pods will be sent to this extender.\n- If IgnoredByScheduler is set to true for a resource, kube-scheduler\n will skip checking the resource in predicates.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-scheduler/config/v1.ExtenderManagedResource"), - }, - }, - }, - }, - }, - "ignorable": { - SchemaProps: spec.SchemaProps{ - Description: "Ignorable specifies if the extender is ignorable, i.e. scheduling should not fail when the extender returns an error or is not reachable.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - Required: []string{"urlPrefix"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration", "k8s.io/kube-scheduler/config/v1.ExtenderManagedResource", "k8s.io/kube-scheduler/config/v1.ExtenderTLSConfig"}, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_InterPodAffinityArgs(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "InterPodAffinityArgs holds arguments used to configure the InterPodAffinity plugin.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "hardPodAffinityWeight": { - SchemaProps: spec.SchemaProps{ - Description: "HardPodAffinityWeight is the scoring weight for existing pods with a matching hard affinity to the incoming pod.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_KubeSchedulerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "KubeSchedulerConfiguration configures a scheduler", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "leaderElection": { - SchemaProps: spec.SchemaProps{ - Description: "LeaderElection defines the configuration of leader election client.", - Ref: ref("k8s.io/component-base/config/v1alpha1.LeaderElectionConfiguration"), - }, - }, - "clientConnection": { - SchemaProps: spec.SchemaProps{ - Description: "ClientConnection specifies the kubeconfig file and client connection settings for the proxy server to use when communicating with the apiserver.", - Ref: ref("k8s.io/component-base/config/v1alpha1.ClientConnectionConfiguration"), - }, - }, - "healthzBindAddress": { - SchemaProps: spec.SchemaProps{ - Description: "HealthzBindAddress is the IP address and port for the health check server to serve on, defaulting to 0.0.0.0:10251", - Type: []string{"string"}, - Format: "", - }, - }, - "metricsBindAddress": { - SchemaProps: spec.SchemaProps{ - Description: "MetricsBindAddress is the IP address and port for the metrics server to serve on, defaulting to 0.0.0.0:10251.", - Type: []string{"string"}, - Format: "", - }, - }, - "enableProfiling": { - SchemaProps: spec.SchemaProps{ - Description: "enableProfiling enables profiling via web interface host:port/debug/pprof/", - Type: []string{"boolean"}, - Format: "", - }, - }, - "enableContentionProfiling": { - SchemaProps: spec.SchemaProps{ - Description: "enableContentionProfiling enables lock contention profiling, if enableProfiling is true.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "percentageOfNodesToScore": { - SchemaProps: spec.SchemaProps{ - Description: "PercentageOfNodesToScore is the percentage of all nodes that once found feasible for running a pod, the scheduler stops its search for more feasible nodes in the cluster. This helps improve scheduler's performance. Scheduler always tries to find at least \"minFeasibleNodesToFind\" feasible nodes no matter what the value of this flag is. Example: if the cluster size is 500 nodes and the value of this flag is 30, then scheduler stops finding further feasible nodes once it finds 150 feasible ones. When the value is 0, default percentage (5%--50% based on the size of the cluster) of the nodes will be scored.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "podInitialBackoffSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "PodInitialBackoffSeconds is the initial backoff for unschedulable pods. If specified, it must be greater than 0. If this value is null, the default value (1s) will be used.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "podMaxBackoffSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "PodMaxBackoffSeconds is the max backoff for unschedulable pods. If specified, it must be greater than podInitialBackoffSeconds. If this value is null, the default value (10s) will be used.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "profiles": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "schedulerName", - }, - "x-kubernetes-list-type": "map", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Profiles are scheduling profiles that kube-scheduler supports. Pods can choose to be scheduled under a particular profile by setting its associated scheduler name. Pods that don't specify any scheduler name are scheduled with the \"default-scheduler\" profile, if present here.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.KubeSchedulerProfile"), - }, - }, - }, - }, - }, - "extenders": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Extenders are the list of scheduler extenders, each holding the values of how to communicate with the extender. These extenders are shared by all scheduler profiles.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.Extender"), - }, - }, - }, - }, - }, - }, - Required: []string{"leaderElection", "clientConnection"}, - }, - }, - Dependencies: []string{ - "k8s.io/component-base/config/v1alpha1.ClientConnectionConfiguration", "k8s.io/component-base/config/v1alpha1.LeaderElectionConfiguration", "k8s.io/kube-scheduler/config/v1beta1.Extender", "k8s.io/kube-scheduler/config/v1beta1.KubeSchedulerProfile"}, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_KubeSchedulerProfile(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "KubeSchedulerProfile is a scheduling profile.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "schedulerName": { - SchemaProps: spec.SchemaProps{ - Description: "SchedulerName is the name of the scheduler associated to this profile. If SchedulerName matches with the pod's \"spec.schedulerName\", then the pod is scheduled with this profile.", - Type: []string{"string"}, - Format: "", - }, - }, - "plugins": { - SchemaProps: spec.SchemaProps{ - Description: "Plugins specify the set of plugins that should be enabled or disabled. Enabled plugins are the ones that should be enabled in addition to the default plugins. Disabled plugins are any of the default plugins that should be disabled. When no enabled or disabled plugin is specified for an extension point, default plugins for that extension point will be used if there is any. If a QueueSort plugin is specified, the same QueueSort Plugin and PluginConfig must be specified for all profiles.", - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.Plugins"), - }, - }, - "pluginConfig": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "name", - }, - "x-kubernetes-list-type": "map", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "PluginConfig is an optional set of custom plugin arguments for each plugin. Omitting config args for a plugin is equivalent to using the default config for that plugin.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.PluginConfig"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/kube-scheduler/config/v1beta1.PluginConfig", "k8s.io/kube-scheduler/config/v1beta1.Plugins"}, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_NodeLabelArgs(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeLabelArgs holds arguments used to configure the NodeLabel plugin.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "presentLabels": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "PresentLabels should be present for the node to be considered a fit for hosting the pod", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "absentLabels": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "AbsentLabels should be absent for the node to be considered a fit for hosting the pod", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "presentLabelsPreference": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Nodes that have labels in the list will get a higher score.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "absentLabelsPreference": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Nodes that don't have labels in the list will get a higher score.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_NodeResourcesFitArgs(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeResourcesFitArgs holds arguments used to configure the NodeResourcesFit plugin.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "ignoredResources": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "IgnoredResources is the list of resources that NodeResources fit filter should ignore.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "ignoredResourceGroups": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "IgnoredResourceGroups defines the list of resource groups that NodeResources fit filter should ignore. e.g. if group is [\"example.com\"], it will ignore all resource names that begin with \"example.com\", such as \"example.com/aaa\" and \"example.com/bbb\". A resource group name can't contain '/'.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_NodeResourcesLeastAllocatedArgs(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeResourcesLeastAllocatedArgs holds arguments used to configure NodeResourcesLeastAllocated plugin.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "resources": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Resources to be managed, if no resource is provided, default resource set with both the weight of \"cpu\" and \"memory\" set to \"1\" will be applied. Resource with \"0\" weight will not accountable for the final score.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.ResourceSpec"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/kube-scheduler/config/v1beta1.ResourceSpec"}, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_NodeResourcesMostAllocatedArgs(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeResourcesMostAllocatedArgs holds arguments used to configure NodeResourcesMostAllocated plugin.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "resources": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Resources to be managed, if no resource is provided, default resource set with both the weight of \"cpu\" and \"memory\" set to \"1\" will be applied. Resource with \"0\" weight will not accountable for the final score.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.ResourceSpec"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/kube-scheduler/config/v1beta1.ResourceSpec"}, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_Plugin(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Plugin specifies a plugin name and its weight when applicable. Weight is used only for Score plugins.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name defines the name of plugin", - Type: []string{"string"}, - Format: "", - }, - }, - "weight": { - SchemaProps: spec.SchemaProps{ - Description: "Weight defines the weight of plugin, only used for Score plugins.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"name"}, - }, - }, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_PluginConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PluginConfig specifies arguments that should be passed to a plugin at the time of initialization. A plugin that is invoked at multiple extension points is initialized once. Args can have arbitrary structure. It is up to the plugin to process these Args.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name defines the name of plugin being configured", - Type: []string{"string"}, - Format: "", - }, - }, - "args": { - SchemaProps: spec.SchemaProps{ - Description: "Args defines the arguments passed to the plugins at the time of initialization. Args can have arbitrary structure.", - Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), - }, - }, - }, - Required: []string{"name"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/runtime.RawExtension"}, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_PluginSet(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PluginSet specifies enabled and disabled plugins for an extension point. If an array is empty, missing, or nil, default plugins at that extension point will be used.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "enabled": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Enabled specifies plugins that should be enabled in addition to default plugins. These are called after default plugins and in the same order specified here.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.Plugin"), - }, - }, - }, - }, - }, - "disabled": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "name", - }, - "x-kubernetes-list-type": "map", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Disabled specifies default plugins that should be disabled. When all default plugins need to be disabled, an array containing only one \"*\" should be provided.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.Plugin"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/kube-scheduler/config/v1beta1.Plugin"}, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_Plugins(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Plugins include multiple extension points. When specified, the list of plugins for a particular extension point are the only ones enabled. If an extension point is omitted from the config, then the default set of plugins is used for that extension point. Enabled plugins are called in the order specified here, after default plugins. If they need to be invoked before default plugins, default plugins must be disabled and re-enabled here in desired order.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "queueSort": { - SchemaProps: spec.SchemaProps{ - Description: "QueueSort is a list of plugins that should be invoked when sorting pods in the scheduling queue.", - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.PluginSet"), - }, - }, - "preFilter": { - SchemaProps: spec.SchemaProps{ - Description: "PreFilter is a list of plugins that should be invoked at \"PreFilter\" extension point of the scheduling framework.", - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.PluginSet"), - }, - }, - "filter": { - SchemaProps: spec.SchemaProps{ - Description: "Filter is a list of plugins that should be invoked when filtering out nodes that cannot run the Pod.", - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.PluginSet"), - }, - }, - "postFilter": { - SchemaProps: spec.SchemaProps{ - Description: "PostFilter is a list of plugins that are invoked after filtering phase, no matter whether filtering succeeds or not.", - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.PluginSet"), - }, - }, - "preScore": { - SchemaProps: spec.SchemaProps{ - Description: "PreScore is a list of plugins that are invoked before scoring.", - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.PluginSet"), - }, - }, - "score": { - SchemaProps: spec.SchemaProps{ - Description: "Score is a list of plugins that should be invoked when ranking nodes that have passed the filtering phase.", - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.PluginSet"), - }, - }, - "reserve": { - SchemaProps: spec.SchemaProps{ - Description: "Reserve is a list of plugins invoked when reserving/unreserving resources after a node is assigned to run the pod.", - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.PluginSet"), - }, - }, - "permit": { - SchemaProps: spec.SchemaProps{ - Description: "Permit is a list of plugins that control binding of a Pod. These plugins can prevent or delay binding of a Pod.", - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.PluginSet"), - }, - }, - "preBind": { - SchemaProps: spec.SchemaProps{ - Description: "PreBind is a list of plugins that should be invoked before a pod is bound.", - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.PluginSet"), - }, - }, - "bind": { - SchemaProps: spec.SchemaProps{ - Description: "Bind is a list of plugins that should be invoked at \"Bind\" extension point of the scheduling framework. The scheduler call these plugins in order. Scheduler skips the rest of these plugins as soon as one returns success.", - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.PluginSet"), - }, - }, - "postBind": { - SchemaProps: spec.SchemaProps{ - Description: "PostBind is a list of plugins that should be invoked after a pod is successfully bound.", - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.PluginSet"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/kube-scheduler/config/v1beta1.PluginSet"}, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_PodTopologySpreadArgs(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodTopologySpreadArgs holds arguments used to configure the PodTopologySpread plugin.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "defaultConstraints": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "DefaultConstraints defines topology spread constraints to be applied to pods that don't define any in `pod.spec.topologySpreadConstraints`. `topologySpreadConstraint.labelSelectors` must be empty, as they are deduced the pods' membership to Services, Replication Controllers, Replica Sets or Stateful Sets. Empty by default.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.TopologySpreadConstraint"}, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_RequestedToCapacityRatioArgs(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RequestedToCapacityRatioArgs holds arguments used to configure RequestedToCapacityRatio plugin.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "shape": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Points defining priority function shape", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.UtilizationShapePoint"), - }, - }, - }, - }, - }, - "resources": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "Resources to be managed", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/kube-scheduler/config/v1beta1.ResourceSpec"), - }, - }, - }, - }, - }, - }, - Required: []string{"shape"}, - }, - }, - Dependencies: []string{ - "k8s.io/kube-scheduler/config/v1beta1.ResourceSpec", "k8s.io/kube-scheduler/config/v1beta1.UtilizationShapePoint"}, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_ResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceSpec represents single resource and weight for bin packing of priority RequestedToCapacityRatioArguments.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Name of the resource to be managed by RequestedToCapacityRatio function.", - Type: []string{"string"}, - Format: "", - }, - }, - "weight": { - SchemaProps: spec.SchemaProps{ - Description: "Weight of the resource.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - }, - Required: []string{"name"}, - }, - }, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_ServiceAffinityArgs(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceAffinityArgs holds arguments used to configure the ServiceAffinity plugin.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "affinityLabels": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "AffinityLabels are homogeneous for pods that are scheduled to a node. (i.e. it returns true IFF this pod can be added to this node such that all other pods in the same service are running on nodes with the exact same values for Labels).", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "antiAffinityLabelsPreference": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "AntiAffinityLabelsPreference are the labels to consider for service anti affinity scoring.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_UtilizationShapePoint(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "UtilizationShapePoint represents single point of priority function shape.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "utilization": { - SchemaProps: spec.SchemaProps{ - Description: "Utilization (x axis). Valid values are 0 to 100. Fully utilized node maps to 100.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "score": { - SchemaProps: spec.SchemaProps{ - Description: "Score assigned to given utilization (y axis). Valid values are 0 to 10.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - Required: []string{"utilization", "score"}, - }, - }, - } -} - -func schema_k8sio_kube_scheduler_config_v1beta1_VolumeBindingArgs(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "VolumeBindingArgs holds arguments used to configure the VolumeBinding plugin.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "bindTimeoutSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "BindTimeoutSeconds is the timeout in seconds in volume binding operation. Value must be non-negative integer. The value zero indicates no waiting. If this value is nil, the default value (600) will be used.", - Type: []string{"integer"}, - Format: "int64", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_kubelet_config_v1beta1_KubeletAnonymousAuthentication(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "enabled": { - SchemaProps: spec.SchemaProps{ - Description: "enabled allows anonymous requests to the kubelet server. Requests that are not rejected by another authentication method are treated as anonymous requests. Anonymous requests have a username of system:anonymous, and a group name of system:unauthenticated.", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_kubelet_config_v1beta1_KubeletAuthentication(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "x509": { - SchemaProps: spec.SchemaProps{ - Description: "x509 contains settings related to x509 client certificate authentication", - Ref: ref("k8s.io/kubelet/config/v1beta1.KubeletX509Authentication"), - }, - }, - "webhook": { - SchemaProps: spec.SchemaProps{ - Description: "webhook contains settings related to webhook bearer token authentication", - Ref: ref("k8s.io/kubelet/config/v1beta1.KubeletWebhookAuthentication"), - }, - }, - "anonymous": { - SchemaProps: spec.SchemaProps{ - Description: "anonymous contains settings related to anonymous authentication", - Ref: ref("k8s.io/kubelet/config/v1beta1.KubeletAnonymousAuthentication"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/kubelet/config/v1beta1.KubeletAnonymousAuthentication", "k8s.io/kubelet/config/v1beta1.KubeletWebhookAuthentication", "k8s.io/kubelet/config/v1beta1.KubeletX509Authentication"}, - } -} - -func schema_k8sio_kubelet_config_v1beta1_KubeletAuthorization(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "mode": { - SchemaProps: spec.SchemaProps{ - Description: "mode is the authorization mode to apply to requests to the kubelet server. Valid values are AlwaysAllow and Webhook. Webhook mode uses the SubjectAccessReview API to determine authorization.", - Type: []string{"string"}, - Format: "", - }, - }, - "webhook": { - SchemaProps: spec.SchemaProps{ - Description: "webhook contains settings related to Webhook authorization.", - Ref: ref("k8s.io/kubelet/config/v1beta1.KubeletWebhookAuthorization"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/kubelet/config/v1beta1.KubeletWebhookAuthorization"}, - } -} - -func schema_k8sio_kubelet_config_v1beta1_KubeletConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "KubeletConfiguration contains the configuration for the Kubelet", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "enableServer": { - SchemaProps: spec.SchemaProps{ - Description: "enableServer enables Kubelet's secured server. Note: Kubelet's insecure port is controlled by the readOnlyPort option. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may disrupt components that interact with the Kubelet server. Default: true", - Type: []string{"boolean"}, - Format: "", - }, - }, - "staticPodPath": { - SchemaProps: spec.SchemaProps{ - Description: "staticPodPath is the path to the directory containing local (static) pods to run, or the path to a single static pod file. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that the set of static pods specified at the new path may be different than the ones the Kubelet initially started with, and this may disrupt your node. Default: \"\"", - Type: []string{"string"}, - Format: "", - }, - }, - "syncFrequency": { - SchemaProps: spec.SchemaProps{ - Description: "syncFrequency is the max period between synchronizing running containers and config. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that shortening this duration may have a negative performance impact, especially as the number of Pods on the node increases. Alternatively, increasing this duration will result in longer refresh times for ConfigMaps and Secrets. Default: \"1m\"", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "fileCheckFrequency": { - SchemaProps: spec.SchemaProps{ - Description: "fileCheckFrequency is the duration between checking config files for new data Dynamic Kubelet Config (beta): If dynamically updating this field, consider that shortening the duration will cause the Kubelet to reload local Static Pod configurations more frequently, which may have a negative performance impact. Default: \"20s\"", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "httpCheckFrequency": { - SchemaProps: spec.SchemaProps{ - Description: "httpCheckFrequency is the duration between checking http for new data Dynamic Kubelet Config (beta): If dynamically updating this field, consider that shortening the duration will cause the Kubelet to poll staticPodURL more frequently, which may have a negative performance impact. Default: \"20s\"", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "staticPodURL": { - SchemaProps: spec.SchemaProps{ - Description: "staticPodURL is the URL for accessing static pods to run Dynamic Kubelet Config (beta): If dynamically updating this field, consider that the set of static pods specified at the new URL may be different than the ones the Kubelet initially started with, and this may disrupt your node. Default: \"\"", - Type: []string{"string"}, - Format: "", - }, - }, - "staticPodURLHeader": { - SchemaProps: spec.SchemaProps{ - Description: "staticPodURLHeader is a map of slices with HTTP headers to use when accessing the podURL Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may disrupt the ability to read the latest set of static pods from StaticPodURL. Default: nil", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - "address": { - SchemaProps: spec.SchemaProps{ - Description: "address is the IP address for the Kubelet to serve on (set to 0.0.0.0 for all interfaces). Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may disrupt components that interact with the Kubelet server. Default: \"0.0.0.0\"", - Type: []string{"string"}, - Format: "", - }, - }, - "port": { - SchemaProps: spec.SchemaProps{ - Description: "port is the port for the Kubelet to serve on. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may disrupt components that interact with the Kubelet server. Default: 10250", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "readOnlyPort": { - SchemaProps: spec.SchemaProps{ - Description: "readOnlyPort is the read-only port for the Kubelet to serve on with no authentication/authorization. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may disrupt components that interact with the Kubelet server. Default: 0 (disabled)", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "tlsCertFile": { - SchemaProps: spec.SchemaProps{ - Description: "tlsCertFile is the file containing x509 Certificate for HTTPS. (CA cert, if any, concatenated after server cert). If tlsCertFile and tlsPrivateKeyFile are not provided, a self-signed certificate and key are generated for the public address and saved to the directory passed to the Kubelet's --cert-dir flag. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may disrupt components that interact with the Kubelet server. Default: \"\"", - Type: []string{"string"}, - Format: "", - }, - }, - "tlsPrivateKeyFile": { - SchemaProps: spec.SchemaProps{ - Description: "tlsPrivateKeyFile is the file containing x509 private key matching tlsCertFile Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may disrupt components that interact with the Kubelet server. Default: \"\"", - Type: []string{"string"}, - Format: "", - }, - }, - "tlsCipherSuites": { - SchemaProps: spec.SchemaProps{ - Description: "TLSCipherSuites is the list of allowed cipher suites for the server. Values are from tls package constants (https://golang.org/pkg/crypto/tls/#pkg-constants). Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may disrupt components that interact with the Kubelet server. Default: nil", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "tlsMinVersion": { - SchemaProps: spec.SchemaProps{ - Description: "TLSMinVersion is the minimum TLS version supported. Values are from tls package constants (https://golang.org/pkg/crypto/tls/#pkg-constants). Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may disrupt components that interact with the Kubelet server. Default: \"\"", - Type: []string{"string"}, - Format: "", - }, - }, - "rotateCertificates": { - SchemaProps: spec.SchemaProps{ - Description: "rotateCertificates enables client certificate rotation. The Kubelet will request a new certificate from the certificates.k8s.io API. This requires an approver to approve the certificate signing requests. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that disabling it may disrupt the Kubelet's ability to authenticate with the API server after the current certificate expires. Default: false", - Type: []string{"boolean"}, - Format: "", - }, - }, - "serverTLSBootstrap": { - SchemaProps: spec.SchemaProps{ - Description: "serverTLSBootstrap enables server certificate bootstrap. Instead of self signing a serving certificate, the Kubelet will request a certificate from the certificates.k8s.io API. This requires an approver to approve the certificate signing requests. The RotateKubeletServerCertificate feature must be enabled. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that disabling it will stop the renewal of Kubelet server certificates, which can disrupt components that interact with the Kubelet server in the long term, due to certificate expiration. Default: false", - Type: []string{"boolean"}, - Format: "", - }, - }, - "authentication": { - SchemaProps: spec.SchemaProps{ - Description: "authentication specifies how requests to the Kubelet's server are authenticated Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may disrupt components that interact with the Kubelet server. Defaults:\n anonymous:\n enabled: false\n webhook:\n enabled: true\n cacheTTL: \"2m\"", - Ref: ref("k8s.io/kubelet/config/v1beta1.KubeletAuthentication"), - }, - }, - "authorization": { - SchemaProps: spec.SchemaProps{ - Description: "authorization specifies how requests to the Kubelet's server are authorized Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may disrupt components that interact with the Kubelet server. Defaults:\n mode: Webhook\n webhook:\n cacheAuthorizedTTL: \"5m\"\n cacheUnauthorizedTTL: \"30s\"", - Ref: ref("k8s.io/kubelet/config/v1beta1.KubeletAuthorization"), - }, - }, - "registryPullQPS": { - SchemaProps: spec.SchemaProps{ - Description: "registryPullQPS is the limit of registry pulls per second. Set to 0 for no limit. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may impact scalability by changing the amount of traffic produced by image pulls. Default: 5", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "registryBurst": { - SchemaProps: spec.SchemaProps{ - Description: "registryBurst is the maximum size of bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registryPullQPS. Only used if registryPullQPS > 0. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may impact scalability by changing the amount of traffic produced by image pulls. Default: 10", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "eventRecordQPS": { - SchemaProps: spec.SchemaProps{ - Description: "eventRecordQPS is the maximum event creations per second. If 0, there is no limit enforced. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may impact scalability by changing the amount of traffic produced by event creations. Default: 5", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "eventBurst": { - SchemaProps: spec.SchemaProps{ - Description: "eventBurst is the maximum size of a burst of event creations, temporarily allows event creations to burst to this number, while still not exceeding eventRecordQPS. Only used if eventRecordQPS > 0. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may impact scalability by changing the amount of traffic produced by event creations. Default: 10", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "enableDebuggingHandlers": { - SchemaProps: spec.SchemaProps{ - Description: "enableDebuggingHandlers enables server endpoints for log access and local running of containers and commands, including the exec, attach, logs, and portforward features. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that disabling it may disrupt components that interact with the Kubelet server. Default: true", - Type: []string{"boolean"}, - Format: "", - }, - }, - "enableContentionProfiling": { - SchemaProps: spec.SchemaProps{ - Description: "enableContentionProfiling enables lock contention profiling, if enableDebuggingHandlers is true. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that enabling it may carry a performance impact. Default: false", - Type: []string{"boolean"}, - Format: "", - }, - }, - "healthzPort": { - SchemaProps: spec.SchemaProps{ - Description: "healthzPort is the port of the localhost healthz endpoint (set to 0 to disable) Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may disrupt components that monitor Kubelet health. Default: 10248", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "healthzBindAddress": { - SchemaProps: spec.SchemaProps{ - Description: "healthzBindAddress is the IP address for the healthz server to serve on Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may disrupt components that monitor Kubelet health. Default: \"127.0.0.1\"", - Type: []string{"string"}, - Format: "", - }, - }, - "oomScoreAdj": { - SchemaProps: spec.SchemaProps{ - Description: "oomScoreAdj is The oom-score-adj value for kubelet process. Values must be within the range [-1000, 1000]. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may impact the stability of nodes under memory pressure. Default: -999", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "clusterDomain": { - SchemaProps: spec.SchemaProps{ - Description: "clusterDomain is the DNS domain for this cluster. If set, kubelet will configure all containers to search this domain in addition to the host's search domains. Dynamic Kubelet Config (beta): Dynamically updating this field is not recommended, as it should be kept in sync with the rest of the cluster. Default: \"\"", - Type: []string{"string"}, - Format: "", - }, - }, - "clusterDNS": { - SchemaProps: spec.SchemaProps{ - Description: "clusterDNS is a list of IP addresses for the cluster DNS server. If set, kubelet will configure all containers to use this for DNS resolution instead of the host's DNS servers. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that changes will only take effect on Pods created after the update. Draining the node is recommended before changing this field. Default: nil", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "streamingConnectionIdleTimeout": { - SchemaProps: spec.SchemaProps{ - Description: "streamingConnectionIdleTimeout is the maximum time a streaming connection can be idle before the connection is automatically closed. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may impact components that rely on infrequent updates over streaming connections to the Kubelet server. Default: \"4h\"", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "nodeStatusUpdateFrequency": { - SchemaProps: spec.SchemaProps{ - Description: "nodeStatusUpdateFrequency is the frequency that kubelet computes node status. If node lease feature is not enabled, it is also the frequency that kubelet posts node status to master. Note: When node lease feature is not enabled, be cautious when changing the constant, it must work with nodeMonitorGracePeriod in nodecontroller. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may impact node scalability, and also that the node controller's nodeMonitorGracePeriod must be set to N*NodeStatusUpdateFrequency, where N is the number of retries before the node controller marks the node unhealthy. Default: \"10s\"", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "nodeStatusReportFrequency": { - SchemaProps: spec.SchemaProps{ - Description: "nodeStatusReportFrequency is the frequency that kubelet posts node status to master if node status does not change. Kubelet will ignore this frequency and post node status immediately if any change is detected. It is only used when node lease feature is enabled. nodeStatusReportFrequency's default value is 1m. But if nodeStatusUpdateFrequency is set explicitly, nodeStatusReportFrequency's default value will be set to nodeStatusUpdateFrequency for backward compatibility. Default: \"1m\"", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "nodeLeaseDurationSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "nodeLeaseDurationSeconds is the duration the Kubelet will set on its corresponding Lease, when the NodeLease feature is enabled. This feature provides an indicator of node health by having the Kubelet create and periodically renew a lease, named after the node, in the kube-node-lease namespace. If the lease expires, the node can be considered unhealthy. The lease is currently renewed every 10s, per KEP-0009. In the future, the lease renewal interval may be set based on the lease duration. Requires the NodeLease feature gate to be enabled. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that decreasing the duration may reduce tolerance for issues that temporarily prevent the Kubelet from renewing the lease (e.g. a short-lived network issue). Default: 40", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "imageMinimumGCAge": { - SchemaProps: spec.SchemaProps{ - Description: "imageMinimumGCAge is the minimum age for an unused image before it is garbage collected. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may trigger or delay garbage collection, and may change the image overhead on the node. Default: \"2m\"", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "imageGCHighThresholdPercent": { - SchemaProps: spec.SchemaProps{ - Description: "imageGCHighThresholdPercent is the percent of disk usage after which image garbage collection is always run. The percent is calculated as this field value out of 100. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may trigger or delay garbage collection, and may change the image overhead on the node. Default: 85", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "imageGCLowThresholdPercent": { - SchemaProps: spec.SchemaProps{ - Description: "imageGCLowThresholdPercent is the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. The percent is calculated as this field value out of 100. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may trigger or delay garbage collection, and may change the image overhead on the node. Default: 80", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "volumeStatsAggPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "How frequently to calculate and cache volume disk usage for all pods Dynamic Kubelet Config (beta): If dynamically updating this field, consider that shortening the period may carry a performance impact. Default: \"1m\"", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "kubeletCgroups": { - SchemaProps: spec.SchemaProps{ - Description: "kubeletCgroups is the absolute name of cgroups to isolate the kubelet in Dynamic Kubelet Config (beta): This field should not be updated without a full node reboot. It is safest to keep this value the same as the local config. Default: \"\"", - Type: []string{"string"}, - Format: "", - }, - }, - "systemCgroups": { - SchemaProps: spec.SchemaProps{ - Description: "systemCgroups is absolute name of cgroups in which to place all non-kernel processes that are not already in a container. Empty for no container. Rolling back the flag requires a reboot. Dynamic Kubelet Config (beta): This field should not be updated without a full node reboot. It is safest to keep this value the same as the local config. Default: \"\"", - Type: []string{"string"}, - Format: "", - }, - }, - "cgroupRoot": { - SchemaProps: spec.SchemaProps{ - Description: "cgroupRoot is the root cgroup to use for pods. This is handled by the container runtime on a best effort basis. Dynamic Kubelet Config (beta): This field should not be updated without a full node reboot. It is safest to keep this value the same as the local config. Default: \"\"", - Type: []string{"string"}, - Format: "", - }, - }, - "cgroupsPerQOS": { - SchemaProps: spec.SchemaProps{ - Description: "Enable QoS based Cgroup hierarchy: top level cgroups for QoS Classes And all Burstable and BestEffort pods are brought up under their specific top level QoS cgroup. Dynamic Kubelet Config (beta): This field should not be updated without a full node reboot. It is safest to keep this value the same as the local config. Default: true", - Type: []string{"boolean"}, - Format: "", - }, - }, - "cgroupDriver": { - SchemaProps: spec.SchemaProps{ - Description: "driver that the kubelet uses to manipulate cgroups on the host (cgroupfs or systemd) Dynamic Kubelet Config (beta): This field should not be updated without a full node reboot. It is safest to keep this value the same as the local config. Default: \"cgroupfs\"", - Type: []string{"string"}, - Format: "", - }, - }, - "cpuManagerPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "CPUManagerPolicy is the name of the policy to use. Requires the CPUManager feature gate to be enabled. Dynamic Kubelet Config (beta): This field should not be updated without a full node reboot. It is safest to keep this value the same as the local config. Default: \"none\"", - Type: []string{"string"}, - Format: "", - }, - }, - "cpuManagerReconcilePeriod": { - SchemaProps: spec.SchemaProps{ - Description: "CPU Manager reconciliation period. Requires the CPUManager feature gate to be enabled. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that shortening the period may carry a performance impact. Default: \"10s\"", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "topologyManagerPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "TopologyManagerPolicy is the name of the policy to use. Policies other than \"none\" require the TopologyManager feature gate to be enabled. Dynamic Kubelet Config (beta): This field should not be updated without a full node reboot. It is safest to keep this value the same as the local config. Default: \"none\"", - Type: []string{"string"}, - Format: "", - }, - }, - "qosReserved": { - SchemaProps: spec.SchemaProps{ - Description: "qosReserved is a set of resource name to percentage pairs that specify the minimum percentage of a resource reserved for exclusive use by the guaranteed QoS tier. Currently supported resources: \"memory\" Requires the QOSReserved feature gate to be enabled. Dynamic Kubelet Config (beta): This field should not be updated without a full node reboot. It is safest to keep this value the same as the local config. Default: nil", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "runtimeRequestTimeout": { - SchemaProps: spec.SchemaProps{ - Description: "runtimeRequestTimeout is the timeout for all runtime requests except long running requests - pull, logs, exec and attach. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may disrupt components that interact with the Kubelet server. Default: \"2m\"", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "hairpinMode": { - SchemaProps: spec.SchemaProps{ - Description: "hairpinMode specifies how the Kubelet should configure the container bridge for hairpin packets. Setting this flag allows endpoints in a Service to loadbalance back to themselves if they should try to access their own Service. Values:\n \"promiscuous-bridge\": make the container bridge promiscuous.\n \"hairpin-veth\": set the hairpin flag on container veth interfaces.\n \"none\": do nothing.\nGenerally, one must set --hairpin-mode=hairpin-veth to achieve hairpin NAT, because promiscuous-bridge assumes the existence of a container bridge named cbr0. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may require a node reboot, depending on the network plugin. Default: \"promiscuous-bridge\"", - Type: []string{"string"}, - Format: "", - }, - }, - "maxPods": { - SchemaProps: spec.SchemaProps{ - Description: "maxPods is the number of pods that can run on this Kubelet. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that changes may cause Pods to fail admission on Kubelet restart, and may change the value reported in Node.Status.Capacity[v1.ResourcePods], thus affecting future scheduling decisions. Increasing this value may also decrease performance, as more Pods can be packed into a single node. Default: 110", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "podCIDR": { - SchemaProps: spec.SchemaProps{ - Description: "The CIDR to use for pod IP addresses, only used in standalone mode. In cluster mode, this is obtained from the master. Dynamic Kubelet Config (beta): This field should always be set to the empty default. It should only set for standalone Kubelets, which cannot use Dynamic Kubelet Config. Default: \"\"", - Type: []string{"string"}, - Format: "", - }, - }, - "podPidsLimit": { - SchemaProps: spec.SchemaProps{ - Description: "PodPidsLimit is the maximum number of pids in any pod. Requires the SupportPodPidsLimit feature gate to be enabled. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that lowering it may prevent container processes from forking after the change. Default: -1", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "resolvConf": { - SchemaProps: spec.SchemaProps{ - Description: "ResolverConfig is the resolver configuration file used as the basis for the container DNS resolution configuration. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that changes will only take effect on Pods created after the update. Draining the node is recommended before changing this field. Default: \"/etc/resolv.conf\"", - Type: []string{"string"}, - Format: "", - }, - }, - "runOnce": { - SchemaProps: spec.SchemaProps{ - Description: "RunOnce causes the Kubelet to check the API server once for pods, run those in addition to the pods specified by static pod files, and exit. Default: false", - Type: []string{"boolean"}, - Format: "", - }, - }, - "cpuCFSQuota": { - SchemaProps: spec.SchemaProps{ - Description: "cpuCFSQuota enables CPU CFS quota enforcement for containers that specify CPU limits. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that disabling it may reduce node stability. Default: true", - Type: []string{"boolean"}, - Format: "", - }, - }, - "cpuCFSQuotaPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "CPUCFSQuotaPeriod is the CPU CFS quota period value, cpu.cfs_period_us. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that limits set for containers will result in different cpu.cfs_quota settings. This will trigger container restarts on the node being reconfigured. Default: \"100ms\"", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "nodeStatusMaxImages": { - SchemaProps: spec.SchemaProps{ - Description: "nodeStatusMaxImages caps the number of images reported in Node.Status.Images. Note: If -1 is specified, no cap will be applied. If 0 is specified, no image is returned. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that different values can be reported on node status. Default: 50", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "maxOpenFiles": { - SchemaProps: spec.SchemaProps{ - Description: "maxOpenFiles is Number of files that can be opened by Kubelet process. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may impact the ability of the Kubelet to interact with the node's filesystem. Default: 1000000", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "contentType": { - SchemaProps: spec.SchemaProps{ - Description: "contentType is contentType of requests sent to apiserver. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may impact the ability for the Kubelet to communicate with the API server. If the Kubelet loses contact with the API server due to a change to this field, the change cannot be reverted via dynamic Kubelet config. Default: \"application/vnd.kubernetes.protobuf\"", - Type: []string{"string"}, - Format: "", - }, - }, - "kubeAPIQPS": { - SchemaProps: spec.SchemaProps{ - Description: "kubeAPIQPS is the QPS to use while talking with kubernetes apiserver Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may impact scalability by changing the amount of traffic the Kubelet sends to the API server. Default: 5", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "kubeAPIBurst": { - SchemaProps: spec.SchemaProps{ - Description: "kubeAPIBurst is the burst to allow while talking with kubernetes apiserver Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may impact scalability by changing the amount of traffic the Kubelet sends to the API server. Default: 10", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "serializeImagePulls": { - SchemaProps: spec.SchemaProps{ - Description: "serializeImagePulls when enabled, tells the Kubelet to pull images one at a time. We recommend *not* changing the default value on nodes that run docker daemon with version < 1.9 or an Aufs storage backend. Issue #10959 has more details. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may impact the performance of image pulls. Default: true", - Type: []string{"boolean"}, - Format: "", - }, - }, - "evictionHard": { - SchemaProps: spec.SchemaProps{ - Description: "Map of signal names to quantities that defines hard eviction thresholds. For example: {\"memory.available\": \"300Mi\"}. To explicitly disable, pass a 0% or 100% threshold on an arbitrary resource. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may trigger or delay Pod evictions. Default:\n memory.available: \"100Mi\"\n nodefs.available: \"10%\"\n nodefs.inodesFree: \"5%\"\n imagefs.available: \"15%\"", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "evictionSoft": { - SchemaProps: spec.SchemaProps{ - Description: "Map of signal names to quantities that defines soft eviction thresholds. For example: {\"memory.available\": \"300Mi\"}. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may trigger or delay Pod evictions, and may change the allocatable reported by the node. Default: nil", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "evictionSoftGracePeriod": { - SchemaProps: spec.SchemaProps{ - Description: "Map of signal names to quantities that defines grace periods for each soft eviction signal. For example: {\"memory.available\": \"30s\"}. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may trigger or delay Pod evictions. Default: nil", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "evictionPressureTransitionPeriod": { - SchemaProps: spec.SchemaProps{ - Description: "Duration for which the kubelet has to wait before transitioning out of an eviction pressure condition. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that lowering it may decrease the stability of the node when the node is overcommitted. Default: \"5m\"", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "evictionMaxPodGracePeriod": { - SchemaProps: spec.SchemaProps{ - Description: "Maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. This value effectively caps the Pod's TerminationGracePeriodSeconds value during soft evictions. Note: Due to issue #64530, the behavior has a bug where this value currently just overrides the grace period during soft eviction, which can increase the grace period from what is set on the Pod. This bug will be fixed in a future release. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that lowering it decreases the amount of time Pods will have to gracefully clean up before being killed during a soft eviction. Default: 0", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "evictionMinimumReclaim": { - SchemaProps: spec.SchemaProps{ - Description: "Map of signal names to quantities that defines minimum reclaims, which describe the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction while that resource is under pressure. For example: {\"imagefs.available\": \"2Gi\"} Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may change how well eviction can manage resource pressure. Default: nil", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "podsPerCore": { - SchemaProps: spec.SchemaProps{ - Description: "podsPerCore is the maximum number of pods per core. Cannot exceed MaxPods. If 0, this field is ignored. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that changes may cause Pods to fail admission on Kubelet restart, and may change the value reported in Node.Status.Capacity[v1.ResourcePods], thus affecting future scheduling decisions. Increasing this value may also decrease performance, as more Pods can be packed into a single node. Default: 0", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "enableControllerAttachDetach": { - SchemaProps: spec.SchemaProps{ - Description: "enableControllerAttachDetach enables the Attach/Detach controller to manage attachment/detachment of volumes scheduled to this node, and disables kubelet from executing any attach/detach operations Dynamic Kubelet Config (beta): If dynamically updating this field, consider that changing which component is responsible for volume management on a live node may result in volumes refusing to detach if the node is not drained prior to the update, and if Pods are scheduled to the node before the volumes.kubernetes.io/controller-managed-attach-detach annotation is updated by the Kubelet. In general, it is safest to leave this value set the same as local config. Default: true", - Type: []string{"boolean"}, - Format: "", - }, - }, - "protectKernelDefaults": { - SchemaProps: spec.SchemaProps{ - Description: "protectKernelDefaults, if true, causes the Kubelet to error if kernel flags are not as it expects. Otherwise the Kubelet will attempt to modify kernel flags to match its expectation. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that enabling it may cause the Kubelet to crash-loop if the Kernel is not configured as Kubelet expects. Default: false", - Type: []string{"boolean"}, - Format: "", - }, - }, - "makeIPTablesUtilChains": { - SchemaProps: spec.SchemaProps{ - Description: "If true, Kubelet ensures a set of iptables rules are present on host. These rules will serve as utility rules for various components, e.g. KubeProxy. The rules will be created based on IPTablesMasqueradeBit and IPTablesDropBit. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that disabling it will prevent the Kubelet from healing locally misconfigured iptables rules. Default: true", - Type: []string{"boolean"}, - Format: "", - }, - }, - "iptablesMasqueradeBit": { - SchemaProps: spec.SchemaProps{ - Description: "iptablesMasqueradeBit is the bit of the iptables fwmark space to mark for SNAT Values must be within the range [0, 31]. Must be different from other mark bits. Warning: Please match the value of the corresponding parameter in kube-proxy. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it needs to be coordinated with other components, like kube-proxy, and the update will only be effective if MakeIPTablesUtilChains is enabled. Default: 14", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "iptablesDropBit": { - SchemaProps: spec.SchemaProps{ - Description: "iptablesDropBit is the bit of the iptables fwmark space to mark for dropping packets. Values must be within the range [0, 31]. Must be different from other mark bits. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it needs to be coordinated with other components, like kube-proxy, and the update will only be effective if MakeIPTablesUtilChains is enabled. Default: 15", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "featureGates": { - SchemaProps: spec.SchemaProps{ - Description: "featureGates is a map of feature names to bools that enable or disable alpha/experimental features. This field modifies piecemeal the built-in default values from \"k8s.io/kubernetes/pkg/features/kube_features.go\". Dynamic Kubelet Config (beta): If dynamically updating this field, consider the documentation for the features you are enabling or disabling. While we encourage feature developers to make it possible to dynamically enable and disable features, some changes may require node reboots, and some features may require careful coordination to retroactively disable. Default: nil", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - "failSwapOn": { - SchemaProps: spec.SchemaProps{ - Description: "failSwapOn tells the Kubelet to fail to start if swap is enabled on the node. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that setting it to true will cause the Kubelet to crash-loop if swap is enabled. Default: true", - Type: []string{"boolean"}, - Format: "", - }, - }, - "containerLogMaxSize": { - SchemaProps: spec.SchemaProps{ - Description: "A quantity defines the maximum size of the container log file before it is rotated. For example: \"5Mi\" or \"256Ki\". Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may trigger log rotation. Default: \"10Mi\"", - Type: []string{"string"}, - Format: "", - }, - }, - "containerLogMaxFiles": { - SchemaProps: spec.SchemaProps{ - Description: "Maximum number of container log files that can be present for a container. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that lowering it may cause log files to be deleted. Default: 5", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "configMapAndSecretChangeDetectionStrategy": { - SchemaProps: spec.SchemaProps{ - Description: "ConfigMapAndSecretChangeDetectionStrategy is a mode in which config map and secret managers are running. Default: \"Watch\"", - Type: []string{"string"}, - Format: "", - }, - }, - "systemReserved": { - SchemaProps: spec.SchemaProps{ - Description: "systemReserved is a set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for non-kubernetes components. Currently only cpu and memory are supported. See http://kubernetes.io/docs/user-guide/compute-resources for more detail. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may not be possible to increase the reserved resources, because this requires resizing cgroups. Always look for a NodeAllocatableEnforced event after updating this field to ensure that the update was successful. Default: nil", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "kubeReserved": { - SchemaProps: spec.SchemaProps{ - Description: "A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for kubernetes system components. Currently cpu, memory and local storage for root file system are supported. See http://kubernetes.io/docs/user-guide/compute-resources for more detail. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may not be possible to increase the reserved resources, because this requires resizing cgroups. Always look for a NodeAllocatableEnforced event after updating this field to ensure that the update was successful. Default: nil", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "reservedSystemCPUs": { - SchemaProps: spec.SchemaProps{ - Description: "This ReservedSystemCPUs option specifies the cpu list reserved for the host level system threads and kubernetes related threads. This provide a \"static\" CPU list rather than the \"dynamic\" list by system-reserved and kube-reserved. This option overwrites CPUs provided by system-reserved and kube-reserved.", - Type: []string{"string"}, - Format: "", - }, - }, - "showHiddenMetricsForVersion": { - SchemaProps: spec.SchemaProps{ - Description: "The previous version for which you want to show hidden metrics. Only the previous minor version is meaningful, other values will not be allowed. The format is ., e.g.: '1.16'. The purpose of this format is make sure you have the opportunity to notice if the next release hides additional metrics, rather than being surprised when they are permanently removed in the release after that. Default: \"\"", - Type: []string{"string"}, - Format: "", - }, - }, - "systemReservedCgroup": { - SchemaProps: spec.SchemaProps{ - Description: "This flag helps kubelet identify absolute name of top level cgroup used to enforce `SystemReserved` compute resource reservation for OS system daemons. Refer to [Node Allocatable](https://git.k8s.io/community/contributors/design-proposals/node/node-allocatable.md) doc for more information. Dynamic Kubelet Config (beta): This field should not be updated without a full node reboot. It is safest to keep this value the same as the local config. Default: \"\"", - Type: []string{"string"}, - Format: "", - }, - }, - "kubeReservedCgroup": { - SchemaProps: spec.SchemaProps{ - Description: "This flag helps kubelet identify absolute name of top level cgroup used to enforce `KubeReserved` compute resource reservation for Kubernetes node system daemons. Refer to [Node Allocatable](https://git.k8s.io/community/contributors/design-proposals/node/node-allocatable.md) doc for more information. Dynamic Kubelet Config (beta): This field should not be updated without a full node reboot. It is safest to keep this value the same as the local config. Default: \"\"", - Type: []string{"string"}, - Format: "", - }, - }, - "enforceNodeAllocatable": { - SchemaProps: spec.SchemaProps{ - Description: "This flag specifies the various Node Allocatable enforcements that Kubelet needs to perform. This flag accepts a list of options. Acceptable options are `none`, `pods`, `system-reserved` & `kube-reserved`. If `none` is specified, no other options may be specified. Refer to [Node Allocatable](https://git.k8s.io/community/contributors/design-proposals/node/node-allocatable.md) doc for more information. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that removing enforcements may reduce the stability of the node. Alternatively, adding enforcements may reduce the stability of components which were using more than the reserved amount of resources; for example, enforcing kube-reserved may cause Kubelets to OOM if it uses more than the reserved resources, and enforcing system-reserved may cause system daemons to OOM if they use more than the reserved resources. Default: [\"pods\"]", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "allowedUnsafeSysctls": { - SchemaProps: spec.SchemaProps{ - Description: "A comma separated whitelist of unsafe sysctls or sysctl patterns (ending in *). Unsafe sysctl groups are kernel.shm*, kernel.msg*, kernel.sem, fs.mqueue.*, and net.*. These sysctls are namespaced but not allowed by default. For example: \"kernel.msg*,net.ipv4.route.min_pmtu\" Default: []", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "volumePluginDir": { - SchemaProps: spec.SchemaProps{ - Description: "volumePluginDir is the full path of the directory in which to search for additional third party volume plugins. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that changing the volumePluginDir may disrupt workloads relying on third party volume plugins. Default: \"/usr/libexec/kubernetes/kubelet-plugins/volume/exec/\"", - Type: []string{"string"}, - Format: "", - }, - }, - "providerID": { - SchemaProps: spec.SchemaProps{ - Description: "providerID, if set, sets the unique id of the instance that an external provider (i.e. cloudprovider) can use to identify a specific node. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may impact the ability of the Kubelet to interact with cloud providers. Default: \"\"", - Type: []string{"string"}, - Format: "", - }, - }, - "kernelMemcgNotification": { - SchemaProps: spec.SchemaProps{ - Description: "kernelMemcgNotification, if set, the kubelet will integrate with the kernel memcg notification to determine if memory eviction thresholds are crossed rather than polling. Dynamic Kubelet Config (beta): If dynamically updating this field, consider that it may impact the way Kubelet interacts with the kernel. Default: false", - Type: []string{"boolean"}, - Format: "", - }, - }, - "logging": { - SchemaProps: spec.SchemaProps{ - Description: "Logging specifies the options of logging. Refer [Logs Options](https://github.com/kubernetes/component-base/blob/master/logs/options.go) for more information. Defaults:\n Format: text", - Ref: ref("k8s.io/component-base/config/v1alpha1.LoggingConfiguration"), - }, - }, - "enableSystemLogHandler": { - SchemaProps: spec.SchemaProps{ - Description: "enableSystemLogHandler enables system logs via web interface host:port/logs/ Default: true", - Type: []string{"boolean"}, - Format: "", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration", "k8s.io/component-base/config/v1alpha1.LoggingConfiguration", "k8s.io/kubelet/config/v1beta1.KubeletAuthentication", "k8s.io/kubelet/config/v1beta1.KubeletAuthorization"}, - } -} - -func schema_k8sio_kubelet_config_v1beta1_KubeletWebhookAuthentication(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "enabled": { - SchemaProps: spec.SchemaProps{ - Description: "enabled allows bearer token authentication backed by the tokenreviews.authentication.k8s.io API", - Type: []string{"boolean"}, - Format: "", - }, - }, - "cacheTTL": { - SchemaProps: spec.SchemaProps{ - Description: "cacheTTL enables caching of authentication results", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration"}, - } -} - -func schema_k8sio_kubelet_config_v1beta1_KubeletWebhookAuthorization(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "cacheAuthorizedTTL": { - SchemaProps: spec.SchemaProps{ - Description: "cacheAuthorizedTTL is the duration to cache 'authorized' responses from the webhook authorizer.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "cacheUnauthorizedTTL": { - SchemaProps: spec.SchemaProps{ - Description: "cacheUnauthorizedTTL is the duration to cache 'unauthorized' responses from the webhook authorizer.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration"}, - } -} - -func schema_k8sio_kubelet_config_v1beta1_KubeletX509Authentication(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "clientCAFile": { - SchemaProps: spec.SchemaProps{ - Description: "clientCAFile is the path to a PEM-encoded certificate bundle. If set, any request presenting a client certificate signed by one of the authorities in the bundle is authenticated with a username corresponding to the CommonName, and groups corresponding to the Organization in the client certificate.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_k8sio_kubelet_config_v1beta1_SerializedNodeConfigSource(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SerializedNodeConfigSource allows us to serialize v1.NodeConfigSource. This type is used internally by the Kubelet for tracking checkpointed dynamic configs. It exists in the kubeletconfig API group because it is classified as a versioned input to the Kubelet.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "source": { - SchemaProps: spec.SchemaProps{ - Description: "Source is the source that we are serializing", - Ref: ref("k8s.io/api/core/v1.NodeConfigSource"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.NodeConfigSource"}, - } -} - -func schema_app_apis_config_v1alpha1_CloudControllerManagerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "Generic": { - SchemaProps: spec.SchemaProps{ - Description: "Generic holds configuration for a generic controller-manager", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.GenericControllerManagerConfiguration"), - }, - }, - "KubeCloudShared": { - SchemaProps: spec.SchemaProps{ - Description: "KubeCloudSharedConfiguration holds configuration for shared related features both in cloud controller manager and kube-controller manager.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.KubeCloudSharedConfiguration"), - }, - }, - "ServiceController": { - SchemaProps: spec.SchemaProps{ - Description: "ServiceControllerConfiguration holds configuration for ServiceController related features.", - Ref: ref("k8s.io/kube-controller-manager/config/v1alpha1.ServiceControllerConfiguration"), - }, - }, - "NodeStatusUpdateFrequency": { - SchemaProps: spec.SchemaProps{ - Description: "NodeStatusUpdateFrequency is the frequency at which the controller updates nodes' status", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - }, - Required: []string{"Generic", "KubeCloudShared", "ServiceController", "NodeStatusUpdateFrequency"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration", "k8s.io/kube-controller-manager/config/v1alpha1.GenericControllerManagerConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.KubeCloudSharedConfiguration", "k8s.io/kube-controller-manager/config/v1alpha1.ServiceControllerConfiguration"}, - } -} - -func schema_pkg_apis_abac_v1beta1_Policy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Policy contains a single ABAC policy rule", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "Spec describes the policy rule", - Ref: ref("k8s.io/kubernetes/pkg/apis/abac/v1beta1.PolicySpec"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "k8s.io/kubernetes/pkg/apis/abac/v1beta1.PolicySpec"}, - } -} - -func schema_pkg_apis_abac_v1beta1_PolicySpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PolicySpec contains the attributes for a policy rule", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "user": { - SchemaProps: spec.SchemaProps{ - Description: "User is the username this rule applies to. Either user or group is required to match the request. \"*\" matches all users.", - Type: []string{"string"}, - Format: "", - }, - }, - "group": { - SchemaProps: spec.SchemaProps{ - Description: "Group is the group this rule applies to. Either user or group is required to match the request. \"*\" matches all groups.", - Type: []string{"string"}, - Format: "", - }, - }, - "readonly": { - SchemaProps: spec.SchemaProps{ - Description: "Readonly matches readonly requests when true, and all requests when false", - Type: []string{"boolean"}, - Format: "", - }, - }, - "apiGroup": { - SchemaProps: spec.SchemaProps{ - Description: "APIGroup is the name of an API group. APIGroup, Resource, and Namespace are required to match resource requests. \"*\" matches all API groups", - Type: []string{"string"}, - Format: "", - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "Resource is the name of a resource. APIGroup, Resource, and Namespace are required to match resource requests. \"*\" matches all resources", - Type: []string{"string"}, - Format: "", - }, - }, - "namespace": { - SchemaProps: spec.SchemaProps{ - Description: "Namespace is the name of a namespace. APIGroup, Resource, and Namespace are required to match resource requests. \"*\" matches all namespaces (including unnamespaced requests)", - Type: []string{"string"}, - Format: "", - }, - }, - "nonResourcePath": { - SchemaProps: spec.SchemaProps{ - Description: "NonResourcePath matches non-resource request paths. \"*\" matches all paths \"/foo/*\" matches all subpaths of foo", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_custom_metrics_v1beta1_MetricListOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MetricListOptions is used to select metrics by their label selectors", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "labelSelector": { - SchemaProps: spec.SchemaProps{ - Description: "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - Type: []string{"string"}, - Format: "", - }, - }, - "metricLabelSelector": { - SchemaProps: spec.SchemaProps{ - Description: "A selector to restrict the list of returned metrics by their labels", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_custom_metrics_v1beta1_MetricValue(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MetricValue is a metric value for some object", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "describedObject": { - SchemaProps: spec.SchemaProps{ - Description: "a reference to the described object", - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - "metricName": { - SchemaProps: spec.SchemaProps{ - Description: "the name of the metric", - Type: []string{"string"}, - Format: "", - }, - }, - "timestamp": { - SchemaProps: spec.SchemaProps{ - Description: "indicates the time at which the metrics were produced", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "window": { - SchemaProps: spec.SchemaProps{ - Description: "indicates the window ([Timestamp-Window, Timestamp]) from which these metrics were calculated, when returning rate metrics calculated from cumulative metrics (or zero for non-calculated instantaneous metrics).", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Description: "the value of the metric for this", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "selector represents the label selector that could be used to select this metric, and will generally just be the selector passed in to the query used to fetch this metric. When left blank, only the metric's Name will be used to gather metrics.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - }, - Required: []string{"describedObject", "metricName", "timestamp", "value"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_pkg_apis_custom_metrics_v1beta1_MetricValueList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MetricValueList is a list of values for a given metric for some set of objects", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "the value of the metric across the described objects", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/metrics/pkg/apis/custom_metrics/v1beta1.MetricValue"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/metrics/pkg/apis/custom_metrics/v1beta1.MetricValue"}, - } -} - -func schema_pkg_apis_custom_metrics_v1beta2_MetricIdentifier(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MetricIdentifier identifies a metric by name and, optionally, selector", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is the name of the given metric", - Type: []string{"string"}, - Format: "", - }, - }, - "selector": { - SchemaProps: spec.SchemaProps{ - Description: "selector represents the label selector that could be used to select this metric, and will generally just be the selector passed in to the query used to fetch this metric. When left blank, only the metric's Name will be used to gather metrics.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), - }, - }, - }, - Required: []string{"name"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, - } -} - -func schema_pkg_apis_custom_metrics_v1beta2_MetricListOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MetricListOptions is used to select metrics by their label selectors", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "labelSelector": { - SchemaProps: spec.SchemaProps{ - Description: "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - Type: []string{"string"}, - Format: "", - }, - }, - "metricLabelSelector": { - SchemaProps: spec.SchemaProps{ - Description: "A selector to restrict the list of returned metrics by their labels", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_pkg_apis_custom_metrics_v1beta2_MetricValue(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MetricValue is the metric value for some object", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "describedObject": { - SchemaProps: spec.SchemaProps{ - Description: "a reference to the described object", - Ref: ref("k8s.io/api/core/v1.ObjectReference"), - }, - }, - "metric": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/metrics/pkg/apis/custom_metrics/v1beta2.MetricIdentifier"), - }, - }, - "timestamp": { - SchemaProps: spec.SchemaProps{ - Description: "indicates the time at which the metrics were produced", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "windowSeconds": { - SchemaProps: spec.SchemaProps{ - Description: "indicates the window ([Timestamp-Window, Timestamp]) from which these metrics were calculated, when returning rate metrics calculated from cumulative metrics (or zero for non-calculated instantaneous metrics).", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Description: "the value of the metric for this", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - Required: []string{"describedObject", "metric", "timestamp", "value"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.Time", "k8s.io/metrics/pkg/apis/custom_metrics/v1beta2.MetricIdentifier"}, - } -} - -func schema_pkg_apis_custom_metrics_v1beta2_MetricValueList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "MetricValueList is a list of values for a given metric for some set of objects", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "the value of the metric across the described objects", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/metrics/pkg/apis/custom_metrics/v1beta2.MetricValue"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/metrics/pkg/apis/custom_metrics/v1beta2.MetricValue"}, - } -} - -func schema_pkg_apis_external_metrics_v1beta1_ExternalMetricValue(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExternalMetricValue is a metric value for external metric A single metric value is identified by metric name and a set of string labels. For one metric there can be multiple values with different sets of labels.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metricName": { - SchemaProps: spec.SchemaProps{ - Description: "the name of the metric", - Type: []string{"string"}, - Format: "", - }, - }, - "metricLabels": { - SchemaProps: spec.SchemaProps{ - Description: "a set of labels that identify a single time series for the metric", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "timestamp": { - SchemaProps: spec.SchemaProps{ - Description: "indicates the time at which the metrics were produced", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "window": { - SchemaProps: spec.SchemaProps{ - Description: "indicates the window ([Timestamp-Window, Timestamp]) from which these metrics were calculated, when returning rate metrics calculated from cumulative metrics (or zero for non-calculated instantaneous metrics).", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Description: "the value of the metric", - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - Required: []string{"metricName", "metricLabels", "timestamp", "value"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_pkg_apis_external_metrics_v1beta1_ExternalMetricValueList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ExternalMetricValueList is a list of values for a given metric for some set labels", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "value of the metric matching a given set of labels", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/metrics/pkg/apis/external_metrics/v1beta1.ExternalMetricValue"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/metrics/pkg/apis/external_metrics/v1beta1.ExternalMetricValue"}, - } -} - -func schema_pkg_apis_metrics_v1alpha1_ContainerMetrics(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ContainerMetrics sets resource usage metrics of a container.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Container name corresponding to the one from pod.spec.containers.", - Type: []string{"string"}, - Format: "", - }, - }, - "usage": { - SchemaProps: spec.SchemaProps{ - Description: "The memory usage is the memory working set.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - }, - Required: []string{"name", "usage"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_pkg_apis_metrics_v1alpha1_NodeMetrics(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeMetrics sets resource usage metrics of a node.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "timestamp": { - SchemaProps: spec.SchemaProps{ - Description: "The following fields define time interval from which metrics were collected from the interval [Timestamp-Window, Timestamp].", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "window": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "usage": { - SchemaProps: spec.SchemaProps{ - Description: "The memory usage is the memory working set.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - }, - Required: []string{"timestamp", "window", "usage"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.Duration", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_pkg_apis_metrics_v1alpha1_NodeMetricsList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeMetricsList is a list of NodeMetrics.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of node metrics.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/metrics/pkg/apis/metrics/v1alpha1.NodeMetrics"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/metrics/pkg/apis/metrics/v1alpha1.NodeMetrics"}, - } -} - -func schema_pkg_apis_metrics_v1alpha1_PodMetrics(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodMetrics sets resource usage metrics of a pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "timestamp": { - SchemaProps: spec.SchemaProps{ - Description: "The following fields define time interval from which metrics were collected from the interval [Timestamp-Window, Timestamp].", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "window": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "containers": { - SchemaProps: spec.SchemaProps{ - Description: "Metrics for all containers are collected within the same time window.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/metrics/pkg/apis/metrics/v1alpha1.ContainerMetrics"), - }, - }, - }, - }, - }, - }, - Required: []string{"timestamp", "window", "containers"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.Time", "k8s.io/metrics/pkg/apis/metrics/v1alpha1.ContainerMetrics"}, - } -} - -func schema_pkg_apis_metrics_v1alpha1_PodMetricsList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodMetricsList is a list of PodMetrics.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of pod metrics.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/metrics/pkg/apis/metrics/v1alpha1.PodMetrics"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/metrics/pkg/apis/metrics/v1alpha1.PodMetrics"}, - } -} - -func schema_pkg_apis_metrics_v1beta1_ContainerMetrics(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ContainerMetrics sets resource usage metrics of a container.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "Container name corresponding to the one from pod.spec.containers.", - Type: []string{"string"}, - Format: "", - }, - }, - "usage": { - SchemaProps: spec.SchemaProps{ - Description: "The memory usage is the memory working set.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - }, - Required: []string{"name", "usage"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity"}, - } -} - -func schema_pkg_apis_metrics_v1beta1_NodeMetrics(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeMetrics sets resource usage metrics of a node.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "timestamp": { - SchemaProps: spec.SchemaProps{ - Description: "The following fields define time interval from which metrics were collected from the interval [Timestamp-Window, Timestamp].", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "window": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "usage": { - SchemaProps: spec.SchemaProps{ - Description: "The memory usage is the memory working set.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), - }, - }, - }, - }, - }, - }, - Required: []string{"timestamp", "window", "usage"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/api/resource.Quantity", "k8s.io/apimachinery/pkg/apis/meta/v1.Duration", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_pkg_apis_metrics_v1beta1_NodeMetricsList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NodeMetricsList is a list of NodeMetrics.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of node metrics.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/metrics/pkg/apis/metrics/v1beta1.NodeMetrics"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/metrics/pkg/apis/metrics/v1beta1.NodeMetrics"}, - } -} - -func schema_pkg_apis_metrics_v1beta1_PodMetrics(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodMetrics sets resource usage metrics of a pod.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "timestamp": { - SchemaProps: spec.SchemaProps{ - Description: "The following fields define time interval from which metrics were collected from the interval [Timestamp-Window, Timestamp].", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "window": { - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"), - }, - }, - "containers": { - SchemaProps: spec.SchemaProps{ - Description: "Metrics for all containers are collected within the same time window.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/metrics/pkg/apis/metrics/v1beta1.ContainerMetrics"), - }, - }, - }, - }, - }, - }, - Required: []string{"timestamp", "window", "containers"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.Time", "k8s.io/metrics/pkg/apis/metrics/v1beta1.ContainerMetrics"}, - } -} - -func schema_pkg_apis_metrics_v1beta1_PodMetricsList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodMetricsList is a list of PodMetrics.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "List of pod metrics.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/metrics/pkg/apis/metrics/v1beta1.PodMetrics"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/metrics/pkg/apis/metrics/v1beta1.PodMetrics"}, - } -} diff --git a/pkg/kubeapiserver/admission/config.go b/pkg/kubeapiserver/admission/config.go index 24c934bbb4dfb..d79cfaeb26be4 100644 --- a/pkg/kubeapiserver/admission/config.go +++ b/pkg/kubeapiserver/admission/config.go @@ -66,7 +66,7 @@ func (c *Config) New(proxyTransport *http.Transport, egressSelector *egressselec discoveryRESTMapper := restmapper.NewDeferredDiscoveryRESTMapper(discoveryClient) kubePluginInitializer := NewPluginInitializer( cloudConfig, - NewAdmissionRESTMapper(discoveryRESTMapper), + discoveryRESTMapper, quotainstall.NewQuotaConfigurationForAdmission(), ) diff --git a/pkg/kubeapiserver/admission/patch_restmapper.go b/pkg/kubeapiserver/admission/patch_restmapper.go deleted file mode 100644 index 7f465c5195390..0000000000000 --- a/pkg/kubeapiserver/admission/patch_restmapper.go +++ /dev/null @@ -1,108 +0,0 @@ -package admission - -import ( - "fmt" - - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -// defaultRESTMappings contains enough RESTMappings to have enough of the kube-controller-manager succeed when running -// against a kube-apiserver that cannot reach aggregated APIs to do a full mapping. This happens when the OwnerReferencesPermissionEnforcement -// admission plugin runs to confirm permissions. Don't add things just because you don't want to fail. These are here so that -// we can start enough back up to get the rest of the system working correctly. -var defaultRESTMappings = []meta.RESTMapping{ - { - GroupVersionKind: schema.GroupVersionKind{Group: "", Version: "v1", Kind: "ConfigMap"}, - Scope: meta.RESTScopeNamespace, - Resource: schema.GroupVersionResource{Group: "", Version: "v1", Resource: "configmaps"}, - }, - { - GroupVersionKind: schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Pod"}, - Scope: meta.RESTScopeNamespace, - Resource: schema.GroupVersionResource{Group: "", Version: "v1", Resource: "pods"}, - }, - { - GroupVersionKind: schema.GroupVersionKind{Group: "", Version: "v1", Kind: "ReplicationController"}, - Scope: meta.RESTScopeNamespace, - Resource: schema.GroupVersionResource{Group: "", Version: "v1", Resource: "replicationcontrollers"}, - }, - { - GroupVersionKind: schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Secret"}, - Scope: meta.RESTScopeNamespace, - Resource: schema.GroupVersionResource{Group: "", Version: "v1", Resource: "secrets"}, - }, - { - GroupVersionKind: schema.GroupVersionKind{Group: "", Version: "v1", Kind: "ServiceAccount"}, - Scope: meta.RESTScopeNamespace, - Resource: schema.GroupVersionResource{Group: "", Version: "v1", Resource: "serviceaccounts"}, - }, - { - GroupVersionKind: schema.GroupVersionKind{Group: "apps", Version: "v1", Kind: "ControllerRevision"}, - Scope: meta.RESTScopeNamespace, - Resource: schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "controllerrevisions"}, - }, - { - GroupVersionKind: schema.GroupVersionKind{Group: "apps", Version: "v1", Kind: "DaemonSet"}, - Scope: meta.RESTScopeNamespace, - Resource: schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "daemonsets"}, - }, - { - GroupVersionKind: schema.GroupVersionKind{Group: "apps", Version: "v1", Kind: "Deployment"}, - Scope: meta.RESTScopeNamespace, - Resource: schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "deployments"}, - }, - { - GroupVersionKind: schema.GroupVersionKind{Group: "apps", Version: "v1", Kind: "ReplicaSet"}, - Scope: meta.RESTScopeNamespace, - Resource: schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "replicasets"}, - }, - { - GroupVersionKind: schema.GroupVersionKind{Group: "apps", Version: "v1", Kind: "StatefulSet"}, - Scope: meta.RESTScopeNamespace, - Resource: schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "statefulsets"}, - }, -} - -func NewAdmissionRESTMapper(delegate meta.RESTMapper) meta.RESTMapper { - ret := HardCodedFirstRESTMapper{ - Mapping: map[schema.GroupVersionKind]meta.RESTMapping{}, - RESTMapper: delegate, - } - for i := range defaultRESTMappings { - curr := defaultRESTMappings[i] - ret.Mapping[curr.GroupVersionKind] = curr - } - return ret -} - -// HardCodedFirstRESTMapper is a RESTMapper that will look for hardcoded mappings first, then delegate. -// This is done in service to `OwnerReferencesPermissionEnforcement` -type HardCodedFirstRESTMapper struct { - Mapping map[schema.GroupVersionKind]meta.RESTMapping - meta.RESTMapper -} - -var _ meta.RESTMapper = HardCodedFirstRESTMapper{} - -func (m HardCodedFirstRESTMapper) String() string { - return fmt.Sprintf("HardCodedRESTMapper{\n\t%v\n%v\n}", m.Mapping, m.RESTMapper) -} - -// RESTMapping is the only function called today. The firsthit restmapper ought to make this work right. OwnerReferencesPermissionEnforcement -// only ever calls with one version. -func (m HardCodedFirstRESTMapper) RESTMappings(gk schema.GroupKind, versions ...string) ([]*meta.RESTMapping, error) { - // not exactly one version, delegate - if len(versions) != 1 { - return m.RESTMapper.RESTMappings(gk, versions...) - } - gvk := gk.WithVersion(versions[0]) - - single, ok := m.Mapping[gvk] - // not handled, delegate - if !ok { - return m.RESTMapper.RESTMappings(gk, versions...) - } - - return []*meta.RESTMapping{&single}, nil -} diff --git a/pkg/kubeapiserver/authenticator/config.go b/pkg/kubeapiserver/authenticator/config.go index 951c5d621bc0b..4e1eee4b5ef34 100644 --- a/pkg/kubeapiserver/authenticator/config.go +++ b/pkg/kubeapiserver/authenticator/config.go @@ -170,13 +170,6 @@ func (config Config) New() (authenticator.Request, *spec.SecurityDefinitions, er } tokenAuthenticators = append(tokenAuthenticators, webhookTokenAuth) - } else { - // openshift gets injected here as a separate token authenticator because we also add a special group to our oauth authorized - // tokens that allows us to recognize human users differently than machine users. The openAPI is always correct because we always - // configuration service account tokens, so we just have to create and add another authenticator. - // TODO make this a webhook authenticator and remove this patch. - // TODO - remove in 4.7, kept here not to disrupt authentication during 4.5->4.6 upgrade - tokenAuthenticators = AddOAuthServerAuthenticatorIfNeeded(tokenAuthenticators, config.APIAudiences) } if len(tokenAuthenticators) > 0 { diff --git a/pkg/kubeapiserver/authenticator/patch_authenticator.go b/pkg/kubeapiserver/authenticator/patch_authenticator.go deleted file mode 100644 index ea3b984723f57..0000000000000 --- a/pkg/kubeapiserver/authenticator/patch_authenticator.go +++ /dev/null @@ -1,90 +0,0 @@ -package authenticator - -import ( - "time" - - oauthclient "github.com/openshift/client-go/oauth/clientset/versioned" - oauthinformer "github.com/openshift/client-go/oauth/informers/externalversions" - userclient "github.com/openshift/client-go/user/clientset/versioned" - userinformer "github.com/openshift/client-go/user/informers/externalversions" - bootstrap "github.com/openshift/library-go/pkg/authentication/bootstrapauthenticator" - - "k8s.io/apiserver/pkg/authentication/authenticator" - "k8s.io/apiserver/pkg/authentication/group" - genericapiserver "k8s.io/apiserver/pkg/server" - "k8s.io/client-go/kubernetes" - "k8s.io/client-go/tools/cache" - "k8s.io/kubernetes/openshift-kube-apiserver/admission/authorization/restrictusers/usercache" - oauthvalidation "k8s.io/kubernetes/openshift-kube-apiserver/admission/customresourcevalidation/oauth" - "k8s.io/kubernetes/openshift-kube-apiserver/authentication/oauth" - "k8s.io/kubernetes/openshift-kube-apiserver/enablement" -) - -const authenticatedOAuthGroup = "system:authenticated:oauth" - -// TODO find a single place to create and start informers. During the 1.7 rebase this will come more naturally in a config object, -// before then we should try to eliminate our direct to storage access. It's making us do weird things. -const defaultInformerResyncPeriod = 10 * time.Minute - -func AddOAuthServerAuthenticatorIfNeeded(tokenAuthenticators []authenticator.Token, implicitAudiences authenticator.Audiences) []authenticator.Token { - if !enablement.IsOpenShift() { - return tokenAuthenticators - } - - kubeClient, err := kubernetes.NewForConfig(enablement.LoopbackClientConfig()) - if err != nil { - panic(err) - } - bootstrapUserDataGetter := bootstrap.NewBootstrapUserDataGetter(kubeClient.CoreV1(), kubeClient.CoreV1()) - - oauthClient, err := oauthclient.NewForConfig(enablement.LoopbackClientConfig()) - if err != nil { - panic(err) - } - userClient, err := userclient.NewForConfig(enablement.LoopbackClientConfig()) - if err != nil { - panic(err) - } - - oauthInformer := oauthinformer.NewSharedInformerFactory(oauthClient, defaultInformerResyncPeriod) - userInformer := userinformer.NewSharedInformerFactory(userClient, defaultInformerResyncPeriod) - if err := userInformer.User().V1().Groups().Informer().AddIndexers(cache.Indexers{ - usercache.ByUserIndexName: usercache.ByUserIndexKeys, - }); err != nil { - panic(err) - } - - // Tokens are valid for their lifetime unless this value is overridden. - tokenTimeout := int32(0) - if enablement.OpenshiftConfig().OAuthConfig != nil { - if inactivityTimeout := enablement.OpenshiftConfig().OAuthConfig.TokenConfig.AccessTokenInactivityTimeout; inactivityTimeout != nil { - tokenTimeout = int32(inactivityTimeout.Seconds()) - } - } - - timeoutValidator := oauth.NewTimeoutValidator(oauthClient.OauthV1().OAuthAccessTokens(), oauthInformer.Oauth().V1().OAuthClients().Lister(), tokenTimeout, oauthvalidation.MinimumInactivityTimeoutSeconds) - // add our oauth token validator - validators := []oauth.OAuthTokenValidator{oauth.NewExpirationValidator(), oauth.NewUIDValidator(), timeoutValidator} - enablement.AddPostStartHookOrDie("openshift.io-TokenTimeoutUpdater", func(context genericapiserver.PostStartHookContext) error { - go timeoutValidator.Run(context.StopCh) - return nil - }) - - enablement.AddPostStartHookOrDie("openshift.io-StartOAuthInformers", func(context genericapiserver.PostStartHookContext) error { - go oauthInformer.Start(context.StopCh) - go userInformer.Start(context.StopCh) - return nil - }) - groupMapper := usercache.NewGroupCache(userInformer.User().V1().Groups()) - oauthTokenAuthenticator := oauth.NewTokenAuthenticator(oauthClient.OauthV1().OAuthAccessTokens(), userClient.UserV1().Users(), groupMapper, implicitAudiences, validators...) - tokenAuthenticators = append(tokenAuthenticators, - // if you have an OAuth bearer token, you're a human (usually) - group.NewTokenGroupAdder(oauthTokenAuthenticator, []string{authenticatedOAuthGroup})) - - // add the bootstrap user token authenticator - tokenAuthenticators = append(tokenAuthenticators, - // bootstrap oauth user that can do anything, backed by a secret - oauth.NewBootstrapAuthenticator(oauthClient.OauthV1().OAuthAccessTokens(), bootstrapUserDataGetter, implicitAudiences, validators...)) - - return tokenAuthenticators -} diff --git a/pkg/kubeapiserver/authorizer/config.go b/pkg/kubeapiserver/authorizer/config.go index 79383b5e0f722..0a1b1ca85c2e6 100644 --- a/pkg/kubeapiserver/authorizer/config.go +++ b/pkg/kubeapiserver/authorizer/config.go @@ -20,10 +20,6 @@ import ( "fmt" "time" - "k8s.io/apiserver/pkg/authentication/user" - "k8s.io/kubernetes/openshift-kube-apiserver/authorization/browsersafe" - "k8s.io/kubernetes/openshift-kube-apiserver/authorization/scopeauthorizer" - utilnet "k8s.io/apimachinery/pkg/util/net" "k8s.io/apiserver/pkg/authorization/authorizer" "k8s.io/apiserver/pkg/authorization/authorizerfactory" @@ -125,16 +121,8 @@ func (config Config) New() (authorizer.Authorizer, authorizer.RuleResolver, erro &rbac.ClusterRoleGetter{Lister: config.VersionedInformerFactory.Rbac().V1().ClusterRoles().Lister()}, &rbac.ClusterRoleBindingLister{Lister: config.VersionedInformerFactory.Rbac().V1().ClusterRoleBindings().Lister()}, ) - // Wrap with an authorizer that detects unsafe requests and modifies verbs/resources appropriately so policy can address them separately - authorizers = append(authorizers, browsersafe.NewBrowserSafeAuthorizer(rbacAuthorizer, user.AllAuthenticated)) + authorizers = append(authorizers, rbacAuthorizer) ruleResolvers = append(ruleResolvers, rbacAuthorizer) - case modes.ModeScope: - // Wrap with an authorizer that detects unsafe requests and modifies verbs/resources appropriately so policy can address them separately - scopeLimitedAuthorizer := scopeauthorizer.NewAuthorizer(config.VersionedInformerFactory.Rbac().V1().ClusterRoles().Lister()) - authorizers = append(authorizers, browsersafe.NewBrowserSafeAuthorizer(scopeLimitedAuthorizer, user.AllAuthenticated)) - case modes.ModeSystemMasters: - // no browsersafeauthorizer here becase that rewrites the resources. This authorizer matches no matter which resource matches. - authorizers = append(authorizers, authorizerfactory.NewPrivilegedGroups(user.SystemPrivilegedGroup)) default: return nil, nil, fmt.Errorf("unknown authorization mode %s specified", authorizationMode) } diff --git a/pkg/kubeapiserver/authorizer/modes/patch.go b/pkg/kubeapiserver/authorizer/modes/patch.go deleted file mode 100644 index bc892601ebe6f..0000000000000 --- a/pkg/kubeapiserver/authorizer/modes/patch.go +++ /dev/null @@ -1,8 +0,0 @@ -package modes - -var ModeScope = "Scope" -var ModeSystemMasters = "SystemMasters" - -func init() { - AuthorizationModeChoices = append(AuthorizationModeChoices, ModeScope, ModeSystemMasters) -} diff --git a/pkg/kubelet/BUILD b/pkg/kubelet/BUILD index 928a9707902bc..ff593b0e35be8 100644 --- a/pkg/kubelet/BUILD +++ b/pkg/kubelet/BUILD @@ -23,10 +23,6 @@ go_library( "kubelet_node_status_windows.go", "kubelet_pods.go", "kubelet_resources.go", - "kubelet_server_journal.go", - "kubelet_server_journal_linux.go", - "kubelet_server_journal_others.go", - "kubelet_server_journal_windows.go", "kubelet_volumes.go", "pod_container_deletor.go", "pod_workers.go", @@ -48,6 +44,7 @@ go_library( "//pkg/apis/core/v1/helper/qos:go_default_library", "//pkg/features:go_default_library", "//pkg/fieldpath:go_default_library", + "//pkg/kubelet/apis:go_default_library", "//pkg/kubelet/apis/config:go_default_library", "//pkg/kubelet/apis/podresources:go_default_library", "//pkg/kubelet/cadvisor:go_default_library", @@ -177,7 +174,6 @@ go_test( "kubelet_pods_test.go", "kubelet_pods_windows_test.go", "kubelet_resources_test.go", - "kubelet_server_journal_test.go", "kubelet_test.go", "kubelet_volumes_linux_test.go", "kubelet_volumes_test.go", @@ -191,6 +187,7 @@ go_test( deps = [ "//pkg/apis/core/install:go_default_library", "//pkg/features:go_default_library", + "//pkg/kubelet/apis:go_default_library", "//pkg/kubelet/cadvisor/testing:go_default_library", "//pkg/kubelet/cm:go_default_library", "//pkg/kubelet/config:go_default_library", diff --git a/pkg/kubelet/apis/podresources/v1alpha1/api.pb.go b/pkg/kubelet/apis/podresources/v1alpha1/api.pb.go index e4ebb48397782..9a9c34fbfc999 100644 --- a/pkg/kubelet/apis/podresources/v1alpha1/api.pb.go +++ b/pkg/kubelet/apis/podresources/v1alpha1/api.pb.go @@ -822,10 +822,7 @@ func (m *ListPodResourcesRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -909,10 +906,7 @@ func (m *ListPodResourcesResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -1060,10 +1054,7 @@ func (m *PodResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -1179,10 +1170,7 @@ func (m *ContainerResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -1296,10 +1284,7 @@ func (m *ContainerDevices) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { diff --git a/pkg/kubelet/apis/well_known_labels.go b/pkg/kubelet/apis/well_known_labels.go index 8c0a18c5a003c..1472f69208063 100644 --- a/pkg/kubelet/apis/well_known_labels.go +++ b/pkg/kubelet/apis/well_known_labels.go @@ -45,11 +45,6 @@ var kubeletLabels = sets.NewString( LabelOS, LabelArch, - - // These are special for OpenShift: - "node-role.kubernetes.io/master", - "node-role.kubernetes.io/worker", - "node-role.kubernetes.io/etcd", ) var kubeletLabelNamespaces = sets.NewString( diff --git a/pkg/kubelet/cm/BUILD b/pkg/kubelet/cm/BUILD index 4606595f0e4e1..1707a5ccb39bc 100644 --- a/pkg/kubelet/cm/BUILD +++ b/pkg/kubelet/cm/BUILD @@ -58,7 +58,6 @@ go_library( "//pkg/apis/core/v1/helper/qos:go_default_library", "//pkg/kubelet/cadvisor:go_default_library", "//pkg/kubelet/cm/containermap:go_default_library", - "//pkg/kubelet/cm/cpumanager/topology:go_default_library", "//pkg/kubelet/cm/devicemanager:go_default_library", "//pkg/kubelet/cm/util:go_default_library", "//pkg/kubelet/events:go_default_library", @@ -120,7 +119,6 @@ go_library( "//pkg/apis/core/v1/helper/qos:go_default_library", "//pkg/kubelet/cadvisor:go_default_library", "//pkg/kubelet/cm/containermap:go_default_library", - "//pkg/kubelet/cm/cpumanager/topology:go_default_library", "//pkg/kubelet/cm/devicemanager:go_default_library", "//pkg/kubelet/cm/util:go_default_library", "//pkg/kubelet/events:go_default_library", diff --git a/pkg/kubelet/cm/container_manager_linux.go b/pkg/kubelet/cm/container_manager_linux.go index 57110ed774566..72d960879e860 100644 --- a/pkg/kubelet/cm/container_manager_linux.go +++ b/pkg/kubelet/cm/container_manager_linux.go @@ -52,7 +52,6 @@ import ( "k8s.io/kubernetes/pkg/kubelet/cadvisor" "k8s.io/kubernetes/pkg/kubelet/cm/containermap" "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager" - cputopology "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/topology" "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager" "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager" cmutil "k8s.io/kubernetes/pkg/kubelet/cm/util" @@ -238,13 +237,6 @@ func NewContainerManager(mountUtil mount.Interface, cadvisorInterface cadvisor.I if err != nil { return nil, err } - // Correct NUMA information is currently missing from cadvisor's - // MachineInfo struct, so we use the CPUManager's internal logic for - // gathering NUMANodeInfo to pass to components that care about it. - numaNodeInfo, err := cputopology.GetNUMANodeInfo() - if err != nil { - return nil, err - } capacity := cadvisor.CapacityFromMachineInfo(machineInfo) for k, v := range capacity { internalCapacity[k] = v @@ -300,7 +292,7 @@ func NewContainerManager(mountUtil mount.Interface, cadvisorInterface cadvisor.I if utilfeature.DefaultFeatureGate.Enabled(kubefeatures.TopologyManager) { cm.topologyManager, err = topologymanager.NewManager( - numaNodeInfo, + machineInfo.Topology, nodeConfig.ExperimentalTopologyManagerPolicy, ) @@ -315,7 +307,7 @@ func NewContainerManager(mountUtil mount.Interface, cadvisorInterface cadvisor.I klog.Infof("Creating device plugin manager: %t", devicePluginEnabled) if devicePluginEnabled { - cm.deviceManager, err = devicemanager.NewManagerImpl(numaNodeInfo, cm.topologyManager) + cm.deviceManager, err = devicemanager.NewManagerImpl(machineInfo.Topology, cm.topologyManager) cm.topologyManager.AddHintProvider(cm.deviceManager) } else { cm.deviceManager, err = devicemanager.NewManagerStub() @@ -330,7 +322,6 @@ func NewContainerManager(mountUtil mount.Interface, cadvisorInterface cadvisor.I nodeConfig.ExperimentalCPUManagerPolicy, nodeConfig.ExperimentalCPUManagerReconcilePeriod, machineInfo, - numaNodeInfo, nodeConfig.NodeAllocatableConfig.ReservedSystemCPUs, cm.GetNodeAllocatableReservation(), nodeConfig.KubeletRootDir, diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager.go b/pkg/kubelet/cm/cpumanager/cpu_manager.go index 6acd8ebc660c6..07ff3d9c860c9 100644 --- a/pkg/kubelet/cm/cpumanager/cpu_manager.go +++ b/pkg/kubelet/cm/cpumanager/cpu_manager.go @@ -126,7 +126,7 @@ func (s *sourcesReadyStub) AddSource(source string) {} func (s *sourcesReadyStub) AllReady() bool { return true } // NewManager creates new cpu manager based on provided policy -func NewManager(cpuPolicyName string, reconcilePeriod time.Duration, machineInfo *cadvisorapi.MachineInfo, numaNodeInfo topology.NUMANodeInfo, specificCPUs cpuset.CPUSet, nodeAllocatableReservation v1.ResourceList, stateFileDirectory string, affinity topologymanager.Store) (Manager, error) { +func NewManager(cpuPolicyName string, reconcilePeriod time.Duration, machineInfo *cadvisorapi.MachineInfo, specificCPUs cpuset.CPUSet, nodeAllocatableReservation v1.ResourceList, stateFileDirectory string, affinity topologymanager.Store) (Manager, error) { var topo *topology.CPUTopology var policy Policy @@ -137,7 +137,7 @@ func NewManager(cpuPolicyName string, reconcilePeriod time.Duration, machineInfo case PolicyStatic: var err error - topo, err = topology.Discover(machineInfo, numaNodeInfo) + topo, err = topology.Discover(machineInfo) if err != nil { return nil, err } @@ -386,6 +386,7 @@ func (m *manager) reconcileState() (success []reconciledContainer, failure []rec continue } + m.Lock() if cstatus.State.Terminated != nil { // The container is terminated but we can't call m.RemoveContainer() // here because it could remove the allocated cpuset for the container @@ -396,6 +397,7 @@ func (m *manager) reconcileState() (success []reconciledContainer, failure []rec if err == nil { klog.Warningf("[cpumanager] reconcileState: ignoring terminated container (pod: %s, container id: %s)", pod.Name, containerID) } + m.Unlock() continue } @@ -403,6 +405,7 @@ func (m *manager) reconcileState() (success []reconciledContainer, failure []rec // Idempotently add it to the containerMap incase it is missing. // This can happen after a kubelet restart, for example. m.containerMap.Add(string(pod.UID), container.Name, containerID) + m.Unlock() cset := m.state.GetCPUSetOrDefault(string(pod.UID), container.Name) if cset.IsEmpty() { diff --git a/pkg/kubelet/cm/cpumanager/cpu_manager_test.go b/pkg/kubelet/cm/cpumanager/cpu_manager_test.go index b209bddaabf77..dc0d756f07c41 100644 --- a/pkg/kubelet/cm/cpumanager/cpu_manager_test.go +++ b/pkg/kubelet/cm/cpumanager/cpu_manager_test.go @@ -629,7 +629,7 @@ func TestCPUManagerGenerate(t *testing.T) { } defer os.RemoveAll(sDir) - mgr, err := NewManager(testCase.cpuPolicyName, 5*time.Second, machineInfo, nil, cpuset.NewCPUSet(), testCase.nodeAllocatableReservation, sDir, topologymanager.NewFakeManager()) + mgr, err := NewManager(testCase.cpuPolicyName, 5*time.Second, machineInfo, cpuset.NewCPUSet(), testCase.nodeAllocatableReservation, sDir, topologymanager.NewFakeManager()) if testCase.expectedError != nil { if !strings.Contains(err.Error(), testCase.expectedError.Error()) { t.Errorf("Unexpected error message. Have: %s wants %s", err.Error(), testCase.expectedError.Error()) diff --git a/pkg/kubelet/cm/cpumanager/policy_static.go b/pkg/kubelet/cm/cpumanager/policy_static.go index ad3f876ab89e4..dd4dccbc36e64 100644 --- a/pkg/kubelet/cm/cpumanager/policy_static.go +++ b/pkg/kubelet/cm/cpumanager/policy_static.go @@ -364,24 +364,18 @@ func (p *staticPolicy) GetTopologyHints(s state.State, pod *v1.Pod, container *v func (p *staticPolicy) generateCPUTopologyHints(availableCPUs cpuset.CPUSet, reusableCPUs cpuset.CPUSet, request int) []topologymanager.TopologyHint { // Initialize minAffinitySize to include all NUMA Nodes. minAffinitySize := p.topology.CPUDetails.NUMANodes().Size() - // Initialize minSocketsOnMinAffinity to include all Sockets. - minSocketsOnMinAffinity := p.topology.CPUDetails.Sockets().Size() - // Iterate through all combinations of socket bitmask and build hints from them. + // Iterate through all combinations of numa nodes bitmask and build hints from them. hints := []topologymanager.TopologyHint{} bitmask.IterateBitMasks(p.topology.CPUDetails.NUMANodes().ToSlice(), func(mask bitmask.BitMask) { - // First, update minAffinitySize and minSocketsOnMinAffinity for the - // current request size. + // First, update minAffinitySize for the current request size. cpusInMask := p.topology.CPUDetails.CPUsInNUMANodes(mask.GetBits()...).Size() - socketsInMask := p.topology.CPUDetails.SocketsInNUMANodes(mask.GetBits()...).Size() if cpusInMask >= request && mask.Count() < minAffinitySize { minAffinitySize = mask.Count() - if socketsInMask < minSocketsOnMinAffinity { - minSocketsOnMinAffinity = socketsInMask - } } - // Then check to see if all of the reusable CPUs are part of the bitmask. + // Then check to see if we have enough CPUs available on the current + // numa node bitmask to satisfy the CPU request. numMatching := 0 for _, c := range reusableCPUs.ToSlice() { // Disregard this mask if its NUMANode isn't part of it. @@ -404,7 +398,7 @@ func (p *staticPolicy) generateCPUTopologyHints(availableCPUs cpuset.CPUSet, reu return } - // Otherwise, create a new hint from the socket bitmask and add it to the + // Otherwise, create a new hint from the numa node bitmask and add it to the // list of hints. We set all hint preferences to 'false' on the first // pass through. hints = append(hints, topologymanager.TopologyHint{ @@ -416,14 +410,10 @@ func (p *staticPolicy) generateCPUTopologyHints(availableCPUs cpuset.CPUSet, reu // Loop back through all hints and update the 'Preferred' field based on // counting the number of bits sets in the affinity mask and comparing it // to the minAffinitySize. Only those with an equal number of bits set (and - // with a minimal set of sockets) will be considered preferred. + // with a minimal set of numa nodes) will be considered preferred. for i := range hints { if hints[i].NUMANodeAffinity.Count() == minAffinitySize { - nodes := hints[i].NUMANodeAffinity.GetBits() - numSockets := p.topology.CPUDetails.SocketsInNUMANodes(nodes...).Size() - if numSockets == minSocketsOnMinAffinity { - hints[i].Preferred = true - } + hints[i].Preferred = true } } diff --git a/pkg/kubelet/cm/cpumanager/topology/BUILD b/pkg/kubelet/cm/cpumanager/topology/BUILD index a54c6ad95eeca..bd387ad1d3f82 100644 --- a/pkg/kubelet/cm/cpumanager/topology/BUILD +++ b/pkg/kubelet/cm/cpumanager/topology/BUILD @@ -33,8 +33,5 @@ go_test( name = "go_default_test", srcs = ["topology_test.go"], embed = [":go_default_library"], - deps = [ - "//pkg/kubelet/cm/cpuset:go_default_library", - "//vendor/github.com/google/cadvisor/info/v1:go_default_library", - ], + deps = ["//vendor/github.com/google/cadvisor/info/v1:go_default_library"], ) diff --git a/pkg/kubelet/cm/cpumanager/topology/topology.go b/pkg/kubelet/cm/cpumanager/topology/topology.go index cd2646afb8482..1475f758959a1 100644 --- a/pkg/kubelet/cm/cpumanager/topology/topology.go +++ b/pkg/kubelet/cm/cpumanager/topology/topology.go @@ -18,8 +18,6 @@ package topology import ( "fmt" - "io/ioutil" - "strings" cadvisorapi "github.com/google/cadvisor/info/v1" "k8s.io/klog/v2" @@ -218,7 +216,7 @@ func (d CPUDetails) CPUsInCores(ids ...int) cpuset.CPUSet { } // Discover returns CPUTopology based on cadvisor node info -func Discover(machineInfo *cadvisorapi.MachineInfo, numaNodeInfo NUMANodeInfo) (*CPUTopology, error) { +func Discover(machineInfo *cadvisorapi.MachineInfo) (*CPUTopology, error) { if machineInfo.NumCores == 0 { return nil, fmt.Errorf("could not detect number of cpus") } @@ -226,26 +224,20 @@ func Discover(machineInfo *cadvisorapi.MachineInfo, numaNodeInfo NUMANodeInfo) ( CPUDetails := CPUDetails{} numPhysicalCores := 0 - for _, socket := range machineInfo.Topology { - numPhysicalCores += len(socket.Cores) - for _, core := range socket.Cores { + for _, node := range machineInfo.Topology { + numPhysicalCores += len(node.Cores) + for _, core := range node.Cores { if coreID, err := getUniqueCoreID(core.Threads); err == nil { for _, cpu := range core.Threads { - numaNodeID := 0 - for id, cset := range numaNodeInfo { - if cset.Contains(cpu) { - numaNodeID = id - } - } CPUDetails[cpu] = CPUInfo{ CoreID: coreID, - SocketID: socket.Id, - NUMANodeID: numaNodeID, + SocketID: core.SocketID, + NUMANodeID: node.Id, } } } else { klog.Errorf("could not get unique coreID for socket: %d core %d threads: %v", - socket.Id, core.Id, core.Threads) + core.SocketID, core.Id, core.Threads) return nil, err } } @@ -253,7 +245,7 @@ func Discover(machineInfo *cadvisorapi.MachineInfo, numaNodeInfo NUMANodeInfo) ( return &CPUTopology{ NumCPUs: machineInfo.NumCores, - NumSockets: len(machineInfo.Topology), + NumSockets: machineInfo.NumSockets, NumCores: numPhysicalCores, CPUDetails: CPUDetails, }, nil @@ -280,49 +272,3 @@ func getUniqueCoreID(threads []int) (coreID int, err error) { return min, nil } - -// GetNUMANodeInfo uses sysfs to return a map of NUMANode id to the list of -// CPUs associated with that NUMANode. -// -// TODO: This is a temporary workaround until cadvisor provides this -// information directly in machineInfo. We should remove this once this -// information is available from cadvisor. -func GetNUMANodeInfo() (NUMANodeInfo, error) { - // Get the possible NUMA nodes on this machine. If reading this file - // is not possible, this is not an error. Instead, we just return a - // nil NUMANodeInfo, indicating that no NUMA information is available - // on this machine. This should implicitly be interpreted as having a - // single NUMA node with id 0 for all CPUs. - nodelist, err := ioutil.ReadFile("/sys/devices/system/node/online") - if err != nil { - return nil, nil - } - - // Parse the nodelist into a set of Node IDs - nodes, err := cpuset.Parse(strings.TrimSpace(string(nodelist))) - if err != nil { - return nil, err - } - - info := make(NUMANodeInfo) - - // For each node... - for _, node := range nodes.ToSlice() { - // Read the 'cpulist' of the NUMA node from sysfs. - path := fmt.Sprintf("/sys/devices/system/node/node%d/cpulist", node) - cpulist, err := ioutil.ReadFile(path) - if err != nil { - return nil, err - } - - // Convert the 'cpulist' into a set of CPUs. - cpus, err := cpuset.Parse(strings.TrimSpace(string(cpulist))) - if err != nil { - return nil, err - } - - info[node] = cpus - } - - return info, nil -} diff --git a/pkg/kubelet/cm/cpumanager/topology/topology_test.go b/pkg/kubelet/cm/cpumanager/topology/topology_test.go index 59be5e02861cc..01357703b3976 100644 --- a/pkg/kubelet/cm/cpumanager/topology/topology_test.go +++ b/pkg/kubelet/cm/cpumanager/topology/topology_test.go @@ -21,45 +21,40 @@ import ( "testing" cadvisorapi "github.com/google/cadvisor/info/v1" - "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" ) func Test_Discover(t *testing.T) { tests := []struct { - name string - machineInfo cadvisorapi.MachineInfo - numaNodeInfo NUMANodeInfo - want *CPUTopology - wantErr bool + name string + machineInfo cadvisorapi.MachineInfo + want *CPUTopology + wantErr bool }{ { name: "FailNumCores", machineInfo: cadvisorapi.MachineInfo{ NumCores: 0, }, - numaNodeInfo: NUMANodeInfo{}, - want: &CPUTopology{}, - wantErr: true, + want: &CPUTopology{}, + wantErr: true, }, { name: "OneSocketHT", machineInfo: cadvisorapi.MachineInfo{ - NumCores: 8, + NumCores: 8, + NumSockets: 1, Topology: []cadvisorapi.Node{ {Id: 0, Cores: []cadvisorapi.Core{ - {Id: 0, Threads: []int{0, 4}}, - {Id: 1, Threads: []int{1, 5}}, - {Id: 2, Threads: []int{2, 6}}, - {Id: 3, Threads: []int{3, 7}}, + {SocketID: 0, Id: 0, Threads: []int{0, 4}}, + {SocketID: 0, Id: 1, Threads: []int{1, 5}}, + {SocketID: 0, Id: 2, Threads: []int{2, 6}}, + {SocketID: 0, Id: 3, Threads: []int{3, 7}}, }, }, }, }, - numaNodeInfo: NUMANodeInfo{ - 0: cpuset.NewCPUSet(0, 1, 2, 3, 4, 5, 6, 7), - }, want: &CPUTopology{ NumCPUs: 8, NumSockets: 1, @@ -80,26 +75,23 @@ func Test_Discover(t *testing.T) { { name: "DualSocketNoHT", machineInfo: cadvisorapi.MachineInfo{ - NumCores: 4, + NumCores: 4, + NumSockets: 2, Topology: []cadvisorapi.Node{ {Id: 0, Cores: []cadvisorapi.Core{ - {Id: 0, Threads: []int{0}}, - {Id: 2, Threads: []int{2}}, + {SocketID: 0, Id: 0, Threads: []int{0}}, + {SocketID: 0, Id: 2, Threads: []int{2}}, }, }, {Id: 1, Cores: []cadvisorapi.Core{ - {Id: 1, Threads: []int{1}}, - {Id: 3, Threads: []int{3}}, + {SocketID: 1, Id: 1, Threads: []int{1}}, + {SocketID: 1, Id: 3, Threads: []int{3}}, }, }, }, }, - numaNodeInfo: NUMANodeInfo{ - 0: cpuset.NewCPUSet(0, 2), - 1: cpuset.NewCPUSet(1, 3), - }, want: &CPUTopology{ NumCPUs: 4, NumSockets: 2, @@ -116,28 +108,25 @@ func Test_Discover(t *testing.T) { { name: "DualSocketHT - non unique Core'ID's", machineInfo: cadvisorapi.MachineInfo{ - NumCores: 12, + NumCores: 12, + NumSockets: 2, Topology: []cadvisorapi.Node{ {Id: 0, Cores: []cadvisorapi.Core{ - {Id: 0, Threads: []int{0, 6}}, - {Id: 1, Threads: []int{1, 7}}, - {Id: 2, Threads: []int{2, 8}}, + {SocketID: 0, Id: 0, Threads: []int{0, 6}}, + {SocketID: 0, Id: 1, Threads: []int{1, 7}}, + {SocketID: 0, Id: 2, Threads: []int{2, 8}}, }, }, {Id: 1, Cores: []cadvisorapi.Core{ - {Id: 0, Threads: []int{3, 9}}, - {Id: 1, Threads: []int{4, 10}}, - {Id: 2, Threads: []int{5, 11}}, + {SocketID: 1, Id: 0, Threads: []int{3, 9}}, + {SocketID: 1, Id: 1, Threads: []int{4, 10}}, + {SocketID: 1, Id: 2, Threads: []int{5, 11}}, }, }, }, }, - numaNodeInfo: NUMANodeInfo{ - 0: cpuset.NewCPUSet(0, 6, 1, 7, 2, 8), - 1: cpuset.NewCPUSet(3, 9, 4, 10, 5, 11), - }, want: &CPUTopology{ NumCPUs: 12, NumSockets: 2, @@ -162,45 +151,45 @@ func Test_Discover(t *testing.T) { { name: "OneSocketHT fail", machineInfo: cadvisorapi.MachineInfo{ - NumCores: 8, + NumCores: 8, + NumSockets: 1, Topology: []cadvisorapi.Node{ {Id: 0, Cores: []cadvisorapi.Core{ - {Id: 0, Threads: []int{0, 4}}, - {Id: 1, Threads: []int{1, 5}}, - {Id: 2, Threads: []int{2, 2}}, // Wrong case - should fail here - {Id: 3, Threads: []int{3, 7}}, + {SocketID: 0, Id: 0, Threads: []int{0, 4}}, + {SocketID: 0, Id: 1, Threads: []int{1, 5}}, + {SocketID: 0, Id: 2, Threads: []int{2, 2}}, // Wrong case - should fail here + {SocketID: 0, Id: 3, Threads: []int{3, 7}}, }, }, }, }, - numaNodeInfo: NUMANodeInfo{}, - want: &CPUTopology{}, - wantErr: true, + want: &CPUTopology{}, + wantErr: true, }, { name: "OneSocketHT fail", machineInfo: cadvisorapi.MachineInfo{ - NumCores: 8, + NumCores: 8, + NumSockets: 1, Topology: []cadvisorapi.Node{ {Id: 0, Cores: []cadvisorapi.Core{ - {Id: 0, Threads: []int{0, 4}}, - {Id: 1, Threads: []int{1, 5}}, - {Id: 2, Threads: []int{2, 6}}, - {Id: 3, Threads: []int{}}, // Wrong case - should fail here + {SocketID: 0, Id: 0, Threads: []int{0, 4}}, + {SocketID: 0, Id: 1, Threads: []int{1, 5}}, + {SocketID: 0, Id: 2, Threads: []int{2, 6}}, + {SocketID: 0, Id: 3, Threads: []int{}}, // Wrong case - should fail here }, }, }, }, - numaNodeInfo: NUMANodeInfo{}, - want: &CPUTopology{}, - wantErr: true, + want: &CPUTopology{}, + wantErr: true, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - got, err := Discover(&tt.machineInfo, tt.numaNodeInfo) + got, err := Discover(&tt.machineInfo) if err != nil { if tt.wantErr { t.Logf("Discover() expected error = %v", err) diff --git a/pkg/kubelet/cm/cpumanager/topology_hints_test.go b/pkg/kubelet/cm/cpumanager/topology_hints_test.go index 16761157aaf9b..68f183344547b 100644 --- a/pkg/kubelet/cm/cpumanager/topology_hints_test.go +++ b/pkg/kubelet/cm/cpumanager/topology_hints_test.go @@ -50,26 +50,21 @@ func TestGetTopologyHints(t *testing.T) { Topology: []cadvisorapi.Node{ {Id: 0, Cores: []cadvisorapi.Core{ - {Id: 0, Threads: []int{0, 6}}, - {Id: 1, Threads: []int{1, 7}}, - {Id: 2, Threads: []int{2, 8}}, + {SocketID: 0, Id: 0, Threads: []int{0, 6}}, + {SocketID: 0, Id: 1, Threads: []int{1, 7}}, + {SocketID: 0, Id: 2, Threads: []int{2, 8}}, }, }, {Id: 1, Cores: []cadvisorapi.Core{ - {Id: 0, Threads: []int{3, 9}}, - {Id: 1, Threads: []int{4, 10}}, - {Id: 2, Threads: []int{5, 11}}, + {SocketID: 1, Id: 0, Threads: []int{3, 9}}, + {SocketID: 1, Id: 1, Threads: []int{4, 10}}, + {SocketID: 1, Id: 2, Threads: []int{5, 11}}, }, }, }, } - numaNodeInfo := topology.NUMANodeInfo{ - 0: cpuset.NewCPUSet(0, 6, 1, 7, 2, 8), - 1: cpuset.NewCPUSet(3, 9, 4, 10, 5, 11), - } - tcases := []struct { name string pod v1.Pod @@ -237,7 +232,7 @@ func TestGetTopologyHints(t *testing.T) { }, } for _, tc := range tcases { - topology, _ := topology.Discover(&machineInfo, numaNodeInfo) + topology, _ := topology.Discover(&machineInfo) var activePods []*v1.Pod for p := range tc.assignments { diff --git a/pkg/kubelet/cm/devicemanager/BUILD b/pkg/kubelet/cm/devicemanager/BUILD index f6b4e1a645af3..ddb796160225e 100644 --- a/pkg/kubelet/cm/devicemanager/BUILD +++ b/pkg/kubelet/cm/devicemanager/BUILD @@ -19,7 +19,6 @@ go_library( "//pkg/kubelet/apis/podresources/v1alpha1:go_default_library", "//pkg/kubelet/checkpointmanager:go_default_library", "//pkg/kubelet/checkpointmanager/errors:go_default_library", - "//pkg/kubelet/cm/cpumanager/topology:go_default_library", "//pkg/kubelet/cm/devicemanager/checkpoint:go_default_library", "//pkg/kubelet/cm/topologymanager:go_default_library", "//pkg/kubelet/cm/topologymanager/bitmask:go_default_library", @@ -38,6 +37,7 @@ go_library( "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", "//staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1:go_default_library", "//staging/src/k8s.io/kubelet/pkg/apis/pluginregistration/v1:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", "//vendor/google.golang.org/grpc:go_default_library", "//vendor/k8s.io/klog/v2:go_default_library", ], diff --git a/pkg/kubelet/cm/devicemanager/manager.go b/pkg/kubelet/cm/devicemanager/manager.go index 5d1925f9458fd..f531795cb8350 100644 --- a/pkg/kubelet/cm/devicemanager/manager.go +++ b/pkg/kubelet/cm/devicemanager/manager.go @@ -26,6 +26,7 @@ import ( "sync" "time" + cadvisorapi "github.com/google/cadvisor/info/v1" "google.golang.org/grpc" "k8s.io/klog/v2" @@ -40,7 +41,6 @@ import ( podresourcesapi "k8s.io/kubernetes/pkg/kubelet/apis/podresources/v1alpha1" "k8s.io/kubernetes/pkg/kubelet/checkpointmanager" "k8s.io/kubernetes/pkg/kubelet/checkpointmanager/errors" - cputopology "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/topology" "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/checkpoint" "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager" "k8s.io/kubernetes/pkg/kubelet/config" @@ -124,11 +124,11 @@ func (s *sourcesReadyStub) AddSource(source string) {} func (s *sourcesReadyStub) AllReady() bool { return true } // NewManagerImpl creates a new manager. -func NewManagerImpl(numaNodeInfo cputopology.NUMANodeInfo, topologyAffinityStore topologymanager.Store) (*ManagerImpl, error) { - return newManagerImpl(pluginapi.KubeletSocket, numaNodeInfo, topologyAffinityStore) +func NewManagerImpl(topology []cadvisorapi.Node, topologyAffinityStore topologymanager.Store) (*ManagerImpl, error) { + return newManagerImpl(pluginapi.KubeletSocket, topology, topologyAffinityStore) } -func newManagerImpl(socketPath string, numaNodeInfo cputopology.NUMANodeInfo, topologyAffinityStore topologymanager.Store) (*ManagerImpl, error) { +func newManagerImpl(socketPath string, topology []cadvisorapi.Node, topologyAffinityStore topologymanager.Store) (*ManagerImpl, error) { klog.V(2).Infof("Creating Device Plugin manager at %s", socketPath) if socketPath == "" || !filepath.IsAbs(socketPath) { @@ -136,8 +136,8 @@ func newManagerImpl(socketPath string, numaNodeInfo cputopology.NUMANodeInfo, to } var numaNodes []int - for node := range numaNodeInfo { - numaNodes = append(numaNodes, node) + for _, node := range topology { + numaNodes = append(numaNodes, node.Id) } dir, file := filepath.Split(socketPath) diff --git a/pkg/kubelet/cm/topologymanager/BUILD b/pkg/kubelet/cm/topologymanager/BUILD index deb00046ac71b..fe4be1113af36 100644 --- a/pkg/kubelet/cm/topologymanager/BUILD +++ b/pkg/kubelet/cm/topologymanager/BUILD @@ -14,10 +14,10 @@ go_library( importpath = "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager", visibility = ["//visibility:public"], deps = [ - "//pkg/kubelet/cm/cpumanager/topology:go_default_library", "//pkg/kubelet/cm/topologymanager/bitmask:go_default_library", "//pkg/kubelet/lifecycle:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", "//vendor/k8s.io/klog/v2:go_default_library", ], ) diff --git a/pkg/kubelet/cm/topologymanager/topology_manager.go b/pkg/kubelet/cm/topologymanager/topology_manager.go index 04f0d0ecbdc8a..8b5e983711ffe 100644 --- a/pkg/kubelet/cm/topologymanager/topology_manager.go +++ b/pkg/kubelet/cm/topologymanager/topology_manager.go @@ -20,9 +20,9 @@ import ( "fmt" "sync" + cadvisorapi "github.com/google/cadvisor/info/v1" "k8s.io/api/core/v1" "k8s.io/klog/v2" - cputopology "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/topology" "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask" "k8s.io/kubernetes/pkg/kubelet/lifecycle" ) @@ -122,12 +122,12 @@ func (th *TopologyHint) LessThan(other TopologyHint) bool { var _ Manager = &manager{} //NewManager creates a new TopologyManager based on provided policy -func NewManager(numaNodeInfo cputopology.NUMANodeInfo, topologyPolicyName string) (Manager, error) { +func NewManager(topology []cadvisorapi.Node, topologyPolicyName string) (Manager, error) { klog.Infof("[topologymanager] Creating topology manager with %s policy", topologyPolicyName) var numaNodes []int - for node := range numaNodeInfo { - numaNodes = append(numaNodes, node) + for _, node := range topology { + numaNodes = append(numaNodes, node.Id) } if topologyPolicyName != PolicyNone && len(numaNodes) > maxAllowableNUMANodes { @@ -167,6 +167,8 @@ func NewManager(numaNodeInfo cputopology.NUMANodeInfo, topologyPolicyName string } func (m *manager) GetAffinity(podUID string, containerName string) TopologyHint { + m.mutex.Lock() + defer m.mutex.Unlock() return m.podTopologyHints[podUID][containerName] } @@ -256,10 +258,12 @@ func (m *manager) Admit(attrs *lifecycle.PodAdmitAttributes) lifecycle.PodAdmitR } klog.Infof("[topologymanager] Topology Affinity for (pod: %v container: %v): %v", pod.UID, container.Name, result) + m.mutex.Lock() if m.podTopologyHints[string(pod.UID)] == nil { m.podTopologyHints[string(pod.UID)] = make(map[string]TopologyHint) } m.podTopologyHints[string(pod.UID)][container.Name] = result + m.mutex.Unlock() err := m.allocateAlignedResources(pod, &container) if err != nil { diff --git a/pkg/kubelet/config/apiserver.go b/pkg/kubelet/config/apiserver.go index 2f29ddd576fff..ea71490ff4d71 100644 --- a/pkg/kubelet/config/apiserver.go +++ b/pkg/kubelet/config/apiserver.go @@ -17,21 +17,42 @@ limitations under the License. package config import ( - "k8s.io/api/core/v1" + "time" + + v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/cache" + "k8s.io/klog/v2" api "k8s.io/kubernetes/pkg/apis/core" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" ) +// WaitForAPIServerSyncPeriod is the period between checks for the node list/watch initial sync +const WaitForAPIServerSyncPeriod = 1 * time.Second + // NewSourceApiserver creates a config source that watches and pulls from the apiserver. -func NewSourceApiserver(c clientset.Interface, nodeName types.NodeName, updates chan<- interface{}) { +func NewSourceApiserver(c clientset.Interface, nodeName types.NodeName, nodeHasSynced func() bool, updates chan<- interface{}) { lw := cache.NewListWatchFromClient(c.CoreV1().RESTClient(), "pods", metav1.NamespaceAll, fields.OneTermEqualSelector(api.PodHostField, string(nodeName))) - newSourceApiserverFromLW(lw, updates) + + // The Reflector responsible for watching pods at the apiserver should be run only after + // the node sync with the apiserver has completed. + klog.Info("Waiting for node sync before watching apiserver pods") + go func() { + for { + if nodeHasSynced() { + klog.V(4).Info("node sync completed") + break + } + time.Sleep(WaitForAPIServerSyncPeriod) + klog.V(4).Info("node sync has not completed yet") + } + klog.Info("Watching apiserver") + newSourceApiserverFromLW(lw, updates) + }() } // newSourceApiserverFromLW holds creates a config source that watches and pulls from the apiserver. diff --git a/pkg/kubelet/dockershim/docker_service.go b/pkg/kubelet/dockershim/docker_service.go index 74a7b5d081279..b8fb225380202 100644 --- a/pkg/kubelet/dockershim/docker_service.go +++ b/pkg/kubelet/dockershim/docker_service.go @@ -24,6 +24,7 @@ import ( "net/http" "path" "path/filepath" + "runtime" "sync" "time" @@ -255,24 +256,28 @@ func NewDockerService(config *ClientConfig, podSandboxImage string, streamingCon ds.network = network.NewPluginManager(plug) klog.Infof("Docker cri networking managed by %v", plug.Name()) - // NOTE: cgroup driver is only detectable in docker 1.11+ - cgroupDriver := defaultCgroupDriver - dockerInfo, err := ds.client.Info() - klog.Infof("Docker Info: %+v", dockerInfo) - if err != nil { - klog.Errorf("Failed to execute Info() call to the Docker client: %v", err) - klog.Warningf("Falling back to use the default driver: %q", cgroupDriver) - } else if len(dockerInfo.CgroupDriver) == 0 { - klog.Warningf("No cgroup driver is set in Docker") - klog.Warningf("Falling back to use the default driver: %q", cgroupDriver) - } else { - cgroupDriver = dockerInfo.CgroupDriver - } - if len(kubeCgroupDriver) != 0 && kubeCgroupDriver != cgroupDriver { - return nil, fmt.Errorf("misconfiguration: kubelet cgroup driver: %q is different from docker cgroup driver: %q", kubeCgroupDriver, cgroupDriver) + // skipping cgroup driver checks for Windows + if runtime.GOOS == "linux" { + // NOTE: cgroup driver is only detectable in docker 1.11+ + cgroupDriver := defaultCgroupDriver + dockerInfo, err := ds.client.Info() + klog.Infof("Docker Info: %+v", dockerInfo) + if err != nil { + klog.Errorf("Failed to execute Info() call to the Docker client: %v", err) + klog.Warningf("Falling back to use the default driver: %q", cgroupDriver) + } else if len(dockerInfo.CgroupDriver) == 0 { + klog.Warningf("No cgroup driver is set in Docker") + klog.Warningf("Falling back to use the default driver: %q", cgroupDriver) + } else { + cgroupDriver = dockerInfo.CgroupDriver + } + if len(kubeCgroupDriver) != 0 && kubeCgroupDriver != cgroupDriver { + return nil, fmt.Errorf("misconfiguration: kubelet cgroup driver: %q is different from docker cgroup driver: %q", kubeCgroupDriver, cgroupDriver) + } + klog.Infof("Setting cgroupDriver to %s", cgroupDriver) + ds.cgroupDriver = cgroupDriver } - klog.Infof("Setting cgroupDriver to %s", cgroupDriver) - ds.cgroupDriver = cgroupDriver + ds.versionCache = cache.NewObjectCache( func() (interface{}, error) { return ds.getDockerVersion() diff --git a/pkg/kubelet/dockershim/docker_stats_windows.go b/pkg/kubelet/dockershim/docker_stats_windows.go index 510362dede714..8106da30cdda5 100644 --- a/pkg/kubelet/dockershim/docker_stats_windows.go +++ b/pkg/kubelet/dockershim/docker_stats_windows.go @@ -20,6 +20,7 @@ package dockershim import ( "context" + "strings" "time" "github.com/Microsoft/hcsshim" @@ -39,7 +40,7 @@ func (ds *dockerService) getContainerStats(containerID string) (*runtimeapi.Cont // That will typically happen with init-containers in Exited state. Docker still knows about them but the HCS does not. // As we don't want to block stats retrieval for other containers, we only log errors. if !hcsshim.IsNotExist(err) && !hcsshim.IsAlreadyStopped(err) { - klog.Errorf("Error opening container (stats will be missing) '%s': %v", containerID, err) + klog.V(4).Infof("Error opening container (stats will be missing) '%s': %v", containerID, err) } return nil, nil } @@ -52,6 +53,16 @@ func (ds *dockerService) getContainerStats(containerID string) (*runtimeapi.Cont stats, err := hcsshim_container.Statistics() if err != nil { + if strings.Contains(err.Error(), "0x5") || strings.Contains(err.Error(), "0xc0370105") { + // When the container is just created, querying for stats causes access errors because it hasn't started yet + // This is transient; skip container for now + // + // These hcs errors do not have helpers exposed in public package so need to query for the known codes + // https://github.com/microsoft/hcsshim/blob/master/internal/hcs/errors.go + // PR to expose helpers in hcsshim: https://github.com/microsoft/hcsshim/pull/933 + klog.V(4).Infof("Container is not in a state that stats can be accessed '%s': %v. This occurs when the container is created but not started.", containerID, err) + return nil, nil + } return nil, err } diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 879f5eb947a39..526d4b144f2cc 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -125,9 +125,6 @@ const ( // Max amount of time to wait for the container runtime to come up. maxWaitForContainerRuntime = 30 * time.Second - // Max amount of time to wait for node list/watch to initially sync - maxWaitForAPIServerSync = 10 * time.Second - // nodeStatusUpdateRetry specifies how many times kubelet retries when posting node status failed. nodeStatusUpdateRetry = 5 @@ -246,7 +243,7 @@ type DockerOptions struct { // makePodSourceConfig creates a config.PodConfig from the given // KubeletConfiguration or returns an error. -func makePodSourceConfig(kubeCfg *kubeletconfiginternal.KubeletConfiguration, kubeDeps *Dependencies, nodeName types.NodeName) (*config.PodConfig, error) { +func makePodSourceConfig(kubeCfg *kubeletconfiginternal.KubeletConfiguration, kubeDeps *Dependencies, nodeName types.NodeName, nodeHasSynced func() bool) (*config.PodConfig, error) { manifestURLHeader := make(http.Header) if len(kubeCfg.StaticPodURLHeader) > 0 { for k, v := range kubeCfg.StaticPodURLHeader { @@ -273,11 +270,11 @@ func makePodSourceConfig(kubeCfg *kubeletconfiginternal.KubeletConfiguration, ku var updatechannel chan<- interface{} if kubeDeps.KubeClient != nil { - klog.Infof("Watching apiserver") + klog.Info("Adding apiserver pod source") if updatechannel == nil { updatechannel = cfg.Channel(kubetypes.ApiserverSource) } - config.NewSourceApiserver(kubeDeps.KubeClient, nodeName, updatechannel) + config.NewSourceApiserver(kubeDeps.KubeClient, nodeName, nodeHasSynced, updatechannel) } return cfg, nil } @@ -380,9 +377,32 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, } } + var nodeHasSynced cache.InformerSynced + var nodeLister corelisters.NodeLister + + // If kubeClient == nil, we are running in standalone mode (i.e. no API servers) + // If not nil, we are running as part of a cluster and should sync w/API + if kubeDeps.KubeClient != nil { + kubeInformers := informers.NewSharedInformerFactoryWithOptions(kubeDeps.KubeClient, 0, informers.WithTweakListOptions(func(options *metav1.ListOptions) { + options.FieldSelector = fields.Set{api.ObjectNameField: string(nodeName)}.String() + })) + nodeLister = kubeInformers.Core().V1().Nodes().Lister() + nodeHasSynced = func() bool { + return kubeInformers.Core().V1().Nodes().Informer().HasSynced() + } + kubeInformers.Start(wait.NeverStop) + klog.Info("Attempting to sync node with API server") + } else { + // we don't have a client to sync! + nodeIndexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{}) + nodeLister = corelisters.NewNodeLister(nodeIndexer) + nodeHasSynced = func() bool { return true } + klog.Info("Kubelet is running in standalone mode, will skip API server sync") + } + if kubeDeps.PodConfig == nil { var err error - kubeDeps.PodConfig, err = makePodSourceConfig(kubeCfg, kubeDeps, nodeName) + kubeDeps.PodConfig, err = makePodSourceConfig(kubeCfg, kubeDeps, nodeName, nodeHasSynced) if err != nil { return nil, err } @@ -434,31 +454,6 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, serviceHasSynced = func() bool { return true } } - var nodeHasSynced cache.InformerSynced - var nodeLister corelisters.NodeLister - - if kubeDeps.KubeClient != nil { - kubeInformers := informers.NewSharedInformerFactoryWithOptions(kubeDeps.KubeClient, 0, informers.WithTweakListOptions(func(options *metav1.ListOptions) { - options.FieldSelector = fields.Set{api.ObjectNameField: string(nodeName)}.String() - })) - nodeLister = kubeInformers.Core().V1().Nodes().Lister() - nodeHasSynced = func() bool { - if kubeInformers.Core().V1().Nodes().Informer().HasSynced() { - return true - } - klog.Infof("kubelet nodes not sync") - return false - } - kubeInformers.Start(wait.NeverStop) - klog.Info("Kubelet client is not nil") - } else { - // we dont have a client to sync! - nodeIndexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{}) - nodeLister = corelisters.NewNodeLister(nodeIndexer) - nodeHasSynced = func() bool { return true } - klog.Info("Kubelet client is nil") - } - // TODO: get the real node object of ourself, // and use the real node name and UID. // TODO: what is namespace for node? @@ -1338,14 +1333,7 @@ func (kl *Kubelet) initializeRuntimeDependentModules() { // Run starts the kubelet reacting to config updates func (kl *Kubelet) Run(updates <-chan kubetypes.PodUpdate) { if kl.logServer == nil { - file := http.FileServer(http.Dir("/var/log/")) - kl.logServer = http.StripPrefix("/logs/", http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - if req.URL.Path == "journal" { - journal.ServeHTTP(w, req) - return - } - file.ServeHTTP(w, req) - })) + kl.logServer = http.StripPrefix("/logs/", http.FileServer(http.Dir("/var/log/"))) } if kl.kubeClient == nil { klog.Warning("No api server defined - no node status update will be sent.") diff --git a/pkg/kubelet/kubelet_getters.go b/pkg/kubelet/kubelet_getters.go index dbe5ff53f43ad..b7df2b0aefb2a 100644 --- a/pkg/kubelet/kubelet_getters.go +++ b/pkg/kubelet/kubelet_getters.go @@ -22,7 +22,6 @@ import ( "io/ioutil" "net" "path/filepath" - "time" cadvisorapiv1 "github.com/google/cadvisor/info/v1" cadvisorv2 "github.com/google/cadvisor/info/v2" @@ -33,7 +32,6 @@ import ( v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/util/wait" "k8s.io/kubernetes/pkg/kubelet/cm" "k8s.io/kubernetes/pkg/kubelet/config" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" @@ -237,15 +235,6 @@ func (kl *Kubelet) GetNode() (*v1.Node, error) { if kl.kubeClient == nil { return kl.initialNode(context.TODO()) } - // if we have a valid kube client, we wait for initial lister to sync - if !kl.nodeHasSynced() { - err := wait.PollImmediate(time.Second, maxWaitForAPIServerSync, func() (bool, error) { - return kl.nodeHasSynced(), nil - }) - if err != nil { - return nil, fmt.Errorf("nodes have not yet been read at least once, cannot construct node object") - } - } return kl.nodeLister.Get(string(kl.nodeName)) } @@ -256,7 +245,7 @@ func (kl *Kubelet) GetNode() (*v1.Node, error) { // zero capacity, and the default labels. func (kl *Kubelet) getNodeAnyWay() (*v1.Node, error) { if kl.kubeClient != nil { - if n, err := kl.GetNode(); err == nil { + if n, err := kl.nodeLister.Get(string(kl.nodeName)); err == nil { return n, nil } } @@ -368,17 +357,46 @@ func (kl *Kubelet) getMountedVolumePathListFromDisk(podUID types.UID) ([]string, return mountedVolumes, nil } -// podVolumesSubpathsDirExists returns true if the pod volume-subpaths directory for -// a given pod exists -func (kl *Kubelet) podVolumeSubpathsDirExists(podUID types.UID) (bool, error) { - podVolDir := kl.getPodVolumeSubpathsDir(podUID) +// getPodVolumeSubpathListFromDisk returns a list of the volume-subpath paths by reading the +// subpath directories for the given pod from the disk. +func (kl *Kubelet) getPodVolumeSubpathListFromDisk(podUID types.UID) ([]string, error) { + volumes := []string{} + podSubpathsDir := kl.getPodVolumeSubpathsDir(podUID) - if pathExists, pathErr := mount.PathExists(podVolDir); pathErr != nil { - return true, fmt.Errorf("error checking if path %q exists: %v", podVolDir, pathErr) + if pathExists, pathErr := mount.PathExists(podSubpathsDir); pathErr != nil { + return nil, fmt.Errorf("error checking if path %q exists: %v", podSubpathsDir, pathErr) } else if !pathExists { - return false, nil + return volumes, nil + } + + // Explicitly walks /// + volumePluginDirs, err := ioutil.ReadDir(podSubpathsDir) + if err != nil { + klog.Errorf("Could not read directory %s: %v", podSubpathsDir, err) + return volumes, err } - return true, nil + for _, volumePluginDir := range volumePluginDirs { + volumePluginName := volumePluginDir.Name() + volumePluginPath := filepath.Join(podSubpathsDir, volumePluginName) + containerDirs, err := ioutil.ReadDir(volumePluginPath) + if err != nil { + return volumes, fmt.Errorf("could not read directory %s: %v", volumePluginPath, err) + } + for _, containerDir := range containerDirs { + containerName := containerDir.Name() + containerPath := filepath.Join(volumePluginPath, containerName) + // Switch to ReadDirNoStat at the subPathIndex level to prevent issues with stat'ing + // mount points that may not be responsive + subPaths, err := utilpath.ReadDirNoStat(containerPath) + if err != nil { + return volumes, fmt.Errorf("could not read directory %s: %v", containerPath, err) + } + for _, subPathDir := range subPaths { + volumes = append(volumes, filepath.Join(containerPath, subPathDir)) + } + } + } + return volumes, nil } // GetRequestedContainersInfo returns container info. diff --git a/pkg/kubelet/kubelet_node_status.go b/pkg/kubelet/kubelet_node_status.go index bb4a7e379d305..71292f9ebb901 100644 --- a/pkg/kubelet/kubelet_node_status.go +++ b/pkg/kubelet/kubelet_node_status.go @@ -37,6 +37,7 @@ import ( "k8s.io/klog/v2" k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" + kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" "k8s.io/kubernetes/pkg/kubelet/events" "k8s.io/kubernetes/pkg/kubelet/nodestatus" "k8s.io/kubernetes/pkg/kubelet/util" @@ -126,7 +127,7 @@ func (kl *Kubelet) tryRegisterWithAPIServer(node *v1.Node) bool { // reconcileHugePageResource will update huge page capacity for each page size and remove huge page sizes no longer supported func (kl *Kubelet) reconcileHugePageResource(initialNode, existingNode *v1.Node) bool { - requiresUpdate := false + requiresUpdate := updateDefaultResources(initialNode, existingNode) supportedHugePageResources := sets.String{} for resourceName := range initialNode.Status.Capacity { @@ -173,7 +174,7 @@ func (kl *Kubelet) reconcileHugePageResource(initialNode, existingNode *v1.Node) // Zeros out extended resource capacity during reconciliation. func (kl *Kubelet) reconcileExtendedResource(initialNode, node *v1.Node) bool { - requiresUpdate := false + requiresUpdate := updateDefaultResources(initialNode, node) // Check with the device manager to see if node has been recreated, in which case extended resources should be zeroed until they are available if kl.containerManager.ShouldResetExtendedResourceCapacity() { for k := range node.Status.Capacity { @@ -188,6 +189,29 @@ func (kl *Kubelet) reconcileExtendedResource(initialNode, node *v1.Node) bool { return requiresUpdate } +// updateDefaultResources will set the default resources on the existing node according to the initial node +func updateDefaultResources(initialNode, existingNode *v1.Node) bool { + requiresUpdate := false + if existingNode.Status.Capacity == nil { + if initialNode.Status.Capacity != nil { + existingNode.Status.Capacity = initialNode.Status.Capacity.DeepCopy() + requiresUpdate = true + } else { + existingNode.Status.Capacity = make(map[v1.ResourceName]resource.Quantity) + } + } + + if existingNode.Status.Allocatable == nil { + if initialNode.Status.Allocatable != nil { + existingNode.Status.Allocatable = initialNode.Status.Allocatable.DeepCopy() + requiresUpdate = true + } else { + existingNode.Status.Allocatable = make(map[v1.ResourceName]resource.Quantity) + } + } + return requiresUpdate +} + // updateDefaultLabels will set the default labels on the node func (kl *Kubelet) updateDefaultLabels(initialNode, existingNode *v1.Node) bool { defaultLabels := []string{ @@ -201,6 +225,8 @@ func (kl *Kubelet) updateDefaultLabels(initialNode, existingNode *v1.Node) bool v1.LabelOSStable, v1.LabelArchStable, v1.LabelWindowsBuild, + kubeletapis.LabelOS, + kubeletapis.LabelArch, } needsUpdate := false @@ -263,9 +289,11 @@ func (kl *Kubelet) initialNode(ctx context.Context) (*v1.Node, error) { ObjectMeta: metav1.ObjectMeta{ Name: string(kl.nodeName), Labels: map[string]string{ - v1.LabelHostname: kl.hostname, - v1.LabelOSStable: goruntime.GOOS, - v1.LabelArchStable: goruntime.GOARCH, + v1.LabelHostname: kl.hostname, + v1.LabelOSStable: goruntime.GOOS, + v1.LabelArchStable: goruntime.GOARCH, + kubeletapis.LabelOS: goruntime.GOOS, + kubeletapis.LabelArch: goruntime.GOARCH, }, }, Spec: v1.NodeSpec{ diff --git a/pkg/kubelet/kubelet_node_status_test.go b/pkg/kubelet/kubelet_node_status_test.go index ba03c18e9c8a8..a1a6fbb6363d1 100644 --- a/pkg/kubelet/kubelet_node_status_test.go +++ b/pkg/kubelet/kubelet_node_status_test.go @@ -49,6 +49,7 @@ import ( "k8s.io/client-go/rest" core "k8s.io/client-go/testing" "k8s.io/component-base/version" + kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" cadvisortest "k8s.io/kubernetes/pkg/kubelet/cadvisor/testing" "k8s.io/kubernetes/pkg/kubelet/cm" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" @@ -1136,14 +1137,23 @@ func TestRegisterWithApiServer(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: testKubeletHostname, Labels: map[string]string{ - v1.LabelHostname: testKubeletHostname, - v1.LabelOSStable: goruntime.GOOS, - v1.LabelArchStable: goruntime.GOARCH, + v1.LabelHostname: testKubeletHostname, + v1.LabelOSStable: goruntime.GOOS, + v1.LabelArchStable: goruntime.GOARCH, + kubeletapis.LabelOS: goruntime.GOOS, + kubeletapis.LabelArch: goruntime.GOARCH, }, }, }, nil }) + kubeClient.AddReactor("patch", "nodes", func(action core.Action) (bool, runtime.Object, error) { + if action.GetSubresource() == "status" { + return true, nil, nil + } + return notImplemented(action) + }) + addNotImplatedReaction(kubeClient) machineInfo := &cadvisorapi.MachineInfo{ @@ -1181,9 +1191,11 @@ func TestTryRegisterWithApiServer(t *testing.T) { node := &v1.Node{ ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{ - v1.LabelHostname: testKubeletHostname, - v1.LabelOSStable: goruntime.GOOS, - v1.LabelArchStable: goruntime.GOARCH, + v1.LabelHostname: testKubeletHostname, + v1.LabelOSStable: goruntime.GOOS, + v1.LabelArchStable: goruntime.GOARCH, + kubeletapis.LabelOS: goruntime.GOOS, + kubeletapis.LabelArch: goruntime.GOARCH, }, }, } @@ -1700,6 +1712,216 @@ func TestUpdateDefaultLabels(t *testing.T) { } } +func TestUpdateDefaultResources(t *testing.T) { + cases := []struct { + name string + initialNode *v1.Node + existingNode *v1.Node + expectedNode *v1.Node + needsUpdate bool + }{ + { + name: "no update needed when capacity and allocatable of the existing node are not nil", + initialNode: &v1.Node{ + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + Allocatable: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + }, + }, + existingNode: &v1.Node{ + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + Allocatable: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + }, + }, + expectedNode: &v1.Node{ + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + Allocatable: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + }, + }, + needsUpdate: false, + }, { + name: "no update needed when capacity and allocatable of the initial node are nil", + initialNode: &v1.Node{}, + existingNode: &v1.Node{ + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + Allocatable: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + }, + }, + expectedNode: &v1.Node{ + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + Allocatable: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + }, + }, + needsUpdate: false, + }, { + name: "update needed when capacity and allocatable of the existing node are nil and capacity and allocatable of the initial node are not nil", + initialNode: &v1.Node{ + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + Allocatable: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + }, + }, + existingNode: &v1.Node{}, + expectedNode: &v1.Node{ + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + Allocatable: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + }, + }, + needsUpdate: true, + }, { + name: "update needed when capacity of the existing node is nil and capacity of the initial node is not nil", + initialNode: &v1.Node{ + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + }, + }, + existingNode: &v1.Node{ + Status: v1.NodeStatus{ + Allocatable: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + }, + }, + expectedNode: &v1.Node{ + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + Allocatable: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + }, + }, + needsUpdate: true, + }, { + name: "update needed when allocatable of the existing node is nil and allocatable of the initial node is not nil", + initialNode: &v1.Node{ + Status: v1.NodeStatus{ + Allocatable: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + }, + }, + existingNode: &v1.Node{ + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + }, + }, + expectedNode: &v1.Node{ + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + Allocatable: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + }, + }, + needsUpdate: true, + }, { + name: "no update needed but capacity and allocatable of existing node should be initialized", + initialNode: &v1.Node{}, + existingNode: &v1.Node{}, + expectedNode: &v1.Node{ + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{}, + Allocatable: v1.ResourceList{}, + }, + }, + needsUpdate: false, + }, + } + + for _, tc := range cases { + t.Run(tc.name, func(T *testing.T) { + needsUpdate := updateDefaultResources(tc.initialNode, tc.existingNode) + assert.Equal(t, tc.needsUpdate, needsUpdate, tc.name) + assert.Equal(t, tc.expectedNode, tc.existingNode, tc.name) + }) + } +} + func TestReconcileHugePageResource(t *testing.T) { testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) hugePageResourceName64Ki := v1.ResourceName("hugepages-64Ki") @@ -1934,6 +2156,49 @@ func TestReconcileHugePageResource(t *testing.T) { }, }, }, + }, { + name: "not panic when capacity or allocatable of existing node is nil", + testKubelet: testKubelet, + needsUpdate: true, + initialNode: &v1.Node{ + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + hugePageResourceName2Mi: resource.MustParse("100Mi"), + hugePageResourceName64Ki: *resource.NewQuantity(0, resource.BinarySI), + }, + Allocatable: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + hugePageResourceName2Mi: resource.MustParse("100Mi"), + hugePageResourceName64Ki: *resource.NewQuantity(0, resource.BinarySI), + }, + }, + }, + existingNode: &v1.Node{ + Status: v1.NodeStatus{}, + }, + expectedNode: &v1.Node{ + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + hugePageResourceName2Mi: resource.MustParse("100Mi"), + hugePageResourceName64Ki: *resource.NewQuantity(0, resource.BinarySI), + }, + Allocatable: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + hugePageResourceName2Mi: resource.MustParse("100Mi"), + hugePageResourceName64Ki: *resource.NewQuantity(0, resource.BinarySI), + }, + }, + }, }, } @@ -1960,6 +2225,7 @@ func TestReconcileExtendedResource(t *testing.T) { cases := []struct { name string testKubelet *TestKubelet + initialNode *v1.Node existingNode *v1.Node expectedNode *v1.Node needsUpdate bool @@ -1967,6 +2233,20 @@ func TestReconcileExtendedResource(t *testing.T) { { name: "no update needed without extended resource", testKubelet: testKubelet, + initialNode: &v1.Node{ + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + Allocatable: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + }, + }, + }, existingNode: &v1.Node{ Status: v1.NodeStatus{ Capacity: v1.ResourceList{ @@ -1998,19 +2278,41 @@ func TestReconcileExtendedResource(t *testing.T) { needsUpdate: false, }, { - name: "extended resource capacity is not zeroed due to presence of checkpoint file", - testKubelet: testKubelet, + name: "extended resource capacity is zeroed", + testKubelet: testKubeletNoReset, + initialNode: &v1.Node{ + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + extendedResourceName1: *resource.NewQuantity(int64(2), resource.DecimalSI), + extendedResourceName2: *resource.NewQuantity(int64(10), resource.DecimalSI), + }, + Allocatable: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + extendedResourceName1: *resource.NewQuantity(int64(2), resource.DecimalSI), + extendedResourceName2: *resource.NewQuantity(int64(10), resource.DecimalSI), + }, + }, + }, existingNode: &v1.Node{ Status: v1.NodeStatus{ Capacity: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + extendedResourceName1: *resource.NewQuantity(int64(2), resource.DecimalSI), + extendedResourceName2: *resource.NewQuantity(int64(10), resource.DecimalSI), }, Allocatable: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + extendedResourceName1: *resource.NewQuantity(int64(2), resource.DecimalSI), + extendedResourceName2: *resource.NewQuantity(int64(10), resource.DecimalSI), }, }, }, @@ -2020,20 +2322,24 @@ func TestReconcileExtendedResource(t *testing.T) { v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + extendedResourceName1: *resource.NewQuantity(int64(0), resource.DecimalSI), + extendedResourceName2: *resource.NewQuantity(int64(0), resource.DecimalSI), }, Allocatable: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + extendedResourceName1: *resource.NewQuantity(int64(0), resource.DecimalSI), + extendedResourceName2: *resource.NewQuantity(int64(0), resource.DecimalSI), }, }, }, - needsUpdate: false, + needsUpdate: true, }, { - name: "extended resource capacity is zeroed", - testKubelet: testKubeletNoReset, - existingNode: &v1.Node{ + name: "not panic when allocatable of existing node is nil", + testKubelet: testKubelet, + initialNode: &v1.Node{ Status: v1.NodeStatus{ Capacity: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), @@ -2051,6 +2357,17 @@ func TestReconcileExtendedResource(t *testing.T) { }, }, }, + existingNode: &v1.Node{ + Status: v1.NodeStatus{ + Capacity: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(2000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(10e9, resource.BinarySI), + v1.ResourceEphemeralStorage: *resource.NewQuantity(5000, resource.BinarySI), + extendedResourceName1: *resource.NewQuantity(int64(2), resource.DecimalSI), + extendedResourceName2: *resource.NewQuantity(int64(10), resource.DecimalSI), + }, + }, + }, expectedNode: &v1.Node{ Status: v1.NodeStatus{ Capacity: v1.ResourceList{ @@ -2076,9 +2393,8 @@ func TestReconcileExtendedResource(t *testing.T) { for _, tc := range cases { defer testKubelet.Cleanup() kubelet := testKubelet.kubelet - initialNode := &v1.Node{} - needsUpdate := kubelet.reconcileExtendedResource(initialNode, tc.existingNode) + needsUpdate := kubelet.reconcileExtendedResource(tc.initialNode, tc.existingNode) assert.Equal(t, tc.needsUpdate, needsUpdate, tc.name) assert.Equal(t, tc.expectedNode, tc.existingNode, tc.name) } diff --git a/pkg/kubelet/kubelet_pods.go b/pkg/kubelet/kubelet_pods.go index 65766740fd878..b8988e9d758e2 100644 --- a/pkg/kubelet/kubelet_pods.go +++ b/pkg/kubelet/kubelet_pods.go @@ -150,7 +150,7 @@ func makeMounts(pod *v1.Pod, podDir string, container *v1.Container, hostName, h mountEtcHostsFile = mountEtcHostsFile && (mount.MountPath != etcHostsPath) vol, ok := podVolumes[mount.Name] if !ok || vol.Mounter == nil { - klog.Errorf("Mount cannot be satisfied for container %q, because the volume is missing or the volume mounter is nil: %+v", container.Name, mount) + klog.Errorf("Mount cannot be satisfied for container %q, because the volume is missing (ok=%v) or the volume mounter (vol.Mounter) is nil (vol=%+v): %+v", container.Name, ok, vol, mount) return nil, cleanupAction, fmt.Errorf("cannot find volume %q to mount into container %q", mount.Name, container.Name) } @@ -1628,7 +1628,7 @@ func (kl *Kubelet) convertStatusToAPIStatus(pod *v1.Pod, podStatus *kubecontaine // convertToAPIContainerStatuses converts the given internal container // statuses into API container statuses. func (kl *Kubelet) convertToAPIContainerStatuses(pod *v1.Pod, podStatus *kubecontainer.PodStatus, previousStatus []v1.ContainerStatus, containers []v1.Container, hasInitContainers, isInitContainer bool) []v1.ContainerStatus { - convertContainerStatus := func(cs *kubecontainer.Status, oldStatus *v1.ContainerStatus) *v1.ContainerStatus { + convertContainerStatus := func(cs *kubecontainer.Status) *v1.ContainerStatus { cid := cs.ID.String() status := &v1.ContainerStatus{ Name: cs.Name, @@ -1637,17 +1637,17 @@ func (kl *Kubelet) convertToAPIContainerStatuses(pod *v1.Pod, podStatus *kubecon ImageID: cs.ImageID, ContainerID: cid, } - switch { - case cs.State == kubecontainer.ContainerStateRunning: + switch cs.State { + case kubecontainer.ContainerStateRunning: status.State.Running = &v1.ContainerStateRunning{StartedAt: metav1.NewTime(cs.StartedAt)} - case cs.State == kubecontainer.ContainerStateCreated: + case kubecontainer.ContainerStateCreated: // Treat containers in the "created" state as if they are exited. // The pod workers are supposed start all containers it creates in // one sync (syncPod) iteration. There should not be any normal // "created" containers when the pod worker generates the status at // the beginning of a sync iteration. fallthrough - case cs.State == kubecontainer.ContainerStateExited: + case kubecontainer.ContainerStateExited: status.State.Terminated = &v1.ContainerStateTerminated{ ExitCode: int32(cs.ExitCode), Reason: cs.Reason, @@ -1656,31 +1656,7 @@ func (kl *Kubelet) convertToAPIContainerStatuses(pod *v1.Pod, podStatus *kubecon FinishedAt: metav1.NewTime(cs.FinishedAt), ContainerID: cid, } - - case cs.State == kubecontainer.ContainerStateUnknown && - oldStatus != nil && // we have an old status - oldStatus.State.Running != nil: // our previous status was running - // if this happens, then we know that this container was previously running and isn't anymore (assuming the CRI isn't failing to return running containers). - // you can imagine this happening in cases where a container failed and the kubelet didn't ask about it in time to see the result. - // in this case, the container should not to into waiting state immediately because that can make cases like runonce pods actually run - // twice. "container never ran" is different than "container ran and failed". This is handled differently in the kubelet - // and it is handled differently in higher order logic like crashloop detection and handling - status.State.Terminated = &v1.ContainerStateTerminated{ - Reason: "ContainerStatusUnknown", - Message: "The container could not be located when the pod was terminated", - ExitCode: 137, // this code indicates an error - } - // the restart count normally comes from the CRI (see near the top of this method), but since this is being added explicitly - // for the case where the CRI did not return a status, we need to manually increment the restart count to be accurate. - status.RestartCount = oldStatus.RestartCount + 1 - default: - // this collapses any unknown state to container waiting. If any container is waiting, then the pod status moves to pending even if it is running. - // if I'm reading this correctly, then any failure to read status on any container results in the entire pod going pending even if the containers - // are actually running. - // see https://github.com/kubernetes/kubernetes/blob/5d1b3e26af73dde33ecb6a3e69fb5876ceab192f/pkg/kubelet/kuberuntime/kuberuntime_container.go#L497 to - // https://github.com/kubernetes/kubernetes/blob/8976e3620f8963e72084971d9d4decbd026bf49f/pkg/kubelet/kuberuntime/helpers.go#L58-L71 - // and interpreted here https://github.com/kubernetes/kubernetes/blob/b27e78f590a0d43e4a23ca3b2bf1739ca4c6e109/pkg/kubelet/kubelet_pods.go#L1434-L1439 status.State.Waiting = &v1.ContainerStateWaiting{} } return status @@ -1720,70 +1696,6 @@ func (kl *Kubelet) convertToAPIContainerStatuses(pod *v1.Pod, podStatus *kubecon statuses[container.Name] = status } - for _, container := range containers { - found := false - for _, cStatus := range podStatus.ContainerStatuses { - if container.Name == cStatus.Name { - found = true - break - } - } - if found { - continue - } - // if no container is found, then assuming it should be waiting seems plausible, but the status code requires - // that a previous termination be present. If we're offline long enough (or something removed the container?), then - // the previous termination may not be present. This next code block ensures that if the container was previously running - // then when that container status disappears, we can infer that it terminated even if we don't know the status code. - // By setting the lasttermination state we are able to leave the container status waiting and present more accurate - // data via the API. - - oldStatus, ok := oldStatuses[container.Name] - if !ok { - continue - } - if oldStatus.State.Terminated != nil { - // if the old container status was terminated, the lasttermination status is correct - continue - } - if oldStatus.State.Running == nil { - // if the old container status isn't running, then waiting is an appropriate status and we have nothing to do - continue - } - - if pod.DeletionTimestamp == nil { - continue - } - - // and if the pod itself is being deleted, then the CRI may have removed the container already and for whatever reason the kubelet missed the exit code - // (this seems not awesome). We know at this point that we will not be restarting the container. - status := statuses[container.Name] - // if the status we're about to write indicates the default, the Waiting status will force this pod back into Pending. - // That isn't true, we know the pod is going away. - isDefaultWaitingStatus := status.State.Waiting != nil && status.State.Waiting.Reason == "ContainerCreating" - if hasInitContainers { - isDefaultWaitingStatus = status.State.Waiting != nil && status.State.Waiting.Reason == "PodInitializing" - } - if !isDefaultWaitingStatus { - // we the status was written, don't override - continue - } - if status.LastTerminationState.Terminated != nil { - // if we already have a termination state, nothing to do - continue - } - - // setting this value ensures that we show as stopped here, not as waiting: - // https://github.com/kubernetes/kubernetes/blob/90c9f7b3e198e82a756a68ffeac978a00d606e55/pkg/kubelet/kubelet_pods.go#L1440-L1445 - // This prevents the pod from becoming pending - status.LastTerminationState.Terminated = &v1.ContainerStateTerminated{ - Reason: "ContainerStatusUnknown", - Message: "The container could not be located when the pod was deleted. The container used to be Running", - ExitCode: 137, - } - statuses[container.Name] = status - } - // Make the latest container status comes first. sort.Sort(sort.Reverse(kubecontainer.SortContainerStatusesByCreationTime(podStatus.ContainerStatuses))) // Set container statuses according to the statuses seen in pod status @@ -1797,11 +1709,7 @@ func (kl *Kubelet) convertToAPIContainerStatuses(pod *v1.Pod, podStatus *kubecon if containerSeen[cName] >= 2 { continue } - var oldStatusPtr *v1.ContainerStatus - if oldStatus, ok := oldStatuses[cName]; ok { - oldStatusPtr = &oldStatus - } - status := convertContainerStatus(cStatus, oldStatusPtr) + status := convertContainerStatus(cStatus) if containerSeen[cName] == 0 { statuses[cName] = status } else { diff --git a/pkg/kubelet/kubelet_server_journal.go b/pkg/kubelet/kubelet_server_journal.go deleted file mode 100644 index 1d540c4a682b2..0000000000000 --- a/pkg/kubelet/kubelet_server_journal.go +++ /dev/null @@ -1,259 +0,0 @@ -package kubelet - -import ( - "compress/gzip" - "context" - "fmt" - "io" - "net/http" - "net/url" - "os/exec" - "regexp" - "strconv" - "strings" - "time" -) - -var journal = journalServer{} - -// journalServer returns text output from the system journal to view from -// the client. It runs with the privileges of the calling process (the -// kubelet) and should only be allowed to be invoked by a root user. -type journalServer struct{} - -// ServeHTTP translates HTTP query parameters into arguments to be passed -// to journalctl on the current system. It supports content-encoding of -// gzip to reduce total content size. -func (journalServer) ServeHTTP(w http.ResponseWriter, req *http.Request) { - var out io.Writer = w - args, err := newJournalArgsFromURL(req.URL.Query()) - if err != nil { - http.Error(w, err.Error(), http.StatusBadRequest) - return - } - - w.Header().Set("Content-Type", "text/plain;charset=UTF-8") - if req.Header.Get("Accept-Encoding") == "gzip" { - w.Header().Set("Content-Encoding", "gzip") - - gz := gzip.NewWriter(out) - defer gz.Close() - out = gz - } - args.Copy(out) -} - -// journalArgs assists in invoking the journalctl command. -type journalArgs struct { - Since string - Until string - Tail int - Timeout int - Format string - Boot *int - Units []string - Pattern string - CaseSensitive bool -} - -// newJournalArgsFromURL returns bounds checked values based on query -// parameters. Parameter names are deliberately chosen to align with -// journalctl arguments. If journalctl ever creates incompatible arguments, -// this method should introduce new parameters that preserves compatibility. -func newJournalArgsFromURL(query url.Values) (*journalArgs, error) { - since, err := validJournalDateRange(query.Get("since")) - if err != nil { - return nil, fmt.Errorf("parameter 'since' is invalid: %v", err) - } - until, err := validJournalDateRange(query.Get("until")) - if err != nil { - return nil, fmt.Errorf("parameter 'until' is invalid: %v", err) - } - format, err := stringInSlice(query.Get("output"), "short-precise", "json", "short", "short-unix", "short-iso", "short-iso-precise", "cat", "") - if err != nil { - return nil, fmt.Errorf("parameter 'output' is invalid: %v", err) - } - if len(format) == 0 { - format = "short-precise" - } - units, err := safeStrings(query["unit"]) - if err != nil { - return nil, fmt.Errorf("parameter 'unit' is invalid: %v", err) - } - var boot *int - if bootStr := query.Get("boot"); len(bootStr) > 0 { - boot, err = validIntRange(bootStr, -100, 0) - if err != nil { - return nil, fmt.Errorf("parameter 'boot' is invalid: %v", err) - } - } - pattern, err := safeString(query.Get("grep")) - if err != nil { - return nil, fmt.Errorf("parameter 'grep' is invalid: %v", err) - } - - // All parameters loaded from the query must be thoroughly sanitized - do - // not pass query parameters directly to journalctl without limiting them - // as demonstrated above. - return &journalArgs{ - Units: units, - - Since: since, - Until: until, - Tail: boundedIntegerOrDefault(query.Get("tail"), 0, 100000, 0), - Boot: boot, - - Timeout: boundedIntegerOrDefault(query.Get("timeout"), 1, 60, 30), - - Pattern: pattern, - CaseSensitive: boolean(query.Get("case-sensitive"), true), - - Format: format, - }, nil -} - -// Copy streams the contents of the journalctl command executed with the current -// args to the provided writer, timing out at a.Timeout. If an error occurs a line -// is written to the output. -func (a *journalArgs) Copy(w io.Writer) { - // set the deadline to the maximum across both runs - ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(time.Duration(a.Timeout)*time.Second)) - defer cancel() - if a.Boot != nil { - a.copyForBoot(ctx, w, *a.Boot) - } else { - // show the previous boot if possible, eating errors - a.copyForBoot(ctx, w, -1) - // show the current boot - a.copyForBoot(ctx, w, 0) - } -} - -// copyForBoot invokes the provided args for a named boot record. If previousBoot is != 0, then -// errors are silently ignored. -func (a *journalArgs) copyForBoot(ctx context.Context, w io.Writer, previousBoot int) { - if ctx.Err() != nil { - return - } - - cmdStr, args := getLoggingCmd(a, previousBoot) - cmd := exec.Command(cmdStr, args...) - cmd.Stdout = w - cmd.Stderr = w - - // force termination - go func() { - <-ctx.Done() - if p := cmd.Process; p != nil { - p.Kill() - } - }() - - if err := cmd.Run(); err != nil { - if _, ok := err.(*exec.ExitError); ok { - return - } - if previousBoot == 0 { - fmt.Fprintf(w, "error: journal output not available\n") - } - } -} - -func stringInSlice(s string, allowed ...string) (string, error) { - for _, allow := range allowed { - if s == allow { - return allow, nil - } - } - return "", fmt.Errorf("only the following values are allowed: %s", strings.Join(allowed, ", ")) -} - -func boolean(s string, defaultValue bool) bool { - if len(s) == 0 { - return defaultValue - } - if s == "1" || s == "true" { - return true - } - return false -} - -func validIntRange(s string, min, max int) (*int, error) { - i, err := strconv.Atoi(s) - if err != nil { - return nil, err - } - if i < min || i > max { - return nil, fmt.Errorf("integer must be in range [%d, %d]", min, max) - } - return &i, nil -} - -func boundedIntegerOrDefault(s string, min, max, defaultValue int) int { - i, err := strconv.Atoi(s) - if err != nil { - i = defaultValue - } - if i < min { - i = min - } - if i > max { - i = max - } - return i -} - -var ( - reRelativeDate = regexp.MustCompile(`^(\+|\-)?[\d]+(s|m|h|d)$`) - // The set of known safe characters to pass to journalctl flags - only - // add to this list if the character cannot be used to create invalid - // sequences. This is intended as a broad defense against malformed - // input that could cause a journalctl escape. - reUnsafeCharacters = regexp.MustCompile(`[^a-zA-Z\-_.0-9\s@]+`) -) - -const ( - dateFormat = `2006-01-02 15:04:05.999999` - maxParameterLength = 100 - maxTotalLength = 1000 -) - -func validJournalDateRange(s string) (string, error) { - if len(s) == 0 { - return "", nil - } - if reRelativeDate.MatchString(s) { - return s, nil - } - if _, err := time.Parse(dateFormat, s); err == nil { - return s, nil - } - return "", fmt.Errorf("date must be a relative time of the form '(+|-)[0-9]+(s|m|h|d)' or a date in 'YYYY-MM-DD HH:MM:SS' form") -} - -func safeString(s string) (string, error) { - if len(s) > maxParameterLength { - return "", fmt.Errorf("input is too long, max length is %d", maxParameterLength) - } - if reUnsafeCharacters.MatchString(s) { - return "", fmt.Errorf("input contains unsupported characters") - } - return s, nil -} - -func safeStrings(arr []string) ([]string, error) { - var out []string - var total int - for _, s := range arr { - s, err := safeString(s) - if err != nil { - return nil, err - } - total += len(s) - if total > maxTotalLength { - return nil, fmt.Errorf("total input length across all values must be less than %d", maxTotalLength) - } - out = append(out, s) - } - return out, nil -} diff --git a/pkg/kubelet/kubelet_server_journal_linux.go b/pkg/kubelet/kubelet_server_journal_linux.go deleted file mode 100644 index 519ef209d3b78..0000000000000 --- a/pkg/kubelet/kubelet_server_journal_linux.go +++ /dev/null @@ -1,40 +0,0 @@ -// +build linux - -package kubelet - -import ( - "fmt" -) - -// getLoggingCmd returns the journalctl cmd and arguments for the given journalArgs and boot -func getLoggingCmd(a *journalArgs, boot int) (string, []string) { - args := []string{ - "--utc", - "--no-pager", - } - if len(a.Since) > 0 { - args = append(args, "--since="+a.Since) - } - if len(a.Until) > 0 { - args = append(args, "--until="+a.Until) - } - if a.Tail > 0 { - args = append(args, "--pager-end", fmt.Sprintf("--lines=%d", a.Tail)) - } - if len(a.Format) > 0 { - args = append(args, "--output="+a.Format) - } - for _, unit := range a.Units { - if len(unit) > 0 { - args = append(args, "--unit="+unit) - } - } - if len(a.Pattern) > 0 { - args = append(args, "--grep="+a.Pattern) - args = append(args, fmt.Sprintf("--case-sensitive=%t", a.CaseSensitive)) - } - - args = append(args, "--boot", fmt.Sprintf("%d", boot)) - - return "journalctl", args -} diff --git a/pkg/kubelet/kubelet_server_journal_others.go b/pkg/kubelet/kubelet_server_journal_others.go deleted file mode 100644 index b92583b40b20d..0000000000000 --- a/pkg/kubelet/kubelet_server_journal_others.go +++ /dev/null @@ -1,8 +0,0 @@ -// +build !linux,!windows - -package kubelet - -// getLoggingCmd on unsupported operating systems returns the echo command and a warning message (as strings) -func getLoggingCmd(a *journalArgs, boot int) (string, []string) { - return "echo", []string{"Operating System Not Supported"} -} diff --git a/pkg/kubelet/kubelet_server_journal_test.go b/pkg/kubelet/kubelet_server_journal_test.go deleted file mode 100644 index 7ccac8317a333..0000000000000 --- a/pkg/kubelet/kubelet_server_journal_test.go +++ /dev/null @@ -1,146 +0,0 @@ -package kubelet - -import ( - "net/url" - "reflect" - "runtime" - "strings" - "testing" - - "k8s.io/apimachinery/pkg/util/diff" -) - -func Test_journalArgs_Args(t *testing.T) { - tests := []struct { - name string - args journalArgs - wantLinux []string - wantWindows []string - wantOtherOS []string - }{ - { - args: journalArgs{}, - wantLinux: []string{"--utc", "--no-pager", "--boot", "0"}, - wantWindows: []string{"-NonInteractive", "-ExecutionPolicy", "Bypass", "-Command", "Get-WinEvent -FilterHashtable @{LogName='Application'} | Sort-Object TimeCreated | Format-Table -AutoSize -Wrap"}, - wantOtherOS: []string{"Operating System Not Supported"}, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - _, got := getLoggingCmd(&tt.args, 0) - switch os := runtime.GOOS; os { - case "linux": - if !reflect.DeepEqual(got, tt.wantLinux) { - t.Errorf("getLoggingCmd(journalArgs{}, 0) = %v, want %v", got, tt.wantLinux) - } - case "windows": - if !reflect.DeepEqual(got, tt.wantWindows) { - t.Errorf("getLoggingCmd(journalArgs{}, 0) = %v, want %v", got, tt.wantWindows) - } - default: - if !reflect.DeepEqual(got, tt.wantOtherOS) { - t.Errorf("getLoggingCmd(journalArgs{}, 0) = %v, want %v", got, tt.wantWindows) - } - } - }) - } -} - -func repeatString(s string, times int) []string { - var arr []string - for i := 0; i < times; i++ { - arr = append(arr, s) - } - return arr -} - -func Test_newJournalArgsFromURL(t *testing.T) { - tests := []struct { - name string - query url.Values - want *journalArgs - wantErr bool - }{ - {query: url.Values{}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true}}, - {query: url.Values{"unknown": []string{"true"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true}}, - - {query: url.Values{"since": []string{""}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true}}, - {query: url.Values{"since": []string{"1m"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true, Since: "1m"}}, - {query: url.Values{"since": []string{"12d"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true, Since: "12d"}}, - {query: url.Values{"since": []string{"516s"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true, Since: "516s"}}, - {query: url.Values{"since": []string{"-516s"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true, Since: "-516s"}}, - {query: url.Values{"since": []string{"1y"}}, wantErr: true}, - {query: url.Values{"since": []string{"1"}}, wantErr: true}, - {query: url.Values{"since": []string{"y"}}, wantErr: true}, - {query: url.Values{"since": []string{"-1"}}, wantErr: true}, - {query: url.Values{"since": []string{"-y"}}, wantErr: true}, - {query: url.Values{"since": []string{"2019-12-04 02:00:00"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true, Since: "2019-12-04 02:00:00"}}, - {query: url.Values{"since": []string{"2019-12-04 02:00:00.000"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true, Since: "2019-12-04 02:00:00.000"}}, - {query: url.Values{"since": []string{"2019-12-04 02"}}, wantErr: true}, - {query: url.Values{"since": []string{"2019-12-04 02:00"}}, wantErr: true}, - {query: url.Values{"since": []string{"2019-12-04T02:00:00Z"}}, wantErr: true}, - - {query: url.Values{"until": []string{""}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true}}, - {query: url.Values{"until": []string{"1m"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true, Until: "1m"}}, - {query: url.Values{"until": []string{"-y"}}, wantErr: true}, - {query: url.Values{"until": []string{"2019-12-04 02:00:00"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true, Until: "2019-12-04 02:00:00"}}, - {query: url.Values{"until": []string{"2019-12-04 02:00:00.000"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true, Until: "2019-12-04 02:00:00.000"}}, - {query: url.Values{"until": []string{"2019-12-04 02"}}, wantErr: true}, - {query: url.Values{"until": []string{"2019-12-04 02:00"}}, wantErr: true}, - {query: url.Values{"until": []string{"2019-12-04T02:00:00Z"}}, wantErr: true}, - - {query: url.Values{"output": []string{"short", "precise"}}, want: &journalArgs{Timeout: 30, CaseSensitive: true, Format: "short"}}, - {query: url.Values{"output": []string{"short"}}, want: &journalArgs{Timeout: 30, CaseSensitive: true, Format: "short"}}, - {query: url.Values{"output": []string{""}}, want: &journalArgs{Timeout: 30, CaseSensitive: true, Format: "short-precise"}}, - - {query: url.Values{"tail": []string{"100"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true, Tail: 100}}, - {query: url.Values{"tail": []string{"10000000"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true, Tail: 100000}}, - - {query: url.Values{"case-sensitive": []string{"false"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: false}}, - {query: url.Values{"case-sensitive": []string{"0"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: false}}, - {query: url.Values{"case-sensitive": []string{"a"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: false}}, - - {query: url.Values{"grep": []string{"string"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true, Pattern: "string"}}, - {name: "long grep", query: url.Values{"grep": []string{strings.Repeat("abc", 100)}}, wantErr: true}, - {name: "total grep", query: url.Values{"grep": repeatString(strings.Repeat("a", 100), 2)}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true, Pattern: strings.Repeat("a", 100)}}, - - {query: url.Values{"unit": []string{"a"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true, Units: []string{"a"}}}, - {query: url.Values{"unit": []string{""}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true, Units: []string{""}}}, - {query: url.Values{"unit": []string{"a", "b"}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true, Units: []string{"a", "b"}}}, - - {name: "long unit", query: url.Values{"unit": []string{strings.Repeat("abc", 100)}}, wantErr: true}, - {name: "total unit", query: url.Values{"unit": repeatString(strings.Repeat("a", 100), 11)}, wantErr: true}, - - {query: url.Values{"boot": []string{"0"}}, want: &journalArgs{Boot: intPtr(0), Timeout: 30, Format: "short-precise", CaseSensitive: true}}, - {query: url.Values{"boot": []string{"-23"}}, want: &journalArgs{Boot: intPtr(-23), Timeout: 30, Format: "short-precise", CaseSensitive: true}}, - {query: url.Values{"boot": []string{"-100"}}, want: &journalArgs{Boot: intPtr(-100), Timeout: 30, Format: "short-precise", CaseSensitive: true}}, - {name: "empty value", query: url.Values{"boot": []string{""}}, want: &journalArgs{Timeout: 30, Format: "short-precise", CaseSensitive: true}}, - {name: "boot below range", query: url.Values{"boot": []string{"-101"}}, wantErr: true}, - {name: "boot above range", query: url.Values{"boot": []string{"1"}}, wantErr: true}, - {name: "boot below range", query: url.Values{"boot": []string{"-9999"}}, wantErr: true}, - {name: "boot above range", query: url.Values{"boot": []string{"9999"}}, wantErr: true}, - {name: "boot not int", query: url.Values{"boot": []string{"a"}}, wantErr: true}, - {name: "boot", query: url.Values{"boot": []string{"x"}}, wantErr: true}, - {name: "boot", query: url.Values{"boot": []string{" "}}, wantErr: true}, - } - for _, tt := range tests { - name := tt.name - if len(name) == 0 { - name = tt.query.Encode() - } - t.Run(name, func(t *testing.T) { - got, err := newJournalArgsFromURL(tt.query) - if (err != nil) != tt.wantErr { - t.Errorf("newJournalArgsFromURL() error = %v, wantErr %v", err, tt.wantErr) - return - } - if !reflect.DeepEqual(got, tt.want) { - t.Errorf("different: %s", diff.ObjectReflectDiff(tt.want, got)) - } - }) - } -} - -func intPtr(i int) *int { - return &i -} diff --git a/pkg/kubelet/kubelet_server_journal_windows.go b/pkg/kubelet/kubelet_server_journal_windows.go deleted file mode 100644 index 695693f62015d..0000000000000 --- a/pkg/kubelet/kubelet_server_journal_windows.go +++ /dev/null @@ -1,53 +0,0 @@ -// +build windows - -package kubelet - -import ( - "fmt" - "strings" -) - -// getLoggingCmd returns the powershell cmd and arguments for the given journalArgs and boot -func getLoggingCmd(a *journalArgs, boot int) (string, []string) { - // The WinEvent log does not support querying by boot - // Set the cmd to return true on windows in case boot is not 0 - if boot != 0 { - return "cd.", []string{} - } - - args := []string{ - "-NonInteractive", - "-ExecutionPolicy", "Bypass", - "-Command", - } - - psCmd := "Get-WinEvent -FilterHashtable @{LogName='Application'" - if len(a.Since) > 0 { - psCmd += fmt.Sprintf("; StartTime='%s'", a.Since) - } - if len(a.Until) > 0 { - psCmd += fmt.Sprintf("; EndTime='%s'", a.Until) - } - var units []string - for _, unit := range a.Units { - if len(unit) > 0 { - units = append(units, "'"+unit+"'") - } - } - if len(units) > 0 { - psCmd += fmt.Sprintf("; ProviderName=%s", strings.Join(units, ",")) - } - psCmd += "}" - if a.Tail > 0 { - psCmd += fmt.Sprintf(" -MaxEvents %d", a.Tail) - } - psCmd += " | Sort-Object TimeCreated" - if len(a.Pattern) > 0 { - psCmd += fmt.Sprintf(" | Where-Object -Property Message -Match %s", a.Pattern) - } - psCmd += " | Format-Table -AutoSize -Wrap" - - args = append(args, psCmd) - - return "PowerShell.exe", args -} diff --git a/pkg/kubelet/kubelet_test.go b/pkg/kubelet/kubelet_test.go index 6afd651e3074e..b79ce11c241e1 100644 --- a/pkg/kubelet/kubelet_test.go +++ b/pkg/kubelet/kubelet_test.go @@ -1709,38 +1709,6 @@ func TestGenerateAPIPodStatusWithReasonCache(t *testing.T) { }}, }, }, - // For Unknown Container Status: - // * In certain situations a container can be running and fail to retrieve the status which results in - // * a transition to the Unknown state. Prior to this fix, a container would make an invalid transition - // * from Running->Waiting. This test validates the correct behavior of transitioning from Running->Terminated. - { - containers: []v1.Container{{Name: "unknown"}}, - statuses: []*kubecontainer.Status{ - { - Name: "unknown", - State: kubecontainer.ContainerStateUnknown, - }, - { - Name: "unknown", - State: kubecontainer.ContainerStateRunning, - }, - }, - reasons: map[string]error{}, - oldStatuses: []v1.ContainerStatus{{ - Name: "unknown", - State: v1.ContainerState{Running: &v1.ContainerStateRunning{}}, - }}, - expectedState: map[string]v1.ContainerState{ - "unknown": {Terminated: &v1.ContainerStateTerminated{ - ExitCode: 137, - Message: "The container could not be located when the pod was terminated", - Reason: "ContainerStatusUnknown", - }}, - }, - expectedLastTerminationState: map[string]v1.ContainerState{ - "unknown": {Running: &v1.ContainerStateRunning{}}, - }, - }, } for i, test := range tests { diff --git a/pkg/kubelet/kubelet_volumes.go b/pkg/kubelet/kubelet_volumes.go index ac8e3e2baee93..da43701d1b416 100644 --- a/pkg/kubelet/kubelet_volumes.go +++ b/pkg/kubelet/kubelet_volumes.go @@ -18,6 +18,7 @@ package kubelet import ( "fmt" + "syscall" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" @@ -120,25 +121,49 @@ func (kl *Kubelet) cleanupOrphanedPodDirs(pods []*v1.Pod, runningPods []*kubecon klog.V(3).Infof("Orphaned pod %q found, but volumes are not cleaned up", uid) continue } - // If there are still volume directories, do not delete directory + + allVolumesCleanedUp := true + + // If there are still volume directories, attempt to rmdir them volumePaths, err := kl.getPodVolumePathListFromDisk(uid) if err != nil { orphanVolumeErrors = append(orphanVolumeErrors, fmt.Errorf("orphaned pod %q found, but error %v occurred during reading volume dir from disk", uid, err)) continue } if len(volumePaths) > 0 { - orphanVolumeErrors = append(orphanVolumeErrors, fmt.Errorf("orphaned pod %q found, but volume paths are still present on disk", uid)) - continue + for _, volumePath := range volumePaths { + if err := syscall.Rmdir(volumePath); err != nil { + orphanVolumeErrors = append(orphanVolumeErrors, fmt.Errorf("orphaned pod %q found, but failed to rmdir() volume at path %v: %v", uid, volumePath, err)) + allVolumesCleanedUp = false + } else { + klog.Warningf("Cleaned up orphaned volume from pod %q at %s", uid, volumePath) + } + } } - // If there are any volume-subpaths, do not cleanup directories - volumeSubpathExists, err := kl.podVolumeSubpathsDirExists(uid) + // If there are any volume-subpaths, attempt to rmdir them + subpathVolumePaths, err := kl.getPodVolumeSubpathListFromDisk(uid) if err != nil { orphanVolumeErrors = append(orphanVolumeErrors, fmt.Errorf("orphaned pod %q found, but error %v occurred during reading of volume-subpaths dir from disk", uid, err)) continue } - if volumeSubpathExists { - orphanVolumeErrors = append(orphanVolumeErrors, fmt.Errorf("orphaned pod %q found, but volume subpaths are still present on disk", uid)) + if len(subpathVolumePaths) > 0 { + for _, subpathVolumePath := range subpathVolumePaths { + if err := syscall.Rmdir(subpathVolumePath); err != nil { + orphanVolumeErrors = append(orphanVolumeErrors, fmt.Errorf("orphaned pod %q found, but failed to rmdir() subpath at path %v: %v", uid, subpathVolumePath, err)) + allVolumesCleanedUp = false + } else { + klog.Warningf("Cleaned up orphaned volume subpath from pod %q at %s", uid, subpathVolumePath) + } + } + } + + if !allVolumesCleanedUp { + // Not all volumes were removed, so don't clean up the pod directory yet. It is likely + // that there are still mountpoints left which could stall RemoveAllOneFilesystem which + // would otherwise be called below. + // Errors for all removal operations have already been recorded, so don't add another + // one here. continue } diff --git a/pkg/kubelet/kubelet_volumes_linux_test.go b/pkg/kubelet/kubelet_volumes_linux_test.go index bd1c073b11fe8..209e8d5f7982c 100644 --- a/pkg/kubelet/kubelet_volumes_linux_test.go +++ b/pkg/kubelet/kubelet_volumes_linux_test.go @@ -101,7 +101,7 @@ func TestCleanupOrphanedPodDirs(t *testing.T) { }, validateFunc: func(kubelet *Kubelet) error { podDir := kubelet.getPodDir("pod1uid") - return validateDirExists(filepath.Join(podDir, "volumes/plugin/name")) + return validateDirNotExists(podDir) }, }, "pod-doesnot-exist-with-subpath": { @@ -111,7 +111,7 @@ func TestCleanupOrphanedPodDirs(t *testing.T) { }, validateFunc: func(kubelet *Kubelet) error { podDir := kubelet.getPodDir("pod1uid") - return validateDirExists(filepath.Join(podDir, "volume-subpaths/volume/container/index")) + return validateDirNotExists(podDir) }, }, "pod-doesnot-exist-with-subpath-top": { @@ -121,7 +121,35 @@ func TestCleanupOrphanedPodDirs(t *testing.T) { }, validateFunc: func(kubelet *Kubelet) error { podDir := kubelet.getPodDir("pod1uid") - return validateDirExists(filepath.Join(podDir, "volume-subpaths")) + return validateDirNotExists(podDir) + }, + }, + "pod-doesnot-exists-with-populated-volume": { + prepareFunc: func(kubelet *Kubelet) error { + podDir := kubelet.getPodDir("pod1uid") + volumePath := filepath.Join(podDir, "volumes/plugin/name") + if err := os.MkdirAll(volumePath, 0750); err != nil { + return err + } + return ioutil.WriteFile(filepath.Join(volumePath, "test.txt"), []byte("test1"), 0640) + }, + validateFunc: func(kubelet *Kubelet) error { + podDir := kubelet.getPodDir("pod1uid") + return validateDirExists(filepath.Join(podDir, "volumes/plugin/name")) + }, + }, + "pod-doesnot-exists-with-populated-subpath": { + prepareFunc: func(kubelet *Kubelet) error { + podDir := kubelet.getPodDir("pod1uid") + subPath := filepath.Join(podDir, "volume-subpaths/volume/container/index") + if err := os.MkdirAll(subPath, 0750); err != nil { + return err + } + return ioutil.WriteFile(filepath.Join(subPath, "test.txt"), []byte("test1"), 0640) + }, + validateFunc: func(kubelet *Kubelet) error { + podDir := kubelet.getPodDir("pod1uid") + return validateDirExists(filepath.Join(podDir, "volume-subpaths/volume/container/index")) }, }, // TODO: test volume in volume-manager diff --git a/pkg/kubelet/kuberuntime/kuberuntime_container_windows.go b/pkg/kubelet/kuberuntime/kuberuntime_container_windows.go index 403c018b51c4a..eeb08d79bf1c7 100644 --- a/pkg/kubelet/kuberuntime/kuberuntime_container_windows.go +++ b/pkg/kubelet/kuberuntime/kuberuntime_container_windows.go @@ -19,6 +19,7 @@ limitations under the License. package kuberuntime import ( + "fmt" "runtime" "k8s.io/api/core/v1" @@ -124,31 +125,9 @@ func (m *kubeGenericRuntimeManager) generateWindowsContainerConfig(container *v1 // setup security context effectiveSc := securitycontext.DetermineEffectiveSecurityContext(pod, container) - - // Strip down all the unnecessary options on the Windows - if effectiveSc.SELinuxOptions != nil { - effectiveSc.SELinuxOptions = nil - } - - if effectiveSc.AllowPrivilegeEscalation != nil { - effectiveSc.AllowPrivilegeEscalation = nil - } - - if effectiveSc.Capabilities != nil { - effectiveSc.Capabilities = nil - } - - if effectiveSc.Privileged != nil { - effectiveSc.Privileged = nil - } - - if effectiveSc.ProcMount != nil { - effectiveSc.ProcMount = nil - } - // RunAsUser only supports int64 from Kubernetes API, but Windows containers only support username. if effectiveSc.RunAsUser != nil { - effectiveSc.RunAsUser = nil + return nil, fmt.Errorf("run as uid (%d) is not supported on Windows", *effectiveSc.RunAsUser) } if username != "" { wc.SecurityContext.RunAsUsername = username diff --git a/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go b/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go index 68a38125367ba..0978044f7539d 100644 --- a/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go +++ b/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go @@ -20,7 +20,6 @@ import ( "fmt" "net" "net/url" - "runtime" "sort" v1 "k8s.io/api/core/v1" @@ -144,9 +143,6 @@ func (m *kubeGenericRuntimeManager) generatePodSandboxConfig(pod *v1.Pod, attemp } // generatePodSandboxLinuxConfig generates LinuxPodSandboxConfig from v1.Pod. -// We've to call PodSandboxLinuxConfig always irrespective of the underlying OS as securityContext is not part of -// podSandboxConfig. It is currently part of LinuxPodSandboxConfig. In future, if we have securityContext pulled out -// in podSandboxConfig we should be able to use it. func (m *kubeGenericRuntimeManager) generatePodSandboxLinuxConfig(pod *v1.Pod) (*runtimeapi.LinuxPodSandboxConfig, error) { cgroupParent := m.runtimeHelper.GetPodCgroupParent(pod) lc := &runtimeapi.LinuxPodSandboxConfig{ @@ -173,15 +169,15 @@ func (m *kubeGenericRuntimeManager) generatePodSandboxLinuxConfig(pod *v1.Pod) ( if pod.Spec.SecurityContext != nil { sc := pod.Spec.SecurityContext - if sc.RunAsUser != nil && runtime.GOOS != "windows" { + if sc.RunAsUser != nil { lc.SecurityContext.RunAsUser = &runtimeapi.Int64Value{Value: int64(*sc.RunAsUser)} } - if sc.RunAsGroup != nil && runtime.GOOS != "windows" { + if sc.RunAsGroup != nil { lc.SecurityContext.RunAsGroup = &runtimeapi.Int64Value{Value: int64(*sc.RunAsGroup)} } lc.SecurityContext.NamespaceOptions = namespacesForPod(pod) - if sc.FSGroup != nil && runtime.GOOS != "windows" { + if sc.FSGroup != nil { lc.SecurityContext.SupplementalGroups = append(lc.SecurityContext.SupplementalGroups, int64(*sc.FSGroup)) } if groups := m.runtimeHelper.GetExtraSupplementalGroupsForPod(pod); len(groups) > 0 { @@ -192,7 +188,7 @@ func (m *kubeGenericRuntimeManager) generatePodSandboxLinuxConfig(pod *v1.Pod) ( lc.SecurityContext.SupplementalGroups = append(lc.SecurityContext.SupplementalGroups, int64(sg)) } } - if sc.SELinuxOptions != nil && runtime.GOOS != "windows" { + if sc.SELinuxOptions != nil { lc.SecurityContext.SelinuxOptions = &runtimeapi.SELinuxOption{ User: sc.SELinuxOptions.User, Role: sc.SELinuxOptions.Role, diff --git a/pkg/kubelet/pluginmanager/pluginwatcher/example_plugin_apis/v1beta1/api.pb.go b/pkg/kubelet/pluginmanager/pluginwatcher/example_plugin_apis/v1beta1/api.pb.go index 7628a199b73bd..bbe39bddeaa58 100644 --- a/pkg/kubelet/pluginmanager/pluginwatcher/example_plugin_apis/v1beta1/api.pb.go +++ b/pkg/kubelet/pluginmanager/pluginwatcher/example_plugin_apis/v1beta1/api.pb.go @@ -491,10 +491,7 @@ func (m *ExampleRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -576,10 +573,7 @@ func (m *ExampleResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { diff --git a/pkg/kubelet/pluginmanager/pluginwatcher/example_plugin_apis/v1beta2/api.pb.go b/pkg/kubelet/pluginmanager/pluginwatcher/example_plugin_apis/v1beta2/api.pb.go index 79f40af452020..85bfc66c3bc8a 100644 --- a/pkg/kubelet/pluginmanager/pluginwatcher/example_plugin_apis/v1beta2/api.pb.go +++ b/pkg/kubelet/pluginmanager/pluginwatcher/example_plugin_apis/v1beta2/api.pb.go @@ -492,10 +492,7 @@ func (m *ExampleRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -577,10 +574,7 @@ func (m *ExampleResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { diff --git a/pkg/kubelet/pluginmanager/pluginwatcher/plugin_watcher.go b/pkg/kubelet/pluginmanager/pluginwatcher/plugin_watcher.go index f4cacfe031604..2a869c186a14a 100644 --- a/pkg/kubelet/pluginmanager/pluginwatcher/plugin_watcher.go +++ b/pkg/kubelet/pluginmanager/pluginwatcher/plugin_watcher.go @@ -160,6 +160,12 @@ func (w *Watcher) handleCreateEvent(event fsnotify.Event) error { klog.V(6).Infof("Handling create event: %v", event) fi, err := os.Stat(event.Name) + // TODO: This is a workaround for Windows 20H2 issue for os.Stat(). Please see + // microsoft/Windows-Containers#97 for details. + // Once the issue is resvolved, the following os.Lstat() is not needed. + if err != nil && runtime.GOOS == "windows" { + fi, err = os.Lstat(event.Name) + } if err != nil { return fmt.Errorf("stat file %s failed: %v", event.Name, err) } diff --git a/pkg/kubelet/prober/worker.go b/pkg/kubelet/prober/worker.go index 1efffe5888fa2..d64cdc80782d0 100644 --- a/pkg/kubelet/prober/worker.go +++ b/pkg/kubelet/prober/worker.go @@ -222,6 +222,20 @@ func (w *worker) doProbe() (keepGoing bool) { w.pod.Spec.RestartPolicy != v1.RestartPolicyNever } + // Graceful shutdown of the pod. + if w.pod.ObjectMeta.DeletionTimestamp != nil && (w.probeType == liveness || w.probeType == startup) { + klog.V(3).Infof("Pod deletion requested, setting %v probe result to success: %v - %v", + w.probeType.String(), format.Pod(w.pod), w.container.Name) + if w.probeType == startup { + klog.Warningf("Pod deletion requested before container has fully started: %v - %v", + format.Pod(w.pod), w.container.Name) + } + // Set a last result to ensure quiet shutdown. + w.resultsManager.Set(w.containerID, results.Success, w.pod) + // Stop probing at this point. + return false + } + // Probe disabled for InitialDelaySeconds. if int32(time.Since(c.State.Running.StartedAt.Time).Seconds()) < w.spec.InitialDelaySeconds { return true @@ -229,6 +243,7 @@ func (w *worker) doProbe() (keepGoing bool) { if c.Started != nil && *c.Started { // Stop probing for startup once container has started. + // we keep it running to make sure it will work for restarted container. if w.probeType == startup { return true } diff --git a/pkg/kubelet/prober/worker_test.go b/pkg/kubelet/prober/worker_test.go index c2e3cba971c47..7f6d0c9f8ef85 100644 --- a/pkg/kubelet/prober/worker_test.go +++ b/pkg/kubelet/prober/worker_test.go @@ -58,25 +58,47 @@ func TestDoProbe(t *testing.T) { failedStatus.Phase = v1.PodFailed tests := []struct { - probe v1.Probe - podStatus *v1.PodStatus - expectContinue bool - expectSet bool - expectedResult results.Result + probe v1.Probe + podStatus *v1.PodStatus + expectContinue map[string]bool + expectSet bool + expectedResult results.Result + setDeletionTimestamp bool }{ { // No status. - expectContinue: true, + expectContinue: map[string]bool{ + liveness.String(): true, + readiness.String(): true, + startup.String(): true, + }, }, { // Pod failed podStatus: &failedStatus, }, + { // Pod deletion + podStatus: &runningStatus, + setDeletionTimestamp: true, + expectSet: true, + expectContinue: map[string]bool{ + readiness.String(): true, + }, + expectedResult: results.Success, + }, { // No container status - podStatus: &otherStatus, - expectContinue: true, + podStatus: &otherStatus, + expectContinue: map[string]bool{ + liveness.String(): true, + readiness.String(): true, + startup.String(): true, + }, }, { // Container waiting - podStatus: &pendingStatus, - expectContinue: true, + podStatus: &pendingStatus, + expectContinue: map[string]bool{ + liveness.String(): true, + readiness.String(): true, + startup.String(): true, + }, expectSet: true, expectedResult: results.Failure, }, @@ -86,8 +108,12 @@ func TestDoProbe(t *testing.T) { expectedResult: results.Failure, }, { // Probe successful. - podStatus: &runningStatus, - expectContinue: true, + podStatus: &runningStatus, + expectContinue: map[string]bool{ + liveness.String(): true, + readiness.String(): true, + startup.String(): true, + }, expectSet: true, expectedResult: results.Success, }, @@ -96,7 +122,11 @@ func TestDoProbe(t *testing.T) { probe: v1.Probe{ InitialDelaySeconds: -100, }, - expectContinue: true, + expectContinue: map[string]bool{ + liveness.String(): true, + readiness.String(): true, + startup.String(): true, + }, expectSet: true, expectedResult: results.Success, }, @@ -107,8 +137,12 @@ func TestDoProbe(t *testing.T) { if test.podStatus != nil { m.statusManager.SetPodStatus(w.pod, *test.podStatus) } - if c := w.doProbe(); c != test.expectContinue { - t.Errorf("[%s-%d] Expected continue to be %v but got %v", probeType, i, test.expectContinue, c) + if test.setDeletionTimestamp { + now := metav1.Now() + w.pod.ObjectMeta.DeletionTimestamp = &now + } + if c := w.doProbe(); c != test.expectContinue[probeType.String()] { + t.Errorf("[%s-%d] Expected continue to be %v but got %v", probeType, i, test.expectContinue[probeType.String()], c) } result, ok := resultsManager(m, probeType).Get(testContainerID) if ok != test.expectSet { diff --git a/pkg/kubelet/server/server.go b/pkg/kubelet/server/server.go index cdb07be24696a..9026b785801a4 100644 --- a/pkg/kubelet/server/server.go +++ b/pkg/kubelet/server/server.go @@ -939,7 +939,7 @@ var statusesNoTracePred = httplog.StatusIsNot( // ServeHTTP responds to HTTP requests on the Kubelet. func (s *Server) ServeHTTP(w http.ResponseWriter, req *http.Request) { - handler := httplog.WithLogging(s.restfulCont, statusesNoTracePred, nil) + handler := httplog.WithLogging(s.restfulCont, statusesNoTracePred) // monitor http requests var serverType string diff --git a/pkg/kubelet/stats/cri_stats_provider.go b/pkg/kubelet/stats/cri_stats_provider.go index 6027f7095d6b6..1f5742aab9b42 100644 --- a/pkg/kubelet/stats/cri_stats_provider.go +++ b/pkg/kubelet/stats/cri_stats_provider.go @@ -292,7 +292,7 @@ func (p *criStatsProvider) ListPodCPUAndMemoryStats() ([]statsapi.PodStats, erro if !caFound { klog.V(4).Infof("Unable to find cadvisor stats for %q", containerID) } else { - p.addCadvisorContainerStats(cs, &caStats) + p.addCadvisorContainerCPUAndMemoryStats(cs, &caStats) } ps.Containers = append(ps.Containers, *cs) } @@ -785,6 +785,25 @@ func (p *criStatsProvider) addCadvisorContainerStats( cs.UserDefinedMetrics = cadvisorInfoToUserDefinedMetrics(caPodStats) } + cpu, memory := cadvisorInfoToCPUandMemoryStats(caPodStats) + if cpu != nil { + cs.CPU = cpu + } + if memory != nil { + cs.Memory = memory + } + accelerators := cadvisorInfoToAcceleratorStats(caPodStats) + cs.Accelerators = accelerators +} + +func (p *criStatsProvider) addCadvisorContainerCPUAndMemoryStats( + cs *statsapi.ContainerStats, + caPodStats *cadvisorapiv2.ContainerInfo, +) { + if caPodStats.Spec.HasCustomMetrics { + cs.UserDefinedMetrics = cadvisorInfoToUserDefinedMetrics(caPodStats) + } + cpu, memory := cadvisorInfoToCPUandMemoryStats(caPodStats) if cpu != nil { cs.CPU = cpu diff --git a/pkg/kubelet/stats/cri_stats_provider_test.go b/pkg/kubelet/stats/cri_stats_provider_test.go index d4d5e7c195b63..c90f3bbf8ff70 100644 --- a/pkg/kubelet/stats/cri_stats_provider_test.go +++ b/pkg/kubelet/stats/cri_stats_provider_test.go @@ -259,11 +259,14 @@ func TestCRIListPodStats(t *testing.T) { c0 := containerStatsMap[cName0] assert.Equal(container0.CreatedAt, c0.StartTime.UnixNano()) checkCRICPUAndMemoryStats(assert, c0, infos[container0.ContainerStatus.Id].Stats[0]) + checkCRIAcceleratorStats(assert, c0, infos[container0.ContainerStatus.Id].Stats[0]) checkCRIRootfsStats(assert, c0, containerStats0, &imageFsInfo) checkCRILogsStats(assert, c0, &rootFsInfo, containerLogStats0) + c1 := containerStatsMap[cName1] assert.Equal(container1.CreatedAt, c1.StartTime.UnixNano()) checkCRICPUAndMemoryStats(assert, c1, infos[container1.ContainerStatus.Id].Stats[0]) + checkCRIAcceleratorStats(assert, c1, infos[container1.ContainerStatus.Id].Stats[0]) checkCRIRootfsStats(assert, c1, containerStats1, nil) checkCRILogsStats(assert, c1, &rootFsInfo, containerLogStats1) checkCRINetworkStats(assert, p0.Network, infos[sandbox0.PodSandboxStatus.Id].Stats[0].Network) @@ -279,6 +282,7 @@ func TestCRIListPodStats(t *testing.T) { assert.Equal(cName2, c2.Name) assert.Equal(container2.CreatedAt, c2.StartTime.UnixNano()) checkCRICPUAndMemoryStats(assert, c2, infos[container2.ContainerStatus.Id].Stats[0]) + checkCRIAcceleratorStats(assert, c2, infos[container2.ContainerStatus.Id].Stats[0]) checkCRIRootfsStats(assert, c2, containerStats2, &imageFsInfo) checkCRILogsStats(assert, c2, &rootFsInfo, containerLogStats2) checkCRINetworkStats(assert, p1.Network, infos[sandbox1.PodSandboxStatus.Id].Stats[0].Network) @@ -295,6 +299,7 @@ func TestCRIListPodStats(t *testing.T) { assert.Equal(cName3, c3.Name) assert.Equal(container4.CreatedAt, c3.StartTime.UnixNano()) checkCRICPUAndMemoryStats(assert, c3, infos[container4.ContainerStatus.Id].Stats[0]) + checkCRIAcceleratorStats(assert, c3, infos[container4.ContainerStatus.Id].Stats[0]) checkCRIRootfsStats(assert, c3, containerStats4, &imageFsInfo) checkCRILogsStats(assert, c3, &rootFsInfo, containerLogStats4) @@ -674,6 +679,18 @@ func checkCRICPUAndMemoryStats(assert *assert.Assertions, actual statsapi.Contai assert.Equal(cs.Memory.ContainerData.Pgmajfault, *actual.Memory.MajorPageFaults) } +func checkCRIAcceleratorStats(assert *assert.Assertions, actual statsapi.ContainerStats, cs *cadvisorapiv2.ContainerStats) { + assert.Equal(len(cs.Accelerators), len(actual.Accelerators)) + for i := range cs.Accelerators { + assert.Equal(cs.Accelerators[i].Make, actual.Accelerators[i].Make) + assert.Equal(cs.Accelerators[i].Model, actual.Accelerators[i].Model) + assert.Equal(cs.Accelerators[i].ID, actual.Accelerators[i].ID) + assert.Equal(cs.Accelerators[i].MemoryTotal, actual.Accelerators[i].MemoryTotal) + assert.Equal(cs.Accelerators[i].MemoryUsed, actual.Accelerators[i].MemoryUsed) + assert.Equal(cs.Accelerators[i].DutyCycle, actual.Accelerators[i].DutyCycle) + } +} + func checkCRIRootfsStats(assert *assert.Assertions, actual statsapi.ContainerStats, cs *runtimeapi.ContainerStats, imageFsInfo *cadvisorapiv2.FsInfo) { assert.Equal(cs.WritableLayer.Timestamp, actual.Rootfs.Time.UnixNano()) if imageFsInfo != nil { diff --git a/pkg/kubelet/stats/helper.go b/pkg/kubelet/stats/helper.go index e34d9d5ca8c30..c718790016aa9 100644 --- a/pkg/kubelet/stats/helper.go +++ b/pkg/kubelet/stats/helper.go @@ -153,6 +153,27 @@ func cadvisorInfoToContainerCPUAndMemoryStats(name string, info *cadvisorapiv2.C return result } +// cadvisorInfoToAcceleratorStats returns the statsapi.AcceleratorStats converted from +// the container info from cadvisor. +func cadvisorInfoToAcceleratorStats(info *cadvisorapiv2.ContainerInfo) []statsapi.AcceleratorStats { + cstat, found := latestContainerStats(info) + if !found { + return nil + } + var result []statsapi.AcceleratorStats + for _, acc := range cstat.Accelerators { + result = append(result, statsapi.AcceleratorStats{ + Make: acc.Make, + Model: acc.Model, + ID: acc.ID, + MemoryTotal: acc.MemoryTotal, + MemoryUsed: acc.MemoryUsed, + DutyCycle: acc.DutyCycle, + }) + } + return result +} + func cadvisorInfoToProcessStats(info *cadvisorapiv2.ContainerInfo) *statsapi.ProcessStats { cstat, found := latestContainerStats(info) if !found || cstat.Processes == nil { diff --git a/pkg/kubelet/stats/stats_provider_test.go b/pkg/kubelet/stats/stats_provider_test.go index a830af322e155..e29e0afa6858b 100644 --- a/pkg/kubelet/stats/stats_provider_test.go +++ b/pkg/kubelet/stats/stats_provider_test.go @@ -59,6 +59,7 @@ const ( offsetFsTotalUsageBytes offsetFsBaseUsageBytes offsetFsInodeUsage + offsetAcceleratorDutyCycle ) var ( @@ -499,6 +500,16 @@ func getTestContainerInfo(seed int, podName string, podNamespace string, contain BaseUsageBytes: &baseUsageBytes, InodeUsage: &inodeUsage, }, + Accelerators: []cadvisorapiv1.AcceleratorStats{ + { + Make: "nvidia", + Model: "Tesla K80", + ID: "foobar", + MemoryTotal: uint64(seed + offsetMemUsageBytes), + MemoryUsed: uint64(seed + offsetMemUsageBytes), + DutyCycle: uint64(seed + offsetAcceleratorDutyCycle), + }, + }, } stats.Cpu.Usage.Total = uint64(seed + offsetCPUUsageCoreSeconds) stats.CpuInst.Usage.Total = uint64(seed + offsetCPUUsageCores) diff --git a/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go b/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go index 9df3ea9cc0cef..5f43a2b6ecfde 100644 --- a/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go +++ b/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go @@ -563,7 +563,7 @@ func (dswp *desiredStateOfWorldPopulator) createVolumeSpec( return nil, nil, "", err } if migratable { - volumeSpec, err = csimigration.TranslateInTreeSpecToCSI(volumeSpec, dswp.intreeToCSITranslator) + volumeSpec, err = csimigration.TranslateInTreeSpecToCSI(volumeSpec, pod.Namespace, dswp.intreeToCSITranslator) if err != nil { return nil, nil, "", err } @@ -605,7 +605,7 @@ func (dswp *desiredStateOfWorldPopulator) createVolumeSpec( return nil, nil, "", err } if migratable { - spec, err = csimigration.TranslateInTreeSpecToCSI(spec, dswp.intreeToCSITranslator) + spec, err = csimigration.TranslateInTreeSpecToCSI(spec, pod.Namespace, dswp.intreeToCSITranslator) if err != nil { return nil, nil, "", err } diff --git a/pkg/master/controller.go b/pkg/master/controller.go index 1365788a4e6c2..fdc9f10c19fb4 100644 --- a/pkg/master/controller.go +++ b/pkg/master/controller.go @@ -52,7 +52,7 @@ type Controller struct { ServiceClient corev1client.ServicesGetter NamespaceClient corev1client.NamespacesGetter EventClient corev1client.EventsGetter - readyzClient rest.Interface + healthClient rest.Interface ServiceClusterIPRegistry rangeallocation.RangeRegistry ServiceClusterIPRange net.IPNet @@ -85,7 +85,7 @@ type Controller struct { } // NewBootstrapController returns a controller for watching the core capabilities of the master -func (c *completedConfig) NewBootstrapController(legacyRESTStorage corerest.LegacyRESTStorage, serviceClient corev1client.ServicesGetter, nsClient corev1client.NamespacesGetter, eventClient corev1client.EventsGetter, readyzClient rest.Interface) *Controller { +func (c *completedConfig) NewBootstrapController(legacyRESTStorage corerest.LegacyRESTStorage, serviceClient corev1client.ServicesGetter, nsClient corev1client.NamespacesGetter, eventClient corev1client.EventsGetter, healthClient rest.Interface) *Controller { _, publicServicePort, err := c.GenericConfig.SecureServing.HostPort() if err != nil { klog.Fatalf("failed to get listener address: %v", err) @@ -97,7 +97,7 @@ func (c *completedConfig) NewBootstrapController(legacyRESTStorage corerest.Lega ServiceClient: serviceClient, NamespaceClient: nsClient, EventClient: eventClient, - readyzClient: readyzClient, + healthClient: healthClient, EndpointReconciler: c.ExtraConfig.EndpointReconcilerConfig.Reconciler, EndpointInterval: c.ExtraConfig.EndpointReconcilerConfig.Interval, @@ -211,7 +211,7 @@ func (c *Controller) RunKubernetesService(ch chan struct{}) { // wait until process is ready wait.PollImmediateUntil(100*time.Millisecond, func() (bool, error) { var code int - c.readyzClient.Get().AbsPath("/readyz").Do(context.TODO()).StatusCode(&code) + c.healthClient.Get().AbsPath("/healthz").Do(context.TODO()).StatusCode(&code) return code == http.StatusOK, nil }, ch) diff --git a/pkg/master/controller/crdregistration/crdregistration_controller.go b/pkg/master/controller/crdregistration/crdregistration_controller.go index be4678760095a..f74b49e9625d7 100644 --- a/pkg/master/controller/crdregistration/crdregistration_controller.go +++ b/pkg/master/controller/crdregistration/crdregistration_controller.go @@ -32,8 +32,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" - v1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1" - "k8s.io/kube-aggregator/pkg/apiserver" + "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1" ) // AutoAPIServiceRegistration is an interface which callers can re-declare locally and properly cast to for @@ -194,14 +193,6 @@ func (c *crdRegistrationController) enqueueCRD(crd *apiextensionsv1.CustomResour func (c *crdRegistrationController) handleVersionUpdate(groupVersion schema.GroupVersion) error { apiServiceName := groupVersion.Version + "." + groupVersion.Group - if apiserver.APIServiceAlreadyExists(groupVersion) { - // Removing APIService from sync means the CRD registration controller won't sync this APIService - // anymore. If the APIService is managed externally, this will mean the external component can - // update this APIService without CRD controller stomping the changes on it. - c.apiServiceRegistration.RemoveAPIServiceToSync(apiServiceName) - return nil - } - // check all CRDs. There shouldn't that many, but if we have problems later we can index them crds, err := c.crdLister.List(labels.Everything()) if err != nil { @@ -221,8 +212,8 @@ func (c *crdRegistrationController) handleVersionUpdate(groupVersion schema.Grou Spec: v1.APIServiceSpec{ Group: groupVersion.Group, Version: groupVersion.Version, - GroupPriorityMinimum: getGroupPriorityMin(groupVersion.Group), // CRDs should have relatively low priority - VersionPriority: 100, // CRDs will be sorted by kube-like versions like any other APIService with the same VersionPriority + GroupPriorityMinimum: 1000, // CRDs should have relatively low priority + VersionPriority: 100, // CRDs will be sorted by kube-like versions like any other APIService with the same VersionPriority }, }) return nil diff --git a/pkg/master/controller/crdregistration/patch.go b/pkg/master/controller/crdregistration/patch.go deleted file mode 100644 index ea989b6e1ed06..0000000000000 --- a/pkg/master/controller/crdregistration/patch.go +++ /dev/null @@ -1,12 +0,0 @@ -package crdregistration - -func getGroupPriorityMin(group string) int32 { - switch group { - case "config.openshift.io": - return 1100 - case "operator.openshift.io": - return 1080 - default: - return 1000 - } -} diff --git a/pkg/proxy/winkernel/proxier.go b/pkg/proxy/winkernel/proxier.go index 6e2c614472bc4..efb6bf704ca11 100644 --- a/pkg/proxy/winkernel/proxier.go +++ b/pkg/proxy/winkernel/proxier.go @@ -317,21 +317,23 @@ func newSourceVIP(hns HostNetworkService, network string, ip string, mac string, func (ep *endpointsInfo) Cleanup() { Log(ep, "Endpoint Cleanup", 3) - if ep.refCount != nil { + if !ep.GetIsLocal() && ep.refCount != nil { *ep.refCount-- - } - // Remove the remote hns endpoint, if no service is referring it - // Never delete a Local Endpoint. Local Endpoints are already created by other entities. - // Remove only remote endpoints created by this service - if (ep.refCount == nil || *ep.refCount <= 0) && !ep.GetIsLocal() { - klog.V(4).Infof("Removing endpoints for %v, since no one is referencing it", ep) - err := ep.hns.deleteEndpoint(ep.hnsID) - if err == nil { - ep.hnsID = "" - } else { - klog.Errorf("Endpoint deletion failed for %v: %v", ep.IP(), err) + // Remove the remote hns endpoint, if no service is referring it + // Never delete a Local Endpoint. Local Endpoints are already created by other entities. + // Remove only remote endpoints created by this service + if *ep.refCount <= 0 && !ep.GetIsLocal() { + klog.V(4).Infof("Removing endpoints for %v, since no one is referencing it", ep) + err := ep.hns.deleteEndpoint(ep.hnsID) + if err == nil { + ep.hnsID = "" + } else { + klog.Errorf("Endpoint deletion failed for %v: %v", ep.IP(), err) + } } + + ep.refCount = nil } } @@ -368,7 +370,9 @@ func (proxier *Proxier) newServiceInfo(port *v1.ServicePort, service *v1.Service } for _, ingress := range service.Status.LoadBalancer.Ingress { - info.loadBalancerIngressIPs = append(info.loadBalancerIngressIPs, &loadBalancerIngressInfo{ip: ingress.IP}) + if net.ParseIP(ingress.IP) != nil { + info.loadBalancerIngressIPs = append(info.loadBalancerIngressIPs, &loadBalancerIngressInfo{ip: ingress.IP}) + } } return info } @@ -1108,10 +1112,10 @@ func (proxier *Proxier) syncProxyRules() { } else { // We only share the refCounts for remote endpoints ep.refCount = proxier.endPointsRefCount.getRefCount(newHnsEndpoint.hnsID) + *ep.refCount++ } ep.hnsID = newHnsEndpoint.hnsID - *ep.refCount++ Log(ep, "Endpoint resource found", 3) } diff --git a/pkg/proxy/winkernel/proxier_test.go b/pkg/proxy/winkernel/proxier_test.go index 01a46b44aa79b..f3a92c2171691 100644 --- a/pkg/proxy/winkernel/proxier_test.go +++ b/pkg/proxy/winkernel/proxier_test.go @@ -315,7 +315,329 @@ func TestCreateRemoteEndpointL2Bridge(t *testing.T) { t.Errorf("Global refCount: %v does not match endpoint refCount: %v", *proxier.endPointsRefCount[guid], *epInfo.refCount) } } +func TestSharedRemoteEndpointDelete(t *testing.T) { + syncPeriod := 30 * time.Second + proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", net.ParseIP("10.0.0.1"), "L2Bridge", false) + if proxier == nil { + t.Error() + } + + svcIP1 := "10.20.30.41" + svcPort1 := 80 + svcNodePort1 := 3001 + svcPortName1 := proxy.ServicePortName{ + NamespacedName: makeNSN("ns1", "svc1"), + Port: "p80", + Protocol: v1.ProtocolTCP, + } + + svcIP2 := "10.20.30.42" + svcPort2 := 80 + svcNodePort2 := 3002 + svcPortName2 := proxy.ServicePortName{ + NamespacedName: makeNSN("ns1", "svc2"), + Port: "p80", + Protocol: v1.ProtocolTCP, + } + + makeServiceMap(proxier, + makeTestService(svcPortName1.Namespace, svcPortName1.Name, func(svc *v1.Service) { + svc.Spec.Type = "NodePort" + svc.Spec.ClusterIP = svcIP1 + svc.Spec.Ports = []v1.ServicePort{{ + Name: svcPortName1.Port, + Port: int32(svcPort1), + Protocol: v1.ProtocolTCP, + NodePort: int32(svcNodePort1), + }} + }), + makeTestService(svcPortName2.Namespace, svcPortName2.Name, func(svc *v1.Service) { + svc.Spec.Type = "NodePort" + svc.Spec.ClusterIP = svcIP2 + svc.Spec.Ports = []v1.ServicePort{{ + Name: svcPortName2.Port, + Port: int32(svcPort2), + Protocol: v1.ProtocolTCP, + NodePort: int32(svcNodePort2), + }} + }), + ) + makeEndpointsMap(proxier, + makeTestEndpoints(svcPortName1.Namespace, svcPortName1.Name, func(ept *v1.Endpoints) { + ept.Subsets = []v1.EndpointSubset{{ + Addresses: []v1.EndpointAddress{{ + IP: epIpAddressRemote, + }}, + Ports: []v1.EndpointPort{{ + Name: svcPortName1.Port, + Port: int32(svcPort1), + Protocol: v1.ProtocolTCP, + }}, + }} + }), + makeTestEndpoints(svcPortName2.Namespace, svcPortName2.Name, func(ept *v1.Endpoints) { + ept.Subsets = []v1.EndpointSubset{{ + Addresses: []v1.EndpointAddress{{ + IP: epIpAddressRemote, + }}, + Ports: []v1.EndpointPort{{ + Name: svcPortName2.Port, + Port: int32(svcPort2), + Protocol: v1.ProtocolTCP, + }}, + }} + }), + ) + proxier.setInitialized(true) + proxier.syncProxyRules() + ep := proxier.endpointsMap[svcPortName1][0] + epInfo, ok := ep.(*endpointsInfo) + if !ok { + t.Errorf("Failed to cast endpointsInfo %q", svcPortName1.String()) + + } else { + if epInfo.hnsID != guid { + t.Errorf("%v does not match %v", epInfo.hnsID, guid) + } + } + + if *proxier.endPointsRefCount[guid] != 2 { + t.Errorf("RefCount not incremented. Current value: %v", *proxier.endPointsRefCount[guid]) + } + + if *proxier.endPointsRefCount[guid] != *epInfo.refCount { + t.Errorf("Global refCount: %v does not match endpoint refCount: %v", *proxier.endPointsRefCount[guid], *epInfo.refCount) + } + + proxier.setInitialized(false) + deleteServices(proxier, + makeTestService(svcPortName2.Namespace, svcPortName2.Name, func(svc *v1.Service) { + svc.Spec.Type = "NodePort" + svc.Spec.ClusterIP = svcIP2 + svc.Spec.Ports = []v1.ServicePort{{ + Name: svcPortName2.Port, + Port: int32(svcPort2), + Protocol: v1.ProtocolTCP, + NodePort: int32(svcNodePort2), + }} + }), + ) + + deleteEndpoints(proxier, + makeTestEndpoints(svcPortName2.Namespace, svcPortName2.Name, func(ept *v1.Endpoints) { + ept.Subsets = []v1.EndpointSubset{{ + Addresses: []v1.EndpointAddress{{ + IP: epIpAddressRemote, + }}, + Ports: []v1.EndpointPort{{ + Name: svcPortName2.Port, + Port: int32(svcPort2), + Protocol: v1.ProtocolTCP, + }}, + }} + }), + ) + + proxier.setInitialized(true) + proxier.syncProxyRules() + + ep = proxier.endpointsMap[svcPortName1][0] + epInfo, ok = ep.(*endpointsInfo) + if !ok { + t.Errorf("Failed to cast endpointsInfo %q", svcPortName1.String()) + + } else { + if epInfo.hnsID != guid { + t.Errorf("%v does not match %v", epInfo.hnsID, guid) + } + } + + if *epInfo.refCount != 1 { + t.Errorf("Incorrect Refcount. Current value: %v", *epInfo.refCount) + } + + if *proxier.endPointsRefCount[guid] != *epInfo.refCount { + t.Errorf("Global refCount: %v does not match endpoint refCount: %v", *proxier.endPointsRefCount[guid], *epInfo.refCount) + } +} +func TestSharedRemoteEndpointUpdate(t *testing.T) { + syncPeriod := 30 * time.Second + proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", net.ParseIP("10.0.0.1"), "L2Bridge", false) + if proxier == nil { + t.Error() + } + + svcIP1 := "10.20.30.41" + svcPort1 := 80 + svcNodePort1 := 3001 + svcPortName1 := proxy.ServicePortName{ + NamespacedName: makeNSN("ns1", "svc1"), + Port: "p80", + Protocol: v1.ProtocolTCP, + } + + svcIP2 := "10.20.30.42" + svcPort2 := 80 + svcNodePort2 := 3002 + svcPortName2 := proxy.ServicePortName{ + NamespacedName: makeNSN("ns1", "svc2"), + Port: "p80", + Protocol: v1.ProtocolTCP, + } + makeServiceMap(proxier, + makeTestService(svcPortName1.Namespace, svcPortName1.Name, func(svc *v1.Service) { + svc.Spec.Type = "NodePort" + svc.Spec.ClusterIP = svcIP1 + svc.Spec.Ports = []v1.ServicePort{{ + Name: svcPortName1.Port, + Port: int32(svcPort1), + Protocol: v1.ProtocolTCP, + NodePort: int32(svcNodePort1), + }} + }), + makeTestService(svcPortName2.Namespace, svcPortName2.Name, func(svc *v1.Service) { + svc.Spec.Type = "NodePort" + svc.Spec.ClusterIP = svcIP2 + svc.Spec.Ports = []v1.ServicePort{{ + Name: svcPortName2.Port, + Port: int32(svcPort2), + Protocol: v1.ProtocolTCP, + NodePort: int32(svcNodePort2), + }} + }), + ) + + makeEndpointsMap(proxier, + makeTestEndpoints(svcPortName1.Namespace, svcPortName1.Name, func(ept *v1.Endpoints) { + ept.Subsets = []v1.EndpointSubset{{ + Addresses: []v1.EndpointAddress{{ + IP: epIpAddressRemote, + }}, + Ports: []v1.EndpointPort{{ + Name: svcPortName1.Port, + Port: int32(svcPort1), + Protocol: v1.ProtocolTCP, + }}, + }} + }), + makeTestEndpoints(svcPortName2.Namespace, svcPortName2.Name, func(ept *v1.Endpoints) { + ept.Subsets = []v1.EndpointSubset{{ + Addresses: []v1.EndpointAddress{{ + IP: epIpAddressRemote, + }}, + Ports: []v1.EndpointPort{{ + Name: svcPortName2.Port, + Port: int32(svcPort2), + Protocol: v1.ProtocolTCP, + }}, + }} + }), + ) + proxier.setInitialized(true) + proxier.syncProxyRules() + ep := proxier.endpointsMap[svcPortName1][0] + epInfo, ok := ep.(*endpointsInfo) + if !ok { + t.Errorf("Failed to cast endpointsInfo %q", svcPortName1.String()) + + } else { + if epInfo.hnsID != guid { + t.Errorf("%v does not match %v", epInfo.hnsID, guid) + } + } + + if *proxier.endPointsRefCount[guid] != 2 { + t.Errorf("RefCount not incremented. Current value: %v", *proxier.endPointsRefCount[guid]) + } + + if *proxier.endPointsRefCount[guid] != *epInfo.refCount { + t.Errorf("Global refCount: %v does not match endpoint refCount: %v", *proxier.endPointsRefCount[guid], *epInfo.refCount) + } + + proxier.setInitialized(false) + + proxier.OnServiceUpdate( + makeTestService(svcPortName1.Namespace, svcPortName1.Name, func(svc *v1.Service) { + svc.Spec.Type = "NodePort" + svc.Spec.ClusterIP = svcIP1 + svc.Spec.Ports = []v1.ServicePort{{ + Name: svcPortName1.Port, + Port: int32(svcPort1), + Protocol: v1.ProtocolTCP, + NodePort: int32(svcNodePort1), + }} + }), + makeTestService(svcPortName1.Namespace, svcPortName1.Name, func(svc *v1.Service) { + svc.Spec.Type = "NodePort" + svc.Spec.ClusterIP = svcIP1 + svc.Spec.Ports = []v1.ServicePort{{ + Name: svcPortName1.Port, + Port: int32(svcPort1), + Protocol: v1.ProtocolTCP, + NodePort: int32(3003), + }} + })) + + proxier.OnEndpointsUpdate( + makeTestEndpoints(svcPortName1.Namespace, svcPortName1.Name, func(ept *v1.Endpoints) { + ept.Subsets = []v1.EndpointSubset{{ + Addresses: []v1.EndpointAddress{{ + IP: epIpAddressRemote, + }}, + Ports: []v1.EndpointPort{{ + Name: svcPortName1.Port, + Port: int32(svcPort1), + Protocol: v1.ProtocolTCP, + }}, + }} + }), + makeTestEndpoints(svcPortName1.Namespace, svcPortName1.Name, func(ept *v1.Endpoints) { + ept.Subsets = []v1.EndpointSubset{{ + Addresses: []v1.EndpointAddress{{ + IP: epIpAddressRemote, + }}, + Ports: []v1.EndpointPort{ + { + Name: svcPortName1.Port, + Port: int32(svcPort1), + Protocol: v1.ProtocolTCP, + }, + { + Name: "p443", + Port: int32(443), + Protocol: v1.ProtocolTCP, + }}, + }} + })) + + proxier.mu.Lock() + proxier.endpointsSynced = true + proxier.mu.Unlock() + + proxier.setInitialized(true) + proxier.syncProxyRules() + + ep = proxier.endpointsMap[svcPortName1][0] + epInfo, ok = ep.(*endpointsInfo) + + if !ok { + t.Errorf("Failed to cast endpointsInfo %q", svcPortName1.String()) + + } else { + if epInfo.hnsID != guid { + t.Errorf("%v does not match %v", epInfo.hnsID, guid) + } + } + + if *epInfo.refCount != 2 { + t.Errorf("Incorrect refcount. Current value: %v", *epInfo.refCount) + } + + if *proxier.endPointsRefCount[guid] != *epInfo.refCount { + t.Errorf("Global refCount: %v does not match endpoint refCount: %v", *proxier.endPointsRefCount[guid], *epInfo.refCount) + } +} func TestCreateLoadBalancer(t *testing.T) { syncPeriod := 30 * time.Second proxier := NewFakeProxier(syncPeriod, syncPeriod, clusterCIDR, "testhost", net.ParseIP("10.0.0.1"), "Overlay", false) @@ -487,6 +809,15 @@ func makeServiceMap(proxier *Proxier, allServices ...*v1.Service) { defer proxier.mu.Unlock() proxier.servicesSynced = true } +func deleteServices(proxier *Proxier, allServices ...*v1.Service) { + for i := range allServices { + proxier.OnServiceDelete(allServices[i]) + } + + proxier.mu.Lock() + defer proxier.mu.Unlock() + proxier.servicesSynced = true +} func makeTestService(namespace, name string, svcFunc func(*v1.Service)) *v1.Service { svc := &v1.Service{ ObjectMeta: metav1.ObjectMeta{ @@ -511,6 +842,16 @@ func makeEndpointsMap(proxier *Proxier, allEndpoints ...*v1.Endpoints) { proxier.endpointsSynced = true } +func deleteEndpoints(proxier *Proxier, allEndpoints ...*v1.Endpoints) { + for i := range allEndpoints { + proxier.OnEndpointsDelete(allEndpoints[i]) + } + + proxier.mu.Lock() + defer proxier.mu.Unlock() + proxier.endpointsSynced = true +} + func makeTestEndpoints(namespace, name string, eptFunc func(*v1.Endpoints)) *v1.Endpoints { ept := &v1.Endpoints{ ObjectMeta: metav1.ObjectMeta{ diff --git a/pkg/quota/v1/evaluator/core/BUILD b/pkg/quota/v1/evaluator/core/BUILD index 58cc57bfea315..db822ea26e5d9 100644 --- a/pkg/quota/v1/evaluator/core/BUILD +++ b/pkg/quota/v1/evaluator/core/BUILD @@ -46,6 +46,7 @@ go_test( embed = [":go_default_library"], deps = [ "//pkg/apis/core:go_default_library", + "//pkg/features:go_default_library", "//pkg/quota/v1:go_default_library", "//pkg/quota/v1/generic:go_default_library", "//pkg/util/node:go_default_library", @@ -54,6 +55,8 @@ go_test( "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/clock:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", + "//staging/src/k8s.io/component-base/featuregate/testing:go_default_library", ], ) diff --git a/pkg/quota/v1/evaluator/core/pods.go b/pkg/quota/v1/evaluator/core/pods.go index 955a59596f0f2..e608fe4e1a42f 100644 --- a/pkg/quota/v1/evaluator/core/pods.go +++ b/pkg/quota/v1/evaluator/core/pods.go @@ -30,10 +30,12 @@ import ( "k8s.io/apimachinery/pkg/util/clock" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apiserver/pkg/admission" + "k8s.io/apiserver/pkg/util/feature" api "k8s.io/kubernetes/pkg/apis/core" k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" "k8s.io/kubernetes/pkg/apis/core/v1/helper" "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos" + "k8s.io/kubernetes/pkg/features" quota "k8s.io/kubernetes/pkg/quota/v1" "k8s.io/kubernetes/pkg/quota/v1/generic" ) @@ -351,6 +353,10 @@ func PodUsageFunc(obj runtime.Object, clock clock.Clock) (corev1.ResourceList, e limits = quota.Max(limits, pod.Spec.InitContainers[i].Resources.Limits) } + if feature.DefaultFeatureGate.Enabled(features.PodOverhead) { + requests = quota.Add(requests, pod.Spec.Overhead) + limits = quota.Add(limits, pod.Spec.Overhead) + } result = quota.Add(result, podComputeUsageHelper(requests, limits)) return result, nil } diff --git a/pkg/quota/v1/evaluator/core/pods_test.go b/pkg/quota/v1/evaluator/core/pods_test.go index 229a1ed3c9858..97ed1b8d77ea3 100644 --- a/pkg/quota/v1/evaluator/core/pods_test.go +++ b/pkg/quota/v1/evaluator/core/pods_test.go @@ -25,7 +25,10 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/clock" + "k8s.io/apiserver/pkg/util/feature" + featuregatetesting "k8s.io/component-base/featuregate/testing" api "k8s.io/kubernetes/pkg/apis/core" + "k8s.io/kubernetes/pkg/features" quota "k8s.io/kubernetes/pkg/quota/v1" "k8s.io/kubernetes/pkg/quota/v1/generic" "k8s.io/kubernetes/pkg/util/node" @@ -90,8 +93,9 @@ func TestPodEvaluatorUsage(t *testing.T) { deletionTimestampNotPastGracePeriod := metav1.NewTime(fakeClock.Now()) testCases := map[string]struct { - pod *api.Pod - usage corev1.ResourceList + pod *api.Pod + usage corev1.ResourceList + podOverheadEnabled bool }{ "init container CPU": { pod: &api.Pod{ @@ -433,9 +437,68 @@ func TestPodEvaluatorUsage(t *testing.T) { generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "pods"}): resource.MustParse("1"), }, }, + "count pod overhead as usage": { + pod: &api.Pod{ + Spec: api.PodSpec{ + Overhead: api.ResourceList{ + api.ResourceCPU: resource.MustParse("1"), + }, + Containers: []api.Container{ + { + Resources: api.ResourceRequirements{ + Requests: api.ResourceList{ + api.ResourceCPU: resource.MustParse("1"), + }, + Limits: api.ResourceList{ + api.ResourceCPU: resource.MustParse("2"), + }, + }, + }, + }, + }, + }, + usage: corev1.ResourceList{ + corev1.ResourceRequestsCPU: resource.MustParse("2"), + corev1.ResourceLimitsCPU: resource.MustParse("3"), + corev1.ResourcePods: resource.MustParse("1"), + corev1.ResourceCPU: resource.MustParse("2"), + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "pods"}): resource.MustParse("1"), + }, + podOverheadEnabled: true, + }, + "do not count pod overhead as usage with pod overhead disabled": { + pod: &api.Pod{ + Spec: api.PodSpec{ + Overhead: api.ResourceList{ + api.ResourceCPU: resource.MustParse("1"), + }, + Containers: []api.Container{ + { + Resources: api.ResourceRequirements{ + Requests: api.ResourceList{ + api.ResourceCPU: resource.MustParse("1"), + }, + Limits: api.ResourceList{ + api.ResourceCPU: resource.MustParse("2"), + }, + }, + }, + }, + }, + }, + usage: corev1.ResourceList{ + corev1.ResourceRequestsCPU: resource.MustParse("1"), + corev1.ResourceLimitsCPU: resource.MustParse("2"), + corev1.ResourcePods: resource.MustParse("1"), + corev1.ResourceCPU: resource.MustParse("1"), + generic.ObjectCountQuotaResourceNameFor(schema.GroupResource{Resource: "pods"}): resource.MustParse("1"), + }, + podOverheadEnabled: false, + }, } for testName, testCase := range testCases { t.Run(testName, func(t *testing.T) { + defer featuregatetesting.SetFeatureGateDuringTest(t, feature.DefaultFeatureGate, features.PodOverhead, testCase.podOverheadEnabled)() actual, err := evaluator.Usage(testCase.pod) if err != nil { t.Error(err) diff --git a/pkg/quota/v1/install/patch_ignoredresources.go b/pkg/quota/v1/install/patch_ignoredresources.go deleted file mode 100644 index bf246aaccb1c7..0000000000000 --- a/pkg/quota/v1/install/patch_ignoredresources.go +++ /dev/null @@ -1,33 +0,0 @@ -package install - -import "k8s.io/apimachinery/pkg/runtime/schema" - -func init() { - newIgnoredResources := map[schema.GroupResource]struct{}{ - {Group: "extensions", Resource: "networkpolicies"}: {}, - {Group: "", Resource: "bindings"}: {}, - {Group: "", Resource: "componentstatuses"}: {}, - {Group: "", Resource: "events"}: {}, - {Group: "authentication.k8s.io", Resource: "tokenreviews"}: {}, - {Group: "authorization.k8s.io", Resource: "subjectaccessreviews"}: {}, - {Group: "authorization.k8s.io", Resource: "selfsubjectaccessreviews"}: {}, - {Group: "authorization.k8s.io", Resource: "localsubjectaccessreviews"}: {}, - {Group: "authorization.k8s.io", Resource: "selfsubjectrulesreviews"}: {}, - {Group: "authorization.openshift.io", Resource: "selfsubjectaccessreviews"}: {}, - {Group: "authorization.openshift.io", Resource: "subjectaccessreviews"}: {}, - {Group: "authorization.openshift.io", Resource: "localsubjectaccessreviews"}: {}, - {Group: "authorization.openshift.io", Resource: "resourceaccessreviews"}: {}, - {Group: "authorization.openshift.io", Resource: "localresourceaccessreviews"}: {}, - {Group: "authorization.openshift.io", Resource: "selfsubjectrulesreviews"}: {}, - {Group: "authorization.openshift.io", Resource: "subjectrulesreviews"}: {}, - {Group: "authorization.openshift.io", Resource: "roles"}: {}, - {Group: "authorization.openshift.io", Resource: "rolebindings"}: {}, - {Group: "authorization.openshift.io", Resource: "clusterroles"}: {}, - {Group: "authorization.openshift.io", Resource: "clusterrolebindings"}: {}, - {Group: "apiregistration.k8s.io", Resource: "apiservices"}: {}, - {Group: "apiextensions.k8s.io", Resource: "customresourcedefinitions"}: {}, - } - for k, v := range newIgnoredResources { - ignoredResources[k] = v - } -} diff --git a/pkg/quota/v1/resources.go b/pkg/quota/v1/resources.go index 9b217489db35a..a1abfd240f6fb 100644 --- a/pkg/quota/v1/resources.go +++ b/pkg/quota/v1/resources.go @@ -226,6 +226,17 @@ func IsZero(a corev1.ResourceList) bool { return true } +// RemoveZeros returns a new resource list that only has no zero values +func RemoveZeros(a corev1.ResourceList) corev1.ResourceList { + result := corev1.ResourceList{} + for key, value := range a { + if !value.IsZero() { + result[key] = value + } + } + return result +} + // IsNegative returns the set of resource names that have a negative value. func IsNegative(a corev1.ResourceList) []corev1.ResourceName { results := []corev1.ResourceName{} diff --git a/pkg/quota/v1/resources_test.go b/pkg/quota/v1/resources_test.go index 910c2f51120f6..cd3f76791a1d1 100644 --- a/pkg/quota/v1/resources_test.go +++ b/pkg/quota/v1/resources_test.go @@ -287,6 +287,50 @@ func TestIsZero(t *testing.T) { } } +func TestRemoveZeros(t *testing.T) { + testCases := map[string]struct { + a corev1.ResourceList + expected corev1.ResourceList + }{ + "empty": { + a: corev1.ResourceList{}, + expected: corev1.ResourceList{}, + }, + "all-zeros": { + a: corev1.ResourceList{ + corev1.ResourceCPU: resource.MustParse("0"), + corev1.ResourceMemory: resource.MustParse("0"), + }, + expected: corev1.ResourceList{}, + }, + "some-zeros": { + a: corev1.ResourceList{ + corev1.ResourceCPU: resource.MustParse("0"), + corev1.ResourceMemory: resource.MustParse("0"), + corev1.ResourceStorage: resource.MustParse("100Gi"), + }, + expected: corev1.ResourceList{ + corev1.ResourceStorage: resource.MustParse("100Gi"), + }, + }, + "non-zero": { + a: corev1.ResourceList{ + corev1.ResourceCPU: resource.MustParse("200m"), + corev1.ResourceMemory: resource.MustParse("1Gi"), + }, + expected: corev1.ResourceList{ + corev1.ResourceCPU: resource.MustParse("200m"), + corev1.ResourceMemory: resource.MustParse("1Gi"), + }, + }, + } + for testName, testCase := range testCases { + if result := RemoveZeros(testCase.a); !Equals(result, testCase.expected) { + t.Errorf("%s expected: %v, actual: %v", testName, testCase.expected, result) + } + } +} + func TestIsNegative(t *testing.T) { testCases := map[string]struct { a corev1.ResourceList diff --git a/pkg/registry/core/secret/strategy.go b/pkg/registry/core/secret/strategy.go index 0d5908d8975f1..aad00387ac11b 100644 --- a/pkg/registry/core/secret/strategy.go +++ b/pkg/registry/core/secret/strategy.go @@ -73,6 +73,12 @@ func (strategy) AllowCreateOnUpdate() bool { func (strategy) PrepareForUpdate(ctx context.Context, obj, old runtime.Object) { newSecret := obj.(*api.Secret) oldSecret := old.(*api.Secret) + + // this is weird, but consistent with what the validatedUpdate function used to do. + if len(newSecret.Type) == 0 { + newSecret.Type = oldSecret.Type + } + dropDisabledFields(newSecret, oldSecret) } diff --git a/pkg/registry/flowcontrol/rest/storage_flowcontrol.go b/pkg/registry/flowcontrol/rest/storage_flowcontrol.go index 479f636a4107f..b1c80c20ea720 100644 --- a/pkg/registry/flowcontrol/rest/storage_flowcontrol.go +++ b/pkg/registry/flowcontrol/rest/storage_flowcontrol.go @@ -95,7 +95,7 @@ func (p RESTStorageProvider) PostStartHook() (string, genericapiserver.PostStart flowcontrolClientSet := flowcontrolclient.NewForConfigOrDie(hookContext.LoopbackClientConfig) go func() { const retryCreatingSuggestedSettingsInterval = time.Second - _ = wait.PollImmediateUntil( + err := wait.PollImmediateUntil( retryCreatingSuggestedSettingsInterval, func() (bool, error) { shouldEnsureSuggested, err := lastMandatoryExists(flowcontrolClientSet) @@ -117,6 +117,17 @@ func (p RESTStorageProvider) PostStartHook() (string, genericapiserver.PostStart return true, nil }, hookContext.StopCh) + if err != nil { + klog.ErrorS(err, "Ensuring suggested configuration failed") + + // We should not attempt creation of mandatory objects if ensuring the suggested + // configuration resulted in an error. + // This only happens when the stop channel is closed. + // We rely on the presence of the "exempt" priority level configuration object in the cluster + // to indicate whether we should ensure suggested configuration. + return + } + const retryCreatingMandatorySettingsInterval = time.Minute _ = wait.PollImmediateUntil( retryCreatingMandatorySettingsInterval, @@ -124,7 +135,7 @@ func (p RESTStorageProvider) PostStartHook() (string, genericapiserver.PostStart if err := upgrade( flowcontrolClientSet, flowcontrolbootstrap.MandatoryFlowSchemas, - // Note: the "exempt" priority-level is supposed tobe the last item in the pre-defined + // Note: the "exempt" priority-level is supposed to be the last item in the pre-defined // list, so that a crash in the midst of the first kube-apiserver startup does not prevent // the full initial set of objects from being created. flowcontrolbootstrap.MandatoryPriorityLevelConfigurations, diff --git a/pkg/registry/rbac/rest/storage_rbac.go b/pkg/registry/rbac/rest/storage_rbac.go index 7d1d290c83bcc..c25c7d4ce6b8c 100644 --- a/pkg/registry/rbac/rest/storage_rbac.go +++ b/pkg/registry/rbac/rest/storage_rbac.go @@ -165,6 +165,7 @@ func (p *PolicyData) EnsureRBACPolicy() genericapiserver.PostStartHookFunc { // initializing roles is really important. On some e2e runs, we've seen cases where etcd is down when the server // starts, the roles don't initialize, and nothing works. err := wait.Poll(1*time.Second, 30*time.Second, func() (done bool, err error) { + failedReconciliation := false coreclientset, err := corev1client.NewForConfig(hookContext.LoopbackClientConfig) if err != nil { @@ -224,6 +225,7 @@ func (p *PolicyData) EnsureRBACPolicy() genericapiserver.PostStartHookFunc { if err != nil { // don't fail on failures, try to create as many as you can utilruntime.HandleError(fmt.Errorf("unable to reconcile clusterrole.%s/%s: %v", rbac.GroupName, clusterRole.Name, err)) + failedReconciliation = true } } @@ -254,6 +256,7 @@ func (p *PolicyData) EnsureRBACPolicy() genericapiserver.PostStartHookFunc { if err != nil { // don't fail on failures, try to create as many as you can utilruntime.HandleError(fmt.Errorf("unable to reconcile clusterrolebinding.%s/%s: %v", rbac.GroupName, clusterRoleBinding.Name, err)) + failedReconciliation = true } } @@ -283,6 +286,7 @@ func (p *PolicyData) EnsureRBACPolicy() genericapiserver.PostStartHookFunc { if err != nil { // don't fail on failures, try to create as many as you can utilruntime.HandleError(fmt.Errorf("unable to reconcile role.%s/%s in %v: %v", rbac.GroupName, role.Name, namespace, err)) + failedReconciliation = true } } } @@ -315,9 +319,14 @@ func (p *PolicyData) EnsureRBACPolicy() genericapiserver.PostStartHookFunc { if err != nil { // don't fail on failures, try to create as many as you can utilruntime.HandleError(fmt.Errorf("unable to reconcile rolebinding.%s/%s in %v: %v", rbac.GroupName, roleBinding.Name, namespace, err)) + failedReconciliation = true } } } + // failed to reconcile some objects, retry + if failedReconciliation { + return false, nil + } return true, nil }) diff --git a/pkg/scheduler/BUILD b/pkg/scheduler/BUILD index f6f77557d8541..af02bae9fb2be 100644 --- a/pkg/scheduler/BUILD +++ b/pkg/scheduler/BUILD @@ -11,6 +11,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/api/v1/pod:go_default_library", + "//pkg/apis/core/validation:go_default_library", "//pkg/features:go_default_library", "//pkg/scheduler/algorithmprovider:go_default_library", "//pkg/scheduler/apis/config:go_default_library", @@ -19,6 +20,7 @@ go_library( "//pkg/scheduler/core:go_default_library", "//pkg/scheduler/framework/plugins:go_default_library", "//pkg/scheduler/framework/plugins/defaultbinder:go_default_library", + "//pkg/scheduler/framework/plugins/defaultpreemption:go_default_library", "//pkg/scheduler/framework/plugins/noderesources:go_default_library", "//pkg/scheduler/framework/plugins/queuesort:go_default_library", "//pkg/scheduler/framework/runtime:go_default_library", @@ -65,6 +67,7 @@ go_test( "//pkg/scheduler/core:go_default_library", "//pkg/scheduler/framework/plugins:go_default_library", "//pkg/scheduler/framework/plugins/defaultbinder:go_default_library", + "//pkg/scheduler/framework/plugins/defaultpreemption:go_default_library", "//pkg/scheduler/framework/plugins/interpodaffinity:go_default_library", "//pkg/scheduler/framework/plugins/nodelabel:go_default_library", "//pkg/scheduler/framework/plugins/nodeports:go_default_library", diff --git a/pkg/scheduler/apis/config/testing/compatibility_test.go b/pkg/scheduler/apis/config/testing/compatibility_test.go index 18644c422edb9..689c6a2061cec 100644 --- a/pkg/scheduler/apis/config/testing/compatibility_test.go +++ b/pkg/scheduler/apis/config/testing/compatibility_test.go @@ -75,7 +75,8 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "NodeAffinity"}, {Name: "TaintToleration"}, }, - "BindPlugin": {{Name: "DefaultBinder"}}, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, + "BindPlugin": {{Name: "DefaultBinder"}}, }, }, // This is a special test for the case where a policy is specified without specifying any filters. @@ -95,7 +96,8 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "NodeUnschedulable"}, {Name: "TaintToleration"}, }, - "BindPlugin": {{Name: "DefaultBinder"}}, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, + "BindPlugin": {{Name: "DefaultBinder"}}, }, }, // Do not change this JSON after the corresponding release has been tagged. @@ -136,7 +138,8 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "NodeLabel"}, {Name: "ServiceAffinity"}, }, - "PreScorePlugin": {{Name: "SelectorSpread"}}, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, + "PreScorePlugin": {{Name: "SelectorSpread"}}, "ScorePlugin": { {Name: "NodeResourcesLeastAllocated", Weight: 1}, {Name: "NodeLabel", Weight: 4}, @@ -191,7 +194,8 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "NodeLabel"}, {Name: "ServiceAffinity"}, }, - "PreScorePlugin": {{Name: "SelectorSpread"}}, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, + "PreScorePlugin": {{Name: "SelectorSpread"}}, "ScorePlugin": { {Name: "NodeResourcesBalancedAllocation", Weight: 2}, {Name: "NodeResourcesLeastAllocated", Weight: 2}, @@ -254,7 +258,8 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "AzureDiskLimits"}, {Name: "VolumeZone"}, }, - "PreScorePlugin": {{Name: "SelectorSpread"}}, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, + "PreScorePlugin": {{Name: "SelectorSpread"}}, "ScorePlugin": { {Name: "NodeResourcesBalancedAllocation", Weight: 2}, {Name: "ImageLocality", Weight: 2}, @@ -324,6 +329,7 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "VolumeZone"}, {Name: "InterPodAffinity"}, }, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, "PreScorePlugin": { {Name: "InterPodAffinity"}, {Name: "SelectorSpread"}, @@ -400,6 +406,7 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "VolumeZone"}, {Name: "InterPodAffinity"}, }, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, "PreScorePlugin": { {Name: "InterPodAffinity"}, {Name: "SelectorSpread"}, @@ -487,6 +494,7 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "VolumeZone"}, {Name: "InterPodAffinity"}, }, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, "PreScorePlugin": { {Name: "InterPodAffinity"}, {Name: "SelectorSpread"}, @@ -585,6 +593,7 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "VolumeZone"}, {Name: "InterPodAffinity"}, }, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, "PreScorePlugin": { {Name: "InterPodAffinity"}, {Name: "SelectorSpread"}, @@ -686,6 +695,7 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "VolumeZone"}, {Name: "InterPodAffinity"}, }, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, "PreScorePlugin": { {Name: "InterPodAffinity"}, {Name: "SelectorSpread"}, @@ -792,6 +802,7 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "VolumeZone"}, {Name: "InterPodAffinity"}, }, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, "PreScorePlugin": { {Name: "InterPodAffinity"}, {Name: "SelectorSpread"}, @@ -910,6 +921,7 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "VolumeZone"}, {Name: "InterPodAffinity"}, }, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, "PreScorePlugin": { {Name: "InterPodAffinity"}, {Name: "SelectorSpread"}, @@ -1031,6 +1043,7 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "VolumeZone"}, {Name: "InterPodAffinity"}, }, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, "PreScorePlugin": { {Name: "InterPodAffinity"}, {Name: "SelectorSpread"}, @@ -1152,6 +1165,7 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "VolumeZone"}, {Name: "InterPodAffinity"}, }, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, "PreScorePlugin": { {Name: "InterPodAffinity"}, {Name: "SelectorSpread"}, @@ -1277,6 +1291,7 @@ func TestCompatibility_v1_Scheduler(t *testing.T) { {Name: "VolumeZone"}, {Name: "InterPodAffinity"}, }, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, "PreScorePlugin": { {Name: "InterPodAffinity"}, {Name: "SelectorSpread"}, diff --git a/pkg/scheduler/factory.go b/pkg/scheduler/factory.go index 8165968d28a01..a0144f781aea3 100644 --- a/pkg/scheduler/factory.go +++ b/pkg/scheduler/factory.go @@ -42,6 +42,7 @@ import ( "k8s.io/kubernetes/pkg/scheduler/core" frameworkplugins "k8s.io/kubernetes/pkg/scheduler/framework/plugins" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultbinder" + "k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultpreemption" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/noderesources" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/queuesort" frameworkruntime "k8s.io/kubernetes/pkg/scheduler/framework/runtime" @@ -157,7 +158,7 @@ func (c *Configurator) create() (*Scheduler, error) { } // The nominator will be passed all the way to framework instantiation. - nominator := internalqueue.NewPodNominator() + nominator := internalqueue.NewSafePodNominator(c.informerFactory.Core().V1().Pods().Lister()) profiles, err := profile.NewMap(c.profiles, c.buildFramework, c.recorderFactory, frameworkruntime.WithPodNominator(nominator)) if err != nil { @@ -290,12 +291,15 @@ func (c *Configurator) createFromConfig(policy schedulerapi.Policy) (*Scheduler, // Combine all framework configurations. If this results in any duplication, framework // instantiation should fail. var defPlugins schedulerapi.Plugins - // "PrioritySort" and "DefaultBinder" were neither predicates nor priorities + // "PrioritySort", "DefaultPreemption" and "DefaultBinder" were neither predicates nor priorities // before. We add them by default. defPlugins.Append(&schedulerapi.Plugins{ QueueSort: &schedulerapi.PluginSet{ Enabled: []schedulerapi.Plugin{{Name: queuesort.Name}}, }, + PostFilter: &schedulerapi.PluginSet{ + Enabled: []schedulerapi.Plugin{{Name: defaultpreemption.Name}}, + }, Bind: &schedulerapi.PluginSet{ Enabled: []schedulerapi.Plugin{{Name: defaultbinder.Name}}, }, diff --git a/pkg/scheduler/factory_test.go b/pkg/scheduler/factory_test.go index 3ab7608945bdf..2335c667f70ef 100644 --- a/pkg/scheduler/factory_test.go +++ b/pkg/scheduler/factory_test.go @@ -40,6 +40,7 @@ import ( "k8s.io/kubernetes/pkg/scheduler/apis/config/scheme" frameworkplugins "k8s.io/kubernetes/pkg/scheduler/framework/plugins" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultbinder" + "k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultpreemption" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/interpodaffinity" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodelabel" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/queuesort" @@ -113,6 +114,11 @@ func TestCreateFromConfig(t *testing.T) { if diff := cmp.Diff(wantQueuePls, queueSortPls); diff != "" { t.Errorf("Unexpected QueueSort plugins (-want, +got): %s", diff) } + postFilterPls := prof.ListPlugins()["PostFilterPlugin"] + wantPostFilterPls := []schedulerapi.Plugin{{Name: defaultpreemption.Name}} + if diff := cmp.Diff(wantPostFilterPls, postFilterPls); diff != "" { + t.Errorf("Unexpected PostFilter plugins (-want, +got): %s", diff) + } bindPls := prof.ListPlugins()["BindPlugin"] wantBindPls := []schedulerapi.Plugin{{Name: defaultbinder.Name}} if diff := cmp.Diff(wantBindPls, bindPls); diff != "" { diff --git a/pkg/scheduler/framework/plugins/volumebinding/BUILD b/pkg/scheduler/framework/plugins/volumebinding/BUILD index dd70db1ea9d48..745e6e6a219fd 100644 --- a/pkg/scheduler/framework/plugins/volumebinding/BUILD +++ b/pkg/scheduler/framework/plugins/volumebinding/BUILD @@ -11,8 +11,10 @@ go_library( "//pkg/scheduler/apis/config:go_default_library", "//pkg/scheduler/framework/v1alpha1:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", + "//staging/src/k8s.io/client-go/listers/core/v1:go_default_library", "//vendor/k8s.io/klog/v2:go_default_library", ], ) diff --git a/pkg/scheduler/framework/plugins/volumebinding/volume_binding.go b/pkg/scheduler/framework/plugins/volumebinding/volume_binding.go index 52c316de34863..9213d4fddf2e5 100644 --- a/pkg/scheduler/framework/plugins/volumebinding/volume_binding.go +++ b/pkg/scheduler/framework/plugins/volumebinding/volume_binding.go @@ -20,11 +20,14 @@ import ( "context" "errors" "fmt" + "sync" "time" v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" utilfeature "k8s.io/apiserver/pkg/util/feature" + corelisters "k8s.io/client-go/listers/core/v1" "k8s.io/klog/v2" "k8s.io/kubernetes/pkg/controller/volume/scheduling" "k8s.io/kubernetes/pkg/features" @@ -51,6 +54,7 @@ type stateData struct { // phase for each node // it's initialized in the PreFilter phase podVolumesByNode map[string]*scheduling.PodVolumes + sync.Mutex } func (d *stateData) Clone() framework.StateData { @@ -62,6 +66,7 @@ func (d *stateData) Clone() framework.StateData { // Reserve and PreBind phases. type VolumeBinding struct { Binder scheduling.SchedulerVolumeBinder + PVCLister corelisters.PersistentVolumeClaimLister GenericEphemeralVolumeFeatureEnabled bool } @@ -78,14 +83,40 @@ func (pl *VolumeBinding) Name() string { return Name } -func (pl *VolumeBinding) podHasPVCs(pod *v1.Pod) bool { +// podHasPVCs returns 2 values: +// - the first one to denote if the given "pod" has any PVC defined. +// - the second one to return any error if the requested PVC is illegal. +func (pl *VolumeBinding) podHasPVCs(pod *v1.Pod) (bool, error) { + hasPVC := false for _, vol := range pod.Spec.Volumes { - if vol.PersistentVolumeClaim != nil || - pl.GenericEphemeralVolumeFeatureEnabled && vol.Ephemeral != nil { - return true + var pvcName string + ephemeral := false + switch { + case vol.PersistentVolumeClaim != nil: + pvcName = vol.PersistentVolumeClaim.ClaimName + case vol.Ephemeral != nil && pl.GenericEphemeralVolumeFeatureEnabled: + pvcName = pod.Name + "-" + vol.Name + ephemeral = true + default: + // Volume is not using a PVC, ignore + continue + } + hasPVC = true + pvc, err := pl.PVCLister.PersistentVolumeClaims(pod.Namespace).Get(pvcName) + if err != nil { + // The error has already enough context ("persistentvolumeclaim "myclaim" not found") + return hasPVC, err + } + + if pvc.DeletionTimestamp != nil { + return hasPVC, fmt.Errorf("persistentvolumeclaim %q is being deleted", pvc.Name) + } + + if ephemeral && !metav1.IsControlledBy(pvc, pod) { + return hasPVC, fmt.Errorf("persistentvolumeclaim %q was not created for the pod", pvc.Name) } } - return false + return hasPVC, nil } // PreFilter invoked at the prefilter extension point to check if pod has all @@ -93,7 +124,9 @@ func (pl *VolumeBinding) podHasPVCs(pod *v1.Pod) bool { // UnschedulableAndUnresolvable is returned. func (pl *VolumeBinding) PreFilter(ctx context.Context, state *framework.CycleState, pod *v1.Pod) *framework.Status { // If pod does not reference any PVC, we don't need to do anything. - if !pl.podHasPVCs(pod) { + if hasPVC, err := pl.podHasPVCs(pod); err != nil { + return framework.NewStatus(framework.UnschedulableAndUnresolvable, err.Error()) + } else if !hasPVC { state.Write(stateKey, &stateData{skip: true}) return nil } @@ -174,9 +207,10 @@ func (pl *VolumeBinding) Filter(ctx context.Context, cs *framework.CycleState, p return status } - cs.Lock() + // multiple goroutines call `Filter` on different nodes simultaneously and the `CycleState` may be duplicated, so we must use a local lock here + state.Lock() state.podVolumesByNode[node.Name] = podVolumes - cs.Unlock() + state.Unlock() return nil } @@ -271,6 +305,7 @@ func New(plArgs runtime.Object, fh framework.FrameworkHandle) (framework.Plugin, binder := scheduling.NewVolumeBinder(fh.ClientSet(), podInformer, nodeInformer, csiNodeInformer, pvcInformer, pvInformer, storageClassInformer, capacityCheck, time.Duration(args.BindTimeoutSeconds)*time.Second) return &VolumeBinding{ Binder: binder, + PVCLister: pvcInformer.Lister(), GenericEphemeralVolumeFeatureEnabled: utilfeature.DefaultFeatureGate.Enabled(features.GenericEphemeralVolume), }, nil } diff --git a/pkg/scheduler/framework/plugins/volumebinding/volume_binding_test.go b/pkg/scheduler/framework/plugins/volumebinding/volume_binding_test.go index 14695cdb922c1..85a54ad1656ca 100644 --- a/pkg/scheduler/framework/plugins/volumebinding/volume_binding_test.go +++ b/pkg/scheduler/framework/plugins/volumebinding/volume_binding_test.go @@ -209,7 +209,7 @@ func TestVolumeBinding(t *testing.T) { name: "pvc not found", pod: makePod("pod-a", []string{"pvc-a"}), node: &v1.Node{}, - wantPreFilterStatus: framework.NewStatus(framework.Error, `error getting PVC "default/pvc-a": could not find v1.PersistentVolumeClaim "default/pvc-a"`), + wantPreFilterStatus: framework.NewStatus(framework.UnschedulableAndUnresolvable, `persistentvolumeclaim "pvc-a" not found`), wantFilterStatus: nil, }, { @@ -227,7 +227,7 @@ func TestVolumeBinding(t *testing.T) { claimsToBind: []*v1.PersistentVolumeClaim{}, podVolumesByNode: map[string]*scheduling.PodVolumes{}, }, - wantFilterStatus: framework.NewStatus(framework.Error, `could not find v1.PersistentVolume "pv-a"`), + wantFilterStatus: framework.NewStatus(framework.UnschedulableAndUnresolvable, `pvc(s) bound to non-existent pv(s)`), }, } diff --git a/pkg/scheduler/framework/plugins/volumezone/BUILD b/pkg/scheduler/framework/plugins/volumezone/BUILD index 762d6b72f283b..9a8830717dafe 100644 --- a/pkg/scheduler/framework/plugins/volumezone/BUILD +++ b/pkg/scheduler/framework/plugins/volumezone/BUILD @@ -10,6 +10,7 @@ go_library( "//pkg/scheduler/framework/v1alpha1:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/api/storage/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//staging/src/k8s.io/client-go/listers/core/v1:go_default_library", diff --git a/pkg/scheduler/framework/plugins/volumezone/volume_zone.go b/pkg/scheduler/framework/plugins/volumezone/volume_zone.go index c62b2ea3f738a..b498ccc6c65f7 100644 --- a/pkg/scheduler/framework/plugins/volumezone/volume_zone.go +++ b/pkg/scheduler/framework/plugins/volumezone/volume_zone.go @@ -22,6 +22,7 @@ import ( v1 "k8s.io/api/core/v1" storage "k8s.io/api/storage/v1" + "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" corelisters "k8s.io/client-go/listers/core/v1" @@ -108,47 +109,38 @@ func (pl *VolumeZone) Filter(ctx context.Context, _ *framework.CycleState, pod * } pvcName := volume.PersistentVolumeClaim.ClaimName if pvcName == "" { - return framework.NewStatus(framework.Error, "PersistentVolumeClaim had no name") + return framework.NewStatus(framework.UnschedulableAndUnresolvable, "PersistentVolumeClaim had no name") } pvc, err := pl.pvcLister.PersistentVolumeClaims(pod.Namespace).Get(pvcName) - if err != nil { - return framework.NewStatus(framework.Error, err.Error()) - } - - if pvc == nil { - return framework.NewStatus(framework.Error, fmt.Sprintf("PersistentVolumeClaim was not found: %q", pvcName)) + if s := getErrorAsStatus(err); !s.IsSuccess() { + return s } pvName := pvc.Spec.VolumeName if pvName == "" { scName := v1helper.GetPersistentVolumeClaimClass(pvc) if len(scName) == 0 { - return framework.NewStatus(framework.Error, fmt.Sprint("PersistentVolumeClaim had no pv name and storageClass name")) + return framework.NewStatus(framework.UnschedulableAndUnresolvable, "PersistentVolumeClaim had no pv name and storageClass name") } - class, _ := pl.scLister.Get(scName) - if class == nil { - return framework.NewStatus(framework.Error, fmt.Sprintf("StorageClass %q claimed by PersistentVolumeClaim %q not found", scName, pvcName)) - + class, err := pl.scLister.Get(scName) + if s := getErrorAsStatus(err); !s.IsSuccess() { + return s } if class.VolumeBindingMode == nil { - return framework.NewStatus(framework.Error, fmt.Sprintf("VolumeBindingMode not set for StorageClass %q", scName)) + return framework.NewStatus(framework.UnschedulableAndUnresolvable, fmt.Sprintf("VolumeBindingMode not set for StorageClass %q", scName)) } if *class.VolumeBindingMode == storage.VolumeBindingWaitForFirstConsumer { // Skip unbound volumes continue } - return framework.NewStatus(framework.Error, fmt.Sprint("PersistentVolume had no name")) + return framework.NewStatus(framework.UnschedulableAndUnresolvable, "PersistentVolume had no name") } pv, err := pl.pvLister.Get(pvName) - if err != nil { - return framework.NewStatus(framework.Error, err.Error()) - } - - if pv == nil { - return framework.NewStatus(framework.Error, fmt.Sprintf("PersistentVolume was not found: %q", pvName)) + if s := getErrorAsStatus(err); !s.IsSuccess() { + return s } for k, v := range pv.ObjectMeta.Labels { @@ -171,6 +163,16 @@ func (pl *VolumeZone) Filter(ctx context.Context, _ *framework.CycleState, pod * return nil } +func getErrorAsStatus(err error) *framework.Status { + if err != nil { + if errors.IsNotFound(err) { + return framework.NewStatus(framework.UnschedulableAndUnresolvable, err.Error()) + } + return framework.NewStatus(framework.Error, err.Error()) + } + return nil +} + // New initializes a new plugin and returns it. func New(_ runtime.Object, handle framework.FrameworkHandle) (framework.Plugin, error) { informerFactory := handle.SharedInformerFactory() diff --git a/pkg/scheduler/framework/plugins/volumezone/volume_zone_test.go b/pkg/scheduler/framework/plugins/volumezone/volume_zone_test.go index 2c6deaa70e58f..dda414958305a 100644 --- a/pkg/scheduler/framework/plugins/volumezone/volume_zone_test.go +++ b/pkg/scheduler/framework/plugins/volumezone/volume_zone_test.go @@ -413,21 +413,21 @@ func TestWithBinding(t *testing.T) { name: "unbound volume empty storage class", Pod: createPodWithVolume("pod_1", "vol_1", "PVC_EmptySC"), Node: testNode, - wantStatus: framework.NewStatus(framework.Error, + wantStatus: framework.NewStatus(framework.UnschedulableAndUnresolvable, "PersistentVolumeClaim had no pv name and storageClass name"), }, { name: "unbound volume no storage class", Pod: createPodWithVolume("pod_1", "vol_1", "PVC_NoSC"), Node: testNode, - wantStatus: framework.NewStatus(framework.Error, - "StorageClass \"Class_0\" claimed by PersistentVolumeClaim \"PVC_NoSC\" not found"), + wantStatus: framework.NewStatus(framework.UnschedulableAndUnresolvable, + "unable to find storage class: Class_0"), }, { name: "unbound volume immediate binding mode", Pod: createPodWithVolume("pod_1", "vol_1", "PVC_ImmediateSC"), Node: testNode, - wantStatus: framework.NewStatus(framework.Error, "VolumeBindingMode not set for StorageClass \"Class_Immediate\""), + wantStatus: framework.NewStatus(framework.UnschedulableAndUnresolvable, "VolumeBindingMode not set for StorageClass \"Class_Immediate\""), }, { name: "unbound volume wait binding mode", diff --git a/pkg/scheduler/framework/v1alpha1/fake/BUILD b/pkg/scheduler/framework/v1alpha1/fake/BUILD index c9167c7e5e0c0..231cc4a2c81bf 100644 --- a/pkg/scheduler/framework/v1alpha1/fake/BUILD +++ b/pkg/scheduler/framework/v1alpha1/fake/BUILD @@ -10,6 +10,7 @@ go_library( "//staging/src/k8s.io/api/apps/v1:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/api/storage/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library", "//staging/src/k8s.io/client-go/listers/apps/v1:go_default_library", diff --git a/pkg/scheduler/framework/v1alpha1/fake/listers.go b/pkg/scheduler/framework/v1alpha1/fake/listers.go index 863b595cbe603..89aeb9b82c95d 100644 --- a/pkg/scheduler/framework/v1alpha1/fake/listers.go +++ b/pkg/scheduler/framework/v1alpha1/fake/listers.go @@ -22,6 +22,7 @@ import ( appsv1 "k8s.io/api/apps/v1" v1 "k8s.io/api/core/v1" storagev1 "k8s.io/api/storage/v1" + "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" appslisters "k8s.io/client-go/listers/apps/v1" @@ -311,7 +312,12 @@ func (classes StorageClassLister) Get(name string) (*storagev1.StorageClass, err return &sc, nil } } - return nil, fmt.Errorf("Unable to find storage class: %s", name) + return nil, &errors.StatusError{ + ErrStatus: metav1.Status{ + Reason: metav1.StatusReasonNotFound, + Message: fmt.Sprintf("unable to find storage class: %s", name), + }, + } } // List lists all StorageClass in the indexer. diff --git a/pkg/scheduler/internal/queue/BUILD b/pkg/scheduler/internal/queue/BUILD index ab10f365df13c..a12726acf919d 100644 --- a/pkg/scheduler/internal/queue/BUILD +++ b/pkg/scheduler/internal/queue/BUILD @@ -17,6 +17,7 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//staging/src/k8s.io/client-go/listers/core/v1:go_default_library", "//staging/src/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/klog/v2:go_default_library", ], @@ -36,7 +37,11 @@ go_test( "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/clock:go_default_library", + "//staging/src/k8s.io/client-go/informers:go_default_library", + "//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library", "//staging/src/k8s.io/component-base/metrics/testutil:go_default_library", + "//vendor/github.com/google/go-cmp/cmp:go_default_library", + "//vendor/github.com/google/go-cmp/cmp/cmpopts:go_default_library", ], ) diff --git a/pkg/scheduler/internal/queue/scheduling_queue.go b/pkg/scheduler/internal/queue/scheduling_queue.go index 3ec0e6f159b0f..52fa11e16d6fa 100644 --- a/pkg/scheduler/internal/queue/scheduling_queue.go +++ b/pkg/scheduler/internal/queue/scheduling_queue.go @@ -29,6 +29,7 @@ import ( "sync" "time" + listersv1 "k8s.io/client-go/listers/core/v1" "k8s.io/klog/v2" v1 "k8s.io/api/core/v1" @@ -721,6 +722,8 @@ func newUnschedulablePodsMap(metricRecorder metrics.MetricRecorder) *Unschedulab // may be different than what scheduler has here. We should be able to find pods // by their UID and update/delete them. type nominatedPodMap struct { + // podLister is used to verify if the given pod is alive. + podLister listersv1.PodLister // nominatedPods is a map keyed by a node name and the value is a list of // pods which are nominated to run on the node. These are pods which can be in // the activeQ or unschedulableQ. @@ -744,6 +747,14 @@ func (npm *nominatedPodMap) add(p *v1.Pod, nodeName string) { return } } + if npm.podLister != nil { + // If the pod is not alive, don't contain it. + if _, err := npm.podLister.Pods(p.Namespace).Get(p.Name); err != nil { + klog.V(4).InfoS("Pod %v/%v doesn't exist in podLister, aborting adding it to the nominated map", p.Namespace, p.Name) + return + } + } + npm.nominatedPodToNode[p.UID] = nnn for _, np := range npm.nominatedPods[nnn] { if np.UID == p.UID { @@ -796,8 +807,17 @@ func (npm *nominatedPodMap) UpdateNominatedPod(oldPod, newPod *v1.Pod) { } // NewPodNominator creates a nominatedPodMap as a backing of framework.PodNominator. +// DEPRECATED: use NewSafePodNominator() instead. func NewPodNominator() framework.PodNominator { + return NewSafePodNominator(nil) +} + +// NewSafePodNominator creates a nominatedPodMap as a backing of framework.PodNominator. +// Unlike NewPodNominator, it passes in a podLister so as to check if the pod is alive +// before adding its nominatedNode info. +func NewSafePodNominator(podLister listersv1.PodLister) framework.PodNominator { return &nominatedPodMap{ + podLister: podLister, nominatedPods: make(map[string][]*v1.Pod), nominatedPodToNode: make(map[ktypes.UID]string), } diff --git a/pkg/scheduler/internal/queue/scheduling_queue_test.go b/pkg/scheduler/internal/queue/scheduling_queue_test.go index 5030430736578..ed7661c56d9f8 100644 --- a/pkg/scheduler/internal/queue/scheduling_queue_test.go +++ b/pkg/scheduler/internal/queue/scheduling_queue_test.go @@ -17,6 +17,7 @@ limitations under the License. package queue import ( + "context" "fmt" "reflect" "strings" @@ -24,10 +25,15 @@ import ( "testing" "time" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/clock" + "k8s.io/client-go/informers" + "k8s.io/client-go/kubernetes/fake" "k8s.io/component-base/metrics/testutil" podutil "k8s.io/kubernetes/pkg/api/v1/pod" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/queuesort" @@ -134,8 +140,8 @@ func TestPriorityQueue_Add(t *testing.T) { "node1": {&medPriorityPod, &unschedulablePod}, }, } - if !reflect.DeepEqual(q.PodNominator, expectedNominatedPods) { - t.Errorf("Unexpected nominated map after adding pods. Expected: %v, got: %v", expectedNominatedPods, q.PodNominator) + if diff := cmp.Diff(q.PodNominator, expectedNominatedPods, cmp.AllowUnexported(nominatedPodMap{}), cmpopts.IgnoreFields(nominatedPodMap{}, "RWMutex")); diff != "" { + t.Errorf("Unexpected diff after adding pods (-want, +got):\n%s", diff) } if p, err := q.Pop(); err != nil || p.Pod != &highPriorityPod { t.Errorf("Expected: %v after Pop, but got: %v", highPriorityPod.Name, p.Pod.Name) @@ -186,8 +192,8 @@ func TestPriorityQueue_AddUnschedulableIfNotPresent(t *testing.T) { "node1": {&highPriNominatedPod, &unschedulablePod}, }, } - if !reflect.DeepEqual(q.PodNominator, expectedNominatedPods) { - t.Errorf("Unexpected nominated map after adding pods. Expected: %v, got: %v", expectedNominatedPods, q.PodNominator) + if diff := cmp.Diff(q.PodNominator, expectedNominatedPods, cmp.AllowUnexported(nominatedPodMap{}), cmpopts.IgnoreFields(nominatedPodMap{}, "RWMutex")); diff != "" { + t.Errorf("Unexpected diff after adding pods (-want, +got):\n%s", diff) } if p, err := q.Pop(); err != nil || p.Pod != &highPriNominatedPod { t.Errorf("Expected: %v after Pop, but got: %v", highPriNominatedPod.Name, p.Pod.Name) @@ -449,6 +455,57 @@ func TestPriorityQueue_NominatedPodsForNode(t *testing.T) { } } +func TestPriorityQueue_NominatedPodDeleted(t *testing.T) { + tests := []struct { + name string + pod *v1.Pod + deletePod bool + want bool + }{ + { + name: "alive pod gets added into PodNominator", + pod: &medPriorityPod, + want: true, + }, + { + name: "deleted pod shouldn't be added into PodNominator", + pod: &highPriNominatedPod, + deletePod: true, + want: false, + }, + { + name: "pod without .status.nominatedPodName specified shouldn't be added into PodNominator", + pod: &highPriorityPod, + want: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + cs := fake.NewSimpleClientset(tt.pod) + informerFactory := informers.NewSharedInformerFactory(cs, 0) + podLister := informerFactory.Core().V1().Pods().Lister() + + // Build a PriorityQueue. + q := NewPriorityQueue(newDefaultQueueSort(), WithPodNominator(NewSafePodNominator(podLister))) + ctx := context.Background() + informerFactory.Start(ctx.Done()) + informerFactory.WaitForCacheSync(ctx.Done()) + + if tt.deletePod { + // Simulate that the test pod gets deleted physically. + informerFactory.Core().V1().Pods().Informer().GetStore().Delete(tt.pod) + } + + q.AddNominatedPod(tt.pod, tt.pod.Status.NominatedNodeName) + + if got := len(q.NominatedPodsForNode(tt.pod.Status.NominatedNodeName)) == 1; got != tt.want { + t.Errorf("Want %v, but got %v", tt.want, got) + } + }) + } +} + func TestPriorityQueue_PendingPods(t *testing.T) { makeSet := func(pods []*v1.Pod) map[*v1.Pod]struct{} { pendingSet := map[*v1.Pod]struct{}{} @@ -496,15 +553,15 @@ func TestPriorityQueue_UpdateNominatedPodForNode(t *testing.T) { "node5": {&unschedulablePod}, }, } - if !reflect.DeepEqual(q.PodNominator, expectedNominatedPods) { - t.Errorf("Unexpected nominated map after adding pods. Expected: %v, got: %v", expectedNominatedPods, q.PodNominator) + if diff := cmp.Diff(q.PodNominator, expectedNominatedPods, cmp.AllowUnexported(nominatedPodMap{}), cmpopts.IgnoreFields(nominatedPodMap{}, "RWMutex")); diff != "" { + t.Errorf("Unexpected diff after adding pods (-want, +got):\n%s", diff) } if p, err := q.Pop(); err != nil || p.Pod != &medPriorityPod { t.Errorf("Expected: %v after Pop, but got: %v", medPriorityPod.Name, p.Pod.Name) } // List of nominated pods shouldn't change after popping them from the queue. - if !reflect.DeepEqual(q.PodNominator, expectedNominatedPods) { - t.Errorf("Unexpected nominated map after popping pods. Expected: %v, got: %v", expectedNominatedPods, q.PodNominator) + if diff := cmp.Diff(q.PodNominator, expectedNominatedPods, cmp.AllowUnexported(nominatedPodMap{}), cmpopts.IgnoreFields(nominatedPodMap{}, "RWMutex")); diff != "" { + t.Errorf("Unexpected diff after popping pods (-want, +got):\n%s", diff) } // Update one of the nominated pods that doesn't have nominatedNodeName in the // pod object. It should be updated correctly. @@ -521,8 +578,8 @@ func TestPriorityQueue_UpdateNominatedPodForNode(t *testing.T) { "node5": {&unschedulablePod}, }, } - if !reflect.DeepEqual(q.PodNominator, expectedNominatedPods) { - t.Errorf("Unexpected nominated map after updating pods. Expected: %v, got: %v", expectedNominatedPods, q.PodNominator) + if diff := cmp.Diff(q.PodNominator, expectedNominatedPods, cmp.AllowUnexported(nominatedPodMap{}), cmpopts.IgnoreFields(nominatedPodMap{}, "RWMutex")); diff != "" { + t.Errorf("Unexpected diff after updating pods (-want, +got):\n%s", diff) } // Delete a nominated pod that doesn't have nominatedNodeName in the pod @@ -538,8 +595,8 @@ func TestPriorityQueue_UpdateNominatedPodForNode(t *testing.T) { "node5": {&unschedulablePod}, }, } - if !reflect.DeepEqual(q.PodNominator, expectedNominatedPods) { - t.Errorf("Unexpected nominated map after deleting pods. Expected: %v, got: %v", expectedNominatedPods, q.PodNominator) + if diff := cmp.Diff(q.PodNominator, expectedNominatedPods, cmp.AllowUnexported(nominatedPodMap{}), cmpopts.IgnoreFields(nominatedPodMap{}, "RWMutex")); diff != "" { + t.Errorf("Unexpected diff after deleting pods (-want, +got):\n%s", diff) } } diff --git a/pkg/scheduler/scheduler.go b/pkg/scheduler/scheduler.go index 7181e67ee3c9f..720882e5d3725 100644 --- a/pkg/scheduler/scheduler.go +++ b/pkg/scheduler/scheduler.go @@ -35,6 +35,7 @@ import ( "k8s.io/client-go/tools/cache" "k8s.io/klog/v2" podutil "k8s.io/kubernetes/pkg/api/v1/pod" + "k8s.io/kubernetes/pkg/apis/core/validation" schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config" "k8s.io/kubernetes/pkg/scheduler/apis/config/scheme" "k8s.io/kubernetes/pkg/scheduler/core" @@ -332,7 +333,8 @@ func (sched *Scheduler) recordSchedulingFailure(prof *profile.Profile, podInfo * } pod := podInfo.Pod - prof.Recorder.Eventf(pod, nil, v1.EventTypeWarning, "FailedScheduling", "Scheduling", err.Error()) + msg := truncateMessage(err.Error()) + prof.Recorder.Eventf(pod, nil, v1.EventTypeWarning, "FailedScheduling", "Scheduling", msg) if err := updatePod(sched.client, pod, &v1.PodCondition{ Type: v1.PodScheduled, Status: v1.ConditionFalse, @@ -343,6 +345,16 @@ func (sched *Scheduler) recordSchedulingFailure(prof *profile.Profile, podInfo * } } +// truncateMessage truncates a message if it hits the NoteLengthLimit. +func truncateMessage(message string) string { + max := validation.NoteLengthLimit + if len(message) <= max { + return message + } + suffix := " ..." + return message[:max-len(suffix)] + suffix +} + func updatePod(client clientset.Interface, pod *v1.Pod, condition *v1.PodCondition, nominatedNode string) error { klog.V(3).Infof("Updating pod condition for %s/%s to (%s==%s, Reason=%s)", pod.Namespace, pod.Name, condition.Type, condition.Status, condition.Reason) podCopy := pod.DeepCopy() diff --git a/pkg/scheduler/scheduler_test.go b/pkg/scheduler/scheduler_test.go index cf3f25a072c9c..ff1ac689c7eb4 100644 --- a/pkg/scheduler/scheduler_test.go +++ b/pkg/scheduler/scheduler_test.go @@ -866,7 +866,10 @@ func setupTestSchedulerWithVolumeBinding(volumeBinder scheduling.SchedulerVolume st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), st.RegisterPluginAsExtensions(volumebinding.Name, func(plArgs runtime.Object, handle framework.FrameworkHandle) (framework.Plugin, error) { - return &volumebinding.VolumeBinding{Binder: volumeBinder}, nil + return &volumebinding.VolumeBinding{ + Binder: volumeBinder, + PVCLister: informerFactory.Core().V1().PersistentVolumeClaims().Lister(), + }, nil }, "PreFilter", "Filter", "Reserve", "PreBind"), } s, bindingChan, errChan := setupTestScheduler(queuedPodStore, scache, informerFactory, broadcaster, fns...) diff --git a/pkg/volume/azure_dd/azure_dd_max_disk_count.go b/pkg/volume/azure_dd/azure_dd_max_disk_count.go index 8a41a46e864c5..0319e99432cb1 100644 --- a/pkg/volume/azure_dd/azure_dd_max_disk_count.go +++ b/pkg/volume/azure_dd/azure_dd_max_disk_count.go @@ -74,7 +74,9 @@ var maxDataDiskCountMap = map[string]int64{ "STANDARD_D16DS_V4": 32, "STANDARD_D16D_V4": 32, "STANDARD_D16S_V3": 32, + "STANDARD_D16S_V4": 32, "STANDARD_D16_V3": 32, + "STANDARD_D16_V4": 32, "STANDARD_D1_V2": 4, "STANDARD_D2": 8, "STANDARD_D2AS_V4": 4, @@ -82,16 +84,20 @@ var maxDataDiskCountMap = map[string]int64{ "STANDARD_D2DS_V4": 4, "STANDARD_D2D_V4": 4, "STANDARD_D2S_V3": 4, + "STANDARD_D2S_V4": 4, "STANDARD_D2_V2": 8, "STANDARD_D2_V2_PROMO": 8, "STANDARD_D2_V3": 4, + "STANDARD_D2_V4": 4, "STANDARD_D3": 16, "STANDARD_D32AS_V4": 32, "STANDARD_D32A_V4": 32, "STANDARD_D32DS_V4": 32, "STANDARD_D32D_V4": 32, "STANDARD_D32S_V3": 32, + "STANDARD_D32S_V4": 32, "STANDARD_D32_V3": 32, + "STANDARD_D32_V4": 32, "STANDARD_D3_V2": 16, "STANDARD_D3_V2_PROMO": 16, "STANDARD_D4": 32, @@ -100,15 +106,19 @@ var maxDataDiskCountMap = map[string]int64{ "STANDARD_D48DS_V4": 32, "STANDARD_D48D_V4": 32, "STANDARD_D48S_V3": 32, + "STANDARD_D48S_V4": 32, "STANDARD_D48_V3": 32, + "STANDARD_D48_V4": 32, "STANDARD_D4AS_V4": 8, "STANDARD_D4A_V4": 8, "STANDARD_D4DS_V4": 8, "STANDARD_D4D_V4": 8, "STANDARD_D4S_V3": 8, + "STANDARD_D4S_V4": 8, "STANDARD_D4_V2": 32, "STANDARD_D4_V2_PROMO": 32, "STANDARD_D4_V3": 8, + "STANDARD_D4_V4": 8, "STANDARD_D5_V2": 64, "STANDARD_D5_V2_PROMO": 64, "STANDARD_D64AS_V4": 32, @@ -116,13 +126,17 @@ var maxDataDiskCountMap = map[string]int64{ "STANDARD_D64DS_V4": 32, "STANDARD_D64D_V4": 32, "STANDARD_D64S_V3": 32, + "STANDARD_D64S_V4": 32, "STANDARD_D64_V3": 32, + "STANDARD_D64_V4": 32, "STANDARD_D8AS_V4": 16, "STANDARD_D8A_V4": 16, "STANDARD_D8DS_V4": 16, "STANDARD_D8D_V4": 16, "STANDARD_D8S_V3": 16, + "STANDARD_D8S_V4": 16, "STANDARD_D8_V3": 16, + "STANDARD_D8_V4": 16, "STANDARD_D96AS_V4": 32, "STANDARD_D96A_V4": 32, "STANDARD_DC1S_V2": 1, @@ -130,6 +144,7 @@ var maxDataDiskCountMap = map[string]int64{ "STANDARD_DC2S_V2": 2, "STANDARD_DC4S": 4, "STANDARD_DC4S_V2": 4, + "STANDARD_DC8S": 8, "STANDARD_DC8_V2": 8, "STANDARD_DS11-1_V2": 8, "STANDARD_DS11": 8, @@ -164,55 +179,82 @@ var maxDataDiskCountMap = map[string]int64{ "STANDARD_DS4_V2_PROMO": 32, "STANDARD_DS5_V2": 64, "STANDARD_DS5_V2_PROMO": 64, + "STANDARD_E16-4AS_V4": 32, "STANDARD_E16-4DS_V4": 32, "STANDARD_E16-4S_V3": 32, + "STANDARD_E16-4S_V4": 32, + "STANDARD_E16-8AS_V4": 32, "STANDARD_E16-8DS_V4": 32, "STANDARD_E16-8S_V3": 32, + "STANDARD_E16-8S_V4": 32, "STANDARD_E16AS_V4": 32, "STANDARD_E16A_V4": 32, "STANDARD_E16DS_V4": 32, "STANDARD_E16D_V4": 32, "STANDARD_E16S_V3": 32, + "STANDARD_E16S_V4": 32, "STANDARD_E16_V3": 32, + "STANDARD_E16_V4": 32, "STANDARD_E20AS_V4": 32, "STANDARD_E20A_V4": 32, "STANDARD_E20DS_V4": 32, "STANDARD_E20D_V4": 32, "STANDARD_E20S_V3": 32, + "STANDARD_E20S_V4": 32, "STANDARD_E20_V3": 32, + "STANDARD_E20_V4": 32, "STANDARD_E2AS_V4": 4, "STANDARD_E2A_V4": 4, "STANDARD_E2DS_V4": 4, "STANDARD_E2D_V4": 4, "STANDARD_E2S_V3": 4, + "STANDARD_E2S_V4": 4, "STANDARD_E2_V3": 4, + "STANDARD_E2_V4": 4, + "STANDARD_E32-16AS_V4": 32, "STANDARD_E32-16DS_V4": 32, "STANDARD_E32-16S_V3": 32, + "STANDARD_E32-16S_V4": 32, + "STANDARD_E32-8AS_V4": 32, "STANDARD_E32-8DS_V4": 32, "STANDARD_E32-8S_V3": 32, + "STANDARD_E32-8S_V4": 32, "STANDARD_E32AS_V4": 32, "STANDARD_E32A_V4": 32, "STANDARD_E32DS_V4": 32, "STANDARD_E32D_V4": 32, "STANDARD_E32S_V3": 32, + "STANDARD_E32S_V4": 32, "STANDARD_E32_V3": 32, + "STANDARD_E32_V4": 32, + "STANDARD_E4-2AS_V4": 8, "STANDARD_E4-2DS_V4": 8, "STANDARD_E4-2S_V3": 8, + "STANDARD_E4-2S_V4": 8, "STANDARD_E48AS_V4": 32, "STANDARD_E48A_V4": 32, "STANDARD_E48DS_V4": 32, "STANDARD_E48D_V4": 32, "STANDARD_E48S_V3": 32, + "STANDARD_E48S_V4": 32, "STANDARD_E48_V3": 32, + "STANDARD_E48_V4": 32, "STANDARD_E4AS_V4": 8, "STANDARD_E4A_V4": 8, "STANDARD_E4DS_V4": 8, "STANDARD_E4D_V4": 8, "STANDARD_E4S_V3": 8, + "STANDARD_E4S_V4": 8, "STANDARD_E4_V3": 8, + "STANDARD_E4_V4": 8, + "STANDARD_E64-16AS_V4": 32, "STANDARD_E64-16DS_V4": 32, "STANDARD_E64-16S_V3": 32, + "STANDARD_E64-16S_V4": 32, + "STANDARD_E64-32AS_V4": 32, + "STANDARD_E64-32DS_V4": 32, "STANDARD_E64-32S_V3": 32, + "STANDARD_E64-32S_V4": 32, "STANDARD_E64AS_V4": 32, "STANDARD_E64A_V4": 32, "STANDARD_E64DS_V4": 32, @@ -220,17 +262,29 @@ var maxDataDiskCountMap = map[string]int64{ "STANDARD_E64IS_V3": 32, "STANDARD_E64I_V3": 32, "STANDARD_E64S_V3": 32, + "STANDARD_E64S_V4": 32, "STANDARD_E64_V3": 32, + "STANDARD_E64_V4": 32, + "STANDARD_E80IDS_V4": 32, + "STANDARD_E80IS_V4": 32, + "STANDARD_E8-2AS_V4": 16, "STANDARD_E8-2DS_V4": 16, "STANDARD_E8-2S_V3": 16, + "STANDARD_E8-2S_V4": 16, + "STANDARD_E8-4AS_V4": 16, "STANDARD_E8-4DS_V4": 16, "STANDARD_E8-4S_V3": 16, + "STANDARD_E8-4S_V4": 16, "STANDARD_E8AS_V4": 16, "STANDARD_E8A_V4": 16, "STANDARD_E8DS_V4": 16, "STANDARD_E8D_V4": 16, "STANDARD_E8S_V3": 16, + "STANDARD_E8S_V4": 16, "STANDARD_E8_V3": 16, + "STANDARD_E8_V4": 16, + "STANDARD_E96-24AS_V4": 32, + "STANDARD_E96-48AS_V4": 32, "STANDARD_E96AS_V4": 32, "STANDARD_E96A_V4": 32, "STANDARD_F1": 4, @@ -324,6 +378,7 @@ var maxDataDiskCountMap = map[string]int64{ "STANDARD_NC12_PROMO": 48, "STANDARD_NC12S_V2": 24, "STANDARD_NC12S_V3": 24, + "STANDARD_NC16AS_T4_V3": 32, "STANDARD_NC24": 64, "STANDARD_NC24_PROMO": 64, "STANDARD_NC24R": 64, @@ -332,10 +387,13 @@ var maxDataDiskCountMap = map[string]int64{ "STANDARD_NC24RS_V3": 32, "STANDARD_NC24S_V2": 32, "STANDARD_NC24S_V3": 32, + "STANDARD_NC4AS_T4_V3": 8, "STANDARD_NC6": 24, + "STANDARD_NC64AS_T4_V3": 32, "STANDARD_NC6_PROMO": 24, "STANDARD_NC6S_V2": 12, "STANDARD_NC6S_V3": 12, + "STANDARD_NC8AS_T4_V3": 16, "STANDARD_ND12S": 24, "STANDARD_ND24RS": 32, "STANDARD_ND24S": 32, diff --git a/pkg/volume/azure_file/azure_file_test.go b/pkg/volume/azure_file/azure_file_test.go index 6d42eb9ad8cb4..6eba826d4575e 100644 --- a/pkg/volume/azure_file/azure_file_test.go +++ b/pkg/volume/azure_file/azure_file_test.go @@ -371,7 +371,10 @@ func TestAppendDefaultMountOptions(t *testing.T) { fsGroup: nil, expected: []string{"dir_mode=0777", fmt.Sprintf("%s=%s", fileMode, defaultFileMode), - fmt.Sprintf("%s=%s", vers, defaultVers)}, + fmt.Sprintf("%s=%s", vers, defaultVers), + fmt.Sprintf("%s=%s", actimeo, defaultActimeo), + mfsymlinks, + }, }, { options: []string{"file_mode=0777"}, @@ -379,7 +382,10 @@ func TestAppendDefaultMountOptions(t *testing.T) { expected: []string{"file_mode=0777", fmt.Sprintf("%s=%s", dirMode, defaultDirMode), fmt.Sprintf("%s=%s", vers, defaultVers), - fmt.Sprintf("%s=0", gid)}, + fmt.Sprintf("%s=0", gid), + fmt.Sprintf("%s=%s", actimeo, defaultActimeo), + mfsymlinks, + }, }, { options: []string{"vers=2.1"}, @@ -387,18 +393,28 @@ func TestAppendDefaultMountOptions(t *testing.T) { expected: []string{"vers=2.1", fmt.Sprintf("%s=%s", fileMode, defaultFileMode), fmt.Sprintf("%s=%s", dirMode, defaultDirMode), - fmt.Sprintf("%s=1000", gid)}, + fmt.Sprintf("%s=1000", gid), + fmt.Sprintf("%s=%s", actimeo, defaultActimeo), + mfsymlinks, + }, }, { options: []string{""}, expected: []string{"", fmt.Sprintf("%s=%s", fileMode, defaultFileMode), fmt.Sprintf("%s=%s", dirMode, defaultDirMode), - fmt.Sprintf("%s=%s", vers, defaultVers)}, + fmt.Sprintf("%s=%s", vers, defaultVers), + fmt.Sprintf("%s=%s", actimeo, defaultActimeo), + mfsymlinks, + }, }, { - options: []string{"file_mode=0777", "dir_mode=0777"}, - expected: []string{"file_mode=0777", "dir_mode=0777", fmt.Sprintf("%s=%s", vers, defaultVers)}, + options: []string{"file_mode=0777", "dir_mode=0777"}, + expected: []string{"file_mode=0777", "dir_mode=0777", + fmt.Sprintf("%s=%s", vers, defaultVers), + fmt.Sprintf("%s=%s", actimeo, defaultActimeo), + mfsymlinks, + }, }, { options: []string{"gid=2000"}, @@ -406,7 +422,20 @@ func TestAppendDefaultMountOptions(t *testing.T) { expected: []string{"gid=2000", fmt.Sprintf("%s=%s", fileMode, defaultFileMode), fmt.Sprintf("%s=%s", dirMode, defaultDirMode), - "vers=3.0"}, + "vers=3.0", + fmt.Sprintf("%s=%s", actimeo, defaultActimeo), + mfsymlinks, + }, + }, + { + options: []string{"actimeo=3"}, + expected: []string{ + "actimeo=3", + fmt.Sprintf("%s=%s", fileMode, defaultFileMode), + fmt.Sprintf("%s=%s", dirMode, defaultDirMode), + fmt.Sprintf("%s=%s", vers, defaultVers), + mfsymlinks, + }, }, } diff --git a/pkg/volume/azure_file/azure_provision.go b/pkg/volume/azure_file/azure_provision.go index d547fc6e9b037..9c4d290d7234e 100644 --- a/pkg/volume/azure_file/azure_provision.go +++ b/pkg/volume/azure_file/azure_provision.go @@ -198,9 +198,10 @@ func (a *azureFileProvisioner) Provision(selectedNode *v1.Node, allowedTopologie } if shareName == "" { - // File share name has a length limit of 63, and it cannot contain two consecutive '-'s. + // File share name has a length limit of 63, it cannot contain two consecutive '-'s, and all letters must be lower case. name := util.GenerateVolumeName(a.options.ClusterName, a.options.PVName, 63) shareName = strings.Replace(name, "--", "-", -1) + shareName = strings.ToLower(shareName) } if resourceGroup == "" { diff --git a/pkg/volume/azure_file/azure_util.go b/pkg/volume/azure_file/azure_util.go index eab56cb563b4c..017f1ac220691 100644 --- a/pkg/volume/azure_file/azure_util.go +++ b/pkg/volume/azure_file/azure_util.go @@ -34,9 +34,12 @@ const ( dirMode = "dir_mode" gid = "gid" vers = "vers" + actimeo = "actimeo" + mfsymlinks = "mfsymlinks" defaultFileMode = "0777" defaultDirMode = "0777" defaultVers = "3.0" + defaultActimeo = "30" ) // Abstract interface to azure file operations. @@ -106,6 +109,8 @@ func appendDefaultMountOptions(mountOptions []string, fsGroup *int64) []string { dirModeFlag := false versFlag := false gidFlag := false + actimeoFlag := false + mfsymlinksFlag := false for _, mountOption := range mountOptions { if strings.HasPrefix(mountOption, fileMode) { @@ -120,6 +125,12 @@ func appendDefaultMountOptions(mountOptions []string, fsGroup *int64) []string { if strings.HasPrefix(mountOption, gid) { gidFlag = true } + if strings.HasPrefix(mountOption, actimeo) { + actimeoFlag = true + } + if strings.HasPrefix(mountOption, mfsymlinks) { + mfsymlinksFlag = true + } } allMountOptions := mountOptions @@ -138,5 +149,13 @@ func appendDefaultMountOptions(mountOptions []string, fsGroup *int64) []string { if !gidFlag && fsGroup != nil { allMountOptions = append(allMountOptions, fmt.Sprintf("%s=%d", gid, *fsGroup)) } + + if !actimeoFlag { + allMountOptions = append(allMountOptions, fmt.Sprintf("%s=%s", actimeo, defaultActimeo)) + } + + if !mfsymlinksFlag { + allMountOptions = append(allMountOptions, mfsymlinks) + } return allMountOptions } diff --git a/pkg/volume/csi/csi_attacher.go b/pkg/volume/csi/csi_attacher.go index e429dc9a6450f..a6c122e972cad 100644 --- a/pkg/volume/csi/csi_attacher.go +++ b/pkg/volume/csi/csi_attacher.go @@ -313,13 +313,8 @@ func (c *csiAttacher) MountDevice(spec *volume.Spec, devicePath string, deviceMo volDataKey.volHandle: csiSource.VolumeHandle, volDataKey.driverName: csiSource.Driver, } - if err = saveVolumeData(dataDir, volDataFileName, data); err != nil { - klog.Error(log("failed to save volume info data: %v", err)) - if cleanErr := os.RemoveAll(dataDir); cleanErr != nil { - klog.Error(log("failed to remove dir after error [%s]: %v", dataDir, cleanErr)) - } - return err - } + + err = saveVolumeData(dataDir, volDataFileName, data) defer func() { // Only if there was an error and volume operation was considered // finished, we should remove the directory. @@ -332,6 +327,12 @@ func (c *csiAttacher) MountDevice(spec *volume.Spec, devicePath string, deviceMo } }() + if err != nil { + errMsg := log("failed to save volume info data: %v", err) + klog.Error(errMsg) + return errors.New(errMsg) + } + if !stageUnstageSet { klog.Infof(log("attacher.MountDevice STAGE_UNSTAGE_VOLUME capability not set. Skipping MountDevice...")) // defer does *not* remove the metadata file and it's correct - UnmountDevice needs it there. diff --git a/pkg/volume/csi/csi_attacher_test.go b/pkg/volume/csi/csi_attacher_test.go index 4d09f3362f829..5c54a50fcc6bf 100644 --- a/pkg/volume/csi/csi_attacher_test.go +++ b/pkg/volume/csi/csi_attacher_test.go @@ -21,6 +21,7 @@ import ( "fmt" "io/ioutil" "os" + "os/user" "path/filepath" "reflect" "sync" @@ -927,13 +928,6 @@ func TestAttacherDetach(t *testing.T) { return false, nil, nil }, }, - // The watcher error triggered by this test case will result in the - // Detach() call on L984 timing out after 2 minutes since an error - // condition is logged but not returned. Thus this test will only pass if - // the default value for KUBE_TEST_TIMEOUT in hack/make-rules/test.sh is - // greater than the default of 120s. It's not clear why this test was - // merged at all given that a watcher error is only logged and cannot be - // observed by the test. { name: "API watch error happen", volID: "vol-005", @@ -1068,15 +1062,16 @@ func TestAttacherMountDevice(t *testing.T) { transientError := volumetypes.NewTransientOperationFailure("") testCases := []struct { - testName string - volName string - devicePath string - deviceMountPath string - stageUnstageSet bool - shouldFail bool - createAttachment bool - exitError error - spec *volume.Spec + testName string + volName string + devicePath string + deviceMountPath string + stageUnstageSet bool + shouldFail bool + createAttachment bool + populateDeviceMountPath bool + exitError error + spec *volume.Spec }{ { testName: "normal PV", @@ -1166,9 +1161,24 @@ func TestAttacherMountDevice(t *testing.T) { exitError: nonFinalError, shouldFail: true, }, + { + testName: "failure PV with existing data", + volName: "test-vol1", + devicePath: "path1", + deviceMountPath: "path2", + stageUnstageSet: true, + createAttachment: true, + populateDeviceMountPath: true, + shouldFail: true, + spec: volume.NewSpecFromPersistentVolume(makeTestPV(pvName, 10, testDriver, "test-vol1"), true), + }, } for _, tc := range testCases { + user, _ := user.Current() + if tc.populateDeviceMountPath && user.Uid == "0" { + t.Skipf("Skipping intentional failure on existing data when running as root.") + } t.Run(tc.testName, func(t *testing.T) { t.Logf("Running test case: %s", tc.testName) @@ -1202,6 +1212,25 @@ func TestAttacherMountDevice(t *testing.T) { }() } + parent := filepath.Dir(tc.deviceMountPath) + filePath := filepath.Join(parent, "newfile") + if tc.populateDeviceMountPath { + // We need to create the deviceMountPath before we Mount, + // so that we can correctly create the file without errors. + err := os.MkdirAll(tc.deviceMountPath, 0750) + if err != nil { + t.Errorf("error attempting to create the directory") + } + _, err = os.Create(filePath) + if err != nil { + t.Errorf("error attempting to populate file on parent path: %v", err) + } + err = os.Chmod(parent, 0555) + if err != nil { + t.Errorf("error attempting to modify directory permissions: %v", err) + } + } + // Run err := csiAttacher.MountDevice(tc.spec, tc.devicePath, tc.deviceMountPath) @@ -1210,6 +1239,22 @@ func TestAttacherMountDevice(t *testing.T) { if !tc.shouldFail { t.Errorf("test should not fail, but error occurred: %v", err) } + if tc.populateDeviceMountPath { + // We're expecting saveVolumeData to fail, which is responsible + // for creating this file. It shouldn't exist. + _, err := os.Stat(parent + "/" + volDataFileName) + if !os.IsNotExist(err) { + t.Errorf("vol_data.json should not exist: %v", err) + } + _, err = os.Stat(filePath) + if os.IsNotExist(err) { + t.Errorf("expecting file to exist after err received: %v", err) + } + err = os.Chmod(parent, 0777) + if err != nil { + t.Errorf("failed to modify permissions after test: %v", err) + } + } return } if err == nil && tc.shouldFail { diff --git a/pkg/volume/csi/csi_plugin.go b/pkg/volume/csi/csi_plugin.go index 9fe48924d5165..f4a1b88d8b5de 100644 --- a/pkg/volume/csi/csi_plugin.go +++ b/pkg/volume/csi/csi_plugin.go @@ -42,6 +42,7 @@ import ( "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/csi/nodeinfomanager" + volumetypes "k8s.io/kubernetes/pkg/volume/util/types" ) const ( @@ -435,11 +436,23 @@ func (p *csiPlugin) NewMounter( attachID := getAttachmentName(volumeHandle, driverName, node) volData[volDataKey.attachmentID] = attachID - if err := saveVolumeData(dataDir, volDataFileName, volData); err != nil { - if removeErr := os.RemoveAll(dataDir); removeErr != nil { - klog.Error(log("failed to remove dir after error [%s]: %v", dataDir, removeErr)) + err = saveVolumeData(dataDir, volDataFileName, volData) + defer func() { + // Only if there was an error and volume operation was considered + // finished, we should remove the directory. + if err != nil && volumetypes.IsOperationFinishedError(err) { + // attempt to cleanup volume mount dir. + if err = removeMountDir(p, dir); err != nil { + klog.Error(log("attacher.MountDevice failed to remove mount dir after error [%s]: %v", dir, err)) + } } - return nil, errors.New(log("failed to save volume info data: %v", err)) + }() + + if err != nil { + errorMsg := log("csi.NewMounter failed to save volume info data: %v", err) + klog.Error(errorMsg) + + return nil, errors.New(errorMsg) } klog.V(4).Info(log("mounter created successfully")) @@ -680,11 +693,21 @@ func (p *csiPlugin) NewBlockVolumeMapper(spec *volume.Spec, podRef *api.Pod, opt volDataKey.attachmentID: attachID, } - if err := saveVolumeData(dataDir, volDataFileName, volData); err != nil { - if removeErr := os.RemoveAll(dataDir); removeErr != nil { - klog.Error(log("failed to remove dir after error [%s]: %v", dataDir, removeErr)) + err = saveVolumeData(dataDir, volDataFileName, volData) + defer func() { + // Only if there was an error and volume operation was considered + // finished, we should remove the directory. + if err != nil && volumetypes.IsOperationFinishedError(err) { + // attempt to cleanup volume mount dir. + if err = removeMountDir(p, dataDir); err != nil { + klog.Error(log("attacher.MountDevice failed to remove mount dir after error [%s]: %v", dataDir, err)) + } } - return nil, errors.New(log("failed to save volume info data: %v", err)) + }() + if err != nil { + errorMsg := log("csi.NewBlockVolumeMapper failed to save volume info data: %v", err) + klog.Error(errorMsg) + return nil, errors.New(errorMsg) } return mapper, nil diff --git a/pkg/volume/csimigration/plugin_manager.go b/pkg/volume/csimigration/plugin_manager.go index 1d635166aeddb..686eadb51d3e8 100644 --- a/pkg/volume/csimigration/plugin_manager.go +++ b/pkg/volume/csimigration/plugin_manager.go @@ -120,19 +120,19 @@ func (pm PluginManager) IsMigratable(spec *volume.Spec) (bool, error) { // from references to in-tree plugins to migrated CSI plugins type InTreeToCSITranslator interface { TranslateInTreePVToCSI(pv *v1.PersistentVolume) (*v1.PersistentVolume, error) - TranslateInTreeInlineVolumeToCSI(volume *v1.Volume) (*v1.PersistentVolume, error) + TranslateInTreeInlineVolumeToCSI(volume *v1.Volume, podNamespace string) (*v1.PersistentVolume, error) } // TranslateInTreeSpecToCSI translates a volume spec (either PV or inline volume) // supported by an in-tree plugin to CSI -func TranslateInTreeSpecToCSI(spec *volume.Spec, translator InTreeToCSITranslator) (*volume.Spec, error) { +func TranslateInTreeSpecToCSI(spec *volume.Spec, podNamespace string, translator InTreeToCSITranslator) (*volume.Spec, error) { var csiPV *v1.PersistentVolume var err error inlineVolume := false if spec.PersistentVolume != nil { csiPV, err = translator.TranslateInTreePVToCSI(spec.PersistentVolume) } else if spec.Volume != nil { - csiPV, err = translator.TranslateInTreeInlineVolumeToCSI(spec.Volume) + csiPV, err = translator.TranslateInTreeInlineVolumeToCSI(spec.Volume, podNamespace) inlineVolume = true } else { err = errors.New("not a valid volume spec") diff --git a/pkg/volume/emptydir/empty_dir.go b/pkg/volume/emptydir/empty_dir.go index 07384cc9e0591..d9a1704623e1f 100644 --- a/pkg/volume/emptydir/empty_dir.go +++ b/pkg/volume/emptydir/empty_dir.go @@ -208,11 +208,21 @@ func (ed *emptyDir) SetUpAt(dir string, mounterArgs volume.MounterArgs) error { // storage medium is the default, then the volume is ready. If the // medium is memory, and a mountpoint is present, then the volume is // ready. - if volumeutil.IsReady(ed.getMetaDir()) { + readyDir := ed.getMetaDir() + if volumeutil.IsReady(readyDir) { if ed.medium == v1.StorageMediumMemory && !notMnt { return nil } else if ed.medium == v1.StorageMediumDefault { - return nil + // Further check dir exists + if _, err := os.Stat(dir); err == nil { + return nil + } + // This situation should not happen unless user manually delete volume dir. + // In this case, delete ready file and print a warning for it. + klog.Warningf("volume ready file dir %s exist, but volume dir %s does not. Remove ready dir", readyDir, dir) + if err := os.RemoveAll(readyDir); err != nil && !os.IsNotExist(err) { + klog.Warningf("failed to remove ready dir [%s]: %v", readyDir, err) + } } } @@ -421,6 +431,12 @@ func (ed *emptyDir) TearDown() error { // TearDownAt simply discards everything in the directory. func (ed *emptyDir) TearDownAt(dir string) error { + // First remove ready dir which created in SetUp func + readyDir := ed.getMetaDir() + if removeErr := os.RemoveAll(readyDir); removeErr != nil && !os.IsNotExist(removeErr) { + return fmt.Errorf("failed to remove ready dir [%s]: %v", readyDir, removeErr) + } + if pathExists, pathErr := mount.PathExists(dir); pathErr != nil { return fmt.Errorf("Error checking if path exists: %v", pathErr) } else if !pathExists { diff --git a/pkg/volume/emptydir/empty_dir_test.go b/pkg/volume/emptydir/empty_dir_test.go index 78663ac29388f..550d34553fbff 100644 --- a/pkg/volume/emptydir/empty_dir_test.go +++ b/pkg/volume/emptydir/empty_dir_test.go @@ -25,7 +25,7 @@ import ( "path/filepath" "testing" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" @@ -36,6 +36,7 @@ import ( "k8s.io/kubernetes/pkg/volume" volumetest "k8s.io/kubernetes/pkg/volume/testing" "k8s.io/kubernetes/pkg/volume/util" + volumeutil "k8s.io/kubernetes/pkg/volume/util" "k8s.io/utils/mount" ) @@ -81,6 +82,26 @@ func (fake *fakeMountDetector) GetMountMedium(path string, requestedMedium v1.St func TestPluginEmptyRootContext(t *testing.T) { doTestPlugin(t, pluginTestConfig{ + volumeDirExists: true, + readyDirExists: true, + medium: v1.StorageMediumDefault, + expectedSetupMounts: 0, + expectedTeardownMounts: 0}) + doTestPlugin(t, pluginTestConfig{ + volumeDirExists: false, + readyDirExists: false, + medium: v1.StorageMediumDefault, + expectedSetupMounts: 0, + expectedTeardownMounts: 0}) + doTestPlugin(t, pluginTestConfig{ + volumeDirExists: true, + readyDirExists: false, + medium: v1.StorageMediumDefault, + expectedSetupMounts: 0, + expectedTeardownMounts: 0}) + doTestPlugin(t, pluginTestConfig{ + volumeDirExists: false, + readyDirExists: true, medium: v1.StorageMediumDefault, expectedSetupMounts: 0, expectedTeardownMounts: 0}) @@ -117,8 +138,11 @@ func TestPluginHugetlbfs(t *testing.T) { } type pluginTestConfig struct { - medium v1.StorageMedium - idempotent bool + medium v1.StorageMedium + //volumeDirExists indicates whether volumeDir already/still exists before volume setup/teardown + volumeDirExists bool + //readyDirExists indicates whether readyDir already/still exists before volume setup/teardown + readyDirExists bool expectedSetupMounts int shouldBeMountedBeforeTeardown bool expectedTeardownMounts int @@ -163,7 +187,7 @@ func doTestPlugin(t *testing.T, config pluginTestConfig) { } ) - if config.idempotent { + if config.readyDirExists { physicalMounter.MountPoints = []mount.MountPoint{ { Path: volumePath, @@ -188,29 +212,14 @@ func doTestPlugin(t *testing.T, config pluginTestConfig) { if volPath != volumePath { t.Errorf("Got unexpected path: %s", volPath) } - - if err := mounter.SetUp(volume.MounterArgs{}); err != nil { - t.Errorf("Expected success, got: %v", err) + if config.volumeDirExists { + if err := os.MkdirAll(volPath, perm); err != nil { + t.Errorf("fail to create path: %s", volPath) + } } // Stat the directory and check the permission bits - fileinfo, err := os.Stat(volPath) - if !config.idempotent { - if err != nil { - if os.IsNotExist(err) { - t.Errorf("SetUp() failed, volume path not created: %s", volPath) - } else { - t.Errorf("SetUp() failed: %v", err) - } - } - if e, a := perm, fileinfo.Mode().Perm(); e != a { - t.Errorf("Unexpected file mode for %v: expected: %v, got: %v", volPath, e, a) - } - } else if err == nil { - // If this test is for idempotency and we were able - // to stat the volume path, it's an error. - t.Errorf("Volume directory was created unexpectedly") - } + testSetUp(mounter, metadataDir, volPath) log := physicalMounter.GetLog() // Check the number of mounts performed during setup @@ -236,14 +245,19 @@ func doTestPlugin(t *testing.T, config pluginTestConfig) { t.Errorf("Got a nil Unmounter") } - // Tear down the volume - if err := unmounter.TearDown(); err != nil { - t.Errorf("Expected success, got: %v", err) + if !config.readyDirExists { + if err := os.RemoveAll(metadataDir); err != nil && !os.IsNotExist(err) { + t.Errorf("failed to remove ready dir [%s]: %v", metadataDir, err) + } } - if _, err := os.Stat(volPath); err == nil { - t.Errorf("TearDown() failed, volume path still exists: %s", volPath) - } else if !os.IsNotExist(err) { - t.Errorf("TearDown() failed: %v", err) + if !config.volumeDirExists { + if err := os.RemoveAll(volPath); err != nil && !os.IsNotExist(err) { + t.Errorf("failed to remove ready dir [%s]: %v", metadataDir, err) + } + } + // Tear down the volume + if err := testTearDown(unmounter, metadataDir, volPath); err != nil { + t.Errorf("Test failed with error %v", err) } log = physicalMounter.GetLog() @@ -256,6 +270,42 @@ func doTestPlugin(t *testing.T, config pluginTestConfig) { physicalMounter.ResetLog() } +func testSetUp(mounter volume.Mounter, metadataDir, volPath string) error { + if err := mounter.SetUp(volume.MounterArgs{}); err != nil { + return fmt.Errorf("Expected success, got: %v", err) + } + // Stat the directory and check the permission bits + if !volumeutil.IsReady(metadataDir) { + return fmt.Errorf("SetUp() failed, ready file is not created") + } + fileinfo, err := os.Stat(volPath) + if err != nil { + if os.IsNotExist(err) { + return fmt.Errorf("SetUp() failed, volume path not created: %s", volPath) + } + return fmt.Errorf("SetUp() failed: %v", err) + } + if e, a := perm, fileinfo.Mode().Perm(); e != a { + return fmt.Errorf("Unexpected file mode for %v: expected: %v, got: %v", volPath, e, a) + } + return nil +} + +func testTearDown(unmounter volume.Unmounter, metadataDir, volPath string) error { + if err := unmounter.TearDown(); err != nil { + return err + } + if volumeutil.IsReady(metadataDir) { + return fmt.Errorf("Teardown() failed, ready file still exists") + } + if _, err := os.Stat(volPath); err == nil { + return fmt.Errorf("TearDown() failed, volume path still exists: %s", volPath) + } else if !os.IsNotExist(err) { + return fmt.Errorf("TearDown() failed: %v", err) + } + return nil +} + func TestPluginBackCompat(t *testing.T) { basePath, err := utiltesting.MkTmpdir("emptydirTest") if err != nil { diff --git a/pkg/volume/fc/attacher.go b/pkg/volume/fc/attacher.go index fe4ac941ba427..78c5b3a87c35f 100644 --- a/pkg/volume/fc/attacher.go +++ b/pkg/volume/fc/attacher.go @@ -132,6 +132,7 @@ func (attacher *fcAttacher) MountDevice(spec *volume.Spec, devicePath string, de type fcDetacher struct { mounter mount.Interface manager diskManager + host volume.VolumeHost } var _ volume.Detacher = &fcDetacher{} @@ -142,6 +143,7 @@ func (plugin *fcPlugin) NewDetacher() (volume.Detacher, error) { return &fcDetacher{ mounter: plugin.host.GetMounter(plugin.GetPluginName()), manager: &fcUtil{}, + host: plugin.host, }, nil } @@ -170,7 +172,7 @@ func (detacher *fcDetacher) UnmountDevice(deviceMountPath string) error { if devName == "" { return nil } - unMounter := volumeSpecToUnmounter(detacher.mounter) + unMounter := volumeSpecToUnmounter(detacher.mounter, detacher.host) err = detacher.manager.DetachDisk(*unMounter, devName) if err != nil { return fmt.Errorf("fc: failed to detach disk: %s\nError: %v", devName, err) @@ -230,12 +232,13 @@ func volumeSpecToMounter(spec *volume.Spec, host volume.VolumeHost) (*fcDiskMoun }, nil } -func volumeSpecToUnmounter(mounter mount.Interface) *fcDiskUnmounter { +func volumeSpecToUnmounter(mounter mount.Interface, host volume.VolumeHost) *fcDiskUnmounter { return &fcDiskUnmounter{ fcDisk: &fcDisk{ io: &osIOHandler{}, }, mounter: mounter, deviceUtil: volumeutil.NewDeviceHandler(volumeutil.NewIOHandler()), + exec: host.GetExec(fcPluginName), } } diff --git a/pkg/volume/fc/fc.go b/pkg/volume/fc/fc.go index 99329ebf48039..6e3673c22d7a8 100644 --- a/pkg/volume/fc/fc.go +++ b/pkg/volume/fc/fc.go @@ -189,10 +189,10 @@ func (plugin *fcPlugin) newBlockVolumeMapperInternal(spec *volume.Spec, podUID t func (plugin *fcPlugin) NewUnmounter(volName string, podUID types.UID) (volume.Unmounter, error) { // Inject real implementations here, test through the internal function. - return plugin.newUnmounterInternal(volName, podUID, &fcUtil{}, plugin.host.GetMounter(plugin.GetPluginName())) + return plugin.newUnmounterInternal(volName, podUID, &fcUtil{}, plugin.host.GetMounter(plugin.GetPluginName()), plugin.host.GetExec(plugin.GetPluginName())) } -func (plugin *fcPlugin) newUnmounterInternal(volName string, podUID types.UID, manager diskManager, mounter mount.Interface) (volume.Unmounter, error) { +func (plugin *fcPlugin) newUnmounterInternal(volName string, podUID types.UID, manager diskManager, mounter mount.Interface, exec utilexec.Interface) (volume.Unmounter, error) { return &fcDiskUnmounter{ fcDisk: &fcDisk{ podUID: podUID, @@ -203,14 +203,15 @@ func (plugin *fcPlugin) newUnmounterInternal(volName string, podUID types.UID, m }, mounter: mounter, deviceUtil: util.NewDeviceHandler(util.NewIOHandler()), + exec: exec, }, nil } func (plugin *fcPlugin) NewBlockVolumeUnmapper(volName string, podUID types.UID) (volume.BlockVolumeUnmapper, error) { - return plugin.newUnmapperInternal(volName, podUID, &fcUtil{}) + return plugin.newUnmapperInternal(volName, podUID, &fcUtil{}, plugin.host.GetExec(plugin.GetPluginName())) } -func (plugin *fcPlugin) newUnmapperInternal(volName string, podUID types.UID, manager diskManager) (volume.BlockVolumeUnmapper, error) { +func (plugin *fcPlugin) newUnmapperInternal(volName string, podUID types.UID, manager diskManager, exec utilexec.Interface) (volume.BlockVolumeUnmapper, error) { return &fcDiskUnmapper{ fcDisk: &fcDisk{ podUID: podUID, @@ -219,6 +220,7 @@ func (plugin *fcPlugin) newUnmapperInternal(volName string, podUID types.UID, ma plugin: plugin, io: &osIOHandler{}, }, + exec: exec, deviceUtil: util.NewDeviceHandler(util.NewIOHandler()), }, nil } @@ -373,6 +375,7 @@ type fcDiskUnmounter struct { *fcDisk mounter mount.Interface deviceUtil util.DeviceUtil + exec utilexec.Interface } var _ volume.Unmounter = &fcDiskUnmounter{} @@ -400,6 +403,7 @@ var _ volume.BlockVolumeMapper = &fcDiskMapper{} type fcDiskUnmapper struct { *fcDisk deviceUtil util.DeviceUtil + exec utilexec.Interface } var _ volume.BlockVolumeUnmapper = &fcDiskUnmapper{} diff --git a/pkg/volume/fc/fc_test.go b/pkg/volume/fc/fc_test.go index 763081d8efb29..6aac05111ccec 100644 --- a/pkg/volume/fc/fc_test.go +++ b/pkg/volume/fc/fc_test.go @@ -190,7 +190,7 @@ func doTestPlugin(t *testing.T, spec *volume.Spec) { fakeManager2 := newFakeDiskManager() defer fakeManager2.Cleanup() - unmounter, err := plug.(*fcPlugin).newUnmounterInternal("vol1", types.UID("poduid"), fakeManager2, fakeMounter) + unmounter, err := plug.(*fcPlugin).newUnmounterInternal("vol1", types.UID("poduid"), fakeManager2, fakeMounter, fakeExec) if err != nil { t.Errorf("Failed to make a new Unmounter: %v", err) } diff --git a/pkg/volume/fc/fc_util.go b/pkg/volume/fc/fc_util.go index c8da529c9c793..bcf15bb46b11a 100644 --- a/pkg/volume/fc/fc_util.go +++ b/pkg/volume/fc/fc_util.go @@ -26,6 +26,7 @@ import ( "strings" "k8s.io/klog/v2" + utilexec "k8s.io/utils/exec" "k8s.io/utils/mount" "k8s.io/kubernetes/pkg/volume" @@ -111,6 +112,16 @@ func findDiskWWIDs(wwid string, io ioHandler, deviceUtil volumeutil.DeviceUtil) return "", "" } +// Flushes any outstanding I/O to the device +func flushDevice(deviceName string, exec utilexec.Interface) { + out, err := exec.Command("blockdev", "--flushbufs", deviceName).CombinedOutput() + if err != nil { + // Ignore the error and continue deleting the device. There is will be no retry on error. + klog.Warningf("Failed to flush device %s: %s\n%s", deviceName, err, string(out)) + } + klog.V(4).Infof("Flushed device %s", deviceName) +} + // Removes a scsi device based upon /dev/sdX name func removeFromScsiSubsystem(deviceName string, io ioHandler) { fileName := "/sys/block/" + deviceName + "/device/delete" @@ -257,6 +268,9 @@ func (util *fcUtil) DetachDisk(c fcDiskUnmounter, devicePath string) error { // Find slave if strings.HasPrefix(dstPath, "/dev/dm-") { devices = c.deviceUtil.FindSlaveDevicesOnMultipath(dstPath) + if err := util.deleteMultipathDevice(c.exec, dstPath); err != nil { + return err + } } else { // Add single devicepath to devices devices = append(devices, dstPath) @@ -264,7 +278,7 @@ func (util *fcUtil) DetachDisk(c fcDiskUnmounter, devicePath string) error { klog.V(4).Infof("fc: DetachDisk devicePath: %v, dstPath: %v, devices: %v", devicePath, dstPath, devices) var lastErr error for _, device := range devices { - err := util.detachFCDisk(c.io, device) + err := util.detachFCDisk(c.io, c.exec, device) if err != nil { klog.Errorf("fc: detachFCDisk failed. device: %v err: %v", device, err) lastErr = fmt.Errorf("fc: detachFCDisk failed. device: %v err: %v", device, err) @@ -278,11 +292,12 @@ func (util *fcUtil) DetachDisk(c fcDiskUnmounter, devicePath string) error { } // detachFCDisk removes scsi device file such as /dev/sdX from the node. -func (util *fcUtil) detachFCDisk(io ioHandler, devicePath string) error { +func (util *fcUtil) detachFCDisk(io ioHandler, exec utilexec.Interface, devicePath string) error { // Remove scsi device from the node. if !strings.HasPrefix(devicePath, "/dev/") { return fmt.Errorf("fc detach disk: invalid device name: %s", devicePath) } + flushDevice(devicePath, exec) arr := strings.Split(devicePath, "/") dev := arr[len(arr)-1] removeFromScsiSubsystem(dev, io) @@ -354,13 +369,16 @@ func (util *fcUtil) DetachBlockFCDisk(c fcDiskUnmapper, mapPath, devicePath stri if len(dm) != 0 { // Find all devices which are managed by multipath devices = c.deviceUtil.FindSlaveDevicesOnMultipath(dm) + if err := util.deleteMultipathDevice(c.exec, dm); err != nil { + return err + } } else { // Add single device path to devices devices = append(devices, dstPath) } var lastErr error for _, device := range devices { - err = util.detachFCDisk(c.io, device) + err = util.detachFCDisk(c.io, c.exec, device) if err != nil { klog.Errorf("fc: detachFCDisk failed. device: %v err: %v", device, err) lastErr = fmt.Errorf("fc: detachFCDisk failed. device: %v err: %v", device, err) @@ -373,6 +391,15 @@ func (util *fcUtil) DetachBlockFCDisk(c fcDiskUnmapper, mapPath, devicePath stri return nil } +func (util *fcUtil) deleteMultipathDevice(exec utilexec.Interface, dmDevice string) error { + out, err := exec.Command("multipath", "-f", dmDevice).CombinedOutput() + if err != nil { + return fmt.Errorf("failed to flush multipath device %s: %s\n%s", dmDevice, err, string(out)) + } + klog.V(4).Infof("Flushed multipath device: %s", dmDevice) + return nil +} + func checkPathExists(path string) (bool, error) { if pathExists, pathErr := mount.PathExists(path); pathErr != nil { return pathExists, fmt.Errorf("Error checking if path exists: %v", pathErr) diff --git a/pkg/volume/testing/BUILD b/pkg/volume/testing/BUILD index 58007e7f2e6a2..ece75893f83c2 100644 --- a/pkg/volume/testing/BUILD +++ b/pkg/volume/testing/BUILD @@ -25,6 +25,7 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//staging/src/k8s.io/client-go/informers:go_default_library", diff --git a/pkg/volume/testing/testing.go b/pkg/volume/testing/testing.go index 8bae17af2f3fc..f53e7567bdc3c 100644 --- a/pkg/volume/testing/testing.go +++ b/pkg/volume/testing/testing.go @@ -27,6 +27,7 @@ import ( "testing" "time" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/utils/exec" testingexec "k8s.io/utils/exec/testing" "k8s.io/utils/mount" @@ -417,7 +418,7 @@ func (plugin *FakeVolumePlugin) getFakeVolume(list *[]*FakeVolume) *FakeVolume { WaitForAttachHook: plugin.WaitForAttachHook, UnmountDeviceHook: plugin.UnmountDeviceHook, } - volume.VolumesAttached = make(map[string]types.NodeName) + volume.VolumesAttached = make(map[string]sets.String) volume.DeviceMountState = make(map[string]string) volume.VolumeMountState = make(map[string]string) *list = append(*list, volume) @@ -824,7 +825,7 @@ type FakeVolume struct { VolName string Plugin *FakeVolumePlugin MetricsNil - VolumesAttached map[string]types.NodeName + VolumesAttached map[string]sets.String DeviceMountState map[string]string VolumeMountState map[string]string @@ -1143,11 +1144,12 @@ func (fv *FakeVolume) Attach(spec *Spec, nodeName types.NodeName) (string, error fv.Lock() defer fv.Unlock() fv.AttachCallCount++ + volumeName, err := getUniqueVolumeName(spec) if err != nil { return "", err } - volumeNode, exist := fv.VolumesAttached[volumeName] + volumeNodes, exist := fv.VolumesAttached[volumeName] if exist { if nodeName == UncertainAttachNode { return "/dev/vdb-test", nil @@ -1157,13 +1159,14 @@ func (fv *FakeVolume) Attach(spec *Spec, nodeName types.NodeName) (string, error if nodeName == TimeoutAttachNode { return "", fmt.Errorf("Timed out to attach volume %q to node %q", volumeName, nodeName) } - if volumeNode == nodeName || volumeNode == MultiAttachNode || nodeName == MultiAttachNode { + if volumeNodes.Has(string(nodeName)) || volumeNodes.Has(MultiAttachNode) || nodeName == MultiAttachNode { + volumeNodes.Insert(string(nodeName)) return "/dev/vdb-test", nil } - return "", fmt.Errorf("volume %q trying to attach to node %q is already attached to node %q", volumeName, nodeName, volumeNode) + return "", fmt.Errorf("volume %q trying to attach to node %q is already attached to node %q", volumeName, nodeName, volumeNodes) } - fv.VolumesAttached[volumeName] = nodeName + fv.VolumesAttached[volumeName] = sets.NewString(string(nodeName)) if nodeName == UncertainAttachNode || nodeName == TimeoutAttachNode { return "", fmt.Errorf("Timed out to attach volume %q to node %q", volumeName, nodeName) } @@ -1261,10 +1264,18 @@ func (fv *FakeVolume) Detach(volumeName string, nodeName types.NodeName) error { fv.Lock() defer fv.Unlock() fv.DetachCallCount++ - if _, exist := fv.VolumesAttached[volumeName]; !exist { - return fmt.Errorf("Trying to detach volume %q that is not attached to the node %q", volumeName, nodeName) + + node := string(nodeName) + volumeNodes, exist := fv.VolumesAttached[volumeName] + if !exist || !volumeNodes.Has(node) { + return fmt.Errorf("Trying to detach volume %q that is not attached to the node %q", volumeName, node) } - delete(fv.VolumesAttached, volumeName) + + volumeNodes.Delete(node) + if volumeNodes.Len() == 0 { + delete(fv.VolumesAttached, volumeName) + } + return nil } diff --git a/pkg/volume/util/BUILD b/pkg/volume/util/BUILD index 8cb989f7ae72c..8f615f069e67a 100644 --- a/pkg/volume/util/BUILD +++ b/pkg/volume/util/BUILD @@ -22,6 +22,7 @@ go_library( "//pkg/api/legacyscheme:go_default_library", "//pkg/api/v1/pod:go_default_library", "//pkg/apis/core/v1/helper:go_default_library", + "//pkg/features:go_default_library", "//pkg/securitycontext:go_default_library", "//pkg/util/resizefs:go_default_library", "//pkg/volume:go_default_library", @@ -38,6 +39,7 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/strategicpatch:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/component-base/metrics:go_default_library", "//staging/src/k8s.io/component-base/metrics/legacyregistry:go_default_library", @@ -54,6 +56,7 @@ go_test( "atomic_writer_test.go", "attach_limit_test.go", "device_util_linux_test.go", + "metrics_test.go", "nested_volumes_test.go", "resize_util_test.go", "util_test.go", diff --git a/pkg/volume/util/metrics.go b/pkg/volume/util/metrics.go index 5542f8e534b88..522c9420ee9c3 100644 --- a/pkg/volume/util/metrics.go +++ b/pkg/volume/util/metrics.go @@ -20,8 +20,10 @@ import ( "fmt" "time" + utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/component-base/metrics" "k8s.io/component-base/metrics/legacyregistry" + "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/volume" ) @@ -115,8 +117,13 @@ func OperationCompleteHook(plugin, operationName string) func(*error) { // between metrics emitted for CSI volumes which may be handled by different // CSI plugin drivers. func GetFullQualifiedPluginNameForVolume(pluginName string, spec *volume.Spec) string { - if spec != nil && spec.PersistentVolume != nil && spec.PersistentVolume.Spec.CSI != nil { - return fmt.Sprintf("%s:%s", pluginName, spec.PersistentVolume.Spec.CSI.Driver) + if spec != nil { + if spec.Volume != nil && spec.Volume.CSI != nil && utilfeature.DefaultFeatureGate.Enabled(features.CSIInlineVolume) { + return fmt.Sprintf("%s:%s", pluginName, spec.Volume.CSI.Driver) + } + if spec.PersistentVolume != nil && spec.PersistentVolume.Spec.CSI != nil { + return fmt.Sprintf("%s:%s", pluginName, spec.PersistentVolume.Spec.CSI.Driver) + } } return pluginName } diff --git a/pkg/volume/util/metrics_test.go b/pkg/volume/util/metrics_test.go new file mode 100644 index 0000000000000..ed450b7e36d6b --- /dev/null +++ b/pkg/volume/util/metrics_test.go @@ -0,0 +1,91 @@ +/* +Copyright 2020 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 util + +import ( + "fmt" + "testing" + + v1 "k8s.io/api/core/v1" + "k8s.io/kubernetes/pkg/volume" +) + +func TestGetFullQualifiedPluginNameForVolume(t *testing.T) { + var ( + fakePluginName = "kubernetes.io/fakePlugin" + fakeInlineCSIDriverName = "fake.inline.csi.driver" + fakeCSIDriverName = "fake.csi.driver" + ) + + testCase := []struct { + name string + pluginName string + spec *volume.Spec + wantFullName string + }{ + { + name: "get full qualified plugin name without volume spec", + pluginName: fakePluginName, + spec: nil, + wantFullName: fakePluginName, + }, + { + name: "get full qualified plugin name without using CSI plugin", + pluginName: fakePluginName, + spec: &volume.Spec{}, + wantFullName: fakePluginName, + }, + { + name: "get full qualified plugin name with CSI ephemeral volume", + pluginName: fakePluginName, + spec: &volume.Spec{ + Volume: &v1.Volume{ + VolumeSource: v1.VolumeSource{ + CSI: &v1.CSIVolumeSource{ + Driver: fakeInlineCSIDriverName, + }, + }, + }, + }, + wantFullName: fmt.Sprintf("%s:%s", fakePluginName, fakeInlineCSIDriverName), + }, + { + name: "get full qualified plugin name with CSI PV", + pluginName: fakePluginName, + spec: &volume.Spec{ + PersistentVolume: &v1.PersistentVolume{ + Spec: v1.PersistentVolumeSpec{ + PersistentVolumeSource: v1.PersistentVolumeSource{ + CSI: &v1.CSIPersistentVolumeSource{ + Driver: fakeCSIDriverName, + }, + }, + }, + }, + }, + wantFullName: fmt.Sprintf("%s:%s", fakePluginName, fakeCSIDriverName), + }, + } + + for _, test := range testCase { + t.Run(test.name, func(t *testing.T) { + if fullPluginName := GetFullQualifiedPluginNameForVolume(test.pluginName, test.spec); fullPluginName != test.wantFullName { + t.Errorf("Case name: %s, GetFullQualifiedPluginNameForVolume, pluginName:%s, spec: %v, return:%s, want:%s", test.name, test.pluginName, test.spec, fullPluginName, test.wantFullName) + } + }) + } +} diff --git a/pkg/volume/util/operationexecutor/operation_generator.go b/pkg/volume/util/operationexecutor/operation_generator.go index 52052e0748f94..04eb08d4b981f 100644 --- a/pkg/volume/util/operationexecutor/operation_generator.go +++ b/pkg/volume/util/operationexecutor/operation_generator.go @@ -59,7 +59,7 @@ type InTreeToCSITranslator interface { GetInTreePluginNameFromSpec(pv *v1.PersistentVolume, vol *v1.Volume) (string, error) GetCSINameFromInTreeName(pluginName string) (string, error) TranslateInTreePVToCSI(pv *v1.PersistentVolume) (*v1.PersistentVolume, error) - TranslateInTreeInlineVolumeToCSI(volume *v1.Volume) (*v1.PersistentVolume, error) + TranslateInTreeInlineVolumeToCSI(volume *v1.Volume, podNamespace string) (*v1.PersistentVolume, error) } var _ OperationGenerator = &operationGenerator{} diff --git a/pkg/volume/util/subpath/subpath_windows.go b/pkg/volume/util/subpath/subpath_windows.go index 2e08449c8898f..81c563134a077 100644 --- a/pkg/volume/util/subpath/subpath_windows.go +++ b/pkg/volume/util/subpath/subpath_windows.go @@ -75,7 +75,7 @@ func getUpperPath(path string) string { // Check whether a directory/file is a link type or not // LinkType could be SymbolicLink, Junction, or HardLink func isLinkPath(path string) (bool, error) { - cmd := fmt.Sprintf("(Get-Item -Path %s).LinkType", path) + cmd := fmt.Sprintf("(Get-Item -LiteralPath %q).LinkType", path) output, err := exec.Command("powershell", "/c", cmd).CombinedOutput() if err != nil { return false, err @@ -113,7 +113,7 @@ func evalSymlink(path string) (string, error) { } } // This command will give the target path of a given symlink - cmd := fmt.Sprintf("(Get-Item -Path %s).Target", upperpath) + cmd := fmt.Sprintf("(Get-Item -LiteralPath %q).Target", upperpath) output, err := exec.Command("powershell", "/c", cmd).CombinedOutput() if err != nil { return "", err diff --git a/plugin/pkg/admission/resourcequota/controller.go b/plugin/pkg/admission/resourcequota/controller.go index 510db4f6f447c..e0d9b41525949 100644 --- a/plugin/pkg/admission/resourcequota/controller.go +++ b/plugin/pkg/admission/resourcequota/controller.go @@ -510,7 +510,10 @@ func CheckRequest(quotas []corev1.ResourceQuota, a admission.Attributes, evaluat } } - if quota.IsZero(deltaUsage) { + // ignore items in deltaUsage with zero usage + deltaUsage = quota.RemoveZeros(deltaUsage) + // if there is no remaining non-zero usage, short-circuit and return + if len(deltaUsage) == 0 { return quotas, nil } diff --git a/plugin/pkg/admission/serviceaccount/admission_test.go b/plugin/pkg/admission/serviceaccount/admission_test.go index 77ef50c6222a3..14fe7f223b3ec 100644 --- a/plugin/pkg/admission/serviceaccount/admission_test.go +++ b/plugin/pkg/admission/serviceaccount/admission_test.go @@ -129,7 +129,7 @@ func TestRejectsMirrorPodWithSecretVolumes(t *testing.T) { }, Spec: api.PodSpec{ Volumes: []api.Volume{ - {VolumeSource: api.VolumeSource{Secret: &api.SecretVolumeSource{}}}, + {VolumeSource: api.VolumeSource{Secret: &api.SecretVolumeSource{SecretName: "mysecret"}}}, }, }, } diff --git a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/patch_policy.go b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/patch_policy.go deleted file mode 100644 index 8f91d44c9c83c..0000000000000 --- a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/patch_policy.go +++ /dev/null @@ -1,65 +0,0 @@ -package bootstrappolicy - -import ( - rbacv1 "k8s.io/api/rbac/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rbacv1helpers "k8s.io/kubernetes/pkg/apis/rbac/v1" -) - -var ClusterRoles = clusterRoles - -func OpenshiftClusterRoles() []rbacv1.ClusterRole { - const ( - // These are valid under the "nodes" resource - NodeMetricsSubresource = "metrics" - NodeStatsSubresource = "stats" - NodeSpecSubresource = "spec" - NodeLogSubresource = "log" - ) - - roles := clusterRoles() - roles = append(roles, []rbacv1.ClusterRole{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: "system:node-admin", - }, - Rules: []rbacv1.PolicyRule{ - // Allow read-only access to the API objects - rbacv1helpers.NewRule(Read...).Groups(legacyGroup).Resources("nodes").RuleOrDie(), - // Allow all API calls to the nodes - rbacv1helpers.NewRule("proxy").Groups(legacyGroup).Resources("nodes").RuleOrDie(), - rbacv1helpers.NewRule("*").Groups(legacyGroup).Resources("nodes/proxy", "nodes/"+NodeMetricsSubresource, "nodes/"+NodeSpecSubresource, "nodes/"+NodeStatsSubresource, "nodes/"+NodeLogSubresource).RuleOrDie(), - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "system:node-reader", - }, - Rules: []rbacv1.PolicyRule{ - // Allow read-only access to the API objects - rbacv1helpers.NewRule(Read...).Groups(legacyGroup).Resources("nodes").RuleOrDie(), - // Allow read access to node metrics - rbacv1helpers.NewRule("get").Groups(legacyGroup).Resources("nodes/"+NodeMetricsSubresource, "nodes/"+NodeSpecSubresource).RuleOrDie(), - // Allow read access to stats - // Node stats requests are submitted as POSTs. These creates are non-mutating - rbacv1helpers.NewRule("get", "create").Groups(legacyGroup).Resources("nodes/" + NodeStatsSubresource).RuleOrDie(), - // TODO: expose other things like /healthz on the node once we figure out non-resource URL policy across systems - }, - }, - }...) - - addClusterRoleLabel(roles) - return roles -} - -var ClusterRoleBindings = clusterRoleBindings - -func OpenshiftClusterRoleBindings() []rbacv1.ClusterRoleBinding { - bindings := clusterRoleBindings() - bindings = append(bindings, []rbacv1.ClusterRoleBinding{ - rbacv1helpers.NewClusterBinding("system:node-admin").Users("system:master", "system:kube-apiserver").Groups("system:node-admins").BindingOrDie(), - }...) - - addClusterRoleBindingLabel(bindings) - return bindings -} diff --git a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go index 3acef9ba99a01..c3624119d2e75 100644 --- a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go +++ b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go @@ -184,8 +184,8 @@ func NodeRules() []rbacv1.PolicyRule { return nodePolicyRules } -// clusterRoles returns the cluster roles to bootstrap an API server with -func clusterRoles() []rbacv1.ClusterRole { +// ClusterRoles returns the cluster roles to bootstrap an API server with +func ClusterRoles() []rbacv1.ClusterRole { roles := []rbacv1.ClusterRole{ { // a "root" role which can do absolutely anything @@ -208,15 +208,6 @@ func clusterRoles() []rbacv1.ClusterRole { ).RuleOrDie(), }, }, - { - // a role which provides unauthenticated access. - ObjectMeta: metav1.ObjectMeta{Name: "system:openshift:public-info-viewer"}, - Rules: []rbacv1.PolicyRule{ - rbacv1helpers.NewRule("get").URLs( - "/.well-known", "/.well-known/*", - ).RuleOrDie(), - }, - }, { // a role which provides minimal resource access to allow a "normal" user to learn information about themselves ObjectMeta: metav1.ObjectMeta{Name: "system:basic-user"}, @@ -569,13 +560,12 @@ func clusterRoles() []rbacv1.ClusterRole { const systemNodeRoleName = "system:node" // ClusterRoleBindings return default rolebindings to the default roles -func clusterRoleBindings() []rbacv1.ClusterRoleBinding { +func ClusterRoleBindings() []rbacv1.ClusterRoleBinding { rolebindings := []rbacv1.ClusterRoleBinding{ rbacv1helpers.NewClusterBinding("cluster-admin").Groups(user.SystemPrivilegedGroup).BindingOrDie(), rbacv1helpers.NewClusterBinding("system:discovery").Groups(user.AllAuthenticated).BindingOrDie(), rbacv1helpers.NewClusterBinding("system:basic-user").Groups(user.AllAuthenticated).BindingOrDie(), rbacv1helpers.NewClusterBinding("system:public-info-viewer").Groups(user.AllAuthenticated, user.AllUnauthenticated).BindingOrDie(), - rbacv1helpers.NewClusterBinding("system:openshift:public-info-viewer").Groups(user.AllAuthenticated, user.AllUnauthenticated).BindingOrDie(), rbacv1helpers.NewClusterBinding("system:node-proxier").Users(user.KubeProxy).BindingOrDie(), rbacv1helpers.NewClusterBinding("system:kube-controller-manager").Users(user.KubeControllerManager).BindingOrDie(), rbacv1helpers.NewClusterBinding("system:kube-dns").SAs("kube-system", "kube-dns").BindingOrDie(), diff --git a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-role-bindings.yaml b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-role-bindings.yaml index e6b888672a1de..05e333f5d732c 100644 --- a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-role-bindings.yaml +++ b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-role-bindings.yaml @@ -132,26 +132,6 @@ items: - apiGroup: rbac.authorization.k8s.io kind: User name: system:kube-proxy -- apiVersion: rbac.authorization.k8s.io/v1 - kind: ClusterRoleBinding - metadata: - annotations: - rbac.authorization.kubernetes.io/autoupdate: "true" - creationTimestamp: null - labels: - kubernetes.io/bootstrapping: rbac-defaults - name: system:openshift:public-info-viewer - roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: system:openshift:public-info-viewer - subjects: - - apiGroup: rbac.authorization.k8s.io - kind: Group - name: system:authenticated - - apiGroup: rbac.authorization.k8s.io - kind: Group - name: system:unauthenticated - apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: diff --git a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml index cffc298feeea4..b517b51eeb09f 100644 --- a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml +++ b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml @@ -1130,21 +1130,6 @@ items: verbs: - list - watch -- apiVersion: rbac.authorization.k8s.io/v1 - kind: ClusterRole - metadata: - annotations: - rbac.authorization.kubernetes.io/autoupdate: "true" - creationTimestamp: null - labels: - kubernetes.io/bootstrapping: rbac-defaults - name: system:openshift:public-info-viewer - rules: - - nonResourceURLs: - - /.well-known - - /.well-known/* - verbs: - - get - apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: diff --git a/staging/publishing/rules.yaml b/staging/publishing/rules.yaml index 668a2c6f59cf8..337fc8c666b80 100644 --- a/staging/publishing/rules.yaml +++ b/staging/publishing/rules.yaml @@ -4,7 +4,7 @@ recursive-delete-patterns: - BUILD.bazel - "*/BUILD.bazel" - Gopkg.toml -default-go-version: 1.15.2 +default-go-version: 1.15.13 rules: - destination: code-generator branches: @@ -31,7 +31,12 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/code-generator name: release-1.19 - go: 1.15.2 + go: 1.15.13 + - source: + branch: release-1.20 + dir: staging/src/k8s.io/code-generator + name: release-1.20 + go: 1.15.13 - destination: apimachinery library: true @@ -59,7 +64,12 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/apimachinery name: release-1.19 - go: 1.15.2 + go: 1.15.13 + - source: + branch: release-1.20 + dir: staging/src/k8s.io/apimachinery + name: release-1.20 + go: 1.15.13 - destination: api library: true @@ -99,7 +109,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/api name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: apimachinery branch: release-1.19 @@ -150,7 +160,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/client-go name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: apimachinery branch: release-1.19 @@ -215,7 +225,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/component-base name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: apimachinery branch: release-1.19 @@ -286,7 +296,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/apiserver name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: apimachinery branch: release-1.19 @@ -374,7 +384,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/kube-aggregator name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: apimachinery branch: release-1.19 @@ -474,7 +484,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/sample-apiserver name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: apimachinery branch: release-1.19 @@ -563,7 +573,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/sample-controller name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: apimachinery branch: release-1.19 @@ -664,7 +674,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/apiextensions-apiserver name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: apimachinery branch: release-1.19 @@ -743,7 +753,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/metrics name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: apimachinery branch: release-1.19 @@ -808,7 +818,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/cli-runtime name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: api branch: release-1.19 @@ -879,7 +889,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/sample-cli-plugin name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: api branch: release-1.19 @@ -952,7 +962,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/kube-proxy name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: apimachinery branch: release-1.19 @@ -1013,7 +1023,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/kubelet name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: apimachinery branch: release-1.19 @@ -1086,7 +1096,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/kube-scheduler name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: apimachinery branch: release-1.19 @@ -1159,7 +1169,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/kube-controller-manager name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: apimachinery branch: release-1.19 @@ -1216,7 +1226,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/cluster-bootstrap name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: apimachinery branch: release-1.19 @@ -1279,7 +1289,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/cloud-provider name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: api branch: release-1.19 @@ -1354,7 +1364,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/csi-translation-lib name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: api branch: release-1.19 @@ -1453,7 +1463,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/legacy-cloud-providers name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: api branch: release-1.19 @@ -1528,7 +1538,12 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/cri-api name: release-1.19 - go: 1.15.2 + go: 1.15.13 + - source: + branch: release-1.20 + dir: staging/src/k8s.io/cri-api + name: release-1.20 + go: 1.15.13 - destination: kubectl library: true @@ -1616,7 +1631,7 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/kubectl name: release-1.19 - go: 1.15.2 + go: 1.15.13 dependencies: - repository: api branch: release-1.19 @@ -1644,4 +1659,4 @@ rules: branch: release-1.19 dir: staging/src/k8s.io/controller-manager name: release-1.19 - go: 1.15.2 + go: 1.15.13 diff --git a/staging/src/k8s.io/api/admission/v1/generated.pb.go b/staging/src/k8s.io/api/admission/v1/generated.pb.go index 04eb206750d58..f2db634b864b3 100644 --- a/staging/src/k8s.io/api/admission/v1/generated.pb.go +++ b/staging/src/k8s.io/api/admission/v1/generated.pb.go @@ -1196,10 +1196,7 @@ func (m *AdmissionRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1514,7 +1511,7 @@ func (m *AdmissionResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1563,10 +1560,7 @@ func (m *AdmissionResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1688,10 +1682,7 @@ func (m *AdmissionReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/admission/v1beta1/generated.pb.go b/staging/src/k8s.io/api/admission/v1beta1/generated.pb.go index ae82ff5996e0b..c0de5a93b9ea8 100644 --- a/staging/src/k8s.io/api/admission/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/admission/v1beta1/generated.pb.go @@ -1196,10 +1196,7 @@ func (m *AdmissionRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1514,7 +1511,7 @@ func (m *AdmissionResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1563,10 +1560,7 @@ func (m *AdmissionResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1688,10 +1682,7 @@ func (m *AdmissionReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/admissionregistration/v1/generated.pb.go b/staging/src/k8s.io/api/admissionregistration/v1/generated.pb.go index adc47be7fabcd..bce77c2a1eedc 100644 --- a/staging/src/k8s.io/api/admissionregistration/v1/generated.pb.go +++ b/staging/src/k8s.io/api/admissionregistration/v1/generated.pb.go @@ -1858,10 +1858,7 @@ func (m *MutatingWebhook) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1978,10 +1975,7 @@ func (m *MutatingWebhookConfiguration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2098,10 +2092,7 @@ func (m *MutatingWebhookConfigurationList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2280,10 +2271,7 @@ func (m *Rule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2398,10 +2386,7 @@ func (m *RuleWithOperations) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2568,10 +2553,7 @@ func (m *ServiceReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2943,10 +2925,7 @@ func (m *ValidatingWebhook) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3063,10 +3042,7 @@ func (m *ValidatingWebhookConfiguration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3183,10 +3159,7 @@ func (m *ValidatingWebhookConfigurationList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3339,10 +3312,7 @@ func (m *WebhookClientConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/admissionregistration/v1beta1/generated.pb.go b/staging/src/k8s.io/api/admissionregistration/v1beta1/generated.pb.go index c98aa7477b351..d5e802f3b3b41 100644 --- a/staging/src/k8s.io/api/admissionregistration/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/admissionregistration/v1beta1/generated.pb.go @@ -1859,10 +1859,7 @@ func (m *MutatingWebhook) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1979,10 +1976,7 @@ func (m *MutatingWebhookConfiguration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2099,10 +2093,7 @@ func (m *MutatingWebhookConfigurationList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2281,10 +2272,7 @@ func (m *Rule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2399,10 +2387,7 @@ func (m *RuleWithOperations) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2569,10 +2554,7 @@ func (m *ServiceReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2944,10 +2926,7 @@ func (m *ValidatingWebhook) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3064,10 +3043,7 @@ func (m *ValidatingWebhookConfiguration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3184,10 +3160,7 @@ func (m *ValidatingWebhookConfigurationList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3340,10 +3313,7 @@ func (m *WebhookClientConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/apps/v1/generated.pb.go b/staging/src/k8s.io/api/apps/v1/generated.pb.go index 6ef25f50f90a3..5b7bda5009e59 100644 --- a/staging/src/k8s.io/api/apps/v1/generated.pb.go +++ b/staging/src/k8s.io/api/apps/v1/generated.pb.go @@ -3557,10 +3557,7 @@ func (m *ControllerRevision) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3677,10 +3674,7 @@ func (m *ControllerRevisionList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3829,10 +3823,7 @@ func (m *DaemonSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4043,10 +4034,7 @@ func (m *DaemonSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4163,10 +4151,7 @@ func (m *DaemonSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4357,10 +4342,7 @@ func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4616,10 +4598,7 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4737,10 +4716,7 @@ func (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4889,10 +4865,7 @@ func (m *Deployment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5136,10 +5109,7 @@ func (m *DeploymentCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5256,10 +5226,7 @@ func (m *DeploymentList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5510,10 +5477,7 @@ func (m *DeploymentSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5731,10 +5695,7 @@ func (m *DeploymentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5852,10 +5813,7 @@ func (m *DeploymentStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6004,10 +5962,7 @@ func (m *ReplicaSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6218,10 +6173,7 @@ func (m *ReplicaSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6338,10 +6290,7 @@ func (m *ReplicaSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6499,10 +6448,7 @@ func (m *ReplicaSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6681,10 +6627,7 @@ func (m *ReplicaSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6770,10 +6713,7 @@ func (m *RollingUpdateDaemonSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6895,10 +6835,7 @@ func (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6968,10 +6905,7 @@ func (m *RollingUpdateStatefulSetStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7120,10 +7054,7 @@ func (m *StatefulSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7334,10 +7265,7 @@ func (m *StatefulSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7454,10 +7382,7 @@ func (m *StatefulSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7747,10 +7672,7 @@ func (m *StatefulSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8013,10 +7935,7 @@ func (m *StatefulSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8134,10 +8053,7 @@ func (m *StatefulSetUpdateStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/apps/v1beta1/generated.pb.go b/staging/src/k8s.io/api/apps/v1beta1/generated.pb.go index f81b559013e09..6bc56e382aa3d 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/apps/v1beta1/generated.pb.go @@ -2734,10 +2734,7 @@ func (m *ControllerRevision) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2854,10 +2851,7 @@ func (m *ControllerRevisionList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3006,10 +3000,7 @@ func (m *Deployment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3253,10 +3244,7 @@ func (m *DeploymentCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3373,10 +3361,7 @@ func (m *DeploymentList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3568,7 +3553,7 @@ func (m *DeploymentRollback) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -3618,10 +3603,7 @@ func (m *DeploymentRollback) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3908,10 +3890,7 @@ func (m *DeploymentSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4129,10 +4108,7 @@ func (m *DeploymentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4250,10 +4226,7 @@ func (m *DeploymentStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4322,10 +4295,7 @@ func (m *RollbackConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4447,10 +4417,7 @@ func (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4520,10 +4487,7 @@ func (m *RollingUpdateStatefulSetStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4672,10 +4636,7 @@ func (m *Scale) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4744,10 +4705,7 @@ func (m *ScaleSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4926,7 +4884,7 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -4975,10 +4933,7 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5127,10 +5082,7 @@ func (m *StatefulSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5341,10 +5293,7 @@ func (m *StatefulSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5461,10 +5410,7 @@ func (m *StatefulSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5754,10 +5700,7 @@ func (m *StatefulSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6021,10 +5964,7 @@ func (m *StatefulSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6142,10 +6082,7 @@ func (m *StatefulSetUpdateStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go b/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go index 8a9f20052b335..09db97a8dc968 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go +++ b/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go @@ -3878,10 +3878,7 @@ func (m *ControllerRevision) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3998,10 +3995,7 @@ func (m *ControllerRevisionList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4150,10 +4144,7 @@ func (m *DaemonSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4364,10 +4355,7 @@ func (m *DaemonSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4484,10 +4472,7 @@ func (m *DaemonSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4678,10 +4663,7 @@ func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4937,10 +4919,7 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5058,10 +5037,7 @@ func (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5210,10 +5186,7 @@ func (m *Deployment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5457,10 +5430,7 @@ func (m *DeploymentCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5577,10 +5547,7 @@ func (m *DeploymentList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5831,10 +5798,7 @@ func (m *DeploymentSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6052,10 +6016,7 @@ func (m *DeploymentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6173,10 +6134,7 @@ func (m *DeploymentStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6325,10 +6283,7 @@ func (m *ReplicaSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6539,10 +6494,7 @@ func (m *ReplicaSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6659,10 +6611,7 @@ func (m *ReplicaSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6820,10 +6769,7 @@ func (m *ReplicaSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7002,10 +6948,7 @@ func (m *ReplicaSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7091,10 +7034,7 @@ func (m *RollingUpdateDaemonSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7216,10 +7156,7 @@ func (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7289,10 +7226,7 @@ func (m *RollingUpdateStatefulSetStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7441,10 +7375,7 @@ func (m *Scale) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7513,10 +7444,7 @@ func (m *ScaleSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7695,7 +7623,7 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -7744,10 +7672,7 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7896,10 +7821,7 @@ func (m *StatefulSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8110,10 +8032,7 @@ func (m *StatefulSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8230,10 +8149,7 @@ func (m *StatefulSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8523,10 +8439,7 @@ func (m *StatefulSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8789,10 +8702,7 @@ func (m *StatefulSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8910,10 +8820,7 @@ func (m *StatefulSetUpdateStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/authentication/v1/generated.pb.go b/staging/src/k8s.io/api/authentication/v1/generated.pb.go index 6524f8ca96e37..896e0d3401d22 100644 --- a/staging/src/k8s.io/api/authentication/v1/generated.pb.go +++ b/staging/src/k8s.io/api/authentication/v1/generated.pb.go @@ -1264,10 +1264,7 @@ func (m *BoundObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1349,10 +1346,7 @@ func (m *ExtraValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1501,10 +1495,7 @@ func (m *TokenRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1642,10 +1633,7 @@ func (m *TokenRequestSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1760,10 +1748,7 @@ func (m *TokenRequestStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1912,10 +1897,7 @@ func (m *TokenReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2029,10 +2011,7 @@ func (m *TokenReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2199,10 +2178,7 @@ func (m *TokenReviewStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2460,7 +2436,7 @@ func (m *UserInfo) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -2477,10 +2453,7 @@ func (m *UserInfo) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/authentication/v1beta1/generated.pb.go b/staging/src/k8s.io/api/authentication/v1beta1/generated.pb.go index 6c391dbfa3123..3d8f76515043f 100644 --- a/staging/src/k8s.io/api/authentication/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/authentication/v1beta1/generated.pb.go @@ -737,10 +737,7 @@ func (m *ExtraValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -889,10 +886,7 @@ func (m *TokenReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1006,10 +1000,7 @@ func (m *TokenReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1176,10 +1167,7 @@ func (m *TokenReviewStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1437,7 +1425,7 @@ func (m *UserInfo) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1454,10 +1442,7 @@ func (m *UserInfo) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/authorization/v1/generated.pb.go b/staging/src/k8s.io/api/authorization/v1/generated.pb.go index dbc0bdc71d109..66c7c06ae7d10 100644 --- a/staging/src/k8s.io/api/authorization/v1/generated.pb.go +++ b/staging/src/k8s.io/api/authorization/v1/generated.pb.go @@ -1793,10 +1793,7 @@ func (m *ExtraValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1945,10 +1942,7 @@ func (m *LocalSubjectAccessReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2062,10 +2056,7 @@ func (m *NonResourceAttributes) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2179,10 +2170,7 @@ func (m *NonResourceRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2456,10 +2444,7 @@ func (m *ResourceAttributes) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2637,10 +2622,7 @@ func (m *ResourceRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2789,10 +2771,7 @@ func (m *SelfSubjectAccessReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2914,10 +2893,7 @@ func (m *SelfSubjectAccessReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3066,10 +3042,7 @@ func (m *SelfSubjectRulesReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3151,10 +3124,7 @@ func (m *SelfSubjectRulesReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3303,10 +3273,7 @@ func (m *SubjectAccessReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3604,7 +3571,7 @@ func (m *SubjectAccessReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -3653,10 +3620,7 @@ func (m *SubjectAccessReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3810,10 +3774,7 @@ func (m *SubjectAccessReviewStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3983,10 +3944,7 @@ func (m *SubjectRulesReviewStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/authorization/v1beta1/generated.pb.go b/staging/src/k8s.io/api/authorization/v1beta1/generated.pb.go index 647c0c582b461..4331d3e5b0d53 100644 --- a/staging/src/k8s.io/api/authorization/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/authorization/v1beta1/generated.pb.go @@ -1793,10 +1793,7 @@ func (m *ExtraValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1945,10 +1942,7 @@ func (m *LocalSubjectAccessReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2062,10 +2056,7 @@ func (m *NonResourceAttributes) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2179,10 +2170,7 @@ func (m *NonResourceRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2456,10 +2444,7 @@ func (m *ResourceAttributes) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2637,10 +2622,7 @@ func (m *ResourceRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2789,10 +2771,7 @@ func (m *SelfSubjectAccessReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2914,10 +2893,7 @@ func (m *SelfSubjectAccessReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3066,10 +3042,7 @@ func (m *SelfSubjectRulesReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3151,10 +3124,7 @@ func (m *SelfSubjectRulesReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3303,10 +3273,7 @@ func (m *SubjectAccessReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3604,7 +3571,7 @@ func (m *SubjectAccessReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -3653,10 +3620,7 @@ func (m *SubjectAccessReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3810,10 +3774,7 @@ func (m *SubjectAccessReviewStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3983,10 +3944,7 @@ func (m *SubjectRulesReviewStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/autoscaling/v1/generated.pb.go b/staging/src/k8s.io/api/autoscaling/v1/generated.pb.go index 1e3d89076d5ca..2aa1de844ec3e 100644 --- a/staging/src/k8s.io/api/autoscaling/v1/generated.pb.go +++ b/staging/src/k8s.io/api/autoscaling/v1/generated.pb.go @@ -2466,10 +2466,7 @@ func (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2659,10 +2656,7 @@ func (m *ExternalMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2849,10 +2843,7 @@ func (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3001,10 +2992,7 @@ func (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3215,10 +3203,7 @@ func (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3335,10 +3320,7 @@ func (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3480,10 +3462,7 @@ func (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3647,10 +3626,7 @@ func (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3876,10 +3852,7 @@ func (m *MetricSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4105,10 +4078,7 @@ func (m *MetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4328,10 +4298,7 @@ func (m *ObjectMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4551,10 +4518,7 @@ func (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4705,10 +4669,7 @@ func (m *PodsMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4859,10 +4820,7 @@ func (m *PodsMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5000,10 +4958,7 @@ func (m *ResourceMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5138,10 +5093,7 @@ func (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5290,10 +5242,7 @@ func (m *Scale) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5362,10 +5311,7 @@ func (m *ScaleSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5466,10 +5412,7 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/autoscaling/v2beta1/generated.pb.go b/staging/src/k8s.io/api/autoscaling/v2beta1/generated.pb.go index e129e41b8bf58..012d9392a42aa 100644 --- a/staging/src/k8s.io/api/autoscaling/v2beta1/generated.pb.go +++ b/staging/src/k8s.io/api/autoscaling/v2beta1/generated.pb.go @@ -2257,10 +2257,7 @@ func (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2450,10 +2447,7 @@ func (m *ExternalMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2640,10 +2634,7 @@ func (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2792,10 +2783,7 @@ func (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3006,10 +2994,7 @@ func (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3126,10 +3111,7 @@ func (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3285,10 +3267,7 @@ func (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3500,10 +3479,7 @@ func (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3729,10 +3705,7 @@ func (m *MetricSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3958,10 +3931,7 @@ func (m *MetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4181,10 +4151,7 @@ func (m *ObjectMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4404,10 +4371,7 @@ func (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4558,10 +4522,7 @@ func (m *PodsMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4712,10 +4673,7 @@ func (m *PodsMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4853,10 +4811,7 @@ func (m *ResourceMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4991,10 +4946,7 @@ func (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/autoscaling/v2beta2/generated.pb.go b/staging/src/k8s.io/api/autoscaling/v2beta2/generated.pb.go index c69d6cb9e7afe..a185b7164ddc7 100644 --- a/staging/src/k8s.io/api/autoscaling/v2beta2/generated.pb.go +++ b/staging/src/k8s.io/api/autoscaling/v2beta2/generated.pb.go @@ -2757,10 +2757,7 @@ func (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2876,10 +2873,7 @@ func (m *ExternalMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2995,10 +2989,7 @@ func (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3118,10 +3109,7 @@ func (m *HPAScalingPolicy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3258,10 +3246,7 @@ func (m *HPAScalingRules) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3410,10 +3395,7 @@ func (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3535,10 +3517,7 @@ func (m *HorizontalPodAutoscalerBehavior) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3749,10 +3728,7 @@ func (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3869,10 +3845,7 @@ func (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4064,10 +4037,7 @@ func (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4279,10 +4249,7 @@ func (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4400,10 +4367,7 @@ func (m *MetricIdentifier) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4629,10 +4593,7 @@ func (m *MetricSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4858,10 +4819,7 @@ func (m *MetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5035,10 +4993,7 @@ func (m *MetricTarget) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5180,10 +5135,7 @@ func (m *MetricValueStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5332,10 +5284,7 @@ func (m *ObjectMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5484,10 +5433,7 @@ func (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5603,10 +5549,7 @@ func (m *PodsMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5722,10 +5665,7 @@ func (m *PodsMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5840,10 +5780,7 @@ func (m *ResourceMetricSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5958,10 +5895,7 @@ func (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/batch/v1/generated.pb.go b/staging/src/k8s.io/api/batch/v1/generated.pb.go index 35944e72670ea..dc43514c6ae23 100644 --- a/staging/src/k8s.io/api/batch/v1/generated.pb.go +++ b/staging/src/k8s.io/api/batch/v1/generated.pb.go @@ -924,10 +924,7 @@ func (m *Job) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1171,10 +1168,7 @@ func (m *JobCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1291,10 +1285,7 @@ func (m *JobList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1534,10 +1525,7 @@ func (m *JobSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1750,10 +1738,7 @@ func (m *JobStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/batch/v1beta1/generated.pb.go b/staging/src/k8s.io/api/batch/v1beta1/generated.pb.go index 69c4054bfeb29..1d1f5f0090d48 100644 --- a/staging/src/k8s.io/api/batch/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/batch/v1beta1/generated.pb.go @@ -927,10 +927,7 @@ func (m *CronJob) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1047,10 +1044,7 @@ func (m *CronJobList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1278,10 +1272,7 @@ func (m *CronJobSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1401,10 +1392,7 @@ func (m *CronJobStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1520,10 +1508,7 @@ func (m *JobTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1639,10 +1624,7 @@ func (m *JobTemplateSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/batch/v2alpha1/generated.pb.go b/staging/src/k8s.io/api/batch/v2alpha1/generated.pb.go index 3e58dbb92a9b9..16fb819cd0b5c 100644 --- a/staging/src/k8s.io/api/batch/v2alpha1/generated.pb.go +++ b/staging/src/k8s.io/api/batch/v2alpha1/generated.pb.go @@ -927,10 +927,7 @@ func (m *CronJob) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1047,10 +1044,7 @@ func (m *CronJobList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1278,10 +1272,7 @@ func (m *CronJobSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1401,10 +1392,7 @@ func (m *CronJobStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1520,10 +1508,7 @@ func (m *JobTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1639,10 +1624,7 @@ func (m *JobTemplateSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/certificates/v1/generated.pb.go b/staging/src/k8s.io/api/certificates/v1/generated.pb.go index d2cf41a25a879..fca7d21154129 100644 --- a/staging/src/k8s.io/api/certificates/v1/generated.pb.go +++ b/staging/src/k8s.io/api/certificates/v1/generated.pb.go @@ -989,10 +989,7 @@ func (m *CertificateSigningRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1236,10 +1233,7 @@ func (m *CertificateSigningRequestCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1356,10 +1350,7 @@ func (m *CertificateSigningRequestList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1683,7 +1674,7 @@ func (m *CertificateSigningRequestSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1732,10 +1723,7 @@ func (m *CertificateSigningRequestSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1853,10 +1841,7 @@ func (m *CertificateSigningRequestStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1938,10 +1923,7 @@ func (m *ExtraValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/certificates/v1beta1/generated.pb.go b/staging/src/k8s.io/api/certificates/v1beta1/generated.pb.go index 1729931b82dc7..f21256f484492 100644 --- a/staging/src/k8s.io/api/certificates/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/certificates/v1beta1/generated.pb.go @@ -993,10 +993,7 @@ func (m *CertificateSigningRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1240,10 +1237,7 @@ func (m *CertificateSigningRequestCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1360,10 +1354,7 @@ func (m *CertificateSigningRequestList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1687,7 +1678,7 @@ func (m *CertificateSigningRequestSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1737,10 +1728,7 @@ func (m *CertificateSigningRequestSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1858,10 +1846,7 @@ func (m *CertificateSigningRequestStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1943,10 +1928,7 @@ func (m *ExtraValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/coordination/v1/generated.pb.go b/staging/src/k8s.io/api/coordination/v1/generated.pb.go index 22c3d624e2bce..d5ed0f27c5f57 100644 --- a/staging/src/k8s.io/api/coordination/v1/generated.pb.go +++ b/staging/src/k8s.io/api/coordination/v1/generated.pb.go @@ -554,10 +554,7 @@ func (m *Lease) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -674,10 +671,7 @@ func (m *LeaseList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -872,10 +866,7 @@ func (m *LeaseSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/coordination/v1beta1/generated.pb.go b/staging/src/k8s.io/api/coordination/v1beta1/generated.pb.go index 57a314cfd78ae..bcd00d44540af 100644 --- a/staging/src/k8s.io/api/coordination/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/coordination/v1beta1/generated.pb.go @@ -554,10 +554,7 @@ func (m *Lease) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -674,10 +671,7 @@ func (m *LeaseList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -872,10 +866,7 @@ func (m *LeaseSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/core/v1/generated.pb.go b/staging/src/k8s.io/api/core/v1/generated.pb.go index 9b29b21e574d9..d68b43f152ac5 100644 --- a/staging/src/k8s.io/api/core/v1/generated.pb.go +++ b/staging/src/k8s.io/api/core/v1/generated.pb.go @@ -27413,10 +27413,7 @@ func (m *AWSElasticBlockStoreVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -27574,10 +27571,7 @@ func (m *Affinity) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -27691,10 +27685,7 @@ func (m *AttachedVolume) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -27778,10 +27769,7 @@ func (m *AvoidPods) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -28015,10 +28003,7 @@ func (m *AzureDiskVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -28185,10 +28170,7 @@ func (m *AzureFilePersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -28322,10 +28304,7 @@ func (m *AzureFileVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -28441,10 +28420,7 @@ func (m *Binding) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -28720,7 +28696,7 @@ func (m *CSIPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -28881,10 +28857,7 @@ func (m *CSIPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -29130,7 +29103,7 @@ func (m *CSIVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -29183,10 +29156,7 @@ func (m *CSIVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -29300,10 +29270,7 @@ func (m *Capabilities) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -29537,10 +29504,7 @@ func (m *CephFSPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -29774,10 +29738,7 @@ func (m *CephFSVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -29947,10 +29908,7 @@ func (m *CinderPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -30120,10 +30078,7 @@ func (m *CinderVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -30193,10 +30148,7 @@ func (m *ClientIPConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -30374,10 +30326,7 @@ func (m *ComponentCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -30494,10 +30443,7 @@ func (m *ComponentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -30614,10 +30560,7 @@ func (m *ComponentStatusList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -30810,7 +30753,7 @@ func (m *ConfigMap) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -30938,7 +30881,7 @@ func (m *ConfigMap) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -30976,10 +30919,7 @@ func (m *ConfigMap) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -31083,10 +31023,7 @@ func (m *ConfigMapEnvSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -31222,10 +31159,7 @@ func (m *ConfigMapKeySelector) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -31342,10 +31276,7 @@ func (m *ConfigMapList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -31555,10 +31486,7 @@ func (m *ConfigMapNodeConfigSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -31696,10 +31624,7 @@ func (m *ConfigMapProjection) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -31857,10 +31782,7 @@ func (m *ConfigMapVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -32609,10 +32531,7 @@ func (m *Container) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -32713,10 +32632,7 @@ func (m *ContainerImage) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -32900,10 +32816,7 @@ func (m *ContainerPort) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -33061,10 +32974,7 @@ func (m *ContainerState) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -33147,10 +33057,7 @@ func (m *ContainerStateRunning) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -33400,10 +33307,7 @@ func (m *ContainerStateTerminated) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -33517,10 +33421,7 @@ func (m *ContainerStateWaiting) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -33824,10 +33725,7 @@ func (m *ContainerStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -33896,10 +33794,7 @@ func (m *DaemonEndpoint) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -33983,10 +33878,7 @@ func (m *DownwardAPIProjection) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -34160,10 +34052,7 @@ func (m *DownwardAPIVolumeFile) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -34267,10 +34156,7 @@ func (m *DownwardAPIVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -34388,10 +34274,7 @@ func (m *EmptyDirVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -34574,10 +34457,7 @@ func (m *EndpointAddress) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -34743,10 +34623,7 @@ func (m *EndpointPort) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -34898,10 +34775,7 @@ func (m *EndpointSubset) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -35018,10 +34892,7 @@ func (m *Endpoints) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -35138,10 +35009,7 @@ func (m *EndpointsList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -35295,10 +35163,7 @@ func (m *EnvFromSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -35448,10 +35313,7 @@ func (m *EnvVar) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -35645,10 +35507,7 @@ func (m *EnvVarSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -35763,10 +35622,7 @@ func (m *EphemeralContainer) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -36515,10 +36371,7 @@ func (m *EphemeralContainerCommon) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -36635,10 +36488,7 @@ func (m *EphemeralContainers) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -36744,10 +36594,7 @@ func (m *EphemeralVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -37278,10 +37125,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -37398,10 +37242,7 @@ func (m *EventList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -37503,10 +37344,7 @@ func (m *EventSeries) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -37620,10 +37458,7 @@ func (m *EventSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -37705,10 +37540,7 @@ func (m *ExecAction) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -37894,10 +37726,7 @@ func (m *FCVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -38177,7 +38006,7 @@ func (m *FlexPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -38194,10 +38023,7 @@ func (m *FlexPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -38477,7 +38303,7 @@ func (m *FlexVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -38494,10 +38320,7 @@ func (m *FlexVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -38611,10 +38434,7 @@ func (m *FlockerVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -38767,10 +38587,7 @@ func (m *GCEPersistentDiskVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -38916,10 +38733,7 @@ func (m *GitRepoVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -39086,10 +38900,7 @@ func (m *GlusterfsPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -39223,10 +39034,7 @@ func (m *GlusterfsVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -39439,10 +39247,7 @@ func (m *HTTPGetAction) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -39556,10 +39361,7 @@ func (m *HTTPHeader) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -39717,10 +39519,7 @@ func (m *Handler) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -39834,10 +39633,7 @@ func (m *HostAlias) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -39952,10 +39748,7 @@ func (m *HostPathVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -40313,10 +40106,7 @@ func (m *ISCSIPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -40674,10 +40464,7 @@ func (m *ISCSIVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -40811,10 +40598,7 @@ func (m *KeyToPath) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -40936,10 +40720,7 @@ func (m *Lifecycle) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -41055,10 +40836,7 @@ func (m *LimitRange) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -41252,7 +41030,7 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -41381,7 +41159,7 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -41510,7 +41288,7 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -41639,7 +41417,7 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -41768,7 +41546,7 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -41785,10 +41563,7 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -41905,10 +41680,7 @@ func (m *LimitRangeList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -41992,10 +41764,7 @@ func (m *LimitRangeSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -42112,10 +41881,7 @@ func (m *List) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -42229,10 +41995,7 @@ func (m *LoadBalancerIngress) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -42316,10 +42079,7 @@ func (m *LoadBalancerStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -42401,10 +42161,7 @@ func (m *LocalObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -42519,10 +42276,7 @@ func (m *LocalVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -42656,10 +42410,7 @@ func (m *NFSVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -42808,10 +42559,7 @@ func (m *Namespace) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -43022,10 +42770,7 @@ func (m *NamespaceCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -43142,10 +42887,7 @@ func (m *NamespaceList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -43227,10 +42969,7 @@ func (m *NamespaceSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -43346,10 +43085,7 @@ func (m *NamespaceStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -43498,10 +43234,7 @@ func (m *Node) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -43615,10 +43348,7 @@ func (m *NodeAddress) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -43738,10 +43468,7 @@ func (m *NodeAffinity) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -43985,10 +43712,7 @@ func (m *NodeCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -44074,10 +43798,7 @@ func (m *NodeConfigSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -44267,10 +43988,7 @@ func (m *NodeConfigStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -44353,10 +44071,7 @@ func (m *NodeDaemonEndpoints) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -44473,10 +44188,7 @@ func (m *NodeList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -44558,10 +44270,7 @@ func (m *NodeProxyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -44723,7 +44432,7 @@ func (m *NodeResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -44740,10 +44449,7 @@ func (m *NodeResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -44827,10 +44533,7 @@ func (m *NodeSelector) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -44976,10 +44679,7 @@ func (m *NodeSelectorRequirement) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -45097,10 +44797,7 @@ func (m *NodeSelectorTerm) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -45368,10 +45065,7 @@ func (m *NodeSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -45533,7 +45227,7 @@ func (m *NodeStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -45662,7 +45356,7 @@ func (m *NodeStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -45981,10 +45675,7 @@ func (m *NodeStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -46354,10 +46045,7 @@ func (m *NodeSystemInfo) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -46471,10 +46159,7 @@ func (m *ObjectFieldSelector) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -46748,10 +46433,7 @@ func (m *ObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -46900,10 +46582,7 @@ func (m *PersistentVolume) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -47052,10 +46731,7 @@ func (m *PersistentVolumeClaim) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -47299,10 +46975,7 @@ func (m *PersistentVolumeClaimCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -47419,10 +47092,7 @@ func (m *PersistentVolumeClaimList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -47707,10 +47377,7 @@ func (m *PersistentVolumeClaimSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -47936,7 +47603,7 @@ func (m *PersistentVolumeClaimStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -47987,10 +47654,7 @@ func (m *PersistentVolumeClaimStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -48106,10 +47770,7 @@ func (m *PersistentVolumeClaimTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -48211,10 +47872,7 @@ func (m *PersistentVolumeClaimVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -48331,10 +47989,7 @@ func (m *PersistentVolumeList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -49176,10 +48831,7 @@ func (m *PersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -49341,7 +48993,7 @@ func (m *PersistentVolumeSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -49624,10 +49276,7 @@ func (m *PersistentVolumeSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -49773,10 +49422,7 @@ func (m *PersistentVolumeStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -49890,10 +49536,7 @@ func (m *PhotonPersistentDiskVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -50042,10 +49685,7 @@ func (m *Pod) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -50163,10 +49803,7 @@ func (m *PodAffinity) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -50316,10 +49953,7 @@ func (m *PodAffinityTerm) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -50437,10 +50071,7 @@ func (m *PodAntiAffinity) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -50602,10 +50233,7 @@ func (m *PodAttachOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -50849,10 +50477,7 @@ func (m *PodCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -51000,10 +50625,7 @@ func (m *PodDNSConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -51118,10 +50740,7 @@ func (m *PodDNSConfigOption) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -51315,10 +50934,7 @@ func (m *PodExecOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -51400,10 +51016,7 @@ func (m *PodIP) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -51520,10 +51133,7 @@ func (m *PodList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -51781,10 +51391,7 @@ func (m *PodLogOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -51910,10 +51517,7 @@ func (m *PodPortForwardOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -51995,10 +51599,7 @@ func (m *PodProxyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -52080,10 +51681,7 @@ func (m *PodReadinessGate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -52465,10 +52063,7 @@ func (m *PodSecurityContext) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -52554,10 +52149,7 @@ func (m *PodSignature) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -52889,7 +52481,7 @@ func (m *PodSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -53729,7 +53321,7 @@ func (m *PodSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -53835,10 +53427,7 @@ func (m *PodSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -54318,10 +53907,7 @@ func (m *PodStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -54437,10 +54023,7 @@ func (m *PodStatusResult) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -54556,10 +54139,7 @@ func (m *PodTemplate) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -54676,10 +54256,7 @@ func (m *PodTemplateList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -54795,10 +54372,7 @@ func (m *PodTemplateSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -54932,10 +54506,7 @@ func (m *PortworxVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -55018,10 +54589,7 @@ func (m *Preconditions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -55201,10 +54769,7 @@ func (m *PreferAvoidPodsEntry) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -55306,10 +54871,7 @@ func (m *PreferredSchedulingTerm) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -55487,10 +55049,7 @@ func (m *Probe) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -55594,10 +55153,7 @@ func (m *ProjectedVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -55827,10 +55383,7 @@ func (m *QuobyteVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -56128,10 +55681,7 @@ func (m *RBDPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -56429,10 +55979,7 @@ func (m *RBDVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -56581,10 +56128,7 @@ func (m *RangeAllocation) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -56733,10 +56277,7 @@ func (m *ReplicationController) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -56947,10 +56488,7 @@ func (m *ReplicationControllerCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -57067,10 +56605,7 @@ func (m *ReplicationControllerList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -57250,7 +56785,7 @@ func (m *ReplicationControllerSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -57322,10 +56857,7 @@ func (m *ReplicationControllerSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -57504,10 +57036,7 @@ func (m *ReplicationControllerStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -57654,10 +57183,7 @@ func (m *ResourceFieldSelector) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -57806,10 +57332,7 @@ func (m *ResourceQuota) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -57926,10 +57449,7 @@ func (m *ResourceQuotaList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -58091,7 +57611,7 @@ func (m *ResourceQuotaSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -58176,10 +57696,7 @@ func (m *ResourceQuotaSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -58341,7 +57858,7 @@ func (m *ResourceQuotaStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -58470,7 +57987,7 @@ func (m *ResourceQuotaStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -58487,10 +58004,7 @@ func (m *ResourceQuotaStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -58652,7 +58166,7 @@ func (m *ResourceRequirements) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -58781,7 +58295,7 @@ func (m *ResourceRequirements) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -58798,10 +58312,7 @@ func (m *ResourceRequirements) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -58979,10 +58490,7 @@ func (m *SELinuxOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -59332,10 +58840,7 @@ func (m *ScaleIOPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -59685,10 +59190,7 @@ func (m *ScaleIOVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -59772,10 +59274,7 @@ func (m *ScopeSelector) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -59921,10 +59420,7 @@ func (m *ScopedResourceSelectorRequirement) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -60039,10 +59535,7 @@ func (m *SeccompProfile) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -60236,7 +59729,7 @@ func (m *Secret) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -60395,7 +59888,7 @@ func (m *Secret) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -60433,10 +59926,7 @@ func (m *Secret) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -60540,10 +60030,7 @@ func (m *SecretEnvSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -60679,10 +60166,7 @@ func (m *SecretKeySelector) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -60799,10 +60283,7 @@ func (m *SecretList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -60940,10 +60421,7 @@ func (m *SecretProjection) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -61057,10 +60535,7 @@ func (m *SecretReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -61217,10 +60692,7 @@ func (m *SecretVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -61571,10 +61043,7 @@ func (m *SecurityContext) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -61657,10 +61126,7 @@ func (m *SerializedReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -61809,10 +61275,7 @@ func (m *Service) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -61984,10 +61447,7 @@ func (m *ServiceAccount) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -62104,10 +61564,7 @@ func (m *ServiceAccountList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -62241,10 +61698,7 @@ func (m *ServiceAccountTokenProjection) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -62361,10 +61815,7 @@ func (m *ServiceList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -62582,10 +62033,7 @@ func (m *ServicePort) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -62667,10 +62115,7 @@ func (m *ServiceProxyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -62864,7 +62309,7 @@ func (m *ServiceSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -63277,10 +62722,7 @@ func (m *ServiceSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -63363,10 +62805,7 @@ func (m *ServiceStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -63452,10 +62891,7 @@ func (m *SessionAffinityConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -63657,10 +63093,7 @@ func (m *StorageOSPersistentVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -63862,10 +63295,7 @@ func (m *StorageOSVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -63979,10 +63409,7 @@ func (m *Sysctl) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -64097,10 +63524,7 @@ func (m *TCPSocketAction) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -64282,10 +63706,7 @@ func (m *Taint) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -64483,10 +63904,7 @@ func (m *Toleration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -64600,10 +64018,7 @@ func (m *TopologySelectorLabelRequirement) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -64687,10 +64102,7 @@ func (m *TopologySelectorTerm) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -64859,10 +64271,7 @@ func (m *TopologySpreadConstraint) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -65009,10 +64418,7 @@ func (m *TypedLocalObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -65127,10 +64533,7 @@ func (m *Volume) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -65244,10 +64647,7 @@ func (m *VolumeDevice) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -65478,10 +64878,7 @@ func (m *VolumeMount) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -65567,10 +64964,7 @@ func (m *VolumeNodeAffinity) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -65764,10 +65158,7 @@ func (m *VolumeProjection) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -66861,10 +66252,7 @@ func (m *VolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -67042,10 +66430,7 @@ func (m *VsphereVirtualDiskVolumeSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -67147,10 +66532,7 @@ func (m *WeightedPodAffinityTerm) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -67299,10 +66681,7 @@ func (m *WindowsSecurityContextOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/discovery/v1alpha1/generated.pb.go b/staging/src/k8s.io/api/discovery/v1alpha1/generated.pb.go index 45c4382cf5f45..f4f9636015315 100644 --- a/staging/src/k8s.io/api/discovery/v1alpha1/generated.pb.go +++ b/staging/src/k8s.io/api/discovery/v1alpha1/generated.pb.go @@ -1031,7 +1031,7 @@ func (m *Endpoint) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1048,10 +1048,7 @@ func (m *Endpoint) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1122,10 +1119,7 @@ func (m *EndpointConditions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1294,10 +1288,7 @@ func (m *EndpointPort) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1480,10 +1471,7 @@ func (m *EndpointSlice) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1600,10 +1588,7 @@ func (m *EndpointSliceList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/discovery/v1beta1/generated.pb.go b/staging/src/k8s.io/api/discovery/v1beta1/generated.pb.go index ce0046c5199e1..6ce2465c4b75e 100644 --- a/staging/src/k8s.io/api/discovery/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/discovery/v1beta1/generated.pb.go @@ -1031,7 +1031,7 @@ func (m *Endpoint) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1048,10 +1048,7 @@ func (m *Endpoint) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1122,10 +1119,7 @@ func (m *EndpointConditions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1294,10 +1288,7 @@ func (m *EndpointPort) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1480,10 +1471,7 @@ func (m *EndpointSlice) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1600,10 +1588,7 @@ func (m *EndpointSliceList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/events/v1/generated.pb.go b/staging/src/k8s.io/api/events/v1/generated.pb.go index 717137cffe583..70ad588a6280b 100644 --- a/staging/src/k8s.io/api/events/v1/generated.pb.go +++ b/staging/src/k8s.io/api/events/v1/generated.pb.go @@ -1077,10 +1077,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1197,10 +1194,7 @@ func (m *EventList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1302,10 +1296,7 @@ func (m *EventSeries) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/events/v1beta1/generated.pb.go b/staging/src/k8s.io/api/events/v1beta1/generated.pb.go index 3709ef633a7a0..d92411bc8ab29 100644 --- a/staging/src/k8s.io/api/events/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/events/v1beta1/generated.pb.go @@ -1077,10 +1077,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1197,10 +1194,7 @@ func (m *EventList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1302,10 +1296,7 @@ func (m *EventSeries) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/extensions/v1beta1/generated.pb.go b/staging/src/k8s.io/api/extensions/v1beta1/generated.pb.go index bd37f432c46c8..f1d82c0fdc947 100644 --- a/staging/src/k8s.io/api/extensions/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/extensions/v1beta1/generated.pb.go @@ -6750,10 +6750,7 @@ func (m *AllowedCSIDriver) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6835,10 +6832,7 @@ func (m *AllowedFlexVolume) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6940,10 +6934,7 @@ func (m *AllowedHostPath) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7092,10 +7083,7 @@ func (m *DaemonSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7306,10 +7294,7 @@ func (m *DaemonSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7426,10 +7411,7 @@ func (m *DaemonSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7639,10 +7621,7 @@ func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7898,10 +7877,7 @@ func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8019,10 +7995,7 @@ func (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8171,10 +8144,7 @@ func (m *Deployment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8418,10 +8388,7 @@ func (m *DeploymentCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8538,10 +8505,7 @@ func (m *DeploymentList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8733,7 +8697,7 @@ func (m *DeploymentRollback) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -8783,10 +8747,7 @@ func (m *DeploymentRollback) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9073,10 +9034,7 @@ func (m *DeploymentSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9294,10 +9252,7 @@ func (m *DeploymentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9415,10 +9370,7 @@ func (m *DeploymentStrategy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9534,10 +9486,7 @@ func (m *FSGroupStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9685,10 +9634,7 @@ func (m *HTTPIngressPath) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9772,10 +9718,7 @@ func (m *HTTPIngressRuleValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9863,10 +9806,7 @@ func (m *HostPortRange) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9954,10 +9894,7 @@ func (m *IDRange) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10071,10 +10008,7 @@ func (m *IPBlock) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10223,10 +10157,7 @@ func (m *Ingress) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10377,10 +10308,7 @@ func (m *IngressBackend) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10497,10 +10425,7 @@ func (m *IngressList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10615,10 +10540,7 @@ func (m *IngressRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10704,10 +10626,7 @@ func (m *IngressRuleValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10894,10 +10813,7 @@ func (m *IngressSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10980,10 +10896,7 @@ func (m *IngressStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11097,10 +11010,7 @@ func (m *IngressTLS) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11216,10 +11126,7 @@ func (m *NetworkPolicy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11337,10 +11244,7 @@ func (m *NetworkPolicyEgressRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11458,10 +11362,7 @@ func (m *NetworkPolicyIngressRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11578,10 +11479,7 @@ func (m *NetworkPolicyList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11739,10 +11637,7 @@ func (m *NetworkPolicyPeer) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11861,10 +11756,7 @@ func (m *NetworkPolicyPort) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -12047,10 +11939,7 @@ func (m *NetworkPolicySpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -12166,10 +12055,7 @@ func (m *PodSecurityPolicy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -12286,10 +12172,7 @@ func (m *PodSecurityPolicyList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13045,10 +12928,7 @@ func (m *PodSecurityPolicySpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13197,10 +13077,7 @@ func (m *ReplicaSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13411,10 +13288,7 @@ func (m *ReplicaSetCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13531,10 +13405,7 @@ func (m *ReplicaSetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13692,10 +13563,7 @@ func (m *ReplicaSetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13874,10 +13742,7 @@ func (m *ReplicaSetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -13946,10 +13811,7 @@ func (m *RollbackConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14035,10 +13897,7 @@ func (m *RollingUpdateDaemonSet) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14160,10 +14019,7 @@ func (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14279,10 +14135,7 @@ func (m *RunAsGroupStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14398,10 +14251,7 @@ func (m *RunAsUserStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14516,10 +14366,7 @@ func (m *RuntimeClassStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14637,10 +14484,7 @@ func (m *SELinuxStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14789,10 +14633,7 @@ func (m *Scale) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -14861,10 +14702,7 @@ func (m *ScaleSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15043,7 +14881,7 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -15092,10 +14930,7 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -15211,10 +15046,7 @@ func (m *SupplementalGroupsStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/flowcontrol/v1alpha1/generated.pb.go b/staging/src/k8s.io/api/flowcontrol/v1alpha1/generated.pb.go index 86c8612049e8f..7f0687ac043c9 100644 --- a/staging/src/k8s.io/api/flowcontrol/v1alpha1/generated.pb.go +++ b/staging/src/k8s.io/api/flowcontrol/v1alpha1/generated.pb.go @@ -2513,10 +2513,7 @@ func (m *FlowDistinguisherMethod) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2665,10 +2662,7 @@ func (m *FlowSchema) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2879,10 +2873,7 @@ func (m *FlowSchemaCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2999,10 +2990,7 @@ func (m *FlowSchemaList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3174,10 +3162,7 @@ func (m *FlowSchemaSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3261,10 +3246,7 @@ func (m *FlowSchemaStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3346,10 +3328,7 @@ func (m *GroupSubject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3467,10 +3446,7 @@ func (m *LimitResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3572,10 +3548,7 @@ func (m *LimitedPriorityLevelConfiguration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3689,10 +3662,7 @@ func (m *NonResourcePolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3844,10 +3814,7 @@ func (m *PolicyRulesWithSubjects) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3996,10 +3963,7 @@ func (m *PriorityLevelConfiguration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4210,10 +4174,7 @@ func (m *PriorityLevelConfigurationCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4330,10 +4291,7 @@ func (m *PriorityLevelConfigurationList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4415,10 +4373,7 @@ func (m *PriorityLevelConfigurationReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4536,10 +4491,7 @@ func (m *PriorityLevelConfigurationSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4623,10 +4575,7 @@ func (m *PriorityLevelConfigurationStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4733,10 +4682,7 @@ func (m *QueuingConfiguration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4934,10 +4880,7 @@ func (m *ResourcePolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5051,10 +4994,7 @@ func (m *ServiceAccountSubject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5244,10 +5184,7 @@ func (m *Subject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5329,10 +5266,7 @@ func (m *UserSubject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/go.mod b/staging/src/k8s.io/api/go.mod index d72d4e034a85c..a54093c017122 100644 --- a/staging/src/k8s.io/api/go.mod +++ b/staging/src/k8s.io/api/go.mod @@ -5,41 +5,12 @@ module k8s.io/api go 1.15 require ( - github.com/gogo/protobuf v1.3.1 + github.com/gogo/protobuf v1.3.2 github.com/stretchr/testify v1.4.0 - k8s.io/apimachinery v0.19.0 + k8s.io/apimachinery v0.0.0 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - go.uber.org/multierr => go.uber.org/multierr v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery - k8s.io/apiserver => ../apiserver - k8s.io/cli-runtime => ../cli-runtime - k8s.io/client-go => ../client-go - k8s.io/cloud-provider => ../cloud-provider - k8s.io/cluster-bootstrap => ../cluster-bootstrap - k8s.io/code-generator => ../code-generator - k8s.io/component-base => ../component-base - k8s.io/cri-api => ../cri-api - k8s.io/csi-translation-lib => ../csi-translation-lib - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator - k8s.io/kube-controller-manager => ../kube-controller-manager - k8s.io/kube-proxy => ../kube-proxy - k8s.io/kube-scheduler => ../kube-scheduler - k8s.io/kubectl => ../kubectl - k8s.io/kubelet => ../kubelet - k8s.io/legacy-cloud-providers => ../legacy-cloud-providers - k8s.io/metrics => ../metrics - k8s.io/sample-apiserver => ../sample-apiserver - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/api/go.sum b/staging/src/k8s.io/api/go.sum index 141179ca92b74..e25e2e9f78d7a 100644 --- a/staging/src/k8s.io/api/go.sum +++ b/staging/src/k8s.io/api/go.sum @@ -1,241 +1,38 @@ -bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= -github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= -github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= -github.com/Azure/go-autorest/autorest/adal v0.8.2/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= -github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= -github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= -github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= -github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= -github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= -github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ= -github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -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/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= -github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200507155900-a9f01edf17e3/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200601085316-9f1617e5c574/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= -github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v1.0.0/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v1.0.0/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -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/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -244,18 +41,6 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -264,455 +49,107 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= -github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kubernetes-sigs/kube-storage-version-migrator v0.0.0-20191127225502-51849bc15f17/go.mod h1:enH0BVV+4+DAgWdwSlMefG8bBzTfVMTr1lApzdLZ/cc= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= -github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= -github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= -github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= -github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= -github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= -github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= -github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc90.0.20200616040943-82d2fa4eb069/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8= -github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728/go.mod h1:+B51GHs/jfZzk93MKrSSA8BWxrulVVcxiBG7kdFpd74= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20200831114015-2ab0c61c15de/go.mod h1:6vwp+YhYOIlj8MpkQKkebTTSn2TuYyvgiAFQ206jIEQ= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -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.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= -github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200520041808-52d707b772fe/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1-0.20200106000736-b8fc810ca6b5/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -720,66 +157,31 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A= -k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= -k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= -sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/staging/src/k8s.io/api/imagepolicy/v1alpha1/generated.pb.go b/staging/src/k8s.io/api/imagepolicy/v1alpha1/generated.pb.go index e5688513e2c5f..1d7bb79904428 100644 --- a/staging/src/k8s.io/api/imagepolicy/v1alpha1/generated.pb.go +++ b/staging/src/k8s.io/api/imagepolicy/v1alpha1/generated.pb.go @@ -719,10 +719,7 @@ func (m *ImageReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -804,10 +801,7 @@ func (m *ImageReviewContainerSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1001,7 +995,7 @@ func (m *ImageReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1050,10 +1044,7 @@ func (m *ImageReviewSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1265,7 +1256,7 @@ func (m *ImageReviewStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1282,10 +1273,7 @@ func (m *ImageReviewStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/networking/v1/generated.pb.go b/staging/src/k8s.io/api/networking/v1/generated.pb.go index 4e03b54381d89..49238823b8a74 100644 --- a/staging/src/k8s.io/api/networking/v1/generated.pb.go +++ b/staging/src/k8s.io/api/networking/v1/generated.pb.go @@ -2723,10 +2723,7 @@ func (m *HTTPIngressPath) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2810,10 +2807,7 @@ func (m *HTTPIngressRuleValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2927,10 +2921,7 @@ func (m *IPBlock) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3079,10 +3070,7 @@ func (m *Ingress) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3204,10 +3192,7 @@ func (m *IngressBackend) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3323,10 +3308,7 @@ func (m *IngressClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3443,10 +3425,7 @@ func (m *IngressClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3564,10 +3543,7 @@ func (m *IngressClassSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3684,10 +3660,7 @@ func (m *IngressList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3802,10 +3775,7 @@ func (m *IngressRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3891,10 +3861,7 @@ func (m *IngressRuleValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4009,10 +3976,7 @@ func (m *IngressServiceBackend) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4199,10 +4163,7 @@ func (m *IngressSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4285,10 +4246,7 @@ func (m *IngressStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4402,10 +4360,7 @@ func (m *IngressTLS) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4521,10 +4476,7 @@ func (m *NetworkPolicy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4642,10 +4594,7 @@ func (m *NetworkPolicyEgressRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4763,10 +4712,7 @@ func (m *NetworkPolicyIngressRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4883,10 +4829,7 @@ func (m *NetworkPolicyList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5044,10 +4987,7 @@ func (m *NetworkPolicyPeer) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5166,10 +5106,7 @@ func (m *NetworkPolicyPort) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5352,10 +5289,7 @@ func (m *NetworkPolicySpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5456,10 +5390,7 @@ func (m *ServiceBackendPort) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/networking/v1beta1/generated.pb.go b/staging/src/k8s.io/api/networking/v1beta1/generated.pb.go index 6f51df864b9a9..fa921b619988b 100644 --- a/staging/src/k8s.io/api/networking/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/networking/v1beta1/generated.pb.go @@ -1606,10 +1606,7 @@ func (m *HTTPIngressPath) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1693,10 +1690,7 @@ func (m *HTTPIngressRuleValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1845,10 +1839,7 @@ func (m *Ingress) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1999,10 +1990,7 @@ func (m *IngressBackend) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2118,10 +2106,7 @@ func (m *IngressClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2238,10 +2223,7 @@ func (m *IngressClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2359,10 +2341,7 @@ func (m *IngressClassSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2479,10 +2458,7 @@ func (m *IngressList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2597,10 +2573,7 @@ func (m *IngressRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2686,10 +2659,7 @@ func (m *IngressRuleValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2876,10 +2846,7 @@ func (m *IngressSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2962,10 +2929,7 @@ func (m *IngressStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3079,10 +3043,7 @@ func (m *IngressTLS) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/node/v1alpha1/generated.pb.go b/staging/src/k8s.io/api/node/v1alpha1/generated.pb.go index e6658a96fb829..abd2c09b6b39d 100644 --- a/staging/src/k8s.io/api/node/v1alpha1/generated.pb.go +++ b/staging/src/k8s.io/api/node/v1alpha1/generated.pb.go @@ -852,7 +852,7 @@ func (m *Overhead) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -869,10 +869,7 @@ func (m *Overhead) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -988,10 +985,7 @@ func (m *RuntimeClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1108,10 +1102,7 @@ func (m *RuntimeClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1265,10 +1256,7 @@ func (m *RuntimeClassSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1428,7 +1416,7 @@ func (m *Scheduling) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1479,10 +1467,7 @@ func (m *Scheduling) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/node/v1beta1/generated.pb.go b/staging/src/k8s.io/api/node/v1beta1/generated.pb.go index b85cbd295e5a9..4bfdd5df304d0 100644 --- a/staging/src/k8s.io/api/node/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/node/v1beta1/generated.pb.go @@ -767,7 +767,7 @@ func (m *Overhead) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -784,10 +784,7 @@ func (m *Overhead) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -974,10 +971,7 @@ func (m *RuntimeClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1094,10 +1088,7 @@ func (m *RuntimeClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1257,7 +1248,7 @@ func (m *Scheduling) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1308,10 +1299,7 @@ func (m *Scheduling) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/policy/v1beta1/generated.pb.go b/staging/src/k8s.io/api/policy/v1beta1/generated.pb.go index 40ec7ef7fbf6c..e91b497cb0d9b 100644 --- a/staging/src/k8s.io/api/policy/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/policy/v1beta1/generated.pb.go @@ -2540,10 +2540,7 @@ func (m *AllowedCSIDriver) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2625,10 +2622,7 @@ func (m *AllowedFlexVolume) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2730,10 +2724,7 @@ func (m *AllowedHostPath) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2852,10 +2843,7 @@ func (m *Eviction) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2971,10 +2959,7 @@ func (m *FSGroupStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3062,10 +3047,7 @@ func (m *HostPortRange) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3153,10 +3135,7 @@ func (m *IDRange) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3305,10 +3284,7 @@ func (m *PodDisruptionBudget) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3425,10 +3401,7 @@ func (m *PodDisruptionBudgetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3586,10 +3559,7 @@ func (m *PodDisruptionBudgetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3770,7 +3740,7 @@ func (m *PodDisruptionBudgetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -3863,10 +3833,7 @@ func (m *PodDisruptionBudgetStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3982,10 +3949,7 @@ func (m *PodSecurityPolicy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4102,10 +4066,7 @@ func (m *PodSecurityPolicyList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4861,10 +4822,7 @@ func (m *PodSecurityPolicySpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4980,10 +4938,7 @@ func (m *RunAsGroupStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5099,10 +5054,7 @@ func (m *RunAsUserStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5217,10 +5169,7 @@ func (m *RuntimeClassStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5338,10 +5287,7 @@ func (m *SELinuxStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5457,10 +5403,7 @@ func (m *SupplementalGroupsStrategyOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/rbac/v1/generated.pb.go b/staging/src/k8s.io/api/rbac/v1/generated.pb.go index ba6872d624cc0..678c00512e872 100644 --- a/staging/src/k8s.io/api/rbac/v1/generated.pb.go +++ b/staging/src/k8s.io/api/rbac/v1/generated.pb.go @@ -1557,10 +1557,7 @@ func (m *AggregationRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1713,10 +1710,7 @@ func (m *ClusterRole) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1866,10 +1860,7 @@ func (m *ClusterRoleBinding) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1986,10 +1977,7 @@ func (m *ClusterRoleBindingList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2106,10 +2094,7 @@ func (m *ClusterRoleList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2319,10 +2304,7 @@ func (m *PolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2439,10 +2421,7 @@ func (m *Role) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2592,10 +2571,7 @@ func (m *RoleBinding) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2712,10 +2688,7 @@ func (m *RoleBindingList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2832,10 +2805,7 @@ func (m *RoleList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2981,10 +2951,7 @@ func (m *RoleRef) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3162,10 +3129,7 @@ func (m *Subject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/rbac/v1alpha1/generated.pb.go b/staging/src/k8s.io/api/rbac/v1alpha1/generated.pb.go index 3b12526da9a5e..94c1bef8bb4dc 100644 --- a/staging/src/k8s.io/api/rbac/v1alpha1/generated.pb.go +++ b/staging/src/k8s.io/api/rbac/v1alpha1/generated.pb.go @@ -1558,10 +1558,7 @@ func (m *AggregationRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1714,10 +1711,7 @@ func (m *ClusterRole) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1867,10 +1861,7 @@ func (m *ClusterRoleBinding) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1987,10 +1978,7 @@ func (m *ClusterRoleBindingList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2107,10 +2095,7 @@ func (m *ClusterRoleList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2320,10 +2305,7 @@ func (m *PolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2440,10 +2422,7 @@ func (m *Role) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2593,10 +2572,7 @@ func (m *RoleBinding) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2713,10 +2689,7 @@ func (m *RoleBindingList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2833,10 +2806,7 @@ func (m *RoleList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2982,10 +2952,7 @@ func (m *RoleRef) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3163,10 +3130,7 @@ func (m *Subject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/rbac/v1beta1/generated.pb.go b/staging/src/k8s.io/api/rbac/v1beta1/generated.pb.go index 53d36320e4b38..ad5d7cb05f38d 100644 --- a/staging/src/k8s.io/api/rbac/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/rbac/v1beta1/generated.pb.go @@ -1557,10 +1557,7 @@ func (m *AggregationRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1713,10 +1710,7 @@ func (m *ClusterRole) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1866,10 +1860,7 @@ func (m *ClusterRoleBinding) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1986,10 +1977,7 @@ func (m *ClusterRoleBindingList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2106,10 +2094,7 @@ func (m *ClusterRoleList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2319,10 +2304,7 @@ func (m *PolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2439,10 +2421,7 @@ func (m *Role) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2592,10 +2571,7 @@ func (m *RoleBinding) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2712,10 +2688,7 @@ func (m *RoleBindingList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2832,10 +2805,7 @@ func (m *RoleList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2981,10 +2951,7 @@ func (m *RoleRef) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3162,10 +3129,7 @@ func (m *Subject) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/scheduling/v1/generated.pb.go b/staging/src/k8s.io/api/scheduling/v1/generated.pb.go index efc3102efea89..c5ef2f50ec9e4 100644 --- a/staging/src/k8s.io/api/scheduling/v1/generated.pb.go +++ b/staging/src/k8s.io/api/scheduling/v1/generated.pb.go @@ -511,10 +511,7 @@ func (m *PriorityClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -631,10 +628,7 @@ func (m *PriorityClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/scheduling/v1alpha1/generated.pb.go b/staging/src/k8s.io/api/scheduling/v1alpha1/generated.pb.go index 8a62104dbe73b..16f3c7cb4c362 100644 --- a/staging/src/k8s.io/api/scheduling/v1alpha1/generated.pb.go +++ b/staging/src/k8s.io/api/scheduling/v1alpha1/generated.pb.go @@ -511,10 +511,7 @@ func (m *PriorityClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -631,10 +628,7 @@ func (m *PriorityClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/scheduling/v1beta1/generated.pb.go b/staging/src/k8s.io/api/scheduling/v1beta1/generated.pb.go index b89af56b3b6fe..64b1c15057fab 100644 --- a/staging/src/k8s.io/api/scheduling/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/scheduling/v1beta1/generated.pb.go @@ -511,10 +511,7 @@ func (m *PriorityClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -631,10 +628,7 @@ func (m *PriorityClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/settings/v1alpha1/generated.pb.go b/staging/src/k8s.io/api/settings/v1alpha1/generated.pb.go index 7ed066d31c6c1..d1d6388603e99 100644 --- a/staging/src/k8s.io/api/settings/v1alpha1/generated.pb.go +++ b/staging/src/k8s.io/api/settings/v1alpha1/generated.pb.go @@ -607,10 +607,7 @@ func (m *PodPreset) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -727,10 +724,7 @@ func (m *PodPresetList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -949,10 +943,7 @@ func (m *PodPresetSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/storage/v1/generated.pb.go b/staging/src/k8s.io/api/storage/v1/generated.pb.go index 2c7088c3898cd..90ceb601d7005 100644 --- a/staging/src/k8s.io/api/storage/v1/generated.pb.go +++ b/staging/src/k8s.io/api/storage/v1/generated.pb.go @@ -2104,10 +2104,7 @@ func (m *CSIDriver) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2224,10 +2221,7 @@ func (m *CSIDriverList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2405,10 +2399,7 @@ func (m *CSIDriverSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2524,10 +2515,7 @@ func (m *CSINode) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2709,10 +2697,7 @@ func (m *CSINodeDriver) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2829,10 +2814,7 @@ func (m *CSINodeList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2916,10 +2898,7 @@ func (m *CSINodeSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3144,7 +3123,7 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -3314,10 +3293,7 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3434,10 +3410,7 @@ func (m *StorageClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3586,10 +3559,7 @@ func (m *VolumeAttachment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3706,10 +3676,7 @@ func (m *VolumeAttachmentList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3828,10 +3795,7 @@ func (m *VolumeAttachmentSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3978,10 +3942,7 @@ func (m *VolumeAttachmentSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4161,7 +4122,7 @@ func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -4250,10 +4211,7 @@ func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4368,10 +4326,7 @@ func (m *VolumeError) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4441,10 +4396,7 @@ func (m *VolumeNodeResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/storage/v1alpha1/generated.pb.go b/staging/src/k8s.io/api/storage/v1alpha1/generated.pb.go index 1b7767fdccc1a..38d3573990e1d 100644 --- a/staging/src/k8s.io/api/storage/v1alpha1/generated.pb.go +++ b/staging/src/k8s.io/api/storage/v1alpha1/generated.pb.go @@ -1210,10 +1210,7 @@ func (m *CSIStorageCapacity) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1330,10 +1327,7 @@ func (m *CSIStorageCapacityList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1482,10 +1476,7 @@ func (m *VolumeAttachment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1602,10 +1593,7 @@ func (m *VolumeAttachmentList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1724,10 +1712,7 @@ func (m *VolumeAttachmentSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1874,10 +1859,7 @@ func (m *VolumeAttachmentSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2057,7 +2039,7 @@ func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -2146,10 +2128,7 @@ func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2264,10 +2243,7 @@ func (m *VolumeError) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/api/storage/v1beta1/generated.pb.go b/staging/src/k8s.io/api/storage/v1beta1/generated.pb.go index cec77515e1e9b..24c82b9c23a9b 100644 --- a/staging/src/k8s.io/api/storage/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/storage/v1beta1/generated.pb.go @@ -2104,10 +2104,7 @@ func (m *CSIDriver) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2224,10 +2221,7 @@ func (m *CSIDriverList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2405,10 +2399,7 @@ func (m *CSIDriverSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2524,10 +2515,7 @@ func (m *CSINode) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2709,10 +2697,7 @@ func (m *CSINodeDriver) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2829,10 +2814,7 @@ func (m *CSINodeList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2916,10 +2898,7 @@ func (m *CSINodeSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3144,7 +3123,7 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -3314,10 +3293,7 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3434,10 +3410,7 @@ func (m *StorageClassList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3586,10 +3559,7 @@ func (m *VolumeAttachment) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3706,10 +3676,7 @@ func (m *VolumeAttachmentList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3828,10 +3795,7 @@ func (m *VolumeAttachmentSource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3978,10 +3942,7 @@ func (m *VolumeAttachmentSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4161,7 +4122,7 @@ func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -4250,10 +4211,7 @@ func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4368,10 +4326,7 @@ func (m *VolumeError) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4441,10 +4396,7 @@ func (m *VolumeNodeResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/apiextensions-apiserver/go.mod b/staging/src/k8s.io/apiextensions-apiserver/go.mod index a082919f89f86..73f6bfce79013 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/go.mod +++ b/staging/src/k8s.io/apiextensions-apiserver/go.mod @@ -10,7 +10,7 @@ require ( github.com/go-openapi/spec v0.19.3 github.com/go-openapi/strfmt v0.19.3 github.com/go-openapi/validate v0.19.5 - github.com/gogo/protobuf v1.3.1 + github.com/gogo/protobuf v1.3.2 github.com/google/go-cmp v0.4.0 github.com/google/gofuzz v1.1.0 github.com/google/uuid v1.1.1 @@ -20,49 +20,25 @@ require ( github.com/stretchr/testify v1.4.0 go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5 google.golang.org/grpc v1.27.0 - gopkg.in/yaml.v2 v2.3.0 - k8s.io/api v0.19.0 - k8s.io/apimachinery v0.19.0 - k8s.io/apiserver v0.19.0 - k8s.io/client-go v0.19.0 - k8s.io/code-generator v0.19.0 - k8s.io/component-base v0.19.0 - k8s.io/klog/v2 v2.3.0 + gopkg.in/yaml.v2 v2.2.8 + k8s.io/api v0.0.0 + k8s.io/apimachinery v0.0.0 + k8s.io/apiserver v0.0.0 + k8s.io/client-go v0.0.0 + k8s.io/code-generator v0.0.0 + k8s.io/component-base v0.0.0 + k8s.io/klog/v2 v2.2.0 k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 k8s.io/utils v0.0.0-20200729134348-d5654de09c73 sigs.k8s.io/yaml v1.2.0 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - go.uber.org/multierr => go.uber.org/multierr v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery k8s.io/apiserver => ../apiserver - k8s.io/cli-runtime => ../cli-runtime k8s.io/client-go => ../client-go - k8s.io/cloud-provider => ../cloud-provider - k8s.io/cluster-bootstrap => ../cluster-bootstrap k8s.io/code-generator => ../code-generator k8s.io/component-base => ../component-base - k8s.io/cri-api => ../cri-api - k8s.io/csi-translation-lib => ../csi-translation-lib - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator - k8s.io/kube-controller-manager => ../kube-controller-manager - k8s.io/kube-proxy => ../kube-proxy - k8s.io/kube-scheduler => ../kube-scheduler - k8s.io/kubectl => ../kubectl - k8s.io/kubelet => ../kubelet - k8s.io/legacy-cloud-providers => ../legacy-cloud-providers - k8s.io/metrics => ../metrics - k8s.io/sample-apiserver => ../sample-apiserver - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/apiextensions-apiserver/go.sum b/staging/src/k8s.io/apiextensions-apiserver/go.sum index a780745f8db4e..bb857af19b99c 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/go.sum +++ b/staging/src/k8s.io/apiextensions-apiserver/go.sum @@ -1,4 +1,3 @@ -bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -12,7 +11,6 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7 cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= @@ -23,19 +21,11 @@ github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+v github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= -github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ= -github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46 h1:lsxEuwrXEAokXB9qhlbKWPpo3KMLZQ5WB5WLQRW1uq0= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= @@ -47,71 +37,35 @@ github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdko github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= 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/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= -github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.0+incompatible h1:CGxCgetQ64DKk7rdZ++Vfnb1+ogGNnB17OJKJXD2Cfs= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200507155900-a9f01edf17e3/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200601085316-9f1617e5c574/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa h1:OaNxuTZr7kxeODyLWsRMC+OD03aFUH+mW6r2d+MWa5Y= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= -github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v1.0.0/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v1.0.0/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= @@ -119,36 +73,19 @@ github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -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/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= @@ -160,27 +97,17 @@ github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -241,16 +168,12 @@ github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+ github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= github.com/go-openapi/validate v0.19.5 h1:QhCBKRYqZR+SKo4gl1lPhPahope8/RLt6EVgY8X80w0= github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -264,9 +187,7 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -275,19 +196,9 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -306,14 +217,8 @@ github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= @@ -326,14 +231,10 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgf github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.5 h1:UImYN5qQ8tuGpGE16ZmjvcTtTw24zw1QAp/SlnNrZhI= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= -github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -341,10 +242,6 @@ github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -353,16 +250,11 @@ github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -373,18 +265,7 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kubernetes-sigs/kube-storage-version-migrator v0.0.0-20191127225502-51849bc15f17/go.mod h1:enH0BVV+4+DAgWdwSlMefG8bBzTfVMTr1lApzdLZ/cc= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= -github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= -github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= -github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= -github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -392,24 +273,15 @@ github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= -github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= @@ -417,45 +289,20 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= -github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc90.0.20200616040943-82d2fa4eb069/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8= -github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728/go.mod h1:+B51GHs/jfZzk93MKrSSA8BWxrulVVcxiBG7kdFpd74= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible h1:AGewrYJW8aXFkkf86sSoiO9L/a/QYKZvODVCaB/wk4o= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20200831114015-2ab0c61c15de/go.mod h1:6vwp+YhYOIlj8MpkQKkebTTSn2TuYyvgiAFQ206jIEQ= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98 h1:JYwa3H00larjMVZXmh7L4FHDhNlKdWSgYi0kLdav9BY= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= 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= @@ -463,14 +310,12 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -481,38 +326,23 @@ github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6T github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= -github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -521,19 +351,15 @@ github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -541,32 +367,20 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200520041808-52d707b772fe/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= @@ -587,10 +401,6 @@ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/ go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -601,16 +411,11 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -635,11 +440,9 @@ golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -649,14 +452,12 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -669,16 +470,14 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -686,33 +485,22 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -722,18 +510,14 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= @@ -745,30 +529,24 @@ golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054 h1:HHeAlu5H9b71C+Fx0K+1dGgVFN1DM1/wz4aoGOA5qS8= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a h1:CB3a9Nez8M13wwlr/E2YtwoU+qYHKfC+JrDa45RXXoQ= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1-0.20200106000736-b8fc810ca6b5/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -784,7 +562,6 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -792,8 +569,6 @@ google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiq google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -803,13 +578,11 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= @@ -818,21 +591,21 @@ gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qS gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -843,33 +616,19 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14 h1:t4L10Qfx/p7ASH3gXCdIUtPbbIuegCoUJf3TMSFekjw= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A= -k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= -k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9 h1:rusRLrDhjBp6aYtl9sGEvQJr6faoHoDLd0YcUBTZguI= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= -sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15 h1:4uqm9Mv+w2MmBYD+F4qf/v6tDFUdPOk29C095RbU5mY= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.pb.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.pb.go index d6f0c35fe26d1..f3388ffe85117 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.pb.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/generated.pb.go @@ -3863,10 +3863,7 @@ func (m *ConversionRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4015,10 +4012,7 @@ func (m *ConversionResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4140,10 +4134,7 @@ func (m *ConversionReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4372,10 +4363,7 @@ func (m *CustomResourceColumnDefinition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4493,10 +4481,7 @@ func (m *CustomResourceConversion) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4645,10 +4630,7 @@ func (m *CustomResourceDefinition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4859,10 +4841,7 @@ func (m *CustomResourceDefinitionCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4979,10 +4958,7 @@ func (m *CustomResourceDefinitionList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5224,10 +5200,7 @@ func (m *CustomResourceDefinitionNames) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5464,10 +5437,7 @@ func (m *CustomResourceDefinitionSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5616,10 +5586,7 @@ func (m *CustomResourceDefinitionStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5900,10 +5867,7 @@ func (m *CustomResourceDefinitionVersion) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6050,10 +6014,7 @@ func (m *CustomResourceSubresourceScale) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6103,10 +6064,7 @@ func (m *CustomResourceSubresourceStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6228,10 +6186,7 @@ func (m *CustomResourceSubresources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6317,10 +6272,7 @@ func (m *CustomResourceValidation) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6434,10 +6386,7 @@ func (m *ExternalDocumentation) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6521,10 +6470,7 @@ func (m *JSON) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7435,7 +7381,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -7600,7 +7546,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -7729,7 +7675,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -7894,7 +7840,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -8162,10 +8108,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8285,10 +8228,7 @@ func (m *JSONSchemaPropsOrArray) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8394,10 +8334,7 @@ func (m *JSONSchemaPropsOrBool) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8515,10 +8452,7 @@ func (m *JSONSchemaPropsOrStringArray) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8685,10 +8619,7 @@ func (m *ServiceReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8841,10 +8772,7 @@ func (m *WebhookClientConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8962,10 +8890,7 @@ func (m *WebhookConversion) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.pb.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.pb.go index 0382b044585c5..2c53cd916a92c 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.pb.go @@ -3850,10 +3850,7 @@ func (m *ConversionRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4002,10 +3999,7 @@ func (m *ConversionResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4127,10 +4121,7 @@ func (m *ConversionReview) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4359,10 +4350,7 @@ func (m *CustomResourceColumnDefinition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4512,10 +4500,7 @@ func (m *CustomResourceConversion) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4664,10 +4649,7 @@ func (m *CustomResourceDefinition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4878,10 +4860,7 @@ func (m *CustomResourceDefinitionCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -4998,10 +4977,7 @@ func (m *CustomResourceDefinitionList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5243,10 +5219,7 @@ func (m *CustomResourceDefinitionNames) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5622,10 +5595,7 @@ func (m *CustomResourceDefinitionSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5774,10 +5744,7 @@ func (m *CustomResourceDefinitionStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6058,10 +6025,7 @@ func (m *CustomResourceDefinitionVersion) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6208,10 +6172,7 @@ func (m *CustomResourceSubresourceScale) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6261,10 +6222,7 @@ func (m *CustomResourceSubresourceStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6386,10 +6344,7 @@ func (m *CustomResourceSubresources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6475,10 +6430,7 @@ func (m *CustomResourceValidation) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6592,10 +6544,7 @@ func (m *ExternalDocumentation) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6679,10 +6628,7 @@ func (m *JSON) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7593,7 +7539,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -7758,7 +7704,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -7887,7 +7833,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -8052,7 +7998,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -8320,10 +8266,7 @@ func (m *JSONSchemaProps) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8443,10 +8386,7 @@ func (m *JSONSchemaPropsOrArray) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8552,10 +8492,7 @@ func (m *JSONSchemaPropsOrBool) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8673,10 +8610,7 @@ func (m *JSONSchemaPropsOrStringArray) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8843,10 +8777,7 @@ func (m *ServiceReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8999,10 +8930,7 @@ func (m *WebhookClientConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/validation/validation.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/validation/validation.go index e25dd1e7a72d7..32ae5e9943651 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/validation/validation.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/validation/validation.go @@ -1409,7 +1409,7 @@ func validateAPIApproval(newCRD, oldCRD *apiextensions.CustomResourceDefinition, var oldApprovalState *apihelpers.APIApprovalState if oldCRD != nil { t, _ := apihelpers.GetAPIApprovalState(oldCRD.Annotations) - oldApprovalState = &t + oldApprovalState = &t // +k8s:verify-mutation:reason=clone } newApprovalState, reason := apihelpers.GetAPIApprovalState(newCRD.Annotations) diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/builder/builder_test.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/builder/builder_test.go index 78de23af7ecaf..fac53c71b5863 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/builder/builder_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/builder/builder_test.go @@ -172,8 +172,7 @@ func TestNewBuilder(t *testing.T) { }, "embedded-object": { "x-kubernetes-embedded-resource": true, - "x-kubernetes-preserve-unknown-fields": true, - "type":"object" + "x-kubernetes-preserve-unknown-fields": true } }, "x-kubernetes-group-version-kind":[{"group":"bar.k8s.io","kind":"Foo","version":"v1"}] diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/v2/conversion.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/v2/conversion.go index 320529bf68d21..ae5b86a193280 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/v2/conversion.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/v2/conversion.go @@ -81,6 +81,13 @@ func ToStructuralOpenAPIV2(in *structuralschema.Structural) *structuralschema.St changed = true } + if s.XPreserveUnknownFields && s.Type == "object" { + // similar as above, kubectl doesn't properly handle object fields with `x-kubernetes-preserve-unknown-fields: true` + s.Type = "" + + changed = true + } + for f, fs := range s.Properties { if fs.Nullable { s.ValueValidation.Required, changed = filterOut(s.ValueValidation.Required, f) diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/v2/conversion_test.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/v2/conversion_test.go index eacb92efb98f0..7a8cb5aabe685 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/v2/conversion_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/v2/conversion_test.go @@ -666,8 +666,7 @@ func Test_ConvertJSONSchemaPropsToOpenAPIv2SchemaByType(t *testing.T) { }, }, }, - expected: withVendorExtensions(new(spec.Schema), "x-kubernetes-preserve-unknown-fields", true). - Typed("object", ""), + expected: withVendorExtensions(new(spec.Schema), "x-kubernetes-preserve-unknown-fields", true), }, } diff --git a/staging/src/k8s.io/apimachinery/go.mod b/staging/src/k8s.io/apimachinery/go.mod index 8d269c976225d..e3f29bc78a97d 100644 --- a/staging/src/k8s.io/apimachinery/go.mod +++ b/staging/src/k8s.io/apimachinery/go.mod @@ -10,7 +10,7 @@ require ( github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 github.com/evanphx/json-patch v4.9.0+incompatible github.com/fsnotify/fsnotify v1.4.9 // indirect - github.com/gogo/protobuf v1.3.1 + github.com/gogo/protobuf v1.3.2 github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 github.com/golang/protobuf v1.4.2 github.com/google/go-cmp v0.4.0 @@ -21,26 +21,20 @@ require ( github.com/json-iterator/go v1.1.10 github.com/modern-go/reflect2 v1.0.1 github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f - github.com/onsi/ginkgo v4.5.0-origin.1+incompatible // indirect + github.com/onsi/ginkgo v1.11.0 // indirect github.com/onsi/gomega v1.7.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.4.0 - golang.org/x/net v0.0.0-20200707034311-ab3426394381 - golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 // indirect - golang.org/x/text v0.3.3 // indirect + golang.org/x/net v0.0.0-20201110031124-69a78807bb2b + golang.org/x/sys v0.0.0-20201112073958-5cba982894dd // indirect google.golang.org/protobuf v1.24.0 // indirect gopkg.in/inf.v0 v0.9.1 - gopkg.in/yaml.v2 v2.3.0 - k8s.io/klog/v2 v2.3.0 + gopkg.in/yaml.v2 v2.2.8 + k8s.io/klog/v2 v2.2.0 k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 - sigs.k8s.io/structured-merge-diff/v4 v4.0.1 + sigs.k8s.io/structured-merge-diff/v4 v4.0.3 sigs.k8s.io/yaml v1.2.0 ) -replace ( - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 - k8s.io/apimachinery => ../apimachinery - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 -) +replace k8s.io/apimachinery => ../apimachinery diff --git a/staging/src/k8s.io/apimachinery/go.sum b/staging/src/k8s.io/apimachinery/go.sum index ea134f7ff2be5..69ae139403ea8 100644 --- a/staging/src/k8s.io/apimachinery/go.sum +++ b/staging/src/k8s.io/apimachinery/go.sum @@ -18,26 +18,25 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 h1:5ZkaAPbicIKTF2I64qf5Fh8Aa83Q/dnOafMYV0OMwjA= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= @@ -66,7 +65,7 @@ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpO github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -83,11 +82,13 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible h1:AGewrYJW8aXFkkf86sSoiO9L/a/QYKZvODVCaB/wk4o= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -100,46 +101,62 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -154,7 +171,6 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= @@ -168,17 +184,21 @@ gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity_proto.go b/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity_proto.go index f89ca163cd39a..3e0cdb10d4090 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity_proto.go +++ b/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity_proto.go @@ -166,7 +166,7 @@ func (m *Quantity) Unmarshal(data []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go index e74a51099d259..e41a3901fc52e 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go @@ -4925,10 +4925,7 @@ func (m *APIGroup) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5012,10 +5009,7 @@ func (m *APIGroupList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5377,10 +5371,7 @@ func (m *APIResource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5496,10 +5487,7 @@ func (m *APIResourceList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5615,10 +5603,7 @@ func (m *APIVersions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5848,10 +5833,7 @@ func (m *Condition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -5965,10 +5947,7 @@ func (m *CreateOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6160,10 +6139,7 @@ func (m *DeleteOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6232,10 +6208,7 @@ func (m *Duration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6325,10 +6298,7 @@ func (m *ExportOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6412,10 +6382,7 @@ func (m *FieldsV1) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6497,10 +6464,7 @@ func (m *GetOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6614,10 +6578,7 @@ func (m *GroupKind) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6731,10 +6692,7 @@ func (m *GroupResource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6848,10 +6806,7 @@ func (m *GroupVersion) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -6965,10 +6920,7 @@ func (m *GroupVersionForDiscovery) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7114,10 +7066,7 @@ func (m *GroupVersionKind) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7263,10 +7212,7 @@ func (m *GroupVersionResource) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7426,7 +7372,7 @@ func (m *LabelSelector) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -7477,10 +7423,7 @@ func (m *LabelSelector) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7626,10 +7569,7 @@ func (m *LabelSelectorRequirement) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7746,10 +7686,7 @@ func (m *List) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -7915,10 +7852,7 @@ func (m *ListMeta) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8207,10 +8141,7 @@ func (m *ListOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8460,10 +8391,7 @@ func (m *ManagedFieldsEntry) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -8923,7 +8851,7 @@ func (m *ObjectMeta) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -9050,7 +8978,7 @@ func (m *ObjectMeta) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -9199,10 +9127,7 @@ func (m *ObjectMeta) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9422,10 +9347,7 @@ func (m *OwnerReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9508,10 +9430,7 @@ func (m *PartialObjectMetadata) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9628,10 +9547,7 @@ func (m *PartialObjectMetadataList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9681,10 +9597,7 @@ func (m *Patch) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9819,10 +9732,7 @@ func (m *PatchOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -9938,10 +9848,7 @@ func (m *Preconditions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10023,10 +9930,7 @@ func (m *RootPaths) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10140,10 +10044,7 @@ func (m *ServerAddressByClientCIDR) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10377,10 +10278,7 @@ func (m *Status) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10526,10 +10424,7 @@ func (m *StatusCause) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10760,10 +10655,7 @@ func (m *StatusDetails) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10845,10 +10737,7 @@ func (m *TableOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -10936,10 +10825,7 @@ func (m *Timestamp) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11053,10 +10939,7 @@ func (m *TypeMeta) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11170,10 +11053,7 @@ func (m *UpdateOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11255,10 +11135,7 @@ func (m *Verbs) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -11373,10 +11250,7 @@ func (m *WatchEvent) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.pb.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.pb.go index cd5fc9026c47e..a5a94967966ca 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.pb.go @@ -311,10 +311,7 @@ func (m *PartialObjectMetadataList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/generated.pb.go b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/generated.pb.go index 95a09a7c55117..f044a0820eabb 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/generated.pb.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/generated.pb.go @@ -1004,10 +1004,7 @@ func (m *Carp) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1251,10 +1248,7 @@ func (m *CarpCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1371,10 +1365,7 @@ func (m *CarpList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1606,7 +1597,7 @@ func (m *CarpSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1875,10 +1866,7 @@ func (m *CarpSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2158,10 +2146,7 @@ func (m *CarpStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/generated.pb.go b/staging/src/k8s.io/apimachinery/pkg/runtime/generated.pb.go index 071971817317d..ac428d6103a9a 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/generated.pb.go +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/generated.pb.go @@ -450,10 +450,7 @@ func (m *RawExtension) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -567,10 +564,7 @@ func (m *TypeMeta) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -751,10 +745,7 @@ func (m *Unknown) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/apimachinery/pkg/util/intstr/generated.pb.go b/staging/src/k8s.io/apimachinery/pkg/util/intstr/generated.pb.go index ec1cb70f29bd9..a4792034abfb4 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/intstr/generated.pb.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/intstr/generated.pb.go @@ -268,10 +268,7 @@ func (m *IntOrString) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/apimachinery/pkg/util/json/json.go b/staging/src/k8s.io/apimachinery/pkg/util/json/json.go index 204834883facf..778e58f704b9b 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/json/json.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/json/json.go @@ -39,7 +39,8 @@ func Marshal(v interface{}) ([]byte, error) { const maxDepth = 10000 // Unmarshal unmarshals the given data -// If v is a *map[string]interface{}, numbers are converted to int64 or float64 +// If v is a *map[string]interface{}, *[]interface{}, or *interface{} numbers +// are converted to int64 or float64 func Unmarshal(data []byte, v interface{}) error { switch v := v.(type) { case *map[string]interface{}: @@ -52,7 +53,7 @@ func Unmarshal(data []byte, v interface{}) error { return err } // If the decode succeeds, post-process the map to convert json.Number objects to int64 or float64 - return convertMapNumbers(*v, 0) + return ConvertMapNumbers(*v, 0) case *[]interface{}: // Build a decoder from the given data @@ -64,7 +65,7 @@ func Unmarshal(data []byte, v interface{}) error { return err } // If the decode succeeds, post-process the map to convert json.Number objects to int64 or float64 - return convertSliceNumbers(*v, 0) + return ConvertSliceNumbers(*v, 0) case *interface{}: // Build a decoder from the given data @@ -76,29 +77,31 @@ func Unmarshal(data []byte, v interface{}) error { return err } // If the decode succeeds, post-process the map to convert json.Number objects to int64 or float64 - return convertInterfaceNumbers(v, 0) + return ConvertInterfaceNumbers(v, 0) default: return json.Unmarshal(data, v) } } -func convertInterfaceNumbers(v *interface{}, depth int) error { +// ConvertInterfaceNumbers converts any json.Number values to int64 or float64. +// Values which are map[string]interface{} or []interface{} are recursively visited +func ConvertInterfaceNumbers(v *interface{}, depth int) error { var err error switch v2 := (*v).(type) { case json.Number: *v, err = convertNumber(v2) case map[string]interface{}: - err = convertMapNumbers(v2, depth+1) + err = ConvertMapNumbers(v2, depth+1) case []interface{}: - err = convertSliceNumbers(v2, depth+1) + err = ConvertSliceNumbers(v2, depth+1) } return err } -// convertMapNumbers traverses the map, converting any json.Number values to int64 or float64. +// ConvertMapNumbers traverses the map, converting any json.Number values to int64 or float64. // values which are map[string]interface{} or []interface{} are recursively visited -func convertMapNumbers(m map[string]interface{}, depth int) error { +func ConvertMapNumbers(m map[string]interface{}, depth int) error { if depth > maxDepth { return fmt.Errorf("exceeded max depth of %d", maxDepth) } @@ -109,9 +112,9 @@ func convertMapNumbers(m map[string]interface{}, depth int) error { case json.Number: m[k], err = convertNumber(v) case map[string]interface{}: - err = convertMapNumbers(v, depth+1) + err = ConvertMapNumbers(v, depth+1) case []interface{}: - err = convertSliceNumbers(v, depth+1) + err = ConvertSliceNumbers(v, depth+1) } if err != nil { return err @@ -120,9 +123,9 @@ func convertMapNumbers(m map[string]interface{}, depth int) error { return nil } -// convertSliceNumbers traverses the slice, converting any json.Number values to int64 or float64. +// ConvertSliceNumbers traverses the slice, converting any json.Number values to int64 or float64. // values which are map[string]interface{} or []interface{} are recursively visited -func convertSliceNumbers(s []interface{}, depth int) error { +func ConvertSliceNumbers(s []interface{}, depth int) error { if depth > maxDepth { return fmt.Errorf("exceeded max depth of %d", maxDepth) } @@ -133,9 +136,9 @@ func convertSliceNumbers(s []interface{}, depth int) error { case json.Number: s[i], err = convertNumber(v) case map[string]interface{}: - err = convertMapNumbers(v, depth+1) + err = ConvertMapNumbers(v, depth+1) case []interface{}: - err = convertSliceNumbers(v, depth+1) + err = ConvertSliceNumbers(v, depth+1) } if err != nil { return err diff --git a/staging/src/k8s.io/apimachinery/pkg/util/net/http.go b/staging/src/k8s.io/apimachinery/pkg/util/net/http.go index 945886c438006..ba63d02df69a2 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/net/http.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/net/http.go @@ -33,6 +33,7 @@ import ( "regexp" "strconv" "strings" + "time" "unicode" "unicode/utf8" @@ -132,13 +133,61 @@ func SetTransportDefaults(t *http.Transport) *http.Transport { if s := os.Getenv("DISABLE_HTTP2"); len(s) > 0 { klog.Infof("HTTP2 has been explicitly disabled") } else if allowsHTTP2(t) { - if err := http2.ConfigureTransport(t); err != nil { + if err := configureHTTP2Transport(t); err != nil { klog.Warningf("Transport failed http2 configuration: %v", err) } } return t } +func readIdleTimeoutSeconds() int { + ret := 30 + // User can set the readIdleTimeout to 0 to disable the HTTP/2 + // connection health check. + if s := os.Getenv("HTTP2_READ_IDLE_TIMEOUT_SECONDS"); len(s) > 0 { + i, err := strconv.Atoi(s) + if err != nil { + klog.Warningf("Illegal HTTP2_READ_IDLE_TIMEOUT_SECONDS(%q): %v."+ + " Default value %d is used", s, err, ret) + return ret + } + ret = i + } + return ret +} + +func pingTimeoutSeconds() int { + ret := 15 + if s := os.Getenv("HTTP2_PING_TIMEOUT_SECONDS"); len(s) > 0 { + i, err := strconv.Atoi(s) + if err != nil { + klog.Warningf("Illegal HTTP2_PING_TIMEOUT_SECONDS(%q): %v."+ + " Default value %d is used", s, err, ret) + return ret + } + ret = i + } + return ret +} + +func configureHTTP2Transport(t *http.Transport) error { + t2, err := http2.ConfigureTransports(t) + if err != nil { + return err + } + // The following enables the HTTP/2 connection health check added in + // https://github.com/golang/net/pull/55. The health check detects and + // closes broken transport layer connections. Without the health check, + // a broken connection can linger too long, e.g., a broken TCP + // connection will be closed by the Linux kernel after 13 to 30 minutes + // by default, which caused + // https://github.com/kubernetes/client-go/issues/374 and + // https://github.com/kubernetes/kubernetes/issues/87615. + t2.ReadIdleTimeout = time.Duration(readIdleTimeoutSeconds()) * time.Second + t2.PingTimeout = time.Duration(pingTimeoutSeconds()) * time.Second + return nil +} + func allowsHTTP2(t *http.Transport) bool { if t.TLSClientConfig == nil || len(t.TLSClientConfig.NextProtos) == 0 { // the transport expressed no NextProto preference, allow diff --git a/staging/src/k8s.io/apimachinery/pkg/util/net/http_test.go b/staging/src/k8s.io/apimachinery/pkg/util/net/http_test.go index e7f90af1c633f..82b36f0e68c43 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/net/http_test.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/net/http_test.go @@ -1071,3 +1071,39 @@ func TestIsProbableEOF(t *testing.T) { }) } } + +func setEnv(key, value string) func() { + originalValue := os.Getenv(key) + os.Setenv(key, value) + return func() { + os.Setenv(key, originalValue) + } +} + +func TestReadIdleTimeoutSeconds(t *testing.T) { + reset := setEnv("HTTP2_READ_IDLE_TIMEOUT_SECONDS", "60") + if e, a := 60, readIdleTimeoutSeconds(); e != a { + t.Errorf("expected %d, got %d", e, a) + } + reset() + + reset = setEnv("HTTP2_READ_IDLE_TIMEOUT_SECONDS", "illegal value") + if e, a := 30, readIdleTimeoutSeconds(); e != a { + t.Errorf("expected %d, got %d", e, a) + } + reset() +} + +func TestPingTimeoutSeconds(t *testing.T) { + reset := setEnv("HTTP2_PING_TIMEOUT_SECONDS", "60") + if e, a := 60, pingTimeoutSeconds(); e != a { + t.Errorf("expected %d, got %d", e, a) + } + reset() + + reset = setEnv("HTTP2_PING_TIMEOUT_SECONDS", "illegal value") + if e, a := 15, pingTimeoutSeconds(); e != a { + t.Errorf("expected %d, got %d", e, a) + } + reset() +} diff --git a/staging/src/k8s.io/apimachinery/pkg/util/wait/wait.go b/staging/src/k8s.io/apimachinery/pkg/util/wait/wait.go index d759d912be156..3dea7fe7f9eba 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/wait/wait.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/wait/wait.go @@ -604,3 +604,32 @@ func poller(interval, timeout time.Duration) WaitFunc { return ch }) } + +// ExponentialBackoffWithContext works with a request context and a Backoff. It ensures that the retry wait never +// exceeds the deadline specified by the request context. +func ExponentialBackoffWithContext(ctx context.Context, backoff Backoff, condition ConditionFunc) error { + for backoff.Steps > 0 { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + + if ok, err := runConditionWithCrashProtection(condition); err != nil || ok { + return err + } + + if backoff.Steps == 1 { + break + } + + waitBeforeRetry := backoff.Step() + select { + case <-ctx.Done(): + return ctx.Err() + case <-time.After(waitBeforeRetry): + } + } + + return ErrWaitTimeout +} diff --git a/staging/src/k8s.io/apimachinery/pkg/util/wait/wait_test.go b/staging/src/k8s.io/apimachinery/pkg/util/wait/wait_test.go index d73735b7d069d..0eab37f8888ce 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/wait/wait_test.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/wait/wait_test.go @@ -758,3 +758,118 @@ func TestExponentialBackoffManagerWithRealClock(t *testing.T) { } } } + +func TestExponentialBackoffWithContext(t *testing.T) { + defaultCtx := func() context.Context { + return context.Background() + } + + defaultCallback := func(_ int) (bool, error) { + return false, nil + } + + conditionErr := errors.New("condition failed") + + tests := []struct { + name string + steps int + ctxGetter func() context.Context + callback func(calls int) (bool, error) + attemptsExpected int + errExpected error + }{ + { + name: "no attempts expected with zero backoff steps", + steps: 0, + ctxGetter: defaultCtx, + callback: defaultCallback, + attemptsExpected: 0, + errExpected: ErrWaitTimeout, + }, + { + name: "condition returns false with single backoff step", + steps: 1, + ctxGetter: defaultCtx, + callback: defaultCallback, + attemptsExpected: 1, + errExpected: ErrWaitTimeout, + }, + { + name: "condition returns true with single backoff step", + steps: 1, + ctxGetter: defaultCtx, + callback: func(_ int) (bool, error) { + return true, nil + }, + attemptsExpected: 1, + errExpected: nil, + }, + { + name: "condition always returns false with multiple backoff steps", + steps: 5, + ctxGetter: defaultCtx, + callback: defaultCallback, + attemptsExpected: 5, + errExpected: ErrWaitTimeout, + }, + { + name: "condition returns true after certain attempts with multiple backoff steps", + steps: 5, + ctxGetter: defaultCtx, + callback: func(attempts int) (bool, error) { + if attempts == 3 { + return true, nil + } + return false, nil + }, + attemptsExpected: 3, + errExpected: nil, + }, + { + name: "condition returns error no further attempts expected", + steps: 5, + ctxGetter: defaultCtx, + callback: func(_ int) (bool, error) { + return true, conditionErr + }, + attemptsExpected: 1, + errExpected: conditionErr, + }, + { + name: "context already canceled no attempts expected", + steps: 5, + ctxGetter: func() context.Context { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + return ctx + }, + callback: defaultCallback, + attemptsExpected: 0, + errExpected: context.Canceled, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + backoff := Backoff{ + Duration: 1 * time.Millisecond, + Factor: 1.0, + Steps: test.steps, + } + + attempts := 0 + err := ExponentialBackoffWithContext(test.ctxGetter(), backoff, func() (bool, error) { + attempts++ + return test.callback(attempts) + }) + + if test.errExpected != err { + t.Errorf("expected error: %v but got: %v", test.errExpected, err) + } + + if test.attemptsExpected != attempts { + t.Errorf("expected attempts count: %d but got: %d", test.attemptsExpected, attempts) + } + }) + } +} diff --git a/staging/src/k8s.io/apimachinery/pkg/util/yaml/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/yaml/BUILD index a1787159279c7..cb3c98e6f21ef 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/yaml/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/yaml/BUILD @@ -18,6 +18,7 @@ go_library( importmap = "k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/yaml", importpath = "k8s.io/apimachinery/pkg/util/yaml", deps = [ + "//staging/src/k8s.io/apimachinery/pkg/util/json:go_default_library", "//vendor/k8s.io/klog/v2:go_default_library", "//vendor/sigs.k8s.io/yaml:go_default_library", ], diff --git a/staging/src/k8s.io/apimachinery/pkg/util/yaml/decoder.go b/staging/src/k8s.io/apimachinery/pkg/util/yaml/decoder.go index 492171faf4baf..7fe70646770cc 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/yaml/decoder.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/yaml/decoder.go @@ -26,10 +26,41 @@ import ( "strings" "unicode" + jsonutil "k8s.io/apimachinery/pkg/util/json" + "k8s.io/klog/v2" "sigs.k8s.io/yaml" ) +// Unmarshal unmarshals the given data +// If v is a *map[string]interface{}, *[]interface{}, or *interface{} numbers +// are converted to int64 or float64 +func Unmarshal(data []byte, v interface{}) error { + preserveIntFloat := func(d *json.Decoder) *json.Decoder { + d.UseNumber() + return d + } + switch v := v.(type) { + case *map[string]interface{}: + if err := yaml.Unmarshal(data, v, preserveIntFloat); err != nil { + return err + } + return jsonutil.ConvertMapNumbers(*v, 0) + case *[]interface{}: + if err := yaml.Unmarshal(data, v, preserveIntFloat); err != nil { + return err + } + return jsonutil.ConvertSliceNumbers(*v, 0) + case *interface{}: + if err := yaml.Unmarshal(data, v, preserveIntFloat); err != nil { + return err + } + return jsonutil.ConvertInterfaceNumbers(v, 0) + default: + return yaml.Unmarshal(data, v) + } +} + // ToJSON converts a single YAML document into a JSON document // or returns an error. If the document appears to be JSON the // YAML decoding path is not used (so that error messages are diff --git a/staging/src/k8s.io/apimachinery/pkg/util/yaml/decoder_test.go b/staging/src/k8s.io/apimachinery/pkg/util/yaml/decoder_test.go index b4c5f0cd9c14e..1f4b158f96834 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/yaml/decoder_test.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/yaml/decoder_test.go @@ -430,3 +430,44 @@ stuff: 1 t.Fatalf("expected %q to be of type YAMLSyntaxError", err.Error()) } } + +func TestUnmarshal(t *testing.T) { + mapWithIntegerBytes := []byte(`replicas: 1`) + mapWithInteger := make(map[string]interface{}) + if err := Unmarshal(mapWithIntegerBytes, &mapWithInteger); err != nil { + t.Fatalf("unexpected error unmarshaling yaml: %v", err) + } + if _, ok := mapWithInteger["replicas"].(int64); !ok { + t.Fatalf(`Expected number in map to be int64 but got "%T"`, mapWithInteger["replicas"]) + } + + sliceWithIntegerBytes := []byte(`- 1`) + var sliceWithInteger []interface{} + if err := Unmarshal(sliceWithIntegerBytes, &sliceWithInteger); err != nil { + t.Fatalf("unexpected error unmarshaling yaml: %v", err) + } + if _, ok := sliceWithInteger[0].(int64); !ok { + t.Fatalf(`Expected number in slice to be int64 but got "%T"`, sliceWithInteger[0]) + } + + integerBytes := []byte(`1`) + var integer interface{} + if err := Unmarshal(integerBytes, &integer); err != nil { + t.Fatalf("unexpected error unmarshaling yaml: %v", err) + } + if _, ok := integer.(int64); !ok { + t.Fatalf(`Expected number to be int64 but got "%T"`, integer) + } + + otherTypeBytes := []byte(`123: 2`) + otherType := make(map[int]interface{}) + if err := Unmarshal(otherTypeBytes, &otherType); err != nil { + t.Fatalf("unexpected error unmarshaling yaml: %v", err) + } + if _, ok := otherType[123].(int64); ok { + t.Fatalf(`Expected number not to be converted to int64`) + } + if _, ok := otherType[123].(float64); !ok { + t.Fatalf(`Expected number to be float64 but got "%T"`, otherType[123]) + } +} diff --git a/staging/src/k8s.io/apiserver/go.mod b/staging/src/k8s.io/apiserver/go.mod index 4c1ddbe4d5a16..0e470b1ec961b 100644 --- a/staging/src/k8s.io/apiserver/go.mod +++ b/staging/src/k8s.io/apiserver/go.mod @@ -6,76 +6,57 @@ go 1.15 require ( github.com/coreos/go-oidc v2.1.0+incompatible + github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f github.com/davecgh/go-spew v1.1.1 + github.com/dustin/go-humanize v1.0.0 // indirect github.com/emicklei/go-restful v2.9.5+incompatible github.com/evanphx/json-patch v4.9.0+incompatible + github.com/go-openapi/jsonreference v0.19.3 // indirect github.com/go-openapi/spec v0.19.3 - github.com/gogo/protobuf v1.3.1 + github.com/gogo/protobuf v1.3.2 github.com/google/go-cmp v0.4.0 github.com/google/gofuzz v1.1.0 github.com/google/uuid v1.1.1 github.com/googleapis/gnostic v0.4.1 + github.com/gorilla/websocket v1.4.0 // indirect github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 github.com/hashicorp/golang-lru v0.5.1 + github.com/mailru/easyjson v0.7.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 github.com/pkg/errors v0.9.1 + github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021 // indirect github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.4.0 + github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 // indirect + go.etcd.io/bbolt v1.3.5 // indirect go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5 - go.uber.org/atomic v1.4.0 go.uber.org/zap v1.10.0 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 - golang.org/x/net v0.0.0-20200707034311-ab3426394381 - golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e - golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 + golang.org/x/net v0.0.0-20201110031124-69a78807bb2b + golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 + golang.org/x/sys v0.0.0-20201112073958-5cba982894dd google.golang.org/grpc v1.27.0 gopkg.in/natefinch/lumberjack.v2 v2.0.0 gopkg.in/square/go-jose.v2 v2.2.2 - gopkg.in/yaml.v2 v2.3.0 - k8s.io/api v0.19.0 - k8s.io/apimachinery v0.19.0 - k8s.io/client-go v0.19.0 - k8s.io/component-base v0.19.0 - k8s.io/klog/v2 v2.3.0 + gopkg.in/yaml.v2 v2.2.8 + k8s.io/api v0.0.0 + k8s.io/apimachinery v0.0.0 + k8s.io/client-go v0.0.0 + k8s.io/component-base v0.0.0 + k8s.io/klog/v2 v2.2.0 k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 k8s.io/utils v0.0.0-20200729134348-d5654de09c73 - sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9 - sigs.k8s.io/structured-merge-diff/v4 v4.0.1 + sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15 + sigs.k8s.io/structured-merge-diff/v4 v4.0.3 sigs.k8s.io/yaml v1.2.0 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - go.uber.org/multierr => go.uber.org/multierr v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery k8s.io/apiserver => ../apiserver - k8s.io/cli-runtime => ../cli-runtime k8s.io/client-go => ../client-go - k8s.io/cloud-provider => ../cloud-provider - k8s.io/cluster-bootstrap => ../cluster-bootstrap - k8s.io/code-generator => ../code-generator k8s.io/component-base => ../component-base - k8s.io/cri-api => ../cri-api - k8s.io/csi-translation-lib => ../csi-translation-lib - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator - k8s.io/kube-controller-manager => ../kube-controller-manager - k8s.io/kube-proxy => ../kube-proxy - k8s.io/kube-scheduler => ../kube-scheduler - k8s.io/kubectl => ../kubectl - k8s.io/kubelet => ../kubelet - k8s.io/legacy-cloud-providers => ../legacy-cloud-providers - k8s.io/metrics => ../metrics - k8s.io/sample-apiserver => ../sample-apiserver - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/apiserver/go.sum b/staging/src/k8s.io/apiserver/go.sum index d86dbe0fadd6f..97bf771f46175 100644 --- a/staging/src/k8s.io/apiserver/go.sum +++ b/staging/src/k8s.io/apiserver/go.sum @@ -1,4 +1,3 @@ -bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -12,8 +11,6 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7 cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= @@ -24,94 +21,39 @@ github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+v github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= -github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ= -github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46 h1:lsxEuwrXEAokXB9qhlbKWPpo3KMLZQ5WB5WLQRW1uq0= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -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/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= -github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.0+incompatible h1:CGxCgetQ64DKk7rdZ++Vfnb1+ogGNnB17OJKJXD2Cfs= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200507155900-a9f01edf17e3/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200601085316-9f1617e5c574/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa h1:OaNxuTZr7kxeODyLWsRMC+OD03aFUH+mW6r2d+MWa5Y= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= -github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v1.0.0/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v1.0.0/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-oidc v2.1.0+incompatible h1:sdJrfw8akMnCuUlaZU3tE/uYXFgfqom8DBE9so9EBsM= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -120,36 +62,15 @@ github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -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/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= @@ -161,28 +82,15 @@ github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -190,67 +98,29 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903 h1:LbsanbbD6LieFkXbj9YNNBupiGHJgFeLpO0j0Fza1h8= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 h1:5ZkaAPbicIKTF2I64qf5Fh8Aa83Q/dnOafMYV0OMwjA= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -260,9 +130,7 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -271,19 +139,9 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -302,44 +160,27 @@ github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4 h1:z53tR0945TRRQO/fLEVPI6SMv7ZflF0TEaTAoU7tOzg= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.5 h1:UImYN5qQ8tuGpGE16ZmjvcTtTw24zw1QAp/SlnNrZhI= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= -github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -348,16 +189,11 @@ github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -368,42 +204,17 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kubernetes-sigs/kube-storage-version-migrator v0.0.0-20191127225502-51849bc15f17/go.mod h1:enH0BVV+4+DAgWdwSlMefG8bBzTfVMTr1lApzdLZ/cc= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= -github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= -github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= -github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= -github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= -github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= @@ -411,61 +222,30 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= -github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc90.0.20200616040943-82d2fa4eb069/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8= -github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728/go.mod h1:+B51GHs/jfZzk93MKrSSA8BWxrulVVcxiBG7kdFpd74= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible h1:AGewrYJW8aXFkkf86sSoiO9L/a/QYKZvODVCaB/wk4o= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20200831114015-2ab0c61c15de/go.mod h1:6vwp+YhYOIlj8MpkQKkebTTSn2TuYyvgiAFQ206jIEQ= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98 h1:JYwa3H00larjMVZXmh7L4FHDhNlKdWSgYi0kLdav9BY= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -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.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021 h1:0XM1XL/OFFJjXsYXlG30spTkV/E9+gmd5GD1w2HE8xM= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -473,61 +253,29 @@ github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1: github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= -github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -535,39 +283,19 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200520041808-52d707b772fe/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5 h1:Gqga3zA9tdAcfqobUGjSoCob5L3f8Dt5EuOp3ihNZko= go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -579,30 +307,19 @@ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/ go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -622,32 +339,25 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -660,50 +370,36 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -713,52 +409,40 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1-0.20200106000736-b8fc810ca6b5/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -774,16 +458,12 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -793,13 +473,11 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= @@ -808,11 +486,8 @@ gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qS gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -820,10 +495,13 @@ gopkg.in/square/go-jose.v2 v2.2.2 h1:orlkJ3myw8CN1nVQHBFfloD+L3egixIa4FvUP6RosSA gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -832,34 +510,19 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A= -k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= -k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9 h1:rusRLrDhjBp6aYtl9sGEvQJr6faoHoDLd0YcUBTZguI= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= -sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15 h1:4uqm9Mv+w2MmBYD+F4qf/v6tDFUdPOk29C095RbU5mY= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/staging/src/k8s.io/apiserver/pkg/admission/configuration/mutating_webhook_manager.go b/staging/src/k8s.io/apiserver/pkg/admission/configuration/mutating_webhook_manager.go index d9b28ad785668..ae57e6739a289 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/configuration/mutating_webhook_manager.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/configuration/mutating_webhook_manager.go @@ -36,6 +36,11 @@ type mutatingWebhookConfigurationManager struct { configuration *atomic.Value lister admissionregistrationlisters.MutatingWebhookConfigurationLister hasSynced func() bool + // initialConfigurationSynced stores a boolean value, which tracks if + // the existing webhook configs have been synced (honored) by the + // manager at startup-- the informer has synced and either has no items + // or has finished executing updateConfiguration() once. + initialConfigurationSynced *atomic.Value } var _ generic.Source = &mutatingWebhookConfigurationManager{} @@ -43,13 +48,15 @@ var _ generic.Source = &mutatingWebhookConfigurationManager{} func NewMutatingWebhookConfigurationManager(f informers.SharedInformerFactory) generic.Source { informer := f.Admissionregistration().V1().MutatingWebhookConfigurations() manager := &mutatingWebhookConfigurationManager{ - configuration: &atomic.Value{}, - lister: informer.Lister(), - hasSynced: informer.Informer().HasSynced, + configuration: &atomic.Value{}, + lister: informer.Lister(), + hasSynced: informer.Informer().HasSynced, + initialConfigurationSynced: &atomic.Value{}, } // Start with an empty list manager.configuration.Store([]webhook.WebhookAccessor{}) + manager.initialConfigurationSynced.Store(false) // On any change, rebuild the config informer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ @@ -66,8 +73,27 @@ func (m *mutatingWebhookConfigurationManager) Webhooks() []webhook.WebhookAccess return m.configuration.Load().([]webhook.WebhookAccessor) } +// HasSynced returns true when the manager is synced with existing webhookconfig +// objects at startup-- which means the informer is synced and either has no items +// or updateConfiguration() has completed. func (m *mutatingWebhookConfigurationManager) HasSynced() bool { - return m.hasSynced() + if !m.hasSynced() { + return false + } + if m.initialConfigurationSynced.Load().(bool) { + // the informer has synced and configuration has been updated + return true + } + if configurations, err := m.lister.List(labels.Everything()); err == nil && len(configurations) == 0 { + // the empty list we initially stored is valid to use. + // Setting initialConfigurationSynced to true, so subsequent checks + // would be able to take the fast path on the atomic boolean in a + // cluster without any admission webhooks configured. + m.initialConfigurationSynced.Store(true) + // the informer has synced and we don't have any items + return true + } + return false } func (m *mutatingWebhookConfigurationManager) updateConfiguration() { @@ -77,6 +103,7 @@ func (m *mutatingWebhookConfigurationManager) updateConfiguration() { return } m.configuration.Store(mergeMutatingWebhookConfigurations(configurations)) + m.initialConfigurationSynced.Store(true) } func mergeMutatingWebhookConfigurations(configurations []*v1.MutatingWebhookConfiguration) []webhook.WebhookAccessor { diff --git a/staging/src/k8s.io/apiserver/pkg/admission/configuration/validating_webhook_manager.go b/staging/src/k8s.io/apiserver/pkg/admission/configuration/validating_webhook_manager.go index 37062b082e1e4..b8c1904ea8a13 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/configuration/validating_webhook_manager.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/configuration/validating_webhook_manager.go @@ -36,6 +36,11 @@ type validatingWebhookConfigurationManager struct { configuration *atomic.Value lister admissionregistrationlisters.ValidatingWebhookConfigurationLister hasSynced func() bool + // initialConfigurationSynced stores a boolean value, which tracks if + // the existing webhook configs have been synced (honored) by the + // manager at startup-- the informer has synced and either has no items + // or has finished executing updateConfiguration() once. + initialConfigurationSynced *atomic.Value } var _ generic.Source = &validatingWebhookConfigurationManager{} @@ -43,13 +48,15 @@ var _ generic.Source = &validatingWebhookConfigurationManager{} func NewValidatingWebhookConfigurationManager(f informers.SharedInformerFactory) generic.Source { informer := f.Admissionregistration().V1().ValidatingWebhookConfigurations() manager := &validatingWebhookConfigurationManager{ - configuration: &atomic.Value{}, - lister: informer.Lister(), - hasSynced: informer.Informer().HasSynced, + configuration: &atomic.Value{}, + lister: informer.Lister(), + hasSynced: informer.Informer().HasSynced, + initialConfigurationSynced: &atomic.Value{}, } // Start with an empty list manager.configuration.Store([]webhook.WebhookAccessor{}) + manager.initialConfigurationSynced.Store(false) // On any change, rebuild the config informer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ @@ -66,9 +73,28 @@ func (v *validatingWebhookConfigurationManager) Webhooks() []webhook.WebhookAcce return v.configuration.Load().([]webhook.WebhookAccessor) } -// HasSynced returns true if the shared informers have synced. +// HasSynced returns true when the manager is synced with existing webhookconfig +// objects at startup-- which means the informer is synced and either has no items +// or updateConfiguration() has completed. func (v *validatingWebhookConfigurationManager) HasSynced() bool { - return v.hasSynced() + if !v.hasSynced() { + return false + } + if v.initialConfigurationSynced.Load().(bool) { + // the informer has synced and configuration has been updated + return true + } + if configurations, err := v.lister.List(labels.Everything()); err == nil && len(configurations) == 0 { + // the empty list we initially stored is valid to use. + // Setting initialConfigurationSynced to true, so subsequent checks + // would be able to take the fast path on the atomic boolean in a + // cluster without any admission webhooks configured. + v.initialConfigurationSynced.Store(true) + // the informer has synced and we don't have any items + return true + } + return false + } func (v *validatingWebhookConfigurationManager) updateConfiguration() { @@ -78,6 +104,7 @@ func (v *validatingWebhookConfigurationManager) updateConfiguration() { return } v.configuration.Store(mergeValidatingWebhookConfigurations(configurations)) + v.initialConfigurationSynced.Store(true) } func mergeValidatingWebhookConfigurations(configurations []*v1.ValidatingWebhookConfiguration) []webhook.WebhookAccessor { diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission.go b/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission.go index be90e0eef5454..0fac569c4f1ba 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission.go @@ -54,16 +54,7 @@ const ( // Register registers a plugin func Register(plugins *admission.Plugins) { plugins.Register(PluginName, func(config io.Reader) (admission.Interface, error) { - return NewLifecycle(sets.NewString(metav1.NamespaceDefault, metav1.NamespaceSystem, metav1.NamespacePublic, - // user specified configuration that cannot be rebuilt - "openshift-config", - // cluster generated configuration that cannot be rebuilt (etcd encryption keys) - "openshift-config-managed", - // the CVO which is the root we use to rebuild all the rest - "openshift-cluster-version", - // contains a namespaced list of all nodes in the cluster (yeah, weird. they do it for multi-tenant management I think?) - "openshift-machine-api", - )) + return NewLifecycle(sets.NewString(metav1.NamespaceDefault, metav1.NamespaceSystem, metav1.NamespacePublic)) }) } diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1/generated.pb.go b/staging/src/k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1/generated.pb.go index 1adf8a3d6fbc0..d0acd05bdcdd4 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1/generated.pb.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserverinternal/v1alpha1/generated.pb.go @@ -902,10 +902,7 @@ func (m *ServerStorageVersion) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1054,10 +1051,7 @@ func (m *StorageVersion) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1287,10 +1281,7 @@ func (m *StorageVersionCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1407,10 +1398,7 @@ func (m *StorageVersionList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1460,10 +1448,7 @@ func (m *StorageVersionSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1614,10 +1599,7 @@ func (m *StorageVersionStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1/generated.pb.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1/generated.pb.go index 3d2f444194b42..c569f506811b7 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1/generated.pb.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1/generated.pb.go @@ -1870,7 +1870,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1919,10 +1919,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2039,10 +2036,7 @@ func (m *EventList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2188,10 +2182,7 @@ func (m *GroupResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2497,10 +2488,7 @@ func (m *ObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2649,10 +2637,7 @@ func (m *Policy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2769,10 +2754,7 @@ func (m *PolicyList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3080,10 +3062,7 @@ func (m *PolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/generated.pb.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/generated.pb.go index 0b381d4242775..4af2810f08b95 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/generated.pb.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/generated.pb.go @@ -1959,7 +1959,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -2008,10 +2008,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2128,10 +2125,7 @@ func (m *EventList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2277,10 +2271,7 @@ func (m *GroupResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2554,10 +2545,7 @@ func (m *ObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2706,10 +2694,7 @@ func (m *Policy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2826,10 +2811,7 @@ func (m *PolicyList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3137,10 +3119,7 @@ func (m *PolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/generated.pb.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/generated.pb.go index 14870e42944b0..0437d71cf56a5 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1beta1/generated.pb.go @@ -1968,7 +1968,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -2017,10 +2017,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2137,10 +2134,7 @@ func (m *EventList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2286,10 +2280,7 @@ func (m *GroupResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2595,10 +2586,7 @@ func (m *ObjectReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2747,10 +2735,7 @@ func (m *Policy) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2867,10 +2852,7 @@ func (m *PolicyList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -3178,10 +3160,7 @@ func (m *PolicyRule) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example/v1/generated.pb.go b/staging/src/k8s.io/apiserver/pkg/apis/example/v1/generated.pb.go index 996deca8101c2..cadb36d5c6aec 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example/v1/generated.pb.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/example/v1/generated.pb.go @@ -1004,10 +1004,7 @@ func (m *Pod) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1251,10 +1248,7 @@ func (m *PodCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1371,10 +1365,7 @@ func (m *PodList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1606,7 +1597,7 @@ func (m *PodSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1875,10 +1866,7 @@ func (m *PodSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -2158,10 +2146,7 @@ func (m *PodStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/apiserver/pkg/apis/flowcontrol/bootstrap/default.go b/staging/src/k8s.io/apiserver/pkg/apis/flowcontrol/bootstrap/default.go index 3cde94ff19c5a..e7d73540c2370 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/flowcontrol/bootstrap/default.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/flowcontrol/bootstrap/default.go @@ -64,6 +64,7 @@ var ( } SuggestedFlowSchemas = []*flowcontrol.FlowSchema{ SuggestedFlowSchemaSystemNodes, // references "system" priority-level + SuggestedFlowSchemaProbes, // references "exempt" priority-level SuggestedFlowSchemaSystemLeaderElection, // references "leader-election" priority-level SuggestedFlowSchemaWorkloadLeaderElection, // references "leader-election" priority-level SuggestedFlowSchemaKubeControllerManager, // references "workload-high" priority-level @@ -210,7 +211,7 @@ var ( flowcontrol.PriorityLevelConfigurationSpec{ Type: flowcontrol.PriorityLevelEnablementLimited, Limited: &flowcontrol.LimitedPriorityLevelConfiguration{ - AssuredConcurrencyShares: 100, + AssuredConcurrencyShares: 20, LimitResponse: flowcontrol.LimitResponse{ Type: flowcontrol.LimitResponseTypeQueue, Queuing: &flowcontrol.QueuingConfiguration{ @@ -227,7 +228,7 @@ var ( flowcontrol.PriorityLevelConfigurationSpec{ Type: flowcontrol.PriorityLevelEnablementLimited, Limited: &flowcontrol.LimitedPriorityLevelConfiguration{ - AssuredConcurrencyShares: 20, + AssuredConcurrencyShares: 100, LimitResponse: flowcontrol.LimitResponse{ Type: flowcontrol.LimitResponseTypeQueue, Queuing: &flowcontrol.QueuingConfiguration{ @@ -394,6 +395,19 @@ var ( }, }, ) + // the following flow schema exempts probes + SuggestedFlowSchemaProbes = newFlowSchema( + "probes", "exempt", 2, + "", // distinguisherMethodType + flowcontrol.PolicyRulesWithSubjects{ + Subjects: groups(user.AllUnauthenticated, user.AllAuthenticated), + NonResourceRules: []flowcontrol.NonResourcePolicyRule{ + nonResourceRule( + []string{"get"}, + []string{"/healthz", "/readyz", "/livez"}), + }, + }, + ) ) func newPriorityLevelConfiguration(name string, spec flowcontrol.PriorityLevelConfigurationSpec) *flowcontrol.PriorityLevelConfiguration { diff --git a/staging/src/k8s.io/apiserver/pkg/audit/request.go b/staging/src/k8s.io/apiserver/pkg/audit/request.go index f88c196e67a44..db4a5232ec264 100644 --- a/staging/src/k8s.io/apiserver/pkg/audit/request.go +++ b/staging/src/k8s.io/apiserver/pkg/audit/request.go @@ -43,9 +43,9 @@ const ( userAgentTruncateSuffix = "...TRUNCATED" ) -func NewEventFromRequest(req *http.Request, requestReceivedTimestamp time.Time, level auditinternal.Level, attribs authorizer.Attributes) (*auditinternal.Event, error) { +func NewEventFromRequest(req *http.Request, level auditinternal.Level, attribs authorizer.Attributes) (*auditinternal.Event, error) { ev := &auditinternal.Event{ - RequestReceivedTimestamp: metav1.NewMicroTime(requestReceivedTimestamp), + RequestReceivedTimestamp: metav1.NewMicroTime(time.Now()), Verb: attribs.GetVerb(), RequestURI: req.URL.RequestURI(), UserAgent: maybeTruncateUserAgent(req), @@ -153,15 +153,8 @@ func LogRequestObject(ae *auditinternal.Event, obj runtime.Object, gvr schema.Gr return } - copy, ok, err := copyWithoutManagedFields(obj) - if err != nil { - klog.Warningf("error while dropping managed fields from the request for %q error: %v", reflect.TypeOf(obj).Name(), err) - } - if ok { - obj = copy - } - // TODO(audit): hook into the serializer to avoid double conversion + var err error ae.RequestObject, err = encodeObject(obj, gvr.GroupVersion(), s) if err != nil { // TODO(audit): add error slice to audit event struct @@ -200,16 +193,8 @@ func LogResponseObject(ae *auditinternal.Event, obj runtime.Object, gv schema.Gr if ae.Level.Less(auditinternal.LevelRequestResponse) { return } - - copy, ok, err := copyWithoutManagedFields(obj) - if err != nil { - klog.Warningf("error while dropping managed fields from the response for %q error: %v", reflect.TypeOf(obj).Name(), err) - } - if ok { - obj = copy - } - // TODO(audit): hook into the serializer to avoid double conversion + var err error ae.ResponseObject, err = encodeObject(obj, gv, s) if err != nil { klog.Warningf("Audit failed for %q response: %v", reflect.TypeOf(obj).Name(), err) @@ -259,62 +244,3 @@ func maybeTruncateUserAgent(req *http.Request) string { return ua } - -// copyWithoutManagedFields will make a deep copy of the specified object and will discard -// managed fields from the copy. -// The specified object is expected to be a meta.Object or a "list". The specified object obj -// is treated as readonly and hence not mutated. -// On return, an error is set if the function runs into any error while removing the managed fields. -// On return, the boolean value is true if the copy has been made successfully, otherwise false. -func copyWithoutManagedFields(obj runtime.Object) (runtime.Object, bool, error) { - removeManagedFields := func(obj runtime.Object) error { - accessor, err := meta.Accessor(obj) - if err != nil { - return err - } - accessor.SetManagedFields(nil) - return nil - } - - isAccessor := true - if _, err := meta.Accessor(obj); err != nil { - isAccessor = false - } - isList := meta.IsListType(obj) - - _, isTable := obj.(*metav1.Table) - if !isAccessor && !isList && !isTable { - return nil, false, nil - } - - copy := obj.DeepCopyObject() - - if isAccessor { - if err := removeManagedFields(copy); err != nil { - return nil, false, err - } - } - - if isList { - if err := meta.EachListItem(copy, removeManagedFields); err != nil { - return nil, false, err - } - } - - if isTable { - table := copy.(*metav1.Table) - for i := range table.Rows { - rowObj := table.Rows[i].Object - - if rowObj.Object == nil { - continue - } - - if err := removeManagedFields(rowObj.Object); err != nil { - return nil, false, err - } - } - } - - return copy, true, nil -} diff --git a/staging/src/k8s.io/apiserver/pkg/audit/request_test.go b/staging/src/k8s.io/apiserver/pkg/audit/request_test.go index b1f120bcc33d8..12c36ccd6690e 100644 --- a/staging/src/k8s.io/apiserver/pkg/audit/request_test.go +++ b/staging/src/k8s.io/apiserver/pkg/audit/request_test.go @@ -18,17 +18,11 @@ package audit import ( "net/http" - "reflect" "testing" - "time" - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - auditinternal "k8s.io/apiserver/pkg/apis/audit" - - "github.com/google/go-cmp/cmp" "github.com/stretchr/testify/assert" + + auditinternal "k8s.io/apiserver/pkg/apis/audit" ) func TestLogAnnotation(t *testing.T) { @@ -60,166 +54,3 @@ func TestMaybeTruncateUserAgent(t *testing.T) { req.Header.Set("User-Agent", ua) assert.NotEqual(t, ua, maybeTruncateUserAgent(req)) } - -func TestCopyWithoutManagedFields(t *testing.T) { - tests := []struct { - name string - object runtime.Object - expected runtime.Object - }{ - { - name: "object specified is not a meta.Accessor or a list", - object: &metav1.Status{}, - }, - { - name: "object specified is a meta.Accessor and has managed fields", - object: &corev1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: "foo", - Namespace: "bar", - ManagedFields: []metav1.ManagedFieldsEntry{ - {Manager: "a", Operation: metav1.ManagedFieldsOperationUpdate, Time: &metav1.Time{Time: time.Now()}}, - {Manager: "b", Operation: metav1.ManagedFieldsOperationUpdate, Time: &metav1.Time{Time: time.Now()}}, - }, - }, - }, - expected: &corev1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: "foo", - Namespace: "bar", - }, - }, - }, - { - name: "object specified is a list and its items have managed fields", - object: &corev1.PodList{ - Items: []corev1.Pod{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: "foo", - Namespace: "ns1", - ManagedFields: []metav1.ManagedFieldsEntry{ - {Manager: "a", Operation: metav1.ManagedFieldsOperationUpdate, Time: &metav1.Time{Time: time.Now()}}, - {Manager: "b", Operation: metav1.ManagedFieldsOperationUpdate, Time: &metav1.Time{Time: time.Now()}}, - }, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "bar", - Namespace: "ns2", - ManagedFields: []metav1.ManagedFieldsEntry{ - {Manager: "c", Operation: metav1.ManagedFieldsOperationUpdate, Time: &metav1.Time{Time: time.Now()}}, - {Manager: "d", Operation: metav1.ManagedFieldsOperationUpdate, Time: &metav1.Time{Time: time.Now()}}, - }, - }, - }, - }, - }, - expected: &corev1.PodList{ - Items: []corev1.Pod{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: "foo", - Namespace: "ns1", - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "bar", - Namespace: "ns2", - }, - }, - }, - }, - }, - { - name: "object specified is a Table and objects in its rows have managed fields", - object: &metav1.Table{ - Rows: []metav1.TableRow{ - { - Object: runtime.RawExtension{ - Object: &corev1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: "foo", - Namespace: "ns1", - ManagedFields: []metav1.ManagedFieldsEntry{ - {Manager: "a", Operation: metav1.ManagedFieldsOperationUpdate, Time: &metav1.Time{Time: time.Now()}}, - {Manager: "b", Operation: metav1.ManagedFieldsOperationUpdate, Time: &metav1.Time{Time: time.Now()}}, - }, - }, - }, - }, - }, - { - Object: runtime.RawExtension{ - Object: &corev1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: "bar", - Namespace: "ns2", - ManagedFields: []metav1.ManagedFieldsEntry{ - {Manager: "c", Operation: metav1.ManagedFieldsOperationUpdate, Time: &metav1.Time{Time: time.Now()}}, - {Manager: "d", Operation: metav1.ManagedFieldsOperationUpdate, Time: &metav1.Time{Time: time.Now()}}, - }, - }, - }, - }, - }, - }, - }, - expected: &metav1.Table{ - Rows: []metav1.TableRow{ - { - Object: runtime.RawExtension{ - Object: &corev1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: "foo", - Namespace: "ns1", - }, - }, - }, - }, - { - Object: runtime.RawExtension{ - Object: &corev1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: "bar", - Namespace: "ns2", - }, - }, - }, - }, - }, - }, - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - objectGot, ok, err := copyWithoutManagedFields(test.object) - - if test.expected == nil { - if err != nil { - t.Errorf("expected error to be nil, but got %v", err) - } - if ok { - t.Error("expected ok to be false, but got true") - } - if objectGot != nil { - t.Errorf("expected the object returned to be nil, but got %v", objectGot) - } - return - } - - if err != nil { - t.Errorf("expected error to be nil, but got %v", err) - } - if !ok { - t.Error("expected ok to be true, but got false") - } - if !reflect.DeepEqual(test.expected, objectGot) { - t.Errorf("expected and actual do not match, diff: %s", cmp.Diff(test.expected, objectGot)) - } - }) - } -} diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/filters/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/filters/BUILD index 6410c8303a6a9..6810eec11681c 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/filters/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/filters/BUILD @@ -16,7 +16,6 @@ go_test( "cachecontrol_test.go", "impersonation_test.go", "metrics_test.go", - "request_received_time_test.go", "requestinfo_test.go", "warning_test.go", ], @@ -28,7 +27,6 @@ go_test( "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/util/clock:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//staging/src/k8s.io/apiserver/pkg/apis/audit:go_default_library", @@ -56,7 +54,6 @@ go_library( "doc.go", "impersonation.go", "metrics.go", - "request_received_time.go", "requestinfo.go", "warning.go", ], @@ -69,7 +66,6 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/util/clock:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//staging/src/k8s.io/apiserver/pkg/apis/audit:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/filters/audit.go b/staging/src/k8s.io/apiserver/pkg/endpoints/filters/audit.go index 891d609354985..458c8a67c9278 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/filters/audit.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/filters/audit.go @@ -131,11 +131,7 @@ func createAuditEventAndAttachToContext(req *http.Request, policy policy.Checker return req, nil, nil, nil } - requestReceivedTimestamp, ok := request.ReceivedTimestampFrom(ctx) - if !ok { - requestReceivedTimestamp = time.Now() - } - ev, err := audit.NewEventFromRequest(req, requestReceivedTimestamp, level, attribs) + ev, err := audit.NewEventFromRequest(req, level, attribs) if err != nil { return req, nil, nil, fmt.Errorf("failed to complete audit event from request: %v", err) } diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/filters/request_received_time.go b/staging/src/k8s.io/apiserver/pkg/endpoints/filters/request_received_time.go deleted file mode 100644 index d9e7369f67110..0000000000000 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/filters/request_received_time.go +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright 2020 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 filters - -import ( - "net/http" - - utilclock "k8s.io/apimachinery/pkg/util/clock" - "k8s.io/apiserver/pkg/endpoints/request" -) - -// WithRequestReceivedTimestamp attaches the ReceivedTimestamp (the time the request reached -// the apiserver) to the context. -func WithRequestReceivedTimestamp(handler http.Handler) http.Handler { - return withRequestReceivedTimestampWithClock(handler, utilclock.RealClock{}) -} - -// The clock is passed as a parameter, handy for unit testing. -func withRequestReceivedTimestampWithClock(handler http.Handler, clock utilclock.PassiveClock) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - ctx := req.Context() - req = req.WithContext(request.WithReceivedTimestamp(ctx, clock.Now())) - - handler.ServeHTTP(w, req) - }) -} diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/filters/request_received_time_test.go b/staging/src/k8s.io/apiserver/pkg/endpoints/filters/request_received_time_test.go deleted file mode 100644 index f09bad40952a7..0000000000000 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/filters/request_received_time_test.go +++ /dev/null @@ -1,63 +0,0 @@ -/* -Copyright 2020 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 filters - -import ( - "net/http" - "net/http/httptest" - "testing" - "time" - - utilclock "k8s.io/apimachinery/pkg/util/clock" - "k8s.io/apiserver/pkg/endpoints/request" -) - -func TestWithRequestReceivedTimestamp(t *testing.T) { - receivedTimestampExpected := time.Now() - - var ( - callCount int - receivedTimestampGot time.Time - ok bool - ) - handler := http.HandlerFunc(func(_ http.ResponseWriter, req *http.Request) { - callCount++ - - // does the handler chain that follows see the request received timestamp? - receivedTimestampGot, ok = request.ReceivedTimestampFrom(req.Context()) - }) - - wrapped := withRequestReceivedTimestampWithClock(handler, utilclock.NewFakeClock(receivedTimestampExpected)) - - testRequest, err := http.NewRequest(http.MethodGet, "/api/v1/namespaces", nil) - if err != nil { - t.Fatalf("failed to create new http request - %v", err) - } - - w := httptest.NewRecorder() - wrapped.ServeHTTP(w, testRequest) - - if callCount != 1 { - t.Errorf("WithRequestReceivedTimestamp: expected the original handler to be invoked once, but was actually invoked %d times", callCount) - } - if !ok { - t.Error("WithRequestReceivedTimestamp: expected request.ReceivedTimestampFrom to return true, but got false") - } - if receivedTimestampExpected != receivedTimestampGot { - t.Errorf("WithRequestReceivedTimestamp: request received timestamp expected=%s but got=%s", receivedTimestampExpected, receivedTimestampGot) - } -} diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD index 6d6ef4a97beda..17873a495a40f 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD @@ -87,6 +87,7 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/strategicpatch:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/yaml:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library", "//staging/src/k8s.io/apiserver/pkg/admission:go_default_library", "//staging/src/k8s.io/apiserver/pkg/audit:go_default_library", @@ -108,7 +109,6 @@ go_library( "//vendor/google.golang.org/grpc/status:go_default_library", "//vendor/k8s.io/klog/v2:go_default_library", "//vendor/k8s.io/utils/trace:go_default_library", - "//vendor/sigs.k8s.io/yaml:go_default_library", ], ) diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/BUILD index 1a7b9961d4d65..4ebd85e7f4fb7 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/BUILD @@ -56,6 +56,7 @@ go_test( "fieldmanager_test.go", "lastappliedmanager_test.go", "lastappliedupdater_test.go", + "managedfieldsupdater_test.go", "skipnonapplied_test.go", ], data = [ diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/lastappliedupdater.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/lastappliedupdater.go index 91e2e9691473e..ad651a2b59db2 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/lastappliedupdater.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/lastappliedupdater.go @@ -25,6 +25,8 @@ import ( "k8s.io/apimachinery/pkg/runtime" ) +const totalAnnotationSizeLimitB int64 = 256 * (1 << 10) // 256 kB + type lastAppliedUpdater struct { fieldManager Manager } @@ -78,8 +80,8 @@ func hasLastApplied(obj runtime.Object) bool { if annotations == nil { return false } - _, ok := annotations[corev1.LastAppliedConfigAnnotation] - return ok + lastApplied, ok := annotations[corev1.LastAppliedConfigAnnotation] + return ok && len(lastApplied) > 0 } func setLastApplied(obj runtime.Object, value string) error { @@ -92,6 +94,9 @@ func setLastApplied(obj runtime.Object, value string) error { annotations = map[string]string{} } annotations[corev1.LastAppliedConfigAnnotation] = value + if isAnnotationsValid(annotations) != nil { + delete(annotations, corev1.LastAppliedConfigAnnotation) + } accessor.SetAnnotations(annotations) return nil } @@ -115,3 +120,14 @@ func buildLastApplied(obj runtime.Object) (string, error) { } return string(lastApplied), nil } + +func isAnnotationsValid(annotations map[string]string) error { + var totalSize int64 + for k, v := range annotations { + totalSize += (int64)(len(k)) + (int64)(len(v)) + } + if totalSize > (int64)(totalAnnotationSizeLimitB) { + return fmt.Errorf("annotations size %d is larger than limit %d", totalSize, totalAnnotationSizeLimitB) + } + return nil +} diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/lastappliedupdater_test.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/lastappliedupdater_test.go index c93b7ef2c8d44..4014f4d802156 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/lastappliedupdater_test.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/lastappliedupdater_test.go @@ -17,9 +17,13 @@ limitations under the License. package fieldmanager_test import ( + "fmt" "strings" "testing" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager" @@ -89,3 +93,133 @@ spec: t.Errorf("expected last applied annotation to be updated, but got: %q", lastApplied) } } + +func TestLargeLastApplied(t *testing.T) { + tests := []struct { + name string + oldObject *corev1.ConfigMap + newObject *corev1.ConfigMap + }{ + { + name: "old object + new object last-applied annotation is too big", + oldObject: &corev1.ConfigMap{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "large-update-test-cm", + Namespace: "default", + Annotations: map[string]string{ + corev1.LastAppliedConfigAnnotation: "nonempty", + }, + }, + Data: map[string]string{"k": "v"}, + }, + newObject: func() *corev1.ConfigMap { + cfg := &corev1.ConfigMap{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "large-update-test-cm", + Namespace: "default", + Annotations: map[string]string{ + corev1.LastAppliedConfigAnnotation: "nonempty", + }, + }, + Data: map[string]string{"k": "v"}, + } + for i := 0; i < 9999; i++ { + unique := fmt.Sprintf("this-key-is-very-long-so-as-to-create-a-very-large-serialized-fieldset-%v", i) + cfg.Data[unique] = "A" + } + return cfg + }(), + }, + { + name: "old object + new object annotations + new object last-applied annotation is too big", + oldObject: func() *corev1.ConfigMap { + cfg := &corev1.ConfigMap{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "large-update-test-cm", + Namespace: "default", + Annotations: map[string]string{ + corev1.LastAppliedConfigAnnotation: "nonempty", + }, + }, + Data: map[string]string{"k": "v"}, + } + for i := 0; i < 2000; i++ { + unique := fmt.Sprintf("this-key-is-very-long-so-as-to-create-a-very-large-serialized-fieldset-%v", i) + cfg.Data[unique] = "A" + } + return cfg + }(), + newObject: func() *corev1.ConfigMap { + cfg := &corev1.ConfigMap{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "large-update-test-cm", + Namespace: "default", + Annotations: map[string]string{ + corev1.LastAppliedConfigAnnotation: "nonempty", + }, + }, + Data: map[string]string{"k": "v"}, + } + for i := 0; i < 2000; i++ { + unique := fmt.Sprintf("this-key-is-very-long-so-as-to-create-a-very-large-serialized-fieldset-%v", i) + cfg.Data[unique] = "A" + cfg.ObjectMeta.Annotations[unique] = "A" + } + return cfg + }(), + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + f := NewTestFieldManager(schema.FromAPIVersionAndKind("v1", "ConfigMap"), + func(m fieldmanager.Manager) fieldmanager.Manager { + return fieldmanager.NewLastAppliedUpdater(m) + }) + + if err := f.Apply(test.oldObject, "kubectl", false); err != nil { + t.Errorf("Error applying object: %v", err) + } + + lastApplied, err := getLastApplied(f.liveObj) + if err != nil { + t.Errorf("Failed to access last applied annotation: %v", err) + } + if len(lastApplied) == 0 || lastApplied == "nonempty" { + t.Errorf("Expected an updated last-applied annotation, but got: %q", lastApplied) + } + + if err := f.Apply(test.newObject, "kubectl", false); err != nil { + t.Errorf("Error applying object: %v", err) + } + + accessor := meta.NewAccessor() + annotations, err := accessor.Annotations(f.liveObj) + if err != nil { + t.Errorf("Failed to access annotations: %v", err) + } + if annotations == nil { + t.Errorf("No annotations on obj: %v", f.liveObj) + } + lastApplied, ok := annotations[corev1.LastAppliedConfigAnnotation] + if ok || len(lastApplied) > 0 { + t.Errorf("Expected no last applied annotation, but got last applied with length: %d", len(lastApplied)) + } + }) + } +} diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/managedfieldsupdater.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/managedfieldsupdater.go index b3ecd63933354..9bee82a854f1b 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/managedfieldsupdater.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/managedfieldsupdater.go @@ -44,6 +44,7 @@ func NewManagedFieldsUpdater(fieldManager Manager) Manager { // Update implements Manager. func (f *managedFieldsUpdater) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) { self := "current-operation" + formerSet := managed.Fields()[manager] object, managed, err := f.fieldManager.Update(liveObj, newObj, managed, self) if err != nil { return object, managed, err @@ -54,12 +55,15 @@ func (f *managedFieldsUpdater) Update(liveObj, newObj runtime.Object, managed Ma if vs, ok := managed.Fields()[self]; ok { delete(managed.Fields(), self) - managed.Times()[manager] = &metav1.Time{Time: time.Now().UTC()} if previous, ok := managed.Fields()[manager]; ok { managed.Fields()[manager] = fieldpath.NewVersionedSet(vs.Set().Union(previous.Set()), vs.APIVersion(), vs.Applied()) } else { managed.Fields()[manager] = vs } + // Update the time only if the manager's fieldSet has changed. + if formerSet == nil || !managed.Fields()[manager].Set().Equals(formerSet.Set()) { + managed.Times()[manager] = &metav1.Time{Time: time.Now().UTC()} + } } return object, managed, nil diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/managedfieldsupdater_test.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/managedfieldsupdater_test.go new file mode 100644 index 0000000000000..9d8bfc4e0c904 --- /dev/null +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/managedfieldsupdater_test.go @@ -0,0 +1,66 @@ +/* +Copyright 2020 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 fieldmanager_test + +import ( + "reflect" + "testing" + "time" + + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/yaml" +) + +func TestNoManagedFieldsUpdateDoesntUpdateTime(t *testing.T) { + f := NewTestFieldManager(schema.FromAPIVersionAndKind("v1", "Pod"), nil) + + obj := &unstructured.Unstructured{Object: map[string]interface{}{}} + if err := yaml.Unmarshal([]byte(`{ + "apiVersion": "v1", + "kind": "Pod", + "metadata": { + "name": "pod", + "labels": {"app": "nginx"} + }, + }`), &obj.Object); err != nil { + t.Fatalf("error decoding YAML: %v", err) + } + + if err := f.Update(obj, "fieldmanager_test"); err != nil { + t.Fatalf("failed to update object: %v", err) + } + managed := f.ManagedFields() + obj2 := &unstructured.Unstructured{Object: map[string]interface{}{}} + if err := yaml.Unmarshal([]byte(`{ + "apiVersion": "v1", + "kind": "Pod", + "metadata": { + "name": "pod", + "labels": {"app": "nginx2"} + }, + }`), &obj2.Object); err != nil { + t.Fatalf("error decoding YAML: %v", err) + } + time.Sleep(time.Second) + if err := f.Update(obj2, "fieldmanager_test"); err != nil { + t.Fatalf("failed to update object: %v", err) + } + if !reflect.DeepEqual(managed, f.ManagedFields()) { + t.Errorf("ManagedFields changed:\nBefore:\n%v\nAfter:\n%v", managed, f.ManagedFields()) + } +} diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go index a043bb3b251c2..4e85f8e1622e1 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/patch.go @@ -38,6 +38,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/apimachinery/pkg/util/validation/field" + "k8s.io/apimachinery/pkg/util/yaml" "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/audit" "k8s.io/apiserver/pkg/authorization/authorizer" @@ -49,7 +50,6 @@ import ( "k8s.io/apiserver/pkg/util/dryrun" utilfeature "k8s.io/apiserver/pkg/util/feature" utiltrace "k8s.io/utils/trace" - "sigs.k8s.io/yaml" ) const ( diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/metrics/metrics.go b/staging/src/k8s.io/apiserver/pkg/endpoints/metrics/metrics.go index d8b508eef8e09..f0aef4a52dffb 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/metrics/metrics.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/metrics/metrics.go @@ -392,11 +392,8 @@ func MonitorRequest(req *http.Request, verb, group, version, resource, subresour // InstrumentRouteFunc works like Prometheus' InstrumentHandlerFunc but wraps // the go-restful RouteFunction instead of a HandlerFunc plus some Kubernetes endpoint specific information. func InstrumentRouteFunc(verb, group, version, resource, subresource, scope, component string, deprecated bool, removedRelease string, routeFunc restful.RouteFunction) restful.RouteFunction { - return restful.RouteFunction(func(req *restful.Request, response *restful.Response) { - requestReceivedTimestamp, ok := request.ReceivedTimestampFrom(req.Request.Context()) - if !ok { - requestReceivedTimestamp = time.Now() - } + return restful.RouteFunction(func(request *restful.Request, response *restful.Response) { + now := time.Now() delegate := &ResponseWriterDelegator{ResponseWriter: response.ResponseWriter} @@ -411,19 +408,16 @@ func InstrumentRouteFunc(verb, group, version, resource, subresource, scope, com } response.ResponseWriter = rw - routeFunc(req, response) + routeFunc(request, response) - MonitorRequest(req.Request, verb, group, version, resource, subresource, scope, component, deprecated, removedRelease, delegate.Header().Get("Content-Type"), delegate.Status(), delegate.ContentLength(), time.Since(requestReceivedTimestamp)) + MonitorRequest(request.Request, verb, group, version, resource, subresource, scope, component, deprecated, removedRelease, delegate.Header().Get("Content-Type"), delegate.Status(), delegate.ContentLength(), time.Since(now)) }) } // InstrumentHandlerFunc works like Prometheus' InstrumentHandlerFunc but adds some Kubernetes endpoint specific information. func InstrumentHandlerFunc(verb, group, version, resource, subresource, scope, component string, deprecated bool, removedRelease string, handler http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, req *http.Request) { - requestReceivedTimestamp, ok := request.ReceivedTimestampFrom(req.Context()) - if !ok { - requestReceivedTimestamp = time.Now() - } + now := time.Now() delegate := &ResponseWriterDelegator{ResponseWriter: w} @@ -438,7 +432,7 @@ func InstrumentHandlerFunc(verb, group, version, resource, subresource, scope, c handler(w, req) - MonitorRequest(req, verb, group, version, resource, subresource, scope, component, deprecated, removedRelease, delegate.Header().Get("Content-Type"), delegate.Status(), delegate.ContentLength(), time.Since(requestReceivedTimestamp)) + MonitorRequest(req, verb, group, version, resource, subresource, scope, component, deprecated, removedRelease, delegate.Header().Get("Content-Type"), delegate.Status(), delegate.ContentLength(), time.Since(now)) } } diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/request/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/request/BUILD index 7dbe7f6528227..6965fc19f6d04 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/request/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/request/BUILD @@ -10,7 +10,6 @@ go_test( name = "go_default_test", srcs = [ "context_test.go", - "received_time_test.go", "requestinfo_test.go", ], embed = [":go_default_library"], @@ -26,7 +25,6 @@ go_library( srcs = [ "context.go", "doc.go", - "received_time.go", "requestinfo.go", ], importmap = "k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/request", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/request/received_time.go b/staging/src/k8s.io/apiserver/pkg/endpoints/request/received_time.go deleted file mode 100644 index 7d58cf3ad9772..0000000000000 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/request/received_time.go +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright 2020 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 request - -import ( - "context" - "time" -) - -type requestReceivedTimestampKeyType int - -// requestReceivedTimestampKey is the ReceivedTimestamp (the time the request reached the apiserver) -// key for the context. -const requestReceivedTimestampKey requestReceivedTimestampKeyType = iota - -// WithReceivedTimestamp returns a copy of parent context in which the ReceivedTimestamp -// (the time the request reached the apiserver) is set. -// -// If the specified ReceivedTimestamp is zero, no value is set and the parent context is returned as is. -func WithReceivedTimestamp(parent context.Context, receivedTimestamp time.Time) context.Context { - if receivedTimestamp.IsZero() { - return parent - } - return WithValue(parent, requestReceivedTimestampKey, receivedTimestamp) -} - -// ReceivedTimestampFrom returns the value of the ReceivedTimestamp key from the specified context. -func ReceivedTimestampFrom(ctx context.Context) (time.Time, bool) { - info, ok := ctx.Value(requestReceivedTimestampKey).(time.Time) - return info, ok -} diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/request/received_time_test.go b/staging/src/k8s.io/apiserver/pkg/endpoints/request/received_time_test.go deleted file mode 100644 index 512ac5928bcf5..0000000000000 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/request/received_time_test.go +++ /dev/null @@ -1,62 +0,0 @@ -/* -Copyright 2020 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 request - -import ( - "context" - "strconv" - "testing" - "time" -) - -func TestWithRequestReceiveTime(t *testing.T) { - tests := []struct { - name string - receivedTimestamp time.Time - expected bool - }{ - { - name: "request received time is set", - receivedTimestamp: time.Now(), - expected: true, - }, - { - name: "request received time is empty", - receivedTimestamp: time.Time{}, - expected: false, - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - parent := context.TODO() - ctx := WithReceivedTimestamp(parent, test.receivedTimestamp) - if ctx == nil { - t.Fatal("WithReceivedTimestamp: expected a non nil context, got nil") - } - - receivedTimestampGot, ok := ReceivedTimestampFrom(ctx) - if test.expected != ok { - t.Errorf("ReceivedTimestampFrom: expected=%s got=%s", strconv.FormatBool(test.expected), strconv.FormatBool(ok)) - } - - if test.receivedTimestamp != receivedTimestampGot { - t.Errorf("ReceivedTimestampFrom: received timestamp expected=%s but got=%s", test.receivedTimestamp, receivedTimestampGot) - } - }) - } -} diff --git a/staging/src/k8s.io/apiserver/pkg/server/config.go b/staging/src/k8s.io/apiserver/pkg/server/config.go index 50d098f1f00dc..12e755458d4db 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/config.go +++ b/staging/src/k8s.io/apiserver/pkg/server/config.go @@ -18,10 +18,8 @@ package server import ( "fmt" - "io/ioutil" "net" "net/http" - "os" goruntime "runtime" "runtime/debug" "sort" @@ -34,7 +32,6 @@ import ( "github.com/go-openapi/spec" "github.com/google/uuid" - corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" @@ -67,8 +64,6 @@ import ( "k8s.io/apiserver/pkg/util/feature" utilflowcontrol "k8s.io/apiserver/pkg/util/flowcontrol" "k8s.io/client-go/informers" - "k8s.io/client-go/kubernetes" - v1 "k8s.io/client-go/kubernetes/typed/core/v1" restclient "k8s.io/client-go/rest" "k8s.io/component-base/logs" "k8s.io/klog/v2" @@ -168,6 +163,8 @@ type Config struct { Serializer runtime.NegotiatedSerializer // OpenAPIConfig will be used in generating OpenAPI spec. This is nil by default. Use DefaultOpenAPIConfig for "working" defaults. OpenAPIConfig *openapicommon.Config + // SkipOpenAPIInstallation avoids installing the OpenAPI handler if set to true. + SkipOpenAPIInstallation bool // RESTOptionsGetter is used to construct RESTStorage types via the generic registry. RESTOptionsGetter genericregistry.RESTOptionsGetter @@ -216,9 +213,6 @@ type Config struct { // If not specify any in flags, then genericapiserver will only enable defaultAPIResourceConfig. MergedResourceConfig *serverstore.ResourceConfig - // EventSink receives events about the life cycle of the API server, e.g. readiness, serving, signals and termination. - EventSink EventSink - //=========================================================================== // values below here are targets for removal //=========================================================================== @@ -231,17 +225,6 @@ type Config struct { // EquivalentResourceRegistry provides information about resources equivalent to a given resource, // and the kind associated with a given resource. As resources are installed, they are registered here. EquivalentResourceRegistry runtime.EquivalentResourceRegistry - - // hasBeenReadyCh is closed when /readyz succeeds for the first time. - hasBeenReadyCh chan struct{} - - // A func that returns whether the server is terminating. This can be nil. - IsTerminating func() bool -} - -// EventSink allows to create events. -type EventSink interface { - Create(event *corev1.Event) (*corev1.Event, error) } type RecommendedConfig struct { @@ -343,8 +326,6 @@ func NewConfig(codecs serializer.CodecFactory) *Config { // Default to treating watch as a long-running operation // Generic API servers have no inherent long-running subresources LongRunningFunc: genericfilters.BasicLongRunningRequestCheck(sets.NewString("watch"), sets.NewString()), - - hasBeenReadyCh: make(chan struct{}), } } @@ -507,10 +488,6 @@ func (c *Config) Complete(informers informers.SharedInformerFactory) CompletedCo c.DiscoveryAddresses = discovery.DefaultAddresses{DefaultAddress: c.ExternalAddress} } - if c.EventSink == nil { - c.EventSink = nullEventSink{} - } - AuthorizeClientBearerToken(c.LoopbackClientConfig, &c.Authentication, &c.Authorization) if c.RequestInfoResolver == nil { @@ -538,58 +515,9 @@ func (c *Config) Complete(informers informers.SharedInformerFactory) CompletedCo // Complete fills in any fields not set that are required to have valid data and can be derived // from other fields. If you're going to `ApplyOptions`, do that first. It's mutating the receiver. func (c *RecommendedConfig) Complete() CompletedConfig { - if c.ClientConfig != nil { - ref, err := eventReference() - if err != nil { - klog.Warningf("Failed to derive event reference, won't create events: %v", err) - c.EventSink = nullEventSink{} - } else { - ns := ref.Namespace - if len(ns) == 0 { - ns = "default" - } - c.EventSink = &v1.EventSinkImpl{ - Interface: kubernetes.NewForConfigOrDie(c.ClientConfig).CoreV1().Events(ns), - } - } - } - return c.Config.Complete(c.SharedInformerFactory) } -func eventReference() (*corev1.ObjectReference, error) { - ns := os.Getenv("POD_NAMESPACE") - pod := os.Getenv("POD_NAME") - if len(ns) == 0 && len(pod) > 0 { - serviceAccountNamespaceFile := "/var/run/secrets/kubernetes.io/serviceaccount/namespace" - if _, err := os.Stat(serviceAccountNamespaceFile); err == nil { - bs, err := ioutil.ReadFile(serviceAccountNamespaceFile) - if err != nil { - return nil, err - } - ns = string(bs) - } - } - if len(ns) == 0 { - pod = "" - ns = "kube-system" - } - if len(pod) == 0 { - return &corev1.ObjectReference{ - Kind: "Namespace", - Name: ns, - APIVersion: "v1", - }, nil - } - - return &corev1.ObjectReference{ - Kind: "Pod", - Namespace: ns, - Name: pod, - APIVersion: "v1", - }, nil -} - // New creates a new server which logically combines the handling chain with the passed server. // name is used to differentiate for logging. The handler chain in particular can be difficult as it starts delgating. // delegationTarget may not be nil. @@ -631,7 +559,8 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G listedPathProvider: apiServerHandler, - openAPIConfig: c.OpenAPIConfig, + openAPIConfig: c.OpenAPIConfig, + skipOpenAPIInstallation: c.SkipOpenAPIInstallation, postStartHooks: map[string]postStartHookEntry{}, preShutdownHooks: map[string]preShutdownHookEntry{}, @@ -641,23 +570,13 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G livezChecks: c.LivezChecks, readyzChecks: c.ReadyzChecks, readinessStopCh: make(chan struct{}), - hasBeenReadyCh: c.hasBeenReadyCh, livezGracePeriod: c.LivezGracePeriod, DiscoveryGroupManager: discovery.NewRootAPIsHandler(c.DiscoveryAddresses, c.Serializer), maxRequestBodyBytes: c.MaxRequestBodyBytes, livezClock: clock.RealClock{}, - - eventSink: c.EventSink, - } - - ref, err := eventReference() - if err != nil { - klog.Warningf("Failed to derive event reference, won't create events: %v", err) - c.EventSink = nullEventSink{} } - s.eventRef = ref for { if c.JSONPatchMaxCopyBytes <= 0 { @@ -722,6 +641,31 @@ func (c completedConfig) New(name string, delegationTarget DelegationTarget) (*G klog.V(3).Infof("Not requested to run hook %s", priorityAndFairnessConfigConsumerHookName) } + // Add PostStartHooks for maintaining the watermarks for the Priority-and-Fairness and the Max-in-Flight filters. + if c.FlowControl != nil { + const priorityAndFairnessFilterHookName = "priority-and-fairness-filter" + if !s.isPostStartHookRegistered(priorityAndFairnessFilterHookName) { + err := s.AddPostStartHook(priorityAndFairnessFilterHookName, func(context PostStartHookContext) error { + genericfilters.StartPriorityAndFairnessWatermarkMaintenance(context.StopCh) + return nil + }) + if err != nil { + return nil, err + } + } + } else { + const maxInFlightFilterHookName = "max-in-flight-filter" + if !s.isPostStartHookRegistered(maxInFlightFilterHookName) { + err := s.AddPostStartHook(maxInFlightFilterHookName, func(context PostStartHookContext) error { + genericfilters.StartMaxInFlightWatermarkMaintenance(context.StopCh) + return nil + }) + if err != nil { + return nil, err + } + } + } + for _, delegateCheck := range delegationTarget.HealthzChecks() { skip := false for _, existingCheck := range c.HealthzChecks { @@ -767,8 +711,6 @@ func DefaultBuildHandlerChain(apiHandler http.Handler, c *Config) http.Handler { handler = genericfilters.WithCORS(handler, c.CorsAllowedOriginList, nil, nil, nil, "true") handler = genericfilters.WithTimeoutForNonLongRunningRequests(handler, c.LongRunningFunc, c.RequestTimeout) handler = genericfilters.WithWaitGroup(handler, c.LongRunningFunc, c.HandlerChainWaitGroup) - handler = WithNonReadyRequestLogging(handler, c.hasBeenReadyCh) - handler = WithLateConnectionFilter(handler) handler = genericapifilters.WithRequestInfo(handler, c.RequestInfoResolver) if c.SecureServing != nil && !c.SecureServing.DisableHTTP2 && c.GoawayChance > 0 { handler = genericfilters.WithProbabilisticGoaway(handler, c.GoawayChance) @@ -776,7 +718,6 @@ func DefaultBuildHandlerChain(apiHandler http.Handler, c *Config) http.Handler { handler = genericapifilters.WithAuditAnnotations(handler, c.AuditBackend, c.AuditPolicyChecker) handler = genericapifilters.WithWarningRecorder(handler) handler = genericapifilters.WithCacheControl(handler) - handler = genericapifilters.WithRequestReceivedTimestamp(handler) handler = genericfilters.WithPanicRecovery(handler, c.IsTerminating, c.RequestInfoResolver) return handler } @@ -870,14 +811,6 @@ func AuthorizeClientBearerToken(loopback *restclient.Config, authn *Authenticati tokenAuthenticator := authenticatorfactory.NewFromTokens(tokens) authn.Authenticator = authenticatorunion.New(tokenAuthenticator, authn.Authenticator) - if !skipSystemMastersAuthorizer { - tokenAuthorizer := authorizerfactory.NewPrivilegedGroups(user.SystemPrivilegedGroup) - authz.Authorizer = authorizerunion.New(tokenAuthorizer, authz.Authorizer) - } -} - -type nullEventSink struct{} - -func (nullEventSink) Create(event *corev1.Event) (*corev1.Event, error) { - return nil, nil + tokenAuthorizer := authorizerfactory.NewPrivilegedGroups(user.SystemPrivilegedGroup) + authz.Authorizer = authorizerunion.New(tokenAuthorizer, authz.Authorizer) } diff --git a/staging/src/k8s.io/apiserver/pkg/server/config_test.go b/staging/src/k8s.io/apiserver/pkg/server/config_test.go index 1cb1b93a48450..ae5e23c084a5b 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/config_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/config_test.go @@ -28,7 +28,6 @@ import ( "time" "github.com/google/go-cmp/cmp" - "k8s.io/apimachinery/pkg/util/json" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/waitgroup" @@ -156,6 +155,7 @@ func TestNewWithDelegate(t *testing.T) { "/healthz/ping", "/healthz/poststarthook/delegate-post-start-hook", "/healthz/poststarthook/generic-apiserver-start-informers", + "/healthz/poststarthook/max-in-flight-filter", "/healthz/poststarthook/wrapping-post-start-hook", "/healthz/wrapping-health", "/livez", @@ -164,6 +164,7 @@ func TestNewWithDelegate(t *testing.T) { "/livez/ping", "/livez/poststarthook/delegate-post-start-hook", "/livez/poststarthook/generic-apiserver-start-informers", + "/livez/poststarthook/max-in-flight-filter", "/livez/poststarthook/wrapping-post-start-hook", "/metrics", "/readyz", @@ -173,6 +174,7 @@ func TestNewWithDelegate(t *testing.T) { "/readyz/ping", "/readyz/poststarthook/delegate-post-start-hook", "/readyz/poststarthook/generic-apiserver-start-informers", + "/readyz/poststarthook/max-in-flight-filter", "/readyz/poststarthook/wrapping-post-start-hook", "/readyz/shutdown", } @@ -182,6 +184,7 @@ func TestNewWithDelegate(t *testing.T) { [-]wrapping-health failed: reason withheld [-]delegate-health failed: reason withheld [+]poststarthook/generic-apiserver-start-informers ok +[+]poststarthook/max-in-flight-filter ok [+]poststarthook/delegate-post-start-hook ok [+]poststarthook/wrapping-post-start-hook ok healthz check failed @@ -266,7 +269,6 @@ func TestAuthenticationAuditAnnotationsDefaultChain(t *testing.T) { return &authenticator.Response{User: &user.DefaultInfo{}}, true, nil }) backend := &testBackend{} - c := &Config{ Authentication: AuthenticationInfo{Authenticator: authn}, AuditBackend: backend, diff --git a/staging/src/k8s.io/apiserver/pkg/server/filters/BUILD b/staging/src/k8s.io/apiserver/pkg/server/filters/BUILD index 8b305b7363e14..6c5dc00cb1293 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/filters/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/filters/BUILD @@ -19,26 +19,13 @@ go_test( deps = [ "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/apis/flowcontrol/bootstrap:go_default_library", "//staging/src/k8s.io/apiserver/pkg/authentication/user:go_default_library", "//staging/src/k8s.io/apiserver/pkg/endpoints/filters:go_default_library", "//staging/src/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/server/mux:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flowcontrol:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/flowcontrol/metrics:go_default_library", - "//staging/src/k8s.io/client-go/informers:go_default_library", - "//staging/src/k8s.io/client-go/kubernetes:go_default_library", - "//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library", - "//staging/src/k8s.io/component-base/metrics/legacyregistry:go_default_library", - "//staging/src/k8s.io/component-base/metrics/testutil:go_default_library", "//vendor/golang.org/x/net/http2:go_default_library", "//vendor/k8s.io/klog/v2:go_default_library", ], diff --git a/staging/src/k8s.io/apiserver/pkg/server/filters/maxinflight.go b/staging/src/k8s.io/apiserver/pkg/server/filters/maxinflight.go index 946ab4e605de9..e873351c70bf7 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/filters/maxinflight.go +++ b/staging/src/k8s.io/apiserver/pkg/server/filters/maxinflight.go @@ -41,6 +41,10 @@ const ( // the metrics tracks maximal value over period making this // longer will increase the metric value. inflightUsageMetricUpdatePeriod = time.Second + + // How often to run maintenance on observations to ensure + // that they do not fall too far behind. + observationMaintenancePeriod = 10 * time.Second ) var nonMutatingRequestVerbs = sets.NewString("get", "list", "watch") @@ -88,23 +92,29 @@ var watermark = &requestWatermark{ mutatingObserver: fcmetrics.ReadWriteConcurrencyObserverPairGenerator.Generate(1, 1, []string{metrics.MutatingKind}).RequestsExecuting, } -func startRecordingUsage(watermark *requestWatermark) { - go func() { - wait.Forever(func() { - watermark.lock.Lock() - readOnlyWatermark := watermark.readOnlyWatermark - mutatingWatermark := watermark.mutatingWatermark - watermark.readOnlyWatermark = 0 - watermark.mutatingWatermark = 0 - watermark.lock.Unlock() - - metrics.UpdateInflightRequestMetrics(watermark.phase, readOnlyWatermark, mutatingWatermark) - }, inflightUsageMetricUpdatePeriod) - }() +// startWatermarkMaintenance starts the goroutines to observe and maintain the specified watermark. +func startWatermarkMaintenance(watermark *requestWatermark, stopCh <-chan struct{}) { + // Periodically update the inflight usage metric. + go wait.Until(func() { + watermark.lock.Lock() + readOnlyWatermark := watermark.readOnlyWatermark + mutatingWatermark := watermark.mutatingWatermark + watermark.readOnlyWatermark = 0 + watermark.mutatingWatermark = 0 + watermark.lock.Unlock() + + metrics.UpdateInflightRequestMetrics(watermark.phase, readOnlyWatermark, mutatingWatermark) + }, inflightUsageMetricUpdatePeriod, stopCh) + + // Periodically observe the watermarks. This is done to ensure that they do not fall too far behind. When they do + // fall too far behind, then there is a long delay in responding to the next request received while the observer + // catches back up. + go wait.Until(func() { + watermark.readOnlyObserver.Add(0) + watermark.mutatingObserver.Add(0) + }, observationMaintenancePeriod, stopCh) } -var startOnce sync.Once - // WithMaxInFlightLimit limits the number of in-flight requests to buffer size of the passed in channel. func WithMaxInFlightLimit( handler http.Handler, @@ -112,7 +122,6 @@ func WithMaxInFlightLimit( mutatingLimit int, longRunningRequestCheck apirequest.LongRunningRequestCheck, ) http.Handler { - startOnce.Do(func() { startRecordingUsage(watermark) }) if nonMutatingLimit == 0 && mutatingLimit == 0 { return handler } @@ -198,6 +207,12 @@ func WithMaxInFlightLimit( }) } +// StartMaxInFlightWatermarkMaintenance starts the goroutines to observe and maintain watermarks for max-in-flight +// requests. +func StartMaxInFlightWatermarkMaintenance(stopCh <-chan struct{}) { + startWatermarkMaintenance(watermark, stopCh) +} + func tooManyRequests(req *http.Request, w http.ResponseWriter) { // Return a 429 status indicating "Too Many Requests" w.Header().Set("Retry-After", retryAfter) diff --git a/staging/src/k8s.io/apiserver/pkg/server/filters/maxinflight_test.go b/staging/src/k8s.io/apiserver/pkg/server/filters/maxinflight_test.go index c3b4c53d35e71..3bbcace923043 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/filters/maxinflight_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/filters/maxinflight_test.go @@ -17,6 +17,7 @@ limitations under the License. package filters import ( + "context" "fmt" "net/http" "net/http/httptest" @@ -103,6 +104,10 @@ func TestMaxInFlightNonMutating(t *testing.T) { server := createMaxInflightServer(calls, block, &waitForCalls, &waitForCallsMutex, AllowedNonMutatingInflightRequestsNo, 1) defer server.Close() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + StartMaxInFlightWatermarkMaintenance(ctx.Done()) + // These should hang, but not affect accounting. use a query param match for i := 0; i < AllowedNonMutatingInflightRequestsNo; i++ { // These should hang waiting on block... @@ -183,6 +188,10 @@ func TestMaxInFlightMutating(t *testing.T) { server := createMaxInflightServer(calls, block, &waitForCalls, &waitForCallsMutex, 1, AllowedMutatingInflightRequestsNo) defer server.Close() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + StartMaxInFlightWatermarkMaintenance(ctx.Done()) + // These should hang and be accounted, i.e. saturate the server for i := 0; i < AllowedMutatingInflightRequestsNo; i++ { // These should hang waiting on block... @@ -275,6 +284,10 @@ func TestMaxInFlightSkipsMasters(t *testing.T) { server := createMaxInflightServer(calls, block, &waitForCalls, &waitForCallsMutex, 1, AllowedMutatingInflightRequestsNo) defer server.Close() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + StartMaxInFlightWatermarkMaintenance(ctx.Done()) + // These should hang and be accounted, i.e. saturate the server for i := 0; i < AllowedMutatingInflightRequestsNo; i++ { // These should hang waiting on block... diff --git a/staging/src/k8s.io/apiserver/pkg/server/filters/priority-and-fairness.go b/staging/src/k8s.io/apiserver/pkg/server/filters/priority-and-fairness.go index 339b1e2c59bb3..ee182bf04b12b 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/filters/priority-and-fairness.go +++ b/staging/src/k8s.io/apiserver/pkg/server/filters/priority-and-fairness.go @@ -76,10 +76,6 @@ func WithPriorityAndFairness( klog.Warningf("priority and fairness support not found, skipping") return handler } - startOnce.Do(func() { - startRecordingUsage(watermark) - startRecordingUsage(waitingMark) - }) return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { ctx := r.Context() requestInfo, ok := apirequest.RequestInfoFrom(ctx) @@ -150,3 +146,10 @@ func WithPriorityAndFairness( }) } + +// StartPriorityAndFairnessWatermarkMaintenance starts the goroutines to observe and maintain watermarks for +// priority-and-fairness requests. +func StartPriorityAndFairnessWatermarkMaintenance(stopCh <-chan struct{}) { + startWatermarkMaintenance(watermark, stopCh) + startWatermarkMaintenance(waitingMark, stopCh) +} diff --git a/staging/src/k8s.io/apiserver/pkg/server/filters/timeout_test.go b/staging/src/k8s.io/apiserver/pkg/server/filters/timeout_test.go index 75c2b92f7bc5e..a4086960884a6 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/filters/timeout_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/filters/timeout_test.go @@ -99,7 +99,7 @@ func TestTimeout(t *testing.T) { }), func(w http.ResponseWriter, req *http.Request, err interface{}) { gotPanic <- err http.Error(w, "This request caused apiserver to panic. Look in the logs for details.", http.StatusInternalServerError) - }, nil), + }), ) defer ts.Close() diff --git a/staging/src/k8s.io/apiserver/pkg/server/filters/wrap.go b/staging/src/k8s.io/apiserver/pkg/server/filters/wrap.go index f780c8b48ab1f..24f40ffa7fdc0 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/filters/wrap.go +++ b/staging/src/k8s.io/apiserver/pkg/server/filters/wrap.go @@ -56,11 +56,11 @@ func WithPanicRecovery(handler http.Handler, isTerminating func() bool, resolver } http.Error(w, "This request caused apiserver to panic. Look in the logs for details.", http.StatusInternalServerError) klog.Errorf("apiserver panic'd on %v %v", req.Method, req.RequestURI) - }, isTerminating) + }) } -func withPanicRecovery(handler http.Handler, crashHandler func(http.ResponseWriter, *http.Request, interface{}), isTerminating func() bool) http.Handler { - handler = httplog.WithLogging(handler, httplog.DefaultStacktracePred, isTerminating) +func withPanicRecovery(handler http.Handler, crashHandler func(http.ResponseWriter, *http.Request, interface{})) http.Handler { + handler = httplog.WithLogging(handler, httplog.DefaultStacktracePred) return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { defer runtime.HandleCrash(func(err interface{}) { crashHandler(w, req, err) diff --git a/staging/src/k8s.io/apiserver/pkg/server/genericapiserver.go b/staging/src/k8s.io/apiserver/pkg/server/genericapiserver.go index 7da219f49359c..f2f3b765e07cc 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/genericapiserver.go +++ b/staging/src/k8s.io/apiserver/pkg/server/genericapiserver.go @@ -19,7 +19,6 @@ package server import ( "fmt" "net/http" - "os" gpath "path" "strings" "sync" @@ -28,7 +27,6 @@ import ( systemd "github.com/coreos/go-systemd/daemon" "github.com/go-openapi/spec" - corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" @@ -131,8 +129,14 @@ type GenericAPIServer struct { // Enable swagger and/or OpenAPI if these configs are non-nil. openAPIConfig *openapicommon.Config + // SkipOpenAPIInstallation indicates not to install the OpenAPI handler + // during PrepareRun. + // Set this to true when the specific API Server has its own OpenAPI handler + // (e.g. kube-aggregator) + skipOpenAPIInstallation bool + // OpenAPIVersionedService controls the /openapi/v2 endpoint, and can be used to update the served spec. - // It is set during PrepareRun. + // It is set during PrepareRun if `openAPIConfig` is non-nil unless `skipOpenAPIInstallation` is true. OpenAPIVersionedService *handler.OpenAPIService // StaticOpenAPISpec is the spec derived from the restful container endpoints. @@ -168,8 +172,6 @@ type GenericAPIServer struct { // the readiness stop channel is used to signal that the apiserver has initiated a shutdown sequence, this // will cause readyz to return unhealthy. readinessStopCh chan struct{} - // hasBeenReadyCh is closed when /readyz succeeds for the first time. - hasBeenReadyCh chan struct{} // auditing. The backend is started after the server starts listening. AuditBackend audit.Backend @@ -201,10 +203,6 @@ type GenericAPIServer struct { // The limit on the request body size that would be accepted and decoded in a write request. // 0 means no limit. maxRequestBodyBytes int64 - - // EventSink creates events. - eventSink EventSink - eventRef *corev1.ObjectReference } // DelegationTarget is an interface which allows for composition of API servers with top level handling that works @@ -291,7 +289,7 @@ type preparedGenericAPIServer struct { func (s *GenericAPIServer) PrepareRun() preparedGenericAPIServer { s.delegationTarget.PrepareRun() - if s.openAPIConfig != nil { + if s.openAPIConfig != nil && !s.skipOpenAPIInstallation { s.OpenAPIVersionedService, s.StaticOpenAPISpec = routes.OpenAPI{ Config: s.openAPIConfig, }.Install(s.Handler.GoRestfulContainer, s.Handler.NonGoRestfulMux) @@ -334,41 +332,15 @@ func (s preparedGenericAPIServer) Run(stopCh <-chan struct{}) error { // and stop sending traffic to this server. close(s.readinessStopCh) - s.Eventf(corev1.EventTypeNormal, "TerminationStart", "Received signal to terminate, becoming unready, but keeping serving") - time.Sleep(s.ShutdownDelayDuration) - - s.Eventf(corev1.EventTypeNormal, "TerminationMinimalShutdownDurationFinished", "The minimal shutdown duration of %v finished", s.ShutdownDelayDuration) }() - lateStopCh := make(chan struct{}) - if s.ShutdownDelayDuration > 0 { - go func() { - defer close(lateStopCh) - - <-stopCh - - time.Sleep(s.ShutdownDelayDuration * 8 / 10) - }() - } - - s.SecureServingInfo.Listener = &terminationLoggingListener{ - Listener: s.SecureServingInfo.Listener, - lateStopCh: lateStopCh, - } - unexpectedRequestsEventf.Store(s.Eventf) - // close socket after delayed stopCh stoppedCh, err := s.NonBlockingRun(delayedStopCh) if err != nil { return err } - go func() { - <-delayedStopCh - s.Eventf(corev1.EventTypeNormal, "TerminationStoppedServing", "Server has stopped listening") - }() - <-stopCh // run shutdown hooks directly. This includes deregistering from the kubernetes endpoint in case of kube-apiserver. @@ -376,7 +348,6 @@ func (s preparedGenericAPIServer) Run(stopCh <-chan struct{}) error { if err != nil { return err } - s.Eventf(corev1.EventTypeNormal, "TerminationPreShutdownHooksFinished", "All pre-shutdown hooks have been finished") // wait for the delayed stopCh before closing the handler chain (it rejects everything after Wait has been called). <-delayedStopCh @@ -385,7 +356,6 @@ func (s preparedGenericAPIServer) Run(stopCh <-chan struct{}) error { // Wait for all requests to finish, which are bounded by the RequestTimeout variable. s.HandlerChainWaitGroup.Wait() - s.Eventf(corev1.EventTypeNormal, "TerminationGracefulTerminationFinished", "All pending requests processed") return nil } @@ -640,33 +610,3 @@ func getResourceNamesForGroup(apiPrefix string, apiGroupInfo *APIGroupInfo, path return resourceNames, nil } - -// Eventf creates an event with the API server as source, either in default namespace against default namespace, or -// if POD_NAME/NAMESPACE are set against that pod. -func (s *GenericAPIServer) Eventf(eventType, reason, messageFmt string, args ...interface{}) { - t := metav1.Time{Time: time.Now()} - host, _ := os.Hostname() // expicitly ignore error. Empty host is fine - - ref := *s.eventRef - if len(ref.Namespace) == 0 { - ref.Namespace = "default" // TODO: event broadcaster sets event ns to default. We have to match. Odd. - } - - e := &corev1.Event{ - ObjectMeta: metav1.ObjectMeta{ - Name: fmt.Sprintf("%v.%x", ref.Name, t.UnixNano()), - Namespace: ref.Namespace, - }, - InvolvedObject: ref, - Reason: reason, - Message: fmt.Sprintf(messageFmt, args...), - Type: eventType, - Source: corev1.EventSource{Component: "apiserver", Host: host}, - } - - klog.V(2).Infof("Event(%#v): type: '%v' reason: '%v' %v", e.InvolvedObject, e.Type, e.Reason, e.Message) - - if _, err := s.eventSink.Create(e); err != nil { - klog.Warningf("failed to create event %s/%s: %v", e.Namespace, e.Name, err) - } -} diff --git a/staging/src/k8s.io/apiserver/pkg/server/healthz.go b/staging/src/k8s.io/apiserver/pkg/server/healthz.go index ff8dd2022962b..645886949bb70 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/healthz.go +++ b/staging/src/k8s.io/apiserver/pkg/server/healthz.go @@ -101,10 +101,7 @@ func (s *GenericAPIServer) installReadyz() { s.readyzLock.Lock() defer s.readyzLock.Unlock() s.readyzChecksInstalled = true - healthz.InstallReadyzHandlerWithHealthyFunc(s.Handler.NonGoRestfulMux, func() { - // note: InstallReadyzHandlerWithHealthyFunc guarantees that this is called only once - close(s.hasBeenReadyCh) - }, s.readyzChecks...) + healthz.InstallReadyzHandler(s.Handler.NonGoRestfulMux, s.readyzChecks...) } // installLivez creates the livez endpoint for this server. diff --git a/staging/src/k8s.io/apiserver/pkg/server/healthz/healthz.go b/staging/src/k8s.io/apiserver/pkg/server/healthz/healthz.go index f5eae360fbb3c..b2d0007f54cb4 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/healthz/healthz.go +++ b/staging/src/k8s.io/apiserver/pkg/server/healthz/healthz.go @@ -140,12 +140,6 @@ func InstallReadyzHandler(mux mux, checks ...HealthChecker) { InstallPathHandler(mux, "/readyz", checks...) } -// InstallReadyzHandlerWithHealthyFunc is like InstallReadyzHandler, but in addition call firstTimeReady -// the first time /readyz succeeds. -func InstallReadyzHandlerWithHealthyFunc(mux mux, firstTimeReady func(), checks ...HealthChecker) { - InstallPathHandlerWithHealthyFunc(mux, "/readyz", firstTimeReady, checks...) -} - // InstallLivezHandler registers handlers for liveness checking on the path // "/livez" to mux. *All handlers* for mux must be specified in // exactly one call to InstallHandler. Calling InstallHandler more @@ -160,12 +154,6 @@ func InstallLivezHandler(mux mux, checks ...HealthChecker) { // InstallPathHandler more than once for the same path and mux will // result in a panic. func InstallPathHandler(mux mux, path string, checks ...HealthChecker) { - InstallPathHandlerWithHealthyFunc(mux, path, nil, checks...) -} - -// InstallPathHandlerWithHealthyFunc is like InstallPathHandler, but calls firstTimeHealthy exactly once -// when the handler succeeds for the first time. -func InstallPathHandlerWithHealthyFunc(mux mux, path string, firstTimeHealthy func(), checks ...HealthChecker) { if len(checks) == 0 { klog.V(5).Info("No default health checks specified. Installing the ping handler.") checks = []HealthChecker{PingHealthz} @@ -173,7 +161,6 @@ func InstallPathHandlerWithHealthyFunc(mux mux, path string, firstTimeHealthy fu klog.V(5).Infof("Installing health checkers for (%v): %v", path, formatQuoted(checkerNames(checks...)...)) - name := strings.Split(strings.TrimPrefix(path, "/"), "/")[0] mux.Handle(path, metrics.InstrumentHandlerFunc("GET", /* group = */ "", @@ -184,7 +171,7 @@ func InstallPathHandlerWithHealthyFunc(mux mux, path string, firstTimeHealthy fu /* component = */ "", /* deprecated */ false, /* removedRelease */ "", - handleRootHealth(name, firstTimeHealthy, checks...))) + handleRootHealthz(checks...))) for _, check := range checks { mux.Handle(fmt.Sprintf("%s/%v", path, check.Name()), adaptCheckToHandler(check.Check)) } @@ -220,11 +207,9 @@ func getExcludedChecks(r *http.Request) sets.String { return sets.NewString() } -// handleRootHealth returns an http.HandlerFunc that serves the provided checks. -func handleRootHealth(name string, firstTimeHealthy func(), checks ...HealthChecker) http.HandlerFunc { - var notifyOnce sync.Once - - return func(w http.ResponseWriter, r *http.Request) { +// handleRootHealthz returns an http.HandlerFunc that serves the provided checks. +func handleRootHealthz(checks ...HealthChecker) http.HandlerFunc { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { excluded := getExcludedChecks(r) // failedVerboseLogOutput is for output to the log. It indicates detailed failed output information for the log. var failedVerboseLogOutput bytes.Buffer @@ -255,27 +240,21 @@ func handleRootHealth(name string, firstTimeHealthy func(), checks ...HealthChec } // always be verbose on failure if len(failedChecks) > 0 { - klog.V(2).Infof("%s check failed: %s\n%v", strings.Join(failedChecks, ","), name, failedVerboseLogOutput.String()) - http.Error(httplog.Unlogged(r, w), fmt.Sprintf("%s%s check failed", individualCheckOutput.String(), name), http.StatusInternalServerError) + klog.V(2).Infof("healthz check failed: %s\n%v", strings.Join(failedChecks, ","), failedVerboseLogOutput.String()) + http.Error(httplog.Unlogged(r, w), fmt.Sprintf("%shealthz check failed", individualCheckOutput.String()), http.StatusInternalServerError) return } w.Header().Set("Content-Type", "text/plain; charset=utf-8") w.Header().Set("X-Content-Type-Options", "nosniff") - - // signal first time this is healthy - if firstTimeHealthy != nil { - notifyOnce.Do(firstTimeHealthy) - } - if _, found := r.URL.Query()["verbose"]; !found { fmt.Fprint(w, "ok") return } individualCheckOutput.WriteTo(w) - fmt.Fprintf(w, "%s check passed\n", name) - } + fmt.Fprint(w, "healthz check passed\n") + }) } // adaptCheckToHandler returns an http.HandlerFunc that serves the provided checks. diff --git a/staging/src/k8s.io/apiserver/pkg/server/healthz/healthz_test.go b/staging/src/k8s.io/apiserver/pkg/server/healthz/healthz_test.go index f3fb11d3e3e02..8356f001fc0f1 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/healthz/healthz_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/healthz/healthz_test.go @@ -94,24 +94,24 @@ func TestInstallPathHandler(t *testing.T) { } -func testMultipleChecks(path, name string, t *testing.T) { +func testMultipleChecks(path string, t *testing.T) { tests := []struct { path string expectedResponse string expectedStatus int addBadCheck bool }{ - {"?verbose", fmt.Sprintf("[+]ping ok\n%s check passed\n", name), http.StatusOK, false}, + {"?verbose", "[+]ping ok\nhealthz check passed\n", http.StatusOK, false}, {"?exclude=dontexist", "ok", http.StatusOK, false}, {"?exclude=bad", "ok", http.StatusOK, true}, - {"?verbose=true&exclude=bad", fmt.Sprintf("[+]ping ok\n[+]bad excluded: ok\n%s check passed\n", name), http.StatusOK, true}, - {"?verbose=true&exclude=dontexist", fmt.Sprintf("[+]ping ok\nwarn: some health checks cannot be excluded: no matches for \"dontexist\"\n%s check passed\n", name), http.StatusOK, false}, + {"?verbose=true&exclude=bad", "[+]ping ok\n[+]bad excluded: ok\nhealthz check passed\n", http.StatusOK, true}, + {"?verbose=true&exclude=dontexist", "[+]ping ok\nwarn: some health checks cannot be excluded: no matches for \"dontexist\"\nhealthz check passed\n", http.StatusOK, false}, {"/ping", "ok", http.StatusOK, false}, {"", "ok", http.StatusOK, false}, - {"?verbose", fmt.Sprintf("[+]ping ok\n[-]bad failed: reason withheld\n%s check failed\n", name), http.StatusInternalServerError, true}, + {"?verbose", "[+]ping ok\n[-]bad failed: reason withheld\nhealthz check failed\n", http.StatusInternalServerError, true}, {"/ping", "ok", http.StatusOK, true}, {"/bad", "internal server error: this will fail\n", http.StatusInternalServerError, true}, - {"", fmt.Sprintf("[+]ping ok\n[-]bad failed: reason withheld\n%s check failed\n", name), http.StatusInternalServerError, true}, + {"", "[+]ping ok\n[-]bad failed: reason withheld\nhealthz check failed\n", http.StatusInternalServerError, true}, } for i, test := range tests { @@ -148,11 +148,11 @@ func testMultipleChecks(path, name string, t *testing.T) { } func TestMultipleChecks(t *testing.T) { - testMultipleChecks("", "healthz", t) + testMultipleChecks("", t) } func TestMultiplePathChecks(t *testing.T) { - testMultipleChecks("/ready", "ready", t) + testMultipleChecks("/ready", t) } func TestCheckerNames(t *testing.T) { diff --git a/staging/src/k8s.io/apiserver/pkg/server/httplog/httplog.go b/staging/src/k8s.io/apiserver/pkg/server/httplog/httplog.go index f991fd3835c9a..4cb5306672bca 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/httplog/httplog.go +++ b/staging/src/k8s.io/apiserver/pkg/server/httplog/httplog.go @@ -53,7 +53,6 @@ type respLogger struct { statusStack string addedInfo string startTime time.Time - isTerminating bool captureErrorOutput bool @@ -77,20 +76,16 @@ func DefaultStacktracePred(status int) bool { } // WithLogging wraps the handler with logging. -func WithLogging(handler http.Handler, pred StacktracePred, isTerminatingFn func() bool) http.Handler { +func WithLogging(handler http.Handler, pred StacktracePred) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { ctx := req.Context() if old := respLoggerFromContext(req); old != nil { panic("multiple WithLogging calls!") } - isTerminating := false - if isTerminatingFn != nil { - isTerminating = isTerminatingFn() - } - rl := newLogged(req, w).StacktraceWhen(pred).IsTerminating(isTerminating) + rl := newLogged(req, w).StacktraceWhen(pred) req = req.WithContext(context.WithValue(ctx, respLoggerContextKey, rl)) - if klog.V(3).Enabled() || (rl.isTerminating && klog.V(1).Enabled()) { + if klog.V(3).Enabled() { defer func() { klog.InfoS("HTTP", rl.LogArgs()...) }() } handler.ServeHTTP(rl, req) @@ -142,12 +137,6 @@ func (rl *respLogger) StacktraceWhen(pred StacktracePred) *respLogger { return rl } -// IsTerminating informs the logger that the server is terminating. -func (rl *respLogger) IsTerminating(is bool) *respLogger { - rl.isTerminating = is - return rl -} - // StatusIsNot returns a StacktracePred which will cause stacktraces to be logged // for any status *not* in the given list. func StatusIsNot(statuses ...int) StacktracePred { diff --git a/staging/src/k8s.io/apiserver/pkg/server/httplog/httplog_test.go b/staging/src/k8s.io/apiserver/pkg/server/httplog/httplog_test.go index 2fa3e329a9e7e..62f5ed76de8da 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/httplog/httplog_test.go +++ b/staging/src/k8s.io/apiserver/pkg/server/httplog/httplog_test.go @@ -63,7 +63,7 @@ func TestWithLogging(t *testing.T) { } var handler http.Handler handler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {}) - handler = WithLogging(WithLogging(handler, DefaultStacktracePred, nil), DefaultStacktracePred, nil) + handler = WithLogging(WithLogging(handler, DefaultStacktracePred), DefaultStacktracePred) func() { defer func() { @@ -92,7 +92,7 @@ func TestLogOf(t *testing.T) { } }) if makeLogger { - handler = WithLogging(handler, DefaultStacktracePred, nil) + handler = WithLogging(handler, DefaultStacktracePred) want = "*httplog.respLogger" } else { want = "*httplog.passthroughLogger" @@ -120,7 +120,7 @@ func TestUnlogged(t *testing.T) { } }) if makeLogger { - handler = WithLogging(handler, DefaultStacktracePred, nil) + handler = WithLogging(handler, DefaultStacktracePred) } handler.ServeHTTP(origWriter, req) diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/authorization.go b/staging/src/k8s.io/apiserver/pkg/server/options/authorization.go index 67cb2c66c6cf0..818228954e663 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/authorization.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/authorization.go @@ -198,10 +198,5 @@ func (s *DelegatingAuthorizationOptions) getClient() (kubernetes.Interface, erro clientConfig.Burst = 400 clientConfig.Timeout = s.ClientTimeout - // make the client use protobuf - protoConfig := rest.CopyConfig(clientConfig) - protoConfig.AcceptContentTypes = "application/vnd.kubernetes.protobuf,application/json" - protoConfig.ContentType = "application/vnd.kubernetes.protobuf" - - return kubernetes.NewForConfig(protoConfig) + return kubernetes.NewForConfig(clientConfig) } diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/etcd.go b/staging/src/k8s.io/apiserver/pkg/server/options/etcd.go index 192edeb6b2176..4ed7d3d53595b 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/etcd.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/etcd.go @@ -180,6 +180,9 @@ func (s *EtcdOptions) AddFlags(fs *pflag.FlagSet) { fs.DurationVar(&s.StorageConfig.DBMetricPollInterval, "etcd-db-metric-poll-interval", s.StorageConfig.DBMetricPollInterval, "The interval of requests to poll etcd and update metric. 0 disables the metric collection") + + fs.Int64Var(&s.StorageConfig.LeaseManagerConfig.ReuseDurationSeconds, "lease-reuse-duration-seconds", s.StorageConfig.LeaseManagerConfig.ReuseDurationSeconds, + "The time in seconds that each lease is reused. A lower value could avoid large number of objects reusing the same lease. Notice that a too small value may cause performance problems at storage layer.") } func (s *EtcdOptions) ApplyTo(c *server.Config) error { diff --git a/staging/src/k8s.io/apiserver/pkg/server/patch.go b/staging/src/k8s.io/apiserver/pkg/server/patch.go deleted file mode 100644 index 75d9a5bfc8d9f..0000000000000 --- a/staging/src/k8s.io/apiserver/pkg/server/patch.go +++ /dev/null @@ -1,8 +0,0 @@ -package server - -var skipSystemMastersAuthorizer = false - -// SkipSystemMastersAuthorizer disable implicitly added system/master authz, and turn it into another authz mode "SystemMasters", to be added via authorization-mode -func SkipSystemMastersAuthorizer() { - skipSystemMastersAuthorizer = true -} diff --git a/staging/src/k8s.io/apiserver/pkg/server/patch_genericapiserver.go b/staging/src/k8s.io/apiserver/pkg/server/patch_genericapiserver.go deleted file mode 100644 index bb798b198ba5a..0000000000000 --- a/staging/src/k8s.io/apiserver/pkg/server/patch_genericapiserver.go +++ /dev/null @@ -1,151 +0,0 @@ -/* -Copyright 2020 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 server - -import ( - "net" - "net/http" - "strings" - "sync" - goatomic "sync/atomic" - - "go.uber.org/atomic" - - corev1 "k8s.io/api/core/v1" - "k8s.io/klog/v2" -) - -// terminationLoggingListener wraps the given listener to mark late connections -// as such, identified by the remote address. In parallel, we have a filter that -// logs bad requests through these connections. We need this filter to get -// access to the http path in order to filter out healthz or readyz probes that -// are allowed at any point during termination. -// -// Connections are late after the lateStopCh has been closed. -type terminationLoggingListener struct { - net.Listener - lateStopCh <-chan struct{} -} - -type eventfFunc func(eventType, reason, messageFmt string, args ...interface{}) - -var ( - lateConnectionRemoteAddrsLock sync.RWMutex - lateConnectionRemoteAddrs = map[string]bool{} - - unexpectedRequestsEventf goatomic.Value -) - -func (l *terminationLoggingListener) Accept() (net.Conn, error) { - c, err := l.Listener.Accept() - if err != nil { - return nil, err - } - - select { - case <-l.lateStopCh: - lateConnectionRemoteAddrsLock.Lock() - defer lateConnectionRemoteAddrsLock.Unlock() - lateConnectionRemoteAddrs[c.RemoteAddr().String()] = true - default: - } - - return c, nil -} - -// WithLateConnectionFilter logs every non-probe request that comes through a late connection identified by remote address. -func WithLateConnectionFilter(handler http.Handler) http.Handler { - var lateRequestReceived atomic.Bool - - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - lateConnectionRemoteAddrsLock.RLock() - late := lateConnectionRemoteAddrs[r.RemoteAddr] - lateConnectionRemoteAddrsLock.RUnlock() - - if late { - if pth := "/" + strings.TrimLeft(r.URL.Path, "/"); pth != "/readyz" && pth != "/healthz" && pth != "/livez" { - if isLocal(r) { - klog.V(4).Infof("Loopback request to %q (user agent %q) through connection created very late in the graceful termination process (more than 80%% has passed). This client probably does not watch /readyz and might get failures when termination is over.", r.URL.Path, r.UserAgent()) - } else { - klog.Warningf("Request to %q (source IP %s, user agent %q) through a connection created very late in the graceful termination process (more than 80%% has passed), possibly a sign for a broken load balancer setup.", r.URL.Path, r.RemoteAddr, r.UserAgent()) - - // create only one event to avoid event spam. - var eventf eventfFunc - eventf, _ = unexpectedRequestsEventf.Load().(eventfFunc) - if swapped := lateRequestReceived.CAS(false, true); swapped && eventf != nil { - eventf(corev1.EventTypeWarning, "LateConnections", "The apiserver received connections (e.g. from %q, user agent %q) very late in the graceful termination process, possibly a sign for a broken load balancer setup.", r.RemoteAddr, r.UserAgent()) - } - } - } - } - - handler.ServeHTTP(w, r) - }) -} - -// WithNonReadyRequestLogging rejects the request until the process has been ready once. -func WithNonReadyRequestLogging(handler http.Handler, hasBeenReadyCh <-chan struct{}) http.Handler { - if hasBeenReadyCh == nil { - return handler - } - - var nonReadyRequestReceived atomic.Bool - - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - select { - case <-hasBeenReadyCh: - handler.ServeHTTP(w, r) - return - default: - } - - // ignore connections to local IP. Those clients better know what they are doing. - if pth := "/" + strings.TrimLeft(r.URL.Path, "/"); pth != "/readyz" && pth != "/healthz" && pth != "/livez" { - if isLocal(r) { - if !isKubeApiserverLoopBack(r) { - klog.V(2).Infof("Loopback request to %q (user agent %q) before server is ready. This client probably does not watch /readyz and might get inconsistent answers.", r.URL.Path, r.UserAgent()) - } - } else { - klog.Warningf("Request to %q (source IP %s, user agent %q) before server is ready, possibly a sign for a broken load balancer setup.", r.URL.Path, r.RemoteAddr, r.UserAgent()) - - // create only one event to avoid event spam. - var eventf eventfFunc - eventf, _ = unexpectedRequestsEventf.Load().(eventfFunc) - if swapped := nonReadyRequestReceived.CAS(false, true); swapped && eventf != nil { - eventf(corev1.EventTypeWarning, "NonReadyRequests", "The kube-apiserver received requests (e.g. from %q, user agent %q, accessing %s) before it was ready, possibly a sign for a broken load balancer setup.", r.RemoteAddr, r.UserAgent(), r.URL.Path) - } - } - } - - handler.ServeHTTP(w, r) - }) -} - -func isLocal(req *http.Request) bool { - host, _, err := net.SplitHostPort(req.RemoteAddr) - if err != nil { - // ignore error and keep going - } else if ip := net.ParseIP(host); ip != nil { - return ip.IsLoopback() - } - - return false -} - -func isKubeApiserverLoopBack(req *http.Request) bool { - return strings.HasPrefix(req.UserAgent(), "kube-apiserver/") -} diff --git a/staging/src/k8s.io/apiserver/pkg/server/routes/openapi.go b/staging/src/k8s.io/apiserver/pkg/server/routes/openapi.go index e1cb4a6fbfa81..d920dc2a2f71e 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/routes/openapi.go +++ b/staging/src/k8s.io/apiserver/pkg/server/routes/openapi.go @@ -17,8 +17,6 @@ limitations under the License. package routes import ( - "strings" - restful "github.com/emicklei/go-restful" "github.com/go-openapi/spec" "k8s.io/klog/v2" @@ -36,35 +34,11 @@ type OpenAPI struct { // Install adds the SwaggerUI webservice to the given mux. func (oa OpenAPI) Install(c *restful.Container, mux *mux.PathRecorderMux) (*handler.OpenAPIService, *spec.Swagger) { - // we shadow ClustResourceQuotas, RoleBindingRestrictions, and SecurityContextContstraints - // with a CRD. This loop removes all CRQ,RBR, SCC paths - // from the OpenAPI spec such that they don't conflict with the CRD - // apiextensions-apiserver spec during merging. - oa.Config.IgnorePrefixes = append(oa.Config.IgnorePrefixes, - "/apis/quota.openshift.io/v1/clusterresourcequotas", - "/apis/security.openshift.io/v1/securitycontextconstraints", - "/apis/authorization.openshift.io/v1/rolebindingrestrictions", - "/apis/authorization.openshift.io/v1/namespaces/{namespace}/rolebindingrestrictions", - "/apis/authorization.openshift.io/v1/watch/namespaces/{namespace}/rolebindingrestrictions", - "/apis/authorization.openshift.io/v1/watch/rolebindingrestrictions") - spec, err := builder.BuildOpenAPISpec(c.RegisteredWebServices(), oa.Config) if err != nil { klog.Fatalf("Failed to build open api spec for root: %v", err) } - // we shadow ClustResourceQuotas, RoleBindingRestrictions, and SecurityContextContstraints - // with a CRD. This loop removes all CRQ,RBR, SCC paths - // from the OpenAPI spec such that they don't conflict with the CRD - // apiextensions-apiserver spec during merging. - for pth := range spec.Paths.Paths { - if strings.HasPrefix(pth, "/apis/quota.openshift.io/v1/clusterresourcequotas") || - strings.Contains(pth, "rolebindingrestrictions") || - strings.HasPrefix(pth, "/apis/security.openshift.io/v1/securitycontextconstraints") { - delete(spec.Paths.Paths, pth) - } - } - openAPIVersionedService, err := handler.NewOpenAPIService(spec) if err != nil { klog.Fatalf("Failed to create OpenAPIService: %v", err) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher.go b/staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher.go index 1b6432b8c366f..1a7197e4dd243 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher.go @@ -158,8 +158,10 @@ func (i *indexedWatchers) terminateAll(objectType reflect.Type, done func(*cache // second in a bucket, and pop up them once at the timeout. To be more specific, // if you set fire time at X, you can get the bookmark within (X-1,X+1) period. type watcherBookmarkTimeBuckets struct { - lock sync.Mutex + lock sync.Mutex + // the key of watcherBuckets is the number of seconds since createTime watchersBuckets map[int64][]*cacheWatcher + createTime time.Time startBucketID int64 clock clock.Clock bookmarkFrequency time.Duration @@ -168,7 +170,8 @@ type watcherBookmarkTimeBuckets struct { func newTimeBucketWatchers(clock clock.Clock, bookmarkFrequency time.Duration) *watcherBookmarkTimeBuckets { return &watcherBookmarkTimeBuckets{ watchersBuckets: make(map[int64][]*cacheWatcher), - startBucketID: clock.Now().Unix(), + createTime: clock.Now(), + startBucketID: 0, clock: clock, bookmarkFrequency: bookmarkFrequency, } @@ -181,7 +184,7 @@ func (t *watcherBookmarkTimeBuckets) addWatcher(w *cacheWatcher) bool { if !ok { return false } - bucketID := nextTime.Unix() + bucketID := int64(nextTime.Sub(t.createTime) / time.Second) t.lock.Lock() defer t.lock.Unlock() if bucketID < t.startBucketID { @@ -193,7 +196,7 @@ func (t *watcherBookmarkTimeBuckets) addWatcher(w *cacheWatcher) bool { } func (t *watcherBookmarkTimeBuckets) popExpiredWatchers() [][]*cacheWatcher { - currentBucketID := t.clock.Now().Unix() + currentBucketID := int64(t.clock.Since(t.createTime) / time.Second) // There should be one or two elements in almost all cases expiredWatchers := make([][]*cacheWatcher, 0, 2) t.lock.Lock() diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/etcd3retry/retry_etcdclient.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/etcd3retry/retry_etcdclient.go deleted file mode 100644 index 5d3597786a328..0000000000000 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/etcd3retry/retry_etcdclient.go +++ /dev/null @@ -1,243 +0,0 @@ -package etcd3retry - -import ( - "context" - "time" - - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/net" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apimachinery/pkg/watch" - "k8s.io/apiserver/pkg/storage" - "k8s.io/apiserver/pkg/storage/etcd3/metrics" - "k8s.io/klog/v2" - - "google.golang.org/grpc/codes" -) - -var defaultRetry = wait.Backoff{ - Duration: 300 * time.Millisecond, - Factor: 2, // double the timeout for every failure - Jitter: 0.1, - Steps: 5, // .3 + .6 + 1.2 + 2.4 = 5ish this let's us smooth out short bumps but not long ones and keeps retry behavior closer. -} - -type retryClient struct { - // embed because we only want to override a few states - storage.Interface -} - -// New returns an etcd3 implementation of storage.Interface. -func NewRetryingEtcdStorage(delegate storage.Interface) storage.Interface { - return &retryClient{Interface: delegate} -} - -// Create adds a new object at a key unless it already exists. 'ttl' is time-to-live -// in seconds (0 means forever). If no error is returned and out is not nil, out will be -// set to the read value from database. -func (c *retryClient) Create(ctx context.Context, key string, obj, out runtime.Object, ttl uint64) error { - return onError(ctx, defaultRetry, isRetriableEtcdError, func() error { - return c.Interface.Create(ctx, key, obj, out, ttl) - }) -} - -// Delete removes the specified key and returns the value that existed at that spot. -// If key didn't exist, it will return NotFound storage error. -func (c *retryClient) Delete(ctx context.Context, key string, out runtime.Object, preconditions *storage.Preconditions, validateDeletion storage.ValidateObjectFunc) error { - return onError(ctx, defaultRetry, isRetriableEtcdError, func() error { - return c.Interface.Delete(ctx, key, out, preconditions, validateDeletion) - }) -} - -// Watch begins watching the specified key. Events are decoded into API objects, -// and any items selected by 'p' are sent down to returned watch.Interface. -// resourceVersion may be used to specify what version to begin watching, -// which should be the current resourceVersion, and no longer rv+1 -// (e.g. reconnecting without missing any updates). -// If resource version is "0", this interface will get current object at given key -// and send it in an "ADDED" event, before watch starts. -func (c *retryClient) Watch(ctx context.Context, key string, opts storage.ListOptions) (watch.Interface, error) { - var ret watch.Interface - err := onError(ctx, defaultRetry, isRetriableEtcdError, func() error { - var innerErr error - ret, innerErr = c.Interface.Watch(ctx, key, opts) - return innerErr - }) - return ret, err -} - -// WatchList begins watching the specified key's items. Items are decoded into API -// objects and any item selected by 'p' are sent down to returned watch.Interface. -// resourceVersion may be used to specify what version to begin watching, -// which should be the current resourceVersion, and no longer rv+1 -// (e.g. reconnecting without missing any updates). -// If resource version is "0", this interface will list current objects directory defined by key -// and send them in "ADDED" events, before watch starts. -func (c *retryClient) WatchList(ctx context.Context, key string, opts storage.ListOptions) (watch.Interface, error) { - var ret watch.Interface - err := onError(ctx, defaultRetry, isRetriableEtcdError, func() error { - var innerErr error - ret, innerErr = c.Interface.WatchList(ctx, key, opts) - return innerErr - }) - return ret, err -} - -// Get unmarshals json found at key into objPtr. On a not found error, will either -// return a zero object of the requested type, or an error, depending on 'opts.ignoreNotFound'. -// Treats empty responses and nil response nodes exactly like a not found error. -// The returned contents may be delayed, but it is guaranteed that they will -// match 'opts.ResourceVersion' according 'opts.ResourceVersionMatch'. -func (c *retryClient) Get(ctx context.Context, key string, opts storage.GetOptions, objPtr runtime.Object) error { - return onError(ctx, defaultRetry, isRetriableEtcdError, func() error { - return c.Interface.Get(ctx, key, opts, objPtr) - }) -} - -// GetToList unmarshals json found at key and opaque it into *List api object -// (an object that satisfies the runtime.IsList definition). -// The returned contents may be delayed, but it is guaranteed that they will -// match 'opts.ResourceVersion' according 'opts.ResourceVersionMatch'. -func (c *retryClient) GetToList(ctx context.Context, key string, opts storage.ListOptions, listObj runtime.Object) error { - return onError(ctx, defaultRetry, isRetriableEtcdError, func() error { - return c.Interface.GetToList(ctx, key, opts, listObj) - }) -} - -// List unmarshalls jsons found at directory defined by key and opaque them -// into *List api object (an object that satisfies runtime.IsList definition). -// The returned contents may be delayed, but it is guaranteed that they will -// match 'opts.ResourceVersion' according 'opts.ResourceVersionMatch'. -func (c *retryClient) List(ctx context.Context, key string, opts storage.ListOptions, listObj runtime.Object) error { - return onError(ctx, defaultRetry, isRetriableEtcdError, func() error { - return c.Interface.List(ctx, key, opts, listObj) - }) -} - -// GuaranteedUpdate keeps calling 'tryUpdate()' to update key 'key' (of type 'ptrToType') -// retrying the update until success if there is index conflict. -// Note that object passed to tryUpdate may change across invocations of tryUpdate() if -// other writers are simultaneously updating it, so tryUpdate() needs to take into account -// the current contents of the object when deciding how the update object should look. -// If the key doesn't exist, it will return NotFound storage error if ignoreNotFound=false -// or zero value in 'ptrToType' parameter otherwise. -// If the object to update has the same value as previous, it won't do any update -// but will return the object in 'ptrToType' parameter. -// If 'suggestion' can contain zero or one element - in such case this can be used as -// a suggestion about the current version of the object to avoid read operation from -// storage to get it. -// -// Example: -// -// s := /* implementation of Interface */ -// err := s.GuaranteedUpdate( -// "myKey", &MyType{}, true, -// func(input runtime.Object, res ResponseMeta) (runtime.Object, *uint64, error) { -// // Before each invocation of the user defined function, "input" is reset to -// // current contents for "myKey" in database. -// curr := input.(*MyType) // Guaranteed to succeed. -// -// // Make the modification -// curr.Counter++ -// -// // Return the modified object - return an error to stop iterating. Return -// // a uint64 to alter the TTL on the object, or nil to keep it the same value. -// return cur, nil, nil -// }, -// ) -func (c *retryClient) GuaranteedUpdate( - ctx context.Context, key string, ptrToType runtime.Object, ignoreNotFound bool, - precondtions *storage.Preconditions, tryUpdate storage.UpdateFunc, suggestion ...runtime.Object) error { - return onError(ctx, defaultRetry, isRetriableEtcdError, func() error { - return c.Interface.GuaranteedUpdate(ctx, key, ptrToType, ignoreNotFound, precondtions, tryUpdate, suggestion...) - }) -} - -// isRetriableEtcdError returns true if a retry should be attempted, otherwise false. -// errorLabel is set to a non-empty value that reflects the type of error encountered. -func isRetriableEtcdError(err error) (errorLabel string, retry bool) { - if err == nil { - return - } - - etcdError, ok := err.(interface { - error - Code() codes.Code - }) - switch { - case ok && etcdError.Code() == codes.Unavailable: - errorLabel = "Unavailable" - retry = true - case ok: - // any other error, we don't retry - return - - // TODO: we need to figure out whether it is applicable to etcd. We don't retry on "connection refused" - // error as it is not deemed transient. How about "EOF"? - case net.IsConnectionReset(err): - errorLabel = "ConnectionReset" - retry = true - } - - return -} - -func neverRetry(_ error) (string, bool) { - // TODO this needs a metric - return "", false -} - -// onError allows the caller to retry fn in case the error returned by fn is retriable -// according to the provided function. backoff defines the maximum retries and the wait -// interval between two retries. -func onError(ctx context.Context, backoff wait.Backoff, retriable func(error) (string, bool), fn func() error) error { - var lastErr error - var lastErrLabel string - var retry bool - err := backoffWithRequestContext(ctx, backoff, func() (bool, error) { - err := fn() - if retry { - // TODO: reduce verbosity once debugging in ci (upgrade tests) is done. - klog.V(1).Infof("etcd retry - lastErrLabel: %s error:%v", lastErrLabel, err) - metrics.UpdateEtcdRequestRetry(lastErrLabel) - } - if err == nil { - return true, nil - } - - lastErrLabel, retry = retriable(err) - if retry { - lastErr = err - return false, nil - } - - return false, err - }) - if err == wait.ErrWaitTimeout && lastErr != nil { - err = lastErr - } - return err -} - -// backoffWithRequestContext works with a request context and a Backoff. It ensures that the retry wait never -// exceeds the deadline specified by the request context. -func backoffWithRequestContext(ctx context.Context, backoff wait.Backoff, condition wait.ConditionFunc) error { - for backoff.Steps > 0 { - if ok, err := condition(); err != nil || ok { - return err - } - - if backoff.Steps == 1 { - break - } - - waitBeforeRetry := backoff.Step() - select { - case <-ctx.Done(): - return ctx.Err() - case <-time.After(waitBeforeRetry): - } - } - - return wait.ErrWaitTimeout -} diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/etcd3retry/retry_etcdclient_test.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/etcd3retry/retry_etcdclient_test.go deleted file mode 100644 index f8500938a45e7..0000000000000 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/etcd3retry/retry_etcdclient_test.go +++ /dev/null @@ -1,72 +0,0 @@ -package etcd3retry - -import ( - "fmt" - "net" - "net/url" - "strconv" - "syscall" - "testing" - - "go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes" - "k8s.io/apiserver/pkg/storage" -) - -func TestIsRetriableEtcdError(t *testing.T) { - tests := []struct { - name string - etcdErr error - errorLabelExpected string - retryExpected bool - }{ - { - name: "error is nil", - errorLabelExpected: "", - retryExpected: false, - }, - { - name: "generic storage error", - etcdErr: storage.NewKeyNotFoundError("key", 0), - errorLabelExpected: "", - retryExpected: false, - }, - { - name: "connection reset error", - etcdErr: &url.Error{Err: &net.OpError{Err: syscall.ECONNRESET}}, - errorLabelExpected: "ConnectionReset", - retryExpected: true, - }, - { - name: "connection refused error", - etcdErr: &url.Error{Err: &net.OpError{Err: syscall.ECONNREFUSED}}, - errorLabelExpected: "", - retryExpected: false, - }, - { - name: "etcd unavailable error", - etcdErr: rpctypes.ErrLeaderChanged, - errorLabelExpected: "Unavailable", - retryExpected: true, - }, - { - name: "should inspect error type, not message", - etcdErr: fmt.Errorf("etcdserver: leader changed"), - errorLabelExpected: "", - retryExpected: false, - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - errorCodeGot, retryGot := isRetriableEtcdError(test.etcdErr) - - if test.errorLabelExpected != errorCodeGot { - t.Errorf("expected error code: %s but got: %s", test.errorLabelExpected, errorCodeGot) - } - - if test.retryExpected != retryGot { - t.Errorf("expected retry: %s but got: %s", strconv.FormatBool(test.retryExpected), strconv.FormatBool(retryGot)) - } - }) - } -} diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/lease_manager.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/lease_manager.go index 6b5a5700a9e76..a05f293df3fa9 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/lease_manager.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/lease_manager.go @@ -22,8 +22,30 @@ import ( "time" "go.etcd.io/etcd/clientv3" + "k8s.io/apiserver/pkg/storage/etcd3/metrics" ) +const ( + defaultLeaseReuseDurationSeconds = 60 + defaultLeaseMaxObjectCount = 1000 +) + +// LeaseManagerConfig is configuration for creating a lease manager. +type LeaseManagerConfig struct { + // ReuseDurationSeconds specifies time in seconds that each lease is reused + ReuseDurationSeconds int64 + // MaxObjectCount specifies how many objects that a lease can attach + MaxObjectCount int64 +} + +// NewDefaultLeaseManagerConfig creates a LeaseManagerConfig with default values +func NewDefaultLeaseManagerConfig() LeaseManagerConfig { + return LeaseManagerConfig{ + ReuseDurationSeconds: defaultLeaseReuseDurationSeconds, + MaxObjectCount: defaultLeaseMaxObjectCount, + } +} + // leaseManager is used to manage leases requested from etcd. If a new write // needs a lease that has similar expiration time to the previous one, the old // lease will be reused to reduce the overhead of etcd, since lease operations @@ -37,34 +59,32 @@ type leaseManager struct { // The period of time in seconds and percent of TTL that each lease is // reused. The minimum of them is used to avoid unreasonably large // numbers. We use var instead of const for testing purposes. - leaseReuseDurationSeconds int64 - leaseReuseDurationPercent float64 + leaseReuseDurationSeconds int64 + leaseReuseDurationPercent float64 + leaseMaxAttachedObjectCount int64 + leaseAttachedObjectCount int64 } // newDefaultLeaseManager creates a new lease manager using default setting. -func newDefaultLeaseManager(client *clientv3.Client) *leaseManager { - return newLeaseManager(client, 60, 0.05) +func newDefaultLeaseManager(client *clientv3.Client, config LeaseManagerConfig) *leaseManager { + if config.MaxObjectCount <= 0 { + config.MaxObjectCount = defaultLeaseMaxObjectCount + } + return newLeaseManager(client, config.ReuseDurationSeconds, 0.05, config.MaxObjectCount) } // newLeaseManager creates a new lease manager with the number of buffered // leases, lease reuse duration in seconds and percentage. The percentage // value x means x*100%. -func newLeaseManager(client *clientv3.Client, leaseReuseDurationSeconds int64, leaseReuseDurationPercent float64) *leaseManager { +func newLeaseManager(client *clientv3.Client, leaseReuseDurationSeconds int64, leaseReuseDurationPercent float64, maxObjectCount int64) *leaseManager { return &leaseManager{ - client: client, - leaseReuseDurationSeconds: leaseReuseDurationSeconds, - leaseReuseDurationPercent: leaseReuseDurationPercent, + client: client, + leaseReuseDurationSeconds: leaseReuseDurationSeconds, + leaseReuseDurationPercent: leaseReuseDurationPercent, + leaseMaxAttachedObjectCount: maxObjectCount, } } -// setLeaseReuseDurationSeconds is used for testing purpose. It is used to -// reduce the extra lease duration to avoid unnecessary timeout in testing. -func (l *leaseManager) setLeaseReuseDurationSeconds(duration int64) { - l.leaseMu.Lock() - defer l.leaseMu.Unlock() - l.leaseReuseDurationSeconds = duration -} - // GetLease returns a lease based on requested ttl: if the cached previous // lease can be reused, reuse it; otherwise request a new one from etcd. func (l *leaseManager) GetLease(ctx context.Context, ttl int64) (clientv3.LeaseID, error) { @@ -75,9 +95,15 @@ func (l *leaseManager) GetLease(ctx context.Context, ttl int64) (clientv3.LeaseI reuseDurationSeconds := l.getReuseDurationSecondsLocked(ttl) valid := now.Add(time.Duration(ttl) * time.Second).Before(l.prevLeaseExpirationTime) sufficient := now.Add(time.Duration(ttl+reuseDurationSeconds) * time.Second).After(l.prevLeaseExpirationTime) - if valid && sufficient { + + // We count all operations that happened in the same lease, regardless of success or failure. + // Currently each GetLease call only attach 1 object + l.leaseAttachedObjectCount++ + + if valid && sufficient && l.leaseAttachedObjectCount <= l.leaseMaxAttachedObjectCount { return l.prevLeaseID, nil } + // request a lease with a little extra ttl from etcd ttl += reuseDurationSeconds lcr, err := l.client.Lease.Grant(ctx, ttl) @@ -87,6 +113,9 @@ func (l *leaseManager) GetLease(ctx context.Context, ttl int64) (clientv3.LeaseI // cache the new lease id l.prevLeaseID = lcr.ID l.prevLeaseExpirationTime = now.Add(time.Duration(ttl) * time.Second) + // refresh count + metrics.UpdateLeaseObjectCount(l.leaseAttachedObjectCount) + l.leaseAttachedObjectCount = 1 return lcr.ID, nil } diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/lease_manager_test.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/lease_manager_test.go index e63a8e65e70e0..722e0169cfb41 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/lease_manager_test.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/lease_manager_test.go @@ -34,7 +34,7 @@ func TestGetReuseDurationSeconds(t *testing.T) { duration: 50, }, } - lm := newDefaultLeaseManager(nil) + lm := newDefaultLeaseManager(nil, NewDefaultLeaseManagerConfig()) for i := 0; i < len(testCases); i++ { dur := lm.getReuseDurationSecondsLocked(testCases[i].ttl) if dur != testCases[i].duration { diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics.go index 791d1e5c5e2f1..4268d12bee177 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics.go @@ -35,12 +35,8 @@ import ( var ( etcdRequestLatency = compbasemetrics.NewHistogramVec( &compbasemetrics.HistogramOpts{ - Name: "etcd_request_duration_seconds", - Help: "Etcd request latency in seconds for each operation and object type.", - // Keeping it similar to the buckets used by the apiserver_request_duration_seconds metric so that - // api latency and etcd latency can be more comparable side by side. - Buckets: []float64{.005, .01, .025, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, - 0.8, 0.9, 1.0, 1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 40, 50, 60}, + Name: "etcd_request_duration_seconds", + Help: "Etcd request latency in seconds for each operation and object type.", StabilityLevel: compbasemetrics.ALPHA, }, []string{"operation", "type"}, @@ -61,13 +57,14 @@ var ( }, []string{"endpoint"}, ) - etcdRequestRetry = compbasemetrics.NewCounterVec( - &compbasemetrics.CounterOpts{ - Name: "etcd_request_retry_total", - Help: "Etcd request retry total", + etcdLeaseObjectCounts = compbasemetrics.NewHistogramVec( + &compbasemetrics.HistogramOpts{ + Name: "etcd_lease_object_counts", + Help: "Number of objects attached to a single etcd lease.", + Buckets: []float64{10, 50, 100, 500, 1000, 2500, 5000}, StabilityLevel: compbasemetrics.ALPHA, }, - []string{"error"}, + []string{}, ) ) @@ -80,7 +77,7 @@ func Register() { legacyregistry.MustRegister(etcdRequestLatency) legacyregistry.MustRegister(objectCounts) legacyregistry.MustRegister(dbTotalSize) - legacyregistry.MustRegister(etcdRequestRetry) + legacyregistry.MustRegister(etcdLeaseObjectCounts) }) } @@ -109,7 +106,9 @@ func UpdateEtcdDbSize(ep string, size int64) { dbTotalSize.WithLabelValues(ep).Set(float64(size)) } -// UpdateEtcdRequestRetry sets the etcd_request_retry_total metric. -func UpdateEtcdRequestRetry(errorCode string) { - etcdRequestRetry.WithLabelValues(errorCode).Inc() +// UpdateLeaseObjectCount sets the etcd_lease_object_counts metric. +func UpdateLeaseObjectCount(count int64) { + // Currently we only store one previous lease, since all the events have the same ttl. + // See pkg/storage/etcd3/lease_manager.go + etcdLeaseObjectCounts.WithLabelValues().Observe(float64(count)) } diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go index 3435b9ffaa9aa..a9fd51be4dcf3 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go @@ -83,11 +83,11 @@ type objState struct { } // New returns an etcd3 implementation of storage.Interface. -func New(c *clientv3.Client, codec runtime.Codec, prefix string, transformer value.Transformer, pagingEnabled bool) storage.Interface { - return newStore(c, pagingEnabled, codec, prefix, transformer) +func New(c *clientv3.Client, codec runtime.Codec, prefix string, transformer value.Transformer, pagingEnabled bool, leaseManagerConfig LeaseManagerConfig) storage.Interface { + return newStore(c, pagingEnabled, codec, prefix, transformer, leaseManagerConfig) } -func newStore(c *clientv3.Client, pagingEnabled bool, codec runtime.Codec, prefix string, transformer value.Transformer) *store { +func newStore(c *clientv3.Client, pagingEnabled bool, codec runtime.Codec, prefix string, transformer value.Transformer, leaseManagerConfig LeaseManagerConfig) *store { versioner := APIObjectVersioner{} result := &store{ client: c, @@ -100,7 +100,7 @@ func newStore(c *clientv3.Client, pagingEnabled bool, codec runtime.Codec, prefi // keeps compatibility with etcd2 impl for custom prefixes that don't start with '/' pathPrefix: path.Join("/", prefix), watcher: newWatcher(c, codec, versioner, transformer), - leaseManager: newDefaultLeaseManager(c), + leaseManager: newDefaultLeaseManager(c, leaseManagerConfig), } return result } diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store_test.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store_test.go index e1204cf2ea2b7..6d743ac70b202 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store_test.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store_test.go @@ -818,7 +818,7 @@ func TestTransformationFailure(t *testing.T) { codec := apitesting.TestCodec(codecs, examplev1.SchemeGroupVersion) cluster := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1}) defer cluster.Terminate(t) - store := newStore(cluster.RandClient(), false, codec, "", &prefixTransformer{prefix: []byte(defaultTestPrefix)}) + store := newStore(cluster.RandClient(), false, codec, "", &prefixTransformer{prefix: []byte(defaultTestPrefix)}, NewDefaultLeaseManagerConfig()) ctx := context.Background() preset := []struct { @@ -895,8 +895,8 @@ func TestList(t *testing.T) { codec := apitesting.TestCodec(codecs, examplev1.SchemeGroupVersion) cluster := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1}) defer cluster.Terminate(t) - store := newStore(cluster.RandClient(), true, codec, "", &prefixTransformer{prefix: []byte(defaultTestPrefix)}) - disablePagingStore := newStore(cluster.RandClient(), false, codec, "", &prefixTransformer{prefix: []byte(defaultTestPrefix)}) + store := newStore(cluster.RandClient(), true, codec, "", &prefixTransformer{prefix: []byte(defaultTestPrefix)}, NewDefaultLeaseManagerConfig()) + disablePagingStore := newStore(cluster.RandClient(), false, codec, "", &prefixTransformer{prefix: []byte(defaultTestPrefix)}, NewDefaultLeaseManagerConfig()) ctx := context.Background() // Setup storage with the following structure: @@ -1394,7 +1394,7 @@ func TestListContinuation(t *testing.T) { etcdClient := cluster.RandClient() recorder := &clientRecorder{KV: etcdClient.KV} etcdClient.KV = recorder - store := newStore(etcdClient, true, codec, "", transformer) + store := newStore(etcdClient, true, codec, "", transformer, NewDefaultLeaseManagerConfig()) ctx := context.Background() // Setup storage with the following structure: @@ -1556,7 +1556,7 @@ func TestListContinuationWithFilter(t *testing.T) { etcdClient := cluster.RandClient() recorder := &clientRecorder{KV: etcdClient.KV} etcdClient.KV = recorder - store := newStore(etcdClient, true, codec, "", transformer) + store := newStore(etcdClient, true, codec, "", transformer, NewDefaultLeaseManagerConfig()) ctx := context.Background() preset := []struct { @@ -1659,7 +1659,7 @@ func TestListInconsistentContinuation(t *testing.T) { codec := apitesting.TestCodec(codecs, examplev1.SchemeGroupVersion) cluster := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1}) defer cluster.Terminate(t) - store := newStore(cluster.RandClient(), true, codec, "", &prefixTransformer{prefix: []byte(defaultTestPrefix)}) + store := newStore(cluster.RandClient(), true, codec, "", &prefixTransformer{prefix: []byte(defaultTestPrefix)}, NewDefaultLeaseManagerConfig()) ctx := context.Background() // Setup storage with the following structure: @@ -1804,12 +1804,14 @@ func TestListInconsistentContinuation(t *testing.T) { func testSetup(t *testing.T) (context.Context, *store, *integration.ClusterV3) { codec := apitesting.TestCodec(codecs, examplev1.SchemeGroupVersion) cluster := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1}) - store := newStore(cluster.RandClient(), true, codec, "", &prefixTransformer{prefix: []byte(defaultTestPrefix)}) - ctx := context.Background() // As 30s is the default timeout for testing in glboal configuration, // we cannot wait longer than that in a single time: change it to 10 // for testing purposes. See apimachinery/pkg/util/wait/wait.go - store.leaseManager.setLeaseReuseDurationSeconds(1) + store := newStore(cluster.RandClient(), true, codec, "", &prefixTransformer{prefix: []byte(defaultTestPrefix)}, LeaseManagerConfig{ + ReuseDurationSeconds: 1, + MaxObjectCount: defaultLeaseMaxObjectCount, + }) + ctx := context.Background() return ctx, store, cluster } @@ -1850,7 +1852,7 @@ func TestPrefix(t *testing.T) { "/registry": "/registry", } for configuredPrefix, effectivePrefix := range testcases { - store := newStore(cluster.RandClient(), true, codec, configuredPrefix, transformer) + store := newStore(cluster.RandClient(), true, codec, configuredPrefix, transformer, NewDefaultLeaseManagerConfig()) if store.pathPrefix != effectivePrefix { t.Errorf("configured prefix of %s, expected effective prefix of %s, got %s", configuredPrefix, effectivePrefix, store.pathPrefix) } @@ -2017,7 +2019,7 @@ func TestConsistentList(t *testing.T) { transformer := &fancyTransformer{ transformer: &prefixTransformer{prefix: []byte(defaultTestPrefix)}, } - store := newStore(cluster.RandClient(), true, codec, "", transformer) + store := newStore(cluster.RandClient(), true, codec, "", transformer, NewDefaultLeaseManagerConfig()) transformer.store = store for i := 0; i < 5; i++ { @@ -2119,3 +2121,47 @@ func TestCount(t *testing.T) { t.Fatalf("store.Count for resource %s: expected %d but got %d", resourceA, resourceACountExpected, resourceACountGot) } } + +func TestLeaseMaxObjectCount(t *testing.T) { + codec := apitesting.TestCodec(codecs, examplev1.SchemeGroupVersion) + cluster := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1}) + store := newStore(cluster.RandClient(), true, codec, "", &prefixTransformer{prefix: []byte(defaultTestPrefix)}, LeaseManagerConfig{ + ReuseDurationSeconds: defaultLeaseReuseDurationSeconds, + MaxObjectCount: 2, + }) + ctx := context.Background() + defer cluster.Terminate(t) + + obj := &example.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo", SelfLink: "testlink"}} + out := &example.Pod{} + + testCases := []struct { + key string + expectAttachedCount int64 + }{ + { + key: "testkey1", + expectAttachedCount: 1, + }, + { + key: "testkey2", + expectAttachedCount: 2, + }, + { + key: "testkey3", + // We assume each time has 1 object attached to the lease + // so after granting a new lease, the recorded count is set to 1 + expectAttachedCount: 1, + }, + } + + for _, tc := range testCases { + err := store.Create(ctx, tc.key, obj, out, 120) + if err != nil { + t.Fatalf("Set failed: %v", err) + } + if store.leaseManager.leaseAttachedObjectCount != tc.expectAttachedCount { + t.Errorf("Lease manager recorded count %v should be %v", store.leaseManager.leaseAttachedObjectCount, tc.expectAttachedCount) + } + } +} diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/watcher_test.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/watcher_test.go index ad3209ccd477d..bf98559106567 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/watcher_test.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/watcher_test.go @@ -225,13 +225,13 @@ func TestWatchError(t *testing.T) { codec := &testCodec{apitesting.TestCodec(codecs, examplev1.SchemeGroupVersion)} cluster := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1}) defer cluster.Terminate(t) - invalidStore := newStore(cluster.RandClient(), true, codec, "", &prefixTransformer{prefix: []byte("test!")}) + invalidStore := newStore(cluster.RandClient(), true, codec, "", &prefixTransformer{prefix: []byte("test!")}, NewDefaultLeaseManagerConfig()) ctx := context.Background() w, err := invalidStore.Watch(ctx, "/abc", storage.ListOptions{ResourceVersion: "0", Predicate: storage.Everything}) if err != nil { t.Fatalf("Watch failed: %v", err) } - validStore := newStore(cluster.RandClient(), true, codec, "", &prefixTransformer{prefix: []byte("test!")}) + validStore := newStore(cluster.RandClient(), true, codec, "", &prefixTransformer{prefix: []byte("test!")}, NewDefaultLeaseManagerConfig()) validStore.GuaranteedUpdate(ctx, "/abc", &example.Pod{}, true, nil, storage.SimpleUpdate( func(runtime.Object) (runtime.Object, error) { return &example.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}, nil diff --git a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/BUILD index 6a74f9eda4e7d..7949e8dda045e 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/BUILD @@ -13,6 +13,7 @@ go_library( deps = [ "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/egressselector:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/storage/etcd3:go_default_library", "//staging/src/k8s.io/apiserver/pkg/storage/value:go_default_library", ], ) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/config.go b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/config.go index 5dc0bbfb34969..06e059461ce3f 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/config.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/config.go @@ -21,6 +21,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/server/egressselector" + "k8s.io/apiserver/pkg/storage/etcd3" "k8s.io/apiserver/pkg/storage/value" ) @@ -74,6 +75,8 @@ type Config struct { CountMetricPollPeriod time.Duration // DBMetricPollInterval specifies how often should storage backend metric be updated. DBMetricPollInterval time.Duration + + LeaseManagerConfig etcd3.LeaseManagerConfig } func NewDefaultConfig(prefix string, codec runtime.Codec) *Config { @@ -83,5 +86,6 @@ func NewDefaultConfig(prefix string, codec runtime.Codec) *Config { Codec: codec, CompactionInterval: DefaultCompactInterval, DBMetricPollInterval: DefaultDBMetricPollInterval, + LeaseManagerConfig: etcd3.NewDefaultLeaseManagerConfig(), } } diff --git a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/etcd3.go b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/etcd3.go index 887ebb6543c29..9cfd3c012c9ff 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/etcd3.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/etcd3.go @@ -26,8 +26,6 @@ import ( "sync/atomic" "time" - "k8s.io/apiserver/pkg/storage/etcd3/etcd3retry" - grpcprom "github.com/grpc-ecosystem/go-grpc-prometheus" "go.etcd.io/etcd/clientv3" "go.etcd.io/etcd/pkg/transport" @@ -93,7 +91,7 @@ func newETCD3HealthCheck(c storagebackend.Config) (func() error, error) { return fmt.Errorf(errMsg) } client := clientValue.Load().(*clientv3.Client) - ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) defer cancel() // See https://github.com/etcd-io/etcd/blob/c57f8b3af865d1b531b979889c602ba14377420e/etcdctl/ctlv3/command/ep_command.go#L118 _, err := client.Get(ctx, path.Join("/", c.Prefix, "health")) @@ -251,7 +249,7 @@ func newETCD3Storage(c storagebackend.Config) (storage.Interface, DestroyFunc, e if transformer == nil { transformer = value.IdentityTransformer } - return etcd3retry.NewRetryingEtcdStorage(etcd3.New(client, c.Codec, c.Prefix, transformer, c.Paging)), destroyFunc, nil + return etcd3.New(client, c.Codec, c.Prefix, transformer, c.Paging, c.LeaseManagerConfig), destroyFunc, nil } // startDBSizeMonitorPerEndpoint starts a loop to monitor etcd database size and update the diff --git a/staging/src/k8s.io/apiserver/pkg/storage/tests/cacher_test.go b/staging/src/k8s.io/apiserver/pkg/storage/tests/cacher_test.go index b9de03e15cc28..fef527d3b3d1e 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/tests/cacher_test.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/tests/cacher_test.go @@ -101,7 +101,7 @@ func AddObjectMetaFieldsSet(source fields.Set, objectMeta *metav1.ObjectMeta, ha func newEtcdTestStorage(t *testing.T, prefix string) (*etcd3testing.EtcdTestServer, storage.Interface) { server, _ := etcd3testing.NewUnsecuredEtcd3TestClientServer(t) - storage := etcd3.New(server.V3Client, apitesting.TestCodec(codecs, examplev1.SchemeGroupVersion), prefix, value.IdentityTransformer, true) + storage := etcd3.New(server.V3Client, apitesting.TestCodec(codecs, examplev1.SchemeGroupVersion), prefix, value.IdentityTransformer, true, etcd3.NewDefaultLeaseManagerConfig()) return server, storage } diff --git a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/aes/aes_test.go b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/aes/aes_test.go index 108134b83bfda..aea755423a5cb 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/aes/aes_test.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/aes/aes_test.go @@ -364,12 +364,10 @@ func TestRoundTrip(t *testing.T) { if err != nil { t.Fatal(err) } - /* FIPS disabled aes24block, err := aes.NewCipher([]byte(bytes.Repeat([]byte("b"), 24))) if err != nil { t.Fatal(err) } - */ aes32block, err := aes.NewCipher([]byte(bytes.Repeat([]byte("c"), 32))) if err != nil { t.Fatal(err) @@ -381,7 +379,7 @@ func TestRoundTrip(t *testing.T) { t value.Transformer }{ {name: "GCM 16 byte key", t: NewGCMTransformer(aes16block)}, - // FIPS disabled {name: "GCM 24 byte key", t: NewGCMTransformer(aes24block)}, + {name: "GCM 24 byte key", t: NewGCMTransformer(aes24block)}, {name: "GCM 32 byte key", t: NewGCMTransformer(aes32block)}, {name: "CBC 32 byte key", t: NewCBCTransformer(aes32block)}, } diff --git a/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/OWNERS b/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/OWNERS new file mode 100644 index 0000000000000..50a230fcadb1a --- /dev/null +++ b/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/OWNERS @@ -0,0 +1,15 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- lavalamp +- deads2k +- yue9944882 +- MikeSpreitzer +reviewers: +- lavalamp +- deads2k +- yue9944882 +- MikeSpreitzer +labels: +- sig/api-machinery +- area/apiserver diff --git a/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go b/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go index 0d4a443e963cd..4999ddd0afd93 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go +++ b/staging/src/k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/queueset/queueset.go @@ -285,6 +285,11 @@ func (qs *queueSet) StartRequest(ctx context.Context, hashValue uint64, flowDist // request's context's Done channel gets closed by the time // the request is done being processed. doneCh := ctx.Done() + + // Retrieve the queueset configuration name while we have the lock + // and use it in the goroutine below. + configName := qs.qCfg.Name + if doneCh != nil { qs.preCreateOrUnblockGoroutine() go func() { @@ -297,7 +302,7 @@ func (qs *queueSet) StartRequest(ctx context.Context, hashValue uint64, flowDist // known that the count does not need to be accurate. // BTW, the count only needs to be accurate in a test that // uses FakeEventClock::Run(). - klog.V(6).Infof("QS(%s): Context of request %q %#+v %#+v is Done", qs.qCfg.Name, fsName, descr1, descr2) + klog.V(6).Infof("QS(%s): Context of request %q %#+v %#+v is Done", configName, fsName, descr1, descr2) qs.cancelWait(req) qs.goroutineDoneOrBlocked() }() diff --git a/staging/src/k8s.io/apiserver/pkg/util/webhook/webhook.go b/staging/src/k8s.io/apiserver/pkg/util/webhook/webhook.go index 2128647e08f15..799107e13501f 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/webhook/webhook.go +++ b/staging/src/k8s.io/apiserver/pkg/util/webhook/webhook.go @@ -131,20 +131,27 @@ func WithExponentialBackoff(ctx context.Context, initialBackoff time.Duration, w Steps: 5, } - var err error - wait.ExponentialBackoff(backoff, func() (bool, error) { - err = webhookFn() - if ctx.Err() != nil { - // we timed out or were cancelled, we should not retry - return true, err - } - if shouldRetry(err) { + // having a webhook error allows us to track the last actual webhook error for requests that + // are later cancelled or time out. + var webhookErr error + err := wait.ExponentialBackoffWithContext(ctx, backoff, func() (bool, error) { + webhookErr = webhookFn() + if shouldRetry(webhookErr) { return false, nil } - if err != nil { - return false, err + if webhookErr != nil { + return false, webhookErr } return true, nil }) - return err + + switch { + // we check for webhookErr first, if webhookErr is set it's the most important error to return. + case webhookErr != nil: + return webhookErr + case err != nil: + return fmt.Errorf("webhook call failed: %s", err.Error()) + default: + return nil + } } diff --git a/staging/src/k8s.io/apiserver/pkg/util/webhook/webhook_test.go b/staging/src/k8s.io/apiserver/pkg/util/webhook/webhook_test.go index b70d146e8389d..938398904b499 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/webhook/webhook_test.go +++ b/staging/src/k8s.io/apiserver/pkg/util/webhook/webhook_test.go @@ -21,6 +21,7 @@ import ( "crypto/tls" "crypto/x509" "encoding/json" + "errors" "fmt" "io/ioutil" "net/http" @@ -653,3 +654,109 @@ func newTestServer(clientCert, clientKey, caCert []byte, handler func(http.Respo return server, nil } + +func TestWithExponentialBackoffContextIsAlreadyCanceled(t *testing.T) { + alwaysRetry := func(e error) bool { + return true + } + + attemptsGot := 0 + webhookFunc := func() error { + attemptsGot++ + return nil + } + + ctx, cancel := context.WithCancel(context.TODO()) + cancel() + + // We don't expect the webhook function to be called since the context is already canceled. + err := WithExponentialBackoff(ctx, time.Millisecond, webhookFunc, alwaysRetry) + + errExpected := fmt.Errorf("webhook call failed: %s", context.Canceled) + if errExpected.Error() != err.Error() { + t.Errorf("expected error: %v, but got: %v", errExpected, err) + } + if attemptsGot != 0 { + t.Errorf("expected %d webhook attempts, but got: %d", 0, attemptsGot) + } +} + +func TestWithExponentialBackoffWebhookErrorIsMostImportant(t *testing.T) { + alwaysRetry := func(e error) bool { + return true + } + + ctx, cancel := context.WithCancel(context.TODO()) + attemptsGot := 0 + errExpected := errors.New("webhook not available") + webhookFunc := func() error { + attemptsGot++ + + // after the first attempt, the context is canceled + cancel() + + return errExpected + } + + // webhook err has higher priority than ctx error. we expect the webhook error to be returned. + err := WithExponentialBackoff(ctx, time.Millisecond, webhookFunc, alwaysRetry) + + if attemptsGot != 1 { + t.Errorf("expected %d webhook attempts, but got: %d", 1, attemptsGot) + } + if errExpected != err { + t.Errorf("expected error: %v, but got: %v", errExpected, err) + } +} + +func TestWithExponentialBackoffWithRetryExhaustedWhileContextIsNotCanceled(t *testing.T) { + alwaysRetry := func(e error) bool { + return true + } + + ctx, cancel := context.WithCancel(context.TODO()) + defer cancel() + + attemptsGot := 0 + errExpected := errors.New("webhook not available") + webhookFunc := func() error { + attemptsGot++ + return errExpected + } + + // webhook err has higher priority than ctx error. we expect the webhook error to be returned. + err := WithExponentialBackoff(ctx, time.Millisecond, webhookFunc, alwaysRetry) + + // WithExponentialBackoff has 5 steps for retry backoff parameters. + if attemptsGot != 5 { + t.Errorf("expected %d webhook attempts, but got: %d", 1, attemptsGot) + } + if errExpected != err { + t.Errorf("expected error: %v, but got: %v", errExpected, err) + } +} + +func TestGenericWebhookWithExponentialBackoff(t *testing.T) { + attemptsPerCallExpected := 5 + webhook := &GenericWebhook{ + InitialBackoff: time.Millisecond, + ShouldRetry: func(e error) bool { + return true + }, + } + + attemptsGot := 0 + webhookFunc := func() rest.Result { + attemptsGot++ + return rest.Result{} + } + + // number of retries should always be local to each call. + totalAttemptsExpected := attemptsPerCallExpected * 2 + webhook.WithExponentialBackoff(context.TODO(), webhookFunc) + webhook.WithExponentialBackoff(context.TODO(), webhookFunc) + + if totalAttemptsExpected != attemptsGot { + t.Errorf("expected a total of %d webhook attempts but got: %d", totalAttemptsExpected, attemptsGot) + } +} diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/webhook.go b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/webhook.go index b04c6a2154478..22e9a427029ad 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/webhook.go +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/webhook.go @@ -99,14 +99,14 @@ func (w *WebhookTokenAuthenticator) AuthenticateToken(ctx context.Context, token } var ( result *authenticationv1.TokenReview - err error auds authenticator.Audiences ) - webhook.WithExponentialBackoff(ctx, w.initialBackoff, func() error { - result, err = w.tokenReview.Create(ctx, r, metav1.CreateOptions{}) - return err - }, webhook.DefaultShouldRetry) - if err != nil { + // WithExponentialBackoff will return tokenreview create error (tokenReviewErr) if any. + if err := webhook.WithExponentialBackoff(ctx, w.initialBackoff, func() error { + var tokenReviewErr error + result, tokenReviewErr = w.tokenReview.Create(ctx, r, metav1.CreateOptions{}) + return tokenReviewErr + }, webhook.DefaultShouldRetry); err != nil { // An error here indicates bad configuration or an outage. Log for debugging. klog.Errorf("Failed to make webhook authenticator request: %v", err) return nil, false, err diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook.go b/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook.go index d7f4f631ec957..5e273d7ab5081 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook.go +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook.go @@ -186,19 +186,17 @@ func (w *WebhookAuthorizer) Authorize(ctx context.Context, attr authorizer.Attri if entry, ok := w.responseCache.Get(string(key)); ok { r.Status = entry.(authorizationv1.SubjectAccessReviewStatus) } else { - var ( - result *authorizationv1.SubjectAccessReview - err error - ) - webhook.WithExponentialBackoff(ctx, w.initialBackoff, func() error { - result, err = w.subjectAccessReview.Create(ctx, r, metav1.CreateOptions{}) - return err - }, webhook.DefaultShouldRetry) - if err != nil { - // An error here indicates bad configuration or an outage. Log for debugging. + var result *authorizationv1.SubjectAccessReview + // WithExponentialBackoff will return SAR create error (sarErr) if any. + if err := webhook.WithExponentialBackoff(ctx, w.initialBackoff, func() error { + var sarErr error + result, sarErr = w.subjectAccessReview.Create(ctx, r, metav1.CreateOptions{}) + return sarErr + }, webhook.DefaultShouldRetry); err != nil { klog.Errorf("Failed to make webhook authorizer request: %v", err) return w.decisionOnError, "", err } + r.Status = result.Status if shouldCache(attr) { if r.Status.Allowed { diff --git a/staging/src/k8s.io/cli-runtime/go.mod b/staging/src/k8s.io/cli-runtime/go.mod index bb345b55907a5..1471fe8522622 100644 --- a/staging/src/k8s.io/cli-runtime/go.mod +++ b/staging/src/k8s.io/cli-runtime/go.mod @@ -6,53 +6,30 @@ go 1.15 require ( github.com/davecgh/go-spew v1.1.1 + github.com/emicklei/go-restful v2.9.5+incompatible // indirect github.com/evanphx/json-patch v4.9.0+incompatible + github.com/go-openapi/jsonreference v0.19.3 // indirect + github.com/go-openapi/spec v0.19.3 // indirect github.com/googleapis/gnostic v0.4.1 github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de + github.com/mailru/easyjson v0.7.0 // indirect github.com/pkg/errors v0.9.1 github.com/spf13/cobra v1.0.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.4.0 golang.org/x/text v0.3.3 - gopkg.in/yaml.v2 v2.3.0 - k8s.io/api v0.19.0 - k8s.io/apimachinery v0.19.0 - k8s.io/client-go v0.19.0 + gopkg.in/yaml.v2 v2.2.8 + k8s.io/api v0.0.0 + k8s.io/apimachinery v0.0.0 + k8s.io/client-go v0.0.0 k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 sigs.k8s.io/kustomize v2.0.3+incompatible sigs.k8s.io/yaml v1.2.0 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - go.uber.org/multierr => go.uber.org/multierr v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery - k8s.io/apiserver => ../apiserver k8s.io/cli-runtime => ../cli-runtime k8s.io/client-go => ../client-go - k8s.io/cloud-provider => ../cloud-provider - k8s.io/cluster-bootstrap => ../cluster-bootstrap - k8s.io/code-generator => ../code-generator - k8s.io/component-base => ../component-base - k8s.io/cri-api => ../cri-api - k8s.io/csi-translation-lib => ../csi-translation-lib - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator - k8s.io/kube-controller-manager => ../kube-controller-manager - k8s.io/kube-proxy => ../kube-proxy - k8s.io/kube-scheduler => ../kube-scheduler - k8s.io/kubectl => ../kubectl - k8s.io/kubelet => ../kubelet - k8s.io/legacy-cloud-providers => ../legacy-cloud-providers - k8s.io/metrics => ../metrics - k8s.io/sample-apiserver => ../sample-apiserver - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/cli-runtime/go.sum b/staging/src/k8s.io/cli-runtime/go.sum index f8a08b00cb810..055d6b0640b7d 100644 --- a/staging/src/k8s.io/cli-runtime/go.sum +++ b/staging/src/k8s.io/cli-runtime/go.sum @@ -1,4 +1,3 @@ -bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -12,8 +11,6 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7 cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= @@ -23,217 +20,84 @@ github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+v github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= -github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ= -github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -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/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= -github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200507155900-a9f01edf17e3/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200601085316-9f1617e5c574/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= -github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v1.0.0/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v1.0.0/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -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/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -243,9 +107,7 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -254,19 +116,9 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -280,34 +132,20 @@ github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OI github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= -github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -315,28 +153,17 @@ github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= @@ -345,158 +172,70 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kubernetes-sigs/kube-storage-version-migrator v0.0.0-20191127225502-51849bc15f17/go.mod h1:enH0BVV+4+DAgWdwSlMefG8bBzTfVMTr1lApzdLZ/cc= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= -github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= -github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= -github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= -github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= -github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= -github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= -github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc90.0.20200616040943-82d2fa4eb069/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8= -github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728/go.mod h1:+B51GHs/jfZzk93MKrSSA8BWxrulVVcxiBG7kdFpd74= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible h1:AGewrYJW8aXFkkf86sSoiO9L/a/QYKZvODVCaB/wk4o= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20200831114015-2ab0c61c15de/go.mod h1:6vwp+YhYOIlj8MpkQKkebTTSn2TuYyvgiAFQ206jIEQ= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98 h1:JYwa3H00larjMVZXmh7L4FHDhNlKdWSgYi0kLdav9BY= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= -github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -504,66 +243,33 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200520041808-52d707b772fe/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -583,15 +289,11 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -599,16 +301,13 @@ golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -620,105 +319,70 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1-0.20200106000736-b8fc810ca6b5/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -734,14 +398,12 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -750,71 +412,47 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A= -k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= -k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= sigs.k8s.io/kustomize v2.0.3+incompatible h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbLXqhyOyX0= sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/staging/src/k8s.io/client-go/go.mod b/staging/src/k8s.io/client-go/go.mod index c49b8e7529186..5d525d4c2d1ed 100644 --- a/staging/src/k8s.io/client-go/go.mod +++ b/staging/src/k8s.io/client-go/go.mod @@ -5,11 +5,12 @@ module k8s.io/client-go go 1.15 require ( + cloud.google.com/go v0.51.0 // indirect github.com/Azure/go-autorest/autorest v0.9.6 github.com/Azure/go-autorest/autorest/adal v0.8.2 github.com/davecgh/go-spew v1.1.1 github.com/evanphx/json-patch v4.9.0+incompatible - github.com/gogo/protobuf v1.3.1 + github.com/gogo/protobuf v1.3.2 github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 github.com/golang/protobuf v1.4.2 github.com/google/go-cmp v0.4.0 @@ -17,52 +18,23 @@ require ( github.com/google/uuid v1.1.1 github.com/googleapis/gnostic v0.4.1 github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 - github.com/imdario/mergo v0.3.7 - github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98 + github.com/imdario/mergo v0.3.5 github.com/peterbourgon/diskv v2.0.1+incompatible github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.4.0 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 - golang.org/x/net v0.0.0-20200707034311-ab3426394381 + golang.org/x/net v0.0.0-20201110031124-69a78807bb2b golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6 golang.org/x/time v0.0.0-20191024005414-555d28b269f0 - k8s.io/api v0.19.0 - k8s.io/apimachinery v0.19.0 - k8s.io/klog/v2 v2.3.0 + k8s.io/api v0.0.0 + k8s.io/apimachinery v0.0.0 + k8s.io/klog/v2 v2.2.0 k8s.io/utils v0.0.0-20200729134348-d5654de09c73 sigs.k8s.io/yaml v1.2.0 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - go.uber.org/multierr => go.uber.org/multierr v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery - k8s.io/apiserver => ../apiserver - k8s.io/cli-runtime => ../cli-runtime k8s.io/client-go => ../client-go - k8s.io/cloud-provider => ../cloud-provider - k8s.io/cluster-bootstrap => ../cluster-bootstrap - k8s.io/code-generator => ../code-generator - k8s.io/component-base => ../component-base - k8s.io/cri-api => ../cri-api - k8s.io/csi-translation-lib => ../csi-translation-lib - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator - k8s.io/kube-controller-manager => ../kube-controller-manager - k8s.io/kube-proxy => ../kube-proxy - k8s.io/kube-scheduler => ../kube-scheduler - k8s.io/kubectl => ../kubectl - k8s.io/kubelet => ../kubelet - k8s.io/legacy-cloud-providers => ../legacy-cloud-providers - k8s.io/metrics => ../metrics - k8s.io/sample-apiserver => ../sample-apiserver - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/client-go/go.sum b/staging/src/k8s.io/client-go/go.sum index d06e69eaba00e..a7cc388ddbe3e 100644 --- a/staging/src/k8s.io/client-go/go.sum +++ b/staging/src/k8s.io/client-go/go.sum @@ -1,7 +1,5 @@ -bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0 h1:ROfEUZz+Gh5pa62DJWXSaonyu3StP6EA6lPEXPI6mCo= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= @@ -14,234 +12,63 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7 cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.6 h1:5YWtOnckcudzIw8lPPBcWOnmIFWMtHci1ZWAZulMSx0= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= -github.com/Azure/go-autorest/autorest/adal v0.5.0 h1:q2gDruN08/guU9vAjuPWff0+QIrpH6ediguzdAzXAUU= github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= github.com/Azure/go-autorest/autorest/adal v0.8.2 h1:O1X4oexUxnZCaEUGsvMnr8ZGj8HI37tNezwY4npRqA0= github.com/Azure/go-autorest/autorest/adal v0.8.2/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= -github.com/Azure/go-autorest/autorest/date v0.1.0 h1:YGrhWfrgtFs84+h0o46rJrlmsZtyZRg470CqAXTZaGM= github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= github.com/Azure/go-autorest/autorest/date v0.2.0 h1:yW+Zlqf26583pE43KhfnhFcdmSWlm5Ew6bxipnr/tbM= github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.2.0 h1:Ww5g4zThfD/6cLb4z6xxgeyDa7QDkizMkJKe0ysZXp0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0 h1:qJumjCaCudz+OcqE9/XtEPfvtOjOmKaui4EOpFI6zZc= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= -github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0 h1:ruG4BSDXONFRrZZJ2GUXDiUyVpayPmb1GnWeHDdaNKY= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0 h1:TRn4WjSnkcSy5AEG3pnbtFSwNtwzjr4VYyQflFE619k= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ= -github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -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/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= -github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200507155900-a9f01edf17e3/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200601085316-9f1617e5c574/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= -github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v1.0.0/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v1.0.0/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -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/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 h1:5ZkaAPbicIKTF2I64qf5Fh8Aa83Q/dnOafMYV0OMwjA= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -251,9 +78,7 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -262,19 +87,9 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -288,288 +103,84 @@ github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OI github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= -github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kubernetes-sigs/kube-storage-version-migrator v0.0.0-20191127225502-51849bc15f17/go.mod h1:enH0BVV+4+DAgWdwSlMefG8bBzTfVMTr1lApzdLZ/cc= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= -github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= -github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= -github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= -github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= -github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= -github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= -github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc90.0.20200616040943-82d2fa4eb069/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8= -github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728/go.mod h1:+B51GHs/jfZzk93MKrSSA8BWxrulVVcxiBG7kdFpd74= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible h1:AGewrYJW8aXFkkf86sSoiO9L/a/QYKZvODVCaB/wk4o= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20200831114015-2ab0c61c15de/go.mod h1:6vwp+YhYOIlj8MpkQKkebTTSn2TuYyvgiAFQ206jIEQ= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98 h1:JYwa3H00larjMVZXmh7L4FHDhNlKdWSgYi0kLdav9BY= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= -github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200520041808-52d707b772fe/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -589,32 +200,20 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -626,105 +225,64 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1-0.20200106000736-b8fc810ca6b5/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -740,14 +298,11 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -756,70 +311,42 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A= -k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= -k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= -sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/staging/src/k8s.io/client-go/rest/BUILD b/staging/src/k8s.io/client-go/rest/BUILD index 17d6b3e1656c8..1961a27a86183 100644 --- a/staging/src/k8s.io/client-go/rest/BUILD +++ b/staging/src/k8s.io/client-go/rest/BUILD @@ -1,9 +1,43 @@ -package(default_visibility = ["//visibility:public"]) +load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "config.go", + "plugin.go", + "request.go", + "transport.go", + "url_utils.go", + "urlbackoff.go", + "warnings.go", + "zz_generated.deepcopy.go", + ], + importmap = "k8s.io/kubernetes/vendor/k8s.io/client-go/rest", + importpath = "k8s.io/client-go/rest", + visibility = ["//visibility:public"], + deps = [ + "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/clock:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library", + "//staging/src/k8s.io/client-go/pkg/version:go_default_library", + "//staging/src/k8s.io/client-go/plugin/pkg/client/auth/exec:go_default_library", + "//staging/src/k8s.io/client-go/rest/watch:go_default_library", + "//staging/src/k8s.io/client-go/tools/clientcmd/api:go_default_library", + "//staging/src/k8s.io/client-go/tools/metrics:go_default_library", + "//staging/src/k8s.io/client-go/transport:go_default_library", + "//staging/src/k8s.io/client-go/util/cert:go_default_library", + "//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library", + "//vendor/golang.org/x/net/http2:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], ) go_test( @@ -11,6 +45,7 @@ go_test( srcs = [ "client_test.go", "config_test.go", + "connection_test.go", "plugin_test.go", "request_test.go", "url_utils_test.go", @@ -25,12 +60,14 @@ go_test( "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/clock:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/httpstream:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/intstr:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/scheme:go_default_library", "//staging/src/k8s.io/client-go/rest/watch:go_default_library", @@ -45,45 +82,6 @@ go_test( ], ) -go_library( - name = "go_default_library", - srcs = [ - "client.go", - "config.go", - "plugin.go", - "request.go", - "transport.go", - "url_utils.go", - "urlbackoff.go", - "warnings.go", - "zz_generated.deepcopy.go", - ], - importmap = "k8s.io/kubernetes/vendor/k8s.io/client-go/rest", - importpath = "k8s.io/client-go/rest", - deps = [ - "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/util/clock:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library", - "//staging/src/k8s.io/client-go/pkg/version:go_default_library", - "//staging/src/k8s.io/client-go/plugin/pkg/client/auth/exec:go_default_library", - "//staging/src/k8s.io/client-go/rest/watch:go_default_library", - "//staging/src/k8s.io/client-go/tools/clientcmd/api:go_default_library", - "//staging/src/k8s.io/client-go/tools/metrics:go_default_library", - "//staging/src/k8s.io/client-go/transport:go_default_library", - "//staging/src/k8s.io/client-go/util/cert:go_default_library", - "//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library", - "//vendor/golang.org/x/net/http2:go_default_library", - "//vendor/k8s.io/klog/v2:go_default_library", - ], -) - filegroup( name = "package-srcs", srcs = glob(["**"]), @@ -99,4 +97,5 @@ filegroup( "//staging/src/k8s.io/client-go/rest/watch:all-srcs", ], tags = ["automanaged"], + visibility = ["//visibility:public"], ) diff --git a/staging/src/k8s.io/client-go/rest/connection_test.go b/staging/src/k8s.io/client-go/rest/connection_test.go new file mode 100644 index 0000000000000..e58aff194a463 --- /dev/null +++ b/staging/src/k8s.io/client-go/rest/connection_test.go @@ -0,0 +1,164 @@ +/* +Copyright 2019 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 rest + +import ( + "context" + "fmt" + "io" + "net" + "net/http" + "net/http/httptest" + "net/url" + "os" + "strconv" + "sync/atomic" + "testing" + "time" + + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/runtime/serializer" + utilnet "k8s.io/apimachinery/pkg/util/net" +) + +type tcpLB struct { + t *testing.T + ln net.Listener + serverURL string + dials int32 +} + +func (lb *tcpLB) handleConnection(in net.Conn, stopCh chan struct{}) { + out, err := net.Dial("tcp", lb.serverURL) + if err != nil { + lb.t.Log(err) + return + } + go io.Copy(out, in) + go io.Copy(in, out) + <-stopCh + if err := out.Close(); err != nil { + lb.t.Fatalf("failed to close connection: %v", err) + } +} + +func (lb *tcpLB) serve(stopCh chan struct{}) { + conn, err := lb.ln.Accept() + if err != nil { + lb.t.Fatalf("failed to accept: %v", err) + } + atomic.AddInt32(&lb.dials, 1) + go lb.handleConnection(conn, stopCh) +} + +func newLB(t *testing.T, serverURL string) *tcpLB { + ln, err := net.Listen("tcp", "127.0.0.1:0") + if err != nil { + t.Fatalf("failed to bind: %v", err) + } + lb := tcpLB{ + serverURL: serverURL, + ln: ln, + t: t, + } + return &lb +} + +func setEnv(key, value string) func() { + originalValue := os.Getenv(key) + os.Setenv(key, value) + return func() { + os.Setenv(key, originalValue) + } +} + +const ( + readIdleTimeout int = 1 + pingTimeout int = 1 +) + +func TestReconnectBrokenTCP(t *testing.T) { + defer setEnv("HTTP2_READ_IDLE_TIMEOUT_SECONDS", strconv.Itoa(readIdleTimeout))() + defer setEnv("HTTP2_PING_TIMEOUT_SECONDS", strconv.Itoa(pingTimeout))() + defer setEnv("DISABLE_HTTP2", "")() + ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + fmt.Fprintf(w, "Hello, %s", r.Proto) + })) + ts.EnableHTTP2 = true + ts.StartTLS() + defer ts.Close() + + u, err := url.Parse(ts.URL) + if err != nil { + t.Fatalf("failed to parse URL from %q: %v", ts.URL, err) + } + lb := newLB(t, u.Host) + defer lb.ln.Close() + stopCh := make(chan struct{}) + go lb.serve(stopCh) + transport, ok := ts.Client().Transport.(*http.Transport) + if !ok { + t.Fatalf("failed to assert *http.Transport") + } + config := &Config{ + Host: "https://" + lb.ln.Addr().String(), + Transport: utilnet.SetTransportDefaults(transport), + Timeout: 1 * time.Second, + // These fields are required to create a REST client. + ContentConfig: ContentConfig{ + GroupVersion: &schema.GroupVersion{}, + NegotiatedSerializer: &serializer.CodecFactory{}, + }, + } + client, err := RESTClientFor(config) + if err != nil { + t.Fatalf("failed to create REST client: %v", err) + } + data, err := client.Get().AbsPath("/").DoRaw(context.TODO()) + if err != nil { + t.Fatalf("unexpected err: %s: %v", data, err) + } + if string(data) != "Hello, HTTP/2.0" { + t.Fatalf("unexpected response: %s", data) + } + + // Deliberately let the LB stop proxying traffic for the current + // connection. This mimics a broken TCP connection that's not properly + // closed. + close(stopCh) + + stopCh = make(chan struct{}) + go lb.serve(stopCh) + // Sleep enough time for the HTTP/2 health check to detect and close + // the broken TCP connection. + time.Sleep(time.Duration(1+readIdleTimeout+pingTimeout) * time.Second) + // If the HTTP/2 health check were disabled, the broken connection + // would still be in the connection pool, the following request would + // then reuse the broken connection instead of creating a new one, and + // thus would fail. + data, err = client.Get().AbsPath("/").DoRaw(context.TODO()) + if err != nil { + t.Fatalf("unexpected err: %v", err) + } + if string(data) != "Hello, HTTP/2.0" { + t.Fatalf("unexpected response: %s", data) + } + dials := atomic.LoadInt32(&lb.dials) + if dials != 2 { + t.Fatalf("expected %d dials, got %d", 2, dials) + } +} diff --git a/staging/src/k8s.io/client-go/scale/client.go b/staging/src/k8s.io/client-go/scale/client.go index 8b9b6e175369c..1306b37d9c017 100644 --- a/staging/src/k8s.io/client-go/scale/client.go +++ b/staging/src/k8s.io/client-go/scale/client.go @@ -107,8 +107,6 @@ func (c *scaleClient) pathAndVersionFor(resource schema.GroupResource) (string, return "", gvr, fmt.Errorf("unable to get full preferred group-version-resource for %s: %v", resource.String(), err) } - gvr = correctOapiDeploymentConfig(gvr) // TODO(directxman12): remove when /oapi is removed - groupVer := gvr.GroupVersion() return c.apiPathFor(groupVer), gvr, nil diff --git a/staging/src/k8s.io/client-go/scale/patch_dc.go b/staging/src/k8s.io/client-go/scale/patch_dc.go deleted file mode 100644 index da2330c8ee7ca..0000000000000 --- a/staging/src/k8s.io/client-go/scale/patch_dc.go +++ /dev/null @@ -1,28 +0,0 @@ -package scale - -import ( - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var dcGVR = schema.GroupVersionResource{ - Group: "", - Version: "v1", - Resource: "deploymentconfigs", -} - -var groupedDCGVR = schema.GroupVersionResource{ - Group: "apps.openshift.io", - Version: "v1", - Resource: "deploymentconfigs", -} - -func correctOapiDeploymentConfig(gvr schema.GroupVersionResource) schema.GroupVersionResource { - // TODO(directxman12): this is a dirty, dirty hack because oapi just appears in discovery as "/v1", like - // the kube core API. We can remove it if/when we get rid of the legacy oapi group entirely. It makes me - // cry a bit inside, but such is life. - if gvr == dcGVR { - return groupedDCGVR - } - - return gvr -} diff --git a/staging/src/k8s.io/client-go/transport/cache.go b/staging/src/k8s.io/client-go/transport/cache.go index 2ad7dfb3182ef..fa2afb1f161e7 100644 --- a/staging/src/k8s.io/client-go/transport/cache.go +++ b/staging/src/k8s.io/client-go/transport/cache.go @@ -18,13 +18,12 @@ package transport import ( "fmt" + "net" "net/http" "strings" "sync" "time" - libgonetwork "github.com/openshift/library-go/pkg/network" - utilnet "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/wait" ) @@ -90,7 +89,10 @@ func (c *tlsTransportCache) get(config *Config) (http.RoundTripper, error) { dial := config.Dial if dial == nil { - dial = libgonetwork.DefaultClientDialContext() + dial = (&net.Dialer{ + Timeout: 30 * time.Second, + KeepAlive: 30 * time.Second, + }).DialContext } // If we use are reloading files, we need to handle certificate rotation properly diff --git a/staging/src/k8s.io/client-go/transport/round_trippers.go b/staging/src/k8s.io/client-go/transport/round_trippers.go index a05208d924d3b..f4cfadbd3da8e 100644 --- a/staging/src/k8s.io/client-go/transport/round_trippers.go +++ b/staging/src/k8s.io/client-go/transport/round_trippers.go @@ -340,6 +340,7 @@ func (r *requestInfo) toCurl() string { headers := "" for key, values := range r.RequestHeaders { for _, value := range values { + value = maskValue(key, value) headers += fmt.Sprintf(` -H %q`, fmt.Sprintf("%s: %s", key, value)) } } diff --git a/staging/src/k8s.io/client-go/util/jsonpath/jsonpath.go b/staging/src/k8s.io/client-go/util/jsonpath/jsonpath.go index 9740fe69d0253..49ecd1465ae9a 100644 --- a/staging/src/k8s.io/client-go/util/jsonpath/jsonpath.go +++ b/staging/src/k8s.io/client-go/util/jsonpath/jsonpath.go @@ -103,13 +103,23 @@ func (j *JSONPath) FindResults(data interface{}) ([][]reflect.Value, error) { if j.beginRange > 0 { j.beginRange-- j.inRange++ - for _, value := range results { + if len(results) > 0 { + for _, value := range results { + j.parser.Root.Nodes = nodes[i+1:] + nextResults, err := j.FindResults(value.Interface()) + if err != nil { + return nil, err + } + fullResult = append(fullResult, nextResults...) + } + } else { + // If the range has no results, we still need to process the nodes within the range + // so the position will advance to the end node j.parser.Root.Nodes = nodes[i+1:] - nextResults, err := j.FindResults(value.Interface()) + _, err := j.FindResults(nil) if err != nil { return nil, err } - fullResult = append(fullResult, nextResults...) } j.inRange-- diff --git a/staging/src/k8s.io/client-go/util/jsonpath/jsonpath_test.go b/staging/src/k8s.io/client-go/util/jsonpath/jsonpath_test.go index e15c4097d1c6f..34a0f9e7de8ae 100644 --- a/staging/src/k8s.io/client-go/util/jsonpath/jsonpath_test.go +++ b/staging/src/k8s.io/client-go/util/jsonpath/jsonpath_test.go @@ -393,6 +393,21 @@ func TestKubernetes(t *testing.T) { testJSONPathSortOutput(randomPrintOrderTests, t) } +func TestEmptyRange(t *testing.T) { + var input = []byte(`{"items":[]}`) + var emptyList interface{} + err := json.Unmarshal(input, &emptyList) + if err != nil { + t.Error(err) + } + + tests := []jsonpathTest{ + {"empty range", `{range .items[*]}{.metadata.name}{end}`, &emptyList, "", false}, + {"empty nested range", `{range .items[*]}{.metadata.name}{":"}{range @.spec.containers[*]}{.name}{","}{end}{"+"}{end}`, &emptyList, "", false}, + } + testJSONPath(tests, true, t) +} + func TestNestedRanges(t *testing.T) { var input = []byte(`{ "items": [ diff --git a/staging/src/k8s.io/cloud-provider/go.mod b/staging/src/k8s.io/cloud-provider/go.mod index 911d2d19b2789..0624e65d53bdb 100644 --- a/staging/src/k8s.io/cloud-provider/go.mod +++ b/staging/src/k8s.io/cloud-provider/go.mod @@ -7,44 +7,18 @@ go 1.15 require ( github.com/google/go-cmp v0.4.0 github.com/stretchr/testify v1.4.0 - k8s.io/api v0.19.0 - k8s.io/apimachinery v0.19.0 - k8s.io/client-go v0.19.0 - k8s.io/component-base v0.19.0 - k8s.io/klog/v2 v2.3.0 + k8s.io/api v0.0.0 + k8s.io/apimachinery v0.0.0 + k8s.io/client-go v0.0.0 + k8s.io/component-base v0.0.0 + k8s.io/klog/v2 v2.2.0 k8s.io/utils v0.0.0-20200729134348-d5654de09c73 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - go.uber.org/multierr => go.uber.org/multierr v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery - k8s.io/apiserver => ../apiserver - k8s.io/cli-runtime => ../cli-runtime k8s.io/client-go => ../client-go k8s.io/cloud-provider => ../cloud-provider - k8s.io/cluster-bootstrap => ../cluster-bootstrap - k8s.io/code-generator => ../code-generator k8s.io/component-base => ../component-base - k8s.io/cri-api => ../cri-api - k8s.io/csi-translation-lib => ../csi-translation-lib - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator - k8s.io/kube-controller-manager => ../kube-controller-manager - k8s.io/kube-proxy => ../kube-proxy - k8s.io/kube-scheduler => ../kube-scheduler - k8s.io/kubectl => ../kubectl - k8s.io/kubelet => ../kubelet - k8s.io/legacy-cloud-providers => ../legacy-cloud-providers - k8s.io/metrics => ../metrics - k8s.io/sample-apiserver => ../sample-apiserver - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/cloud-provider/go.sum b/staging/src/k8s.io/cloud-provider/go.sum index 481337a27395a..ede9e06ad9549 100644 --- a/staging/src/k8s.io/cloud-provider/go.sum +++ b/staging/src/k8s.io/cloud-provider/go.sum @@ -1,4 +1,3 @@ -bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -12,7 +11,6 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7 cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= @@ -23,152 +21,47 @@ github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+v github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= -github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ= -github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -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/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= -github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.0+incompatible h1:CGxCgetQ64DKk7rdZ++Vfnb1+ogGNnB17OJKJXD2Cfs= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200507155900-a9f01edf17e3/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200601085316-9f1617e5c574/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= -github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v1.0.0/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v1.0.0/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -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/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -176,61 +69,15 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 h1:5ZkaAPbicIKTF2I64qf5Fh8Aa83Q/dnOafMYV0OMwjA= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -241,7 +88,6 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -250,18 +96,8 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -275,105 +111,41 @@ github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OI github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= -github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kubernetes-sigs/kube-storage-version-migrator v0.0.0-20191127225502-51849bc15f17/go.mod h1:enH0BVV+4+DAgWdwSlMefG8bBzTfVMTr1lApzdLZ/cc= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= -github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= -github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= -github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= -github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= -github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= @@ -381,59 +153,25 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= -github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc90.0.20200616040943-82d2fa4eb069/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8= -github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728/go.mod h1:+B51GHs/jfZzk93MKrSSA8BWxrulVVcxiBG7kdFpd74= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible h1:AGewrYJW8aXFkkf86sSoiO9L/a/QYKZvODVCaB/wk4o= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20200831114015-2ab0c61c15de/go.mod h1:6vwp+YhYOIlj8MpkQKkebTTSn2TuYyvgiAFQ206jIEQ= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98 h1:JYwa3H00larjMVZXmh7L4FHDhNlKdWSgYi0kLdav9BY= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -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.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -441,124 +179,49 @@ github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1: github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= -github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200520041808-52d707b772fe/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -578,32 +241,22 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -615,105 +268,71 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1-0.20200106000736-b8fc810ca6b5/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -729,14 +348,11 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -745,35 +361,28 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -782,33 +391,17 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A= -k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= -k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= -sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/staging/src/k8s.io/cluster-bootstrap/go.mod b/staging/src/k8s.io/cluster-bootstrap/go.mod index 524c1b1e06163..1709809871a08 100644 --- a/staging/src/k8s.io/cluster-bootstrap/go.mod +++ b/staging/src/k8s.io/cluster-bootstrap/go.mod @@ -7,16 +7,13 @@ go 1.15 require ( github.com/stretchr/testify v1.4.0 gopkg.in/square/go-jose.v2 v2.2.2 - k8s.io/api v0.19.0 - k8s.io/apimachinery v0.19.0 - k8s.io/klog/v2 v2.3.0 + k8s.io/api v0.0.0 + k8s.io/apimachinery v0.0.0 + k8s.io/klog/v2 v2.2.0 ) replace ( - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api k8s.io/apimachinery => ../apimachinery k8s.io/cluster-bootstrap => ../cluster-bootstrap - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 ) diff --git a/staging/src/k8s.io/cluster-bootstrap/go.sum b/staging/src/k8s.io/cluster-bootstrap/go.sum index 471c728108947..86e208abd97c7 100644 --- a/staging/src/k8s.io/cluster-bootstrap/go.sum +++ b/staging/src/k8s.io/cluster-bootstrap/go.sum @@ -18,14 +18,15 @@ github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLi github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= @@ -54,7 +55,7 @@ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpO github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -70,9 +71,11 @@ github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9 github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -84,46 +87,62 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -150,16 +169,20 @@ gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/square/go-jose.v2 v2.2.2 h1:orlkJ3myw8CN1nVQHBFfloD+L3egixIa4FvUP6RosSA= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/staging/src/k8s.io/code-generator/go.mod b/staging/src/k8s.io/code-generator/go.mod index 199624ca5896b..839d6340b6fc8 100644 --- a/staging/src/k8s.io/code-generator/go.mod +++ b/staging/src/k8s.io/code-generator/go.mod @@ -8,25 +8,16 @@ require ( github.com/emicklei/go-restful v2.9.5+incompatible // indirect github.com/go-openapi/jsonreference v0.19.3 // indirect github.com/go-openapi/spec v0.19.3 // indirect - github.com/gogo/protobuf v1.3.1 + github.com/gogo/protobuf v1.3.2 github.com/json-iterator/go v1.1.10 // indirect github.com/mailru/easyjson v0.7.0 // indirect github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.4.0 // indirect - golang.org/x/mod v0.3.0 // indirect - golang.org/x/net v0.0.0-20200707034311-ab3426394381 // indirect - golang.org/x/text v0.3.3 // indirect - golang.org/x/tools v0.0.0-20200616133436-c1934b75d054 // indirect - gopkg.in/yaml.v2 v2.3.0 // indirect + golang.org/x/net v0.0.0-20201110031124-69a78807bb2b // indirect k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14 - k8s.io/klog/v2 v2.3.0 + k8s.io/klog/v2 v2.2.0 k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 sigs.k8s.io/yaml v1.2.0 // indirect ) -replace ( - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 - k8s.io/code-generator => ../code-generator - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 -) +replace k8s.io/code-generator => ../code-generator diff --git a/staging/src/k8s.io/code-generator/go.sum b/staging/src/k8s.io/code-generator/go.sum index 4c55ee3df2b94..8684910e82541 100644 --- a/staging/src/k8s.io/code-generator/go.sum +++ b/staging/src/k8s.io/code-generator/go.sum @@ -13,6 +13,7 @@ github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= @@ -30,8 +31,8 @@ github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dp github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -40,9 +41,8 @@ github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3i github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -62,8 +62,8 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -75,6 +75,7 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -88,43 +89,47 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054 h1:HHeAlu5H9b71C+Fx0K+1dGgVFN1DM1/wz4aoGOA5qS8= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a h1:CB3a9Nez8M13wwlr/E2YtwoU+qYHKfC+JrDa45RXXoQ= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14 h1:t4L10Qfx/p7ASH3gXCdIUtPbbIuegCoUJf3TMSFekjw= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= diff --git a/staging/src/k8s.io/component-base/featuregate/feature_gate.go b/staging/src/k8s.io/component-base/featuregate/feature_gate.go index a61276b9d4889..c805ffb01b573 100644 --- a/staging/src/k8s.io/component-base/featuregate/feature_gate.go +++ b/staging/src/k8s.io/component-base/featuregate/feature_gate.go @@ -218,8 +218,7 @@ func (f *featureGate) SetFromMap(m map[string]bool) error { k := Feature(k) featureSpec, ok := known[k] if !ok { - klog.Warningf("unrecognized feature gate: %s", k) - continue + return fmt.Errorf("unrecognized feature gate: %s", k) } if featureSpec.LockToDefault && featureSpec.Default != v { return fmt.Errorf("cannot set feature gate %v to %v, feature is locked to %v", k, v, featureSpec.Default) diff --git a/staging/src/k8s.io/component-base/featuregate/feature_gate_test.go b/staging/src/k8s.io/component-base/featuregate/feature_gate_test.go index 5e0fd2dde6203..610b271dc385f 100644 --- a/staging/src/k8s.io/component-base/featuregate/feature_gate_test.go +++ b/staging/src/k8s.io/component-base/featuregate/feature_gate_test.go @@ -52,7 +52,7 @@ func TestFeatureGateFlag(t *testing.T) { testAlphaGate: false, testBetaGate: false, }, - //parseError: "unrecognized feature gate: fooBarBaz", + parseError: "unrecognized feature gate: fooBarBaz", }, { arg: "AllAlpha=false", @@ -356,7 +356,7 @@ func TestFeatureGateSetFromMap(t *testing.T) { testAlphaGate: false, testBetaGate: false, }, - //setmapError: "unrecognized feature gate:", + setmapError: "unrecognized feature gate:", }, { name: "set locked gates", diff --git a/staging/src/k8s.io/component-base/go.mod b/staging/src/k8s.io/component-base/go.mod index c75c909bfe691..ed398c85a9ad2 100644 --- a/staging/src/k8s.io/component-base/go.mod +++ b/staging/src/k8s.io/component-base/go.mod @@ -8,50 +8,27 @@ require ( github.com/blang/semver v3.5.0+incompatible github.com/go-logr/logr v0.2.0 github.com/google/go-cmp v0.4.0 + github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect github.com/moby/term v0.0.0-20200312100748-672ec06f55cd github.com/prometheus/client_golang v1.7.1 github.com/prometheus/client_model v0.2.0 github.com/prometheus/common v0.10.0 github.com/prometheus/procfs v0.1.3 + github.com/sirupsen/logrus v1.6.0 // indirect github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.4.0 + go.uber.org/atomic v1.4.0 // indirect + go.uber.org/multierr v1.1.0 // indirect go.uber.org/zap v1.10.0 - k8s.io/apimachinery v0.19.0 - k8s.io/client-go v0.19.0 - k8s.io/klog/v2 v2.3.0 + k8s.io/apimachinery v0.0.0 + k8s.io/client-go v0.0.0 + k8s.io/klog/v2 v2.2.0 k8s.io/utils v0.0.0-20200729134348-d5654de09c73 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - go.uber.org/multierr => go.uber.org/multierr v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery - k8s.io/apiserver => ../apiserver - k8s.io/cli-runtime => ../cli-runtime k8s.io/client-go => ../client-go - k8s.io/cloud-provider => ../cloud-provider - k8s.io/cluster-bootstrap => ../cluster-bootstrap - k8s.io/code-generator => ../code-generator k8s.io/component-base => ../component-base - k8s.io/cri-api => ../cri-api - k8s.io/csi-translation-lib => ../csi-translation-lib - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator - k8s.io/kube-controller-manager => ../kube-controller-manager - k8s.io/kube-proxy => ../kube-proxy - k8s.io/kube-scheduler => ../kube-scheduler - k8s.io/kubectl => ../kubectl - k8s.io/kubelet => ../kubelet - k8s.io/legacy-cloud-providers => ../legacy-cloud-providers - k8s.io/metrics => ../metrics - k8s.io/sample-apiserver => ../sample-apiserver - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/component-base/go.sum b/staging/src/k8s.io/component-base/go.sum index ac11409fa8e43..9646effad2efb 100644 --- a/staging/src/k8s.io/component-base/go.sum +++ b/staging/src/k8s.io/component-base/go.sum @@ -1,4 +1,3 @@ -bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -12,7 +11,6 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7 cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= @@ -24,153 +22,47 @@ github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+v github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= -github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ= -github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -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/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= -github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.0+incompatible h1:CGxCgetQ64DKk7rdZ++Vfnb1+ogGNnB17OJKJXD2Cfs= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200507155900-a9f01edf17e3/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200601085316-9f1617e5c574/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= -github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v1.0.0/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v1.0.0/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -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/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -178,61 +70,15 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 h1:5ZkaAPbicIKTF2I64qf5Fh8Aa83Q/dnOafMYV0OMwjA= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -242,9 +88,7 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -253,18 +97,8 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -278,59 +112,27 @@ github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OI github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= -github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -338,44 +140,12 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kubernetes-sigs/kube-storage-version-migrator v0.0.0-20191127225502-51849bc15f17/go.mod h1:enH0BVV+4+DAgWdwSlMefG8bBzTfVMTr1lApzdLZ/cc= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= -github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= -github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= -github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= -github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= -github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd h1:aY7OQNf2XqY/JQ6qREWamhI/81os/agb2BAGpcx5yWI= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -384,59 +154,25 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= -github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc90.0.20200616040943-82d2fa4eb069/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8= -github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728/go.mod h1:+B51GHs/jfZzk93MKrSSA8BWxrulVVcxiBG7kdFpd74= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible h1:AGewrYJW8aXFkkf86sSoiO9L/a/QYKZvODVCaB/wk4o= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20200831114015-2ab0c61c15de/go.mod h1:6vwp+YhYOIlj8MpkQKkebTTSn2TuYyvgiAFQ206jIEQ= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98 h1:JYwa3H00larjMVZXmh7L4FHDhNlKdWSgYi0kLdav9BY= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -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.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -444,98 +180,34 @@ github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1: github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= -github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200520041808-52d707b772fe/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI= @@ -543,30 +215,18 @@ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/ go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -586,32 +246,22 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -623,105 +273,71 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1-0.20200106000736-b8fc810ca6b5/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -737,14 +353,11 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -753,35 +366,28 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= @@ -791,33 +397,17 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A= -k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= -k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= -sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/staging/src/k8s.io/component-base/logs/json/json.go b/staging/src/k8s.io/component-base/logs/json/json.go index f9bb55656fa71..fd23246979e63 100644 --- a/staging/src/k8s.io/component-base/logs/json/json.go +++ b/staging/src/k8s.io/component-base/logs/json/json.go @@ -148,8 +148,9 @@ func (l *zapLogger) WithName(name string) logr.Logger { var encoderConfig = zapcore.EncoderConfig{ MessageKey: "msg", - TimeKey: "ts", - EncodeTime: zapcore.EpochMillisTimeEncoder, + TimeKey: "ts", + EncodeTime: zapcore.EpochMillisTimeEncoder, + EncodeDuration: zapcore.StringDurationEncoder, } // NewJSONLogger creates a new json logr.Logger using the given Zap Logger to log. diff --git a/staging/src/k8s.io/component-base/logs/json/json_test.go b/staging/src/k8s.io/component-base/logs/json/json_test.go index 58ea5d1103e7e..da65cd55bbdc6 100644 --- a/staging/src/k8s.io/component-base/logs/json/json_test.go +++ b/staging/src/k8s.io/component-base/logs/json/json_test.go @@ -57,6 +57,11 @@ func TestZapLoggerInfo(t *testing.T) { format: "{\"ts\":%f,\"msg\":\"non-string key argument passed to logging, ignoring all later arguments\",\"v\":0}\n{\"ts\":0.000123,\"msg\":\"test for non-string key argument\",\"v\":0,\"ns\":\"default\",\"podnum\":2}\n", keysValues: []interface{}{"ns", "default", "podnum", 2, 200, "replica", "Running", 10}, }, + { + msg: "test for duration value argument", + format: "{\"ts\":%f,\"msg\":\"test for duration value argument\",\"v\":0,\"duration\":\"5s\"}\n", + keysValues: []interface{}{"duration", time.Duration(5 * time.Second)}, + }, } for _, data := range testDataInfo { diff --git a/staging/src/k8s.io/cri-api/go.mod b/staging/src/k8s.io/cri-api/go.mod index ff0c07798861d..a9f06501eb744 100644 --- a/staging/src/k8s.io/cri-api/go.mod +++ b/staging/src/k8s.io/cri-api/go.mod @@ -6,20 +6,16 @@ go 1.15 require ( github.com/davecgh/go-spew v1.1.1 // indirect - github.com/gogo/protobuf v1.3.1 + github.com/gogo/protobuf v1.3.2 github.com/golang/protobuf v1.4.2 // indirect github.com/kr/pretty v0.2.0 // indirect github.com/stretchr/testify v1.4.0 - golang.org/x/net v0.0.0-20200707034311-ab3426394381 // indirect - golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 // indirect - golang.org/x/text v0.3.3 // indirect + golang.org/x/net v0.0.0-20201110031124-69a78807bb2b // indirect + golang.org/x/sys v0.0.0-20201112073958-5cba982894dd // indirect google.golang.org/grpc v1.27.0 google.golang.org/protobuf v1.24.0 // indirect gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect - gopkg.in/yaml.v2 v2.3.0 // indirect + gopkg.in/yaml.v2 v2.2.8 // indirect ) -replace ( - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 - k8s.io/cri-api => ../cri-api -) +replace k8s.io/cri-api => ../cri-api diff --git a/staging/src/k8s.io/cri-api/go.sum b/staging/src/k8s.io/cri-api/go.sum index a414ef04394b8..4d753cdf139b6 100644 --- a/staging/src/k8s.io/cri-api/go.sum +++ b/staging/src/k8s.io/cri-api/go.sum @@ -7,8 +7,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= @@ -27,7 +27,7 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -40,40 +40,56 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -90,7 +106,6 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= @@ -98,6 +113,7 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/staging/src/k8s.io/cri-api/pkg/apis/runtime/v1alpha2/api.pb.go b/staging/src/k8s.io/cri-api/pkg/apis/runtime/v1alpha2/api.pb.go index 99880d3e0a5ba..f4ee5d0a515c3 100644 --- a/staging/src/k8s.io/cri-api/pkg/apis/runtime/v1alpha2/api.pb.go +++ b/staging/src/k8s.io/cri-api/pkg/apis/runtime/v1alpha2/api.pb.go @@ -17224,10 +17224,7 @@ func (m *VersionRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -17405,10 +17402,7 @@ func (m *VersionResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -17554,10 +17548,7 @@ func (m *DNSConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -17696,10 +17687,7 @@ func (m *PortMapping) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -17872,10 +17860,7 @@ func (m *Mount) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -18014,10 +17999,7 @@ func (m *NamespaceOption) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -18086,10 +18068,7 @@ func (m *Int64Value) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -18431,10 +18410,7 @@ func (m *LinuxSandboxSecurityContext) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -18662,7 +18638,7 @@ func (m *LinuxPodSandboxConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -18679,10 +18655,7 @@ func (m *LinuxPodSandboxConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -18847,10 +18820,7 @@ func (m *PodSandboxMetadata) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -19180,7 +19150,7 @@ func (m *PodSandboxConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -19307,7 +19277,7 @@ func (m *PodSandboxConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -19360,10 +19330,7 @@ func (m *PodSandboxConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -19481,10 +19448,7 @@ func (m *RunPodSandboxRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -19566,10 +19530,7 @@ func (m *RunPodSandboxResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -19651,10 +19612,7 @@ func (m *StopPodSandboxRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -19704,10 +19662,7 @@ func (m *StopPodSandboxResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -19789,10 +19744,7 @@ func (m *RemovePodSandboxRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -19842,10 +19794,7 @@ func (m *RemovePodSandboxResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -19947,10 +19896,7 @@ func (m *PodSandboxStatusRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -20032,10 +19978,7 @@ func (m *PodIP) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -20151,10 +20094,7 @@ func (m *PodSandboxNetworkStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -20240,10 +20180,7 @@ func (m *Namespace) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -20329,10 +20266,7 @@ func (m *LinuxPodSandboxStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -20670,7 +20604,7 @@ func (m *PodSandboxStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -20797,7 +20731,7 @@ func (m *PodSandboxStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -20846,10 +20780,7 @@ func (m *PodSandboxStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -21045,7 +20976,7 @@ func (m *PodSandboxStatusResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -21062,10 +20993,7 @@ func (m *PodSandboxStatusResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -21134,10 +21062,7 @@ func (m *PodSandboxStateValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -21365,7 +21290,7 @@ func (m *PodSandboxFilter) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -21382,10 +21307,7 @@ func (m *PodSandboxFilter) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -21471,10 +21393,7 @@ func (m *ListPodSandboxRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -21740,7 +21659,7 @@ func (m *PodSandbox) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -21867,7 +21786,7 @@ func (m *PodSandbox) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -21916,10 +21835,7 @@ func (m *PodSandbox) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -22003,10 +21919,7 @@ func (m *ListPodSandboxResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -22198,7 +22111,7 @@ func (m *ImageSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -22215,10 +22128,7 @@ func (m *ImageSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -22332,10 +22242,7 @@ func (m *KeyValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -22578,10 +22485,7 @@ func (m *LinuxContainerResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -22682,10 +22586,7 @@ func (m *HugepageLimit) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -22863,10 +22764,7 @@ func (m *SELinuxOption) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -22980,10 +22878,7 @@ func (m *Capability) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -23509,10 +23404,7 @@ func (m *LinuxContainerSecurityContext) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -23634,10 +23526,7 @@ func (m *LinuxContainerConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -23751,10 +23640,7 @@ func (m *WindowsContainerSecurityContext) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -23876,10 +23762,7 @@ func (m *WindowsContainerConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -24005,10 +23888,7 @@ func (m *WindowsContainerResources) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -24109,10 +23989,7 @@ func (m *ContainerMetadata) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -24258,10 +24135,7 @@ func (m *Device) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -24691,7 +24565,7 @@ func (m *ContainerConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -24818,7 +24692,7 @@ func (m *ContainerConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -24999,10 +24873,7 @@ func (m *ContainerConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -25156,10 +25027,7 @@ func (m *CreateContainerRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -25241,10 +25109,7 @@ func (m *CreateContainerResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -25326,10 +25191,7 @@ func (m *StartContainerRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -25379,10 +25241,7 @@ func (m *StartContainerResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -25483,10 +25342,7 @@ func (m *StopContainerRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -25536,10 +25392,7 @@ func (m *StopContainerResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -25621,10 +25474,7 @@ func (m *RemoveContainerRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -25674,10 +25524,7 @@ func (m *RemoveContainerResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -25746,10 +25593,7 @@ func (m *ContainerStateValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -26009,7 +25853,7 @@ func (m *ContainerFilter) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -26026,10 +25870,7 @@ func (m *ContainerFilter) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -26115,10 +25956,7 @@ func (m *ListContainersRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -26484,7 +26322,7 @@ func (m *Container) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -26611,7 +26449,7 @@ func (m *Container) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -26628,10 +26466,7 @@ func (m *Container) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -26715,10 +26550,7 @@ func (m *ListContainersResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -26820,10 +26652,7 @@ func (m *ContainerStatusRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -27278,7 +27107,7 @@ func (m *ContainerStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -27405,7 +27234,7 @@ func (m *ContainerStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -27488,10 +27317,7 @@ func (m *ContainerStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -27687,7 +27513,7 @@ func (m *ContainerStatusResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -27704,10 +27530,7 @@ func (m *ContainerStatusResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -27825,10 +27648,7 @@ func (m *UpdateContainerResourcesRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -27878,10 +27698,7 @@ func (m *UpdateContainerResourcesResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -28014,10 +27831,7 @@ func (m *ExecSyncRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -28154,10 +27968,7 @@ func (m *ExecSyncResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -28351,10 +28162,7 @@ func (m *ExecRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -28436,10 +28244,7 @@ func (m *ExecResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -28601,10 +28406,7 @@ func (m *AttachRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -28686,10 +28488,7 @@ func (m *AttachResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -28847,10 +28646,7 @@ func (m *PortForwardRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -28932,10 +28728,7 @@ func (m *PortForwardResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -29021,10 +28814,7 @@ func (m *ImageFilter) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -29110,10 +28900,7 @@ func (m *ListImagesRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -29382,10 +29169,7 @@ func (m *Image) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -29469,10 +29253,7 @@ func (m *ListImagesResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -29578,10 +29359,7 @@ func (m *ImageStatusRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -29777,7 +29555,7 @@ func (m *ImageStatusResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -29794,10 +29572,7 @@ func (m *ImageStatusResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -30039,10 +29814,7 @@ func (m *AuthConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -30200,10 +29972,7 @@ func (m *PullImageRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -30285,10 +30054,7 @@ func (m *PullImageResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -30374,10 +30140,7 @@ func (m *RemoveImageRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -30427,10 +30190,7 @@ func (m *RemoveImageResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -30512,10 +30272,7 @@ func (m *NetworkConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -30601,10 +30358,7 @@ func (m *RuntimeConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -30690,10 +30444,7 @@ func (m *UpdateRuntimeConfigRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -30743,10 +30494,7 @@ func (m *UpdateRuntimeConfigResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -30912,10 +30660,7 @@ func (m *RuntimeCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -30999,10 +30744,7 @@ func (m *RuntimeStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -31072,10 +30814,7 @@ func (m *StatusRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -31271,7 +31010,7 @@ func (m *StatusResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -31288,10 +31027,7 @@ func (m *StatusResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -31341,10 +31077,7 @@ func (m *ImageFsInfoRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -31413,10 +31146,7 @@ func (m *UInt64Value) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -31498,10 +31228,7 @@ func (m *FilesystemIdentifier) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -31678,10 +31405,7 @@ func (m *FilesystemUsage) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -31765,10 +31489,7 @@ func (m *ImageFsInfoResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -31850,10 +31571,7 @@ func (m *ContainerStatsRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -31939,10 +31657,7 @@ func (m *ContainerStatsResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -32028,10 +31743,7 @@ func (m *ListContainerStatsRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -32255,7 +31967,7 @@ func (m *ContainerStatsFilter) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -32272,10 +31984,7 @@ func (m *ContainerStatsFilter) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -32359,10 +32068,7 @@ func (m *ListContainerStatsResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -32590,7 +32296,7 @@ func (m *ContainerAttributes) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -32717,7 +32423,7 @@ func (m *ContainerAttributes) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -32734,10 +32440,7 @@ func (m *ContainerAttributes) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -32931,10 +32634,7 @@ func (m *ContainerStats) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -33039,10 +32739,7 @@ func (m *CpuUsage) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -33147,10 +32844,7 @@ func (m *MemoryUsage) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -33232,10 +32926,7 @@ func (m *ReopenContainerLogRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -33285,10 +32976,7 @@ func (m *ReopenContainerLogResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/csi-translation-lib/go.mod b/staging/src/k8s.io/csi-translation-lib/go.mod index 1bb6717db0c7a..05c84888997e8 100644 --- a/staging/src/k8s.io/csi-translation-lib/go.mod +++ b/staging/src/k8s.io/csi-translation-lib/go.mod @@ -6,30 +6,17 @@ go 1.15 require ( github.com/stretchr/testify v1.4.0 - k8s.io/api v0.19.0 - k8s.io/apimachinery v0.19.0 + k8s.io/api v0.0.0 + k8s.io/apimachinery v0.0.0 k8s.io/cloud-provider v0.0.0 - k8s.io/klog/v2 v2.3.0 + k8s.io/klog/v2 v2.2.0 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery - k8s.io/apiserver => ../apiserver k8s.io/client-go => ../client-go k8s.io/cloud-provider => ../cloud-provider - k8s.io/code-generator => ../code-generator k8s.io/component-base => ../component-base k8s.io/csi-translation-lib => ../csi-translation-lib - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/csi-translation-lib/go.sum b/staging/src/k8s.io/csi-translation-lib/go.sum index ca0cab4e82405..600b13bf20673 100644 --- a/staging/src/k8s.io/csi-translation-lib/go.sum +++ b/staging/src/k8s.io/csi-translation-lib/go.sum @@ -1,5 +1,16 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= @@ -13,78 +24,39 @@ github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -92,60 +64,20 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -157,12 +89,7 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -172,33 +99,29 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -207,22 +130,11 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= @@ -230,203 +142,193 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -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.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -440,41 +342,38 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/BUILD b/staging/src/k8s.io/csi-translation-lib/plugins/BUILD index 667605de858a3..2ff7a55d92778 100644 --- a/staging/src/k8s.io/csi-translation-lib/plugins/BUILD +++ b/staging/src/k8s.io/csi-translation-lib/plugins/BUILD @@ -46,6 +46,7 @@ go_test( "azure_file_test.go", "gce_pd_test.go", "in_tree_volume_test.go", + "openstack_cinder_test.go", "vsphere_volume_test.go", ], embed = [":go_default_library"], diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/aws_ebs.go b/staging/src/k8s.io/csi-translation-lib/plugins/aws_ebs.go index 5db1e921f8de4..b144022cd4c32 100644 --- a/staging/src/k8s.io/csi-translation-lib/plugins/aws_ebs.go +++ b/staging/src/k8s.io/csi-translation-lib/plugins/aws_ebs.go @@ -85,7 +85,7 @@ func (t *awsElasticBlockStoreCSITranslator) TranslateInTreeStorageClassToCSI(sc // TranslateInTreeInlineVolumeToCSI takes a Volume with AWSElasticBlockStore set from in-tree // and converts the AWSElasticBlockStore source to a CSIPersistentVolumeSource -func (t *awsElasticBlockStoreCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Volume) (*v1.PersistentVolume, error) { +func (t *awsElasticBlockStoreCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Volume, podNamespace string) (*v1.PersistentVolume, error) { if volume == nil || volume.AWSElasticBlockStore == nil { return nil, fmt.Errorf("volume is nil or AWS EBS not defined on volume") } @@ -98,7 +98,7 @@ func (t *awsElasticBlockStoreCSITranslator) TranslateInTreeInlineVolumeToCSI(vol ObjectMeta: metav1.ObjectMeta{ // Must be unique per disk as it is used as the unique part of the // staging path - Name: fmt.Sprintf("%s-%s", AWSEBSDriverName, ebsSource.VolumeID), + Name: fmt.Sprintf("%s-%s", AWSEBSDriverName, volumeHandle), }, Spec: v1.PersistentVolumeSpec{ PersistentVolumeSource: v1.PersistentVolumeSource{ diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/aws_ebs_test.go b/staging/src/k8s.io/csi-translation-lib/plugins/aws_ebs_test.go index 4e92c37e70290..6fa9b8f5a51ef 100644 --- a/staging/src/k8s.io/csi-translation-lib/plugins/aws_ebs_test.go +++ b/staging/src/k8s.io/csi-translation-lib/plugins/aws_ebs_test.go @@ -17,12 +17,20 @@ limitations under the License. package plugins import ( + v1 "k8s.io/api/core/v1" "reflect" "testing" storage "k8s.io/api/storage/v1" ) +const ( + normalVolumeID = "vol-02399794d890f9375" + awsVolumeID = "aws:///vol-02399794d890f9375" + awsZoneVolumeID = "aws://us-west-2a/vol-02399794d890f9375" + invalidVolumeID = "aws://us-west-2a/02399794d890f9375" +) + func TestKubernetesVolumeIDToEBSVolumeID(t *testing.T) { testCases := []struct { name string @@ -32,22 +40,22 @@ func TestKubernetesVolumeIDToEBSVolumeID(t *testing.T) { }{ { name: "Normal ID format", - kubernetesID: "vol-02399794d890f9375", - ebsVolumeID: "vol-02399794d890f9375", + kubernetesID: normalVolumeID, + ebsVolumeID: normalVolumeID, }, { name: "aws:///{volumeId} format", - kubernetesID: "aws:///vol-02399794d890f9375", - ebsVolumeID: "vol-02399794d890f9375", + kubernetesID: awsVolumeID, + ebsVolumeID: normalVolumeID, }, { name: "aws://{zone}/{volumeId} format", - kubernetesID: "aws://us-west-2a/vol-02399794d890f9375", - ebsVolumeID: "vol-02399794d890f9375", + kubernetesID: awsZoneVolumeID, + ebsVolumeID: normalVolumeID, }, { name: "fails on invalid volume ID", - kubernetesID: "aws://us-west-2a/02399794d890f9375", + kubernetesID: invalidVolumeID, expErr: true, }, } @@ -112,3 +120,81 @@ func TestTranslateEBSInTreeStorageClassToCSI(t *testing.T) { } } + +func TestTranslateInTreeInlineVolumeToCSI(t *testing.T) { + translator := NewAWSElasticBlockStoreCSITranslator() + + cases := []struct { + name string + volumeSource v1.VolumeSource + expPVName string + expErr bool + }{ + { + name: "Normal ID format", + volumeSource: v1.VolumeSource{ + AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{ + VolumeID: normalVolumeID, + }, + }, + expPVName: "ebs.csi.aws.com-" + normalVolumeID, + }, + { + name: "aws:///{volumeId} format", + volumeSource: v1.VolumeSource{ + AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{ + VolumeID: awsVolumeID, + }, + }, + expPVName: "ebs.csi.aws.com-" + normalVolumeID, + }, + { + name: "aws://{zone}/{volumeId} format", + volumeSource: v1.VolumeSource{ + AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{ + VolumeID: awsZoneVolumeID, + }, + }, + expPVName: "ebs.csi.aws.com-" + normalVolumeID, + }, + { + name: "fails on invalid volume ID", + volumeSource: v1.VolumeSource{ + AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{ + VolumeID: invalidVolumeID, + }, + }, + expErr: true, + }, + { + name: "fails on empty volume source", + volumeSource: v1.VolumeSource{}, + expErr: true, + }, + } + + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + t.Logf("Testing %v", tc.name) + got, err := translator.TranslateInTreeInlineVolumeToCSI(&v1.Volume{Name: "volume", VolumeSource: tc.volumeSource}, "") + if err != nil && !tc.expErr { + t.Fatalf("Did not expect error but got: %v", err) + } + + if err == nil && tc.expErr { + t.Fatalf("Expected error, but did not get one.") + } + + if err == nil { + if !reflect.DeepEqual(got.Name, tc.expPVName) { + t.Errorf("Got PV name: %v, expected :%v", got.Name, tc.expPVName) + } + + if !reflect.DeepEqual(got.Spec.CSI.VolumeHandle, normalVolumeID) { + t.Errorf("Got PV volumeHandle: %v, expected :%v", got.Spec.CSI.VolumeHandle, normalVolumeID) + } + } + + }) + } +} diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/azure_disk.go b/staging/src/k8s.io/csi-translation-lib/plugins/azure_disk.go index 8184881de9df4..d47df35e5c47c 100644 --- a/staging/src/k8s.io/csi-translation-lib/plugins/azure_disk.go +++ b/staging/src/k8s.io/csi-translation-lib/plugins/azure_disk.go @@ -93,7 +93,7 @@ func (t *azureDiskCSITranslator) TranslateInTreeStorageClassToCSI(sc *storage.St // TranslateInTreeInlineVolumeToCSI takes a Volume with AzureDisk set from in-tree // and converts the AzureDisk source to a CSIPersistentVolumeSource -func (t *azureDiskCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Volume) (*v1.PersistentVolume, error) { +func (t *azureDiskCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Volume, podNamespace string) (*v1.PersistentVolume, error) { if volume == nil || volume.AzureDisk == nil { return nil, fmt.Errorf("volume is nil or Azure Disk not defined on volume") } diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/azure_disk_test.go b/staging/src/k8s.io/csi-translation-lib/plugins/azure_disk_test.go index ac78be23f3a97..bb3573e6b58c8 100644 --- a/staging/src/k8s.io/csi-translation-lib/plugins/azure_disk_test.go +++ b/staging/src/k8s.io/csi-translation-lib/plugins/azure_disk_test.go @@ -145,7 +145,7 @@ func TestTranslateAzureDiskInTreeStorageClassToCSI(t *testing.T) { for _, tc := range cases { t.Logf("Testing %v", tc.name) - got, err := translator.TranslateInTreeInlineVolumeToCSI(tc.volume) + got, err := translator.TranslateInTreeInlineVolumeToCSI(tc.volume, "") if err != nil && !tc.expErr { t.Errorf("Did not expect error but got: %v", err) } diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/azure_file.go b/staging/src/k8s.io/csi-translation-lib/plugins/azure_file.go index 94ef714fe2741..df8251325f147 100644 --- a/staging/src/k8s.io/csi-translation-lib/plugins/azure_file.go +++ b/staging/src/k8s.io/csi-translation-lib/plugins/azure_file.go @@ -37,11 +37,11 @@ const ( volumeIDTemplate = "%s#%s#%s#%s" // Parameter names defined in azure file CSI driver, refer to // https://github.com/kubernetes-sigs/azurefile-csi-driver/blob/master/docs/driver-parameters.md - azureFileShareName = "shareName" - - secretNameTemplate = "azure-storage-account-%s-secret" - defaultSecretNamespace = "default" - + shareNameField = "sharename" + secretNameField = "secretname" + secretNamespaceField = "secretnamespace" + secretNameTemplate = "azure-storage-account-%s-secret" + defaultSecretNamespace = "default" resourceGroupAnnotation = "kubernetes.io/azure-file-resource-group" ) @@ -65,7 +65,7 @@ func (t *azureFileCSITranslator) TranslateInTreeStorageClassToCSI(sc *storage.St // TranslateInTreeInlineVolumeToCSI takes a Volume with AzureFile set from in-tree // and converts the AzureFile source to a CSIPersistentVolumeSource -func (t *azureFileCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Volume) (*v1.PersistentVolume, error) { +func (t *azureFileCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Volume, podNamespace string) (*v1.PersistentVolume, error) { if volume == nil || volume.AzureFile == nil { return nil, fmt.Errorf("volume is nil or Azure File not defined on volume") } @@ -77,6 +77,11 @@ func (t *azureFileCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Vol accountName = azureSource.SecretName } + secretNamespace := defaultSecretNamespace + if podNamespace != "" { + secretNamespace = podNamespace + } + var ( pv = &v1.PersistentVolume{ ObjectMeta: metav1.ObjectMeta{ @@ -90,10 +95,10 @@ func (t *azureFileCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Vol Driver: AzureFileDriverName, VolumeHandle: fmt.Sprintf(volumeIDTemplate, "", accountName, azureSource.ShareName, ""), ReadOnly: azureSource.ReadOnly, - VolumeAttributes: map[string]string{azureFileShareName: azureSource.ShareName}, + VolumeAttributes: map[string]string{shareNameField: azureSource.ShareName}, NodeStageSecretRef: &v1.SecretReference{ Name: azureSource.SecretName, - Namespace: defaultSecretNamespace, + Namespace: secretNamespace, }, }, }, @@ -135,7 +140,7 @@ func (t *azureFileCSITranslator) TranslateInTreePVToCSI(pv *v1.PersistentVolume) Namespace: defaultSecretNamespace, }, ReadOnly: azureSource.ReadOnly, - VolumeAttributes: map[string]string{azureFileShareName: azureSource.ShareName}, + VolumeAttributes: map[string]string{shareNameField: azureSource.ShareName}, VolumeHandle: volumeID, } ) @@ -163,31 +168,48 @@ func (t *azureFileCSITranslator) TranslateCSIPVToInTree(pv *v1.PersistentVolume) ReadOnly: csiSource.ReadOnly, } + for k, v := range csiSource.VolumeAttributes { + switch strings.ToLower(k) { + case shareNameField: + azureSource.ShareName = v + case secretNameField: + azureSource.SecretName = v + case secretNamespaceField: + ns := v + azureSource.SecretNamespace = &ns + } + } + resourceGroup := "" if csiSource.NodeStageSecretRef != nil && csiSource.NodeStageSecretRef.Name != "" { azureSource.SecretName = csiSource.NodeStageSecretRef.Name azureSource.SecretNamespace = &csiSource.NodeStageSecretRef.Namespace - if csiSource.VolumeAttributes != nil { - if shareName, ok := csiSource.VolumeAttributes[azureFileShareName]; ok { - azureSource.ShareName = shareName - } - } - } else { + } + if azureSource.ShareName == "" || azureSource.SecretName == "" { rg, storageAccount, fileShareName, _, err := getFileShareInfo(csiSource.VolumeHandle) if err != nil { return nil, err } - azureSource.ShareName = fileShareName - azureSource.SecretName = fmt.Sprintf(secretNameTemplate, storageAccount) + if azureSource.ShareName == "" { + azureSource.ShareName = fileShareName + } + if azureSource.SecretName == "" { + azureSource.SecretName = fmt.Sprintf(secretNameTemplate, storageAccount) + } resourceGroup = rg } + if azureSource.SecretNamespace == nil { + ns := defaultSecretNamespace + azureSource.SecretNamespace = &ns + } + pv.Spec.CSI = nil pv.Spec.AzureFile = azureSource + if pv.ObjectMeta.Annotations == nil { + pv.ObjectMeta.Annotations = map[string]string{} + } if resourceGroup != "" { - if pv.ObjectMeta.Annotations == nil { - pv.ObjectMeta.Annotations = map[string]string{} - } pv.ObjectMeta.Annotations[resourceGroupAnnotation] = resourceGroup } diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/azure_file_test.go b/staging/src/k8s.io/csi-translation-lib/plugins/azure_file_test.go index 66c4dc1445397..4a2c1d97136ff 100644 --- a/staging/src/k8s.io/csi-translation-lib/plugins/azure_file_test.go +++ b/staging/src/k8s.io/csi-translation-lib/plugins/azure_file_test.go @@ -102,10 +102,11 @@ func TestTranslateAzureFileInTreeStorageClassToCSI(t *testing.T) { translator := NewAzureFileCSITranslator() cases := []struct { - name string - volume *corev1.Volume - expVol *corev1.PersistentVolume - expErr bool + name string + volume *corev1.Volume + podNamespace string + expVol *corev1.PersistentVolume + expErr bool }{ { name: "empty volume", @@ -140,7 +141,40 @@ func TestTranslateAzureFileInTreeStorageClassToCSI(t *testing.T) { Namespace: "default", }, ReadOnly: true, - VolumeAttributes: map[string]string{azureFileShareName: "sharename"}, + VolumeAttributes: map[string]string{shareNameField: "sharename"}, + VolumeHandle: "#secretname#sharename#", + }, + }, + AccessModes: []corev1.PersistentVolumeAccessMode{corev1.ReadWriteMany}, + }, + }, + }, + { + name: "azure file volume with a pod namespace", + volume: &corev1.Volume{ + VolumeSource: corev1.VolumeSource{ + AzureFile: &corev1.AzureFileVolumeSource{ + ReadOnly: true, + SecretName: "secretname", + ShareName: "sharename", + }, + }, + }, + podNamespace: "test", + expVol: &corev1.PersistentVolume{ + ObjectMeta: metav1.ObjectMeta{ + Name: "file.csi.azure.com-sharename", + }, + Spec: corev1.PersistentVolumeSpec{ + PersistentVolumeSource: corev1.PersistentVolumeSource{ + CSI: &corev1.CSIPersistentVolumeSource{ + Driver: "file.csi.azure.com", + NodeStageSecretRef: &corev1.SecretReference{ + Name: "secretname", + Namespace: "test", + }, + ReadOnly: true, + VolumeAttributes: map[string]string{shareNameField: "sharename"}, VolumeHandle: "#secretname#sharename#", }, }, @@ -152,7 +186,7 @@ func TestTranslateAzureFileInTreeStorageClassToCSI(t *testing.T) { for _, tc := range cases { t.Logf("Testing %v", tc.name) - got, err := translator.TranslateInTreeInlineVolumeToCSI(tc.volume) + got, err := translator.TranslateInTreeInlineVolumeToCSI(tc.volume, tc.podNamespace) if err != nil && !tc.expErr { t.Errorf("Did not expect error but got: %v", err) } @@ -217,7 +251,7 @@ func TestTranslateAzureFileInTreePVToCSI(t *testing.T) { Name: "secretname", Namespace: secretNamespace, }, - VolumeAttributes: map[string]string{azureFileShareName: "sharename"}, + VolumeAttributes: map[string]string{shareNameField: "sharename"}, VolumeHandle: "#secretname#sharename#", }, }, @@ -256,7 +290,7 @@ func TestTranslateAzureFileInTreePVToCSI(t *testing.T) { Name: "secretname", Namespace: secretNamespace, }, - VolumeAttributes: map[string]string{azureFileShareName: "sharename"}, + VolumeAttributes: map[string]string{shareNameField: "sharename"}, VolumeHandle: "rg#secretname#sharename#", }, }, @@ -285,9 +319,18 @@ func TestTranslateAzureFileInTreePVToCSI(t *testing.T) { func TestTranslateCSIPVToInTree(t *testing.T) { translator := NewAzureFileCSITranslator() + secretName := "secretname" secretNamespace := "secretnamespace" + shareName := "sharename" + defaultNS := "default" mp := make(map[string]string) - mp["shareName"] = "unit-test" + mp["shareName"] = shareName + + secretMap := make(map[string]string) + secretMap["shareName"] = shareName + secretMap["secretName"] = secretName + secretMap["secretNamespace"] = secretNamespace + cases := []struct { name string volume *corev1.PersistentVolume @@ -315,13 +358,16 @@ func TestTranslateCSIPVToInTree(t *testing.T) { }, }, expVol: &corev1.PersistentVolume{ + ObjectMeta: metav1.ObjectMeta{ + Annotations: map[string]string{}, + }, Spec: corev1.PersistentVolumeSpec{ PersistentVolumeSource: corev1.PersistentVolumeSource{ AzureFile: &corev1.AzureFilePersistentVolumeSource{ SecretName: "ut", SecretNamespace: &secretNamespace, ReadOnly: true, - ShareName: "unit-test", + ShareName: shareName, }, }, }, @@ -334,7 +380,7 @@ func TestTranslateCSIPVToInTree(t *testing.T) { Spec: corev1.PersistentVolumeSpec{ PersistentVolumeSource: corev1.PersistentVolumeSource{ CSI: &corev1.CSIPersistentVolumeSource{ - VolumeHandle: "unit-test", + VolumeHandle: shareName, ReadOnly: true, VolumeAttributes: mp, }, @@ -344,7 +390,76 @@ func TestTranslateCSIPVToInTree(t *testing.T) { expErr: true, }, { - name: "translate from volume handle", + name: "translate from VolumeAttributes", + volume: &corev1.PersistentVolume{ + ObjectMeta: metav1.ObjectMeta{ + Name: "file.csi.azure.com-sharename", + }, + Spec: corev1.PersistentVolumeSpec{ + PersistentVolumeSource: corev1.PersistentVolumeSource{ + CSI: &corev1.CSIPersistentVolumeSource{ + VolumeHandle: "rg#st#pvc-file-dynamic#diskname.vhd", + ReadOnly: true, + VolumeAttributes: mp, + }, + }, + }, + }, + expVol: &corev1.PersistentVolume{ + ObjectMeta: metav1.ObjectMeta{ + Name: "file.csi.azure.com-sharename", + Annotations: map[string]string{resourceGroupAnnotation: "rg"}, + }, + Spec: corev1.PersistentVolumeSpec{ + PersistentVolumeSource: corev1.PersistentVolumeSource{ + AzureFile: &corev1.AzureFilePersistentVolumeSource{ + SecretName: "azure-storage-account-st-secret", + ShareName: shareName, + SecretNamespace: &defaultNS, + ReadOnly: true, + }, + }, + }, + }, + expErr: false, + }, + { + name: "translate from SecretMap VolumeAttributes", + volume: &corev1.PersistentVolume{ + ObjectMeta: metav1.ObjectMeta{ + Name: "file.csi.azure.com-sharename", + Annotations: map[string]string{}, + }, + Spec: corev1.PersistentVolumeSpec{ + PersistentVolumeSource: corev1.PersistentVolumeSource{ + CSI: &corev1.CSIPersistentVolumeSource{ + VolumeHandle: "rg#st#pvc-file-dynamic#diskname.vhd", + ReadOnly: true, + VolumeAttributes: secretMap, + }, + }, + }, + }, + expVol: &corev1.PersistentVolume{ + ObjectMeta: metav1.ObjectMeta{ + Name: "file.csi.azure.com-sharename", + Annotations: map[string]string{}, + }, + Spec: corev1.PersistentVolumeSpec{ + PersistentVolumeSource: corev1.PersistentVolumeSource{ + AzureFile: &corev1.AzureFilePersistentVolumeSource{ + SecretName: secretName, + SecretNamespace: &secretNamespace, + ShareName: shareName, + ReadOnly: true, + }, + }, + }, + }, + expErr: false, + }, + { + name: "translate from NodeStageSecretRef", volume: &corev1.PersistentVolume{ ObjectMeta: metav1.ObjectMeta{ Name: "file.csi.azure.com-sharename", @@ -355,6 +470,43 @@ func TestTranslateCSIPVToInTree(t *testing.T) { VolumeHandle: "rg#st#pvc-file-dynamic#diskname.vhd", ReadOnly: true, VolumeAttributes: mp, + NodeStageSecretRef: &corev1.SecretReference{ + Name: secretName, + Namespace: secretNamespace, + }, + }, + }, + }, + }, + expVol: &corev1.PersistentVolume{ + ObjectMeta: metav1.ObjectMeta{ + Name: "file.csi.azure.com-sharename", + Annotations: map[string]string{}, + }, + Spec: corev1.PersistentVolumeSpec{ + PersistentVolumeSource: corev1.PersistentVolumeSource{ + AzureFile: &corev1.AzureFilePersistentVolumeSource{ + SecretName: secretName, + ShareName: shareName, + SecretNamespace: &secretNamespace, + ReadOnly: true, + }, + }, + }, + }, + expErr: false, + }, + { + name: "translate from VolumeHandle", + volume: &corev1.PersistentVolume{ + ObjectMeta: metav1.ObjectMeta{ + Name: "file.csi.azure.com-sharename", + }, + Spec: corev1.PersistentVolumeSpec{ + PersistentVolumeSource: corev1.PersistentVolumeSource{ + CSI: &corev1.CSIPersistentVolumeSource{ + VolumeHandle: "rg#st#pvc-file-dynamic#diskname.vhd", + ReadOnly: true, }, }, }, @@ -367,9 +519,10 @@ func TestTranslateCSIPVToInTree(t *testing.T) { Spec: corev1.PersistentVolumeSpec{ PersistentVolumeSource: corev1.PersistentVolumeSource{ AzureFile: &corev1.AzureFilePersistentVolumeSource{ - SecretName: "azure-storage-account-st-secret", - ShareName: "pvc-file-dynamic", - ReadOnly: true, + SecretName: "azure-storage-account-st-secret", + ShareName: "pvc-file-dynamic", + SecretNamespace: &defaultNS, + ReadOnly: true, }, }, }, diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/gce_pd.go b/staging/src/k8s.io/csi-translation-lib/plugins/gce_pd.go index 95677562d1cbe..38c35cbbc6482 100644 --- a/staging/src/k8s.io/csi-translation-lib/plugins/gce_pd.go +++ b/staging/src/k8s.io/csi-translation-lib/plugins/gce_pd.go @@ -163,7 +163,7 @@ func backwardCompatibleAccessModes(ams []v1.PersistentVolumeAccessMode) []v1.Per // TranslateInTreeInlineVolumeToCSI takes a Volume with GCEPersistentDisk set from in-tree // and converts the GCEPersistentDisk source to a CSIPersistentVolumeSource -func (g *gcePersistentDiskCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Volume) (*v1.PersistentVolume, error) { +func (g *gcePersistentDiskCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Volume, podNamespace string) (*v1.PersistentVolume, error) { if volume == nil || volume.GCEPersistentDisk == nil { return nil, fmt.Errorf("volume is nil or GCE PD not defined on volume") } @@ -227,7 +227,7 @@ func (g *gcePersistentDiskCSITranslator) TranslateInTreePVToCSI(pv *v1.Persisten if err != nil { return nil, fmt.Errorf("failed to get region from zones: %v", err) } - volID = fmt.Sprintf(volIDZonalFmt, UnspecifiedValue, region, pv.Spec.GCEPersistentDisk.PDName) + volID = fmt.Sprintf(volIDRegionalFmt, UnspecifiedValue, region, pv.Spec.GCEPersistentDisk.PDName) } else { // Unspecified volID = fmt.Sprintf(volIDZonalFmt, UnspecifiedValue, UnspecifiedValue, pv.Spec.GCEPersistentDisk.PDName) diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/gce_pd_test.go b/staging/src/k8s.io/csi-translation-lib/plugins/gce_pd_test.go index c11932affd7f1..ff8de3c8f8dd9 100644 --- a/staging/src/k8s.io/csi-translation-lib/plugins/gce_pd_test.go +++ b/staging/src/k8s.io/csi-translation-lib/plugins/gce_pd_test.go @@ -23,6 +23,7 @@ import ( v1 "k8s.io/api/core/v1" storage "k8s.io/api/storage/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) func NewStorageClass(params map[string]string, allowedTopologies []v1.TopologySelectorTerm) *storage.StorageClass { @@ -272,7 +273,7 @@ func TestInlineReadOnly(t *testing.T) { ReadOnly: true, }, }, - }) + }, "") if err != nil { t.Fatalf("Failed to translate in tree inline volume to CSI: %v", err) } @@ -294,3 +295,49 @@ func TestInlineReadOnly(t *testing.T) { t.Errorf("got am %v, expected access mode of ReadOnlyMany", ams[0]) } } + +func TestTranslateInTreePVToCSIVolIDFmt(t *testing.T) { + g := NewGCEPersistentDiskCSITranslator() + pdName := "pd-name" + tests := []struct { + desc string + topologyLabelKey string + topologyLabelValue string + wantVolID string + }{ + { + desc: "beta topology key zonal", + topologyLabelKey: v1.LabelZoneFailureDomain, + topologyLabelValue: "us-east1-a", + wantVolID: "projects/UNSPECIFIED/zones/us-east1-a/disks/pd-name", + }, + { + desc: "beta topology key regional", + topologyLabelKey: v1.LabelZoneFailureDomain, + topologyLabelValue: "us-central1-a__us-central1-c", + wantVolID: "projects/UNSPECIFIED/regions/us-central1/disks/pd-name", + }, + } + for _, tc := range tests { + t.Run(tc.desc, func(t *testing.T) { + translatedPV, err := g.TranslateInTreePVToCSI(&v1.PersistentVolume{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{tc.topologyLabelKey: tc.topologyLabelValue}, + }, + Spec: v1.PersistentVolumeSpec{ + PersistentVolumeSource: v1.PersistentVolumeSource{ + GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{ + PDName: pdName, + }, + }, + }, + }) + if err != nil { + t.Errorf("got error translating in-tree PV to CSI: %v", err) + } + if got := translatedPV.Spec.PersistentVolumeSource.CSI.VolumeHandle; got != tc.wantVolID { + t.Errorf("got translated volume handle: %q, want %q", got, tc.wantVolID) + } + }) + } +} diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/in_tree_volume.go b/staging/src/k8s.io/csi-translation-lib/plugins/in_tree_volume.go index be659416d87d1..bc7770ed40637 100644 --- a/staging/src/k8s.io/csi-translation-lib/plugins/in_tree_volume.go +++ b/staging/src/k8s.io/csi-translation-lib/plugins/in_tree_volume.go @@ -37,7 +37,8 @@ type InTreePlugin interface { // TranslateInTreeInlineVolumeToCSI takes a inline volume and will translate // the in-tree inline volume source to a CSIPersistentVolumeSource // A PV object containing the CSIPersistentVolumeSource in it's spec is returned - TranslateInTreeInlineVolumeToCSI(volume *v1.Volume) (*v1.PersistentVolume, error) + // podNamespace is only needed for azurefile to fetch secret namespace, no need to be set for other plugins. + TranslateInTreeInlineVolumeToCSI(volume *v1.Volume, podNamespace string) (*v1.PersistentVolume, error) // TranslateInTreePVToCSI takes a persistent volume and will translate // the in-tree pv source to a CSI Source. The input persistent volume can be modified diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/openstack_cinder.go b/staging/src/k8s.io/csi-translation-lib/plugins/openstack_cinder.go index f3e21bc760ac2..0b02a0aa5db7d 100644 --- a/staging/src/k8s.io/csi-translation-lib/plugins/openstack_cinder.go +++ b/staging/src/k8s.io/csi-translation-lib/plugins/openstack_cinder.go @@ -18,6 +18,7 @@ package plugins import ( "fmt" + "strings" v1 "k8s.io/api/core/v1" storage "k8s.io/api/storage/v1" @@ -45,12 +46,36 @@ func NewOpenStackCinderCSITranslator() InTreePlugin { // TranslateInTreeStorageClassParametersToCSI translates InTree Cinder storage class parameters to CSI storage class func (t *osCinderCSITranslator) TranslateInTreeStorageClassToCSI(sc *storage.StorageClass) (*storage.StorageClass, error) { + var ( + params = map[string]string{} + ) + for k, v := range sc.Parameters { + switch strings.ToLower(k) { + case fsTypeKey: + params[csiFsTypeKey] = v + default: + // All other parameters are supported by the CSI driver. + // This includes also "availability", therefore do not translate it to sc.AllowedTopologies + params[k] = v + } + } + + if len(sc.AllowedTopologies) > 0 { + newTopologies, err := translateAllowedTopologies(sc.AllowedTopologies, CinderTopologyKey) + if err != nil { + return nil, fmt.Errorf("failed translating allowed topologies: %v", err) + } + sc.AllowedTopologies = newTopologies + } + + sc.Parameters = params + return sc, nil } // TranslateInTreeInlineVolumeToCSI takes a Volume with Cinder set from in-tree // and converts the Cinder source to a CSIPersistentVolumeSource -func (t *osCinderCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Volume) (*v1.PersistentVolume, error) { +func (t *osCinderCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Volume, podNamespace string) (*v1.PersistentVolume, error) { if volume == nil || volume.Cinder == nil { return nil, fmt.Errorf("volume is nil or Cinder not defined on volume") } diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/openstack_cinder_test.go b/staging/src/k8s.io/csi-translation-lib/plugins/openstack_cinder_test.go new file mode 100644 index 0000000000000..9786c673b2d2d --- /dev/null +++ b/staging/src/k8s.io/csi-translation-lib/plugins/openstack_cinder_test.go @@ -0,0 +1,80 @@ +/* +Copyright 2021 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 plugins + +import ( + "reflect" + "testing" + + v1 "k8s.io/api/core/v1" + storage "k8s.io/api/storage/v1" +) + +func TestTranslateCinderInTreeStorageClassToCSI(t *testing.T) { + translator := NewOpenStackCinderCSITranslator() + + cases := []struct { + name string + sc *storage.StorageClass + expSc *storage.StorageClass + expErr bool + }{ + { + name: "translate normal", + sc: NewStorageClass(map[string]string{"foo": "bar"}, nil), + expSc: NewStorageClass(map[string]string{"foo": "bar"}, nil), + }, + { + name: "translate empty map", + sc: NewStorageClass(map[string]string{}, nil), + expSc: NewStorageClass(map[string]string{}, nil), + }, + + { + name: "translate with fstype", + sc: NewStorageClass(map[string]string{"fstype": "ext3"}, nil), + expSc: NewStorageClass(map[string]string{"csi.storage.k8s.io/fstype": "ext3"}, nil), + }, + { + name: "translate with topology in parameters (no translation expected)", + sc: NewStorageClass(map[string]string{"availability": "nova"}, nil), + expSc: NewStorageClass(map[string]string{"availability": "nova"}, nil), + }, + { + name: "translate with topology", + sc: NewStorageClass(map[string]string{}, generateToplogySelectors(v1.LabelZoneFailureDomain, []string{"nova"})), + expSc: NewStorageClass(map[string]string{}, generateToplogySelectors(CinderTopologyKey, []string{"nova"})), + }, + } + + for _, tc := range cases { + t.Logf("Testing %v", tc.name) + got, err := translator.TranslateInTreeStorageClassToCSI(tc.sc) + if err != nil && !tc.expErr { + t.Errorf("Did not expect error but got: %v", err) + } + + if err == nil && tc.expErr { + t.Errorf("Expected error, but did not get one.") + } + + if !reflect.DeepEqual(got, tc.expSc) { + t.Errorf("Got parameters: %v, expected: %v", got, tc.expSc) + } + + } +} diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/vsphere_volume.go b/staging/src/k8s.io/csi-translation-lib/plugins/vsphere_volume.go index 531aff0d98368..83058b374a6c6 100644 --- a/staging/src/k8s.io/csi-translation-lib/plugins/vsphere_volume.go +++ b/staging/src/k8s.io/csi-translation-lib/plugins/vsphere_volume.go @@ -111,7 +111,7 @@ func (t *vSphereCSITranslator) TranslateInTreeStorageClassToCSI(sc *storage.Stor // TranslateInTreeInlineVolumeToCSI takes a Volume with VsphereVolume set from in-tree // and converts the VsphereVolume source to a CSIPersistentVolumeSource -func (t *vSphereCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Volume) (*v1.PersistentVolume, error) { +func (t *vSphereCSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Volume, podNamespace string) (*v1.PersistentVolume, error) { if volume == nil || volume.VsphereVolume == nil { return nil, fmt.Errorf("volume is nil or VsphereVolume not defined on volume") } diff --git a/staging/src/k8s.io/csi-translation-lib/plugins/vsphere_volume_test.go b/staging/src/k8s.io/csi-translation-lib/plugins/vsphere_volume_test.go index 31d2b0389fda4..2f40774b2ee30 100644 --- a/staging/src/k8s.io/csi-translation-lib/plugins/vsphere_volume_test.go +++ b/staging/src/k8s.io/csi-translation-lib/plugins/vsphere_volume_test.go @@ -314,7 +314,7 @@ func TestTranslatevSphereInTreeInlineVolumeToCSI(t *testing.T) { for _, tc := range cases { t.Logf("Testing %v", tc.name) - got, err := translator.TranslateInTreeInlineVolumeToCSI(tc.inlinevolume) + got, err := translator.TranslateInTreeInlineVolumeToCSI(tc.inlinevolume, "") if err == nil && tc.expErr { t.Errorf("Expected error, but did not get one.") continue diff --git a/staging/src/k8s.io/csi-translation-lib/translate.go b/staging/src/k8s.io/csi-translation-lib/translate.go index 21f5c49d59a52..c1ffbe974113d 100644 --- a/staging/src/k8s.io/csi-translation-lib/translate.go +++ b/staging/src/k8s.io/csi-translation-lib/translate.go @@ -62,13 +62,13 @@ func (CSITranslator) TranslateInTreeStorageClassToCSI(inTreePluginName string, s // TranslateInTreeInlineVolumeToCSI takes a inline volume and will translate // the in-tree volume source to a CSIPersistentVolumeSource (wrapped in a PV) // if the translation logic has been implemented. -func (CSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Volume) (*v1.PersistentVolume, error) { +func (CSITranslator) TranslateInTreeInlineVolumeToCSI(volume *v1.Volume, podNamespace string) (*v1.PersistentVolume, error) { if volume == nil { return nil, fmt.Errorf("persistent volume was nil") } for _, curPlugin := range inTreePlugins { if curPlugin.CanSupportInline(volume) { - pv, err := curPlugin.TranslateInTreeInlineVolumeToCSI(volume) + pv, err := curPlugin.TranslateInTreeInlineVolumeToCSI(volume, podNamespace) if err != nil { return nil, err } diff --git a/staging/src/k8s.io/csi-translation-lib/translate_test.go b/staging/src/k8s.io/csi-translation-lib/translate_test.go index ce2d740f345c0..c5346a2358d74 100644 --- a/staging/src/k8s.io/csi-translation-lib/translate_test.go +++ b/staging/src/k8s.io/csi-translation-lib/translate_test.go @@ -324,7 +324,7 @@ func TestTranslateInTreeInlineVolumeToCSINameUniqueness(t *testing.T) { } pv1, err := ctl.TranslateInTreeInlineVolumeToCSI(&v1.Volume{ VolumeSource: vs1, - }) + }, "") if err != nil { t.Fatalf("Error when translating to CSI: %v", err) } @@ -334,7 +334,7 @@ func TestTranslateInTreeInlineVolumeToCSINameUniqueness(t *testing.T) { } pv2, err := ctl.TranslateInTreeInlineVolumeToCSI(&v1.Volume{ VolumeSource: vs2, - }) + }, "") if err != nil { t.Fatalf("Error when translating to CSI: %v", err) } diff --git a/staging/src/k8s.io/kube-aggregator/go.mod b/staging/src/k8s.io/kube-aggregator/go.mod index 90706f601c37e..5b6b75518ed53 100644 --- a/staging/src/k8s.io/kube-aggregator/go.mod +++ b/staging/src/k8s.io/kube-aggregator/go.mod @@ -8,39 +8,29 @@ require ( github.com/davecgh/go-spew v1.1.1 github.com/emicklei/go-restful v2.9.5+incompatible github.com/go-openapi/spec v0.19.3 - github.com/gogo/protobuf v1.3.1 + github.com/gogo/protobuf v1.3.2 github.com/json-iterator/go v1.1.10 github.com/spf13/cobra v1.0.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.4.0 - golang.org/x/net v0.0.0-20200707034311-ab3426394381 - k8s.io/api v0.19.0 - k8s.io/apimachinery v0.19.0 - k8s.io/apiserver v0.19.0 - k8s.io/client-go v0.19.0 - k8s.io/code-generator v0.19.0 - k8s.io/component-base v0.19.0 - k8s.io/klog/v2 v2.3.0 + golang.org/x/net v0.0.0-20201110031124-69a78807bb2b + k8s.io/api v0.0.0 + k8s.io/apimachinery v0.0.0 + k8s.io/apiserver v0.0.0 + k8s.io/client-go v0.0.0 + k8s.io/code-generator v0.0.0 + k8s.io/component-base v0.0.0 + k8s.io/klog/v2 v2.2.0 k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 k8s.io/utils v0.0.0-20200729134348-d5654de09c73 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery k8s.io/apiserver => ../apiserver k8s.io/client-go => ../client-go k8s.io/code-generator => ../code-generator k8s.io/component-base => ../component-base - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 k8s.io/kube-aggregator => ../kube-aggregator - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/kube-aggregator/go.sum b/staging/src/k8s.io/kube-aggregator/go.sum index 740ecb1ecfaee..573deeb2cc965 100644 --- a/staging/src/k8s.io/kube-aggregator/go.sum +++ b/staging/src/k8s.io/kube-aggregator/go.sum @@ -1,4 +1,3 @@ -bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -12,7 +11,6 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7 cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= @@ -23,136 +21,66 @@ github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+v github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= -github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ= -github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46 h1:lsxEuwrXEAokXB9qhlbKWPpo3KMLZQ5WB5WLQRW1uq0= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -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/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= -github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.0+incompatible h1:CGxCgetQ64DKk7rdZ++Vfnb1+ogGNnB17OJKJXD2Cfs= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200507155900-a9f01edf17e3/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200601085316-9f1617e5c574/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa h1:OaNxuTZr7kxeODyLWsRMC+OD03aFUH+mW6r2d+MWa5Y= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= -github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v1.0.0/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v1.0.0/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -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/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4 h1:qk/FSDDxo05wdJH28W+p5yivv7LuLYLRXPPD8KQCtZs= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= @@ -163,27 +91,15 @@ github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -191,62 +107,26 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -260,9 +140,7 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -271,19 +149,9 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -302,14 +170,8 @@ github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= @@ -322,14 +184,10 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgf github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.5 h1:UImYN5qQ8tuGpGE16ZmjvcTtTw24zw1QAp/SlnNrZhI= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= -github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -337,10 +195,6 @@ github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -349,16 +203,11 @@ github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -369,43 +218,20 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kubernetes-sigs/kube-storage-version-migrator v0.0.0-20191127225502-51849bc15f17/go.mod h1:enH0BVV+4+DAgWdwSlMefG8bBzTfVMTr1lApzdLZ/cc= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= -github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= -github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= -github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= -github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= -github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= @@ -413,61 +239,33 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= -github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc90.0.20200616040943-82d2fa4eb069/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8= -github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728/go.mod h1:+B51GHs/jfZzk93MKrSSA8BWxrulVVcxiBG7kdFpd74= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible h1:AGewrYJW8aXFkkf86sSoiO9L/a/QYKZvODVCaB/wk4o= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20200831114015-2ab0c61c15de/go.mod h1:6vwp+YhYOIlj8MpkQKkebTTSn2TuYyvgiAFQ206jIEQ= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98 h1:JYwa3H00larjMVZXmh7L4FHDhNlKdWSgYi0kLdav9BY= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= 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.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -478,38 +276,22 @@ github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6T github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= -github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -518,19 +300,15 @@ github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -538,39 +316,22 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200520041808-52d707b772fe/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5 h1:Gqga3zA9tdAcfqobUGjSoCob5L3f8Dt5EuOp3ihNZko= go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -582,30 +343,19 @@ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/ go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -626,15 +376,11 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -644,14 +390,12 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -664,50 +408,36 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -717,53 +447,41 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054 h1:HHeAlu5H9b71C+Fx0K+1dGgVFN1DM1/wz4aoGOA5qS8= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a h1:CB3a9Nez8M13wwlr/E2YtwoU+qYHKfC+JrDa45RXXoQ= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1-0.20200106000736-b8fc810ca6b5/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -779,7 +497,6 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -787,8 +504,6 @@ google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiq google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -798,13 +513,11 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= @@ -813,21 +526,21 @@ gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qS gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -838,33 +551,19 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14 h1:t4L10Qfx/p7ASH3gXCdIUtPbbIuegCoUJf3TMSFekjw= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A= -k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= -k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9 h1:rusRLrDhjBp6aYtl9sGEvQJr6faoHoDLd0YcUBTZguI= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= -sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15 h1:4uqm9Mv+w2MmBYD+F4qf/v6tDFUdPOk29C095RbU5mY= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/generated.pb.go b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/generated.pb.go index 9639fce29ac39..69d42622c8d59 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/generated.pb.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/generated.pb.go @@ -925,10 +925,7 @@ func (m *APIService) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1139,10 +1136,7 @@ func (m *APIServiceCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1259,10 +1253,7 @@ func (m *APIServiceList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1504,10 +1495,7 @@ func (m *APIServiceSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1591,10 +1579,7 @@ func (m *APIServiceStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1728,10 +1713,7 @@ func (m *ServiceReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/generated.pb.go b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/generated.pb.go index 7aff99be17904..4a9ff15faacec 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/generated.pb.go @@ -925,10 +925,7 @@ func (m *APIService) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1139,10 +1136,7 @@ func (m *APIServiceCondition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1259,10 +1253,7 @@ func (m *APIServiceList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1504,10 +1495,7 @@ func (m *APIServiceSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1591,10 +1579,7 @@ func (m *APIServiceStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1728,10 +1713,7 @@ func (m *ServiceReference) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/apiserver/BUILD index aed87fbe3ef20..2b9e78414f248 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/apiserver/BUILD @@ -12,6 +12,7 @@ go_test( "handler_apis_test.go", "handler_proxy_test.go", ], + data = glob(["testdata/**"]), embed = [":go_default_library"], deps = [ "//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go b/staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go index ec6612e7a72a3..2f934e1c631b4 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go @@ -18,18 +18,11 @@ package apiserver import ( "fmt" - "k8s.io/klog/v2" "net/http" - "strings" "time" - "k8s.io/apimachinery/pkg/labels" - - "k8s.io/apimachinery/pkg/util/wait" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/sets" genericapiserver "k8s.io/apiserver/pkg/server" "k8s.io/apiserver/pkg/server/egressselector" @@ -125,9 +118,6 @@ type APIAggregator struct { // handledGroups are the groups that already have routes handledGroups sets.String - // handledAlwaysLocalDelegatePaths are the URL paths that already have routes registered - handledAlwaysLocalDelegatePaths sets.String - // lister is used to add group handling for /apis/ aggregator lookups based on // controller state lister listers.APIServiceLister @@ -167,11 +157,6 @@ func (cfg *Config) Complete() CompletedConfig { // NewWithDelegate returns a new instance of APIAggregator from the given config. func (c completedConfig) NewWithDelegate(delegationTarget genericapiserver.DelegationTarget) (*APIAggregator, error) { - // Prevent generic API server to install OpenAPI handler. Aggregator server - // has its own customized OpenAPI handler. - openAPIConfig := c.GenericConfig.OpenAPIConfig - c.GenericConfig.OpenAPIConfig = nil - genericServer, err := c.GenericConfig.New("kube-aggregator", delegationTarget) if err != nil { return nil, err @@ -187,18 +172,17 @@ func (c completedConfig) NewWithDelegate(delegationTarget genericapiserver.Deleg ) s := &APIAggregator{ - GenericAPIServer: genericServer, - delegateHandler: delegationTarget.UnprotectedHandler(), - proxyTransport: c.ExtraConfig.ProxyTransport, - proxyHandlers: map[string]*proxyHandler{}, - handledGroups: sets.String{}, - handledAlwaysLocalDelegatePaths: sets.String{}, - lister: informerFactory.Apiregistration().V1().APIServices().Lister(), - APIRegistrationInformers: informerFactory, - serviceResolver: c.ExtraConfig.ServiceResolver, - openAPIConfig: openAPIConfig, - egressSelector: c.GenericConfig.EgressSelector, - proxyCurrentCertKeyContent: func() (bytes []byte, bytes2 []byte) { return nil, nil }, + GenericAPIServer: genericServer, + delegateHandler: delegationTarget.UnprotectedHandler(), + proxyTransport: c.ExtraConfig.ProxyTransport, + proxyHandlers: map[string]*proxyHandler{}, + handledGroups: sets.String{}, + lister: informerFactory.Apiregistration().V1().APIServices().Lister(), + APIRegistrationInformers: informerFactory, + serviceResolver: c.ExtraConfig.ServiceResolver, + openAPIConfig: c.GenericConfig.OpenAPIConfig, + egressSelector: c.GenericConfig.EgressSelector, + proxyCurrentCertKeyContent: func() (bytes []byte, bytes2 []byte) { return nil, nil }, } apiGroupInfo := apiservicerest.NewRESTStorage(c.GenericConfig.MergedResourceConfig, c.GenericConfig.RESTOptionsGetter) @@ -274,33 +258,6 @@ func (c completedConfig) NewWithDelegate(delegationTarget genericapiserver.Deleg go availableController.Run(5, context.StopCh) return nil }) - s.GenericAPIServer.AddPostStartHook("apiservice-wait-for-first-sync", func(context genericapiserver.PostStartHookContext) error { - // when the aggregator first starts, it should make sure that it has proxy handlers for all the known good API services at this time - // we only need to do this once. - err := wait.PollImmediateUntil(100*time.Millisecond, func() (bool, error) { - // fix race - handledAPIServices := sets.StringKeySet(s.proxyHandlers) - apiservices, err := s.lister.List(labels.Everything()) - if err != nil { - return false, err - } - expectedAPIServices := sets.NewString() - for _, apiservice := range apiservices { - if v1helper.IsAPIServiceConditionTrue(apiservice, v1.Available) { - expectedAPIServices.Insert(apiservice.Name) - } - } - - notYetHandledAPIServices := expectedAPIServices.Difference(handledAPIServices) - if len(notYetHandledAPIServices) == 0 { - return true, nil - } - klog.Infof("still waiting on handling APIServices: %v", strings.Join(notYetHandledAPIServices.List(), ",")) - - return false, nil - }, context.StopCh) - return err - }) return s, nil } @@ -369,16 +326,9 @@ func (s *APIAggregator) AddAPIService(apiService *v1.APIService) error { } proxyHandler.updateAPIService(apiService) if s.openAPIAggregationController != nil { - // this is calling a controller. It should already handle being async. - go func() { - defer utilruntime.HandleCrash() - s.openAPIAggregationController.AddAPIService(proxyHandler, apiService) - }() + s.openAPIAggregationController.AddAPIService(proxyHandler, apiService) } - // we want to update the registration bit last after all the pieces are wired together - defer func() { - s.proxyHandlers[apiService.Name] = proxyHandler - }() + s.proxyHandlers[apiService.Name] = proxyHandler s.GenericAPIServer.Handler.NonGoRestfulMux.Handle(proxyPath, proxyHandler) s.GenericAPIServer.Handler.NonGoRestfulMux.UnlistedHandlePrefix(proxyPath+"/", proxyHandler) @@ -392,18 +342,6 @@ func (s *APIAggregator) AddAPIService(apiService *v1.APIService) error { return nil } - // For some resources we always want to delegate to local API server. - // These resources have to exists as CRD to be served locally. - for _, alwaysLocalDelegatePath := range alwaysLocalDelegatePathPrefixes.List() { - if s.handledAlwaysLocalDelegatePaths.Has(alwaysLocalDelegatePath) { - continue - } - s.GenericAPIServer.Handler.NonGoRestfulMux.Handle(alwaysLocalDelegatePath, proxyHandler.localDelegate) - // Always use local delegate for this prefix - s.GenericAPIServer.Handler.NonGoRestfulMux.UnlistedHandlePrefix(alwaysLocalDelegatePath+"/", proxyHandler.localDelegate) - s.handledAlwaysLocalDelegatePaths.Insert(alwaysLocalDelegatePath) - } - // it's time to register the group aggregation endpoint groupPath := "/apis/" + apiService.Spec.Group groupDiscoveryHandler := &apiGroupHandler{ diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/handler_proxy.go b/staging/src/k8s.io/kube-aggregator/pkg/apiserver/handler_proxy.go index fe37fccc0f9b7..e09f0d1a2386a 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/handler_proxy.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/apiserver/handler_proxy.go @@ -25,7 +25,6 @@ import ( "time" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/httpstream" "k8s.io/apimachinery/pkg/util/httpstream/spdy" utilnet "k8s.io/apimachinery/pkg/util/net" @@ -123,14 +122,6 @@ func (r *proxyHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) { return } - // some groupResources should always be delegated - if requestInfo, ok := genericapirequest.RequestInfoFrom(req.Context()); ok { - if alwaysLocalDelegateGroupResource[schema.GroupResource{Group: requestInfo.APIGroup, Resource: requestInfo.Resource}] { - r.localDelegate.ServeHTTP(w, req) - return - } - } - if !handlingInfo.serviceAvailable { proxyError(w, req, "service unavailable", http.StatusServiceUnavailable) return diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/patch_always_local_delegate.go b/staging/src/k8s.io/kube-aggregator/pkg/apiserver/patch_always_local_delegate.go deleted file mode 100644 index f7169c0d1abd6..0000000000000 --- a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/patch_always_local_delegate.go +++ /dev/null @@ -1,49 +0,0 @@ -package apiserver - -import ( - "fmt" - "strings" - - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/util/sets" -) - -// alwaysLocalDelegatePrefixes specify a list of API paths that we want to delegate to Kubernetes API server -// instead of handling with OpenShift API server. -var alwaysLocalDelegatePathPrefixes = sets.NewString() - -// AddAlwaysLocalDelegateForPrefix will cause the given URL prefix always be served by local API server (kube apiserver). -// This allows to move some resources from aggregated API server into CRD. -func AddAlwaysLocalDelegateForPrefix(prefix string) { - if alwaysLocalDelegatePathPrefixes.Has(prefix) { - return - } - alwaysLocalDelegatePathPrefixes.Insert(prefix) -} - -var overlappingGroupVersion = map[schema.GroupVersion]bool{} - -// AddOverlappingGroupVersion will stop the CRD registration controller from trying to manage an APIService. -func AddOverlappingGroupVersion(groupVersion schema.GroupVersion) { - overlappingGroupVersion[groupVersion] = true -} - -var alwaysLocalDelegateGroupResource = map[schema.GroupResource]bool{} - -func AddAlwaysLocalDelegateGroupResource(groupResource schema.GroupResource) { - alwaysLocalDelegateGroupResource[groupResource] = true -} - -func APIServiceAlreadyExists(groupVersion schema.GroupVersion) bool { - if overlappingGroupVersion[groupVersion] { - return true - } - - testPrefix := fmt.Sprintf("/apis/%s/%s/", groupVersion.Group, groupVersion.Version) - for _, prefix := range alwaysLocalDelegatePathPrefixes.List() { - if strings.HasPrefix(prefix, testPrefix) { - return true - } - } - return false -} diff --git a/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/start.go b/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/start.go index 31ccdcf337ea2..88abac45418cd 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/start.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/start.go @@ -142,6 +142,9 @@ func (o AggregatorOptions) RunAggregator(stopCh <-chan struct{}) error { ) serverConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(openapi.GetOpenAPIDefinitions, openapinamer.NewDefinitionNamer(aggregatorscheme.Scheme)) serverConfig.OpenAPIConfig.Info.Title = "kube-aggregator" + // prevent generic API server from installing the OpenAPI handler. Aggregator server + // has its own customized OpenAPI handler. + serverConfig.SkipOpenAPIInstallation = true serviceResolver := apiserver.NewClusterIPServiceResolver(serverConfig.SharedInformerFactory.Core().V1().Services().Lister()) diff --git a/staging/src/k8s.io/kube-controller-manager/go.mod b/staging/src/k8s.io/kube-controller-manager/go.mod index c81808f4b5195..c4add560cbb2c 100644 --- a/staging/src/k8s.io/kube-controller-manager/go.mod +++ b/staging/src/k8s.io/kube-controller-manager/go.mod @@ -5,40 +5,14 @@ module k8s.io/kube-controller-manager go 1.15 require ( - k8s.io/apimachinery v0.19.0 - k8s.io/component-base v0.19.0 + k8s.io/apimachinery v0.0.0 + k8s.io/component-base v0.0.0 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - go.uber.org/multierr => go.uber.org/multierr v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery - k8s.io/apiserver => ../apiserver - k8s.io/cli-runtime => ../cli-runtime k8s.io/client-go => ../client-go - k8s.io/cloud-provider => ../cloud-provider - k8s.io/cluster-bootstrap => ../cluster-bootstrap - k8s.io/code-generator => ../code-generator k8s.io/component-base => ../component-base - k8s.io/cri-api => ../cri-api - k8s.io/csi-translation-lib => ../csi-translation-lib - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator k8s.io/kube-controller-manager => ../kube-controller-manager - k8s.io/kube-proxy => ../kube-proxy - k8s.io/kube-scheduler => ../kube-scheduler - k8s.io/kubectl => ../kubectl - k8s.io/kubelet => ../kubelet - k8s.io/legacy-cloud-providers => ../legacy-cloud-providers - k8s.io/metrics => ../metrics - k8s.io/sample-apiserver => ../sample-apiserver - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/kube-controller-manager/go.sum b/staging/src/k8s.io/kube-controller-manager/go.sum index b5a0e6433e1ce..1afc3b81736b4 100644 --- a/staging/src/k8s.io/kube-controller-manager/go.sum +++ b/staging/src/k8s.io/kube-controller-manager/go.sum @@ -1,4 +1,3 @@ -bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -12,7 +11,6 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7 cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= @@ -23,146 +21,42 @@ github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+v github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= -github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ= -github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -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/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= -github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200507155900-a9f01edf17e3/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200601085316-9f1617e5c574/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= -github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v1.0.0/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v1.0.0/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -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/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -170,61 +64,15 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= @@ -234,7 +82,6 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -242,18 +89,8 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -267,100 +104,36 @@ github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OI github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= -github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kubernetes-sigs/kube-storage-version-migrator v0.0.0-20191127225502-51849bc15f17/go.mod h1:enH0BVV+4+DAgWdwSlMefG8bBzTfVMTr1lApzdLZ/cc= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= -github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= -github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= -github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= -github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= -github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= @@ -368,175 +141,67 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= -github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc90.0.20200616040943-82d2fa4eb069/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8= -github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728/go.mod h1:+B51GHs/jfZzk93MKrSSA8BWxrulVVcxiBG7kdFpd74= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20200831114015-2ab0c61c15de/go.mod h1:6vwp+YhYOIlj8MpkQKkebTTSn2TuYyvgiAFQ206jIEQ= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -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.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= -github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200520041808-52d707b772fe/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -556,32 +221,22 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -592,103 +247,69 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1-0.20200106000736-b8fc810ca6b5/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -703,14 +324,11 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -723,27 +341,21 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -752,32 +364,16 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A= -k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= -k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= -sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/staging/src/k8s.io/kube-proxy/go.mod b/staging/src/k8s.io/kube-proxy/go.mod index c0122dcf1c60b..22d4aeab42f7b 100644 --- a/staging/src/k8s.io/kube-proxy/go.mod +++ b/staging/src/k8s.io/kube-proxy/go.mod @@ -5,40 +5,14 @@ module k8s.io/kube-proxy go 1.15 require ( - k8s.io/apimachinery v0.19.0 - k8s.io/component-base v0.19.0 + k8s.io/apimachinery v0.0.0 + k8s.io/component-base v0.0.0 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - go.uber.org/multierr => go.uber.org/multierr v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery - k8s.io/apiserver => ../apiserver - k8s.io/cli-runtime => ../cli-runtime k8s.io/client-go => ../client-go - k8s.io/cloud-provider => ../cloud-provider - k8s.io/cluster-bootstrap => ../cluster-bootstrap - k8s.io/code-generator => ../code-generator k8s.io/component-base => ../component-base - k8s.io/cri-api => ../cri-api - k8s.io/csi-translation-lib => ../csi-translation-lib - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator - k8s.io/kube-controller-manager => ../kube-controller-manager k8s.io/kube-proxy => ../kube-proxy - k8s.io/kube-scheduler => ../kube-scheduler - k8s.io/kubectl => ../kubectl - k8s.io/kubelet => ../kubelet - k8s.io/legacy-cloud-providers => ../legacy-cloud-providers - k8s.io/metrics => ../metrics - k8s.io/sample-apiserver => ../sample-apiserver - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/kube-proxy/go.sum b/staging/src/k8s.io/kube-proxy/go.sum index b5a0e6433e1ce..1afc3b81736b4 100644 --- a/staging/src/k8s.io/kube-proxy/go.sum +++ b/staging/src/k8s.io/kube-proxy/go.sum @@ -1,4 +1,3 @@ -bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -12,7 +11,6 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7 cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= @@ -23,146 +21,42 @@ github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+v github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= -github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ= -github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -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/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= -github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200507155900-a9f01edf17e3/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200601085316-9f1617e5c574/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= -github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v1.0.0/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v1.0.0/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -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/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -170,61 +64,15 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= @@ -234,7 +82,6 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -242,18 +89,8 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -267,100 +104,36 @@ github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OI github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= -github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kubernetes-sigs/kube-storage-version-migrator v0.0.0-20191127225502-51849bc15f17/go.mod h1:enH0BVV+4+DAgWdwSlMefG8bBzTfVMTr1lApzdLZ/cc= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= -github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= -github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= -github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= -github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= -github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= @@ -368,175 +141,67 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= -github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc90.0.20200616040943-82d2fa4eb069/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8= -github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728/go.mod h1:+B51GHs/jfZzk93MKrSSA8BWxrulVVcxiBG7kdFpd74= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20200831114015-2ab0c61c15de/go.mod h1:6vwp+YhYOIlj8MpkQKkebTTSn2TuYyvgiAFQ206jIEQ= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -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.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= -github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200520041808-52d707b772fe/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -556,32 +221,22 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -592,103 +247,69 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1-0.20200106000736-b8fc810ca6b5/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -703,14 +324,11 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -723,27 +341,21 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -752,32 +364,16 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A= -k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= -k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= -sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/staging/src/k8s.io/kube-scheduler/go.mod b/staging/src/k8s.io/kube-scheduler/go.mod index 328b25c16cfcf..43e106e34f2c4 100644 --- a/staging/src/k8s.io/kube-scheduler/go.mod +++ b/staging/src/k8s.io/kube-scheduler/go.mod @@ -6,42 +6,16 @@ go 1.15 require ( github.com/google/go-cmp v0.4.0 - k8s.io/api v0.19.0 - k8s.io/apimachinery v0.19.0 - k8s.io/component-base v0.19.0 + k8s.io/api v0.0.0 + k8s.io/apimachinery v0.0.0 + k8s.io/component-base v0.0.0 sigs.k8s.io/yaml v1.2.0 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - go.uber.org/multierr => go.uber.org/multierr v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery - k8s.io/apiserver => ../apiserver - k8s.io/cli-runtime => ../cli-runtime k8s.io/client-go => ../client-go - k8s.io/cloud-provider => ../cloud-provider - k8s.io/cluster-bootstrap => ../cluster-bootstrap - k8s.io/code-generator => ../code-generator k8s.io/component-base => ../component-base - k8s.io/cri-api => ../cri-api - k8s.io/csi-translation-lib => ../csi-translation-lib - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator - k8s.io/kube-controller-manager => ../kube-controller-manager - k8s.io/kube-proxy => ../kube-proxy k8s.io/kube-scheduler => ../kube-scheduler - k8s.io/kubectl => ../kubectl - k8s.io/kubelet => ../kubelet - k8s.io/legacy-cloud-providers => ../legacy-cloud-providers - k8s.io/metrics => ../metrics - k8s.io/sample-apiserver => ../sample-apiserver - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/kube-scheduler/go.sum b/staging/src/k8s.io/kube-scheduler/go.sum index b5a0e6433e1ce..1afc3b81736b4 100644 --- a/staging/src/k8s.io/kube-scheduler/go.sum +++ b/staging/src/k8s.io/kube-scheduler/go.sum @@ -1,4 +1,3 @@ -bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -12,7 +11,6 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7 cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= @@ -23,146 +21,42 @@ github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+v github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= -github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ= -github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -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/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= -github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200507155900-a9f01edf17e3/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200601085316-9f1617e5c574/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= -github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v1.0.0/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v1.0.0/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -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/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -170,61 +64,15 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= @@ -234,7 +82,6 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -242,18 +89,8 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -267,100 +104,36 @@ github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OI github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= -github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kubernetes-sigs/kube-storage-version-migrator v0.0.0-20191127225502-51849bc15f17/go.mod h1:enH0BVV+4+DAgWdwSlMefG8bBzTfVMTr1lApzdLZ/cc= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= -github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= -github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= -github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= -github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= -github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= @@ -368,175 +141,67 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= -github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc90.0.20200616040943-82d2fa4eb069/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8= -github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728/go.mod h1:+B51GHs/jfZzk93MKrSSA8BWxrulVVcxiBG7kdFpd74= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20200831114015-2ab0c61c15de/go.mod h1:6vwp+YhYOIlj8MpkQKkebTTSn2TuYyvgiAFQ206jIEQ= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -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.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= -github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200520041808-52d707b772fe/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -556,32 +221,22 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -592,103 +247,69 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1-0.20200106000736-b8fc810ca6b5/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -703,14 +324,11 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -723,27 +341,21 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -752,32 +364,16 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A= -k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= -k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= -sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/staging/src/k8s.io/kubectl/go.mod b/staging/src/k8s.io/kubectl/go.mod index 22f829c9b06ec..190a4390ded8e 100644 --- a/staging/src/k8s.io/kubectl/go.mod +++ b/staging/src/k8s.io/kubectl/go.mod @@ -14,6 +14,9 @@ require ( github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d github.com/fatih/camelcase v1.0.0 github.com/go-openapi/spec v0.19.3 + github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450 // indirect + github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995 // indirect + github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e // indirect github.com/google/go-cmp v0.4.0 github.com/googleapis/gnostic v0.4.1 github.com/jonboulle/clockwork v0.1.0 @@ -21,58 +24,37 @@ require ( github.com/lithammer/dedent v1.1.0 github.com/mitchellh/go-wordwrap v1.0.0 github.com/moby/term v0.0.0-20200312100748-672ec06f55cd - github.com/onsi/ginkgo v4.5.0-origin.1+incompatible + github.com/onsi/ginkgo v1.11.0 github.com/onsi/gomega v1.7.0 + github.com/opencontainers/go-digest v1.0.0-rc1 // indirect github.com/russross/blackfriday v1.5.2 github.com/spf13/cobra v1.0.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.4.0 - golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 - gopkg.in/yaml.v2 v2.3.0 - k8s.io/api v0.19.0 - k8s.io/apimachinery v0.19.0 + github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1 // indirect + golang.org/x/sys v0.0.0-20201112073958-5cba982894dd + gopkg.in/yaml.v2 v2.2.8 + k8s.io/api v0.0.0 + k8s.io/apimachinery v0.0.0 k8s.io/cli-runtime v0.0.0 - k8s.io/client-go v0.19.0 - k8s.io/component-base v0.19.0 - k8s.io/klog/v2 v2.3.0 + k8s.io/client-go v0.0.0 + k8s.io/component-base v0.0.0 + k8s.io/klog/v2 v2.2.0 k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 k8s.io/metrics v0.0.0 k8s.io/utils v0.0.0-20200729134348-d5654de09c73 sigs.k8s.io/kustomize v2.0.3+incompatible sigs.k8s.io/yaml v1.2.0 - vbom.ml/util v0.0.0-20180919145318-efcd4e0f9787 + vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - go.uber.org/multierr => go.uber.org/multierr v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery - k8s.io/apiserver => ../apiserver k8s.io/cli-runtime => ../cli-runtime k8s.io/client-go => ../client-go - k8s.io/cloud-provider => ../cloud-provider - k8s.io/cluster-bootstrap => ../cluster-bootstrap k8s.io/code-generator => ../code-generator k8s.io/component-base => ../component-base - k8s.io/cri-api => ../cri-api - k8s.io/csi-translation-lib => ../csi-translation-lib - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator - k8s.io/kube-controller-manager => ../kube-controller-manager - k8s.io/kube-proxy => ../kube-proxy - k8s.io/kube-scheduler => ../kube-scheduler k8s.io/kubectl => ../kubectl - k8s.io/kubelet => ../kubelet - k8s.io/legacy-cloud-providers => ../legacy-cloud-providers k8s.io/metrics => ../metrics - k8s.io/sample-apiserver => ../sample-apiserver - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/kubectl/go.sum b/staging/src/k8s.io/kubectl/go.sum index 56f2c3315e618..753f274e36b34 100644 --- a/staging/src/k8s.io/kubectl/go.sum +++ b/staging/src/k8s.io/kubectl/go.sum @@ -1,4 +1,3 @@ -bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -12,7 +11,6 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7 cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= @@ -24,103 +22,44 @@ github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+v github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= -github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ= -github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd h1:sjQovDkwrZp8u+gxLtPgKGjk5hCxuy2hrRejBTA9xFU= github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -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/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= -github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5 h1:7aWHqerlJ41y6FOsEUvknqgXnGmJyJSbjhAWq5pO4F8= github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200507155900-a9f01edf17e3/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200601085316-9f1617e5c574/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= -github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v1.0.0/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v1.0.0/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -128,25 +67,11 @@ github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd h1:uVsMph github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= 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/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= @@ -154,30 +79,19 @@ github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwCFad8crR9dcMQWvV9Hvulu6hwUh4tWPJnM= github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8= github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -185,64 +99,27 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 h1:5ZkaAPbicIKTF2I64qf5Fh8Aa83Q/dnOafMYV0OMwjA= @@ -253,9 +130,7 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -270,16 +145,9 @@ github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995 h1:f5gsjBiF9tRRVomC github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e h1:KhcknUwkWHKZPbFy2P7jH5LKJ3La+0ZeknkkmrSgqb0= github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -293,36 +161,22 @@ github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OI github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= -github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -330,28 +184,18 @@ github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -362,44 +206,22 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kubernetes-sigs/kube-storage-version-migrator v0.0.0-20191127225502-51849bc15f17/go.mod h1:enH0BVV+4+DAgWdwSlMefG8bBzTfVMTr1lApzdLZ/cc= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= github.com/lithammer/dedent v1.1.0 h1:VNzHMVCBNG1j0fh3OrsFRkVUwStdDArbgBWoPAffktY= github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= -github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= -github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= -github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= -github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= -github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd h1:aY7OQNf2XqY/JQ6qREWamhI/81os/agb2BAGpcx5yWI= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -408,47 +230,20 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= -github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc90.0.20200616040943-82d2fa4eb069/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8= -github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728/go.mod h1:+B51GHs/jfZzk93MKrSSA8BWxrulVVcxiBG7kdFpd74= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible h1:AGewrYJW8aXFkkf86sSoiO9L/a/QYKZvODVCaB/wk4o= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20200831114015-2ab0c61c15de/go.mod h1:6vwp+YhYOIlj8MpkQKkebTTSn2TuYyvgiAFQ206jIEQ= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98 h1:JYwa3H00larjMVZXmh7L4FHDhNlKdWSgYi0kLdav9BY= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= @@ -456,14 +251,11 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -472,56 +264,35 @@ github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6T github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= -github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -529,67 +300,35 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200520041808-52d707b772fe/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1 h1:j2hhcujLRHAg872RWAV5yaUrEjHEObwDv3aImCaNLek= github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -609,15 +348,11 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -625,16 +360,13 @@ golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -646,105 +378,75 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1-0.20200106000736-b8fc810ca6b5/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -760,14 +462,12 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -776,35 +476,30 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= @@ -815,32 +510,19 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A= -k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= -k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= sigs.k8s.io/kustomize v2.0.3+incompatible h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbLXqhyOyX0= sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/config/config_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/config/config_test.go index 85de3fd1a5935..c7648b113e315 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/config/config_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/config/config_test.go @@ -17,6 +17,7 @@ limitations under the License. package config import ( + "fmt" "io/ioutil" "os" "path" @@ -44,11 +45,7 @@ func newRedFederalCowHammerConfig() clientcmdapi.Config { } } -// It's not worth making this test compatible given that kubectl/oc is -// maintained in a separate branch of openshift/kubernetes. -/* func Example_view() { - expectedConfig := newRedFederalCowHammerConfig() test := configCommandTest{ args: []string{"view"}, @@ -77,7 +74,6 @@ func Example_view() { // user: // token: REDACTED } -*/ func TestCurrentContext(t *testing.T) { startingConfig := newRedFederalCowHammerConfig() @@ -91,7 +87,6 @@ func TestCurrentContext(t *testing.T) { } func TestSetCurrentContext(t *testing.T) { - expectedConfig := newRedFederalCowHammerConfig() startingConfig := newRedFederalCowHammerConfig() @@ -895,11 +890,6 @@ func (test configCommandTest) checkOutput(out string, expectedOutputs []string, } func (test configCommandTest) run(t *testing.T) string { - // It's not worth making these tests compatible given that - // kubectl/oc is maintained in a separate branch of - // openshift/kubernetes. - t.Skip("Not compatible with openshift ci") - out, actualConfig := testConfigCommand(test.args, test.startingConfig, t) testSetNilMapsToEmpties(reflect.ValueOf(&test.expectedConfig)) diff --git a/staging/src/k8s.io/kubectl/pkg/describe/describe.go b/staging/src/k8s.io/kubectl/pkg/describe/describe.go index 01d36c96204c2..161932d0e2087 100644 --- a/staging/src/k8s.io/kubectl/pkg/describe/describe.go +++ b/staging/src/k8s.io/kubectl/pkg/describe/describe.go @@ -2469,7 +2469,11 @@ func (i *IngressDescriber) describeBackendV1(ns string, backend *networkingv1.In } if backend.Resource != nil { ic := backend.Resource - return fmt.Sprintf("APIGroup: %v, Kind: %v, Name: %v", *ic.APIGroup, ic.Kind, ic.Name) + apiGroup := "" + if ic.APIGroup != nil { + apiGroup = fmt.Sprintf("%v", *ic.APIGroup) + } + return fmt.Sprintf("APIGroup: %v, Kind: %v, Name: %v", apiGroup, ic.Kind, ic.Name) } return "" } diff --git a/staging/src/k8s.io/kubectl/pkg/describe/describe_test.go b/staging/src/k8s.io/kubectl/pkg/describe/describe_test.go index 16d4d1a8d3b8e..a5475fe95f778 100644 --- a/staging/src/k8s.io/kubectl/pkg/describe/describe_test.go +++ b/staging/src/k8s.io/kubectl/pkg/describe/describe_test.go @@ -1744,6 +1744,12 @@ func TestDescribeIngress(t *testing.T) { Name: "bar", }, } + backendResourceNoAPIGroup := networkingv1.IngressBackend{ + Resource: &corev1.TypedLocalObjectReference{ + Kind: "foo", + Name: "bar", + }, + } tests := map[string]struct { input *fake.Clientset @@ -1811,6 +1817,42 @@ Rules: foo.bar.com /foo APIGroup: example.com, Kind: foo, Name: bar Annotations: +Events: ` + "\n", + }, + "IngressRule.HTTP.Paths.Backend.Resource v1 Without APIGroup": { + input: fake.NewSimpleClientset(&networkingv1.Ingress{ + ObjectMeta: metav1.ObjectMeta{ + Name: "bar", + Namespace: "foo", + }, + Spec: networkingv1.IngressSpec{ + Rules: []networkingv1.IngressRule{ + { + Host: "foo.bar.com", + IngressRuleValue: networkingv1.IngressRuleValue{ + HTTP: &networkingv1.HTTPIngressRuleValue{ + Paths: []networkingv1.HTTPIngressPath{ + { + Path: "/foo", + Backend: backendResourceNoAPIGroup, + }, + }, + }, + }, + }, + }, + }, + }), + output: `Name: bar +Namespace: foo +Address: +Default backend: default-http-backend:80 () +Rules: + Host Path Backends + ---- ---- -------- + foo.bar.com + /foo APIGroup: , Kind: foo, Name: bar +Annotations: Events: ` + "\n", }, "Spec.DefaultBackend.Service & IngressRule.HTTP.Paths.Backend.Service v1": { diff --git a/staging/src/k8s.io/kubelet/go.mod b/staging/src/k8s.io/kubelet/go.mod index e6f295bd2d61e..00b883fa05d76 100644 --- a/staging/src/k8s.io/kubelet/go.mod +++ b/staging/src/k8s.io/kubelet/go.mod @@ -5,44 +5,18 @@ module k8s.io/kubelet go 1.15 require ( - github.com/gogo/protobuf v1.3.1 - golang.org/x/net v0.0.0-20200707034311-ab3426394381 + github.com/gogo/protobuf v1.3.2 + golang.org/x/net v0.0.0-20201110031124-69a78807bb2b google.golang.org/grpc v1.27.0 - k8s.io/api v0.19.0 - k8s.io/apimachinery v0.19.0 - k8s.io/component-base v0.19.0 + k8s.io/api v0.0.0 + k8s.io/apimachinery v0.0.0 + k8s.io/component-base v0.0.0 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - go.uber.org/multierr => go.uber.org/multierr v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery - k8s.io/apiserver => ../apiserver - k8s.io/cli-runtime => ../cli-runtime k8s.io/client-go => ../client-go - k8s.io/cloud-provider => ../cloud-provider - k8s.io/cluster-bootstrap => ../cluster-bootstrap - k8s.io/code-generator => ../code-generator k8s.io/component-base => ../component-base - k8s.io/cri-api => ../cri-api - k8s.io/csi-translation-lib => ../csi-translation-lib - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator - k8s.io/kube-controller-manager => ../kube-controller-manager - k8s.io/kube-proxy => ../kube-proxy - k8s.io/kube-scheduler => ../kube-scheduler - k8s.io/kubectl => ../kubectl k8s.io/kubelet => ../kubelet - k8s.io/legacy-cloud-providers => ../legacy-cloud-providers - k8s.io/metrics => ../metrics - k8s.io/sample-apiserver => ../sample-apiserver - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/kubelet/go.sum b/staging/src/k8s.io/kubelet/go.sum index 93b837ba56b31..9445948c39583 100644 --- a/staging/src/k8s.io/kubelet/go.sum +++ b/staging/src/k8s.io/kubelet/go.sum @@ -1,4 +1,3 @@ -bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -12,7 +11,6 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7 cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= @@ -23,146 +21,42 @@ github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+v github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= -github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ= -github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -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/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= -github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200507155900-a9f01edf17e3/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200601085316-9f1617e5c574/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= -github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v1.0.0/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v1.0.0/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -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/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -170,62 +64,16 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= -github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= -github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= @@ -234,9 +82,7 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -245,18 +91,8 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -270,100 +106,36 @@ github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OI github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= -github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kubernetes-sigs/kube-storage-version-migrator v0.0.0-20191127225502-51849bc15f17/go.mod h1:enH0BVV+4+DAgWdwSlMefG8bBzTfVMTr1lApzdLZ/cc= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= -github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= -github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= -github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= -github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= -github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= @@ -371,175 +143,67 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= -github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc90.0.20200616040943-82d2fa4eb069/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8= -github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728/go.mod h1:+B51GHs/jfZzk93MKrSSA8BWxrulVVcxiBG7kdFpd74= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20200831114015-2ab0c61c15de/go.mod h1:6vwp+YhYOIlj8MpkQKkebTTSn2TuYyvgiAFQ206jIEQ= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -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.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= -github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200520041808-52d707b772fe/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -559,32 +223,22 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -595,104 +249,70 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1-0.20200106000736-b8fc810ca6b5/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -707,16 +327,12 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -726,33 +342,26 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -761,32 +370,16 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A= -k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= -k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= -sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/v1alpha/api.pb.go b/staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/v1alpha/api.pb.go index f51ab050d2d03..cfebfca4539c0 100644 --- a/staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/v1alpha/api.pb.go +++ b/staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/v1alpha/api.pb.go @@ -1597,10 +1597,7 @@ func (m *RegisterRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -1650,10 +1647,7 @@ func (m *Empty) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -1737,10 +1731,7 @@ func (m *ListAndWatchResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -1854,10 +1845,7 @@ func (m *Device) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -1939,10 +1927,7 @@ func (m *AllocateRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -2102,7 +2087,7 @@ func (m *AllocateResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -2297,7 +2282,7 @@ func (m *AllocateResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -2314,10 +2299,7 @@ func (m *AllocateResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -2451,10 +2433,7 @@ func (m *Mount) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -2600,10 +2579,7 @@ func (m *DeviceSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1/api.pb.go b/staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1/api.pb.go index 5f0ff254fe529..34361f343fc8a 100644 --- a/staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1/api.pb.go +++ b/staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1/api.pb.go @@ -2979,10 +2979,7 @@ func (m *DevicePluginOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -3164,10 +3161,7 @@ func (m *RegisterRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -3217,10 +3211,7 @@ func (m *Empty) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -3304,10 +3295,7 @@ func (m *ListAndWatchResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -3391,10 +3379,7 @@ func (m *TopologyInfo) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -3463,10 +3448,7 @@ func (m *NUMANode) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -3616,10 +3598,7 @@ func (m *Device) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -3701,10 +3680,7 @@ func (m *PreStartContainerRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -3754,10 +3730,7 @@ func (m *PreStartContainerResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -3841,10 +3814,7 @@ func (m *PreferredAllocationRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -3977,10 +3947,7 @@ func (m *ContainerPreferredAllocationRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -4064,10 +4031,7 @@ func (m *PreferredAllocationResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -4149,10 +4113,7 @@ func (m *ContainerPreferredAllocationResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -4236,10 +4197,7 @@ func (m *AllocateRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -4321,10 +4279,7 @@ func (m *ContainerAllocateRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -4408,10 +4363,7 @@ func (m *AllocateResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -4571,7 +4523,7 @@ func (m *ContainerAllocateResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -4766,7 +4718,7 @@ func (m *ContainerAllocateResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > postIndex { @@ -4783,10 +4735,7 @@ func (m *ContainerAllocateResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -4920,10 +4869,7 @@ func (m *Mount) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -5069,10 +5015,7 @@ func (m *DeviceSpec) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/kubelet/pkg/apis/pluginregistration/v1alpha1/api.pb.go b/staging/src/k8s.io/kubelet/pkg/apis/pluginregistration/v1alpha1/api.pb.go index 9612e00bbbce9..2ba8ac3631845 100644 --- a/staging/src/k8s.io/kubelet/pkg/apis/pluginregistration/v1alpha1/api.pb.go +++ b/staging/src/k8s.io/kubelet/pkg/apis/pluginregistration/v1alpha1/api.pb.go @@ -844,10 +844,7 @@ func (m *PluginInfo) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -949,10 +946,7 @@ func (m *RegistrationStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -1002,10 +996,7 @@ func (m *RegistrationStatusResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -1055,10 +1046,7 @@ func (m *InfoRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/kubelet/pkg/apis/pluginregistration/v1beta1/api.pb.go b/staging/src/k8s.io/kubelet/pkg/apis/pluginregistration/v1beta1/api.pb.go index 9612e00bbbce9..2ba8ac3631845 100644 --- a/staging/src/k8s.io/kubelet/pkg/apis/pluginregistration/v1beta1/api.pb.go +++ b/staging/src/k8s.io/kubelet/pkg/apis/pluginregistration/v1beta1/api.pb.go @@ -844,10 +844,7 @@ func (m *PluginInfo) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -949,10 +946,7 @@ func (m *RegistrationStatus) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -1002,10 +996,7 @@ func (m *RegistrationStatusResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -1055,10 +1046,7 @@ func (m *InfoRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/aws.go b/staging/src/k8s.io/legacy-cloud-providers/aws/aws.go index d0cc73a17fc30..8c5947144166a 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/aws.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/aws.go @@ -217,6 +217,16 @@ const ServiceAnnotationLoadBalancerEIPAllocations = "service.beta.kubernetes.io/ // For example: "Key1=Val1,Key2=Val2,KeyNoVal1=,KeyNoVal2" const ServiceAnnotationLoadBalancerTargetNodeLabels = "service.beta.kubernetes.io/aws-load-balancer-target-node-labels" +// ServiceAnnotationLoadBalancerSubnets is the annotation used on the service to specify the +// Availability Zone configuration for the load balancer. The values are comma separated list of +// subnetID or subnetName from different AZs +// By default, the controller will auto-discover the subnets. If there are multiple subnets per AZ, auto-discovery +// will break the tie in the following order - +// 1. prefer the subnet with the correct role tag. kubernetes.io/role/elb for public and kubernetes.io/role/internal-elb for private access +// 2. prefer the subnet with the cluster tag kubernetes.io/cluster/ +// 3. prefer the subnet that is first in lexicographic order +const ServiceAnnotationLoadBalancerSubnets = "service.beta.kubernetes.io/aws-load-balancer-subnets" + // Event key when a volume is stuck on attaching state when being attached to a volume const volumeAttachmentStuck = "VolumeAttachmentStuck" @@ -3352,7 +3362,7 @@ func findTag(tags []*ec2.Tag, key string) (string, bool) { return "", false } -// Finds the subnets associated with the cluster, by matching tags. +// Finds the subnets associated with the cluster, by matching cluster tags if present. // For maximal backwards compatibility, if no subnets are tagged, it will fall-back to the current subnet. // However, in future this will likely be treated as an error. func (c *Cloud) findSubnets() ([]*ec2.Subnet, error) { @@ -3368,6 +3378,8 @@ func (c *Cloud) findSubnets() ([]*ec2.Subnet, error) { for _, subnet := range subnets { if c.tagging.hasClusterTag(subnet.Tags) { matches = append(matches, subnet) + } else if c.tagging.hasNoClusterPrefixTag(subnet.Tags) { + matches = append(matches, subnet) } } @@ -3431,7 +3443,7 @@ func (c *Cloud) findELBSubnets(internalELB bool) ([]string, error) { continue } - // Try to break the tie using a tag + // Try to break the tie using the role tag var tagName string if internalELB { tagName = TagNameSubnetInternalELB @@ -3449,8 +3461,17 @@ func (c *Cloud) findELBSubnets(internalELB bool) ([]string, error) { continue } + // Prefer the one with the cluster Tag + existingHasClusterTag := c.tagging.hasClusterTag(existing.Tags) + subnetHasClusterTag := c.tagging.hasClusterTag(subnet.Tags) + if existingHasClusterTag != subnetHasClusterTag { + if subnetHasClusterTag { + subnetsByAZ[az] = subnet + } + continue + } + // If we have two subnets for the same AZ we arbitrarily choose the one that is first lexicographically. - // TODO: Should this be an error. if strings.Compare(*existing.SubnetId, *subnet.SubnetId) > 0 { klog.Warningf("Found multiple subnets in AZ %q; choosing %q between subnets %q and %q", az, *subnet.SubnetId, *existing.SubnetId, *subnet.SubnetId) subnetsByAZ[az] = subnet @@ -3476,6 +3497,98 @@ func (c *Cloud) findELBSubnets(internalELB bool) ([]string, error) { return subnetIDs, nil } +func splitCommaSeparatedString(commaSeparatedString string) []string { + var result []string + parts := strings.Split(commaSeparatedString, ",") + for _, part := range parts { + part = strings.TrimSpace(part) + if len(part) == 0 { + continue + } + result = append(result, part) + } + return result +} + +func parseStringAnnotation(annotations map[string]string, annotation string, value *string) bool { + if v, ok := annotations[annotation]; ok { + *value = v + return true + } + return false +} + +// parses comma separated values from annotation into string slice, returns true if annotation exists +func parseStringSliceAnnotation(annotations map[string]string, annotation string, value *[]string) bool { + rawValue := "" + if exists := parseStringAnnotation(annotations, annotation, &rawValue); !exists { + return false + } + *value = splitCommaSeparatedString(rawValue) + return true +} + +func (c *Cloud) getLoadBalancerSubnets(service *v1.Service, internalELB bool) ([]string, error) { + var rawSubnetNameOrIDs []string + if exists := parseStringSliceAnnotation(service.Annotations, ServiceAnnotationLoadBalancerSubnets, &rawSubnetNameOrIDs); exists { + return c.resolveSubnetNameOrIDs(rawSubnetNameOrIDs) + } + return c.findELBSubnets(internalELB) +} + +func (c *Cloud) resolveSubnetNameOrIDs(subnetNameOrIDs []string) ([]string, error) { + var subnetIDs []string + var subnetNames []string + if len(subnetNameOrIDs) == 0 { + return []string{}, fmt.Errorf("unable to resolve empty subnet slice") + } + for _, nameOrID := range subnetNameOrIDs { + if strings.HasPrefix(nameOrID, "subnet-") { + subnetIDs = append(subnetIDs, nameOrID) + } else { + subnetNames = append(subnetNames, nameOrID) + } + } + var resolvedSubnets []*ec2.Subnet + if len(subnetIDs) > 0 { + req := &ec2.DescribeSubnetsInput{ + SubnetIds: aws.StringSlice(subnetIDs), + } + subnets, err := c.ec2.DescribeSubnets(req) + if err != nil { + return []string{}, err + } + resolvedSubnets = append(resolvedSubnets, subnets...) + } + if len(subnetNames) > 0 { + req := &ec2.DescribeSubnetsInput{ + Filters: []*ec2.Filter{ + { + Name: aws.String("tag:Name"), + Values: aws.StringSlice(subnetNames), + }, + { + Name: aws.String("vpc-id"), + Values: aws.StringSlice([]string{c.vpcID}), + }, + }, + } + subnets, err := c.ec2.DescribeSubnets(req) + if err != nil { + return []string{}, err + } + resolvedSubnets = append(resolvedSubnets, subnets...) + } + if len(resolvedSubnets) != len(subnetNameOrIDs) { + return []string{}, fmt.Errorf("expected to find %v, but found %v subnets", len(subnetNameOrIDs), len(resolvedSubnets)) + } + var subnets []string + for _, subnet := range resolvedSubnets { + subnets = append(subnets, aws.StringValue(subnet.SubnetId)) + } + return subnets, nil +} + func isSubnetPublic(rt []*ec2.RouteTable, subnetID string) (bool, error) { var subnetTable *ec2.RouteTable for _, table := range rt { @@ -3689,6 +3802,9 @@ func (c *Cloud) getSubnetCidrs(subnetIDs []string) ([]string, error) { // EnsureLoadBalancer implements LoadBalancer.EnsureLoadBalancer func (c *Cloud) EnsureLoadBalancer(ctx context.Context, clusterName string, apiService *v1.Service, nodes []*v1.Node) (*v1.LoadBalancerStatus, error) { annotations := apiService.Annotations + if isLBExternal(annotations) { + return nil, cloudprovider.ImplementedElsewhere + } klog.V(2).Infof("EnsureLoadBalancer(%v, %v, %v, %v, %v, %v, %v)", clusterName, apiService.Namespace, apiService.Name, c.region, apiService.Spec.LoadBalancerIP, apiService.Spec.Ports, annotations) @@ -3700,7 +3816,6 @@ func (c *Cloud) EnsureLoadBalancer(ctx context.Context, clusterName string, apiS if len(apiService.Spec.Ports) == 0 { return nil, fmt.Errorf("requested load balancer with no ports") } - // Figure out what mappings we want on the load balancer listeners := []*elb.Listener{} v2Mappings := []nlbPortMapping{} @@ -3784,7 +3899,7 @@ func (c *Cloud) EnsureLoadBalancer(ctx context.Context, clusterName string, apiS } // Find the subnets that the ELB will live in - subnetIDs, err := c.findELBSubnets(internalELB) + subnetIDs, err := c.getLoadBalancerSubnets(apiService, internalELB) if err != nil { klog.Errorf("Error listing subnets in VPC: %q", err) return nil, err @@ -3951,7 +4066,7 @@ func (c *Cloud) EnsureLoadBalancer(ctx context.Context, clusterName string, apiS } // Find the subnets that the ELB will live in - subnetIDs, err := c.findELBSubnets(internalELB) + subnetIDs, err := c.getLoadBalancerSubnets(apiService, internalELB) if err != nil { klog.Errorf("Error listing subnets in VPC: %q", err) return nil, err @@ -4092,6 +4207,9 @@ func (c *Cloud) EnsureLoadBalancer(ctx context.Context, clusterName string, apiS // GetLoadBalancer is an implementation of LoadBalancer.GetLoadBalancer func (c *Cloud) GetLoadBalancer(ctx context.Context, clusterName string, service *v1.Service) (*v1.LoadBalancerStatus, bool, error) { + if isLBExternal(service.Annotations) { + return nil, false, nil + } loadBalancerName := c.GetLoadBalancerName(ctx, clusterName, service) if isNLB(service.Annotations) { @@ -4352,6 +4470,9 @@ func (c *Cloud) updateInstanceSecurityGroupsForLoadBalancer(lb *elb.LoadBalancer // EnsureLoadBalancerDeleted implements LoadBalancer.EnsureLoadBalancerDeleted. func (c *Cloud) EnsureLoadBalancerDeleted(ctx context.Context, clusterName string, service *v1.Service) error { + if isLBExternal(service.Annotations) { + return nil + } loadBalancerName := c.GetLoadBalancerName(ctx, clusterName, service) if isNLB(service.Annotations) { @@ -4536,11 +4657,13 @@ func (c *Cloud) EnsureLoadBalancerDeleted(ctx context.Context, clusterName strin // UpdateLoadBalancer implements LoadBalancer.UpdateLoadBalancer func (c *Cloud) UpdateLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) error { + if isLBExternal(service.Annotations) { + return cloudprovider.ImplementedElsewhere + } instances, err := c.findInstancesForELB(nodes, service.Annotations) if err != nil { return err } - loadBalancerName := c.GetLoadBalancerName(ctx, clusterName, service) if isNLB(service.Annotations) { lb, err := c.describeLoadBalancerv2(loadBalancerName) diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_loadbalancer.go b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_loadbalancer.go index 07bb7106b1b4f..78bc0892e5555 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_loadbalancer.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_loadbalancer.go @@ -32,9 +32,9 @@ import ( "github.com/aws/aws-sdk-go/service/ec2" "github.com/aws/aws-sdk-go/service/elb" "github.com/aws/aws-sdk-go/service/elbv2" + v1 "k8s.io/api/core/v1" "k8s.io/klog/v2" - "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" ) @@ -60,6 +60,10 @@ var ( defaultHCUnhealthyThreshold = int64(6) defaultHCTimeout = int64(5) defaultHCInterval = int64(10) + + // Defaults for ELB Target operations + defaultRegisterTargetsChunkSize = 100 + defaultDeregisterTargetsChunkSize = 100 ) func isNLB(annotations map[string]string) bool { @@ -69,6 +73,13 @@ func isNLB(annotations map[string]string) bool { return false } +func isLBExternal(annotations map[string]string) bool { + if val := annotations[ServiceAnnotationLoadBalancerType]; val == "nlb-ip" || val == "external" { + return true + } + return false +} + type nlbPortMapping struct { FrontendPort int64 FrontendProtocol string @@ -533,6 +544,7 @@ func (c *Cloud) deleteListenerV2(listener *elbv2.Listener) error { // ensureTargetGroup creates a target group with a set of instances. func (c *Cloud) ensureTargetGroup(targetGroup *elbv2.TargetGroup, serviceName types.NamespacedName, mapping nlbPortMapping, instances []string, vpcID string, tags map[string]string) (*elbv2.TargetGroup, error) { dirty := false + expectedTargets := c.computeTargetGroupExpectedTargets(instances, mapping.TrafficPort) if targetGroup == nil { targetType := "instance" name := c.buildTargetGroupName(serviceName, mapping.FrontendPort, mapping.TrafficPort, mapping.TrafficProtocol, targetType) @@ -589,86 +601,23 @@ func (c *Cloud) ensureTargetGroup(targetGroup *elbv2.TargetGroup, serviceName ty } } - registerInput := &elbv2.RegisterTargetsInput{ - TargetGroupArn: result.TargetGroups[0].TargetGroupArn, - Targets: []*elbv2.TargetDescription{}, - } - for _, instanceID := range instances { - registerInput.Targets = append(registerInput.Targets, &elbv2.TargetDescription{ - Id: aws.String(string(instanceID)), - Port: aws.Int64(mapping.TrafficPort), - }) - } - - _, err = c.elbv2.RegisterTargets(registerInput) - if err != nil { - return nil, fmt.Errorf("error registering targets for load balancer: %q", err) + tg := result.TargetGroups[0] + tgARN := aws.StringValue(tg.TargetGroupArn) + if err := c.ensureTargetGroupTargets(tgARN, expectedTargets, nil); err != nil { + return nil, err } - - return result.TargetGroups[0], nil + return tg, nil } // handle instances in service { - healthResponse, err := c.elbv2.DescribeTargetHealth(&elbv2.DescribeTargetHealthInput{TargetGroupArn: targetGroup.TargetGroupArn}) + tgARN := aws.StringValue(targetGroup.TargetGroupArn) + actualTargets, err := c.obtainTargetGroupActualTargets(tgARN) if err != nil { - return nil, fmt.Errorf("error describing target group health: %q", err) - } - actualIDs := []string{} - for _, healthDescription := range healthResponse.TargetHealthDescriptions { - if aws.StringValue(healthDescription.TargetHealth.State) == elbv2.TargetHealthStateEnumHealthy { - actualIDs = append(actualIDs, *healthDescription.Target.Id) - } else if healthDescription.TargetHealth.Reason != nil { - switch aws.StringValue(healthDescription.TargetHealth.Reason) { - case elbv2.TargetHealthReasonEnumTargetDeregistrationInProgress: - // We don't need to count this instance in service if it is - // on its way out - default: - actualIDs = append(actualIDs, *healthDescription.Target.Id) - } - } - } - - actual := sets.NewString(actualIDs...) - expected := sets.NewString(instances...) - - additions := expected.Difference(actual) - removals := actual.Difference(expected) - - if len(additions) > 0 { - registerInput := &elbv2.RegisterTargetsInput{ - TargetGroupArn: targetGroup.TargetGroupArn, - Targets: []*elbv2.TargetDescription{}, - } - for instanceID := range additions { - registerInput.Targets = append(registerInput.Targets, &elbv2.TargetDescription{ - Id: aws.String(instanceID), - Port: aws.Int64(mapping.TrafficPort), - }) - } - _, err := c.elbv2.RegisterTargets(registerInput) - if err != nil { - return nil, fmt.Errorf("error registering new targets in target group: %q", err) - } - dirty = true + return nil, err } - - if len(removals) > 0 { - deregisterInput := &elbv2.DeregisterTargetsInput{ - TargetGroupArn: targetGroup.TargetGroupArn, - Targets: []*elbv2.TargetDescription{}, - } - for instanceID := range removals { - deregisterInput.Targets = append(deregisterInput.Targets, &elbv2.TargetDescription{ - Id: aws.String(instanceID), - Port: aws.Int64(mapping.TrafficPort), - }) - } - _, err := c.elbv2.DeregisterTargets(deregisterInput) - if err != nil { - return nil, fmt.Errorf("error trying to deregister targets in target group: %q", err) - } - dirty = true + if err := c.ensureTargetGroupTargets(tgARN, expectedTargets, actualTargets); err != nil { + return nil, err } } @@ -716,6 +665,101 @@ func (c *Cloud) ensureTargetGroup(targetGroup *elbv2.TargetGroup, serviceName ty return targetGroup, nil } +func (c *Cloud) ensureTargetGroupTargets(tgARN string, expectedTargets []*elbv2.TargetDescription, actualTargets []*elbv2.TargetDescription) error { + targetsToRegister, targetsToDeregister := c.diffTargetGroupTargets(expectedTargets, actualTargets) + if len(targetsToRegister) > 0 { + targetsToRegisterChunks := c.chunkTargetDescriptions(targetsToRegister, defaultRegisterTargetsChunkSize) + for _, targetsChunk := range targetsToRegisterChunks { + req := &elbv2.RegisterTargetsInput{ + TargetGroupArn: aws.String(tgARN), + Targets: targetsChunk, + } + if _, err := c.elbv2.RegisterTargets(req); err != nil { + return fmt.Errorf("error trying to register targets in target group: %q", err) + } + } + } + if len(targetsToDeregister) > 0 { + targetsToDeregisterChunks := c.chunkTargetDescriptions(targetsToDeregister, defaultDeregisterTargetsChunkSize) + for _, targetsChunk := range targetsToDeregisterChunks { + req := &elbv2.DeregisterTargetsInput{ + TargetGroupArn: aws.String(tgARN), + Targets: targetsChunk, + } + if _, err := c.elbv2.DeregisterTargets(req); err != nil { + return fmt.Errorf("error trying to deregister targets in target group: %q", err) + } + } + } + return nil +} + +func (c *Cloud) computeTargetGroupExpectedTargets(instanceIDs []string, port int64) []*elbv2.TargetDescription { + expectedTargets := make([]*elbv2.TargetDescription, 0, len(instanceIDs)) + for _, instanceID := range instanceIDs { + expectedTargets = append(expectedTargets, &elbv2.TargetDescription{ + Id: aws.String(instanceID), + Port: aws.Int64(port), + }) + } + return expectedTargets +} + +func (c *Cloud) obtainTargetGroupActualTargets(tgARN string) ([]*elbv2.TargetDescription, error) { + req := &elbv2.DescribeTargetHealthInput{ + TargetGroupArn: aws.String(tgARN), + } + resp, err := c.elbv2.DescribeTargetHealth(req) + if err != nil { + return nil, fmt.Errorf("error describing target group health: %q", err) + } + actualTargets := make([]*elbv2.TargetDescription, 0, len(resp.TargetHealthDescriptions)) + for _, targetDesc := range resp.TargetHealthDescriptions { + if targetDesc.TargetHealth.Reason != nil && aws.StringValue(targetDesc.TargetHealth.Reason) == elbv2.TargetHealthReasonEnumTargetDeregistrationInProgress { + continue + } + actualTargets = append(actualTargets, targetDesc.Target) + } + return actualTargets, nil +} + +// diffTargetGroupTargets computes the targets to register and targets to deregister based on existingTargets and desired instances. +func (c *Cloud) diffTargetGroupTargets(expectedTargets []*elbv2.TargetDescription, actualTargets []*elbv2.TargetDescription) (targetsToRegister []*elbv2.TargetDescription, targetsToDeregister []*elbv2.TargetDescription) { + expectedTargetsByUID := make(map[string]*elbv2.TargetDescription, len(expectedTargets)) + for _, target := range expectedTargets { + targetUID := fmt.Sprintf("%v:%v", aws.StringValue(target.Id), aws.Int64Value(target.Port)) + expectedTargetsByUID[targetUID] = target + } + actualTargetsByUID := make(map[string]*elbv2.TargetDescription, len(actualTargets)) + for _, target := range actualTargets { + targetUID := fmt.Sprintf("%v:%v", aws.StringValue(target.Id), aws.Int64Value(target.Port)) + actualTargetsByUID[targetUID] = target + } + + expectedTargetsUIDs := sets.StringKeySet(expectedTargetsByUID) + actualTargetsUIDs := sets.StringKeySet(actualTargetsByUID) + for _, targetUID := range expectedTargetsUIDs.Difference(actualTargetsUIDs).List() { + targetsToRegister = append(targetsToRegister, expectedTargetsByUID[targetUID]) + } + for _, targetUID := range actualTargetsUIDs.Difference(expectedTargetsUIDs).List() { + targetsToDeregister = append(targetsToDeregister, actualTargetsByUID[targetUID]) + } + return targetsToRegister, targetsToDeregister +} + +// chunkTargetDescriptions will split slice of TargetDescription into chunks +func (c *Cloud) chunkTargetDescriptions(targets []*elbv2.TargetDescription, chunkSize int) [][]*elbv2.TargetDescription { + var chunks [][]*elbv2.TargetDescription + for i := 0; i < len(targets); i += chunkSize { + end := i + chunkSize + if end > len(targets) { + end = len(targets) + } + chunks = append(chunks, targets[i:end]) + } + return chunks +} + // updateInstanceSecurityGroupsForNLB will adjust securityGroup's settings to allow inbound traffic into instances from clientCIDRs and portMappings. // TIP: if either instances or clientCIDRs or portMappings are nil, then the securityGroup rules for lbName are cleared. func (c *Cloud) updateInstanceSecurityGroupsForNLB(lbName string, instances map[InstanceID]*ec2.Instance, subnetCIDRs []string, clientCIDRs []string, portMappings []nlbPortMapping) error { diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_loadbalancer_test.go b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_loadbalancer_test.go index cfee659300a41..aa86c187200fd 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_loadbalancer_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_loadbalancer_test.go @@ -24,6 +24,7 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/elb" + "github.com/aws/aws-sdk-go/service/elbv2" "github.com/stretchr/testify/assert" "k8s.io/api/core/v1" @@ -168,6 +169,43 @@ func TestIsNLB(t *testing.T) { } } +func TestIsLBExternal(t *testing.T) { + tests := []struct { + name string + annotations map[string]string + want bool + }{ + { + name: "No annotation", + annotations: map[string]string{}, + want: false, + }, + { + name: "Type NLB", + annotations: map[string]string{"service.beta.kubernetes.io/aws-load-balancer-type": "nlb"}, + want: false, + }, + { + name: "Type NLB-IP", + annotations: map[string]string{"service.beta.kubernetes.io/aws-load-balancer-type": "nlb-ip"}, + want: true, + }, + { + name: "Type External", + annotations: map[string]string{"service.beta.kubernetes.io/aws-load-balancer-type": "external"}, + want: true, + }, + } + for _, test := range tests { + t.Logf("Running test case %s", test.name) + got := isLBExternal(test.annotations) + + if got != test.want { + t.Errorf("Incorrect value for isLBExternal() case %s. Got %t, expected %t.", test.name, got, test.want) + } + } +} + func TestSyncElbListeners(t *testing.T) { tests := []struct { name string @@ -476,3 +514,455 @@ func TestFilterTargetNodes(t *testing.T) { }) } } + +func TestCloud_chunkTargetDescriptions(t *testing.T) { + type args struct { + targets []*elbv2.TargetDescription + chunkSize int + } + tests := []struct { + name string + args args + want [][]*elbv2.TargetDescription + }{ + { + name: "can be evenly chunked", + args: args{ + targets: []*elbv2.TargetDescription{ + { + Id: aws.String("i-abcdefg1"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg2"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg3"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg4"), + Port: aws.Int64(8080), + }, + }, + chunkSize: 2, + }, + want: [][]*elbv2.TargetDescription{ + { + { + Id: aws.String("i-abcdefg1"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg2"), + Port: aws.Int64(8080), + }, + }, + { + { + Id: aws.String("i-abcdefg3"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg4"), + Port: aws.Int64(8080), + }, + }, + }, + }, + { + name: "cannot be evenly chunked", + args: args{ + targets: []*elbv2.TargetDescription{ + { + Id: aws.String("i-abcdefg1"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg2"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg3"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg4"), + Port: aws.Int64(8080), + }, + }, + chunkSize: 3, + }, + want: [][]*elbv2.TargetDescription{ + { + { + Id: aws.String("i-abcdefg1"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg2"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg3"), + Port: aws.Int64(8080), + }, + }, + { + + { + Id: aws.String("i-abcdefg4"), + Port: aws.Int64(8080), + }, + }, + }, + }, + { + name: "chunkSize equal to total count", + args: args{ + targets: []*elbv2.TargetDescription{ + { + Id: aws.String("i-abcdefg1"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg2"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg3"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg4"), + Port: aws.Int64(8080), + }, + }, + chunkSize: 4, + }, + want: [][]*elbv2.TargetDescription{ + { + { + Id: aws.String("i-abcdefg1"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg2"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg3"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg4"), + Port: aws.Int64(8080), + }, + }, + }, + }, + { + name: "chunkSize greater than total count", + args: args{ + targets: []*elbv2.TargetDescription{ + { + Id: aws.String("i-abcdefg1"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg2"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg3"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg4"), + Port: aws.Int64(8080), + }, + }, + chunkSize: 10, + }, + want: [][]*elbv2.TargetDescription{ + { + { + Id: aws.String("i-abcdefg1"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg2"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg3"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdefg4"), + Port: aws.Int64(8080), + }, + }, + }, + }, + { + name: "chunk nil slice", + args: args{ + targets: nil, + chunkSize: 2, + }, + want: nil, + }, + { + name: "chunk empty slice", + args: args{ + targets: []*elbv2.TargetDescription{}, + chunkSize: 2, + }, + want: nil, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + c := &Cloud{} + got := c.chunkTargetDescriptions(tt.args.targets, tt.args.chunkSize) + assert.Equal(t, tt.want, got) + }) + } +} + +func TestCloud_diffTargetGroupTargets(t *testing.T) { + type args struct { + expectedTargets []*elbv2.TargetDescription + actualTargets []*elbv2.TargetDescription + } + tests := []struct { + name string + args args + wantTargetsToRegister []*elbv2.TargetDescription + wantTargetsToDeregister []*elbv2.TargetDescription + }{ + { + name: "all targets to register", + args: args{ + expectedTargets: []*elbv2.TargetDescription{ + { + Id: aws.String("i-abcdef1"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdef2"), + Port: aws.Int64(8080), + }, + }, + actualTargets: nil, + }, + wantTargetsToRegister: []*elbv2.TargetDescription{ + { + Id: aws.String("i-abcdef1"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdef2"), + Port: aws.Int64(8080), + }, + }, + wantTargetsToDeregister: nil, + }, + { + name: "all targets to deregister", + args: args{ + expectedTargets: nil, + actualTargets: []*elbv2.TargetDescription{ + { + Id: aws.String("i-abcdef1"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdef2"), + Port: aws.Int64(8080), + }, + }, + }, + wantTargetsToRegister: nil, + wantTargetsToDeregister: []*elbv2.TargetDescription{ + { + Id: aws.String("i-abcdef1"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdef2"), + Port: aws.Int64(8080), + }, + }, + }, + { + name: "some targets to register and deregister", + args: args{ + expectedTargets: []*elbv2.TargetDescription{ + { + Id: aws.String("i-abcdef1"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdef4"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdef5"), + Port: aws.Int64(8080), + }, + }, + actualTargets: []*elbv2.TargetDescription{ + { + Id: aws.String("i-abcdef1"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdef2"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdef3"), + Port: aws.Int64(8080), + }, + }, + }, + wantTargetsToRegister: []*elbv2.TargetDescription{ + { + Id: aws.String("i-abcdef4"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdef5"), + Port: aws.Int64(8080), + }, + }, + wantTargetsToDeregister: []*elbv2.TargetDescription{ + { + Id: aws.String("i-abcdef2"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdef3"), + Port: aws.Int64(8080), + }, + }, + }, + { + name: "both expected and actual targets are empty", + args: args{ + expectedTargets: nil, + actualTargets: nil, + }, + wantTargetsToRegister: nil, + wantTargetsToDeregister: nil, + }, + { + name: "expected and actual targets equals", + args: args{ + expectedTargets: []*elbv2.TargetDescription{ + { + Id: aws.String("i-abcdef1"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdef2"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdef3"), + Port: aws.Int64(8080), + }, + }, + actualTargets: []*elbv2.TargetDescription{ + { + Id: aws.String("i-abcdef1"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdef2"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdef3"), + Port: aws.Int64(8080), + }, + }, + }, + wantTargetsToRegister: nil, + wantTargetsToDeregister: nil, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + c := &Cloud{} + gotTargetsToRegister, gotTargetsToDeregister := c.diffTargetGroupTargets(tt.args.expectedTargets, tt.args.actualTargets) + assert.Equal(t, tt.wantTargetsToRegister, gotTargetsToRegister) + assert.Equal(t, tt.wantTargetsToDeregister, gotTargetsToDeregister) + }) + } +} + +func TestCloud_computeTargetGroupExpectedTargets(t *testing.T) { + type args struct { + instanceIDs []string + port int64 + } + tests := []struct { + name string + args args + want []*elbv2.TargetDescription + }{ + { + name: "no instance", + args: args{ + instanceIDs: nil, + port: 8080, + }, + want: []*elbv2.TargetDescription{}, + }, + { + name: "one instance", + args: args{ + instanceIDs: []string{"i-abcdef1"}, + port: 8080, + }, + want: []*elbv2.TargetDescription{ + { + Id: aws.String("i-abcdef1"), + Port: aws.Int64(8080), + }, + }, + }, + { + name: "multiple instances", + args: args{ + instanceIDs: []string{"i-abcdef1", "i-abcdef2", "i-abcdef3"}, + port: 8080, + }, + want: []*elbv2.TargetDescription{ + { + Id: aws.String("i-abcdef1"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdef2"), + Port: aws.Int64(8080), + }, + { + Id: aws.String("i-abcdef3"), + Port: aws.Int64(8080), + }, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + c := &Cloud{} + got := c.computeTargetGroupExpectedTargets(tt.args.instanceIDs, tt.args.port) + assert.Equal(t, tt.want, got) + }) + } +} diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_test.go b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_test.go index 69564f6357c9c..ab6ccdb9caa79 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/aws_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/aws_test.go @@ -20,6 +20,7 @@ package aws import ( "context" + "errors" "fmt" "io" "math/rand" @@ -808,6 +809,356 @@ func constructRouteTable(subnetID string, public bool) *ec2.RouteTable { } } +func Test_findELBSubnets(t *testing.T) { + awsServices := newMockedFakeAWSServices(TestClusterID) + c, err := newAWSCloud(CloudConfig{}, awsServices) + if err != nil { + t.Errorf("Error building aws cloud: %v", err) + return + } + subnetA0000001 := &ec2.Subnet{ + AvailabilityZone: aws.String("us-west-2a"), + SubnetId: aws.String("subnet-a0000001"), + Tags: []*ec2.Tag{ + { + Key: aws.String(TagNameSubnetPublicELB), + Value: aws.String("1"), + }, + }, + } + subnetA0000002 := &ec2.Subnet{ + AvailabilityZone: aws.String("us-west-2a"), + SubnetId: aws.String("subnet-a0000002"), + Tags: []*ec2.Tag{ + { + Key: aws.String(TagNameSubnetPublicELB), + Value: aws.String("1"), + }, + }, + } + subnetA0000003 := &ec2.Subnet{ + AvailabilityZone: aws.String("us-west-2a"), + SubnetId: aws.String("subnet-a0000003"), + Tags: []*ec2.Tag{ + { + Key: aws.String(c.tagging.clusterTagKey()), + Value: aws.String("owned"), + }, + { + Key: aws.String(TagNameSubnetInternalELB), + Value: aws.String("1"), + }, + }, + } + subnetB0000001 := &ec2.Subnet{ + AvailabilityZone: aws.String("us-west-2b"), + SubnetId: aws.String("subnet-b0000001"), + Tags: []*ec2.Tag{ + { + Key: aws.String(c.tagging.clusterTagKey()), + Value: aws.String("owned"), + }, + { + Key: aws.String(TagNameSubnetPublicELB), + Value: aws.String("1"), + }, + }, + } + subnetB0000002 := &ec2.Subnet{ + AvailabilityZone: aws.String("us-west-2b"), + SubnetId: aws.String("subnet-b0000002"), + Tags: []*ec2.Tag{ + { + Key: aws.String(c.tagging.clusterTagKey()), + Value: aws.String("owned"), + }, + { + Key: aws.String(TagNameSubnetInternalELB), + Value: aws.String("1"), + }, + }, + } + subnetC0000001 := &ec2.Subnet{ + AvailabilityZone: aws.String("us-west-2c"), + SubnetId: aws.String("subnet-c0000001"), + Tags: []*ec2.Tag{ + { + Key: aws.String(c.tagging.clusterTagKey()), + Value: aws.String("owned"), + }, + { + Key: aws.String(TagNameSubnetInternalELB), + Value: aws.String("1"), + }, + }, + } + subnetOther := &ec2.Subnet{ + AvailabilityZone: aws.String("us-west-2c"), + SubnetId: aws.String("subnet-other"), + Tags: []*ec2.Tag{ + { + Key: aws.String(TagNameKubernetesClusterPrefix + "clusterid.other"), + Value: aws.String("owned"), + }, + { + Key: aws.String(TagNameSubnetInternalELB), + Value: aws.String("1"), + }, + }, + } + subnetNoTag := &ec2.Subnet{ + AvailabilityZone: aws.String("us-west-2c"), + SubnetId: aws.String("subnet-notag"), + } + + tests := []struct { + name string + subnets []*ec2.Subnet + routeTables map[string]bool + internal bool + want []string + }{ + { + name: "no subnets", + }, + { + name: "single tagged subnet", + subnets: []*ec2.Subnet{ + subnetA0000001, + }, + routeTables: map[string]bool{ + "subnet-a0000001": true, + }, + internal: false, + want: []string{"subnet-a0000001"}, + }, + { + name: "no matching public subnet", + subnets: []*ec2.Subnet{ + subnetA0000002, + }, + routeTables: map[string]bool{ + "subnet-a0000002": false, + }, + want: nil, + }, + { + name: "prefer role over cluster tag", + subnets: []*ec2.Subnet{ + subnetA0000001, + subnetA0000003, + }, + routeTables: map[string]bool{ + "subnet-a0000001": true, + "subnet-a0000003": true, + }, + want: []string{"subnet-a0000001"}, + }, + { + name: "prefer cluster tag", + subnets: []*ec2.Subnet{ + subnetC0000001, + subnetNoTag, + }, + want: []string{"subnet-c0000001"}, + }, + { + name: "include untagged", + subnets: []*ec2.Subnet{ + subnetA0000001, + subnetNoTag, + }, + routeTables: map[string]bool{ + "subnet-a0000001": true, + "subnet-notag": true, + }, + want: []string{"subnet-a0000001", "subnet-notag"}, + }, + { + name: "ignore some other cluster owned subnet", + subnets: []*ec2.Subnet{ + subnetB0000001, + subnetOther, + }, + routeTables: map[string]bool{ + "subnet-b0000001": true, + "subnet-other": true, + }, + want: []string{"subnet-b0000001"}, + }, + { + name: "prefer matching role", + subnets: []*ec2.Subnet{ + subnetB0000001, + subnetB0000002, + }, + routeTables: map[string]bool{ + "subnet-b0000001": false, + "subnet-b0000002": false, + }, + want: []string{"subnet-b0000002"}, + internal: true, + }, + { + name: "choose lexicographic order", + subnets: []*ec2.Subnet{ + subnetA0000001, + subnetA0000002, + }, + routeTables: map[string]bool{ + "subnet-a0000001": true, + "subnet-a0000002": true, + }, + want: []string{"subnet-a0000001"}, + }, + { + name: "everything", + subnets: []*ec2.Subnet{ + subnetA0000001, + subnetA0000002, + subnetB0000001, + subnetB0000002, + subnetC0000001, + subnetNoTag, + subnetOther, + }, + routeTables: map[string]bool{ + "subnet-a0000001": true, + "subnet-a0000002": true, + "subnet-b0000001": true, + "subnet-b0000002": true, + "subnet-c0000001": true, + "subnet-notag": true, + "subnet-other": true, + }, + want: []string{"subnet-a0000001", "subnet-b0000001", "subnet-c0000001"}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + awsServices.ec2.RemoveSubnets() + awsServices.ec2.RemoveRouteTables() + for _, subnet := range tt.subnets { + awsServices.ec2.CreateSubnet(subnet) + } + routeTables := constructRouteTables(tt.routeTables) + for _, rt := range routeTables { + awsServices.ec2.CreateRouteTable(rt) + } + got, _ := c.findELBSubnets(tt.internal) + sort.Strings(tt.want) + sort.Strings(got) + assert.Equal(t, tt.want, got) + }) + } +} + +func Test_getLoadBalancerSubnets(t *testing.T) { + awsServices := newMockedFakeAWSServices(TestClusterID) + c, err := newAWSCloud(CloudConfig{}, awsServices) + if err != nil { + t.Errorf("Error building aws cloud: %v", err) + return + } + tests := []struct { + name string + service *v1.Service + subnets []*ec2.Subnet + internalELB bool + want []string + wantErr error + }{ + { + name: "no annotation", + service: &v1.Service{}, + }, + { + name: "annotation with no subnets", + service: &v1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Annotations: map[string]string{ + "service.beta.kubernetes.io/aws-load-balancer-subnets": "\t", + }, + }, + }, + wantErr: errors.New("unable to resolve empty subnet slice"), + }, + { + name: "subnet ids", + subnets: []*ec2.Subnet{ + { + AvailabilityZone: aws.String("us-west-2c"), + SubnetId: aws.String("subnet-a000001"), + }, + { + AvailabilityZone: aws.String("us-west-2b"), + SubnetId: aws.String("subnet-a000002"), + }, + }, + service: &v1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Annotations: map[string]string{ + "service.beta.kubernetes.io/aws-load-balancer-subnets": "subnet-a000001, subnet-a000002", + }, + }, + }, + want: []string{"subnet-a000001", "subnet-a000002"}, + }, + { + name: "subnet names", + subnets: []*ec2.Subnet{ + { + AvailabilityZone: aws.String("us-west-2c"), + SubnetId: aws.String("subnet-a000001"), + }, + { + AvailabilityZone: aws.String("us-west-2b"), + SubnetId: aws.String("subnet-a000002"), + }, + }, + service: &v1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Annotations: map[string]string{ + "service.beta.kubernetes.io/aws-load-balancer-subnets": "My Subnet 1, My Subnet 2 ", + }, + }, + }, + want: []string{"subnet-a000001", "subnet-a000002"}, + }, + { + name: "unable to find all subnets", + subnets: []*ec2.Subnet{ + { + AvailabilityZone: aws.String("us-west-2c"), + SubnetId: aws.String("subnet-a000001"), + }, + }, + service: &v1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Annotations: map[string]string{ + "service.beta.kubernetes.io/aws-load-balancer-subnets": "My Subnet 1, My Subnet 2, Test Subnet ", + }, + }, + }, + wantErr: errors.New("expected to find 3, but found 1 subnets"), + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + awsServices.ec2.RemoveSubnets() + for _, subnet := range tt.subnets { + awsServices.ec2.CreateSubnet(subnet) + } + got, err := c.getLoadBalancerSubnets(tt.service, tt.internalELB) + if tt.wantErr != nil { + assert.EqualError(t, err, tt.wantErr.Error()) + } else { + assert.Equal(t, tt.want, got) + } + }) + } +} + func TestSubnetIDsinVPC(t *testing.T) { awsServices := newMockedFakeAWSServices(TestClusterID) c, err := newAWSCloud(CloudConfig{}, awsServices) @@ -2643,3 +2994,54 @@ func TestCloud_sortELBSecurityGroupList(t *testing.T) { }) } } + +func Test_parseStringSliceAnnotation(t *testing.T) { + tests := []struct { + name string + annotation string + annotations map[string]string + want []string + wantExist bool + }{ + { + name: "empty annotation", + annotation: "test.annotation", + wantExist: false, + }, + { + name: "empty value", + annotation: "a1", + annotations: map[string]string{ + "a1": "\t, ,,", + }, + want: nil, + wantExist: true, + }, + { + name: "single value", + annotation: "a1", + annotations: map[string]string{ + "a1": " value 1 ", + }, + want: []string{"value 1"}, + wantExist: true, + }, + { + name: "multiple values", + annotation: "a1", + annotations: map[string]string{ + "a1": "subnet-1, subnet-2, My Subnet ", + }, + want: []string{"subnet-1", "subnet-2", "My Subnet"}, + wantExist: true, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + var gotValue []string + gotExist := parseStringSliceAnnotation(tt.annotations, tt.annotation, &gotValue) + assert.Equal(t, tt.wantExist, gotExist) + assert.Equal(t, tt.want, gotValue) + }) + } +} diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/tags.go b/staging/src/k8s.io/legacy-cloud-providers/aws/tags.go index 9ec0cf67e2f94..532e697fd2a11 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/tags.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/tags.go @@ -152,6 +152,15 @@ func (t *awsTagging) hasClusterTag(tags []*ec2.Tag) bool { return false } +func (t *awsTagging) hasNoClusterPrefixTag(tags []*ec2.Tag) bool { + for _, tag := range tags { + if strings.HasPrefix(aws.StringValue(tag.Key), TagNameKubernetesClusterPrefix) { + return false + } + } + return true +} + // Ensure that a resource has the correct tags // If it has no tags, we assume that this was a problem caused by an error in between creation and tagging, // and we add the tags. If it has a different cluster's tags, that is an error. diff --git a/staging/src/k8s.io/legacy-cloud-providers/aws/tags_test.go b/staging/src/k8s.io/legacy-cloud-providers/aws/tags_test.go index 66e850341f917..fb124f5d2980a 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/aws/tags_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/aws/tags_test.go @@ -23,6 +23,7 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/ec2" + "github.com/stretchr/testify/assert" ) func TestFilterTags(t *testing.T) { @@ -182,3 +183,52 @@ func TestHasClusterTag(t *testing.T) { } } } + +func TestHasNoClusterPrefixTag(t *testing.T) { + awsServices := NewFakeAWSServices(TestClusterID) + c, err := newAWSCloud(CloudConfig{}, awsServices) + if err != nil { + t.Errorf("Error building aws cloud: %v", err) + return + } + tests := []struct { + name string + tags []*ec2.Tag + want bool + }{ + { + name: "no tags", + want: true, + }, + { + name: "no cluster tags", + tags: []*ec2.Tag{ + { + Key: aws.String("not a cluster tag"), + Value: aws.String("true"), + }, + }, + want: true, + }, + { + name: "contains cluster tags", + tags: []*ec2.Tag{ + { + Key: aws.String("tag1"), + Value: aws.String("value1"), + }, + { + Key: aws.String("kubernetes.io/cluster/test.cluster"), + Value: aws.String("owned"), + }, + }, + want: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + assert.Equal(t, tt.want, c.tagging.hasNoClusterPrefixTag(tt.tags)) + }) + } +} diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure.go index b2e7a50d134cb..e9c4f27829655 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure.go @@ -459,7 +459,7 @@ func (az *Cloud) InitializeCloudFromConfig(config *Config, fromSecret bool) erro az.Config = *config az.Environment = *env az.ResourceRequestBackoff = resourceRequestBackoff - az.metadata, err = NewInstanceMetadataService(metadataURL) + az.metadata, err = NewInstanceMetadataService(imdsServer) if err != nil { return err } diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff.go index 0634d7e0388f5..9e8254f16f94c 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff.go @@ -181,11 +181,40 @@ func (az *Cloud) CreateOrUpdateSecurityGroup(service *v1.Service, sg network.Sec return rerr.Error() } +func cleanupSubnetInFrontendIPConfigurations(lb *network.LoadBalancer) network.LoadBalancer { + if lb.LoadBalancerPropertiesFormat == nil || lb.FrontendIPConfigurations == nil { + return *lb + } + + frontendIPConfigurations := *lb.FrontendIPConfigurations + for i := range frontendIPConfigurations { + config := frontendIPConfigurations[i] + if config.FrontendIPConfigurationPropertiesFormat != nil && + config.Subnet != nil && + config.Subnet.ID != nil { + subnet := network.Subnet{ + ID: config.Subnet.ID, + } + if config.Subnet.Name != nil { + subnet.Name = config.FrontendIPConfigurationPropertiesFormat.Subnet.Name + } + config.FrontendIPConfigurationPropertiesFormat.Subnet = &subnet + frontendIPConfigurations[i] = config + continue + } + } + + lb.FrontendIPConfigurations = &frontendIPConfigurations + return *lb +} + // CreateOrUpdateLB invokes az.LoadBalancerClient.CreateOrUpdate with exponential backoff retry func (az *Cloud) CreateOrUpdateLB(service *v1.Service, lb network.LoadBalancer) error { ctx, cancel := getContextWithCancel() defer cancel() + lb = cleanupSubnetInFrontendIPConfigurations(&lb) + rgName := az.getLoadBalancerResourceGroup() rerr := az.LoadBalancerClient.CreateOrUpdate(ctx, rgName, to.String(lb.Name), lb, to.String(lb.Etag)) klog.V(10).Infof("LoadBalancerClient.CreateOrUpdate(%s): end", *lb.Name) @@ -244,6 +273,9 @@ func (az *Cloud) ListLB(service *v1.Service) ([]network.LoadBalancer, error) { rgName := az.getLoadBalancerResourceGroup() allLBs, rerr := az.LoadBalancerClient.List(ctx, rgName) if rerr != nil { + if rerr.IsNotFound() { + return nil, nil + } az.Event(service, v1.EventTypeWarning, "ListLoadBalancers", rerr.Error().Error()) klog.Errorf("LoadBalancerClient.List(%v) failure with err=%v", rgName, rerr) return nil, rerr.Error() @@ -259,6 +291,9 @@ func (az *Cloud) ListPIP(service *v1.Service, pipResourceGroup string) ([]networ allPIPs, rerr := az.PublicIPAddressesClient.List(ctx, pipResourceGroup) if rerr != nil { + if rerr.IsNotFound() { + return nil, nil + } az.Event(service, v1.EventTypeWarning, "ListPublicIPs", rerr.Error().Error()) klog.Errorf("PublicIPAddressesClient.List(%v) failure with err=%v", pipResourceGroup, rerr) return nil, rerr.Error() diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff_test.go index 5dd41d08834b5..ee2bedfe4f02d 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff_test.go @@ -294,26 +294,57 @@ func TestListLB(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() - az := GetTestCloud(ctrl) - mockLBClient := az.LoadBalancerClient.(*mockloadbalancerclient.MockInterface) - mockLBClient.EXPECT().List(gomock.Any(), az.ResourceGroup).Return(nil, &retry.Error{HTTPStatusCode: http.StatusInternalServerError}) + tests := []struct { + clientErr *retry.Error + expectedErr error + }{ + { + clientErr: &retry.Error{HTTPStatusCode: http.StatusInternalServerError}, + expectedErr: fmt.Errorf("Retriable: false, RetryAfter: 0s, HTTPStatusCode: 500, RawError: "), + }, + { + clientErr: &retry.Error{HTTPStatusCode: http.StatusNotFound}, + expectedErr: nil, + }, + } + for _, test := range tests { + az := GetTestCloud(ctrl) + mockLBClient := az.LoadBalancerClient.(*mockloadbalancerclient.MockInterface) + mockLBClient.EXPECT().List(gomock.Any(), az.ResourceGroup).Return(nil, test.clientErr) + + pips, err := az.ListLB(&v1.Service{}) + assert.Equal(t, test.expectedErr, err) + assert.Empty(t, pips) + } - pips, err := az.ListLB(&v1.Service{}) - assert.Equal(t, fmt.Errorf("Retriable: false, RetryAfter: 0s, HTTPStatusCode: 500, RawError: "), err) - assert.Empty(t, pips) } func TestListPIP(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() - az := GetTestCloud(ctrl) - mockPIPClient := az.PublicIPAddressesClient.(*mockpublicipclient.MockInterface) - mockPIPClient.EXPECT().List(gomock.Any(), az.ResourceGroup).Return(nil, &retry.Error{HTTPStatusCode: http.StatusInternalServerError}) + tests := []struct { + clientErr *retry.Error + expectedErr error + }{ + { + clientErr: &retry.Error{HTTPStatusCode: http.StatusInternalServerError}, + expectedErr: fmt.Errorf("Retriable: false, RetryAfter: 0s, HTTPStatusCode: 500, RawError: "), + }, + { + clientErr: &retry.Error{HTTPStatusCode: http.StatusNotFound}, + expectedErr: nil, + }, + } + for _, test := range tests { + az := GetTestCloud(ctrl) + mockPIPClient := az.PublicIPAddressesClient.(*mockpublicipclient.MockInterface) + mockPIPClient.EXPECT().List(gomock.Any(), az.ResourceGroup).Return(nil, test.clientErr) - pips, err := az.ListPIP(&v1.Service{}, az.ResourceGroup) - assert.Equal(t, fmt.Errorf("Retriable: false, RetryAfter: 0s, HTTPStatusCode: 500, RawError: "), err) - assert.Empty(t, pips) + pips, err := az.ListPIP(&v1.Service{}, az.ResourceGroup) + assert.Equal(t, test.expectedErr, err) + assert.Empty(t, pips) + } } func TestCreateOrUpdatePIP(t *testing.T) { diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instance_metadata.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instance_metadata.go index d5666f9bde176..4aaec52c34810 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instance_metadata.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instance_metadata.go @@ -25,13 +25,18 @@ import ( "net/http" "time" + "k8s.io/klog/v2" azcache "k8s.io/legacy-cloud-providers/azure/cache" ) const ( - metadataCacheTTL = time.Minute - metadataCacheKey = "InstanceMetadata" - metadataURL = "http://169.254.169.254/metadata/instance" + metadataCacheTTL = time.Minute + metadataCacheKey = "InstanceMetadata" + imdsInstanceAPIVersion = "2019-03-11" + imdsLoadBalancerAPIVersion = "2020-10-01" + imdsServer = "http://169.254.169.254" + imdsInstanceURI = "/metadata/instance" + imdsLoadBalancerURI = "/metadata/loadbalancer" ) // NetworkMetadata contains metadata about an instance's network @@ -86,19 +91,35 @@ type InstanceMetadata struct { Network *NetworkMetadata `json:"network,omitempty"` } +// PublicIPMetadata represents the public IP metadata. +type PublicIPMetadata struct { + FrontendIPAddress string `json:"frontendIpAddress,omitempty"` + PrivateIPAddress string `json:"privateIpAddress,omitempty"` +} + +// LoadbalancerProfile represents load balancer profile in IMDS. +type LoadbalancerProfile struct { + PublicIPAddresses []PublicIPMetadata `json:"publicIpAddresses,omitempty"` +} + +// LoadBalancerMetadata represents load balancer metadata. +type LoadBalancerMetadata struct { + LoadBalancer *LoadbalancerProfile `json:"loadbalancer,omitempty"` +} + // InstanceMetadataService knows how to query the Azure instance metadata server. type InstanceMetadataService struct { - metadataURL string - imsCache *azcache.TimedCache + imdsServer string + imsCache *azcache.TimedCache } // NewInstanceMetadataService creates an instance of the InstanceMetadataService accessor object. -func NewInstanceMetadataService(metadataURL string) (*InstanceMetadataService, error) { +func NewInstanceMetadataService(idmsServer string) (*InstanceMetadataService, error) { ims := &InstanceMetadataService{ - metadataURL: metadataURL, + imdsServer: idmsServer, } - imsCache, err := azcache.NewTimedcache(metadataCacheTTL, ims.getInstanceMetadata) + imsCache, err := azcache.NewTimedcache(metadataCacheTTL, ims.getMetadata) if err != nil { return nil, err } @@ -107,8 +128,52 @@ func NewInstanceMetadataService(metadataURL string) (*InstanceMetadataService, e return ims, nil } -func (ims *InstanceMetadataService) getInstanceMetadata(key string) (interface{}, error) { - req, err := http.NewRequest("GET", ims.metadataURL, nil) +func (ims *InstanceMetadataService) getMetadata(key string) (interface{}, error) { + instanceMetadata, err := ims.getInstanceMetadata(key) + if err != nil { + return nil, err + } + + if instanceMetadata.Network != nil && len(instanceMetadata.Network.Interface) > 0 { + netInterface := instanceMetadata.Network.Interface[0] + if (len(netInterface.IPV4.IPAddress) > 0 && len(netInterface.IPV4.IPAddress[0].PublicIP) > 0) || + (len(netInterface.IPV6.IPAddress) > 0 && len(netInterface.IPV6.IPAddress[0].PublicIP) > 0) { + // Return if public IP address has already part of instance metadata. + return instanceMetadata, nil + } + + loadBalancerMetadata, err := ims.getLoadBalancerMetadata() + if err != nil || loadBalancerMetadata == nil || loadBalancerMetadata.LoadBalancer == nil { + // Log a warning since loadbalancer metadata may not be available when the VM + // is not in standard LoadBalancer backend address pool. + klog.V(4).Infof("Warning: failed to get loadbalancer metadata: %v", err) + return instanceMetadata, nil + } + + publicIPs := loadBalancerMetadata.LoadBalancer.PublicIPAddresses + if len(netInterface.IPV4.IPAddress) > 0 && len(netInterface.IPV4.IPAddress[0].PrivateIP) > 0 { + for _, pip := range publicIPs { + if pip.PrivateIPAddress == netInterface.IPV4.IPAddress[0].PrivateIP { + netInterface.IPV4.IPAddress[0].PublicIP = pip.FrontendIPAddress + break + } + } + } + if len(netInterface.IPV6.IPAddress) > 0 && len(netInterface.IPV6.IPAddress[0].PrivateIP) > 0 { + for _, pip := range publicIPs { + if pip.PrivateIPAddress == netInterface.IPV6.IPAddress[0].PrivateIP { + netInterface.IPV6.IPAddress[0].PublicIP = pip.FrontendIPAddress + break + } + } + } + } + + return instanceMetadata, nil +} + +func (ims *InstanceMetadataService) getInstanceMetadata(key string) (*InstanceMetadata, error) { + req, err := http.NewRequest("GET", ims.imdsServer+imdsInstanceURI, nil) if err != nil { return nil, err } @@ -117,7 +182,7 @@ func (ims *InstanceMetadataService) getInstanceMetadata(key string) (interface{} q := req.URL.Query() q.Add("format", "json") - q.Add("api-version", "2019-03-11") + q.Add("api-version", imdsInstanceAPIVersion) req.URL.RawQuery = q.Encode() client := &http.Client{} @@ -145,6 +210,44 @@ func (ims *InstanceMetadataService) getInstanceMetadata(key string) (interface{} return &obj, nil } +func (ims *InstanceMetadataService) getLoadBalancerMetadata() (*LoadBalancerMetadata, error) { + req, err := http.NewRequest("GET", ims.imdsServer+imdsLoadBalancerURI, nil) + if err != nil { + return nil, err + } + req.Header.Add("Metadata", "True") + req.Header.Add("User-Agent", "golang/kubernetes-cloud-provider") + + q := req.URL.Query() + q.Add("format", "json") + q.Add("api-version", imdsLoadBalancerAPIVersion) + req.URL.RawQuery = q.Encode() + + client := &http.Client{} + resp, err := client.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + return nil, fmt.Errorf("failure of getting loadbalancer metadata with response %q", resp.Status) + } + + data, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, err + } + + obj := LoadBalancerMetadata{} + err = json.Unmarshal(data, &obj) + if err != nil { + return nil, err + } + + return &obj, nil +} + // GetMetadata gets instance metadata from cache. // crt determines if we can get data from stalled cache/need fresh if cache expired. func (ims *InstanceMetadataService) GetMetadata(crt azcache.AzureCacheReadType) (*InstanceMetadata, error) { diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController.go index 6189519998b35..cc737e833198a 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController.go @@ -21,6 +21,7 @@ package azure import ( "context" "fmt" + "net/http" "path" "strconv" "strings" @@ -236,6 +237,10 @@ func (c *ManagedDiskController) DeleteManagedDisk(diskURI string) error { rerr = c.common.cloud.DisksClient.Delete(ctx, resourceGroup, diskName) if rerr != nil { + if rerr.HTTPStatusCode == http.StatusNotFound { + klog.V(2).Infof("azureDisk - disk(%s) is already deleted", diskURI) + return nil + } return rerr.Error() } // We don't need poll here, k8s will immediately stop referencing the disk @@ -297,6 +302,10 @@ func (c *ManagedDiskController) ResizeDisk(diskURI string, oldSize resource.Quan return newSizeQuant, nil } + if result.DiskProperties.DiskState != compute.Unattached { + return oldSize, fmt.Errorf("azureDisk - disk resize is only supported on Unattached disk, current disk state: %s, already attached to %s", result.DiskProperties.DiskState, to.String(result.ManagedBy)) + } + diskParameter := compute.DiskUpdate{ DiskUpdateProperties: &compute.DiskUpdateProperties{ DiskSizeGB: &requestGiB, diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController_test.go index 99e38496d814f..e36178258810c 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController_test.go @@ -311,7 +311,7 @@ func TestResizeDisk(t *testing.T) { diskName: diskName, oldSize: *resource.NewQuantity(2*(1024*1024*1024), resource.BinarySI), newSize: *resource.NewQuantity(3*(1024*1024*1024), resource.BinarySI), - existedDisk: compute.Disk{Name: to.StringPtr("disk1"), DiskProperties: &compute.DiskProperties{DiskSizeGB: &diskSizeGB}}, + existedDisk: compute.Disk{Name: to.StringPtr("disk1"), DiskProperties: &compute.DiskProperties{DiskSizeGB: &diskSizeGB, DiskState: compute.Unattached}}, expectedQuantity: *resource.NewQuantity(3*(1024*1024*1024), resource.BinarySI), expectedErr: false, }, @@ -330,7 +330,7 @@ func TestResizeDisk(t *testing.T) { diskName: diskName, oldSize: *resource.NewQuantity(1*(1024*1024*1024), resource.BinarySI), newSize: *resource.NewQuantity(2*(1024*1024*1024), resource.BinarySI), - existedDisk: compute.Disk{Name: to.StringPtr("disk1"), DiskProperties: &compute.DiskProperties{DiskSizeGB: &diskSizeGB}}, + existedDisk: compute.Disk{Name: to.StringPtr("disk1"), DiskProperties: &compute.DiskProperties{DiskSizeGB: &diskSizeGB, DiskState: compute.Unattached}}, expectedQuantity: *resource.NewQuantity(2*(1024*1024*1024), resource.BinarySI), expectedErr: false, }, @@ -339,7 +339,7 @@ func TestResizeDisk(t *testing.T) { diskName: fakeGetDiskFailed, oldSize: *resource.NewQuantity(2*(1024*1024*1024), resource.BinarySI), newSize: *resource.NewQuantity(3*(1024*1024*1024), resource.BinarySI), - existedDisk: compute.Disk{Name: to.StringPtr(fakeGetDiskFailed), DiskProperties: &compute.DiskProperties{DiskSizeGB: &diskSizeGB}}, + existedDisk: compute.Disk{Name: to.StringPtr(fakeGetDiskFailed), DiskProperties: &compute.DiskProperties{DiskSizeGB: &diskSizeGB, DiskState: compute.Unattached}}, expectedQuantity: *resource.NewQuantity(2*(1024*1024*1024), resource.BinarySI), expectedErr: true, expectedErrMsg: fmt.Errorf("Retriable: false, RetryAfter: 0s, HTTPStatusCode: 0, RawError: Get Disk failed"), @@ -349,11 +349,21 @@ func TestResizeDisk(t *testing.T) { diskName: fakeCreateDiskFailed, oldSize: *resource.NewQuantity(2*(1024*1024*1024), resource.BinarySI), newSize: *resource.NewQuantity(3*(1024*1024*1024), resource.BinarySI), - existedDisk: compute.Disk{Name: to.StringPtr(fakeCreateDiskFailed), DiskProperties: &compute.DiskProperties{DiskSizeGB: &diskSizeGB}}, + existedDisk: compute.Disk{Name: to.StringPtr(fakeCreateDiskFailed), DiskProperties: &compute.DiskProperties{DiskSizeGB: &diskSizeGB, DiskState: compute.Unattached}}, expectedQuantity: *resource.NewQuantity(2*(1024*1024*1024), resource.BinarySI), expectedErr: true, expectedErrMsg: fmt.Errorf("Retriable: false, RetryAfter: 0s, HTTPStatusCode: 0, RawError: Create Disk failed"), }, + { + desc: "an error shall be returned if disk is not in Unattached state", + diskName: fakeCreateDiskFailed, + oldSize: *resource.NewQuantity(2*(1024*1024*1024), resource.BinarySI), + newSize: *resource.NewQuantity(3*(1024*1024*1024), resource.BinarySI), + existedDisk: compute.Disk{Name: to.StringPtr(fakeCreateDiskFailed), DiskProperties: &compute.DiskProperties{DiskSizeGB: &diskSizeGB, DiskState: compute.Attached}}, + expectedQuantity: *resource.NewQuantity(2*(1024*1024*1024), resource.BinarySI), + expectedErr: true, + expectedErrMsg: fmt.Errorf("azureDisk - disk resize is only supported on Unattached disk, current disk state: Attached, already attached to "), + }, } for i, test := range testCases { diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss.go index 7f14dcacab5d7..3c40ebdff3205 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss.go @@ -1162,7 +1162,6 @@ func (ss *scaleSet) ensureVMSSInPool(service *v1.Service, nodes []*v1.Node, back }) primaryIPConfig.LoadBalancerBackendAddressPools = &loadBalancerBackendAddressPools newVMSS := compute.VirtualMachineScaleSet{ - Sku: vmss.Sku, Location: vmss.Location, VirtualMachineScaleSetProperties: &compute.VirtualMachineScaleSetProperties{ VirtualMachineProfile: &compute.VirtualMachineScaleSetVMProfile{ @@ -1411,10 +1410,15 @@ func (ss *scaleSet) ensureBackendPoolDeletedFromVMSS(service *v1.Service, backen vmssNamesMap[vmSetName] = true } + vmssUpdaters := make([]func() error, 0, len(vmssNamesMap)) + errors := make([]error, 0, len(vmssNamesMap)) for vmssName := range vmssNamesMap { + vmssName := vmssName vmss, err := ss.getVMSS(vmssName, azcache.CacheReadTypeDefault) if err != nil { - return err + klog.Errorf("ensureBackendPoolDeletedFromVMSS: failed to get VMSS %s: %v", vmssName, err) + errors = append(errors, err) + continue } // When vmss is being deleted, CreateOrUpdate API would report "the vmss is being deleted" error. @@ -1430,11 +1434,15 @@ func (ss *scaleSet) ensureBackendPoolDeletedFromVMSS(service *v1.Service, backen vmssNIC := *vmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations primaryNIC, err := ss.getPrimaryNetworkInterfaceConfigurationForScaleSet(vmssNIC, vmssName) if err != nil { - return err + klog.Errorf("ensureBackendPoolDeletedFromVMSS: failed to get the primary network interface config of the VMSS %s: %v", vmssName, err) + errors = append(errors, err) + continue } primaryIPConfig, err := getPrimaryIPConfigFromVMSSNetworkConfig(primaryNIC) if err != nil { - return err + klog.Errorf("ensureBackendPoolDeletedFromVMSS: failed to the primary IP config from the VMSS %s's network config : %v", vmssName, err) + errors = append(errors, err) + continue } loadBalancerBackendAddressPools := []compute.SubResource{} if primaryIPConfig.LoadBalancerBackendAddressPools != nil { @@ -1455,26 +1463,38 @@ func (ss *scaleSet) ensureBackendPoolDeletedFromVMSS(service *v1.Service, backen continue } - // Compose a new vmss with added backendPoolID. - primaryIPConfig.LoadBalancerBackendAddressPools = &newBackendPools - newVMSS := compute.VirtualMachineScaleSet{ - Sku: vmss.Sku, - Location: vmss.Location, - VirtualMachineScaleSetProperties: &compute.VirtualMachineScaleSetProperties{ - VirtualMachineProfile: &compute.VirtualMachineScaleSetVMProfile{ - NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfile{ - NetworkInterfaceConfigurations: &vmssNIC, + vmssUpdaters = append(vmssUpdaters, func() error { + // Compose a new vmss with added backendPoolID. + primaryIPConfig.LoadBalancerBackendAddressPools = &newBackendPools + newVMSS := compute.VirtualMachineScaleSet{ + Location: vmss.Location, + VirtualMachineScaleSetProperties: &compute.VirtualMachineScaleSetProperties{ + VirtualMachineProfile: &compute.VirtualMachineScaleSetVMProfile{ + NetworkProfile: &compute.VirtualMachineScaleSetNetworkProfile{ + NetworkInterfaceConfigurations: &vmssNIC, + }, }, }, - }, - } + } - klog.V(2).Infof("ensureBackendPoolDeletedFromVMSS begins to update vmss(%s) with backendPoolID %s", vmssName, backendPoolID) - rerr := ss.CreateOrUpdateVMSS(ss.ResourceGroup, vmssName, newVMSS) - if rerr != nil { - klog.Errorf("ensureBackendPoolDeletedFromVMSS CreateOrUpdateVMSS(%s) with new backendPoolID %s, err: %v", vmssName, backendPoolID, err) - return rerr.Error() - } + klog.V(2).Infof("ensureBackendPoolDeletedFromVMSS begins to update vmss(%s) with backendPoolID %s", vmssName, backendPoolID) + rerr := ss.CreateOrUpdateVMSS(ss.ResourceGroup, vmssName, newVMSS) + if rerr != nil { + klog.Errorf("ensureBackendPoolDeletedFromVMSS CreateOrUpdateVMSS(%s) with new backendPoolID %s, err: %v", vmssName, backendPoolID, rerr) + return rerr.Error() + } + + return nil + }) + } + + errs := utilerrors.AggregateGoroutines(vmssUpdaters...) + if errs != nil { + return utilerrors.Flatten(errs) + } + // Fail if there are other errors. + if len(errors) > 0 { + return utilerrors.Flatten(utilerrors.NewAggregate(errors)) } return nil diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache.go index 7cea160c04447..e8caab37f5865 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache.go @@ -193,6 +193,11 @@ func (ss *scaleSet) newVMSSVirtualMachinesCache(resourceGroupName, vmssName, cac } computerName := strings.ToLower(*vm.OsProfile.ComputerName) + if vm.NetworkProfile == nil || vm.NetworkProfile.NetworkInterfaces == nil { + klog.Warningf("skip caching vmssVM %s since its network profile hasn't initialized yet (probably still under creating)", computerName) + continue + } + vmssVMCacheEntry := &vmssVirtualMachinesEntry{ resourceGroup: resourceGroupName, vmssName: vmssName, diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_test.go index 8ef023e03420a..e2adfe25020f9 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_vmss_test.go @@ -1374,16 +1374,25 @@ func TestGetAgentPoolScaleSets(t *testing.T) { { VirtualMachineScaleSetVMProperties: &compute.VirtualMachineScaleSetVMProperties{ OsProfile: &compute.OSProfile{ComputerName: to.StringPtr("vmss-vm-000000")}, + NetworkProfile: &compute.NetworkProfile{ + NetworkInterfaces: &[]compute.NetworkInterfaceReference{}, + }, }, }, { VirtualMachineScaleSetVMProperties: &compute.VirtualMachineScaleSetVMProperties{ OsProfile: &compute.OSProfile{ComputerName: to.StringPtr("vmss-vm-000001")}, + NetworkProfile: &compute.NetworkProfile{ + NetworkInterfaces: &[]compute.NetworkInterfaceReference{}, + }, }, }, { VirtualMachineScaleSetVMProperties: &compute.VirtualMachineScaleSetVMProperties{ OsProfile: &compute.OSProfile{ComputerName: to.StringPtr("vmss-vm-000002")}, + NetworkProfile: &compute.NetworkProfile{ + NetworkInterfaces: &[]compute.NetworkInterfaceReference{}, + }, }, }, } @@ -1442,6 +1451,20 @@ func TestGetVMSetNames(t *testing.T) { }, expectedErr: fmt.Errorf("scale set (vmss-1) - not found"), }, + { + description: "GetVMSetNames should report an error if vm's network profile is nil", + service: &v1.Service{ + ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{ServiceAnnotationLoadBalancerMode: "vmss"}}, + }, + nodes: []*v1.Node{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "vmss-vm-000003", + }, + }, + }, + expectedErr: fmt.Errorf("instance not found"), + }, { description: "GetVMSetNames should return the correct vmss names", service: &v1.Service{ @@ -1470,16 +1493,30 @@ func TestGetVMSetNames(t *testing.T) { { VirtualMachineScaleSetVMProperties: &compute.VirtualMachineScaleSetVMProperties{ OsProfile: &compute.OSProfile{ComputerName: to.StringPtr("vmss-vm-000000")}, + NetworkProfile: &compute.NetworkProfile{ + NetworkInterfaces: &[]compute.NetworkInterfaceReference{}, + }, }, }, { VirtualMachineScaleSetVMProperties: &compute.VirtualMachineScaleSetVMProperties{ OsProfile: &compute.OSProfile{ComputerName: to.StringPtr("vmss-vm-000001")}, + NetworkProfile: &compute.NetworkProfile{ + NetworkInterfaces: &[]compute.NetworkInterfaceReference{}, + }, }, }, { VirtualMachineScaleSetVMProperties: &compute.VirtualMachineScaleSetVMProperties{ OsProfile: &compute.OSProfile{ComputerName: to.StringPtr("vmss-vm-000002")}, + NetworkProfile: &compute.NetworkProfile{ + NetworkInterfaces: &[]compute.NetworkInterfaceReference{}, + }, + }, + }, + { + VirtualMachineScaleSetVMProperties: &compute.VirtualMachineScaleSetVMProperties{ + OsProfile: &compute.OSProfile{ComputerName: to.StringPtr("vmss-vm-000003")}, }, }, } @@ -2173,7 +2210,7 @@ func TestEnsureBackendPoolDeletedFromVMSS(t *testing.T) { backendPoolID: testLBBackendpoolID0, expectedPutVMSS: true, vmssClientErr: &retry.Error{RawError: fmt.Errorf("error")}, - expectedErr: fmt.Errorf("Retriable: false, RetryAfter: 0s, HTTPStatusCode: 0, RawError: error"), + expectedErr: utilerrors.NewAggregate([]error{fmt.Errorf("Retriable: false, RetryAfter: 0s, HTTPStatusCode: 0, RawError: error")}), }, } diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce.go index 5b31c0f4d47d0..61d30b5b8e020 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce.go @@ -141,9 +141,6 @@ type Cloud struct { useMetadataServer bool operationPollRateLimiter flowcontrol.RateLimiter manager diskServiceManager - - externalInstanceGroupsPrefix string // If non-"", finds prefixed instance groups for ILB. - // Lock for access to nodeZones nodeZonesLock sync.Mutex // nodeZones is a mapping from Zone to a sets.String of Node's names in the Zone @@ -190,9 +187,6 @@ type ConfigGlobal struct { NodeInstancePrefix string `gcfg:"node-instance-prefix"` Regional bool `gcfg:"regional"` Multizone bool `gcfg:"multizone"` - // ExternalInstanceGroupsPrefix is the prefix that will be used to filter instance groups - // that be backend for ILB containing cluster nodes if not-empty. - ExternalInstanceGroupsPrefix string `gcfg:"external-instance-groups-prefix"` // APIEndpoint is the GCE compute API endpoint to use. If this is blank, // then the default endpoint is used. APIEndpoint string `gcfg:"api-endpoint"` @@ -220,25 +214,24 @@ type ConfigFile struct { // CloudConfig includes all the necessary configuration for creating Cloud type CloudConfig struct { - APIEndpoint string - ContainerAPIEndpoint string - ProjectID string - NetworkProjectID string - Region string - Regional bool - Zone string - ManagedZones []string - NetworkName string - NetworkURL string - SubnetworkName string - SubnetworkURL string - SecondaryRangeName string - NodeTags []string - NodeInstancePrefix string - ExternalInstanceGroupsPrefix string - TokenSource oauth2.TokenSource - UseMetadataServer bool - AlphaFeatureGate *AlphaFeatureGate + APIEndpoint string + ContainerAPIEndpoint string + ProjectID string + NetworkProjectID string + Region string + Regional bool + Zone string + ManagedZones []string + NetworkName string + NetworkURL string + SubnetworkName string + SubnetworkURL string + SecondaryRangeName string + NodeTags []string + NodeInstancePrefix string + TokenSource oauth2.TokenSource + UseMetadataServer bool + AlphaFeatureGate *AlphaFeatureGate } func init() { @@ -328,7 +321,6 @@ func generateCloudConfig(configFile *ConfigFile) (cloudConfig *CloudConfig, err cloudConfig.NodeTags = configFile.Global.NodeTags cloudConfig.NodeInstancePrefix = configFile.Global.NodeInstancePrefix - cloudConfig.ExternalInstanceGroupsPrefix = configFile.Global.ExternalInstanceGroupsPrefix cloudConfig.AlphaFeatureGate = NewAlphaFeatureGate(configFile.Global.AlphaFeatures) } @@ -506,30 +498,29 @@ func CreateGCECloud(config *CloudConfig) (*Cloud, error) { operationPollRateLimiter := flowcontrol.NewTokenBucketRateLimiter(5, 5) // 5 qps, 5 burst. gce := &Cloud{ - service: service, - serviceAlpha: serviceAlpha, - serviceBeta: serviceBeta, - containerService: containerService, - tpuService: tpuService, - projectID: projID, - networkProjectID: netProjID, - onXPN: onXPN, - region: config.Region, - regional: config.Regional, - localZone: config.Zone, - managedZones: config.ManagedZones, - networkURL: networkURL, - unsafeIsLegacyNetwork: isLegacyNetwork, - unsafeSubnetworkURL: subnetURL, - secondaryRangeName: config.SecondaryRangeName, - nodeTags: config.NodeTags, - nodeInstancePrefix: config.NodeInstancePrefix, - externalInstanceGroupsPrefix: config.ExternalInstanceGroupsPrefix, - useMetadataServer: config.UseMetadataServer, - operationPollRateLimiter: operationPollRateLimiter, - AlphaFeatureGate: config.AlphaFeatureGate, - nodeZones: map[string]sets.String{}, - metricsCollector: newLoadBalancerMetrics(), + service: service, + serviceAlpha: serviceAlpha, + serviceBeta: serviceBeta, + containerService: containerService, + tpuService: tpuService, + projectID: projID, + networkProjectID: netProjID, + onXPN: onXPN, + region: config.Region, + regional: config.Regional, + localZone: config.Zone, + managedZones: config.ManagedZones, + networkURL: networkURL, + unsafeIsLegacyNetwork: isLegacyNetwork, + unsafeSubnetworkURL: subnetURL, + secondaryRangeName: config.SecondaryRangeName, + nodeTags: config.NodeTags, + nodeInstancePrefix: config.NodeInstancePrefix, + useMetadataServer: config.UseMetadataServer, + operationPollRateLimiter: operationPollRateLimiter, + AlphaFeatureGate: config.AlphaFeatureGate, + nodeZones: map[string]sets.String{}, + metricsCollector: newLoadBalancerMetrics(), } gce.manager = &gceServiceManager{gce} diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_fake.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_fake.go index ac591725da2fe..4f9a8d080fa07 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_fake.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_fake.go @@ -71,7 +71,7 @@ func NewFakeGCECloud(vals TestClusterValues) *Cloud { gce := &Cloud{ region: vals.Region, service: service, - managedZones: []string{vals.ZoneName, vals.SecondaryZoneName}, + managedZones: []string{vals.ZoneName}, projectID: vals.ProjectID, networkProjectID: vals.ProjectID, ClusterID: fakeClusterID(vals.ClusterID), diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instancegroup.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instancegroup.go index c613253c0c574..a1dad3713d1fb 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instancegroup.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_instancegroup.go @@ -19,8 +19,6 @@ limitations under the License. package gce import ( - "fmt" - compute "google.golang.org/api/compute/v1" "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud" @@ -62,21 +60,6 @@ func (g *Cloud) ListInstanceGroups(zone string) ([]*compute.InstanceGroup, error return v, mc.Observe(err) } -// ListInstanceGroupsWithPrefix lists all InstanceGroups in the project and -// zone with given prefix. -func (g *Cloud) ListInstanceGroupsWithPrefix(zone string, prefix string) ([]*compute.InstanceGroup, error) { - ctx, cancel := cloud.ContextWithCallTimeout() - defer cancel() - - mc := newInstanceGroupMetricContext("list", zone) - f := filter.None - if prefix != "" { - f = filter.Regexp("name", fmt.Sprintf("%s.*", prefix)) - } - v, err := g.c.InstanceGroups().List(ctx, zone, f) - return v, mc.Observe(err) -} - // ListInstancesInInstanceGroup lists all the instances in a given // instance group and state. func (g *Cloud) ListInstancesInInstanceGroup(name string, zone string, state string) ([]*compute.InstanceWithNamedPorts, error) { diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go index cf809b6c91c8c..bd9ea0f5fc901 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go @@ -166,6 +166,12 @@ func (g *Cloud) ensureInternalLoadBalancer(clusterName, clusterID string, svc *v return nil, err } klog.V(2).Infof("ensureInternalLoadBalancer(%v): reserved IP %q for the forwarding rule", loadBalancerName, ipToUse) + defer func() { + // Release the address if all resources were created successfully, or if we error out. + if err := addrMgr.ReleaseAddress(); err != nil { + klog.Errorf("ensureInternalLoadBalancer: failed to release address reservation, possibly causing an orphan: %v", err) + } + }() } // Ensure firewall rules if necessary @@ -209,13 +215,6 @@ func (g *Cloud) ensureInternalLoadBalancer(clusterName, clusterID string, svc *v g.clearPreviousInternalResources(svc, loadBalancerName, existingBackendService, backendServiceName, hcName) } - if addrMgr != nil { - // Now that the controller knows the forwarding rule exists, we can release the address. - if err := addrMgr.ReleaseAddress(); err != nil { - klog.Errorf("ensureInternalLoadBalancer: failed to release address reservation, possibly causing an orphan: %v", err) - } - } - // Get the most recent forwarding rule for the address. updatedFwdRule, err := g.GetRegionForwardingRule(loadBalancerName, g.region) if err != nil { @@ -533,14 +532,17 @@ func (g *Cloud) ensureInternalHealthCheck(name string, svcName types.NamespacedN return hc, nil } -func (g *Cloud) ensureInternalInstanceGroup(name, zone string, nodes []string) (string, error) { +func (g *Cloud) ensureInternalInstanceGroup(name, zone string, nodes []*v1.Node) (string, error) { klog.V(2).Infof("ensureInternalInstanceGroup(%v, %v): checking group that it contains %v nodes", name, zone, len(nodes)) ig, err := g.GetInstanceGroup(name, zone) if err != nil && !isNotFound(err) { return "", err } - kubeNodes := sets.NewString(nodes...) + kubeNodes := sets.NewString() + for _, n := range nodes { + kubeNodes.Insert(n.Name) + } // Individual InstanceGroup has a limit for 1000 instances in it. // As a result, it's not possible to add more to it. @@ -606,46 +608,8 @@ func (g *Cloud) ensureInternalInstanceGroups(name string, nodes []*v1.Node) ([]s zonedNodes := splitNodesByZone(nodes) klog.V(2).Infof("ensureInternalInstanceGroups(%v): %d nodes over %d zones in region %v", name, len(nodes), len(zonedNodes), g.region) var igLinks []string - gceZonedNodes := map[string][]string{} - for zone, zNodes := range zonedNodes { - hosts, err := g.getFoundInstanceByNames(nodeNames(zNodes)) - if err != nil { - return nil, err - } - names := sets.NewString() - for _, h := range hosts { - names.Insert(h.Name) - } - skip := sets.NewString() - - igs, err := g.candidateExternalInstanceGroups(zone) - if err != nil { - return nil, err - } - for _, ig := range igs { - if strings.EqualFold(ig.Name, name) { - continue - } - instances, err := g.ListInstancesInInstanceGroup(ig.Name, zone, allInstances) - if err != nil { - return nil, err - } - groupInstances := sets.NewString() - for _, ins := range instances { - parts := strings.Split(ins.Instance, "/") - groupInstances.Insert(parts[len(parts)-1]) - } - if names.HasAll(groupInstances.UnsortedList()...) { - igLinks = append(igLinks, ig.SelfLink) - skip.Insert(groupInstances.UnsortedList()...) - } - } - if remaining := names.Difference(skip).UnsortedList(); len(remaining) > 0 { - gceZonedNodes[zone] = remaining - } - } - for zone, gceNodes := range gceZonedNodes { - igLink, err := g.ensureInternalInstanceGroup(name, zone, gceNodes) + for zone, nodes := range zonedNodes { + igLink, err := g.ensureInternalInstanceGroup(name, zone, nodes) if err != nil { return []string{}, err } @@ -655,13 +619,6 @@ func (g *Cloud) ensureInternalInstanceGroups(name string, nodes []*v1.Node) ([]s return igLinks, nil } -func (g *Cloud) candidateExternalInstanceGroups(zone string) ([]*compute.InstanceGroup, error) { - if g.externalInstanceGroupsPrefix == "" { - return nil, nil - } - return g.ListInstanceGroupsWithPrefix(zone, g.externalInstanceGroupsPrefix) -} - func (g *Cloud) ensureInternalInstanceGroupsDeleted(name string) error { // List of nodes isn't available here - fetch all zones in region and try deleting this cluster's ig zones, err := g.ListZonesInRegion(g.region) diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal_test.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal_test.go index 10e9c56a6d424..758bf41c805d7 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal_test.go @@ -31,7 +31,7 @@ import ( "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud" "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta" "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock" - compute "google.golang.org/api/compute/v1" + "google.golang.org/api/compute/v1" "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" @@ -807,75 +807,6 @@ func TestEnsureLoadBalancerDeletedSucceedsOnXPN(t *testing.T) { checkEvent(t, recorder, FilewallChangeMsg, true) } -func TestEnsureInternalInstanceGroupsReuseGroups(t *testing.T) { - vals := DefaultTestClusterValues() - gce, err := fakeGCECloud(vals) - require.NoError(t, err) - gce.externalInstanceGroupsPrefix = "pre-existing" - - igName := makeInstanceGroupName(vals.ClusterID) - nodesA, err := createAndInsertNodes(gce, []string{"test-node-1", "test-node-2"}, vals.ZoneName) - require.NoError(t, err) - nodesB, err := createAndInsertNodes(gce, []string{"test-node-3"}, vals.SecondaryZoneName) - require.NoError(t, err) - - preIGName := "pre-existing-ig" - err = gce.CreateInstanceGroup(&compute.InstanceGroup{Name: preIGName}, vals.ZoneName) - require.NoError(t, err) - err = gce.CreateInstanceGroup(&compute.InstanceGroup{Name: preIGName}, vals.SecondaryZoneName) - require.NoError(t, err) - err = gce.AddInstancesToInstanceGroup(preIGName, vals.ZoneName, gce.ToInstanceReferences(vals.ZoneName, []string{"test-node-1"})) - require.NoError(t, err) - err = gce.AddInstancesToInstanceGroup(preIGName, vals.SecondaryZoneName, gce.ToInstanceReferences(vals.SecondaryZoneName, []string{"test-node-3"})) - require.NoError(t, err) - - anotherPreIGName := "another-existing-ig" - err = gce.CreateInstanceGroup(&compute.InstanceGroup{Name: anotherPreIGName}, vals.ZoneName) - require.NoError(t, err) - err = gce.AddInstancesToInstanceGroup(anotherPreIGName, vals.ZoneName, gce.ToInstanceReferences(vals.ZoneName, []string{"test-node-2"})) - require.NoError(t, err) - - svc := fakeLoadbalancerService(string(LBTypeInternal)) - svc, err = gce.client.CoreV1().Services(svc.Namespace).Create(context.TODO(), svc, metav1.CreateOptions{}) - assert.NoError(t, err) - _, err = gce.ensureInternalLoadBalancer( - vals.ClusterName, vals.ClusterID, - svc, - nil, - append(nodesA, nodesB...), - ) - assert.NoError(t, err) - - backendServiceName := makeBackendServiceName(gce.GetLoadBalancerName(context.TODO(), "", svc), vals.ClusterID, shareBackendService(svc), cloud.SchemeInternal, "TCP", svc.Spec.SessionAffinity) - bs, err := gce.GetRegionBackendService(backendServiceName, gce.region) - require.NoError(t, err) - assert.Equal(t, 3, len(bs.Backends), "Want three backends referencing three instances groups") - - igRef := func(zone, name string) string { - return fmt.Sprintf("zones/%s/instanceGroups/%s", zone, name) - } - for _, name := range []string{igRef(vals.ZoneName, preIGName), igRef(vals.SecondaryZoneName, preIGName), igRef(vals.ZoneName, igName)} { - var found bool - for _, be := range bs.Backends { - if strings.Contains(be.Group, name) { - found = true - break - } - } - assert.True(t, found, "Expected list of backends to have group %q", name) - } - - // Expect initial zone to have test-node-2 - instances, err := gce.ListInstancesInInstanceGroup(igName, vals.ZoneName, "ALL") - require.NoError(t, err) - assert.Equal(t, 1, len(instances)) - assert.Contains( - t, - instances[0].Instance, - fmt.Sprintf("projects/%s/zones/%s/instances/%s", vals.ProjectID, vals.ZoneName, "test-node-2"), - ) -} - func TestEnsureInternalInstanceGroupsDeleted(t *testing.T) { vals := DefaultTestClusterValues() gce, err := fakeGCECloud(vals) @@ -1018,6 +949,11 @@ func TestEnsureInternalLoadBalancerErrors(t *testing.T) { ) assert.Error(t, err, "Should return an error when "+desc) assert.Nil(t, status, "Should not return a status when "+desc) + + // ensure that the temporarily reserved IP address is released upon sync errors + ip, err := gce.GetRegionAddress(gce.GetLoadBalancerName(context.TODO(), params.clusterName, params.service), gce.region) + require.Error(t, err) + assert.Nil(t, ip) }) } } diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_utils_test.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_utils_test.go index ef8733d56e81e..cb2d4a8a64988 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_utils_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_utils_test.go @@ -247,6 +247,11 @@ func assertInternalLbResources(t *testing.T, gce *Cloud, apiService *v1.Service, assert.Equal(t, backendServiceLink, fwdRule.BackendService) // if no Subnetwork specified, defaults to the GCE NetworkURL assert.Equal(t, gce.NetworkURL(), fwdRule.Subnetwork) + + // Check that the IP address has been released. IP is only reserved until ensure function exits. + ip, err := gce.GetRegionAddress(lbName, gce.region) + require.Error(t, err) + assert.Nil(t, ip) } func assertInternalLbResourcesDeleted(t *testing.T, gce *Cloud, apiService *v1.Service, vals TestClusterValues, firewallsDeleted bool) { @@ -285,6 +290,11 @@ func assertInternalLbResourcesDeleted(t *testing.T, gce *Cloud, apiService *v1.S healthcheck, err := gce.GetHealthCheck(hcName) require.Error(t, err) assert.Nil(t, healthcheck) + + // Check that the IP address has been released + ip, err := gce.GetRegionAddress(lbName, gce.region) + require.Error(t, err) + assert.Nil(t, ip) } func checkEvent(t *testing.T, recorder *record.FakeRecorder, expected string, shouldMatch bool) bool { diff --git a/staging/src/k8s.io/legacy-cloud-providers/go.mod b/staging/src/k8s.io/legacy-cloud-providers/go.mod index bb6133de5d01c..a5004cd7c2e88 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/go.mod +++ b/staging/src/k8s.io/legacy-cloud-providers/go.mod @@ -11,61 +11,42 @@ require ( github.com/Azure/go-autorest/autorest/adal v0.8.2 github.com/Azure/go-autorest/autorest/mocks v0.3.0 github.com/Azure/go-autorest/autorest/to v0.2.0 + github.com/Azure/go-autorest/autorest/validation v0.1.0 // indirect github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317 github.com/aws/aws-sdk-go v1.28.2 + github.com/dnaeon/go-vcr v1.0.1 // indirect github.com/golang/mock v1.3.1 github.com/google/go-cmp v0.4.0 github.com/gophercloud/gophercloud v0.1.0 github.com/mitchellh/mapstructure v1.1.2 github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021 + github.com/satori/go.uuid v1.2.0 // indirect github.com/stretchr/testify v1.4.0 github.com/vmware/govmomi v0.20.3 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6 google.golang.org/api v0.15.1 gopkg.in/gcfg.v1 v1.2.0 - k8s.io/api v0.19.0 - k8s.io/apimachinery v0.19.0 - k8s.io/apiserver v0.19.0 - k8s.io/client-go v0.19.0 + gopkg.in/warnings.v0 v0.1.1 // indirect + k8s.io/api v0.0.0 + k8s.io/apimachinery v0.0.0 + k8s.io/apiserver v0.0.0 + k8s.io/client-go v0.0.0 k8s.io/cloud-provider v0.0.0 - k8s.io/component-base v0.19.0 + k8s.io/component-base v0.0.0 k8s.io/csi-translation-lib v0.0.0 - k8s.io/klog/v2 v2.3.0 + k8s.io/klog/v2 v2.2.0 k8s.io/utils v0.0.0-20200729134348-d5654de09c73 sigs.k8s.io/yaml v1.2.0 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - go.uber.org/multierr => go.uber.org/multierr v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery k8s.io/apiserver => ../apiserver - k8s.io/cli-runtime => ../cli-runtime k8s.io/client-go => ../client-go k8s.io/cloud-provider => ../cloud-provider - k8s.io/cluster-bootstrap => ../cluster-bootstrap - k8s.io/code-generator => ../code-generator k8s.io/component-base => ../component-base - k8s.io/cri-api => ../cri-api k8s.io/csi-translation-lib => ../csi-translation-lib - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator - k8s.io/kube-controller-manager => ../kube-controller-manager - k8s.io/kube-proxy => ../kube-proxy - k8s.io/kube-scheduler => ../kube-scheduler - k8s.io/kubectl => ../kubectl - k8s.io/kubelet => ../kubelet k8s.io/legacy-cloud-providers => ../legacy-cloud-providers - k8s.io/metrics => ../metrics - k8s.io/sample-apiserver => ../sample-apiserver - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/legacy-cloud-providers/go.sum b/staging/src/k8s.io/legacy-cloud-providers/go.sum index 9b69fa8b8318e..1184f9c5d3cfd 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/go.sum +++ b/staging/src/k8s.io/legacy-cloud-providers/go.sum @@ -1,7 +1,5 @@ -bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0 h1:ROfEUZz+Gh5pa62DJWXSaonyu3StP6EA6lPEXPI6mCo= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= @@ -20,16 +18,13 @@ github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.6 h1:5YWtOnckcudzIw8lPPBcWOnmIFWMtHci1ZWAZulMSx0= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= -github.com/Azure/go-autorest/autorest/adal v0.5.0 h1:q2gDruN08/guU9vAjuPWff0+QIrpH6ediguzdAzXAUU= github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= github.com/Azure/go-autorest/autorest/adal v0.8.2 h1:O1X4oexUxnZCaEUGsvMnr8ZGj8HI37tNezwY4npRqA0= github.com/Azure/go-autorest/autorest/adal v0.8.2/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= -github.com/Azure/go-autorest/autorest/date v0.1.0 h1:YGrhWfrgtFs84+h0o46rJrlmsZtyZRg470CqAXTZaGM= github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= github.com/Azure/go-autorest/autorest/date v0.2.0 h1:yW+Zlqf26583pE43KhfnhFcdmSWlm5Ew6bxipnr/tbM= github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.2.0 h1:Ww5g4zThfD/6cLb4z6xxgeyDa7QDkizMkJKe0ysZXp0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0 h1:qJumjCaCudz+OcqE9/XtEPfvtOjOmKaui4EOpFI6zZc= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= @@ -45,31 +40,15 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317 h1:JhyuWIqYrstW7KHMjk/fTqU0xtMpBOHuiTA2FVc7L4E= github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ= -github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -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/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= github.com/aws/aws-sdk-go v1.28.2 h1:j5IXG9CdyLfcVfICqo1PXVv+rua+QQHbkXuvuU/JF+8= github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -77,86 +56,31 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.0+incompatible h1:CGxCgetQ64DKk7rdZ++Vfnb1+ogGNnB17OJKJXD2Cfs= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200507155900-a9f01edf17e3/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200601085316-9f1617e5c574/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= -github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v1.0.0/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v1.0.0/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= 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 v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -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/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= @@ -166,28 +90,15 @@ github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -195,63 +106,25 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903 h1:LbsanbbD6LieFkXbj9YNNBupiGHJgFeLpO0j0Fza1h8= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 h1:5ZkaAPbicIKTF2I64qf5Fh8Aa83Q/dnOafMYV0OMwjA= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -262,9 +135,7 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -273,18 +144,8 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -304,40 +165,25 @@ github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5 h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+Tv3SM= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= github.com/gophercloud/gophercloud v0.1.0 h1:P/nh25+rzXouhytV2pUHBb65fnds26Ghl8/391+sT5o= github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= -github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= @@ -347,16 +193,11 @@ github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -366,42 +207,18 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kubernetes-sigs/kube-storage-version-migrator v0.0.0-20191127225502-51849bc15f17/go.mod h1:enH0BVV+4+DAgWdwSlMefG8bBzTfVMTr1lApzdLZ/cc= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= -github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= -github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= -github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= -github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= -github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= @@ -409,59 +226,28 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= -github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc90.0.20200616040943-82d2fa4eb069/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8= -github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728/go.mod h1:+B51GHs/jfZzk93MKrSSA8BWxrulVVcxiBG7kdFpd74= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible h1:AGewrYJW8aXFkkf86sSoiO9L/a/QYKZvODVCaB/wk4o= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20200831114015-2ab0c61c15de/go.mod h1:6vwp+YhYOIlj8MpkQKkebTTSn2TuYyvgiAFQ206jIEQ= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98 h1:JYwa3H00larjMVZXmh7L4FHDhNlKdWSgYi0kLdav9BY= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -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.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -469,60 +255,30 @@ github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1: github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021 h1:if3/24+h9Sq6eDx8UUz1SO9cT9tizyIsATfB7b4D3tc= github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= -github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= @@ -531,35 +287,17 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200520041808-52d707b772fe/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= github.com/vmware/govmomi v0.20.3 h1:gpw/0Ku+6RgF3jsi7fnCLmlcikBHfKBCUcu1qgc16OU= github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2 h1:75k/FF0Q2YM8QYo07VPddOLBslDt1MZOdEslOHvmzAs= @@ -569,30 +307,20 @@ go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -612,32 +340,26 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -649,50 +371,37 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -702,45 +411,35 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -764,17 +463,13 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba h1:pRj9OXZbwNtbtZtOB4dLwfK4u+EVRMvP+e9zKkg2grM= google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -784,13 +479,11 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= @@ -803,8 +496,6 @@ gopkg.in/gcfg.v1 v1.2.0 h1:0HIbH907iBTAntm+88IJV2qmJALDAh8sPekI9Vc1fm0= gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= @@ -812,9 +503,13 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkep gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= 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.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -823,33 +518,18 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A= -k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= -k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= -sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/staging/src/k8s.io/legacy-cloud-providers/openstack/BUILD b/staging/src/k8s.io/legacy-cloud-providers/openstack/BUILD index 822804d2d9c47..fbd9cfa8c1aed 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/openstack/BUILD +++ b/staging/src/k8s.io/legacy-cloud-providers/openstack/BUILD @@ -23,12 +23,13 @@ go_library( deps = [ "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//staging/src/k8s.io/client-go/informers:go_default_library", - "//staging/src/k8s.io/client-go/listers/core/v1:go_default_library", + "//staging/src/k8s.io/client-go/kubernetes:go_default_library", + "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", "//staging/src/k8s.io/client-go/util/cert:go_default_library", "//staging/src/k8s.io/cloud-provider:go_default_library", "//staging/src/k8s.io/cloud-provider/node/helpers:go_default_library", diff --git a/staging/src/k8s.io/legacy-cloud-providers/openstack/metadata.go b/staging/src/k8s.io/legacy-cloud-providers/openstack/metadata.go index 4756e8cdc4fd7..638108caeca3c 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/openstack/metadata.go +++ b/staging/src/k8s.io/legacy-cloud-providers/openstack/metadata.go @@ -53,18 +53,6 @@ const ( // configDriveID is used as an identifier on the metadata search order configuration. configDriveID = "configDrive" - - // We have to use AWS compatible metadata for the next urls, because OpenStack doesn't - // provide this information. - - // instanceTypeURL contains url to get the instance type from metadata server. - instanceTypeURL = "http://169.254.169.254/2009-04-04/meta-data/instance-type" - - // localAddressURL contains url to get the instance local ip address from metadata server. - localAddressURL = "http://169.254.169.254/2009-04-04/meta-data/local-ipv4" - - // publicAddressURL contains url to get the instance public ip address from metadata server. - publicAddressURL = "http://169.254.169.254/2009-04-04/meta-data/public-ipv4" ) // ErrBadMetadata is used to indicate a problem parsing data from metadata server @@ -171,64 +159,13 @@ func getMetadataFromMetadataService(metadataVersion string) (*Metadata, error) { defer resp.Body.Close() if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf("unexpected status code when reading metadata from %s: %s", metadataURL, resp.Status) + err = fmt.Errorf("unexpected status code when reading metadata from %s: %s", metadataURL, resp.Status) + return nil, err } return parseMetadata(resp.Body) } -func getIntanceType() (string, error) { - klog.V(4).Infof("Attempting to fetch instance type from %s", instanceTypeURL) - resp, err := http.Get(instanceTypeURL) - if err != nil { - return "", fmt.Errorf("error fetching %s: %v", instanceTypeURL, err) - } - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - return "", fmt.Errorf("unexpected status code when reading instance type from %s: %s", instanceTypeURL, resp.Status) - } - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - return "", fmt.Errorf("cannot read the response body %s: %v", instanceTypeURL, err) - } - - return string(body), nil -} - -func getNodeAddress(url string) (string, error) { - klog.V(4).Infof("Attempting to fetch instance address from %s", url) - resp, err := http.Get(url) - if err != nil { - return "", fmt.Errorf("error fetching %s: %v", url, err) - } - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - return "", fmt.Errorf("unexpected status code when reading instance address from %s: %s", url, resp.Status) - } - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - return "", fmt.Errorf("cannot read the response body %s: %v", url, err) - } - - return string(body), nil -} - -func getNodeAddresses() (string, string, error) { - localAddess, err := getNodeAddress(localAddressURL) - if err != nil { - return "", "", err - } - - publicAddress, err := getNodeAddress(publicAddressURL) - if err != nil { - return "", "", err - } - - return localAddess, publicAddress, nil -} - // Metadata is fixed for the current host, so cache the value process-wide var metadataCache *Metadata diff --git a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack.go b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack.go index 8355cf8eff274..d443340ef0ca6 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack.go +++ b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack.go @@ -44,10 +44,11 @@ import ( "gopkg.in/gcfg.v1" v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" netutil "k8s.io/apimachinery/pkg/util/net" - "k8s.io/client-go/informers" - corelistersv1 "k8s.io/client-go/listers/core/v1" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/tools/clientcmd" certutil "k8s.io/client-go/util/cert" cloudprovider "k8s.io/cloud-provider" nodehelpers "k8s.io/cloud-provider/node/helpers" @@ -144,15 +145,8 @@ type OpenStack struct { metadataOpts MetadataOpts // InstanceID of the server where this OpenStack object is instantiated. localInstanceID string - // Options for reading config data from a secret - secretName string - secretNamespace string - // SecretLister generated by SetInformers - secretLister corelistersv1.SecretLister } -var _ cloudprovider.InformerUser = &OpenStack{} - // Config is used to read and store information from the cloud configuration file // NOTE: Cloud config files should follow the same Kubernetes deprecation policy as // flags or CLIs. Config fields should not change behavior in incompatible ways and @@ -174,8 +168,7 @@ type Config struct { CAFile string `gcfg:"ca-file"` SecretName string `gcfg:"secret-name"` SecretNamespace string `gcfg:"secret-namespace"` - // KubeconfigPath option is deprecated and shouldn't be used - KubeconfigPath string `gcfg:"kubeconfig-path"` + KubeconfigPath string `gcfg:"kubeconfig-path"` } LoadBalancer LoadBalancerOpts BlockStorage BlockStorageOpts @@ -268,28 +261,50 @@ func configFromEnv() (cfg Config, ok bool) { return } -// SetInformers initializes secret lister -func (os *OpenStack) SetInformers(informerFactory informers.SharedInformerFactory) { - os.secretLister = informerFactory.Core().V1().Secrets().Lister() +func createKubernetesClient(kubeconfigPath string) (*kubernetes.Clientset, error) { + klog.Info("Creating kubernetes API client.") + + cfg, err := clientcmd.BuildConfigFromFlags("", kubeconfigPath) + if err != nil { + return nil, err + } + cfg.DisableCompression = true + + client, err := kubernetes.NewForConfig(cfg) + if err != nil { + return nil, err + } + + v, err := client.Discovery().ServerVersion() + if err != nil { + return nil, err + } + + klog.Infof("Kubernetes API client created, server version %s", fmt.Sprintf("v%v.%v", v.Major, v.Minor)) + return client, nil } // setConfigFromSecret allows setting up the config from k8s secret -func (os *OpenStack) setConfigFromSecret() error { - if os.secretLister == nil { - return fmt.Errorf("secret lister is not initialized") +func setConfigFromSecret(cfg *Config) error { + secretName := cfg.Global.SecretName + secretNamespace := cfg.Global.SecretNamespace + kubeconfigPath := cfg.Global.KubeconfigPath + + k8sClient, err := createKubernetesClient(kubeconfigPath) + if err != nil { + return fmt.Errorf("failed to get kubernetes client: %v", err) } - secret, err := os.secretLister.Secrets(os.secretNamespace).Get(os.secretName) + secret, err := k8sClient.CoreV1().Secrets(secretNamespace).Get(context.TODO(), secretName, metav1.GetOptions{}) if err != nil { klog.Errorf("cannot get secret %s in namespace %s. error: %q", os.secretName, os.secretNamespace, err) return err } if content, ok := secret.Data["clouds.conf"]; ok { - cfg := &Config{} - err = gcfg.ReadStringInto(cfg, string(content)) if err != nil { + klog.Error("Cannot parse data from the secret.") return fmt.Errorf("cannot parse data from the secret: %s", err) } provider, err := newProvider(*cfg) @@ -302,6 +317,7 @@ func (os *OpenStack) setConfigFromSecret() error { return nil } + klog.Error("Cannot find \"clouds.conf\" key in the secret.") return fmt.Errorf("cannot find \"clouds.conf\" key in the secret") } @@ -339,6 +355,14 @@ func readConfig(config io.Reader) (Config, error) { return cfg, err } + if cfg.Global.SecretName != "" && cfg.Global.SecretNamespace != "" { + klog.Infof("Set credentials from secret %s in namespace %s", cfg.Global.SecretName, cfg.Global.SecretNamespace) + err = setConfigFromSecret(&cfg) + if err != nil { + return cfg, err + } + } + return cfg, nil } @@ -397,7 +421,7 @@ func checkOpenStackOpts(openstackOpts *OpenStack) error { return checkMetadataSearchOrder(openstackOpts.metadataOpts.SearchOrder) } -func newProvider(cfg Config) (*gophercloud.ProviderClient, error) { +func newOpenStack(cfg Config) (*OpenStack, error) { provider, err := openstack.NewClient(cfg.Global.AuthURL) if err != nil { return nil, err @@ -427,37 +451,23 @@ func newProvider(cfg Config) (*gophercloud.ProviderClient, error) { return nil, err } - provider.HTTPClient.Timeout = cfg.Metadata.RequestTimeout.Duration - - return provider, nil -} - -func newOpenStack(cfg Config) (*OpenStack, error) { emptyDuration := MyDuration{} if cfg.Metadata.RequestTimeout == emptyDuration { cfg.Metadata.RequestTimeout.Duration = time.Duration(defaultTimeOut) } + provider.HTTPClient.Timeout = cfg.Metadata.RequestTimeout.Duration os := OpenStack{ - secretName: cfg.Global.SecretName, - secretNamespace: cfg.Global.SecretNamespace, - region: cfg.Global.Region, - lbOpts: cfg.LoadBalancer, - bsOpts: cfg.BlockStorage, - routeOpts: cfg.Route, - metadataOpts: cfg.Metadata, - } - - // Skip provider initialization if we're going to read auth data from a secret. - if cfg.Global.SecretName == "" || cfg.Global.SecretNamespace == "" { - provider, err := newProvider(cfg) - if err != nil { - return nil, err - } - os.provider = provider + provider: provider, + region: cfg.Global.Region, + lbOpts: cfg.LoadBalancer, + bsOpts: cfg.BlockStorage, + routeOpts: cfg.Route, + metadataOpts: cfg.Metadata, } - if err := checkOpenStackOpts(&os); err != nil { + err = checkOpenStackOpts(&os) + if err != nil { return nil, err } @@ -492,7 +502,6 @@ func NewFakeOpenStackCloud(cfg Config) (*OpenStack, error) { // Initialize passes a Kubernetes clientBuilder interface to the cloud provider func (os *OpenStack) Initialize(clientBuilder cloudprovider.ControllerClientBuilder, stop <-chan struct{}) { - os.ensureCloudProviderWasInitialized() } // mapNodeNameToServerName maps a k8s NodeName to an OpenStack Server Name @@ -711,11 +720,6 @@ func (os *OpenStack) HasClusterID() bool { func (os *OpenStack) LoadBalancer() (cloudprovider.LoadBalancer, bool) { klog.V(4).Info("openstack.LoadBalancer() called") - err := os.ensureCloudProviderWasInitialized() - if err != nil { - return nil, false - } - if reflect.DeepEqual(os.lbOpts, LoadBalancerOpts{}) { klog.V(4).Info("LoadBalancer section is empty/not defined in cloud-config") return nil, false @@ -840,11 +844,6 @@ func (os *OpenStack) GetZoneByNodeName(ctx context.Context, nodeName types.NodeN func (os *OpenStack) Routes() (cloudprovider.Routes, bool) { klog.V(4).Info("openstack.Routes() called") - err := os.ensureCloudProviderWasInitialized() - if err != nil { - return nil, false - } - network, err := os.NewNetworkV2() if err != nil { return nil, false diff --git a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_instances.go b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_instances.go index 3b9b62f6183bd..48f9a65be78df 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_instances.go +++ b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_instances.go @@ -48,16 +48,6 @@ const ( func (os *OpenStack) Instances() (cloudprovider.Instances, bool) { klog.V(4).Info("openstack.Instances() called") - err := os.ensureCloudProviderWasInitialized() - if err != nil { - // cannot initialize cloud provider - return empty instances without compute instance, - // it will be generated later with any call of an Instances' receiver. - klog.Errorf("cannot initialize cloud provider, only limited functionality is available : %v", err) - return &Instances{ - opts: os.metadataOpts, - }, true - } - compute, err := os.NewComputeV2() if err != nil { klog.Errorf("unable to access compute v2 API : %v", err) @@ -97,43 +87,6 @@ func (i *Instances) AddSSHKeyToAllInstances(ctx context.Context, user string, ke func (i *Instances) NodeAddresses(ctx context.Context, name types.NodeName) ([]v1.NodeAddress, error) { klog.V(4).Infof("NodeAddresses(%v) called", name) - // check if the node is local, in this case we can get its addresses from the metadata service - // without additional requests to Nova. - md, err := getMetadata(i.opts.SearchOrder) - if err != nil { - return nil, err - } - if localName := types.NodeName(md.Name); localName == name { - localAddress, publicAddress, err := getNodeAddresses() - if err != nil { - return nil, err - } - - addrs := []v1.NodeAddress{ - { - Type: v1.NodeHostName, - Address: md.Name, - }, - } - - if localAddress != "" { - addrs = append(addrs, v1.NodeAddress{ - Type: v1.NodeInternalIP, - Address: localAddress, - }) - } - - if publicAddress != "" { - addrs = append(addrs, v1.NodeAddress{ - Type: v1.NodeExternalIP, - Address: publicAddress, - }) - } - - klog.V(4).Infof("NodeAddresses(%v) => %v", name, addrs) - return addrs, nil - } - addrs, err := getAddressesByName(i.compute, name) if err != nil { return nil, err @@ -219,17 +172,6 @@ func (os *OpenStack) InstanceID() (string, error) { // InstanceID returns the cloud provider ID of the specified instance. func (i *Instances) InstanceID(ctx context.Context, name types.NodeName) (string, error) { - // check if the node is local, in this case we can get its ID from the metadata service - // without additional requests to Nova. - md, err := getMetadata(i.opts.SearchOrder) - if err != nil { - return "", err - } - localName := types.NodeName(md.Name) - if localName == name { - return "/" + md.UUID, nil - } - srv, err := getServerByName(i.compute, name) if err != nil { if err == ErrNotFound { @@ -263,17 +205,6 @@ func (i *Instances) InstanceTypeByProviderID(ctx context.Context, providerID str // InstanceType returns the type of the specified instance. func (i *Instances) InstanceType(ctx context.Context, name types.NodeName) (string, error) { - // check if the node is local, in this case we can get its type from the metadata service - // without additional requests to Nova. - md, err := getMetadata(i.opts.SearchOrder) - if err != nil { - return "", err - } - localName := types.NodeName(md.Name) - if localName == name { - return getIntanceType() - } - srv, err := getServerByName(i.compute, name) if err != nil { diff --git a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_volumes.go b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_volumes.go index f460a73a3d63f..b2214ceb79132 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_volumes.go +++ b/staging/src/k8s.io/legacy-cloud-providers/openstack/openstack_volumes.go @@ -750,7 +750,6 @@ func (os *OpenStack) GetLabelsForVolume(ctx context.Context, pv *v1.PersistentVo if os.region != "" { labels[v1.LabelZoneRegion] = os.region } - klog.V(4).Infof("The Volume %s has labels %v", pv.Spec.Cinder.VolumeID, labels) return labels, nil diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/BUILD b/staging/src/k8s.io/legacy-cloud-providers/vsphere/BUILD index f0dfe0f1d19e0..6dd239dd9c47e 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/BUILD +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/BUILD @@ -12,6 +12,7 @@ go_library( "credentialmanager.go", "doc.go", "nodemanager.go", + "shared_datastore.go", "vsphere.go", "vsphere_util.go", "vsphere_util_linux.go", diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/shared_datastore.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/shared_datastore.go new file mode 100644 index 0000000000000..603ecde9b7515 --- /dev/null +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/shared_datastore.go @@ -0,0 +1,209 @@ +// +build !providerless + +/* +Copyright 2021 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 vsphere + +import ( + "context" + "fmt" + + "github.com/vmware/govmomi/property" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/types" + "k8s.io/klog/v2" + "k8s.io/legacy-cloud-providers/vsphere/vclib" +) + +type sharedDatastore struct { + nodeManager *NodeManager + candidateDatastores []*vclib.DatastoreInfo +} + +type hostInfo struct { + hostUUID string + hostMOID string + datacenter string +} + +const ( + summary = "summary" + runtimeHost = "summary.runtime.host" + hostsProperty = "host" + nameProperty = "name" +) + +func (shared *sharedDatastore) getSharedDatastore(ctcx context.Context) (*vclib.DatastoreInfo, error) { + nodes := shared.nodeManager.getNodes() + + // Segregate nodes according to VC-DC + dcNodes := make(map[string][]NodeInfo) + nodeHosts := make(map[string]hostInfo) + + for nodeName, node := range nodes { + nodeInfo, err := shared.nodeManager.GetNodeInfoWithNodeObject(node) + if err != nil { + return nil, fmt.Errorf("unable to find node %s: %v", nodeName, err) + } + vcDC := nodeInfo.vcServer + nodeInfo.dataCenter.String() + dcNodes[vcDC] = append(dcNodes[vcDC], nodeInfo) + } + + for vcDC, nodes := range dcNodes { + var hostInfos []hostInfo + var err error + hostInfos, err = shared.getNodeHosts(ctcx, nodes, vcDC) + if err != nil { + if vclib.IsManagedObjectNotFoundError(err) { + klog.Warningf("SharedHost.getSharedDatastore: batch fetching of hosts failed - switching to fetching them individually.") + hostInfos, err = shared.getEachNodeHost(ctcx, nodes, vcDC) + if err != nil { + klog.Errorf("SharedHost.getSharedDatastore: error fetching node hosts individually: %v", err) + return nil, err + } + } else { + return nil, err + } + } + for _, host := range hostInfos { + hostDCName := fmt.Sprintf("%s/%s", host.datacenter, host.hostMOID) + nodeHosts[hostDCName] = host + } + } + + if len(nodeHosts) < 1 { + msg := fmt.Sprintf("SharedHost.getSharedDatastore unable to find hosts associated with nodes") + klog.Error(msg) + return nil, fmt.Errorf("") + } + + for _, datastoreInfo := range shared.candidateDatastores { + dataStoreHosts, err := shared.getAttachedHosts(ctcx, datastoreInfo.Datastore) + if err != nil { + msg := fmt.Sprintf("error finding attached hosts to datastore %s: %v", datastoreInfo.Name(), err) + klog.Error(msg) + return nil, fmt.Errorf(msg) + } + if shared.isIncluded(dataStoreHosts, nodeHosts) { + return datastoreInfo, nil + } + } + return nil, fmt.Errorf("SharedHost.getSharedDatastore: unable to find any shared datastores") +} + +// check if all of the nodeHosts are included in the dataStoreHosts +func (shared *sharedDatastore) isIncluded(dataStoreHosts []hostInfo, nodeHosts map[string]hostInfo) bool { + result := true + for _, host := range nodeHosts { + hostFound := false + for _, targetHost := range dataStoreHosts { + if host.hostUUID == targetHost.hostUUID && host.hostMOID == targetHost.hostMOID { + hostFound = true + } + } + if !hostFound { + result = false + } + } + return result +} + +func (shared *sharedDatastore) getEachNodeHost(ctx context.Context, nodes []NodeInfo, dcVC string) ([]hostInfo, error) { + var hosts []hostInfo + for _, node := range nodes { + host, err := node.vm.GetHost(ctx) + if err != nil { + klog.Errorf("SharedHost.getEachNodeHost: unable to find host for vm %s: %v", node.vm.InventoryPath, err) + return nil, err + } + hosts = append(hosts, hostInfo{ + hostUUID: host.Summary.Hardware.Uuid, + hostMOID: host.Summary.Host.String(), + datacenter: node.dataCenter.String(), + }) + } + return hosts, nil +} + +func (shared *sharedDatastore) getNodeHosts(ctx context.Context, nodes []NodeInfo, dcVC string) ([]hostInfo, error) { + var vmRefs []types.ManagedObjectReference + if len(nodes) < 1 { + return nil, fmt.Errorf("no nodes found for dc-vc: %s", dcVC) + } + var nodeInfo NodeInfo + for _, n := range nodes { + nodeInfo = n + vmRefs = append(vmRefs, n.vm.Reference()) + } + pc := property.DefaultCollector(nodeInfo.dataCenter.Client()) + var vmoList []mo.VirtualMachine + err := pc.Retrieve(ctx, vmRefs, []string{nameProperty, runtimeHost}, &vmoList) + if err != nil { + klog.Errorf("SharedHost.getNodeHosts: unable to fetch vms from datacenter %s: %w", nodeInfo.dataCenter.String(), err) + return nil, err + } + var hostMoList []mo.HostSystem + var hostRefs []types.ManagedObjectReference + for _, vmo := range vmoList { + if vmo.Summary.Runtime.Host == nil { + msg := fmt.Sprintf("SharedHost.getNodeHosts: no host associated with vm %s", vmo.Name) + klog.Error(msg) + return nil, fmt.Errorf(msg) + } + hostRefs = append(hostRefs, vmo.Summary.Runtime.Host.Reference()) + } + pc = property.DefaultCollector(nodeInfo.dataCenter.Client()) + err = pc.Retrieve(ctx, hostRefs, []string{summary}, &hostMoList) + if err != nil { + klog.Errorf("SharedHost.getNodeHosts: unable to fetch hosts from datacenter %s: %w", nodeInfo.dataCenter.String(), err) + return nil, err + } + var hosts []hostInfo + for _, host := range hostMoList { + hosts = append(hosts, hostInfo{hostMOID: host.Summary.Host.String(), hostUUID: host.Summary.Hardware.Uuid, datacenter: nodeInfo.dataCenter.String()}) + } + return hosts, nil +} + +func (shared *sharedDatastore) getAttachedHosts(ctx context.Context, datastore *vclib.Datastore) ([]hostInfo, error) { + var ds mo.Datastore + + pc := property.DefaultCollector(datastore.Client()) + err := pc.RetrieveOne(ctx, datastore.Reference(), []string{hostsProperty}, &ds) + if err != nil { + return nil, err + } + + mounts := make(map[types.ManagedObjectReference]types.DatastoreHostMount) + var refs []types.ManagedObjectReference + for _, host := range ds.Host { + refs = append(refs, host.Key) + mounts[host.Key] = host + } + + var hs []mo.HostSystem + err = pc.Retrieve(ctx, refs, []string{summary}, &hs) + if err != nil { + return nil, err + } + var hosts []hostInfo + for _, h := range hs { + hosts = append(hosts, hostInfo{hostUUID: h.Summary.Hardware.Uuid, hostMOID: h.Summary.Host.String()}) + } + return hosts, nil + +} diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vclib/virtualmachine.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vclib/virtualmachine.go index 4837b7db37393..f9aa4aadd9c89 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vclib/virtualmachine.go +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vclib/virtualmachine.go @@ -166,6 +166,24 @@ func (vm *VirtualMachine) AttachDisk(ctx context.Context, vmDiskPath string, vol return diskUUID, nil } +// GetHost returns host of the virtual machine +func (vm *VirtualMachine) GetHost(ctx context.Context) (mo.HostSystem, error) { + host, err := vm.HostSystem(ctx) + var hostSystemMo mo.HostSystem + if err != nil { + klog.Errorf("Failed to get host system for VM: %q. err: %+v", vm.InventoryPath, err) + return hostSystemMo, err + } + + s := object.NewSearchIndex(vm.Client()) + err = s.Properties(ctx, host.Reference(), []string{"summary"}, &hostSystemMo) + if err != nil { + klog.Errorf("Failed to retrieve datastores for host: %+v. err: %+v", host, err) + return hostSystemMo, err + } + return hostSystemMo, nil +} + // DetachDisk detaches the disk specified by vmDiskPath func (vm *VirtualMachine) DetachDisk(ctx context.Context, vmDiskPath string) error { vmDiskPath = RemoveStorageClusterORFolderNameFromVDiskPath(vmDiskPath) diff --git a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere.go b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere.go index aa09c14197560..c528ae831bfc9 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere.go +++ b/staging/src/k8s.io/legacy-cloud-providers/vsphere/vsphere.go @@ -1340,13 +1340,20 @@ func (vs *VSphere) CreateVolume(volumeOptions *vclib.VolumeOptions) (canonicalVo if len(zonesToSearch) == 0 { // If zone is not provided, get the shared datastore across all node VMs. klog.V(4).Infof("Validating if datastore %s is shared across all node VMs", datastoreName) - sharedDsList, err = getSharedDatastoresInK8SCluster(ctx, vs.nodeManager) + sharedDSFinder := &sharedDatastore{ + nodeManager: vs.nodeManager, + candidateDatastores: candidateDatastoreInfos, + } + datastoreInfo, err = sharedDSFinder.getSharedDatastore(ctx) if err != nil { klog.Errorf("Failed to get shared datastore: %+v", err) return "", err } - // Prepare error msg to be used later, if required. - err = fmt.Errorf("The specified datastore %s is not a shared datastore across node VMs", datastoreName) + if datastoreInfo == nil { + err = fmt.Errorf("The specified datastore %s is not a shared datastore across node VMs", datastoreName) + klog.Error(err) + return "", err + } } else { // If zone is provided, get the shared datastores in that zone. klog.V(4).Infof("Validating if datastore %s is in zone %s ", datastoreName, zonesToSearch) @@ -1355,21 +1362,19 @@ func (vs *VSphere) CreateVolume(volumeOptions *vclib.VolumeOptions) (canonicalVo klog.Errorf("Failed to find a shared datastore matching zone %s. err: %+v", zonesToSearch, err) return "", err } - // Prepare error msg to be used later, if required. - err = fmt.Errorf("The specified datastore %s does not match the provided zones : %s", datastoreName, zonesToSearch) - } - found := false - // Check if the selected datastore belongs to the list of shared datastores computed. - for _, sharedDs := range sharedDsList { - if datastoreInfo, found = candidateDatastores[sharedDs.Info.Url]; found { - klog.V(4).Infof("Datastore validation succeeded") - found = true - break + found := false + for _, sharedDs := range sharedDsList { + if datastoreInfo, found = candidateDatastores[sharedDs.Info.Url]; found { + klog.V(4).Infof("Datastore validation succeeded") + found = true + break + } + } + if !found { + err = fmt.Errorf("The specified datastore %s does not match the provided zones : %s", datastoreName, zonesToSearch) + klog.Error(err) + return "", err } - } - if !found { - klog.Error(err) - return "", err } } } diff --git a/staging/src/k8s.io/metrics/go.mod b/staging/src/k8s.io/metrics/go.mod index 755d5004562dc..677fbc40d8b80 100644 --- a/staging/src/k8s.io/metrics/go.mod +++ b/staging/src/k8s.io/metrics/go.mod @@ -5,44 +5,18 @@ module k8s.io/metrics go 1.15 require ( - github.com/gogo/protobuf v1.3.1 + github.com/gogo/protobuf v1.3.2 github.com/stretchr/testify v1.4.0 - k8s.io/api v0.19.0 - k8s.io/apimachinery v0.19.0 - k8s.io/client-go v0.19.0 - k8s.io/code-generator v0.19.0 + k8s.io/api v0.0.0 + k8s.io/apimachinery v0.0.0 + k8s.io/client-go v0.0.0 + k8s.io/code-generator v0.0.0 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - go.uber.org/multierr => go.uber.org/multierr v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery - k8s.io/apiserver => ../apiserver - k8s.io/cli-runtime => ../cli-runtime k8s.io/client-go => ../client-go - k8s.io/cloud-provider => ../cloud-provider - k8s.io/cluster-bootstrap => ../cluster-bootstrap k8s.io/code-generator => ../code-generator - k8s.io/component-base => ../component-base - k8s.io/cri-api => ../cri-api - k8s.io/csi-translation-lib => ../csi-translation-lib - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator - k8s.io/kube-controller-manager => ../kube-controller-manager - k8s.io/kube-proxy => ../kube-proxy - k8s.io/kube-scheduler => ../kube-scheduler - k8s.io/kubectl => ../kubectl - k8s.io/kubelet => ../kubelet - k8s.io/legacy-cloud-providers => ../legacy-cloud-providers k8s.io/metrics => ../metrics - k8s.io/sample-apiserver => ../sample-apiserver - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/metrics/go.sum b/staging/src/k8s.io/metrics/go.sum index 3d79eb0642b0a..55ed3a440c2fe 100644 --- a/staging/src/k8s.io/metrics/go.sum +++ b/staging/src/k8s.io/metrics/go.sum @@ -1,4 +1,3 @@ -bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -12,8 +11,6 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7 cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= @@ -23,218 +20,62 @@ github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+v github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= -github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ= -github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -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/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= -github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200507155900-a9f01edf17e3/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200601085316-9f1617e5c574/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= -github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v1.0.0/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v1.0.0/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -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/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= @@ -243,9 +84,7 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -254,18 +93,8 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -279,61 +108,25 @@ github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OI github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= -github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -341,222 +134,60 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kubernetes-sigs/kube-storage-version-migrator v0.0.0-20191127225502-51849bc15f17/go.mod h1:enH0BVV+4+DAgWdwSlMefG8bBzTfVMTr1lApzdLZ/cc= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= -github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= -github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= -github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= -github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= -github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= -github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= -github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc90.0.20200616040943-82d2fa4eb069/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8= -github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728/go.mod h1:+B51GHs/jfZzk93MKrSSA8BWxrulVVcxiBG7kdFpd74= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible h1:AGewrYJW8aXFkkf86sSoiO9L/a/QYKZvODVCaB/wk4o= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20200831114015-2ab0c61c15de/go.mod h1:6vwp+YhYOIlj8MpkQKkebTTSn2TuYyvgiAFQ206jIEQ= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98 h1:JYwa3H00larjMVZXmh7L4FHDhNlKdWSgYi0kLdav9BY= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -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.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= -github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200520041808-52d707b772fe/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -577,32 +208,22 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -614,106 +235,67 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054 h1:HHeAlu5H9b71C+Fx0K+1dGgVFN1DM1/wz4aoGOA5qS8= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a h1:CB3a9Nez8M13wwlr/E2YtwoU+qYHKfC+JrDa45RXXoQ= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1-0.20200106000736-b8fc810ca6b5/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -729,14 +311,11 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -745,37 +324,25 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -784,32 +351,17 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14 h1:t4L10Qfx/p7ASH3gXCdIUtPbbIuegCoUJf3TMSFekjw= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A= -k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= -k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= -sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/generated.pb.go b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/generated.pb.go index 06e822a6c7c47..8008615d469d8 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/generated.pb.go @@ -556,10 +556,7 @@ func (m *MetricListOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -796,10 +793,7 @@ func (m *MetricValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -916,10 +910,7 @@ func (m *MetricValueList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta2/generated.pb.go b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta2/generated.pb.go index aa04d318339a3..b9d623f5f6833 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta2/generated.pb.go +++ b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta2/generated.pb.go @@ -645,10 +645,7 @@ func (m *MetricIdentifier) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -762,10 +759,7 @@ func (m *MetricListOptions) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -967,10 +961,7 @@ func (m *MetricValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1087,10 +1078,7 @@ func (m *MetricValueList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/metrics/pkg/apis/external_metrics/v1beta1/generated.pb.go b/staging/src/k8s.io/metrics/pkg/apis/external_metrics/v1beta1/generated.pb.go index 1295170e48dc0..59c301e3f168e 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/external_metrics/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/metrics/pkg/apis/external_metrics/v1beta1/generated.pb.go @@ -558,7 +558,7 @@ func (m *ExternalMetricValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -661,10 +661,7 @@ func (m *ExternalMetricValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -781,10 +778,7 @@ func (m *ExternalMetricValueList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/generated.pb.go b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/generated.pb.go index 288d3ebd4b62f..19355d77f3d6b 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/generated.pb.go +++ b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/generated.pb.go @@ -945,7 +945,7 @@ func (m *ContainerMetrics) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -962,10 +962,7 @@ func (m *ContainerMetrics) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1226,7 +1223,7 @@ func (m *NodeMetrics) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1243,10 +1240,7 @@ func (m *NodeMetrics) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1363,10 +1357,7 @@ func (m *NodeMetricsList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1549,10 +1540,7 @@ func (m *PodMetrics) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1669,10 +1657,7 @@ func (m *PodMetricsList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.pb.go b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.pb.go index d376ee9370cee..e7002f56bb298 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1/generated.pb.go @@ -945,7 +945,7 @@ func (m *ContainerMetrics) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -962,10 +962,7 @@ func (m *ContainerMetrics) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1226,7 +1223,7 @@ func (m *NodeMetrics) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > postIndex { @@ -1243,10 +1240,7 @@ func (m *NodeMetrics) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1363,10 +1357,7 @@ func (m *NodeMetricsList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1549,10 +1540,7 @@ func (m *PodMetrics) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { @@ -1669,10 +1657,7 @@ func (m *PodMetricsList) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) > l { diff --git a/staging/src/k8s.io/sample-apiserver/go.mod b/staging/src/k8s.io/sample-apiserver/go.mod index ae966879a886f..b1bc4ae1f8e6f 100644 --- a/staging/src/k8s.io/sample-apiserver/go.mod +++ b/staging/src/k8s.io/sample-apiserver/go.mod @@ -8,45 +8,21 @@ require ( github.com/go-openapi/spec v0.19.3 github.com/google/gofuzz v1.1.0 github.com/spf13/cobra v1.0.0 - k8s.io/apimachinery v0.19.0 - k8s.io/apiserver v0.19.0 - k8s.io/client-go v0.19.0 - k8s.io/code-generator v0.19.0 - k8s.io/component-base v0.19.0 - k8s.io/klog/v2 v2.3.0 + k8s.io/apimachinery v0.0.0 + k8s.io/apiserver v0.0.0 + k8s.io/client-go v0.0.0 + k8s.io/code-generator v0.0.0 + k8s.io/component-base v0.0.0 + k8s.io/klog/v2 v2.2.0 k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - go.uber.org/multierr => go.uber.org/multierr v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery k8s.io/apiserver => ../apiserver - k8s.io/cli-runtime => ../cli-runtime k8s.io/client-go => ../client-go - k8s.io/cloud-provider => ../cloud-provider - k8s.io/cluster-bootstrap => ../cluster-bootstrap k8s.io/code-generator => ../code-generator k8s.io/component-base => ../component-base - k8s.io/cri-api => ../cri-api - k8s.io/csi-translation-lib => ../csi-translation-lib - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator - k8s.io/kube-controller-manager => ../kube-controller-manager - k8s.io/kube-proxy => ../kube-proxy - k8s.io/kube-scheduler => ../kube-scheduler - k8s.io/kubectl => ../kubectl - k8s.io/kubelet => ../kubelet - k8s.io/legacy-cloud-providers => ../legacy-cloud-providers - k8s.io/metrics => ../metrics k8s.io/sample-apiserver => ../sample-apiserver - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/sample-apiserver/go.sum b/staging/src/k8s.io/sample-apiserver/go.sum index bf0e7d5af61ce..5c8cf52b11cc7 100644 --- a/staging/src/k8s.io/sample-apiserver/go.sum +++ b/staging/src/k8s.io/sample-apiserver/go.sum @@ -1,4 +1,3 @@ -bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -12,7 +11,6 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7 cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go v43.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= @@ -23,94 +21,45 @@ github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+v github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc= -github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/k8s-cloud-provider v0.0.0-20200415212048-7901bc822317/go.mod h1:DF8FZRxMHMGv/vP2lQP6h+dYzzjpuRn24VeRiYn3qjQ= -github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA= -github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/hcsshim v0.8.10-0.20200715222032-5eafd1556990/go.mod h1:ay/0dTb7NsG8QMDfsRfLHgZo/6xAJShLe1+ePPflihk= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46 h1:lsxEuwrXEAokXB9qhlbKWPpo3KMLZQ5WB5WLQRW1uq0= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -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/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= -github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= -github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.0+incompatible h1:CGxCgetQ64DKk7rdZ++Vfnb1+ogGNnB17OJKJXD2Cfs= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= -github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.0.2/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= -github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.0.0-20200507155900-a9f01edf17e3/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200601085316-9f1617e5c574/go.mod h1:XT+cAw5wfvsodedcijoh1l9cf7v1x9FlFB/3VmF/O8s= -github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa h1:OaNxuTZr7kxeODyLWsRMC+OD03aFUH+mW6r2d+MWa5Y= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= -github.com/container-storage-interface/spec v1.2.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= -github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= -github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= -github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= -github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= -github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/ttrpc v1.0.0/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= -github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containerd/typeurl v1.0.0/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -github.com/coredns/corefile-migration v1.0.10/go.mod h1:RMy/mXdeDlYwzt0vdMEJvT2hGJ2I86/eO0UdXmH9XNI= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= @@ -118,36 +67,17 @@ github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -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/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200309214505-aa6a9891b09c/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= @@ -159,27 +89,15 @@ github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -187,62 +105,26 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -256,9 +138,7 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -267,19 +147,9 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= -github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995/go.mod h1:lJgMEyOkYFkPcDKwRXegd+iM6E7matEszMG5HhwytU8= -github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cadvisor v0.37.0/go.mod h1:OhDE+goNVel0eGY8mR7Ifq1QUI1in5vJBIgIpcajK/I= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -298,14 +168,8 @@ github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= @@ -318,14 +182,10 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgf github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.5 h1:UImYN5qQ8tuGpGE16ZmjvcTtTw24zw1QAp/SlnNrZhI= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= -github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -333,10 +193,6 @@ github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -345,16 +201,11 @@ github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -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/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -365,42 +216,20 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kubernetes-sigs/kube-storage-version-migrator v0.0.0-20191127225502-51849bc15f17/go.mod h1:enH0BVV+4+DAgWdwSlMefG8bBzTfVMTr1lApzdLZ/cc= -github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= -github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= -github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= -github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= -github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= -github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= -github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= -github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/ipvs v1.0.1/go.mod h1:2pngiyseZbIKXNv7hsKj3O9UEz30c53MT9005gt2hxQ= -github.com/moby/sys/mountinfo v0.1.3/go.mod h1:w2t2Avltqx8vE7gX5l+QiBKxODu2TX0+Syr3h52Tw4o= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= @@ -408,60 +237,32 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= -github.com/mrunalp/fileutils v0.0.0-20200520151820-abd8a0e76976/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mvdan/xurls v1.1.0/go.mod h1:tQlNn3BED8bE/15hnSL2HLkDeLWpNPAwtw7wkEq44oU= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc90.0.20200616040943-82d2fa4eb069/go.mod h1:3Sm6Dt7OT8z88EbdQqqcRN2oCT54jbi72tT/HqgflT8= -github.com/opencontainers/runc v1.0.0-rc91.0.20200707015106-819fcc687efb/go.mod h1:ZuXhqlr4EiRYgDrBDNfSbE4+n9JX4+V107NwAmF7sZA= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/runtime-spec v1.0.3-0.20200520003142-237cc4f519e2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/opencontainers/selinux v1.5.2/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwyzAJufJyiTt7s0g= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/api v0.0.0-20200829102639-8a3a835f1acf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/apiserver-library-go v0.0.0-20200901140731-1236dc23c728/go.mod h1:+B51GHs/jfZzk93MKrSSA8BWxrulVVcxiBG7kdFpd74= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible h1:AGewrYJW8aXFkkf86sSoiO9L/a/QYKZvODVCaB/wk4o= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20200831114015-2ab0c61c15de/go.mod h1:6vwp+YhYOIlj8MpkQKkebTTSn2TuYyvgiAFQ206jIEQ= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98 h1:JYwa3H00larjMVZXmh7L4FHDhNlKdWSgYi0kLdav9BY= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= 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.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -472,38 +273,22 @@ github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6T github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= -github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rubiojr/go-vhd v0.0.0-20200706105327-02e210299021/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= -github.com/russross/blackfriday v0.0.0-20170610170232-067529f716f4/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -512,19 +297,15 @@ github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/storageos/go-api v0.0.0-20180912212459-343b3eff91fc/go.mod h1:ZrLn+e0ZuF3Y65PNF6dIwbJPZqfmtCXxFm9ckv0agOY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -532,39 +313,22 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200520041808-52d707b772fe/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5 h1:Gqga3zA9tdAcfqobUGjSoCob5L3f8Dt5EuOp3ihNZko= go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -576,30 +340,19 @@ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/ go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -620,15 +373,11 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -638,14 +387,12 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -658,50 +405,36 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -711,53 +444,41 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054 h1:HHeAlu5H9b71C+Fx0K+1dGgVFN1DM1/wz4aoGOA5qS8= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a h1:CB3a9Nez8M13wwlr/E2YtwoU+qYHKfC+JrDa45RXXoQ= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.6.2/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= -gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= -gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1-0.20200106000736-b8fc810ca6b5/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.1/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -773,7 +494,6 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -781,8 +501,6 @@ google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiq google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -792,13 +510,11 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= @@ -807,21 +523,21 @@ gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qS gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -832,33 +548,19 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14 h1:t4L10Qfx/p7ASH3gXCdIUtPbbIuegCoUJf3TMSFekjw= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubernetes v1.19.0/go.mod h1:yhT1/ltQajQsha3tnYc9QPFYSumGM45nlZdjf7WqE1A= -k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= -k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9 h1:rusRLrDhjBp6aYtl9sGEvQJr6faoHoDLd0YcUBTZguI= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= -sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15 h1:4uqm9Mv+w2MmBYD+F4qf/v6tDFUdPOk29C095RbU5mY= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/staging/src/k8s.io/sample-cli-plugin/go.mod b/staging/src/k8s.io/sample-cli-plugin/go.mod index 48e2ffd2babb8..6fa7242723a9a 100644 --- a/staging/src/k8s.io/sample-cli-plugin/go.mod +++ b/staging/src/k8s.io/sample-cli-plugin/go.mod @@ -7,29 +7,14 @@ go 1.15 require ( github.com/spf13/cobra v1.0.0 github.com/spf13/pflag v1.0.5 - google.golang.org/appengine v1.6.5 // indirect k8s.io/cli-runtime v0.0.0 - k8s.io/client-go v0.19.0 + k8s.io/client-go v0.0.0 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery - k8s.io/apiserver => ../apiserver k8s.io/cli-runtime => ../cli-runtime k8s.io/client-go => ../client-go - k8s.io/code-generator => ../code-generator - k8s.io/component-base => ../component-base - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator k8s.io/sample-cli-plugin => ../sample-cli-plugin - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/sample-cli-plugin/go.sum b/staging/src/k8s.io/sample-cli-plugin/go.sum index e11b8341dd7e0..055d6b0640b7d 100644 --- a/staging/src/k8s.io/sample-cli-plugin/go.sum +++ b/staging/src/k8s.io/sample-cli-plugin/go.sum @@ -1,6 +1,16 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= @@ -13,64 +23,39 @@ github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= @@ -79,87 +64,49 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= @@ -169,12 +116,7 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -185,40 +127,43 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= @@ -231,101 +176,65 @@ github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhn github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible h1:AGewrYJW8aXFkkf86sSoiO9L/a/QYKZvODVCaB/wk4o= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98 h1:JYwa3H00larjMVZXmh7L4FHDhNlKdWSgYi0kLdav9BY= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -334,132 +243,166 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6 h1:pE8b58s1HRDMi8RDc79m0HISf9D4TzseP40cEA6IGfs= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -469,53 +412,47 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= sigs.k8s.io/kustomize v2.0.3+incompatible h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbLXqhyOyX0= sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/staging/src/k8s.io/sample-controller/go.mod b/staging/src/k8s.io/sample-controller/go.mod index f59729508a53d..af42e0daf9ad1 100644 --- a/staging/src/k8s.io/sample-controller/go.mod +++ b/staging/src/k8s.io/sample-controller/go.mod @@ -5,31 +5,17 @@ module k8s.io/sample-controller go 1.15 require ( - google.golang.org/appengine v1.6.5 // indirect - k8s.io/api v0.19.0 - k8s.io/apimachinery v0.19.0 - k8s.io/client-go v0.19.0 - k8s.io/code-generator v0.19.0 - k8s.io/klog/v2 v2.3.0 + k8s.io/api v0.0.0 + k8s.io/apimachinery v0.0.0 + k8s.io/client-go v0.0.0 + k8s.io/code-generator v0.0.0 + k8s.io/klog/v2 v2.2.0 ) replace ( - github.com/containerd/continuity => github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc - github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 - github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 - github.com/onsi/ginkgo => github.com/openshift/ginkgo v4.5.0-origin.1+incompatible - github.com/robfig/cron => github.com/robfig/cron v1.1.0 - gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.2.8 k8s.io/api => ../api - k8s.io/apiextensions-apiserver => ../apiextensions-apiserver k8s.io/apimachinery => ../apimachinery - k8s.io/apiserver => ../apiserver k8s.io/client-go => ../client-go k8s.io/code-generator => ../code-generator - k8s.io/component-base => ../component-base - k8s.io/klog/v2 => k8s.io/klog/v2 v2.2.0 - k8s.io/kube-aggregator => ../kube-aggregator k8s.io/sample-controller => ../sample-controller - vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/staging/src/k8s.io/sample-controller/go.sum b/staging/src/k8s.io/sample-controller/go.sum index 28494239706c0..6b3ea10664046 100644 --- a/staging/src/k8s.io/sample-controller/go.sum +++ b/staging/src/k8s.io/sample-controller/go.sum @@ -1,6 +1,16 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= @@ -13,64 +23,25 @@ github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/certifi/gocertifi v0.0.0-20180905225744-ee1a9a0726d2/go.mod h1:GJKEexRPVJrBSOjoqN5VNOIKJ5Q3RViH6eu3puDRwx4= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/libnetwork v0.0.0-20190731215715-7f13a5c99f4b/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= -github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= @@ -79,88 +50,41 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/go-dockerclient v0.0.0-20171004212419-da3951ba2e9e/go.mod h1:KpcjM623fQYE9MZiTGzKhjfxXAV9wbyX2C1cyRHfhl0= -github.com/getsentry/raven-go v0.0.0-20190513200303-c977f96e1095/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= -github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= -github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= -github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= -github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= -github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= -github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= -github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= -github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= -github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= -github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= -github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= -github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 h1:5ZkaAPbicIKTF2I64qf5Fh8Aa83Q/dnOafMYV0OMwjA= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= @@ -170,12 +94,7 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/graph v0.0.0-20170401004347-50b27dea7ebb/go.mod h1:ye018NnX1zrbOLqwBvs2HqyyTouQgnL8C+qzYk1snPY= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -185,41 +104,33 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -227,237 +138,187 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20191031171055-b133feaeeb2e/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/openshift/api v0.0.0-20200827090112-c05698d102cf/go.mod h1:M3xexPhgM8DISzzRpuFUy+jfPjQPIcs9yqEYj17mXV8= -github.com/openshift/build-machinery-go v0.0.0-20200819073603-48aa266c95f7/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= -github.com/openshift/client-go v0.0.0-20200827190008-3062137373b5/go.mod h1:5rGmrkQ8DJEUXA+AR3rEjfH+HFyg4/apY9iCQFgvPfE= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible h1:AGewrYJW8aXFkkf86sSoiO9L/a/QYKZvODVCaB/wk4o= -github.com/openshift/ginkgo v4.5.0-origin.1+incompatible/go.mod h1:8METQ1gDhl0KW+pGH4c0DIJYEN/ksVCL6hOuHPmXGnk= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98 h1:JYwa3H00larjMVZXmh7L4FHDhNlKdWSgYi0kLdav9BY= -github.com/openshift/library-go v0.0.0-20201123125610-83d6d67a1e98/go.mod h1:KNfLGf4dIRJ+QB2aGy67AOy1k+DV783cMCuJf0d4Zik= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -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.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= -github.com/vishvananda/netlink v1.0.0/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5/go.mod h1:skWido08r9w6Lq/w70DO5XYIKMu4QFu1+4VsqLQuJy8= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6 h1:pE8b58s1HRDMi8RDc79m0HISf9D4TzseP40cEA6IGfs= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4 h1:5/PjkGUjvEU5Gl6BxmvKRPpqo2uNMv4rcHBMwzk/st8= -golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054 h1:HHeAlu5H9b71C+Fx0K+1dGgVFN1DM1/wz4aoGOA5qS8= -golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a h1:CB3a9Nez8M13wwlr/E2YtwoU+qYHKfC+JrDa45RXXoQ= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -467,52 +328,44 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14 h1:t4L10Qfx/p7ASH3gXCdIUtPbbIuegCoUJf3TMSFekjw= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= -k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0= -sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/kube-storage-version-migrator v0.0.3/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3 h1:4oyYo8NREp49LBBhKxEqCulFjg26rawYKrnCmg+Sr6c= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/test/conformance/testdata/conformance.yaml b/test/conformance/testdata/conformance.yaml index f2b1e25a16467..0c35b2a05e907 100755 --- a/test/conformance/testdata/conformance.yaml +++ b/test/conformance/testdata/conformance.yaml @@ -1474,9 +1474,9 @@ codename: '[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance]' description: The command 'kubectl run' must create a pod with the specified image - name. After, the command 'kubectl replace --dry-run=server' should update the - Pod with the new image name and server-side dry-run enabled. The image name must - not change. + name. After, the command 'kubectl patch pod -p {...} --dry-run=server' should + update the Pod with the new image name and server-side dry-run enabled. The image + name must not change. release: v1.19 file: test/e2e/kubectl/kubectl.go - testname: Kubectl, version diff --git a/test/e2e/apimachinery/BUILD b/test/e2e/apimachinery/BUILD index 31d7e02a21834..a207422221f97 100644 --- a/test/e2e/apimachinery/BUILD +++ b/test/e2e/apimachinery/BUILD @@ -79,6 +79,8 @@ go_library( "//staging/src/k8s.io/client-go/dynamic:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/rest:go_default_library", + "//staging/src/k8s.io/client-go/tools/cache:go_default_library", + "//staging/src/k8s.io/client-go/tools/watch:go_default_library", "//staging/src/k8s.io/client-go/util/cert:go_default_library", "//staging/src/k8s.io/client-go/util/keyutil:go_default_library", "//staging/src/k8s.io/client-go/util/retry:go_default_library", diff --git a/test/e2e/apimachinery/crd_publish_openapi.go b/test/e2e/apimachinery/crd_publish_openapi.go index 184362ac169cd..a59e088ae99ee 100644 --- a/test/e2e/apimachinery/crd_publish_openapi.go +++ b/test/e2e/apimachinery/crd_publish_openapi.go @@ -86,26 +86,23 @@ var _ = SIGDescribe("CustomResourcePublishOpenAPI [Privileged:ClusterAdmin]", fu framework.Failf("failed to delete valid CR: %v", err) } - // TODO(workload): re-enable client-side validation tests - /* - ginkgo.By("client-side validation (kubectl create and apply) rejects request with unknown properties when disallowed by the schema") - unknownCR := fmt.Sprintf(`{%s,"spec":{"foo":true}}`, meta) - if _, err := framework.RunKubectlInput(f.Namespace.Name, unknownCR, ns, "create", "-f", "-"); err == nil || !strings.Contains(err.Error(), `unknown field "foo"`) { - framework.Failf("unexpected no error when creating CR with unknown field: %v", err) - } - if _, err := framework.RunKubectlInput(f.Namespace.Name, unknownCR, ns, "apply", "-f", "-"); err == nil || !strings.Contains(err.Error(), `unknown field "foo"`) { - framework.Failf("unexpected no error when applying CR with unknown field: %v", err) - } + ginkgo.By("client-side validation (kubectl create and apply) rejects request with unknown properties when disallowed by the schema") + unknownCR := fmt.Sprintf(`{%s,"spec":{"foo":true}}`, meta) + if _, err := framework.RunKubectlInput(f.Namespace.Name, unknownCR, ns, "create", "-f", "-"); err == nil || !strings.Contains(err.Error(), `unknown field "foo"`) { + framework.Failf("unexpected no error when creating CR with unknown field: %v", err) + } + if _, err := framework.RunKubectlInput(f.Namespace.Name, unknownCR, ns, "apply", "-f", "-"); err == nil || !strings.Contains(err.Error(), `unknown field "foo"`) { + framework.Failf("unexpected no error when applying CR with unknown field: %v", err) + } - ginkgo.By("client-side validation (kubectl create and apply) rejects request without required properties") - noRequireCR := fmt.Sprintf(`{%s,"spec":{"bars":[{"age":"10"}]}}`, meta) - if _, err := framework.RunKubectlInput(f.Namespace.Name, noRequireCR, ns, "create", "-f", "-"); err == nil || !strings.Contains(err.Error(), `missing required field "name"`) { - framework.Failf("unexpected no error when creating CR without required field: %v", err) - } - if _, err := framework.RunKubectlInput(f.Namespace.Name, noRequireCR, ns, "apply", "-f", "-"); err == nil || !strings.Contains(err.Error(), `missing required field "name"`) { - framework.Failf("unexpected no error when applying CR without required field: %v", err) - } - */ + ginkgo.By("client-side validation (kubectl create and apply) rejects request without required properties") + noRequireCR := fmt.Sprintf(`{%s,"spec":{"bars":[{"age":"10"}]}}`, meta) + if _, err := framework.RunKubectlInput(f.Namespace.Name, noRequireCR, ns, "create", "-f", "-"); err == nil || !strings.Contains(err.Error(), `missing required field "name"`) { + framework.Failf("unexpected no error when creating CR without required field: %v", err) + } + if _, err := framework.RunKubectlInput(f.Namespace.Name, noRequireCR, ns, "apply", "-f", "-"); err == nil || !strings.Contains(err.Error(), `missing required field "name"`) { + framework.Failf("unexpected no error when applying CR without required field: %v", err) + } ginkgo.By("kubectl explain works to explain CR properties") if err := verifyKubectlExplain(f.Namespace.Name, crd.Crd.Spec.Names.Plural, `(?s)DESCRIPTION:.*Foo CRD for Testing.*FIELDS:.*apiVersion.*.*APIVersion defines.*spec.*.*Specification of Foo`); err != nil { @@ -233,7 +230,7 @@ var _ = SIGDescribe("CustomResourcePublishOpenAPI [Privileged:ClusterAdmin]", fu ns := fmt.Sprintf("--namespace=%v", f.Namespace.Name) ginkgo.By("client-side validation (kubectl create and apply) allows request with any unknown properties") - randomCR := fmt.Sprintf(`{%s,"spec":{"b":[{"c":"d"}]}}`, meta) + randomCR := fmt.Sprintf(`{%s,"spec":{"a":null,"b":[{"c":"d"}]}}`, meta) if _, err := framework.RunKubectlInput(f.Namespace.Name, randomCR, ns, "create", "-f", "-"); err != nil { framework.Failf("failed to create random CR %s for CRD that allows unknown properties in a nested object: %v", randomCR, err) } @@ -511,13 +508,7 @@ func setupCRDAndVerifySchema(f *framework.Framework, schema, expect []byte, grou return setupCRDAndVerifySchemaWithOptions(f, schema, expect, groupSuffix, versions) } -func setupCRDAndVerifySchemaWithOptions(f *framework.Framework, schema, expect []byte, groupSuffix string, versions []string, options ...crd.Option) (tCRD *crd.TestCrd, err error) { - defer func() { - if err == nil { - framework.Logf("sleeping 45 seconds before running the actual tests, we hope that during all API servers converge during that window, see %q for more", "https://github.com/kubernetes/kubernetes/pull/90452") - time.Sleep(time.Second * 45) - } - }() +func setupCRDAndVerifySchemaWithOptions(f *framework.Framework, schema, expect []byte, groupSuffix string, versions []string, options ...crd.Option) (*crd.TestCrd, error) { group := fmt.Sprintf("%s-test-%s.example.com", f.BaseName, groupSuffix) if len(versions) == 0 { return nil, fmt.Errorf("require at least one version for CRD") @@ -555,17 +546,17 @@ func setupCRDAndVerifySchemaWithOptions(f *framework.Framework, schema, expect [ } crd.Spec.Versions = apiVersions }) - tCRD, err = crd.CreateMultiVersionTestCRD(f, group, options...) + crd, err := crd.CreateMultiVersionTestCRD(f, group, options...) if err != nil { return nil, fmt.Errorf("failed to create CRD: %v", err) } - for _, v := range tCRD.Crd.Spec.Versions { - if err := waitForDefinition(f.ClientSet, definitionName(tCRD, v.Name), expect); err != nil { + for _, v := range crd.Crd.Spec.Versions { + if err := waitForDefinition(f.ClientSet, definitionName(crd, v.Name), expect); err != nil { return nil, fmt.Errorf("%v", err) } } - return tCRD, nil + return crd, nil } func cleanupCRD(f *framework.Framework, crd *crd.TestCrd) error { diff --git a/test/e2e/apimachinery/resource_quota.go b/test/e2e/apimachinery/resource_quota.go index ab57d932201e4..94333e10bc3e4 100644 --- a/test/e2e/apimachinery/resource_quota.go +++ b/test/e2e/apimachinery/resource_quota.go @@ -320,6 +320,7 @@ var _ = SIGDescribe("ResourceQuota", func() { ginkgo.By("Creating a ResourceQuota") quotaName := "test-quota" resourceQuota := newTestResourceQuota(quotaName) + resourceQuota.Spec.Hard[v1.ResourceConfigMaps] = resource.MustParse(hardConfigMaps) _, err = createResourceQuota(f.ClientSet, f.Namespace.Name, resourceQuota) framework.ExpectNoError(err) @@ -338,9 +339,6 @@ var _ = SIGDescribe("ResourceQuota", func() { ginkgo.By("Ensuring resource quota status captures configMap creation") usedResources = v1.ResourceList{} usedResources[v1.ResourceQuotas] = resource.MustParse(strconv.Itoa(c + 1)) - // we expect there to be two configmaps because each namespace will receive - // a ca.crt configmap by default. - // ref:https://github.com/kubernetes/kubernetes/pull/68812 usedResources[v1.ResourceConfigMaps] = resource.MustParse(hardConfigMaps) err = waitForResourceQuota(f.ClientSet, f.Namespace.Name, quotaName, usedResources) framework.ExpectNoError(err) @@ -1478,7 +1476,7 @@ func newTestResourceQuota(name string) *v1.ResourceQuota { hard[v1.ResourceQuotas] = resource.MustParse("1") hard[v1.ResourceCPU] = resource.MustParse("1") hard[v1.ResourceMemory] = resource.MustParse("500Mi") - hard[v1.ResourceConfigMaps] = resource.MustParse("2") + hard[v1.ResourceConfigMaps] = resource.MustParse("10") hard[v1.ResourceSecrets] = resource.MustParse("10") hard[v1.ResourcePersistentVolumeClaims] = resource.MustParse("10") hard[v1.ResourceRequestsStorage] = resource.MustParse("10Gi") diff --git a/test/e2e/apimachinery/table_conversion.go b/test/e2e/apimachinery/table_conversion.go index a5f337cd56ce1..c2c8d53eba236 100644 --- a/test/e2e/apimachinery/table_conversion.go +++ b/test/e2e/apimachinery/table_conversion.go @@ -35,8 +35,8 @@ import ( utilversion "k8s.io/apimachinery/pkg/util/version" "k8s.io/cli-runtime/pkg/printers" "k8s.io/kubernetes/test/e2e/framework" + e2epod "k8s.io/kubernetes/test/e2e/framework/pod" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" - imageutils "k8s.io/kubernetes/test/utils/image" ) var serverPrintVersion = utilversion.MustParseSemantic("v1.10.0") @@ -55,7 +55,7 @@ var _ = SIGDescribe("Servers with support for Table transformation", func() { podName := "pod-1" framework.Logf("Creating pod %s", podName) - _, err := c.CoreV1().Pods(ns).Create(context.TODO(), newTablePod(podName), metav1.CreateOptions{}) + _, err := c.CoreV1().Pods(ns).Create(context.TODO(), newTablePod(ns, podName), metav1.CreateOptions{}) framework.ExpectNoError(err, "failed to create pod %s in namespace: %s", podName, ns) table := &metav1beta1.Table{} @@ -179,25 +179,10 @@ func printTable(table *metav1beta1.Table) string { return buf.String() } -func newTablePod(podName string) *v1.Pod { - containerName := fmt.Sprintf("%s-container", podName) +func newTablePod(ns, podName string) *v1.Pod { port := 8080 - pod := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: podName, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: containerName, - Image: imageutils.GetE2EImage(imageutils.Agnhost), - Args: []string{"porter"}, - Env: []v1.EnvVar{{Name: fmt.Sprintf("SERVE_PORT_%d", port), Value: "foo"}}, - Ports: []v1.ContainerPort{{ContainerPort: int32(port)}}, - }, - }, - RestartPolicy: v1.RestartPolicyNever, - }, - } + pod := e2epod.NewAgnhostPod(ns, podName, nil, nil, []v1.ContainerPort{{ContainerPort: int32(port)}}, "porter") + pod.Spec.Containers[0].Env = []v1.EnvVar{{Name: fmt.Sprintf("SERVE_PORT_%d", port), Value: "foo"}} + pod.Spec.RestartPolicy = v1.RestartPolicyNever return pod } diff --git a/test/e2e/apimachinery/watch.go b/test/e2e/apimachinery/watch.go index 25911bfe73461..ec92fc0cfa6e1 100644 --- a/test/e2e/apimachinery/watch.go +++ b/test/e2e/apimachinery/watch.go @@ -27,6 +27,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" + cachetools "k8s.io/client-go/tools/cache" + watchtools "k8s.io/client-go/tools/watch" "k8s.io/kubernetes/test/e2e/framework" "github.com/onsi/ginkgo" @@ -336,6 +338,11 @@ var _ = SIGDescribe("Watchers", func() { iterations := 100 + ginkgo.By("getting a starting resourceVersion") + configmaps, err := c.CoreV1().ConfigMaps(ns).List(context.TODO(), metav1.ListOptions{}) + framework.ExpectNoError(err, "Failed to list configmaps in the namespace %s", ns) + resourceVersion := configmaps.ResourceVersion + ginkgo.By("starting a background goroutine to produce watch events") donec := make(chan struct{}) stopc := make(chan struct{}) @@ -345,11 +352,16 @@ var _ = SIGDescribe("Watchers", func() { produceConfigMapEvents(f, stopc, 5*time.Millisecond) }() + listWatcher := &cachetools.ListWatch{ + WatchFunc: func(listOptions metav1.ListOptions) (watch.Interface, error) { + return c.CoreV1().ConfigMaps(ns).Watch(context.TODO(), listOptions) + }, + } + ginkgo.By("creating watches starting from each resource version of the events produced and verifying they all receive resource versions in the same order") wcs := []watch.Interface{} - resourceVersion := "0" for i := 0; i < iterations; i++ { - wc, err := c.CoreV1().ConfigMaps(ns).Watch(context.TODO(), metav1.ListOptions{ResourceVersion: resourceVersion}) + wc, err := watchtools.NewRetryWatcher(resourceVersion, listWatcher) framework.ExpectNoError(err, "Failed to watch configmaps in the namespace %s", ns) wcs = append(wcs, wc) resourceVersion = waitForNextConfigMapEvent(wcs[0]).ResourceVersion @@ -436,11 +448,14 @@ func waitForEvent(w watch.Interface, expectType watch.EventType, expectObject ru func waitForNextConfigMapEvent(watch watch.Interface) *v1.ConfigMap { select { - case event := <-watch.ResultChan(): + case event, ok := <-watch.ResultChan(): + if !ok { + framework.Failf("Watch closed unexpectedly") + } if configMap, ok := event.Object.(*v1.ConfigMap); ok { return configMap } - framework.Failf("expected config map") + framework.Failf("expected config map, got %T", event.Object) case <-time.After(10 * time.Second): framework.Failf("timed out waiting for watch event") } diff --git a/test/e2e/apps/deployment.go b/test/e2e/apps/deployment.go index 1ef9508cd2ce7..915ba28c069cd 100644 --- a/test/e2e/apps/deployment.go +++ b/test/e2e/apps/deployment.go @@ -560,7 +560,7 @@ func testIterativeDeployments(f *framework.Framework) { // trigger a new deployment framework.Logf("%02d: triggering a new rollout for deployment %q", i, deployment.Name) deployment, err = e2edeployment.UpdateDeploymentWithRetries(c, ns, deployment.Name, func(update *appsv1.Deployment) { - newEnv := v1.EnvVar{Name: fmt.Sprintf("A%d", i), Value: fmt.Sprintf("%d", i)} + newEnv := v1.EnvVar{Name: "A", Value: fmt.Sprintf("%d", i)} update.Spec.Template.Spec.Containers[0].Env = append(update.Spec.Template.Spec.Containers[0].Env, newEnv) randomScale(update, i) }) diff --git a/test/e2e/auth/node_authn.go b/test/e2e/auth/node_authn.go index ebbb3710cbb94..e30a27e7772db 100644 --- a/test/e2e/auth/node_authn.go +++ b/test/e2e/auth/node_authn.go @@ -24,11 +24,11 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/master/ports" "k8s.io/kubernetes/test/e2e/framework" - imageutils "k8s.io/kubernetes/test/utils/image" "github.com/onsi/ginkgo" "github.com/onsi/gomega" e2enode "k8s.io/kubernetes/test/e2e/framework/node" + e2epod "k8s.io/kubernetes/test/e2e/framework/pod" ) var _ = SIGDescribe("[Feature:NodeAuthenticator]", func() { @@ -93,19 +93,7 @@ var _ = SIGDescribe("[Feature:NodeAuthenticator]", func() { }) func createNodeAuthTestPod(f *framework.Framework) *v1.Pod { - pod := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - GenerateName: "test-node-authn-", - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{{ - Name: "test-node-authn", - Image: imageutils.GetE2EImage(imageutils.Agnhost), - Command: []string{"sleep", "3600"}, - }}, - RestartPolicy: v1.RestartPolicyNever, - }, - } - + pod := e2epod.NewAgnhostPod(f.Namespace.Name, "agnhost-pod", nil, nil, nil) + pod.ObjectMeta.GenerateName = "test-node-authn-" return f.PodClient().CreateSync(pod) } diff --git a/test/e2e/autoscaling/custom_metrics_stackdriver_autoscaling.go b/test/e2e/autoscaling/custom_metrics_stackdriver_autoscaling.go index d3a7862d33831..400a6c6a217ef 100644 --- a/test/e2e/autoscaling/custom_metrics_stackdriver_autoscaling.go +++ b/test/e2e/autoscaling/custom_metrics_stackdriver_autoscaling.go @@ -259,11 +259,11 @@ func (tc *CustomMetricTestCase) Run() { } defer monitoring.CleanupDescriptors(gcmService, projectID) - err = monitoring.CreateAdapter(tc.framework.Namespace.ObjectMeta.Name, monitoring.AdapterDefault) + err = monitoring.CreateAdapter(monitoring.AdapterDefault) if err != nil { framework.Failf("Failed to set up: %v", err) } - defer monitoring.CleanupAdapter(tc.framework.Namespace.ObjectMeta.Name, monitoring.AdapterDefault) + defer monitoring.CleanupAdapter(monitoring.AdapterDefault) // Run application that exports the metric err = createDeploymentToScale(tc.framework, tc.kubeClient, tc.deployment, tc.pod) diff --git a/test/e2e/cloud/gcp/patch_flagaccess.go b/test/e2e/cloud/gcp/patch_flagaccess.go deleted file mode 100644 index 09dda3c316177..0000000000000 --- a/test/e2e/cloud/gcp/patch_flagaccess.go +++ /dev/null @@ -1,17 +0,0 @@ -package gcp - -func GetUpgradeTarget() string { - return *upgradeTarget -} - -func SetUpgradeTarget(val string) { - upgradeTarget = &val -} - -func GetUpgradeImage() string { - return *upgradeImage -} - -func SetUpgradeImage(val string) { - upgradeImage = &val -} diff --git a/test/e2e/e2e_test.go b/test/e2e/e2e_test.go index 2af9a89f952f2..ebf5228018e7a 100644 --- a/test/e2e/e2e_test.go +++ b/test/e2e/e2e_test.go @@ -34,6 +34,7 @@ import ( "k8s.io/component-base/version" "k8s.io/kubernetes/test/e2e/framework" + "k8s.io/kubernetes/test/e2e/framework/config" "k8s.io/kubernetes/test/e2e/framework/testfiles" "k8s.io/kubernetes/test/e2e/generated" "k8s.io/kubernetes/test/utils/image" @@ -61,12 +62,20 @@ import ( var viperConfig = flag.String("viper-config", "", "The name of a viper config file (https://github.com/spf13/viper#what-is-viper). All e2e command line parameters can also be configured in such a file. May contain a path and may or may not contain the file suffix. The default is to look for an optional file with `e2e` as base name. If a file is specified explicitly, it must be present.") +// handleFlags sets up all flags and parses the command line. +func handleFlags() { + config.CopyFlags(config.Flags, flag.CommandLine) + framework.RegisterCommonFlags(flag.CommandLine) + framework.RegisterClusterFlags(flag.CommandLine) + flag.Parse() +} + func TestMain(m *testing.M) { var versionFlag bool flag.CommandLine.BoolVar(&versionFlag, "version", false, "Displays version information.") // Register test flags, then parse flags. - HandleFlags() + handleFlags() // Now that we know which Viper config (if any) was chosen, // parse it and update those options which weren't already set via command line flags diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index 42325720a5135..794ec2a239565 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -468,7 +468,7 @@ func (f *Framework) AfterEach() { // Check whether all nodes are ready after the test. // This is explicitly done at the very end of the test, to avoid // e.g. not removing namespace in case of this failure. - if err := AllNodesReady(f.ClientSet, 7*time.Minute); err != nil { + if err := AllNodesReady(f.ClientSet, 3*time.Minute); err != nil { Failf("All nodes should be ready after test, %v", err) } } diff --git a/test/e2e/framework/network/utils.go b/test/e2e/framework/network/utils.go index 2a96a28f4e21e..c66cb3cf47aaf 100644 --- a/test/e2e/framework/network/utils.go +++ b/test/e2e/framework/network/utils.go @@ -861,6 +861,8 @@ func PokeHTTP(host string, port int, path string, params *HTTPPokeParams) HTTPPo params.ExpectCode = http.StatusOK } + framework.Logf("Poking %q", url) + resp, err := httpGetNoConnectionPoolTimeout(url, params.Timeout) if err != nil { ret.Error = err @@ -912,8 +914,7 @@ func PokeHTTP(host string, port int, path string, params *HTTPPokeParams) HTTPPo } ret.Status = HTTPSuccess - // causes excessive logging that provides no value - // framework.Logf("Poke(%q): success", url) + framework.Logf("Poke(%q): success", url) return ret } diff --git a/test/e2e/framework/pod/resource.go b/test/e2e/framework/pod/resource.go index 6feabb2a83164..9bffd02224570 100644 --- a/test/e2e/framework/pod/resource.go +++ b/test/e2e/framework/pod/resource.go @@ -386,23 +386,21 @@ func isNotRestartAlwaysMirrorPod(p *v1.Pod) bool { return p.Spec.RestartPolicy != v1.RestartPolicyAlways } -// NewExecPodSpec returns the pod spec of hostexec pod -func NewExecPodSpec(ns, name string, hostNetwork bool) *v1.Pod { +// NewAgnhostPod returns a pod that uses the agnhost image. The image's binary supports various subcommands +// that behave the same, no matter the underlying OS. If no args are given, it defaults to the pause subcommand. +// For more information about agnhost subcommands, see: https://github.com/kubernetes/kubernetes/tree/master/test/images/agnhost#agnhost +func NewAgnhostPod(ns, podName string, volumes []v1.Volume, mounts []v1.VolumeMount, ports []v1.ContainerPort, args ...string) *v1.Pod { immediate := int64(0) pod := &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ - Name: name, + Name: podName, Namespace: ns, }, Spec: v1.PodSpec{ Containers: []v1.Container{ - { - Name: "agnhost", - Image: imageutils.GetE2EImage(imageutils.Agnhost), - ImagePullPolicy: v1.PullIfNotPresent, - }, + NewAgnhostContainer("agnhost-container", mounts, ports, args...), }, - HostNetwork: hostNetwork, + Volumes: volumes, SecurityContext: &v1.PodSecurityContext{}, TerminationGracePeriodSeconds: &immediate, }, @@ -410,25 +408,35 @@ func NewExecPodSpec(ns, name string, hostNetwork bool) *v1.Pod { return pod } +// NewAgnhostContainer returns the container Spec of an agnhost container. +func NewAgnhostContainer(containerName string, mounts []v1.VolumeMount, ports []v1.ContainerPort, args ...string) v1.Container { + if len(args) == 0 { + args = []string{"pause"} + } + return v1.Container{ + Name: containerName, + Image: imageutils.GetE2EImage(imageutils.Agnhost), + Args: args, + VolumeMounts: mounts, + Ports: ports, + SecurityContext: &v1.SecurityContext{}, + ImagePullPolicy: v1.PullIfNotPresent, + } +} + +// NewExecPodSpec returns the pod spec of hostexec pod +func NewExecPodSpec(ns, name string, hostNetwork bool) *v1.Pod { + pod := NewAgnhostPod(ns, name, nil, nil, nil) + pod.Spec.HostNetwork = hostNetwork + return pod +} + // newExecPodSpec returns the pod spec of exec pod func newExecPodSpec(ns, generateName string) *v1.Pod { - immediate := int64(0) - pod := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - GenerateName: generateName, - Namespace: ns, - }, - Spec: v1.PodSpec{ - TerminationGracePeriodSeconds: &immediate, - Containers: []v1.Container{ - { - Name: "agnhost-pause", - Image: imageutils.GetE2EImage(imageutils.Agnhost), - Args: []string{"pause"}, - }, - }, - }, - } + // GenerateName is an optional prefix, used by the server, + // to generate a unique name ONLY IF the Name field has not been provided + pod := NewAgnhostPod(ns, "", nil, nil, nil) + pod.ObjectMeta.GenerateName = generateName return pod } diff --git a/test/e2e/framework/util.go b/test/e2e/framework/util.go index fec1d3933aa98..31aef86053b80 100644 --- a/test/e2e/framework/util.go +++ b/test/e2e/framework/util.go @@ -437,7 +437,7 @@ func countEndpointsNum(e *v1.Endpoints) int { // restclientConfig returns a config holds the information needed to build connection to kubernetes clusters. func restclientConfig(kubeContext string) (*clientcmdapi.Config, error) { - //Logf(">>> kubeConfig: %s", TestContext.KubeConfig) + Logf(">>> kubeConfig: %s", TestContext.KubeConfig) if TestContext.KubeConfig == "" { return nil, fmt.Errorf("KubeConfig must be specified to load client config") } @@ -446,7 +446,7 @@ func restclientConfig(kubeContext string) (*clientcmdapi.Config, error) { return nil, fmt.Errorf("error loading KubeConfig: %v", err.Error()) } if kubeContext != "" { - //Logf(">>> kubeContext: %s", kubeContext) + Logf(">>> kubeContext: %s", kubeContext) c.CurrentContext = kubeContext } return c, nil @@ -456,9 +456,9 @@ func restclientConfig(kubeContext string) (*clientcmdapi.Config, error) { type ClientConfigGetter func() (*restclient.Config, error) // LoadConfig returns a config for a rest client with the UserAgent set to include the current test name. -func LoadConfig(noUserAgent ...bool) (config *restclient.Config, err error) { +func LoadConfig() (config *restclient.Config, err error) { defer func() { - if err == nil && config != nil && len(noUserAgent) == 0 { + if err == nil && config != nil { testDesc := ginkgo.CurrentGinkgoTestDescription() if len(testDesc.ComponentTexts) > 0 { componentTexts := strings.Join(testDesc.ComponentTexts, " ") @@ -491,8 +491,8 @@ func LoadConfig(noUserAgent ...bool) (config *restclient.Config, err error) { } // LoadClientset returns clientset for connecting to kubernetes clusters. -func LoadClientset(noUserAgent ...bool) (*clientset.Clientset, error) { - config, err := LoadConfig(noUserAgent...) +func LoadClientset() (*clientset.Clientset, error) { + config, err := LoadConfig() if err != nil { return nil, fmt.Errorf("error creating client: %v", err.Error()) } diff --git a/test/e2e/framework/volume/fixtures.go b/test/e2e/framework/volume/fixtures.go index 7e687f3ef8afd..cb27ac9874b66 100644 --- a/test/e2e/framework/volume/fixtures.go +++ b/test/e2e/framework/volume/fixtures.go @@ -388,7 +388,7 @@ func runVolumeTesterPod(client clientset.Interface, config TestConfig, podSuffix Containers: []v1.Container{ { Name: config.Prefix + "-" + podSuffix, - Image: GetTestImage(framework.BusyBoxImage), + Image: GetDefaultTestImage(), WorkingDir: "/opt", // An imperative and easily debuggable container which reads/writes vol contents for // us to scan in the tests or by eye. @@ -466,7 +466,7 @@ func testVolumeContent(f *framework.Framework, pod *v1.Pod, fsGroup *int64, fsTy } else { // Filesystem: check content fileName := fmt.Sprintf("/opt/%d/%s", i, test.File) - commands := generateReadFileCmd(fileName) + commands := GenerateReadFileCmd(fileName) _, err := framework.LookForStringInPodExec(pod.Namespace, pod.Name, commands, test.ExpectedContent, time.Minute) framework.ExpectNoError(err, "failed: finding the contents of the mounted file %s.", fileName) @@ -608,9 +608,9 @@ func generateWriteBlockCmd(content, fullPath string) []string { return generateWriteCmd(content, fullPath) } -// generateReadFileCmd generates the corresponding command lines to read from a file with the given file path. +// GenerateReadFileCmd generates the corresponding command lines to read from a file with the given file path. // Depending on the Node OS is Windows or linux, the command will use powershell or /bin/sh -func generateReadFileCmd(fullPath string) []string { +func GenerateReadFileCmd(fullPath string) []string { var commands []string if !framework.NodeOSDistroIs("windows") { commands = []string{"cat", fullPath} @@ -654,9 +654,45 @@ func GeneratePodSecurityContext(fsGroup *int64, seLinuxOptions *v1.SELinuxOption // GetTestImage returns the image name with the given input // If the Node OS is windows, currently we return Agnhost image for Windows node // due to the issue of #https://github.com/kubernetes-sigs/windows-testing/pull/35. -func GetTestImage(image string) string { +func GetTestImage(id int) string { if framework.NodeOSDistroIs("windows") { return imageutils.GetE2EImage(imageutils.Agnhost) } - return image + return imageutils.GetE2EImage(id) +} + +// GetTestImageID returns the image id with the given input +// If the Node OS is windows, currently we return Agnhost image for Windows node +// due to the issue of #https://github.com/kubernetes-sigs/windows-testing/pull/35. +func GetTestImageID(id int) int { + if framework.NodeOSDistroIs("windows") { + return imageutils.Agnhost + } + return id +} + +// GetDefaultTestImage returns the default test image based on OS. +// If the node OS is windows, currently we return Agnhost image for Windows node +// due to the issue of #https://github.com/kubernetes-sigs/windows-testing/pull/35. +// If the node OS is linux, return busybox image +func GetDefaultTestImage() string { + return imageutils.GetE2EImage(GetDefaultTestImageID()) +} + +// GetDefaultTestImageID returns the default test image id based on OS. +// If the node OS is windows, currently we return Agnhost image for Windows node +// due to the issue of #https://github.com/kubernetes-sigs/windows-testing/pull/35. +// If the node OS is linux, return busybox image +func GetDefaultTestImageID() int { + return GetTestImageID(imageutils.BusyBox) +} + +// GetLinuxLabel returns the default SELinuxLabel based on OS. +// If the node OS is windows, it will return nil +func GetLinuxLabel() *v1.SELinuxOptions { + if framework.NodeOSDistroIs("windows") { + return nil + } + return &v1.SELinuxOptions{ + Level: "s0:c0,c1"} } diff --git a/test/e2e/generated/.gitignore b/test/e2e/generated/.gitignore deleted file mode 100644 index 78d1d4e5edd7d..0000000000000 --- a/test/e2e/generated/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# Ensure that bindata is not ignored to ensure openshift/origin can vendor it. -!bindata.go diff --git a/test/e2e/generated/bindata.go b/test/e2e/generated/bindata.go deleted file mode 100644 index c202e090a0347..0000000000000 --- a/test/e2e/generated/bindata.go +++ /dev/null @@ -1,8978 +0,0 @@ -// Package generated Code generated by go-bindata. (@generated) DO NOT EDIT. -// sources: -// test/conformance/testdata/OWNERS -// test/conformance/testdata/conformance.yaml -// test/e2e/testing-manifests/flexvolume/attachable-with-long-mount -// test/e2e/testing-manifests/flexvolume/dummy -// test/e2e/testing-manifests/flexvolume/dummy-attachable -// test/e2e/testing-manifests/guestbook/agnhost-primary-deployment.yaml.in -// test/e2e/testing-manifests/guestbook/agnhost-primary-service.yaml -// test/e2e/testing-manifests/guestbook/agnhost-replica-deployment.yaml.in -// test/e2e/testing-manifests/guestbook/agnhost-replica-service.yaml -// test/e2e/testing-manifests/guestbook/frontend-deployment.yaml.in -// test/e2e/testing-manifests/guestbook/frontend-service.yaml -// test/e2e/testing-manifests/guestbook/legacy/frontend-controller.yaml -// test/e2e/testing-manifests/guestbook/legacy/redis-master-controller.yaml -// test/e2e/testing-manifests/guestbook/legacy/redis-slave-controller.yaml -// test/e2e/testing-manifests/guestbook/redis-master-deployment.yaml.in -// test/e2e/testing-manifests/guestbook/redis-master-service.yaml -// test/e2e/testing-manifests/guestbook/redis-slave-deployment.yaml.in -// test/e2e/testing-manifests/guestbook/redis-slave-service.yaml -// test/e2e/testing-manifests/ingress/gce/static-ip-2/ing.yaml -// test/e2e/testing-manifests/ingress/gce/static-ip-2/rc.yaml -// test/e2e/testing-manifests/ingress/gce/static-ip-2/svc.yaml -// test/e2e/testing-manifests/ingress/http/ing.yaml -// test/e2e/testing-manifests/ingress/http/rc.yaml -// test/e2e/testing-manifests/ingress/http/svc.yaml -// test/e2e/testing-manifests/ingress/http2/ing.yaml -// test/e2e/testing-manifests/ingress/http2/rc.yaml -// test/e2e/testing-manifests/ingress/http2/svc.yaml -// test/e2e/testing-manifests/ingress/multiple-certs/ing.yaml -// test/e2e/testing-manifests/ingress/multiple-certs/rc.yaml -// test/e2e/testing-manifests/ingress/multiple-certs/svc.yaml -// test/e2e/testing-manifests/ingress/neg/ing.yaml -// test/e2e/testing-manifests/ingress/neg/rc.yaml -// test/e2e/testing-manifests/ingress/neg/svc.yaml -// test/e2e/testing-manifests/ingress/neg-clusterip/ing.yaml -// test/e2e/testing-manifests/ingress/neg-clusterip/rc.yaml -// test/e2e/testing-manifests/ingress/neg-clusterip/svc.yaml -// test/e2e/testing-manifests/ingress/neg-exposed/ing.yaml -// test/e2e/testing-manifests/ingress/neg-exposed/rc.yaml -// test/e2e/testing-manifests/ingress/neg-exposed/svc.yaml -// test/e2e/testing-manifests/ingress/nginx/rc.yaml -// test/e2e/testing-manifests/ingress/pre-shared-cert/ing.yaml -// test/e2e/testing-manifests/ingress/pre-shared-cert/rc.yaml -// test/e2e/testing-manifests/ingress/pre-shared-cert/svc.yaml -// test/e2e/testing-manifests/ingress/static-ip/ing.yaml -// test/e2e/testing-manifests/ingress/static-ip/rc.yaml -// test/e2e/testing-manifests/ingress/static-ip/secret.yaml -// test/e2e/testing-manifests/ingress/static-ip/svc.yaml -// test/e2e/testing-manifests/kubectl/agnhost-primary-controller.json.in -// test/e2e/testing-manifests/kubectl/agnhost-primary-pod.yaml -// test/e2e/testing-manifests/kubectl/agnhost-primary-service.json -// test/e2e/testing-manifests/kubectl/busybox-cronjob.yaml -// test/e2e/testing-manifests/kubectl/busybox-pod.yaml -// test/e2e/testing-manifests/kubectl/httpd-deployment1.yaml.in -// test/e2e/testing-manifests/kubectl/httpd-deployment2.yaml.in -// test/e2e/testing-manifests/kubectl/httpd-deployment3.yaml.in -// test/e2e/testing-manifests/kubectl/httpd-rc.yaml.in -// test/e2e/testing-manifests/kubectl/pause-pod.yaml.in -// test/e2e/testing-manifests/kubectl/pod-with-readiness-probe.yaml.in -// test/e2e/testing-manifests/pod -// test/e2e/testing-manifests/rbd-storage-class.yaml -// test/e2e/testing-manifests/sample-device-plugin.yaml -// test/e2e/testing-manifests/scheduling/nvidia-driver-installer.yaml -// test/e2e/testing-manifests/serviceloadbalancer/haproxyrc.yaml -// test/e2e/testing-manifests/serviceloadbalancer/netexecrc.yaml -// test/e2e/testing-manifests/serviceloadbalancer/netexecsvc.yaml -// test/e2e/testing-manifests/serviceloadbalancer/nginxrc.yaml -// test/e2e/testing-manifests/serviceloadbalancer/nginxsvc.yaml -// test/e2e/testing-manifests/statefulset/cassandra/controller.yaml -// test/e2e/testing-manifests/statefulset/cassandra/pdb.yaml -// test/e2e/testing-manifests/statefulset/cassandra/service.yaml -// test/e2e/testing-manifests/statefulset/cassandra/statefulset.yaml -// test/e2e/testing-manifests/statefulset/cassandra/tester.yaml -// test/e2e/testing-manifests/statefulset/cockroachdb/service.yaml -// test/e2e/testing-manifests/statefulset/cockroachdb/statefulset.yaml -// test/e2e/testing-manifests/statefulset/etcd/pdb.yaml -// test/e2e/testing-manifests/statefulset/etcd/service.yaml -// test/e2e/testing-manifests/statefulset/etcd/statefulset.yaml -// test/e2e/testing-manifests/statefulset/etcd/tester.yaml -// test/e2e/testing-manifests/statefulset/mysql-galera/service.yaml -// test/e2e/testing-manifests/statefulset/mysql-galera/statefulset.yaml -// test/e2e/testing-manifests/statefulset/mysql-upgrade/configmap.yaml -// test/e2e/testing-manifests/statefulset/mysql-upgrade/service.yaml -// test/e2e/testing-manifests/statefulset/mysql-upgrade/statefulset.yaml -// test/e2e/testing-manifests/statefulset/mysql-upgrade/tester.yaml -// test/e2e/testing-manifests/statefulset/nginx/service.yaml -// test/e2e/testing-manifests/statefulset/nginx/statefulset.yaml -// test/e2e/testing-manifests/statefulset/redis/service.yaml -// test/e2e/testing-manifests/statefulset/redis/statefulset.yaml -// test/e2e/testing-manifests/statefulset/zookeeper/service.yaml -// test/e2e/testing-manifests/statefulset/zookeeper/statefulset.yaml -// test/e2e/testing-manifests/storage-csi/OWNERS -// test/e2e/testing-manifests/storage-csi/controller-role.yaml -// test/e2e/testing-manifests/storage-csi/external-attacher/rbac.yaml -// test/e2e/testing-manifests/storage-csi/external-provisioner/rbac.yaml -// test/e2e/testing-manifests/storage-csi/external-resizer/rbac.yaml -// test/e2e/testing-manifests/storage-csi/external-snapshotter/rbac.yaml -// test/e2e/testing-manifests/storage-csi/gce-pd/controller_ss.yaml -// test/e2e/testing-manifests/storage-csi/gce-pd/csi-controller-rbac.yaml -// test/e2e/testing-manifests/storage-csi/gce-pd/node_ds.yaml -// test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-attacher.yaml -// test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-driverinfo.yaml -// test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-plugin.yaml -// test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-provisioner.yaml -// test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-resizer.yaml -// test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-snapshotter.yaml -// test/e2e/testing-manifests/storage-csi/hostpath/hostpath/e2e-test-rbac.yaml -// test/e2e/testing-manifests/storage-csi/hostpath/usage/csi-storageclass.yaml -// test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-attacher.yaml -// test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-resizer.yaml -// test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver.yaml -// test/e2e/testing-manifests/storage-csi/mock/csi-mock-driverinfo.yaml -// test/e2e/testing-manifests/storage-csi/mock/csi-mock-rbac.yaml -// test/e2e/testing-manifests/storage-csi/mock/csi-storageclass.yaml -// test/e2e_node/testing-manifests/sriovdp-cm.yaml -// test/e2e_node/testing-manifests/sriovdp-ds.yaml -// test/e2e_node/testing-manifests/sriovdp-sa.yaml -// test/images/Makefile -// test/images/OWNERS -// test/images/agnhost/.gitignore -// test/images/agnhost/BASEIMAGE -// test/images/agnhost/Dockerfile -// test/images/agnhost/Dockerfile_windows -// test/images/agnhost/Makefile -// test/images/agnhost/OWNERS -// test/images/agnhost/VERSION -// test/images/agnhost/agnhost.go -// test/images/agnhost/audit-proxy/main.go -// test/images/agnhost/connect/connect.go -// test/images/agnhost/crd-conversion-webhook/config.go -// test/images/agnhost/crd-conversion-webhook/converter/converter_test.go -// test/images/agnhost/crd-conversion-webhook/converter/example_converter.go -// test/images/agnhost/crd-conversion-webhook/converter/framework.go -// test/images/agnhost/crd-conversion-webhook/main.go -// test/images/agnhost/dns/common.go -// test/images/agnhost/dns/dns.go -// test/images/agnhost/dns/dns_windows.go -// test/images/agnhost/entrypoint-tester/ep.go -// test/images/agnhost/fakegitserver/gitserver.go -// test/images/agnhost/guestbook/guestbook.go -// test/images/agnhost/inclusterclient/main.go -// test/images/agnhost/liveness/server.go -// test/images/agnhost/logs-generator/logs_generator.go -// test/images/agnhost/mounttest/filePermissions.ps1 -// test/images/agnhost/mounttest/mt.go -// test/images/agnhost/mounttest/mt_utils.go -// test/images/agnhost/mounttest/mt_utils_windows.go -// test/images/agnhost/net/common/common.go -// test/images/agnhost/net/main.go -// test/images/agnhost/net/nat/closewait.go -// test/images/agnhost/netexec/netexec.go -// test/images/agnhost/nettest/nettest.go -// test/images/agnhost/no-snat-test/main.go -// test/images/agnhost/no-snat-test-proxy/main.go -// test/images/agnhost/openidmetadata/openidmetadata.go -// test/images/agnhost/pause/pause.go -// test/images/agnhost/port-forward-tester/portforwardtester.go -// test/images/agnhost/porter/localhost.crt -// test/images/agnhost/porter/localhost.key -// test/images/agnhost/porter/porter.go -// test/images/agnhost/resource-consumer-controller/controller.go -// test/images/agnhost/serve-hostname/serve_hostname.go -// test/images/agnhost/test-webserver/test-webserver.go -// test/images/agnhost/webhook/addlabel.go -// test/images/agnhost/webhook/addlabel_test.go -// test/images/agnhost/webhook/alwaysallow.go -// test/images/agnhost/webhook/alwaysdeny.go -// test/images/agnhost/webhook/config.go -// test/images/agnhost/webhook/configmap.go -// test/images/agnhost/webhook/convert.go -// test/images/agnhost/webhook/convert_test.go -// test/images/agnhost/webhook/crd.go -// test/images/agnhost/webhook/customresource.go -// test/images/agnhost/webhook/main.go -// test/images/agnhost/webhook/patch_test.go -// test/images/agnhost/webhook/pods.go -// test/images/agnhost/webhook/scheme.go -// test/images/apparmor-loader/BASEIMAGE -// test/images/apparmor-loader/Dockerfile -// test/images/apparmor-loader/Makefile -// test/images/apparmor-loader/OWNERS -// test/images/apparmor-loader/VERSION -// test/images/apparmor-loader/example-configmap.yaml -// test/images/apparmor-loader/example-daemon.yaml -// test/images/apparmor-loader/example-namespace.yaml -// test/images/apparmor-loader/example-pod.yaml -// test/images/apparmor-loader/loader.go -// test/images/busybox/BASEIMAGE -// test/images/busybox/Dockerfile_windows -// test/images/busybox/Makefile -// test/images/busybox/OWNERS -// test/images/busybox/VERSION -// test/images/busybox/hostname.go -// test/images/cloudbuild.yaml -// test/images/cuda-vector-add/BASEIMAGE -// test/images/cuda-vector-add/Dockerfile -// test/images/cuda-vector-add/OWNERS -// test/images/cuda-vector-add/VERSION -// test/images/echoserver/BASEIMAGE -// test/images/echoserver/Dockerfile -// test/images/echoserver/OWNERS -// test/images/echoserver/VERSION -// test/images/echoserver/nginx.conf -// test/images/echoserver/run.sh -// test/images/echoserver/template.lua -// test/images/image-util.sh -// test/images/ipc-utils/BASEIMAGE -// test/images/ipc-utils/Dockerfile -// test/images/ipc-utils/VERSION -// test/images/jessie-dnsutils/BASEIMAGE -// test/images/jessie-dnsutils/Dockerfile -// test/images/jessie-dnsutils/OWNERS -// test/images/jessie-dnsutils/VERSION -// test/images/jessie-dnsutils/fixup-apt-list.sh -// test/images/kitten/BASEIMAGE -// test/images/kitten/Dockerfile -// test/images/kitten/OWNERS -// test/images/kitten/VERSION -// test/images/kitten/html/data.json -// test/images/metadata-concealment/Dockerfile -// test/images/metadata-concealment/Makefile -// test/images/metadata-concealment/OWNERS -// test/images/metadata-concealment/VERSION -// test/images/metadata-concealment/check_metadata_concealment.go -// test/images/nautilus/BASEIMAGE -// test/images/nautilus/Dockerfile -// test/images/nautilus/OWNERS -// test/images/nautilus/VERSION -// test/images/nautilus/html/data.json -// test/images/node-perf/npb-ep/BASEIMAGE -// test/images/node-perf/npb-ep/Dockerfile -// test/images/node-perf/npb-ep/VERSION -// test/images/node-perf/npb-is/BASEIMAGE -// test/images/node-perf/npb-is/Dockerfile -// test/images/node-perf/npb-is/VERSION -// test/images/node-perf/tf-wide-deep/BASEIMAGE -// test/images/node-perf/tf-wide-deep/Dockerfile -// test/images/node-perf/tf-wide-deep/VERSION -// test/images/nonewprivs/.gitignore -// test/images/nonewprivs/BASEIMAGE -// test/images/nonewprivs/Dockerfile -// test/images/nonewprivs/Makefile -// test/images/nonewprivs/OWNERS -// test/images/nonewprivs/VERSION -// test/images/nonewprivs/nnp.go -// test/images/nonroot/BASEIMAGE -// test/images/nonroot/Dockerfile -// test/images/nonroot/OWNERS -// test/images/nonroot/VERSION -// test/images/pets/OWNERS -// test/images/pets/peer-finder/BASEIMAGE -// test/images/pets/peer-finder/Dockerfile -// test/images/pets/peer-finder/Makefile -// test/images/pets/peer-finder/VERSION -// test/images/pets/peer-finder/peer-finder.go -// test/images/pets/redis-installer/BASEIMAGE -// test/images/pets/redis-installer/Dockerfile -// test/images/pets/redis-installer/Makefile -// test/images/pets/redis-installer/VERSION -// test/images/pets/redis-installer/install.sh -// test/images/pets/redis-installer/on-start.sh -// test/images/pets/zookeeper-installer/BASEIMAGE -// test/images/pets/zookeeper-installer/Dockerfile -// test/images/pets/zookeeper-installer/Makefile -// test/images/pets/zookeeper-installer/VERSION -// test/images/pets/zookeeper-installer/install.sh -// test/images/pets/zookeeper-installer/on-start.sh -// test/images/redis/BASEIMAGE -// test/images/redis/Dockerfile -// test/images/redis/OWNERS -// test/images/redis/VERSION -// test/images/redis/redis.conf -// test/images/regression-issue-74839/.gitignore -// test/images/regression-issue-74839/Dockerfile -// test/images/regression-issue-74839/Makefile -// test/images/regression-issue-74839/OWNERS -// test/images/regression-issue-74839/VERSION -// test/images/regression-issue-74839/main.go -// test/images/regression-issue-74839/tcp.go -// test/images/resource-consumer/.gitignore -// test/images/resource-consumer/BASEIMAGE -// test/images/resource-consumer/Dockerfile -// test/images/resource-consumer/Makefile -// test/images/resource-consumer/VERSION -// test/images/resource-consumer/common/common.go -// test/images/resource-consumer/consume-cpu/consume_cpu.go -// test/images/resource-consumer/resource_consumer.go -// test/images/resource-consumer/resource_consumer_handler.go -// test/images/resource-consumer/utils.go -// test/images/sample-apiserver/BASEIMAGE -// test/images/sample-apiserver/Dockerfile -// test/images/sample-apiserver/OWNERS -// test/images/sample-apiserver/VERSION -// test/images/sample-device-plugin/BASEIMAGE -// test/images/sample-device-plugin/Dockerfile -// test/images/sample-device-plugin/Makefile -// test/images/sample-device-plugin/VERSION -// test/images/sample-device-plugin/sampledeviceplugin.go -// test/images/volume/OWNERS -// test/images/volume/gluster/BASEIMAGE -// test/images/volume/gluster/Dockerfile -// test/images/volume/gluster/VERSION -// test/images/volume/gluster/glusterd.vol -// test/images/volume/gluster/index.html -// test/images/volume/gluster/run_gluster.sh -// test/images/volume/iscsi/BASEIMAGE -// test/images/volume/iscsi/Dockerfile -// test/images/volume/iscsi/VERSION -// test/images/volume/iscsi/block.tar.gz -// test/images/volume/iscsi/create_block.sh -// test/images/volume/iscsi/run_iscsi_target.sh -// test/images/volume/nfs/BASEIMAGE -// test/images/volume/nfs/Dockerfile -// test/images/volume/nfs/VERSION -// test/images/volume/nfs/index.html -// test/images/volume/nfs/run_nfs.sh -// test/images/volume/rbd/BASEIMAGE -// test/images/volume/rbd/Dockerfile -// test/images/volume/rbd/VERSION -// test/images/volume/rbd/block.tar.gz -// test/images/volume/rbd/bootstrap.sh -// test/images/volume/rbd/ceph.conf.sh -// test/images/volume/rbd/create_block.sh -// test/images/volume/rbd/keyring -// test/images/volume/rbd/mon.sh -// test/images/volume/rbd/osd.sh -// test/fixtures/doc-yaml/admin/daemon.yaml -// test/fixtures/doc-yaml/admin/high-availability/etcd.yaml -// test/fixtures/doc-yaml/admin/high-availability/kube-apiserver.yaml -// test/fixtures/doc-yaml/admin/high-availability/kube-controller-manager.yaml -// test/fixtures/doc-yaml/admin/high-availability/kube-scheduler.yaml -// test/fixtures/doc-yaml/admin/limitrange/invalid-pod.yaml -// test/fixtures/doc-yaml/admin/limitrange/limits.yaml -// test/fixtures/doc-yaml/admin/limitrange/namespace.yaml -// test/fixtures/doc-yaml/admin/limitrange/valid-pod.yaml -// test/fixtures/doc-yaml/admin/namespaces/namespace-dev.json -// test/fixtures/doc-yaml/admin/namespaces/namespace-prod.json -// test/fixtures/doc-yaml/admin/resourcequota/limits.yaml -// test/fixtures/doc-yaml/admin/resourcequota/namespace.yaml -// test/fixtures/doc-yaml/admin/resourcequota/quota.yaml -// test/fixtures/doc-yaml/user-guide/configmap/configmap.yaml -// test/fixtures/doc-yaml/user-guide/deployment.yaml -// test/fixtures/doc-yaml/user-guide/downward-api/dapi-pod.yaml.in -// test/fixtures/doc-yaml/user-guide/job.yaml -// test/fixtures/doc-yaml/user-guide/liveness/exec-liveness.yaml.in -// test/fixtures/doc-yaml/user-guide/liveness/http-liveness.yaml.in -// test/fixtures/doc-yaml/user-guide/multi-pod.yaml -// test/fixtures/doc-yaml/user-guide/persistent-volumes/claims/claim-01.yaml -// test/fixtures/doc-yaml/user-guide/persistent-volumes/claims/claim-02.yaml -// test/fixtures/doc-yaml/user-guide/persistent-volumes/claims/claim-03.json -// test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/gce.yaml -// test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/local-01.yaml -// test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/local-02.yaml -// test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/nfs.yaml -// test/fixtures/doc-yaml/user-guide/pod.yaml -// test/fixtures/doc-yaml/user-guide/replicaset/redis-slave.yaml -// test/fixtures/doc-yaml/user-guide/replication.yaml -// test/fixtures/doc-yaml/user-guide/secrets/secret-env-pod.yaml -// test/fixtures/doc-yaml/user-guide/secrets/secret-pod.yaml.in -// test/fixtures/doc-yaml/user-guide/secrets/secret.yaml -// test/fixtures/doc-yaml/user-guide/update-demo/images/kitten/html/data.json -// test/fixtures/doc-yaml/user-guide/update-demo/images/nautilus/html/data.json -// test/fixtures/doc-yaml/user-guide/update-demo/kitten-rc.yaml.in -// test/fixtures/doc-yaml/user-guide/update-demo/nautilus-rc.yaml.in -// test/fixtures/doc-yaml/user-guide/walkthrough/podtemplate.json -// test/fixtures/pkg/kubectl/OWNERS -// test/fixtures/pkg/kubectl/plugins/bar/kubectl-bar -// test/fixtures/pkg/kubectl/plugins/foo/kubectl-foo -// test/fixtures/pkg/kubectl/plugins/kubectl-foo -// test/fixtures/pkg/kubectl/plugins/version/kubectl-version -package generated - -import ( - "bytes" - "compress/gzip" - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - "strings" - "time" -) - -func bindataRead(data []byte, name string) ([]byte, error) { - gz, err := gzip.NewReader(bytes.NewBuffer(data)) - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } - - var buf bytes.Buffer - _, err = io.Copy(&buf, gz) - clErr := gz.Close() - - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } - if clErr != nil { - return nil, err - } - - return buf.Bytes(), nil -} - -type asset struct { - bytes []byte - info os.FileInfo -} - -type bindataFileInfo struct { - name string - size int64 - mode os.FileMode - modTime time.Time -} - -// Name return file name -func (fi bindataFileInfo) Name() string { - return fi.name -} - -// Size return file size -func (fi bindataFileInfo) Size() int64 { - return fi.size -} - -// Mode return file mode -func (fi bindataFileInfo) Mode() os.FileMode { - return fi.mode -} - -// Mode return file modify time -func (fi bindataFileInfo) ModTime() time.Time { - return fi.modTime -} - -// IsDir return file whether a directory -func (fi bindataFileInfo) IsDir() bool { - return fi.mode&os.ModeDir != 0 -} - -// Sys return file is sys mode -func (fi bindataFileInfo) Sys() interface{} { - return nil -} - -var _testConformanceTestdataOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4c\x8f\xc1\x6a\xc3\x30\x0c\x86\xef\x7e\x0a\x41\xcf\x89\xaf\x23\xf7\x5d\x37\x58\x07\x3b\x16\xd9\x51\x62\x6d\xb1\x65\x64\x35\x5d\xde\x7e\x34\x19\xa5\xb7\xff\x13\x9f\x24\xfe\x13\x9c\x89\xc0\x12\xc1\xfb\xd7\xdb\xeb\xc7\x19\x46\x89\x0d\xd0\x20\x99\xd5\x36\x78\x3f\x4b\xff\xf3\xd2\x7a\x16\x2f\xb7\x42\xda\x9c\x3b\xc1\xa7\x40\x20\xb8\xf3\x08\x61\x83\xc6\x73\x87\x1a\x13\x1b\x45\xbb\x2a\xf5\x4e\xaa\xb1\x94\x36\x38\x80\x22\x97\x8a\x4a\xc5\x2e\xc7\xfe\x00\xa6\x57\x72\x4a\x2b\xd3\xed\xce\x0e\xa0\x83\x96\x51\x8d\x34\x2e\xb8\x99\x94\x63\x54\x79\x9a\x7e\xeb\x9e\x8d\xb3\x58\xda\x5a\xdc\x69\xe4\xdc\xf6\xf0\x2d\xa9\x04\x5a\x30\xa3\x72\x74\x58\xab\xca\xfa\x38\x19\xa5\x4c\xa2\x19\x4b\xa4\x2e\x50\xc2\x95\x45\xbb\x87\xe3\x16\x0c\xb4\xfc\xab\xa8\x84\xfe\xc9\x3f\xfe\xf3\xec\x9f\x5b\xb9\xbf\x00\x00\x00\xff\xff\xbd\x28\x57\xaf\x2b\x01\x00\x00") - -func testConformanceTestdataOwnersBytes() ([]byte, error) { - return bindataRead( - _testConformanceTestdataOwners, - "test/conformance/testdata/OWNERS", - ) -} - -func testConformanceTestdataOwners() (*asset, error) { - bytes, err := testConformanceTestdataOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/conformance/testdata/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testConformanceTestdataConformanceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x5b\x73\x1c\x37\x92\x30\x0c\xdf\xcf\xaf\x40\xf8\x86\xe3\x27\x9a\x2d\x4a\x3e\xcd\x78\x3e\x7f\x11\x32\x25\xdb\xda\xb5\x25\x8e\x28\xdb\x17\x5e\x87\x1e\x74\x15\x9a\x8d\x61\x75\xa1\xa6\x80\x22\xd5\xfb\xc6\xfb\xdf\xdf\x40\x66\xe2\x54\x87\xee\xea\x23\x29\x8f\x77\x27\x66\xc4\xae\xaa\x44\x22\x33\x91\x48\x24\xf2\x70\xce\x8c\xd0\xa6\xe4\x4b\xf1\x35\xbb\x52\x39\xfb\x51\xce\x45\xb6\xca\x0a\x31\x61\x95\xd2\x86\x69\xc3\x6b\xc3\xc4\x07\x91\xb1\x85\x52\xb7\x7f\x61\x2c\x53\xb9\xc0\xf7\xcf\x7e\xbb\xfd\x9b\x9e\x4a\xf5\x3b\xbb\x54\xa5\xe1\xb2\x14\x75\xf8\x9e\xfd\xa0\xd4\x2d\xbb\x5f\x88\x92\x65\xb5\xe0\x46\x30\xce\x2a\x95\xb3\x7b\x69\x16\xac\xf0\x6f\x11\x50\xc6\xf4\x42\x35\x45\x0e\x23\x35\x46\xc0\xe0\xad\xb1\x59\x55\xab\x4a\xd4\xc5\x8a\xfd\xf6\x5a\xe5\xe2\x52\x95\x73\x55\x2f\x79\x99\x89\xdf\xd9\x6f\xf1\x5f\x67\x7f\x61\x2c\x17\x3a\xab\x65\x65\xa4\x2a\xbf\x66\xbf\x5a\x2c\x78\x3c\xa1\x05\x2f\xf3\x42\xd4\x4c\x6a\xa6\x2b\x91\xc9\xb9\x14\x39\x93\x25\x33\x0b\xc1\x32\x3f\x99\x80\x66\xa3\x65\x79\x03\x78\x72\x76\xf6\xf2\x83\xc8\xce\x18\xcf\x2c\xf0\x89\xfd\x04\xbf\x73\x30\x7f\xfa\xf9\xfa\x1d\x9b\x09\x26\xcb\x3b\x75\x2b\x72\xc6\xe7\x46\xd4\xf0\x06\x8e\xad\xe6\xe9\x30\x53\x80\xfb\x9c\x69\x51\xdf\x89\x1a\x88\x24\x35\x11\x2d\x67\x66\xc1\x0d\xbb\x97\x45\x81\xcf\xd9\xc2\x98\x8a\xd5\xe2\xdf\x8d\xd0\x46\x4f\x02\x6d\xb5\xc8\x54\x99\x7b\x12\x13\xae\x7d\x73\xc1\x09\xaf\x64\x79\x93\xd2\x04\x46\x42\xa4\x35\xa2\x1b\x10\x0a\xf3\xb7\x93\x7f\x0e\x53\x67\x46\xb1\x3b\x5e\xc8\xdc\x22\x00\x1f\xdb\x8f\x22\x80\x52\x3b\x76\xe6\x76\x8e\xb5\x28\x04\xd7\xe2\x6b\x76\xf7\x74\xfa\xf7\xbf\x30\x36\x97\x85\xf8\x1a\xc4\xef\x89\x78\x26\x9e\x64\x6a\xb9\x54\xe5\x13\x8f\xe7\x7b\xcb\xf3\xe9\x8d\xfa\xcb\x38\x11\x05\xba\x3c\x90\x88\xfa\xb1\x1f\x8b\x88\xfe\x60\x4c\xf5\xbd\x30\xff\x59\x32\x1a\x89\x23\x40\x7e\x20\x91\xac\x85\x36\xaa\x7a\x08\x95\xd9\x1e\x79\x7f\x69\xac\xc5\x39\x80\x3c\xa5\xba\x9c\x89\xb9\xaa\x45\x0b\xb4\xd4\xcc\x88\x7a\x29\x4b\x4e\x9c\x7b\x38\x61\x74\x34\x39\x90\xba\x74\xe0\x4e\x27\x99\x0f\xa0\x29\xdb\x23\x3f\x12\xc9\x24\x35\xf9\x1f\x26\x9c\xc3\x7a\xf2\x88\xb2\x18\x84\xea\x6d\x53\x1a\xb9\x14\x13\xf6\x8e\x68\x26\x55\xf9\x93\xd0\x9a\xdf\x88\x09\x9b\xd7\x6a\xc9\x0a\x75\xc3\x54\x63\xaa\x06\xf6\x21\xdd\x64\x99\x10\xb9\x9d\xa0\x9f\xff\x46\xc9\xa5\x41\xd8\xac\xe0\xd9\xed\x4c\x7d\x00\x4c\x98\x5d\x84\x9e\x51\x11\x35\x51\x5c\x81\x18\xb5\xa8\x94\xdd\x67\x02\x6e\x6c\x89\xc8\xb1\xdf\x7e\x94\x65\xf3\xe1\x4d\x59\xac\x7e\x67\x5c\x33\xb1\xac\xcc\x0a\xd7\x84\xa5\x2a\xa1\xa9\x19\x2f\xf3\x9e\xa9\x5d\xa9\x42\x66\x2b\x18\xe2\x3b\x5e\x14\x33\x9e\xdd\xbe\x53\x3f\xaa\x1b\xfd\xa6\x7c\x59\xd7\x0a\x05\x58\x98\xad\xd7\xc3\xd9\x65\x67\x3d\xf2\x32\xda\xb7\x03\x4d\xce\xce\xb4\xa3\xaa\xd4\xac\x16\x99\xaa\x73\x58\x2b\x80\x94\xa5\xb9\xc5\x3c\x10\x45\x7c\x90\x46\xe3\xb4\xb4\x9e\x37\x45\xb1\x02\xf0\xaa\x31\x76\x04\x61\x91\x9e\xe2\x72\x1c\x58\x09\x13\x94\xae\x0e\x29\x70\x51\x2d\xf8\x9d\x60\xa5\x82\x8f\x45\x69\x2c\x45\x23\x86\x20\x31\xa7\x31\xcd\xbf\x66\x97\xbc\x2c\x95\x01\xa8\x4b\xd5\x94\x06\x04\x51\xdb\xd5\xfe\xab\x2c\x73\x75\xaf\xc3\x64\xf5\xf4\xac\x25\xb8\x4f\xbf\x18\x94\xdc\x1a\x85\x65\x1f\x91\xb5\x80\x1f\xad\xb0\x06\x0c\xff\x28\xd2\xca\x71\x3a\x16\xf9\x54\x15\xef\x26\xb4\x89\xa0\x8a\x7c\x32\x28\xb4\x4b\x6e\xb2\x05\xe2\xed\xc6\xb5\xb2\xeb\x09\x9c\x0a\x2c\x80\x45\xa1\x7d\x74\x02\xeb\xa7\x7f\xa6\x53\x7d\x0b\x48\xcf\xb9\x2c\x1e\xa1\x0c\x47\x88\xca\xf9\x47\x28\xb6\x43\x4a\xd6\x41\x1c\xa3\x54\x63\x4a\xa1\x2a\xec\x0a\xa8\x95\x4d\xf1\xa1\x12\x99\xa5\x3a\xa1\xe3\x71\x69\xb1\x1f\xf9\xff\x11\x08\xee\x15\x37\x8b\x09\x2b\x55\x79\x5e\x2b\x65\x58\xa3\x45\x0d\xc4\xb4\xbf\xe4\x62\xce\x9b\x02\xb7\x86\x8a\x83\xbd\xf4\xb0\xe2\xda\x2f\x9e\xdc\x2c\x9c\x08\x72\xed\xa7\x02\x70\xfd\x74\xb8\x61\x3c\x9e\x13\xcc\xe7\x20\x12\x1b\x4d\xc8\x28\x56\x37\x25\x93\x80\x07\x6f\x11\x15\xdf\x06\xac\xb2\x46\x1b\xb5\x1c\x9a\x8a\x16\x66\x0a\x87\x8c\x5a\xe4\xb2\x16\x99\x41\x53\x93\x04\xce\x28\x32\x2a\xd5\x9d\xb4\x72\x47\x7c\x61\x89\x76\x26\x61\x5f\x63\x4f\x83\x51\xde\x4b\xef\x20\xf0\x64\xc6\x76\x85\xbe\x50\x37\x37\xe1\x3c\xe0\x51\xa1\x69\x59\x8c\x5a\x26\xc6\x3b\x0e\x1f\xf8\x9f\x00\x72\xde\x08\x3b\x9b\x46\xc3\x16\x7f\x76\xd6\xc8\xfc\xec\x0c\x98\xd5\x94\x7c\x56\xc0\xc3\x07\x5a\x26\x6f\x05\xfa\x35\x50\xf3\x4d\x80\x1b\x57\x0b\xae\x85\xde\x71\x09\x80\x85\x00\x30\xf1\x44\x11\xc9\xcc\x82\xa3\xa8\xd2\x1e\x8b\x47\x3c\x2b\x46\x7e\x3f\xf4\xe4\xd7\x86\x9b\x46\x6f\x2d\xb5\xaf\xd0\xeb\x54\xd3\xa4\x2a\x98\x94\x5b\x31\x46\xb1\xb3\xe7\xc5\x3d\x5f\xe9\x33\x9c\xa7\x3b\x9b\xd1\xeb\x22\x07\xe4\x3b\x7b\xf9\xab\x79\x0f\xc0\xb3\x37\xe5\x77\x5c\x16\x4d\x2d\x5a\xc0\x1c\x28\x55\x16\x2b\xbb\x8a\xa5\xe9\xda\x07\x38\x61\xbb\x68\xfe\x57\xd4\x0a\xe8\x01\xb4\x9e\x0e\x4f\xe0\xec\xb5\xb8\x13\x75\x34\x16\x80\x2c\xed\x8f\xc9\x14\xa6\xec\x79\x51\x58\x18\xda\x1e\x32\x6b\x21\x90\x2b\x99\xe5\x28\xe2\x78\x27\x6a\x39\x5f\x25\xc3\x64\x56\xf6\x10\x49\x9e\x59\x2d\x2f\xcb\x9b\x62\xd5\x3e\xb9\x3d\xfd\x6c\x5b\x79\x7b\xa1\xb2\x5b\x51\x07\x11\xd0\x13\xd2\x0d\xf5\x4d\xb3\x14\x38\x64\x9f\x8c\xd1\x77\x41\xf6\x9d\xb0\xcc\x04\x73\xeb\x45\xdd\x89\xba\x96\x39\x1e\xa5\xe5\x92\xdf\x08\xbb\x13\xc5\x7a\xdc\x8f\xc2\xfe\x9a\x13\x22\xcb\xfc\xd3\xad\x65\xea\x05\xa9\x51\x3b\x55\xd0\xaf\x65\xce\x70\x0f\xb4\x23\x13\x64\x40\x80\x89\xd2\xd4\xab\x4a\xc9\xd2\x78\x71\x68\xb4\x40\xbd\x0f\xeb\xc2\x32\x2f\x57\xc2\xaa\x6e\xe3\x0e\xde\x2d\xdd\xe5\x86\x99\x35\x78\xa6\x0e\xb3\x80\x31\x2d\x04\xfb\x21\xc0\x84\x41\x3c\x21\x70\xe5\x39\x1f\xc6\xf8\x73\x37\x4e\xe1\x7d\xe0\xd2\x58\x36\x12\xaa\x47\x65\xa2\x23\x87\x63\x61\x20\xf1\xfe\x9c\x1c\xc7\xc4\xd7\x6f\x3c\x23\x83\x7e\x70\x6c\xb0\xa4\xd6\xfd\x1c\x9c\x32\x76\x19\x0f\xe4\x3e\x69\x71\xcd\x2c\x44\x32\x51\xda\x6a\x00\x97\xd3\xf1\x10\x2d\x87\x93\x2c\xcb\xde\x11\x0f\xb2\x2a\x5b\x4b\x65\x13\x67\x01\x9b\x36\x77\xc7\x70\x36\x1d\x2c\xe2\x33\x2e\x06\x36\xb4\x66\xbb\x9c\x1f\x40\xff\xb4\x32\x60\xcf\xb6\x07\x11\x83\x46\x47\x6c\x77\x3c\xd7\x76\x13\xcc\xba\x04\xd2\x8c\xd7\x60\x3b\x94\xb7\x0f\xc6\xfc\x0e\xe3\xc7\xe9\xe6\xc3\x71\x44\x96\xd2\x9c\xfb\xc7\xe7\xb0\x1b\xeb\x73\x5e\x55\xe7\xb4\x35\x73\xb0\x57\xce\x2b\x35\xa4\x65\x5f\x95\xd2\x04\x93\xac\x4b\x48\x62\x0d\x7a\x72\x61\xbc\x88\xff\x40\x04\x55\x32\xee\xcc\x40\x34\x8f\xc0\xe4\x5f\xcf\x81\x97\xa5\x6e\x6a\xba\x85\xe0\x45\x91\xa2\x81\xac\x75\x86\x10\x30\xa7\x28\xa2\x61\xad\x7c\xe3\x8c\x58\xfa\x96\x61\x96\xaa\xf6\x18\xd5\xb2\xe6\xb5\x91\x45\x61\x4d\xc5\xd2\x1a\x95\x78\x0e\x0f\x36\xb9\x3d\x0c\x58\xc3\x7a\x26\x9c\x6b\x3e\xb5\xe8\x80\xb5\x0b\xae\xdb\x66\x15\xd7\xe9\xbc\x3b\x06\xcf\xb3\x41\xce\x5a\x42\x06\xbe\x6e\xcd\x56\xb0\xdb\x4e\xc6\x55\x30\x1d\x4f\xc9\x54\xfb\xe6\x9d\x2a\x9a\xd2\xf0\x5a\x16\xab\x8e\xe5\x0b\x06\x2f\x99\xf8\x17\x13\xef\x85\xd3\x2b\x6d\xc4\xd2\xf2\xd6\x2e\xc1\x1b\x65\x79\x6d\x54\xcc\x50\xc6\xcb\x15\x5d\x2d\x6b\x11\x0f\x3e\x8e\xcd\x40\x88\x63\x71\x79\xce\x65\xa1\xe1\xfa\xe3\x18\xac\x06\xa5\x84\x24\xa8\xaa\x36\xb3\xc1\xc6\xe0\xb2\xa0\xcb\xea\x1c\xce\x1d\xa9\x50\xe0\xf3\xbd\xa5\x22\x1e\xdb\x31\x2a\x59\x6a\xc9\x1a\x4e\xe6\xe6\xfd\x82\xda\xda\x09\x8e\x9d\xf9\xe3\xe4\xda\xa1\xf4\xee\x5a\xb6\x8d\xe1\xd2\x6e\x1a\x79\x33\x9b\xba\xcb\xdb\x0e\x4d\x67\x95\x75\xfc\x11\x39\x9b\xab\x9a\xcd\xc5\x3d\x53\x59\xd6\xd4\xb5\x28\x33\x81\xd7\x00\x55\x2f\x27\x51\x42\x8f\xa5\x6a\xff\xbb\x99\x89\x42\x98\x09\x5b\x28\x6d\x9e\x17\x72\x8d\xe7\x82\x5e\xa5\x73\x52\xb6\x10\x79\x53\xa0\x8f\x62\xd6\xe8\xd5\x4c\x7d\x80\xa9\x82\x82\x8a\x80\xc5\xbe\xbb\xfb\x5a\x1a\xb4\x24\xc0\x36\x54\xec\x89\x30\xd9\x13\xfb\xb2\x4e\x9c\x77\xdb\xda\x33\xde\xd7\xd6\x8b\x00\xe8\xda\x88\x9f\x89\xdd\x6e\x4d\x6e\x70\x55\x01\x82\x11\x3e\x84\x25\xf8\xd7\xd0\x45\xab\xa3\x7b\x33\xf0\x7a\xd9\xc9\xbb\xc9\xa8\x79\x74\xfd\x9d\xd2\x92\x39\x4f\x5c\xb8\x52\xed\x1b\xc7\x92\xb7\x2e\x85\x11\x1a\x7d\x59\x68\x3c\x47\x6f\xc2\x8d\x8b\x2c\x49\xa3\x4b\xa3\x13\x4b\x74\xa1\xee\xed\x3a\x9f\xe0\xc7\x16\x35\x59\xe6\xf2\x4e\xe6\x0d\x2f\x9c\x5b\x8c\x04\xb9\xa9\x2a\x45\x3e\x16\xe7\x27\x43\x87\x73\xb0\xb3\xd8\x77\xaa\x66\x66\x01\x2e\x74\xae\xf1\x66\x1e\xbc\x82\x1a\xfc\xea\x4b\x5e\xdf\xc6\x5e\xba\x2d\x5c\x1d\xb7\x28\x45\x83\x72\x18\xae\x18\x26\xd1\xb1\x67\x37\x79\x8c\xce\x84\xe8\x87\x25\xad\x52\xd5\xb2\x34\xde\x67\x19\xdc\xa5\xc0\xe4\x6d\x85\xef\xdb\x95\xc3\x93\xc2\xb7\x72\xbc\xec\xca\xed\x3f\x45\x5d\x07\x7b\xda\x99\x5a\x60\x67\xf9\x0b\xfe\x70\xa5\x56\xc5\x6e\x30\x51\x06\x0f\xae\x97\xc0\x03\xd2\x19\xd5\x95\x85\x6d\xe9\x5c\x08\x88\x45\xd8\x8f\xcc\x64\xf8\x80\xc2\x85\x7d\x01\x05\xb5\x45\xfc\x19\xc4\x83\x69\x49\x07\x5e\x1c\xfb\x00\x4b\x3e\x32\x92\xac\x69\x24\xa6\xec\xdd\x22\x71\x64\x27\xf4\xb5\xe7\x6d\xb7\x36\x67\x82\xb0\xe8\x38\x7d\x0e\x44\xdf\x08\x07\x5c\x4e\x27\x22\x35\xa8\x2a\x5e\x76\xc7\x3f\x0a\xb9\xbd\x17\x17\x86\x05\xff\x6d\x72\x10\x99\xa6\x4a\x26\x0a\xed\xe9\x00\x83\xe5\x13\x60\xf5\x4d\xe1\x80\xac\xf2\x37\x34\xb5\xe0\xe4\x78\x86\xcb\x18\x50\xb8\x68\x54\x6f\xcd\xb0\x00\x2a\xb0\xae\xe7\x36\xcb\xea\x63\xdc\x15\x8d\x0a\x83\x92\x21\x7f\xd8\x2d\x51\x8b\xac\xa9\xa5\x59\xe1\xa5\xf9\x07\x03\x3e\x7d\x78\xf2\x56\xf0\xdc\x8e\xf2\x56\x29\xf3\x9d\x2c\xc4\xb5\x9b\x32\x73\x7e\x7f\x53\x37\xb0\x9e\x04\x80\xc3\x20\x2d\xb7\x87\x7b\xf4\x61\xbb\xc2\x38\x0c\x3c\x5a\xda\xf9\x4c\xe8\xb9\xaa\x44\x1d\xae\x4c\xe9\xed\xf6\x84\x81\xe3\x60\xc2\x71\xed\xef\x32\xfc\x3a\xee\xdf\x7a\x98\x96\x65\x86\x4b\xd9\xdd\xf9\x04\x2f\x04\xee\x74\x18\xd5\x95\x5c\xa7\xeb\xc0\xf0\x73\xe0\x12\x87\x2b\xb1\x03\x0a\xd5\x92\x97\xfc\x46\xe4\x4c\x98\x0c\xec\x81\x0d\x56\xd5\x4f\xf8\xfa\x4b\x93\xfd\x00\x9b\x3d\xad\x60\x98\x35\x0d\xe5\x41\x06\x9b\x00\xcf\x04\x96\xe4\x87\x95\x95\x36\x9d\xec\x60\xaf\x85\xb9\x57\xf5\xad\x13\x89\x39\x2f\xb4\x98\xc0\x0a\xa7\x98\x85\xc4\xd7\xb3\xd6\x88\xb1\xa8\x60\x94\x9f\xd2\x66\x1a\xc6\xa7\xa0\xbb\xab\x38\xe8\xae\x67\x68\x94\xc6\xa7\x41\x20\xdb\x38\x7e\x03\xc8\x45\x0a\xa4\x45\x31\x35\x4f\x10\x25\xb2\xce\xd0\x5d\x45\x0c\x99\xb2\x67\x1b\x07\xa0\x3b\x06\x72\xcb\xba\xe5\x4d\x13\xef\x4c\xda\x99\x01\x38\xe9\x77\x3d\x74\x01\x84\xad\xe0\xce\x10\xe6\x10\x66\x9f\xad\xc1\xcc\x12\x87\x4d\x7a\x41\x7b\x8d\x33\x13\x83\xa0\x47\xac\x35\xbf\xce\xb2\x76\x38\x58\xd7\xe2\x2c\x63\xa3\x72\xb4\xdf\x8f\x04\xfe\xbd\x30\xd9\x7b\x98\x43\x7b\x95\x01\x10\xf6\xfc\xea\x55\xec\x41\xbf\xe3\xb2\xa0\x6d\xbd\x6f\xa1\xfd\x08\xdf\xac\xfd\x72\xc3\x3a\xf9\x84\x04\x15\x21\xa9\xd9\xbf\x44\x66\xd0\xfb\x72\x23\x0c\x93\xe6\x1f\x3e\x7c\x94\x7e\xf2\xc6\x9c\xbf\x70\xf7\xee\x86\xeb\x4a\x64\x2e\xc8\x1f\xf6\x0a\x04\x1a\xc5\x90\xb8\x37\x54\x2d\x6f\x64\xc9\x0b\x7c\x63\xca\x7e\xae\x28\x80\x99\x10\xf1\x20\x1d\x12\x0d\xbe\x30\x8c\xc4\xff\x98\x0d\x18\x90\xf0\xc5\x58\x20\xd0\xdc\x21\x71\xe5\xc3\x5c\xf0\xab\x78\xfc\x0a\x9e\xb5\x86\x6f\x05\x1e\x6c\x49\x03\x00\x19\x46\x47\x3e\x90\xd5\x4c\x4a\x03\xbf\xc5\x78\x68\x3e\x13\x05\x9e\xfb\x0a\xa9\x0d\x3e\xd2\x09\x77\xe0\xf7\x35\xec\x09\xcf\x6b\x61\x9a\xba\x64\x33\x65\x01\x03\xa0\x29\x7b\x81\x36\xab\xc5\x9b\xc6\x42\xb1\xba\x93\xdc\xd9\xb3\x99\x2a\x0a\x01\x41\xcd\xff\xf0\xca\x91\x1e\x75\x87\x0d\xe6\x0e\xbd\x02\x5b\x52\x1b\xfc\x94\xfd\x68\xb1\x42\x24\x10\xea\xc0\x34\x02\x3c\xc2\xfe\x5f\x8d\x36\x44\xe6\x25\x97\xe0\x04\x26\x90\xf1\x54\xec\x2f\x08\x77\x10\xd3\x29\xfb\x5e\x98\xe8\xed\xc0\x62\x1a\xc9\xaa\x97\xb9\x6a\xca\x9c\x62\xa9\x3e\x69\xef\xa8\x5f\x0d\xc7\x2f\x03\x46\xdd\x10\x7a\x3d\x61\xcf\x33\x23\xef\xc4\x0b\xc1\xf3\x42\x96\xe2\x1a\x38\x3e\xb4\xa1\xda\x2f\xdc\xe2\xe6\x45\xa1\xee\x21\xb8\xbc\xf3\x35\x19\xfe\x4e\xae\x3b\x7b\x26\xd0\x61\xdb\x7d\x93\xb3\xa6\x94\xff\x6e\x88\x6f\x53\xf6\xcf\x46\xd4\x2b\xf0\xf7\x98\x58\x5f\x7b\xce\x3a\xdf\x8e\x16\x56\x58\x54\xdd\x4b\x71\xa7\xea\xa5\xf6\xd8\x02\x94\x21\xa2\xa0\xd5\x46\x36\x98\xbb\x3b\x8b\xcc\x73\x6f\x4a\xbb\xb5\x17\x1c\x17\x10\x8f\x22\x0a\x5e\x59\x31\x1f\xad\xae\x2b\x95\x77\x34\x34\xf2\xcd\x87\xa4\x8f\xe0\x15\xcc\x7a\xb6\x94\xc6\xf9\xc7\x6b\xb1\x54\x77\x7d\xac\xd9\xc0\x96\xe7\x8e\x5a\x2e\xe6\xbf\x97\x35\x71\xcc\x09\x1a\x7f\x70\x22\x05\x4b\xfe\xdf\x8d\xa8\x25\xf9\xf2\x20\x5f\x21\x70\x2c\xb0\xaa\xa9\x14\x25\x63\x48\x55\x4e\xd9\xf3\x3c\x67\x9c\xdd\x5b\x45\x35\x61\xd9\x42\x64\xb7\x4c\xce\x3d\x0b\xa4\x76\xb7\x2f\x53\x7f\xff\x0d\x66\x34\x1d\x3c\x27\xc0\x65\x7b\x10\x81\x1f\x20\x5b\x45\x2e\x85\x36\x7c\x09\xd9\x00\x6a\x06\xf9\x03\x39\x4a\x03\x8c\x12\x2f\x3b\xaf\x62\x3c\x04\x6b\x79\xde\x89\xd2\x38\x19\xf4\x72\xe7\xb7\x13\x3f\x91\x58\x3c\xdb\x30\x31\xc6\xde\xaa\x99\x43\x88\x03\x8a\xef\x38\x59\x18\x5c\x98\x8f\x63\x51\x46\xbb\x30\xa5\x74\x64\x0b\x5e\xde\xe0\x2f\x77\xbc\x68\xfc\xea\xfa\x11\x46\x05\xa0\x6b\x46\x2e\xc5\x3d\x7d\xe6\x1e\xa3\xb8\xf5\x8c\xbd\x35\x23\x18\x9b\x89\x05\xbf\x93\xaa\xd6\x5f\xff\x85\xb1\x73\x8b\xf1\x13\xbb\xe8\x9f\xc0\x18\x4f\x32\xb7\x9d\x76\x9e\xc0\xbe\xdb\xc3\x48\x2b\x8c\x32\x13\x4c\x94\x77\xb2\x56\xe5\x52\x94\x86\xdd\xf1\x5a\x5a\x23\x6a\x8c\x5e\x26\x63\xb9\xff\x7b\xa0\x00\x8d\xd0\xe3\x8e\xdb\x46\x31\x53\xd2\x8d\xa5\xb4\x95\x61\x81\xd7\x9f\x25\x83\x53\xe1\xdf\x3f\xfb\xea\xcb\x29\x7b\xce\xae\x69\x32\x19\x2f\x0a\xf0\xce\x2b\x1a\x1c\x7d\x2a\x41\x8f\x38\xce\xac\x85\xfa\xb7\xaf\xbe\xfc\x82\x19\x5e\xdf\x08\x38\x71\xe2\x6f\x17\x7f\xbb\x80\xd8\x34\x4e\x51\x67\xf7\x6d\x15\xe5\x12\xa6\x8a\x46\x53\x1e\x68\x99\xae\x49\x38\xc6\xd8\x5f\x02\x7a\x31\xf5\x00\x6e\xa0\x60\xb0\x68\xe9\xd4\x21\xb5\x1b\x15\x35\x88\xfd\x83\xcc\xa1\x74\x88\x61\x98\xba\xb1\x56\x9d\x66\xdf\xbd\x79\x73\xfd\xf2\xed\x2f\xaf\x2e\x5f\xbe\x77\xff\xfb\xc3\x9b\xeb\x77\x93\xbe\x07\x57\x6f\xde\xa6\x0f\xe0\x07\x8c\x0f\x4f\x7f\x7c\x6f\xe9\xf6\xfe\xdd\xe5\x55\xff\x37\xd1\xe3\xb7\x6f\xde\xbd\x19\x7e\xee\x2d\xb8\x41\x00\xcf\x5f\xbc\x78\x4b\xfe\xb3\xda\x2e\xde\xaa\x29\xc2\x2e\x81\x69\x71\xb8\x12\x0f\xb2\x03\x92\x25\xc5\x23\x83\x70\xc4\xfa\xe8\xf9\x0a\xcc\x60\xfb\xca\xa6\xcd\x0f\x36\x7f\x7a\xb7\xbb\x09\xb6\x36\xb1\xfb\x85\x74\x3b\xc9\x4c\xa0\xe1\x16\xa2\xed\x40\xb8\x49\x60\x5a\x50\xdd\x1e\xe3\x0d\xcd\xd7\x6f\xde\x59\xe4\xef\x59\x53\xc5\x1f\xdb\xf3\xa5\xa4\x53\x77\x3a\x74\xc7\xd5\xb2\x0b\x75\xb9\xd6\xf2\xa6\xa4\x1b\x17\x59\x8d\xa0\xac\xb5\x57\x39\xbc\xce\x5e\x5d\xed\xb5\xb9\xa0\x09\x41\xb7\xf0\xb1\x09\x9c\x24\xbf\x44\xd9\x06\x9a\x71\xcc\xfb\x03\x6a\xbc\xba\x62\x3c\xcf\xeb\x1e\xa7\xd3\x2e\x84\xb0\xb6\x92\x09\xe1\x50\x78\xb7\x00\x52\x63\x35\xd5\xbd\x98\x69\x95\xdd\x8a\xa1\x9b\x94\x98\x40\xce\x67\x36\x12\x22\xb2\x76\x5f\x13\x6d\xca\x7e\x75\x00\x93\x64\x4d\x65\x69\x5a\x4b\x61\x15\xd3\x07\x91\x79\x6c\xa2\x2b\xbb\xa0\xe0\x2a\xcb\x13\x97\x2d\xe4\xbe\xcb\xd1\xd9\x14\xc0\xb7\xd3\x88\x7c\xc8\xb4\x1d\x20\x09\xb0\xc3\x41\xb6\x70\x09\xae\xb1\x83\xd5\x0d\xc5\x55\x25\x84\x1b\xcf\x0b\x98\x0c\x1c\xdb\x3c\xa4\x34\xb4\xca\x72\x05\x57\xae\x1f\xe0\x14\x5c\x81\xdb\xba\x79\x7c\xbd\x7a\x10\xa6\xc4\xc9\x51\x87\x62\x03\x2b\xe4\x9d\x28\x85\xd6\x56\xc9\xcf\xc4\x84\x2c\x7b\x48\x00\x16\x65\x0e\xa1\x6d\x78\x6d\xd3\xd4\x83\x36\x6a\xad\x66\x89\x1f\xd9\x71\xea\xff\x94\xca\xfc\x9f\x56\x2c\x3c\x2a\xdc\x27\x0b\xc1\x0b\xb3\xf8\x5f\x74\x66\xda\xc1\x52\x3c\x0e\x74\xbc\x69\x01\x55\x65\x3a\x31\x76\xf6\xe4\x6c\xca\x7e\xa4\x97\x30\x4d\xc7\xbd\x08\x7c\xf2\x2f\x42\x6e\x34\x9c\xe2\xb9\x2c\x28\x3b\xa4\x05\xdc\xfb\xd7\x5d\xcc\x4c\xe9\xbd\xa0\x49\x44\xbc\xd3\x8a\x4b\x6b\xea\xfd\xaf\xa8\xd5\x78\x4d\xe7\x09\xfc\x1e\x86\x1c\xcf\xce\x42\x65\xe4\x7d\x9c\xb0\x52\x39\x7c\x0e\xc7\x4e\x50\x43\x9f\x64\x94\x89\xf1\xc4\x2c\x2b\x62\xf0\x27\xfb\xf2\x75\x04\x57\xc1\x6a\x69\xb4\xd0\xec\x4c\x40\x4d\x87\x28\x8a\x21\xa0\x24\x3c\x4e\x94\x12\xf9\x63\x0a\xc5\x7b\x99\x91\x7d\x8a\x4e\xab\xf4\x89\x0b\x26\x0b\x94\x63\xc4\x4d\x97\x70\x82\xfc\xbc\x38\x01\x33\x4d\x56\x31\xd4\x10\xc7\x61\xa6\xc9\xaa\xaf\xad\x6d\x4e\xbe\xb4\x93\x2c\xcb\x30\x27\x3a\x16\x58\xeb\x0a\xeb\x32\x60\xc9\x03\x17\x7e\xe8\x4f\x0e\xb8\x24\xc9\xb8\xc0\x55\x5d\xd7\xaa\xd6\x54\x33\xe6\xe9\x05\xb9\x40\xf5\xc4\x27\x3d\xd0\x00\xf4\xa1\xe5\x17\x42\xad\x44\xb9\x9f\x38\x24\xa2\x40\x2b\xbe\x5f\x1c\x9e\xfe\xed\xf0\xf2\xd0\xd2\xd5\x3b\xca\xc3\x3a\x2d\x9d\x6a\xe8\x48\x4f\x9e\x46\x4b\x3b\x34\x40\x2a\xc2\x8e\xe1\x8a\x61\x90\x4f\xcf\x23\x1b\x0b\x06\x8f\x44\xa3\x23\x19\x74\x71\xe3\xb4\x34\xa1\xe6\x53\x9e\xe0\xd2\x87\x94\xb5\x6e\x0a\x63\x8f\xa3\x1e\x55\x14\x07\xda\x17\x83\x37\x92\xc4\xe6\xde\xf9\xf6\x6f\x25\x9c\x9e\xd1\x71\xe7\xa8\x2b\xcb\xac\x16\xf6\x2c\x69\x19\x91\x8a\x90\x51\xec\xe9\x89\xf7\x83\x03\xca\x8b\xdf\x06\x92\x2d\xe0\x10\x7a\xa4\xeb\xbf\x1a\xdc\x04\xa2\xd2\x36\x4e\x42\xd6\x6f\x04\x96\x77\x21\xfe\x02\xcf\x70\x78\x43\x0b\x77\x84\xc9\x17\x2d\x11\xa2\x5a\x12\xb5\xbc\xb9\x11\x35\x10\xb6\x85\x95\x22\x83\xa1\x47\x3e\x36\xcb\x46\x8f\xed\x70\x22\xf9\x68\xa9\x94\x65\x53\x18\x59\x15\x9e\xe3\x9a\xfd\x55\x17\xea\xfe\xd3\x6d\x65\x06\x83\x04\x55\xa9\x8c\x2a\x65\xc6\xed\x49\x10\xe6\xcb\x75\xb4\x12\xa2\xbd\xf5\x4f\xf5\x72\x0c\xf5\x02\xd0\x5a\x44\x59\x36\xda\xf8\x50\x6a\xc6\x6f\xec\xe6\x85\xf3\x71\x00\x14\xcd\x25\x25\xce\x5c\xd5\x81\x32\xa2\xb4\x04\xcd\xa3\x4b\x16\x92\x60\x4b\x2b\xcd\x78\xb9\x96\x5a\xfe\xf8\x06\xe3\x4d\x7d\x0e\x31\xa6\x91\xe2\xd4\xfd\xd4\xd0\x0d\x7f\x27\xea\x15\x5c\xce\xd0\xea\x0c\x54\xd3\x13\xb6\x14\x1c\x62\x97\x9b\xca\x28\xf6\x85\x9b\xc7\x41\x17\x4f\x2d\x78\x2e\xe3\xd5\x03\xf2\x26\x4b\x69\x24\x2f\xac\x26\xe1\xab\xd1\x4b\xc4\x47\xde\x44\x00\xe3\x78\xef\x19\xde\x06\xaf\xa8\xd6\x13\x45\xb6\x45\x23\x61\xd5\x01\x08\xbf\x77\x3c\xdb\x4b\xcb\x62\xad\x26\x08\xa7\x9d\xcb\x9b\xa6\x0e\x6a\x3e\x1d\x36\xba\x56\xf3\xe8\x07\x13\x61\xca\x2e\x81\x29\xce\x6d\x7b\x8d\xf5\xf2\x2c\xd3\xac\x56\x56\xcb\x8a\xd7\x3e\x4e\x2a\x01\x9c\x4a\xbd\xcb\xac\x42\x1a\x60\x70\x52\x28\x0e\x18\x95\xd8\x8a\x21\x1c\x95\xd7\xdb\x9e\x89\x7b\x19\x0c\x44\xc6\xf4\x05\xc7\x6b\xe1\x7c\x16\x7e\xb6\x07\x66\x2c\x71\x71\x0d\x2a\x99\x2a\x35\xb8\xf0\x4d\x54\x0a\x81\xf2\xcd\x53\x0d\x3b\xe9\x71\xca\x47\xe9\xe3\x3c\x5f\x4d\xa2\xbf\x29\xd3\x2a\x52\x57\x91\xb2\x77\xee\xd6\x83\x1e\x89\xaf\x5d\x78\xdf\x25\x86\xf7\x4d\x2c\x12\xcf\xf5\xcf\x5a\xd4\xdf\x7c\xf9\xc5\x17\x9f\x7d\x3e\xc0\xbe\xf6\x77\x54\xfc\xc4\x45\xcc\x75\x02\xe7\x3d\xd4\xe4\x10\xd0\xb4\x4b\x48\xc0\xbb\x8d\xcc\x19\x8c\xbd\x57\x78\xda\xd9\x65\x9c\x8a\x91\x6c\x78\x01\x19\x05\x2f\xb3\xd9\x8a\x55\x5c\xc3\x26\x1b\x06\x77\x39\x50\x4d\xc9\xb8\x66\x4d\x59\xd5\xf2\x4e\x16\x22\xbf\x11\x90\x73\x59\xa7\x97\xc1\xb2\x64\xd7\x58\x9c\x49\xe4\xac\x5a\x40\x94\x44\x5a\xa2\xc2\x85\x48\xb9\xfb\x21\x0a\x93\xe2\x7a\x30\x52\xaa\x13\x91\xe8\x05\x44\xb3\x9f\x5f\xbd\x60\x4f\xd8\xf7\xaf\x5e\x6c\x53\xa0\xc2\x05\x73\xbe\xa7\x60\xce\xcd\xd2\x40\x93\xbe\x11\x39\x06\xaf\x4d\x77\x95\x07\x1f\x2d\x1b\x20\xae\x17\x85\x98\xe6\x37\x2e\x81\x06\x03\xe8\xf6\x13\x0b\xb7\xd4\xbb\x65\x55\xca\x74\xc4\xa5\xca\x85\x15\x0d\x2d\x0c\x5d\xca\xe5\x67\x67\xda\x4f\x95\x66\x8a\x8b\x3e\x7c\x45\x22\xc5\x35\x22\xbb\x83\x94\x50\xd9\x8a\x24\x98\xae\x47\x4a\x24\xc8\x83\x66\x1c\x9f\x9c\x93\x92\xf7\xee\xee\xe3\x0a\x46\xdd\x8a\xfe\xc5\x58\xdc\x43\x09\x49\x3f\x74\x8c\x52\x09\x05\x4c\x7a\x74\xc7\x7d\x2d\x0d\xdc\x60\xd6\x4a\x99\x39\x65\x28\xae\xc3\x75\xa7\x8b\x88\x54\xb5\x84\xfd\x9f\x04\x69\xcd\x14\x7c\x0c\x2c\x5e\xed\xff\x9a\x46\x39\x87\xd0\x92\xa2\x50\xf7\x64\xb8\x0e\xca\x0f\x06\xd0\x1f\x93\xc9\x80\x86\x97\xed\x97\x3a\xe3\x05\xe0\xb9\x25\x9b\xef\x13\x36\xb7\xa3\x84\x9f\x0f\x0c\x12\x73\xdb\x2a\x41\x8c\xca\xf2\xeb\x93\x09\xff\xe6\x68\xdd\x30\x22\x08\xc0\x6e\x1b\xc0\x4e\x17\xbf\x33\x44\x83\x28\x9a\xd9\xeb\x69\x78\x37\x44\xd5\xf4\xa1\xea\x79\x3d\x65\xcf\xd3\x6c\xc1\x8e\x1d\xb9\x96\xf8\xfe\xc6\x9a\xb3\x1b\x7b\x54\x81\x8d\xeb\xaf\x4f\x2f\x2e\x2e\x3e\xa5\xeb\x59\xca\xdb\xba\x18\xaa\xd5\x54\x37\xe5\x24\x29\x28\x86\xce\x3e\x4c\x6b\x1a\xbc\xef\xa2\xe7\x58\xce\x26\x35\xe0\x6a\x4e\xa2\xef\x11\xc2\xad\x6e\x2a\xa6\xf6\x8f\x6f\x2c\x72\x43\x9b\xe2\x88\xb8\x61\x47\x65\x8a\x09\x1d\xde\x11\x27\x4c\xd5\xbd\xc4\x3f\xa4\x46\x7c\xd9\x17\x83\x32\xb1\x74\xe2\xa5\x1e\xbe\xae\xff\x85\x5e\x65\x2f\xdd\x8b\x69\xd0\xa1\x35\xf8\x95\xc6\x14\xc1\x3b\x0b\x58\x43\xee\x1e\x2b\x05\xca\x95\xff\x75\x7f\x0b\xb7\x37\x8a\x66\xda\x3f\x31\x96\x8b\xb9\x2c\x93\xd8\xb6\xaa\x16\x77\x52\x35\xba\x58\xb9\x87\x03\x71\x39\x20\x4a\x40\x17\x50\x90\x3b\xc6\x4a\x78\xc2\x8e\x64\x84\x2f\x52\x41\x05\x2a\xf6\xe6\x8c\x6e\x66\xda\x48\xd3\x80\x0e\x43\xec\x31\x73\xaa\xb3\x84\xa0\xcc\xc6\x91\xf8\xd3\xaa\x43\xd8\x9e\xa5\x4e\x83\x0f\x97\x51\x89\xc3\xee\xbb\x51\x90\xe2\x7a\x16\x86\xaa\x47\x0f\xc6\xc6\xd3\x71\xcf\x8d\x78\x5a\x06\x86\xfa\xd6\x43\x6c\x1b\xcb\xac\x16\xa3\x9c\xa7\xe1\xa0\xcc\xfa\x45\x15\xcd\x52\x5c\x37\xb3\x8a\x9b\xc5\xcb\xf2\xce\x13\x7d\x62\x09\x0d\x95\x0f\x8f\xc6\xb0\x3b\x18\x9b\x36\x01\x1c\xeb\x37\x2d\x6f\xce\xb5\x51\x35\xbf\xd9\xc8\xa6\x9f\xf8\xad\x60\xe0\xf7\xe2\x49\xbc\x80\x83\x95\xf1\x12\x13\x69\x0d\x51\x9c\x97\x61\x2e\x4c\xcd\x87\x43\xdd\xb6\x08\x4d\xda\x87\xb0\x68\x1b\xcc\xb4\x2a\xa0\x44\xfb\x70\xd5\xcc\x61\x0a\x83\x0f\x73\x1b\x02\x77\xc7\x4c\x69\xfe\xdb\x75\xa1\xee\x0f\x41\x79\x72\xe4\x0d\x52\xdf\xed\x81\x3d\x62\x8f\x05\x16\x12\x1c\xa5\x06\x3b\xa1\xe8\xa9\xcb\x76\x4c\xe6\xcc\x78\x76\x6b\x64\x76\x3b\x14\xab\x73\x68\xc6\xf8\xf1\x1e\x29\x53\x02\x7e\x50\xcb\xe6\xb4\x1c\xc1\xea\x98\xf6\x98\xb5\x3d\x3b\xa8\xda\xb6\xa5\xbe\x85\x60\xa7\x4e\x60\x81\x23\x69\xf0\xd2\xf6\xb4\xff\xe4\x17\x57\x13\x12\x8a\xc7\x76\x34\xa7\xd3\x45\x50\x2c\xcb\xa7\xcc\xba\x14\x39\xa3\x3c\x32\x78\x96\x7c\x3a\xfd\x1f\x03\x81\x82\xee\x77\xf1\xa1\xaa\x19\xdd\x47\xc5\xee\x0e\x67\x33\x3f\x9b\xfe\x8f\x01\xf2\xcc\x55\xcd\x92\x2f\x03\xc1\x18\xfb\x6c\xfa\x3f\x26\xca\x11\x4a\x74\x21\xf8\x96\xa3\xc1\xa4\x2e\xcf\x0c\xf4\x45\x90\x35\x45\x3e\xa3\xd0\xb2\xac\x10\xbc\x6c\xaa\x4e\x5e\xcf\x71\x98\x8e\x6e\x61\x2c\xef\x8d\x09\xf5\x70\x56\xde\x5a\x00\xee\x12\x06\xb9\xea\xda\x7d\x5b\x1c\x73\xcc\x5a\xaa\x1c\x3d\xed\x79\x38\x42\x86\xae\x0f\x69\xd0\xdb\x0e\x32\xf3\xcb\x38\x8c\xd6\x60\x43\xb7\xcd\xfd\x18\x1d\x62\x51\x5a\xfb\x07\x92\x48\xf4\xc4\x11\x10\xfe\x44\x7e\x5c\x63\xba\x3b\x55\x4d\xa6\x04\xd2\x01\xc6\x00\x79\x4a\x95\x8b\xdf\xd9\x4b\x00\x18\x27\xfd\x58\x88\xb3\x95\xcb\x72\xd6\xa1\x9c\x95\x1b\x00\x6d\xf1\x99\x6a\x0c\xc6\x1f\xc7\x89\xf6\x65\xee\x57\xc1\x16\x66\xdd\x84\x2d\xbd\xba\xf4\xdd\x37\xec\x74\x89\xda\x94\x00\x14\xa5\x26\xc3\xc4\x29\xb9\xaa\x95\x37\x73\x2b\xcb\xfc\x1b\xfb\xb1\x47\x5c\x35\x75\x26\xa0\x8a\xf2\x42\x04\x3a\x51\xfe\x1e\xad\x36\x24\x6c\x30\xc8\x67\x22\xa9\xfd\xd4\x1e\x3a\x1d\x76\xfd\x90\x00\xd4\x67\xf4\x76\x07\x1d\x18\xf0\x5b\x65\x16\xfd\x5c\x0d\xf7\x52\x5a\x94\x4e\x26\xba\x45\x0f\x22\x5e\x60\x84\xf4\x66\xfb\xd4\xca\xc4\x13\x84\xd7\x27\x7d\x2f\xef\x24\x35\x86\x79\xa7\x0a\xe7\x5a\x2b\xe4\x52\x0e\x86\xcf\x46\x92\xf6\x5a\xbd\xc4\x12\x2b\xef\xb8\x2c\x29\xc1\xbe\x66\x3f\xb9\x1b\x7e\x08\xb4\xfd\xed\x5a\xd4\x92\x17\xbf\x33\x61\x47\xa2\xdb\x3c\xfb\x00\xf6\xe3\xa5\x2c\xc3\xb8\x2e\x6f\xf0\xb7\x17\x52\xd7\x4d\x65\xe4\xdd\xe6\x72\xca\x76\xb3\x87\x90\x82\x73\x12\x5c\x51\xf2\x5a\x2a\x4a\xfb\x69\x83\x9e\xb8\x74\xa2\xc0\x21\x40\x8b\x4e\xeb\x5c\xb3\x8a\xae\x01\xc3\xa7\x78\xc1\x08\x24\xe9\x2c\xf9\x2f\x07\xe8\x6d\x35\x44\x97\xde\x40\xa5\x49\x42\x76\xb8\xed\xb4\x3f\x63\x2e\x1e\x2f\x76\x25\xfa\xb5\x2c\x6f\x90\xe4\x81\xe2\x00\xd2\x9f\x95\x60\x94\xcc\x92\xb1\xd0\x38\x6b\x3b\xfe\x16\xb4\x4e\x12\xe2\x5b\xf4\xb1\x9a\xc3\x69\x93\x1c\xcb\x83\xc1\x80\x22\x67\xf6\x6c\xe8\x43\xe0\xdc\x65\x24\x51\xdd\x25\xf0\x21\x72\x50\x0b\x09\x33\x12\x5d\x13\xa2\x16\x17\x44\x99\x77\xcf\x0e\xdb\x31\x01\xc3\xc5\xff\xf9\xe6\x7a\x33\xa5\x41\x7e\x5f\x7e\x30\xa2\xcc\x45\xce\xd2\xf8\xf1\x6b\x61\x2c\x10\x76\x59\x70\x9d\x54\xe0\x22\xeb\x4f\x95\xf8\x1e\x4a\xb9\xab\x65\x55\x0b\x52\x23\xae\x1f\x12\xa5\x42\xdb\xe5\x06\x6a\x67\x29\x96\xaa\xa6\x9c\x86\xaa\xd9\xfa\x18\x7d\x79\xf5\x33\x26\x8c\x20\x18\x1a\x25\x1a\xa4\x93\x52\x81\x31\x2a\xfc\x4e\xd8\xd9\xd0\x64\xb0\x06\xc4\x95\xca\xff\xf9\xe6\xfa\xfb\x86\xd7\xbc\x34\x62\x54\xb9\x66\x20\xfb\xe6\x9c\x38\xbf\x85\x3e\x71\xf4\xd0\x3d\x2c\xf2\x1d\xb5\x86\xdb\x78\xc5\xbc\xaa\xc5\xb5\x7d\xdb\xa5\xbf\xf1\xa2\xf0\x10\x40\x8d\xde\xca\xa2\x08\x37\x27\x5b\xa6\xb7\x55\xf1\x55\xb7\x36\x71\xd0\x37\x98\x7f\x67\xb8\xc7\x61\x82\xa2\xa6\xdb\x86\xb7\x22\x13\xf2\x8e\x54\xcb\x5c\x8a\x22\xde\xed\xa2\xcb\xf3\x56\xa3\x2f\x04\x05\x9d\x17\x7d\xcd\x17\x57\xd6\x8d\x46\x55\x21\x1d\x35\x64\xca\x4d\x13\x83\x27\x49\x7f\x0c\x23\x28\x75\x1b\x67\xca\x46\xc9\xe9\xfe\x42\xde\x27\x4c\x26\x5f\x4d\xd9\xb7\xa1\x2f\x18\xdd\xdb\xfb\xcc\xda\x4e\xab\xb2\xb8\x24\x01\x25\xfd\xdd\x53\xc7\x0f\xf2\xdb\xf7\x63\xdb\xca\x7b\xe2\xc8\x47\x70\xa1\x25\xc2\x00\x97\xc2\x60\x30\x49\xcc\x80\x82\x68\x1d\x67\x43\x92\x78\xd7\x44\x7f\x17\x51\x12\x91\x6a\xac\x28\xd7\xe2\xbd\x1d\xb6\xad\x43\x9e\xe7\x4b\xa9\xc1\x76\xbc\x17\x33\x8b\xd2\x04\xeb\x04\x2c\x1b\x83\xf7\x36\xf4\x73\x7b\x0b\xb5\xe2\xca\x2b\x79\xbe\xe4\x56\x1d\x88\x7a\xf5\x7b\x00\xf5\x2b\x7e\xc2\x7e\x0b\xf7\xa3\x5f\x5f\x62\xb2\xa2\x7d\xa7\xfc\x1d\x86\x70\xda\xbc\x33\x92\x13\x7c\xa8\xe2\x32\x4a\xb8\x9f\x5e\x74\xa0\x78\xfe\x80\xca\xd5\x70\xa9\x95\xa4\xb5\x4d\xd9\x73\x63\xc4\xb2\x32\xae\xc6\x10\x4c\xdb\x12\xb7\x1f\x42\xd0\x7c\x3e\xdf\xf6\x1f\x00\x14\x6e\x58\x5c\x9c\x01\x7e\xea\x6a\xbc\xc4\x9f\xbb\x4d\xda\xb2\x1f\x52\xad\x69\x78\x88\xf7\x71\xb5\x26\xa8\x4e\xc8\x3f\x30\xf9\x1a\xfe\x9d\x08\x20\xcc\x12\xfa\x0e\x84\x8f\x71\x9f\xd9\x0e\xf3\x50\x31\x07\x65\x34\x2a\x40\x81\x84\xea\x07\xe4\xe6\xe0\x0a\xa0\x75\xe7\x40\xf7\x53\x83\xf3\xa0\x0a\xe0\x6e\x1e\x23\xf6\x3f\x5e\x49\x2f\x63\x4f\x08\xaf\xb1\x42\x4c\x8d\xf3\x4e\x22\xc6\x3d\x63\xed\x24\xc8\x5d\x38\x7f\x00\x51\xa6\x5f\x63\x51\xce\x45\x29\x0f\x25\xc9\x5d\x29\x46\x39\xdc\x47\x92\xfb\xa7\x10\x8e\x60\x24\xc9\x34\x8d\xe3\x09\x32\x15\xe8\x69\xeb\xb7\x83\xca\x71\x45\x64\x7d\x02\x83\x85\x96\x9b\x1d\xa5\x3a\x5e\xa0\xdf\x8a\x1b\x09\xd9\xe9\x11\x14\xde\x9e\x5d\xca\x95\xa4\x4e\x42\x2c\x7e\x46\xe1\x35\x7b\x55\x15\x2b\x67\x47\x10\x93\x42\x0c\x05\xd6\x34\xdf\xc0\xc4\x18\xaa\xe7\x22\x2a\xa3\x48\x55\xc5\x15\x8b\x1c\xa6\x46\xad\x1f\x1f\x29\x86\x01\xc2\x5b\x60\x42\x37\xee\x1d\x0c\x8e\x2e\x4f\x5d\x35\x73\x12\x89\xea\xd1\x6e\x3b\xc9\x54\x04\xe7\x91\x4a\x55\x2e\xca\x55\x04\x73\x17\x99\x42\x79\x0a\x21\x1f\x5b\xc9\x54\x7b\xfc\xe3\x49\x14\x8c\xc4\x8d\xe1\x59\xfb\x4e\x6a\x3f\x19\x4a\x4f\xa2\xdc\x97\x80\xf5\xa3\x51\x74\xde\x68\xa9\x29\x37\xc9\x0a\x5a\xf0\xa0\xd2\x21\x30\xa7\xb4\xbb\x89\x73\x3a\x28\x3c\x6f\x9d\x69\x1a\x9d\xe9\x66\x76\xee\x4e\x7d\x7e\x03\x81\x83\x0e\xbd\x10\x36\x99\x23\xef\x11\x40\x13\x6a\x93\xe6\xcf\xe5\x51\x01\xb3\xde\x92\xbd\x47\x63\x4e\x2f\x22\xe0\x97\x8b\x8a\xcd\xf9\xca\x45\x47\x62\x5e\x6b\x4c\xbf\x88\xfc\xb8\x6a\xde\x46\x54\xa7\x4c\x44\xfa\x75\x91\x16\xf4\x9d\x4b\x43\xc2\x6f\x4f\xcd\x6c\x67\x8d\x9c\x84\xa3\x15\x39\x8f\x91\xde\x4b\x5e\x79\xfa\x1e\x9a\x7d\xf6\x25\xa3\xbb\x03\x52\x9f\xee\x0e\x7b\xa0\xaf\x5b\xa6\x96\x55\x21\x79\x49\x1e\xff\xe4\x43\x0d\x61\x61\xc8\x43\xac\x50\xc4\xfc\xeb\xc1\x81\x9b\x7e\x42\xd5\xde\x52\xd0\x2d\xfe\xb2\xe7\x65\x9f\x42\x76\x20\xc9\x89\xc2\x21\xf5\x8e\xc7\x1a\x7f\xc1\xcb\x9b\x76\x7e\x53\xf4\x02\x39\x20\x21\x19\x68\xe2\x5b\xf8\xb8\xca\x51\x9e\xec\xe3\xb0\x69\x4d\xc1\xcf\x90\xb2\x64\xec\xb8\x0b\x69\x04\x55\x5f\xb1\x62\xa4\x2b\x9e\x09\x36\xe3\x3a\xf8\x1a\x1c\x6a\xe1\x71\xa7\xd6\x15\xc5\xad\x9e\x5a\xc3\x41\x40\x8c\xec\xa9\x92\x73\xb0\x85\x40\x6b\x2d\xdf\x5e\xde\x03\x47\x63\xad\x34\x38\x01\x6f\x25\xb4\x4e\x72\x9e\x93\xc3\x9f\x26\x27\x2c\xe7\x26\x3d\x99\x36\x5a\xa8\x52\xd5\x4e\x6c\x8f\xc5\x86\x64\x90\x0d\x2c\xf8\x19\x63\x15\x52\xfa\xdf\x73\xab\x55\xbe\xf0\x49\x75\xe4\x93\x07\x6d\x03\x46\x24\x9a\x51\x10\x79\x46\x6e\x3d\xbf\xee\x1c\x20\xd7\x09\x62\x46\x9d\x4d\xa1\x8d\x03\xe1\xa4\x7d\x57\x98\x06\xca\x44\x41\x53\x15\x8a\xbb\x8a\x8e\x96\x78\x98\x8e\x32\x11\xe6\xf2\x86\x59\x75\x8a\x81\x63\x3c\x4b\x06\x98\xb2\xb7\xce\xb5\x8e\xa5\x18\x69\xfe\x74\xd1\x10\x1c\x90\xae\x94\x4b\xa2\x41\xa4\x66\x85\xd0\xda\xce\xbf\x8c\x66\xde\x83\xa7\xd4\x94\x8d\xeb\x87\xf3\x69\x8f\xd6\x40\x6e\x0d\xdb\xfd\x58\xde\x94\xaa\x16\x6d\x6c\xad\x0d\x1c\x7d\xba\x19\xdb\x28\xe7\xf1\xaf\xcb\x26\x5b\xb0\x42\x95\x37\xd8\xc9\x34\x55\x44\x96\x99\x2c\xa7\x6d\xe3\xd3\x63\x2a\x1d\xa9\x33\x75\x27\xea\x15\xcb\x55\xd6\x50\xe8\xd7\x51\x04\x5c\x96\x59\xd1\xe4\x61\x8a\xc1\xac\x90\x65\x0f\x1a\x9b\xea\x7a\xbd\x5b\x88\xb0\xdd\xd6\xa0\x93\xe8\x30\x84\xd7\x0d\x50\xd2\xf8\xa6\x56\x4d\xe5\xc2\x06\xa5\x0e\x9d\xf0\x2c\xb9\xf0\x72\xb3\x3b\xf2\x74\x23\xec\x27\x77\x4f\x03\xf8\x27\x77\xa2\xd6\x6e\xbf\xc2\x80\xa1\xee\x50\x83\xc3\x38\xc7\x01\x51\xa5\xe5\xc2\x71\x7b\x63\x38\x0a\xf6\xbf\xd7\x32\xd1\x00\x81\x64\xfc\x27\x1b\xa6\x33\x44\x8a\xe3\x09\x9e\xaa\x73\x51\x8b\x9c\x08\x70\xbc\xed\x8d\xfc\x0e\xc1\xac\xdb\xde\xa7\xd3\x6f\xcb\xe1\xc5\xcb\xbd\x0a\xae\xd0\x60\xdd\x45\x1e\x45\xb2\xcf\x4a\xd7\x49\x29\xb7\x0a\x8a\xe5\xdc\x70\x76\x2b\x56\xa9\xa2\xb3\xe8\xf1\x02\x43\x7c\x16\xd0\x07\xdb\x67\x3e\xdd\x8a\xd5\x24\x9c\x92\x4b\x65\x16\xd4\x00\xd9\x41\x8c\x80\xd9\x7f\xf2\x3c\x0f\xc5\xcc\xe7\xb2\xd6\xc6\x4f\x43\x6a\xef\xd5\x8c\x2d\xce\x74\x2b\xf6\x7a\xfb\x1f\x58\xe9\xf9\x56\xac\xa2\x30\x09\x00\xee\x4e\xf4\xfe\xd5\x23\x4a\x8b\xe3\x62\x6a\x21\x1c\x5b\x66\x5a\xf6\xc8\x6e\x76\x11\x02\xd3\x5d\xfb\x66\xe8\x6a\xa1\x3d\x6c\xe2\xa1\x6d\x3d\x73\x1c\x39\xfe\x65\xc3\x00\x4d\xd0\x35\x2d\xe7\x73\x51\x43\x50\x8e\x51\x76\x51\x93\x4a\x3c\x31\x7f\xd6\xe2\xb2\x27\xf7\xda\xe7\x68\xe6\xed\x59\x6c\xbb\x0e\x87\x2f\x5c\x4f\x11\xa8\x35\xc6\x30\xc6\x9b\xde\x3d\x85\xc2\xba\x09\xa6\xd1\xb5\x73\xcf\x29\x3c\x76\xb2\xad\x01\x4f\xdd\xe1\xef\x9e\x59\xf8\x78\xcb\x9a\x8c\xd1\x5e\xf9\xd5\x20\x50\xba\x85\x29\xc5\x3d\xde\x8a\xc3\x7c\xc1\xee\x43\x91\xac\x7c\xed\x65\x7f\xae\xc6\x30\xd8\xb4\xad\xfe\xc3\x48\x66\x55\x37\x25\x7a\xb7\x4e\x2e\x88\x34\xf4\x58\xb9\xeb\x5e\x11\x07\xed\x0e\x74\x47\x8f\x00\x8e\x44\xa6\xfc\xd4\x7f\x4e\xae\xe7\x35\x02\x41\x6c\xd4\xd9\x42\x2c\x39\x55\x78\x40\x8b\x4c\x87\xd6\x44\x14\x15\x67\x77\x27\x2c\x32\x62\xb5\x7e\xb2\x95\x38\xec\x12\xe5\xd5\x19\xf8\x1f\xb4\xed\x00\xda\x34\x8c\xb3\x02\x7d\x28\xe3\x92\xb7\x6f\xd9\xd0\x72\x07\x21\xb3\x56\xb9\xfb\xb0\xef\x23\xbc\x9a\xa2\x14\x10\xbf\x99\x1d\x53\xc2\x3c\x11\xa9\xb9\xd9\xf1\xc5\xca\x79\x88\xd0\x81\xee\xdb\x1f\x63\xf1\x0b\x8f\xd3\xee\xf6\x4c\x64\x3e\x94\xad\xfe\x93\x56\x23\xa8\x5c\x0f\x9f\xd5\x2b\x95\x23\x93\xd3\xef\x5a\x16\xc2\x42\xb0\x77\x54\x5c\x5f\xaa\x92\xaa\x5e\x5e\x85\x2e\x8e\xe1\x08\x0f\x73\x3b\xea\x06\x16\x7c\x73\x99\x2a\x4d\xad\x8a\x90\xd7\x8a\x8e\xa0\x5e\x33\x0f\x33\x47\x71\xb9\x1d\x8b\xdd\x94\x85\xe0\xdc\x91\xc4\x7d\xc8\xf4\xc4\x50\xd7\xd8\xa1\xdb\x6f\x8c\x12\x86\x63\x85\x21\xd5\x31\x34\x20\x7a\x7f\xcb\xd5\xe6\xe1\x62\xa2\xf4\x5f\x2b\x47\x15\x9b\xd7\x21\x4c\xc6\xa5\xbf\x0d\x6a\x85\xff\x46\xa9\xe2\x83\x17\xe6\x6b\x42\x2f\x52\x85\x75\x3c\xc9\x82\xdc\x96\xac\x50\x5a\xb4\x9b\xbb\x1e\x4c\x44\x9a\x32\x53\x65\x0e\x9a\x1c\x6a\x67\xd5\x02\x26\x1d\x08\x67\x05\x38\xc2\xc3\xd3\x6a\x6b\xab\x87\xf6\x89\x18\x96\x6b\xa0\x5b\xe6\xbe\xbd\xfb\xe5\x73\x36\x6b\xca\x9c\x5a\x06\x6a\x45\x1b\x8a\xa1\x16\x48\x96\x09\x18\x48\x16\xc4\x23\xc2\x15\x5e\xa6\x5c\x0a\xcc\x44\x6f\x13\x35\x04\x37\x1c\xc7\xcb\xc7\x6f\x6e\x6a\x71\xc3\x8d\xaa\xcf\x29\xdf\x5a\x9f\x9b\x85\x38\xd7\x7c\x59\x15\xc2\xf2\x0c\xc3\xcf\x46\xf0\xd3\x43\x62\xd7\xa1\x81\x12\x2d\x65\x97\xcb\x6d\xe7\xf8\x74\xfa\xf4\x2b\x76\x0d\xf0\xd1\xf8\xba\x7a\x05\x95\xf6\x45\x1d\x25\x40\x62\xff\x5b\x13\x43\x1d\xdf\xa5\x17\xf6\xc8\xd6\x04\x00\x7d\xcc\x4f\x00\x04\xf0\x16\x60\x59\x41\xea\x08\xdc\xbd\x92\x1b\x0c\x9e\x42\x81\x33\xb8\xa5\x26\xc7\x78\x17\x9f\x27\xcf\xaf\x5e\x9d\x23\xde\x1d\x66\xf4\xb4\xb2\x49\x98\x11\xa8\xde\xe6\xc7\x25\xda\x0f\x6f\x9d\xe1\xf2\x22\x18\x2e\x97\xaa\x74\x26\xfc\xaf\x6e\xc5\x65\xf0\x9b\x61\x4b\xf9\x21\xb2\xf0\x0b\xa9\x47\x78\xaf\x70\x28\x37\x52\x80\xbe\x71\x3d\xc6\x55\x1b\x22\x1e\x3b\x5c\xe0\x26\x82\x2d\xd4\x52\xdd\x88\x52\xa8\x46\x63\x88\x92\x9a\xb3\xcb\xb7\xa3\x15\x33\x27\x70\xc9\x1d\x12\xc5\x56\x0e\xda\x76\xad\xfe\x4f\xed\x17\xc9\xf2\xe7\xc6\xf2\x88\x5d\x86\xae\x1c\x6b\xac\x45\xca\xdc\x71\xdb\xfe\xdd\xb3\xce\xa1\xa4\x17\xfe\xb3\x64\x37\xf0\x21\x5a\xed\xc3\x13\x22\x6a\xdf\xff\x07\x65\x11\x69\xe3\xae\x8a\x60\xbd\xbb\x76\x18\xb0\x3b\x74\x8e\x5e\x38\xd2\xb6\x9a\x20\xab\xf3\xf7\x81\xb8\xef\x07\x14\xc3\x4e\x82\x88\x56\xc5\xb6\xbe\x89\x63\x09\x22\x2c\xf6\xcb\xb7\xf6\x6c\x69\x14\xfc\xe3\xd9\x29\xc5\xef\xee\xe9\xa0\xa3\x43\x63\x04\x1c\xcf\xed\x4e\x01\x5c\x44\x76\x53\x36\xe2\xc9\x59\x3a\xc1\xc6\x41\xdb\xb2\x2a\x92\x89\x5f\xe1\xf0\xbb\x9e\x53\x1b\x3e\xc6\xde\x45\x5d\x01\x8a\x97\xe3\x38\xf3\xce\xaf\xd0\xe1\x19\x27\xeb\x13\x47\x96\x2e\xb2\x86\x48\x41\xf6\x17\x35\x58\xf2\x21\x02\x90\x6f\xb7\x8a\x4d\x3b\xca\x52\xda\x85\x69\x30\xd6\x36\x7c\x1a\x1b\x0b\x30\x48\xeb\xa0\x3d\xd6\x33\xeb\x5a\xda\xfd\x73\x18\x8e\xab\xf5\xf3\x04\x8d\xe4\xf2\x66\x04\xdb\xf0\x36\x48\xd5\xb7\x7a\x74\x22\x83\x35\x0e\xc4\x07\x23\x28\xe5\xb1\x90\xee\x74\x8c\x05\x12\x18\x67\x35\x2f\x73\xb5\x5c\xb7\x2c\x51\xf8\x10\xe2\x06\x75\x4f\x16\xb6\xeb\xbe\xc5\x24\xdd\x4e\xf8\x2b\xe1\x38\xac\x24\xb1\xd1\xb7\x6a\xc3\x94\xca\x01\xa0\xf3\xde\xa1\xf3\x3e\xc2\x7c\x0b\xc1\xa0\xe4\x81\x38\x4e\xe9\x11\x48\xc9\x0d\xd6\x55\xf3\x91\x81\x4f\x5c\xac\xe0\xfa\xfb\x7d\xd6\x37\x9d\x2d\x25\x67\x9d\x9e\x4e\xe2\x90\x79\x9e\xc4\xfd\x54\x7e\xf9\x4b\xa3\xfb\xf0\xc0\xf0\x69\xef\x44\x48\x50\x8c\x6c\x7b\x27\x18\x77\x12\xfa\xc7\x39\x0b\x42\x37\x33\x2d\xfe\xdd\x08\x48\x9d\xe3\xe3\xd2\xc2\x8e\x20\x2e\xbb\x98\x88\x47\x90\x0f\x0a\xaa\x1f\xa3\xf2\xf7\xd7\x1b\x13\xa7\x34\x9e\x5e\x60\x3c\xb9\xc8\xd7\x0c\xac\xfd\x2d\x93\x33\xdf\x96\xae\x36\x42\xab\x61\xd1\x06\xdb\x2d\x6d\xd9\x49\xee\xbf\x35\xe3\x76\xbb\x88\xae\xc7\x93\xdd\x49\x1e\xa5\x77\xc4\x0d\x46\xd1\x89\xb9\x63\x73\xd1\x11\x98\x3e\x8c\xec\x6e\xe3\x77\xdc\x5b\x82\x7b\xa6\x4f\x83\x43\xe2\x63\x92\x10\x09\x06\x27\x9d\x18\x0e\xa6\xad\xbc\xab\x81\x46\xf6\x07\x90\xcb\xb7\xd0\x5b\x92\x58\x0f\xcf\xa8\xac\x2c\xcf\xad\xb5\xdb\x94\x06\x9b\xb0\xf8\xa7\x52\xbb\x2b\x89\x70\x8a\xa1\x1b\x54\x0b\xec\x2d\xa6\x64\xd0\xdb\x74\xcb\x9a\xe7\xfe\x73\x3b\x5f\xf7\x7e\xb8\x01\x49\x87\x0b\xb7\x23\x90\x13\x47\xde\x4c\xec\x3f\xa1\x8a\x14\x59\x6d\xf8\xaa\x2b\x43\x9b\xce\xce\x07\x92\x21\x77\xc5\x7f\x02\x11\xa2\x13\x8a\x8b\xfb\x58\xc3\xea\x3d\x43\x41\xbe\x13\xd6\x8e\x85\x38\x87\x89\x0b\x77\xa8\xa4\x57\x83\x9a\xc2\x1c\xb0\x33\xf5\xf0\xf3\xe1\x30\x08\x8d\x9f\x0a\xe7\x6b\x11\x2b\xe8\xec\x9d\x81\x38\x0e\x91\x69\xdd\x10\xd1\x59\xb6\x8e\xda\x6d\x9f\x50\xb1\xbc\xa9\x44\x69\x37\x8b\xab\x66\x56\x48\xbd\xb0\x86\x94\xaa\xb0\xc9\x64\x79\x33\xfe\xfe\x36\x9d\x3d\x01\x73\xb0\xd7\x8b\x07\x66\x42\xe9\x58\x0e\x50\x91\x54\x22\xc3\xf4\x53\x55\x0a\xef\xdb\xb9\x11\x46\x53\xc2\x6e\xee\xd2\x1a\x66\x94\x24\x3a\x3e\x3a\x7e\xe3\x05\x99\x6f\x77\x40\xe3\xea\xa9\xa3\x94\x5b\xc2\x7e\xfb\xf1\x77\x57\x38\x69\x2a\x0a\xb3\x76\x83\x8b\xb2\x34\x7a\x6e\x76\x5b\xd7\xb7\x50\x1d\x19\x8e\x60\xd1\xcd\x5c\x07\xad\x0e\x4a\xee\x12\xd6\xb5\x8b\x25\x48\x6e\x57\x8e\x80\xf8\x32\xef\xa5\x72\x71\x68\xd4\x53\x77\x97\x23\x1d\x91\xe1\xbd\xaa\x44\xc9\x2b\xb9\xb5\xfc\x39\xa4\x6a\x10\xb7\xa3\x4a\x1e\x92\x06\xaf\xc5\x03\xf7\xd6\xc8\x1d\xe2\x74\x4c\x31\xfb\xc7\x21\xc5\xec\x2d\xa0\x1b\x89\x0d\xc6\x90\xd1\x50\x4e\x94\xd6\xe0\x78\x27\x39\xe3\x78\x22\xf8\xc7\x7a\x41\xa3\x03\x04\x1c\x28\xe6\xd6\xfc\xa2\x66\x00\x16\x81\x07\x11\x23\x20\xef\x87\x73\xb8\x13\xae\xef\xc4\x79\x53\xde\x96\xea\xbe\x3c\xa7\xbb\x68\x6e\xa0\x7c\xf2\x51\xc5\x0b\x2d\x20\xcb\xa5\xcb\xb7\x2f\x18\x61\x02\x05\xd8\x11\x17\x16\x70\x89\x6e\xb5\x2d\x5a\x87\x13\xb0\x41\x0a\xf4\x5c\xc2\xdb\x91\x87\x6e\xf1\xf0\xea\x99\xbb\x5e\xce\x9d\x81\x27\xde\x0a\xbf\x6d\x66\x22\x33\xc5\x3f\xe8\xd0\x71\xae\x65\x1e\x32\xf0\x5c\x34\x3f\xcf\x32\x51\x19\x4f\x08\x2c\xde\x68\x64\x1c\x41\x4c\x70\x28\x90\xb2\x2a\xb8\x24\x7b\x3e\x2e\xdf\x0b\x8d\x55\xfb\x84\xf8\xbf\x5f\xbd\x7e\xf1\x18\xe5\x4e\x96\x4c\x2c\x67\x22\x77\x61\x10\x78\xba\x7b\x14\x62\x08\xd9\x9c\x1e\x3b\x77\x9d\x7a\x3a\x49\xec\x0e\xbe\xb3\x30\xa2\x9e\x93\xfc\x41\x84\x91\x9b\xbe\xb9\x06\xa8\x76\xa7\x6d\x42\xce\x09\xde\xfc\x0b\xc8\x4a\xc1\x6a\x23\x0f\x26\xb6\x11\x61\x50\x25\x9c\x50\x2e\xfb\x11\x38\x9c\xf8\x25\x69\xb4\x04\x9c\x7a\x9c\xb8\xac\x47\x35\x0f\xa9\x11\xbc\xae\xf9\x0a\x4f\xb5\x55\x2d\x97\xd2\xc8\x3b\x31\x18\xe2\x30\x20\x8f\xa9\x51\x47\x71\x7e\x50\x83\x30\x08\xc3\x64\xbc\x98\x56\x5c\xeb\x34\x5c\xaf\x15\x33\x41\xad\x45\x3a\x62\x9c\x5c\xd8\xfb\xca\x85\xe1\x39\xde\xb1\xaf\x1b\x9a\xa2\x0c\x40\xe0\xfd\x70\x9d\xd5\x91\xac\x0c\xa4\x68\xb4\x3a\xe8\x61\xaf\xb6\x5e\xb3\xe4\xfc\x77\xae\x06\xe1\xe0\xa7\xdd\x05\x19\x0f\x49\x2b\xac\x7b\x39\xc7\xe2\xd1\x1f\xe7\x8e\x71\xf2\x4d\xc2\x09\xcb\x11\xd7\xe3\x28\xc3\xc4\x1e\x45\x0b\x71\x27\x8a\x8f\x73\x43\x70\x67\x2d\xd2\x3d\xec\xc5\xcb\xeb\xcb\xb7\xaf\xae\xde\xbd\x7a\xf3\x9a\x69\xc3\xcb\xff\xe5\x0f\x73\xc2\xe2\x35\xb4\x35\x80\xac\x95\x11\xc1\x6c\x07\x11\x2b\x7f\xd2\xb9\x7c\xfb\x02\x8e\x1e\x21\x3e\x1b\xf1\x18\x1f\x1f\x4b\x80\xd6\xb9\x84\x75\xc5\xb1\xdc\x62\x7b\x14\xef\xd4\xee\x1c\xb8\xf6\x3c\x6c\x3d\x24\x23\x6f\x65\x99\x3f\x18\x1f\xb5\x3d\x62\x62\x7e\x55\x44\x57\x70\x78\x06\xe2\x03\x86\x07\xe5\xb0\x3b\xba\x24\xa3\xc7\xe7\x5b\xc0\xa0\x47\x0e\x00\x95\x2d\xb8\x7e\xf8\x4b\x80\x03\x72\xde\x49\xf1\x23\x60\x7e\xca\x70\xef\x64\xf8\x38\x5c\x25\x47\xe0\xe1\x0b\xe7\x3d\xa6\x3c\xdb\x1a\x3b\x5b\x5e\xd5\x62\x2e\xea\x5a\xe4\xbf\x90\x98\x5a\xd4\x20\x1b\x96\x57\x12\x49\xb9\x99\x99\x1e\xb6\xaf\xe2\x8c\x3b\xd8\x1a\xf0\x2e\xd4\xf0\x7b\x60\xd6\xf8\x58\x42\xee\xa3\xd7\x20\x7d\x11\x6a\x7d\x9a\x5a\x8a\x3b\x91\x4f\xd9\xcb\x04\x6f\x36\x57\x4d\x19\xb5\x6a\xf4\x0d\x52\x71\xf7\xeb\xa0\xd6\x94\x94\xb4\xeb\x44\x48\x37\xf3\xb9\xfc\x60\xc7\x10\x1f\x20\x7c\x71\x9a\xa9\xe5\x98\x7a\xcd\x09\x6f\xbc\xdb\xbe\xd3\x7f\xe3\x8e\x2e\x41\x29\x20\x39\x5c\x14\x6e\xa6\x78\x5a\x9c\xb9\x07\x04\xf4\x4d\xb8\x1b\x71\x49\xf1\x1c\xeb\x8c\xfa\xb7\xdb\x9d\xfb\xda\xb7\xab\xd4\xea\xc8\xc9\x34\xd0\x18\x97\xe5\x42\xe0\x05\x32\x76\x92\x15\x5d\xb8\x71\x4d\x46\x1f\x16\x0d\xa7\xd4\xa6\x8a\x3f\x67\xb3\x95\xbf\xf0\x4f\x07\xdf\x9a\xf8\xfd\x15\x8b\x81\x7a\x61\xe5\xf9\xd2\xdc\xdb\xd2\x5d\xc4\x82\x59\x52\xfd\x67\xaa\x4c\x3d\x17\x26\x5b\x08\x6a\xc7\x0c\x2e\x4b\x91\x4f\x42\xad\x4b\x77\x91\xbd\xd1\x7b\xeb\x2f\x06\x11\xfc\x24\x94\x87\x8e\x72\x6a\x91\xe0\xf8\xab\xd4\x6e\x38\x62\x20\x9d\xe8\xef\xd9\x12\xf3\x1c\x10\x04\x36\xa6\x05\x10\x50\xb7\xd5\xfe\xe6\xea\x9d\xe1\x7b\x2d\xa0\x11\xf7\xd2\x6a\x4b\x1d\x0e\xc2\xa5\x7c\x51\x0c\x05\x62\xed\xc6\xb3\xef\x79\x3d\xe3\x37\x82\x5d\xa2\x88\xab\xda\xaf\x9c\x5c\x54\x85\x5a\x2d\x81\x38\x60\x1c\xf3\x1b\x34\x9e\x29\x3e\x7c\xc6\xb3\x5b\xbb\xa0\xcb\x11\x51\xf0\x6e\x94\xcc\x8d\xd2\x5a\x62\x6f\xaf\xfd\xea\x98\xad\xa2\x91\xc3\x0a\x28\x95\x61\xaa\xae\x16\x7c\x44\x92\x95\xbf\x6e\x0e\x80\x42\x7d\xd8\xaa\x90\x19\xd7\xc2\x4c\xd9\x9b\x12\x4a\xfd\xba\x1f\xe2\x25\x3a\x89\x23\x0d\xf0\x6e\xd9\x43\x8a\xcb\xf3\xbd\xa9\x70\x63\xb9\x0a\xe4\xc1\x74\x17\x57\xa6\xf7\x5b\x4f\x24\x3c\xd3\xbf\x70\x61\x64\x2d\xa0\x71\x7c\x02\xba\xd4\x3d\x5a\x11\x61\x5a\x1f\x39\x91\xe1\x85\x56\xae\x48\x2b\x45\xdb\xcf\x44\xa1\xec\x28\xaa\xf5\x4d\xb7\x4c\xe0\x96\x61\x5c\x37\xc8\xc9\xf7\x9e\x93\xe3\x05\x8a\xe6\x64\xa2\x9c\x9c\x42\xd4\x93\x63\xcb\x16\x54\xc3\x89\x88\x58\x67\x7b\x4a\x55\xff\x3c\x50\x2c\x9e\x01\x0f\x48\xb6\xde\x5e\xc6\x32\x15\x17\xbe\xc1\x0c\xed\x76\x83\x5d\xb7\x18\x2e\xb7\x11\x31\x80\x19\x89\x59\x2a\x62\x6f\x23\x5c\x2f\x03\xae\x78\x6e\xe5\x8d\xee\x92\xc7\x8a\x0f\xe6\xb5\x5e\x52\xd1\xa0\xc7\x23\x29\x98\x0a\xa7\xee\x4b\xc8\x52\x19\x73\x18\x1a\x14\x8e\x5b\x21\x2a\x5c\x69\x19\xe3\x40\x39\x0c\xed\xf0\x89\x28\x54\xb3\x09\xaf\xec\x9d\x92\xa6\x8c\xfb\x84\x33\x4c\xf3\x95\x66\x5a\x1d\x42\x7c\x96\xfc\x83\x5c\x36\x4b\x48\x85\xca\x38\xf6\xff\x84\x45\x3d\x13\xe6\x5e\x08\xf4\x8d\x3d\xbd\x80\x6d\xee\xe9\xc5\x85\x57\x13\x43\x02\x87\xd9\x36\x45\x81\x40\xec\x4c\xba\xc2\x86\xab\x61\x0b\x9d\xf6\x9d\xaa\xc5\x26\x61\xc3\x60\xd4\xd1\x02\xd7\x11\x36\x5f\x62\x7e\xe1\x66\x75\x52\x29\xac\x44\x99\x8b\x32\x5b\xb1\x91\xf6\xcb\xa0\x98\x51\xdc\xc2\xac\x50\xd9\xad\xdf\xdc\x08\x38\x1e\x39\x65\x9d\x15\x9b\x6a\x0d\xf8\xa8\xde\x5a\x20\xfd\x26\x21\x81\x7b\x89\xbc\x7b\x73\x0f\x0d\x71\x04\x1c\xcc\x32\xa1\x99\x6e\xe0\x39\x14\x2b\xcf\x31\x0c\x65\xc1\x41\xa4\x3f\x9b\xd8\xff\x7e\xe6\xfe\x7c\x8a\xee\x6f\x95\x7f\xe6\x7e\x81\x24\x72\xd5\x06\x58\x0b\x5d\x59\x23\xf8\x4e\x14\x2b\x17\xbc\x87\x56\x98\x85\x11\x6f\x60\x50\xdd\x1d\xd4\xe0\x3b\xdc\x7c\x12\x6a\xfa\x6e\x03\x48\x15\x3c\x18\xa4\xf4\xa3\x70\xe6\x63\xf3\xd9\x9f\x35\x61\xae\xfb\x68\x13\x3b\x9b\x60\x36\xc1\x74\x8d\x0e\xaa\x14\x2c\x41\x70\xe3\xe3\x19\x09\x69\x6b\xc9\x8e\xff\xb2\x2f\x9e\x9d\x69\x28\x03\xe4\x42\xee\x62\x38\xc9\xca\xd8\x4f\xcd\xbc\xbd\x7c\x3a\x59\xaf\x6b\x28\xa2\x04\xf4\x4d\xbf\xae\xa1\x31\xb0\xb4\xd1\xf0\x40\xcf\xe0\x53\x2d\xdc\x76\x12\x89\x95\x9d\xe0\x82\x17\x73\x0c\x4e\x50\x5a\x74\x35\xd9\xd3\x75\xaa\x0c\xb5\x74\xaf\x3a\x7b\xba\xab\x2e\x03\x98\x3f\x78\xa4\x62\x6b\xca\xae\x8b\x04\xff\x20\xc2\x91\xc6\x6a\x0c\x32\x9a\xa7\xa1\xf3\x46\x2e\x85\x36\x7c\x59\x6d\xb1\x35\x47\xf2\x14\xb0\xb0\xf3\x85\xbd\x0f\x39\xb4\x0a\xf2\xdb\xcf\x82\x31\xfd\x11\x0f\xb5\x63\xc7\x87\x85\x1e\x7b\x0e\x6d\xac\x3d\x16\x18\x02\x18\x71\x4e\xd8\xc4\x77\xa9\xd9\x1b\x84\xf5\xd1\x9c\x21\x10\xdf\x20\x3d\xde\x8a\x6c\x9f\x1f\x70\x7f\x1d\x7d\x7c\x40\xb5\x82\x94\x75\x27\xea\xf4\x28\x31\xf8\x6d\x38\x46\xb8\xcf\x1f\x81\x75\x78\x44\xb9\x1b\x38\x43\xc8\xb9\x8f\x29\x0f\xb6\xe0\x7f\x92\x29\xd8\x16\xcd\x35\x8a\x2d\x38\x37\xc6\x98\x81\x47\x13\x2b\x5f\xf2\xf3\xdc\x29\xe9\x73\x8a\x4c\x3d\x1f\x77\xa2\x78\xed\x00\x44\xcd\xb3\xfa\xfc\x56\x64\x03\x59\x4a\x47\xf1\xaf\xd4\x69\x85\x47\xa5\x47\x23\x1f\xd0\x78\x7f\xad\x9c\x0f\xc1\x80\xbc\xae\x78\x74\x3f\xf2\xbc\xa6\x60\x05\x80\xe0\x3f\xee\x38\x92\x9e\x6e\xa0\x71\xf8\x72\x3c\x6d\x21\x18\x29\xeb\x74\xae\xdc\x8f\xbe\x11\x50\x96\xcc\xf4\x64\x34\x76\x18\xc4\xa3\x03\x36\x10\xda\x7c\x2c\x3a\x7b\x12\xf9\x9a\xf4\x7b\x91\x15\x8f\x12\x3c\x02\xbb\xc9\xb5\xfd\x3a\x26\x0a\xad\x61\x34\xf6\x93\x27\xe4\x2f\x6d\x3f\x49\x3c\x9d\xa5\xba\xf7\x29\x03\x18\xc0\x71\xcf\x7e\x84\x0e\x20\x6d\x72\xfd\x6d\x57\x72\xb9\xdb\xb0\x7f\x36\xca\xf0\x9e\xe2\xd7\x9b\x89\x97\x40\xe8\x49\xc5\xee\x03\xc9\xd2\xaf\xa6\x63\xf7\x84\x74\x2c\x08\xd5\x48\xdb\x86\xfd\x1b\x1e\xb8\x86\x61\x97\x71\xf9\x64\x17\x0c\x1e\x65\x69\xb2\x5f\xad\xac\xa6\x40\xa5\x8e\xc3\xc5\x29\xd3\x77\xcd\x28\x93\x38\xf6\x37\xce\xe0\xa6\x50\x24\x82\x45\x1d\x7e\x7b\x50\x76\xc8\x76\x71\xc1\x6d\x34\x6a\x56\x25\x4d\x62\x5c\xfb\x5c\x09\x77\x13\x3c\xbc\x9c\x36\x5d\xe6\xf9\xac\x09\x98\xda\x06\x21\xa1\xb0\xc8\x4c\x35\xa5\x41\x5a\x4c\x92\x5a\xd3\xbb\x08\x4c\xd6\xcf\x62\x28\xd1\xc1\x2b\x13\x17\xe8\x2d\xe4\x3c\x34\x34\x9d\xcb\x9b\x9f\x78\xb5\x9b\x00\xb5\x04\xa4\x27\x33\x4e\x1a\x9d\x7e\x72\x0d\xb9\xa0\x61\x85\x2e\xd1\xd3\xa0\x98\xf8\x60\xcf\xff\x22\xc7\xb0\x46\x6c\xca\x6e\x78\xe1\xeb\xf6\xf8\x8b\x1f\x94\x1d\xa4\x9d\x95\x10\x59\xa6\x6c\x63\x51\xea\x7a\x98\xde\x2b\xa3\xbb\xc5\xc0\x5b\xc8\x46\x61\x76\x68\xae\xd9\x21\xe2\xb2\x26\x96\x78\x1e\x66\xab\xdd\x94\xa3\x32\x14\x18\xeb\x99\xb2\x3b\xf7\xa5\x04\x0c\x6e\x7b\x91\x42\x77\x56\x8f\xc3\xd6\xad\x89\x4d\x78\xfa\xb0\xb9\x41\x3c\x49\xac\x29\xd3\x6e\x1b\x4c\x4f\xbb\x20\x2a\x35\xc2\x3d\x7f\xb8\xa5\x50\xa9\xfc\x8f\xb9\x08\x7c\x5f\xbf\x76\x03\x4a\xfa\x9c\x34\xea\x84\xd4\xe9\x84\xbd\xac\x16\x62\x29\x6a\x5e\x5c\x53\x16\xa6\xdb\x52\x5d\x3b\x4c\x37\x17\xbb\xe9\x62\x53\xc9\x11\x2b\x8b\xbc\x7b\x69\xd4\x64\x2c\xc0\x7b\xad\xa3\xa4\x6a\x08\xa5\x57\x0e\x4f\x5c\x7c\xb0\x6b\x09\x9b\x72\x2e\xb9\x84\xeb\x19\x14\xd3\xee\x6c\xd0\xe0\xe2\xb2\x70\xb5\x2f\x53\x20\x2d\xce\xfa\xcd\x28\xca\xce\x8a\x2b\x57\x3a\x7b\xc6\xb9\x36\xcf\x74\xb7\x2f\x28\x7d\xec\xc9\xe9\x06\xe7\xbe\x87\x32\x38\x70\x56\x25\x5f\xca\x0c\x0a\x78\x45\x2d\x3b\xa4\x69\x41\x94\xb5\x80\x33\x75\x92\x11\xdd\x87\x12\xf6\x91\xb4\x43\x24\x9a\xc7\xef\xfa\x59\x5b\xa8\x5d\x58\x2f\x28\x05\x77\x00\xb4\xa7\xc9\x58\x50\x81\xb7\x7a\x50\xd7\xb8\x98\xe9\x47\xa0\x6f\xe8\x88\x7b\xdd\x69\xb3\x7d\x54\xb5\x43\xa3\x32\xf0\xf7\xfc\x11\xd5\xcf\x5b\x4f\xd6\xdd\x37\x61\x5c\xd6\x61\x83\x8b\x80\x1e\x65\x17\x8e\x71\xde\x6d\x1b\xf6\x9c\x1e\xc6\xf4\x63\xd9\x87\x23\x37\x52\xe2\x6f\x39\xf5\x12\x69\xf9\xb1\xfe\xd0\xab\x25\x25\xf6\x2e\x0b\x07\xaf\xff\xda\x96\x61\x3f\xfc\x2d\xd7\xd0\xb0\xce\xee\x59\x43\xed\x99\xf4\x2e\x27\x1f\x50\xbd\xc9\xb2\x1d\x87\xbf\x5b\x59\xc1\x57\xf2\x78\x57\x97\x16\x59\x7d\xda\x1d\x07\x47\xfc\x63\x2e\x9f\x6b\x9a\xdb\xc1\x4e\x7b\x08\xd0\x71\x2e\xfe\x0c\x49\x7d\x8c\x95\xe3\x26\x31\x76\xe7\x19\x58\xea\x29\xea\xdb\xee\x3a\x3d\x3e\xa6\x07\x58\x1b\xe0\xff\x3c\xed\xe2\x80\x21\xff\xa8\xab\x83\x26\x77\xc0\xe5\x01\x10\x4f\xbd\x3e\x68\x1a\x7b\x2f\x90\x04\xf9\x6d\x56\x48\x64\xde\x3d\xb0\x6d\x86\xaf\xc0\x9f\x23\xae\x3f\xb6\x5d\x28\x78\x27\xe2\x0f\x96\x54\xc8\x0d\x7a\xbe\xa8\x65\x65\xec\xe1\x91\x17\x59\x53\xa0\x8b\xfe\x0f\xb3\x66\x8e\xc7\x44\x1c\x59\x67\xaa\x12\x13\xf6\xad\xd0\xe6\xe5\x7c\xae\x6a\x5c\x39\xaf\x95\x89\x7e\x81\x77\x76\xe4\xe8\x9d\xa8\xe5\x7c\xd5\x7a\x06\xae\x90\x99\xa0\xd5\x2b\xa2\x51\x46\x72\xce\xdc\xab\x14\x24\xb5\x22\x02\xc0\x67\x01\xf5\x33\x84\x1a\x37\x17\x0a\x57\xbf\x67\xc9\x2c\xcf\x1c\x02\x9b\x84\xc0\x2c\x84\xac\x1f\x50\x75\x26\xd3\xbb\x52\x70\xa7\x5c\x2a\x03\x69\x9b\x32\x93\x76\x25\x60\x77\xa5\x15\x7a\x95\x7c\x92\x02\x74\xe7\x44\x95\x44\xde\x1d\x00\x3c\xc6\x69\xb6\x83\x73\xcc\x29\xd0\x2e\x37\xf2\x96\x34\xcc\x9a\xa8\xca\xbd\x2c\xfb\xf9\x92\x6f\x38\x27\x7b\x8f\x51\x3e\xa8\x89\xed\xd3\xde\xad\x24\x6e\x6d\x3f\xca\x28\xd9\x38\xa7\x56\xe9\xe0\xf6\x8c\x88\x6b\x3b\x70\xcc\x7e\x8a\x7b\xc8\x11\x39\x36\x82\xfe\x5d\xa6\x3d\x72\x8e\x8d\x94\xa9\x13\xa9\x5b\xdf\x3c\xa4\xbc\x71\xfa\x36\xfe\xe9\x38\x0a\xd7\x84\x11\x80\x70\x30\x8a\x3e\x88\xc6\x8d\x90\x1f\x52\xb9\x67\xe9\x1c\xbd\xba\xa5\xce\x93\x3e\x72\x07\xa4\xde\xfb\x6a\xbb\x57\xac\xad\x62\xeb\x35\xe6\x89\xd9\x17\x87\x5c\xf1\x8f\x58\x97\xfb\x7b\x01\xea\x87\x27\xf2\xf6\x74\x1d\x6e\x6f\x23\xff\x39\x9b\xf3\xa2\x70\xa0\xff\xed\x6f\x97\x9d\xbf\xff\xd8\x0a\xbd\x97\x91\x1b\xf5\x43\xcf\x27\x7d\xc1\x03\xfb\x2a\x88\xc8\xc0\xde\xea\x9c\x39\x6a\x56\x2d\xee\x55\x5d\xee\x71\xb8\x59\x7a\x21\x78\x5e\xc8\x52\x5c\x47\x8d\x5b\xeb\x5e\x46\x52\x3e\x76\x8b\xe9\x1d\xfe\x6e\xcf\xdb\x1e\x3a\x8c\xf0\x47\xf7\x71\xa9\x27\x8e\xa1\x6f\xc7\xde\x4c\xbc\xb5\xbc\x0d\x0b\x6e\x9b\x0d\x60\x33\x6f\xbd\xd4\x8e\x62\xee\x01\xd5\x3f\xfa\x3c\x34\x5c\x1e\x33\x51\xde\xc9\x5a\x95\x10\x8d\x0a\x65\x41\x36\x2b\x77\xfa\x3e\x0a\xc2\xc9\x54\xa9\x9b\x25\xc4\x88\xc0\x6c\x21\xee\x4d\x96\x16\x38\xbb\xe3\x35\x4e\xf5\xb7\xd7\x2a\x17\xb1\x42\x1f\x7b\x14\x72\xbe\xb8\xae\x6e\x8a\xba\x67\x61\x3f\xec\xac\xe0\x35\x34\x7e\x8c\xa6\x85\xa5\x0a\x78\x2d\x01\x3f\xcc\xf1\x8d\x72\x2a\xe0\xa6\x0f\xbd\x40\xee\x8e\x0f\x54\xaa\xa9\xb9\x3d\xac\x43\x6b\x4f\x08\xab\x71\x01\x65\xee\xf5\x60\xa3\xa6\xa9\xa6\x31\x45\xfd\xb0\xd8\xb8\x1d\xd1\xd5\x54\xe7\xc4\x81\xa5\x0d\xe2\x56\x60\x3a\x0a\x25\x0c\x86\x41\x36\x04\x5f\x66\x6a\xb9\x54\xe5\x13\x7c\xbf\x93\x5c\x3a\xcc\x6c\xa8\xfc\xe9\x6e\x99\xf7\x61\xf9\x9d\xe4\xed\x89\x3f\x22\x86\x63\x35\xa8\xb3\x97\xe5\xdd\x77\xb5\x5a\x9e\xed\x24\x00\x04\xb1\x4f\x08\xf6\x11\x80\x18\x6c\x10\x82\x63\x09\x00\x76\x03\x5f\x56\x66\x75\x8e\x53\xda\x8e\xe7\x70\xc1\x1e\x8a\x01\x11\xc5\xf2\x06\xa2\xef\x00\x2c\x9a\x6e\xf8\xbb\x9d\xc7\x86\x10\xc6\x9e\x1e\xb8\xe4\x8d\xc5\x20\xff\x12\xa1\x5a\x50\xad\xd6\x08\xfe\xc2\xbf\xa3\x18\xbf\xd8\x8d\x3a\x5b\x04\x71\xb6\xa8\xe2\x02\x37\x69\xda\x9b\xa2\x36\x69\xb8\x38\x64\xf3\xc7\x28\xad\xdc\x01\xa7\x98\x01\x2c\xea\xe0\xe8\x50\x48\x4d\x3a\xe7\x7b\x79\x27\x30\x14\xcf\x37\x39\x80\xa2\xe0\x82\xfe\x20\xe7\x20\x42\x9b\xb0\xa8\x31\x24\xe6\xd5\xff\xbb\xe1\x85\x8f\xf4\xa4\x7e\xf2\x00\xf8\x5d\xf0\x88\x47\xa1\xb6\xb3\x15\x93\xe6\x0c\x1d\x5b\x32\xa3\xd0\x50\x8f\xab\xb5\x73\x29\xdd\x7f\x2e\xa1\x55\xda\xc4\x57\xa9\x4f\xb3\xe9\xe3\x18\x53\x55\xcb\x1b\x7c\xdb\x2f\xba\xeb\x5e\x79\xef\x8b\x39\x5d\xcf\xd2\xe7\x57\xaf\xd8\x52\x18\x0e\x0d\x9f\x7f\x78\xf7\xee\x8a\x28\x39\x86\xb7\xf5\x9d\xa8\xa9\xba\x9b\x6b\x24\x66\x57\xe6\x3b\x5c\xc2\x35\x2f\x35\x70\x17\xeb\x74\x85\x5e\x71\xbe\xfe\xc6\xe7\x17\x5f\x62\xf1\x72\x48\x9f\x16\x65\x4e\xea\x26\x57\x42\x63\x83\xcd\x65\x55\x80\x85\x15\x50\x5c\x2f\x33\xaf\xb4\x6e\xec\xd2\xa0\x89\xe0\x89\x84\x34\xc4\xf3\xab\x57\xd3\xf4\x41\x22\x38\xf8\x48\x07\x63\x03\x1a\x93\xa9\xb9\xc5\x72\x6b\x93\x02\xb2\x1f\xa2\xd6\x3f\x6d\xaa\x43\x7f\x99\xf3\xd0\x80\xfb\x1c\x3b\xd9\x9d\xf3\x32\x3f\xaf\x85\x36\xbc\x36\x63\x7a\xf5\x41\x83\x1e\xcb\x83\x6e\x84\x2f\x41\xc1\x91\x20\x45\x2f\x04\xd3\x0b\x56\x70\x1d\xd5\xbd\x70\x95\x89\xa8\xa5\x8e\x4f\x9f\xa9\x6a\x71\x27\x55\xa3\xa9\x11\xcf\x36\xc5\x59\xf0\x0b\x2a\x81\x51\x0b\x55\x89\xd2\x19\x77\x83\xe3\xa3\x89\xb7\x16\x87\x89\x8b\x13\x82\x46\x70\x76\x83\x90\x65\x03\x19\x6d\xd2\x9e\x97\xcb\x1b\x2b\x36\x72\x4e\xd7\xb9\xba\x15\xd9\x5e\x29\x59\x62\xdb\x79\xd9\x53\xfd\x77\x53\x74\x7b\x6f\x4f\xa0\x0e\x23\xed\x68\xbe\xef\xc8\xf9\xe8\x3a\xe5\x6b\x38\xd9\xc3\x47\xaa\xe5\xe1\x9b\xaf\x77\x38\xb9\x33\xab\x62\x46\x71\x56\xf1\xda\xc8\xac\x29\x78\xdd\xcf\x2c\xe9\xf4\x2a\x9d\xfb\xa1\x51\x45\xc2\x01\xb6\xe0\x55\x25\x20\x1a\x0e\x73\xe1\xa9\xb5\x62\x0b\x5f\xc8\x14\x9c\x0d\x54\xf7\x3e\x0c\x63\xac\x9a\x3a\x77\x09\x88\xe7\xf7\x44\xef\xed\x39\xe3\xfa\x4e\xf1\xdc\xf7\xa7\x99\xc4\x5d\xa7\x42\x9b\xaa\x94\x10\x18\x69\x42\xd8\x6c\xc1\x20\x9f\x33\xe9\x50\xc6\x92\xfc\x7e\x99\x67\x42\xde\x61\x9e\x54\x8c\x91\x0f\x7f\x20\xac\xd6\xe1\x82\xc3\xd0\xd6\xdc\x2a\xf2\x03\x20\xa0\x42\x3b\xa9\x6e\x1c\x2e\x05\x07\x55\xac\x02\x3c\xa7\xc4\x41\x85\x93\xdb\xc5\x0e\xb1\xa1\x84\xcf\x61\xd8\x0c\x83\x9c\x53\x21\xfe\x3d\xb8\xeb\xfb\xb6\x7a\xa7\x85\x9c\x33\x89\x54\xd0\x46\x55\x9a\x2d\x45\xc8\x20\x8b\xa3\x22\x9d\x41\xe1\x69\xb8\xf5\x62\x0c\x55\x8e\x37\x8f\x44\x9f\x9c\x69\xb2\x27\x5d\xea\xa1\xef\x98\x86\xaa\xd2\xcf\x8b\x04\x62\x42\xc5\x57\x0b\xec\x32\xec\x1e\xf7\x68\x4f\x45\x6b\x96\x30\xc2\x76\x22\xd2\x00\x52\x3a\x99\x28\x04\x9e\x46\xd8\xc1\xc5\xe8\x81\xd9\xac\xad\xed\x84\xa5\x08\xb6\xe4\xac\x13\x5d\x2a\x43\x85\x4b\xc0\xb5\x0f\x45\xb2\xfb\x1a\x9f\x50\x3e\x4e\xd5\xb9\xd8\x86\x79\x5d\x70\x98\xb4\xe8\x90\x26\x4b\x1d\x6a\xaa\x61\x34\xb1\x35\x15\x4b\x69\x64\x70\xe5\xf2\xd2\xae\x62\x6a\xa3\x4b\xfc\x83\x4a\x69\x88\x34\xcd\x21\xda\x48\xb1\x2e\x0b\xed\x8d\x04\x0c\x7b\x5d\xba\x80\x8b\xee\x2e\x3f\x0f\xa5\xa3\x50\x0c\xa0\x04\x14\x0a\x18\x25\xaa\xb5\x3f\x42\x51\x2b\xa8\xae\x28\x22\x03\x2b\x7b\xea\x2a\x61\xd9\xa9\x56\xb5\xca\x9b\xcc\xa1\x77\x5f\x4b\x03\xbd\xdb\xc9\xbe\xc3\xac\x75\x76\xa3\x6a\xd5\x18\x59\x76\x37\xe0\x9e\xe3\xc8\x66\xc9\xb8\xa4\x1a\x76\x18\x67\x21\xea\xf1\xad\x41\xd2\xf7\xfd\xc1\x4d\x92\xff\xba\xf5\x78\x8b\x45\x5c\x82\x51\xdd\xfa\xde\x9b\x42\xbe\x48\xdd\xb7\xca\x40\x3d\x0c\xb6\xe4\xff\x22\xf7\xa1\x65\xc6\x52\x96\xaa\x0e\x74\xc7\x5e\x87\x76\x5f\x9d\x81\x56\x92\xa5\x11\x37\x3d\xad\x6d\x37\xe5\x99\x22\x3a\xef\x07\xec\xd1\x17\x5c\x2c\x55\x79\x2d\xcc\xf9\x77\x5c\x16\x22\xbf\x52\xb9\x73\xb9\xf7\x12\xb2\xd2\xbf\xd3\x37\xe0\xb5\x6f\x27\xe8\xd9\x59\xae\x7c\x2b\x42\x38\x7c\x8a\x9c\xe5\xf8\x41\xe5\xca\x21\x6c\x3a\xfe\x65\xee\xb1\x61\xff\xdd\xcc\x44\x5d\x0a\x2b\x4f\xb9\xd4\xa6\x96\xb3\x26\x9c\x6d\xe9\x40\x6c\x8f\x67\x7e\x1e\xa1\xe8\x02\xa4\x56\x42\x4b\x9c\xde\x33\xf0\x45\x1f\xdd\x2a\xfd\x04\x91\x7d\xaf\x85\x19\xa6\xd5\x5b\x55\x14\x56\xb2\x77\x22\x11\x7d\xeb\x6b\x1a\x37\x65\x29\x32\xa1\x35\xc7\xbb\x11\x6b\xf4\x1d\x96\x4c\xee\x88\xc6\x1b\xa3\x96\x98\x47\xbd\x94\xa5\x5c\xda\x63\x25\x66\xfe\x4b\x5d\x37\x15\x66\x54\x38\xec\xd4\x3c\x74\x23\x51\x8c\x87\xc9\x1f\x94\x90\xaf\x55\x2e\xae\xc5\xba\xa2\x87\x9b\xa8\xd9\x60\x0b\x48\x68\x12\x94\x29\x7b\x6c\xfc\xe0\xe4\xed\xd0\xf4\x4b\x64\x8c\x95\x2a\x17\xd1\xd6\xeb\xba\x93\xa4\xb6\x4e\xb7\xf6\xdd\x3e\xd4\xda\x6b\x65\xc6\x84\xd2\xd8\x05\xf0\x48\x74\x32\xb1\x13\x4a\xcd\xc3\x04\xc8\x7d\xf2\x2b\xe6\x3c\xa7\xe4\x8c\x33\x2b\x2d\x80\xf0\x34\x6b\xd7\x66\x8a\x6b\x12\xf0\x4c\x78\x5f\xe6\x95\xea\x1e\x21\xf6\x5d\xe5\xb2\xbc\xf9\xd9\x25\xc4\x6c\x4d\x73\xca\x43\x85\x5b\x26\x3b\x67\x6c\xe4\xc3\x7d\x4e\xab\x57\xfd\xf4\xa2\x36\x35\x37\xe2\x06\x4a\x7f\x24\x83\x1f\x51\x94\x93\x71\x0e\x22\xae\xa1\x6c\xc7\x5b\xb1\xa6\x3b\x2e\xd0\xae\xfb\x6e\xf4\x53\x5a\x1c\x4f\x15\x39\x15\x0a\x28\xf3\xd0\x75\x17\xeb\x5a\xaa\x52\x6c\xae\x72\xba\x8b\x18\xbf\x48\x4b\xaa\xd0\x7d\xa7\xf3\xed\x12\xbb\x3a\x44\x7b\x36\x44\x34\x0f\x6d\x1d\xd1\xc6\x49\xdd\xc0\x07\x1b\xc9\xe7\x65\x2e\xda\x3c\x4f\x4b\xbe\x44\xb0\x8f\x44\x43\x71\x27\xad\xb5\xf3\x83\xd4\x46\xd5\xab\x1f\xe5\x52\xf6\x87\xc5\xb7\x48\x99\xaf\xa3\x5e\x94\x5d\x75\x38\x6a\x65\x85\xe0\x25\x6b\xaa\x08\x8b\x33\x1d\x25\xfa\x50\x8d\x2b\x1e\xda\xb3\xa4\x6f\xfe\xdf\xa9\x55\x2a\xd3\xba\x67\xc2\xff\xf7\xb0\x34\xbd\xaa\x95\xe5\x2b\x1e\x50\xae\x33\x5e\x0c\xdd\x03\x6c\xa4\xa9\x93\x90\x2a\x86\xa8\x3d\xc4\xc3\x1b\x3e\x11\x36\xf1\x98\x14\x43\x03\xe3\x4e\x98\x9c\x8a\x69\xf2\xb8\x58\xc1\x43\xbb\xd3\x0c\x31\xc7\x95\xef\x78\x91\x96\x77\x92\x1a\xbf\xec\x6e\x47\x7b\x6b\x06\x75\x37\x90\x2f\x35\x9a\xea\x35\x41\x39\x26\x95\xdd\x18\xe8\x8d\x02\xca\x42\x90\x0d\xe3\xf5\x4c\x9a\xda\x5a\xba\x65\xb3\x9c\x89\xda\x9a\x07\xe8\xb2\x01\x33\x33\x17\x1a\x5a\xc1\x68\x63\x75\x43\xde\x80\x63\xb7\x46\x85\x11\x27\xa6\x46\x25\x17\x61\xa8\xc6\xd8\xe3\x9b\xd4\x8b\x9e\x1d\x6c\x7b\x92\xff\x97\x9a\xe9\x49\x5c\x4f\x69\xc2\x6a\x71\xce\x73\xac\x9c\x34\x48\xfd\xff\x52\x33\x47\x6b\x78\x17\xcf\xc9\x70\xd1\x04\xa0\x5c\x14\x09\xa6\xb8\x96\xaa\x3c\x5f\x86\xeb\x34\x86\x7b\xdb\xc8\x9b\xdf\x8a\xd7\xbc\x28\x44\xc1\xfe\xa5\x66\x78\xe9\x17\xc8\x09\x45\x93\x5a\x17\x58\xd4\xb2\x64\xee\x3f\x94\x7a\x89\xb6\x18\x55\x18\xe3\x2e\xa2\x11\x4b\x6c\x58\xa4\xa5\xe9\x54\x56\xc4\xa1\xec\x3c\xe9\x02\x05\x89\x42\x37\x55\x54\xbf\x8a\x61\xf6\xfb\x4f\x58\xab\xc3\xb8\xe6\xc5\xe0\x48\x88\xfa\x45\xfe\x97\x9a\x9d\x69\x2a\x41\xdb\x82\x1a\x72\x80\xfb\x2c\xba\xde\x1b\x98\x4a\x3f\xb1\xa4\xe8\x65\x24\x46\xf4\x10\x23\x6f\x6a\x9e\x89\x79\x53\x84\x58\xba\x71\x1c\xf5\x05\xd6\xff\xa5\x66\x63\xb9\x04\xcc\xf1\x0e\x02\x11\x23\xe2\x9b\x12\x02\x43\x44\x61\x19\xd2\xa9\x1b\xd2\x76\xe5\xda\x87\x00\xd3\xd3\x2a\xaa\xe9\x17\x67\x61\x8f\x73\xb0\xac\xa3\x19\x9e\xa4\x60\x8d\x93\xf7\x9e\xeb\x5b\x38\x47\x63\x08\xff\x46\x7a\xc1\x71\x03\x88\x65\x54\x0c\x0d\x0f\xe5\x5c\xdf\x6a\xa6\xd5\x52\x40\xc5\x41\x80\xeb\x27\x0b\x17\xa5\x0a\x73\xd1\xfd\x8d\xd8\x26\x2f\x4c\x88\xc3\x0d\x95\xe5\x70\x14\xa3\xf0\x4a\x5e\x95\x99\x20\x3f\x99\xa5\x10\x7b\x0e\xd3\xa2\x01\xec\x06\xe0\xaf\xc8\x3c\x75\xc5\x07\x91\x35\xd8\x43\x32\xcc\x60\x1f\x79\xa4\x9d\x83\x5d\x0b\x33\x69\xeb\x08\x6f\xda\x46\x0a\x22\x7d\x3a\x48\xf6\x28\x2d\xb8\x5f\xff\x00\x6c\x55\x86\x43\x59\x34\x0e\x5d\x58\xb8\x3e\xab\xe9\x37\x9b\xb6\x88\x76\x59\x68\xac\x36\x15\xcf\x93\xfd\xf5\xed\xf5\xa7\xec\x1e\x0a\x67\xb6\xdb\x08\x48\x72\x2b\xba\x9b\x02\x0a\x2a\xb3\xda\xe0\xed\x35\xb1\x40\x82\xbf\x34\xa8\x19\x3b\x22\x94\x1c\xc5\xe5\x48\x45\x3d\xa1\x8a\x53\x64\x63\x72\x30\x6b\x01\xda\xaf\xe4\x05\xf2\x5a\xa8\x8c\xb5\x10\x28\x4b\xac\xd2\x4c\xd7\x8e\x6f\xaf\x5d\xd3\x26\xe8\x4f\x4b\x74\x69\xe1\xf9\xf6\xfa\xac\xdd\x98\x60\xe2\xbe\xee\x53\x62\xf1\x21\x8f\x7e\x22\xbf\x7d\xbb\x76\x6d\x5b\xba\x3e\x1b\x90\x2e\x32\x46\xfb\x0e\x60\x89\x94\xd9\x75\x38\xe3\x5a\x66\x4c\x2e\x31\xa8\x70\xac\x0c\xb9\x6b\x83\xe8\x6b\x4b\x3c\xf0\x62\x3b\x53\x38\x22\x38\x34\x1f\x71\xef\x8d\xcf\xde\xf1\xa3\x52\xc5\x4a\x47\x2c\xce\xb4\x2c\x6f\x0a\x11\x42\x99\xa6\xec\x27\x7e\x2b\x98\x77\xb7\xfa\xf5\x4a\x42\x58\x37\xd0\x58\x07\x23\x8d\xae\x7f\x78\xf3\xf3\x8f\x2f\x98\x16\x00\x0a\x4b\xd9\xd6\x42\x57\xaa\xd4\x02\x75\xd0\xbf\x1b\x51\xcb\x91\x55\xfb\x46\xd1\xbb\x55\x44\xb0\x77\x81\x6f\x22\x7f\x2b\x15\x79\xdc\x6a\x1e\x63\x32\x97\x28\x68\xd0\xde\x64\xfd\xa2\x6d\x4d\x83\xfd\xf5\xed\xe5\xa7\x4c\xea\x90\xb2\x00\x45\xeb\x06\x96\x73\xef\x52\xbe\xec\x5f\xca\x3e\x2c\x70\xed\x72\x0e\x4b\x79\xf4\xca\xc8\xc6\x32\xc8\x2d\xd2\xdd\x39\x13\x74\x75\xaf\xfe\x1c\x75\x98\x59\x4f\xf7\xc0\x26\x97\xbe\xd6\x2e\x8a\x19\xf9\xd4\xd6\xab\xb9\x1e\xb5\x16\xab\xb4\xcb\xae\x4a\x0b\x99\x89\x97\xe3\xd5\x5a\x47\xa5\x75\x76\xcc\x03\x70\x6e\x3b\xad\xd6\xcf\xbc\x11\x0a\x2e\xa4\x9a\x6d\xa7\xe0\xd6\xf6\x32\xe8\x44\x6b\x7e\x0b\x08\xbc\x5a\x52\x79\xa4\xa8\x5f\x51\x53\xfa\x1b\x29\x99\x51\xaa\x06\xc6\xc6\xa8\x3b\x99\x8b\x1c\xb1\x99\xd2\xb7\xce\x24\x34\x42\xbb\xb2\xc3\x12\x0e\xb7\x4c\x96\xd4\x7d\x21\x86\x06\xd1\x68\x25\xde\xfe\xd5\xaa\xb9\x59\xb0\x77\x97\x57\x13\xf6\xf3\x8b\x2b\xc0\xe2\x87\x77\xef\xae\x46\x6b\xc7\xd1\x9c\xc3\xa6\x33\x73\x55\x33\xa9\x75\x23\x34\x2b\xe4\xad\x88\x6a\x28\x85\xaa\x3f\x2e\x2d\x62\x17\xce\x36\xf5\x1c\xca\x37\x3a\x8b\xd5\x9e\x65\xf1\x72\xd5\x75\xed\xe4\x0c\xa3\xe3\x10\x8d\x18\x0b\x37\xf4\x0e\x71\x99\x03\x6c\x07\xb6\x81\xd6\x0e\xf3\xf4\x7d\x76\x7d\xad\x49\xaa\x19\xd5\x1f\xc1\x39\xd6\xa0\xef\x32\xe2\xda\x1e\xa5\xe7\x4d\x01\xd6\xc0\xb7\x4d\xad\xcd\x46\xe7\x4d\xf4\x09\xfb\xed\xf6\x6f\x7a\x2a\xd5\xef\x24\xa4\xf1\xa3\x79\x53\x66\xe8\x29\x91\x66\xc5\x7e\x8b\x1e\xc1\xbb\xd8\xaa\x0d\x47\x24\x27\x4b\x7c\x38\x48\x8f\x05\xe2\x4e\x94\xae\x5b\xec\x42\xf0\xc2\x2c\x56\x64\x81\x5e\x17\xea\x7e\x53\x44\x74\x8c\x55\xc7\x07\x79\xe5\xce\xca\x57\x2a\xff\x89\x97\xfc\x06\x2e\x0c\xa8\x38\xb0\x15\xc4\x99\x45\x31\xf6\x05\x59\x26\x48\x0d\x34\x0c\x11\x89\x58\xe4\x1e\x2f\xb5\xab\x5a\x40\xd3\x25\xe8\xe3\x27\xe6\xbc\x29\x0c\xa3\xfa\x66\x97\x05\xd7\xda\x6e\x69\xa8\x3b\xa8\xb0\x16\x2e\x58\x2d\x55\xd9\xbd\xc0\x1d\x5a\x53\x9a\x26\xd5\x63\x71\x24\x3c\x3d\x25\x37\xaf\x53\x3e\x62\x88\x97\x3d\xb7\x56\xb5\xc8\x65\x86\xa5\x9f\x31\x7c\xc2\xaa\x90\x05\x2f\xb0\x36\x6d\xb9\x62\x6e\x3a\x70\x1b\x22\x75\xe0\x33\x6e\x92\x3b\xb1\x99\x16\xde\x15\xa5\x51\x70\x9d\x89\x32\x47\x87\x4b\x8e\x51\x16\xaa\xce\x65\xc9\x0b\x26\xcb\x5c\x7c\x00\xc3\x2f\x66\x34\x6b\xaa\x24\x82\xcb\x01\xb2\xa3\x26\x90\xf0\xf6\x86\x3e\xca\xd5\x7d\x39\xf5\xa4\x80\xee\x78\x0c\x8c\x18\x75\xef\x1b\x23\xdb\x33\x28\x4d\x9c\x2a\x61\xdb\x0d\x57\x86\x3e\x47\xf1\x5c\xec\x66\xee\xc9\x81\xc2\x87\xca\x7a\x3f\x01\x3c\x85\xf0\xf9\xbb\x10\x8c\x1e\x20\x3b\xed\x04\x82\xe8\x43\x7b\x70\x78\x71\x27\x21\xb3\x2f\xc2\x7b\x5b\x61\x4a\x6c\xd0\x44\xb2\x8c\x35\x69\x28\x5a\xee\x46\xc1\x66\xca\x38\xcd\x98\xc2\xc2\x20\x16\x10\xfa\x98\x70\x1d\x05\x1e\x60\xad\xe5\x7f\x61\xd6\x21\x44\xf3\x20\x9a\xb3\x15\xe3\xec\xb5\xca\x45\x9f\xaa\x41\xc5\xf1\xf8\xb8\x1d\x62\x83\xdc\x09\x53\x9f\x50\xf5\x78\x95\x03\x36\xdb\xbd\xaa\x6f\x31\xcf\x96\x17\xf6\x4c\x38\xf3\xb8\x8d\x3c\x79\xf6\xcd\x6b\xca\x5e\x8b\xfb\x38\xd2\xbe\x6f\xee\xde\x38\x23\x4c\x10\x03\xf4\x6d\x4e\xd9\xb7\xb5\x0b\xd7\xf3\xbf\xb7\x57\x7b\xc8\x86\xab\x40\x19\xdc\xab\x69\xfc\xdc\xeb\xa7\x60\xcf\x71\x03\xc9\xbb\xbe\x6c\xfe\x58\x0f\xd4\xe8\x45\x4c\x0e\x76\xba\x92\x83\x6d\xf8\x8a\xd7\x46\xae\x75\x8e\x1e\x81\xb9\x95\xa8\x2d\xeb\x58\xc6\x4b\x5e\xaf\x7c\xfc\x09\x34\xfd\x59\xc0\x15\x58\x7a\x17\x80\x11\x97\x62\x59\x15\xd0\xb4\x50\xe5\xad\x10\xc6\xd1\x1a\xe0\xac\x7d\xdf\xee\x6f\xe2\xfb\xcc\x09\x24\x0c\xb8\x6e\x97\xc2\x90\x73\x08\x42\x61\x2d\xde\xb2\x8b\xb1\x6a\x8c\x9e\xb2\x57\x73\x32\xfa\xa3\x9c\x91\xfb\x85\x84\x0b\xa6\x74\x5e\xee\xbc\x0d\x1b\xab\xba\xa9\x85\xd6\x93\xae\xc2\xaa\x85\x36\xee\x16\xc4\x9d\x25\xa0\x47\xba\x54\x05\xf7\x61\xa3\x1e\x5f\x97\xba\xb2\xbf\x65\x73\x92\x8d\x25\x91\xc9\x87\x10\xc2\xb6\xa8\xc1\xc6\xa0\x8a\x02\x42\x1a\xd7\x48\xde\x3e\xb6\xea\x80\x10\xda\xfd\x06\x63\xb7\xb0\x46\x2b\x85\x77\xa2\xa3\x04\x5d\x98\x25\xa8\x09\x0e\x09\x0e\x7e\x03\x02\xb1\xf0\x58\xd2\x3d\x1b\x1e\x31\x52\xe1\xd7\xad\x94\x79\x59\xe6\x76\x3a\x54\x46\x1a\x63\x5b\xdd\x9d\x3a\x10\x02\x31\x74\x3f\x81\x6c\x83\xcb\xdd\x8d\x25\x9d\xbb\x21\x77\xb9\x9a\x2e\xcc\xbc\xaa\xa5\xaa\x99\xbb\xaf\xee\x11\xeb\x5c\x18\x91\x59\x72\x48\x8d\x85\x6a\x7d\x48\x9a\x2c\xb5\x11\x3c\x77\x09\xc1\x3e\xca\x10\x5d\x44\xb5\x47\x66\x7b\x19\x47\x9b\xe2\x44\x72\x7e\x29\x6a\x8a\xb5\x16\xd7\xf2\xc6\x1e\xc0\x5d\x05\x05\x6c\x1d\xdd\x91\xf4\xc6\x2c\x7e\x8f\xbf\xd2\x6c\x6d\x8b\xec\xd6\x85\x2f\xa6\xa7\x5f\xbf\x85\x8f\x54\x25\xea\x51\x62\x7a\x86\x07\xd1\x68\xd0\x29\x2e\x2f\x00\x83\xdd\x91\x43\xf7\x59\xdf\xfd\xfc\x09\xf4\x64\xf6\x0d\x8f\xd1\x94\x51\x59\x03\xd7\xac\x43\x20\x9f\xdc\x3d\x0d\x50\x9f\xb8\xb8\xd9\x00\x3d\x01\xfe\xa4\x07\x80\x0b\x62\xa4\x16\xd4\xc3\x03\x22\xb9\x5d\x2d\x96\xc9\x9a\x67\x96\x8b\xb5\xba\xe3\x45\x48\xa8\x58\xf3\x32\xd5\xb2\xf2\x95\x2d\xb6\x41\xfe\xc9\xdd\xd3\x1d\xf1\x0f\xa6\xc4\xb2\xb1\x87\x6c\x52\x24\x68\xbe\x20\xde\x37\x56\x97\x16\x52\x9b\x89\x0b\x15\x77\x89\x2b\x15\xfe\x19\x27\x05\xe0\xbf\xa3\xc6\x76\x1b\xc6\xf7\x34\x4a\xc3\xcd\x13\x64\x00\x81\x64\xcc\x8d\x50\x23\x65\x34\x1a\xe6\xd9\x98\xa8\xe8\xc6\x2c\x52\x06\x74\x92\x5c\xd1\x31\xc6\x33\x2c\x51\x60\xd4\xad\x28\x35\xa8\x5e\xb6\x84\x5f\x30\x02\x80\x54\x70\xff\x3a\x25\x20\xcf\x33\x2a\x80\xe2\x7c\xf8\x10\xfe\x60\xbf\xb7\x87\xca\x06\xfa\x62\x5b\x99\x87\x31\x50\xbb\xc3\x08\x5b\x84\x9b\x3b\x74\x69\x28\x76\x2b\x56\xe8\x18\x06\x48\x50\x25\xc2\xa8\x70\x69\x56\x16\xab\x70\x00\x7e\xde\x18\xf5\x93\x7d\x8d\x80\xbc\x03\x34\x24\x2a\x4b\xea\x98\x34\xe7\x85\x16\x53\xf6\x2b\x3a\x14\x31\xe9\xc0\x1a\x33\xf7\x68\x78\x0b\x6b\xeb\x28\xcd\x16\xa2\xa6\xa2\x28\x4f\x7d\x2a\xfa\x95\xca\x27\x78\x0f\x53\x89\x0c\x7a\xd2\x3d\x77\x33\x4c\xe9\x83\xe3\xd2\x80\xa5\x2c\x18\xff\xd4\xcd\x0b\xf1\xcc\x42\x15\x16\x6f\x90\x40\x2a\xee\x84\xcd\x3e\xed\x90\xc0\x6e\x19\x2e\xc3\x09\x0a\x65\xac\x1b\x96\x82\x77\x31\x4d\xb4\xb6\x10\xb3\x03\x42\x04\xea\xb1\x67\x7b\x92\xc4\xe2\x85\x0a\xa8\x8b\xda\x78\x9a\x44\xe8\xc3\x47\x87\xa0\xca\xae\x30\x91\x2e\x9f\xed\x49\x17\x80\xf2\x47\x24\xcc\xbb\x45\x74\xe5\xe9\x2f\x35\x69\x13\x71\xbd\xc8\x60\x77\xa1\x32\x51\xa0\x0a\xa2\x0a\x94\x00\xf7\x17\x55\x34\x4b\x6a\x79\xca\xcd\x02\xa4\xd8\x6b\x31\x11\x29\x83\x2d\x28\x4f\x9a\xc1\xd9\x73\x88\xae\xdd\x36\xd2\x97\x5d\xba\xd8\x58\x78\xae\x2f\x34\xc0\x9b\xa0\xd9\xe7\x33\xe0\xa1\xb1\x04\xd7\x42\xb3\xa7\x7c\xf2\x74\x36\x79\xc6\x27\xcf\x66\x30\xe8\xb3\x6c\xca\x5e\x95\x64\x74\x86\xb7\xb2\xc9\x67\x7c\xf2\xd9\xcc\xef\xd9\x9f\x65\x03\xb4\x49\x5b\xf7\x44\xb4\x19\x63\xe0\xd9\x8d\x84\x6e\x51\xde\xd3\x66\x31\xb8\x99\x38\xb2\xbc\xc3\xcd\xe4\x27\xbb\x91\x79\xed\xbb\xed\x2e\x82\x7b\x04\xe5\x19\xe1\xd6\x01\x4a\x1e\xa4\xe2\x28\x5b\x47\x74\xfd\xee\x0b\xd7\xb9\xea\x1c\xd8\xe4\x37\x0b\xd2\x0a\x57\x67\x70\x0f\x5c\x0b\x9e\x77\x46\x01\x84\x27\xac\x56\xca\xb0\xcb\xe7\x64\x72\x04\xfb\x3b\x5c\x85\xc4\xfd\x7b\x43\xc6\x9b\x5b\xd1\x76\xee\x28\x42\x40\x43\x90\xf0\x29\x7b\x5e\x14\xb4\x44\x00\x2d\x94\x29\x59\xa4\xb6\x98\x2b\x51\xd6\xc6\x6c\xe9\x01\x05\xa7\x4b\xbc\x5e\x90\x18\x68\x49\x7b\x82\x1c\x56\x50\x1c\x2a\x85\x9c\x0b\x6c\x3e\x6c\xb0\xbc\xe6\x56\x02\x82\x37\x86\x78\x9b\xe7\x8a\x11\x23\x34\xc8\x18\x4d\xbf\x1a\xe1\x23\x41\x25\xad\x3b\x9f\xba\x4b\xd1\xb8\xd6\x45\x20\x5d\x9e\x8b\xdc\x9e\xdd\xf4\x42\xdd\xfb\x7c\x71\xcc\x69\x84\x14\xc2\x29\xbb\x72\xd7\xe4\x11\x37\x1c\xe8\xb8\x38\x03\x14\xd4\xb0\xa7\x3b\xac\x04\x63\x56\xbe\x10\x88\xbf\xce\x6c\x53\x22\xfe\xdc\xab\x87\x3e\xec\x01\x36\x35\x7e\x4b\xca\x7b\x74\x5e\xb6\x87\xfe\x10\x69\xe7\xae\x68\x31\x63\x90\x07\x5f\x4e\x34\xc1\xb1\xe6\xe8\x26\xe1\xf8\xef\x66\x26\x32\x53\x4c\xd8\x8d\xb5\x8d\x67\x4a\xdd\x32\x5e\xc5\xad\xcb\xdb\xd2\x91\x15\xf2\x77\xf7\x15\xcb\x0a\x29\x4a\xc3\xbe\xef\xfb\xb6\x5d\xb0\x97\x52\x83\xe8\x72\xd4\xf9\x57\xe3\x0f\xc6\xb9\x56\xfb\x07\x4b\xcb\xfa\xf0\x92\xf1\x9b\x72\xa1\xb4\x61\x55\x2d\x97\xbc\x5e\x51\xd2\x24\x1e\x5a\x9e\xf9\xa7\xce\xe5\x39\xb1\x5a\xa0\x34\x10\xcd\x13\xa0\x46\xbf\xba\x3b\x6d\x08\x1d\x4a\x41\xd3\x1e\xdb\x7d\x1e\xe2\xf9\xa9\x04\xf4\xcf\x9a\xca\x2c\x24\x30\x27\x41\x8a\x40\x12\x20\xbb\xd5\xe5\xec\x8a\xd2\xd4\xab\xa0\x2d\x7b\xb9\x44\x69\xf1\xf0\x71\xf0\xd8\xb5\xbe\xa4\x3a\x28\x08\x97\x10\x84\x97\xa7\xec\x79\x04\x6a\x6e\x4f\x11\x20\x7c\x96\x43\x76\x8d\xf9\xa2\x86\x4e\xb7\x41\xb1\x14\x8b\xa4\x11\x69\xd3\x9d\xd0\xa0\x0e\xca\x07\xf0\x31\x5b\xdd\x2d\x4a\x92\xfb\xdf\x41\xf1\xc4\x6b\x7d\x77\x74\x87\x13\xed\x18\xc9\x74\x7f\xf2\x4a\x9e\xfb\xc4\x57\x27\x98\x00\x52\xce\xd9\x1d\xf4\xd7\x96\x74\x6f\xef\x27\xc1\x2b\x19\x92\x65\x37\xc5\x63\x34\x25\xa3\x29\xd8\xc9\xdf\x08\x93\x7c\x3e\xb1\x27\xb2\xca\x95\xc4\x23\x31\x25\x1d\x22\x72\xff\x5a\x88\x06\x39\xbb\x7b\x7a\x46\xd5\x7c\x0e\x49\x44\xf4\xe2\x30\x59\xce\xd5\x96\x04\xa4\x4f\xcf\xed\xa7\x1d\x02\x86\xe8\x7d\x0a\x63\x84\x51\x7c\x43\xd0\x60\x70\x41\x61\xc1\x04\xd4\xa6\x35\xcf\x8b\xa2\x4d\xd8\xf8\xfb\x7e\xc2\xc6\x6f\x44\x75\x81\x48\x86\xa3\x5c\x83\x9f\x10\x53\x0a\xe6\x9b\x09\x1f\xe3\x77\x38\x9a\xe3\x74\x66\x98\xa4\xa7\x6a\x6c\x97\xbc\x0d\xe5\x3d\x80\x36\xd5\x6f\x5b\x2f\xa0\x35\x5e\x4b\x4c\xe7\x2f\xc4\x1d\x87\x92\x34\xa1\x50\xd2\x1c\x86\xc7\xbb\x83\x11\xf6\x1c\xa6\x5b\xc4\xba\x34\x4a\x94\xc4\xda\xad\x41\x93\x38\x15\xd7\xc6\x3a\x64\x1e\x10\x91\xa3\x8d\xd3\x52\x60\x12\xac\xb2\x09\x85\x96\x4d\x28\x3b\x03\xca\xbe\x40\x48\x5f\x3c\x09\x8e\x32\xe6\xb4\x52\x77\x44\xa6\x4a\x56\x67\x93\xa0\x5d\x4b\x95\x23\xb0\x60\xff\x11\x2e\xd0\xe1\xdb\x17\xa5\x62\xae\x1c\x60\x34\xdc\x21\x05\x41\xce\xe7\x69\x1e\xcf\x56\x52\x60\xbf\x1e\x94\x00\xfb\xd0\x1a\x0b\x94\x7c\x07\x3f\x60\x70\x1c\x30\xfd\x45\xd4\xac\x7c\xe4\xf5\x65\x2b\xb1\x8e\x2d\x8c\xa9\x7c\x34\xd8\x0b\x2c\xf7\x87\xd7\x90\x7c\xd9\x9f\x86\x17\xb0\x30\xf8\xdd\x84\xcd\x1a\xbd\x9a\xa9\x0f\x53\xf6\xc2\x22\xac\xe6\xac\x90\x77\x9d\x8f\x5d\x31\xc1\x3c\x7e\xe0\xb7\x99\xb8\x76\x59\x34\x4b\x6a\x04\x8e\x00\xd1\xee\x27\x20\x88\xf2\x08\x73\x69\xb4\x12\x75\x75\xf7\x48\xbc\xfa\x1b\x3e\x6d\xc9\x5e\xf1\xa1\x52\x5a\xb4\x4c\x26\xaf\x40\x69\xe1\x8e\xe5\x1d\x94\x44\xa5\x73\xbd\x5b\xa0\x51\x2c\x9e\x3d\xcd\xd5\x86\x7d\xf9\xd9\x57\x7f\x77\x26\x09\xcd\xd9\xad\x2c\xe5\x3a\xe4\xb5\x6c\xa8\xfe\xa9\x6a\x06\x05\xb0\x6a\xc3\x9e\x3e\xfb\xec\xf3\x29\xfb\x85\x17\x92\x22\x36\xa3\x20\xea\x81\xfe\xee\x52\x47\xa8\x41\x09\x07\x82\xe3\xcd\x0d\xc3\x6b\xab\xf5\xe1\x81\xd4\xb1\x87\xc0\xce\x60\xc2\xe8\x6e\x8b\x9b\x0e\xba\x31\xec\xd6\x4c\x7b\x66\xe9\xd4\x27\x7c\x0a\xf7\x42\xde\xa6\xa3\xd1\x9f\x7d\xf6\xf9\x17\xe8\x5c\x76\x4f\xdc\x81\xa4\x3b\x05\xfb\xae\x77\x12\xf4\x4f\x63\xeb\x29\x1c\x4e\x17\x61\x18\x6e\x33\x74\xf5\xb9\x4e\x52\x29\x82\x37\xc9\x3f\xf7\x61\xc1\x78\xff\xe5\x9d\xea\x1b\x04\x96\xd2\xf4\xd3\xf0\xfa\xd0\x94\x9a\x0e\x7d\x54\x37\xf4\x36\x1e\xff\x0c\x82\x2b\x79\x99\x87\x72\x89\x45\x72\x42\x74\x11\x16\xb2\x0c\xb1\xe2\xcf\x03\x10\xe4\x44\x7e\x86\x0a\xe7\xbc\x20\xbf\x3b\x25\xc0\xc6\x4e\x08\x17\x54\xdb\x76\x86\xe1\x70\xbe\xf4\x0a\xcf\xc1\xc0\xb6\x52\x26\x5a\xb8\xe2\x7f\x9f\x9f\x39\xa9\xc5\xd6\xe8\x01\xc8\x74\x33\x5a\xb4\x5d\x95\x0a\xd7\x31\x39\x2b\xe0\x50\x08\x50\x71\x1c\xea\xf8\x89\x7f\x58\x82\x62\x0f\xf6\x43\x8a\x8d\xba\xe9\x8b\x63\x5f\x2b\x2e\xea\xa6\xbf\x86\x20\x16\xab\xf1\xdd\x5a\xe7\xb2\xb0\x96\x18\xbc\xbe\x8b\xd8\x60\x92\x81\x6b\xf3\x79\x23\x4a\x51\x5b\x21\xb2\xf0\x20\xfa\xa5\xa6\x8b\x5c\xfb\x55\x54\x30\x92\x62\x6c\xfc\x19\xa7\x50\x37\xac\x90\xa5\x3d\x14\x59\xdb\xc0\xfe\x49\x92\x46\xbc\xd0\x6b\x0e\x47\xce\x02\xc9\xe9\x40\x54\xa8\xfb\x88\xb9\x30\xb5\x73\xc3\x65\xf1\xcd\xd3\x33\x47\x12\x8f\x28\x77\x86\x2c\x25\x31\x5a\x24\x26\xa1\xa0\xa1\xfd\xd3\xf9\x39\xe0\x47\x75\x13\x81\x3e\x3f\x87\xe2\xdf\xe7\xb3\x95\x11\xba\x1f\x3a\x25\xbb\xd8\x37\x68\xa4\xf0\x3d\x00\x3e\x27\xd4\xec\x3f\xe4\x52\x68\xc3\x97\x55\x07\x8e\xc3\x8c\x02\xc5\xfd\x7b\xb2\x64\x6f\xbf\xbb\xfc\xec\xb3\xcf\xfe\xce\xd0\x74\x02\x90\x11\x7e\x5a\x96\x99\xf8\xe6\xa9\xf6\xa8\xd1\x6c\x81\x28\xa8\xf9\x6a\x81\x5e\xe3\xa7\x4c\x43\x4d\x74\xa6\x8a\x5c\xd4\xe8\x9d\x2b\xd5\x7d\x3f\xc4\x67\x9f\x2f\x46\x81\xcc\xf9\xaa\x0b\xef\x40\xab\xa2\x72\xe5\xff\x79\x59\x2a\xb3\xbd\x46\xc5\xef\x7d\x2a\x4e\xee\xe0\xf8\x02\x78\x3e\xd3\xc3\x9e\x19\x37\x9a\x01\x20\xec\x9d\xfd\x1f\x53\x9e\x86\x9a\x53\xfa\xe4\x0e\x8c\x9d\x75\xb9\x01\xa4\x8f\x53\x05\x0c\xe8\x7a\x05\xdc\x46\x18\xf7\xc7\xf0\x43\xd2\x87\x03\xfd\x76\x76\xf9\x13\x76\x3e\x27\x31\x9c\xc0\x62\xff\x81\x73\xf4\xc5\xf4\xb0\xec\xc3\x42\x67\xf3\x38\x41\x2b\x28\x82\xa6\xcc\x45\xbd\xc6\xe4\x38\xa0\x3e\xa4\x08\x99\x2d\xf9\xed\xe2\x6a\xd2\x3d\xd4\x2d\xd1\x73\xbf\xf1\xb8\xa3\xd3\xd9\x99\x1e\x99\xf5\x46\x2c\xf1\xac\xa2\x91\xce\x70\x5b\xf6\x31\x29\x3e\x2f\x04\xe3\x5a\xa0\x68\x0c\xb0\x29\x4a\x80\xb7\xf4\xa3\x8c\x15\x8c\xbc\x09\xfb\x61\x7a\x65\xe4\xf6\xd6\xf3\xb9\xdb\xad\x8c\xea\x62\x80\x6e\x4f\x64\xf2\x5c\x59\xdb\x00\x58\x7c\x4e\x96\x2e\x72\xcb\x05\x49\xbe\xa3\x8a\xc8\x51\x9e\x9d\xaf\xe9\x9d\x52\x07\x66\x61\x5f\x0d\xa9\x47\x1e\xf1\x43\xf2\xb9\x29\x07\x1a\xbc\xaf\xe5\x33\x7e\xd5\x69\x5c\x66\x7f\xc3\x2a\xa8\xe4\xba\x06\x32\xc3\x65\x99\x2b\xad\x2b\x35\x7b\x2d\xee\x44\xbd\x3d\xc7\x9b\xf2\xac\x95\x05\x54\xa9\x7c\xe2\xca\x48\xe0\x50\x76\x02\x60\x83\xba\x9e\x14\xf1\xce\x62\xb1\x76\xc6\x15\xe5\x30\xb7\x7e\xb6\x7f\xd7\x22\x5e\xb2\x30\x25\x50\xb9\x34\x57\x10\xb5\xc0\x21\xbb\x6d\x74\xe5\x07\x4e\x8f\xbe\x2d\xc6\xa1\x79\x86\xfe\xde\x73\x2d\x73\xc1\xf2\x7a\x75\x6e\x27\xd0\x1f\x3c\xbe\x8e\x87\x7d\x50\x5a\xa7\x70\x98\xa6\xa3\xbf\x35\x08\xdd\x7b\xb4\xb0\xaf\x36\xe7\x39\x43\xbc\x4a\x2f\x2b\x21\x2c\x25\xeb\x74\x13\xe9\x21\x9d\xbf\xe1\x22\xae\x4d\x68\xb9\xf4\xab\x04\x76\x7e\x4e\x68\x7e\x83\x53\x3c\xeb\x9a\xf4\x3e\x7f\xd2\x0f\x69\x57\x5a\x24\x42\x9c\x7c\xd8\x6d\x02\x89\xd2\x2a\x71\xca\xce\x8c\xde\xb7\x93\xa1\x6c\x70\x43\x2b\xf6\x90\x07\xf3\xe1\xf2\x8c\xeb\x38\xdc\x2a\xd2\x48\x5c\xd5\x50\xab\x12\x3c\xdd\xb4\x1d\x82\x63\x4d\xe4\x9b\x56\x64\x2f\x2b\x69\x8c\xb3\xce\xd5\x11\xd4\x67\x9c\xb4\x0a\x33\x4e\x18\xfb\x5e\x1a\xbb\xb4\xa5\xc1\xfb\x0a\x61\x32\xa7\x86\x2f\x11\xfb\xf8\x9e\xd1\x95\x3e\x86\xb6\x05\x34\x62\x1a\x26\x00\xa9\x50\x65\x09\x51\x8f\xea\x80\x6b\xac\xaa\xd5\x87\x15\xd3\x2a\xbb\xed\x6d\x0a\xdc\x47\xf6\x2b\xfc\x04\xd1\x6e\x15\x8e\x39\x3f\x6f\x4a\xf9\xe1\x1c\xe1\x7d\xf3\x04\x6e\x4b\x47\x19\x3b\xdc\x61\x82\x60\x55\xc9\x66\x2b\xaf\x66\x82\xe1\x62\xdf\x71\x67\xab\x64\xa8\xff\x9f\x56\x51\x30\xc3\xff\x7f\x8a\x6e\x67\xca\x83\x0c\x70\x2d\x50\x8c\x21\xc3\x9b\xab\xe8\x7a\x00\xf4\x39\x38\xc9\xbe\x7e\xf2\xa4\x50\x19\xb7\x46\xd7\xd7\x17\x4f\x78\x25\xc3\x11\x35\x01\x86\x79\x3c\x98\x66\xc9\xb8\x61\x96\x21\x06\x34\xa5\x97\x48\x53\xe3\x35\xe4\x41\xb9\x05\x94\xfe\x5f\x51\x8f\xbd\x00\x58\xc7\x30\x84\x48\x04\xf5\xa1\xa0\x17\xbb\x32\xcd\xa3\x36\x82\x7d\xf6\xdd\x6f\x2e\xa8\xdb\xd2\x4e\xdc\xb2\x02\x40\xb2\x3b\xed\xb0\x27\x44\x2a\x8f\x60\xd1\x81\x2d\xca\x9d\x9d\x89\x14\xd5\xfd\x42\x2c\xd5\xc0\xe5\x6b\x7a\x04\xf0\x7e\x0e\xf2\xc5\x6d\xe3\x5f\xc4\xf3\x44\xd8\xd4\xc9\x9e\xbc\x81\x8e\x18\xe4\x26\xbe\x74\x1a\x68\xdd\xa0\x78\x1a\x60\xcf\x42\xf6\x49\xab\xdc\x50\x30\x37\xb5\xe1\xd0\x28\x26\xe4\x9c\x07\xbf\x70\xd4\x4b\x23\x7c\x49\x10\xc1\xd9\x46\xb5\xcd\x06\xdc\x90\x78\x83\x2a\x35\x7b\x76\x48\x13\x04\x92\x6c\x0e\xcd\x52\x57\x32\x6c\x60\x26\x7f\x32\xd1\x32\x31\xa4\x75\x24\xde\x67\xf2\xba\x3e\x9d\xb2\xd7\xe3\x51\xb3\x26\xee\xd3\x0d\x10\x9f\x6d\x0d\xf1\x00\x82\xf6\x5a\xdc\x63\x8d\xec\xb8\x21\x28\x85\xe3\x4c\xe0\x3d\xf4\x79\x81\xcf\x50\xcd\xa9\xba\x76\x8f\xe4\x59\x44\x6b\x88\x08\x07\x9a\xfe\xee\x2a\x6f\x43\xb1\xe9\x56\x79\xaa\x10\xbd\x9d\x80\x1c\x2d\x77\x29\x32\x68\xa5\x52\xd9\xef\x10\x47\x85\xe2\x23\x42\xfd\xef\xd8\xdb\xe9\xc3\x63\x5e\xbf\x79\x07\x11\x40\xac\xa9\xf0\x80\x53\x44\x2d\x7c\xf0\xe3\x31\xf6\x65\x6b\xf6\x4f\xe8\xcb\x1d\x89\x4d\x8e\x36\x00\xb2\x1b\xa9\x45\x5a\xf1\x1b\x20\x39\x4f\x33\xb4\x16\x12\xf9\xc4\x19\x2b\xf0\x47\xa8\x6b\x6b\x49\x43\x3d\x80\xc6\xb1\xa3\x74\xc5\xda\x3d\x1b\xfa\xb9\x00\x5d\xb4\x29\x92\x09\xb5\x04\x1a\xf2\xe2\xde\x1a\xf3\xe4\xa9\x44\xdb\x39\xed\xc1\x45\xc7\x09\xfb\x52\x0b\x1c\x95\xa8\x8d\x3c\x11\x2e\x90\x46\x0a\xbd\x11\x20\xbe\xd6\x02\xd9\x09\xa0\x7a\xfd\xe6\x9d\xcb\xbc\x3a\x8d\x94\xbc\x78\x7d\xed\xc3\x2c\x7a\xb8\x5f\x0a\x73\xaf\xea\xdb\xdf\xed\x7b\x3e\x1d\x8c\x0c\x8c\x27\xc2\x64\x4f\xac\xd9\xa8\x21\x74\x47\xd2\xbd\x1f\xd0\x81\xe2\x36\x7e\xfb\x51\x96\xcd\x87\x37\x65\xb1\xfa\x7d\xc4\x92\x4b\xfd\xe4\x71\x35\x1e\x38\x48\xfa\x60\xba\xd0\xd6\x47\x15\x77\x61\xb0\x9c\xe2\x51\x1c\x32\x2e\xf9\xf8\xd6\x87\x4f\x4c\x7d\x08\xb4\xe4\x11\xfa\x1d\x6a\x7e\xde\xa5\x26\x11\xe2\x49\x5e\xf6\x93\xd0\xce\xfc\xe5\x07\x23\xea\x92\x17\xaf\xed\xd9\x91\x42\xe6\xfa\xb4\xd7\x3a\xa2\xda\x9f\x3a\xb0\xfc\xbd\xea\xe8\x36\x78\x51\x75\x14\x11\x41\x9a\x26\x1a\xbd\x4d\x48\x77\x84\xe6\x79\x5e\x0b\xed\xb8\x09\x77\x7f\x08\xcf\x92\xed\xf2\xf5\xf3\x9f\x5e\x92\x03\x36\x06\x8d\x5b\x46\xf4\x72\x48\x78\x9b\xf8\x83\xb9\xcb\xd2\xc4\xe1\x14\xd6\xa9\x7f\x7d\x4d\xa1\x5f\x4e\x7a\x7c\x6c\xc6\x25\x39\xc9\xa2\x0b\x4c\xb3\xaa\x44\xe8\xdf\x94\x20\x60\x14\xa3\xac\xaf\x57\x57\x93\xee\x70\x76\x1c\xdf\x20\x0f\x81\xcd\xd0\x7a\xb6\x6b\xeb\x39\xab\x45\xa6\xea\xbc\x2b\x0c\x3d\x85\x45\x36\x09\x43\x44\x50\x66\x25\xcc\x3e\xda\x51\x0e\xc0\xe1\x6c\xff\xf1\x03\xc1\xd9\x72\x4d\x79\x99\x58\x08\x9e\x43\xb1\xab\x44\x38\xe8\x42\xaf\xdb\x2f\x11\x2f\xe5\x5c\x96\x62\x1c\x31\xe8\x8a\x22\x51\x5f\x40\x37\x3f\x57\xa3\xac\x99\xe5\x6a\xc9\x5d\xe3\x10\x1e\xc6\x2b\x13\xf9\xf3\x21\x78\x2d\x19\x94\x46\x33\xa8\xd8\xc8\xac\x69\x85\xee\x22\x02\x58\x12\xc0\x7b\x51\xc0\xdd\xa1\x1f\x39\xb0\xd1\x05\x21\x3a\x6e\x62\xf3\x0f\x6e\x70\xf0\x03\x73\xd6\x4f\x75\x5f\xd6\x5e\x7b\x9a\xfd\xc7\xf2\x32\x0c\x75\x42\x66\xea\xfd\x54\xb4\xd7\xca\xe3\xb6\xb5\x0e\xd3\xda\x7b\x5c\x3b\x46\xa3\x45\x4e\x24\x07\x39\x0e\xa8\xb9\x50\x08\xf3\x15\x65\x0e\x2d\xdd\x74\x74\x37\xd6\x37\x10\x2f\x57\x78\x67\x16\x02\x07\x80\xb9\x21\xd4\x0c\x3c\xb8\xfd\xbb\x43\xac\x38\x2d\x26\xae\x7d\x8e\xbb\x53\x7e\xf1\xfa\x3a\xe4\x2d\x8c\x38\x2e\x6c\x62\xd0\x6e\x76\x89\xe3\x4f\x6c\x88\x3c\x2a\xcb\xe3\xc5\xeb\xeb\x03\x10\xe7\xea\x9f\x2f\x5e\x27\x72\x38\x92\x4c\xf1\x7e\x88\xf5\x8f\x8d\xe4\x45\xb4\x44\x81\x7b\x6d\xc8\x2c\xde\x77\x36\x65\x4a\x0f\x2b\x2a\x88\x6a\xb4\x1f\x16\x61\x97\xf7\xcd\x7f\xfc\x82\x5a\xa7\x54\xba\xf8\x3a\x03\x42\xfa\x73\xab\xac\xbb\xeb\x82\xcd\xa2\xb8\xf7\x78\xc3\xc7\xeb\xdc\xb7\xbf\x78\x03\x20\x9e\xe9\xd7\xec\xb9\x66\xbf\xca\x32\x57\xf7\x9a\x51\x4b\xab\x62\x95\x16\xa6\xf1\x65\xc4\x01\x43\xb8\xaf\xfc\xe7\x8b\xd7\xba\x9b\x81\xfb\xd5\x0e\x2b\xa0\xd1\x46\x2d\xad\x80\xa1\x5b\x63\x24\x8f\x7d\xe2\x33\xf9\x42\x80\x88\x56\x92\xed\x3b\xc0\x5f\x6a\x58\xba\x85\xef\x05\x76\x88\x17\xaf\xaf\xa9\x4e\x18\xd7\xec\x35\xd4\x58\x28\x73\x87\xa5\x05\xee\x47\xc4\x74\x04\xbc\xf3\x59\x39\x6d\x1e\x0f\x8d\x97\x31\xbc\xce\x16\x98\x66\x44\x2c\x1c\xd7\x0f\xde\x95\xfb\x03\xa8\x9d\x71\x43\x54\x55\xb8\x52\x88\x2e\x7f\xf7\xe3\xcb\xab\x12\xca\x8f\x0c\x94\x26\xf0\xdc\x88\x5e\xeb\x70\xc5\x95\x69\x88\xdf\x09\x75\x08\x46\x58\x75\x67\x74\xe5\x6c\x28\x2b\x65\x5d\x25\x82\xf1\x85\x08\x3a\xf0\xb6\x2b\x43\xd0\xf9\x7c\x6d\x12\xbf\xc4\xb9\x8b\x31\x35\x02\xfa\x10\xdb\x12\x78\x6f\x41\x80\x6e\x31\x00\x80\xba\x75\x41\x00\x3f\x5c\xbb\xec\x41\xb8\x41\x74\x23\xbb\xe0\x89\x92\x3a\x40\x8f\x49\xd3\x77\xc2\x48\xc3\x0c\x08\x24\x56\xe9\x18\x27\x95\xfe\x5d\xb6\x49\x36\xe1\x4d\x4c\x3c\xdf\xae\x58\xc6\xf9\xc1\x45\x74\x00\xe2\xb1\x84\xf4\x3c\x66\x6d\x66\xc9\x10\x8b\xd3\x41\x44\xb5\x3b\xc4\x68\x79\xc5\x58\x85\xed\x0b\x58\xec\x20\x6f\x80\x58\xd7\xbb\xe8\xe6\x39\x61\xb2\x34\x35\xde\xf5\x2f\x8c\xa9\xd6\x89\x5f\xf8\x8a\x7d\x5f\xf3\x12\xba\xe9\x5e\x2e\x44\x76\xab\xbf\xc6\xb0\x03\xd7\x79\x90\xaa\x13\x61\x59\x54\x0b\xfe\xbc\xf2\xb9\xb6\xcb\x65\x53\x92\x33\xfd\x6b\x18\x91\xfd\xf6\x5a\xe5\x22\x96\xc7\xd1\x07\x29\xa5\x8d\xf8\x20\xb2\x10\x0f\x62\xcd\x3f\x5e\x61\xd5\xc6\xb9\xdd\xf1\x0b\xf4\x53\x98\x0c\xd2\xf5\xe0\x9e\x5c\xbb\x43\x16\xa5\x0d\x40\x26\xdc\x95\x83\x00\x59\x6d\x3c\x33\x18\x92\x7d\x2f\x66\x74\xbd\x07\x59\x74\xd6\x1e\xc1\x50\x6e\x8c\x26\xab\x8d\x66\x7f\xbb\xf8\xdb\x05\x1a\xac\x59\xe5\xfd\xc5\x7f\xbb\xf8\xdb\x53\xf8\xb1\xc9\x2b\xaf\x9d\xdd\xa5\x26\xd9\x36\x55\xad\x3e\x48\x91\x94\x3e\x66\xaa\x8c\xe2\x2c\xf0\x52\x02\x60\xaa\x39\xa4\x95\x90\x03\x32\x04\x95\x8b\xcc\xdd\x51\x04\x4c\x5b\x91\xc4\x35\x44\xaf\x71\x24\x35\x88\x23\xdd\xa7\x80\xed\x8f\x91\x6d\x09\x4e\xab\xc8\xea\xa2\xc5\xe1\x2c\x65\x17\x06\x90\xb4\x1d\x4f\xb6\xf7\x69\x9a\x53\x8c\xe4\x74\x7d\x07\x80\x1f\x3e\xaa\x47\x11\x6a\xf1\xc9\x04\xf0\xb3\xa6\x8a\x2c\x5b\xe1\x42\x4b\xfe\x81\x9a\x31\x42\xec\x69\xf0\xb9\xd6\x42\x5b\xcb\x1c\xf2\xdb\xa0\xd5\x0d\xc4\xe4\xc9\x7f\x37\xc1\x79\xd3\x3d\xcc\x4c\x36\xb4\x98\x8f\xf4\xc0\xa8\x95\xd3\xe4\x27\x5e\x38\x4d\xfe\xe7\xba\x39\xcd\xba\xb1\x94\xfe\x73\xd9\x1c\x67\xd9\x58\x9d\x34\x71\x21\xd2\xf9\x5a\x27\xeb\x4e\x4b\xc8\x02\x5d\xbf\xf5\xc4\xa7\xe2\x3f\x97\xd3\x47\xb2\x0d\x61\x84\xb8\x87\xa5\xcd\x5f\xab\x5a\x19\x95\xa9\xe2\x1b\x93\x55\x9f\x32\x9f\xe5\xb1\x61\xd1\x6d\xbd\xe0\x92\xd4\xfb\xde\x45\xb7\xcb\x82\xc3\xcc\x10\xbf\xe8\xa2\x72\x7f\x52\xb3\x25\xaf\x6f\x45\xce\xbc\x9c\x32\x48\x44\x80\xfb\x04\x5a\x12\xbe\xca\x15\x5a\x9b\xc0\x3e\xe4\x16\x24\xb3\x56\x05\x37\x56\x88\xa9\x32\x3d\x79\x43\x46\x78\xb0\x3e\xc2\x35\x0d\xbb\xe2\x9f\x4b\xfa\x8f\xb5\xa4\x9b\xfc\xcf\x25\x7d\xaa\x25\x0d\xd1\x97\x13\xca\xa2\x6b\xf9\x60\xd7\xad\x64\x8c\xda\x0c\xe5\x32\x22\xa7\xfe\x87\x95\x2f\xe0\xc3\xd3\xb2\x25\xb0\xb8\x36\xc5\x6e\x42\xeb\x16\xb8\xf7\x80\xbc\xfa\x96\xd8\x18\xc5\x64\x79\xa7\x6e\x05\x63\x4f\x00\x69\x87\x2c\x23\x89\x72\x1c\x7e\x02\x42\xfe\x84\x62\x2e\xa3\xf2\xda\xbe\x1a\x93\x15\xfd\x82\x32\x66\x89\x61\x1e\x98\x13\x34\x90\x1a\xab\x03\xb6\xb8\x00\x80\x21\x87\x8a\x69\xf9\x11\x0a\x6e\x44\x99\xad\x26\x50\xec\x49\x2f\x54\xd1\xdb\xc1\xc7\xd3\xbb\xfd\xbd\x76\x00\x1c\xe1\xa9\x10\x18\x78\x2c\x16\xf2\x66\x63\x60\xf3\xdb\xa6\x64\x4f\x2f\x2e\x98\x34\xde\x45\xe4\x2a\xd2\xf6\xb4\x6b\x89\x33\xbe\xe1\x96\x85\x37\x54\xbd\x8e\x32\xef\x97\x82\xfb\x2e\x81\x50\xc1\x57\x1a\x66\xf8\x2d\x5d\x4c\x78\x2f\x55\x6c\xc3\x3a\x23\xd9\x93\xc4\x67\xf6\xc7\x6f\xb9\x5c\x12\x5f\x36\x05\xf4\x96\x86\xde\x9a\x84\x37\x68\x3d\x5e\x19\xf0\x1b\xdb\xe1\xd2\x79\xf9\x26\x40\x28\x49\xe9\x77\x1a\x57\x1b\xf5\xf2\xb0\x8a\xe3\x8b\x0b\xb3\x98\xb0\xbf\x5f\x98\x05\x60\xf8\xf7\xbf\x9b\x05\xab\x44\x9d\x89\xd2\x48\x1a\x9d\x62\xb0\xbc\x26\x11\xb5\xe7\x86\x2f\xca\x86\x8d\x52\x58\x21\x67\xa2\xc6\x4e\xac\xc2\x44\xbc\xb6\xc4\x7e\x76\x81\xd4\xb1\x23\x46\x43\x78\xcd\xff\xc5\x45\x88\xd0\xf9\x7b\xfa\xce\x16\xe2\xe8\x0a\x34\x11\x86\x03\x82\x39\xf1\x19\x4e\xab\x4a\x4c\x42\x60\x86\xa5\x4c\x1c\xdb\x32\x42\x46\xfb\xd2\x71\xb3\x10\x19\xe2\x23\x42\xc2\x20\x2e\x73\x39\x09\xa2\xd9\x32\x76\x46\xcd\x11\xb2\x07\x3a\xf5\x6b\x66\xcd\xe5\x04\xde\x5a\xad\x18\xd7\x54\xc3\x35\x9d\x79\x12\xdd\xf2\xb3\x0f\x0c\x4b\x23\x5b\xd6\x12\x8b\xe1\x05\xb9\x01\xe9\x87\x58\x1c\x0a\x9e\x81\xdc\xde\x38\xd2\xc7\x61\x4b\x1e\xe7\xfe\x8b\x94\x64\xf3\xf2\xb2\xb6\xb0\x06\x86\xd6\x2a\x93\xb0\xf3\xf7\x90\x60\x30\x84\x08\xfd\xa9\xaf\xae\x7c\x10\x11\x44\xb5\x9b\xa6\x2e\xd3\x4b\x37\x88\x19\x84\xb2\xa9\xe1\x92\x1a\x56\xad\xab\xf8\xe0\xfa\x39\x25\x93\x1a\x51\xe7\xbf\x25\xa6\xe3\xc4\xf3\xe5\x50\x1c\xd1\x21\xc5\xb3\xc3\xc9\x78\xa0\x5d\xc5\x33\x06\x3a\x49\x28\xe8\x08\x07\xd7\xcd\xad\xb5\x91\x94\x7a\x04\x51\xf5\x25\xfd\x3a\xf2\x19\x2b\xcf\xce\x3c\xda\xc4\x62\xc8\xef\xa5\x82\x7b\xd0\xe4\x4d\x10\xd3\x49\xb4\x32\xc0\x56\xfa\xdb\x45\x1c\x57\x02\x3f\x59\x55\xf5\xee\xf2\xca\xfe\xee\x4c\xb8\xa4\x0a\xdd\x1a\x89\x1e\xb5\xf2\xa8\x6f\x5c\x20\x44\xbc\x2f\x33\x15\xd9\xc1\xaf\x5d\x2c\x4c\x00\xa5\xca\x20\x9a\x31\xd6\x27\x13\x4d\x7b\x20\xb9\xc2\xcc\x95\xa3\x4a\xa6\x1b\xe7\x23\x16\x4c\x37\x05\x2a\x58\x3e\x46\xf0\x26\x1d\xc9\xf3\xaf\xa4\x52\x47\x97\x7a\xb1\xe4\xf9\xc3\x97\x27\x05\x04\x2b\xd7\x68\x78\x9e\x69\x86\xe2\x43\x25\xf4\x61\x0f\xf7\x53\x8c\xb8\xca\x10\x8f\x20\x72\x5e\xd7\x46\xf4\xa8\x55\x13\x6d\x1d\xae\x50\x78\x57\x3f\x7b\xb9\x46\xe3\xbf\x4f\xb6\x31\x49\x2f\x92\x6f\x7a\xe1\x0a\xcc\xd8\x04\x20\x94\x9f\xea\x87\x9a\x4c\xd1\xcd\xe6\x68\x8b\xc2\x0b\xe7\x11\xad\x89\x84\x25\x07\x32\x26\x3c\x61\xb6\xb1\x25\x0e\x21\x57\x2d\x99\x4a\x74\xdf\x18\xb9\xea\x59\x72\x23\x29\xb5\x9f\xb9\xd2\x5e\x66\x30\x8d\xc4\x4e\x09\xa2\x1b\x59\x2c\x21\xe7\x38\xa8\xfc\x49\xe8\xa4\x08\x50\x3d\x69\xc2\x5a\x01\x49\xcd\xc7\x58\x39\x43\x16\x0e\xde\x94\x3f\x1e\x2b\xc7\x4f\x32\x94\x90\xdf\x69\x81\x38\x81\x76\x8e\x34\x8b\x7f\xc2\x76\x37\xc1\x91\x0b\xc3\x6a\x59\x8f\x9b\xaf\x4c\x06\xea\x48\x40\x21\x52\x50\x30\x12\x9a\xd3\x60\xe9\x01\x4a\x30\x73\xa1\xe4\xd4\x33\x81\x52\x3e\x7b\x62\xf4\x38\xc8\x0c\x08\x41\x7b\x20\x1f\x63\x4a\xc7\x41\x7f\x40\x72\x4e\x01\x5c\x50\xed\xfb\x11\xc4\x4f\x95\xe8\xee\x3a\x63\xb2\xa4\x7d\x8c\x97\x81\x81\xec\xd5\x95\x8e\xbd\x58\xc7\x50\x85\x41\xfb\x81\x32\xd4\x42\x63\x17\x9a\xf9\x5c\x96\x96\x60\xb0\xf5\x95\xbb\xf2\x5a\xdf\x4b\x28\xef\xd2\x86\x3a\x57\x75\xba\x6e\x3c\xcb\x77\x08\x0c\x6c\x2b\xc6\x4f\x1c\xd4\x4f\xe2\xf0\xae\xae\x5d\xd8\x6b\x10\x9e\x9d\x69\x87\xee\x73\x87\x6d\xa8\x58\xf6\x09\x66\xa0\xbf\xba\xfa\x64\xc7\x13\x1c\xb7\x20\x48\xc9\x7c\xd2\x67\x4b\x92\x5e\x89\xd7\x04\x14\x30\xa1\x58\x5d\xf4\x8e\xe2\xfd\xdc\x86\xbe\xa8\xd6\x3a\x8a\x92\xa9\x3e\xa3\x7a\x33\xb5\x08\xe5\x71\xec\x78\xb5\xab\xce\xe6\x2a\x37\xad\x52\xcd\xac\xa8\x93\xaf\x8f\xe7\xa6\x40\x5d\x28\xc7\x80\x65\x3b\xa8\x5f\x0a\xb8\x2c\x44\x69\xda\x36\x56\x82\x6d\x49\x4e\x43\x95\x63\x10\xf9\x6d\xd8\x19\x46\xd8\x66\x3d\xdc\x71\x1b\xc5\x27\x56\x4c\x3f\x19\x71\x54\x9d\xba\x08\xdd\x04\xf1\x25\xcf\x45\x5c\x88\x3c\xda\x1f\x61\x67\xc4\xad\xd1\x52\xcc\x5b\x82\xfd\x41\xd6\x48\xad\x38\x5b\x23\xa4\x98\xb8\x80\x69\x22\x21\x65\x51\x12\x42\x43\x53\x2c\x56\x71\xc2\x18\xb4\x6a\x4a\x24\x71\xd2\x3d\x77\x0f\xe0\xc0\x7c\xc9\xca\x2e\x12\xe0\xcc\xb1\x52\x96\xa9\x52\x8b\xac\x31\x92\xa2\xc4\x47\xd8\x83\x3b\xd8\x82\xc9\x19\xac\xdf\x1e\x8c\x6c\xc1\xae\x31\x98\xc6\xd5\x92\xcf\x99\x62\xbc\x44\xe2\xae\xee\x28\x9f\xad\xc2\x96\x36\xa9\xcf\xe8\x5c\xf8\x10\xfa\x33\xf5\x85\x5a\xe5\x97\x05\x27\xc0\x21\x54\x69\x50\x56\xd3\xf5\x1a\x92\xd0\xd9\x45\x4b\xa6\x1a\x32\x1a\xd2\x2d\xed\x34\x8f\x6b\x5f\xb5\xe7\x77\xe8\x58\xf5\xed\xa7\xf6\x68\xf2\x5d\xd5\xb7\x87\xda\x6b\x3b\x9b\xfb\xc8\xbe\xbd\xda\xa3\xbb\xc0\x21\xd5\x17\xcc\x27\x69\x46\xa9\x35\xab\xd2\x30\x1d\xf7\x4f\xb5\xe6\xd4\x5a\x9f\x6a\x3a\x8d\x5a\xfa\x4e\xa6\x15\xbe\xdd\xd4\xa0\xe9\x32\xe6\x8c\xbc\x76\xb9\x39\xdb\x68\x24\x6a\xc5\x90\x38\x48\xe2\x44\x62\x9f\xf0\x33\x26\xde\xfc\x47\x68\x15\x52\x14\x61\x14\x89\xf6\x8d\x47\x4d\x43\x6e\x5c\x65\x39\xe6\x1a\x26\x62\xdd\x63\x9e\x74\xaf\xb2\xa3\x26\xd3\xf5\x27\x35\x0f\xc9\x4a\x03\xcd\xbc\x63\x34\xf7\x04\x0e\x1d\xd0\x68\x76\x72\x1c\x8a\x45\xaa\x66\x2b\x3f\x1b\xe4\x7c\x77\x21\x23\x20\x2c\xc1\xf9\xf1\x5b\xd1\x94\xb8\x31\x30\xc9\xb0\xab\xec\xb0\x8f\x74\x2c\x6d\x1d\x89\xce\x06\x4b\x9b\x62\x10\x46\x6f\x35\xa4\xab\xc7\x59\xd9\x63\xb7\x1a\xaf\x56\xc7\x59\xd9\x63\xb6\x9a\x9e\x0d\x75\x8d\x81\xdb\x52\x8d\xeb\x0c\xdb\x2d\x35\x70\x98\x4d\x53\x1a\x59\x38\x86\x53\xf1\x36\x84\x88\x3f\x4d\xc2\xab\x9e\xe1\x16\x0f\x2a\x22\x18\x8a\xac\x03\xd9\xdb\x1b\x50\x8c\xbf\xcb\x01\xdb\x47\xbd\x77\x2d\xd6\x01\xa8\xdb\x58\xad\x9d\xad\x81\x84\xfe\x81\xad\xd6\x53\x2a\xb0\xc7\x6e\xc6\x6e\x52\x53\xeb\x55\x54\x8f\x7b\xbf\xd7\xdc\xdd\xd6\xd4\x75\xab\x79\xcb\x53\xfe\x46\xfd\xe3\x22\xb1\xb6\x3b\xe5\xef\xa8\x7f\xc6\x29\x99\x75\x0a\x06\x80\x8e\x57\x32\x4c\x7c\xa8\x64\x6d\xd5\x3b\xd5\xf7\xec\x55\x34\x6e\x5d\xef\xa8\x6c\xd6\x2b\x1a\xbf\x05\xad\x57\x36\x5b\xd9\x91\x08\xf3\x18\xca\x62\x0b\x63\x67\x7f\xf5\xe0\xd4\xc2\x80\x43\xf8\x63\xb1\x6b\x0e\xe5\x1d\x1c\xe9\x19\x4c\xec\x15\x3a\xe2\x1d\xcc\x2b\xe8\x92\x9d\xb7\x3b\x1e\xf3\xa3\xf9\x05\xd7\x59\x2c\x5d\xb7\xd2\x47\x72\x66\xfc\x0f\x71\x85\x1d\x41\x51\xc4\x66\xfd\x63\xb5\x1f\xfe\x74\x83\xed\xe0\x06\x8b\x8f\xfa\x87\x5c\xca\x61\x19\x77\x57\xde\xbe\xe7\x83\x78\x29\x02\xf4\x93\xba\x7f\xba\x9e\x9f\x6d\xd6\x59\xd8\x09\xb3\x06\xbc\x82\x71\x1f\xbb\x4d\x4e\x9d\x6f\x57\xde\xc3\x44\xea\x3f\xd4\x2b\x09\x9d\xf7\x92\x86\x25\x75\x74\x71\x82\x85\x6e\xf1\xf5\xb3\x64\xcb\x6f\xd5\xdb\x27\x50\xdb\x87\x98\x0e\xaa\x2d\x1f\xb4\xbc\x0d\xad\x50\x14\x39\x9b\x71\x2d\xb3\x10\x24\x0c\xe2\x38\xa6\xbb\x5c\x7f\x75\x35\x9e\x86\x1b\x5b\x63\x95\x97\x2b\x48\x3e\xe9\x56\xf5\xc1\x1d\xa9\x29\xf1\x6c\xb2\x50\xf7\x4c\x2c\x2b\xb3\x8a\x8b\xf7\x3c\xcf\x5d\x5c\x7b\xcf\x45\x63\xa7\x4a\xd0\x1d\x75\xae\x72\xea\x06\x60\xba\x7b\xc7\x10\xda\xed\x82\x7e\x31\x2b\x04\x3b\x49\x79\xbd\x81\xed\x10\xa0\x29\x06\xae\x74\xcc\x37\x11\xe1\x0e\xdb\x55\xc0\xb4\x80\xaf\xda\x20\x66\x2a\x84\x74\x87\x03\x3f\x20\x06\x38\xc3\x56\x90\xa9\x1a\xbd\x83\xb9\xd3\x62\x6e\x1a\x0e\xc9\x29\x7b\x53\x66\xee\xde\x10\xba\xa9\x50\x31\x1e\x57\x22\xd1\x2c\xa8\xd7\xb9\x9a\x77\xc2\xea\x01\xa2\xa3\x45\xee\x09\x01\xad\x54\x70\xce\x5e\xe9\xcc\x65\xad\x4d\x94\x87\xe2\xfb\xae\xd0\x94\x08\x0f\x3b\x2b\xe7\xcc\x49\x0a\x7a\xb6\x29\xeb\x95\x59\x4b\x25\x01\x63\x8f\x21\xf2\x28\x76\xcb\xa6\x30\xb2\x2a\x88\xa5\xdb\x2f\x03\xfc\xde\x2a\xb5\xd6\x5c\x76\x5f\x09\xe6\x5e\x11\xb1\x67\x8d\x61\xa5\x42\x81\xb0\xa4\xf3\x5d\x54\x22\x42\x01\x71\x57\xf6\x08\xde\xed\x4f\xd6\xb3\x42\x5a\x8c\xf7\x0b\xe5\x2a\x2c\x14\xe0\x2c\xf1\xac\x73\xd3\x8b\x22\x5c\x46\xc9\x01\x6e\x4d\x58\x08\xae\x1d\x2f\x66\x6e\xb4\xd6\x42\xba\x95\x83\x68\x0e\x0d\xe0\xd7\x42\x84\xe7\x0b\xac\x43\x1b\x64\xcf\x81\xec\x5d\xd0\x84\x67\xb1\x4a\x33\x19\xd2\xe1\x61\xc5\x46\x70\xf1\x67\x17\x19\xd3\x01\x0c\x95\x24\x4a\x75\x8f\x4b\x71\x80\x9e\x7b\x4b\xea\x4b\x87\x6b\xb7\xda\xec\x36\xe2\x09\xe1\x3f\xa6\xd3\xa7\xbb\x0c\xf0\x47\xd7\x89\xa5\x0f\x26\x29\x29\x3b\xd5\x62\xdd\x83\x70\xb3\x15\xec\x52\xec\x37\x43\x25\xf2\x38\x95\x77\xe5\xbe\xc7\x48\x7c\x71\x07\xf7\x2d\xb0\xdd\x41\x30\xa1\x4e\xa1\x63\x6a\x8b\x46\x2d\x96\xd6\xa5\x85\x21\x5e\x5d\xdd\x7d\xee\x03\xca\xb8\x17\xb1\xee\x90\xd8\x7b\xc9\x6f\x26\x83\x03\xc6\xaa\x73\xb6\xc2\xce\xde\x7e\x1e\xd8\x97\x1b\xfb\xf4\x85\xdd\x21\x2e\x59\xbc\x65\xe7\xee\x0d\xb2\x81\xb5\xab\x7e\xe2\x2e\xad\x53\x94\x77\xb2\x56\x25\x34\xca\x9c\x4b\x51\xf4\x35\x39\xb1\x27\xa7\xdf\xc3\x97\xd1\x45\xbb\xb5\x0b\x9b\x25\x98\x7b\x77\x92\x27\xc0\xee\x78\x2d\xe1\x41\x27\x6f\x73\xc4\x25\x57\xb7\xda\x15\x48\x51\x0f\x74\x68\x8d\x0e\x6b\xc8\x65\x1d\xe2\x2f\xde\xb7\xee\xd1\x9e\xb2\xe7\xd1\x1c\xf0\x2d\x6f\x41\xc1\x29\x42\x5a\x80\xce\x52\xf2\xdb\x52\x34\xec\xf8\xac\x3c\xac\x76\xb5\xe4\xd5\x36\xf4\x77\x93\xea\xdd\x44\xc6\xf2\x00\x57\x58\x00\x7a\x20\xf2\x27\x30\xe3\x74\xbb\x98\xbe\x45\x11\xfe\x74\x86\x40\x23\x82\x29\x12\xf5\xc7\xd6\xfd\x33\xef\x90\xff\xb0\x24\xc7\x2a\xbc\x56\xed\x9e\xdf\x8a\xd5\x78\x32\xcf\xb9\x2c\xa2\xe0\xcb\xf0\x3c\x00\x64\xb7\x62\xb5\x81\xac\xcf\x8d\xb1\xaf\x26\x51\x9c\x2d\x50\x56\xcc\x1d\x34\x8a\xab\x8c\x8f\xbc\xe8\xac\xe5\xb2\x18\x53\x27\x79\x34\x5d\xd6\x6f\x0f\xfd\x14\xb1\x86\x41\x48\x05\xed\x01\xb5\x0f\x2d\xa6\xec\x0a\xfb\xe2\x2d\x42\xce\x73\xf4\xf0\x3b\x61\xb2\x85\xb3\x5e\xe1\x44\xe9\x87\xa7\x54\xde\x39\x24\x9a\x7a\x6d\xfc\xed\x0a\x8b\x9f\xbb\x0b\xf7\xe4\x1b\x0d\xcb\x86\x3a\x86\x92\x41\x6c\x3f\x57\xb5\x8f\xe2\xf0\x1b\x4a\x18\xc8\x29\x72\x6d\xb8\x91\x99\xeb\xa2\x59\xe6\x3e\x24\x03\x44\x1f\x58\x98\xaa\x21\x5f\xd4\x33\xda\x12\x2e\x43\x51\xa8\x11\x1a\x7e\x13\x5f\x5f\xa8\xfb\xf2\x9e\xd7\xf9\xf3\xab\x57\x93\x54\xbf\xab\x9a\x5d\x5e\xfd\x0c\x68\x2e\xc5\x52\xb9\x24\x68\xdc\xe6\xa2\x5b\x86\x7e\x19\x70\x70\xe3\x3a\x7a\xee\xd4\xeb\xd7\xeb\x99\xdd\xdc\x00\xe8\x34\xab\x9a\x27\x38\x8c\x37\xb2\xbc\xef\x20\x3c\x23\x55\x60\x55\x80\xde\x3a\xc7\x3f\x41\x89\xcc\x09\xe8\xcd\x6b\xa7\xe9\x32\xcb\x21\xc5\x1b\xc7\x72\x3f\x51\xc2\xa6\x95\x5e\xc0\xad\x5f\x17\x71\x68\x85\x88\x29\xaf\x3b\xab\xa5\x9c\x50\x7c\xcf\x2b\xb9\x15\xa7\x9c\x43\xe0\x48\x1c\x73\xe0\x3b\xcc\x0a\x5b\x27\x36\x3f\x47\xbf\x79\xff\x56\x7e\x60\xf6\xd0\xdc\x3e\x06\xee\x40\x63\x4c\xd9\x5b\x28\x6a\x23\xe9\xe1\x5b\xc8\x92\x20\xb3\xc6\xce\x6a\xa7\x8d\x7a\x90\xc0\xee\xf0\x11\x2a\x28\x80\x71\xa7\x07\x37\x5e\xf2\xe6\x61\x8d\xd0\x18\xc3\x5e\xab\x2b\x54\xf0\x84\x4f\xe0\x68\x79\x27\xd1\x80\x0a\x7c\x41\x4b\xfb\xf4\xbc\xb1\x68\xfd\xfc\xea\xc5\x4e\xbc\xa9\xf0\xdb\xf5\x5a\x69\x5f\xce\xd8\x01\x22\x21\x1f\x34\x02\xd9\x03\x0b\x79\x09\x09\x83\xa1\x1e\x35\x64\x6b\xee\x26\xf3\x96\xae\x7d\xe0\x42\xf2\x0e\x65\x06\x1e\x61\x33\xd8\x73\x31\xd8\xcf\x5f\x0f\xa0\x3e\x7e\x7d\xa0\x3d\xdc\x59\x23\x47\x62\xeb\x95\xca\xdf\x89\x65\x55\x40\x31\xca\x9e\xfe\x3b\x83\x3c\x8c\x3e\xd4\x1b\xfa\xf7\x80\x67\xd4\xbf\xbb\xc1\xdc\x73\x6e\x0e\x4b\x92\x30\x40\xa8\xf0\xed\x8e\x19\xd4\x22\xde\x59\x60\xd8\x96\x29\x0e\x29\x98\xab\xa6\xcc\x43\x33\x16\xd7\x2a\x72\x08\x7c\x5f\x5b\x17\xd7\xd2\x05\x8f\xd7\x01\x12\x1a\x75\xba\x85\xc3\x16\x26\x59\xa5\x72\x4f\x90\x35\x1c\x19\x61\x6f\xf7\xb1\x01\x4d\xee\x96\x3b\x26\x79\x71\x7b\x93\x3b\xfa\xbc\xcf\xe8\x4e\x1e\x77\xcc\xee\x78\x4a\xe3\x0d\xef\x04\xe3\xf1\xa6\x77\x3c\xd8\x48\xe3\x1b\x20\xbe\x6b\x7d\xdb\x32\xbf\x0f\xc4\xdd\x1f\xad\xe5\xf2\xd6\xce\x7a\x12\x8a\x28\xf7\x70\x57\x67\x0b\x91\x37\x85\x2c\x6f\x7e\x8f\xbe\xe9\xb4\xf9\x8d\x1e\xc1\xba\x20\x63\x4d\x7b\x43\x9a\x2e\x27\xa1\x46\x17\xf4\xee\xb7\x7a\xce\xbd\xc5\x78\x55\x15\xd2\xae\x8c\x11\xc7\x7c\x74\x9a\xc0\x80\x35\x0c\x68\xc1\xdf\x89\x1a\x4b\x85\x07\x69\xa0\x45\x1f\x5e\xa4\x62\xb7\xb1\x40\xb4\xa1\xe0\x35\x80\x03\x13\x9e\x4e\xc3\xd0\xe0\x99\x86\x39\x86\xda\xd3\xae\x18\x86\xbb\x46\xf0\x57\xa6\xd1\x2b\xb5\x70\xb3\x74\x1e\xd9\x00\x7e\x44\xa8\x72\xe0\xc3\x13\x30\x3a\xdf\x23\x5e\x6d\x97\x3f\xbe\x25\xea\x49\xec\x4a\xb5\x36\xea\x06\xd6\xfa\x0f\xaf\x6a\x91\xcb\x0c\x17\xe7\xb5\xa8\x25\x2f\x7e\xf7\xd3\xd2\x3d\x40\x19\x29\xd6\xa8\x0b\xbd\x35\xc0\xef\x7d\xeb\xf3\x8d\x35\x96\x3c\x16\xd1\x2d\x10\xb8\x2f\xa4\xbb\xda\xa5\x31\xfd\xcd\x31\x95\xb3\xf9\x89\xdb\x75\x0a\xe5\x76\x78\x26\x47\xdd\x98\x44\x54\xac\xfc\x44\xd7\x10\x11\x0e\x14\x7e\x89\x43\x0b\x14\x14\x9f\x03\xd0\x12\xe8\x65\x2d\x86\x6b\x82\xef\xfc\xbc\xb5\xd0\xd4\x13\x43\xce\xfd\x98\x1b\xab\xba\x87\x9e\x73\xa0\x5c\x28\x07\x15\x26\xf0\xff\xdc\x7e\xcd\xee\xfe\x5f\xd8\x76\xca\x44\x93\xba\x3d\xac\x83\x05\x45\x34\xb8\x0f\xa1\x2c\x1e\x06\x07\x08\xc7\x16\xba\x62\xa3\x89\xdb\xb5\xeb\x7b\x87\xc4\xe0\x70\x02\x64\x1c\x82\x07\x3b\x4e\xb8\xf5\x5f\xfb\x6b\x14\x8b\x70\xe7\x6e\xfc\xe0\x9c\x2c\x95\x79\x10\x6e\xc6\xe3\xee\xe2\xd3\x4c\x28\x4b\x4c\x72\x0e\x64\xc0\xc0\xc7\x1d\x84\x76\x3d\xbc\xaf\x76\xd9\x94\x5d\x4b\xba\x33\xb5\x2b\xb6\xb6\x92\x82\x61\x65\x01\x3f\xd4\xa4\xd2\xd8\xb9\x3a\x96\x87\xe8\x0c\x2a\xb4\x11\xf8\x7f\x58\x9e\x41\x5d\xc7\x1f\x94\x36\xae\x02\x01\xbb\xa2\x00\x3d\x44\x10\x1f\xbe\xba\xd2\x51\x98\xe6\xac\xc1\x7b\x3a\x0a\xcb\x71\x0e\x03\x7c\x91\xfd\xf5\x62\x0a\xff\xff\xe9\x01\x19\x8e\xe4\x83\x1b\x21\x1c\x33\x53\xe5\xbc\x90\x99\x25\x8d\xb9\x17\xa2\x44\xd5\x08\xdc\x83\x90\x95\x45\x3c\x23\x17\x72\xe8\x11\xc7\x1b\x01\xc2\x13\xde\xa5\x72\x0b\xeb\x25\x25\x6c\x49\x3e\x34\xa6\x97\x72\x13\x18\x28\xd0\x8b\x28\x38\x09\xe6\x2a\xd8\x9a\x34\x7f\x7f\x71\x08\x2d\x7e\x40\x84\xe6\x80\x25\x84\xdc\xd8\xed\xdb\x52\x1f\xef\xa5\xda\xb4\x56\x73\x37\x0b\x2a\x36\x0f\x56\x71\x2d\xaa\x5a\x68\x6c\x73\x59\xb8\x6c\x77\x1f\xe0\x33\x26\xcb\x7d\x77\x09\xf2\x52\x6d\x09\x42\x58\x26\x52\x55\x2a\x73\x7e\x04\x95\x80\x12\x42\x12\x59\xaa\xf1\x02\x92\xb2\x6a\x11\x30\x76\x52\xb3\xa7\x60\xb4\xee\x93\x28\x01\x35\xd1\xc9\x71\x7a\x74\x2c\x04\x16\x98\x63\x74\x1d\x28\x28\xa3\xb5\x78\x30\x66\x5a\xe5\x57\xd5\xc2\x9e\x03\xa0\xb8\xa3\xb5\xf3\x42\x5f\xde\xb1\x5c\x72\x9f\x7b\x2e\x85\xdf\x5e\x42\x8d\x4e\xa9\xca\x2b\x4e\x61\x1b\x75\x53\x6a\x17\x66\x77\x2d\x30\x52\x0d\xed\xcb\x18\x13\x17\xa8\x04\xfd\x67\xd6\xb3\xe1\x3b\xd5\xd4\xac\x10\x77\xa2\xd0\x74\x02\x82\x6b\xa3\x78\x08\x34\x9a\x3d\xbb\xa3\x97\x6b\xa9\x6a\x69\x56\x13\x8a\x48\xd5\xa6\x96\x19\x1d\xfd\xb0\x75\xf1\xe5\xd5\xcf\xce\x0f\x89\x61\x00\xbc\x29\xb3\xc5\xd4\x7f\xc9\x9e\xb2\x73\xf6\x59\x64\x5c\xe9\x8a\xdf\x97\x51\xc8\xc3\x5c\x91\xc1\x36\x5b\x85\x8f\x3e\x0f\x85\x32\x3a\x78\xbe\x75\x5d\x8a\x01\x1c\x39\x02\xf0\x1e\x8f\xba\x79\xa1\xb4\xfb\x1e\xc1\xee\x83\x31\x67\x97\x54\x2a\x88\xda\x6b\x36\xf6\x6f\x21\x24\x2b\xf0\x73\x1f\xa9\x08\x6b\x17\x03\xbd\xaa\x18\x2a\x83\x18\xd4\x4d\x67\x56\xd7\xb0\x4d\xde\x40\xe0\xa3\x23\x67\x95\x74\x07\xa3\x56\x56\xb8\xa0\xf0\x46\xae\x04\xbf\x5a\x7c\x12\x03\xeb\x01\x9c\x07\x14\x0c\xe6\x30\x77\xad\xda\x01\x37\x6b\xf0\xa9\xfb\xf6\x50\x10\x01\xe3\xf5\xb8\x55\xb0\x92\x5c\xd3\xf1\x6b\xc7\x60\x47\x44\x56\x2c\xb6\x29\x8d\xcc\x78\xc1\xb0\x66\xf2\x01\x38\x93\xce\xd6\x27\xcd\x45\x2b\x73\xb6\x4a\x86\x1d\xc7\xb0\xe4\x8b\x6d\x38\xe5\x74\xfb\x8e\x9c\xb2\x46\x75\xcc\x28\x87\x87\x9b\xd8\xc1\x78\x14\xee\xf3\x7e\x51\x45\xb3\x84\x36\xce\x1f\x0c\xcb\xb9\xe1\x13\x36\x93\x25\xaf\x57\xf0\x47\x1f\x97\x8c\xaa\xf9\x4d\x72\xa9\x1a\x7d\x10\xdd\xec\x93\x3b\x05\x3b\x66\xdd\xc1\x30\x3b\xf9\xa2\xdf\x25\x37\x97\xbe\x02\x76\xec\x78\xf3\xc8\x03\x87\x62\x74\xe2\xb8\xbe\x28\x4c\x02\xcb\x2e\xe7\x21\xea\xae\x14\xf7\xc5\x2a\x76\x1c\x85\xa2\xbd\x0e\xf7\xa5\x6a\x4a\xe3\xc7\x5f\xf2\xaa\x12\x3e\xa4\x8b\xfa\x96\x81\xfa\x8f\xfa\x83\x05\xbc\xcf\xf4\x66\x24\x69\x3f\x0b\xa5\x58\x2c\x8a\xde\xf6\x56\xa5\x11\x2e\xca\xd4\xfe\x00\xe8\x88\x1c\xd8\xaf\xd7\x35\x25\x7b\xb6\xf9\x0e\xf6\x3d\x4e\x71\xb3\x94\xb8\xf6\x41\x51\xf3\x29\xf4\x44\x8d\x13\x14\x05\x2c\xe5\x05\x7d\xaf\xd7\x4b\x0b\xca\xc6\x96\x6e\xf4\xf5\xd2\xd2\x13\x31\xd3\x2f\x0a\x68\xbf\x6f\x2b\x0e\xeb\x44\xe1\xd7\x38\x10\x16\x29\x6f\xbf\x8a\xeb\x20\x84\x18\x2c\x67\x6e\x47\xef\xb5\x85\x24\x12\x90\x18\xec\xb0\x90\x24\xd8\x3c\x2f\xb4\x42\xe7\xb1\xfd\x49\x1a\xb1\xfc\xab\x7d\xe7\xd3\xc8\xe9\x8c\x8a\xcc\x43\x72\xd4\x6c\x95\x1b\xe7\x4c\xd4\xb5\xaa\x23\x59\xb5\x04\xf1\xf0\x76\x08\x80\x19\x2d\x8c\x2e\x4c\xda\xd2\x7e\xc0\x4e\xef\x8a\x60\x6f\xe4\x51\x08\x58\xdd\x4f\x55\x5d\x76\x62\x41\x26\xa9\x8b\x05\xa8\x03\x4c\xd1\xf6\xa8\x8e\x23\x61\x94\x5e\xd5\x80\x6b\xd6\xf3\x92\x1e\xa2\x2d\x08\x9a\xd5\xa8\xa8\xfd\x60\x14\x50\xb2\x59\xe4\xdd\xed\xc3\x21\x34\x20\x8e\x47\x9b\x03\xf3\x22\x47\xa9\x17\x20\x68\x51\x36\x45\x8e\xf1\x52\xce\x29\x2b\x69\x13\x85\xd7\x96\xe0\x61\x80\x97\xe9\xc4\xe8\xd4\xe9\xc5\x87\x2f\x3f\xff\xfc\x84\xa2\x33\x61\xa5\x2a\xcf\x6b\xa5\x0c\x6b\x74\x6f\x9b\xd8\x7d\x24\x89\x6b\x0f\x7e\x27\x95\xf6\x30\x52\x45\x2e\x3d\x08\xa1\xd6\xe0\x37\x8a\x28\x14\x2a\xa2\x37\x32\xff\xe6\xe9\xc5\xc5\xc5\x18\x31\x3c\xa4\xe6\xc5\xf1\x40\x8e\xc8\x6d\x40\x4f\x61\x20\x08\x50\xf6\x42\x16\x7b\x31\x7d\xfb\x5c\x38\xf1\xaa\xf9\x03\xc8\x9a\x9f\x06\x38\x21\xfb\xd2\xea\xf7\x91\x36\xcf\x19\x9a\xe9\x4f\x34\xcc\x61\xba\x91\x9c\x54\x04\xbf\x73\x0c\x04\x41\x82\x8d\x31\x47\x27\x27\x6e\xb2\x21\x48\xd3\x32\xf2\xec\xe2\xc3\xe7\x17\x17\x67\x7b\x0a\xa2\x47\x73\x7b\x7d\x38\xa8\x0b\xa3\x3a\x11\x23\xf5\xe1\x4c\x38\x79\x85\x6d\x1d\x4d\x8a\xf6\x4c\xe9\x82\x70\x73\x3b\x8f\x35\x79\x68\x58\x4f\x95\x1a\x8c\x64\xb8\xe5\x5b\x5c\x2a\x51\x2f\x25\x24\xa9\x6d\xd1\xcc\x63\xb7\xb5\x71\xa4\xfd\xdb\xaf\x03\x02\xbf\x7d\x44\xc6\xc3\x09\xbd\x2b\xcd\xe5\x6c\x4a\x1e\x9b\x93\x28\xf5\x48\xe0\x07\x51\xba\x6b\x65\x3d\x96\x73\x7f\xdf\x3b\x66\xef\x3f\xd9\xbe\x7f\x72\x45\xec\x05\x10\xc2\x6e\x8c\x58\xfa\x11\x3f\x52\x9d\x3c\x5e\x3c\x37\x69\xf0\x51\xda\xdb\xb9\xbf\xb6\x96\xea\xb5\x12\x8d\xac\xd9\x41\xaa\xd7\x49\x74\xb8\x11\x1b\xa5\xc1\xc7\x68\xef\x4d\x99\xc4\xa9\x06\x7f\x30\xed\x7d\x5c\x13\xba\x67\x2d\x05\xa3\xfa\x0f\xb9\x72\x36\x9b\xdf\x63\x4d\xef\x44\x26\x0f\x72\x02\xf4\x91\x49\xe3\xcc\xef\x87\x33\xbd\x7d\x72\xab\x43\x9f\x57\xbd\xb1\x2f\x23\x25\x53\x96\x6d\x88\x3a\x66\x9d\x2f\x43\xf0\xd1\xf9\xac\x42\x12\x30\x37\x8b\xb6\x33\x11\x59\xed\x34\x63\x0f\x36\x58\x0a\x94\xe2\xe3\x08\x68\x3c\xe0\x51\x75\x50\xe3\xea\xa5\x8e\x60\xea\x28\xaf\xe3\x11\x7c\xd4\x8f\xc5\xeb\x18\x30\x7c\x10\xa7\xe3\xc1\xa4\x20\x8a\xfa\x26\xba\x4c\xa2\x8b\xcf\x75\xb2\x90\x04\x59\x13\x49\xd7\xe5\x02\x65\x55\x83\x50\x77\x72\xdc\x3c\x77\x5a\x1c\x27\x04\x5d\xe0\x40\x73\x47\x13\x40\x39\xbe\xc6\xa0\x36\xbb\xc5\x74\x9e\xc1\xbe\xe1\x7d\x6d\x5c\x96\x76\x3b\x90\xd6\x8c\x74\xf9\xb6\x61\xee\x53\xbf\x56\x31\x52\xdc\x85\x69\xf7\xf7\x34\xc0\xd4\xae\x70\x63\x1c\x6a\x10\xf8\x86\x93\x20\x50\xa4\xe1\x1d\x5f\x89\x29\x5b\x47\x7a\xf3\x4a\x6e\xc9\x50\x0a\xf2\x3b\x34\x47\x03\xd8\xc7\xcd\x53\xc2\x73\x47\xa6\xba\x0c\xa5\x47\xc5\xd5\x24\x0d\xec\x90\x7c\x8d\x52\xf5\xb0\x35\xea\x63\x65\x6c\x42\x81\x1d\x58\x9b\x26\xd2\x3d\x46\xe6\x1e\x61\xd5\x46\xdc\x75\x62\xfd\xc8\xf9\xbb\xdd\xda\x8d\xee\xa7\x5b\x00\x1e\x17\x87\xfd\x66\x31\xf1\xd6\x7c\x3b\xcd\x72\x4f\xb6\x77\xb2\x36\xff\x9a\x55\xcd\xa7\x2e\xbb\xca\x0d\xea\xf7\x65\x17\x81\x46\x7f\xd0\xe1\x58\x3c\x5e\xf1\x88\xf7\xea\x68\xeb\x75\x98\x7b\x1e\xbb\xf7\x93\xcc\x2a\xb6\x95\xba\x18\xb1\xb5\x63\xcc\x7e\x9f\x24\xf9\xe2\x2f\x69\x68\xe0\x10\xd7\x4f\xb9\x6f\x9c\x50\xf6\x70\xd8\x8e\xf8\xc5\xd8\x7c\x74\x12\xd8\xda\x80\xd2\xfd\x64\x48\x0e\x63\x88\xa2\xde\x6e\xdb\x1a\xd8\xb2\xf0\xcc\x3c\x42\xa9\x3d\x32\x51\x74\xb9\xa0\x7b\x0a\x5b\xa5\x72\xac\xa9\x58\x16\xab\x9d\xce\x9c\xa7\x92\x97\x2b\x9a\xef\x0e\xb6\x8a\xfb\xf4\x71\x6d\x62\xb1\xdb\xff\xe2\xf3\x8b\x8b\x1d\x19\x69\xd7\xf8\x8b\xe8\x8e\x55\x95\x14\x8b\x15\x39\xf5\x4f\x73\xc4\xf0\x41\xdd\xe4\x94\x82\x5f\xc9\xbf\x1d\xdc\x6f\xe7\xf5\x39\xfd\xdf\x1a\x49\x58\x27\x05\x18\xc7\xbb\xb5\x24\xac\x93\x02\x0c\x6c\x1c\x96\x84\x9d\xae\x37\x51\xb1\x1c\xde\x41\xbe\x9b\xb4\x05\x37\xe8\x9e\xb2\xb6\x24\x21\x43\xb6\x58\xa8\x27\x17\xb4\x3d\x35\x48\x10\xd4\x8e\x6f\x38\x08\x67\x4b\xb8\x5c\x10\xfe\x8e\x02\xd6\x27\x5c\xad\x0b\xd4\xc7\x73\x7f\xbe\x9b\x80\xf9\x58\xcc\x52\x19\x48\x85\xd8\xf5\x5c\xdd\x05\x64\x09\xb7\x54\x79\x9c\x64\xf1\x88\xa4\xcc\x55\x13\xb5\xb2\x86\xc5\xe7\x04\xcf\x16\xee\xee\x0e\xcb\x26\xf8\xa9\x0c\xe8\xac\xf4\x72\xa4\x2b\x56\x31\x31\x76\x90\xae\xa8\x89\x61\x0c\x69\xb6\x62\x3c\xcf\x31\x77\xb9\x14\xf7\xd1\x33\xe7\x83\x75\x09\x25\x89\x0f\xbe\xf5\x6a\xb7\x2e\x59\xc7\x05\x7b\x9a\x0d\x95\x04\xa7\xa0\x3c\xf8\x3d\x64\x0f\x40\x7c\xf4\x62\x87\xb3\x58\xb7\x4b\xfa\x80\xcc\xae\xc4\x11\x09\xb6\xb3\x98\xda\x6d\xe3\x08\x48\x5b\xce\x30\x1b\xb8\x47\xc4\xbc\x78\xe1\x1b\x1d\xc9\x6a\xc5\x02\x1f\x4d\xba\x5e\x2e\x2b\xb3\x7a\x21\xeb\x09\xbb\x5e\xf0\xda\x0f\xa1\x7d\x82\x9c\x27\xe7\x5a\x25\xe7\xc0\xf8\xcf\xad\xcd\xee\xb6\x52\xa7\xbb\x7b\x07\x48\xcf\x39\x9b\xeb\x82\x58\x8e\xa5\x35\x40\x4a\x76\x26\x68\xf8\x33\x7f\x4b\xe5\xc6\x5e\x40\xa9\xa1\x9e\x21\x93\xa3\x7e\x88\xe7\xaf\x1c\x6f\xcc\xbd\x62\xb3\x46\xaf\x66\xea\x03\x93\x4b\x7e\x23\x62\x24\x2d\x74\x07\x3c\x32\x03\x43\x84\x43\x28\x33\xe0\x01\x2e\xb9\x8c\xa8\x49\x20\xee\xb9\x34\xae\x61\x8a\x15\xbd\x66\x16\xbd\x92\xd7\xaa\xa2\x12\x0e\xc0\x5f\xec\x62\xdc\x82\xc3\x7d\xaf\x64\xa2\x6f\xce\x0d\xef\xa4\x24\x7c\x31\x28\x22\x40\xba\xf7\xb9\xac\x87\x25\x63\x29\x72\xd9\x2c\xdd\xf1\xaf\x65\xce\x7f\xf9\xf9\xe7\x5b\x09\x46\x4b\x28\xfe\xea\xae\xd9\x27\x16\xd2\x84\xc6\xc0\xf3\xff\x3e\xb1\x3a\xa3\x05\x25\xb9\xea\x0b\xe6\xd1\x05\x5d\x94\x33\x7a\x11\x8c\x15\xe2\xac\x2c\xc3\xbd\x1d\x71\xe1\x1e\xf2\x4c\xc3\xdf\x83\x81\x04\x61\x6f\xe9\x5c\xdf\xc3\xf0\xe7\xf5\xbd\xb5\xcc\x6a\x3a\x33\xd0\xed\xe3\xaa\x0a\xc1\x2d\xcb\x6a\xae\xfd\x01\x9d\xae\x02\xd3\x30\x18\x17\x37\xb3\x9f\xad\xe5\x62\x78\xd7\x1b\xf3\x13\xa6\xea\xd0\xcb\x44\x43\xa9\xaa\x27\xec\xfb\x57\x2f\xc6\x2b\xa9\xf1\x12\x88\x6e\x8d\xae\x00\x6e\x11\x0a\xb3\xa5\x3c\x02\xb5\x3f\x3d\x90\xdd\xbf\x51\x1a\x81\xad\x67\x38\xd9\x33\x4b\xcd\x33\x2c\x74\x77\x36\x69\x45\xab\x74\x45\x75\x27\x31\xf5\x45\x12\xfa\x45\x75\x17\x31\x8d\x23\xbf\xfb\x45\x75\x5b\x31\x45\x88\xdb\x1d\x0b\x36\x89\x29\xc0\xf4\xa2\x0a\x0f\xd1\x51\x07\x62\xf6\x8d\xa7\xfb\x31\x84\x78\x40\x8d\x7e\xf9\xe5\xa1\xc4\xf6\xcb\x2f\x1f\x93\x1a\xfd\xf2\xcb\x07\x53\xa3\xf0\x9f\x3f\xd5\xe8\x48\x35\xfa\xe5\x97\x93\x23\xe9\xd1\x2f\xbf\xfc\x48\xf4\xe8\x97\x5f\x3e\x88\x1e\xed\x93\xd3\x3f\xf5\xe8\x6e\x7a\xf4\xab\xaf\xbe\x3a\x90\xd8\x7e\xf5\xd5\x57\x8f\x48\x8f\x7e\xf5\xd5\x57\x0f\xa4\x47\x3f\xe0\x7f\xfe\xd4\xa3\xe3\xf4\xa8\x15\x9b\xa3\xa8\x51\x0b\xf8\xa3\x50\xa3\x56\x54\x4f\xaf\x46\xfb\xc5\xf4\x4f\x35\xfa\x30\xa7\xfa\xee\x89\xfe\x54\x42\x3b\xe2\x44\xff\xe7\xe9\xfb\xa0\xa7\xef\x03\x09\xca\x47\xa1\xdb\xe0\xa8\xbd\xa3\xfc\xb8\x5c\xfb\xc3\xe8\xa1\x83\xe4\x2a\xf5\xc8\x0f\x40\x7c\x3c\x7a\x68\xcf\x63\x71\xf7\x48\xfc\x08\xf4\x90\x3b\x12\xff\x79\x7c\x3d\xe8\xf1\xf5\x40\x82\xf2\x71\xe8\x21\x7b\x54\xdd\x51\x7e\xfe\xd4\x43\xa7\x3f\x56\x76\x8f\x94\x0f\xaf\x87\xc0\x4e\xf7\x0d\x87\xfa\x05\xc9\xbe\xcb\xf5\x9f\xc7\xc0\x5d\x8e\x81\x07\x12\x98\x8f\x42\x1f\x79\x59\xda\x5e\x8e\x50\x1d\x6d\x94\xa5\x3f\xcf\x69\x3d\x7a\x29\x54\x71\x1a\x2f\x69\xf4\xbd\x2a\xa3\xe0\x6a\x18\x21\x6e\x00\x1f\x02\x90\xeb\x5a\x64\x14\x0a\x77\x6a\x07\x58\x2a\x43\xfe\x28\x3f\x5a\x1f\x9d\x62\xe7\x3a\x95\x42\xd9\x8f\xd3\xb8\xa4\x5a\x0c\x76\xcc\x0d\x71\xab\x27\x60\xf0\x78\xfd\xb2\xcf\x4e\x14\x71\xde\x39\x95\xf6\x8d\x34\xec\xea\x06\x4c\xe5\x38\xbe\x0a\x60\xbf\xd6\xbc\xaa\x44\xed\x97\x48\xc8\x2a\x26\x4e\x4f\x58\xa9\x58\xcd\x7b\x1b\xd0\x77\xc5\xe3\x9e\xc0\xb5\xb6\x1e\x3b\xf9\x8c\x37\x5a\x00\x24\xab\x77\x73\x19\x6a\xef\x2e\x44\xc9\x1a\x4d\xe9\x09\x3e\x5d\x38\x2a\xbc\x3d\xaa\x00\xc4\x17\x17\x71\x1f\xc5\x5f\x08\x01\xcb\xc8\x2f\x58\xed\xca\x1a\x53\xab\x20\x17\xba\xaa\xa3\x34\xea\x9e\x38\x9b\x69\xe8\x68\xf0\xfa\x0d\xb5\xae\xb8\xe7\x12\x78\x67\x71\xa5\x41\x3a\x11\x31\x9f\xf5\x14\x72\x45\x52\x05\x8e\xbc\x27\x52\x8d\xe6\xcc\xb5\xc8\x6a\x61\x5c\xf3\xa8\x1e\x26\xb9\xfa\xe3\x7b\x33\xca\xd5\x31\xdf\xd0\xdd\x03\xf1\x89\xb2\x3a\xda\x68\x75\x2a\xbb\x42\xf8\x50\xdc\x25\x02\x03\x90\x28\x6c\x4e\x1b\x5e\x63\xbb\xfc\xb5\x73\x5d\xe3\xf4\x3d\x28\x23\xae\x6a\xf5\x2f\xac\x26\xd0\x29\x40\x51\xe1\xa3\x4d\xd1\xb9\x01\x42\xa6\x96\x33\x59\x8a\x3c\x4a\x1b\xb1\x4f\xa0\xce\x42\xa6\x96\x95\x2a\xc1\x0c\xc1\x4a\x25\xfc\x16\xe9\xd2\x54\x18\xe4\xe5\x07\x83\x48\xcb\xdf\xae\xfc\xdf\xbf\xef\x1e\x45\x99\x36\xba\xaa\x3c\xa2\x2e\x8e\x93\x9a\xea\x42\x2b\x0a\xcb\x0a\x3d\xa1\x85\xe9\xba\xe9\x42\xb1\xd8\x28\x7a\x14\x20\x85\xc6\x6a\x59\xd5\x0c\x34\x8a\x6c\x3d\xf1\x5d\x38\x7d\x8a\x49\x3b\x7e\x17\x2a\x2b\x18\xec\x67\xde\xc2\xc4\xf5\xf4\xf5\xf6\x5c\x02\x3b\xa4\x0f\x43\x81\x99\x7b\x51\x14\xf6\x7f\x07\x10\xe8\x06\x44\xf6\x87\x8f\x8e\x57\xbe\x9e\xaa\xef\x1d\xfb\x37\x8b\x58\xa7\x86\xcd\x96\xd5\x79\x63\x91\xdb\xa6\x4e\x2f\xee\x64\xc3\x55\x33\xb6\x6e\x68\x62\x16\xb5\x48\xc2\x1a\xe1\xd7\x48\x41\x5b\xf4\x8b\x15\x94\xe7\x86\x79\x92\xc8\xb7\xe6\x1a\x67\xa9\x5d\xfa\x86\xc7\xe1\x8a\xa7\x44\xad\xe1\xca\x72\x58\xf5\x05\xdb\xba\x9f\xfd\x46\xb8\xc1\xf8\x6f\x2d\x8a\xcb\x56\x7f\x6e\x6b\x4f\xc0\xbf\xce\x9f\x9e\xa1\xb4\xfa\x59\x07\x5a\xbb\x56\x2c\xf8\xc4\x0f\x32\xf1\xd1\xc4\x83\xd2\x9d\x2e\x2f\x2f\x8c\x6d\x48\x49\x14\x7a\x67\x5c\x9a\x67\x34\xae\x1b\xb3\x1d\xa3\xec\xc7\x75\x95\x43\x5a\x8b\x6a\xca\x5e\x20\xa1\x7a\xc7\xf1\x82\x98\xa4\x11\xfa\xf9\xb9\x16\xd5\xdd\xc9\x85\x89\x75\xf8\xbb\xd3\xba\x1a\x68\x3b\xbc\x76\x61\x6d\x69\xfa\xf6\x2d\xa9\xb1\xa5\xae\xf6\x8c\x75\x8f\x05\x72\x48\x47\x9f\x85\xaa\xe4\xb8\x89\x2a\xea\xef\x18\x8b\x65\xdc\xb8\x2d\xb2\x33\x81\x06\xd3\x8d\x72\x69\xcf\xc8\x68\x90\xce\x5b\x95\x67\x74\x03\xa1\xee\xf3\xa6\xb0\x4b\x99\xb4\xb0\x4b\x6d\x6a\x9f\xb6\x66\xf1\x1d\xc6\xe9\xd8\x3d\xfa\xbe\x7c\x6f\x46\xef\x53\xc5\xec\x08\x4c\x8f\xd1\x49\xea\x8c\x31\xac\x33\xf6\xc7\x66\xfb\x36\x79\xa1\x7b\x73\x3e\x5e\x5f\x07\x29\xd1\x7b\x2c\x1d\xd0\x5a\xfb\xde\xc7\xf6\xf9\xa9\x05\x22\x4e\x10\xa4\x36\x1b\x87\xca\xdb\x03\x81\xc2\x5c\xd4\x5d\x7c\x29\xfb\x0a\x9e\xef\x25\x71\x64\x71\xdb\xb9\x12\xee\xc9\xf7\x97\x77\xed\x6a\x65\xbc\xd0\x2a\xa9\x9b\x18\x55\x80\xae\xb8\x59\x8c\x13\xc5\xae\x18\x06\xab\x09\x0b\xa8\x41\x15\x01\xe7\x66\xf8\x18\x94\x16\xd2\xe4\x21\x94\xd7\x91\xca\xda\x3e\x88\x1e\xdb\x20\x6f\x0e\x62\x28\xb2\xb7\xaf\xbc\xa1\x21\x9c\xca\xdc\x4e\x3a\x91\xe4\xed\x0f\xaa\x13\x4f\x69\x8b\xb5\x84\xfa\xe3\xb2\xcc\x36\x2a\xcc\x58\xe0\x0e\xa8\x30\xd1\x63\x72\x00\x01\x3e\x9d\x60\xb5\x6a\xc2\x42\xc9\xd3\x83\x08\x56\x4f\x79\x58\xe7\x24\x31\xae\xe3\xe2\x2e\xe5\x61\xb7\xf5\xc1\x8d\x11\x28\x9f\x9c\x1c\x24\x26\x08\x8b\xb9\x57\x51\xfb\x41\xbf\xb3\x40\x29\xd7\xcd\xee\x81\x96\xe8\x64\xfd\x26\x9f\x97\x23\x3b\x58\xb4\x0a\xb7\xad\x18\xbb\xaf\x38\x6c\xae\x1f\xdb\xc7\xff\xe3\xf5\xaf\x3a\x86\xee\x28\x73\xab\xc3\xed\x98\xda\x7b\xcf\xa2\x86\xf3\xf6\xcb\x52\xdc\x3b\x2f\x4e\x8f\x5e\x40\xe5\x81\xdf\xa5\x3c\x05\xec\xc8\xc7\xd5\xaf\x52\x9a\xe0\x7c\x42\xaf\x58\x54\x31\xd9\xc2\xb9\x91\x50\x32\x57\x11\x94\x67\x47\x66\x7d\xe4\xa2\x1d\x5b\x34\x36\x00\x89\xdd\xd7\xa7\x28\x1b\x3b\xde\xe7\xde\x76\xac\xe3\xc6\xbd\x87\x73\xbd\xc3\x4b\x17\xa7\x15\xd6\xb9\x9b\xe4\x51\x1d\xe1\x51\xcd\x80\x1d\x98\x3b\xa2\x14\xe5\x6e\xdc\x3d\x4c\x09\xd9\x47\xcf\xdf\x4e\x11\xca\xc7\xc4\xe0\xd1\xb5\x64\xb7\x67\xf1\x01\xab\xc9\x3e\x6a\x1e\x0f\x14\x93\x7d\x84\x5c\x3e\xca\x4a\x3e\x68\x59\xd9\x8f\x81\xd1\x8f\x7a\x3d\x47\xc5\x65\xb7\x29\xec\x39\x8a\xed\x0f\x5f\x56\xf6\x21\xc5\x03\x8f\x87\x57\x3f\xb7\xaf\xba\x43\xdf\xe2\x39\xb4\xf0\xa4\x7b\x6d\xfb\x96\x03\x5b\x0b\x08\x64\x59\x57\x98\x76\xf3\x91\xa0\x43\xdf\xc7\xad\x6b\x4e\x27\x84\x0f\x53\x5f\xf6\x4f\x51\x34\x1f\xc3\xce\x37\xa6\xd0\xec\x28\xb9\x3b\x60\xa9\xd9\x47\xbd\xc9\x55\x9d\x3a\x90\x8f\x89\x9d\xbb\x79\xe8\x7b\xd8\x7a\x82\xc2\xb3\x0f\xc9\xe6\x77\xf1\x2a\x75\x91\xd6\x6e\xa9\xc7\xce\x28\x8b\xe9\xf8\xdb\xc8\x44\x38\x50\x74\x36\x0a\x48\xa8\x3c\x1d\xf1\x6e\xd9\x68\xf3\xf1\xdc\x48\x3e\x12\x79\x3d\x66\xf1\xda\x3f\x85\xf5\x4f\x61\xed\xd4\xae\xdd\x59\x5a\x8f\x5e\x05\xf7\xe1\xc4\x15\x7e\x8b\x0a\xc8\x42\x05\xd3\x11\x61\xb4\xbd\x45\x70\x37\x6f\xad\x8c\x3d\x8f\x3e\xa4\xe2\x94\xa5\x0b\x1f\xdc\xb0\x02\x5c\x90\x21\xc5\xeb\xce\x55\xed\x97\x41\x04\xf5\x41\x84\x0c\x8b\xab\xee\x2b\x60\x47\x29\x75\xfb\xc0\xb2\x85\xd5\x63\x51\xac\x7c\xc5\xf8\x41\x16\xb7\x2b\xdd\x6e\x90\x28\xf6\xa3\xa3\x3b\xdb\x5f\x98\xe0\x67\x04\x78\x74\x19\xba\xf6\x51\xe8\x69\x7c\xf6\x36\xb1\xd9\x18\xc9\x3e\x2a\x30\x9b\xc9\x32\x4e\x5c\x3a\x56\x60\x36\xc5\xd6\x77\xa2\xb2\xc3\x8d\x1a\xdb\x27\x2a\x1b\x83\xb2\x39\x0d\xb3\x11\xea\x60\x4c\x36\x11\x8e\xee\xb6\xfc\xe4\xe8\x67\x19\x55\xdf\xdd\x3e\x00\x9b\x80\xb4\x22\xaf\xdb\x31\xce\x51\xf4\xb5\x1f\x75\x43\xe8\x75\x7b\x34\x8f\xa4\x13\xe4\x74\x56\x51\xdc\x75\x3a\x42\x97\xf6\xc9\xf9\xb8\x13\x74\xdd\x9e\xd0\x21\x22\xae\x11\xe6\x16\xab\x64\xe7\x60\x6b\xc2\xfe\x01\x22\xad\xd7\xdc\xc5\x23\x52\xe1\x76\x96\x22\x31\x08\x57\x27\xa4\xde\xa5\x71\x2b\x56\xdb\x87\x5e\x93\x03\xa5\xff\xfe\xdd\x42\x1c\x8e\xcb\xe8\x86\xae\xb1\xd9\xca\x0d\x7e\x70\x76\x77\x99\xed\x0b\x8a\xb9\xd8\x94\xb9\xfe\xbe\x56\x4d\x75\x3c\x8e\xc7\x91\x34\x9d\x20\x5c\xe8\xe6\x8d\x18\x1c\x29\x90\xed\xa0\xa2\x92\x14\xdd\x58\x70\x3d\x1c\xe4\xf6\xf9\xc5\x84\xcd\xf5\x0d\x91\xd6\x17\x21\x7b\x7a\x71\xf1\x14\x23\x01\xb4\xa8\xdd\x8f\x21\xd0\x48\xe6\x56\x8a\x36\xc7\x7e\x7b\x95\xb7\x83\xdc\x9d\xd3\xd1\x24\x4d\x8f\xc6\x58\x90\xa3\x25\xc9\xee\x57\x8c\xe1\x40\xca\x6d\xfc\xa1\x7a\x17\x39\x3f\x51\x80\xf9\x11\x54\xdf\x90\x10\x7f\xf8\xfc\xe2\xc2\x05\x92\x41\xd3\x82\x8d\x16\xe6\x2e\x22\x09\x10\xdb\xc7\xe5\x7d\x8f\xca\x38\xf1\xfd\xb3\xf6\xf7\x90\xbc\x6d\x82\xcc\x77\x96\xb7\x03\x47\x98\x9f\x72\x5f\x7d\x17\x59\x4f\x49\xf8\xa4\x73\x33\xef\x11\xff\xdb\x16\x3c\x6f\xc6\xf6\xea\x43\xfc\x3f\xd7\xe8\x23\xee\xa7\x7e\x42\x41\x39\xb9\xaa\xea\x86\x93\xff\x31\xb4\x96\x8f\x2f\x4f\x85\x8b\x36\xb8\x90\xd0\xe0\xb5\x03\x76\x58\x3b\xb6\x78\xb1\x5e\xf9\x3a\x41\x11\x9b\x93\xca\x70\xc8\xbf\x1f\x1f\xe5\xbb\x4e\x82\xd7\x84\xf8\xf2\xd3\xc4\xf6\xee\x6a\x24\x06\xe9\x1b\x17\xe7\xbb\xd9\x2b\xb8\x69\x73\x5d\x1f\xe1\xbb\x93\x7c\x1e\x50\x78\x48\x54\xbc\xe8\xec\x94\x3b\xef\x80\x8c\x74\xcb\xec\x73\xf0\xdc\xd6\x2d\x93\x88\x8d\xf3\xd2\xb8\xd0\xe0\xa1\xb9\x6e\x9f\x3b\x0f\x10\xc1\x55\x93\x3a\x6a\xf6\x70\xd2\xa4\x89\xf2\xa9\x43\x63\x67\x27\xcd\x16\x29\xf2\x63\x9d\x34\x1b\xf3\xe3\x77\x75\xd2\xa4\x4b\xef\x88\x4e\x1a\x92\x95\x81\x5e\x5c\xed\x15\xd2\xe3\x97\x99\x24\x7a\x07\x12\x1c\xe0\xd6\x4a\x96\x41\xaf\xc0\x6c\xec\xaf\xba\xda\x50\x12\xc8\x0d\x18\x16\x8f\x23\x2d\xdd\xa0\x59\x25\x4b\x58\xd4\xe2\x86\xd7\x79\xe1\x1a\xcd\xaa\x39\xe3\x91\x2a\x23\xac\xc4\x07\xa9\x61\x33\x5a\x83\x5e\x40\x6d\xa7\xc8\x88\xb6\x9c\x76\x47\xb2\xda\xcf\x8f\xa1\xa7\xdd\x85\x1c\xeb\xef\x54\xd9\x47\x9d\xeb\x7a\x2a\xd7\x6c\x3e\x91\x3b\x5d\x30\xd0\xb8\x2d\x5a\x0f\x9d\x26\x75\x76\xf9\x42\xb8\x88\x83\x71\xbf\x90\xd9\xc2\xfb\xde\xb9\xd6\x2a\x93\x61\x09\x07\x22\x62\x11\xf5\x2a\xd9\xd4\x70\x07\x0a\x3d\x3f\x69\xc7\x88\x56\xe6\x56\x6e\xa8\xa7\xcf\x0e\x24\xd1\x23\xbc\x8b\x5d\x99\x5c\x6f\xcf\x1e\x42\x88\x7a\x64\x64\x93\x7c\x90\x11\xb2\x9d\x8c\x74\x34\x49\x2a\x1e\x2d\x95\xd9\x2b\x22\x66\x98\xaf\x3d\x3c\x45\x8d\xb9\x83\x7b\x71\x77\x45\xe5\x3c\x5f\xe8\xd2\x0b\xee\x2e\x4a\x9c\x3b\x28\xeb\x23\xcf\x62\xbf\x07\xe6\x90\xde\xc5\xa3\xc9\x0c\x7e\xdb\x69\xd0\x7b\xf1\xe1\xf3\xcf\x2f\x7a\xfa\x20\xa4\x89\x88\xfe\xe4\xe1\xa6\x89\xbf\x0f\xa4\x06\x9d\x5c\x10\x9d\xaf\x71\x86\x96\x90\x93\xc3\x13\xb8\x78\x0e\x50\x02\x76\x9f\x45\x70\x60\x49\x6f\x4b\xb6\x77\x29\x7f\x64\x12\xbd\x31\x0e\xa7\xcf\x78\xdc\x6e\x13\x5d\x23\x98\xad\x9d\xcf\x9f\x7c\x22\x0d\xb9\xb5\x64\xa2\xb5\x75\x9c\xf3\xf8\x76\x02\x48\xfe\x9c\xc3\xcb\x9d\x73\x14\xed\x77\x8c\x3a\x8e\x90\x6d\xe3\x23\x8c\x94\x5e\x27\xc2\xab\x2d\x5b\xe1\x40\x9f\xc0\x3f\xa8\x59\x75\x60\xc6\x9f\x42\x05\x25\xa2\x70\x58\xbf\xe1\x29\x05\x05\x77\xcc\xcd\xfa\x09\xa7\xb9\xdd\xe6\xb9\x49\x86\x00\xe6\x1a\x39\x1a\x2c\x36\xf1\x58\xbc\x84\x3b\x09\xe7\xf6\x55\x00\xd6\x0a\x68\x8f\x5b\xd0\xbb\x04\x8f\xa5\xa6\xec\xb9\xb2\x4f\x02\xf5\x08\x11\x94\x65\xd7\xfd\x17\x09\x45\x4f\xac\x7d\x27\x12\xa5\x2d\x75\x33\x85\xf5\x71\x5b\xe2\xa7\x53\x37\x60\xaf\x0c\x1e\x8c\xd9\x67\xd7\xcd\xec\x8a\x9b\xc5\xd7\xec\xad\xe0\xd0\xf6\xdc\xf9\x28\x01\x09\x1e\x2a\x05\x3b\x7f\xf7\xd9\x5a\x96\x37\x33\x58\x9d\xcf\x8d\x5a\xca\x8c\xdd\xd7\xd2\x74\xcb\xdf\x7a\x89\xc6\x97\x75\x38\xd2\x87\xc1\xc0\x31\x1c\xeb\xa2\xf5\xbc\x0f\xee\x32\xef\x56\xce\x78\x89\x0b\x7e\x70\x42\x3d\x26\x33\x1c\xd9\xd9\x3d\xef\xb6\xc0\xe7\x0e\xdd\xad\x0c\x0c\x9c\x15\x04\x83\x7a\x8f\x4c\x2e\xef\x64\xde\xf0\x82\x32\x10\x64\x19\xa1\x3f\xe6\xdc\xee\x6a\xeb\x3a\x7c\x3e\x22\x8e\xe2\x0e\x64\xe9\x70\x05\x8d\xf9\xe7\xc1\xdf\xd4\x0e\x70\x7f\x44\x1c\xc7\x18\xe0\x42\x2b\xd6\x68\x38\x8b\x20\x1c\x78\x04\xc5\x84\xa5\x8e\x2e\xa3\xd0\xf2\x95\xdb\xb6\xc9\x58\x2b\x24\xee\xc2\xe4\xb4\x82\x12\xc7\xbb\x9e\x40\x54\xdc\x70\x47\x5c\xfb\xf1\x8c\xfe\x43\x57\x7f\xfb\x96\xec\xa8\x2c\x0d\x83\x1d\x8f\xa7\x61\x8c\xff\x50\x8e\x26\x16\xcd\x51\xd9\x49\x23\x1d\x8f\x97\x34\x40\xcb\x1c\x0f\x7e\xf4\xc3\x31\x92\x98\x18\x6e\x57\x8f\xc3\xc8\xbf\xfc\x7f\x01\x00\x00\xff\xff\x97\x8f\xf3\x10\xa5\x9f\x02\x00") - -func testConformanceTestdataConformanceYamlBytes() ([]byte, error) { - return bindataRead( - _testConformanceTestdataConformanceYaml, - "test/conformance/testdata/conformance.yaml", - ) -} - -func testConformanceTestdataConformanceYaml() (*asset, error) { - bytes, err := testConformanceTestdataConformanceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/conformance/testdata/conformance.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsFlexvolumeAttachableWithLongMount = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa4\x56\x6f\x6f\xda\xc8\x13\x7e\xef\x4f\x31\x5d\xd0\x4f\x4d\x45\x20\xe1\x57\xa9\x52\xa2\x54\xc7\x85\xe4\x8a\x4a\xa0\x0a\x34\xbd\xea\x38\x45\x8b\x3d\xb6\x47\xb7\xde\x75\x77\xd7\x21\x5c\xc4\x77\x3f\xad\x6d\x08\xe6\x5f\x93\x3b\xbf\x63\x77\xe6\x99\x67\x9e\xf9\xb3\xd4\xde\xb4\xa6\x24\x5b\x26\xf6\xbc\x1a\x5c\xaa\x74\xae\x29\x8a\x2d\xb4\x4f\x4e\x3f\xc0\x38\x46\xf8\x9c\x4d\x51\x4b\xb4\x68\xa0\x93\xd9\x58\x69\xd3\xf4\x6a\x5e\x0d\xfa\xe4\xa3\x34\x18\x40\x26\x03\xd4\x60\x63\x84\x4e\xca\xfd\x18\x97\x37\x0d\xb8\x43\x6d\x48\x49\x68\x37\x4f\xe0\xad\x33\x60\xe5\x15\x3b\x3a\xf7\x6a\x30\x57\x19\x24\x7c\x0e\x52\x59\xc8\x0c\x82\x8d\xc9\x40\x48\x02\x01\x1f\x7d\x4c\x2d\x90\x04\x5f\x25\xa9\x20\x2e\x7d\x84\x19\xd9\x38\x0f\x53\x82\x34\xbd\x1a\x7c\x2f\x21\xd4\xd4\x72\x92\xc0\xc1\x57\xe9\x1c\x54\xb8\x6e\x07\xdc\xe6\x84\xdd\x17\x5b\x9b\x9e\xb5\x5a\xb3\xd9\xac\xc9\x73\xb2\x4d\xa5\xa3\x96\x28\x0c\x4d\xab\xdf\xbb\xbc\x1a\x8c\xae\x8e\xdb\xcd\x93\xdc\xe5\xab\x14\x68\x0c\x68\xfc\x91\x91\xc6\x00\xa6\x73\xe0\x69\x2a\xc8\xe7\x53\x81\x20\xf8\x0c\x94\x06\x1e\x69\xc4\x00\xac\x72\x7c\x67\x9a\x2c\xc9\xa8\x01\x46\x85\x76\xc6\x35\x7a\x35\x08\xc8\x58\x4d\xd3\xcc\x56\xc4\x5a\xb2\x23\x53\x31\x50\x12\xb8\x04\xd6\x19\x41\x6f\xc4\xe0\xd7\xce\xa8\x37\x6a\x78\x35\xf8\xd6\x1b\x7f\x1a\x7e\x1d\xc3\xb7\xce\xed\x6d\x67\x30\xee\x5d\x8d\x60\x78\x0b\x97\xc3\x41\xb7\x37\xee\x0d\x07\x23\x18\x5e\x43\x67\xf0\x1d\x3e\xf7\x06\xdd\x06\x20\xd9\x18\x35\xe0\x63\xaa\x1d\x7f\xa5\x81\x9c\x8c\x18\x38\xcd\x46\x88\x15\x02\xa1\x2a\x08\x99\x14\x7d\x0a\xc9\x07\xc1\x65\x94\xf1\x08\x21\x52\x0f\xa8\x25\xc9\x08\x52\xd4\x09\x19\x57\x4c\x03\x5c\x06\x5e\x0d\x04\x25\x64\xb9\xcd\x4f\xb6\x92\x6a\xba\x5e\x1a\xbb\x72\x06\x9a\x1e\x50\xbb\x24\x31\xc7\xe7\x42\xcc\x21\x40\x43\x91\x2c\x34\xb3\x68\x2c\x70\x10\x4a\x46\x90\xa8\x4c\x3a\xf5\xc0\xf8\x28\xb9\x26\xe5\xd5\x60\x16\x93\x1f\x83\xcf\x25\xf8\xdc\x35\x09\x87\x07\x25\xb2\x04\x9d\xef\x14\x21\x40\xeb\xca\x18\x38\x3b\x81\x05\x82\x8b\x46\x12\x52\xad\x22\x97\x7e\xd3\xf3\xbc\xeb\xfe\xd5\xef\xf7\xdd\xaf\x37\x37\xdf\xef\xfb\xc3\xdf\x2e\xea\x4f\xd5\x83\xb3\x63\xd6\xb2\x49\xda\x0a\x05\x3e\x1e\x07\x59\x92\xcc\x9b\x42\x45\x6c\xe1\x79\x77\x9d\x7e\xaf\x7b\x7f\x33\x18\x77\xaf\xee\x7a\x97\x57\x17\xa1\x52\x2e\x37\x6e\x5d\x58\xe0\x62\xc6\xe7\xae\x3f\x6c\xa6\xa5\x01\x25\x11\x1e\xb8\xa0\xa0\xe4\x11\xe0\x03\xf9\x08\x46\x01\x87\x80\xc2\x10\x35\xae\x4e\xbd\x1a\x98\x58\xcd\x5c\xb6\x59\x0a\x79\xef\x9a\x6c\x6a\xf0\x47\x96\xdb\x14\xb2\xf9\x5c\x88\xb2\x74\x06\x38\x4c\xb3\xc8\xcb\xf1\xb9\xc5\x1b\x17\xa1\x9b\x43\x0d\x75\x97\xf0\xed\x11\x3c\x79\x50\x7e\xcf\x7c\xeb\xa7\xab\xc3\xcb\x4e\xbf\x7f\x51\x6f\xaf\x7e\x53\x08\x7f\x00\xab\xaf\x6c\x19\xbc\xb9\x00\x56\xdf\xc8\x98\xc1\x9f\xe7\xae\xb4\x72\xe5\xb7\xfc\x84\x8a\x80\x3d\x4d\x98\xb1\xdc\x66\x66\xc2\xce\x26\xec\x9a\x93\xc8\x34\x4e\x58\x63\xc2\x12\x34\x86\x47\x98\x9f\xe7\x79\xb0\xfa\x93\xa3\xb0\x60\xae\x2f\xd1\x77\xcd\x5e\x0a\xc4\xea\x4f\x1b\x51\x17\xac\x01\x91\xb2\x6b\x06\x6b\x57\x13\xb6\x60\x5b\x6c\xf0\x91\x2c\x9c\xac\x8e\x43\xf2\x16\x9e\x27\x54\x54\xd1\x25\xd5\x24\x6d\x08\xac\xfe\x8e\xc1\xc7\xff\x9d\x3a\x93\x00\xa7\x59\xd5\x08\xfd\x58\x01\xab\xbf\x75\x2a\x1f\x41\x6e\xfa\xd1\x31\xa8\xb6\xcc\x82\x39\xef\xa2\x0f\x2a\xee\x39\x20\xb0\xb2\x43\xea\xbf\x3c\x53\xdd\x21\xd8\x28\xf3\x7d\x34\x26\x17\xac\xc8\x35\x3f\xde\x25\x48\x25\xeb\x32\xdb\x9c\xff\x3e\x06\xc5\x4d\x85\x41\x0d\xc6\xc3\xee\x10\xc8\x98\x0c\xe1\xfd\xfb\x0f\xff\xff\x50\x0e\x90\x1b\x99\x94\x1b\xb7\xce\xbf\xdc\x81\xe4\x09\x36\xf2\xb5\xbc\xde\xc7\x2f\xca\x63\x27\xc7\x19\x27\x1b\x2a\xbd\x5f\xac\x8a\x41\x85\xf1\xce\x4e\xde\x37\x03\xd5\x6e\xae\xa2\xfe\xcb\x32\xfc\xbc\x00\x64\x8a\x00\x18\xec\xca\xec\xf9\xf6\x35\xad\xb0\xf4\x99\xb0\x33\xab\x33\xdc\x5d\x78\x95\x17\xa7\xa0\xbb\xb3\xfe\xeb\x06\xfb\x44\x6d\xbf\x56\xd4\x0a\x6a\x05\xf2\x4b\x67\xfc\x69\xbd\x4a\xc9\x5f\x01\x69\x38\x4e\x21\x57\xd1\xdd\x2e\xe0\x63\x2b\xc0\x87\x96\xcc\x84\x80\xb6\x1b\xc0\x95\x6d\xde\x67\xc7\x16\x6c\x92\x86\x06\xa4\xdb\xa4\x2f\x70\x33\x02\x31\x85\xd3\xf6\xc9\xc6\xf0\x7e\x42\x21\x14\x84\x5a\x25\xe0\x56\x7a\xf1\x62\xbc\x59\x0e\xf2\x12\xb6\x45\x32\xc0\xc7\x66\x6c\x13\xf1\xb2\xca\xec\xac\x43\x26\x7f\x52\x87\x8a\xc1\x66\x1d\x36\x45\xd3\xc9\x3e\x86\x7b\x45\xc8\x0a\xf1\x5e\x20\xd7\xab\x73\xc3\xc7\x94\xcb\xa0\x90\x6f\x57\x6a\xeb\xf7\x2f\xee\xef\x03\x91\x42\xb3\x3f\x4a\x68\xfe\x5b\x04\x95\x3a\x9d\xbd\xf2\xd5\x53\x29\x83\x0b\x60\x24\xc9\x6e\xbf\x70\xcb\xd9\x95\x64\x5f\x33\xb5\x3e\x4f\xf9\x94\x04\x59\x42\x77\xf9\xb4\x9c\xe3\x72\x8a\x1b\x30\x61\xe5\x3f\x49\x73\x3d\xba\x45\x43\x7f\xe3\x72\xc0\xb7\x19\x87\xe4\x79\x26\xa6\xd0\x7a\x9e\xcf\x0d\x96\x94\xe9\x99\x64\x81\x7d\xb4\xf5\x10\x2e\x97\xe8\xbb\xad\x9b\xf3\xf3\xb5\x0c\x77\x3b\x2f\xdf\x8c\x83\xce\x95\xbd\xba\x8d\xb1\xb1\xcc\x0f\x42\x3d\xaf\xc7\x6d\x9c\xf5\xd5\x79\x10\x64\x6d\xbc\x76\x64\x54\xdd\x82\x07\x81\x2a\x93\xba\x0d\xb5\x31\xc8\x07\xa1\xd6\x27\x63\x1b\xa9\x3a\x37\x2f\x00\x0a\xcd\x3e\x10\x37\x16\x07\x01\xde\x6d\x7b\xee\xe8\xe3\x81\xb2\x60\xb2\x34\x55\xda\xba\x67\x67\xff\x1f\x2c\x34\xdc\x77\xe3\x4a\x16\x4e\xbd\x7f\x02\x00\x00\xff\xff\x9b\x84\xf0\xd3\x3c\x0e\x00\x00") - -func testE2eTestingManifestsFlexvolumeAttachableWithLongMountBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsFlexvolumeAttachableWithLongMount, - "test/e2e/testing-manifests/flexvolume/attachable-with-long-mount", - ) -} - -func testE2eTestingManifestsFlexvolumeAttachableWithLongMount() (*asset, error) { - bytes, err := testE2eTestingManifestsFlexvolumeAttachableWithLongMountBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/flexvolume/attachable-with-long-mount", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsFlexvolumeDummy = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x92\x5f\x4f\xe3\x46\x14\xc5\x9f\x3d\x9f\xe2\xec\x24\xaa\x16\x44\x6c\xe0\xa5\x12\x08\xd4\x14\xd8\x12\x2d\x24\x15\x09\xdd\xa2\xa6\x5a\x4d\xec\x6b\x7b\xd4\xf1\xcc\x74\x66\x4c\x12\x45\xf9\xee\x95\x1d\x87\x2e\x65\x85\xea\x37\xdf\xbf\xbf\x73\xee\xf4\x3e\x24\x0b\xa9\x13\x5f\x32\xd6\xc3\x95\xb1\x6b\x27\x8b\x32\xe0\xf4\xf8\xe4\x47\xcc\x4a\xc2\xe7\x7a\x41\x4e\x53\x20\x8f\x61\x1d\x4a\xe3\x7c\xcc\x7a\xac\x87\x3b\x99\x92\xf6\x94\xa1\xd6\x19\x39\x84\x92\x30\xb4\x22\x2d\x69\x9f\x39\xc2\x6f\xe4\xbc\x34\x1a\xa7\xf1\x31\x3e\x36\x05\xbc\x4b\xf1\x83\x73\xd6\xc3\xda\xd4\xa8\xc4\x1a\xda\x04\xd4\x9e\x10\x4a\xe9\x91\x4b\x45\xa0\x55\x4a\x36\x40\x6a\xa4\xa6\xb2\x4a\x0a\x9d\x12\x96\x32\x94\xed\x9a\x6e\x48\xcc\x7a\x78\xea\x46\x98\x45\x10\x52\x43\x20\x35\x76\x0d\x93\x7f\x5b\x07\x11\x5a\xe0\xe6\x2b\x43\xb0\x67\x49\xb2\x5c\x2e\x63\xd1\xc2\xc6\xc6\x15\x89\xda\x15\xfa\xe4\x6e\x74\x75\x33\x9e\xde\x0c\x4e\xe3\xe3\xb6\xe5\x51\x2b\xf2\x1e\x8e\xfe\xae\xa5\xa3\x0c\x8b\x35\x84\xb5\x4a\xa6\x62\xa1\x08\x4a\x2c\x61\x1c\x44\xe1\x88\x32\x04\xd3\xf0\x2e\x9d\x0c\x52\x17\x47\xf0\x26\x0f\x4b\xe1\x88\xf5\x90\x49\x1f\x9c\x5c\xd4\xe1\x95\x59\x7b\x3a\xe9\x5f\x15\x18\x0d\xa1\xc1\x87\x53\x8c\xa6\x1c\x3f\x0f\xa7\xa3\xe9\x11\xeb\xe1\xcb\x68\x76\x3b\x79\x9c\xe1\xcb\xf0\xe1\x61\x38\x9e\x8d\x6e\xa6\x98\x3c\xe0\x6a\x32\xbe\x1e\xcd\x46\x93\xf1\x14\x93\x4f\x18\x8e\x9f\xf0\x79\x34\xbe\x3e\x02\xc9\x50\x92\x03\xad\xac\x6b\xf8\x8d\x83\x6c\x6c\xa4\xac\xf1\x6c\x4a\xf4\x0a\x20\x37\x3b\x20\x6f\x29\x95\xb9\x4c\xa1\x84\x2e\x6a\x51\x10\x0a\xf3\x4c\x4e\x4b\x5d\xc0\x92\xab\xa4\x6f\x8e\xe9\x21\x74\xc6\x7a\x50\xb2\x92\x41\x84\x36\xf2\x46\x54\xdc\xbc\xa5\x59\x73\xce\xcc\xc9\x67\xda\xad\xa7\x8a\x74\xf0\x10\x08\x95\xcd\xfd\xee\x9c\x02\xd6\xd1\xc0\x1a\x5b\x2b\xd1\xa8\x6f\xaf\x2f\x75\x46\xab\xb8\x0c\x95\x8a\x19\xfb\x74\x77\xf3\xfb\xd7\xeb\xc7\xfb\xfb\xa7\xaf\x77\x93\x5f\x2e\xfa\x9b\xd7\x81\xb3\x01\x4f\x42\x65\x93\x5c\xd1\x6a\x90\xd5\x55\xb5\x8e\x95\x29\xf8\x96\x31\x65\x8a\x8f\x07\xd8\xb0\xc8\x3a\xa9\x43\x0e\xde\x3f\xe4\xb8\xfc\xe1\x84\x6d\x19\xcb\x68\x51\x77\x59\x4a\x4b\x03\xde\xff\x98\x89\x40\x07\x68\x6b\x2e\xc1\xff\xbb\x66\xcb\xdb\x36\x53\x99\x5a\x87\x5d\x63\x3b\x03\xbc\x8b\xa1\xff\x13\x67\xd1\xfd\x78\xf6\xeb\x70\x76\x7b\xd1\x3f\x61\x51\xf5\x57\x26\x1d\x06\x16\xfd\x4d\x17\xde\xe2\x32\xc9\xe8\x39\xd1\xb5\x52\x38\x6d\x50\xa2\x5d\xef\x20\x74\x9e\x68\xa3\xe9\xdd\xfa\x1d\xed\x2d\x29\x65\x90\x3b\x53\xa1\xd1\xfd\x6c\x54\x5d\xd1\x87\x3d\xf9\xbe\x3b\xf9\xd7\x47\xce\x22\x65\x0a\xf0\xcd\x9c\xfb\x20\x42\xed\xe7\xfc\x6c\xce\xa7\x75\x9a\x92\xf7\x73\xbe\xe5\x2c\xa2\x95\x0c\x38\x6e\x54\xd6\xfa\xad\xca\x2e\xf6\x56\xa5\xab\xf0\xdd\x8d\x6f\xd1\xeb\x6e\xc2\x3b\xea\xfe\x3f\xa3\xb1\xcd\x76\x26\x73\xfc\x01\xde\x37\x96\xe3\x02\x5c\x6a\x19\x38\xfe\x3c\x6f\x5e\xa2\x7e\x41\x6f\xa2\x3b\xee\xf7\xc6\x1f\xcd\x79\x2a\xac\x58\x48\x25\x83\xa4\x26\xb9\x99\x73\x11\x82\x48\xcb\x39\x3f\xcb\x85\xf2\xb4\xfd\x06\x21\x97\x8c\xf9\x52\xe6\x81\xb1\x54\x78\xea\x18\xa4\xee\x2e\x7a\xc0\xa2\xe8\xe5\x61\x1c\xb2\x28\x3a\x3f\x67\x51\xe7\x61\x93\x7b\xb1\x73\x9f\x3b\x6c\xa2\xdf\xe1\x1b\x9b\x00\x5f\x5b\x6b\x5c\xa0\x6c\x67\xc2\x1e\x81\xbc\x48\x19\x6b\x7f\x4e\xd8\x3f\x01\x00\x00\xff\xff\x5b\x74\xc1\x62\xc5\x05\x00\x00") - -func testE2eTestingManifestsFlexvolumeDummyBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsFlexvolumeDummy, - "test/e2e/testing-manifests/flexvolume/dummy", - ) -} - -func testE2eTestingManifestsFlexvolumeDummy() (*asset, error) { - bytes, err := testE2eTestingManifestsFlexvolumeDummyBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/flexvolume/dummy", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsFlexvolumeDummyAttachable = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x55\x7d\x4f\xdb\xc8\x13\xfe\xdb\xfb\x29\xa6\x9b\xe8\xa7\x52\xe5\x05\xf8\x55\xaa\x04\xa2\xba\x1c\x81\x6b\xd4\x90\x54\x24\xa5\x57\x5d\x4e\xd5\xc6\x1e\xdb\xab\xb3\x77\xb7\xfb\x42\xc8\xa1\x7c\xf7\xd3\xfa\x05\x6c\xa0\x94\xfa\xcf\x99\xc7\x33\xcf\x3c\xf3\xb2\x9d\x57\xc3\x35\x17\x43\x93\x12\xd2\x81\x53\xa9\xb6\x9a\x27\xa9\x85\xc3\xfd\x83\x77\xb0\x4c\x11\x3e\xba\x35\x6a\x81\x16\x0d\x8c\x9c\x4d\xa5\x36\x03\xd2\x21\x1d\x98\xf2\x10\x85\xc1\x08\x9c\x88\x50\x83\x4d\x11\x46\x8a\x85\x29\xd6\x9e\x1e\x5c\xa1\x36\x5c\x0a\x38\x1c\xec\xc3\x6b\x0f\xa0\x95\x8b\xee\x1d\x93\x0e\x6c\xa5\x83\x9c\x6d\x41\x48\x0b\xce\x20\xd8\x94\x1b\x88\x79\x86\x80\x37\x21\x2a\x0b\x5c\x40\x28\x73\x95\x71\x26\x42\x84\x0d\xb7\x69\x91\xa6\x0a\x32\x20\x1d\xf8\x5a\x85\x90\x6b\xcb\xb8\x00\x06\xa1\x54\x5b\x90\x71\x13\x07\xcc\x16\x84\xfd\x97\x5a\xab\x8e\x86\xc3\xcd\x66\x33\x60\x05\xd9\x81\xd4\xc9\x30\x2b\x81\x66\x38\x9d\x9c\x9e\xcd\x16\x67\xfd\xc3\xc1\x7e\xf1\xcb\x67\x91\xa1\x31\xa0\xf1\xbb\xe3\x1a\x23\x58\x6f\x81\x29\x95\xf1\x90\xad\x33\x84\x8c\x6d\x40\x6a\x60\x89\x46\x8c\xc0\x4a\xcf\x77\xa3\xb9\xe5\x22\xe9\x81\x91\xb1\xdd\x30\x8d\xa4\x03\x11\x37\x56\xf3\xb5\xb3\x2d\xb1\x6a\x76\xdc\xb4\x00\x52\x00\x13\x40\x47\x0b\x98\x2c\x28\xfc\x3e\x5a\x4c\x16\x3d\xd2\x81\x2f\x93\xe5\x87\xf9\xe7\x25\x7c\x19\x5d\x5e\x8e\x66\xcb\xc9\xd9\x02\xe6\x97\x70\x3a\x9f\x8d\x27\xcb\xc9\x7c\xb6\x80\xf9\x39\x8c\x66\x5f\xe1\xe3\x64\x36\xee\x01\x72\x9b\xa2\x06\xbc\x51\xda\xf3\x97\x1a\xb8\x97\x11\x23\xaf\xd9\x02\xb1\x45\x20\x96\x25\x21\xa3\x30\xe4\x31\x0f\x21\x63\x22\x71\x2c\x41\x48\xe4\x35\x6a\xc1\x45\x02\x0a\x75\xce\x8d\x6f\xa6\x01\x26\x22\xd2\x81\x8c\xe7\xdc\x32\x5b\x58\x1e\x15\x35\xf0\xb3\xb4\xf4\xed\x8c\x34\xbf\xc6\x32\x3d\xe6\x28\xac\x01\x06\x36\x57\xb1\x29\xdb\xc9\x40\x69\xec\x2b\xa9\x5c\xc6\x7c\xf5\x45\xf7\xb9\x88\xf0\x66\x90\xda\x3c\xf3\x74\x47\xd6\xb2\x30\xf5\x32\xd5\x6d\xe8\xc1\xda\x59\xe0\xd6\xdb\x18\x08\xd9\x97\x0a\x6c\xca\x2c\xb0\x6c\xc3\xb6\x1e\x67\x9d\x16\x06\x8c\x0b\x43\x34\x66\x40\xc8\xf9\xf4\xec\xcf\x6f\xe3\xcf\x17\x17\x5f\xbf\x4d\xe7\x7f\x9c\x74\x6f\xdb\x86\xa3\x3e\x1d\xda\x5c\x0d\xe3\x0c\x6f\xfa\x91\xcb\xf3\xed\x20\x93\x09\xdd\x11\x72\x35\x9a\x4e\xc6\xdf\x2e\x66\xcb\xf1\xd9\xd5\xe4\xf4\xec\x24\x96\xd2\x97\xc6\x4a\x4e\x0f\xf2\x49\x81\x70\xcd\x32\x1e\x41\x2e\x9d\xb0\x10\xe1\x35\x0f\x11\x8c\x04\x06\x11\x8f\x63\xd4\x78\x67\x25\x1d\x30\xa9\xdc\x78\x6d\x9d\x82\x62\x74\x8d\x5b\x1b\xfc\xee\x0a\x4c\xa9\x5a\xc8\xb2\xac\xea\x9c\xaf\x74\xed\x12\x52\xc4\x67\x16\x2f\x7c\x86\x71\x11\x6a\xae\xc7\x1c\x5f\xef\xc1\x2d\x09\xee\x89\x76\x0f\x48\x70\x3a\x9a\x4e\x4f\xba\x87\x24\xe0\x31\xfc\x05\xb4\x7b\xe7\xa5\xf0\xea\x04\x68\xf7\x41\x71\x14\xfe\x3e\xf6\x4d\x14\x24\x08\x32\x99\x00\xbd\x5d\x51\x63\x99\x75\x66\x45\x8f\x56\xf4\x9c\xf1\xcc\x69\x5c\xd1\xde\x8a\xe6\x68\x0c\x4b\xb0\xb0\x17\x24\x69\xf7\xd6\x67\xdb\x51\x3f\x73\x18\xfa\x56\x56\xd5\xd3\xee\xed\x83\x3c\x3b\xda\x83\x44\xda\x06\xa0\xe1\x5a\xd1\x1d\x25\x41\x80\x37\xdc\xc2\x3e\x09\x62\x4e\x76\x84\x64\x32\x29\xeb\x53\x9a\x0b\x1b\x03\xed\xbe\xa1\xf0\xfe\x7f\x07\xde\x17\xe1\xda\x55\x5e\x0c\x53\x09\xb4\xfb\xda\xeb\xb3\x07\x05\xe6\xbd\x0f\xdf\x6e\xf6\x8e\xfa\xdf\xca\x0e\x96\xff\x15\x21\x80\x56\x4d\xed\xfe\x46\xc9\x53\xf5\x2f\xca\x69\x2a\xea\x2f\xa9\x17\xe6\xa7\xea\x2b\x8b\xa8\x6a\x28\x38\x3e\x4a\x56\x9a\xca\x64\x1d\x58\xce\xc7\x73\xe0\xc6\x38\x84\xb7\x6f\xdf\xfd\xff\x1d\x54\x6e\x6e\x40\x31\xe3\x8f\xec\xa7\x2b\x10\x2c\xc7\x5e\x71\x2c\x9b\xe3\xf5\x3c\xd7\x36\x8f\x0d\xe3\x36\x96\xfa\x89\xda\x5b\x9e\x92\x55\x7b\x96\x7e\x34\x77\xed\xb1\x6a\xc7\xf9\x55\x1d\x9f\x51\x90\x9b\x32\x24\x46\x2d\xda\xf7\xe6\x17\xb5\xad\x06\xaf\xe8\x91\xd5\x0e\x1f\x34\x49\x16\xb2\x96\x94\xda\xbd\x6a\x7a\x1e\x89\x73\xf8\x62\x71\x5a\x71\xca\x20\x9f\x46\xcb\x0f\x85\xbe\xf9\x3f\x11\xd7\xd0\x57\x50\xc8\xe0\xcd\x3b\x78\x3f\x8c\xf0\x7a\x28\x5c\x96\xc1\xa1\x9f\xf6\xa0\xec\x7b\xdf\x56\x17\x54\xf8\x83\xf3\x1c\xbe\x5c\x88\x0f\x98\x65\x12\x62\x2d\x73\xf0\x07\xee\x5a\x66\x2e\xc7\x57\xf5\x72\xd4\x7f\x0f\xef\xaf\xee\x4f\x84\x6c\xcb\xe6\xc4\x8f\x64\x6b\x79\xee\x64\xbb\xab\x58\xe7\x3f\x4a\xff\xb8\x10\x57\x56\xfe\x5c\xad\x2f\x67\x8c\x37\x8a\x89\xa8\x94\xa1\x45\xb8\xe9\xf8\xf9\x3c\x3d\x15\x34\x36\x4f\x04\x8c\xcd\xaf\x06\x93\xca\x2b\x44\xaa\xb3\x2d\x15\x85\x13\xa0\x5c\x70\xdb\x38\xd1\xf5\x06\x08\x6e\x5f\x34\xfb\x21\x53\x6c\xcd\x33\x6e\x39\x7a\xe7\x6d\xbd\x0d\xd5\x2e\xf4\x60\x45\xab\xf7\xd5\x9c\x2f\x2e\xd1\xf0\x7f\xb1\x5e\x93\x06\xb9\x98\x13\x62\x52\x1e\x5b\x42\x42\x66\xb0\x62\xc7\x05\x09\xca\x68\x7b\x24\x08\xea\x23\xf2\x86\x04\xc1\xf1\xb1\x67\x5a\x7b\xea\xa3\x57\x7b\x5a\xd7\xc2\x03\x1e\x9c\xa1\x1a\x77\xbf\xe6\x1e\xd4\x5c\xfa\x1a\xd1\x98\xb4\x22\x51\x7b\x63\x6b\x54\x6b\x22\x3d\xee\xc1\x88\xd6\xb8\xe6\x20\xec\x15\xaf\x51\x73\x30\xda\xa8\xd8\xdc\x23\x7c\xa7\x6b\xef\x9b\xbd\xa7\x9f\xd1\x99\xb4\x60\x9c\x52\x52\x5b\x7f\x88\x9a\xaf\x1d\x1a\x16\xfa\x49\xe2\x16\x0e\xc8\x7f\x01\x00\x00\xff\xff\xae\x82\x6a\x82\x97\x0b\x00\x00") - -func testE2eTestingManifestsFlexvolumeDummyAttachableBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsFlexvolumeDummyAttachable, - "test/e2e/testing-manifests/flexvolume/dummy-attachable", - ) -} - -func testE2eTestingManifestsFlexvolumeDummyAttachable() (*asset, error) { - bytes, err := testE2eTestingManifestsFlexvolumeDummyAttachableBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/flexvolume/dummy-attachable", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsGuestbookAgnhostPrimaryDeploymentYamlIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x90\xcb\x4a\x03\x41\x10\x45\xf7\xfd\x15\x97\x59\x3b\x9a\x20\x28\xf6\x4e\x70\x23\x28\xb8\x72\x23\x2e\x2a\x9d\x62\xd2\xa4\x5f\x56\x57\x84\x10\xf2\xef\xd2\xe6\x39\x9a\xda\xcd\x29\xe6\x9e\x5b\x4d\xc5\xbf\xb3\x54\x9f\x93\x05\x95\x52\x6f\xbe\xa7\x66\xe9\xd3\xdc\xe2\x89\x4b\xc8\xeb\xc8\x49\x4d\x64\xa5\x39\x29\x59\x03\x24\x8a\x6c\x41\x43\x5a\xe4\xaa\x7d\x11\x1f\x49\xd6\xa6\x16\x76\x6d\x2b\x5c\x82\x77\x54\x2d\xa6\x06\xa8\x1c\xd8\x69\x96\xb6\x01\x22\xa9\x5b\xbc\xd0\x8c\x43\xdd\x01\x34\xe3\x31\x6b\x8f\x24\x07\xb6\x38\xe4\xee\x98\x7a\x16\x8b\x19\xb9\x25\xa7\xb9\x01\x94\x63\x09\xa4\xbc\xcf\x3d\x6b\xd7\x26\x8c\x14\x17\x25\x97\x35\xff\x45\xc0\xe1\xb0\x36\x2e\x27\x25\x9f\x58\x8e\xe1\xfd\xfe\x39\xfe\xe6\xf8\x48\x03\x5b\x6c\x36\xd7\x8f\x3b\xef\x73\x03\xdb\xed\xa9\x93\x0c\xd5\xe2\x03\xdd\xb0\xe2\xaa\xb3\x9c\x97\xdd\x15\xba\xbe\x5f\xa8\x96\xbe\x64\xd1\xf6\x79\x77\x7b\xff\xd0\xe1\xf3\xd4\x99\x6b\x5e\x89\xe3\xb3\xdb\x1a\xfc\x6a\x11\x23\x06\xb8\xb2\xb2\x98\x4e\x26\x71\x44\x23\xc7\x2c\xeb\xdf\xc5\xab\x3f\x6e\x9a\xee\xec\xf7\xfe\x74\xe7\x5b\x16\xb5\x68\x35\xcc\x4f\x00\x00\x00\xff\xff\xa6\xad\xbd\xcc\x28\x02\x00\x00") - -func testE2eTestingManifestsGuestbookAgnhostPrimaryDeploymentYamlInBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsGuestbookAgnhostPrimaryDeploymentYamlIn, - "test/e2e/testing-manifests/guestbook/agnhost-primary-deployment.yaml.in", - ) -} - -func testE2eTestingManifestsGuestbookAgnhostPrimaryDeploymentYamlIn() (*asset, error) { - bytes, err := testE2eTestingManifestsGuestbookAgnhostPrimaryDeploymentYamlInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/guestbook/agnhost-primary-deployment.yaml.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsGuestbookAgnhostPrimaryServiceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\xcd\x41\x8a\xc3\x30\x0c\x85\xe1\xbd\x4f\xf1\x2e\x90\xc5\x30\x30\x43\x75\x8a\x42\xa1\x7b\xc5\x79\xa4\x26\x8e\x6d\x64\x11\xe8\xed\x4b\x52\x68\xbb\xee\x4e\xfc\x7c\x92\xb4\xa5\x2b\xad\xa7\x5a\x04\xdb\x4f\x58\x52\x99\x04\x17\xda\x96\x22\xc3\x4a\xd7\x49\x5d\x25\x00\x45\x57\x0a\x74\x2e\xb7\xda\x7d\x68\x96\x56\xb5\x7b\x00\xb2\x8e\xcc\x7d\x17\x80\xb6\xf6\x22\x47\xb0\x9a\x29\x78\x63\xc0\x13\x4d\x30\x6a\x5c\x58\xa6\xd0\x1b\xe3\xbe\xda\xaa\xf9\x71\x63\x38\x46\xc1\xdf\xef\xff\xe9\xe9\xd5\x66\xfa\xf9\x33\x76\x66\x46\xaf\xf6\xe5\xcf\x47\x00\x00\x00\xff\xff\x31\x9c\x65\x89\xf2\x00\x00\x00") - -func testE2eTestingManifestsGuestbookAgnhostPrimaryServiceYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsGuestbookAgnhostPrimaryServiceYaml, - "test/e2e/testing-manifests/guestbook/agnhost-primary-service.yaml", - ) -} - -func testE2eTestingManifestsGuestbookAgnhostPrimaryServiceYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsGuestbookAgnhostPrimaryServiceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/guestbook/agnhost-primary-service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsGuestbookAgnhostReplicaDeploymentYamlIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x90\x41\x4f\xc3\x30\x0c\x85\xef\xf9\x15\x56\xcf\x14\x36\x90\x40\xe4\x86\xc4\x05\x09\x24\x4e\x5c\x10\x07\x2f\x33\x5d\xb4\x24\x0e\x8e\x87\x34\x4d\xfb\xef\x28\xac\xdd\x5a\x58\x6e\x7e\xaf\x7d\x9f\xfd\x30\xfb\x37\x92\xe2\x39\x59\xc0\x9c\xcb\xd5\xf7\xdc\xac\x7d\x5a\x5a\x78\xa4\x1c\x78\x1b\x29\xa9\x89\xa4\xb8\x44\x45\x6b\x00\x12\x46\xb2\x80\x5d\x5a\x71\xd1\x56\x28\x07\xef\xd0\x94\x4c\xae\xba\xfd\x5c\x2c\x5c\x1b\x80\x42\x81\x9c\xb2\x54\x07\x20\xa2\xba\xd5\x33\x2e\x28\x94\x83\x00\x95\x78\xcc\xea\x25\xe1\x40\x76\xc8\xe9\x35\xf5\x24\x16\x16\xe8\xd6\x94\x96\x06\x40\x29\xe6\x80\x4a\x7d\xee\x68\xbb\xfa\xc2\x04\x71\x16\x72\x1e\xf3\x1f\x04\x30\x1c\x56\x9f\xe3\xa4\xe8\x13\xc9\x31\xbc\xed\xeb\xf8\x9b\xe3\x23\x76\x64\x61\xb7\xbb\x7c\x38\x70\x9f\xaa\xb0\xdf\x9f\x76\x92\xae\x58\x78\x87\xa6\xdb\x50\xd1\x05\xf3\xba\xb9\x80\xa6\x1d\xfa\xe4\xcf\x3a\x0e\x25\x67\xf1\x11\x65\x7b\xf8\x62\xa5\x9a\xdb\xcc\xa2\x75\xbc\xbd\xb9\xbb\x6f\xe0\xe3\x74\x15\x15\xde\x88\xa3\xd1\xf5\x55\xfc\xaa\x90\x89\x06\xe0\xf2\xc6\xc2\x7c\x36\x8b\x13\x35\x52\x64\xd9\xfe\x1a\x2f\xfe\xe8\x54\xdc\xe8\xf7\xf6\xd4\xc4\x2b\x8b\x5a\xa8\x6b\x98\x9f\x00\x00\x00\xff\xff\x15\xa2\x0c\xb6\x4a\x02\x00\x00") - -func testE2eTestingManifestsGuestbookAgnhostReplicaDeploymentYamlInBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsGuestbookAgnhostReplicaDeploymentYamlIn, - "test/e2e/testing-manifests/guestbook/agnhost-replica-deployment.yaml.in", - ) -} - -func testE2eTestingManifestsGuestbookAgnhostReplicaDeploymentYamlIn() (*asset, error) { - bytes, err := testE2eTestingManifestsGuestbookAgnhostReplicaDeploymentYamlInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/guestbook/agnhost-replica-deployment.yaml.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsGuestbookAgnhostReplicaServiceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\xcc\x41\xaa\xc3\x30\x0c\x84\xe1\xbd\x4f\x31\x17\xc8\xe2\xf1\xa0\xa5\xba\x46\xa1\x7b\xc5\x19\x5a\x13\xc7\x16\xb2\xc8\xf9\x4b\xb2\x68\xf7\xdd\x09\xf1\xcd\xaf\x56\x1e\xf4\x51\x7a\x13\xec\x7f\x69\x2d\x6d\x11\xdc\xe9\x7b\xc9\x4c\x1b\x43\x17\x0d\x95\x04\x34\xdd\x28\xd0\x67\x7b\xf5\x11\x93\xd3\x6a\xc9\x9a\x80\xaa\x33\xeb\x38\x04\xa0\x66\x1f\x72\x3e\xbc\x57\x0a\xbe\x18\x88\x42\x17\xcc\x9a\x57\xb6\x25\x0d\x63\x3e\xa6\xd6\x3d\xce\xc6\x74\x9e\x82\xcb\xff\xf5\x96\x80\xc1\xca\x1c\xdd\x7f\xcc\xbf\x03\x00\x00\xff\xff\xa5\xe8\x39\x6d\xdd\x00\x00\x00") - -func testE2eTestingManifestsGuestbookAgnhostReplicaServiceYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsGuestbookAgnhostReplicaServiceYaml, - "test/e2e/testing-manifests/guestbook/agnhost-replica-service.yaml", - ) -} - -func testE2eTestingManifestsGuestbookAgnhostReplicaServiceYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsGuestbookAgnhostReplicaServiceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/guestbook/agnhost-replica-service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsGuestbookFrontendDeploymentYamlIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x8f\xcb\x4a\x33\x41\x10\x85\xf7\xf3\x14\x87\x59\xff\xf3\x9b\x10\xf0\xd2\x3b\xc1\x8d\xa0\xe0\xca\x8d\xb8\xa8\xf4\x94\x93\x26\x7d\xb3\xba\x22\x84\x90\x77\x97\xd6\x38\x99\x01\xad\xe5\x57\xd4\x57\xe7\x50\x76\xcf\x2c\xc5\xa5\x68\x40\x39\x97\x8b\x8f\x65\xb3\x75\xb1\x37\xb8\xe3\xec\xd3\x3e\x70\xd4\x26\xb0\x52\x4f\x4a\xa6\x01\x22\x05\x36\x78\x93\x14\x95\x63\xdf\x94\xcc\xb6\x62\xe1\xec\x9d\xa5\x62\xb0\x6a\x80\xc2\x9e\xad\x26\xa9\x1b\x20\x90\xda\xcd\x03\xad\xd9\x97\x6f\x80\xfa\xca\x60\xd8\x71\xd1\x75\x4a\xdb\x13\x54\xc7\x32\x51\x03\xca\x21\x7b\x52\x3e\x69\x26\x29\xea\xf8\x99\xf1\x0f\xe7\x2f\x56\xe0\x27\x74\x1d\x9b\xa2\x92\x8b\x2c\xa3\xa9\x3b\x75\x1c\x55\xdd\xec\xb8\x8e\x0b\x34\xb0\xc1\xe1\xf0\xff\x76\x88\x9b\x54\xf4\xbe\x82\xe3\xf1\x9c\x45\x86\x62\xf0\x82\x76\x94\xb4\xff\xd0\x76\xdd\x9a\xec\x96\x63\xdf\xe5\x24\x5a\xc9\xe5\xea\xea\xa6\xc5\xeb\x78\x27\x5c\xd2\x4e\x2c\x4f\x6a\x55\xf8\x5e\x2d\x33\x06\xd8\xbc\x33\x58\x2e\x16\x61\x46\x03\x87\x24\xfb\xaf\xc5\xa3\x1b\x37\xf5\xdd\xe4\xbc\x3b\xb7\x7e\x4a\xa2\x06\xd7\x8b\xe6\x33\x00\x00\xff\xff\xbd\x10\x5c\xb3\x09\x02\x00\x00") - -func testE2eTestingManifestsGuestbookFrontendDeploymentYamlInBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsGuestbookFrontendDeploymentYamlIn, - "test/e2e/testing-manifests/guestbook/frontend-deployment.yaml.in", - ) -} - -func testE2eTestingManifestsGuestbookFrontendDeploymentYamlIn() (*asset, error) { - bytes, err := testE2eTestingManifestsGuestbookFrontendDeploymentYamlInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/guestbook/frontend-deployment.yaml.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsGuestbookFrontendServiceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x8f\x3f\x4b\x04\x31\x10\xc5\xfb\x7c\x8a\x07\xb6\x9e\x68\x27\x29\xed\x04\x0b\x41\xb0\x9f\x4d\x66\xcf\x70\xd9\x99\x30\x99\x9c\xee\xb7\x97\xdd\xb5\xb0\xbc\x6e\x98\xf7\x87\xdf\xa3\x56\x3e\xd9\x7a\x51\x89\xb8\x3e\x85\x4b\x91\x1c\xf1\xc1\x76\x2d\x89\xc3\xc2\x4e\x99\x9c\x62\x00\x84\x16\x8e\x98\x4d\xc5\x59\x72\x00\x2a\x4d\x5c\xfb\x26\x01\xd4\x5a\xc4\x79\x70\xf7\x49\xf5\xb2\xbf\xbc\xb0\xfd\xf3\xf7\xc6\x69\xf3\xde\xa1\xcc\x58\x75\x18\x52\x1d\xdd\xd9\xd0\x47\x6b\x6a\xde\x51\xfc\x1e\x43\x92\x2e\x0b\x8b\xc3\xbf\x18\xb3\xd6\xaa\xdf\x45\xce\x70\x05\x0d\xd7\x85\xbc\x24\xaa\x75\x45\x32\x26\xe7\xbd\x90\x04\xfc\xe3\x6c\x42\x15\x55\x29\x9f\x26\xaa\x24\x89\x33\x5e\xdf\x31\xab\x1d\x55\x7f\x20\xe8\xc7\xb6\x87\x3d\xea\x6b\xe3\x88\x37\xa5\xfc\x72\x64\x2c\x00\x3b\xcd\xc6\x7a\xda\xcf\x88\xe7\xc7\x00\x74\xae\x9c\x5c\xed\xd6\xc1\xbf\x01\x00\x00\xff\xff\xc5\xce\xd2\xc0\x59\x01\x00\x00") - -func testE2eTestingManifestsGuestbookFrontendServiceYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsGuestbookFrontendServiceYaml, - "test/e2e/testing-manifests/guestbook/frontend-service.yaml", - ) -} - -func testE2eTestingManifestsGuestbookFrontendServiceYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsGuestbookFrontendServiceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/guestbook/frontend-service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsGuestbookLegacyFrontendControllerYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x92\x3f\x6f\xdb\x30\x10\xc5\x77\x7d\x8a\x07\x74\xc8\x62\x37\x0e\xda\xa1\xe0\x5a\xf4\xdf\x10\xa4\x48\x82\xae\xc6\x89\x3a\xcb\x44\xa8\x3b\x96\x3c\xa9\xc8\xb7\x2f\xe8\x46\xb2\x54\x6e\xfa\x1d\xdf\xef\x1e\x24\x51\x0a\xbf\x38\x97\xa0\xe2\x30\xdd\x35\x2f\x41\x3a\x87\x47\x4e\x31\x78\xb2\xa0\xf2\x59\xc5\xb2\xc6\xc8\xb9\x19\xd8\xa8\x23\x23\xd7\x00\x42\x03\x3b\x9c\xb2\x8a\xb1\x74\x4d\x49\xec\x2b\xce\xff\x82\xc5\xe1\x43\x03\x18\x0f\x29\x92\x71\x9d\x00\xeb\x78\x3d\x91\x5a\x8e\x65\x7e\x02\x28\x25\x87\x7e\xe4\x62\xad\xea\xcb\x82\x2d\x70\x5e\x6d\xaa\x68\xde\x56\x8f\x57\x31\x0a\xc2\x79\x31\xed\xdf\xca\xa5\x73\xda\x67\xee\x42\x59\x54\x61\xa0\x9e\x1d\x7a\x9f\xdf\x07\xbd\xed\x55\xfb\xc8\xc7\x42\x43\x8a\x5c\x6e\xfb\x76\x3f\x2f\x71\xd3\xc7\x25\x93\xb9\xe8\x98\x3d\xaf\x8a\x56\xf8\xbb\xf6\xdc\x30\xc0\xa7\xd1\xe1\xee\x70\x18\x36\x74\xe0\x41\xf3\xeb\x65\x70\x1f\x96\x09\xcb\x74\x0d\xcf\x8d\xbf\x7d\x79\x3e\x7e\x7f\x78\x7a\x7e\x3a\x7e\x7d\x7c\xb8\x5f\x59\x26\x8a\x23\x3b\x74\x52\x56\xf0\x1d\x7e\x9c\xf0\xaa\x63\x86\x8f\x63\x31\xce\xf5\x5d\x9c\x42\x8f\x4e\xb9\x40\xd4\x10\xc4\xc7\xb1\x63\x50\x4d\xa2\x70\x9e\x82\xe7\x1d\xec\xcc\x02\xd3\x8d\x2a\x48\x31\xa6\x0e\xe4\x3d\x97\x52\xeb\x85\xac\x32\xb0\x18\x26\xca\x81\xda\xc8\x05\xa6\x38\x05\xe9\x66\x13\xce\x5a\xec\x3f\xcb\x49\x77\xf0\x3a\x5c\x82\x3a\x5a\xdd\x85\x9b\x6b\xfd\x1b\xc4\x20\x0c\x6a\x75\xe2\x1d\x48\x3a\x8c\x32\x5f\xb7\x33\x6f\x64\x97\x9b\x2d\x47\xfd\xe3\x36\xfc\xcd\xc6\x32\x2d\x38\x69\x5e\x7f\x8c\xfd\xf5\xaf\xf8\xa9\xd9\x1c\x3e\x1d\x9a\xbf\x01\x00\x00\xff\xff\x1c\xa9\xd8\xd7\xe8\x02\x00\x00") - -func testE2eTestingManifestsGuestbookLegacyFrontendControllerYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsGuestbookLegacyFrontendControllerYaml, - "test/e2e/testing-manifests/guestbook/legacy/frontend-controller.yaml", - ) -} - -func testE2eTestingManifestsGuestbookLegacyFrontendControllerYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsGuestbookLegacyFrontendControllerYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/guestbook/legacy/frontend-controller.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsGuestbookLegacyRedisMasterControllerYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x8f\x41\x4f\xc3\x30\x0c\x85\xef\xf9\x15\xfe\x03\xdd\x56\xa1\x81\xc8\x95\x33\x12\xe2\xc0\xdd\x4d\x2d\x64\x35\x89\x83\xe3\x22\xed\xdf\xa3\x74\xa3\xeb\x60\xbe\xe5\xbd\xf8\x7d\xcf\x58\xf8\x83\xb4\xb2\x64\x0f\xdf\xbd\x9b\x38\x8f\x1e\xde\xa9\x44\x0e\x68\x2c\xf9\x45\xb2\xa9\xc4\x48\xea\x12\x19\x8e\x68\xe8\x1d\x40\xc6\x44\x1e\x94\x46\xae\x5d\xc2\x6a\xa4\x0e\x20\xe2\x40\xb1\x36\x1b\x00\x4b\xb9\xf8\xcb\x53\x25\x92\x87\xf5\x27\x80\x31\xa9\x87\x01\xc3\x44\x79\x74\xb5\x50\x68\x7b\x7a\x06\x57\x0f\xbd\x03\x30\x4a\x25\xa2\xd1\x39\x71\x8b\x6f\xb3\xa5\xdd\x21\xde\xa5\xfe\x27\x37\xe5\x97\xde\x26\x48\x36\xe4\x4c\xba\x26\x77\x97\x63\xff\xc4\x70\xc2\x4f\xf2\x30\x4a\x98\x48\x77\x2c\xfb\xc8\x83\xa2\x9e\xf6\x4b\x05\x7f\xdc\x1d\x76\xc7\x0e\x63\xe1\x4c\xd7\x3e\x54\x65\xd6\x40\x9b\xd6\x4d\xfc\x9a\xa9\xda\x8d\x06\x10\xca\xec\xa1\x3f\x1c\xd2\x8d\x9a\x28\x89\x9e\x16\xe3\x95\x57\xa7\x88\x6e\xd7\xbb\xeb\x11\x6f\xa2\xe6\xe1\xf1\xe1\xe9\xd9\xfd\x04\x00\x00\xff\xff\xab\x8c\xb0\x65\xe9\x01\x00\x00") - -func testE2eTestingManifestsGuestbookLegacyRedisMasterControllerYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsGuestbookLegacyRedisMasterControllerYaml, - "test/e2e/testing-manifests/guestbook/legacy/redis-master-controller.yaml", - ) -} - -func testE2eTestingManifestsGuestbookLegacyRedisMasterControllerYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsGuestbookLegacyRedisMasterControllerYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/guestbook/legacy/redis-master-controller.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsGuestbookLegacyRedisSlaveControllerYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x53\xcd\x6e\xdb\x3c\x10\xbc\xeb\x29\x16\xce\x21\x17\xdb\x72\x9c\xc8\xfe\xcc\xeb\x87\xfe\x1d\x82\x14\x49\xd0\x1e\x8a\x22\x58\x52\x6b\x9b\x30\xb9\xab\x92\x94\x5a\xbf\x7d\x41\xf9\x4f\x46\xa3\x1b\x77\x76\x66\x96\x9c\x15\x36\xf6\x1b\x85\x68\x85\x15\x74\x77\xc5\xce\x72\xad\xe0\x99\x1a\x67\x0d\x26\x2b\xfc\xbf\x70\x0a\xe2\x1c\x85\xc2\x53\xc2\x1a\x13\xaa\x02\x80\xd1\x93\x82\x40\xb5\x8d\x93\xe8\xb0\xa3\x02\xc0\xa1\x26\x17\x33\x0a\x80\x4d\x73\x84\xfb\x63\x10\x47\x0a\x4e\x8d\x00\xc9\x52\x50\xa0\xd1\xec\x88\xeb\x22\x36\x64\x32\x2d\x1c\x6c\xa3\x82\x79\x01\x90\xc8\x37\x0e\x13\x1d\x04\x87\xe6\xf9\x1b\x9a\xbd\x63\xf8\x9e\xe9\xbf\xc6\xb9\x72\x32\xcf\x9f\x11\x4e\x68\x99\xc2\x59\x78\x72\xbc\xe9\xb5\x8a\xf5\xb8\x21\x05\xb5\x98\x1d\x85\xa9\x95\xd2\x59\x1d\x30\xec\xcb\x7e\x00\x55\x4d\x67\xd3\x6a\x82\xae\xb1\x7c\xe1\xdc\xc0\x77\x02\x0c\x04\xc2\x6e\x0f\xd6\x37\x8e\x3c\x71\xb2\xbc\x81\xb4\x25\xa8\x39\x82\x34\xf9\xc5\x41\xd6\x6a\xc0\xda\xa6\xd4\x44\x55\x96\x1b\x9b\xb6\xad\x9e\x1a\xf1\xe5\xae\xd5\x14\x98\x12\xc5\x92\xfe\x60\x56\x8a\xa5\x76\xa2\xcb\xd5\xd2\x2c\xa9\x9e\x91\x5e\x54\x55\x85\x0f\x7a\xb1\x58\xd6\xf3\xff\x96\xcb\xf5\x6a\x51\xd5\xf7\xab\x39\xcd\x66\xa8\xcd\x43\x55\x6e\x5a\x8a\x49\x8b\xec\xca\x41\x84\x65\x68\x79\x1a\xb7\x67\x6f\x23\xde\x63\x5e\x87\x1f\x30\x3a\xb6\x51\xe8\x28\x8c\xc6\x30\x9a\x1c\x28\xb2\xce\x87\x03\xe8\x31\xa6\x03\xb8\xb8\x5f\xae\x46\xf0\xf3\x12\x04\x45\x69\x83\xa1\x41\x5c\xb9\xf8\x2b\x0f\x71\x55\x03\x30\x4d\xab\xe0\x6e\x36\xf3\x57\x55\x4f\x5e\xc2\xbe\x07\x1e\xed\x19\x21\xee\x2e\xe4\x53\x50\x9f\x3e\xbc\xbe\x7d\x7e\x7a\x79\x7d\x79\xfb\xf8\xfc\xf4\x38\x50\xe9\xd0\xb5\x39\x33\x8e\x83\xe2\x0d\x7c\x59\xc3\x5e\xda\x00\xc6\xb5\x79\xfc\xbc\x02\x6b\xbb\x81\x5a\x28\x02\x4b\x02\xcb\xc6\xb5\x35\x01\xf6\x09\xe5\x07\xb0\x86\xc6\x39\x32\x86\x24\x57\x52\x96\x63\x22\xac\x01\x8d\xa1\x18\x01\x39\x4f\x68\x83\x70\xce\x19\x3a\x0c\x16\xb5\x23\x48\x02\x6b\xcb\x75\x9f\xfa\xe1\xcd\xae\x54\x8e\x16\xb7\x11\xb6\x12\xd3\xb8\x4f\x21\xf3\xa5\x4d\x3d\xe5\xf6\x72\x91\x5b\x70\x96\x09\x50\x4b\x47\x63\xc0\xe3\x42\x9f\x84\x5a\x3e\x51\x33\xad\xef\xd4\xe4\xe4\xb7\xba\xea\x3a\xaa\x11\x77\xe7\x72\x23\x61\x18\xcb\xe4\xf2\x5b\x7c\x95\x90\x14\xe4\x78\x8b\xbf\x01\x00\x00\xff\xff\xb9\x3d\x32\x31\x38\x04\x00\x00") - -func testE2eTestingManifestsGuestbookLegacyRedisSlaveControllerYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsGuestbookLegacyRedisSlaveControllerYaml, - "test/e2e/testing-manifests/guestbook/legacy/redis-slave-controller.yaml", - ) -} - -func testE2eTestingManifestsGuestbookLegacyRedisSlaveControllerYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsGuestbookLegacyRedisSlaveControllerYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/guestbook/legacy/redis-slave-controller.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsGuestbookRedisMasterDeploymentYamlIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x90\xcd\x4a\x43\x31\x10\x85\xf7\x79\x8a\x79\x81\x6a\x2f\x82\x62\xd6\x6e\x04\x05\x71\xe1\x7e\x9a\x7b\xd0\xd0\xfc\x39\x99\x2b\x94\xd2\x77\x97\xd8\xd8\xde\xab\x9d\x5d\xce\x21\xdf\x37\x09\x17\xff\x06\xa9\x3e\x27\x4b\x5c\x4a\xbd\xfe\x1a\xcc\xd6\xa7\xd1\xd2\x03\x4a\xc8\xbb\x88\xa4\x26\x42\x79\x64\x65\x6b\x88\x12\x47\x58\x12\x8c\xbe\xae\x22\x57\x85\x98\x5a\xe0\x5a\x25\x28\xc1\x3b\xae\x96\x06\x43\x54\x11\xe0\x34\x4b\x6b\x88\x22\xab\xfb\x78\xe2\x0d\x42\x3d\x06\xd4\x74\x1d\xd4\x03\xc9\x01\x96\x3a\xf4\x18\xa9\x87\x58\xda\xb0\xdb\x22\x8d\x86\x48\x11\x4b\x60\x45\x87\xce\xf6\x6a\x13\x16\xfc\x0b\x86\x8b\x8e\xff\x16\xa2\xdf\x27\xb5\x71\x39\x29\xfb\x04\x39\x91\x57\xfd\x17\xfe\x60\x7c\xe4\x77\x58\xda\xef\xaf\x5e\x9b\xf3\xb1\x1d\x0f\x87\xb3\x1a\x35\x4f\xe2\x30\x5b\xb0\x85\x9f\x13\xaa\x2e\x32\x22\x57\x26\x4b\xc3\x7a\x1d\x17\x69\x44\xcc\xb2\xfb\x29\x9e\xfd\xa9\x29\x59\xe6\xd7\x57\xe7\x7d\x5f\xb2\xa8\xa5\xdb\x9b\xbb\x7b\xf3\x1d\x00\x00\xff\xff\x2d\xdf\x6e\xe2\xe7\x01\x00\x00") - -func testE2eTestingManifestsGuestbookRedisMasterDeploymentYamlInBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsGuestbookRedisMasterDeploymentYamlIn, - "test/e2e/testing-manifests/guestbook/redis-master-deployment.yaml.in", - ) -} - -func testE2eTestingManifestsGuestbookRedisMasterDeploymentYamlIn() (*asset, error) { - bytes, err := testE2eTestingManifestsGuestbookRedisMasterDeploymentYamlInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/guestbook/redis-master-deployment.yaml.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsGuestbookRedisMasterServiceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x8d\x41\xaa\xc3\x30\x0c\x44\xf7\x3e\xc5\x5c\x20\x8b\xcf\x87\x96\xea\x14\x85\x42\xf7\x8a\x3d\x14\x13\xc7\x36\xb2\xc8\xf9\x4b\xd2\x52\xba\xee\x4e\xd2\x7b\x9a\xd1\x9e\xef\xb4\x91\x5b\x15\x6c\x7f\x61\xc9\x35\x09\x6e\xb4\x2d\x47\x86\x95\xae\x49\x5d\x25\x00\x55\x57\x0a\x8c\x29\x8f\x69\xd5\xe1\xb4\x00\x14\x9d\x59\xc6\x8e\x01\xed\xfd\xcd\x8f\xd5\x5a\xa1\xe0\x63\x02\x9e\x69\x82\x59\xe3\xc2\x9a\xc2\xe8\x8c\xfb\x5f\x6f\xe6\x47\xc0\x74\x8c\x82\xd3\xff\xf9\xf2\xf2\xd5\x1e\xf4\xeb\xf7\x71\xb0\x30\x7a\xb3\x5f\x0a\x9f\x01\x00\x00\xff\xff\x35\x30\xd5\x6a\xe9\x00\x00\x00") - -func testE2eTestingManifestsGuestbookRedisMasterServiceYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsGuestbookRedisMasterServiceYaml, - "test/e2e/testing-manifests/guestbook/redis-master-service.yaml", - ) -} - -func testE2eTestingManifestsGuestbookRedisMasterServiceYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsGuestbookRedisMasterServiceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/guestbook/redis-master-service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsGuestbookRedisSlaveDeploymentYamlIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x53\xcd\x6e\xdb\x3c\x10\xbc\xeb\x29\x16\xce\x21\x17\x3b\x72\x9c\xd8\xfe\xcc\xf3\xd7\x9f\x00\x0d\x52\x24\x41\x7b\x28\x8a\x60\x49\xad\x6d\xc2\x24\x57\xe5\x8f\x5a\x23\xc8\xbb\x17\xb4\x64\x5b\x42\xa3\x9b\x66\x38\x33\xab\x1d\x0a\x6b\xfd\x8d\x7c\xd0\xec\x04\x60\x5d\x87\xb2\xb9\x2e\x76\xda\x55\x02\xfe\xa7\xda\xf0\xde\x92\x8b\x85\xa5\x88\x15\x46\x14\x05\x80\x43\x4b\x02\x3c\x55\x3a\x4c\x82\xc1\x86\x8a\x50\x93\xca\x8c\xa7\xda\x68\x85\x41\xc0\xac\x00\x08\x64\x48\x45\xf6\x99\x01\xb0\x18\xd5\xf6\x0b\x4a\x32\xa1\x05\x20\xa7\x75\x3e\x1d\xe0\xd9\x90\x80\xd6\xb3\x45\xa2\x26\x2f\x40\xa2\xda\x91\xab\x0a\x80\x48\xb6\x36\x18\xa9\xf3\xec\x4d\x95\x1f\x33\xb0\x7f\x27\xe0\xbd\x88\x7f\x43\x00\x8e\x1f\x94\x1f\xc5\x2e\xa2\x76\xe4\x4f\xc6\x93\x6e\x05\x43\x17\x6d\x71\x43\x02\x5e\x5f\xaf\x1e\x73\xe2\x5d\x7e\x7d\x7b\x3b\xd1\x17\xf0\x9d\x00\x3d\x01\x3b\xb3\x07\x6d\x6b\x43\x79\xb3\xda\x6d\x20\x6e\x09\x2a\x17\x80\xeb\xa8\xd9\x01\xaf\x45\x4f\xb5\x8d\xb1\x0e\xa2\x2c\x37\x3a\x6e\x93\xbc\x52\x6c\xcb\x5d\x92\xe4\x1d\x45\x0a\x25\xfd\xc1\xec\x14\x4a\x69\x58\x96\xab\xa5\x5a\x52\x35\x25\xb9\x98\xcf\xe7\x78\x2b\x17\x8b\x65\x35\xfb\x6f\xb9\x5c\xaf\x16\xf3\xea\x66\x35\xa3\xe9\x14\xa5\xba\x9d\x97\x9b\x44\x21\x4a\xe6\x5d\xd9\xab\xb1\xf4\xc9\x5d\x85\xed\x29\x5b\xb1\xb5\x98\xef\xc1\x0f\x18\x75\xc7\xc8\x37\xe4\x47\x63\x18\x4d\x5a\x09\xaf\xf3\x4b\x4b\x5a\x0c\xb1\x25\x17\x37\xcb\xd5\x08\x7e\x9e\x77\x4e\x81\x93\x57\xd4\x6b\x26\x83\xbf\xf2\x10\x03\x0c\x40\xd5\x49\xc0\xf5\x74\x6a\x07\xa8\x25\xcb\x7e\x7f\x20\xee\xf5\x89\x21\xd7\x9c\xc5\xc7\x4e\x3e\x7d\x78\x7e\xf9\xfc\xf0\xf4\xfc\xf4\xf2\xf1\xf1\xe1\xbe\xe7\xd2\xa0\x49\x24\xf2\x9e\x7b\xe0\x05\xdc\xad\x61\xcf\xc9\x83\x32\x29\x8f\x9f\xdb\x5e\xeb\x0d\x54\x4c\x01\x1c\x47\xd0\x4e\x99\x54\x11\xe0\xa1\xa1\xbc\x00\xad\x68\x9c\x2b\x73\x10\x79\x60\xa5\x5d\x88\x84\x15\xa0\x52\x14\x02\xa0\xcb\x13\x6a\xcf\x2e\xf7\x0c\x0d\x7a\x8d\xd2\x10\x44\x86\xb5\x76\xd5\xa1\xf5\x76\x67\x03\x97\x2e\xe2\x32\xc0\x96\x43\x1c\x1f\x5a\xc8\x7a\x4e\xf1\x20\xb9\x3c\x7f\xc8\x25\x18\xed\x08\x50\x72\x43\x63\xc0\xee\xee\x1e\x8d\x92\x3b\x4a\xb3\xec\x70\x52\x92\xe1\xdf\x62\x70\xaa\x73\x23\xd7\x9c\xe0\x9a\x7d\xbf\x96\xc9\xf9\x0f\xf8\xca\x3e\x0a\xc8\xf5\x16\x7f\x03\x00\x00\xff\xff\x36\xf6\xf3\x52\x36\x04\x00\x00") - -func testE2eTestingManifestsGuestbookRedisSlaveDeploymentYamlInBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsGuestbookRedisSlaveDeploymentYamlIn, - "test/e2e/testing-manifests/guestbook/redis-slave-deployment.yaml.in", - ) -} - -func testE2eTestingManifestsGuestbookRedisSlaveDeploymentYamlIn() (*asset, error) { - bytes, err := testE2eTestingManifestsGuestbookRedisSlaveDeploymentYamlInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/guestbook/redis-slave-deployment.yaml.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsGuestbookRedisSlaveServiceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x8c\x41\xaa\xc3\x30\x10\x43\xf7\x3e\x85\x2e\x90\xc5\xe7\x43\x4b\xe7\x1a\x85\xee\x27\xb6\x16\x43\x1c\xdb\xcc\x98\x9c\xbf\x24\xb4\x17\xe8\x4e\xe2\xe9\x49\x87\xbd\xe8\x61\xbd\x09\x8e\xbf\xb4\x59\x2b\x82\x27\xfd\xb0\xcc\xb4\x73\x6a\xd1\xa9\x92\x80\xa6\x3b\x05\xce\x62\xb1\x44\xd5\x83\x09\xa8\xba\xb2\xc6\x49\x01\x1d\xe3\x83\xaf\xea\xbd\x52\xf0\x1d\x02\xd3\xe8\x82\x55\xf3\xc6\x56\x52\x0c\xe6\x53\x1b\xdd\xe7\xe5\x2f\x57\x14\xdc\xfe\xef\x8f\x04\x04\x2b\xf3\xec\xfe\xc3\xf5\x3b\x00\x00\xff\xff\x51\x66\x08\x5a\xd1\x00\x00\x00") - -func testE2eTestingManifestsGuestbookRedisSlaveServiceYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsGuestbookRedisSlaveServiceYaml, - "test/e2e/testing-manifests/guestbook/redis-slave-service.yaml", - ) -} - -func testE2eTestingManifestsGuestbookRedisSlaveServiceYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsGuestbookRedisSlaveServiceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/guestbook/redis-slave-service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressGceStaticIp2IngYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x8e\xb1\x6e\xeb\x30\x0c\x45\x77\x7d\xc5\x45\xde\x6c\xe7\x65\x0b\xf4\x07\x5d\x8a\x0e\x45\x77\x5a\x62\x2d\xc1\x8e\x28\x88\x4c\x8a\xfe\x7d\x61\x25\x4e\x87\x6e\xba\x07\xe2\xc1\xa1\x9a\x3f\xb8\x69\x96\xe2\x51\xd8\xbe\xa4\x2d\xb9\xcc\xe3\x72\xd6\x31\xcb\xf1\x76\x9a\xd8\xe8\xe4\x96\x5c\xa2\xc7\x4b\x99\x1b\xab\xba\x0b\x1b\x45\x32\xf2\x0e\x28\x74\x61\x0f\x35\xb2\x1c\x86\x5c\x1d\xf0\x0f\xef\x29\x2b\xa8\x14\xd9\xa8\x14\x6c\x2b\x46\x8e\x98\xbe\x61\x89\x61\xac\x86\x6b\x95\x02\x5a\x57\x09\x64\xb9\xcc\xa0\x87\x24\xd7\xb1\x4b\x7e\xef\xd5\x77\x80\xe5\x3a\x71\x2b\x6c\xdc\xd3\xf2\x3d\x66\x9c\x57\x99\x68\x1d\x9e\x05\xc3\xbd\xe8\xb0\xdb\x0e\x4e\x2b\x87\x4d\xd1\xae\x2b\x77\xd7\x80\x24\x6a\x1e\xbb\x62\xeb\x19\x83\x5c\x1c\x00\x24\xb3\xea\xfb\x0b\xa8\x64\x49\xf7\x31\xf4\xe9\x71\xfc\x14\x79\x20\x60\xa2\xb0\x70\x89\xfe\x09\x00\xe5\x76\xcb\x81\x5f\x7b\x06\x87\x24\x89\x29\x72\xd3\x61\x33\xeb\xdf\x8f\x6f\xd2\xcc\xe3\xfc\xdf\xfd\x04\x00\x00\xff\xff\xcf\xe6\xa4\x9a\x8b\x01\x00\x00") - -func testE2eTestingManifestsIngressGceStaticIp2IngYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressGceStaticIp2IngYaml, - "test/e2e/testing-manifests/ingress/gce/static-ip-2/ing.yaml", - ) -} - -func testE2eTestingManifestsIngressGceStaticIp2IngYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressGceStaticIp2IngYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/gce/static-ip-2/ing.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressGceStaticIp2RcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x8e\x31\x6e\x03\x31\x0c\x04\x7b\xbd\x82\x1f\x90\xed\x5c\x65\xa8\xcd\x07\x82\x14\xe9\x69\xdd\xc2\x27\x58\x12\x05\x92\xf1\xfb\x03\x25\x38\xc7\x45\xb2\x1d\xb1\xdc\xc1\xf0\x28\x1f\x50\x2b\xd2\x13\xdd\x5f\xc2\xad\xf4\x35\xd1\x3b\x46\x2d\x99\xbd\x48\x7f\x95\xee\x2a\xb5\x42\x43\x83\xf3\xca\xce\x29\x10\x75\x6e\x48\x84\xbc\xc9\x06\x5e\xa1\x16\x37\xf7\x61\xc1\x06\xf2\xec\xf5\x87\x60\x89\x96\x40\xe4\x68\xa3\xb2\x63\x36\x44\xcf\x9c\x99\xca\x17\x54\xdb\x2f\x22\x1e\xe3\x2f\xf4\xac\x76\xfc\x4c\x96\xee\x5c\x3a\xf4\x31\x8d\xff\x6a\xed\xe8\xd2\xf8\x8a\x44\xd7\xac\x87\x22\xc7\xdb\xe7\x05\xda\xe1\xb0\x88\x05\xd1\x61\x1e\xbf\x3f\xec\x38\x11\x06\xbd\x43\xd3\x72\x58\x1e\xfb\x21\xea\x4f\xa6\xf1\x57\xe2\x4d\xd4\x13\x9d\x4f\xe7\x53\xf8\x0a\x00\x00\xff\xff\xa9\x29\xab\x0c\x53\x01\x00\x00") - -func testE2eTestingManifestsIngressGceStaticIp2RcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressGceStaticIp2RcYaml, - "test/e2e/testing-manifests/ingress/gce/static-ip-2/rc.yaml", - ) -} - -func testE2eTestingManifestsIngressGceStaticIp2RcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressGceStaticIp2RcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/gce/static-ip-2/rc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressGceStaticIp2SvcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x8e\xc1\x0a\xc2\x30\x0c\x86\xef\x7d\x8a\xff\x05\x06\x7a\x93\x5e\xbd\xcb\x40\xf1\x1e\xdb\xe0\x8a\xdd\x12\xd2\x30\xf0\xed\x65\x75\x47\xf1\x16\x3e\xbe\x24\x1f\x69\xb9\xb3\xb5\x22\x4b\xc4\x7a\x0c\xaf\xb2\xe4\x88\x2b\xdb\x5a\x12\x87\x99\x9d\x32\x39\xc5\x00\x2c\x34\x73\x04\xa7\x49\x26\xa6\xcc\xd6\x86\xc9\x5d\x5b\x00\x2a\x3d\xb8\xb6\xcd\x01\x48\xf5\x97\xd4\x94\xd3\x26\xf8\x5b\x39\xe2\x22\x99\x47\x31\x0f\x80\x8a\x79\x5f\x1d\xfa\x18\x71\x3a\xf4\x3b\x4e\xf6\x64\x1f\x77\xb4\x43\x35\x71\x49\x52\x23\x6e\xe7\xb1\x93\x6f\xd4\xf6\x23\x00\x8d\x2b\x27\x17\xfb\x5b\xf2\x09\x00\x00\xff\xff\x0d\x93\xec\x7c\xf0\x00\x00\x00") - -func testE2eTestingManifestsIngressGceStaticIp2SvcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressGceStaticIp2SvcYaml, - "test/e2e/testing-manifests/ingress/gce/static-ip-2/svc.yaml", - ) -} - -func testE2eTestingManifestsIngressGceStaticIp2SvcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressGceStaticIp2SvcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/gce/static-ip-2/svc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressHttpIngYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\xcf\xbd\x6e\xeb\x30\x0c\x05\xe0\x5d\x4f\x71\x80\x3b\xc7\xb9\xd9\x02\xbd\x41\x97\xa2\x53\x77\x4a\xa6\x63\xc1\xb1\xe8\x92\x74\xfa\xf3\xf4\x85\x93\xba\x48\x3b\x04\x68\x81\x6a\x12\x29\x1d\xe2\x23\x4d\xe5\x91\xd5\x8a\xd4\x88\xca\xfe\x2c\x3a\x94\x7a\x68\x86\xbd\x35\x45\xb6\xa7\x5d\x62\xa7\x5d\x18\x4a\x6d\x23\xee\xea\x41\xd9\x2c\x8c\xec\xd4\x92\x53\x0c\x40\xa5\x91\x23\x38\xf7\x32\xd2\x14\x6c\xe2\xbc\x74\xff\x61\x98\x13\x8f\xb9\x40\xf9\x69\x2e\xca\x06\x42\xcb\x1d\xcd\x47\x47\xa2\x3c\x70\x6d\x9b\x80\xf5\xba\x44\x00\x63\x3d\x95\xcc\xf7\x9f\x13\x7b\xa6\x96\xd5\x5e\xae\x5f\x1f\x44\x3d\x62\xff\x3f\x00\x3a\x1f\xd9\x96\xe8\x06\xbd\x98\x47\x74\x22\x4d\x22\x6d\xb2\x8c\xe7\x48\xef\x3e\x5d\x46\x03\x13\x79\x6f\x6b\xb1\x39\x97\x11\xdb\x4e\xe4\xa3\xf5\xcd\x72\x39\xb7\x45\x5f\xfe\x5c\xb9\x56\xce\x42\x49\xf4\xf6\x03\x4e\x22\xfd\x0d\xe7\xf5\x26\xe7\xaf\x17\x7e\x0f\x00\x00\xff\xff\xab\x26\x24\xc4\x42\x02\x00\x00") - -func testE2eTestingManifestsIngressHttpIngYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressHttpIngYaml, - "test/e2e/testing-manifests/ingress/http/ing.yaml", - ) -} - -func testE2eTestingManifestsIngressHttpIngYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressHttpIngYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/http/ing.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressHttpRcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x90\x3d\x8e\xe3\x30\x0c\x85\x7b\x9f\x82\x17\x70\xfe\xaa\x40\xed\x16\xdb\x06\xbb\x8b\xed\x19\xf9\x4d\x24\x44\x16\x05\x92\x4e\x31\xa7\x1f\x78\x66\x9c\x38\x98\xbc\x4e\xfc\xf4\x3e\x11\xe2\x96\xff\x43\x2d\x4b\x0d\x74\xdb\x77\xd7\x5c\x87\x40\x7f\xd0\x4a\x8e\xec\x59\xea\x2f\xa9\xae\x52\x0a\xb4\x1b\xe1\x3c\xb0\x73\xe8\x88\x2a\x8f\x08\x84\x98\x24\x81\x07\xa8\x75\xd6\x10\x67\xa2\x5f\x5d\x0b\xb4\xef\x88\x1c\x63\x2b\xec\x98\x09\xd1\xda\x30\xa7\xf0\x19\xc5\x96\x13\x11\xb7\xf6\x2c\x9d\x87\x8b\x78\x4e\x94\xea\x9c\x2b\xf4\x5e\xea\x5f\xac\xb2\xe8\xf2\xc8\x17\x04\xba\x44\xdd\x64\xd9\x5e\xa7\x33\xb4\xc2\x61\x3d\x0e\xe8\x1d\xe6\xfd\xe7\x0d\xdb\xce\x65\x83\xde\xa0\xe1\xb0\x39\xdc\xfb\x4d\xd4\x57\xdb\xf5\x8f\xe7\x4f\xa2\x1e\xe8\xb8\x3b\xee\xee\x54\xc1\x43\xae\x30\x3b\xa9\x9c\xf1\x68\x11\x25\xf7\xf6\x1b\xbe\x1e\x11\x35\xf6\x14\x68\x9b\xc0\xc5\xd3\xfb\x33\xfa\x29\x27\x6a\xd0\x2c\xc3\x5f\x44\xa9\xc3\xf7\xdf\x2e\xf1\x3c\x42\x26\x7f\xc9\x6c\x8a\x11\x66\xff\x92\xc2\x92\x94\xe1\x99\xbe\x71\x2e\x93\x62\x4d\x77\xdd\x47\x00\x00\x00\xff\xff\xb8\x09\xcb\x33\x12\x02\x00\x00") - -func testE2eTestingManifestsIngressHttpRcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressHttpRcYaml, - "test/e2e/testing-manifests/ingress/http/rc.yaml", - ) -} - -func testE2eTestingManifestsIngressHttpRcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressHttpRcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/http/rc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressHttpSvcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x8f\xb1\x4a\x06\x41\x0c\x84\xfb\x3c\xc5\xbc\xc0\x82\x76\xb2\xad\xbd\x1c\x28\xf6\x71\x37\x78\x8b\xfb\x5f\x42\x36\x1c\xde\xdb\xcb\xad\xd7\x58\xd8\xd8\xd9\x85\xef\x23\xc3\x0c\x5b\x7b\x15\x1f\x4d\xb7\x8c\xfd\x9e\x3e\xda\x56\x33\x9e\xc5\xf7\x56\x84\x6e\x12\x5c\x39\x38\x13\xb0\xf1\x4d\x32\xa4\xac\xba\x0a\x57\xf1\xf1\x49\x40\xe7\x37\xe9\xe3\xd4\x00\x9b\xfd\xf0\x34\x4c\xca\xa9\xe2\x30\xc9\x78\xd2\x2a\x8b\x7a\x10\x60\xea\x31\x9f\xd2\x3c\x33\x1e\xee\x66\x42\xb0\xbf\x4b\x2c\x17\xba\xa0\xb9\x86\x16\xed\x19\x2f\x8f\xcb\x24\xdf\x4d\xd6\x08\x23\x60\x48\x97\x12\xea\xbf\x74\x48\x29\xd1\xdf\x27\x1e\xff\x61\x22\x7d\x05\x00\x00\xff\xff\xb7\x97\x1c\xfe\xc3\x01\x00\x00") - -func testE2eTestingManifestsIngressHttpSvcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressHttpSvcYaml, - "test/e2e/testing-manifests/ingress/http/svc.yaml", - ) -} - -func testE2eTestingManifestsIngressHttpSvcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressHttpSvcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/http/svc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressHttp2IngYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4c\x8c\x31\x0e\xc2\x30\x10\x04\x7b\xbf\xe2\x24\xfa\xa0\x88\x14\xc8\x3f\xa0\x41\x54\xf4\x17\x7b\x49\x4e\xc6\x76\xb8\x73\xc2\xf7\x51\x0a\x10\xdd\x6a\x47\x33\xbc\xc8\x1d\x6a\x52\x8b\xa7\x82\xf6\xae\x9a\xa4\x4c\x5d\x3a\x5b\x27\xf5\xb8\xf5\x23\x1a\xf7\x2e\x49\x89\x9e\x2e\x65\x52\x98\xb9\x8c\xc6\x91\x1b\x7b\x47\x54\x38\xc3\x13\xc2\x5c\x33\x2f\xce\x16\x84\xfd\x3d\x50\x5a\x47\xe4\x20\xa4\x78\xad\xa2\x30\x62\x8a\x78\xf0\xfa\x6c\x34\x72\x48\x28\xb1\x73\xf4\x9d\xbb\x42\x64\xd0\x4d\x02\xae\xbf\xe2\x0c\x8e\x50\xfb\x87\xb7\xaa\xcd\xd3\x30\x9c\xdc\x27\x00\x00\xff\xff\xb1\x2e\x00\xda\xb9\x00\x00\x00") - -func testE2eTestingManifestsIngressHttp2IngYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressHttp2IngYaml, - "test/e2e/testing-manifests/ingress/http2/ing.yaml", - ) -} - -func testE2eTestingManifestsIngressHttp2IngYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressHttp2IngYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/http2/ing.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressHttp2RcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x8e\xbd\x6e\x03\x31\x0c\x83\x77\x3f\x85\x5e\xc0\x39\xe4\x9a\xa1\xf0\xdc\xb1\x43\xa7\xee\x8a\x8f\xc8\x19\xf1\x1f\x24\x35\x40\xdf\xbe\x70\xdb\xfc\x01\xc7\x51\xd4\x47\x92\x7b\xfa\x84\x68\x6a\x35\x10\xf7\xae\xd3\x65\xef\xce\xa9\x2e\x81\xde\xd0\x73\xfb\x2e\xa8\xe6\x0a\x8c\x17\x36\x0e\x8e\xa8\x72\x41\x20\xc4\xb5\xad\xe0\x05\xa2\x4e\x3b\xe2\x70\x04\x3d\xa7\xc8\x1a\x68\xef\x88\x14\x19\xd1\x9a\x0c\x87\xa8\xb0\xc5\xf5\x9d\x8f\xc8\xfa\x77\xa0\xd1\xf6\x9c\x43\x64\x28\x3d\xb3\xe1\x9f\x79\x68\x1d\xca\x4f\xf8\x66\x00\xd1\x75\xcc\x50\x6c\xd5\x38\x55\xc8\x0d\xf2\x1b\xf3\xaf\x71\xa9\xf0\x09\x81\x4e\x51\x76\xa9\x4d\xe7\xaf\x23\xa4\xc2\xa0\x1e\x33\xbc\x41\xcd\xff\x7e\xe8\x34\x60\x85\x5c\x20\x61\xde\xcd\x37\xbe\x37\xb1\x87\x75\xfe\x5e\xff\xd1\xc4\x02\xbd\x1e\x0e\x2f\xee\x27\x00\x00\xff\xff\x5a\xc7\xda\xaa\x6f\x01\x00\x00") - -func testE2eTestingManifestsIngressHttp2RcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressHttp2RcYaml, - "test/e2e/testing-manifests/ingress/http2/rc.yaml", - ) -} - -func testE2eTestingManifestsIngressHttp2RcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressHttp2RcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/http2/rc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressHttp2SvcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x8f\xbf\x4e\x03\x31\x0c\xc6\xf7\x3c\x85\x75\x4b\xa7\x1e\xa2\x74\x40\x5e\x59\x98\xd0\x49\x9c\xd8\xdd\x9c\xc5\x45\x4d\x63\xcb\x31\x95\x10\xe2\xdd\x51\x52\x6e\x60\xc0\x93\xfd\x7d\xfe\xf3\x33\x69\x7a\x63\xab\x49\x0a\xc2\xf5\x3e\x9c\x53\x59\x10\x5e\xd9\xae\x29\x72\xb8\xb0\xd3\x42\x4e\x18\x00\xa8\x14\x71\xf2\x24\xa5\xb6\xb2\x45\xbd\xb5\x8d\x94\x75\xa5\xf1\xfc\x71\x62\x2b\xec\x5c\xc7\x24\x77\xa4\xba\x57\x13\x97\x28\xb9\x22\xec\xbe\x86\xd5\x5d\x0f\x03\x0e\xcf\xf3\x3c\x1d\x86\xef\x5d\x00\x28\x74\x61\x04\x8e\xab\xac\x4c\x0b\x5b\x0d\x00\x99\x4e\x9c\x7f\x4f\x90\xea\x5f\xbb\x2a\xc7\x66\xf9\xa7\x32\xc2\x8b\x2c\x3c\x89\x79\x00\x50\x31\xef\x43\xfb\x9e\x22\x1c\x8f\x0f\x7d\x85\x93\xbd\xb3\x4f\x5d\x7b\xdc\xc4\x0d\x0c\x61\x7e\x9a\xba\x72\x23\xe9\x88\xa1\x3d\x96\x39\xba\xd8\x3f\x14\x3f\x01\x00\x00\xff\xff\x9d\xf4\x34\x9b\x34\x01\x00\x00") - -func testE2eTestingManifestsIngressHttp2SvcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressHttp2SvcYaml, - "test/e2e/testing-manifests/ingress/http2/svc.yaml", - ) -} - -func testE2eTestingManifestsIngressHttp2SvcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressHttp2SvcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/http2/svc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressMultipleCertsIngYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x8e\x3b\x6e\xc4\x30\x10\x43\x7b\x9f\x82\x17\xb0\x37\x4e\x52\x2c\xe6\x06\x69\x82\x54\xe9\x67\x65\x62\x25\xd8\x96\x04\xcd\xec\xe6\xfa\x81\x9d\x4f\x91\x5c\xc0\x1d\xc9\x19\x12\x4f\x6b\x7a\x67\xb3\x54\xb2\x20\xd3\x3f\x4a\x9b\x53\xbe\x0e\xf3\xd9\x86\x54\x4e\xf7\xf1\x42\xd7\xb1\x9b\x53\x9e\x04\x2f\xf9\xda\x68\xd6\xad\x74\x9d\xd4\x55\x3a\x20\xeb\x4a\xc1\x7a\x5b\x3c\xd5\x85\x7d\x60\x73\xeb\xac\x32\x6c\xc7\x76\x5b\x68\x9b\xe8\x11\x8b\xb9\xc0\x69\x3e\x0e\xe9\x6b\x67\x08\x65\xed\x00\x20\xba\x57\xd9\x15\x50\xd5\xa3\xfd\x98\x7e\xb7\x82\xd3\xd6\xfb\xce\x80\x8b\x86\x99\x79\x92\xdf\x00\x30\xb6\x7b\x0a\x7c\xdd\x61\x18\x62\x89\xd4\x89\xcd\xfa\x6d\xda\xfe\x3f\xbe\x95\xe6\x82\xf3\xc3\x1f\xb4\xc7\xe3\xa2\x3d\x1d\x17\xed\xf9\x48\x68\x9f\x01\x00\x00\xff\xff\x1f\x41\x6c\x08\xd0\x02\x00\x00") - -func testE2eTestingManifestsIngressMultipleCertsIngYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressMultipleCertsIngYaml, - "test/e2e/testing-manifests/ingress/multiple-certs/ing.yaml", - ) -} - -func testE2eTestingManifestsIngressMultipleCertsIngYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressMultipleCertsIngYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/multiple-certs/ing.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressMultipleCertsRcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x8e\x31\x6e\x03\x31\x0c\x04\x7b\xbd\x82\x1f\x90\xed\x5c\x65\xa8\xcd\x07\x82\x14\xe9\x69\xdd\xc2\x27\x58\x12\x05\x92\xf1\xfb\x03\x25\x38\xc7\x45\xb2\x1d\xb1\xdc\xc1\xf0\x28\x1f\x50\x2b\xd2\x13\xdd\x5f\xc2\xad\xf4\x35\xd1\x3b\x46\x2d\x99\xbd\x48\x7f\x95\xee\x2a\xb5\x42\x43\x83\xf3\xca\xce\x29\x10\x75\x6e\x48\x84\xbc\xc9\x06\x5e\xa1\x16\x37\xf7\x61\xc1\x06\xf2\xec\xf5\x87\x60\x89\x96\x40\xe4\x68\xa3\xb2\x63\x36\x44\xcf\x9c\x99\xca\x17\x54\xdb\x2f\x22\x1e\xe3\x2f\xf4\xac\x76\xfc\x4c\x96\xee\x5c\x3a\xf4\x31\x8d\xff\x6a\xed\xe8\xd2\xf8\x8a\x44\xd7\xac\x87\x22\xc7\xdb\xe7\x05\xda\xe1\xb0\x88\x05\xd1\x61\x1e\xbf\x3f\xec\x38\x11\x06\xbd\x43\xd3\x72\x58\x1e\xfb\x21\xea\x4f\xa6\xf1\x57\xe2\x4d\xd4\x13\x9d\x4f\xe7\x53\xf8\x0a\x00\x00\xff\xff\xa9\x29\xab\x0c\x53\x01\x00\x00") - -func testE2eTestingManifestsIngressMultipleCertsRcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressMultipleCertsRcYaml, - "test/e2e/testing-manifests/ingress/multiple-certs/rc.yaml", - ) -} - -func testE2eTestingManifestsIngressMultipleCertsRcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressMultipleCertsRcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/multiple-certs/rc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressMultipleCertsSvcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x8e\xc1\x0a\xc2\x30\x0c\x86\xef\x7d\x8a\xff\x05\x06\x7a\x93\x5e\xbd\xcb\x40\xf1\x1e\xdb\xe0\x8a\xdd\x12\xd2\x30\xf0\xed\x65\x75\x47\xf1\x16\x3e\xbe\x24\x1f\x69\xb9\xb3\xb5\x22\x4b\xc4\x7a\x0c\xaf\xb2\xe4\x88\x2b\xdb\x5a\x12\x87\x99\x9d\x32\x39\xc5\x00\x2c\x34\x73\x04\xa7\x49\x26\xa6\xcc\xd6\x86\xc9\x5d\x5b\x00\x2a\x3d\xb8\xb6\xcd\x01\x48\xf5\x97\xd4\x94\xd3\x26\xf8\x5b\x39\xe2\x22\x99\x47\x31\x0f\x80\x8a\x79\x5f\x1d\xfa\x18\x71\x3a\xf4\x3b\x4e\xf6\x64\x1f\x77\xb4\x43\x35\x71\x49\x52\x23\x6e\xe7\xb1\x93\x6f\xd4\xf6\x23\x00\x8d\x2b\x27\x17\xfb\x5b\xf2\x09\x00\x00\xff\xff\x0d\x93\xec\x7c\xf0\x00\x00\x00") - -func testE2eTestingManifestsIngressMultipleCertsSvcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressMultipleCertsSvcYaml, - "test/e2e/testing-manifests/ingress/multiple-certs/svc.yaml", - ) -} - -func testE2eTestingManifestsIngressMultipleCertsSvcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressMultipleCertsSvcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/multiple-certs/svc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressNegIngYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\xca\x31\x0e\xc2\x30\x0c\x85\xe1\x3d\xa7\xf0\x09\x0a\xdd\xaa\xdc\x80\x05\x31\xb1\xbb\xc9\x53\xb1\xa2\x3a\x95\x6d\x95\xeb\xa3\x6c\x74\xfb\xf4\xde\xcf\x87\xbc\x61\x2e\x5d\x33\x29\xe2\xdb\xad\x89\x6e\x53\x5b\x7c\x92\x7e\x3b\xe7\x15\xc1\x73\x6a\xa2\x35\xd3\x43\x37\x83\x7b\xda\x11\x5c\x39\x38\x27\x22\xe5\x1d\x99\x3e\xdd\x63\x28\xf9\x81\x32\xe6\x95\x4b\x83\xd6\x41\x22\x87\x9d\x52\xf0\xbc\xa6\x7f\xcf\xab\x5b\x64\x5a\xee\xe9\x17\x00\x00\xff\xff\xf6\xf7\x9b\x37\x8e\x00\x00\x00") - -func testE2eTestingManifestsIngressNegIngYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressNegIngYaml, - "test/e2e/testing-manifests/ingress/neg/ing.yaml", - ) -} - -func testE2eTestingManifestsIngressNegIngYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressNegIngYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/neg/ing.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressNegRcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x90\x41\x6b\x42\x31\x10\x84\xef\xf9\x15\xfb\x07\x9e\xfa\x3c\xf4\x90\x73\xa1\x14\x4a\x79\xb4\xd0\xfb\x9a\x37\xd5\x60\xb2\x09\xd9\x55\xf0\xdf\x97\x68\x15\x5b\xf7\x92\xb0\xcc\x7c\x3b\x0c\xd7\xf8\x85\xa6\xb1\x88\x27\xae\x55\x97\xc7\xd1\xed\xa3\xcc\x9e\x9e\x51\x53\x39\x65\x88\xb9\x0c\xe3\x99\x8d\xbd\x23\x4a\xbc\x41\xd2\xfe\x23\x6a\x07\xf1\xb4\x2b\x6a\xc2\x19\x8e\xa8\x3f\x77\x0b\xad\x08\x5d\x98\xa3\x7c\x80\xe7\xd3\x27\x42\x91\x59\x3d\x3d\xad\x1c\x91\x22\x21\x58\x69\x17\x54\x66\x0b\xbb\xb7\x3b\xf6\x23\xdd\x90\x6b\x62\xc3\xaf\xe1\x2e\x53\x9f\xf4\xc7\xfb\xe8\x26\xba\xc6\xe9\x13\x8a\x18\x47\x41\xbb\x39\x06\x8a\x99\xb7\xf0\xb4\x0d\x6d\x11\xcb\x72\x7f\xd8\xa0\x09\x0c\x3a\x60\x8d\xc1\xa0\x36\x9c\x15\xba\x54\xb4\x23\x86\x2b\xdb\x8f\x8b\xf1\x76\xf5\xac\x98\x0e\x29\x4d\x25\xc5\x70\xf2\xf4\xfa\xfd\x5e\x6c\x6a\xd0\xde\xe3\x55\xf5\xaf\xa7\xcb\xd2\xd0\x72\x14\xb6\x58\xe4\xa5\x71\xc0\x84\x16\xcb\x7c\xeb\x6c\x5c\xaf\xdc\x4f\x00\x00\x00\xff\xff\xed\xb6\x7e\xf0\xad\x01\x00\x00") - -func testE2eTestingManifestsIngressNegRcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressNegRcYaml, - "test/e2e/testing-manifests/ingress/neg/rc.yaml", - ) -} - -func testE2eTestingManifestsIngressNegRcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressNegRcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/neg/rc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressNegSvcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\x8f\xbd\x4a\x44\x41\x0c\x85\xfb\x79\x8a\xb0\xcd\x56\xae\x8a\xe0\x4f\x3a\xb1\x97\x05\xc5\x7e\x98\x9b\x1d\x83\x73\x93\x21\xc9\x5d\x58\xc4\x77\x97\x19\x2b\xbb\x93\x93\x9c\x2f\x49\xee\xfc\x41\xe6\xac\x82\x70\xbe\x4d\x5f\x2c\x0b\xc2\x1b\xd9\x99\x0b\xa5\x95\x22\x2f\x39\x32\x26\x00\xc9\x2b\x21\x7c\xaa\xc7\x50\x09\x20\x8b\x68\xe4\x60\x15\x1f\x7d\x80\xd2\x74\x5b\x0e\x55\xb5\x36\x3a\x14\x5d\xaf\x85\x2a\xc2\xfe\x7b\xc7\x52\x8d\xdc\x77\x18\xb6\xd1\xcf\x3e\x79\xa7\x32\x22\x5d\x2d\x66\xf6\x6a\x4a\x84\xc7\x9b\x09\xea\xa6\xa1\x45\x1b\xc2\xfb\xcb\x71\x3a\x91\xad\x52\x1c\xe7\xd0\xd3\xdd\xc3\x7d\x02\x70\x6a\x54\x42\xed\x6f\xb7\x6d\xf2\xef\x38\x27\x1f\x3f\x3d\x9f\x4e\x2c\x1c\x17\x84\x57\x95\xe1\xc7\xa5\xd3\x28\x16\x1a\xb0\xf4\x1b\x00\x00\xff\xff\xf5\x31\x62\x40\xfe\x00\x00\x00") - -func testE2eTestingManifestsIngressNegSvcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressNegSvcYaml, - "test/e2e/testing-manifests/ingress/neg/svc.yaml", - ) -} - -func testE2eTestingManifestsIngressNegSvcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressNegSvcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/neg/svc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressNegClusteripIngYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\xca\x31\x0e\xc2\x30\x0c\x85\xe1\x3d\xa7\xf0\x09\x0a\xdd\xaa\xdc\x80\x05\x31\xb1\xbb\xc9\x53\xb1\xa2\x3a\x95\x6d\x95\xeb\xa3\x6c\x74\xfb\xf4\xde\xcf\x87\xbc\x61\x2e\x5d\x33\x29\xe2\xdb\xad\x89\x6e\x53\x5b\x7c\x92\x7e\x3b\xe7\x15\xc1\x73\x6a\xa2\x35\xd3\x43\x37\x83\x7b\xda\x11\x5c\x39\x38\x27\x22\xe5\x1d\x99\x3e\xdd\x63\x28\xf9\x81\x32\xe6\x95\x4b\x83\xd6\x41\x22\x87\x9d\x52\xf0\xbc\xa6\x7f\xcf\xab\x5b\x64\x5a\xee\xe9\x17\x00\x00\xff\xff\xf6\xf7\x9b\x37\x8e\x00\x00\x00") - -func testE2eTestingManifestsIngressNegClusteripIngYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressNegClusteripIngYaml, - "test/e2e/testing-manifests/ingress/neg-clusterip/ing.yaml", - ) -} - -func testE2eTestingManifestsIngressNegClusteripIngYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressNegClusteripIngYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/neg-clusterip/ing.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressNegClusteripRcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x90\x41\x6b\x42\x31\x10\x84\xef\xf9\x15\xfb\x07\x9e\xfa\x3c\xf4\x90\x73\xa1\x14\x4a\x79\xb4\xd0\xfb\x9a\x37\xd5\x60\xb2\x09\xd9\x55\xf0\xdf\x97\x68\x15\x5b\xf7\x92\xb0\xcc\x7c\x3b\x0c\xd7\xf8\x85\xa6\xb1\x88\x27\xae\x55\x97\xc7\xd1\xed\xa3\xcc\x9e\x9e\x51\x53\x39\x65\x88\xb9\x0c\xe3\x99\x8d\xbd\x23\x4a\xbc\x41\xd2\xfe\x23\x6a\x07\xf1\xb4\x2b\x6a\xc2\x19\x8e\xa8\x3f\x77\x0b\xad\x08\x5d\x98\xa3\x7c\x80\xe7\xd3\x27\x42\x91\x59\x3d\x3d\xad\x1c\x91\x22\x21\x58\x69\x17\x54\x66\x0b\xbb\xb7\x3b\xf6\x23\xdd\x90\x6b\x62\xc3\xaf\xe1\x2e\x53\x9f\xf4\xc7\xfb\xe8\x26\xba\xc6\xe9\x13\x8a\x18\x47\x41\xbb\x39\x06\x8a\x99\xb7\xf0\xb4\x0d\x6d\x11\xcb\x72\x7f\xd8\xa0\x09\x0c\x3a\x60\x8d\xc1\xa0\x36\x9c\x15\xba\x54\xb4\x23\x86\x2b\xdb\x8f\x8b\xf1\x76\xf5\xac\x98\x0e\x29\x4d\x25\xc5\x70\xf2\xf4\xfa\xfd\x5e\x6c\x6a\xd0\xde\xe3\x55\xf5\xaf\xa7\xcb\xd2\xd0\x72\x14\xb6\x58\xe4\xa5\x71\xc0\x84\x16\xcb\x7c\xeb\x6c\x5c\xaf\xdc\x4f\x00\x00\x00\xff\xff\xed\xb6\x7e\xf0\xad\x01\x00\x00") - -func testE2eTestingManifestsIngressNegClusteripRcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressNegClusteripRcYaml, - "test/e2e/testing-manifests/ingress/neg-clusterip/rc.yaml", - ) -} - -func testE2eTestingManifestsIngressNegClusteripRcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressNegClusteripRcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/neg-clusterip/rc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressNegClusteripSvcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\x8f\xcb\x4a\x44\x31\x0c\x86\xf7\x7d\x8a\x30\x9b\x59\x39\x2a\x82\x97\xec\x64\x56\x6e\xe4\x80\xe2\xbe\xf4\x64\x6a\xb1\x27\x29\x49\x3a\x30\x88\xef\x2e\xad\x2b\x77\x3f\x5f\xf2\xe5\x12\x5b\xf9\x20\xb5\x22\x8c\x70\xbe\x0d\x5f\x85\x57\x84\x37\xd2\x73\x49\x14\x36\xf2\xb8\x46\x8f\x18\x00\x38\x6e\x84\xf0\x29\xe6\x23\x05\x80\xc8\x2c\x1e\xbd\x08\xdb\xa8\x03\xa4\x2a\x7d\x3d\x64\x91\x5c\xe9\x90\x64\xbb\x66\xca\x08\xfb\xef\x5d\xe1\xac\x64\xb6\x43\xd7\x4e\x3f\xfb\x60\x8d\xd2\x50\x9a\xa8\x4f\xf7\x6a\x46\x84\xc7\x9b\x39\xa8\xa9\xb8\x24\xa9\x08\xef\xc7\x65\x12\x8f\x9a\xc9\x97\xd9\xf4\x74\xf7\x70\x1f\x00\x8c\x2a\x25\x17\xfd\xdb\xad\x9d\xff\x1d\x67\x64\xe3\xa7\xe7\xd3\xa9\x70\xf1\x0b\xc2\xab\xf0\xe0\x7e\x69\x84\x70\xac\xdd\x9c\xf4\x65\x09\xbf\x01\x00\x00\xff\xff\x99\xd1\x46\x3d\xff\x00\x00\x00") - -func testE2eTestingManifestsIngressNegClusteripSvcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressNegClusteripSvcYaml, - "test/e2e/testing-manifests/ingress/neg-clusterip/svc.yaml", - ) -} - -func testE2eTestingManifestsIngressNegClusteripSvcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressNegClusteripSvcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/neg-clusterip/svc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressNegExposedIngYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\xca\x31\x0e\xc2\x30\x0c\x85\xe1\x3d\xa7\xf0\x09\x0a\xdd\xaa\xdc\x80\x05\x31\xb1\xbb\xc9\x53\xb1\xa2\x3a\x95\x6d\x95\xeb\xa3\x6c\x74\xfb\xf4\xde\xcf\x87\xbc\x61\x2e\x5d\x33\x29\xe2\xdb\xad\x89\x6e\x53\x5b\x7c\x92\x7e\x3b\xe7\x15\xc1\x73\x6a\xa2\x35\xd3\x43\x37\x83\x7b\xda\x11\x5c\x39\x38\x27\x22\xe5\x1d\x99\x3e\xdd\x63\x28\xf9\x81\x32\xe6\x95\x4b\x83\xd6\x41\x22\x87\x9d\x52\xf0\xbc\xa6\x7f\xcf\xab\x5b\x64\x5a\xee\xe9\x17\x00\x00\xff\xff\xf6\xf7\x9b\x37\x8e\x00\x00\x00") - -func testE2eTestingManifestsIngressNegExposedIngYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressNegExposedIngYaml, - "test/e2e/testing-manifests/ingress/neg-exposed/ing.yaml", - ) -} - -func testE2eTestingManifestsIngressNegExposedIngYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressNegExposedIngYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/neg-exposed/ing.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressNegExposedRcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xbc\x90\x31\x6e\xf3\x30\x0c\x85\x77\x9f\x82\x17\x50\xec\x64\x0a\x04\x64\xfa\xff\xb1\x43\x86\xa2\x6b\xc1\xc8\x6c\x2c\x44\x12\x05\x91\x0e\xd0\xdb\x17\x4a\x1b\x5b\x45\xd6\xa0\x5c\x24\x3c\xf1\xbd\x4f\x24\x66\xff\x46\x45\x3c\x27\x0b\x98\xb3\xf4\xd7\x6d\x77\xf1\x69\xb4\xf0\x9f\x72\xe0\xcf\x48\x49\xbb\x48\x8a\x23\x2a\xda\x0e\x20\xe0\x89\x82\xd4\x1b\x40\x99\x93\x85\x89\x45\x13\x46\xea\x00\xea\xd1\x08\x92\xc9\xd5\x46\xa1\x40\x4e\xb9\x7c\x9b\x22\xaa\x9b\x5e\x9a\x94\xc7\x1c\xa5\x98\x03\x2a\xfd\x18\x1a\x7a\xad\xf0\xcb\xfb\xe8\x06\xb8\x83\x6b\x39\x4e\x8a\x3e\x51\x59\x1c\x06\x7c\xc4\x33\x59\x38\xbb\xb2\xf1\xdc\x5f\xe6\x13\x95\x44\x4a\x62\x68\x47\x46\x49\xd4\xdc\x3a\xa4\x17\x2a\x57\x32\xf7\x6c\xbb\xdd\x6c\x17\xea\x3a\xeb\xaa\x39\x8e\x11\xd3\xb8\x7e\xcd\x40\x7f\xf2\xa9\x97\xa9\x51\x8c\x6b\x9f\x6f\x84\xf7\x3b\x01\xcc\xa4\x9a\x0f\x5a\x66\x02\x33\x8f\xf9\xf0\x81\x41\x08\x4c\xe6\xa2\x87\xfd\x30\x0c\x8b\xb5\x2a\xd2\x82\x72\x61\x65\xc7\xc1\xc2\xeb\xbf\xe3\xa2\x37\xf3\x1f\xb9\xa8\x85\x26\xe4\xd9\x7b\xd8\xfd\xd9\x1e\xf6\xcf\xd8\xc3\x7e\xe8\xbe\x02\x00\x00\xff\xff\x7c\x23\xde\xdf\xfd\x02\x00\x00") - -func testE2eTestingManifestsIngressNegExposedRcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressNegExposedRcYaml, - "test/e2e/testing-manifests/ingress/neg-exposed/rc.yaml", - ) -} - -func testE2eTestingManifestsIngressNegExposedRcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressNegExposedRcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/neg-exposed/rc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressNegExposedSvcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x90\x3f\x6b\xf3\x30\x10\xc6\x77\x7d\x8a\x43\x4b\x96\xbc\x79\x9d\xc6\x43\xb8\xad\x64\xea\x52\x0c\x2d\x5d\x8b\x90\x2f\xae\xa8\xad\x13\xba\x73\x68\x30\xfe\xee\x45\x6a\xa1\x7f\xa6\x6e\x3f\x9d\xa4\xdf\x23\x3d\x2e\x85\x27\xca\x12\x38\x22\x5c\xf6\xe6\x35\xc4\x1e\xe1\x81\xf2\x25\x78\x32\x13\xa9\xeb\x9d\x3a\x34\x00\xd1\x4d\x84\xf0\xc2\xa2\x85\x0c\x80\x8b\x91\xd5\x69\xe0\x28\x65\x1f\xc0\x8f\x3c\xf7\xbb\x81\x79\x18\x69\xe7\x79\xfa\x1f\x69\x40\xd8\x2c\x36\xc4\x21\x93\x88\x45\xcd\x33\x6d\x2d\xbd\x25\x16\xea\x9f\x13\x67\x15\x8b\x8b\x3d\x36\x16\x97\x75\x6b\xdb\xf6\x50\x60\x5d\x37\x46\x12\xf9\x62\xad\x67\x0a\xfc\xab\x88\x70\x6c\x6a\xd6\xd7\x6b\xf6\x75\x9d\x32\x2b\x7b\x1e\x11\x1e\x4f\x5d\x9d\xa8\xcb\x03\x69\xf7\x79\xa9\x69\xbe\x39\xda\xf6\xf0\x4b\x72\xf3\x27\x49\xcd\x16\x1a\xc9\x2b\xe7\x8f\x3f\xe7\x39\xfe\x28\x45\x48\x4a\x97\xb7\xe7\x73\x88\x41\xaf\x08\xf7\x1c\xcb\x5c\xaf\x89\x10\x4e\xe3\x2c\x4a\xf9\xae\x33\xef\x01\x00\x00\xff\xff\xab\x60\x86\x5b\x77\x01\x00\x00") - -func testE2eTestingManifestsIngressNegExposedSvcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressNegExposedSvcYaml, - "test/e2e/testing-manifests/ingress/neg-exposed/svc.yaml", - ) -} - -func testE2eTestingManifestsIngressNegExposedSvcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressNegExposedSvcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/neg-exposed/svc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressNginxRcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x54\x4d\x6f\xdb\x30\x0c\xbd\xfb\x57\x10\xe8\x0e\xdb\x41\x89\xb3\xb6\x40\x66\x60\x87\xa2\xdd\xba\x1d\xb6\x19\x6d\xb1\xeb\x40\xcb\x6c\x2c\x44\x96\x04\x91\x4e\xdb\xfd\xfa\x41\x89\xe3\xd8\xfd\x58\x77\x19\x8f\xe4\xe3\xe3\xe3\x33\xe5\x23\x70\x2b\xe3\xee\xc1\xb8\x55\x24\x66\xd0\xde\x49\xf4\xd6\x52\x84\xab\xf3\x0c\x83\xf9\x49\x91\x8d\x77\x05\x6c\x16\xd9\xda\xb8\xba\x80\x2b\x0a\xd6\x68\x14\xe3\xdd\xf9\x80\xce\x5a\x12\xac\x51\xb0\xc8\x00\x1c\xb6\x54\xec\x88\x55\x4f\xac\x0e\xc4\x19\x80\xc5\x8a\x2c\x27\x28\xc0\x7a\xc9\x0a\x43\x78\x8c\xb7\x55\xc6\x81\x74\xc2\xc4\xdd\x40\x2e\x60\x91\x01\x30\x59\xd2\xe2\xe3\x6b\xdd\x00\x42\x6d\xb0\x28\xb4\x43\x8e\x05\xa6\x18\x6b\x78\x8d\x69\x17\xcf\xad\xd5\x97\xf7\x52\x53\x08\xc5\xd6\xb8\xad\x3f\x97\x11\x35\x95\x14\x8d\xaf\xaf\x49\x7b\x57\x73\x01\x79\x0f\x4b\x86\xa0\x71\x14\x07\x0d\x0a\x4c\x8b\x2b\x2a\x92\x94\xd9\x4a\xc7\x99\xf1\xf3\x97\x4c\x2c\xf2\xd9\x87\x59\xae\x2a\x12\x9c\x2d\x06\x85\xd6\x6c\xc8\x11\x73\x19\x7d\x45\x87\xd5\x00\x1a\x91\x70\x49\x32\x4e\x01\x04\x94\xa6\x80\x79\x43\x68\xa5\xf9\x3d\x2d\xf9\x28\x05\x2c\xf2\xf7\xa7\x27\x93\x3c\xeb\x86\x92\x09\x5f\x6e\x6e\xca\x51\xc1\x38\x23\x06\xed\x05\x59\x7c\x18\x16\x3d\xce\x47\x08\x31\x2d\xf9\x4e\x86\xe2\xe9\xbf\xb8\x9a\xe2\x08\x3a\x26\xa8\xfd\x9d\xbb\xc3\x58\xc3\x59\xf9\x75\x28\x91\xdb\x8c\x17\x52\x3d\x55\xf9\xe3\xe2\xd7\xf7\xb3\x6f\x9f\x26\xc2\x37\x68\x3b\xfa\x1c\x7d\x3b\xb5\x00\xe0\xd6\x90\xad\xaf\xe8\xf6\x71\xbe\xaf\x94\x5b\x8f\xf6\xb7\x33\x4b\x13\xfe\x32\xf2\xba\x3c\x3b\xff\x6f\x73\x39\xa0\x3e\x0c\x4f\x5f\x68\x74\xbd\xea\x70\x4f\xe5\xf6\xdb\x2d\xc7\xee\x37\x9e\xe5\x49\xfa\x49\xcb\xc9\xc9\xf1\xb3\x3d\xe3\xfc\x11\xdc\x11\xd0\x7d\xf0\x4c\xb0\x58\xe6\xcb\x1c\xc4\x03\x6a\x9d\xfe\x1d\xbb\x3f\x09\x0b\x0a\x83\x71\xd0\x45\x0b\xfd\xfd\xa6\x5c\xc7\x23\x12\x69\x0c\x83\x61\xf0\x21\x3d\x13\xb4\x2f\x8b\xda\x0e\x79\x56\xd6\xb4\x82\x71\x35\xb1\xe3\xc5\x97\x33\xc2\x28\x55\xd3\x2d\x76\x56\x54\x85\x7a\x4d\xae\x56\x4c\x71\x63\x34\x7d\x5c\x77\x15\x29\x7e\x60\xa1\x76\xbe\xc7\xa4\x37\xb4\x07\x4e\x48\x42\x57\x59\xc3\xcd\xd0\xfc\xe6\xed\xe4\x1e\xde\xcd\x9f\x1c\xf7\x9f\x00\x00\x00\xff\xff\x25\x26\x79\xe6\x76\x05\x00\x00") - -func testE2eTestingManifestsIngressNginxRcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressNginxRcYaml, - "test/e2e/testing-manifests/ingress/nginx/rc.yaml", - ) -} - -func testE2eTestingManifestsIngressNginxRcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressNginxRcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/nginx/rc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressPreSharedCertIngYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x8f\xbd\x72\xe3\x30\x0c\x84\x7b\x3d\xc5\x8e\xaf\x96\x7c\xee\x3c\x2c\xaf\xbb\x26\x93\x2a\x3d\x44\x6e\x2c\x8e\x24\x52\x21\x20\xfb\xf5\x33\xa2\xe2\xfc\xb8\x0a\x2b\x02\xb3\x8b\xfd\x56\x96\xf8\xc2\xa2\x31\x27\x87\x44\xbb\xe5\x32\xc6\x74\xe9\xc6\xb3\x76\x31\x1f\xaf\xa7\x9e\x26\xa7\x66\x8c\x29\x38\xfc\x4f\x97\x42\xd5\x66\xa6\x49\x10\x13\xd7\x00\x49\x66\x3a\x2c\x85\xad\x0e\x52\x18\x5a\xcf\x62\x0d\xf0\x07\xff\x38\xe5\x1b\x24\xa5\x6c\x62\x31\x27\xdc\xe2\x34\xa1\x27\x24\x04\x06\xac\x4b\x4e\x30\xaa\xb9\xaa\xfe\xd2\xe9\xbe\x40\xdc\xd3\xba\x8b\x5f\xba\x71\xed\x59\x12\x8d\x95\xea\x21\xcd\xe1\xb0\xdd\x69\x1f\xd6\x87\x46\x17\xfa\xfd\xd8\xe6\x9f\x7d\x44\xe1\xdb\x1a\x0b\x15\x82\xc0\x57\x59\x27\x43\x2f\x7e\x64\x0a\x5d\x83\xfb\x77\xb3\x00\xca\x72\x8d\x9e\x4f\xb5\x1f\xfd\x90\x07\x4a\x60\xd1\x76\x30\x5b\xf4\xbb\xe4\x39\x6f\x0c\xe7\xbf\x0d\x50\xd6\x89\x95\xbf\xc5\x90\xd5\x5c\x2d\xd8\xdd\x9b\xf8\x3c\x57\xdf\x76\x61\x0f\x01\x16\xb1\x41\xef\x43\x5b\x47\x87\xe3\x66\xfb\xd8\x3d\x60\xed\xef\x17\x70\x3f\x84\x9f\x88\xef\x01\x00\x00\xff\xff\x7d\xdc\xd4\xbb\xef\x01\x00\x00") - -func testE2eTestingManifestsIngressPreSharedCertIngYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressPreSharedCertIngYaml, - "test/e2e/testing-manifests/ingress/pre-shared-cert/ing.yaml", - ) -} - -func testE2eTestingManifestsIngressPreSharedCertIngYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressPreSharedCertIngYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/pre-shared-cert/ing.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressPreSharedCertRcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x8e\x31\x6e\x03\x31\x0c\x04\x7b\xbd\x82\x1f\x90\xed\x5c\x65\xa8\xcd\x07\x82\x14\xe9\x69\xdd\xc2\x27\x58\x12\x05\x92\xf1\xfb\x03\x25\x38\xc7\x45\xb2\x1d\xb1\xdc\xc1\xf0\x28\x1f\x50\x2b\xd2\x13\xdd\x5f\xc2\xad\xf4\x35\xd1\x3b\x46\x2d\x99\xbd\x48\x7f\x95\xee\x2a\xb5\x42\x43\x83\xf3\xca\xce\x29\x10\x75\x6e\x48\x84\xbc\xc9\x06\x5e\xa1\x16\x37\xf7\x61\xc1\x06\xf2\xec\xf5\x87\x60\x89\x96\x40\xe4\x68\xa3\xb2\x63\x36\x44\xcf\x9c\x99\xca\x17\x54\xdb\x2f\x22\x1e\xe3\x2f\xf4\xac\x76\xfc\x4c\x96\xee\x5c\x3a\xf4\x31\x8d\xff\x6a\xed\xe8\xd2\xf8\x8a\x44\xd7\xac\x87\x22\xc7\xdb\xe7\x05\xda\xe1\xb0\x88\x05\xd1\x61\x1e\xbf\x3f\xec\x38\x11\x06\xbd\x43\xd3\x72\x58\x1e\xfb\x21\xea\x4f\xa6\xf1\x57\xe2\x4d\xd4\x13\x9d\x4f\xe7\x53\xf8\x0a\x00\x00\xff\xff\xa9\x29\xab\x0c\x53\x01\x00\x00") - -func testE2eTestingManifestsIngressPreSharedCertRcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressPreSharedCertRcYaml, - "test/e2e/testing-manifests/ingress/pre-shared-cert/rc.yaml", - ) -} - -func testE2eTestingManifestsIngressPreSharedCertRcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressPreSharedCertRcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/pre-shared-cert/rc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressPreSharedCertSvcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x8e\xc1\x0a\xc2\x30\x0c\x86\xef\x7d\x8a\xff\x05\x06\x7a\x93\x5e\xbd\xcb\x40\xf1\x1e\xdb\xe0\x8a\xdd\x12\xd2\x30\xf0\xed\x65\x75\x47\xf1\x16\x3e\xbe\x24\x1f\x69\xb9\xb3\xb5\x22\x4b\xc4\x7a\x0c\xaf\xb2\xe4\x88\x2b\xdb\x5a\x12\x87\x99\x9d\x32\x39\xc5\x00\x2c\x34\x73\x04\xa7\x49\x26\xa6\xcc\xd6\x86\xc9\x5d\x5b\x00\x2a\x3d\xb8\xb6\xcd\x01\x48\xf5\x97\xd4\x94\xd3\x26\xf8\x5b\x39\xe2\x22\x99\x47\x31\x0f\x80\x8a\x79\x5f\x1d\xfa\x18\x71\x3a\xf4\x3b\x4e\xf6\x64\x1f\x77\xb4\x43\x35\x71\x49\x52\x23\x6e\xe7\xb1\x93\x6f\xd4\xf6\x23\x00\x8d\x2b\x27\x17\xfb\x5b\xf2\x09\x00\x00\xff\xff\x0d\x93\xec\x7c\xf0\x00\x00\x00") - -func testE2eTestingManifestsIngressPreSharedCertSvcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressPreSharedCertSvcYaml, - "test/e2e/testing-manifests/ingress/pre-shared-cert/svc.yaml", - ) -} - -func testE2eTestingManifestsIngressPreSharedCertSvcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressPreSharedCertSvcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/pre-shared-cert/svc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressStaticIpIngYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4c\x8e\xb1\x6e\xf3\x30\x0c\x84\x77\x3d\xc5\x21\xff\x6c\xff\xcd\x16\xf8\x0d\xba\x14\x1d\x82\xee\xb4\x44\xd8\x84\x6d\xca\x10\xe9\xb4\x79\xfb\x42\x76\xda\x74\x93\x0e\xbc\xef\x3e\x5a\xe5\x83\x8b\x49\xd6\x0e\xca\xfe\x99\xcb\x24\x3a\xb4\xd3\xc5\x5a\xc9\xff\x6f\xe7\x9e\x9d\xce\x61\x12\x4d\x1d\x5e\x75\x28\x6c\x16\x16\x76\x4a\xe4\xd4\x05\x40\x69\xe1\x0e\xe6\xe4\x12\x1b\x59\x03\xf0\x0f\xd7\x51\x0c\xa4\x9a\x6b\x9a\x15\xf5\x97\x12\x27\xf4\x77\xf8\xc8\x70\x36\xc7\xb6\x66\x05\xcd\x73\x8e\xe4\xa2\x03\xe8\x01\x91\xb5\xdd\x21\xcf\xbe\x75\x7b\x80\x69\xeb\xb9\x28\x3b\xef\x6a\x72\xc8\xb4\xc3\x9c\x7b\x9a\x9b\x5f\x83\xe6\x30\x3a\xfd\xd0\x4e\xc1\x56\x8e\x15\xe1\xf3\x83\x74\xf8\x99\x6d\x0b\x5b\x4d\x1b\xe3\x58\xd8\xc1\x5f\x62\x6e\xc7\xfc\x35\x63\x60\xe5\x42\xce\x10\x47\xd9\x74\x57\x5f\x68\x62\x48\x7d\x8b\x21\x49\xe1\xe8\xb9\xdc\x6b\xa5\xc1\x41\x79\xdb\xe7\x9f\xd4\x00\xf4\x14\x27\xd6\x54\xc7\x01\xe3\x72\x93\xc8\xc7\x19\xc7\x31\x8f\x4c\x89\x8b\x35\xa3\xfb\x6a\x7f\x4f\xde\x73\xf1\x0e\x97\x97\xf0\x1d\x00\x00\xff\xff\xa2\x3f\xa5\xf9\xa4\x01\x00\x00") - -func testE2eTestingManifestsIngressStaticIpIngYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressStaticIpIngYaml, - "test/e2e/testing-manifests/ingress/static-ip/ing.yaml", - ) -} - -func testE2eTestingManifestsIngressStaticIpIngYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressStaticIpIngYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/static-ip/ing.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressStaticIpRcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x8e\x31\x6e\x03\x31\x0c\x04\x7b\xbd\x82\x1f\x90\xed\x5c\x65\xa8\xcd\x07\x82\x14\xe9\x69\xdd\xc2\x27\x58\x12\x05\x92\xf1\xfb\x03\x25\x38\xc7\x45\xb2\x1d\xb1\xdc\xc1\xf0\x28\x1f\x50\x2b\xd2\x13\xdd\x5f\xc2\xad\xf4\x35\xd1\x3b\x46\x2d\x99\xbd\x48\x7f\x95\xee\x2a\xb5\x42\x43\x83\xf3\xca\xce\x29\x10\x75\x6e\x48\x84\xbc\xc9\x06\x5e\xa1\x16\x37\xf7\x61\xc1\x06\xf2\xec\xf5\x87\x60\x89\x96\x40\xe4\x68\xa3\xb2\x63\x36\x44\xcf\x9c\x99\xca\x17\x54\xdb\x2f\x22\x1e\xe3\x2f\xf4\xac\x76\xfc\x4c\x96\xee\x5c\x3a\xf4\x31\x8d\xff\x6a\xed\xe8\xd2\xf8\x8a\x44\xd7\xac\x87\x22\xc7\xdb\xe7\x05\xda\xe1\xb0\x88\x05\xd1\x61\x1e\xbf\x3f\xec\x38\x11\x06\xbd\x43\xd3\x72\x58\x1e\xfb\x21\xea\x4f\xa6\xf1\x57\xe2\x4d\xd4\x13\x9d\x4f\xe7\x53\xf8\x0a\x00\x00\xff\xff\xa9\x29\xab\x0c\x53\x01\x00\x00") - -func testE2eTestingManifestsIngressStaticIpRcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressStaticIpRcYaml, - "test/e2e/testing-manifests/ingress/static-ip/rc.yaml", - ) -} - -func testE2eTestingManifestsIngressStaticIpRcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressStaticIpRcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/static-ip/rc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressStaticIpSecretYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x97\xdd\x8e\xa3\xbc\x9a\x85\xcf\xfb\x2a\xfa\x06\x66\x64\x43\x28\x75\x5a\xda\x07\x05\xb1\x21\x24\x76\x82\xf1\x6b\x83\xcf\x08\x46\x45\xc5\x86\xd0\x29\x2a\x3f\x5c\xfd\x28\xdf\xb7\xf7\x48\xf3\xa7\x39\x5e\x7a\x25\x84\xd6\xb3\xd6\x72\x33\x7d\xaa\xee\xfa\xf5\x79\x19\x7f\xff\xbc\xe1\x1f\xb6\x99\x9b\xdf\x3f\x7e\xfe\x9c\xfd\xd7\xbf\xb7\xd7\xf9\xf7\xcf\x7d\x89\xe6\x7d\x89\x13\x01\x36\x97\x9f\xf1\x46\xa8\x1c\x4a\x30\x79\x81\x28\x88\xbf\x34\x34\x27\x0e\xe7\x25\x88\x7d\xe7\xf8\xa6\xd0\xfd\xd1\x20\x1a\x96\x90\xc7\x06\xf9\x5d\x01\xeb\x88\x3b\x1c\x9b\x30\xae\xb5\xe3\xb5\x04\x72\x17\x88\xcb\x16\xac\x2c\xf5\x76\x11\x94\xd2\xc2\xf1\x50\x01\xe5\x45\x68\x57\xc2\x89\x18\x50\x3e\x4a\x5f\xef\x0a\x47\xb9\x04\xf6\x54\x67\x61\xd4\x42\xc3\xda\x59\x65\x95\x7b\x1e\x2a\xc1\xc1\xd3\x50\x68\x6b\x04\x35\x02\x60\x26\x45\x25\xbe\x0c\xd8\xd4\xa6\x3c\xeb\xd2\x07\x3b\x41\x14\xd4\x5e\xc4\x06\x4c\xc8\xb2\xfe\xd0\x38\xf2\x90\x4a\x9c\xbb\xf7\xe9\x28\x08\x0d\x25\x08\x5d\xff\x53\xeb\xfe\xa5\x91\x35\x29\x2a\xcb\x05\x35\xbd\x04\x1e\x76\xc4\x90\x42\xf1\xc4\xa0\x48\xff\x7f\xdf\x92\x38\x35\x6a\x10\x1a\x14\xdd\x0b\x42\xd1\x29\x55\x99\x18\xc5\x59\x84\xfd\x97\x4c\xf1\xc1\x0e\x39\x14\x88\xc7\x80\x7c\x28\x28\x35\xa5\x9b\x6f\xda\xf9\x8b\x1d\xf8\xa1\x50\xaf\x7f\x90\x8b\x02\xc4\x68\x90\x2a\x0a\x10\x9b\x02\x51\x71\x42\x6c\x67\x02\x4b\x0b\x47\xf7\xcc\x3d\x52\xb3\xd0\x51\x60\xcb\x58\xc0\x9e\x06\x6c\x0f\x1b\xb1\xed\xdc\x7a\x6c\x25\xd7\xa5\xc6\xf7\x96\xb6\x48\x29\x43\x0e\x80\x07\xd0\x8f\x27\x04\x62\xd0\x1b\xbb\x11\xe7\x1c\x33\x14\xcd\x4d\x25\x32\x3e\x52\xd7\xdc\xa7\xcf\xc6\x15\x91\xa8\x68\x29\xdd\xf4\x79\x22\xbe\x34\x32\x66\x2d\xc1\xcd\x3e\x20\x2b\x73\xf6\xb7\x6e\xf8\x0a\x59\xa0\xbe\x25\xea\xbf\x19\xca\x17\x8b\xdf\x23\x21\x73\x5f\x9e\xfb\xe1\xb0\xe9\x93\xee\xec\x30\x4b\xcd\x91\x85\xb6\x6a\x75\xf4\xa7\x19\xd9\x92\x38\x84\xb9\x7e\x54\xcc\x51\x6d\xd0\x74\x53\x5a\x49\x19\xe6\x65\xe3\xcd\xa6\x71\x13\x96\x4b\x9f\xeb\x8c\xc6\xa7\x8d\x2d\x98\x37\x73\x33\xf8\x1b\xa4\x96\x36\x99\x42\x1c\xd6\xb3\x92\x7d\x53\x06\x38\x16\x92\xf7\x6d\xea\x73\x11\xda\xdc\x0c\xbf\x76\xdd\x68\x6a\x7e\x7e\xbf\x2b\x64\x66\x9b\xf6\xae\x08\xb7\x57\x46\x63\x06\xa1\x29\x44\xb0\x3e\x37\xcf\xf5\xb3\xdc\xb4\xb7\x93\xce\x6f\xa7\x94\xef\x55\x26\x9c\x1d\x56\xf8\x94\x92\xa0\x81\x1a\x77\xa3\x9a\x4c\x25\xf4\x49\xbd\x07\x0c\xdd\x97\xce\x29\x03\xef\x13\x02\xc5\x2f\x6c\xe4\xa2\x4c\x1f\xea\xe4\x3d\x31\xa3\x5f\x35\x78\x9a\x20\x80\x6b\x31\x90\xc8\xe8\x5f\x77\x71\x8e\x3d\x5f\x5a\xc4\xbc\xe9\x0b\x70\x0b\x10\xb1\x91\x9b\x9e\x1b\x6c\x22\xa5\xdc\xf3\x44\x6c\x65\xaa\x7e\x7f\xa2\x3c\x92\xf4\x63\x49\xdc\x94\xea\x0d\x8b\xf8\xd9\x57\x65\x6a\xc2\xee\xcc\xcf\x75\xd5\x3f\x4f\xe9\xea\x0e\x84\x4e\x7c\xa0\x7f\x14\xf0\xd8\x22\x15\x17\x9a\x1e\x00\x30\xe5\x99\xdd\x82\xf2\x44\xf9\xed\x5d\xa2\x3c\xd1\xa0\x52\x81\x66\x72\x82\x48\x31\x9d\xe7\x4d\x4a\x76\x4c\xd3\x46\x6e\xd4\x5c\x3b\x91\xa8\x60\xba\x69\x29\x0e\x0c\x70\x72\x20\x36\x66\x4a\xb9\xb2\xb2\x42\x03\x4e\x6a\xa0\xff\xfd\xf6\x51\xab\x89\x71\x8d\x3f\x05\xc9\xab\x66\x58\x1b\x4e\x56\x0f\x09\x34\x14\xf7\xe9\xaf\x5b\x51\x59\x21\x1c\x8e\xe5\x8b\xd9\x73\xff\xbf\xfa\x53\x92\xff\xf4\x67\x52\xc0\x25\xd4\x1b\x86\xa1\x9a\x70\x33\x5a\x52\x54\x79\x26\xe1\x72\x3d\x54\xf4\x5b\x2c\x86\x24\xae\x77\x35\xf0\xb8\x90\x4a\x9d\x02\x6b\xac\x9e\x64\x3d\x58\xde\x84\x9c\x02\x56\x8b\x59\xf2\x91\x6d\xec\x4d\xa4\x2b\x2c\x03\xfe\x56\x52\xba\x2a\x87\x22\xea\xf4\x5c\xab\x45\x39\x31\x14\xb7\xce\x4f\x8d\x5c\x4c\x26\xc0\x1f\xcd\x48\xa1\x40\xed\xee\x00\x13\x14\xc1\xba\x6f\x49\xfe\x30\x63\x1f\x76\x99\xe8\x1b\xe9\x91\x05\x7b\x68\x86\xfa\x5e\x56\x93\xda\x07\xfc\x22\xc3\xbc\x6e\x86\xcb\xbd\xc4\x35\xae\x83\xa9\x51\x83\x30\x36\xa4\x61\xa1\x14\x34\x48\x91\x46\x91\x95\xf5\x34\xac\xcf\x8a\x9a\x62\xba\xca\x4c\x55\xbc\xfa\xb8\x17\x9e\x56\x12\xd7\x77\x0b\xf8\xde\x8d\x1f\xf7\x1a\xf0\xb1\x74\x1f\x0f\x3b\xd8\xf4\xa0\xf3\xa3\x49\xa7\xe3\xe9\x39\x63\x70\x53\xcc\xc8\x3a\x2a\xf5\xd7\x52\x0f\x82\xb6\xc3\x1c\x31\xfd\x11\x14\x03\x77\x2d\x4c\x47\x90\xef\x38\x71\x82\xef\x97\x8f\x67\x49\xec\x1f\x96\xcc\x13\x4f\xc5\x78\x48\xa7\xb9\x18\xfd\x28\x86\x69\xa8\xa5\x0b\x6b\xd7\x2e\xdd\xa8\x0e\x72\xc0\xa0\x5c\x7f\xdc\x85\xfd\xe3\x94\xe5\x2f\xb6\x8f\x45\xa8\x06\xf1\xb9\x4e\x34\x50\xda\x62\xf3\x3c\x6c\xac\xd7\x23\xdb\xd9\x80\x61\xa0\x53\xde\x0c\xe2\xd6\x39\x5e\x0a\xcf\x93\x6e\x58\xd7\xfb\xc5\x97\x2c\x9d\x8b\x42\x6f\x43\x35\x7c\xad\x4e\xe9\x94\x03\x59\x3f\x3b\xa8\x97\xae\x12\x21\x23\xe2\xb3\x18\xa7\x9d\xd1\x82\x95\x9a\x3e\x35\x89\x8a\x5a\xab\xb0\x80\x89\x1f\x8b\xcb\x5f\x39\xbe\x07\x75\x10\xc9\xff\x91\xf1\x1f\xff\xf8\xc7\x3f\x7b\xc1\x75\xcf\xff\xd1\x0b\x05\x38\xaf\x0b\x25\xe8\x96\xcc\x54\xff\x97\x5e\x50\x41\x01\x3e\x29\x40\xc4\xd2\xe5\x63\x13\xd2\x4b\x13\xf8\xec\x50\xb5\xf7\xc2\x51\x21\xc0\xc4\x85\xe2\x9b\xc2\xcd\xc6\x06\x76\x84\xc0\xc7\xe6\x2f\x36\xd6\xf9\x4b\x2f\x42\x31\x75\xd4\x1f\x34\xe4\x5f\x8d\x74\x8b\x1c\x56\xbb\x26\xc5\x7f\x76\x68\xbb\xea\x86\xf5\xde\x6e\xa8\x2c\x47\xda\xab\x51\xa5\xc2\x93\x9b\x22\x1f\xf7\x72\x20\xf7\x93\xff\x78\xec\x42\x7b\x31\x59\x8e\x3a\x3f\xdd\x5a\x9f\xe3\x56\x47\x8d\x58\x44\xb8\xc7\xf9\xbe\xc1\x42\xaa\x45\x49\xa1\x7a\x54\x2c\x06\xc4\x7d\x1a\xd8\x68\xb6\xfb\x80\x72\x0e\xbf\x22\x16\xc6\x6f\xcd\x06\x22\x1b\xe4\x5c\x24\xeb\x52\x0e\xd1\x64\xdc\xc7\x0d\x08\x3d\xef\x03\xe5\xca\x6c\x42\x07\x62\x1e\xed\xa6\x40\x1c\x45\x6f\x32\x50\x8d\x1a\xc5\x28\xbc\xdf\xd4\x60\xb6\x4d\x30\x3d\x18\x75\x8f\xc4\xd3\x5b\xa7\xf3\x3f\xd6\xf1\x94\x0f\x76\x67\xaa\x4b\x74\xa2\xd3\x8d\x67\x94\x70\x92\xe7\xf5\x98\x7b\x95\xc5\x5f\x40\xac\x6c\x53\x9b\xc8\x73\xfe\xd0\xda\x27\x2d\xe2\x5b\xee\x50\xc8\xca\x19\x49\x67\x2e\x7a\xcc\x8d\xa6\xf4\xb1\x0f\x05\xe9\xe4\xfb\xae\x1d\xa7\x55\x0b\xfd\x0e\x36\x66\xb5\x7b\xfe\xc2\x27\x69\x76\x9a\xf0\x2b\xc7\xfd\x27\x2f\xe7\x46\x85\xea\xd6\xa4\xea\xcc\x83\xf5\x77\xeb\x4d\xd3\x7c\xce\xa8\x93\x6e\xd5\x11\x4b\x38\x56\xf4\x14\x88\xa7\x80\x2d\x56\xee\xf2\x2c\x24\x5b\xb5\x78\xca\x74\x31\x5d\x4f\xa3\x19\x55\x68\xea\x16\xa2\xc4\x90\x1e\xef\x9e\xf3\xe1\x44\xed\x58\xa0\xe8\xcd\x86\x76\xda\x23\x91\x8b\x81\x7f\x09\x14\xdd\x61\x78\x7c\xb7\x98\xdf\x55\xc5\x27\x26\x7d\x04\xbe\x8e\xf6\x81\x0a\xd4\xf0\xb1\x1c\x08\x8a\x18\xb2\x4b\x2d\x55\x93\x9c\x3d\xb1\xc8\xe3\x93\xfe\xf5\x28\xb4\xe5\x85\xa3\xb1\x00\xfe\xca\x92\xb8\xa4\x6d\xc4\x64\x7f\xa9\xbd\x45\x6c\x31\x0d\xbc\xfa\x66\xe1\x05\x1f\x04\xb2\x24\xc2\xf5\x98\x47\x2c\x98\x98\xc2\x1c\x29\xff\xb1\x62\x61\x7f\x61\x1b\xf1\x07\x9e\xbf\x76\x22\x98\x6b\xfd\x39\x6f\x21\x9d\xd8\xa9\xaa\x57\xdc\x6f\xaf\x2a\xb3\x52\x8e\x79\x68\x42\x4a\x98\x14\x9a\x8d\x02\x9d\x9e\x73\x50\x8e\xfd\x0d\x36\xc6\xf3\xaa\x0d\x0f\x95\x89\x4a\xba\xc5\xa7\xb3\x60\x0c\xe7\x7f\x4e\x23\x7d\x2b\x83\xf9\x20\x33\x35\xab\xf7\xe9\x06\x98\x9f\xcd\x73\x36\xad\xeb\x53\x83\x5e\x5c\xda\xb4\xc0\xe6\x0d\x32\x83\x8b\x01\x47\x3c\x54\x5f\x00\xfd\x11\x34\x16\x05\xe0\x45\xe1\x7e\xa5\x52\xab\xf7\xc8\x56\x0c\xc7\xe1\x1e\xf1\x54\xe9\x9e\x74\x83\xd5\x7a\xe8\xbd\x0a\xa7\x63\x32\xa8\x50\x4b\xff\x14\xd4\xe2\xa2\x9a\xde\x4a\xcc\x9d\xd4\x04\x09\x17\x0d\x8d\x9e\xb4\xf0\x5e\xb7\x1b\x12\x8a\x05\xee\xc6\xcd\x47\xb5\xf0\x46\x3a\xfc\x3c\x68\x73\x2e\x11\x4e\x4a\x67\x27\x0b\xbf\x56\x80\x7b\x90\xc8\xa7\x80\xa6\x09\xe8\xfb\xae\xc6\xb0\x28\x35\xbd\xb2\x7d\xdf\x9d\xcd\x81\x55\xdb\xc8\x2e\x14\x2b\x45\xae\x8d\x57\xea\xb4\x89\x63\x13\xf0\xf2\x90\x89\x15\x0c\x8f\x55\x2d\x63\x80\x85\x6f\x21\xe5\x48\x8e\xdb\xdb\x0e\xc7\x4b\x0d\x1f\xc8\x50\x1b\xc9\x85\xe3\x3a\x14\x09\xbc\x5f\xa2\x5d\xe0\x1f\x4a\xf7\x91\xf5\x71\xd6\xf9\x18\xea\x85\x7e\xcb\x8a\xaf\xb4\x5b\x2b\x41\xee\xd7\xae\xca\x3f\xb9\xe7\xdf\x2a\x7b\x0f\xf7\x61\xfc\x59\x2f\xe2\x60\x30\xdd\x17\x83\x15\x82\x9a\xf8\x90\x59\xb4\x0b\xcc\x56\x9e\xcd\xb5\xc4\xea\x53\xa1\x7a\x49\x06\xee\x0f\xc9\x3a\x61\x67\x7e\x6b\xdc\x76\xd9\x3f\x67\x5f\x6e\xf2\xab\x24\x8f\x03\x77\xaf\x0e\xcb\x03\x49\xf9\x51\xfa\x8f\x45\x50\x76\xfb\x2b\x0f\x1d\xf5\x07\x4a\x96\x66\x63\x1a\x3b\x4c\x65\x99\xda\x74\xf7\x9c\x33\xe3\x58\x08\xc1\x3d\x3a\x95\xbf\x76\x2c\x35\x52\xea\xcb\x0d\x90\xda\xd5\x61\xac\xed\x12\x13\x7b\x8e\xa3\xd6\x01\x36\x0b\x8d\x55\x10\xc5\x2f\xe6\x24\x22\xc8\xe8\x17\xaf\x7e\x3c\x85\xe6\x6b\xff\xfc\x0a\xcd\xd9\xa6\x36\xf4\x82\x0d\x6b\xcf\x9c\xc9\xcb\x61\x5e\x14\xe1\x71\xf9\x3e\x31\x81\xbd\x02\x78\x6d\x4c\x58\x95\xae\x97\x45\xc5\xee\x9d\xbe\x5f\x9b\xe1\x12\x70\xaa\x8e\x00\x73\x62\x30\x25\xa0\x67\x62\xc8\x7a\x3a\x6d\x18\x2a\xb1\x2f\x2c\x88\xb8\xa9\x62\x2d\xb3\xfe\xed\x04\xfe\x2a\xa8\xa8\x4b\x14\x2d\x9d\xcf\xcf\x89\x7b\x34\x05\xe6\x47\x80\x69\xc7\xa4\xda\xb4\x67\x51\x36\xe0\x9f\xbb\xc0\x3c\x6d\xe5\xee\x0d\xc9\x8b\xf6\x1c\x1b\x3b\xd8\x40\x6c\x2c\x98\x2c\xfe\x6e\xc0\x7f\x36\xd4\x1f\xf8\x98\x8b\x76\xec\x2b\xa1\xed\x1e\x1c\xff\x34\xa3\x7f\xed\xe8\x41\x04\xf5\x8e\xa3\xed\xbd\xc4\x31\x97\x9a\xbf\x09\x07\x81\xad\x44\xcc\xa5\x08\x9a\xd1\x7e\x75\xf4\x7d\xa5\x94\x59\x01\xf6\x84\xfb\xf8\xdb\x02\x97\xc5\x30\xcd\x87\x64\xee\x4f\xca\xde\x85\xeb\x27\xe6\x26\xc4\x16\xb5\xe3\xe7\x36\xaa\x91\x7b\xb6\x68\xce\xe0\x7e\x79\xb2\xa5\x8f\x34\xb5\x91\xd9\x70\x51\xa2\x7c\x2c\xc0\x32\x20\x7e\x53\x87\xd3\x54\x0f\x24\x68\x17\xe3\x4f\x60\x74\xa1\x78\x54\x6b\xf5\x56\x04\xeb\x49\x69\xf1\xa5\xa1\xbd\xf3\x2c\xe6\xc2\xcd\x60\x65\x3e\x95\x5a\x24\xa0\x3e\xae\x4c\xc6\x59\xe2\xf8\xb6\x04\x23\xcb\x41\x05\xcd\x60\x2a\xe1\x54\xd4\x49\xff\x66\xd0\x74\xee\xb4\x8d\x9a\x00\x56\x7a\xf8\xba\xaa\xf1\xd5\xeb\x6b\xde\x29\x76\x6d\xd2\x87\xac\x87\xf9\x4f\x0d\xdc\x28\x49\x9f\x16\xd4\xcc\xd4\x47\x28\xb4\xe0\x22\x9d\xff\x94\x63\xb1\x3b\x90\xc7\x43\x56\x71\x0a\xc9\xba\x54\xd9\x64\xba\x6c\x1b\x76\x80\xa7\x32\x59\x17\x2f\xde\x9b\xd1\xee\x4f\xf0\xb8\x37\xcf\x19\x35\x30\xaf\x6a\x84\x03\x4d\xfd\xae\x54\xd3\x52\x3a\xdc\x6b\xb0\x4a\x81\xb9\x41\x16\xc7\x27\x64\x63\x08\x72\xd2\x7e\x4c\x59\x8d\xd4\x65\x17\xe6\x14\xb4\xcd\x8c\xf2\xe9\xa1\xea\x97\x4e\x4d\x0b\x0b\xf3\xb1\x46\x0f\xdd\x4a\xee\x79\x30\xb3\xda\x45\xe3\x81\xda\xeb\x8b\x9d\x13\x36\x49\xe3\xc5\xd2\x6c\x84\xd3\x1b\x71\x97\xc9\x5c\x89\xe0\x71\x69\xc7\x8f\x9b\x59\x6c\x9f\x8c\xb1\xd0\x9e\x46\x02\x7e\x45\x3a\xf3\xba\xd3\x0e\x43\xa8\xe2\x17\xeb\xdd\xe8\x22\xed\x55\x29\xd2\xfe\x66\x69\x5c\xe9\x4c\xe1\x86\x44\x47\x53\xf1\xe3\x21\xb5\x47\x51\xd1\xba\x1b\x8b\x27\xaf\x28\x51\xc3\x74\xd9\x05\xea\x6a\x47\xde\xd7\x8b\xdb\x41\x20\x16\xf0\x04\x99\x60\x7a\xf9\xa5\x38\x11\x8a\xea\xd0\xbe\xd9\xd1\xee\x1b\x62\xbe\x9b\x40\x1c\x80\x10\xd4\x54\xfe\x5e\x62\x95\xb2\xc5\xd2\x22\xb0\xa6\x00\xf1\xad\x86\xf9\x8d\x8d\xf4\xc9\x36\xe2\xc1\xf5\xbc\x34\xa9\xe0\xed\xb0\x5d\x89\x8f\x29\x06\x95\xf7\xa5\xef\x59\x5b\xc5\x57\x23\xfb\x5b\x01\xf6\xab\x40\x13\x67\x83\x7a\x31\x60\xec\xd9\x13\xa6\xe1\xd1\x54\xb6\x34\xd4\x5f\x4b\xa4\x40\x0f\xf3\xb6\xad\x54\x23\x36\x5c\x75\xaa\xdf\xef\x70\x7e\x14\x10\x7d\xeb\x73\x9e\x59\xd7\xde\x93\x81\xe6\xb5\xef\xb3\x83\xac\x57\x86\xf6\x93\xf9\x9c\xdf\xca\x85\x86\x7c\x78\x38\xa3\x45\x62\x53\xb3\x6d\x70\x2c\x6b\x69\x93\x02\x99\x44\x83\x78\x36\xd0\x62\x9e\xac\xbf\xe5\xd9\x7c\x6a\xa0\x53\x37\x60\x5e\x07\xc6\x6b\xf2\xf0\x25\x9a\x8e\x22\xfd\xb5\x93\x59\x2f\x4f\x78\x7b\xef\x5c\xc4\xbb\xc1\x70\x95\xd1\x7b\x3d\xf6\x67\x9b\x99\x1c\x24\x5a\x27\x9f\x7f\xef\x13\x01\x11\xd9\xd2\xb8\x2c\x95\x89\x15\x81\x8f\x12\x29\xf3\xf7\xae\x41\xbb\x1f\xee\x73\xb4\xbf\x7f\x96\x5d\x7b\xed\xe6\x1f\x43\x37\x37\xff\x7a\x1a\x8f\xcd\xd0\xfd\x7e\x0d\xa1\x7f\xfb\xfa\x5b\x9c\x9f\x53\xf7\xfb\xe7\x61\x6a\xfe\x7c\x77\x3f\x7e\xfc\x47\x00\x00\x00\xff\xff\x16\x44\xcf\x58\x51\x0f\x00\x00") - -func testE2eTestingManifestsIngressStaticIpSecretYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressStaticIpSecretYaml, - "test/e2e/testing-manifests/ingress/static-ip/secret.yaml", - ) -} - -func testE2eTestingManifestsIngressStaticIpSecretYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressStaticIpSecretYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/static-ip/secret.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsIngressStaticIpSvcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x8e\xc1\x0a\xc2\x30\x0c\x86\xef\x7d\x8a\xff\x05\x06\x7a\x93\x5e\xbd\xcb\x40\xf1\x1e\xdb\xe0\x8a\xdd\x12\xd2\x30\xf0\xed\x65\x75\x47\xf1\x16\x3e\xbe\x24\x1f\x69\xb9\xb3\xb5\x22\x4b\xc4\x7a\x0c\xaf\xb2\xe4\x88\x2b\xdb\x5a\x12\x87\x99\x9d\x32\x39\xc5\x00\x2c\x34\x73\x04\xa7\x49\x26\xa6\xcc\xd6\x86\xc9\x5d\x5b\x00\x2a\x3d\xb8\xb6\xcd\x01\x48\xf5\x97\xd4\x94\xd3\x26\xf8\x5b\x39\xe2\x22\x99\x47\x31\x0f\x80\x8a\x79\x5f\x1d\xfa\x18\x71\x3a\xf4\x3b\x4e\xf6\x64\x1f\x77\xb4\x43\x35\x71\x49\x52\x23\x6e\xe7\xb1\x93\x6f\xd4\xf6\x23\x00\x8d\x2b\x27\x17\xfb\x5b\xf2\x09\x00\x00\xff\xff\x0d\x93\xec\x7c\xf0\x00\x00\x00") - -func testE2eTestingManifestsIngressStaticIpSvcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsIngressStaticIpSvcYaml, - "test/e2e/testing-manifests/ingress/static-ip/svc.yaml", - ) -} - -func testE2eTestingManifestsIngressStaticIpSvcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsIngressStaticIpSvcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/ingress/static-ip/svc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsKubectlAgnhostPrimaryControllerJsonIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa4\x92\x4f\x4b\xc4\x40\x0c\xc5\xef\xfd\x14\x25\x67\x15\x16\x41\x71\x6e\xe2\xc9\x9b\x78\xf0\x22\x1e\x62\x37\xac\x83\xd3\xc9\x90\x09\x0b\x52\xe6\xbb\xcb\x6c\xbb\xdd\xfe\x99\x55\xc1\x53\xe1\xe5\xe5\xe5\x97\x74\xba\xaa\xae\x6b\xf8\xb4\x7e\x0b\x06\x9e\x29\x38\xdb\xa0\x5a\xf6\x0f\xec\x55\xd8\x39\x12\xb8\x38\x58\x30\xd8\x17\x92\x68\xd9\x83\x81\xfd\x66\x50\x5b\x52\xdc\xa2\x22\x98\x43\x50\x96\x3c\xb6\x04\x06\x70\xe7\x3f\x38\xea\x65\x10\xdb\xa2\x7c\xf5\xfe\x5c\x77\xf8\x4e\x2e\x9e\x1a\xfa\xf0\x70\x6a\x19\xad\xb9\x22\xec\x72\xda\x31\x65\xa8\xa4\xfc\x4d\x3d\x42\x0c\xd4\x4c\xc6\x4b\xbf\x43\x04\xb3\x19\x47\x46\x72\xd4\x28\xcb\x3f\x87\x8e\x79\x4a\x6d\x70\xa8\x34\xcf\x5b\xdf\xe2\xfc\xc6\xbf\x21\xfc\x08\x32\xb9\xc1\x82\x6c\x7d\x8f\x41\x6c\xd8\x2b\x5a\x4f\x12\xc1\xbc\x2e\xc7\xac\xb8\xfe\xf0\x1b\x67\x5e\xdb\xe2\x8e\xc0\xd4\xd0\x75\x57\xf7\x7d\xc3\x63\x96\x52\x2a\xfb\x03\x8b\x96\x40\xce\xe3\x94\xa1\x22\xc9\xfe\xf8\x40\xcb\x0d\xe3\xde\x4f\x2c\x0a\xe6\xe6\xfa\xf6\xae\x6c\x4e\x05\xf9\x6d\xa9\xcd\x4d\x93\x72\x9a\xbd\xcb\x2a\x55\xdf\x01\x00\x00\xff\xff\x96\x5f\x1a\xbe\x57\x03\x00\x00") - -func testE2eTestingManifestsKubectlAgnhostPrimaryControllerJsonInBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsKubectlAgnhostPrimaryControllerJsonIn, - "test/e2e/testing-manifests/kubectl/agnhost-primary-controller.json.in", - ) -} - -func testE2eTestingManifestsKubectlAgnhostPrimaryControllerJsonIn() (*asset, error) { - bytes, err := testE2eTestingManifestsKubectlAgnhostPrimaryControllerJsonInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/kubectl/agnhost-primary-controller.json.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsKubectlAgnhostPrimaryPodYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x52\xcd\x6a\xf3\x30\x10\xbc\xfb\x29\x96\xdc\x9d\xbf\x0f\xbe\xd2\xbd\x15\x9a\x43\xa0\x09\x26\x2d\x85\x1e\x37\xce\x92\x88\xe8\xc7\xac\x56\x86\x50\xfa\xee\xc5\x89\x92\xb8\xbe\x96\xfa\xb4\x8c\x67\x66\x35\x23\x51\x63\xde\x59\xa2\x09\x1e\xa1\x9d\x15\x47\xe3\x77\x08\x55\xd8\x15\x8e\x95\x76\xa4\x84\x05\x80\xa5\x2d\xdb\xd8\x4d\x00\x9e\x1c\x23\xd0\xde\x1f\x42\xd4\x33\x22\xc1\x32\x42\x23\xc6\x91\x9c\x8a\x01\xa3\xbc\xe2\xb1\xe1\xba\x73\xa8\x83\x57\x32\x9e\x25\xfb\x95\x99\x7f\xd7\x77\x9f\x71\xb4\x67\x84\x7d\x2d\x63\x13\x26\xc7\xb4\x65\xf1\xac\x1c\x4b\x9e\x73\xa9\x1c\xb5\x3c\x33\xe2\x24\xaf\xc1\xd9\x78\x9a\xa5\xec\x5b\xcc\xe3\xdd\xbd\xda\x2c\x57\x4f\x9b\x8f\x1b\x0e\xd0\x92\x4d\x8c\x30\x52\x49\x3c\xca\x78\x13\x44\x63\x5f\x7c\x3b\x6c\x15\x44\x11\xfe\xff\x7b\x78\xcc\x7f\x85\x63\x48\x52\x73\x8f\x6e\x8d\x33\x7d\x39\x40\xdd\x24\x84\xd1\x74\x3c\xbb\x2e\x68\x83\x4d\x8e\x57\x21\xf9\x9f\x7b\x5c\x87\x54\xa4\x07\x84\xc9\xa0\xb8\xb2\xbb\x84\x9e\xe7\x25\xcf\x0d\xbc\x06\x8c\xec\xd5\x78\xb6\x7f\xd4\xdf\xeb\x62\xfd\xb6\x5c\x2f\x5e\x7e\x59\xe0\x3c\x37\x78\xe9\x61\xf0\x02\x7a\x41\xd9\x35\x7a\x7a\x36\x82\xf0\xf9\x55\x7c\x07\x00\x00\xff\xff\xc6\x0a\xed\xba\xa3\x02\x00\x00") - -func testE2eTestingManifestsKubectlAgnhostPrimaryPodYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsKubectlAgnhostPrimaryPodYaml, - "test/e2e/testing-manifests/kubectl/agnhost-primary-pod.yaml", - ) -} - -func testE2eTestingManifestsKubectlAgnhostPrimaryPodYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsKubectlAgnhostPrimaryPodYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/kubectl/agnhost-primary-pod.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsKubectlAgnhostPrimaryServiceJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x4f\xcb\xaa\xc2\x30\x10\xdd\xf7\x2b\x42\xd6\xbd\x8b\x8b\xa0\xd8\xaf\x10\x04\x37\xe2\x62\x6c\x87\x1a\x4c\x93\x30\x19\x0a\x22\xf9\x77\x99\xa6\x8f\xb8\x77\x95\x70\x9e\x73\xde\x95\x52\x4a\x3f\x8d\xeb\x74\xa3\xf4\x19\x69\x34\x2d\xea\x7a\x42\x21\x98\x0b\x52\x34\xde\x09\x37\xfe\xcf\xf0\x80\x0c\x1d\x30\xe8\x46\x4d\x6e\xc1\x1c\x0c\x28\x22\xe8\xdd\xc3\x47\xfe\x0b\x64\x06\xa0\x57\x76\x88\xc0\xc2\x1d\x6d\x2c\x2c\xb9\x20\x14\xa6\x55\x2c\x14\x79\x3b\x05\x2e\x41\x33\x95\xe4\x4d\xf9\x8e\x18\xb0\x2d\x6f\x08\x9e\x58\x1a\xae\x5b\x4c\x51\xb6\x28\x74\xa3\xf6\xbb\xc3\xb1\xfe\x66\x18\xa8\x47\x3e\x65\x7e\x5d\x11\x91\x46\x24\xbd\x49\xd3\xfc\xbd\xad\xbb\x22\x5a\x6c\xd9\xd3\x8f\x96\x55\xe9\x13\x00\x00\xff\xff\xd0\xfb\x54\xf4\x91\x01\x00\x00") - -func testE2eTestingManifestsKubectlAgnhostPrimaryServiceJsonBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsKubectlAgnhostPrimaryServiceJson, - "test/e2e/testing-manifests/kubectl/agnhost-primary-service.json", - ) -} - -func testE2eTestingManifestsKubectlAgnhostPrimaryServiceJson() (*asset, error) { - bytes, err := testE2eTestingManifestsKubectlAgnhostPrimaryServiceJsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/kubectl/agnhost-primary-service.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsKubectlBusyboxCronjobYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x90\x41\x4b\x33\x31\x10\x86\xef\xf9\x15\xc3\x1e\x0b\x65\xbf\xa5\xb7\xdc\x3e\x14\x91\x22\x28\x28\xde\x27\xd9\x69\x3b\x35\x3b\xb3\x24\x13\x75\xff\xbd\xa4\x5a\x68\xf5\xcd\x6d\x9e\x64\xf2\xf2\xe0\xcc\xaf\x94\x0b\xab\x78\x08\x68\xf1\xd0\xbf\x0f\x81\x0c\x07\xf7\xc6\x32\x7a\xb8\xc9\x2a\x5b\x0d\x6e\x22\xc3\x11\x0d\xbd\x03\x10\x9c\xc8\x43\xcc\x2a\x47\x0d\x6b\xa3\x62\xae\xcc\x14\x1b\x2a\xf1\x40\x63\x4d\xe4\xa1\x5b\xf5\x03\xac\xbe\x4f\xe7\x00\xa2\x4a\xac\x39\x93\xc4\xe5\x49\x13\xc7\xc5\xc3\xff\x94\xf4\xa3\x3d\xaa\x65\xa6\xf6\xd9\x0e\x53\xa1\x36\x30\xcc\xc6\xb2\xbf\x25\x1c\x13\x0b\x3d\x53\x54\x19\x8b\x87\xcd\xbf\xd3\xf5\x18\xa9\x94\x5d\x4d\x5b\x0d\xe5\x9e\x8b\x69\x5e\x1e\x78\x62\xf3\xb0\x71\x00\x3b\xe4\x44\xe3\x5f\x36\x38\x80\xa3\x86\x17\x9a\xe6\x84\x46\xad\x2e\xc0\xb9\x78\x8b\x5d\x91\xdf\xb4\x25\xaa\x18\xb2\x50\x2e\x97\xd3\xf5\x8f\x91\x93\x09\xb8\x08\x4f\xb8\x27\x0f\xa1\x96\x25\xe8\xe7\x15\xc2\xbc\xbf\xda\xd1\xb6\x74\x7d\x60\xe9\x2d\x57\xea\x2e\x48\xa6\x93\x8e\xb3\xb4\x47\xb9\x43\x4e\x35\x93\xfb\x0a\x00\x00\xff\xff\x92\xe8\x92\xc0\xbb\x01\x00\x00") - -func testE2eTestingManifestsKubectlBusyboxCronjobYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsKubectlBusyboxCronjobYaml, - "test/e2e/testing-manifests/kubectl/busybox-cronjob.yaml", - ) -} - -func testE2eTestingManifestsKubectlBusyboxCronjobYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsKubectlBusyboxCronjobYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/kubectl/busybox-cronjob.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsKubectlBusyboxPodYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\x8f\x31\x4f\x03\x31\x0c\x85\xf7\xfc\x8a\xa7\x1b\xda\x85\xe3\x5a\x21\x31\x64\x40\x62\x64\x41\x37\xb1\x20\x06\x27\xe7\xa3\x51\x93\x38\x4a\x52\xe0\xfe\x3d\x4a\x04\x82\x2e\xb6\xe4\xf7\xd9\xcf\x8f\x92\x7b\xe1\x5c\x9c\x44\x8d\x8f\xa3\x3a\xbb\xb8\x68\xcc\xb2\xa8\xc0\x95\x16\xaa\xa4\x15\x10\x29\xb0\x86\xb9\x94\xcd\xc8\xd7\x51\x01\x9e\x0c\xfb\xd2\x24\x80\x52\xfa\xa7\x95\xc4\xb6\xcd\xad\xc4\x4a\x2e\x72\xee\xd4\x08\x17\xe8\xfd\xef\x46\x5f\xb4\x12\x02\x35\xbb\xd7\x61\x32\x2e\x4e\xe5\x34\xdc\x60\x18\x6d\xab\xe1\xbc\xb8\x8c\x31\x61\xca\x22\x75\x5a\x45\x26\x43\x19\xbb\x1d\xd8\x9e\x04\xfb\x55\xc4\x50\xde\xe3\xe1\x1a\x68\xfd\xf6\x07\x2c\x9e\x39\xe1\xee\xfe\x70\x18\xde\xba\x5f\x7f\x61\xbe\x78\x3f\x8b\x77\x76\xd3\x78\x5a\x9f\xa5\xce\x99\x0b\xc7\xda\x89\xab\x9c\x0a\xc8\x5c\x2a\xe5\xfa\xcb\x3f\xfa\x4f\xda\x8a\xfa\x0e\x00\x00\xff\xff\x4e\x0c\x6d\xc8\x33\x01\x00\x00") - -func testE2eTestingManifestsKubectlBusyboxPodYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsKubectlBusyboxPodYaml, - "test/e2e/testing-manifests/kubectl/busybox-pod.yaml", - ) -} - -func testE2eTestingManifestsKubectlBusyboxPodYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsKubectlBusyboxPodYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/kubectl/busybox-pod.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsKubectlHttpdDeployment1YamlIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x8e\xcb\x6a\xc3\x30\x10\x45\xf7\xfa\x8a\xfb\x03\xee\x6b\x55\xb4\xee\xa2\x85\x52\xba\xea\x7e\x2a\x0d\xb5\xa8\x1e\x83\x34\x24\x04\xe3\x7f\x0f\x22\x8e\xed\x64\x96\x77\xce\x7d\x90\x84\x1f\xae\x2d\x94\x6c\x41\x22\xed\xf1\xf0\x6c\xfe\x43\xf6\x16\x6f\x2c\xb1\x9c\x12\x67\x35\x89\x95\x3c\x29\x59\x03\x64\x4a\x6c\x31\xaa\x8a\x1f\xfc\x86\x34\x61\xd7\xdf\x95\x25\x06\x47\xcd\xe2\xc5\x00\x8d\x23\x3b\x2d\xb5\x7f\x80\x44\xea\xc6\x4f\xfa\xe5\xd8\x2e\x02\x7a\xe5\x12\x66\x00\xe5\x24\x91\x94\x17\x7a\x57\xda\x2f\xde\x18\xef\xac\xc0\x75\x40\x3f\x57\xb2\x52\xc8\x5c\x57\x7c\xd8\xef\x5e\x23\x42\xa2\x3f\xb6\x98\xa6\x87\xf7\xae\x7f\xf1\xf1\xa3\x2b\xf3\xbc\x12\x52\xaa\xee\x3a\x87\x2d\xfa\xbb\x54\xb5\x78\x7d\x32\xe7\x00\x00\x00\xff\xff\xda\xd6\x43\x63\x42\x01\x00\x00") - -func testE2eTestingManifestsKubectlHttpdDeployment1YamlInBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsKubectlHttpdDeployment1YamlIn, - "test/e2e/testing-manifests/kubectl/httpd-deployment1.yaml.in", - ) -} - -func testE2eTestingManifestsKubectlHttpdDeployment1YamlIn() (*asset, error) { - bytes, err := testE2eTestingManifestsKubectlHttpdDeployment1YamlInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/kubectl/httpd-deployment1.yaml.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsKubectlHttpdDeployment2YamlIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x8e\xcb\xaa\x02\x31\x0c\x86\xf7\x7d\x8a\xbc\xc0\x9c\xcb\xee\xd0\xf5\x59\x28\x88\xb8\x72\x1f\xdb\xe0\x14\x7b\x09\x6d\x50\x64\x98\x77\x97\xe0\x38\x33\x9a\x55\xf9\xfb\xfd\xf9\x82\x1c\x8e\x54\x5b\x28\xd9\x02\x32\xb7\xef\xeb\xaf\xb9\x84\xec\x2d\xfc\x13\xc7\x72\x4f\x94\xc5\x24\x12\xf4\x28\x68\x0d\x40\xc6\x44\x16\x7a\x11\xf6\x9d\x5f\x90\xc6\xe4\xf4\xbb\x51\x24\x27\xa5\xea\x1b\x20\xa1\xb8\x7e\x87\x27\x8a\xed\x19\x80\x4a\xa6\xba\x01\x10\x4a\x1c\x51\x68\xa2\x57\x1a\x9d\xf8\x56\xfc\xa8\x02\xbc\x94\x3a\xae\x64\xc1\x90\xa9\xce\x78\xb7\xbe\x74\x5e\x11\x12\x9e\xc9\xc2\x30\x7c\x6d\x34\xdf\xd3\x6d\xab\xc9\x38\xce\x04\x97\x2a\x2b\x67\xb7\xac\x3e\x94\x2a\x16\xfe\x7e\xcc\x23\x00\x00\xff\xff\xbb\xc5\xc3\x6b\x34\x01\x00\x00") - -func testE2eTestingManifestsKubectlHttpdDeployment2YamlInBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsKubectlHttpdDeployment2YamlIn, - "test/e2e/testing-manifests/kubectl/httpd-deployment2.yaml.in", - ) -} - -func testE2eTestingManifestsKubectlHttpdDeployment2YamlIn() (*asset, error) { - bytes, err := testE2eTestingManifestsKubectlHttpdDeployment2YamlInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/kubectl/httpd-deployment2.yaml.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsKubectlHttpdDeployment3YamlIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x8e\xbb\xae\xc2\x30\x0c\x86\xf7\x3c\x85\x5f\xa0\xe7\xc0\x86\x32\x33\x80\xc4\xc0\xc4\x6e\x12\x8b\x46\xe4\x62\x25\x16\x12\xaa\xfa\xee\xc8\xa2\xb4\x05\x4f\x89\xff\xcb\x67\xe4\x70\xa1\xda\x42\xc9\x16\x90\xb9\xfd\x3f\xb6\xe6\x1e\xb2\xb7\xb0\x27\x8e\xe5\x99\x28\x8b\x49\x24\xe8\x51\xd0\x1a\x80\x8c\x89\x2c\xf4\x22\xec\x3b\xbf\x58\x1a\x93\x53\xb9\x51\x24\x27\xa5\xea\x1b\x20\xa1\xb8\xfe\x84\x57\x8a\xed\xbd\x00\x85\x4c\x71\x03\x20\x94\x38\xa2\xd0\xe4\x5e\x61\x74\xe2\x57\xf0\x27\x0a\xf0\x41\xea\xb8\x92\x05\x43\xa6\x3a\xdb\xbb\xf5\xa5\x73\x45\x48\x78\x23\x0b\xc3\xf0\x77\xd0\xfd\x51\xbf\xe3\x38\xcb\x5c\xaa\xac\x80\xdd\xd2\x7b\x2e\x55\x2c\xec\x36\xe6\x15\x00\x00\xff\xff\x2d\xb9\xc2\x0f\x31\x01\x00\x00") - -func testE2eTestingManifestsKubectlHttpdDeployment3YamlInBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsKubectlHttpdDeployment3YamlIn, - "test/e2e/testing-manifests/kubectl/httpd-deployment3.yaml.in", - ) -} - -func testE2eTestingManifestsKubectlHttpdDeployment3YamlIn() (*asset, error) { - bytes, err := testE2eTestingManifestsKubectlHttpdDeployment3YamlInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/kubectl/httpd-deployment3.yaml.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsKubectlHttpdRcYamlIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x8f\xb1\x8a\xc3\x30\x10\x44\x7b\x7d\xc5\xfc\x80\x0f\xdc\xaa\xbd\xe6\xae\xb9\xe2\x8a\xf4\x1b\x79\x49\x44\xa4\x95\x58\x6d\x92\xc2\xf8\xdf\x83\x30\x36\x26\x99\x6e\x67\x78\xb3\x0c\xd5\x78\x62\x6d\xb1\x88\xc7\x63\x74\xb7\x28\x93\xc7\x3f\xd7\x14\x03\x59\x2c\xf2\x5d\xc4\xb4\xa4\xc4\xea\x32\x1b\x4d\x64\xe4\x1d\x20\x94\xd9\xe3\x6a\x56\xa7\x41\x83\x6b\x95\x43\xb7\x75\x05\x9b\xc7\xe8\x80\xc6\x89\x83\x15\xed\x09\xa0\x77\x39\x10\x80\x71\xae\x89\x8c\xd7\xf4\x58\xde\x95\xe8\xcc\xa9\x6d\xd7\x27\x0d\x6c\x3f\xbb\x42\x11\xa3\x28\xac\x3b\x31\x20\x66\xba\xb0\xc7\x3c\x7f\xfd\x74\xec\x8f\x9f\xbf\xdd\x59\x96\xbd\xf3\x6d\xc4\x2b\x00\x00\xff\xff\x5c\xf5\x77\xda\x0b\x01\x00\x00") - -func testE2eTestingManifestsKubectlHttpdRcYamlInBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsKubectlHttpdRcYamlIn, - "test/e2e/testing-manifests/kubectl/httpd-rc.yaml.in", - ) -} - -func testE2eTestingManifestsKubectlHttpdRcYamlIn() (*asset, error) { - bytes, err := testE2eTestingManifestsKubectlHttpdRcYamlInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/kubectl/httpd-rc.yaml.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsKubectlPausePodYamlIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x8c\x31\x0e\xc2\x30\x0c\x45\xf7\x9c\xe2\x5f\xa0\x08\x36\xe4\x1b\xb0\x65\x62\x37\x8d\x85\x22\x1a\x3b\x4a\x0c\x4b\xd5\xbb\xa3\x54\x48\x08\x46\xbf\xe7\xff\xb8\xe6\xab\xb4\x9e\x4d\x09\xaf\x53\x78\x64\x4d\x84\x68\x29\x14\x71\x4e\xec\x4c\x01\x50\x2e\x42\xa8\xfc\xec\x12\x80\x85\x6f\xb2\xf4\xc1\x7f\x4d\xaf\x32\x0f\x3a\x9b\x3a\x67\x95\xb6\xff\x4c\x7f\x6b\x20\x17\xbe\x0b\x61\x5d\x0f\x71\xb0\xcb\x38\xb7\x6d\x57\xd5\x9a\x7f\xca\xd3\xb7\x13\xad\x39\xe1\x7c\x0c\xef\x00\x00\x00\xff\xff\x04\xec\xd3\x24\xad\x00\x00\x00") - -func testE2eTestingManifestsKubectlPausePodYamlInBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsKubectlPausePodYamlIn, - "test/e2e/testing-manifests/kubectl/pause-pod.yaml.in", - ) -} - -func testE2eTestingManifestsKubectlPausePodYamlIn() (*asset, error) { - bytes, err := testE2eTestingManifestsKubectlPausePodYamlInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/kubectl/pause-pod.yaml.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsKubectlPodWithReadinessProbeYamlIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x8c\x4d\x4a\x04\x41\x0c\x46\xf7\x7d\x8a\xef\x02\xe3\xcf\x42\x90\xac\x05\x75\xd7\x20\xb8\xcf\x74\x05\x27\xd8\x95\x14\x55\x51\x90\x61\xee\x2e\x55\x8e\x4c\xeb\xf2\x7b\x2f\x79\x5c\xf4\x55\x6a\x53\x37\xc2\xe7\xed\xf4\xae\x96\x08\xb3\xa7\x29\x4b\x70\xe2\x60\x9a\x00\xe3\x2c\x84\x43\x44\x49\x13\xb0\xf2\x5e\xd6\xd6\xf9\x5f\xd3\x8a\x2c\x9d\x2e\x6e\xc1\x6a\x52\xc7\xcd\xee\xdf\x37\xa0\x99\xdf\x84\x70\x3c\x5e\x3d\x75\xf6\xdc\xe7\xe9\x34\x54\xf1\x1a\xe7\xf2\xee\xd2\x99\xbd\x06\xe1\xfe\x66\xf0\x2a\x9c\xd4\xa4\xb5\xb9\xfa\x5e\x7e\x6e\x31\xea\x8f\x12\xbf\x13\x28\x1c\x07\xc2\xf5\x65\x6f\x1b\x80\x9a\x86\xf2\xfa\x20\x2b\x7f\xbd\xc8\xe2\x96\x1a\xe1\xee\x2c\x43\xb3\xf8\x47\x6c\xf8\x77\x00\x00\x00\xff\xff\xe7\xf2\x7c\x22\x26\x01\x00\x00") - -func testE2eTestingManifestsKubectlPodWithReadinessProbeYamlInBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsKubectlPodWithReadinessProbeYamlIn, - "test/e2e/testing-manifests/kubectl/pod-with-readiness-probe.yaml.in", - ) -} - -func testE2eTestingManifestsKubectlPodWithReadinessProbeYamlIn() (*asset, error) { - bytes, err := testE2eTestingManifestsKubectlPodWithReadinessProbeYamlInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/kubectl/pod-with-readiness-probe.yaml.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsPod = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\xcc\x31\x6e\xc3\x30\x0c\x85\xe1\x5d\xa7\x78\x40\x67\x17\xed\x56\x68\xed\x05\x3c\x75\x67\x2d\xda\x21\x22\x91\x82\xc4\x24\xf6\xed\x03\x07\x01\x02\x67\xfd\xc8\xff\x7d\xe0\xd7\xea\x06\x9b\x51\x2d\x7d\x6e\x54\x32\x6e\xe2\x27\xbb\x38\x66\xc9\x0c\x5e\x9d\xb5\x8b\x29\x66\x6b\x70\xee\x1e\xa8\xca\x1f\xb7\xdd\x22\xae\xdf\xe1\x2c\x9a\x22\x46\x4b\xa1\xb0\x53\x22\xa7\x18\x00\xa5\xc2\x11\xba\x88\xae\x01\xc8\xf4\xcf\xb9\xef\x7e\xbc\xf4\xca\xd3\xae\x93\xa9\x93\x28\xb7\xc7\xcf\xf0\x56\x03\x52\x68\x39\x40\xb5\xe6\xcf\xbd\xe1\x55\x8f\xd6\x3c\xe2\xe7\x2b\xdc\x03\x00\x00\xff\xff\xaf\xc0\x71\x4d\xd6\x00\x00\x00") - -func testE2eTestingManifestsPodBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsPod, - "test/e2e/testing-manifests/pod", - ) -} - -func testE2eTestingManifestsPod() (*asset, error) { - bytes, err := testE2eTestingManifestsPodBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/pod", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsRbdStorageClassYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x8e\xb1\x6e\xc3\x30\x0c\x44\x77\x7d\x05\x91\xdd\x6a\xdc\xa1\x49\xb9\x76\xea\xd2\x25\x40\x77\xc6\x22\x5a\xc1\x96\x28\x90\x4c\x8a\xfe\x7d\x61\x79\x28\x32\x78\x93\xde\x1d\xef\x8e\x5a\xfe\x64\xb5\x2c\x15\xc1\x5c\x94\xbe\x38\xce\x67\x8b\x59\x9e\xee\x63\x98\x73\x4d\x08\x97\x8d\xbf\x2d\x64\x16\x0a\x3b\x25\x72\xc2\x00\x00\x95\x0a\x23\xd8\x22\x3f\xa1\xa9\xdc\xf3\x9a\xc3\x8a\x30\xdf\xae\xac\x95\x9d\x7b\x90\x5e\x53\x68\xa4\x54\xd8\x59\xad\x1f\x42\x91\x9a\x5d\xd4\x10\xc6\xe7\x53\x3c\xc6\x63\x1c\xf1\xe5\x74\x7e\xed\x22\xa5\x92\xeb\x7b\xc2\xed\xf1\x8f\x2e\x3c\x29\xfb\x47\x2f\x9d\xb8\x7d\x0f\xd6\xc1\xb0\x6b\xb3\x46\x13\x23\x1c\xd6\x3d\x83\xfd\x9a\x73\x39\x74\x5f\x13\x59\xb6\x99\xfd\x7b\x33\xd6\xb5\xef\x01\xec\xb5\xad\x5a\x08\x7f\x01\x00\x00\xff\xff\x71\x84\xc8\x20\x39\x01\x00\x00") - -func testE2eTestingManifestsRbdStorageClassYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsRbdStorageClassYaml, - "test/e2e/testing-manifests/rbd-storage-class.yaml", - ) -} - -func testE2eTestingManifestsRbdStorageClassYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsRbdStorageClassYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/rbd-storage-class.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsSampleDevicePluginYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x93\x41\x6f\xdb\x30\x0c\x85\xef\xfe\x15\x44\xee\xaa\xd7\x9d\x06\x5d\xdb\x62\x28\xd6\x75\x45\x83\xee\x5a\x30\xf2\xab\x23\x54\x96\x04\x89\x36\x92\x7f\x3f\x38\x76\x62\xb7\x4d\x97\x65\xba\x45\x79\xfa\xc8\x47\x3e\x73\xb4\xbf\x91\xb2\x0d\x5e\x13\xc7\x98\xcb\xee\xb2\x78\xb5\xbe\xd2\x74\xcd\x68\x82\x5f\x42\x8a\x06\xc2\x15\x0b\xeb\x82\xc8\x73\x03\x4d\x99\x9b\xe8\xa0\x2a\x74\xd6\x40\x45\xd7\xd6\xd6\xab\x15\x84\x47\x45\x8e\x6c\xa0\xe9\xb5\x5d\x41\xe5\x6d\x16\x34\x05\x91\xe3\x15\x5c\xee\x21\x44\xaf\xdf\xb2\xe2\x18\x8f\x93\x8a\x1c\x61\x7a\x5d\x86\x83\x91\x90\x86\x37\x0d\x8b\x59\xdf\xcd\x20\xa7\x30\x44\x82\x26\x3a\x16\x8c\x80\x99\x8f\xfe\xb8\x37\xac\xd3\xb4\xfe\xb0\xf7\x41\x58\x6c\xf0\xe3\xc3\x7d\xaf\xfd\x89\xc9\x86\x64\x65\x7b\xe5\x38\xe7\xfb\x61\x52\x3b\xf7\xca\x87\x0a\xca\x24\x2b\xd6\xb0\x1b\xd5\x12\x1c\xd2\x1c\x45\xa4\x28\xc4\xfe\x2e\x24\x4d\x8b\x9b\x8d\xcd\x92\x17\x87\xf6\xf0\xf2\x02\x23\x9a\x16\xf7\xe1\x66\x03\xd3\x0a\x16\x67\x3e\x5b\x9a\x35\xaa\xd6\x1d\xde\x75\xc1\xb5\x0d\x66\xd5\x87\xed\x1e\xf3\x4d\xb4\x0e\x59\x1e\x58\xd6\xd3\xbc\x88\x62\xff\x9b\xca\x8e\x53\xe9\xec\xaa\xec\xf7\xed\x20\xe5\x1b\x40\x7e\x47\x1f\x6f\x55\x42\x6d\xb3\xa4\xad\x8a\x29\xac\xa0\x9a\x50\xe1\x7f\x6a\x8d\xb8\xe7\x3d\x8e\x3e\x9a\xf9\x17\xec\x24\x33\xc1\x0b\x5b\x8f\x34\x9b\x8b\x6d\xb8\x86\xa6\xda\xa4\x0b\x1b\x76\xa5\x93\x87\x20\x2b\x7c\x85\x12\x64\x51\x3b\x45\x2e\x8f\x25\x47\x5f\x5e\x7c\xa1\x43\xc5\xcf\x3f\xa0\x69\x63\xbe\x9b\x3a\xdc\xfb\x78\xb8\x7b\xfa\x7e\x7b\xff\xbc\xfc\x75\xf5\xe3\xf9\xfa\xf6\x71\xe6\xa0\x63\xd7\x42\xd3\xe2\xc4\x1a\xa6\x44\x64\x98\x76\x17\xd3\xe0\x05\x1b\x99\x4f\xa3\x8f\x70\x67\x1d\x6a\x54\x9a\x24\xb5\xd3\x4a\x86\xac\xfc\x0c\xad\x97\xfc\xb1\xbb\xe3\x46\x88\x9a\x5e\xff\x70\x46\x4a\xce\xcb\xc9\xdf\x0b\xbc\x8f\xc6\xb1\xae\x3f\x41\x0d\xff\xb4\xb1\x62\xc1\x52\x12\x0b\xea\xed\xe0\x5a\xb6\x11\x9a\x1e\x83\x73\xd6\xd7\x4f\x3b\x41\xf1\x27\x00\x00\xff\xff\x4f\x53\x11\xfc\x45\x05\x00\x00") - -func testE2eTestingManifestsSampleDevicePluginYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsSampleDevicePluginYaml, - "test/e2e/testing-manifests/sample-device-plugin.yaml", - ) -} - -func testE2eTestingManifestsSampleDevicePluginYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsSampleDevicePluginYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/sample-device-plugin.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsSchedulingNvidiaDriverInstallerYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa4\x54\x4d\x6f\xe3\x36\x10\xbd\xeb\x57\x0c\xb2\x67\x59\x49\x8a\xa2\x0b\xdd\x8c\x38\x68\x8d\x66\xed\x20\x76\x72\x35\x68\x72\x2c\x11\xa2\x48\x75\x38\xd4\xc6\xff\xbe\xa0\xe4\x78\x25\x6f\x9c\x78\x5b\xdd\x34\x1f\x6f\x3e\xf8\xde\x7c\x81\x75\xa9\x3d\xcc\x04\xd6\xce\xae\x90\xe1\xbb\xf0\xe0\x48\x17\xda\x0a\x63\xf6\x40\xb8\x43\x42\x2b\x51\xc1\x8e\x5c\x9d\x7c\x81\x92\xb9\xf1\x79\x96\x15\x9a\xcb\xb0\x9d\x48\x57\x67\x7f\x3a\x57\x18\xbc\x33\x2e\xa8\x47\x23\x78\xe7\xa8\xce\xa4\xb3\x2c\xb4\x45\x4a\xd1\x16\xda\x62\x2a\xa4\x44\x83\x24\xd8\x91\xcf\xb6\xc6\x6d\xb3\x5a\x78\x46\xca\x54\x57\xdb\x23\x4f\xf6\xa2\x36\x49\x12\x5b\x42\x98\x39\x59\x21\xed\xb4\x41\x10\x56\x81\xe3\x12\x09\xbc\x0b\x24\x11\x76\x8e\x80\x63\xdb\xc7\x54\x10\x84\xa0\xed\xaf\xb4\xe7\xd3\xa2\x09\xa9\xb6\x9e\x85\x31\x48\x49\x22\x1a\xfd\x82\xe4\xb5\xb3\x39\x88\xa6\xf1\x59\x7b\x93\x54\xda\xaa\xfc\xc7\x76\x92\x1a\x59\x28\xc1\x22\x4f\x00\xac\xa8\x31\x07\xdb\x6a\xa5\x45\xaa\x48\xb7\x48\x03\xb8\xde\xef\x1b\x21\x31\x87\x2a\x6c\x31\xf5\x7b\xcf\x58\x27\x00\x46\x6c\xd1\xf8\x08\x01\x50\x7d\xf5\xa9\x68\x9a\xf3\x38\xbe\x41\x19\x43\x3d\x1a\x94\xec\xa8\x4f\xab\x05\xcb\xf2\x61\x80\x73\x01\x12\x40\x68\x94\x60\x5c\x31\x09\xc6\x62\xdf\x27\xf2\xbe\xc1\x1c\x9e\x9c\x31\xda\x16\xcf\x5d\x40\x02\xc0\x58\x37\x46\x30\x1e\xaa\x0d\xa6\x8e\x9f\x19\x15\xfe\x7c\x13\x17\x37\x08\xf0\x36\x6e\xfc\xc4\x6e\xa7\xad\xe6\xfd\xa0\x90\x53\x38\xfd\xc9\x0a\x40\xf8\x4f\xd0\x84\x6a\x16\x48\xdb\x62\x25\x4b\x54\x21\xce\x33\x2f\xac\x3b\x9a\xef\x5f\x51\x06\x8e\xcf\x3b\xc8\xec\x31\x57\x87\xe5\xae\x91\x6a\x3f\x76\xa7\xfd\xae\xef\x5f\x1b\x42\x1f\xc9\x71\xe2\x8f\x11\x15\xee\x73\x90\x91\x5f\x93\xa2\xe3\x5a\x47\xbb\xa2\x1a\x91\xfe\x24\x0b\xc0\x35\xbd\x23\x87\xfb\x57\xed\xd9\x1f\x02\xd8\x75\x09\xc3\x4a\xe9\x20\xf6\xaa\x0f\xbe\x3a\xb8\x4a\xe7\x79\x81\xfc\xdd\x51\x95\x03\x53\xc0\x81\xfd\x71\x3e\x1b\xd9\x5a\x67\x42\x8d\x03\xd4\xfe\xdd\x14\xb6\xc7\xde\xba\x34\xc1\xe5\x70\xc6\x26\xfe\x43\xf6\x23\xec\x2d\xb1\x0d\xa6\x12\x36\xd5\x52\xa5\xb5\x0b\x96\x2f\x41\x29\x5d\x8d\x59\x94\x03\x59\x64\xf4\xd9\x56\xdb\xac\xe7\x43\xd6\xc3\x65\x5a\xaa\x89\x3a\xa9\x74\x60\xcc\x81\x2a\xa9\xd2\x94\xc6\x1a\xff\xaf\xe0\x49\x0d\x72\x8e\x2f\x9f\xe3\x60\x89\x4c\xbc\x7b\xbb\x74\x83\xcd\xea\x5a\x14\x98\x43\x21\x69\xa2\x5d\x77\x6c\x3a\x7a\xfc\x7c\x76\xf2\xf6\xf6\xfa\xf6\xfa\xfa\x8f\xeb\x9b\x5f\x54\x13\x61\x7f\x0c\xfd\xa9\x0e\xd0\xf3\x09\x45\x65\x13\x72\xb8\x9e\xdc\xfc\x7e\xb4\x7a\x94\x81\x34\xef\x63\xeb\xf8\xca\xa3\xf9\x48\xb7\xda\x60\x81\x6a\xc4\x1d\x00\xb4\xed\x30\xee\x6d\x6d\x8b\x97\xf9\x6c\x3e\xdd\xcc\x17\xab\xf5\xf4\xe1\x61\x33\x9b\x3f\x6d\xfe\x5a\xae\xd6\xa3\x06\x5a\x61\x02\x5e\xf2\x16\x9f\x00\xdf\x2d\x17\xeb\xe9\x7c\x71\xff\xf4\x2e\x7a\xf0\x94\x19\x27\x85\x39\x8f\xf9\xf2\xfc\xf0\xf7\x74\xb1\x99\xdf\xcd\xfe\x6b\xa3\xef\xb1\xf4\x83\x0a\x1f\x77\x8c\x2c\x3f\xc3\x7b\x5a\x2e\xd7\x9b\x6f\xcb\xe7\xc5\x3a\xe2\xbd\x8b\x12\x89\x7b\x74\xf4\x1a\xff\x16\x69\x3c\x60\xc1\xa5\x3a\x02\xe8\x04\xf0\xd8\x73\xfc\xec\x42\x3f\x3d\x00\x63\x9c\xb3\x63\xbe\x77\x81\xc6\xa9\x43\xcf\x07\x42\x1d\x27\x0d\x16\x22\xcf\x6b\xf3\xaa\xfa\xea\x27\x07\x81\x36\x22\x78\xcc\x7f\x9b\xdc\x5e\x9d\xa8\xb0\x73\xfc\x1b\x00\x00\xff\xff\x7e\x84\x27\x2d\x24\x09\x00\x00") - -func testE2eTestingManifestsSchedulingNvidiaDriverInstallerYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsSchedulingNvidiaDriverInstallerYaml, - "test/e2e/testing-manifests/scheduling/nvidia-driver-installer.yaml", - ) -} - -func testE2eTestingManifestsSchedulingNvidiaDriverInstallerYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsSchedulingNvidiaDriverInstallerYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/scheduling/nvidia-driver-installer.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsServiceloadbalancerHaproxyrcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x53\xcd\x8e\xd3\x30\x10\xbe\xe7\x29\x46\xe2\x4a\xba\x8d\xb2\xa0\x62\x89\xc3\x6a\x91\xe0\x18\x41\xc5\x7d\xea\x8e\x1a\x6b\x27\x1e\x63\x4f\xc3\x06\xc4\xbb\xa3\xa4\x6d\xea\x5d\xda\x05\x7c\xf4\x37\xfe\xfe\x26\x79\x70\x7e\x6b\xe0\x33\x05\x76\x16\xd5\x89\xbf\x17\xaf\x51\x98\x29\x16\x18\xdc\x57\x8a\xc9\x89\x37\xd0\x57\x45\x47\x8a\x5b\x54\x34\x05\x80\xc7\x8e\x0c\x24\x8a\xbd\xb3\x54\xb2\xe0\x76\x83\x8c\xde\x52\x2c\x00\x18\x37\xc4\x69\x1c\x03\xc0\x10\xae\xce\x01\xf4\x19\x7d\x0a\x64\xc7\x37\xf1\xe0\x25\x19\xa8\x0a\x80\x44\x4c\x56\x25\xfe\x2f\x1b\x80\x52\x17\x18\x95\x0e\x2f\x73\xf3\xe3\xc9\x3d\xfe\x9d\xf9\x4f\x76\x80\x93\xdf\xf1\x58\xf1\x8a\xce\x53\x9c\x19\x4b\x70\x1d\xee\xc8\xc0\xc3\x2a\x2d\x76\x36\x2e\x9c\xdc\x1c\xe9\x79\x63\x96\x8b\x6a\xe6\x9d\xe6\x9a\x3d\x73\x23\xec\xec\x60\xe0\x8e\xbf\xe3\x90\x66\x9c\x5d\x4f\x9e\x52\x6a\xa2\x6c\xe8\x6c\x18\xa0\x55\x0d\x1f\x49\xf3\x2b\x80\x80\xda\x1a\xb8\x69\x09\x59\xdb\x1f\x4f\x21\x89\x6a\x60\xb5\x5c\x55\x4f\xae\x93\x6d\x69\x5c\xe6\xa7\xf5\xba\xc9\x00\xe7\x9d\x3a\xe4\x0f\xc4\x38\x7c\x21\x2b\x7e\x9b\x0c\xd4\xcb\x6c\x42\x5d\x47\xb2\xd7\x19\x7c\x33\x63\x87\xaf\xa3\xc5\x10\xe5\x71\x28\x72\xfd\xac\xf1\x57\x70\xc7\x3c\x85\x38\xf5\x7e\xce\x5c\x9e\x1b\x6d\x8e\xae\xf3\xe0\x92\xf4\xc2\x75\x88\xa2\x62\x85\x0d\xac\xef\x9b\x4c\xc6\xef\x9c\x7f\x9c\x84\x5e\x10\xb8\xbd\xad\xaf\x28\xfc\x93\x46\x37\xa4\x6f\x7c\x9d\xbd\xae\x97\x6f\x2f\xd2\x3f\x03\xae\xd1\x1f\xab\x84\xa4\xa8\x2f\x84\xa8\xde\xd5\x97\x65\x9e\x01\x97\x65\x22\x25\xd9\x47\x4b\xc9\xc0\xcf\x5f\xe7\x1f\x23\xee\xb2\xa5\x95\x50\x96\x6a\x43\x79\xda\xd8\xfb\x29\xb8\x19\x63\xbc\x9e\x7a\x4e\xbd\x35\x63\x97\xbf\x03\x00\x00\xff\xff\x95\xb6\xdf\x12\x58\x04\x00\x00") - -func testE2eTestingManifestsServiceloadbalancerHaproxyrcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsServiceloadbalancerHaproxyrcYaml, - "test/e2e/testing-manifests/serviceloadbalancer/haproxyrc.yaml", - ) -} - -func testE2eTestingManifestsServiceloadbalancerHaproxyrcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsServiceloadbalancerHaproxyrcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/serviceloadbalancer/haproxyrc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsServiceloadbalancerNetexecrcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x90\xcd\xee\xd3\x30\x10\xc4\xef\x79\x8a\x91\x38\x27\x6d\xe9\xa5\xf2\x0d\xc1\xbd\x08\x21\xee\xdb\x78\xdb\x58\x75\x76\x2d\xef\xa6\x85\xb7\x47\x2e\xfd\xe2\xbf\xb7\x8c\xe6\x37\x33\x31\x95\xf4\x8b\xab\x25\x95\x80\xcb\xa6\x3b\x27\x89\x01\x3f\xb8\xe4\x34\x92\x27\x95\xaf\x2a\x5e\x35\x67\xae\xdd\xcc\x4e\x91\x9c\x42\x07\x08\xcd\x1c\x20\xec\xfc\x9b\xc7\xce\x0a\x8f\x4d\xfd\x84\x2f\x66\xcb\xcc\x86\x3f\xba\x60\xa2\x0b\x63\x0b\xd1\xc8\x86\x24\x4d\xab\x18\xf3\x62\xce\x75\xe8\x80\xfa\xaf\xc5\x02\xb6\x1d\xe0\x3c\x97\x4c\xce\x2d\x07\x78\xef\x6a\x97\xe9\xc0\xd9\x1e\x5f\x00\x95\xf2\xaa\x6f\xc2\x63\x42\xbb\x51\xc5\x29\x09\xd7\x27\xd0\x7f\x18\xfc\x88\x49\x33\x9d\x38\xe0\x34\xd6\x21\xe9\xea\xbc\x1c\xb8\x36\x8b\xf5\xfc\x99\x7b\x67\xf3\xfe\xe6\xb0\xd5\x1d\x0c\x9b\x61\xfd\x84\x8b\x56\x7f\x9b\xd4\xbf\x7a\xbf\x6b\xf5\x80\xdd\x7a\xf7\x32\xb7\xc7\xf9\x39\x25\x43\x32\xb8\xe2\xa8\x75\x64\xf8\xc4\xc6\x28\x1a\x6f\x5a\x26\x89\x50\x41\x4c\xc7\x23\x57\x16\xc7\xa4\xe6\x36\xfc\x9f\xb1\xff\xb6\x0f\x58\xec\x06\x23\xea\x55\xae\x54\x23\xa8\x24\x34\xfc\xc4\xde\xf2\xda\xdf\x22\x89\x39\x53\x7c\xe7\x5b\xe0\x7d\xdc\xa6\xfb\x1b\x00\x00\xff\xff\x4a\x68\xfa\x6c\xfb\x01\x00\x00") - -func testE2eTestingManifestsServiceloadbalancerNetexecrcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsServiceloadbalancerNetexecrcYaml, - "test/e2e/testing-manifests/serviceloadbalancer/netexecrc.yaml", - ) -} - -func testE2eTestingManifestsServiceloadbalancerNetexecrcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsServiceloadbalancerNetexecrcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/serviceloadbalancer/netexecrc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsServiceloadbalancerNetexecsvcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\xce\xb1\x6a\x03\x31\x10\x04\xd0\x5e\x5f\x31\x3f\x10\x48\xba\xa0\x36\x7d\x38\xc8\x91\x7e\xad\x1b\x6c\x61\x9d\x76\x91\x96\xc3\xfe\x7b\x73\xf2\x81\x1b\x77\xcb\x1b\x86\x1d\xb1\xfc\xcf\xd6\xb3\xd6\x88\xed\x2b\x5c\x73\x5d\x22\xfe\xd8\xb6\x9c\x18\x56\xba\x2c\xe2\x12\x03\x50\x65\x65\x44\xa5\xf3\xc6\x14\x80\x22\x27\x96\xbe\x27\x80\x98\xbd\xa2\x6e\x4c\x3b\xcf\x77\x63\xc4\xaf\x2e\x9c\xb4\x79\x00\x4c\x9b\x8f\xc2\xc7\x38\x23\xbe\x3f\x47\xdb\xa5\x9d\xe9\xd3\x41\x07\x5a\x53\xd7\xa4\x25\x62\xfe\x99\x86\x3c\x07\x5c\xdc\x2d\x00\x9d\x85\xc9\xb5\xbd\xf9\xff\x08\x00\x00\xff\xff\x99\xb6\xda\xa2\xd2\x00\x00\x00") - -func testE2eTestingManifestsServiceloadbalancerNetexecsvcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsServiceloadbalancerNetexecsvcYaml, - "test/e2e/testing-manifests/serviceloadbalancer/netexecsvc.yaml", - ) -} - -func testE2eTestingManifestsServiceloadbalancerNetexecsvcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsServiceloadbalancerNetexecsvcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/serviceloadbalancer/netexecsvc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsServiceloadbalancerNginxrcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4c\x8e\x4b\x4e\xc6\x30\x0c\x84\xf7\x39\x85\x2f\x50\xf8\xbb\x43\xde\x72\x01\xc4\x82\xbd\xdb\x5a\xad\x45\xe2\x58\x8e\x85\xe0\xf6\x28\x94\x3e\x66\x37\xc9\x37\x33\x26\x93\x0f\xf6\x26\x55\x11\xbe\xc6\xf4\x29\xba\x20\xbc\xb3\x65\x99\x29\xa4\xea\x6b\xd5\xf0\x9a\x33\x7b\x2a\x1c\xb4\x50\x10\x26\x00\xa5\xc2\x08\xe5\x67\xd0\x55\xf4\x3b\x35\xe3\xb9\x3f\xfb\x1e\x6c\x08\x63\x02\x08\x2e\x96\x29\xb8\xff\x00\xdc\xe3\x5d\x99\x26\xce\xed\x70\x00\x64\x86\xb0\xd7\x75\x7b\x54\x76\xcd\x55\x83\x44\xd9\x4f\x7c\xf8\xbf\xe0\x8f\xdf\x22\xac\x9d\x3d\x52\x68\x65\x84\xc9\x9c\xda\x46\x1a\xdb\xf3\x05\xe1\xf8\xf4\x38\x41\xab\x1e\xb7\xfd\xe1\x9a\x79\xab\x1e\x08\x2f\x8f\xf4\x1b\x00\x00\xff\xff\xdc\xf9\xe9\xab\x1e\x01\x00\x00") - -func testE2eTestingManifestsServiceloadbalancerNginxrcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsServiceloadbalancerNginxrcYaml, - "test/e2e/testing-manifests/serviceloadbalancer/nginxrc.yaml", - ) -} - -func testE2eTestingManifestsServiceloadbalancerNginxrcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsServiceloadbalancerNginxrcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/serviceloadbalancer/nginxrc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsServiceloadbalancerNginxsvcYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x8c\x41\x0a\x02\x31\x0c\x45\xf7\x39\xc5\xbf\x80\xa0\x3b\xc9\xd6\x0b\x08\x8a\xfb\xd8\x09\x5a\xec\x34\xa1\x0d\xc5\xe3\xcb\x54\x77\xee\x3e\xef\x7d\x9e\x78\xbe\x69\xeb\xd9\x2a\x63\x1c\xe8\x95\xeb\xc2\xb8\x68\x1b\x39\x29\xad\x1a\xb2\x48\x08\x13\x50\x65\x55\x46\x7d\xe4\xfa\xee\x23\x11\x50\xe4\xae\xa5\x6f\x0a\x10\xf7\x9f\xa3\xee\x9a\x36\xe8\xd6\x62\xda\xdd\x9c\x8c\xe3\x7e\x5e\xbd\x59\x58\xb2\xc2\xb8\x9e\xce\x93\x7c\xcb\xcf\x08\x27\xa0\x6b\xd1\x14\xd6\xfe\xba\xf4\x09\x00\x00\xff\xff\x55\x0d\xe9\x5c\xaa\x00\x00\x00") - -func testE2eTestingManifestsServiceloadbalancerNginxsvcYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsServiceloadbalancerNginxsvcYaml, - "test/e2e/testing-manifests/serviceloadbalancer/nginxsvc.yaml", - ) -} - -func testE2eTestingManifestsServiceloadbalancerNginxsvcYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsServiceloadbalancerNginxsvcYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/serviceloadbalancer/nginxsvc.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetCassandraControllerYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x54\x41\x6f\xd3\x4c\x10\xbd\xe7\x57\x8c\xfa\x5d\xbf\xb8\x4e\xa1\x82\xee\xcd\x6a\x8c\xa8\x50\x5a\x2b\x41\x05\x71\x89\xa6\xeb\x49\xba\x74\x77\x67\xd9\x5d\x1b\x2a\xc4\x7f\x47\x8e\x69\xe2\xd8\x2e\xe2\xd0\xb9\xf9\xcd\xbc\x37\xcf\xcf\x23\xa3\x53\xb7\xe4\x83\x62\x2b\xa0\x9e\x4d\x1e\x94\x2d\x05\x2c\xc9\x69\x25\x31\x2a\xb6\x97\x6c\xa3\x67\xad\xc9\x4f\x0c\x45\x2c\x31\xa2\x98\x00\x58\x34\x24\x40\x62\x08\x68\x4b\x8f\x13\x80\xff\xe0\xe3\x3d\x81\xc6\x3b\xd2\x01\xbe\x2b\xad\xe1\x8e\x00\x9d\xd3\x8a\x4a\xc0\x2a\xb2\xc1\xa8\x24\x6a\xfd\xb8\x1b\xde\x78\x36\x10\x0f\x0c\x65\x77\x4f\x8e\x4b\x88\x64\x9c\xc6\x48\xff\x83\xda\x80\xe5\x08\x81\xe2\x8e\xd3\x8e\x36\xeb\x9b\x27\x74\xae\xeb\x20\x38\x92\x4d\xcb\xb7\xde\x83\x80\xb3\xbd\xab\x40\x9a\x64\x64\xff\xf2\xbe\x92\x1d\xe9\x49\xbf\xb5\x36\x62\x0e\xf6\xe4\x76\xa4\x1b\x65\x53\xdd\x37\x6b\x6a\x40\x07\x78\x7a\xbf\xa6\x24\xdb\x88\xca\x92\xef\x50\xa6\x20\xd9\x18\xb4\xe5\x01\x6a\xe1\x53\x5f\xd9\x24\xdc\x77\x50\x4f\x81\x2b\x2f\x29\x1c\x8f\x6a\x65\x54\xec\x61\x00\xd2\x55\x02\xd2\xe4\xbc\x03\x93\xad\xfb\x4b\xda\x7b\x58\x64\x9f\xd7\xef\xf3\xac\x58\xaf\xae\xbe\xe4\x3d\x9d\x1a\x75\x45\x02\xce\x67\x67\x8b\x51\xee\x8e\x77\x9d\x7f\x7a\x9e\x3a\x4b\xd3\x71\xea\x65\xb6\x5a\x65\xd7\xf3\x65\xb6\x5e\xe5\xf9\x7c\x5d\x2c\x6f\x6e\xaf\xe6\xf9\x72\x5c\xe5\x44\x71\xf2\xf0\x36\x24\xfb\x74\x93\x0f\xd5\x1d\x79\x4b\x91\xc2\x8a\xa8\x2c\x3c\xd7\xaa\x24\x7f\x32\xba\xaa\xb8\x99\xaf\xaf\xb3\x45\xbe\x2a\xb2\xcb\x51\x9b\xef\x3c\x9b\x7e\x84\x00\x1b\x45\xba\x5c\xd2\x66\xd8\xf9\xd3\x2b\x30\xde\x8b\xfd\x59\x24\xcd\xb2\xe0\x50\xd2\xb3\x26\xae\x8a\x17\xdf\x1e\x22\xc6\x2a\x24\x8e\xcb\x23\x71\x65\x70\x4b\x02\xb6\xd2\x27\x8a\x4f\xb7\xcc\x5b\x4d\xd3\x80\xc6\x69\x0a\xa7\xfb\x14\x45\x3d\x7b\xd5\x21\x0d\xff\x0f\x4f\xe5\xd8\xf7\x8f\x6c\x7a\x38\xe8\x82\x7d\x14\xf0\x26\x4d\xd3\x9e\xd7\x56\x50\xd9\xe8\x71\x6a\xb9\xec\x07\x33\x14\x98\x8d\x0a\x44\x1d\xa6\xff\x2c\x32\xbb\xb8\x18\x15\xf9\x6a\x7e\xfc\x9d\x79\x91\xbe\x3e\x1b\x65\xca\x6f\xba\x83\xd7\xac\x2b\x43\x0b\xae\xec\x30\x11\xd3\xa0\xed\x77\x39\x84\xbc\x6e\x8e\x63\x54\xb8\xd3\x68\x55\x8f\xfe\x0c\x83\x99\xa6\xc8\xb8\xf8\x38\x57\x5e\xc0\xcf\x5f\x93\xc9\xef\x00\x00\x00\xff\xff\xa4\xa9\x50\x3c\x08\x06\x00\x00") - -func testE2eTestingManifestsStatefulsetCassandraControllerYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetCassandraControllerYaml, - "test/e2e/testing-manifests/statefulset/cassandra/controller.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetCassandraControllerYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetCassandraControllerYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/cassandra/controller.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetCassandraPdbYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4c\xcc\x3d\xae\xc2\x30\x10\xc4\xf1\xde\xa7\x98\x0b\x3c\x3d\x85\xd2\x1d\x88\x92\x82\x8a\x7e\x6c\xaf\x60\x85\x3f\x56\xb6\x13\x89\xdb\xa3\x88\x26\xf5\x7f\xe6\x47\xd3\x87\xf4\xa1\xad\x7a\x58\xcb\x1a\x3f\xff\xdb\x12\x64\x72\x71\x6f\xad\xc9\xe3\xde\xd2\x55\x47\x5f\x6d\x6a\xab\x97\x35\x3d\x65\xba\x22\x93\x89\x93\xde\x01\x95\x45\x3c\x22\xc7\x60\x4d\x9d\x7f\x96\x82\x03\x32\x83\xe4\xb1\x77\xc0\x52\x38\x0c\xdc\x30\x89\x7b\x28\x5a\xcf\x1b\x35\x33\x64\xf1\x38\x39\x60\x48\x96\x38\x5b\xff\xdd\x0a\x67\x7c\xdd\x0e\x0e\x40\xb3\xa3\xf4\x0d\x00\x00\xff\xff\x20\x15\x65\x49\xbc\x00\x00\x00") - -func testE2eTestingManifestsStatefulsetCassandraPdbYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetCassandraPdbYaml, - "test/e2e/testing-manifests/statefulset/cassandra/pdb.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetCassandraPdbYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetCassandraPdbYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/cassandra/pdb.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetCassandraServiceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x8d\x31\xca\x42\x31\x10\x84\xfb\x3d\xc5\x5c\xe0\x87\x5f\xb1\x71\x6f\x60\x23\x82\x60\xbf\x26\x53\x04\xf3\x92\xb0\x1b\xdf\xf9\xe5\x89\x85\x85\xdd\xcc\x30\x7c\x9f\x8d\x72\xa3\x47\xe9\x4d\xb1\xee\xe4\x51\x5a\x56\x5c\xe9\x6b\x49\x94\x85\xd3\xb2\x4d\x53\x01\xaa\xdd\x59\x63\x4b\x80\x8d\xa1\x48\x16\x61\x2d\xbb\x09\xd0\x6c\xe1\xf7\x12\x83\x69\xbb\xa6\xfa\x8c\x49\x3f\x5d\x14\xe7\xde\x28\xc0\xe8\x3e\x3f\x94\xbf\x77\x51\x1c\xff\x0f\x7b\x01\x82\x95\x69\x76\xff\xa9\x78\x05\x00\x00\xff\xff\x9d\xcf\x54\x9b\xa7\x00\x00\x00") - -func testE2eTestingManifestsStatefulsetCassandraServiceYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetCassandraServiceYaml, - "test/e2e/testing-manifests/statefulset/cassandra/service.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetCassandraServiceYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetCassandraServiceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/cassandra/service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetCassandraStatefulsetYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x56\xdf\x6f\xe3\x36\x0c\x7e\xcf\x5f\x41\x64\x7b\xd8\x80\xd9\x49\xee\x76\xd8\xea\xb7\x20\xc9\x6e\xc5\xf5\x47\x10\x77\xbb\x61\xc3\x10\x30\x12\xdb\x68\x95\x25\x9f\x48\x67\xcd\x7f\x3f\xc8\x49\x5c\xbb\x71\x8b\x7b\x98\x9f\x8c\x8f\xfc\xc8\x8f\x94\x08\x0a\x4b\xf3\x3b\x05\x36\xde\x65\x80\x65\xc9\xa3\xdd\x64\xf0\x68\x9c\xce\x20\x17\x14\xba\xaf\x6c\x4e\x32\x28\x48\x50\xa3\x60\x36\x00\x70\x58\x50\x06\x0a\x99\xd1\xe9\x80\x03\x2e\x49\x45\x9c\x29\xec\x8c\xa2\x9b\x17\x66\x80\x40\xa5\x35\x0a\x39\x83\xf7\xb5\x9b\x25\x25\x3e\x44\x0a\x40\x81\xa2\xb6\x57\xb8\x21\xcb\x07\x00\xa2\x8a\x2e\x5f\xa8\x28\x2d\x0a\x1d\x19\x2d\x29\xf1\xb3\x1d\x72\x0f\x1d\xe0\xa4\x30\x7e\xca\x3b\x41\xe3\x28\x34\x94\xe4\xac\xa2\x53\x28\x53\xe0\x03\x65\xf0\xa0\x42\x6a\xfc\xe8\xc1\xfb\x07\x4b\x09\x63\x51\x5a\xe2\x51\xe3\x9e\xed\x26\xef\xbb\x94\x65\x65\xed\xd2\x5b\xa3\xf6\x19\x4c\xed\xbf\xb8\xe7\xc6\x5e\xfa\x20\x2d\xb1\xc9\xb3\x9e\xa5\x0f\x92\xc1\x4f\xe3\xf1\xb8\xb1\x9e\x7a\x6d\x9c\x04\x4c\x9c\xd7\xf4\x26\x71\x72\x46\x14\xcb\xc9\x57\x91\x27\x17\x17\x67\xe4\x7f\x8a\xa7\xd7\x19\x17\xe3\x1f\xdf\x9d\x31\xd4\x17\xdb\x60\x81\xd8\x57\x41\x51\xab\xd8\x08\x7e\xa9\x88\xa5\x83\x81\x2a\xab\x0c\x86\xef\xc7\xe3\x62\xd8\x86\x0b\x2a\x7c\xd8\x67\x30\xf9\x68\x1a\x98\x49\x55\xc1\xc8\x7e\xe6\x9d\xd0\x93\xb4\xc3\x28\x2c\x71\x63\xac\x11\xd3\x4d\x09\x80\x5a\x77\x81\x58\xce\xe5\x72\xb6\xbe\xba\x9d\x7d\x6a\x0c\xd6\xdc\x93\xda\x2b\x4b\x6d\xdf\x32\x50\x2e\xbe\xec\xd2\xe9\xe9\xf9\x36\x35\xd9\x7d\x51\xa0\xeb\xc9\x33\xda\x18\x37\xe2\xed\x19\x9e\xa8\x33\x28\x1e\x91\x78\x6f\x41\x07\x34\xae\x31\x93\xdb\xb5\xc3\x9e\x6e\xeb\xf5\xf4\x8f\xf5\xaf\x8b\xe9\x72\x9d\x5f\xfe\xb9\xe8\xc4\xda\xa1\xad\x28\x83\x0f\x93\x77\xd7\x3d\xbc\x9a\x73\xb3\xf8\xfc\x1a\x6d\x32\x1e\xf7\xd1\x96\xb7\xf3\xf5\xcd\xf4\x7a\x91\x2f\xa7\xb3\x1e\xde\x2f\xc1\x17\x2f\x8b\xbf\x37\x64\xf5\x8a\xee\x5f\xe2\x47\xcb\x12\x65\x9b\x35\xd3\x9c\xc6\x34\x5c\xa2\xa2\x9e\xe4\xb3\x69\x9e\x4f\x6f\xe6\xab\xe9\x3a\x5f\x2c\xe6\x79\x9f\xec\x61\x33\x8e\xc9\x38\x6d\xfe\xd3\x6f\xbf\xeb\x08\xff\x3e\xe5\x9d\x4a\x95\xad\x58\x28\xa4\xd6\x2b\xb4\xc3\x37\xf3\xcd\xae\x7e\xcb\xef\x16\xab\x3a\x42\x6f\xda\x4f\x3f\xcf\xa9\xf0\x6f\x07\x99\xcf\x7a\xa9\xf3\xd9\x24\xf9\x1a\xfa\x6a\xda\xba\xa6\xed\x00\x2b\x54\x8f\x6f\x85\x88\xa5\x5f\x2e\xff\xc7\xc3\x62\x41\xa9\x38\x2d\xbd\x6e\x85\x0d\x84\xda\x38\x62\x5e\x06\xbf\xe9\x4c\xcf\xf9\xa0\xf4\x8e\xc9\x71\x48\x36\xf8\x62\x4c\xce\x86\x24\x81\x51\x4c\xb6\x4f\xca\x98\x29\xed\xb8\x1b\x67\xc4\xa0\x9d\x93\xc5\x7d\x4e\xca\x3b\xcd\x19\x4c\x3e\xb4\x3c\xc4\x14\xe4\x2b\x69\x8c\xcf\xb6\x6f\xe0\x6e\x4b\x4c\xb0\xf3\xb6\x2a\x08\x0a\x5f\x39\x61\xc0\x40\x50\xc6\xcd\xc8\x42\x4e\xd2\xe8\xb3\xaf\x41\x6b\x1e\x09\x8c\xb3\xc6\x11\x28\x8b\xa6\xe0\x1f\x5a\xa1\x36\x95\x80\xf3\x02\xf4\x84\x4a\xec\x1e\x36\xa4\xb0\x62\x02\xd9\x52\x7d\x2c\x0c\x8e\x48\x83\xf8\xc3\xea\x6b\xfc\xbc\x23\xf0\xf7\xad\x40\x91\xc0\xc7\x15\x0c\xa5\xd7\x47\x79\x9c\x36\x3e\x07\xe0\xba\x96\xdb\x5e\x29\x2f\xd6\x59\x12\xe7\xab\xd5\x88\xba\xbe\xc3\x81\x3e\x2f\xb1\xf5\xd1\xe9\xd4\x8b\x58\xa8\xf2\x6e\x47\x41\x0e\x6a\x8f\xcd\x39\x14\x0c\x9b\x7d\xad\x2f\x2e\x85\xe0\xad\xa5\x50\x53\xd1\xe9\x43\x74\xd2\x80\x52\x7b\x94\x28\x5b\x86\x82\x9c\x18\xef\x22\xbc\xf1\x3b\x4a\x6b\x6f\xed\xeb\x46\x1d\x9b\xc3\xb1\xa7\x50\x06\xaf\x2b\x15\x7d\xa1\x72\x62\x2c\x30\x6b\xf8\x38\x5b\x2c\x9b\x83\x98\x1b\x7e\x04\x1f\xc0\xcb\x96\x42\x6d\x2e\xf5\xe0\xd4\x8b\x59\x54\x77\x77\x7c\x2e\xd4\x3d\x49\xce\xde\x0b\xaf\x76\xa7\xfd\x4a\x40\xa5\x88\xf9\xda\x6b\xe2\x0c\xfe\x82\xe1\x8a\x50\x7f\x0e\x46\xe8\xd6\x29\x1a\xc2\xdf\x83\xd3\xdd\x3f\x5b\x72\x7d\x2b\x8e\xc5\x87\xfa\x25\x11\x77\xd9\xe0\xbf\x00\x00\x00\xff\xff\xe4\xd5\x43\x1f\x72\x09\x00\x00") - -func testE2eTestingManifestsStatefulsetCassandraStatefulsetYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetCassandraStatefulsetYaml, - "test/e2e/testing-manifests/statefulset/cassandra/statefulset.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetCassandraStatefulsetYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetCassandraStatefulsetYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/cassandra/statefulset.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetCassandraTesterYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x52\xbb\x6e\x1b\x31\x10\xec\xef\x2b\xf6\x07\xa8\x87\xd3\x08\xec\x6c\x08\x48\xe3\x42\x80\x81\xf4\x7b\xe4\x40\xb7\x30\x8f\x24\xc8\xd5\x05\x97\xaf\x0f\xce\xb1\x24\x9e\xad\x2a\x5b\x72\x38\xcb\x19\xce\x70\x96\x5f\x28\x55\x52\xb4\xc4\x39\xd7\xed\xb4\xef\xde\x25\x7a\x4b\x47\xe4\x90\xe6\x11\x51\xbb\x11\xca\x9e\x95\x6d\x47\x14\x79\x84\x25\xc7\xb5\x72\xf4\x85\x8d\xa2\xaa\xa9\x28\x13\x4a\x57\x33\xdc\x72\xa7\x20\x07\x71\x5c\x2d\xfd\xe8\x88\x2a\x02\x9c\xa6\xb2\x20\x44\x23\xab\x1b\x5e\xb9\x47\xa8\xff\x0e\x68\x79\xd7\x52\xbb\x87\x48\x31\xe6\xc0\x8a\x4f\x4e\xf3\xfe\x32\x61\x45\x7f\xb8\x80\xe8\x2a\x66\x19\x97\xa2\xb2\x44\x94\x1b\xc9\x7c\x1a\xf9\xca\x5a\x46\x46\x3e\xc3\xd2\xfb\xa1\x6e\xce\xae\x6c\x24\x6d\xef\x76\xf1\x84\x0f\xcb\x76\xb7\xd9\xaf\x09\xa7\x4b\x08\xa7\x14\xc4\xcd\x96\x9e\xc3\x6f\x9e\xeb\x0d\xcf\xa9\x68\x23\xd7\xdc\xf5\x9c\x52\x51\x4b\x87\xdd\x61\x77\x43\x0b\xd8\x4b\x44\xad\xa7\x92\x7a\xdc\x59\x44\x83\x6a\xfe\x09\x6d\x8f\x88\x32\xeb\x60\x69\x3b\x80\x83\x0e\x7f\xd6\xd0\xf7\xe5\x44\x12\x45\x85\xc3\x11\x81\xe7\x37\xb8\x14\x7d\xb5\xf4\xd4\x5c\xc8\x28\x92\x7c\x03\x19\x63\xba\xb6\x26\xf9\xc3\xe4\x76\xda\xf7\x50\xbe\xb6\xe5\x94\xfc\x51\x6a\xb9\x64\x95\x14\x5f\x2e\xfe\x8c\x47\xb5\x59\x7e\x0e\xc5\x64\xdf\x77\xeb\x14\xb3\xef\xd7\x59\x5c\xd3\x1b\x25\x3e\x4f\x2c\x81\xfb\x00\x4b\xfb\xff\xaa\xd3\x57\x03\xb7\x8a\xbf\xa1\x4c\xe2\xb0\x12\xda\xaa\x7a\xd0\xab\xef\xad\xb9\x2a\x6d\x42\x36\xeb\xaf\x5f\x2b\x7e\xd4\xf6\x39\xc3\xd2\x6b\x62\xff\xc2\x81\xa3\x43\xe9\xfe\x06\x00\x00\xff\xff\x6a\x4a\xab\x39\x98\x03\x00\x00") - -func testE2eTestingManifestsStatefulsetCassandraTesterYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetCassandraTesterYaml, - "test/e2e/testing-manifests/statefulset/cassandra/tester.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetCassandraTesterYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetCassandraTesterYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/cassandra/tester.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetCockroachdbServiceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x94\x41\x6f\x24\x45\x0c\x85\xef\xfd\x2b\x9e\x66\x0f\x7b\xd9\xcc\x86\x95\x80\x55\xdf\x10\x70\xc8\x25\x8a\x08\xe2\x8a\xdc\x55\x9e\xa9\x22\xd5\x76\xab\xec\x9e\x61\xfe\x3d\xaa\xea\x99\x80\x42\xf6\xda\xf6\xfb\x5c\xb6\x9f\x9b\x96\xfc\x07\x57\xcb\x2a\x23\x4e\xdf\x0d\x2f\x59\xe2\x88\x67\xae\xa7\x1c\x78\x98\xd9\x29\x92\xd3\x38\x00\x1f\xf0\x7b\xca\x06\xdb\x42\x50\x29\x17\xf0\xdf\xd9\xdc\xe0\x8a\x50\x99\x9c\xf1\xcb\xe3\x33\x58\xbc\x66\x36\x1c\xb4\x82\x29\x24\x2c\x1a\x91\x05\x9e\x18\xe6\xe4\x7c\x58\x4b\xe7\x19\x3b\x6c\x0d\x09\x9e\xc8\x5b\xf8\x82\x40\x82\xca\xa6\xe5\xc4\x9b\x56\x3d\x71\xfd\x68\x78\x78\x02\xc5\x58\xd9\x8c\x6d\x8f\x07\x47\x54\x36\x88\x7a\x27\x5d\xab\x13\x8a\x52\xbc\x9b\xa8\x90\x04\x8e\xf8\xb9\xac\xe6\x5c\x9b\x56\x22\x2c\xe9\x5a\x62\xd3\x60\x62\xac\xc6\x11\x31\x57\x0e\x5e\x2e\x98\x2e\x08\x25\xb3\xb8\x75\x5e\x16\xcc\x6a\x8e\x90\x6b\x58\x67\xf3\x86\xb3\xfd\x00\x08\xcd\x3c\x22\x68\x78\xa9\x4a\x21\xc5\x69\x00\x0a\x4d\x5c\xac\x8d\x08\xa0\x65\x79\x1b\x26\x11\x75\xf2\xac\x72\xcd\xf9\x80\x5f\x85\xa6\xc2\xa0\xd5\x75\x26\xcf\x01\xb3\x4a\x76\xad\x59\x8e\xd0\x03\xa8\x14\x64\xb9\x56\xc5\x39\xb1\xe0\xa9\xea\xcc\x9e\x78\x35\x64\x43\x5d\x45\x5a\xee\x75\xa8\x61\x6b\x73\xdf\xe9\xcb\x6b\xe6\x3e\xeb\x67\x0b\x95\x16\x1e\xb1\xf3\xba\xf2\xee\x9d\x84\x85\x3c\x8d\xd8\xfd\xd9\x16\xb3\xda\xe7\x13\x55\x7b\x37\x4d\xab\x8f\xd8\x7d\xbd\xff\x7a\xbf\x1b\x6c\xe1\xd0\x5a\x69\x1f\x7b\x4f\x77\xd8\xe2\x5f\x7e\xf8\xf2\xfd\x8f\x5d\xed\x54\x8f\xec\x4f\x6f\xbe\x6e\xd3\x3b\xd6\x25\xfc\x47\xd4\x98\xff\xd3\xbc\x7e\xdc\x24\xc9\x7d\x19\x70\x6b\xf4\xe1\x69\xc4\xa3\x0a\x0f\x80\x71\xe1\xe0\x5a\xbf\x39\xfd\xab\x6b\xb3\x41\x98\x23\xc7\xe6\xd5\x99\x5e\xb8\x0f\x6e\x61\xae\x77\x87\x2c\x91\x2b\xce\x5a\x5f\x5a\xd3\x0b\xd7\x72\xe9\x7e\x71\x45\xe2\xb2\x80\x4e\x9a\x63\x47\x71\x3c\x32\x02\xd9\xb6\x95\xca\xaf\x5b\xc2\x3d\x82\xce\x6c\x58\x17\xd0\xc1\xb9\xa2\xa8\xf5\x0d\xb9\xa1\x1d\x50\x07\xb6\x17\xb4\x63\xe9\xac\xc8\x21\x47\x6e\x9c\xe6\x70\x64\xbf\xf9\xf3\xd5\xcb\xc2\xe7\x5b\xc7\xd0\x0a\xaf\x97\xf6\xa4\xbf\x34\x0b\x48\xb6\xd3\xcb\x72\xec\x30\x15\xde\xe3\xe1\xd0\x28\x9b\xdc\xde\xe8\xbb\x89\xfe\xad\x91\xe8\xc4\x9d\xc4\xf1\x3d\xd6\x27\x9c\xf9\x63\x04\x4b\x6c\x0d\x9d\xb3\x27\xf8\x59\x61\xbc\x50\x6d\x6f\xbb\x52\x0d\x25\x9b\x73\xb7\xe2\x76\xc0\x30\x9a\xf9\xf6\x8b\xd8\x46\x26\x71\xd1\x2c\xfe\x09\xe7\x94\x43\xc2\xb9\xd7\x9f\x18\x27\xae\x17\x4c\x14\x9b\x6b\x97\x75\x2a\xd9\xd2\xa3\xfa\x6f\x4c\xf1\xf2\xd3\xed\xd0\x47\x34\xdb\x0e\xff\x04\x00\x00\xff\xff\x6a\xf0\xa9\x28\xa3\x04\x00\x00") - -func testE2eTestingManifestsStatefulsetCockroachdbServiceYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetCockroachdbServiceYaml, - "test/e2e/testing-manifests/statefulset/cockroachdb/service.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetCockroachdbServiceYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetCockroachdbServiceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/cockroachdb/service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetCockroachdbStatefulsetYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x57\xdf\x6f\xdb\xc8\xf1\x7f\xf7\x5f\x31\x5f\x7d\x0f\xb0\xdd\x9a\x92\x9c\xe2\xd2\x54\x80\x1f\x5c\xc7\x0d\x8c\x36\x8e\x61\x05\x77\x0f\x69\x90\x5b\xed\x0e\xc5\xad\x96\x3b\xbc\xdd\xa1\x14\xb5\xe9\xff\x5e\xcc\x92\xa2\x48\xca\x39\xa0\x40\xe5\x17\x93\x3b\xf3\xd9\x99\xcf\xfc\xa4\xaa\xec\x4f\x18\xa2\x25\xbf\x00\x55\x55\x71\xb6\xbd\x3e\xdb\x58\x6f\x16\xb0\x64\xc5\x98\xd7\x6e\x89\x7c\x56\x22\x2b\xa3\x58\x2d\xce\x00\xbc\x2a\x71\x01\x9a\xf4\x26\x90\xd2\x85\x59\x9d\xc5\x0a\xb5\x9c\x44\x0c\x5b\xab\xf1\x31\x09\x4c\x7a\x12\x93\x33\x80\x80\x95\xb3\x5a\xc5\x05\xfc\x21\x89\x3a\xd4\x4c\x41\xd4\x00\x4a\xc5\xba\xf8\x9b\x5a\xa1\x8b\xcd\x0b\x10\x5b\x86\x97\x00\x30\x96\x95\x53\x8c\xad\x4e\xcf\x24\xf9\xb9\x81\xfa\x8b\x00\x00\x07\x4b\xe5\xf7\xff\xf0\xe0\x2d\x83\x26\xcf\xca\x7a\x0c\x11\x54\x40\x08\xb5\x07\xf2\x6e\x0f\xe4\x35\x82\xf5\xc0\x05\x82\xb3\x39\xb2\x2d\x11\x28\x07\x05\x15\x99\x2b\x58\x61\x4e\x01\x3b\x28\xcb\xe7\x11\x22\xab\xc0\x68\xa0\xae\x20\xa7\x90\x34\x73\x1b\x22\x83\xe8\x4e\xe1\x81\xa1\x50\x11\x98\x00\xbf\x5a\x86\x58\x6b\x8d\x31\xe6\xb5\x73\xfb\x0e\xa7\x81\x4d\xaa\x15\x99\xf3\x08\xa5\xb2\x7e\x6c\xa3\x72\x8e\x76\x68\x04\x29\x5d\x39\xed\xd4\x3f\x16\x36\x42\xa5\x02\x5b\x5d\x3b\x15\xc0\x0e\x3c\x04\x43\x18\x41\xc1\xdb\xc7\x25\x38\xa2\x4d\x6b\x27\x71\x81\x41\xae\x8b\x60\x7d\x07\x25\x26\x44\x64\xb9\xa4\x40\x57\x81\x41\xc6\x50\x5a\x8f\xb0\x2b\x30\x69\x50\x00\x4f\x0c\x0a\xb4\xab\x23\x63\x00\xe5\x02\x2a\xb3\x17\xf7\x22\xc7\xa3\x55\x0f\x39\x28\xbf\xef\xdf\x93\x24\xae\x40\x8c\x0b\xa8\x38\x59\x95\x5b\xd7\x11\xde\xc5\x2d\x93\x10\x77\x40\xc6\x86\x94\x35\x7b\xb1\xaa\x52\x31\x02\x17\x8a\xc1\xfa\x9c\x42\xa9\xd8\x92\x07\xe5\xc8\xaf\xe5\x38\x51\x18\x6c\xa9\xc2\xbe\xc7\x80\xc8\x77\x70\x6d\x34\x0c\x6a\x6b\xc4\x2d\x25\x5c\x95\xa5\xf2\x26\x73\xe2\x68\xee\xd4\x3a\x49\xd4\x31\x79\xed\x1b\xba\xad\x5f\xc3\xdd\xc1\xc0\xb7\x7f\x1e\xb1\x9f\x92\xa7\x54\xcc\x12\xad\xa4\xa4\xda\x50\x56\x52\x67\x91\xd1\x33\x6c\xc9\xd5\x25\x82\x8d\x80\x65\xc5\x7b\xc8\xc0\xe6\xc2\x46\xa1\xe2\xd1\x59\xc5\x0a\xf2\x40\xa5\x00\x04\xdc\x5a\xaa\x85\x38\xd4\xb5\x38\x7a\xd5\xb8\x9e\x84\x76\xd6\x39\x50\x6e\xa7\xf6\x11\x56\x28\xd6\x9a\x83\x51\x92\x00\x77\x5d\xf6\x1c\x52\x3f\x6b\x8b\x78\x45\xc4\x91\x83\xaa\xba\xaa\xb1\xa5\x5a\x0f\xab\x7b\x76\x8c\xc5\xe6\x4d\xcc\x04\x70\x31\x9f\x5e\x0f\x35\x9e\x6a\xe7\x9e\xc8\x59\xbd\x5f\xc0\x43\xfe\x48\xfc\x14\x30\xa2\xe7\x63\x35\x86\x75\xaf\x36\x33\x98\x64\xe4\xb3\xc4\xe6\xcd\xec\xf0\xdf\x34\x16\x93\x81\x48\xdb\x4f\x6e\x46\x9d\xa4\xf9\xa1\xdf\xf6\x01\x1b\x87\x9e\x3e\xbc\xfd\xf2\x78\xfb\xfe\x7e\xf9\x74\x7b\x77\xdf\x9d\x02\x6c\x95\xab\xf1\x2f\x81\xca\x45\xef\x25\x40\x6e\xd1\x99\x67\xcc\x87\x6f\xdb\xf7\x4f\x8a\x8b\x45\xd7\x66\xa6\x72\x41\xac\x94\xc6\x4e\xb6\x09\xe2\x7b\xaa\x3d\xc7\x53\x53\x44\xc9\xd8\xd0\x43\x2e\x45\xb2\x41\x9d\x1c\x59\x9d\x0d\x73\xfd\xe0\xa0\xca\x73\xa1\x7a\x7f\x04\xae\xc8\xdc\x7a\xb6\xb7\x27\x07\x20\xe9\x91\x63\x08\x68\xde\xd6\xc1\xfa\xf5\x52\x17\x68\x6a\x67\xfd\xfa\x61\xed\xa9\x7b\x7d\x7f\xc8\x9d\xbe\x6a\x06\x3b\xb4\xeb\x82\x17\x70\x3d\x9f\x0f\x68\x90\xfb\xda\xbb\x3e\x62\x28\xc7\x1c\xa5\x7e\xbb\x1c\xb4\xf1\xfe\x2f\xb5\xf4\xfb\xaf\x55\xc0\x28\xc3\x25\x9e\x4a\x64\xb0\xc1\x7d\x1a\x3a\x27\x47\x00\x54\x61\x50\x02\x0c\x0f\xfe\x85\xe3\x14\xcf\x17\x30\x05\x75\xdc\xf3\x8f\x3f\xa6\x8a\x1c\xad\xf7\x7f\x95\x7b\x37\xf5\x0a\x83\x47\xc6\x38\xb5\x34\x2b\x28\xb2\xc4\xad\xd5\xd0\xdf\x2d\x99\x97\xd0\x7f\xab\x68\x16\xdb\xeb\xe9\xfc\xbf\x2c\x96\x8a\xc2\x30\xa3\x3a\x73\x9e\x28\xf0\x02\x5e\xbd\x7e\xf5\xe3\x1f\x7b\xbe\x35\x96\xad\x43\xa5\xbf\xaf\xf3\x66\xfe\x66\x7e\xa2\x52\x30\x57\xff\x8b\x74\xfe\x6e\x36\x77\xe2\x6d\x5f\x1d\x66\xde\x64\xb6\xb2\x7e\xb6\x52\xfd\xba\x6f\x2a\x1f\xf5\xd7\xe1\xab\x6f\x83\x50\x4a\xab\x4d\x7d\x4e\x06\xf2\xaf\xb5\x72\x36\xb7\x68\xe0\x97\x43\x14\x21\xcb\x7f\x91\xe6\xaa\x43\xad\xad\x72\x8b\x91\xf2\x87\x34\x88\x3c\x19\x4c\xf3\xd4\x9f\x33\xa8\x95\x43\xe9\xf4\x32\x16\x65\x7e\xcb\xf4\xa8\xfd\x11\xfa\x80\x3c\x1d\x40\xdd\x3d\xdf\x3e\xbf\x5b\xde\x5c\x4c\x52\xff\x9a\xc0\x24\xcb\x1c\xad\x99\x22\x1b\x0c\x21\x3d\x5b\x1f\x51\xd7\x01\xd3\x83\xa0\x4c\x60\xf2\xc3\x45\xcf\xd0\xcb\xe6\x84\xb9\x3a\x1c\xcf\xa7\xe9\x6f\x72\x39\x32\xfb\x67\x6c\x86\xcb\x4e\xf9\x34\x96\xa5\x34\xad\x72\xf6\x9f\x08\x0a\x3c\xee\xba\x39\x7c\xb1\xda\x03\x95\x96\xd3\xa4\x12\x4f\xfe\x41\xd6\xa7\x69\x36\x86\xb4\x39\xec\xf0\x3c\x20\xc4\x3a\x6d\x1d\x8a\xdb\xe7\xe3\xee\x22\x34\xc1\x85\x9d\xe2\x14\xac\x37\xf8\x15\xe6\x97\xa0\xbc\xe9\x4f\xd2\x03\x9a\xd0\x8a\x1d\xa3\xdd\xc4\x6f\x88\x0e\xb5\xf7\x62\x8f\x6a\x16\x14\x89\x5c\x9a\xf4\xad\xcd\x2f\xc2\xd9\x28\x51\x8c\x75\x55\x51\x6c\xf6\x9d\x95\xf8\x7a\xd0\xbf\xd8\x15\x56\x17\x62\x96\xd5\x69\x89\x48\x0e\x74\xfb\xc8\x08\x6e\xb8\x9d\x24\x1f\x76\x08\xb1\xa0\xda\x19\x28\xd5\xa6\x25\x41\x56\x1a\xa6\x76\x2f\x69\x89\x25\x8f\x97\xd3\x11\xdc\x83\x6c\x7c\xb9\xac\x09\x4c\x69\x6b\xdc\x59\x2e\xa8\x66\xc8\xb2\x44\xb7\xec\x22\x10\x30\x65\x86\xf0\x3c\x26\x67\x04\xd7\xa3\x6a\x78\x93\xcd\xe1\x13\xfc\x5f\x3f\x69\x2e\x27\x70\x73\x33\xd8\xaf\xb3\xf9\x04\x3e\xc3\xb7\x6f\xf0\xf7\x71\x47\xfc\x04\x19\xfe\xc6\xb4\x99\xb5\x54\x7d\x69\x48\xf9\x52\xaa\xb0\xc1\x30\x81\xcf\x03\x1c\x2e\x70\xdc\x84\x53\x36\x1a\x12\x5f\x92\xb7\x3d\x63\x64\x87\xa3\x60\x24\xa6\x04\x6a\x4b\xd6\x08\x8b\x92\x45\xb2\x14\x95\x95\x64\xe5\x09\x1a\x53\x83\x63\x39\xa2\xcb\xaf\xa0\x89\xac\xae\x43\x40\xcf\x6e\x9f\x36\x57\xb9\x6c\x47\x61\x73\xa2\x7c\x21\xd5\x13\x17\xb3\xd9\xda\x72\x51\xaf\xa6\x9a\xca\xd9\x8b\xcd\x78\x66\x63\xac\x31\xce\xfe\xf4\xfa\xd5\x8f\xa3\x80\x1e\x8a\xf9\xf7\x37\x17\x93\x26\x82\x93\x11\xc5\xd3\xde\xd3\x55\xff\xe4\xfa\xbb\x27\xaf\xfa\x27\xa3\x7a\xce\xed\xe0\x51\x16\xbb\x17\xfb\x28\xfc\xf0\xaf\xc6\xb2\x4f\xbf\xfb\xfc\xef\x6e\x39\x7c\x24\x19\xfa\x59\x64\xaa\xa0\x90\x9e\x65\x23\x04\xfc\xb5\xb6\x01\xcd\x15\x28\x58\x3e\xbc\xfb\x78\xff\xfc\x1e\x2a\x57\x47\x88\x54\x62\xfa\x06\x11\x29\xe5\x5c\xaa\x93\xf3\xe3\xa6\xe9\x11\x0d\x9a\xf4\x2d\xb0\x0e\x4a\xcb\x47\x1f\xc4\xa2\x66\x43\x3b\xdf\x7c\xf2\x48\xf8\x0e\x7c\x35\x9f\x01\x69\xdb\x7e\x27\xd2\x4f\x18\x2c\x99\x25\x6a\xf2\x26\x2e\xe0\xf5\x61\xcc\x34\xf3\xe4\x64\x80\x8e\x07\xc9\x71\x2b\xfe\x29\x29\xdc\x39\x65\x07\xcb\x86\x96\x17\x8f\x23\xdd\xed\x51\xf6\x63\xfb\x59\x98\x6e\xca\x4e\xbe\x0b\x4f\x6f\xed\x7f\x04\xaa\xf4\x0d\xf6\x5e\xca\x6e\xb0\x9e\x3e\xa3\x32\x3f\x07\xcb\xf8\xc1\x6b\x3c\x8c\xa2\x80\x91\xea\xa0\xfb\xa2\xc2\x39\x46\x1e\xac\x22\x91\x29\xa4\x85\xe0\xfa\x9d\x3d\xfb\x4f\x00\x00\x00\xff\xff\x35\xe0\x44\xba\x60\x0f\x00\x00") - -func testE2eTestingManifestsStatefulsetCockroachdbStatefulsetYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetCockroachdbStatefulsetYaml, - "test/e2e/testing-manifests/statefulset/cockroachdb/statefulset.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetCockroachdbStatefulsetYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetCockroachdbStatefulsetYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/cockroachdb/statefulset.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetEtcdPdbYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4c\xcc\x3d\x0e\xc2\x30\x0c\xc5\xf1\x3d\xa7\x78\x17\x40\xa8\x8c\xd9\x40\x8c\x0c\x4c\xec\x4e\x6c\x81\x45\x3e\xac\xc6\xad\xc4\xed\x51\x55\x06\xd6\xf7\xd7\xfb\x91\xe9\x43\xe6\xa1\xbd\x45\x58\x2f\x9a\x3f\xc7\x75\x4a\xe2\x34\x85\xb7\x36\x8e\xb8\x77\xbe\xea\x98\x17\x73\xed\xed\xb2\xf0\x53\x3c\x54\x71\x62\x72\x8a\x01\x68\x54\x25\x42\x3c\xf3\xc1\x38\x05\xa0\x50\x92\x32\xb6\x04\x18\xa7\xbd\x85\x61\x92\xb7\xad\x6a\x3b\xaf\xa4\x85\x52\x91\x88\x53\x00\x86\x14\xc9\xde\xe7\xfd\x51\xc9\xf3\xeb\xf6\x47\x00\x64\xf6\x43\xbe\x01\x00\x00\xff\xff\x37\xe7\x80\xf7\xad\x00\x00\x00") - -func testE2eTestingManifestsStatefulsetEtcdPdbYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetEtcdPdbYaml, - "test/e2e/testing-manifests/statefulset/etcd/pdb.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetEtcdPdbYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetEtcdPdbYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/etcd/pdb.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetEtcdServiceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x8e\xcd\x4a\xc0\x30\x10\x84\xef\x79\x8a\x79\x81\x82\x3f\x07\x35\x37\x8f\x5e\x8a\x28\x78\xdf\x26\x03\x06\xd3\x24\xec\x6e\x0b\xbe\xbd\xb4\x08\x62\x6f\xc3\x37\x1f\xc3\xc8\x28\x1f\x54\x2b\xbd\x45\xec\xb7\xe1\xab\xb4\x1c\xf1\x4e\xdd\x4b\x62\x58\xe9\x92\xc5\x25\x06\xa0\xc9\xca\x08\x7a\xca\x01\xa8\xb2\xb0\xda\x81\x01\x19\xe3\x97\xdb\x60\x3a\xd8\xe8\xea\x67\x39\x9d\x31\xe2\xee\xfe\xf1\xe6\x74\xff\x46\x26\xa3\xee\xd4\x7f\xd2\xc3\xd3\x55\x4a\xb5\xb0\x79\x00\x52\xdd\xcc\xa9\x2f\xaf\x11\x73\x6f\x0c\x80\xb1\x32\x79\xd7\xeb\x09\x60\x6c\x4b\x2d\xf6\x39\x77\x7f\xa3\xe4\xef\xe7\x9c\x95\x66\xb4\x08\xd7\x8d\xe1\x27\x00\x00\xff\xff\x50\x82\x1d\x25\xf2\x00\x00\x00") - -func testE2eTestingManifestsStatefulsetEtcdServiceYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetEtcdServiceYaml, - "test/e2e/testing-manifests/statefulset/etcd/service.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetEtcdServiceYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetEtcdServiceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/etcd/service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetEtcdStatefulsetYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x58\x6d\x6f\xdb\xb6\x13\x7f\x9f\x4f\x71\x7f\xc7\x48\xed\xff\x2a\x3f\x24\x2b\x92\xaa\x48\x8b\x2c\x31\xd6\x00\x49\x6a\xc4\x5e\x0b\xac\xdb\x0c\x46\x3a\xc7\x5c\x28\x52\x25\x29\x27\x81\xeb\xef\x3e\x50\x92\x65\x3d\x50\x8e\x0b\x24\x7b\x35\xbf\xd8\x1a\xea\xf8\xbb\xe3\x3d\xfc\xee\x48\x12\xd2\xcf\x28\x15\x15\xdc\x05\x12\x86\xaa\x3b\xef\xef\xdc\x51\xee\xbb\x30\xd2\x44\xe3\x34\x62\x23\xd4\x3b\x01\x6a\xe2\x13\x4d\xdc\x1d\x00\x4e\x02\x74\x01\xb5\xe7\xef\x00\x30\x72\x83\x4c\x99\x65\x30\xdb\xd3\x75\x15\xa2\x67\xd6\x14\xca\x39\xf5\xf0\x2a\xbf\x43\x62\xc8\xa8\x47\x94\x0b\x07\xb1\x04\x43\x4f\x0b\x99\x20\x04\x44\x7b\xb3\x8b\x1c\x64\x1e\x14\x40\x63\x10\x32\xa2\x31\x15\xce\xd9\x64\x7e\x05\xbb\xcc\x8f\x15\x80\x8a\x50\x00\x2b\x1b\xcd\xcf\x13\x5c\x13\xca\x51\x66\xd2\x4e\x15\x0e\x80\x06\xe4\x16\x5d\xb8\x3b\x52\x9d\x5b\x4f\x76\xa8\xe8\x9a\xcf\xee\x41\x67\xbf\xb3\xff\x73\x51\x6a\x18\x31\x36\x14\x8c\x7a\x8f\x2e\x9c\xb0\x7b\xf2\xa8\xb2\xef\xa1\x90\x3a\x67\x95\xb3\xd6\x3e\x14\x52\xbb\xb0\x7f\x70\xd4\xcb\xbe\xae\x8e\x15\x22\xca\x4d\x5b\x0e\xdf\x56\xb6\x78\x8c\x22\xd7\xd9\xb2\x44\x25\x22\xe9\x61\x4e\xb5\x59\xfc\x16\xa1\xd2\x85\x35\x00\x2f\x8c\x5c\xe8\xf7\x7a\x41\x61\x35\xc0\x40\xc8\x47\x17\xde\xf4\xf7\x2f\x69\xf6\x05\xf9\x3c\x7f\x96\x44\xf5\xf9\xd5\xf9\xf8\xfc\xe4\x62\x72\x7a\xf1\xdb\x68\x3c\xb8\x9e\x8c\xce\x7f\x1f\xe4\xb0\xe6\x84\x45\xe8\x42\xe3\xa0\x51\xd9\x39\x1a\x8c\x27\x57\x27\x97\x16\xe9\x42\x24\xe6\x82\x45\x01\x5e\x8a\x88\x17\x5d\x99\x80\x98\xac\xf0\xa9\xcc\x61\x04\x46\x72\x48\xf4\xcc\x85\xee\x9c\xc8\xae\x8c\x78\xb7\x00\xc8\xe8\x14\xbd\x47\x8f\x61\xde\x13\xa1\xc4\x91\x16\x61\xd1\x39\xf8\xb0\xce\x9b\xcc\x61\x22\x08\x08\xf7\xcb\xcb\xc6\xa2\x46\xf7\x86\xf2\xae\x9a\x35\x6c\xdf\x1c\xf4\x6c\xeb\xdf\x2b\x6b\x00\x83\xe1\xe8\xb8\x51\x15\x06\x98\x0a\x09\x14\x28\x87\x66\x4b\xe1\x37\xe8\x41\xb3\xd5\x6a\x2e\x6c\x11\x58\x82\x03\xfd\x76\xbb\xfd\x0e\x7c\x61\x01\xca\xb4\x34\x17\x83\xe1\x68\x19\xff\xd7\xfd\xe9\xf5\x72\xa6\x75\xe8\x76\xbb\xcd\xc5\x2a\x36\x4b\xa7\xb9\xa0\xcb\x4e\x6e\xc1\x35\x09\x68\x33\xce\x17\x1c\x77\x2c\xeb\x1f\x3f\x8d\xc6\x66\xe7\x71\xb3\x35\x13\x4a\x9b\xb0\xb5\x6d\x72\x01\x06\x37\x28\x27\x33\xa2\x66\xad\x36\x2c\x6a\xac\x36\x91\xf4\x34\x4b\xa5\x81\x51\xa5\xe1\x3b\xdc\x4a\x0c\x21\x33\x7e\xa5\xb1\x6c\xf7\x51\x0f\xbe\x83\x17\x69\x70\xfc\x57\xee\x2b\x70\xa6\xfd\xf5\xdf\x5f\xe3\xbf\x2d\x4a\x97\x36\x5b\xd1\x9b\x09\x68\x5c\x63\x20\xe6\x94\xdf\x42\x4e\x25\x4c\xa5\x08\x62\x2b\xc1\x63\x91\xd2\x28\x1b\x36\x80\xc1\xf8\xf4\xec\x74\x7c\x31\x19\x5c\x9d\x0d\x3f\x9d\x5f\x8d\x8f\x93\x40\x94\x8f\x27\x8d\x06\x84\x66\x2b\xe7\x9c\xb6\x05\x8e\x4e\xe1\x2b\x34\x3f\x80\x13\x67\xc5\x9f\xef\x40\xcf\x90\xd7\x78\x70\x17\xae\x13\x54\x9c\xa3\x7c\xd4\x33\x73\x00\xa1\x67\x28\xef\xa9\x42\xb3\x71\x65\x38\xdc\x53\xc6\x80\x0b\x60\x82\xdf\xa2\x04\xe5\x11\x86\x4e\x14\xd6\xe0\xca\x00\x1c\x39\x2d\xd6\x5c\xf7\xff\xb6\x2c\x5e\x33\x8a\xa5\x98\xec\x65\x54\x2d\xa0\x72\xe9\x3c\x9d\x66\xbb\xa0\xb4\x90\xb8\xf2\x2d\xf5\x81\x72\x2d\x60\xf8\xf9\x34\x2e\x2c\xd3\x6d\xe4\xda\xf1\x21\x23\x1e\x06\x79\x56\x4d\x0c\x66\xa6\x89\x4d\x12\x31\x6b\x9e\xde\xcf\x28\x43\xf8\x9f\x35\x53\xf7\xde\x77\x7d\x9c\x77\x79\xc4\x98\xa9\x4c\x50\x0c\x31\x84\xfe\xbb\xa4\x78\xca\x48\x2f\x9b\xeb\xf0\xbe\x14\xab\x34\xc7\xa8\x5f\x35\xe4\x81\x6a\xe8\x15\x96\x4b\x65\x81\xa1\xb2\x3a\xa3\x86\xca\x9e\x91\xc8\x9e\x97\xc6\xec\x71\x30\xd5\x9e\xa8\xd8\xe4\x83\xa7\x08\xec\x5f\xa4\xae\x65\x39\xf3\x25\x3a\x7f\x0b\xca\x4d\xad\x93\xa9\xc9\xf3\x29\xa1\x2c\x92\xf8\xa1\x20\x17\xd3\x88\x83\xa5\xbc\xf0\x71\x4a\x22\xa6\x3b\x31\xa9\xd5\x71\xcb\x8a\x11\x33\x35\xb1\x74\x72\xd4\xaa\x9b\xb3\x54\x3b\x6e\xb6\x3c\xa2\xeb\x12\xd1\xd2\x27\xb2\xa3\xa4\x18\xd5\x8c\xab\x30\x6b\x0b\x43\xd5\x2e\x7b\x3f\x0a\x7d\xa2\x11\x9a\x8b\x4c\xd9\x72\x9b\x28\x58\x4a\x03\xbd\xe4\xac\x8e\x63\x38\xa7\xd0\x0b\xfe\xb0\x66\xac\xe3\x98\xd0\x23\x77\xcc\xa0\xe7\x44\x92\xa9\xad\xe2\xff\x04\x58\x32\x02\x6e\x09\x77\xf8\xf6\x75\x2a\xd3\xdf\x3f\xec\xf4\x3a\xbd\x4e\x3f\x5e\xad\x55\x42\xfc\x39\x4a\x4d\x15\xfe\xa8\x9e\x5a\x44\x33\xb8\x39\x3e\x95\x1b\x92\xad\xb0\x73\x4a\xcb\x39\x6d\x44\x1c\xa3\xed\xfc\xac\xf0\x25\x59\x3a\x5e\x5b\xe5\xbe\x71\x9b\x8b\xdd\xcc\xc6\x4a\x71\x10\xdf\x8f\x0b\x03\x38\xde\xaf\xf2\x43\x0b\xc3\x7a\x4a\x9b\x0f\xab\x7e\xd8\x22\x4a\x45\x41\x2c\xca\x18\x50\x4e\x35\x25\x0c\x42\xe1\x2b\x20\x12\x81\xcc\x09\x65\xe4\x86\x61\xbb\x5a\x54\x8d\xc4\x2f\xe7\x67\xcb\x06\x38\xb7\x26\x4b\xec\x64\x57\x5b\x5e\x0f\xe6\x2a\x51\x97\xdc\xb6\x32\x49\xcf\x41\x98\x44\xe2\x3f\x9a\x33\xa2\xff\xa1\x22\x77\x39\xb8\xfc\x65\x70\x3d\xf9\x78\x32\xfa\x78\xfc\xc4\x94\x91\x90\x03\x37\x47\xc9\xed\x5a\x36\x36\x8e\x1b\xbb\xf1\x40\x91\xda\x62\x70\x13\xaf\x2a\xb8\x89\x74\xdc\x05\x94\x08\x10\x24\x12\x25\x78\x52\x46\x86\x98\xb0\xda\x82\xd2\x48\xa9\x18\x2f\x1d\xfa\x0d\x20\x70\xa1\xe1\x06\xc1\x93\x48\x34\xfa\xaf\xe1\x1e\xc1\x23\x7c\x35\x39\xad\xb5\xd7\x21\x72\x1f\x24\x6a\x49\x71\x8e\x71\xfc\x8d\x91\x56\xd9\x9a\xd1\xac\xe0\x8c\x6a\xa3\xa3\xd5\xd8\x24\x54\x79\x92\x24\xdd\x3a\xe5\xaa\x2c\x59\xd2\x48\x7c\xbf\xc0\x2e\xdb\x35\x8d\xb8\xbf\x34\xfe\x32\x99\x33\x69\x54\x7a\x3e\xc7\xfb\x74\x96\x99\x20\x9f\xab\xaa\xb1\xd9\x64\xc9\xf1\x89\xc9\x32\x39\xd6\xe0\x81\x9a\x9a\xb1\x5d\x10\x92\x11\xb1\x3c\x21\x96\x2d\xb0\x42\x9b\xf9\xa3\x3a\x9c\xdb\x9c\x5b\xed\x26\x4f\x29\x48\xae\xca\x3f\xea\x97\xe2\x20\x08\x7b\x96\x30\xff\xd7\x19\x5e\xac\x33\xd4\xee\x4d\x49\x39\x67\xd5\xf3\xb8\x72\x85\xbb\x6a\x05\xcd\x45\x5c\x50\x25\x12\xaf\x8f\x6b\x69\xbf\xa3\x74\x32\x7d\xd8\x50\x26\xa3\xf1\xc9\x78\xb0\xdc\xd8\xfd\x9e\x69\x80\x4e\xee\x2a\x5a\x46\x58\x3b\x5f\x27\x65\xfd\x85\xc4\x65\x1d\xeb\xdd\x34\x56\x9b\xbe\xe9\x19\x4a\x8f\x42\x3b\x05\x84\x06\xc5\xf9\x02\x7d\x70\x3c\xe8\x6f\xc6\x7a\x0f\xd9\x6d\x09\xf6\xf6\xe0\x46\x22\xb9\xb3\x82\xa6\xd7\xa8\x6a\x6d\x57\xc6\xf9\xea\x23\xc5\x70\x30\xb8\xae\xdc\x51\x9e\xc9\xbd\x29\x76\x73\x11\xff\x63\x99\xfe\xdf\xdc\x50\xca\xe7\x3e\xde\xee\xca\x72\xd4\x6b\x3c\x71\x9c\xcd\xbc\xb4\x0b\x75\xa3\xf3\x0f\xb2\xd5\x4b\x54\xda\xb3\xb1\xdf\x8b\x33\xdf\xf3\xb2\x5e\x95\x1d\xb4\xb8\xc3\x64\x1c\xca\x96\xfa\xdb\x6c\x84\x55\xa6\x6d\xa5\x25\xe1\x20\x33\x80\xd8\xa4\xb7\x9b\xcf\x93\xc7\xd9\x53\x46\x68\x30\x4e\x5f\xec\xe3\x47\x5a\xa7\xe6\xc9\x3e\xff\x5c\x9b\x7f\x95\x27\x9e\x87\x4a\x5d\x0a\x1f\x0b\x6f\xbc\x8d\x6b\x24\xfe\x17\x49\x35\x7e\xe2\x1e\xae\x72\xdf\xf2\xbc\x6d\x7b\xdc\xde\x85\x28\x54\x5a\x22\x09\x40\xa2\x27\x82\x00\xb9\x8f\x3e\x04\xe4\x01\xa8\x82\xc3\x5e\xef\x32\x27\xac\xb4\x90\xf1\x8b\x7f\xff\x57\xba\xf3\x4f\x00\x00\x00\xff\xff\x47\x5f\x27\x5d\x29\x19\x00\x00") - -func testE2eTestingManifestsStatefulsetEtcdStatefulsetYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetEtcdStatefulsetYaml, - "test/e2e/testing-manifests/statefulset/etcd/statefulset.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetEtcdStatefulsetYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetEtcdStatefulsetYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/etcd/statefulset.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetEtcdTesterYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x8f\xc1\x4e\xc3\x30\x10\x44\xef\xf9\x8a\xfd\x81\xb4\xa5\x5c\x2a\xdf\x90\x2a\x71\xe1\x10\x09\x89\xfb\xd6\x19\x1a\xab\x1b\xdb\xf2\x6e\x8b\xc2\xd7\xa3\x94\xd2\xba\xc0\x1c\x3d\x7e\xb3\x33\x9c\xc3\x1b\x8a\x86\x14\x1d\x71\xce\xba\x3c\x3d\x34\x87\x10\x7b\x47\x5b\x64\x49\xd3\x88\x68\xcd\x08\xe3\x9e\x8d\x5d\x43\x14\x79\x84\x23\x98\xef\x5b\x83\x5a\xab\x28\x27\x94\x46\x33\xfc\x6c\x17\x64\x09\x9e\xd5\xd1\x63\x43\xa4\x10\x78\x4b\x65\x76\x88\x46\x36\x3f\xbc\xf0\x0e\xa2\xdf\x0f\x34\x9f\x74\x54\xe7\x10\x19\xc6\x2c\x6c\xb8\x30\xd5\xe9\x59\x72\x87\xff\x1b\x40\xf4\x53\x66\x96\x4f\xd1\x38\x44\x94\x2b\xd4\x5e\x36\xfc\xa6\x66\x85\x91\xf7\x70\x74\xd8\xe8\x62\xef\xcb\x22\xa4\xe5\x79\xa9\x1a\x1b\xde\x8f\xa2\xb0\x16\x6b\x9c\x97\xbb\xd5\x62\x75\xcf\x75\x47\x91\x2e\x49\xf0\x93\xa3\x27\xf9\xe0\x49\xaf\x7e\x4e\xc5\xaa\xd6\xed\xad\x56\x97\x8a\x39\xda\xac\x36\xb7\xb0\x02\xee\x43\x84\x6a\x57\xd2\x0e\x37\x8a\x68\x30\xcb\xcf\xb0\xfa\x89\x28\xb3\x0d\x8e\x96\x03\x58\x6c\xf8\xbc\xb7\xfe\x86\x13\x85\x18\x2c\xb0\x6c\x21\x3c\xbd\xc2\xa7\xd8\xab\xa3\x75\xf5\x21\xa3\x84\xd4\x57\x56\xf3\x15\x00\x00\xff\xff\x5f\xc9\x70\x5d\x26\x02\x00\x00") - -func testE2eTestingManifestsStatefulsetEtcdTesterYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetEtcdTesterYaml, - "test/e2e/testing-manifests/statefulset/etcd/tester.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetEtcdTesterYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetEtcdTesterYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/etcd/tester.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetMysqlGaleraServiceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x8e\x31\x4b\xc4\x40\x10\x85\xfb\xfd\x15\x0f\xae\x13\x0c\xca\x81\xc5\x76\x07\x36\x36\x41\x3c\xb0\x9f\xdb\x7d\x7a\xc1\x4d\x76\x9d\x99\x04\xee\xdf\x4b\x12\xbb\xeb\x66\xe6\x7d\xf3\xf1\x0e\x38\xe1\x4a\xc9\x85\x66\x30\xea\x32\x24\xc2\x2b\x92\x52\x9c\x78\xed\xcf\x50\xa6\xaa\xd9\x82\xb4\xe1\x93\x6a\x43\x9d\x22\x96\xe7\xf0\x33\x4c\x39\xe2\xbc\xbf\x84\x91\x2e\x59\x5c\x62\x00\x26\x19\x19\xf1\x2d\x85\x2a\x01\x28\x72\x61\xb1\x35\x00\xa4\xb5\x88\xf1\x66\xbf\x25\x58\x63\x5a\x8f\xad\xaa\x6f\xe9\xe3\x36\x46\x1c\x8f\x4f\x2f\x1b\xbc\x7b\x76\x1a\x38\xe0\xa1\x5b\x9d\xa2\x5d\xe6\x97\xcc\xc5\x3b\x5b\x52\x97\xca\x6c\x4e\xed\x4a\x4d\xb2\x62\xff\xfb\xdb\x7b\x44\x5f\x27\x06\xc0\x58\x98\xbc\xea\x5d\x03\xa0\xcd\x97\x32\xd8\xb5\xaf\xfe\x41\xc9\xb7\x53\xce\x4a\x33\x5a\x84\xeb\xcc\xf0\x17\x00\x00\xff\xff\xf3\xa7\x43\xb4\x1d\x01\x00\x00") - -func testE2eTestingManifestsStatefulsetMysqlGaleraServiceYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetMysqlGaleraServiceYaml, - "test/e2e/testing-manifests/statefulset/mysql-galera/service.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetMysqlGaleraServiceYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetMysqlGaleraServiceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/mysql-galera/service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetMysqlGaleraStatefulsetYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x55\x51\x6f\xe3\x36\x0c\x7e\xcf\xaf\x20\xbc\x87\x7b\x52\xdc\x5c\x7b\xb7\x83\x86\x3c\x14\xed\x6d\x18\xb0\x5e\x83\x6b\xb1\x3d\x0c\xc3\xc0\xc8\x74\xac\x8b\x2c\xf9\x44\x39\x5d\x36\xec\xbf\x0f\x76\x1c\x5b\xb6\xdb\x62\x7b\x9b\x9f\x0c\x92\x1f\xf9\xf1\x13\x29\x61\xa5\x7f\x26\xcf\xda\x59\x09\x58\x55\x9c\x1e\x56\x8b\xbd\xb6\x99\x84\x87\x80\x81\xf2\xda\x3c\x50\x58\x94\x14\x30\xc3\x80\x72\x01\x60\xb1\x24\x09\xe5\x91\xbf\x9a\x05\x57\xa4\x1a\x1b\x93\x3f\x68\x45\x9f\x5a\x57\xb2\x43\x43\x1e\x93\x05\x80\xa7\xca\x68\x85\x2c\xe1\xb2\x8d\x32\xa4\x82\xf3\x0d\x02\xa0\xc4\xa0\x8a\x9f\x70\x4b\x86\x4f\x06\x68\x08\x9c\x33\x03\x04\x2a\x2b\x83\x81\xba\xe8\x88\x41\xf3\x99\x11\x70\x02\x05\x38\x13\x6b\x3e\x6d\x75\xb8\x71\x36\xa0\xb6\xe4\x7b\x88\xe8\x1a\xd1\x96\x03\x1a\xd3\x27\xd2\x25\xee\x48\xc2\xfe\x03\x2f\x77\xca\x2f\xb5\x4b\x4f\xed\x88\x2e\x50\x5e\x2c\x57\xe3\xe0\x4d\x6d\xcc\xc6\x19\xad\x8e\x12\xae\xcd\x13\x1e\x79\x60\xe5\x77\x11\x47\x01\x89\x10\x4f\xce\xef\x45\xa6\xfd\x3a\x3d\xff\x25\x7d\xc0\xc1\x99\xba\xa4\x3b\x57\xdb\x30\x82\x9d\x98\x36\xf1\x99\xf6\xbd\x1d\xa0\x6c\x22\x37\x18\x0a\x09\xc9\x33\xe9\xce\x40\xe5\x6c\xae\x77\x2f\xe1\x28\xa8\xb4\x15\x2e\x99\x28\xb3\x75\x2e\x70\xf0\x58\x4d\xb5\xc9\x68\xab\xd1\xca\x2f\xc4\xac\xa9\x77\x2a\x57\x96\x68\xb3\x51\xbb\x3d\xa9\xb4\x22\xf2\x22\xd7\x36\xa3\x88\xe0\x54\x1e\xe1\xac\xe0\x80\x3e\xac\x23\xe4\xd9\xb6\xe4\x22\x19\x49\xd9\x0d\xdd\x7a\x18\xb7\xd3\x47\xf6\x30\x17\x6f\x73\x7f\xfb\xfb\xa7\xeb\xbb\x8f\x0f\x9b\xeb\x9b\x8f\x91\x14\x07\x34\x35\x7d\xef\x5d\x29\x23\x23\x40\xae\xc9\x64\x9f\x29\x1f\x5b\x9b\x31\x1b\xd6\xe5\xb0\x9a\x38\x5b\xd0\x49\xd6\xf3\xb8\x2e\x9b\xea\x5c\xa1\xa2\xff\xd9\x21\xab\x17\x17\x62\x58\x22\x78\x76\x1d\x5a\xbf\x38\x89\x2e\xe9\xed\xd0\x58\xe5\xfc\xb8\xa3\xbe\xc6\xc6\xf9\x20\xe1\xf2\xf2\xe2\x7d\xc4\xef\xb9\x6a\x33\xcc\xd5\xd5\xd5\xd5\x0c\xc3\x1c\x5e\x41\xbc\x7b\xff\xed\x0c\xd1\xdd\x43\x41\x3b\xfb\x2a\xf2\xc3\x0c\xa9\xa3\x5a\xb3\x71\x15\x19\xe5\x58\x9b\xc0\x22\xd7\x86\xd6\x83\xca\x69\x79\xec\x14\x5a\x2a\x9b\x8f\x20\x35\x93\x5f\x7b\xe7\x86\xb4\x9e\x30\xd3\x96\x98\x37\xde\x6d\x29\x9e\xb8\x6f\xe0\xf1\xfe\xf6\x5e\xc2\x8f\x39\x64\x4e\xed\xc9\x03\xfd\x41\x0a\x34\xc3\xb6\xde\xed\x8e\xf0\xa5\xe6\x00\x35\xd3\xfc\x78\x0a\x42\x13\x8a\x3f\xe5\x6a\x79\x11\xe5\x6b\xd0\xe3\x89\x9e\x2d\xed\x89\x26\x17\x13\x83\x50\x13\x43\xd2\xd6\x01\x51\x43\xd3\x0b\x08\x82\x37\x5c\xb8\x27\x68\x86\x7e\x8b\x4c\xfc\xdd\x9b\x24\x82\x34\x77\xb0\x46\x73\x4b\x06\x8f\x0f\xa4\x9c\xcd\x58\xc2\xea\x5d\x14\x11\x74\x49\xae\x0e\xbd\x33\xf6\x71\xad\x14\x31\x3f\x16\x9e\xb8\x70\x26\x93\xf0\xf6\x5f\xae\x53\x43\xe7\xc5\x75\x4a\x0f\xe8\x53\xa3\xb7\xe9\x7f\x5a\xa6\xe1\x94\x17\x31\x83\xd9\x1e\x4d\x72\x50\x59\x85\xe3\xad\xf6\x12\xfe\xfa\x7b\x12\x39\xdd\xf9\x49\xe8\x29\xff\x8d\x41\x5d\x3e\x76\x6f\x62\x5b\x4c\xcc\x1e\xc5\x79\xcf\xf1\x3b\x88\xad\x88\x77\x2e\x23\x96\xf0\x2b\x24\x9f\x09\xb3\x5f\xbc\x0e\x74\x6f\x15\x25\xf0\x5b\x17\xe6\x89\x5d\xed\x15\x45\x6a\x7a\xfa\x5a\x13\xc7\xfa\x02\x70\x70\xbe\xbd\x1a\x56\x3f\xe8\xc5\x3f\x01\x00\x00\xff\xff\x3c\xf4\xc8\x50\x46\x08\x00\x00") - -func testE2eTestingManifestsStatefulsetMysqlGaleraStatefulsetYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetMysqlGaleraStatefulsetYaml, - "test/e2e/testing-manifests/statefulset/mysql-galera/statefulset.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetMysqlGaleraStatefulsetYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetMysqlGaleraStatefulsetYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/mysql-galera/statefulset.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetMysqlUpgradeConfigmapYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\xca\xb1\xae\xc2\x30\x0c\x85\xe1\xdd\x4f\x71\x5e\xa0\x57\xba\x6b\x56\x66\x56\x16\xc4\xe0\x12\xb7\x8a\x70\x9c\x10\x87\x4a\x95\x78\x78\x44\xa4\x8e\x8c\xe7\xfc\x1f\xd7\x74\x91\xe6\xa9\x58\xc0\xf6\x4f\x8f\x64\x31\xe0\x54\x6c\x49\xeb\x99\x2b\x65\xe9\x1c\xb9\x73\x20\xc0\x38\x4b\x40\xde\xfd\xa9\x04\x28\xcf\xa2\xfe\xfd\x01\xae\xf5\x08\x07\xce\xec\x5d\xda\xdf\xdd\x96\x80\xf7\x40\xd7\x01\xe2\x6d\x0c\x2d\xeb\x34\x27\x23\xc0\x95\x37\xf9\xe9\xfc\x55\xa5\x4d\x4d\x38\x4e\xc5\x74\xa7\x4f\x00\x00\x00\xff\xff\xd1\x8c\x7f\x5b\xaf\x00\x00\x00") - -func testE2eTestingManifestsStatefulsetMysqlUpgradeConfigmapYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetMysqlUpgradeConfigmapYaml, - "test/e2e/testing-manifests/statefulset/mysql-upgrade/configmap.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetMysqlUpgradeConfigmapYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetMysqlUpgradeConfigmapYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/mysql-upgrade/configmap.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetMysqlUpgradeServiceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x8e\xb1\x8a\x02\x31\x14\x45\xfb\xf7\x15\xf7\x07\x02\xbb\x0c\x6c\x91\x72\x3b\x41\x44\x10\xec\x9f\xc9\x2d\x82\x99\x24\x26\x71\x60\xfe\x5e\x46\xb1\x18\xed\xc4\xf6\x1e\xee\xe1\x68\x09\x47\xd6\x16\x72\xb2\x98\x7e\xe5\x1c\x92\xb7\x38\xb0\x4e\xc1\x51\x46\x76\xf5\xda\xd5\x0a\x90\x74\xa4\xc5\x38\xb7\x4b\x14\x20\xea\x89\xb1\x2d\x3b\xa0\xa5\x3c\x41\x2b\x74\xcb\x58\x72\xed\x77\x6a\x5e\x7e\x0f\x64\x31\x0c\x3f\x7f\x02\xb8\x78\x6d\x9d\x75\xb3\xb7\xd8\xe5\x44\x01\x1a\x23\x5d\xcf\xf5\x4d\x6d\x8c\x91\x4f\x62\x4d\xa5\xfa\xef\x15\xaf\xfb\x56\x2a\xa0\xcf\x85\x16\xdb\xac\xfe\x5f\xa3\x26\xc7\x2a\xb7\x00\x00\x00\xff\xff\x8b\xeb\xb7\xc6\x60\x01\x00\x00") - -func testE2eTestingManifestsStatefulsetMysqlUpgradeServiceYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetMysqlUpgradeServiceYaml, - "test/e2e/testing-manifests/statefulset/mysql-upgrade/service.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetMysqlUpgradeServiceYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetMysqlUpgradeServiceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/mysql-upgrade/service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetMysqlUpgradeStatefulsetYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xdc\x58\xef\x6e\xdb\x36\x10\xff\xee\xa7\x38\x18\x41\x63\xaf\xa5\x6d\xb5\xc8\x8a\xa9\x75\x07\xd7\x71\x93\x02\x76\x9c\xd9\x5e\x83\xc2\xf3\x5c\x5a\x3a\xdb\x44\x29\x52\x21\x29\x23\x59\xd3\x3d\xfb\x40\xc9\x7f\x28\x47\x4e\x8a\x0d\x1d\xb0\xe9\x83\x20\x1d\xef\x8e\xbf\x3b\x1e\xef\x8e\xa4\x31\xfb\x80\x4a\x33\x29\x7c\xa0\x71\xac\xeb\x2b\xaf\xf4\x99\x89\xd0\x87\xa1\xa1\x06\xe7\x09\x1f\xa2\x29\x45\x68\x68\x48\x0d\xf5\x4b\x00\x82\x46\xe8\x43\x74\xab\xaf\x79\x49\xc7\x18\x58\x9a\x46\xb5\x62\x01\x5e\x38\x43\x00\x0a\x63\xce\x02\xaa\x7d\x78\x91\xb2\x70\x0c\x8c\x54\x96\x1d\x20\xa2\x26\x58\x76\xe9\x0c\xb9\xce\x08\x60\x67\xdf\xc9\x1a\x8c\x62\x4e\x0d\xae\xb9\x9d\xe9\xed\xc3\x73\x82\x7b\xa2\x00\x1b\x54\xf6\x61\x82\x99\xb6\x14\x86\x32\x81\x6a\x2b\x42\xd6\x56\xd8\x51\xb2\x13\x4c\x05\x22\xba\xd8\x18\xe1\x9f\xd4\x5e\x6e\x07\x02\x19\x45\x54\x84\xbb\x59\x09\xcc\xa8\x5e\x3a\xbf\x65\x12\x94\x9d\xdf\xbb\xed\xb7\xb5\xde\x00\xc1\x1b\x87\x32\x1e\xc3\xa7\xa5\xd4\xc6\x02\xf9\x04\xcd\x3f\x81\x54\xc6\x0d\xf2\xd3\xe4\x69\xf5\x08\x26\x13\xb8\xbb\x03\xbc\x61\x06\x3c\x47\x44\xaa\x90\x09\xca\x9b\x47\x5f\xde\xb6\x86\xe7\xd3\x41\xa7\xd7\x1a\xb5\xcf\xc7\xde\xe4\xab\xc3\x84\xc1\x52\xc2\x38\x85\x1f\x4e\xe0\x0d\xd4\x23\x61\xea\x81\x14\xf3\x5a\x58\xb7\xcb\x84\x8a\xb0\xb0\x16\x88\xf9\xbe\xcc\x76\xb0\x79\x54\xa9\x78\x8d\x06\x3c\x85\xa3\xf5\x8c\xd5\x2a\xbc\xf9\x36\x4d\x6c\x6e\x0d\xdb\xc8\x01\xc1\x6b\x68\xc0\x64\xf2\x0a\xcc\x12\x85\xc3\x07\x10\xc4\x3b\x85\x6c\x41\x22\x1a\xd7\x23\xaa\x0d\x2a\xab\x31\x37\x97\x0b\x94\x6b\x7c\x4c\x8b\xe6\x74\x85\x0f\x29\x99\xb3\xed\xcf\x4a\xf2\x24\xc2\x9e\x4c\x84\xd1\xee\xc2\x66\xd1\x61\x45\x1d\xb9\xc8\xb2\x5d\x52\xb3\xf4\x5d\xcd\x85\x52\x19\x94\x47\x64\x73\x4c\x5b\x69\x2e\x05\x16\x87\xe4\x22\x50\x35\x26\xeb\x0b\x29\x17\x1c\x89\xa6\x51\xcc\x51\xd7\x6f\x8c\xa2\x33\x1a\x7c\x4e\x62\xdf\xab\x35\xbe\x63\xb4\x92\x10\xea\x2b\xaa\xea\x9c\xcd\xea\x29\xbe\xec\x6d\x83\xf5\xc9\x93\x2c\x58\x1b\xff\x42\x7c\x17\x85\x57\x21\x00\x11\x50\x03\x84\x28\x0c\x56\x44\x0a\x7e\x9b\x6d\x69\x72\x54\xa9\x6c\xe4\x89\x57\xad\xd6\x32\x23\x5e\xbc\x68\xbc\x84\x3b\xb8\x99\x69\xa3\x90\x46\x40\x6e\x80\xb4\xf7\xec\x75\x74\xef\x9c\x0e\x84\xc4\x0a\x63\xaa\x10\x08\x31\x54\x2d\xd0\x90\x90\xa9\xe6\x01\xd1\x87\x03\xce\xe6\xb8\x03\x41\x73\x08\x89\x4e\x66\x19\x47\x7e\xe0\x1b\x42\x18\x4d\xb0\x5e\xc7\x5c\x20\x07\x07\x93\xe5\xc3\x79\xb2\xe6\x9d\x6c\xc7\x50\xac\xee\x1b\xd7\xfb\x38\xfc\xa5\x3b\x6d\x75\xbb\xfd\xab\x69\xa7\x77\x39\xfa\x38\xbd\x6c\x0d\x87\x57\xfd\xc1\xa9\x03\x70\x45\x79\x82\x3e\x94\xbd\x5d\x68\xc6\x52\x15\xf9\x6a\xdf\x11\x5b\xdc\x97\x52\x19\xdf\x2e\xe8\x8f\xff\x21\xaf\xdb\x6a\xa9\x65\xa2\x02\x74\x00\x5a\xe2\x75\x82\xda\xe4\x68\x36\xe9\x25\x7e\x6e\xe3\xd8\x0a\x19\x49\x75\xeb\x83\x77\xb6\x4b\x6e\x9c\xad\x50\xa0\xd6\x97\x4a\xce\xd0\xd5\x80\x37\xbb\xfa\xb8\x71\x5e\x96\x2d\x60\x5c\x4e\xc1\xd1\x30\x62\xa2\xfc\x0c\xca\x31\x13\x8b\xf2\xc4\x4d\xf0\x82\x19\x46\xf9\x29\x72\x7a\x3b\xc4\x40\x8a\xd0\xd6\x77\x77\xdf\x19\x16\xa1\x4c\xcc\x76\xf0\xc4\x31\x91\x86\xec\x6f\x22\xb2\x60\xc8\xd2\xbe\xbd\xe7\x2f\x6b\x8d\x5a\xa3\xe6\xa5\x24\xb4\xef\x61\xa7\xdb\x69\x8f\xc0\x7b\x1c\xe9\xc9\x03\x40\xbd\xbd\x78\xdf\x6d\xf2\x7f\x94\x89\x0f\xc4\x6f\x81\xf6\xa2\x20\xfe\x6e\xfd\x47\xb0\x9f\xce\x4b\xf7\xca\x38\x99\x3b\x28\xa7\x69\x5d\x9d\x32\x31\x97\xc5\x05\x3d\x5a\x1d\xe0\x0e\x96\x54\x2c\x70\x9a\x55\xf7\xa9\x91\x35\x7d\xcd\x6b\x2c\x2f\xac\xa2\xbd\xd9\x66\x4c\x70\xb9\x48\x15\xe4\xea\x7f\x11\x32\x87\xb7\x18\x9a\xad\x45\xb6\x1a\x14\xcb\xa4\xd5\xe9\xf7\x4a\xed\x87\x9f\xab\xe3\xb1\xaf\x63\x1a\xa0\x3f\x99\x3c\x4d\x09\x07\x6b\x55\x0a\xf9\x51\xbc\xeb\xd6\xaa\xdc\x3e\x6f\x5d\x9c\x75\xa0\xd7\x1a\x8e\x3a\x03\x18\xf5\xd7\x5f\xd3\x6e\xff\x6c\xfa\xee\x7d\xb7\xd3\x3c\xbe\x5f\xf3\x8e\x9f\xfd\x96\xd3\x94\x3d\x8e\xe0\x65\x7f\xb8\x5f\x2a\x9f\x4f\xbe\x96\xe1\xcd\x37\x78\x7c\xce\x0a\x97\xfb\x80\x60\xb1\x57\x33\xd3\xae\x28\x33\x4c\x2c\x60\x2e\x55\x96\x0d\x43\x30\x12\x66\x98\xee\xf6\x5b\xa8\xd0\x20\xc0\x38\xe5\x08\xa4\x10\x18\x18\x26\x85\xae\x96\x73\x9a\x12\x61\x18\xcf\xa4\x81\x2c\x61\xbb\xc3\x81\xa0\xb3\xb9\x5f\x41\x28\x41\x73\xc4\x18\x3c\xfb\x2d\xb0\x54\x80\xe7\x7d\xb6\xed\xd9\x1f\x76\xca\xf5\x11\xc4\xce\x09\x73\x25\xa3\xac\xbd\x82\x58\x6a\x66\x69\xe5\xfd\x00\x3e\x64\x7f\x21\x5d\x2a\xb6\xc8\x2b\xb8\x6f\xc0\xeb\xd7\x9d\xfe\x3b\x87\xe9\xa8\xf2\xfa\xa0\xae\xea\xb3\x52\xc1\x4a\x9f\xf7\x87\xa3\xe6\x71\xd6\xbb\x34\xb2\x6e\xe5\xb8\x90\xf1\xd7\x61\x67\xd0\x3c\x56\x52\x9a\xe2\xf1\x4d\xb5\x6d\x1e\x17\x8f\xb7\xfb\x17\x17\x9d\xf6\x68\x3a\xe8\x8c\x06\x1f\x9b\x5e\xe3\x95\xc3\x34\x1c\xb5\x06\x23\x18\x76\x5b\x1f\x3a\x2e\x39\x6f\x5b\x3e\xa6\x6c\x4a\xdf\xf4\x60\x9c\x69\x83\x02\x08\xf9\x8c\x18\x13\x19\xa7\xdf\x1a\x45\x98\x35\x66\x84\x44\xf4\x86\xd8\xf0\xd0\x4d\x2f\x6b\xc5\x48\x00\xf9\xe8\x2f\xe7\x5a\xae\xed\x47\x9a\x66\x48\xba\xf3\x09\xc9\x7a\xb7\xe6\xae\x89\x23\xb6\x01\x6d\x3a\xe1\x44\x12\x8d\xaa\x69\x7d\x54\xfe\x7f\x37\x07\x8d\x46\x54\xdc\x1f\x34\x1a\xbd\x4d\x87\x90\x19\x7e\xaf\xcd\xcb\xe1\xc3\x28\x36\xb7\xa7\x4c\xf9\xf0\xe5\x6b\x01\xdf\xde\x39\x27\x23\xf5\x68\xec\x42\xca\xb7\x6b\xd9\xa4\x6d\x4e\x59\x34\x5a\x9f\xf1\x53\x04\xe4\xde\x21\x7f\xcf\xff\xee\xa1\xde\xe6\x14\xad\x7b\x32\x44\x6d\x1b\x84\x01\xd2\xf0\x4a\x31\x83\x7d\x11\xe0\xb6\x07\xd0\x46\x2a\xba\xb0\x53\x69\x9d\x5d\x4c\x84\x38\xa7\x09\x37\xa5\x83\x3e\x2d\xf2\xe8\x5a\x8d\x75\xdd\x19\x2b\x11\x42\x4a\xee\x95\x49\x2c\x39\x0b\x6e\xeb\x2b\x6f\x86\x86\x6e\x6e\x4e\x2e\x65\x78\xca\xb4\x4a\x62\x9b\x63\xde\x26\xe1\x22\x7f\x83\xe2\x38\x84\xc4\xe1\xac\xe4\x5e\x67\xc4\xe1\x6c\xef\x6e\x25\x62\xa2\xb5\xa2\x8c\xd3\x19\x47\x1f\x9e\x97\xf2\x17\x29\xf7\xef\x51\x9c\xbb\x90\xbf\x02\x00\x00\xff\xff\x48\xaa\x29\x27\xdc\x11\x00\x00") - -func testE2eTestingManifestsStatefulsetMysqlUpgradeStatefulsetYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetMysqlUpgradeStatefulsetYaml, - "test/e2e/testing-manifests/statefulset/mysql-upgrade/statefulset.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetMysqlUpgradeStatefulsetYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetMysqlUpgradeStatefulsetYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/mysql-upgrade/statefulset.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetMysqlUpgradeTesterYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x52\xbb\x6e\x1b\x31\x10\xec\xef\x2b\xf6\x07\xa8\x87\xd3\x08\xec\x6c\x08\x48\xe3\x42\x80\x81\xf4\x7b\xe4\x40\xb7\x30\x8f\x64\xc8\xd5\x05\x97\xaf\x0f\xce\xb6\x64\x9e\xad\x2a\x5b\x72\x38\xcb\x19\xce\x70\x96\x5f\x28\x55\x52\xb4\xc4\x39\xd7\xed\xb4\xef\x5e\x25\x7a\x4b\x47\xe4\x90\xe6\x11\x51\xbb\x11\xca\x9e\x95\x6d\x47\x14\x79\x84\xa5\x71\xae\xbf\x83\x51\x54\x35\x15\x65\x42\xe9\x6a\x86\x5b\xf0\x82\x1c\xc4\x71\xb5\xf4\xa3\x23\xaa\x08\x70\x9a\xca\x82\x10\x8d\xac\x6e\x78\xe6\x1e\xa1\xbe\x1f\xd0\xf2\xa6\xa5\x76\x0f\x91\x62\xcc\x81\x15\x1f\x9c\xe6\xed\x65\xc2\x8a\x7e\x77\x01\xd1\x55\xcc\x32\x2e\x45\x65\x89\x28\x37\x92\xf9\x30\xf1\x95\xb5\x8c\x8c\x7c\x86\xa5\xd7\x43\xdd\x9c\x5d\xd9\x48\xda\xbe\x5b\xc5\x03\xde\xec\xda\xdd\x66\xbf\xbe\x7c\xba\x84\x70\x4a\x41\xdc\x6c\xe9\x31\xfc\xe1\xb9\xde\xf0\x9c\x8a\x36\x52\xcd\xa7\x96\x53\x2a\x6a\xe9\xb0\x3b\xec\x6e\x68\x01\x7b\x89\xa8\xf5\x54\x52\x8f\x4f\x16\xd1\xa0\x9a\x7f\x42\xdb\x23\xa2\xcc\x3a\x58\xda\x0e\xe0\xa0\xc3\xdf\x35\xf4\x7d\x39\x91\x44\x51\xe1\x70\x44\xe0\xf9\x05\x2e\x45\x5f\x2d\x3d\x34\x17\x32\x8a\x24\xdf\x40\xc6\x98\xae\xad\x47\x7e\x33\xb9\x9d\xf6\x3d\x94\xaf\x2d\x39\x25\x7f\x94\x5a\x2e\x59\x25\xc5\xa7\x8b\x3f\xe3\x5e\x5d\x96\x9f\x43\x31\xd9\xf7\xdd\x3a\xc1\xec\xfb\x75\x0e\xd7\xe4\x46\x89\x8f\x13\x4b\xe0\x3e\xc0\xd2\xfe\xbf\xaa\xf4\xd5\xc0\xad\xda\x2f\x28\x93\x38\xac\x84\xb6\xaa\xee\x74\xea\x7b\x63\xae\x4a\x9b\x90\xcd\xfa\xeb\xd7\x8a\xef\x35\x7d\xce\xb0\xf4\x9c\xd8\x3f\x71\xe0\xe8\x50\xba\x7f\x01\x00\x00\xff\xff\xb1\x05\xcf\x25\x90\x03\x00\x00") - -func testE2eTestingManifestsStatefulsetMysqlUpgradeTesterYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetMysqlUpgradeTesterYaml, - "test/e2e/testing-manifests/statefulset/mysql-upgrade/tester.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetMysqlUpgradeTesterYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetMysqlUpgradeTesterYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/mysql-upgrade/tester.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetNginxServiceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x8c\x41\x0a\x02\x31\x10\x04\xef\xf3\x8a\xfe\x80\xa0\x37\x99\x1f\x78\x11\x41\xf0\x3e\x9b\x6d\x24\x98\x9d\x84\x24\xae\x3e\x5f\x36\xe2\xc5\x5b\x53\xd5\x94\x95\x78\x63\x6d\x31\xbb\x62\x3d\xc8\x23\xfa\xac\xb8\xb2\xae\x31\x50\x16\x76\x9b\xad\x9b\x0a\xe0\xb6\x50\xe1\xf7\xe8\x6f\x01\x92\x4d\x4c\x6d\xe3\x80\x95\xf2\x13\xad\x30\x6c\xb0\xe4\xda\x87\xdd\x8d\xa9\x38\xee\xc7\xf5\x1b\x79\x71\x12\x20\xa4\x67\xeb\xac\xa7\x8b\xe2\x9c\x9d\x02\x34\x26\x86\x9e\xeb\x7f\xf6\x13\x00\x00\xff\xff\x5f\xaa\x8f\x5a\xa4\x00\x00\x00") - -func testE2eTestingManifestsStatefulsetNginxServiceYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetNginxServiceYaml, - "test/e2e/testing-manifests/statefulset/nginx/service.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetNginxServiceYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetNginxServiceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/nginx/service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetNginxStatefulsetYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\xcd\x8e\xd3\x40\x10\x84\xef\xf3\x14\xad\xdc\x1d\x13\x10\x12\x9a\x2b\x07\x2e\x2c\xac\x58\x04\x07\xc4\xa1\x33\x2e\xe2\xd1\xce\x1f\xd3\xed\x84\xc7\x47\xe3\xb5\xb3\xde\x4d\x1f\x7b\xbe\xaa\x6a\x97\xb9\xf8\x1f\xa8\xe2\x73\xb2\xc4\xa5\x48\x7f\x3e\x1c\xa1\xfc\xd6\x3c\xfa\x34\x58\x7a\x50\x56\xfc\x99\xc2\x03\xd4\x44\x28\x0f\xac\x6c\x0d\x51\xe2\x08\x4b\x17\x1c\x8d\x14\xb8\xb6\x11\xd4\xb3\x77\xf8\x32\x3f\xec\xd2\xc9\xa7\x7f\x3b\x43\x54\x51\x82\x77\x2c\x96\xde\xcd\x50\x80\xd3\x5c\x9b\x80\x28\xb2\xba\xf1\x33\x1f\x11\xe4\x69\x41\xed\x04\x4b\xb3\xd8\x10\x29\x62\x09\xac\x58\xe8\x4d\x7c\x9b\xf0\x42\xf8\x4a\x4a\xb4\xde\xd5\xc6\xe5\xa4\xec\x13\xea\x15\xef\x96\x2f\x78\xe6\xdb\xf8\xc8\xa7\x75\x69\x0f\xfb\xc3\xfb\x8e\x43\xf1\x09\x57\xa0\xe4\xaa\x9b\xc8\xee\xd9\xf9\x3e\x57\xb5\xf4\xe1\xcd\xf5\x6d\xdb\xd1\xba\x39\xe7\x30\x45\xdc\xe5\x29\xbd\x74\x59\xc8\xcb\x65\xa3\x8e\x8d\xba\x67\x1d\x2d\xf5\x93\xd4\x5e\x46\xae\xe8\xe7\xd3\xfa\x51\x63\x30\xab\xdd\xc7\xc0\x3e\x7e\x5f\xaa\x9a\x6d\xbb\x9b\xae\x5e\x07\x70\x4a\x59\x59\x7d\x4e\x9b\x3b\x9e\xec\xf6\xed\xf7\xef\x1f\xa7\x23\x6a\x82\x42\xf6\x3e\xf7\xa2\xb9\xf2\x09\x9d\x0b\x2c\xb2\xf4\xd3\x89\xbb\xe9\x99\x9d\x83\xc8\x5d\x1e\x20\x96\x7e\xd1\xee\x1b\x78\xf8\x59\xbd\xe2\x6b\x72\xd8\xd1\xef\x05\xab\x90\x3c\x55\x87\x4d\x76\xc5\xdf\x09\xb2\x6d\x85\x68\x49\xb5\x74\xf8\xe4\xcd\xff\x00\x00\x00\xff\xff\x27\x2f\xbe\x99\xa8\x02\x00\x00") - -func testE2eTestingManifestsStatefulsetNginxStatefulsetYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetNginxStatefulsetYaml, - "test/e2e/testing-manifests/statefulset/nginx/statefulset.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetNginxStatefulsetYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetNginxStatefulsetYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/nginx/statefulset.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetRedisServiceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x8d\x41\x4b\x03\x31\x10\x85\xef\xf9\x15\x0f\x7a\x13\x0c\x88\xa0\x98\x5b\xc1\x8b\x97\x45\x2c\x78\x9f\x26\x4f\x1a\x4c\x37\x61\x66\x76\xc1\x7f\x2f\xdd\xea\xa9\xb7\x99\xf7\xcd\x37\x6f\x87\x3d\x4e\x94\xd2\x68\x06\xa3\xae\x35\x13\xde\x91\x95\xe2\xc4\xeb\x74\x80\x32\x77\x2d\x16\x64\xd4\x4f\xaa\xd5\x3e\x27\xac\x0f\xe1\xbb\xce\x25\xe1\x70\x55\xc2\x99\x2e\x45\x5c\x52\x00\x66\x39\x33\x41\x59\xaa\x05\xa0\xc9\x91\xcd\x2e\x39\x20\x63\xfc\x03\x1b\xcc\x97\x70\x74\xf5\x8d\xde\x6f\x63\xc2\xd3\xe3\xf3\xcb\x76\x7c\x7d\x33\x48\x0d\xc0\x0e\x77\x71\x13\x63\xe1\x97\x2c\xcd\xa3\xad\x39\xe6\xb6\x98\x53\x63\xeb\x59\x5a\x00\xfe\xf6\xb7\xf7\x84\xa9\xcf\x0c\x80\xb1\x31\x7b\xd7\x9b\x7e\x60\x2c\xc7\x56\xed\x34\x75\xff\xa0\x94\x9f\x7d\x29\x4a\x33\x5a\x82\xeb\xc2\xf0\x1b\x00\x00\xff\xff\x74\x30\x5a\xc0\x1a\x01\x00\x00") - -func testE2eTestingManifestsStatefulsetRedisServiceYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetRedisServiceYaml, - "test/e2e/testing-manifests/statefulset/redis/service.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetRedisServiceYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetRedisServiceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/redis/service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetRedisStatefulsetYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x55\x4d\x6f\xdb\x38\x10\xbd\xeb\x57\x0c\x84\x3d\xec\x1e\x64\xc1\x09\xb2\x8b\x25\xe0\x43\x90\x64\xf7\xd2\x24\x46\x5c\xb4\x87\xa2\x28\x68\x6a\x6c\xb3\xa1\x48\x96\x33\x72\x6a\x14\xfd\xef\x05\x25\x5b\xa6\x64\xb8\xcd\xb1\x3c\x09\x33\xf3\xde\x7c\xf0\x8d\x28\xbd\x7e\x87\x81\xb4\xb3\x02\xa4\xf7\x54\x6e\xa7\xd9\xb3\xb6\x95\x80\x05\x4b\xc6\x55\x63\x16\xc8\x59\x8d\x2c\x2b\xc9\x52\x64\x00\x56\xd6\x28\x20\x54\x19\x79\x54\xd1\x40\x18\xb6\x5a\xe1\x43\x6b\xcf\x03\x56\x9a\xf2\x0c\x20\xa0\x37\x5a\x49\x12\x70\xd9\x06\x19\x54\xec\x42\x04\x00\xd4\x92\xd5\xe6\x8d\x5c\xa2\xa1\xce\x00\x31\xb9\x80\x16\x9c\x01\x30\xd6\xde\x48\xc6\x7d\x74\x92\x3d\x1e\x33\x00\x8e\xa0\x00\x87\xba\xe2\xd1\x56\xf3\x8d\xb3\x2c\xb5\xc5\xd0\x43\x8a\x7d\x13\xda\x12\x4b\x63\x7a\x22\x5d\xcb\x35\x0a\x58\xab\x30\xd1\xae\x7c\x6e\x96\x18\x2c\x32\x52\x81\x17\x58\x30\x12\x17\x6d\x04\x95\x1e\x99\xca\x36\x63\xb1\xe7\xc0\x20\xa6\x93\x8b\x21\xd3\xbc\x31\x66\xee\x8c\x56\x3b\x01\xd7\xe6\x45\xee\xe8\x58\x72\x58\x27\x0d\x14\x90\x17\x07\xa2\x42\x5b\x76\xb3\xd2\x79\xce\x87\xfe\x17\x17\x9e\x8b\x4a\x87\x59\x79\xf8\x3a\x06\x6c\x9d\x69\x6a\xbc\x77\x8d\xe5\x01\x6d\xd7\xa6\xf3\xdc\xdb\x00\xea\x18\x35\x97\xbc\x11\x90\x8f\xd3\x74\xf1\x91\xbf\xd2\xe1\x1c\x66\x9c\xfe\x00\x5b\x3a\xc7\xc4\x41\xfa\xf1\x3c\x2b\x5c\x6a\x69\xc5\x67\x24\xd2\xd8\x3b\x95\xab\x6b\x69\xab\xc1\x14\x7a\xee\xd2\x23\x86\x62\xa5\x6d\x85\x49\x9b\xe3\xa9\x15\xce\x16\xc4\x32\xf0\x2c\x41\x1e\x6c\x13\xda\x0c\x27\xb8\xd7\xe9\xac\x57\x68\x77\xd0\x6e\x4f\x47\x36\x7f\xbc\xfd\xf4\x70\x7d\x7f\xb7\x98\x5f\xdf\xdc\x25\x83\xd8\x4a\xd3\xe0\x7f\xc1\xd5\x22\x31\x02\xac\x34\x9a\xea\x09\x57\x43\x6b\x54\xe6\x71\xbb\xb6\xd3\x91\xb3\x05\x75\x43\x3d\x28\x7c\x12\xb3\x93\x97\x0a\x7f\x8f\xab\x55\x67\x57\xe7\xb8\x6e\xbf\xbc\x68\xef\xc2\xb0\xf4\x9e\x75\xee\x02\x0b\xf8\xfb\xf2\x9f\x7f\x93\x82\x3a\xfe\x78\xff\x3f\x93\x4a\x6c\xaf\xdb\xc0\xfd\x1e\xc6\xdb\x4d\x20\x63\xa9\x8c\xe3\x27\xca\xd9\x55\xef\x0f\x28\x2b\x6d\x91\x68\x1e\xdc\x12\xd3\x5b\xc4\xaf\xc7\x9f\xc9\x99\x62\xba\x04\xb4\x19\x19\x0a\x35\x32\xe4\x27\x35\x2b\xa3\xa1\xd8\xc0\x1f\x7f\x6e\x1c\x71\xec\xfb\x2f\xf0\xda\xae\xf3\x04\x18\x7f\x60\x5a\x9a\x5b\x34\x72\xb7\x40\xe5\x6c\x45\x02\xa6\x57\x49\x04\xeb\x1a\x5d\xc3\xbd\xf3\xea\x95\xd2\x89\x7a\x3b\x2b\x85\x32\x7a\x5f\xaf\xb6\xf2\xe8\xe9\x92\x9e\xe8\x25\x85\x62\xed\x79\x77\xab\x83\x80\x6f\xdf\x47\x61\x63\x7d\x8e\x42\x3b\xf2\x1b\x23\x75\xfd\x76\xff\x44\xb4\x99\x8a\x93\x37\xe2\xb4\xc7\xf4\x59\x90\x4a\x21\xd1\xbd\xab\x90\x04\x7c\x80\xfc\x09\x65\xf5\x3e\x68\xc6\x47\xab\x30\x87\x8f\xd9\x41\x16\xe4\x9a\xa0\x30\x99\x5e\xc0\x2f\x0d\x52\x3a\x4f\x00\x62\x17\x5a\xfd\x4f\xff\xd7\xd9\x8f\x00\x00\x00\xff\xff\x4e\x22\x9b\xab\x51\x07\x00\x00") - -func testE2eTestingManifestsStatefulsetRedisStatefulsetYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetRedisStatefulsetYaml, - "test/e2e/testing-manifests/statefulset/redis/statefulset.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetRedisStatefulsetYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetRedisStatefulsetYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/redis/statefulset.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetZookeeperServiceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\x8e\xb1\x6a\x03\x31\x10\x44\x7b\x7d\xc5\x80\xbb\x80\x0f\x92\x34\x87\x3a\x43\x9a\x34\x47\x88\x21\xfd\x5a\x9a\x60\x71\xf2\x49\xec\xea\x0e\xe2\xaf\x0f\x96\x53\xc4\xdd\xee\x7b\xbb\xc3\xec\x70\xc0\x99\x12\x33\xcd\x60\xd4\x2d\x05\xa2\x15\x04\xa5\x34\xe2\x6d\x3a\x42\x19\x8a\x46\x73\x52\xd3\x17\xd5\x52\x59\x3c\xb6\x67\x37\xa7\x25\x7a\x1c\xef\x2f\xee\xc2\x26\x51\x9a\x78\x07\x2c\x72\xa1\xc7\x75\x76\x40\x96\x13\xb3\xdd\x20\x20\xb5\x76\x6a\x95\xe1\x46\x6a\xd1\xd6\xd5\xbe\x8f\x1e\x2f\xe3\x38\xf6\xcb\x7b\x40\x25\xf5\x9f\x7d\x7d\xb4\x99\x12\xa9\x7b\x66\x86\x96\xca\xe2\x80\x1d\x9e\x86\xeb\x3c\x44\x7e\xcb\x9a\xdb\x60\x5b\x18\x42\x5e\xad\x51\x87\x5c\x82\x64\x07\xfc\xed\xef\x1f\x1e\x53\x59\xe8\x00\xeb\x01\x45\x1f\x2b\x02\x75\x3d\xe5\x64\xe7\xa9\xb4\x4f\x4a\xfc\x39\xc4\xa8\x34\xa3\x79\x34\x5d\xe9\x7e\x03\x00\x00\xff\xff\xf5\xf5\x6e\xd6\x37\x01\x00\x00") - -func testE2eTestingManifestsStatefulsetZookeeperServiceYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetZookeeperServiceYaml, - "test/e2e/testing-manifests/statefulset/zookeeper/service.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetZookeeperServiceYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetZookeeperServiceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/zookeeper/service.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStatefulsetZookeeperStatefulsetYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x55\x4d\x8f\xdb\x36\x10\xbd\xeb\x57\x0c\xd4\x33\x2d\x38\x8b\x00\x0b\x02\x7b\x58\xec\xa6\xbd\x74\x13\x23\x2e\xda\x43\x51\x14\xb4\x34\xb6\xb9\xa6\x38\xec\x70\xe4\x74\x5d\xf4\xbf\x17\x92\x25\x99\xb2\x63\x23\x45\xab\x93\x30\xf3\xde\x7c\xf1\x0d\x69\x82\xfd\x19\x39\x5a\xf2\x1a\x4c\x08\xb1\xd8\xcf\xb3\x9d\xf5\x95\x86\xa5\x18\xc1\x75\xe3\x96\x28\x59\x8d\x62\x2a\x23\x46\x67\x00\xde\xd4\xa8\xe1\x40\x94\xc5\x80\x65\x6b\x89\xc8\x7b\x5b\xe2\xc7\xce\x91\x1f\x76\x79\x06\xc0\x18\x9c\x2d\x4d\xd4\x70\xd7\x21\x1c\x96\x42\xdc\xa2\x01\x6a\x23\xe5\xf6\x47\xb3\x42\x17\x8f\x06\x68\x53\x6b\x38\xec\x32\x00\xc1\x3a\x38\x23\xd8\x43\x93\xc4\xed\xe7\x26\xac\x94\x07\x30\x94\xd3\x7e\xd6\x5b\x79\x22\x2f\xc6\x7a\xe4\x11\xaf\xfa\xe2\xad\x8f\x62\x9c\x1b\xa3\xd8\xda\x6c\x50\xc3\xa6\xe4\x99\xa5\x62\xd7\xac\x90\x3d\x0a\x46\x85\xef\x50\x09\x46\x51\x1d\x22\x16\x01\x25\x16\x07\xa2\x1d\x62\x40\x56\x7d\x1c\x64\x3d\x9f\xdd\x4d\xa3\x2d\x1a\xe7\x16\xe4\x6c\xf9\xa6\xe1\xd1\x7d\x31\x6f\xf1\x54\x33\x6f\x92\x0e\x14\xe4\x6a\x08\xa4\xac\x17\x7a\x28\x28\x48\x3e\xf5\x7f\x21\xde\xa9\xca\xf2\x43\x31\xfc\x9d\x00\x7b\x72\x4d\x8d\x2f\xd4\x78\x99\x84\x3d\xb6\x4a\x41\x46\x1b\x40\xdd\xa2\x16\x46\xb6\x1a\xf2\x36\x4d\x91\x5f\x10\xda\x04\x95\xe5\x6b\xa4\xf3\xfc\x03\x6d\x45\x24\x51\xd8\x84\xf3\xa1\xbe\x9a\xbd\xd1\x14\xd0\xbf\x56\x3b\x75\xaf\x5e\x19\x47\x44\x49\x75\x6d\x7c\x35\x99\xc5\x98\xa0\x08\x88\xac\xd6\xd6\x57\x98\x34\x7b\x3e\x3b\x45\x5e\x45\x31\x2c\x0f\x09\x73\xb0\xcd\xe2\x76\x3a\xc7\x5e\xa8\x0f\x47\x89\x1e\x3f\xf4\xfb\xcb\xa9\x2d\x3e\x3d\xff\xfe\xf1\xf1\xe5\xc3\x72\xf1\xf8\xf4\x21\x19\xc5\xde\xb8\x06\xbf\x67\xaa\x75\x62\x04\x58\x5b\x74\xd5\x67\x5c\x4f\xad\xad\x3a\x4f\xcb\xb5\x9f\x9f\x39\x3b\xd2\x71\xac\x83\xca\x67\x6d\xf6\x18\x4c\x89\xff\xcb\xe9\xfe\xe7\xc3\x3d\x11\xdb\xea\x6e\x10\xa5\x0e\xa7\xb5\x18\xd8\xe5\xd5\xfd\xeb\x17\x36\x51\x49\x2f\x10\x3d\x15\x48\x20\x9e\x76\x3d\x86\x5c\x10\x8b\x86\x77\xf7\xf7\xf7\x49\x49\xc7\xe0\xad\x6e\xae\x53\xee\xbe\x46\x71\x68\x2a\x64\xd5\x5d\x52\x96\xfc\x2d\x81\x76\x5b\x33\xb6\x5a\xac\xac\x2f\x0e\xbb\x25\xf2\x1e\x79\x16\xb7\x57\x75\xda\xe9\x51\xad\x89\x71\xc3\xd4\xf8\x6a\x74\x31\x9a\xca\x7a\x8c\x71\xc1\xb4\xc2\x54\x40\xf8\xe7\xe9\x3a\xbb\x52\x4e\x1f\x7b\x7b\x66\x50\xe5\x99\x21\xff\x6a\xd5\x4f\xce\xce\xe2\x16\x5c\x84\xe4\x1a\x38\x5e\x9d\xd6\xb8\x67\x74\xe6\x6d\x89\x25\xf9\x2a\x6a\x98\xbf\x4f\x10\x62\x6b\xa4\x46\x46\xe7\xfb\x6f\x54\xeb\x4d\x11\x4d\x35\xf4\xed\x4a\x2f\x52\xcf\x77\xd0\xe5\x06\xd9\x22\x0c\x62\x86\xd7\x26\x0a\xac\x89\xa1\xc2\x55\xb3\xd9\x58\xbf\xf9\x77\x7b\x31\xae\x45\x96\x36\x79\x21\xea\xb4\x0e\xac\x83\xbc\x3d\x5b\xd6\xf0\xd7\xdf\xd9\xed\x54\x67\xd0\x63\xf0\x27\x67\x6c\xfd\x53\xff\x12\x76\x99\xd4\xc5\x53\x78\x39\xd3\xf4\x01\x34\x65\x89\x31\xbe\x50\x85\x51\xc3\xaf\x90\x7f\x46\x53\xfd\xc2\x56\xf0\x93\x2f\x31\x87\xdf\x7a\x18\x63\xa4\x86\x4b\x4c\x4e\x8b\xf1\x8f\x06\x63\x7a\x7e\x00\x51\x88\xbb\x3d\x9d\xff\x60\xb3\x7f\x02\x00\x00\xff\xff\x73\x38\x7a\x58\x33\x08\x00\x00") - -func testE2eTestingManifestsStatefulsetZookeeperStatefulsetYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStatefulsetZookeeperStatefulsetYaml, - "test/e2e/testing-manifests/statefulset/zookeeper/statefulset.yaml", - ) -} - -func testE2eTestingManifestsStatefulsetZookeeperStatefulsetYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStatefulsetZookeeperStatefulsetYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/statefulset/zookeeper/statefulset.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x8d\xb1\x4e\xc5\x30\x0c\x00\x77\x7f\x85\x25\x66\xb7\x52\x85\x28\x74\x67\x05\x89\x0e\xcc\x56\xe3\xb4\x29\x25\x8e\xe2\x24\x45\x7c\xfd\x53\xc7\xb7\xbf\xed\x74\xc3\xdd\x13\xce\x22\x58\x36\xc1\xcf\xef\x8f\xf7\xaf\x19\x9d\x2e\x86\x5c\x70\x2b\x25\xd9\xd4\xf7\xab\x76\x3f\xaf\xd6\x05\xed\xf5\x8c\x92\x0d\x80\x53\xca\xda\x24\xdb\x04\x84\xc6\xec\x88\x8f\x00\x84\x59\xb5\x78\x03\xc2\x35\x56\x1f\xc4\x01\xe1\x1e\xe2\xfa\x57\xdf\xc6\x0b\x8d\x7d\xe6\x28\x40\xf8\x6b\x5c\x9f\x07\x20\x74\xdc\x82\xfb\x7f\x19\x46\xc8\xd2\x82\x9c\x8f\x68\xee\xe2\x7d\xe3\xb8\x5c\x72\xd1\x24\xbb\x46\x20\x6c\x92\xeb\x51\xee\x96\xb7\x00\x00\x00\xff\xff\xc7\x4a\x9f\xf8\xfa\x00\x00\x00") - -func testE2eTestingManifestsStorageCsiOwnersBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiOwners, - "test/e2e/testing-manifests/storage-csi/OWNERS", - ) -} - -func testE2eTestingManifestsStorageCsiOwners() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiControllerRoleYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x8f\xb1\x0e\xc2\x30\x0c\x44\x77\xbe\xc2\x52\x57\x5a\xef\xfd\x0c\xfe\xc0\x49\x0c\x89\x48\xe3\xc8\x76\x2b\xfa\xf7\x8c\xad\xc4\x02\x03\xeb\x9d\xee\xde\xdd\x00\x37\xee\x95\x22\x27\x08\x3b\x94\x96\xca\x56\xd2\x4a\x15\x54\x2a\x1b\xdc\x45\x81\x5f\xce\xda\xa8\x8e\xe4\x4e\x31\xb3\x5e\x0f\xa9\xab\x6c\xc5\x8a\x34\x56\xa0\x96\x0e\xc3\x1a\x75\xcb\xe2\xce\x3a\x5f\x06\x18\x21\xbb\x77\x9b\x11\x1f\xc5\xf3\x1a\xa6\x28\x0b\x3e\xd7\xc0\xda\xd8\xd9\xc6\x68\x05\x3f\x38\x18\xaa\x04\x5c\xc8\x9c\x15\x13\xf7\x2a\xfb\x29\x83\x1a\x28\x4e\x3b\x2d\xf5\xd7\xfe\xd3\xe8\x7f\x21\x4e\xf7\xbf\x45\xbc\x03\x00\x00\xff\xff\x7b\xf7\xef\xf6\x8a\x01\x00\x00") - -func testE2eTestingManifestsStorageCsiControllerRoleYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiControllerRoleYaml, - "test/e2e/testing-manifests/storage-csi/controller-role.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiControllerRoleYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiControllerRoleYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/controller-role.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiExternalAttacherRbacYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x55\xdf\x8b\x1b\x47\x0c\x7e\xdf\xbf\x42\xdc\xbe\xb4\xe0\xb5\xc9\x5b\x71\x9f\x2e\x47\x5b\x02\x2d\x94\x5c\x09\x94\x12\x88\x3c\xa3\xf5\xaa\x9e\x9d\x59\x24\x8d\x9d\xcb\x5f\x5f\x66\xd6\xbe\x1f\x39\xa7\xb9\xe4\x1a\xe8\x93\x07\x59\xab\x4f\xfa\x24\x7d\x6a\xe1\x8f\x81\x15\xfe\xbc\xfc\xed\x57\xe8\x39\x10\xb8\x14\x0d\x39\x2a\x60\x08\xf0\xfa\xe5\xe5\x15\xa4\xcd\xdf\xe4\x4c\xc1\x06\x34\x40\x21\x88\xe4\x48\x15\xe5\x06\x2c\x81\xe4\x08\xf4\xde\x48\x22\x86\xa6\x85\xab\xeb\x57\x80\x66\xe8\x06\x92\x65\xd3\x36\x2d\xbc\x8a\x30\x49\xf2\xd9\x19\xa7\xb8\x00\x42\x37\x54\x2f\x2f\xbc\x27\x01\x4f\x53\x48\x37\x23\x45\x83\x01\xb5\x44\xdc\x10\xb8\xac\x96\x46\xfe\x40\x7e\xdd\xb4\xd0\x15\x2b\xee\x13\xfb\x92\x5d\x1f\xd8\x99\x2e\x20\x2b\x41\x4c\xb1\xf3\xd4\x63\x0e\x06\x11\x47\xd2\x09\x1d\x01\x46\x0f\x9e\xfb\x9e\xa4\x44\xad\xf6\xa6\x05\x80\x3e\x49\xfd\xe2\xd6\xd3\x03\x45\x63\x63\x52\x08\xbc\x23\xb0\x81\xe0\x2a\x64\x35\x92\xd7\x29\x50\x85\xf6\xe4\xd8\x13\x1c\x06\xb2\x81\xa4\xba\xdc\x4b\x59\x68\x0a\xec\xd0\x48\xeb\x3f\x27\x22\x4a\x81\x15\xf2\x44\xc5\x02\x38\xc2\x61\x60\x37\x80\x43\x25\x08\x84\x9e\x44\x07\x9e\x80\x02\x55\x6a\x60\xcc\x6a\xa5\x78\x8a\xb8\x09\xe4\x7f\xac\x01\xac\x74\x87\x63\x1f\x32\x45\x77\x44\xa9\x5d\x51\xb2\x3c\x2d\x40\x89\x60\x43\x21\x1d\x9a\x06\x27\x7e\x43\xa2\x9c\xe2\x1a\xf6\x2f\x9a\x1d\x47\xbf\x86\x6b\x92\x3d\x3b\xba\x74\x2e\xe5\x68\xcd\x48\x86\x1e\x0d\xd7\x0d\x54\x62\xd6\xe0\x94\xbb\x53\x96\x0d\x40\x5b\x4b\x2a\x2c\x1e\xd8\x86\x4f\x10\x5c\x5e\xc7\x00\xd5\xb0\x86\xa3\x4f\xd3\x74\x5d\xd7\xb4\x70\x79\x0c\x78\x5b\x53\xa9\xa8\x74\xf1\x90\x64\x37\x47\xfe\xfd\x8d\x2e\x20\x26\x4f\x5a\xfb\xf5\x26\x85\x3c\xd2\xfc\x5d\x61\x56\x8f\xf9\xdf\x6f\xc7\xfd\x02\x65\x83\x6e\x89\xd9\x86\x24\xfc\x01\x0b\x7f\xcb\xdd\x0f\xba\xe4\xb4\xda\xbf\x38\x53\xe5\xa9\x31\xb7\xa5\x76\x92\x63\x24\x69\x24\x07\xd2\xe2\xd7\x01\x4e\xfc\x8b\xa4\x3c\xe9\x1a\xfe\xba\xb8\x78\xdb\x00\x00\x08\x69\xca\xe2\xa8\xda\xa6\x02\xae\x46\xd1\xf6\x35\x5b\x3d\x3a\xed\x49\x36\xd5\x61\x4b\x76\xb1\x80\x8b\xc0\x5a\x7f\x0f\x68\x6e\x28\x8f\x3c\x79\x34\x2a\xaf\xa9\x9a\xde\x3e\x0d\xaf\xb2\xf3\x24\x8c\x33\x01\xd5\x92\xe0\x96\x8e\xac\x9c\x0b\xef\x94\xbf\x31\xc2\x4c\x13\xde\x35\xf5\x3f\x24\xec\x2b\xd0\x57\x6a\x68\xf9\x51\x12\x27\x88\xf6\x9a\x9c\x90\xc1\x44\x32\xb2\x96\x31\x03\x56\x48\x53\x19\x2e\x0c\xcb\xa6\xfd\xa9\x2e\x26\xb0\x01\xf7\x70\x93\x32\x44\x22\x0f\x7b\x0c\x99\xa0\x97\x34\x82\xd6\x00\xcb\xa6\xfd\x39\x09\xd0\x7b\x1c\xa7\x40\x8b\xea\x39\xe0\x9e\x60\x47\x37\xf0\xce\x29\x2f\x1f\xe6\xbe\x2a\x92\x2b\x29\x04\x92\x6e\xca\x9b\xc0\x3a\x74\x73\xa4\xaa\x54\xef\x8a\x74\x5c\xcf\x5f\x5c\x05\x54\x5d\x4e\x28\x38\x92\x91\x68\xd3\x96\xfd\x1f\xcc\x26\x5d\xaf\x56\xbb\xbc\x21\x89\x64\xa4\x5d\x41\xd9\xb2\x0d\x79\x53\x00\x7c\x72\xba\x9a\x43\x6a\x87\xd1\x77\x4e\xc8\x17\xe9\xc3\xa0\xcb\xc1\xc6\x22\xdc\x67\x06\xb2\x7d\x44\xe9\x31\xc6\xe9\xbf\xb3\x7d\x7c\x3b\x8b\xc0\xa3\xf5\x7d\xc9\xd1\x73\xdc\x3e\x67\x8b\xef\x6b\x55\x27\x45\x12\x34\xcf\xc7\x69\xde\xe0\xb3\x92\x57\x12\x3d\x2b\x75\x5f\x26\x76\x67\xe5\xae\xe4\xf0\x9a\xfa\x82\xfe\x58\xae\x3e\xab\x3d\x70\xcb\xf8\xbf\x30\xf1\x05\x92\x5a\x8e\x23\x6f\x47\x9c\x14\x92\x94\x13\xa3\x54\x6e\x47\xbd\x19\x2e\xcb\xdd\x35\x2c\x45\x34\x6d\x99\xe2\xef\x8a\xf6\xa6\x18\x6e\x80\xfb\xef\xcf\x5e\x25\xd6\xd3\x41\x3a\xb6\xf4\xeb\xa5\xf8\x99\xb7\xe5\xd3\x7c\xba\x7e\x7b\x12\xf2\x8f\xa6\xd8\xa5\x24\x9e\xe3\xfd\xac\xea\xfa\x3f\x98\xea\x99\xa9\x6a\xff\x78\xa2\x6f\x15\xe9\x24\x51\x9e\x02\xcd\xca\x74\xa7\x51\x4e\xa8\xbc\x1e\x0c\xfe\xb7\x9a\xf8\x5a\xeb\xb3\xa9\xfc\xbf\xad\xcd\x67\xf6\x65\xae\xf9\x29\xcb\xf2\x4f\x00\x00\x00\xff\xff\x80\xf5\x0a\x99\xcf\x0a\x00\x00") - -func testE2eTestingManifestsStorageCsiExternalAttacherRbacYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiExternalAttacherRbacYaml, - "test/e2e/testing-manifests/storage-csi/external-attacher/rbac.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiExternalAttacherRbacYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiExternalAttacherRbacYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/external-attacher/rbac.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiExternalProvisionerRbacYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x56\x41\x6f\xe3\x36\x13\xbd\xeb\x57\x0c\xac\xcb\xf7\x01\x96\x8b\xbd\x15\xea\x29\x1b\x14\xc5\x02\x5b\xb4\xc8\x2e\x0a\x14\xc5\x02\x4b\x93\x23\x6b\x1a\x9a\x54\x39\x43\xb9\xd9\x5f\x5f\x0c\x2d\x3b\x4e\xa2\x24\xde\x4d\x0a\xf4\x26\x90\xd4\xbc\x79\x6f\xa8\xf7\x54\xc3\xc7\x9e\x18\x7e\xbf\xf8\xf9\x3d\x74\xe4\x11\x6c\x0c\x62\x28\x30\x18\xef\xe1\xea\xed\xc5\x25\xc4\xf5\x9f\x68\x85\x41\x7a\x23\x60\x12\x42\x40\x8b\xcc\x26\xdd\x80\x44\x48\x39\x00\xfe\x2d\x98\x82\xf1\x55\x0d\x97\x1f\xde\xc1\x90\xe2\x48\x4c\x31\x60\x5a\x55\x75\x55\xc3\xbb\xa0\x6b\x2e\x5b\xa1\x18\x96\x80\xc6\xf6\xe5\xa0\x4b\x34\x62\x02\x87\x83\x8f\x37\x5b\x0c\x02\xbd\x61\x2d\xba\x46\xb0\x99\x25\x6e\xe9\x0b\xba\xb6\xaa\xa1\xd1\x55\x33\x46\x72\xda\x60\xe7\xc9\x0a\x2f\x21\x33\x42\x88\xa1\x71\xd8\x99\xec\x05\x82\xd9\x22\x0f\xc6\x22\x98\xe0\xc0\x51\xd7\x61\xd2\xaa\x65\xbd\xaa\x01\xa0\x8b\xa9\xbc\x71\x3c\xe9\x00\x83\x90\x10\x32\x78\xba\x46\x90\x1e\xe1\xd2\x67\x16\x4c\x57\xd1\x63\x81\x76\x68\xc9\x21\xec\x7a\x94\x1e\x53\x39\x72\xd2\x72\xc2\xc1\x93\x35\x82\x5c\x76\x0e\x5a\x28\xc1\x02\x79\xa2\xc6\x12\x28\xc0\xae\x27\xdb\x83\x35\x8c\xe0\xd1\x38\x4c\xdc\xd3\x00\xe8\xb1\xa8\x03\xdb\xcc\xa2\xfc\x31\x98\xb5\x47\xf7\x43\xa9\x21\x3a\x23\x0a\x9d\xcf\x18\xec\x04\x54\x66\xc3\x28\x79\x58\x02\x23\xc2\x1a\x7d\xdc\x55\x95\x19\xe8\x37\x4c\x8a\xd7\xc2\xf8\xa6\xba\xa6\xe0\x5a\xf8\x80\x69\x24\x8b\x17\xd6\xc6\x1c\xa4\xda\xa2\x18\x67\xc4\xb4\x15\x14\x6d\x5a\xb0\x4c\xcd\x49\xa3\x15\x40\x5d\x88\xa9\x96\x3b\x92\xfe\x11\x99\xf5\x69\xaa\x51\x16\x5a\x98\xce\x54\x55\xd3\x34\x13\xf8\xa9\x9c\xa7\xdd\xa5\xb5\xb1\x2b\x93\xa5\x8f\x89\xbe\x18\x25\xbf\xba\xfe\x9e\x57\x14\xbf\x1b\xdf\xcc\xb4\x78\x10\xf6\xb4\xcf\x26\xe5\xa0\xed\xa6\xec\x91\xdb\xd2\xf5\xc7\x1e\xa1\x8b\xde\xc7\x1d\x85\x0d\xe8\x06\x70\x1f\xb3\x77\x2a\x6a\x0e\x36\x6e\x75\x6a\xe8\xca\x55\x18\x7c\xde\xe8\x5d\x2f\x57\x3b\xe1\x5f\x99\x12\x02\xa3\x4d\x28\x5c\xaa\x95\x43\x07\x3c\x0a\x9b\x55\x59\x6d\xc0\x0c\xf4\x53\x8a\x79\xe0\x16\xfe\x58\x2c\x3e\x95\x55\x80\x84\x1c\x73\xb2\x58\x56\xa7\x32\xc7\xcd\x11\xd3\xba\x6c\x6c\x50\x16\x4b\x58\x78\x62\x29\x9b\x73\xd5\xee\xd5\x1a\x54\x33\x16\x0c\x32\x46\x9f\xb7\xc8\xd3\xa1\xd9\x9a\x4b\x58\xec\x8c\xd8\x5e\x1f\x6c\x42\x23\xa8\x4f\x0e\x3d\x0a\x7e\x2b\xa0\xf5\x86\xb6\x67\xa3\xe6\xc1\x99\x79\x2c\x96\x98\xcc\x06\xa7\x41\xcf\x21\x4f\x27\xac\x37\xcc\x67\xf2\x3c\x93\x13\x8e\x18\xe4\x41\xc5\x27\x24\x9b\x68\x2c\x61\x31\x3c\x86\xc3\xc1\x0c\xdc\x47\x59\x3d\x4f\x6c\x9a\xdc\xf4\xc2\x93\xcc\x5e\x13\x48\xfd\x7c\x8e\xf7\x73\x78\xcf\xc2\x58\xa6\x10\xdd\xeb\x8e\xe8\x6b\x0a\xce\x3b\xcc\x5b\x0a\x8e\xc2\xe6\x25\x46\x73\xcf\x0b\x9b\xa4\xc6\xc5\x79\x9f\x82\x6d\x21\x32\xeb\xaa\xda\xf4\x63\x6e\xfa\x75\x7e\x3a\xeb\xa8\xda\xc6\x15\x76\xda\xc0\x43\x5f\x3d\xc7\x24\xe1\xa8\xff\x13\x92\xec\x65\xad\xe1\xd7\xdb\xf7\x8f\x91\xa4\x81\xa4\x39\xbc\x8b\xe9\x7a\xcf\x02\x83\x1b\x22\x05\xd1\x70\x02\x9b\xd3\x6d\xda\x6a\xef\x55\x0d\xd4\xc1\xff\x34\x8b\x63\xf0\x37\x40\xdd\xff\x67\x23\x8f\xf8\x90\x76\xd3\x3c\xbf\x3d\x2a\x5e\x98\x5a\x4f\xca\x68\xbb\xcd\x21\x68\x6a\xf8\x45\x09\xc5\x80\x10\xbb\x92\xc6\x77\x23\x87\x4b\x70\xdc\xaa\x13\x93\x12\x67\x64\xe5\x3a\xe5\x8c\x83\xb5\x61\x54\x69\xaa\x1a\x76\x1a\x40\xc4\x9a\xe7\xe5\xd5\xcf\x4d\xb3\x57\xaa\x39\xa8\xd4\xc8\xcd\x80\x9f\x57\xf0\xe3\xb1\xa8\xfe\x8a\x39\x1c\x12\xea\xcf\x87\xd3\x09\x74\x66\x8c\x49\x3b\x7a\x5f\xc0\x56\xd5\xdc\x27\x77\xd7\x13\x0f\xd5\xca\xd6\xfd\x4f\xee\xe8\x89\x87\x6f\x6f\x0a\x91\x3b\xde\x38\xf9\xe5\xa7\xfb\x60\x36\xc6\xe4\x28\x9c\x4e\xeb\x21\xfe\x5e\x95\x57\x00\x3f\x71\x83\x7f\xd1\x06\xca\x1d\x78\xf1\x2d\xfb\x0f\x7a\xc9\xf3\x26\xb2\x67\x7e\x8e\x83\xfc\x13\x00\x00\xff\xff\xd9\x60\x5c\x55\x53\x0c\x00\x00") - -func testE2eTestingManifestsStorageCsiExternalProvisionerRbacYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiExternalProvisionerRbacYaml, - "test/e2e/testing-manifests/storage-csi/external-provisioner/rbac.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiExternalProvisionerRbacYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiExternalProvisionerRbacYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/external-provisioner/rbac.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiExternalResizerRbacYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x55\x41\x8b\x23\x37\x13\xbd\xf7\xaf\x28\xec\xcb\xf7\x81\xed\x65\x6f\xa1\x73\x9a\xf5\x21\x2c\x24\xb0\xcc\x2c\x03\x21\xe4\x20\x4b\xaf\xdd\x95\x91\xa5\x8e\xaa\xd4\xce\xcc\xaf\x0f\xd2\xb4\x1d\xef\xd8\x3b\x99\xac\x09\xe4\xe4\x46\x2a\x55\xd5\x7b\xf5\x5e\x79\x4e\x9f\x7b\x16\xfa\xf9\xe6\xa7\x1f\xa9\x63\x0f\xb2\x31\xa8\xe1\x20\x64\xbc\xa7\xdb\x0f\x37\x6b\x8a\x9b\xdf\x60\x55\x48\x7b\xa3\x64\x12\x28\xc0\x42\xc4\xa4\x47\xd2\x48\x29\x07\xc2\x1f\x8a\x14\x8c\x6f\xe6\xb4\xbe\xfb\x48\x09\xc2\x4f\x48\xab\x66\xde\xcc\xe9\x63\xa0\x21\x45\x97\xad\x72\x0c\x0b\x82\xb1\x7d\x0d\x72\x89\x47\x24\x72\x18\x7c\x7c\xdc\x21\x28\xf5\x46\x4a\xc2\x0d\xc8\x66\xd1\xb8\xe3\x27\xb8\xb6\x99\xd3\xb2\x9c\x9a\x31\xb2\x2b\xcd\x75\x9e\xad\xca\x82\xb2\x80\x42\x0c\x4b\x87\xce\x64\xaf\x14\xcc\x0e\x32\x18\x0b\x32\xc1\x91\xe3\xae\x43\x2a\x59\xeb\x79\x33\x27\xa2\x2e\xa6\xfa\xe2\x18\xe9\x08\x41\x59\x19\x42\x9e\x1f\x40\xda\x83\xd6\x3e\x8b\x22\xdd\x46\x8f\x5a\xda\xc1\xb2\x03\xed\x7b\x68\x8f\x54\x43\x4e\x5a\x4e\x18\x3c\x5b\xa3\x90\x7a\x73\xe0\xa1\x00\xac\x25\x27\x26\x16\xc4\x81\xf6\x3d\xdb\x9e\xac\x11\x90\x87\x71\x48\xd2\xf3\x40\xf0\xa8\xcc\xd0\x2e\x8b\x16\xec\x08\x66\xe3\xe1\xbe\xaf\xef\xb5\xcc\x86\x43\xe7\x33\x82\x9d\x8a\xd4\x99\x08\x34\x0f\x0b\x12\x80\x36\xf0\x71\xdf\x34\x66\xe0\x7b\x24\xe1\x18\x5a\x1a\xdf\x37\x0f\x1c\x5c\x4b\x77\x48\x23\x5b\xdc\x58\x1b\x73\xd0\x66\x07\x35\xce\xa8\x69\x1b\xaa\xbc\xb4\x64\x85\x97\x53\x93\x0d\xd1\xbc\x02\x2a\x1c\xee\x59\xfb\xaf\xd0\x5b\xbe\xa6\xf7\xf5\xa0\xa5\x29\xa6\x69\x96\xcb\x65\x33\xa7\xdb\xe7\x7c\x47\x44\x05\x4f\x19\xe1\x3e\xa6\x87\xe7\xc4\x9f\xee\xd7\xb2\xa0\x4f\xf7\xb2\xa0\xbb\xb5\xac\xa6\x66\x4f\xa9\x3f\x45\x93\x36\xc6\xae\x4c\xd6\x3e\x26\x7e\x32\x85\xac\xd5\xc3\x77\xb2\xe2\xf8\x6e\x7c\x7f\x01\xd2\x61\x08\x07\x5c\xcb\x94\x43\x40\x6a\x52\xf6\x90\xb6\xa2\xfc\xdc\x83\xba\xe8\x7d\xdc\x73\xd8\x52\xb9\x20\xe9\x63\xf6\xae\xb4\x9b\x83\x8d\xbb\x32\x5d\xb8\x2a\x99\xc1\xe7\x6d\xf1\x43\x95\x7f\xc2\xef\x99\x13\x48\x60\x13\x54\x6a\xb6\x1a\x94\xe2\xc8\xa5\x5d\x0e\xdb\x55\x3d\x5d\x92\x19\xf8\x87\x14\xf3\x20\x2d\xfd\x32\x9b\xfd\x5a\x4f\xab\x24\x62\x4e\x16\xf5\x74\x4a\x73\xbc\x1c\x91\x36\xf5\x62\x0b\x9d\x2d\x68\xe6\x59\xea\xef\xde\xa8\xed\x6b\xd4\xa5\xb4\x2f\x92\x0e\x85\x38\x51\x04\x1d\xa3\xcf\x3b\xc8\x14\xf4\x7a\xf2\x05\xcd\xf2\xe0\x8c\xa2\x7c\x0d\xd7\xd4\xb3\xde\xf0\xee\x6d\x45\xaf\xaa\xf0\x4e\xd4\x68\x3e\x2b\xf4\x8d\x28\x30\x22\xe8\x59\xb2\x33\x8e\x6c\xc2\x94\xfd\xbc\x4e\xd5\xff\x99\x96\x3f\x70\x70\x1c\xb6\xd7\x48\xfa\xc4\xa5\xcb\x54\xec\x21\xf9\x79\x27\xb7\x15\xdb\x45\xaf\x17\x18\x97\x3c\xfe\xcf\x5c\x7e\xd1\xe7\xa5\x85\x5b\x74\xa5\xf8\xb9\x73\xff\xce\x86\x74\x1c\xc5\x2b\x34\xbc\x7d\x95\x20\x38\x1a\x22\x07\x2d\x2b\xd6\xe6\xf4\xd7\xce\x2f\x3d\x37\x73\xe2\x8e\xfe\x57\xfe\x11\x62\xf0\x8f\xc4\xdd\xff\x2f\x2e\x5f\x96\xc3\xde\x9d\xe6\xf7\xed\x4b\xe8\xca\x1d\xfa\x55\xfa\x6c\xb7\x3d\xac\xb0\x17\x6a\xb6\x31\x26\xc7\xe1\xb4\xa9\x2a\xe3\x2f\xe4\xed\x61\x64\xda\x04\x2f\x2d\x79\xd4\xf6\x41\xec\x0e\x1e\x2f\x35\x3e\xe9\xfe\x0b\x91\xff\x4b\xea\xae\x50\xaf\x26\xf2\x3f\x66\x91\xd7\xbd\xf1\x8c\xf8\x2d\xc6\xf8\x33\x00\x00\xff\xff\x47\xf8\xe7\x76\xb0\x09\x00\x00") - -func testE2eTestingManifestsStorageCsiExternalResizerRbacYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiExternalResizerRbacYaml, - "test/e2e/testing-manifests/storage-csi/external-resizer/rbac.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiExternalResizerRbacYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiExternalResizerRbacYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/external-resizer/rbac.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiExternalSnapshotterRbacYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x55\x4d\x8f\xdb\x36\x10\xbd\xf3\x57\x0c\x56\x57\xcb\x41\x6e\x85\x6e\x9b\x2d\x50\x04\x68\x11\x60\x13\x14\x28\x0a\x1f\xc6\xe4\xc8\x62\x97\x26\x85\xe1\x50\x5b\xe7\xd7\x17\xa4\x25\xc5\x1f\xea\xc2\x4d\x9d\x1b\x41\x0d\x67\xde\x7b\x33\x6f\x54\xc1\x97\xb0\x23\xe9\x88\xe1\xd5\x4a\x07\xd2\x11\x3c\x7f\x78\x7c\x82\xd6\x3a\x82\x36\x30\xd0\xdf\x42\xec\xd1\xd5\x3d\x87\xc1\x46\x1b\x3c\xf1\x0a\xa4\xb3\x11\xfe\x78\xfc\xed\xd7\x12\xa8\x2a\xd0\xc1\x0b\x5a\x1f\x01\x9d\x3b\x66\x08\xdb\xbf\x48\x4b\x04\xe9\x50\x00\x99\xc0\x93\xa6\x18\x91\x0f\x20\x01\x38\xf9\x39\x35\x3c\x7d\xfe\xa8\x2a\x88\x1e\xfb\xd8\x05\x11\xe2\xb5\xaa\x54\x05\x1f\x3d\xf4\x1c\x4c\xd2\x62\x83\x5f\x01\xa1\xee\x72\x28\x18\xb6\x03\x31\x18\xea\x5d\x38\xec\xc9\x0b\x74\x18\x73\xd2\x2d\x81\x4e\x51\xc2\xde\x7e\x25\xd3\xa8\x0a\xea\x7c\x8b\x43\xb0\x26\x03\x6c\x9d\xd5\x12\x57\x90\x22\x81\x0f\xbe\x36\xd4\x62\x72\x02\x1e\xf7\x14\x7b\xd4\x04\xe8\x0d\x18\xdb\xb6\xc4\x39\x6b\xb9\x57\x15\x40\x11\x22\xbf\x98\x23\x0d\x90\x17\x2b\x96\x22\x38\xfb\x42\x45\xb7\x27\x97\xa2\x10\x3f\x87\x22\x48\x0d\xa1\xcf\xb8\xd1\xb9\x03\x30\xe5\x97\x25\xea\x22\xcd\xc9\x23\xb0\x6d\x8e\x60\x2a\x25\xb3\x62\x33\xe6\x63\x73\x42\xe9\xd3\x37\xda\x51\x29\xec\xed\xef\xc4\xb9\x2b\x0d\x0c\xef\xd5\x8b\xf5\xa6\x81\xcf\xc4\x83\xd5\xf4\xa8\x75\x48\x5e\xd4\x9e\x04\x0d\x0a\x36\x0a\x0a\xa5\x06\x74\xb4\xf5\x89\xda\x4a\xd5\x75\x3d\xbe\x3d\x25\x71\x9a\x9c\xb7\xa8\xd7\x98\xa4\x0b\x6c\xbf\x62\x26\xb6\x7e\xf9\x29\xae\x6d\x78\x37\xbc\x3f\xab\x50\x4d\x64\x27\x36\xe7\x4c\x66\x0c\xf3\x5c\x9d\x00\xa9\x39\x79\x4f\xac\x38\x39\x8a\x39\x59\x0d\xd8\xdb\x5f\x38\xa4\x3e\x36\xf0\xe7\xc3\xc3\x46\x01\x00\x30\xc5\x90\x58\x53\xb9\xa3\x21\x2b\x31\x7e\x19\x88\xb7\xe5\xd6\xd9\x28\x0f\x2b\x78\x78\x45\xd1\x5d\x3e\x68\x26\x14\xca\xa7\xd4\x9b\xf1\xd4\x97\x8f\x9b\xdb\xea\x44\xd2\x4c\xd7\x85\x76\x54\xea\x94\x7a\x0b\x99\x26\x72\xeb\x28\x81\x71\x47\xa3\x68\x4b\x05\x86\xe0\xd2\x9e\xa6\x07\xda\x61\x8c\xf4\x66\xb9\x99\xde\x5d\xeb\x06\x2f\x4b\x82\x7e\xd3\x6f\x11\xc2\x99\xae\x86\x1c\x09\xfd\x10\x58\xef\xa2\xa0\xa4\x2b\x74\x63\xed\xcd\xbf\x4c\xf2\x07\xeb\x8d\xf5\xbb\xef\x1b\xe8\x45\xcb\xd4\x9c\x0d\x12\xd3\x71\xc7\x1d\x47\x75\xd1\x7c\x19\xe6\xb2\xe9\xf2\x97\x6c\x96\xde\xe5\xcd\x53\x0c\xbe\xbc\x94\xf2\x69\xce\x53\xae\x1a\x18\xa3\x54\x86\xf1\x4c\x6d\x06\x70\xed\xdf\x9c\x5f\x77\xe8\x77\xe3\xe6\xc9\xae\x44\x17\x03\x14\x5b\x1e\xfd\x79\xb6\x80\x76\x24\x71\xb4\xaf\xb9\xc9\xa8\x30\xb7\xf7\x0d\x41\x4f\x9b\xf2\xfd\x7b\xe5\x9a\x3c\x54\xf0\xe5\xd3\xcf\x9f\x9a\x73\x0d\x27\xa6\x47\xed\x0e\x21\xc1\x2b\x7a\x29\x1b\xfc\x10\x12\x43\xb4\x86\x34\xf2\xdb\xf4\x1c\xa1\x21\x26\x47\xe5\xd7\x33\xed\xa3\x8b\x61\xd6\x21\xb0\xb1\xfe\x14\x74\x99\xcb\xb3\x31\x76\x84\x93\x8d\x2f\x4d\x3c\x3b\x67\xb2\xd2\xe8\x9b\x33\x2f\x8d\xbe\xdb\x5c\x8a\x78\x87\x91\xbe\x85\xf9\xfd\x75\xff\xdf\x9e\xb9\x37\xa0\x2b\x0b\x8d\xde\xf9\x2f\x22\xdd\xe4\x82\x7f\x02\x00\x00\xff\xff\x99\x98\x92\xb6\x6c\x09\x00\x00") - -func testE2eTestingManifestsStorageCsiExternalSnapshotterRbacYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiExternalSnapshotterRbacYaml, - "test/e2e/testing-manifests/storage-csi/external-snapshotter/rbac.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiExternalSnapshotterRbacYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiExternalSnapshotterRbacYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/external-snapshotter/rbac.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiGcePdController_ssYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x95\x51\x6b\xe3\x46\x10\xc7\xdf\xfd\x29\x06\xf7\x59\x72\x7c\x70\x2d\x08\xfc\x60\x72\xc6\x0d\x97\x73\xcc\x25\xb4\x8f\xc7\x64\x35\xb6\xb6\x5e\xed\x6e\x67\x46\xca\xb9\xa5\xdf\xbd\x6c\x24\xa7\x72\xe2\xd0\x9a\x72\x81\x13\x18\xcc\xec\xcc\x7f\x66\x7e\x33\xd2\xee\xac\x2f\x0b\xb8\x55\x54\xda\x34\xee\x96\x74\x84\xd1\xfe\x42\x2c\x36\xf8\x02\x30\x46\x99\xb4\xd3\x51\x4d\x8a\x25\x2a\x16\x23\x00\x8f\x35\x15\x60\xc4\x66\x5b\x43\x59\x2c\x33\x13\xbc\x72\x70\x8e\x78\x24\x91\x4c\xf2\x11\xe2\xd6\x1a\x5a\x3d\xba\x8e\xff\xf1\x1d\x8f\x00\x98\xa2\xb3\x06\xa5\x80\xe9\xa3\xa7\x23\xa3\x81\x53\x14\x40\x8d\x6a\xaa\x6b\xbc\x27\x27\x9d\x01\x52\x09\x05\x6c\x4d\xcc\x4c\xa8\x63\xa3\x94\xc5\x54\x9c\x28\x79\xcd\x4a\x2b\xbb\x2c\xa9\x97\x6c\x5b\xe2\x11\x80\x52\x1d\x1d\x2a\xf5\x72\x83\xb2\xd3\xe3\x8e\x94\xcf\xd5\x06\x38\xb4\x97\x9e\x1f\xe0\xe7\x20\x0a\x9e\xf4\x21\xf0\x0e\xea\x46\x14\xee\x09\x1a\xa1\x12\x36\x81\xc1\x7a\x25\x46\xa3\x36\x78\x78\xb0\x5a\xc1\xaf\x81\x77\x2e\x60\x09\x57\x25\x79\xb5\xba\x07\xeb\x61\xf9\x71\xf1\xa4\x27\xd6\x1b\x02\xab\x8f\x84\xd0\x90\xc0\xf2\x72\x01\x9f\xfa\x1e\xe0\x96\xb8\x25\xee\xb4\x96\x1f\x5f\x1c\xe4\xf0\x99\xea\xd0\xd2\x93\x9c\x56\x56\x80\xe9\xf7\xc6\x32\xd5\xe4\x15\x1e\x2a\xf2\x60\x45\x1a\x82\xc7\x13\x09\xae\xa5\x12\xd0\x97\x70\x4f\x9b\xc0\x04\xe8\xf7\x40\x5f\x63\x90\x86\x09\xc2\xe6\x49\xaa\x26\x65\x6b\x04\x62\x60\x95\xde\x5a\x05\xd1\x55\xd7\x7c\x01\xca\xcd\x21\x71\x3f\xfa\xb9\x31\xa1\xf1\xba\x7a\x7d\x59\x32\xc1\x3e\x24\xd9\xd0\x7a\xe2\xc1\x68\xb2\xc1\x9e\x89\xc7\x28\x55\x50\xed\xc7\xd0\x3d\xb6\xc6\x2d\xa5\xf1\x71\x6e\xc3\x64\xbb\xa3\x8c\xc9\x11\x0a\x4d\x9e\xc5\x14\xed\xbb\x7c\x9a\x4f\xb3\xed\x8e\xf2\x8b\x81\x00\xf2\x76\x90\xb0\x4b\x3a\xce\xb2\x76\xf6\x7e\xfc\xd2\x9a\x34\xb1\x2c\x99\x44\x66\x29\x41\xfa\xe5\x12\xcc\x6e\xfc\xbc\xa4\x75\xe3\xdc\x3a\x38\x6b\xf6\x05\xcc\xdd\x03\xee\x65\xe0\xd1\x06\xd7\xd4\xf4\x29\xa1\x79\x91\xbb\x6b\x38\x69\x52\x5a\x3f\x3e\x3a\x06\xa8\x53\xd0\x1a\xb5\x2a\x20\x25\x3f\x49\x2a\x72\x68\x6d\x7a\x75\xcf\x20\x35\x88\x29\xda\x69\xfe\x63\x7e\xf1\x06\xa4\x7a\xdf\x0d\xa1\x36\x4c\xd9\x16\x95\x64\x76\x17\x62\x70\x61\xbb\x9f\xa5\x75\x1a\xbf\x1d\x35\x54\x45\x53\x9d\x81\xec\x10\x90\x36\xeb\xdd\x9b\xf0\xfa\xc6\x04\x98\xc4\xfe\x71\x06\x80\xde\xbf\x68\x2f\xf2\xf7\xdf\x7b\xff\xfd\x87\x69\xf0\x99\xff\x37\x02\xff\xed\xc6\x48\x70\x7e\xfa\xbf\x70\xc8\x97\x31\x58\xaf\xb3\xc6\xdb\xaf\xc5\xab\x78\xc8\xb7\xa7\xa9\x2c\x6f\x6e\x96\xd7\x8b\x2f\xf3\xf5\xfa\xfa\xea\x72\x7e\x77\x75\xb3\xfa\x72\xf9\x79\xf1\x61\xb1\xba\xbb\x9a\x5f\xdf\x3e\x23\xd5\xa2\x6b\xd2\x7d\x3d\x21\x35\x13\xe3\x42\x53\x66\x82\x4f\x7f\xf2\xdf\x24\xf8\x6f\x3c\x93\x61\xf0\x21\x6f\xd6\xe5\x79\xa6\xc0\x84\xe5\x8d\x77\xfb\xa3\xbb\xe7\x84\xfc\x71\x33\x87\xf2\x3b\xc9\x13\xd7\xcd\xc9\x8a\xa9\x8e\xba\xff\x60\xb9\x80\x3f\xff\x7a\xf9\xfa\xbc\x5a\xa6\x90\x61\xd2\x63\x32\x9d\x6d\x75\x14\x39\xfa\x3b\x00\x00\xff\xff\x5f\x2e\x46\x37\x84\x09\x00\x00") - -func testE2eTestingManifestsStorageCsiGcePdController_ssYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiGcePdController_ssYaml, - "test/e2e/testing-manifests/storage-csi/gce-pd/controller_ss.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiGcePdController_ssYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiGcePdController_ssYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/gce-pd/controller_ss.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiGcePdCsiControllerRbacYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x57\xc1\x8e\xe2\x38\x10\xbd\xe7\x2b\x4a\xf4\x65\x57\x22\x44\xbd\xa7\x15\xb7\x5d\x0e\x7b\x45\xcd\xaa\x2f\xa3\x39\x38\x4e\x75\xf0\xe0\xd8\x96\xab\x9c\x6e\xfa\xeb\x47\x0e\x01\x85\x81\x81\x34\x10\xba\xb9\x10\x45\x65\xbf\x7a\xe5\x7a\xcf\x95\x87\xf8\x83\x99\x35\xec\xad\xd6\xe8\x61\x81\xbe\x56\x12\xe1\x1f\x29\x6d\x30\x3c\x86\x27\xab\x91\x36\x7f\xb9\x32\x85\x32\x25\x25\xc2\xa9\x67\xf4\xa4\xac\x99\x42\xfd\x98\xac\x94\x29\xa6\xdb\x95\xed\xc2\xa4\x42\x16\x85\x60\x31\x4d\x00\x8c\xa8\x70\x0a\x92\x54\x5a\x4a\x4c\x5d\x91\xca\x1d\x60\x4a\x22\x49\xd2\x34\x4d\x1e\xe0\xcd\xe3\xcb\x14\x96\xcc\x8e\xa6\x59\x56\x2a\x5e\x86\x7c\x22\x6d\x95\xad\x42\x8e\xde\x20\x23\xa5\x92\x54\x86\x6f\x8c\xde\x08\x9d\x3a\x6f\x6b\x15\xb3\x40\x9f\xe5\xda\xe6\x59\x25\x88\xd1\x67\x05\x3a\x6d\xd7\x9d\x65\x99\xcf\x85\x9c\xac\x45\xa5\xdb\x5c\x67\x3a\xc4\xc8\x48\x6a\x8f\x4c\x13\x27\x02\x2f\xad\x57\xef\x82\x95\x35\x93\xd5\xdf\x34\x51\x36\xab\x1f\x4f\x33\xea\xe4\x92\xfa\xb8\xad\x0f\x1a\x29\x86\xa6\x20\x9c\xfa\xcf\xdb\xe0\x68\x0a\xdf\x46\xa3\xef\x09\x00\x80\x47\xb2\xc1\x4b\x6c\xde\xb9\x88\x4f\x8c\x86\x6b\xab\x43\x85\xd4\x06\xd5\xe8\xf3\x26\xa0\x44\x1e\x8d\x61\xa4\x15\x35\xff\xaf\x82\xe5\x32\x3e\x48\x8f\x82\x31\x3e\x15\xa8\x91\xb1\x59\x77\x01\xa0\xd4\x42\x55\xbd\x51\x83\x2b\xc4\x71\x2c\x62\xeb\x45\x89\x6d\xd1\x8e\x21\xb7\x11\x52\x0b\xa2\x9e\x3c\x7b\x72\xc2\x1a\x0d\x1f\xec\x78\xa2\x64\x2d\x8d\x31\x8c\xdc\xef\x70\xce\xf3\x91\xa4\x8c\x2d\x6e\xcb\xe4\xaa\x0d\xc9\x08\x47\x4b\xcb\x93\xf3\xb9\xb7\xcd\xd6\x2e\x38\x89\x78\x4b\xa0\x28\xfe\x63\x47\xb5\x8f\xd7\x98\xc2\xa1\x5c\xff\xdd\x78\xd0\x8d\x54\xdb\xf1\xa1\xae\x80\x5b\xa3\x4b\x28\xe4\x3f\x50\x72\x2b\xe3\xa3\x36\x17\x19\x9c\xb1\xb7\x68\x07\x4f\xf8\x12\x37\x39\x74\x9f\x3e\x56\x02\xbb\xc2\x9f\xe0\x9a\x00\x5c\xea\xa3\x82\x59\xc8\xe5\x17\x30\xd1\x6d\x22\x77\x74\xd0\x1e\x26\x70\x7b\x89\x0e\xee\x2a\x7d\x25\xb9\x29\x78\x75\x4e\x8d\xa7\x0b\x76\x6f\xa5\xee\xba\xe4\x73\x65\xba\xdf\xac\xfd\x34\xba\x29\xd5\x03\x3c\x21\xa9\x77\xf4\x50\x05\x62\xc8\x11\x44\xae\x11\xd8\xc2\xab\xf5\x2b\x78\x55\xbc\x84\xf9\xf3\x8c\xc6\x30\x7f\xa6\x31\x2c\x66\x34\x19\x4c\x72\x7e\x93\xc9\xd7\x57\xdc\x15\x23\xcb\x55\x08\x19\xb1\xe0\x70\x00\x74\x21\x8b\x1b\x0c\x29\x4d\x0f\x0d\xac\xb6\x6d\x57\x7c\xae\xc2\xf6\x7a\xf3\x03\x02\xbb\xe0\x0a\xdc\xce\x26\x7c\xf6\x16\x8c\xf9\x75\xa3\x63\x2e\xe9\x2f\x2f\x87\xbd\x25\x3b\x40\x1f\x97\xed\x20\x53\xf2\xc5\x93\xe0\x75\x5f\x01\x83\x4e\xa0\xc7\x2d\xab\xfd\xcc\x1a\xa6\x1a\x6d\x56\xbd\x1d\xe7\x1e\x4e\xd0\x55\x70\xa7\xef\x3e\xd7\x18\x0e\x14\xf0\x21\x73\x70\x5e\xd5\x4a\x63\x51\x62\x01\x73\x5b\xc0\x02\x65\xf0\x8a\xd7\x30\xb7\x5a\xc9\xf5\x18\x9c\xc7\x5a\xd9\x40\x7a\x0d\x05\xbe\x28\x83\x05\xd4\x4a\xc0\x7c\xb3\xae\xc4\xe2\x7f\x24\x9e\x2f\xe6\x87\x45\xff\xe3\xcf\x41\xce\xc3\x91\x6b\x2c\xa6\x53\xb5\xc2\xab\x3a\xb2\xc7\x52\x11\x7b\xd1\xd6\xe1\x8e\xc7\x81\x7f\x61\xca\x48\x9c\xba\x5d\x59\x52\x47\xae\xe7\x51\xfc\x0c\x00\x00\xff\xff\x9f\xb0\xc3\xe5\x78\x12\x00\x00") - -func testE2eTestingManifestsStorageCsiGcePdCsiControllerRbacYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiGcePdCsiControllerRbacYaml, - "test/e2e/testing-manifests/storage-csi/gce-pd/csi-controller-rbac.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiGcePdCsiControllerRbacYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiGcePdCsiControllerRbacYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/gce-pd/csi-controller-rbac.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiGcePdNode_dsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x57\x5f\x6f\xe3\xb6\x13\x7c\xf7\xa7\x58\xf8\x5e\x7f\x92\xee\xf0\x43\x51\x40\x40\x1e\x7a\x17\x37\x2d\xd2\xe4\x8a\xcb\xb5\x7d\x28\x8a\x80\x26\xc7\x12\x61\x8a\x64\xc9\x95\x62\x7f\xfb\x82\x96\xed\xf8\x8f\xac\x24\xed\x11\x48\x60\x90\xdc\xd9\x21\x77\x66\x4d\x2f\xb5\x55\x25\x5d\x0b\x34\xce\x3e\x80\x27\xc2\xeb\xdf\x11\xa2\x76\xb6\x24\xe1\x7d\x2c\xba\x0f\x93\x06\x2c\x94\x60\x51\x4e\x88\xac\x68\x50\x92\x8c\x3a\xab\x24\x32\xaf\x32\xeb\x14\x26\xd1\x43\xa6\xd5\x08\x03\xc9\x2e\xa4\xcf\x44\x8d\x60\x59\xff\x22\xe6\x30\xb1\x9f\xa0\x04\x59\x52\x25\x7d\x26\x5d\xe3\x5b\x46\xe6\x53\xb2\xc8\xb0\x9c\x29\x1d\x97\x59\x42\x56\x41\x77\x08\x13\x22\x46\xe3\x8d\x60\x6c\xe1\x0e\x68\xa4\x61\x8e\x90\xdf\x8a\x4d\xb4\x23\x9d\xc6\x3b\xfa\xc9\x45\x26\x0b\x7e\x72\x61\x49\x4d\x1b\x99\xe6\xa0\x36\x42\xd1\xc2\x05\xd2\x96\x11\x84\x64\xed\x2c\x3d\x69\xae\xe9\x0f\x17\x96\xc6\x09\x45\x3f\x2b\x58\xd6\xbc\x26\x6d\xe9\xe6\x76\xb6\xc7\x8b\xda\x4a\x90\x66\x0a\xf0\x46\x48\x44\xba\xf9\x34\xa3\xbb\xed\x19\xe8\x01\xa1\x43\xe8\xb1\x6e\x6e\xcf\x16\x72\xfa\x82\xc6\x75\xd8\xc3\x71\xad\x23\x05\xfc\xdd\xea\x80\x06\x96\xe9\xa9\x86\x25\x1d\x63\x0b\xda\xac\x44\x67\x3a\x28\x12\x56\xd1\x1c\x0b\x17\x40\xc2\xae\x09\x2b\xef\x62\x1b\x40\x6e\xb1\x87\x6a\xc0\x41\xcb\x48\xde\x05\x8e\xf9\x76\xba\x76\x91\xef\xfb\xd3\x97\xc4\xa1\xdd\x65\x96\xce\xb2\xd0\x16\xe1\xe0\xa2\xb3\x03\x15\xf4\xf7\x99\x05\x54\x3a\x72\x10\x61\xbf\x89\x48\x37\xa2\x42\xaa\x48\xc8\xb5\x2b\xaa\x25\xb2\x00\x03\x11\x51\xa4\xc0\xa4\x9b\xb3\xe8\xb2\xfb\x90\xff\x3f\x7f\x9f\x55\x4b\xe4\xef\x0f\xa0\x44\xa8\x0e\xf2\xf7\x1c\xa6\x59\xd6\x5d\x7d\x37\x3d\x9f\x4d\xe8\x42\xa9\x80\x18\xaf\x52\xaa\xf4\x97\x47\x27\x97\x03\x7b\x97\xed\x1c\x06\xbc\x67\x90\x0a\x9c\x79\xc1\xf5\x55\xd1\x89\x50\x18\x3d\x2f\xb6\x5b\x0a\x6f\xda\x4a\xdb\x58\x78\x95\x6f\x00\xd9\x05\x51\x21\x4f\x54\xb5\x1b\xcc\x61\xf4\x02\x72\x2d\x0d\x8e\xa9\xfb\x80\x07\x76\xfe\x78\x92\x08\xab\x67\x39\x3e\x0f\xe9\x9a\x46\x24\x8b\xfe\x39\x2d\xe6\xda\x16\xb1\x9e\xfe\x8f\xa6\x99\x4c\xff\x43\x43\x59\x58\x50\x71\x48\x7e\x98\xde\x6b\xf6\xa4\x3b\xe8\x8f\xf0\xd7\x01\x0b\xd8\xee\xf4\xe2\xfb\xe2\xdf\xfe\xf6\x71\xf6\x78\xff\xf9\x7a\xf6\x78\xff\xc3\xdd\xec\x84\x77\x27\x4c\x8b\x1f\x83\x6b\xce\x0f\xb4\xd0\x30\xea\x0b\x16\xe7\x2b\xdb\xb5\x5f\x05\xd7\xe5\xc6\x9c\x79\xd2\xc8\xbd\x68\x70\xb0\xb5\x73\xa6\x6d\x70\xe7\x5a\xcb\x67\x8a\xe8\x89\xf5\x75\xca\x94\x0e\x27\x19\x9a\x14\xd4\xa3\xa7\x72\x0d\x06\x1f\xe9\x60\x1c\xe2\x70\xeb\x99\x35\xb6\xcd\xf1\xa0\xdb\xf4\x23\x42\xb6\x41\xf3\xfa\x93\xb3\x8c\x15\x9f\x0a\x43\x77\xda\xa0\x82\x3a\xb2\x20\x8d\x7a\xe9\x75\x0d\xaf\xec\xde\xe7\xdf\xff\x57\x63\xc1\x2a\xef\xb4\xe5\xab\xd6\xea\x55\x79\xd1\x5a\x2f\x97\x68\xe7\xba\xf1\x0b\x3e\x31\xe0\xe0\xce\xe0\xbc\xa8\x36\x25\x28\x69\xfa\x51\x2b\x1d\xb0\x69\xd2\xc2\x9c\xf2\xff\x06\xe2\x50\xe8\xb4\xc4\x0b\xc1\x0a\xdd\xd1\xea\x3b\xfa\x5a\x83\x16\xce\x18\xf7\xa4\x6d\xd5\xef\x8d\x24\x02\x76\xed\x5c\x11\x3b\xe2\xa0\xab\x0a\x61\xd3\x87\xa9\x55\xe8\x84\x6a\x68\x11\x5c\x73\x02\xb6\xef\xc7\x83\x0c\x53\x60\x16\x5a\x83\x98\x81\xe5\x08\x4b\xb0\x2c\xda\x53\xaa\x03\x28\x46\xcf\x47\x50\x52\x75\xc6\x51\x92\x36\x2e\x94\x6e\xeb\xa2\xd6\x5e\x86\x88\xeb\x38\x12\xfa\xbc\xda\x2b\x6e\xe0\x1b\x6a\xc4\xce\xe9\xa2\x37\x40\xc7\x16\x1c\x94\xde\xae\xf7\x3f\x6e\xf1\xd6\xc5\x51\x10\xaf\x3d\x4a\xba\xde\x68\xcf\x85\xf5\x19\x8b\x61\xb9\xbf\x85\xc0\x9b\xd2\x0d\x6a\xfc\xdf\x1c\xf7\xc2\x57\xdd\x18\x99\xcf\xe1\x53\x80\x60\x9c\x91\x1a\xf4\xce\x28\xa9\x53\x51\x5c\x3a\xf6\x37\x33\xd8\x90\xb9\x5e\x34\xd6\xe8\x11\x06\x5d\xf6\x52\xf9\x2e\xba\x6f\x34\xd5\xa0\x15\x5f\x95\xea\xcc\xa2\xa3\x79\x06\xfd\xfa\x52\x9e\x63\x1f\x8f\xe2\x9f\x5a\x7e\x18\xfa\x1d\xd5\xcc\x3e\x96\xc5\x46\xb2\xc1\x82\x11\x93\x34\x95\x93\xb1\x90\xce\x4a\x78\xde\x7c\x58\xe8\xaa\xdd\x3e\x7a\x52\x65\x39\x13\x56\x65\xec\x0c\xb6\x93\x7b\xbc\x07\x80\xa6\xe9\xd1\xa1\x85\x21\x29\x22\xa6\x39\x7d\x4d\x6f\xee\x27\x6d\x0c\x6d\x23\x40\xe8\x10\xd6\x5c\x6b\x5b\xe5\x74\xef\x14\xd2\xfb\xcc\x3b\x9b\x1e\xe4\xb1\x76\xad\x51\x7b\xc0\x39\x28\xca\x1a\xaa\x35\x50\xe4\x2c\x09\x63\x28\xbd\x67\xf6\x2f\xee\x67\x16\xfb\xc6\x95\x91\xf3\x69\xce\x85\x92\x66\x2b\x1d\x79\x77\x17\x29\xf0\xe1\xe8\xb7\x55\x1a\xc7\x67\x77\xb1\x24\xa3\x6d\xbb\x9a\xfc\x13\x00\x00\xff\xff\xd3\x16\xd5\xf9\xd4\x0d\x00\x00") - -func testE2eTestingManifestsStorageCsiGcePdNode_dsYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiGcePdNode_dsYaml, - "test/e2e/testing-manifests/storage-csi/gce-pd/node_ds.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiGcePdNode_dsYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiGcePdNode_dsYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/gce-pd/node_ds.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathAttacherYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x53\xc1\x6e\xdb\x3a\x10\xbc\xeb\x2b\x16\x79\xd7\x47\xbb\x49\x1b\xa0\x10\x90\x43\x90\xe4\x10\x34\x4d\x0b\xb8\xe8\x7d\x4d\xad\xa5\x85\x29\x92\x25\x97\x8a\xf5\xf7\x05\x65\x37\xa6\xec\xb6\x41\x05\xf8\xb2\x9c\x19\xce\x0e\xc7\x5b\xb6\x4d\x0d\x2b\x0a\x03\x6b\xaa\xd0\xf3\x77\x0a\x91\x9d\xad\x61\xb8\xac\x7a\x12\x6c\x50\xb0\xae\x00\x2c\xf6\x54\x83\x8e\xac\x3a\x17\xc5\xa3\x74\x0a\x45\x50\x77\x14\x2a\x00\x83\x6b\x32\x31\xe3\x00\xd0\xfb\x3f\x01\xa3\x27\x9d\x41\x91\x0c\x69\x71\xe1\x4d\x02\x80\x77\x41\x0e\xc2\xea\x60\xa2\x49\x7d\x3f\x4e\x93\xfd\x71\x0d\x97\x57\xef\x3f\x5c\x57\x95\x52\xaa\x3a\x2c\x24\x28\xb4\x49\x66\x45\x32\x5b\x0a\xbd\x8f\xcb\x7f\xd8\xec\x68\x78\x0a\xe8\x79\x82\x5e\xfc\x16\x7b\x51\x01\x04\xf2\x86\x35\xc6\x1a\x2e\xcf\xb6\xec\x51\x74\xf7\x54\xe4\xf4\xc6\xe2\x42\xbd\x37\x28\x74\x60\x17\x86\xf3\x67\x66\x42\x6f\x48\x01\xfc\xda\x63\x82\x6e\x36\x6c\x59\xc6\x23\xd9\xbb\xe6\xf6\x6c\x98\xb7\xf9\x91\x38\x50\x73\x9f\x02\xdb\x76\xa5\x3b\x6a\x92\x61\xdb\x3e\xb6\xd6\xbd\x8e\x1f\x76\xa4\x93\xe4\x70\x0b\xa6\xda\xfb\x5b\xcd\x02\x38\x7e\x53\x14\x0f\x3b\x1f\x28\xe6\x67\x89\xa7\xe7\x0a\xb6\x34\x4e\x8f\x75\x72\x00\xe0\x3c\x05\xcc\x92\xf0\x68\xcf\x0e\x07\x34\x89\xce\xd4\xb2\x5e\x99\x8c\x37\xa9\xe5\x39\x59\x9c\x77\xc6\xb5\xe3\xa7\x7c\xed\x36\xad\x29\x58\x12\x8a\x0b\x76\xcb\xcc\xca\x0d\x39\xe0\x0f\x45\xb8\xd5\xda\x25\x2b\xcf\xaf\xd5\x99\xa5\x0d\xa0\x9d\x15\x64\x4b\xa1\x70\xa3\x8a\xa6\x9d\xc0\xf3\xc7\x3d\xb6\x54\xc3\xf6\x63\x5c\xb4\x3a\xe4\xab\x23\xb7\x2a\x8a\x0b\xd8\xd2\xb2\x24\xd5\xc3\xd5\xe2\x6a\xf1\xae\xe0\x62\x68\x4f\xd6\x56\xa0\xd4\x70\x73\x7d\x36\x9b\x74\x9a\x26\x27\x7f\x93\x45\xf3\x6f\x11\x9d\xde\x16\xc8\x48\x3a\x05\x96\xf1\xce\x59\xa1\x9d\xcc\x85\xff\x83\x6f\x1d\x47\xe0\x08\x96\x34\xc5\x88\x61\x04\x67\xcd\x08\x1b\x17\x20\x8e\x51\xa8\x8f\xf0\xc2\xd2\xc1\xea\xe1\x89\x6d\xda\xfd\x0f\x2f\x1d\x05\x3a\x11\xb1\xce\x2a\x1f\x78\x60\x43\x2d\x35\x10\xb9\x21\x8d\xa1\xc8\x0d\x34\x5a\xeb\x04\x50\xe7\x5b\x20\x59\xde\x41\xe3\x7a\x64\x0b\xd9\x2e\xc9\x89\xa0\x0e\x84\x42\x0d\xac\x47\x28\x74\xef\x56\x8f\xd0\x04\x1e\xa8\x90\x5e\xcc\x98\x47\x70\x0d\x12\x52\xe9\x73\x70\x26\xf5\xf4\x39\x3f\x74\x9c\xb7\xbb\xcf\xb3\xaf\x28\x5d\x0d\x39\xc0\x99\xe0\xfe\x91\xf7\x1e\x55\xc3\xa1\xaa\x4a\xb5\x59\x1f\x72\xb7\x26\x95\xb9\xa3\xbd\xee\x80\x61\x69\x78\xbd\xcc\x75\x34\x24\xcb\x7d\x6d\xe3\xb2\xac\xf2\xbc\xc4\xa3\xa7\x1a\xee\x39\x4c\xff\xb9\xf1\x4b\xb8\x9b\x22\xa9\xfe\x62\xed\x67\x00\x00\x00\xff\xff\x6b\x30\xa8\x26\xfe\x05\x00\x00") - -func testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathAttacherYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathAttacherYaml, - "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-attacher.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathAttacherYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathAttacherYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-attacher.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathDriverinfoYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x90\x41\x6b\xe3\x40\x0c\x85\xef\xfe\x15\x8f\xec\x75\xd7\xcb\xde\x16\x5f\xdb\x1e\x02\x0d\x2d\xa4\xf4\x3e\x78\x5e\x6a\x11\x8f\x34\x8c\xe4\x94\xfc\xfb\x62\x93\xe6\xd0\x9b\x04\xd2\xf7\x3e\x29\x55\x79\x67\x73\x31\x1d\xe0\x61\x2d\x7d\xb0\x3f\xff\xf7\x5e\xec\xef\xe5\x5f\x77\x16\xcd\x03\x1e\x8e\xfb\xc7\x26\x17\xb6\xae\x30\x52\x4e\x91\x86\x0e\xd0\x54\x38\x60\x32\x8f\x9a\x62\xea\x47\x97\xdb\x62\xe7\x95\xe3\x3a\xf1\x0b\xc7\xa5\x56\x6b\xe1\xa8\x6b\x86\x07\x35\x90\x34\x83\x75\x62\x61\x4b\x33\x44\x67\x51\xe2\x62\xf3\x52\xe8\x7d\x87\x5b\xf9\x2c\x27\x8e\xd7\x71\xe6\xc1\x32\x7d\xa5\xfd\xc1\xeb\x1d\xb2\xb5\x4f\xdf\x90\x2d\xea\xcd\x90\x19\x6c\x65\xc5\xa5\x40\x5b\x34\xa4\x10\x9f\x93\x8c\x13\x8a\x65\x22\xdd\xd8\x58\x9c\xfe\x1b\xd5\x32\x44\x4f\xb6\x19\x49\xf8\x86\xd9\xad\x77\xfc\x78\xc4\xdd\x76\x07\x6a\xb4\x2b\x52\x23\x94\xcc\xcc\xab\x70\xb5\xbc\xd7\x93\xbd\xe8\xc1\x16\x8d\x01\xd1\x16\x76\x5f\x01\x00\x00\xff\xff\x6e\x73\xb4\xce\x58\x01\x00\x00") - -func testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathDriverinfoYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathDriverinfoYaml, - "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-driverinfo.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathDriverinfoYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathDriverinfoYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-driverinfo.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathPluginYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x58\x6d\x6f\xdb\x36\x10\xfe\xee\x5f\x71\x48\x0a\xb4\x03\x2a\x2b\xe9\x1b\x52\x01\xfe\xb0\x26\xd9\x56\xac\x4d\x82\x25\xeb\x3e\x06\xb4\x78\xb6\x0e\xa1\x48\x81\x3c\x29\xf1\x7e\xfd\x70\x94\xed\x48\xb6\xe2\xb8\xc5\x06\xcc\x40\x81\x96\xbc\x37\xde\xdd\xf3\xdc\xa9\x87\x70\x8d\xbe\xa1\x1c\x41\xe3\x8c\x2c\x6a\x28\xd0\xe3\x6b\xa8\x4c\x1d\x20\xb4\x57\x17\xaa\x44\x98\xa2\x71\xf7\x40\x16\xae\x59\x31\xce\x6a\x73\x8d\xfc\x7a\x74\x08\xca\x23\x58\x44\x8d\x1a\x9c\x35\x0b\x98\x62\xae\xea\x80\xe0\x66\x90\x3b\xab\x89\xc9\x59\xc0\x87\xca\xa8\x68\x9d\xec\xe8\x10\x0a\xe6\x2a\x64\x69\x3a\x27\x2e\xea\xe9\x38\x77\x65\x7a\x57\x4f\xd1\x5b\x64\x0c\xdd\xbf\x52\x08\x35\x86\xf4\xc3\xc7\x0f\x47\x27\xa3\xd1\x1d\x59\x9d\xad\xe2\x1d\xa9\x8a\xbe\xa1\x0f\xe4\x6c\x06\xcd\xf1\xa8\x44\x56\x5a\xb1\xca\x46\x00\x56\x95\x98\x41\x1e\x28\x29\x5c\xe0\x4a\x71\x51\x99\x7a\x4e\x76\x04\x60\xd4\x14\x4d\x10\x21\x00\x55\x55\x83\x52\xa1\xc2\x5c\x24\x02\x1a\xcc\xd9\xf9\xdd\xd2\x00\x95\xf3\xbc\x34\x99\x2c\x7d\xeb\xba\x2c\x17\xf1\xa4\xbd\xce\xe0\xf8\xcd\xdb\x77\xef\x47\x49\x92\xac\x9e\xf1\x98\xc6\xde\x53\x54\x55\x85\x74\xdf\xf7\x3c\x46\xba\x2e\x54\x06\x07\xdb\x82\x07\x23\x80\x43\xb8\xb4\x08\x1e\x2b\x43\xb9\x8a\xb5\xca\xe2\xe9\x6f\x2e\x30\x88\x28\x68\x4f\x0d\xfa\xb6\x8c\xf7\xce\xdf\x05\xb8\x2f\xd0\x02\x36\xe8\x17\x5c\x90\x9d\x83\xaf\x6d\x88\x4a\xce\x82\x82\x40\x76\x6e\x10\xac\xd3\x38\x86\xbf\x10\x54\x5e\x10\x36\x08\x5c\x28\x86\xe9\x02\x02\x2b\xcf\xa2\x46\x0c\xce\xe6\x08\xca\x6a\xe0\x02\x6d\x34\x91\xbb\xc4\xb8\x5c\x31\x82\x32\x06\x1c\x17\xe8\xa1\x72\x3a\x40\x43\x0a\xc8\x32\xfa\xa4\x72\x1a\xd4\x6c\x46\x96\x58\x92\xb9\x8c\x3d\x64\x70\xbc\x55\x9d\x52\x71\x5e\x7c\xe9\x14\x77\x57\xc1\x18\xcb\xca\x28\xc6\xa5\x6a\x27\xd3\xf2\x33\x3d\x2b\xbb\xec\x00\xac\x0a\x20\xbf\xdc\x59\x96\x26\xf7\x1d\xdd\x55\x3f\x48\x8e\x92\x36\xbf\x89\xc7\x39\x05\xf6\xca\xaf\xa5\x00\xa8\x54\x73\xcc\xe0\xee\x24\x8c\xe7\xb9\x1f\x93\x4b\x03\xcd\x93\xc0\xce\xab\x39\xa6\xe2\x7c\xd0\x42\xd6\x1c\x8f\xdf\x8e\x8f\x3a\x86\x94\x9f\x77\xdc\xb7\x21\x24\x49\x33\x79\xbf\x75\x26\x46\x95\xd6\x1e\x43\x98\x88\x07\xf9\x33\x0e\x2e\xbf\xdb\x92\x14\x40\x1a\xe4\xb5\x5b\x81\x74\x22\x89\x98\xa4\x8d\xf2\xa9\xa1\x69\xba\x14\x49\xdb\xd4\x84\xb4\x9b\xae\x21\xc3\x01\xf3\xda\x13\x2f\x4e\x9d\x65\x7c\xe0\x7e\xc4\x87\x70\x53\x50\x00\x0a\x60\x31\xc7\x10\x94\x5f\xb4\x4d\x39\x73\x1e\xc2\x22\x30\x96\x01\xee\x89\x0b\xb8\x3e\xff\x42\xb6\x7e\x78\x2d\x8d\xea\x71\xc3\x88\x95\x28\x3d\x35\x64\x70\x8e\x1a\x02\x69\xcc\x95\xef\x94\x09\x72\x65\xad\x63\x50\xb9\x78\x81\xda\xd2\x03\x68\x57\x2a\xb2\x20\xe1\x22\x6f\x18\xcc\x3d\x2a\x46\x2d\xad\xdd\xb1\x7b\x7a\xfd\x79\x85\x9c\xb5\xe9\x71\x4f\xf3\x51\x38\x03\xf6\x75\x37\x4e\xb4\xcd\x66\xb5\xda\x86\xf9\xfd\xcf\x4f\xe7\xb7\x17\x97\x67\xe7\xb7\x17\x3f\x7f\x3d\xef\x89\x00\x34\xca\xd4\xf8\x8b\x77\x65\xb6\x71\x01\x30\x23\x34\xfa\x0f\x9c\x6d\xdf\x48\x23\xf7\x18\x73\x5b\x20\x2a\x5f\x29\x2e\xb2\xd8\xd8\x63\xe9\x39\xe1\x94\x8e\x68\xe3\x4c\x5d\xe2\x57\x57\x5b\xee\xf5\x59\x02\xa5\x9c\xb5\xca\x52\xf1\x9e\xf9\xf6\x4d\x6d\x52\x13\x4d\xfe\x49\xc5\x6e\x8b\x0d\x58\xe8\x75\xe0\x2e\x3b\xd2\x7f\x82\xe9\x0d\xa1\x2e\x95\xae\xaf\xb7\xc0\xba\x6a\xdc\xbd\xf1\xd9\x27\x06\x01\xe5\xbb\x67\x41\x79\x90\x2c\xd1\x2c\x3e\x27\x2b\x0b\x63\xc1\x8a\x78\x21\x77\xb0\xad\xd0\x4c\xde\x0f\x9c\xa2\xd5\x95\x23\xcb\x93\x17\xaf\x4e\xaf\x3f\xdf\x9e\x5f\x9c\x5d\x5d\x7e\xbe\xb8\xf9\x69\x40\x54\x0a\x4a\x7a\xf2\xe2\x55\xbf\xbd\x36\x44\x05\x7f\xd8\x22\x4e\xd3\x6c\x86\x1e\x85\xbc\xd9\xc1\xe0\xbc\x4e\x96\xdc\xb1\x22\x27\x79\x4a\x64\x87\x54\x63\x65\xdc\x62\xc3\x74\x02\xf7\x08\x85\x6a\x10\x14\x30\x06\x0e\xed\xb8\xc8\x0b\xcc\xef\x42\xe4\x49\x30\x54\x12\x87\xf1\x76\xf8\xa5\x7a\x68\xfb\x2f\x54\xe8\x45\x74\x72\x7c\x74\xb0\x0f\x9a\xba\x79\x19\xc2\x52\x16\xc1\x9f\xa5\xe9\x2e\x22\xfc\x7f\x03\x73\x27\xa3\xee\x60\xa0\xce\xf2\xb2\x7a\xe8\x9a\xc6\xae\xe2\xe6\xf2\xf1\xe4\xe3\xc9\x00\x86\x0a\x54\x86\x8b\xbf\x37\xfc\x38\x76\xb9\x33\x19\xdc\x9c\x5e\x75\x6e\x0c\x35\x68\x31\x84\x2b\xef\xa6\xd8\x0f\x6d\xa6\xc8\xd4\x1e\x6f\x0a\x8f\xa1\x70\x46\x67\xd0\x1f\x55\xb2\x2b\xfe\x8a\xbc\x99\xb6\xaa\xc5\xf9\x50\x10\xab\x8d\x6b\xe8\x4e\x56\x09\x52\xe6\x0c\x8d\x5a\x5c\xa3\x2c\xa8\xb2\x4d\x1c\xf5\x64\x98\x4a\x74\x35\xaf\xaf\xdf\xf6\x9f\x88\x9e\x9c\x5e\x5f\xbe\xd9\x83\x1b\x9f\x63\xc7\x9d\xfc\xb8\xa9\xbc\x35\x71\x9d\x0e\x1b\xd6\x5a\x71\xef\x2a\x35\x8f\x4c\x99\xc1\x27\xd2\xe4\x31\x97\x7f\x28\x33\xe8\x3b\xea\x44\x1a\xf9\x5e\xff\xed\xc4\xff\x17\x42\x58\x5a\x7a\xc6\xff\x93\xcc\x3e\xc8\xed\x4f\xdb\xd1\xd8\x0c\xaa\x6b\x6c\x7a\x9a\x2b\xdc\xaf\x5a\x38\xa9\xa4\x87\xff\xcb\x89\xb8\x7b\xd6\xac\xe2\x88\x61\xc8\xa8\x39\xde\x39\x6a\xf6\xdd\xf4\x44\xae\x05\x4c\x22\xe8\x99\x44\xd0\x8f\xba\x2f\xec\x6d\xb5\x42\xf2\xf1\x65\x7d\x6c\xec\x6c\x91\xde\x52\xd8\x47\xdc\xa2\xc2\x0c\xce\x62\x7f\x38\xbf\xb8\xf4\xa7\x71\xd3\x1a\xed\x91\xae\xef\x0d\x65\x13\x2d\xfb\xba\x7e\x02\x1f\x3f\x96\x89\xdb\xe5\x1e\xb3\xd8\x15\xca\x56\x08\x4f\x2e\x3f\x3f\x16\xc4\x77\xf9\x1e\xc2\xe6\x53\x6e\x0f\xe1\xa5\x78\x7e\x29\x0b\x7c\xdc\xcb\xe1\xea\x1b\x08\x22\xe5\xa0\x92\x39\x17\x38\xfe\x6f\x41\xd4\x1f\x6f\xe8\xd6\xf2\x55\x09\x29\x97\x95\x88\x2b\x13\x1c\x54\x2e\x04\x9a\x1a\x84\xfb\x82\x8c\x7c\x5e\x8a\x45\xf9\x02\x30\x06\xe2\xfe\xde\x28\x32\x4a\x04\xd4\x8c\xe5\x2b\x32\x06\xfb\x38\xc6\xc0\x63\x5c\xdd\xc9\x59\x70\x3e\x7a\x05\x8f\x53\xe7\x78\x57\xba\xba\xdd\x1a\x09\x25\xfd\xa1\xc6\x19\xa4\xa3\x67\x2a\xb6\xc9\x4d\xcf\x55\x67\xc5\x59\xff\x04\x00\x00\xff\xff\xb0\xb8\x68\x07\xcd\x11\x00\x00") - -func testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathPluginYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathPluginYaml, - "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-plugin.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathPluginYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathPluginYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-plugin.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathProvisionerYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x53\xc1\x6e\xdb\x3a\x10\xbc\xeb\x2b\x16\x79\xd7\x47\xfb\xf9\xb5\x29\x0a\x01\x3e\x04\x49\x0e\x41\xd3\xb4\x80\x83\xde\xd7\xd4\x5a\x5a\x98\x22\x59\x72\xa9\x58\x7f\x5f\x50\x76\x12\x49\x46\x93\x96\x80\x2e\xe4\xcc\x70\x76\x38\xda\xb3\xad\x4a\xd8\x50\xe8\x58\x53\x81\x9e\x7f\x50\x88\xec\x6c\x09\xdd\xaa\x68\x49\xb0\x42\xc1\xb2\x00\xb0\xd8\x52\x09\x3a\xb2\x6a\x5c\x14\x8f\xd2\x28\x1f\x5c\xc7\x19\x4c\x01\x0a\x00\x83\x5b\x32\x31\x63\x01\xd0\xfb\xb7\xc0\xd1\x93\xce\xc0\x48\x86\xb4\xb8\xf0\x47\x24\x00\xef\x82\x9c\x2e\x50\x27\x43\x55\x6a\xdb\x7e\xd8\x39\x1e\x97\xb0\xfa\xff\xc3\xc7\xcb\xa2\x50\x4a\x15\xa7\xe1\x04\x85\x76\xc9\x6c\x48\x26\x03\xa2\xf7\x71\xf9\x57\x53\x8e\x7c\x0f\x79\x3d\x0c\xe8\x8b\xdf\xc1\x2f\x0a\x80\x40\xde\xb0\xc6\x58\xc2\xea\x6c\xde\x16\x45\x37\xf7\xa3\xd4\xde\x89\xa0\x00\x10\x6a\xbd\x41\xa1\x93\xc0\xc8\x79\x5e\x66\xa2\xf5\xbe\x1a\xc0\xf3\x40\x03\x7a\xb7\x63\xcb\xd2\xbf\xf2\xbd\xab\xae\xce\x36\xf3\x4c\x3f\x13\x07\xaa\x6e\x52\x60\x5b\x6f\x74\x43\x55\x32\x6c\xeb\xbb\xda\xba\x97\xed\xdb\x03\xe9\x24\x39\xe8\x11\x53\x1d\x2d\x6e\x26\x31\xbc\xae\x21\x90\xdb\x83\x0f\x14\xb3\xc7\x38\x3f\x57\xb0\xa7\x7e\x78\xb8\xd9\x01\x80\xf3\x14\x30\x4b\xc2\x9d\x3d\x3b\xec\xd0\x24\x3a\x53\xcb\x7a\xe3\x70\xbc\x49\x35\x4f\xc9\xe2\xbc\x33\xae\xee\xbf\xe4\x6b\xf7\x69\x4b\xc1\x92\x50\x5c\xb0\x5b\x66\x56\x6e\xcb\x09\x7f\x6a\xc4\x95\xd6\x2e\x59\x79\x78\xa9\xd1\x3c\x70\x00\xed\xac\x20\x5b\x0a\x23\x43\x6a\x54\xbc\x73\x46\x5e\xdc\x62\x4d\x25\xec\x3f\xc7\x45\xad\x43\x36\x10\xb9\x56\x51\x5c\xc0\x9a\x96\x33\x5e\xd9\xad\x16\x9f\x16\xff\x8d\xe8\x18\xea\xd9\xfc\x0a\x54\xb7\xbe\x9c\x6f\xa9\xac\x84\x55\x95\x5f\x60\x9d\x65\xf3\xb7\x88\x4e\xef\xcf\x90\x3b\x42\x49\x81\x54\x8d\x42\x71\xfd\x78\x4a\x6a\x2d\x21\xd1\x08\x1b\x49\xa7\xc0\xd2\x5f\x3b\x2b\x74\x90\xa9\x87\x7f\xe0\xb1\xe1\x08\x1c\xc1\x92\xa6\x18\x31\xf4\xe0\xac\xe9\x61\xe7\x02\xc4\x3e\x0a\xb5\x11\x9e\x58\x1a\xd8\xdc\xde\xb3\x4d\x87\x7f\xe1\xa9\xa1\x40\x33\x11\xeb\xac\xf2\x81\x3b\x36\x54\x53\x05\x91\x2b\xd2\x18\x46\x41\x83\x46\x6b\x9d\x00\xea\x7c\x0b\x24\xcb\x07\xa8\x5c\x8b\x6c\x21\x8f\x46\x32\x13\xd4\x81\x50\xa8\x82\x6d\x0f\x23\xdd\xeb\xcd\x1d\x54\x81\x3b\x1a\x49\x2f\x26\xcc\x57\x70\x09\xb3\x1c\x3a\x67\x52\x4b\x5f\x73\x39\xce\x1e\xa2\xcd\xbb\xdf\x51\x9a\x12\x72\xdc\xb3\x9a\x1e\x9b\x71\xf4\xa9\x2a\x7e\x2e\xc5\x51\x70\xd2\xa1\x5c\xc9\x41\x66\x6a\xea\x28\xdc\x61\x58\x1a\xde\x2e\x73\x8b\x0d\xc9\xf2\xd8\xf6\xb8\x1c\xff\x01\xd3\xee\xf7\x9e\x4a\xb8\xe1\x30\xfc\xaa\xfd\xb7\x70\x3d\xa4\x52\xbc\xe1\xec\x57\x00\x00\x00\xff\xff\x01\x46\xee\x3e\x4d\x06\x00\x00") - -func testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathProvisionerYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathProvisionerYaml, - "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-provisioner.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathProvisionerYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathProvisionerYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-provisioner.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathResizerYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x53\xc1\x6e\xdb\x38\x10\xbd\xeb\x2b\x06\xd9\xeb\xca\x4e\x76\x37\xc0\x42\x40\x0e\x41\x92\x43\xd0\x34\x2d\xe0\xa2\x77\x9a\x1c\x4b\x03\x53\x24\x3b\x1c\x2a\x56\xbf\xbe\xa0\xec\xc4\x94\xdd\xa6\x25\xa0\xcb\xf0\xcd\xe3\x9b\x37\x4f\x5b\x72\xa6\x81\x15\xf2\x40\x1a\x2b\x15\xe8\x2b\x72\x24\xef\x1a\x18\xae\xaa\x1e\x45\x19\x25\xaa\xa9\x00\x9c\xea\xb1\x01\x1d\xa9\xee\x7c\x94\xa0\xa4\xab\x19\x23\x7d\x47\xae\x00\xac\x5a\xa3\x8d\x19\x06\xa0\x42\xf8\x05\x2e\x06\xd4\x19\x13\xd1\xa2\x16\xcf\xbf\xc3\x03\x04\xcf\x72\xa0\xad\x0f\x0a\x4c\xea\xfb\x71\xaa\xec\xaf\x1b\xb8\xfa\xe7\xdf\xff\xae\xab\xaa\xae\xeb\xea\x30\x8d\x28\xc1\x4d\xb2\x2b\x94\xd9\x44\x2a\x84\xb8\xfc\xf3\xb1\x8e\x72\x27\x73\x9e\x27\xe4\xc5\xcf\xa0\x17\x15\x00\x63\xb0\xa4\x55\x6c\xe0\xea\x6c\xc4\x5e\x89\xee\x9e\x0a\x8f\xde\x9f\x5a\xb0\x0f\x56\x09\x1e\x9a\x0b\xb5\xf9\xd8\x19\xcf\xfb\x4c\x00\xaf\x43\x4c\xc8\xcd\x86\x1c\xc9\x78\xec\x0d\xde\xdc\x9e\x15\xf3\x2c\xdf\x12\x31\x9a\xfb\xc4\xe4\xda\x95\xee\xd0\x24\x4b\xae\x7d\x6c\x9d\x7f\x2b\x3f\xec\x50\x27\xc9\xc6\x16\x9d\xf5\x5e\xde\x6a\x36\xfe\xf1\x4c\x46\x3c\xec\x02\x63\xcc\x2b\x89\xa7\xf7\x35\x6c\x71\x9c\x16\x75\x72\x01\xe0\x03\xb2\xca\x94\xf0\xe8\xce\x2e\x07\x65\x13\x9e\xb1\x65\xbe\xd2\x98\x60\x53\x4b\xf3\x66\xf1\xc1\x5b\xdf\x8e\x1f\xf2\xb3\xdb\xb4\x46\x76\x28\x18\x17\xe4\x97\xb9\x2b\xa7\xe3\x80\x3f\xa4\xe0\x56\x6b\x9f\x9c\x3c\xbf\xc5\xa6\x34\x1b\x40\x7b\x27\x8a\x1c\x72\x21\xa6\x2e\x42\x36\x47\xe7\x43\xbd\x6a\xb1\x81\xed\xff\x71\xd1\x6a\xce\x0f\x47\x6a\xeb\x28\x9e\x55\x8b\xcb\xa2\xa7\x19\x2e\x17\xd7\x8b\xcb\xa2\x55\x71\x7b\x32\x73\x0d\xf5\x70\x73\x7d\x5a\xca\x24\xca\x98\x6c\xfa\x4d\x66\xcc\xdf\x22\x7a\xbd\x2d\x80\x11\x75\x62\x92\xf1\xce\x3b\xc1\x9d\xcc\x69\xff\x82\x2f\x1d\x45\xa0\x08\x0e\x35\xc6\xa8\x78\x04\xef\xec\x08\x1b\xcf\x10\xc7\x28\xd8\x47\x78\x21\xe9\x60\xf5\xf0\x44\x2e\xed\xfe\x86\x97\x0e\x19\x4f\x48\x9c\x77\x75\x60\x1a\xc8\x62\x8b\x06\x22\x19\xd4\x8a\x0b\xcf\x40\x2b\xe7\xbc\x80\xd2\xf9\x15\x48\x8e\x76\x60\x7c\xaf\xc8\x41\x96\x8b\x72\x42\xa8\x19\x95\xa0\x81\xf5\x08\x05\xef\xdd\xea\x11\x0c\xd3\x80\x05\xf5\x62\xd6\x79\x04\x37\x20\x9c\x4a\x9d\x83\xb7\xa9\xc7\x8f\x79\xc7\x67\xde\xf6\xb9\xfa\x59\x49\xd7\x40\xb6\xf0\x24\x6d\xfb\x25\xef\x75\xd6\x86\x5e\x77\xbc\x27\x9c\xc5\x21\x27\x6b\xa2\x99\x8b\xda\x13\x0f\x8a\x97\x96\xd6\xcb\x1c\x46\x8b\xb2\xdc\x87\x36\x2e\xcb\x20\xcf\x23\x3c\x06\x6c\xe0\x9e\x78\xfa\xe3\xc6\x4f\x7c\x37\xb9\x52\xbd\xa3\xec\x47\x00\x00\x00\xff\xff\xb7\x8c\xb0\xd9\xf5\x05\x00\x00") - -func testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathResizerYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathResizerYaml, - "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-resizer.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathResizerYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathResizerYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-resizer.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathSnapshotterYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x53\x4d\x6f\xdb\x38\x10\xbd\xeb\x57\x0c\xb2\xd7\xa5\xbd\xce\x6e\x80\x85\x80\x1c\x82\x24\x87\xa0\xe9\x07\xe0\xa2\xf7\x31\x35\x96\x06\xa6\x48\x96\x1c\x2a\xd6\xbf\x2f\x28\x39\xb5\x24\xa3\x49\x4b\x40\x97\xe1\xbc\xc7\x37\x6f\x9e\x0e\x6c\xab\x12\xb6\x14\x3a\xd6\x54\xa0\xe7\x6f\x14\x22\x3b\x5b\x42\xb7\x29\x5a\x12\xac\x50\xb0\x2c\x00\x2c\xb6\x54\x82\x8e\xac\x1a\x17\xc5\xa3\x34\x2a\x5a\xf4\xb1\x71\x22\x14\x0a\x00\x83\x3b\x32\x31\xb7\x02\xa0\xf7\x6f\xf4\x46\x4f\x3a\xf7\x45\x32\xa4\xc5\x85\xdf\xc1\x00\x78\x17\xe4\x44\xaf\x4e\x6a\xaa\xd4\xb6\xfd\x50\x19\xaf\x4b\xd8\x5c\xff\xfb\xdf\x4d\x51\x28\xa5\x8a\xd3\x64\x82\x42\xfb\x64\xb6\x24\xb3\xe9\xd0\xfb\xb8\xfe\xb3\x11\xcf\xb2\x07\xb3\x3e\x0d\xdd\x57\xbf\x6a\xbf\x2a\x00\x02\x79\xc3\x1a\x63\x09\x9b\x8b\x71\x5b\x14\xdd\x3c\x4f\x3c\x7b\xdf\x01\xa1\xd6\x1b\x14\x3a\x11\x4c\x94\xe7\x63\x66\x5c\xef\xb3\x01\xbc\x0e\x34\x74\xef\xf7\x6c\x59\xfa\x33\xde\xbb\xea\xee\xa2\x98\x67\xfa\x9e\x38\x50\xf5\x90\x02\xdb\x7a\xab\x1b\xaa\x92\x61\x5b\x3f\xd5\xd6\xfd\x2c\x3f\x1e\x49\x27\xc9\x46\x4f\x90\x6a\x94\xb8\x9d\xd9\x70\x3e\x83\x21\x8f\x47\x1f\x28\xe6\x15\xc5\xe5\xbd\x82\x03\xf5\xc3\xe2\x16\x17\x00\xce\x53\xc0\x4c\x09\x4f\xf6\xe2\xb2\x43\x93\xe8\x82\x2d\xf3\x4d\xcd\xf1\x26\xd5\x3c\x07\x8b\xf3\xce\xb8\xba\xff\x90\x9f\x3d\xa4\x1d\x05\x4b\x42\x71\xc5\x6e\x9d\x51\x39\x2d\xa7\xfe\x53\x22\xee\xb4\x76\xc9\xca\xe8\xfa\xd2\x6c\x00\xed\xac\x20\x5b\x0a\x13\x31\x6a\x12\xba\x4b\x44\x3e\xdc\x62\x4d\x25\x1c\xfe\x8f\xab\x5a\x87\xfc\x78\xe4\x5a\x45\x71\x01\x6b\x5a\x2f\x70\x65\x77\xbd\xda\xac\xfe\x99\xc0\x31\xd4\x8b\xd9\x15\xa8\xee\xf6\x66\x59\x52\x99\x09\xab\x2a\xbb\x7f\x9b\x69\xf3\xb7\x8a\x4e\x1f\x26\x9d\x91\x74\x0a\x2c\xfd\xbd\xb3\x42\x47\x99\xf3\xfe\x05\x5f\x1b\x8e\xc0\x11\x2c\x69\x8a\x11\x43\x0f\xce\x9a\x1e\xf6\x2e\x40\xec\xa3\x50\x1b\xe1\x85\xa5\x81\xed\xe3\x33\xdb\x74\xfc\x1b\x5e\x1a\x0a\xb4\x20\xb1\xce\x2a\x1f\xb8\x63\x43\x35\x55\x10\xb9\x22\x8d\x61\x62\x1e\x68\xb4\xd6\x09\xa0\xce\xaf\x40\xb2\x7c\x84\xca\xb5\xc8\x16\xb2\x5c\x92\x05\xa1\x0e\x84\x42\x15\xec\x7a\x98\xf0\xde\x6f\x9f\xa0\x0a\xdc\xd1\x84\x7a\x35\x43\x9e\x9b\x4b\x90\x90\xa6\x3a\x3b\x67\x52\x4b\x1f\xf3\xb2\x2f\xcc\x6d\x73\xf5\x0b\x4a\x53\x42\xb6\x70\x11\xbb\x71\xdb\xa3\x4e\x55\xf1\xeb\xa2\x47\xc2\x59\x2e\x72\xc4\x06\x9a\xb9\xa8\x91\xb8\xc3\xb0\x36\xbc\x5b\xe7\x54\x1a\x92\xf5\x98\xde\xb8\x9e\x26\x7a\x9e\xe5\xde\x53\x09\x0f\x1c\x86\x5f\xaf\xff\x1c\xee\x07\x57\x8a\x37\x94\xfd\x08\x00\x00\xff\xff\x1c\xac\x57\x2e\x1a\x06\x00\x00") - -func testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathSnapshotterYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathSnapshotterYaml, - "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-snapshotter.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathSnapshotterYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathSnapshotterYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-snapshotter.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiHostpathHostpathE2eTestRbacYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa4\x91\x4d\x4b\x03\x41\x0c\x86\xef\xf3\x2b\x02\x5e\x14\xdc\x8a\x9e\x64\x6f\x7e\x80\xd7\xa5\x15\xef\xe9\x4c\xba\x9b\x76\x3b\x19\x92\xcc\x42\xfb\xeb\x65\x29\xf6\x52\x14\xa1\xd7\x99\xe4\x09\xef\xfb\xdc\x40\x51\x9e\x78\xa4\xd4\x53\x82\x4e\x12\xac\x28\x56\x65\x3f\x40\x27\x23\xc7\xc3\x3d\x14\xa5\x89\xa5\xda\x78\x80\x44\x1b\xce\x94\x60\x5b\xcd\x61\x23\x0a\x7d\xa4\xee\x1d\x26\x46\xe8\x4e\x98\x9e\xd2\x27\x99\x77\xab\xee\x6d\xac\xe6\xa4\x4b\x19\xe9\x95\x73\xe2\xdc\xdf\xde\x85\x1d\xe7\xd4\xc2\xe5\x57\xc0\xc2\x5f\xa4\xc6\x92\x5b\xd0\x35\xc6\x05\x56\x1f\x44\xf9\x88\xce\x92\x17\xbb\x67\x5b\xb0\x3c\x4c\x8f\x61\x4f\x8e\x09\x1d\xdb\x00\x90\x71\x4f\x2d\x14\x2b\x4d\x34\x6e\x06\x31\x2f\xe8\x43\xa3\x32\x52\xb0\xba\xde\x52\x74\x9b\xe7\x1a\x38\xdd\x5d\x91\x4e\x1c\xe9\x25\x46\xa9\xd9\x03\xc0\x0f\x62\x5e\x47\x77\x8c\x03\xe9\xf9\xd9\x0a\x46\x6a\xe7\xcc\x58\x47\xff\x2f\xa6\xa8\x4c\x3c\xe7\xb8\x9a\x64\x19\x8b\x0d\xe2\x7e\x35\x49\xc9\xf8\xf8\x3b\x65\xee\x6b\x49\x9b\xb9\xa9\x0b\x3f\xe7\x96\xe9\x89\x1a\x27\xf3\xa6\x9c\x45\x37\xc5\x4a\x00\xc0\xc2\x1f\x2a\xb5\xfc\x21\x2e\x7c\x07\x00\x00\xff\xff\x37\xc6\x5c\x16\x67\x02\x00\x00") - -func testE2eTestingManifestsStorageCsiHostpathHostpathE2eTestRbacYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiHostpathHostpathE2eTestRbacYaml, - "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/e2e-test-rbac.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiHostpathHostpathE2eTestRbacYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiHostpathHostpathE2eTestRbacYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/e2e-test-rbac.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiHostpathUsageCsiStorageclassYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\xcc\xb1\x8a\xc3\x30\x0c\x87\xf1\x5d\x4f\xa1\x17\x48\x8e\xdb\x0e\x8f\x77\xb7\x74\x28\x14\x0a\xdd\x85\xfd\x27\x11\xb1\xad\x60\xa9\x81\xbe\x7d\x29\x9d\xba\x7e\x1f\xfc\x64\xd7\x1b\x86\xab\xf5\xc4\x1e\x36\x64\xc1\xbc\xfd\xf8\xac\xf6\x75\x7c\xd3\xa6\xbd\x24\xbe\xbe\xfb\x5f\x15\x77\x6a\x08\x29\x12\x92\x88\xb9\x4b\x43\xe2\xec\x3a\xad\xe6\xb1\x4b\xac\x93\x67\xda\x87\x1d\xfa\x12\x31\x3e\x27\x0d\xe4\x2a\xda\x2e\x56\x35\x3f\x12\xff\xa3\x22\x40\x87\xd5\x7b\xc3\xaf\xf6\xa2\x7d\x39\x5b\x41\xe2\x53\x6b\x28\x2a\x01\x7a\x06\x00\x00\xff\xff\x20\x58\xb7\x12\xa0\x00\x00\x00") - -func testE2eTestingManifestsStorageCsiHostpathUsageCsiStorageclassYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiHostpathUsageCsiStorageclassYaml, - "test/e2e/testing-manifests/storage-csi/hostpath/usage/csi-storageclass.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiHostpathUsageCsiStorageclassYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiHostpathUsageCsiStorageclassYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/hostpath/usage/csi-storageclass.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiMockCsiMockDriverAttacherYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x92\xcf\x8a\x1b\x31\x0c\xc6\xef\xf3\x14\x3a\xf4\xd0\x1e\x26\xd3\x5d\x28\x14\xc3\x1e\x96\x4d\x6f\xfd\x47\x03\xbd\x2b\x1e\x75\x22\xe2\xb1\x8d\xac\x31\xcd\xdb\x17\xc7\x59\x6a\xef\x52\x2a\x30\x18\x59\xfe\xe9\xd3\x67\x9f\xd9\xcf\x06\x0e\x8a\x4a\xbf\x36\x77\x20\x1d\x30\xf2\x4f\x92\xc4\xc1\x1b\xc0\x18\xd3\x94\xef\x86\x95\x14\x67\x54\x34\x03\x80\xc7\x95\x0c\xd8\xc4\xe3\x1a\xec\x39\xba\x6d\x61\x3f\xa2\x2a\xda\x13\xc9\x90\x22\xd9\x52\x95\xc8\x91\xd5\x20\x65\x0f\xb0\xa2\xda\xd3\x67\x3c\x92\x4b\x35\x01\x05\xfd\x6f\x0a\x80\x50\x74\x6c\x31\x19\xb8\x1b\x00\x94\xd6\xe8\x50\xe9\x46\x6b\xd4\x94\x70\x1d\xf8\xbf\x68\x80\x67\x91\xd7\x3d\x49\x66\x4b\x8f\xd6\x86\xcd\xeb\xd7\x6e\xb8\x5b\x89\x0d\x5e\x91\x3d\x49\xd3\x63\x6c\x7c\xe8\xd8\x35\x78\xc5\x85\x0c\x9c\x3f\xa6\xdd\x62\x65\xc7\x61\x4a\xbc\x8c\x49\x83\xe0\x42\x53\x7b\xc9\xe4\xfb\xdd\xfd\xee\x7d\x73\x17\x65\x69\x1a\xd5\x66\xe3\x98\x1f\x3e\xbc\xca\x5d\x39\xf3\x2c\x94\xd2\xc3\x9b\xb7\x8f\xfb\xfd\x8f\x4f\x87\xc3\xbb\xa6\x8c\x7c\x7e\x49\xaa\xb2\x6f\xb5\xdd\x19\x40\x46\xb7\x91\x81\xa2\xaf\xac\x5d\xfa\xeb\x41\xb5\xca\x6e\xc2\x7a\x79\x0a\x5e\xe9\xb7\xf6\xe4\x28\x9c\xd9\xd1\x42\xb3\x01\x95\x8d\x9a\xc3\x1c\xdc\xb6\xd2\x97\xe2\x6f\x37\xd8\x08\x6b\xc9\x7d\x47\x3d\xd5\xa6\x1d\xb0\x0a\x2d\x12\x48\xc7\x99\x9f\xdd\xad\xb0\xee\x25\x4e\x21\x55\x48\x2f\xa8\x62\x33\xca\xe4\xf8\x38\x9d\xb7\x23\x39\xd2\xa9\xfe\x87\x34\xbd\x78\xe3\x1a\x7a\x89\x64\x60\xcf\x72\xfd\xbb\x97\x6f\xf2\x24\x84\xda\xce\xf2\x4a\xd5\xf0\x27\x00\x00\xff\xff\x92\x6d\x20\x00\x42\x03\x00\x00") - -func testE2eTestingManifestsStorageCsiMockCsiMockDriverAttacherYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiMockCsiMockDriverAttacherYaml, - "test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-attacher.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiMockCsiMockDriverAttacherYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiMockCsiMockDriverAttacherYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-attacher.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiMockCsiMockDriverResizerYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x92\xcf\x6a\x1c\x31\x0c\xc6\xef\xf3\x14\x22\xf4\xd0\x1e\x66\x26\x39\x04\x8a\x21\x87\x90\xed\xad\xff\xe8\x42\xef\x5a\x8f\x3a\x2b\xd6\x63\x1b\x59\x63\xba\x7d\xfa\xe2\x78\x43\x3d\x59\x4a\x04\x06\x23\xcb\x3f\x7d\xfa\xec\x13\xfb\xc9\xc0\x5e\x51\xe9\xd7\xea\xf6\xa4\x1d\x46\xfe\x49\x92\x38\x78\x03\x18\x63\x1a\xf3\x5d\xb7\x90\xe2\x84\x8a\xa6\x03\xf0\xb8\x90\x01\x9b\xb8\x5f\x82\x3d\x45\xb7\xce\xec\x7b\xa1\xc4\x7f\x48\xba\x14\xc9\x96\xa2\x44\x8e\xac\x06\x29\x7b\x80\x05\xd5\x1e\x3f\xe3\x81\x5c\xaa\x09\x28\xe4\xff\x42\x00\x84\xa2\x63\x8b\xc9\xc0\x5d\x07\xa0\xb4\x44\x87\x4a\x17\x58\xa3\xa5\x84\xdb\x70\xdf\x22\x03\xbc\x48\x7c\xde\x93\x64\xb6\xf4\x68\x6d\x58\xbd\x7e\xdd\x4c\x76\x29\xb1\xc1\x2b\xb2\x27\x69\x5a\xf4\x8d\x09\x2d\xba\x06\x2f\x38\x93\x81\xd3\xc7\x34\xcc\x56\x06\x0e\x63\xe2\xb9\x4f\x1a\x04\x67\x1a\x9b\x3b\x26\xdf\x0e\xf7\xc3\x6d\x73\x15\x65\x6e\xda\xd4\x56\x37\x7d\x9f\x1f\xee\x6f\xae\xb3\x85\x84\xd3\x24\x94\xd2\xc3\xbb\xf7\x8f\xbb\xdd\x8f\x4f\xfb\xfd\x87\xb6\x90\x7c\x7e\x4d\xab\xc2\x2f\xc5\x9b\x33\x80\x8c\x6e\x25\x03\x45\x62\x59\x43\xfa\xe7\x42\x35\xcb\xae\xc2\x7a\x7e\x0a\x5e\xe9\xb7\x6e\xc9\x51\x38\xb3\xa3\x99\x26\x03\x2a\x2b\x35\x87\x39\xb8\x75\xa1\x2f\xc5\xe1\xcd\x70\x3d\x2c\x25\xf7\x1d\xf5\x58\x9b\x6e\x80\x55\x68\x91\x40\xda\x4f\xfc\x62\x70\x85\x6d\xde\xe2\x18\x52\x85\x6c\x05\x55\x6c\x46\x19\x1d\x1f\xc6\xd3\x7a\x20\x47\x3a\xd6\x0f\x91\xc6\x57\xaf\x5c\x43\xcf\x91\x0c\xec\x58\x9e\xff\xee\xf9\x9b\x3c\x09\xa1\xb6\xb3\x5c\xa9\xfa\x1b\x00\x00\xff\xff\xf1\x9d\x6f\x4c\x40\x03\x00\x00") - -func testE2eTestingManifestsStorageCsiMockCsiMockDriverResizerYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiMockCsiMockDriverResizerYaml, - "test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-resizer.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiMockCsiMockDriverResizerYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiMockCsiMockDriverResizerYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-resizer.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiMockCsiMockDriverYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xe4\x55\x4d\x8f\xdb\x46\x0c\xbd\xfb\x57\x10\x4e\x0f\xc9\x41\x52\x8d\xc5\xb6\x85\x00\x1f\x36\x6b\x17\x08\xda\xf5\x06\x71\xda\xab\x31\x1e\xd1\x32\x61\x69\x66\xc0\xa1\x84\xfa\xdf\x17\x23\x79\x13\x7d\x79\x3f\xda\x63\x16\x58\x60\x3c\x43\x3e\x92\x8f\x8f\xd4\x89\x4c\x96\xc2\x56\x94\xe0\xa1\x2a\xb6\x28\x33\xe5\xe8\x6f\x64\x4f\xd6\xa4\xa0\x9c\xf3\x49\xbd\x98\x95\x28\x2a\x53\xa2\xd2\x19\x80\x51\x25\xa6\xa0\x3d\x45\xa5\xd5\x27\x57\x54\x39\x99\x99\x77\xa8\xc3\xa3\xc7\x02\xb5\x58\x0e\x67\x80\x52\x89\x3e\xfe\xa9\xf6\x58\xf8\xf6\x02\x02\xe2\xc8\x19\x80\xd1\x15\xa4\x95\x4f\x61\x31\x03\x10\x2c\x5d\xa1\x04\x2f\x20\x9d\xd8\xe1\xaf\xe8\xe1\x5d\x43\x04\x78\x4a\xa9\x39\x23\xd7\xa4\xf1\x4e\x6b\x5b\x19\xd9\xf4\x2a\xb8\x98\x68\x6b\x44\x91\x41\xee\x40\x47\x9d\x62\x1d\xdb\x9a\x02\x2b\xc8\xdf\xde\x01\xa8\x54\x39\xa6\x70\xfa\xcd\xc7\xb9\xe6\x98\x6c\xe2\x29\x8f\xbc\x58\x56\x39\x26\x03\xbf\xb4\x5e\xc4\xbf\xc4\x3f\x77\xdc\x15\xe7\x9d\x70\x6d\xc8\x79\x14\x05\x3f\x95\x65\x8c\xde\x2f\x7f\x7a\x7f\xb7\x5a\x7d\x59\x6f\xb7\x1f\xe6\x3d\xc3\x77\xf0\xd5\x3a\x5b\xd8\xfc\x0c\xbe\x72\xce\xb2\x00\x79\x30\x88\x19\x66\x70\xb0\x0c\x72\x44\x70\x36\x03\x46\xaf\x8f\x98\x55\x05\x99\x1c\x04\xbd\x0c\x60\xde\xcf\x2f\xe9\x82\x56\x4e\x69\x92\xf3\x1c\xc8\x84\x9a\x77\x81\x9e\x5d\x6d\x8b\xaa\xc4\x38\xb7\x1f\xe2\x71\xa6\x07\x54\x52\x31\x46\xb9\x12\xf4\xcb\xa7\x8c\x96\xc2\x15\xce\x47\xd6\xf5\xf2\xb6\x7b\x89\xa6\x1e\xd6\xde\xd2\x7d\x29\xb8\xf7\x06\x50\xab\xa2\xc2\x14\x02\xa9\xe1\x3f\xf6\xdf\x7b\xd7\x3c\x37\x69\x3e\x84\xfe\x8e\x28\x2d\xc3\xed\x67\x25\xc7\xd6\x7d\x00\xdc\x06\x0d\x70\x28\x51\x46\x3c\x6a\x7f\xc6\x54\x23\x47\x8c\x39\x79\x61\xf5\xb6\xfe\x1b\x9b\x61\x34\x44\x08\x4a\xb8\x79\x51\x09\x51\x60\x6c\x74\xd7\x15\xc7\x35\x32\x5a\xcb\x53\xb5\xc7\x02\xe5\x5b\x58\x21\x6b\x22\xa7\xe4\xb8\x4c\x6a\xc5\x49\x41\xfb\xe4\x62\x92\xb4\x73\xe3\x93\xa7\xa1\x98\x02\xbd\xda\xaf\x3f\xfe\xfa\xb8\xde\x6d\x1e\x57\xeb\xdd\xe6\xee\x61\x3d\xd5\xb6\xdf\xd9\x96\xe9\xe0\x01\xe0\x40\x58\x64\x5f\xf0\x30\x7e\x09\x53\xfd\x7d\x0b\xd5\x8b\x09\x83\xc6\xb9\xed\x69\x98\xf4\x38\xf0\x1c\x06\xbb\x63\xea\x51\x57\x4c\x72\xbe\xb7\x46\xf0\x1f\xe9\x87\x71\x4c\x35\x15\x98\x63\x96\x42\x90\xeb\x2b\xa4\xf4\xbc\x90\xae\xca\x68\xe8\xd8\x6d\xc7\x04\x42\xaf\x5b\x53\x72\x2c\xfb\x6d\x79\x5e\x82\xc1\xf8\x22\xbf\xb4\xbe\x89\x17\xaf\x59\x3f\x21\xcc\x32\x38\xc6\x17\x94\x38\x80\x93\x1d\x4f\x74\xe4\x90\x4b\xf2\x9e\x6a\x8c\x44\x71\x8e\xd2\xe8\x6b\x0e\xef\x60\x8f\x5a\x55\x1e\xc1\x1e\xe0\x28\xe2\x7c\x9a\x24\x39\xc9\xb1\xda\xc7\xda\x96\x8d\xee\xd8\xa0\xa0\xef\x1e\xc9\xfb\x0a\x7d\xf2\xeb\xed\xed\xcd\xed\x6b\x84\x77\xbf\xfd\xb4\x5b\x6f\x56\x9f\x1f\x3f\x6d\xbe\xbe\x6d\x5b\xfc\x78\xe2\xfd\x1f\x7b\x70\xec\x3c\x5a\x1f\x36\xf3\x03\xb4\xd6\x9c\xad\x53\x79\x23\xe5\x14\x3e\x52\x46\x8c\x3a\xfc\x50\xc5\x64\xec\xc6\xc7\x59\x32\x53\xf1\x5b\x93\xa3\xb5\xa7\xe9\x50\x6d\x66\x28\x3a\xe9\xda\xb4\x74\xf4\xbe\xe9\x47\xeb\x5b\xeb\x3e\xa5\x57\x2a\x1b\x2c\xc6\x9e\x8f\x9c\x1d\xa6\xb0\x6a\xaa\xb2\x7c\x7e\xe4\x7b\x46\x25\xdd\x6e\x3c\xf3\x6d\x79\x5b\x1a\x43\x82\x5f\x1b\xfa\x0a\xa5\xff\x8d\x85\xdd\x65\x37\x9d\x9f\x4b\x65\x94\xc2\x8b\x0b\x6d\xd8\x53\x6d\xcd\x81\xf2\x07\xe5\xd2\x89\xf5\xd8\x59\x68\x51\xeb\xf8\x6f\x00\x00\x00\xff\xff\xbb\x35\xe0\x36\xc3\x0a\x00\x00") - -func testE2eTestingManifestsStorageCsiMockCsiMockDriverYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiMockCsiMockDriverYaml, - "test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiMockCsiMockDriverYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiMockCsiMockDriverYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiMockCsiMockDriverinfoYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\x8e\x31\x4b\x04\x31\x10\x85\xfb\xfc\x8a\x81\x6d\xb4\x49\xd0\x4a\xb6\x13\x6d\xae\x13\x04\xfb\xb9\xcd\xe3\x6e\xd8\xc9\x64\x49\xe6\x56\xf2\xef\xc5\x45\x84\xab\xdf\xfb\x3e\x3e\xde\xe4\x0b\xad\x4b\xb5\x99\xba\xd7\xc6\x17\xc4\xf5\xa5\x47\xa9\x69\x7f\x0a\xab\x58\x9e\xe9\xed\xf3\xf4\xde\x64\x47\x0b\x05\xce\x99\x9d\xe7\x40\x64\x5c\x30\x53\xa9\xcb\x1a\xef\xc1\x30\xd1\xc9\x1c\xe6\x52\x8d\x55\x07\x59\xa5\xbe\x61\x89\xf4\xaa\x4a\x3b\xeb\x0d\x9d\xc4\xc8\xaf\x08\xd3\xb1\xd0\xb7\xa8\xd2\x19\x24\xd6\xd1\x1c\x99\xf2\x30\x2e\xb2\x1c\xf8\x79\xd0\x07\xfb\x72\xfd\xcd\xc0\xa6\x75\x14\x98\x3f\x3c\x86\xe9\x90\xa0\x7b\xc2\x33\xd2\x5f\x43\xba\xb9\x68\x4f\xf9\xff\x18\x2f\x35\x86\x9f\x00\x00\x00\xff\xff\xa1\x6b\xcd\x59\xe6\x00\x00\x00") - -func testE2eTestingManifestsStorageCsiMockCsiMockDriverinfoYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiMockCsiMockDriverinfoYaml, - "test/e2e/testing-manifests/storage-csi/mock/csi-mock-driverinfo.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiMockCsiMockDriverinfoYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiMockCsiMockDriverinfoYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/mock/csi-mock-driverinfo.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiMockCsiMockRbacYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x93\xb1\x8e\x13\x31\x10\x86\x7b\x3f\xc5\x48\x34\x20\xe1\xa0\x50\xa1\xed\x80\x82\x76\x95\x20\xfa\x89\x3d\xd9\x0c\x71\x6c\x6b\x3c\xb6\x48\x9e\x1e\xad\x02\x51\xee\x72\x39\x5d\x8a\xcb\x6d\xbb\xda\xf9\xf7\x9b\xef\x9f\xc5\xcc\xbf\x48\x0a\xa7\xd8\x41\x9b\x9b\x2d\x47\xdf\xc1\x92\xa4\xb1\xa3\xaf\xce\xa5\x1a\xd5\xec\x48\xd1\xa3\x62\x67\x00\x22\xee\xa8\x03\x57\xd8\xee\x92\xdb\x1a\x63\xad\xfd\x37\xf4\x3d\xd4\xa2\x24\x8b\x14\xe8\x1b\x47\xcf\x71\x30\xe7\xe1\xb2\x42\x37\xc3\xaa\x9b\x24\x7c\x40\xe5\x14\x67\xdb\x2f\x65\xc6\xe9\x53\x9b\x5f\xf9\x82\x4b\x51\x25\x85\x40\x62\x51\x15\xdd\x86\xc4\x4a\x0a\x64\x4a\x5d\xfd\x26\xa7\x65\x7c\xdd\xc2\x93\xcc\x00\x17\xac\xff\x1f\x95\x8c\x8e\x3a\xf0\xb4\xc6\x1a\xd4\x8c\x89\x0b\x5a\x8f\x59\x17\x8b\x9c\x70\xe8\x8f\x92\x44\x0c\x67\x20\x35\x46\x12\x03\x80\x99\x7f\x48\xaa\xf9\x99\x15\xef\xa6\x29\x4b\x6a\x3c\x06\x4d\xc0\xd4\x03\x96\x29\xca\x72\xc7\x70\xeb\x85\xdb\xc8\x48\x03\x17\x15\x7c\x33\x73\xd7\x79\x6e\xb6\xf7\x0e\xb2\x70\xe3\x40\x7e\x20\x0f\x7d\xf2\xb0\x24\x57\x85\x75\x0f\x7d\x0a\xec\xf6\x1f\x21\x0b\x35\x4e\xb5\x84\xfd\x48\xc9\x91\x3c\x34\x46\xe8\x8f\x73\x03\xf9\x9f\x54\xb4\x5f\xf6\x97\x15\xbc\xff\xf0\x2a\xed\xe4\x92\xed\xa3\x86\xa6\xd2\x0c\x7d\x26\xab\x54\xd4\xe6\x93\x1d\x9b\x4b\x7e\x61\x23\x77\x3a\x67\xa1\xc2\x87\x09\xfc\xf7\x27\x8e\x5b\xae\xf6\x6f\x00\x00\x00\xff\xff\xc8\x91\x6e\x9c\x87\x06\x00\x00") - -func testE2eTestingManifestsStorageCsiMockCsiMockRbacYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiMockCsiMockRbacYaml, - "test/e2e/testing-manifests/storage-csi/mock/csi-mock-rbac.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiMockCsiMockRbacYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiMockCsiMockRbacYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/mock/csi-mock-rbac.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2eTestingManifestsStorageCsiMockCsiStorageclassYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x44\xcc\xb1\xaa\x02\x31\x10\x46\xe1\x7e\x9e\x62\x5e\x60\xf7\x72\x3b\x49\xa9\x36\x16\x82\x20\xd8\x0f\xc9\xcf\x32\x6c\x26\xb3\x64\xe2\x82\x6f\x2f\x62\x61\x7b\x0e\x7c\xb2\xe9\x03\x3d\xd4\x5b\xe2\x18\xde\x65\xc1\xbc\x1e\x62\x56\xff\xdb\xff\x69\xd5\x56\x12\xdf\xbf\xfd\x54\x25\x82\x0c\x43\x8a\x0c\x49\xc4\xdc\xc4\x90\x38\x87\x4e\xe6\x79\x9d\x22\xd3\xd6\x7d\xd7\x8f\x86\xfe\x1b\xd4\x91\xab\xa8\xdd\xbc\x6a\x7e\x25\x3e\xa3\x62\x80\x76\xaf\x4f\xc3\x51\x5b\xd1\xb6\x5c\xbd\x20\xf1\xc5\x0c\x45\x65\x80\xde\x01\x00\x00\xff\xff\x5a\x2e\xc6\x9d\x98\x00\x00\x00") - -func testE2eTestingManifestsStorageCsiMockCsiStorageclassYamlBytes() ([]byte, error) { - return bindataRead( - _testE2eTestingManifestsStorageCsiMockCsiStorageclassYaml, - "test/e2e/testing-manifests/storage-csi/mock/csi-storageclass.yaml", - ) -} - -func testE2eTestingManifestsStorageCsiMockCsiStorageclassYaml() (*asset, error) { - bytes, err := testE2eTestingManifestsStorageCsiMockCsiStorageclassYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/mock/csi-storageclass.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2e_nodeTestingManifestsSriovdpCmYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x90\xc1\x4b\xfb\x30\x14\xc7\xef\xfd\x2b\x1e\x39\x6f\x3f\xd2\xfd\x36\x19\xb9\x7a\x55\x0f\x1e\xbc\x8c\x31\xd2\xe4\x75\x3c\xd7\xa4\x21\xc9\xc2\x44\xf7\xbf\x4b\xda\xaa\x8c\x3a\x9c\x88\x60\x0f\x25\x4d\x3e\xdf\xef\x6b\x3e\xd2\xd1\x03\xfa\x40\xad\x15\x90\xca\x62\x47\x56\x0b\xb8\x6e\x6d\x4d\xdb\x5b\xe9\x0a\x83\x51\x6a\x19\xa5\x28\x00\xac\x34\x28\x20\x78\x6a\x93\x76\x53\xd5\x31\xc3\x76\x70\x52\xa1\x80\xdd\xbe\xc2\x69\x78\x0a\x11\x4d\xf1\x96\xea\xb9\x7f\x8f\x21\x4f\x78\x29\x00\x00\x9e\xbb\x77\x7e\x98\xc7\xd0\xee\xbd\xc2\x1b\x0a\x91\x09\x58\x7d\x1c\x8d\x90\x3b\x69\x90\x09\x60\x64\x23\x36\x9b\xee\x37\x36\x16\xa3\xc6\x44\x0a\xd9\x64\x1c\x0c\xd8\xa0\x8a\xad\x0f\x4c\xc0\xb8\xb7\x43\x12\x5a\xdd\x03\x2b\xb6\xe4\xcb\x2b\xb6\x1e\xf7\x74\x60\x3f\xa5\x07\xcb\xc5\x5c\xb1\x09\xb0\x92\xa3\x3e\x1f\xf0\x94\x70\x68\xa6\x39\xc7\x54\xe7\x08\x1d\xb6\x55\x5e\xae\x47\xa1\xe3\xc9\xce\xf1\xb4\xf5\x9b\x56\xb4\xd3\xbb\x3f\x2d\x24\xd5\xd4\x4e\x9d\xa2\xb3\xb0\xab\xf3\xbd\x7a\x18\xad\xe3\x81\xd7\x9c\x4d\xf2\x72\x16\x66\x75\xf9\x0b\xfe\x4c\x63\x0f\x83\x3e\xaf\x8d\xfc\x4c\x1f\x85\xfb\x7c\x22\x20\xfa\x3d\xfe\x5c\x6f\xb9\xa8\xfe\x5f\xa6\x97\x97\xcb\x8b\xb4\x9a\xe6\xb0\xd8\x50\xf5\xb5\x9d\xf7\xaf\x9e\x3c\x16\xaf\x01\x00\x00\xff\xff\x2a\x5e\x3a\xd9\x06\x04\x00\x00") - -func testE2e_nodeTestingManifestsSriovdpCmYamlBytes() ([]byte, error) { - return bindataRead( - _testE2e_nodeTestingManifestsSriovdpCmYaml, - "test/e2e_node/testing-manifests/sriovdp-cm.yaml", - ) -} - -func testE2e_nodeTestingManifestsSriovdpCmYaml() (*asset, error) { - bytes, err := testE2e_nodeTestingManifestsSriovdpCmYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e_node/testing-manifests/sriovdp-cm.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2e_nodeTestingManifestsSriovdpDsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x54\xc1\x6e\x13\x31\x10\xbd\xe7\x2b\xe6\x07\x9c\xa5\x02\x71\xb0\xd4\x03\xa2\x1c\x90\x68\x88\x54\x89\xfb\xd4\x9e\x6c\x4c\x6c\x8f\x65\xcf\x2e\xcd\xdf\x23\x67\xb3\xc1\xdb\x96\x06\xe6\x96\x99\x37\xcf\xef\x3d\x3b\x8b\xc9\xfd\xa0\x5c\x1c\x47\x0d\x98\x52\xe9\xc6\x9b\xd5\xc1\x45\xab\xe1\x0e\x29\x70\x7c\x20\x59\x05\x12\xb4\x28\xa8\x57\x00\x11\x03\x69\x38\x0c\x8f\xa4\x4a\x76\x3c\x2a\x4b\xa3\x33\xa4\x92\x1f\x7a\x17\x15\x06\xfb\xf1\xc3\x19\x56\x12\x9a\x0b\xf6\x58\x84\xc2\x0a\xc0\xe3\x23\xf9\x52\x99\x00\xc4\x51\xd6\x10\xd9\xd2\xe9\x27\xa6\xa4\xe1\x44\x6a\xd3\xaa\x24\x32\x15\x55\xc8\x93\x11\xce\xd3\x46\x40\x31\xfb\x6f\x0d\xc5\x2c\xe8\x15\x2d\x2b\x00\xa1\x90\x3c\x0a\x9d\x97\x1b\x1b\xb5\xfc\x82\xe7\x6d\xa6\xa9\x9e\x09\x7e\x21\xba\x36\x66\xe1\xb5\xf6\x5c\x64\x43\xf2\x8b\xf3\x41\x83\xe4\x81\x9a\xfe\xf6\xeb\xdd\xa2\x57\x59\x1f\x16\x66\x6b\xd5\xf0\x72\x24\xa1\xb2\x76\xdc\x61\x36\x7b\x0d\x73\xc6\x27\x45\xec\x29\xa3\x38\x8e\x17\x23\x0a\x0e\x74\x9c\x54\xaa\xcc\x9e\xd6\x4b\x8e\x80\x45\x28\x5f\x0e\xe0\x54\xf7\x39\x6b\xf8\xf2\xe4\x8a\x94\xcb\x80\x76\x3b\x32\xa2\x61\xc3\x0f\x66\x4f\x76\xf0\xb3\xd0\x42\xb9\x66\xf3\xc9\x18\x1e\xa2\x6c\xae\x84\x66\x38\x0a\xba\x48\xb9\xd1\xf7\xfc\x0d\x9d\x93\xab\xe5\x02\xf6\xa4\xc1\xb2\x39\x50\xae\x72\xe3\x6e\x4c\xd4\xbd\xc2\xaf\xc7\xf7\xeb\x9b\xe5\xde\x76\xf0\x7e\xcb\xde\x99\xa3\x86\x0d\x8d\x8d\x4b\xcc\x7d\x73\xd1\x0a\x94\xf2\xdc\x2b\xeb\xf2\xed\x73\x01\xf3\xcc\xd3\x48\xfe\xf6\xe6\xdd\x65\x50\xc8\x0c\xd9\xc9\xf1\x33\x47\xa1\x27\xf9\xc3\x06\x90\xb2\x1b\x9d\xa7\x9e\xec\xe2\x46\x01\x46\xf6\x43\xa0\xfb\x9a\xd3\xe2\xf8\x29\x80\xc9\x4e\x61\x73\x68\xb8\x42\x05\x6f\x51\xf6\x1a\xba\x11\x73\xe7\xdd\x63\x57\x93\xf2\x24\x5d\x03\xcb\x84\xf6\x7b\xf4\x47\x0d\x3b\xf4\x85\x5e\x70\x7b\xee\xdf\x22\x6d\xa6\xf3\x86\xe1\xb8\x73\xbd\x9a\x24\xff\x65\x97\xc4\x74\xc9\xb8\x4b\x5c\x13\xf8\x5f\xad\x9d\x5e\x7d\x25\x6a\x7a\x00\xe9\x8a\xd7\xd7\x1d\x5d\xe7\xfa\x0f\x8b\x53\xff\x1e\xd3\x92\xad\xf9\x1e\xd8\xa4\x26\xd0\x02\xe0\x84\x42\x59\xee\x9c\xff\x7c\x13\x78\xfd\xb3\x70\x5c\x8c\x67\x89\xed\xfc\x77\x00\x00\x00\xff\xff\x3b\xbd\xca\x89\x82\x05\x00\x00") - -func testE2e_nodeTestingManifestsSriovdpDsYamlBytes() ([]byte, error) { - return bindataRead( - _testE2e_nodeTestingManifestsSriovdpDsYaml, - "test/e2e_node/testing-manifests/sriovdp-ds.yaml", - ) -} - -func testE2e_nodeTestingManifestsSriovdpDsYaml() (*asset, error) { - bytes, err := testE2e_nodeTestingManifestsSriovdpDsYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e_node/testing-manifests/sriovdp-ds.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testE2e_nodeTestingManifestsSriovdpSaYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x2c\xca\x31\x0a\x83\x21\x0c\x06\xd0\xdd\x53\xe4\x02\x0e\x5d\xb3\xf5\x0c\x85\xee\xa9\x7e\x94\x60\x8d\x62\xa2\xd0\xdb\x97\xc2\x3f\xbf\x27\x53\x9f\x58\xae\xc3\x98\xce\x2d\x35\xb5\xca\xf4\xc0\x3a\x5a\x70\x2f\x65\x6c\x8b\xd4\x11\x52\x25\x84\x13\x91\x49\x07\x93\x2f\x1d\x27\x57\xfc\x57\x9e\x9f\xfd\x56\xbb\xcc\xa7\x14\x30\xb5\xfd\x42\xf6\xaf\x07\x7a\xfa\x05\x00\x00\xff\xff\x29\x9c\xaa\x31\x63\x00\x00\x00") - -func testE2e_nodeTestingManifestsSriovdpSaYamlBytes() ([]byte, error) { - return bindataRead( - _testE2e_nodeTestingManifestsSriovdpSaYaml, - "test/e2e_node/testing-manifests/sriovdp-sa.yaml", - ) -} - -func testE2e_nodeTestingManifestsSriovdpSaYaml() (*asset, error) { - bytes, err := testE2e_nodeTestingManifestsSriovdpSaYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/e2e_node/testing-manifests/sriovdp-sa.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesMakefile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x53\xd1\x6e\xe3\x36\x10\x7c\x2e\xbf\x62\x10\xdd\x43\x02\xd8\x72\x62\xa0\x38\xd4\x45\x70\x50\x1c\x35\x11\x92\x93\xae\x92\x72\x41\x9e\x0c\x5a\x5a\x4b\xc4\xd1\xa4\x4a\x52\xb1\x8d\xa2\xff\x5e\x50\x8a\xdb\x3a\x41\xf5\x46\xee\xcc\xec\x68\x76\x19\x60\xa9\xbb\x83\x11\x4d\xeb\x30\xbf\xbc\xfa\x8c\xb2\x25\x3c\xf4\x6b\x32\x8a\x1c\x59\x44\xbd\x6b\xb5\xb1\x21\x0b\x58\x80\x47\x51\x91\xb2\x54\xa3\x57\x35\x19\xb8\x96\x10\x75\xbc\x6a\xe9\x58\x99\xe0\x3b\x19\x2b\xb4\xc2\x3c\xbc\xc4\xb9\x07\x9c\xbd\x95\xce\x2e\x7e\x65\x01\x0e\xba\xc7\x96\x1f\xa0\xb4\x43\x6f\x09\xae\x15\x16\x1b\x21\x09\xb4\xaf\xa8\x73\x10\x0a\x95\xde\x76\x52\x70\x55\x11\x76\xc2\xb5\x43\x9b\x37\x91\x90\x05\x78\x79\x93\xd0\x6b\xc7\x85\x02\x47\xa5\xbb\x03\xf4\xe6\xbf\x38\x70\x37\x18\xf6\x5f\xeb\x5c\xb7\x98\xcd\x76\xbb\x5d\xc8\x07\xb3\xa1\x36\xcd\x4c\x8e\x40\x3b\x7b\x4c\x96\x71\x5a\xc4\xd3\x79\x78\x39\x50\x9e\x94\x24\x6b\x61\xe8\x8f\x5e\x18\xaa\xb1\x3e\x80\x77\x9d\x14\x15\x5f\x4b\x82\xe4\x3b\x68\x03\xde\x18\xa2\x1a\x4e\x7b\xbf\x3b\x23\x9c\x50\xcd\x04\x56\x6f\xdc\x8e\x1b\x62\x01\x6a\x61\x9d\x11\xeb\xde\x9d\x84\x75\x74\x27\xec\x09\x40\x2b\x70\x85\xb3\xa8\x40\x52\x9c\xe1\x26\x2a\x92\x62\xc2\x02\x3c\x27\xe5\x7d\xf6\x54\xe2\x39\xca\xf3\x28\x2d\x93\xb8\x40\x96\x63\x99\xa5\xb7\x49\x99\x64\x69\x81\xec\x37\x44\xe9\x0b\x1e\x92\xf4\x76\x02\x12\xae\x25\x03\xda\x77\xc6\xfb\xd7\x06\xc2\xc7\x48\xb5\xcf\xac\x20\x3a\x31\xb0\xd1\xa3\x21\xdb\x51\x25\x36\xa2\x82\xe4\xaa\xe9\x79\x43\x68\xf4\x2b\x19\x25\x54\x83\x8e\xcc\x56\x58\x3f\x4c\x0b\xae\x6a\x16\x40\x8a\xad\x70\xdc\x0d\x37\x1f\x7e\x2a\x64\x2c\x8f\xef\x92\xa2\xcc\x5f\xf0\xe5\x1a\x4d\x65\x42\xa1\x67\x3f\xfe\xd9\xa4\x29\xcd\x69\xea\xc8\xba\xa9\xd8\xf2\x86\x2c\xbb\xcb\xa2\xfc\xab\x87\x7e\x66\xb7\xd9\xf2\x21\xce\x57\xcb\x38\x2f\x57\x37\x51\x11\xaf\xbe\x45\xe5\x3d\xbe\x5c\xb3\xdf\xe3\xaf\x4f\xdf\xe3\xbc\x48\xb2\xf4\xfa\x75\x1e\xfe\x12\x5e\xb1\xbb\xec\x31\x4a\xef\x56\xc7\xdb\xab\xf0\xea\xe7\x70\xce\x68\xdf\x69\xe3\x18\x13\x1b\x55\xd3\x06\xcf\xf7\x51\xc9\x3e\x9d\x93\x31\xda\x0c\x07\x1f\x39\xff\x77\xa8\xaf\xdc\x08\x3f\xcf\x09\x68\xbf\xc0\x96\xff\x20\x70\x29\x07\xe4\xb5\x22\x77\xc1\x48\xd5\x62\xc3\x58\x80\x9b\x5e\xc8\x1a\x95\xae\x69\x7c\x02\x91\x69\xec\x62\xd8\x2c\x0f\x5e\xe0\x56\x18\xaa\x9c\x36\x07\x28\xbe\x25\xeb\x57\x62\xed\x29\x23\x3a\xde\xf3\x6d\x27\x69\x24\x9c\xb6\xa9\x64\x6f\x1d\x19\xde\x89\x21\x15\x32\x8c\x4b\xb9\xf0\xf5\x69\xa5\x95\x5f\x6d\x32\x8c\x9d\x1c\x17\xec\xa7\x70\x36\xa4\x37\xed\x9d\x90\xa1\x6d\xc7\x5e\xf8\x74\xee\x25\x2f\x46\x78\xd7\xdb\xf6\xbd\xce\x07\x9e\x07\x9d\xd2\x06\xa5\x29\x57\xf5\x28\xf0\x3f\xad\x56\x5c\xd5\xab\x91\xfc\xa7\x27\xff\xc5\x58\xf8\xed\x3e\x4b\x5f\x86\x8e\xf8\x28\x84\xa3\xa5\x77\x8e\xfe\x0e\x00\x00\xff\xff\x8e\x41\xcc\xb6\x78\x04\x00\x00") - -func testImagesMakefileBytes() ([]byte, error) { - return bindataRead( - _testImagesMakefile, - "test/images/Makefile", - ) -} - -func testImagesMakefile() (*asset, error) { - bytes, err := testImagesMakefileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/Makefile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\xca\xb1\x0a\xc2\x40\x0c\x00\xd0\x3d\x5f\x11\x70\xb6\xb7\x4a\x77\x57\x05\x3b\x38\x4a\xb0\xa1\x0d\xf5\xcc\x91\xe4\xda\xf3\xef\x05\xdd\x1c\x1c\x1f\xbc\x1d\x0e\xcc\x18\x33\xe3\xf9\x7a\x3a\x5e\x06\x1c\xf5\xee\x48\x81\x73\x44\xf1\x3e\xa5\x49\xbb\xe5\xe0\x9d\x68\xd2\xed\xc9\xe6\x00\xc6\xab\xf0\xc6\xe6\x3d\x20\xee\x31\x2f\x35\x53\xd0\xf4\xc1\x43\x3c\x1a\x50\x29\xa6\xeb\xbf\xc1\x99\x4d\xa2\xfa\xed\xa7\x4a\x1b\x5f\xdf\x56\x1b\x39\xbc\x03\x00\x00\xff\xff\xa6\x54\xe2\x88\x9e\x00\x00\x00") - -func testImagesOwnersBytes() ([]byte, error) { - return bindataRead( - _testImagesOwners, - "test/images/OWNERS", - ) -} - -func testImagesOwners() (*asset, error) { - bytes, err := testImagesOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostGitignore = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x4c\xcf\xcb\xc8\x2f\x2e\xe1\x02\x04\x00\x00\xff\xff\x31\x3b\xba\x32\x08\x00\x00\x00") - -func testImagesAgnhostGitignoreBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostGitignore, - "test/images/agnhost/.gitignore", - ) -} - -func testImagesAgnhostGitignore() (*asset, error) { - bytes, err := testImagesAgnhostGitignoreBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/.gitignore", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x4d\xcc\x29\xc8\xcc\x4b\xb5\x32\xd6\x33\xe3\x82\x0a\x17\xe5\xda\x26\x16\xe5\x1a\x1b\x95\x99\xe9\x63\x93\x04\xe9\x01\x91\x65\x16\x98\xd2\x05\x05\xc9\x66\x26\x39\xa9\xb6\x50\x1a\x53\x41\xb1\xb1\xa5\x41\x85\x2d\x98\x44\x96\x2c\xcf\xcc\x4b\xc9\x2f\x2f\x86\x38\x49\xdf\xd0\xc2\xc0\xd2\x36\xc8\xd5\xdd\x33\x38\x24\x28\x52\x3f\xa9\xb4\xb8\x32\x29\xbf\xc2\xca\x50\xcf\xc8\x52\x17\xaa\x50\x17\xac\x50\x17\xa4\x10\x5d\xaf\xa5\x81\x31\x71\x7a\x2d\x0d\x8c\x31\xf5\x12\x69\xaf\xa5\x81\x25\x17\x20\x00\x00\xff\xff\xa0\x4d\x41\x80\x45\x01\x00\x00") - -func testImagesAgnhostBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostBaseimage, - "test/images/agnhost/BASEIMAGE", - ) -} - -func testImagesAgnhostBaseimage() (*asset, error) { - bytes, err := testImagesAgnhostBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x55\x6f\x6f\xdb\xb6\x13\x7e\xcf\x4f\xf1\xc0\xfe\xa1\xbf\x6d\xb0\xac\xd4\x03\xba\xd5\x7b\xe5\xda\x6e\x6b\xb4\xb1\x33\xcb\x59\x17\x74\x45\x40\x53\x67\x89\x08\x45\xaa\x47\x2a\x8e\xfb\xe9\x07\xca\x7f\x12\x6f\x01\x56\xbd\x11\x8f\xf7\xdc\xf1\xe1\xfd\x63\x17\x63\x57\xef\x58\x17\x65\xc0\xe0\xe2\xe5\x6b\xac\x4a\xc2\x87\x66\x4d\x6c\x29\x90\xc7\xa8\x09\xa5\x63\xdf\x17\x5d\xd1\xc5\x47\xad\xc8\x7a\xca\xd1\xd8\x9c\x18\xa1\x24\x8c\x6a\xa9\x4a\x3a\x6a\x7a\xf8\x83\xd8\x6b\x67\x31\xe8\x5f\xe0\x87\x08\xe8\x1c\x54\x9d\x1f\x7f\x13\x5d\xec\x5c\x83\x4a\xee\x60\x5d\x40\xe3\x09\xa1\xd4\x1e\x1b\x6d\x08\xf4\xa0\xa8\x0e\xd0\x16\xca\x55\xb5\xd1\xd2\x2a\xc2\x56\x87\xb2\x3d\xe6\xe0\xa4\x2f\xba\xb8\x39\xb8\x70\xeb\x20\xb5\x85\x84\x72\xf5\x0e\x6e\xf3\x14\x07\x19\x5a\xc2\xf1\x2b\x43\xa8\x87\x69\xba\xdd\x6e\xfb\xb2\x25\xdb\x77\x5c\xa4\x66\x0f\xf4\xe9\xc7\xd9\x78\x3a\xcf\xa6\xc9\xa0\x7f\xd1\x9a\x5c\x5b\x43\xde\x83\xe9\x6b\xa3\x99\x72\xac\x77\x90\x75\x6d\xb4\x92\x6b\x43\x30\x72\x0b\xc7\x90\x05\x13\xe5\x08\x2e\xf2\xdd\xb2\x0e\xda\x16\x3d\x78\xb7\x09\x5b\xc9\x24\xba\xc8\xb5\x0f\xac\xd7\x4d\x38\x0b\xd6\x91\x9d\xf6\x67\x00\x67\x21\x2d\x3a\xa3\x0c\xb3\xac\x83\x37\xa3\x6c\x96\xf5\x44\x17\x9f\x66\xab\xf7\x8b\xeb\x15\x3e\x8d\x96\xcb\xd1\x7c\x35\x9b\x66\x58\x2c\x31\x5e\xcc\x27\xb3\xd5\x6c\x31\xcf\xb0\x78\x8b\xd1\xfc\x06\x1f\x66\xf3\x49\x0f\xa4\x43\x49\x0c\x7a\xa8\x39\xf2\x77\x0c\x1d\xc3\x48\x79\x8c\x59\x46\x74\x46\x60\xe3\xf6\x84\x7c\x4d\x4a\x6f\xb4\x82\x91\xb6\x68\x64\x41\x28\xdc\x3d\xb1\xd5\xb6\x40\x4d\x5c\x69\x1f\x93\xe9\x21\x6d\x2e\xba\x30\xba\xd2\x41\x86\x76\xe7\x5f\x97\xea\x0b\x31\x5a\xbe\x8b\xec\xa7\xb3\xcb\xd1\xbb\xa9\x78\xbb\x5c\x5c\xe2\x7f\x8f\xb2\x18\x2f\x17\x59\x76\xfb\xe6\x7a\xf6\x71\x72\x3b\x5e\x5c\xdd\xe0\x2b\x55\x4d\xf2\xfb\xf4\xf2\x7a\xb4\x1c\xbf\x4f\x7c\x74\xad\x90\x36\x9e\xd3\xb5\xb6\xa9\x10\x5d\x6c\xd8\x55\xc8\xad\x6f\x82\x36\x1e\xba\x92\x45\x0c\xae\xb6\x3e\x48\x63\x60\x49\x91\xf7\x92\x77\xa8\xa5\xba\x93\x05\xf9\xa1\xe8\x22\xc1\x5a\xdb\x3c\x09\xce\x19\x3f\x84\x72\x36\x96\x49\x0c\x78\xd1\xc3\xb6\xd4\xaa\x84\x92\x36\x16\x5f\x1e\x93\x37\x99\x67\x08\xe4\x43\xac\x70\x24\x18\x3b\xa6\xc9\x3c\x1b\x9e\xf4\xde\x55\x74\x0e\x6a\x39\x95\xce\x07\x7a\x20\xf5\xdd\x9c\x54\xc3\xa6\x07\xab\x0e\x9e\x63\x55\xc1\xb8\x10\xeb\x96\x06\xb4\xf7\xde\x02\x75\xcd\xae\x09\x34\x18\x42\x5b\x65\x9a\x9c\x3c\xbc\x3f\xd1\x99\xbb\x9c\xae\x1c\x87\x93\x41\xcb\x46\xd7\xc4\x9b\xef\xa1\xb2\x47\xf6\xb0\x96\xbe\x14\xcb\xeb\x39\x64\x7d\x87\x24\x69\xea\x5c\x06\x82\xcc\xf3\x27\xb1\x6b\x29\xc3\x52\x50\x32\x24\xae\x26\xbb\xf6\xf9\x89\xdd\xe1\xc8\xe8\x07\x2f\x5e\x80\x2b\x24\xbc\x41\x7a\x2f\x39\x55\xb1\xc7\x52\x59\xdf\xa5\x3f\xe1\x2f\x81\xa8\x36\x16\x89\x7f\xcc\xec\xde\xb6\x15\x8d\x53\xd2\x3c\xd9\x3c\x1a\x78\x24\xd2\x04\x2e\x9f\x45\x09\x31\x9a\x4c\xda\xbe\xf6\xc3\x34\x2d\x74\x28\x9b\x75\x5f\xb9\x2a\x55\x8e\x29\xb7\xfe\xf4\x67\x32\x24\x63\x93\xe7\x6e\x6b\x8d\x93\x79\x7a\xff\xb2\xff\xaa\x3f\x38\x02\x6e\x5b\xe9\xd6\x68\xdb\x3c\xdc\xc6\x4a\x8d\x85\xd8\x0f\xc5\x37\x1c\x11\x51\x68\x03\x15\x24\x23\x79\xf8\x76\xbf\x39\x53\x1d\xef\x7e\xbe\x1b\x2b\xf7\x6a\xb1\x5c\xe1\xd7\x0b\x58\xa2\xbc\xcd\xf7\xb0\x4d\x59\xb2\xa5\xb5\x27\xbe\x27\x7e\xc4\x9c\xa3\xe2\xd8\x7d\x20\xd5\x8b\x8b\x68\xd1\x03\x93\x77\x0d\x2b\x4a\x94\xb3\xbe\xa9\x88\x9f\xd9\x8a\x8b\xc0\xce\x98\x33\xc7\x2f\x9f\x71\x7c\x54\xbf\xfe\xf9\x97\x57\x4f\xd5\x2d\xab\x24\xd6\xb5\x95\x15\x89\xe9\x9f\x57\x8b\x6c\x1a\x6f\xd0\x12\x6c\x9d\x45\x93\x53\x57\x1e\xdd\xc5\xe0\x54\x77\xb9\x66\xa4\x4d\x1d\x63\xec\x4f\x90\xda\x71\x20\x6e\x93\xb5\x5f\xee\x13\x19\xcf\xe8\x2b\x0e\x38\x93\x9e\x87\xdd\xd1\x0e\x67\xd2\x3e\xf7\xb2\xb0\x71\xe3\xf8\x8f\x27\x1e\xae\x72\x9c\x6c\x64\x03\xef\x6a\xa7\x6d\x48\x62\x14\x89\xc1\x64\x64\x9c\xb6\xfb\x46\x46\x16\x1b\xfb\xf0\x6a\xfc\x07\x58\x74\x11\xa7\x22\xeb\xd8\x8c\xed\x8b\xd5\xb6\xda\xff\xfd\x13\xc3\xfd\x53\x75\xe0\x93\x0c\x62\x1f\x49\xde\xf5\xe2\xe4\xc4\x56\x1b\x83\x7b\x62\xbd\xd9\x21\x94\x32\xb4\x67\x2a\xc7\x4c\x2a\x88\xee\x53\x27\xda\x9f\xc6\xc3\x1e\xd3\x0e\x2f\x8a\xef\x6f\x8c\xf3\xbe\x8f\xfe\x71\xf9\x64\x20\xc4\x74\xbe\x5a\xde\x5c\x2d\x66\xf3\x15\x3e\x77\xd2\x83\xa2\xf3\x45\x8c\x2f\x27\xf8\xdc\xa9\x65\xe3\xa9\xf3\x45\xfc\x1d\x00\x00\xff\xff\xf1\xb8\x4b\xc7\xec\x07\x00\x00") - -func testImagesAgnhostDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostDockerfile, - "test/images/agnhost/Dockerfile", - ) -} - -func testImagesAgnhostDockerfile() (*asset, error) { - bytes, err := testImagesAgnhostDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostDockerfile_windows = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x56\x5f\x73\xda\xb8\x17\x7d\xf7\xa7\x38\x03\xbf\x99\x24\x33\xd8\x90\xb4\xbf\xee\x96\x3e\xb1\x40\xba\x4c\x5b\xc8\x00\x69\xb7\xd3\x76\x32\x42\xbe\xd8\xda\xc8\x92\x57\x92\x31\xce\xa7\xdf\x91\x6d\x48\x68\xb3\xd3\x9d\xcd\x0b\x96\xee\xd1\xbd\xe7\xfe\x4f\x17\x63\x9d\x57\x46\x24\xa9\xc3\xd5\xe0\x6a\x80\x75\x4a\x78\x57\x6c\xc8\x28\x72\x64\x31\x2a\x5c\xaa\x8d\x8d\x82\x6e\xd0\xc5\x7b\xc1\x49\x59\x8a\x51\xa8\x98\x0c\x5c\x4a\x18\xe5\x8c\xa7\x74\x90\xf4\xf0\x91\x8c\x15\x5a\xe1\x2a\x1a\xe0\xdc\x03\x3a\xad\xa8\x73\xf1\x26\xe8\xa2\xd2\x05\x32\x56\x41\x69\x87\xc2\x12\x5c\x2a\x2c\xb6\x42\x12\x68\xcf\x29\x77\x10\x0a\x5c\x67\xb9\x14\x4c\x71\x42\x29\x5c\x5a\x9b\x69\x95\x44\x41\x17\x9f\x5b\x15\x7a\xe3\x98\x50\x60\xe0\x3a\xaf\xa0\xb7\x4f\x71\x60\xae\x26\xec\xff\x52\xe7\xf2\x61\xbf\x5f\x96\x65\xc4\x6a\xb2\x91\x36\x49\x5f\x36\x40\xdb\x7f\x3f\x1b\x4f\xe7\xab\x69\x78\x15\x0d\xea\x27\xb7\x4a\x92\xb5\x30\xf4\x57\x21\x0c\xc5\xd8\x54\x60\x79\x2e\x05\x67\x1b\x49\x90\xac\x84\x36\x60\x89\x21\x8a\xe1\xb4\xe7\x5b\x1a\xe1\x84\x4a\x7a\xb0\x7a\xeb\x4a\x66\x28\xe8\x22\x16\xd6\x19\xb1\x29\xdc\x49\xb0\x0e\xec\x84\x3d\x01\x68\x05\xa6\xd0\x19\xad\x30\x5b\x75\xf0\xdb\x68\x35\x5b\xf5\x82\x2e\x3e\xcd\xd6\xbf\x2f\x6e\xd7\xf8\x34\x5a\x2e\x47\xf3\xf5\x6c\xba\xc2\x62\x89\xf1\x62\x3e\x99\xad\x67\x8b\xf9\x0a\x8b\x6b\x8c\xe6\x9f\xf1\x6e\x36\x9f\xf4\x40\xc2\xa5\x64\x40\xfb\xdc\x78\xfe\xda\x40\xf8\x30\x52\xec\x63\xb6\x22\x3a\x21\xb0\xd5\x0d\x21\x9b\x13\x17\x5b\xc1\x21\x99\x4a\x0a\x96\x10\x12\xbd\x23\xa3\x84\x4a\x90\x93\xc9\x84\xf5\xc9\xb4\x60\x2a\x0e\xba\x90\x22\x13\x8e\xb9\xfa\xe6\x07\xa7\xa2\x20\x18\x2d\xdf\x7a\xf6\xd3\xd9\x87\xd1\xdb\x69\x70\xbd\x5c\x7c\xc0\xff\x1e\xcf\x41\x17\x5b\xa3\x33\xc4\xca\x16\x4e\x48\x0b\x91\xb1\xc4\xc7\x4a\x28\xeb\x98\x94\x50\xc4\xc9\x5a\x66\x2a\xe4\x8c\xdf\xb3\x84\xec\x30\xe8\x22\xc4\x46\xa8\x38\x74\x5a\x4b\x3b\x04\xd7\xca\x67\xdd\xc7\x2f\xe9\xa1\x4c\x05\x4f\xc1\x99\xf2\xb5\x14\xfb\x5c\x4c\xe6\x2b\x38\xb2\xce\x17\x2c\x42\x8c\xb5\xa1\xc9\x7c\x35\x3c\xca\xad\xce\xe8\x14\x54\x73\x4a\xb5\x75\xb4\x27\xfe\x3d\x27\x8a\xff\x91\x15\x2f\x8c\xec\x41\xf1\x56\xb7\x2f\x13\x48\xed\x7c\x21\xd2\x15\x35\xfa\x71\x2e\x54\x4a\x46\xf8\x24\xd7\x76\x8e\xd1\xb8\x38\x58\x16\x39\x99\xed\xbf\x09\x45\x83\x0c\xa6\xf3\x8f\xe0\xa9\xe6\x5a\x32\x47\xd5\xad\xa5\x4f\x42\xc5\xba\xb4\x63\x9d\xd5\x89\xf7\xbd\xb7\x65\xd2\x52\xb0\xbc\x9d\x23\xd7\x25\x19\x9b\x92\x94\x08\xc7\x3a\xcb\x98\x8a\xd1\xf9\x1a\xf8\xb6\x10\xb4\xc7\xf9\xb9\xa2\x32\xd4\x9b\x3f\x89\x3b\x28\x72\x51\x49\x1b\x2e\x05\x29\x77\x11\x4d\x74\xa9\xa4\x66\xf1\xca\x19\xa1\x92\xf3\x33\xdf\x46\x76\xd8\xef\x3f\x1a\xaf\xfb\xa8\x65\x1c\xe5\xf6\xf2\xec\xe2\xe2\x0d\x1a\xe5\x35\x08\x5b\x62\xae\x30\xe4\x6b\xbd\x6e\x9e\x30\x54\x2c\x23\xd8\x54\x97\x07\xed\x37\x46\x27\x9e\xf6\xe9\xc3\x43\x18\x1e\x33\xaf\x95\xac\x10\x86\xbb\x76\xba\xbc\x8e\x2e\x07\xd1\x0b\x84\xd5\xcf\xbc\x2c\x13\x72\x08\x0b\x23\x70\x74\x20\x11\x2e\x2d\x36\x11\xd7\x59\x9f\x6b\x43\xb1\xb2\xc7\x5f\x43\x92\x98\x1f\x0a\x71\x4b\xaf\xbf\xbb\x8c\xfe\x1f\x0d\x0e\x80\xbb\xfa\x74\x57\x36\x21\xbf\x63\x59\xfc\xea\x65\xe4\x92\x87\x33\x84\x8b\xc2\x5d\xfb\x31\x36\x1e\x7e\x6d\xc1\x5e\xf0\xa6\x61\xe1\x98\x41\xb8\x7f\xd8\x6d\x9f\x17\x2f\x29\xd3\x3b\x0a\x67\x8e\xb2\xef\x00\x9d\xe0\x3f\x38\x58\x17\x4a\xb4\x35\x8f\x5e\xb4\x84\x1b\x89\x9f\x74\xd1\xeb\xb0\x14\xea\xd5\xcb\xe8\x41\xe4\xa7\xe4\x9b\xc7\x0f\x22\x6f\xb9\x4d\xf7\x39\x53\x71\x38\x32\x3c\x15\x3b\x42\x78\xc3\x5c\x7a\x82\x43\x38\x21\xeb\x84\xaa\xe7\xc2\x41\x8a\xf0\x5a\x1b\x4e\x47\xff\x7c\xde\x8f\xfe\xfd\xc0\xe2\x78\xf9\x7c\x3c\x8e\xa6\x3a\x7e\x86\xdc\x2c\x96\x6b\xfc\x3a\x80\x22\x8a\xeb\xbe\x1b\xd6\xbd\x16\x96\xb4\xb1\x64\x76\x64\x1e\x31\xa7\x28\xbf\xcf\xf6\xc4\x7b\xfe\xc3\xbf\x78\x82\xbb\x7c\x06\x77\x10\xbf\x7e\xf1\xcb\xab\xa7\xe2\xda\x48\xe8\x07\x86\x77\x2a\x98\xfe\x71\xb3\x58\x4d\x3d\xa1\xda\x5e\xad\xcc\x3f\x39\x8e\xbb\x83\x3a\x9f\xc7\xec\x3e\x16\xc6\xbb\x54\xe4\x3e\x2f\xf6\x08\xca\xb5\x71\x64\x82\xd1\x64\xd2\x7e\xf6\xa5\xe6\x4c\x7a\x2b\x11\x37\x0e\x27\xa7\xe7\x61\xf7\x54\xe1\xe4\x14\xd4\x38\x96\x28\x7f\x71\xf8\xf5\x16\x5b\x67\x0e\x3b\x80\x94\x33\x55\xae\x85\x72\xa1\x0f\x0b\x19\x18\xf2\xfd\x1d\xb7\x33\x12\x2b\x3f\x33\xdb\xfd\xfa\x13\x70\xd0\x85\xdf\x1f\x46\xc4\x64\x9b\xdd\x5e\x4f\xb6\x33\xfb\xe4\x61\xb3\xd4\x5b\x3e\xe1\x95\x6f\x72\x66\xaa\x9e\xdf\x31\x28\x85\x94\xd8\x91\x11\xdb\x0a\x2e\x65\xae\xb6\xc9\xb5\x31\xc4\x7d\xbe\x9e\x28\x11\xf6\x38\x77\x1b\x4c\xbd\x17\xc8\xff\xa7\xd2\x44\x5a\x0a\x75\xff\xc4\xca\xd1\xff\xe9\x7c\xbd\xfc\x7c\xb3\x98\xcd\xd7\xf8\xd2\xe9\xb7\xd7\x9d\x6f\xc1\xf8\xc3\x04\x5f\x3a\x39\x2b\x2c\x75\xbe\x05\x7f\x07\x00\x00\xff\xff\x8e\x57\xaf\x4a\x17\x09\x00\x00") - -func testImagesAgnhostDockerfile_windowsBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostDockerfile_windows, - "test/images/agnhost/Dockerfile_windows", - ) -} - -func testImagesAgnhostDockerfile_windows() (*asset, error) { - bytes, err := testImagesAgnhostDockerfile_windowsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/Dockerfile_windows", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostMakefile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x51\x6b\xdb\x3e\x14\xc5\x9f\xff\xfa\x14\x87\xb8\x0f\x09\xa4\x4e\xff\x65\x6c\xac\xa3\x0c\x2f\xc9\x52\xd3\xce\x1e\x76\xda\xd2\xa7\x22\xdb\x37\xf6\x05\x47\xd2\x24\x79\x4e\xbe\xfd\x50\xda\xc2\xca\xf4\x76\xef\x3d\xf7\xe8\xa7\xa3\x08\x4b\x6d\x8e\x96\xdb\xce\xe3\xf2\xe2\xff\xcf\xd8\x76\x84\xdb\xa1\x22\xab\xc8\x93\x43\x32\xf8\x4e\x5b\x17\x8b\x48\x44\xb8\xe3\x9a\x94\xa3\x06\x83\x6a\xc8\xc2\x77\x84\xc4\xc8\xba\xa3\xb7\xc9\x1c\x0f\x64\x1d\x6b\x85\xcb\xf8\x02\xd3\x20\x98\xbc\x8e\x26\xb3\x2f\x22\xc2\x51\x0f\xd8\xcb\x23\x94\xf6\x18\x1c\xc1\x77\xec\xb0\xe3\x9e\x40\x87\x9a\x8c\x07\x2b\xd4\x7a\x6f\x7a\x96\xaa\x26\x8c\xec\xbb\xd3\x35\xaf\x26\xb1\x88\xf0\xf4\x6a\xa1\x2b\x2f\x59\x41\xa2\xd6\xe6\x08\xbd\xfb\x5b\x07\xe9\x4f\xc0\xe1\x74\xde\x9b\xab\xc5\x62\x1c\xc7\x58\x9e\x60\x63\x6d\xdb\x45\xff\x22\x74\x8b\xbb\x74\xb9\xce\xca\xf5\xf9\x65\x7c\x71\x5a\xb9\x57\x3d\x39\x07\x4b\xbf\x06\xb6\xd4\xa0\x3a\x42\x1a\xd3\x73\x2d\xab\x9e\xd0\xcb\x11\xda\x42\xb6\x96\xa8\x81\xd7\x81\x77\xb4\xec\x59\xb5\x73\x38\xbd\xf3\xa3\xb4\x24\x22\x34\xec\xbc\xe5\x6a\xf0\xef\xc2\x7a\xa3\x63\xf7\x4e\xa0\x15\xa4\xc2\x24\x29\x91\x96\x13\x7c\x4b\xca\xb4\x9c\x8b\x08\x8f\xe9\xf6\x26\xbf\xdf\xe2\x31\x29\x8a\x24\xdb\xa6\xeb\x12\x79\x81\x65\x9e\xad\xd2\x6d\x9a\x67\x25\xf2\xef\x48\xb2\x27\xdc\xa6\xd9\x6a\x0e\x62\xdf\x91\x05\x1d\x8c\x0d\xfc\xda\x82\x43\x8c\xd4\x84\xcc\x4a\xa2\x77\x00\x3b\xfd\x02\xe4\x0c\xd5\xbc\xe3\x1a\xbd\x54\xed\x20\x5b\x42\xab\x7f\x93\x55\xac\x5a\x18\xb2\x7b\x76\xe1\x33\x1d\xa4\x6a\x44\x84\x9e\xf7\xec\xa5\x3f\x75\xfe\x79\x54\x2c\x44\x59\x2c\xcb\x6b\xd9\xaa\x4e\x3b\x2f\xf2\x12\x5f\xaf\xd1\xb3\x1a\x0e\x22\x29\x96\x37\xa1\x92\xfb\xe6\xe3\x07\xb1\x4d\x8a\xcd\x7a\x1b\xea\xb3\xe9\xf2\xbe\x58\xa5\xc5\x4c\x6c\xf2\xa4\xf8\x11\x5a\x9f\xc4\x26\xbf\x4b\xb2\xcd\xf3\xc3\xba\x28\xd3\x3c\x3b\x99\x48\x4f\xce\x07\xfb\xe7\x55\x5a\x20\xec\x29\xed\x1b\xb6\x38\x9b\xba\x8e\xfa\x1e\x66\x6c\x66\x33\x41\x07\xa3\xad\x17\xa2\x62\x75\x25\xfe\x8b\xe3\x05\xef\x65\x4b\xe7\x83\xe7\x3e\x76\x1d\x2a\x56\x38\x9b\x06\xc8\x99\x10\xf1\xcf\x9b\x3c\x7b\xba\x0a\x4d\xf1\x27\x00\x00\xff\xff\x95\x12\x72\xa6\x04\x03\x00\x00") - -func testImagesAgnhostMakefileBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostMakefile, - "test/images/agnhost/Makefile", - ) -} - -func testImagesAgnhostMakefile() (*asset, error) { - bytes, err := testImagesAgnhostMakefileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/Makefile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xce\x49\x2c\x4d\xc9\x2c\x4d\x4a\xcd\x29\xe5\x02\x04\x00\x00\xff\xff\x9b\x12\xb6\xf7\x1b\x00\x00\x00") - -func testImagesAgnhostOwnersBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostOwners, - "test/images/agnhost/OWNERS", - ) -} - -func testImagesAgnhostOwners() (*asset, error) { - bytes, err := testImagesAgnhostOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd2\x33\x32\xe2\x02\x04\x00\x00\xff\xff\x67\x48\x64\x77\x05\x00\x00\x00") - -func testImagesAgnhostVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostVersion, - "test/images/agnhost/VERSION", - ) -} - -func testImagesAgnhostVersion() (*asset, error) { - bytes, err := testImagesAgnhostVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostAgnhostGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x97\x4f\x93\xda\x38\x13\xc6\xcf\xd6\xa7\xe8\xf2\xe1\x2d\x48\x0d\x76\xc2\x7b\xd9\x9d\xad\x3d\xb0\xcc\x9f\x50\x99\x65\x52\x63\xb2\x53\x39\x0a\xb9\xb1\x55\x23\x4b\x5e\x49\x1e\x86\x4a\xe5\xbb\x6f\xb5\x30\x04\xb2\x86\x35\x27\x2c\xe9\xf7\x74\x37\xb2\xf4\x58\x4a\xdf\xb1\xa9\xa9\x37\x56\x16\xa5\x87\xf1\xfb\x0f\xbf\xc2\xa2\x44\xf8\xd4\x2c\xd1\x6a\xf4\xe8\x60\xd2\xf8\xd2\x58\x97\x30\xf6\x20\x05\x6a\x87\x39\x34\x3a\x47\x0b\xbe\x44\x98\xd4\x5c\x94\x08\xed\xc8\x15\xfc\x85\xd6\x49\xa3\x61\x9c\xbc\x87\x01\x01\x71\x3b\x14\x0f\x7f\x63\x1b\xd3\x40\xc5\x37\xa0\x8d\x87\xc6\x21\xf8\x52\x3a\x58\x49\x85\x80\x6f\x02\x6b\x0f\x52\x83\x30\x55\xad\x24\xd7\x02\x61\x2d\x7d\x19\x92\xb4\x21\x12\xf6\xb5\x0d\x60\x96\x9e\x4b\x0d\x1c\x84\xa9\x37\x60\x56\x87\x14\x70\xcf\x18\x00\x40\xe9\x7d\x7d\x9d\xa6\xeb\xf5\x3a\xe1\xa1\xca\xc4\xd8\x22\x55\x5b\xca\xa5\x0f\xb3\xe9\xed\x3c\xbb\x1d\x8d\x93\xf7\x8c\x7d\xd1\x0a\x9d\x03\x8b\x7f\x37\xd2\x62\x0e\xcb\x0d\xf0\xba\x56\x52\xf0\xa5\x42\x50\x7c\x0d\xc6\x02\x2f\x2c\x62\x0e\xde\x50\x9d\x6b\x2b\xbd\xd4\xc5\x15\x38\xb3\xf2\x6b\x6e\x91\xe5\xd2\x79\x2b\x97\x8d\x3f\x9a\xa0\x5d\x55\xd2\xc1\x21\x60\x34\x70\x0d\xf1\x24\x83\x59\x16\xc3\x1f\x93\x6c\x96\x5d\xb1\xe7\xd9\xe2\xe3\xe3\x97\x05\x3c\x4f\x9e\x9e\x26\xf3\xc5\xec\x36\x83\xc7\x27\x98\x3e\xce\x6f\x66\x8b\xd9\xe3\x3c\x83\xc7\x3b\x98\xcc\xbf\xc2\xa7\xd9\xfc\xe6\x0a\x50\xfa\x12\x2d\xe0\x5b\x6d\xa9\x76\x63\x41\xd2\xd4\x61\x9e\xb0\x0c\xf1\x28\xf9\xca\x6c\x8b\x71\x35\x0a\xb9\x92\x02\x14\xd7\x45\xc3\x0b\x84\xc2\xbc\xa2\xd5\x52\x17\x50\xa3\xad\xa4\xa3\x97\xe7\x80\xeb\x9c\x29\x59\x49\xcf\x7d\x68\xff\xeb\xef\x24\xec\x5d\xca\x58\xcd\xc5\x0b\x05\xa9\xb8\xd4\x8c\xc9\xaa\x36\xd6\xc3\x80\x45\xf1\x4a\xf1\x22\x66\x2c\x8a\x0b\xe9\xcb\x66\x99\x08\x53\xa5\xae\x5e\x7d\xf8\x7f\x2a\xcc\xd2\xf2\x30\xf4\xf2\x8b\x4b\xa4\x49\x5f\x94\x29\xd2\xd7\x71\xcc\x22\xde\xe4\xd2\xd7\xd6\xbc\x6d\x60\x3f\xb8\x5f\x85\xa9\x47\xe7\x53\x59\xf1\x02\x5d\xca\x0b\x5d\x1a\xe7\xd3\xa0\x18\x05\x49\x7c\x10\xf1\xbc\x48\x18\xad\x51\xf8\x98\x45\xc2\xe6\xc2\xe8\xd7\x35\x2e\x4b\x63\x5e\xfa\x26\x15\x36\x1f\x91\x6c\xbb\xd0\x47\xad\xba\x7f\xfe\x5c\xbb\xfe\x30\x6a\x6f\x37\xb5\x91\xda\x8f\x68\x18\x6d\x7f\xe9\x8a\xbf\x60\x21\xbd\x43\xfb\x7a\x89\xac\x68\xd0\xf9\xe5\x45\xff\x48\x6a\xa1\x1a\x2a\x4e\x28\x89\xda\xf7\x17\x2a\xf9\x8a\x1a\x1d\xcd\x87\x32\x85\x2b\x50\xf7\x7d\x09\x84\x8f\x0a\xd4\x68\xb9\x37\x17\xfc\xbb\xca\x34\xda\xd3\x40\x7f\x89\xc6\xcb\x60\x7c\x43\x71\x91\xa0\x2d\x47\x1b\xa7\xb9\xef\x3b\x01\xda\x8c\x08\x1f\x1d\x89\x2f\xda\x3c\x87\x11\x2e\xdd\x43\xa6\x46\x2d\xf3\x0a\x3d\xcf\xb9\xe7\xfd\x75\x35\x6f\x1c\xc6\x2c\x22\xa3\x58\x19\xbb\xe6\x36\xdf\x2e\xeb\xbe\x45\x93\x70\xd4\x2a\x2f\xde\x11\x24\x0e\xbc\x45\x27\x8c\x76\x4d\x85\x56\x78\xab\xfa\x26\xb7\xe8\x4c\x63\x05\x8e\x76\x62\x7a\xf0\xd6\x28\x15\xa2\x86\x9d\x46\xa0\xe6\x15\xf6\x8d\x19\x44\xa3\x9d\x2a\x66\x11\x41\x6b\x5c\x6e\xb7\x6d\xdf\x28\xe1\x1d\xee\x55\xfd\x67\x64\x6f\x5e\x43\xc6\x56\x8d\x16\xc1\xc9\x07\x43\xf8\xc6\x22\x6b\x8c\x9f\x56\x39\x5c\xff\x0e\xff\x0b\xa6\x9d\x4c\x4d\x55\x71\x9d\x7f\x63\x51\xf4\xc5\xe1\x35\x7d\x62\x21\xe6\x75\x1d\x5f\xb1\x28\x6a\xbf\xfb\xd7\x10\x8f\x93\xf1\x98\xba\xbe\xb3\x7d\x90\x64\x92\xe7\xad\x7a\xf0\xc3\xe5\x93\x69\x95\x4f\xa8\xf5\x99\x5a\xc3\x4e\xba\x35\x6b\x42\xa7\xdb\xc7\x13\xdc\x91\x95\x07\xdc\x92\xa2\x75\xe9\xe7\x6d\x7f\xb7\x36\xd7\x8e\x04\x37\xf3\x2c\x6b\x56\x2b\xf9\xf6\x9f\x54\x98\xe4\x07\xe9\x4e\xd4\xd2\x92\xb7\x5e\x7c\x34\xce\xbb\x6e\xe8\x87\xb1\x07\x76\xdf\x5a\x84\x35\xdd\xad\x39\x72\x74\x92\xdd\xf1\x17\xbc\x97\x7e\x5b\x50\xb7\x66\x6f\xe7\xc4\xdf\xef\x1a\xdd\xec\x4f\x3e\x4e\x8a\x99\x9e\x6e\xbb\xa6\xa1\xab\x5b\xb7\xb3\x71\x12\x3c\xb4\xcf\x27\xc8\xad\xcb\x07\xd0\x14\xee\x7e\x67\xe0\xdd\xf4\xde\xac\x89\xff\x73\xd7\xe8\x66\x35\x06\x6a\x8e\xa7\xc7\xc9\x98\x5b\x86\x1e\x4f\x72\xbb\x8c\x73\x3c\x97\x2f\x18\x6e\xc0\x4c\xa6\x79\x78\x6f\xe7\xc8\xfd\x8a\xff\x81\x9f\x59\xf6\xc1\x27\x89\xfe\x4c\x0f\x27\x98\xe0\x66\x01\x0a\x4f\xa7\xa9\x23\xa7\xdd\x09\xee\xb6\x9d\xe7\xd6\xdb\x4f\x36\x49\xca\xa7\xd6\x02\xa7\x6d\xff\x74\x6f\x80\xdd\x21\x8e\x3c\x91\x02\x84\xb5\xfa\xb1\xed\xe8\xd6\x1c\x39\x20\x69\xa8\xc6\xe7\x5d\x47\xb7\xe6\x60\xe3\x9f\xdd\xeb\xc7\x1f\xae\x5d\x70\x2a\x4a\x0a\x9c\x08\x41\x8b\x6c\xe6\x5c\x83\xf6\x46\x3a\x41\x67\xe3\xcd\x90\xb1\x28\x4d\x61\xfe\xb8\xb8\x1d\x08\x45\xf6\xd5\x2c\x87\xd7\x90\x99\x0a\x81\x4a\x75\xc0\x2d\x42\xcd\x9d\xa3\x53\xb4\x32\x45\x41\xbf\x16\x15\xa7\x73\x3e\x9d\x84\x1d\x5d\x12\x60\x8d\xa0\xdb\xeb\xc3\x12\x21\xdc\x2b\xbc\x09\xa1\xb9\x08\x97\x1f\x5f\x62\x95\xc0\x82\xee\x44\x6b\xa9\x14\x70\xe5\xe8\xa6\x21\x54\x93\x87\xd3\x7c\x45\xd7\x0e\x3a\x83\xd7\x56\x6a\x8a\x5d\xa2\xaa\x93\x70\x74\xa2\x94\x77\x94\x29\xd8\x35\xe5\x4c\xa8\x99\xa1\xff\xf6\x9d\x45\x74\xc4\x4e\x66\x5a\xfa\x80\x0c\x0e\xf9\x83\x59\xfa\x4c\x56\xe9\x3c\xea\x16\x1b\xd2\xbc\xdd\x9b\x36\xce\x29\xd5\xed\x1b\x8a\xc6\xe3\x60\xc8\xbe\xb3\x7f\x02\x00\x00\xff\xff\x53\x84\x76\xca\x4a\x0e\x00\x00") - -func testImagesAgnhostAgnhostGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostAgnhostGo, - "test/images/agnhost/agnhost.go", - ) -} - -func testImagesAgnhostAgnhostGo() (*asset, error) { - bytes, err := testImagesAgnhostAgnhostGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/agnhost.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostAuditProxyMainGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa4\x55\x5d\x6f\xdb\xb8\x12\x7d\x16\x7f\xc5\x5c\x01\x2d\xe4\x40\xa5\x92\xde\x97\x5e\x17\x79\x70\x9d\xe4\xd6\x68\xeb\x14\x71\xb2\x45\xb1\x58\x2c\x68\x69\x24\x71\x4b\x91\x2a\x3f\xec\x78\x8b\xfc\xf7\xc5\x50\x72\x12\xb7\x68\x8b\x62\x9f\x64\x92\x33\xc3\x33\xe7\x9c\xa1\x8b\x23\x36\x37\xfd\xce\xca\xa6\xf5\xf0\xfc\xf8\xe4\x7f\x70\xdd\x22\xbc\x09\x6b\xb4\x1a\x3d\x3a\x98\x05\xdf\x1a\xeb\x38\x63\x6f\x65\x89\xda\x61\x05\x41\x57\x68\xc1\xb7\x08\xb3\x5e\x94\x2d\xc2\x78\x92\xc3\x6f\x68\x9d\x34\x1a\x9e\xf3\x63\xc8\x28\x20\x1d\x8f\xd2\xc9\x4b\xb6\x33\x01\x3a\xb1\x03\x6d\x3c\x04\x87\xe0\x5b\xe9\xa0\x96\x0a\x01\x6f\x4b\xec\x3d\x48\x0d\xa5\xe9\x7a\x25\x85\x2e\x11\xb6\xd2\xb7\xf1\x92\xb1\x04\x67\x1f\xc7\x02\x66\xed\x85\xd4\x20\xa0\x34\xfd\x0e\x4c\xfd\x38\x0a\x84\x67\x0c\x00\xa0\xf5\xbe\x9f\x16\xc5\x76\xbb\xe5\x22\xa2\xe4\xc6\x36\x85\x1a\xa2\x5c\xf1\x76\x31\x3f\x5f\xae\xce\x9f\x3d\xe7\xc7\x8c\xdd\x68\x85\xce\x81\xc5\xcf\x41\x5a\xac\x60\xbd\x03\xd1\xf7\x4a\x96\x62\xad\x10\x94\xd8\x82\xb1\x20\x1a\x8b\x58\x81\x37\x84\x73\x6b\xa5\x97\xba\xc9\xc1\x99\xda\x6f\x85\x45\x56\x49\xe7\xad\x5c\x07\x7f\x40\xd0\x1e\x95\x74\xf0\x38\xc0\x68\x10\x1a\xd2\xd9\x0a\x16\xab\x14\x5e\xcd\x56\x8b\x55\xce\x3e\x2c\xae\x5f\x5f\xde\x5c\xc3\x87\xd9\xd5\xd5\x6c\x79\xbd\x38\x5f\xc1\xe5\x15\xcc\x2f\x97\x67\x8b\xeb\xc5\xe5\x72\x05\x97\x17\x30\x5b\x7e\x84\x37\x8b\xe5\x59\x0e\x28\x7d\x8b\x16\xf0\xb6\xb7\x84\xdd\x58\x90\x44\x1d\x56\x9c\xad\x10\x0f\x2e\xaf\xcd\x00\xc6\xf5\x58\xca\x5a\x96\xa0\x84\x6e\x82\x68\x10\x1a\xb3\x41\xab\xa5\x6e\xa0\x47\xdb\x49\x47\xe2\x39\x10\xba\x62\x4a\x76\xd2\x0b\x1f\xd7\xdf\xb4\xc3\xd9\x51\xc1\x58\x2f\xca\x4f\x54\x44\x84\x4a\xfa\xde\x9a\xdb\x1d\x63\xb2\xeb\x8d\xf5\x90\xb1\x24\x95\xa6\x90\x26\x78\xa9\x52\x96\xa4\xca\x34\xf4\xd1\xe8\x0b\x12\x86\x7e\x1b\x97\x32\x96\xa4\x8d\xf4\x6d\x58\xf3\xd2\x74\x85\xeb\xeb\x93\xff\x16\xa5\x59\x5b\x11\x8f\x3e\xbd\x70\x5c\x9a\x42\xf4\xb2\x13\x65\x2b\x35\xda\x5d\xd1\x7f\x6a\x0a\x1b\xb4\x97\x1d\xa6\x3f\x0f\x29\x1c\x5a\x29\x94\xfc\x1b\x6d\xf1\x97\x33\x3a\x65\x49\x44\x2b\xb5\xf3\x42\x29\x78\x94\xef\xd0\x6e\xd0\xc6\x64\x5a\x15\x31\xae\x18\x03\xf7\x79\x9b\x93\x9f\xa7\x6c\x4e\x0e\x81\x3d\x8e\xa2\x80\x94\x4d\x18\x2b\x0a\x98\x77\xd5\x8c\xd6\xef\x89\x39\x32\x48\x70\xa3\xf5\x1a\xdd\x1a\xe7\x61\x4e\x44\x70\xb6\x11\xf6\xab\xd8\x53\x78\x1a\x49\xe2\x73\xd3\x75\x42\x57\x5f\x58\x72\xe3\x70\x0a\x00\x69\xbc\xe1\x59\x14\x23\xcd\x59\xb2\x6a\x8d\xf5\x53\x9a\x42\xe7\x51\x3b\xf2\x5d\xd4\xe7\xc5\xf1\x8b\xe3\x68\x0b\xa9\x4b\xd3\x91\xfe\x31\x11\x70\x83\xda\x3b\xca\x7c\x6b\x74\x33\x05\x48\x6f\xdc\xe0\x79\x8f\xce\x43\xb5\xd3\xa2\x93\x25\x8c\x1c\x36\x1c\x16\x1e\xd4\x2f\xd5\x26\x73\xc5\xe9\x41\x47\x8e\xea\x20\x0e\x72\xd0\xb2\x36\xb6\x83\x4e\x68\x4d\x56\x33\xe0\x7c\x65\x82\xe7\x04\x65\x66\x1b\x37\x05\x18\x5a\x7e\x27\x6e\x65\x17\xba\x25\x6d\x66\xc7\x93\x9c\x25\x57\x41\x53\xeb\x9d\x90\x3a\x67\x77\x2c\xf2\x95\xb1\x04\x75\x69\xc8\xb6\xa3\x13\xf8\xf9\xb0\x66\x49\x85\x87\x07\x67\xc3\x9a\x54\xa9\x83\x2e\x63\xa1\xac\xec\x2a\x38\x3a\x20\x39\x07\x61\x1b\x07\xbf\xff\x41\x53\xac\x9b\x09\x7c\x61\x89\x2b\x5b\xec\x10\xa6\xa7\xf7\xc5\x96\xb8\x5d\xc5\xcd\x6c\x72\x68\x35\xbe\x18\xbe\xd9\x90\x33\x61\xc9\x83\x35\xa9\x00\xb9\x33\x66\xdf\xef\x66\x71\xeb\x0c\x6b\x11\x94\x7f\x87\x5e\x5c\x88\xd2\x1b\xbb\xcb\x61\x28\xf1\xf0\xad\x85\x72\x54\x71\xdf\xf2\xe9\xc0\x38\x9f\x9b\x0a\x4b\xb7\xef\xfc\xc2\xd8\xf1\x79\xce\x1e\xae\xce\x61\xf4\x35\x1f\x60\xff\xdf\x9a\xd0\x8f\x61\x93\x07\xae\xbe\xaa\x78\xa3\xe5\x06\xad\x13\x6a\xe4\x2e\xfb\x51\x11\x96\xd0\xc4\xf3\xd7\x42\x57\x0a\x2f\x82\x2e\xb3\xb4\x48\x73\x68\xe3\xda\x4e\x58\xa2\x4c\xc3\x2f\x84\x17\x2a\x8b\x81\x83\x57\x67\xba\x5a\xd1\xe0\x64\xe9\x94\x0c\x95\xe6\xa0\xa5\x9a\x4c\x48\xe0\xa8\xd2\x98\x9e\x6d\xe3\x43\xcf\xaf\xd0\xf5\x46\x3b\xfc\x40\xce\xb2\x39\x3d\xe5\x70\x34\x9e\x7c\x0e\xe8\x7c\xd4\x6b\x6d\xaa\x5d\x0e\x68\x23\xe3\xc3\xe3\xc4\xaf\x50\x54\x33\xa5\x32\x8b\x9f\xf9\x2b\x53\xed\x26\x2c\x91\x75\x8c\xf9\xcf\x29\xdd\x49\x79\x11\xe2\x7b\x2b\xb5\xaf\xb3\xb4\x34\x41\x55\xf1\x4f\xcc\xa2\xa8\xe2\x9f\x06\xcd\x06\xd5\x9e\xc2\x93\x4d\x1a\x2f\x98\xb0\x24\xd9\xf2\x88\xe6\x35\x0a\xa2\x28\x82\x59\x79\xe1\x83\x5b\x68\x8f\x56\x0b\x15\x1b\xb4\xe7\xd6\x9a\x18\x6f\xd1\x07\xab\x59\x72\xc7\x12\x54\x84\xf0\xe9\x9e\xd6\x73\x1a\x1d\xe2\xe5\xcb\x1d\xbb\x87\xf7\xc8\x75\x83\x0c\x0b\xed\x4d\x36\x2a\x96\xc3\xd8\xab\x9a\xbc\xfc\x51\x33\xb5\x90\x0a\x2b\x88\x59\x34\xaa\xeb\x50\x4f\xe1\xc9\x3a\x07\xd1\xcb\x51\xc1\x29\x3c\x71\xe9\xbe\xde\x0f\xdd\xf2\x6f\x3a\xae\xb0\xa6\x99\x1c\x45\xe0\x73\x65\x1c\xcd\x10\x4b\x8a\x62\x78\x2e\xf6\xef\xc7\xfd\xdb\xc0\x12\x7a\x64\xfe\xcc\x87\x83\x48\x87\xd0\x0d\x02\x2a\xbe\xf0\xd8\xb9\xd8\xeb\x48\xd4\x38\x19\xe3\x28\x64\x4f\x63\x4a\x0e\xc6\xf1\x55\xac\x45\x60\xbe\x55\xfd\x3b\xb2\x0f\xc5\x1e\xbf\x6a\x87\xba\xff\x32\x0d\xf7\x3c\x10\x11\x77\xec\xfb\xf9\x97\x6f\x68\x00\xfe\x09\x00\x00\xff\xff\x2b\xc6\xc5\xa5\xb3\x09\x00\x00") - -func testImagesAgnhostAuditProxyMainGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostAuditProxyMainGo, - "test/images/agnhost/audit-proxy/main.go", - ) -} - -func testImagesAgnhostAuditProxyMainGo() (*asset, error) { - bytes, err := testImagesAgnhostAuditProxyMainGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/audit-proxy/main.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostConnectConnectGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x56\xef\x6f\xdb\xc8\x11\xfd\xcc\xfd\x2b\xa6\x04\x7a\x25\x05\x8a\xb2\xd3\x4f\x55\xe2\x0f\xaa\x2c\x37\x42\x72\x92\x21\xca\x17\x1c\x72\x41\x6f\x45\x0e\xc9\x85\xc9\x5d\x76\x77\x69\xd9\x08\xfc\xbf\x17\xb3\x24\xf5\xc3\x89\x83\x06\x28\x90\x58\x12\x77\x76\xde\x9b\x37\x6f\x46\x9a\x8c\xd8\x5c\x35\x4f\x5a\x14\xa5\x85\x37\x17\x97\xff\x80\x6d\x89\xf0\xa1\xdd\xa1\x96\x68\xd1\xc0\xac\xb5\xa5\xd2\x26\x66\xec\xa3\x48\x51\x1a\xcc\xa0\x95\x19\x6a\xb0\x25\xc2\xac\xe1\x69\x89\xd0\x9f\x44\xf0\x1b\x6a\x23\x94\x84\x37\xf1\x05\x04\x14\xe0\xf7\x47\x7e\xf8\x96\x3d\xa9\x16\x6a\xfe\x04\x52\x59\x68\x0d\x82\x2d\x85\x81\x5c\x54\x08\xf8\x98\x62\x63\x41\x48\x48\x55\xdd\x54\x82\xcb\x14\x61\x2f\x6c\xe9\x40\xfa\x14\x31\xfb\xbd\x4f\xa0\x76\x96\x0b\x09\x1c\x52\xd5\x3c\x81\xca\x4f\xa3\x80\x5b\xc6\x00\x00\x4a\x6b\x9b\xe9\x64\xb2\xdf\xef\x63\xee\x58\xc6\x4a\x17\x93\xaa\x8b\x32\x93\x8f\xcb\xf9\x62\x95\x2c\xc6\x6f\xe2\x0b\xc6\xee\x64\x85\xc6\x80\xc6\xff\xb4\x42\x63\x06\xbb\x27\xe0\x4d\x53\x89\x94\xef\x2a\x84\x8a\xef\x41\x69\xe0\x85\x46\xcc\xc0\x2a\xe2\xb9\xd7\xc2\x0a\x59\x44\x60\x54\x6e\xf7\x5c\x23\xcb\x84\xb1\x5a\xec\x5a\x7b\x26\xd0\xc0\x4a\x18\x38\x0d\x50\x12\xb8\x04\x7f\x96\xc0\x32\xf1\xe1\x9f\xb3\x64\x99\x44\xec\xd3\x72\xfb\x7e\x7d\xb7\x85\x4f\xb3\xcd\x66\xb6\xda\x2e\x17\x09\xac\x37\x30\x5f\xaf\xae\x97\xdb\xe5\x7a\x95\xc0\xfa\x06\x66\xab\xdf\xe1\xc3\x72\x75\x1d\x01\x0a\x5b\xa2\x06\x7c\x6c\x34\x71\x57\x1a\x04\x49\x87\x59\xcc\x12\xc4\x33\xf0\x5c\x75\x64\x4c\x83\xa9\xc8\x45\x0a\x15\x97\x45\xcb\x0b\x84\x42\x3d\xa0\x96\x42\x16\xd0\xa0\xae\x85\xa1\xe6\x19\xe0\x32\x63\x95\xa8\x85\xe5\xd6\x7d\xfe\xa6\x9c\x98\x8d\x26\x8c\x35\x3c\xbd\xa7\x24\xa9\x92\x12\x53\xcb\x98\xa8\x1b\xa5\x2d\x04\xcc\xf3\xf3\xda\xfa\xcc\xf3\x25\xba\x17\x65\xe8\xaf\x79\x32\x29\xaf\x2a\x7a\x6b\x45\x8d\x3e\x63\x9e\x5f\x08\x5b\xb6\xbb\x38\x55\xf5\x44\x98\x52\x64\x7c\xcf\x2d\xd7\xed\xc4\xa4\xb6\xf1\xcf\xcf\x4d\x93\x5f\xfe\x7d\x92\xaa\x9d\xe6\x3e\x0b\x19\x9b\x4c\x60\x5e\x67\xf3\x0e\x9c\x04\x6e\x4d\xdf\xba\x42\x96\xca\x58\x98\x53\x68\xcc\x1e\xb8\x3e\x0d\xbc\x82\x5f\x5c\x8e\x78\xae\xea\x9a\xcb\xec\x2b\xf3\xee\x0c\x4e\x01\xc0\xef\x0b\x81\xcf\x74\x7d\x4a\xb5\x7c\xf1\x23\xe6\x25\xa5\xd2\x76\x0a\xfe\xcc\x5a\xac\x1b\x6b\x80\xc3\x76\x7e\x4b\x8a\x27\xf3\xed\xed\x50\xbe\x70\x3d\xcd\x40\xa3\x6d\xb5\x74\x6c\xf2\xb6\x02\xd4\x5a\x69\x43\x69\x3e\x2a\x59\x4c\xe1\xcf\xad\x16\x68\xc8\x45\xaa\x41\xf9\x7a\x2a\xab\x9c\xe0\x85\x78\x40\x09\xae\x1c\x4a\x4e\x9c\x62\x58\xcb\x2e\x2d\x08\x0b\x8d\x16\x92\x28\x0d\x8f\x6a\x34\x86\x9a\xd2\x68\xcc\xc5\x23\x66\xdd\x18\xf1\x63\xef\xbb\xa7\x64\x45\x59\x80\x2d\xb9\x05\x8b\xc6\x42\xca\x0d\x1a\x48\xb9\x84\xb4\xc4\xf4\x9e\x3c\x33\x65\x6c\x04\x77\xab\x0f\xab\xf5\xa7\x15\x8c\xe1\x5f\x28\x51\x8b\x74\xd2\xca\x7b\xa9\xf6\x12\x02\xa9\xe4\x58\xa2\xdd\x2b\x7d\x1f\xf6\xe8\x01\x16\x11\xec\x78\x06\x5c\x17\x6d\x8d\xd2\x9a\x90\x8d\x60\xbb\xfc\x75\x41\xc6\x1e\xbb\xdd\x72\xaa\x57\xa7\x28\x90\x1d\x32\x50\xad\x65\x23\xb8\x5e\x25\x30\x86\xd9\xa1\x44\xe9\x9e\x68\x34\xaa\x6a\xe9\x12\x1b\xc1\x66\x71\x73\x97\x2c\xae\x61\x0c\xf3\x63\x2e\x8d\x39\x19\x80\x8d\x60\xbd\x7d\xbf\xd8\xc0\x18\xd6\x6e\x40\x7a\x86\x54\xed\x09\x47\x5f\x2a\xd0\xaa\xb5\x48\x42\x93\xbc\x7e\xf8\x67\xc4\xbc\x99\x2e\xcc\x14\x3a\x7f\x2c\x1e\x79\x6a\xe9\x41\x70\x19\x46\xcc\xdb\xb4\x72\x0a\x50\x73\x21\x23\xf6\xcc\x9c\xab\x88\xb6\x6a\x3b\xfa\xf1\x75\xab\xdd\xb8\xb8\x93\x46\x2b\xab\x52\x55\xf5\x3a\x33\x96\xb7\x32\x05\x21\x85\x0d\x42\xf8\xca\xbc\xa3\x1f\xe3\x9b\x8a\x17\x26\x08\x0f\xf7\x7f\xe3\x3a\xf8\xa5\xcf\x1c\x81\xdf\xbf\xf3\xa3\x73\x94\xe0\x22\x8c\xc0\xff\x95\x3f\x8a\xba\xad\xdd\x11\xec\x30\x57\x1a\x7b\xff\x51\xb9\x83\x27\xfc\xf0\xbb\x80\x89\xa3\xe6\xe0\x06\xba\x11\xf8\xc3\x5b\x9f\xb0\xd3\x86\x5e\xa8\x69\x87\x82\xac\xea\x76\xb7\xa2\x8d\x91\x2b\x5d\x3b\x9b\x1e\x7b\x1a\x39\x0f\xed\x10\x6c\xda\x90\xaf\xdd\x20\x87\xa4\x98\x93\x80\xf4\x0b\xd2\x3a\x83\xd1\xd9\x10\x46\x64\x18\x03\x9f\xbf\x74\x7a\x39\x8d\x32\xb2\xe5\xf4\xca\x9d\x7c\xbe\xf8\xc2\x3c\xb3\x17\x36\x2d\x8f\x54\xbe\x32\x8f\x5c\x0b\xfe\xc0\x75\xca\x3c\xaf\x67\xb2\x9d\xdf\x06\x94\x20\x1a\x9a\x14\x0e\xc1\x8e\xd0\x49\x24\x0d\xde\x37\xa1\x19\xe6\xbc\xad\x2c\x85\xe5\xb5\x8d\x6f\xdc\x94\x05\xca\xc4\x89\xcd\x50\xeb\x08\xfc\x3b\x69\xda\x86\xc6\x11\xb3\x03\xa3\x3f\xa4\x1f\x1d\x3e\x84\xcc\xf3\x94\x89\x17\x8f\xc2\x06\x97\x21\xf3\x9e\x0f\x1a\xbc\xa0\xd8\x7b\x24\xfa\xbe\x9d\x9c\x14\x93\x09\x6c\x30\x6b\x65\xc6\xa5\xad\x9e\xa0\xe1\x9a\xbe\xe8\xdc\xb2\x31\xaa\x7a\xe8\xb6\x3d\xe5\x12\xd2\x5d\x02\xa3\x60\x8f\xae\x13\x9d\x1d\xfa\x26\x69\x4d\x7b\x9a\xd2\x75\x6b\x09\x84\xfb\xee\xd4\xf8\x37\x5a\x6a\x8d\x56\xbb\x0a\xeb\x98\x79\x22\x87\x7f\x47\xf4\x0f\xb5\xa6\x16\x48\xb4\x71\xd2\x54\xc2\xbe\x57\xc6\xde\x2a\x6d\x1d\xf1\xf0\xad\x3b\xff\xcb\x15\x48\xe1\xba\x71\xa2\x55\x7e\x2e\x56\xb7\x44\xa6\xf0\xd7\x07\xa7\x11\x6a\xfd\xad\x3c\x3d\xea\x09\xe4\xa6\xab\x6e\x3b\xbf\x9d\x65\x99\x0e\x7a\x3f\xfe\x1c\xf4\xf5\x2a\xf9\x31\x2c\x73\x46\x38\xc3\xbd\x16\xbc\xda\x76\xcd\x38\x05\x3d\x35\x88\xc8\xdd\x85\xab\x23\x01\xca\x12\xcf\x2b\x65\x30\x38\x05\xb9\x38\xd4\xa6\x9a\x05\x31\x52\xf7\x04\x83\x5a\xc7\xc1\x88\xc0\xd6\xf4\x58\xe9\xf0\x2d\x9d\x50\xa2\x21\x34\x1e\x28\x38\x0b\xbc\x5e\x61\xbf\x5d\xff\x90\x34\xe7\xe7\xd5\x79\xcf\x80\x15\xfd\xfa\xc8\xa1\xff\xf2\x3d\xa1\xd0\x81\x2c\x1c\x11\xca\x77\x08\x38\x25\xe3\x9d\x5d\xa5\x68\xaa\xb9\x7f\x12\x2f\xe6\xeb\xd5\x6a\xd8\xc6\x2e\xfc\x55\x96\x7d\xd4\xc0\xf2\x9c\x26\x29\x44\xff\xa9\x1b\xaf\x25\x70\x5b\xfd\x45\x2b\x4f\x92\xbc\x18\xae\xc3\x54\xff\x0f\xd3\xc5\xb3\x4c\x1f\xfa\x4f\xeb\x61\x30\x1e\x25\xe9\x9c\xe7\x96\x46\x6f\xbd\x43\xf3\xff\x3f\xee\xeb\x79\xcd\x4b\x42\x77\xe4\x66\xb9\x45\x1d\x1c\xbd\x86\x5a\x77\xa7\x35\xbf\xc7\x20\x2d\xb9\x84\xc0\xcd\x6f\x18\x32\xe6\x15\x0a\xa8\xf0\xde\x25\x67\x5e\x76\xb5\x90\x99\x9d\x1a\x43\x11\x52\x54\x11\x50\xcd\x61\x67\xb6\x17\x3e\x7e\x69\x64\x6a\x4d\xc7\xe0\xdd\x98\x62\x99\xf7\x1c\x10\xae\xc1\x8a\x7e\x2b\x0d\x4b\xb8\x87\x7c\x37\x76\xb1\xd3\x63\xea\x13\x95\x7e\xaa\xb7\x2f\x9d\xdc\xe3\xbc\x1b\x1f\x04\xfb\xc1\x76\x3e\x9f\x89\x97\x6b\xf8\xbf\x01\x00\x00\xff\xff\x54\x07\xa6\x63\xf4\x0c\x00\x00") - -func testImagesAgnhostConnectConnectGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostConnectConnectGo, - "test/images/agnhost/connect/connect.go", - ) -} - -func testImagesAgnhostConnectConnectGo() (*asset, error) { - bytes, err := testImagesAgnhostConnectConnectGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/connect/connect.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostCrdConversionWebhookConfigGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x54\x5d\x6f\xdb\x36\x14\x7d\x36\x7f\xc5\x99\x1f\x06\x3b\x70\xa5\x2c\xc0\x80\xce\x43\x1f\x3c\x27\xd9\x84\x04\xf6\x10\xb9\xed\x8a\x61\x0f\x34\x75\x25\x11\xa6\x49\x8d\xbc\x8a\x2a\x14\xf9\xef\x03\x25\x27\x4e\xb1\x3e\x6c\x8f\xf2\x39\x3c\x1f\xd7\x97\x4c\x2f\xc4\xda\x35\xbd\xd7\x55\xcd\xb8\xba\xfc\xe1\x2d\x76\x35\xe1\xae\xdd\x93\xb7\xc4\x14\xb0\x6a\xb9\x76\x3e\x24\x42\xdc\x6b\x45\x36\x50\x81\xd6\x16\xe4\xc1\x35\x61\xd5\x48\x55\x13\x4e\xc8\x02\x1f\xc8\x07\xed\x2c\xae\x92\x4b\xcc\x22\x61\x7a\x82\xa6\xf3\x9f\x45\xef\x5a\x1c\x65\x0f\xeb\x18\x6d\x20\x70\xad\x03\x4a\x6d\x08\xf4\x59\x51\xc3\xd0\x16\xca\x1d\x1b\xa3\xa5\x55\x84\x4e\x73\x3d\x98\x9c\x24\x12\xf1\xe9\x24\xe0\xf6\x2c\xb5\x85\x84\x72\x4d\x0f\x57\xbe\x66\x41\xb2\x10\x00\x50\x33\x37\xcb\x34\xed\xba\x2e\x91\x43\xca\xc4\xf9\x2a\x35\x23\x2b\xa4\xf7\xd9\xfa\x66\x93\xdf\xbc\xb9\x4a\x2e\x85\x78\x6f\x0d\x85\x00\x4f\x7f\xb7\xda\x53\x81\x7d\x0f\xd9\x34\x46\x2b\xb9\x37\x04\x23\x3b\x38\x0f\x59\x79\xa2\x02\xec\x62\xce\xce\x6b\xd6\xb6\x5a\x20\xb8\x92\x3b\xe9\x49\x14\x3a\xb0\xd7\xfb\x96\xbf\x1a\xd0\x73\x2a\x1d\xf0\x9a\xe0\x2c\xa4\xc5\x74\x95\x23\xcb\xa7\xf8\x65\x95\x67\xf9\x42\x7c\xcc\x76\xbf\x6d\xdf\xef\xf0\x71\xf5\xf0\xb0\xda\xec\xb2\x9b\x1c\xdb\x07\xac\xb7\x9b\xeb\x6c\x97\x6d\x37\x39\xb6\xb7\x58\x6d\x3e\xe1\x2e\xdb\x5c\x2f\x40\x9a\x6b\xf2\xa0\xcf\x8d\x8f\xd9\x9d\x87\x8e\xa3\xa3\x22\x11\x39\xd1\x57\xe6\xa5\x1b\xc3\x84\x86\x94\x2e\xb5\x82\x91\xb6\x6a\x65\x45\xa8\xdc\x23\x79\xab\x6d\x85\x86\xfc\x51\x87\xf8\xe7\x05\x48\x5b\x08\xa3\x8f\x9a\x25\x0f\xdf\xff\xaa\x93\x88\x8b\x54\x88\x46\xaa\x43\x14\x51\xbe\x50\xce\x3e\x76\xb4\xaf\x9d\x3b\x08\xa1\x8f\x8d\xf3\x8c\x99\x98\x4c\x95\xef\x1b\x76\x29\x9b\x30\x15\x62\x32\x3d\xbc\x0d\x89\x76\xa9\x32\x9a\x2c\xbf\xa9\x5c\x7a\x78\xd9\xb3\xe9\xb7\x60\x4f\x81\x5f\x01\x07\xe3\xaa\xf4\xf1\x6a\x2a\xe6\x42\xa4\x29\x7e\x25\x8e\x3b\x30\xb0\x03\xf1\xb8\x30\xda\xbe\x51\xa6\x0d\x4c\x1e\xca\xd9\x52\x57\x89\x28\x5b\xab\x50\x11\xaf\x07\xe6\x6c\x8e\x8b\xb3\x6d\xb2\x7e\x39\xfe\x45\x4c\xc6\x13\x0b\x90\xf7\x58\xbe\x43\xb4\x4f\x32\xbb\x1e\xf5\xd6\x03\x38\x9b\x8b\x89\x2e\x07\xc6\x77\xef\x60\xb5\x89\xe7\x26\x31\x59\x72\x2b\x59\x9a\x19\x79\x3f\x17\x93\x27\x31\x79\x09\xf6\xa2\xf7\xca\x76\x43\xdd\xad\x7b\x96\x1c\x6d\xff\xb3\xb0\x27\x6e\xbd\x3d\x17\x17\x4f\x62\xec\x38\xea\xec\xee\xf3\x93\x22\xd6\xa7\x3e\xe7\x19\x7d\xb3\xfa\x1c\x17\x6c\x42\x32\xb2\xa3\x6d\x58\x93\x3f\xc7\x8e\xd8\xbd\x93\xc5\x1f\x3f\x5e\xfe\x74\x47\xfd\xef\x52\xfb\x93\x41\x12\x79\xb7\xda\xd0\xe2\x79\xd8\x77\xd4\xc7\xef\xff\xdb\xe5\xfb\xb3\x7f\x64\x46\xd9\xb8\xa8\x92\x29\x2c\xf1\xe7\x5f\x03\x7a\xfe\xed\xcb\x90\xef\x69\x21\x26\x93\x34\xc5\x6e\x7b\xbd\x5d\xc6\x07\x25\xe0\xd8\x72\x2b\x4d\x0c\x0c\x59\xc6\x15\xe8\x68\xbc\xb6\xf1\xc2\x75\xb5\x64\x28\xf2\x3c\x6c\xb2\x6c\x74\x20\xff\x48\x1e\xa1\x76\xad\x29\xa2\x40\x32\x0a\x8e\x73\x89\xef\xde\x12\x18\xda\x3f\x8c\x0f\xc3\xca\x16\x1f\xc8\xeb\xb2\x1f\x19\xc3\x90\x62\x8b\x27\xf1\x4f\x00\x00\x00\xff\xff\xbd\x43\x72\xb5\x46\x05\x00\x00") - -func testImagesAgnhostCrdConversionWebhookConfigGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostCrdConversionWebhookConfigGo, - "test/images/agnhost/crd-conversion-webhook/config.go", - ) -} - -func testImagesAgnhostCrdConversionWebhookConfigGo() (*asset, error) { - bytes, err := testImagesAgnhostCrdConversionWebhookConfigGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/crd-conversion-webhook/config.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostCrdConversionWebhookConverterConverter_testGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xc4\x56\x6d\x6f\xdb\x46\x12\xfe\xac\xfd\x15\x53\x02\xbe\x52\x29\x4d\xca\xc1\x1d\x5a\xb0\xf0\x01\x8a\xe3\x5c\x85\xa6\x76\x20\x2a\x57\x04\x69\xd0\xae\x96\x23\x69\x13\x72\x97\xb7\x3b\x94\xac\x0b\xfc\xdf\x0f\xb3\xa4\xde\x1c\x27\x68\x80\x02\xe7\x17\x4a\x9c\x9d\x7d\x66\xe6\x99\xd9\x99\xcd\x9e\x88\x2b\xdb\x6c\x9d\x5e\xae\x08\x9e\x8e\x2e\x7e\x80\xd9\x0a\xe1\xe7\x76\x8e\xce\x20\xa1\x87\x71\x4b\x2b\xeb\x7c\x2a\xc4\x4b\xad\xd0\x78\x2c\xa1\x35\x25\x3a\xa0\x15\xc2\xb8\x91\x6a\x85\xd0\xaf\x24\xf0\x6f\x74\x5e\x5b\x03\x4f\xd3\x11\xc4\xac\x10\xf5\x4b\xd1\xf0\x47\xb1\xb5\x2d\xd4\x72\x0b\xc6\x12\xb4\x1e\x81\x56\xda\xc3\x42\x57\x08\x78\xa7\xb0\x21\xd0\x06\x94\xad\x9b\x4a\x4b\xa3\x10\x36\x9a\x56\xc1\x48\x0f\x91\x8a\x37\x3d\x80\x9d\x93\xd4\x06\x24\x28\xdb\x6c\xc1\x2e\x8e\xb5\x40\x92\x10\x00\x00\x2b\xa2\x26\xcf\xb2\xcd\x66\x93\xca\xe0\x65\x6a\xdd\x32\xab\x3a\x2d\x9f\xbd\x9c\x5c\x5d\xdf\x14\xd7\xe7\x4f\xd3\x91\x10\xaf\x4d\x85\xde\x83\xc3\xff\xb4\xda\x61\x09\xf3\x2d\xc8\xa6\xa9\xb4\x92\xf3\x0a\xa1\x92\x1b\xb0\x0e\xe4\xd2\x21\x96\x40\x96\xfd\xdc\x38\x4d\xda\x2c\x13\xf0\x76\x41\x1b\xe9\x50\x94\xda\x93\xd3\xf3\x96\x4e\x08\xda\x79\xa5\x3d\x1c\x2b\x58\x03\xd2\x40\x34\x2e\x60\x52\x44\xf0\x6c\x5c\x4c\x8a\x44\xfc\x3a\x99\xfd\x74\xfb\x7a\x06\xbf\x8e\xa7\xd3\xf1\xcd\x6c\x72\x5d\xc0\xed\x14\xae\x6e\x6f\x9e\x4f\x66\x93\xdb\x9b\x02\x6e\x5f\xc0\xf8\xe6\x0d\xfc\x3c\xb9\x79\x9e\x00\x6a\x5a\xa1\x03\xbc\x6b\x1c\xfb\x6e\x1d\x68\xa6\x0e\xcb\x54\x14\x88\x27\xc6\x17\xb6\x73\xc6\x37\xa8\xf4\x42\x2b\xa8\xa4\x59\xb6\x72\x89\xb0\xb4\x6b\x74\x46\x9b\x25\x34\xe8\x6a\xed\x39\x79\x1e\xa4\x29\x45\xa5\x6b\x4d\x92\xc2\xfb\x27\xe1\xa4\xe2\x49\x26\x44\x23\xd5\x07\x06\x51\xd6\xac\xd1\x11\x3a\x21\x74\xdd\x58\x47\x10\x8b\x41\x34\xdf\x12\xfa\x48\x0c\xa2\x45\x4d\xfc\x61\x90\x32\xce\xc9\xf1\xf7\xf0\x20\xf4\x41\x81\xd9\x31\xcb\xb0\x85\x45\xda\x2c\x23\x21\x06\xb2\xd1\x78\x47\x68\x82\x67\xeb\x0b\x88\x3e\xfc\xe0\x53\x6d\xb3\x13\xf9\xb9\x6c\xb4\x47\xb7\x46\x97\x35\x1f\x96\xbc\xe6\x4f\x15\xb2\xf5\x05\xe3\x1e\xf6\xd6\x52\xad\xb4\x41\xb7\x3d\x6c\xa8\x91\xe4\x57\xe8\x65\xad\xf1\xe4\x5a\x45\xad\xc3\xf2\x4b\x9b\x5c\x6b\x48\xd7\xf8\x27\x54\x32\x8f\x4e\xcb\x4a\xff\x17\x5d\xf6\xde\x5b\x13\x89\xa1\x10\x8b\xd6\x28\x98\xa1\xa7\xab\x1d\xcd\x6f\xc6\xbf\xbc\x8c\x09\x9e\xf4\x2c\xa5\xb3\x21\x7c\x14\x03\x25\x3d\x7a\xc8\x2f\xe1\xed\xbb\xce\x2f\x16\x32\x7d\xbb\x33\xc9\x3f\x1d\xc7\x62\x30\x50\xd6\x10\x1a\x9a\x6d\x1b\x3c\x91\xe3\x5d\x83\x8a\xb0\xfc\xfb\x68\x74\xed\xdc\x5e\x7e\xcf\x58\xfc\x7f\x04\x98\x07\xc4\xe8\x84\xe7\xb4\x8f\x70\x7d\x31\x47\x92\x17\x51\xc2\x5b\x8e\x6c\xe5\xfd\x96\x70\xb6\xb8\xb8\xba\x38\x83\xda\xa9\xe9\x1c\x22\x5e\x82\x46\x3a\x8f\x80\xce\x59\x17\xd4\xee\x93\x47\x3d\xf9\x5a\x37\x4e\x7c\xd8\xca\xba\xfa\x12\xf8\x17\xc2\xfc\xff\x47\xf8\x55\xc1\xdd\x8b\x81\x97\x75\x53\xe1\xed\xfc\xfd\x0c\xeb\xa6\x92\x84\x5c\x33\x7f\x7c\xd0\xa6\xcc\xa1\x2b\x31\x36\x30\xc5\xb5\xc6\x8d\x38\xf6\xe0\xcc\x0b\x6e\x90\xe8\x29\x17\x00\xad\x2e\x73\x18\x8d\x46\xa3\xf3\xd3\x87\x00\x28\xd1\x73\x17\x1d\xbf\x9a\xec\xf7\x7a\xe2\x4e\x9a\xe2\x5d\x30\x9e\x2a\x5b\x67\xeb\xa7\x02\xc0\xce\xdf\xa3\x22\x9f\x87\x8e\x7d\x0e\xc7\xe6\x1e\xdb\x72\x11\xf4\x00\x7a\x6f\x9d\x35\x33\x39\xef\x65\x7c\x2c\x4b\x49\x32\xef\xdf\x01\x8c\xac\x31\x87\x7a\x7b\x6e\x70\x73\xae\x9c\x35\xe7\x9d\xb9\x5e\x81\xbb\xe1\x41\x99\xd7\x0b\x96\x40\xf4\x04\xfa\xdf\xec\x1f\xd1\x7e\x5d\xd7\x72\xd9\xa1\xc9\x0d\x7a\x5b\x63\x87\x18\xc4\xbd\xd2\xca\x7a\x7a\x65\x1d\xe5\x10\x55\x56\xc9\x8a\xdf\xf3\xef\x47\xdf\x8f\x22\xf1\x87\x18\x70\x13\xfe\x3d\x01\x52\xcc\xb7\x93\x86\x1b\x67\x38\xb2\x9c\x6a\x4a\xa7\xad\x89\x49\xa5\x07\x06\xbe\x8b\x20\xfa\x8e\x54\x7a\x94\xd9\x04\xb8\x19\x7c\x7a\xf4\x07\x87\xa4\x32\xf8\xa2\xa6\xb4\x68\x9c\x36\xb4\x88\x3f\xc9\x36\x7b\x70\x64\x65\xc8\xbb\xb3\x0c\x5e\x68\xe7\x09\xc8\x6d\x81\x6b\x32\x01\x4d\xe0\x57\xb6\xad\x4a\x58\x48\x5d\x81\xf4\xa1\xfd\x33\xbf\x3c\xca\x48\xd6\x15\x6f\x74\xe8\x1b\xcb\x13\x26\xbf\x84\x5d\x2b\x4f\x6f\x70\x33\x45\x65\x5d\x89\x2e\x1e\x76\x5a\xa1\x6a\x12\xae\xf1\x9d\x66\xa7\x15\xe4\x71\xf4\xea\xb6\x98\x45\x09\x44\x59\x3f\x49\xa2\xa4\x6f\x3c\xbe\x53\x93\x0c\xb5\x8f\x64\x18\x40\xf5\x22\xc0\x7d\x73\x09\x46\x57\x1d\x09\x03\x4a\x5f\x48\x92\x55\x8c\xce\x05\x9d\xfb\x23\xeb\xe9\x4f\x01\x26\x1d\x97\x65\x1c\x5d\x75\x9c\x9e\x33\xa9\x51\x60\xe4\x88\xe5\xb0\xb5\xe0\x69\x72\xdd\xd5\x5e\xdf\x78\xe3\x5d\xb4\x09\xf4\x98\xc3\xfe\xe4\xf1\x6a\x77\x60\x38\xbc\x07\x13\x2b\x7d\x78\xa8\x3e\x06\xb7\xbc\x5a\x61\x1d\x88\xeb\x9b\x3f\x87\x5a\x04\x61\xbc\x0b\xb0\xc2\x50\x13\xa7\x6d\x63\x08\xff\x84\x51\x1f\xf0\xdc\x96\xdb\x00\xd1\x7b\x96\x3e\xb3\xe5\x36\x7d\xc6\x93\xb7\x03\x61\x94\x6f\xc2\x24\x66\x37\xf8\xd6\xe4\x63\xde\x94\xc0\xdb\x77\x2c\x7e\x04\xbe\xaf\xa8\x3d\x9b\x8b\x38\xda\x69\xf0\xdd\x27\x94\x83\x35\xf0\xed\x99\xff\x36\x81\x79\x4b\x5c\x2a\x2c\xc4\x32\xdc\xd8\xb8\x4f\x74\x94\x9e\xe2\xee\x52\x1a\xcc\x77\x29\xec\xf2\x33\x70\x48\xad\x33\x5d\xbe\xf8\xc9\x0d\xab\xd8\x0f\x42\x0e\x8f\x4b\x92\xe9\xe1\xc1\x77\x58\x89\x83\xf8\x39\x2e\x64\x5b\xd1\x2f\x48\xf2\x85\x54\x64\xdd\x36\x81\x8e\xdb\xdd\xe7\x8e\xcd\xdf\x13\xfe\xeb\x6b\xf0\xd4\x48\xfa\x1c\x95\x2d\x31\x7e\x94\xc7\x84\x2b\x2c\x81\xbf\x9d\x24\x7a\xf8\xe3\x67\xcb\x6f\x11\x47\x4a\x1a\xbe\xe4\x96\x01\x35\x9c\x9a\x1c\x7e\x33\x70\xb6\xfe\xcd\xc0\x35\x37\xfa\x1c\xce\xd6\x51\x72\x9a\xb7\xe0\xdb\xa1\x6e\xf5\x02\x4e\x2c\xa6\xd3\x9d\xf2\x14\x7d\x5b\x51\x5a\x90\xa4\xd6\xb3\x0b\xeb\x8b\xfe\xa5\x68\x95\xe2\xcb\xe0\x27\xfe\xb8\x1e\x2b\x5c\x04\xba\x6c\xf5\x2e\x3c\x6e\xe3\xe0\xc6\xee\x72\x57\xf6\xcd\xe5\xf8\xd6\x93\xbe\x3e\x7a\xf9\x78\xff\xe7\x79\xfe\x4c\x60\x57\x47\xb6\x78\x2c\xbc\x1d\xbd\x4b\xa7\x72\xf3\x20\x01\x61\xf9\x0b\xfc\xc7\x0f\x69\xc4\x04\x24\xfb\x12\x3d\x3a\x85\x0e\x1c\x04\xe0\xf4\x5f\x48\x87\xc9\x15\xb3\x1d\xb6\x22\xf7\x36\x42\xfe\x8e\x0e\xc5\x25\x9c\xad\x13\x90\x8a\x5a\x59\x5d\x76\x9c\xb2\xc1\xc7\x3d\xd8\xcf\x85\x87\x56\xbb\x88\xdf\x46\x61\xed\xdd\x5f\x6b\x34\x8c\xa0\xcf\xd8\xe3\xeb\xfa\x5f\x60\xef\x7e\xc8\x77\x8b\x7b\xf1\xbf\x00\x00\x00\xff\xff\xc6\xc7\x36\xae\x4e\x0e\x00\x00") - -func testImagesAgnhostCrdConversionWebhookConverterConverter_testGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostCrdConversionWebhookConverterConverter_testGo, - "test/images/agnhost/crd-conversion-webhook/converter/converter_test.go", - ) -} - -func testImagesAgnhostCrdConversionWebhookConverterConverter_testGo() (*asset, error) { - bytes, err := testImagesAgnhostCrdConversionWebhookConverterConverter_testGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/crd-conversion-webhook/converter/converter_test.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostCrdConversionWebhookConverterExample_converterGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xbc\x54\x51\x6f\xdb\x36\x17\x7d\x16\x7f\xc5\x2d\x81\x00\x72\xe1\x4f\x4a\xfc\x54\xf8\x83\x1f\xbc\x24\x5b\x8d\x76\x76\x11\xa5\x0d\x8a\x22\x40\x69\xe9\x4a\xe2\x2c\x91\x2c\x79\x65\xc7\x48\xf3\xdf\x07\xca\x52\xa2\x66\x6b\x92\x01\xc3\x5e\x2c\x8b\x3c\xe7\x9e\x73\x2f\x0f\x15\xbf\x66\xa7\xda\xec\xad\x2c\x4a\x82\xc9\xf1\xc9\x1b\xb8\x2c\x11\xde\x35\x6b\xb4\x0a\x09\x1d\xcc\x1b\x2a\xb5\x75\x11\x63\xef\x65\x8a\xca\x61\x06\x8d\xca\xd0\x02\x95\x08\x73\x23\xd2\x12\xa1\xdb\x19\xc3\x27\xb4\x4e\x6a\x05\x93\xe8\x18\x42\x0f\xe0\xdd\x16\x1f\xfd\x9f\xed\x75\x03\xb5\xd8\x83\xd2\x04\x8d\x43\xa0\x52\x3a\xc8\x65\x85\x80\x37\x29\x1a\x02\xa9\x20\xd5\xb5\xa9\xa4\x50\x29\xc2\x4e\x52\xd9\x8a\x74\x25\x22\xf6\xb9\x2b\xa0\xd7\x24\xa4\x02\x01\xa9\x36\x7b\xd0\xf9\x10\x05\x82\x18\x03\x00\x28\x89\xcc\x34\x8e\x77\xbb\x5d\x24\x5a\x97\x91\xb6\x45\x5c\x1d\x50\x2e\x7e\xbf\x38\x3d\x5f\x26\xe7\xff\x9b\x44\xc7\x8c\x7d\x54\x15\x3a\x07\x16\xbf\x35\xd2\x62\x06\xeb\x3d\x08\x63\x2a\x99\x8a\x75\x85\x50\x89\x1d\x68\x0b\xa2\xb0\x88\x19\x90\xf6\x3e\x77\x56\x92\x54\xc5\x18\x9c\xce\x69\x27\x2c\xb2\x4c\x3a\xb2\x72\xdd\xd0\x0f\x03\xea\x5d\x49\x07\x43\x80\x56\x20\x14\xf0\x79\x02\x8b\x84\xc3\x2f\xf3\x64\x91\x8c\xd9\xd5\xe2\xf2\xed\xea\xe3\x25\x5c\xcd\x2f\x2e\xe6\xcb\xcb\xc5\x79\x02\xab\x0b\x38\x5d\x2d\xcf\x16\x97\x8b\xd5\x32\x81\xd5\xaf\x30\x5f\x7e\x86\x77\x8b\xe5\xd9\x18\x50\x52\x89\x16\xf0\xc6\x58\xef\x5d\x5b\x90\x7e\x74\x98\x45\x2c\x41\xfc\x41\x3c\xd7\x07\x33\xce\x60\x2a\x73\x99\x42\x25\x54\xd1\x88\x02\xa1\xd0\x5b\xb4\x4a\xaa\x02\x0c\xda\x5a\x3a\x7f\x78\x0e\x84\xca\x58\x25\x6b\x49\x82\xda\xf7\xbf\xb4\x13\xb1\xd7\x31\x63\x46\xa4\x1b\x5f\x24\xd5\x6a\x8b\x96\xd0\x32\x26\x6b\xa3\x2d\x41\xc8\x02\x9e\xd7\xc4\x59\xc0\x7d\xcf\xaa\x70\x9c\xb1\x80\x6f\xde\xb8\x48\xea\x78\x53\xe9\x22\xde\x4e\xfc\x52\x8d\x24\xb6\x27\xd0\xef\x08\x23\x6b\x91\x96\x52\xa1\xdd\xc7\x66\x53\xf8\x05\x17\x7b\x50\xbc\x3d\xe1\x0f\x15\x9e\xc4\xc5\x8d\x72\x64\x9b\x94\x1a\x8b\x19\x67\x23\xc6\xf2\x46\xa5\xbd\xcb\xf3\x1b\x51\x9b\x0a\x4f\x2f\xce\xc2\xd5\xfa\x0f\x4c\x09\x5e\x0f\xf1\xd1\xc7\xc1\xcb\x18\x48\xf7\x89\x3e\xf4\x31\x82\xf0\x29\xf8\xa1\x9d\x28\x21\x41\x8d\x1b\xc1\x2d\x0b\x7c\xaf\xd1\xa7\x70\x32\x8a\x16\x2a\xd7\x21\xef\x5c\xf8\x89\xa7\x36\xe3\x23\xc6\x82\x7e\x7c\x59\xe7\x67\x3a\x83\xc3\xbf\xe8\x0c\xd1\xf8\xcb\x19\x8e\x58\x90\x5b\x5d\xf7\x5e\x1e\x10\xbf\x21\xcd\x3f\x2c\xba\xf5\xd0\x57\x93\xf9\xc0\xf4\x6c\x06\x43\xde\x2d\x0b\x02\x8b\xd4\x58\x05\x4a\x56\x63\x70\xad\xcf\x73\x6b\xb5\xbd\x92\x54\xfe\x8e\xce\x89\x02\x7b\x93\x2d\xc5\xd3\x41\x40\xff\xea\xc3\x4f\x0e\xab\x1c\x5c\xa9\x9b\x2a\x6b\xef\x72\x2a\xaa\xaa\x4d\xc7\x0e\xd7\xa5\xd6\x9b\x29\x1c\x39\x3e\x98\xdd\x88\x05\x77\x8c\x05\x6e\x27\x29\x2d\x7f\xe2\xdc\x7b\x4b\x85\x43\xe0\x8e\xfc\xa5\x8b\xf0\x70\x4e\x51\xaa\x6b\x7f\xf6\x53\x16\xf4\x05\x1e\xda\xf3\xfd\xfc\x9c\x34\x69\x49\x41\xa9\x1d\x7d\xd0\x96\xc6\xa0\x37\x7e\x72\x8f\xc6\x1d\x1d\x1e\x5f\x78\x8f\xe3\xd7\x9e\x25\x73\x0f\xf7\x02\x41\x90\x61\x85\x84\xe1\xdf\x13\xc7\xf0\xc0\x1c\xb5\x70\x23\x2c\x39\xaf\xd4\x45\x3f\x4a\x4c\x25\x29\xec\x51\x51\xd8\x45\x69\x0c\x7c\xda\x51\x64\x0e\x15\xaa\xb0\x65\x8e\xe0\xd5\x0c\x26\x9d\xf4\x8b\x8e\x4b\xaa\xad\xa8\x64\x06\xbd\x02\x6c\x45\xd5\x20\x7c\x3d\xda\x7e\xe5\xe3\xfb\xd5\x83\xd2\x5d\xfb\xfb\xd4\x0c\xf8\x35\xcc\xa0\x75\xf2\xe5\xf8\xfa\x49\xb4\x69\xa7\x75\x8f\x3e\x69\xd1\x5e\x20\xc3\x5c\x34\x15\xb5\xe3\x7f\x49\x03\x8d\xc2\x1b\x83\xa9\xff\x30\x0e\xa2\xd7\x3f\x8f\xbe\x3d\x0a\x93\xd7\x78\xee\xd8\xff\x61\x56\x4e\x1e\xb2\x32\x86\x52\xb8\xb7\xda\xd1\x73\x61\x39\x04\xc5\xb4\xd1\x2a\x85\x6b\x27\xff\x04\xc5\x0c\xb3\xd5\x4b\x7c\xff\x7e\x4f\xbd\xed\x93\xf0\xaa\xdf\xec\x22\xe0\xb5\x60\x06\x9c\x0f\x0e\xb0\x83\x0d\x88\xad\x91\xc7\xb0\xe7\xb3\x0e\x33\xc8\x6b\x8a\x12\x63\xa5\xa2\x3c\xe4\x47\x6e\xda\x5e\xde\xc3\x24\xcc\x7d\x6e\x5e\x72\x07\xf8\xcb\xa0\xe6\xfe\xaa\xfc\x47\x59\x19\x48\xfc\x4b\x0a\x83\x8f\x6a\xfb\x71\xeb\xeb\x3e\xea\xb9\xd7\x48\x9a\x34\x45\xcc\xc2\x11\xbb\x63\x7f\x06\x00\x00\xff\xff\xe4\x22\x8f\xbf\x70\x09\x00\x00") - -func testImagesAgnhostCrdConversionWebhookConverterExample_converterGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostCrdConversionWebhookConverterExample_converterGo, - "test/images/agnhost/crd-conversion-webhook/converter/example_converter.go", - ) -} - -func testImagesAgnhostCrdConversionWebhookConverterExample_converterGo() (*asset, error) { - bytes, err := testImagesAgnhostCrdConversionWebhookConverterExample_converterGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/crd-conversion-webhook/converter/example_converter.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostCrdConversionWebhookConverterFrameworkGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x59\x5f\x6f\xdb\x46\x12\x7f\x26\x3f\xc5\x94\x40\x03\xd2\x60\xc9\xc4\x4f\x85\x0a\x3d\xa8\xb6\xd3\xea\xda\xd8\x85\x65\x27\x08\x02\xe3\xba\x22\x47\xd4\x46\xd4\x92\xb7\xbb\x94\xa2\x1a\xfe\xee\x87\xd9\x5d\x52\x94\x25\x25\x4e\x1a\x14\x77\xd7\x0b\x10\x8b\xdc\x9d\x99\x9d\xbf\xbf\x9d\x5d\xa6\x27\xfe\x59\x55\x6f\x24\x2f\xe6\x1a\x4e\x9f\xbf\xf8\x1e\x6e\xe6\x08\xbf\x34\x53\x94\x02\x35\x2a\x18\x35\x7a\x5e\x49\x95\xf8\xfe\xaf\x3c\x43\xa1\x30\x87\x46\xe4\x28\x41\xcf\x11\x46\x35\xcb\xe6\x08\x6e\x26\x86\xd7\x28\x15\xaf\x04\x9c\x26\xcf\x21\x24\x82\xc0\x4d\x05\xd1\x0f\xfe\xa6\x6a\x60\xc9\x36\x20\x2a\x0d\x8d\x42\xd0\x73\xae\x60\xc6\x4b\x04\xfc\x90\x61\xad\x81\x0b\xc8\xaa\x65\x5d\x72\x26\x32\x84\x35\xd7\x73\xb3\x88\x13\x91\xf8\x6f\x9d\x80\x6a\xaa\x19\x17\xc0\x20\xab\xea\x0d\x54\xb3\x3e\x15\x30\xed\xfb\x00\x00\x73\xad\xeb\x41\x9a\xae\xd7\xeb\x84\x19\x2d\x93\x4a\x16\x69\x69\xa9\x54\xfa\xeb\xf8\xec\xe2\x72\x72\xf1\xdd\x69\xf2\xdc\xf7\x6f\x45\x89\x4a\x81\xc4\x7f\x35\x5c\x62\x0e\xd3\x0d\xb0\xba\x2e\x79\xc6\xa6\x25\x42\xc9\xd6\x50\x49\x60\x85\x44\xcc\x41\x57\xa4\xe7\x5a\x72\xcd\x45\x11\x83\xaa\x66\x7a\xcd\x24\xfa\x39\x57\x5a\xf2\x69\xa3\x77\x1c\xd4\x6a\xc5\x15\xf4\x09\x2a\x01\x4c\x40\x30\x9a\xc0\x78\x12\xc0\x8f\xa3\xc9\x78\x12\xfb\x6f\xc6\x37\x3f\x5f\xdd\xde\xc0\x9b\xd1\xf5\xf5\xe8\xf2\x66\x7c\x31\x81\xab\x6b\x38\xbb\xba\x3c\x1f\xdf\x8c\xaf\x2e\x27\x70\xf5\x12\x46\x97\x6f\xe1\x97\xf1\xe5\x79\x0c\xc8\xf5\x1c\x25\xe0\x87\x5a\x92\xee\x95\x04\x4e\xae\xc3\x3c\xf1\x27\x88\x3b\x8b\xcf\x2a\xab\x8c\xaa\x31\xe3\x33\x9e\x41\xc9\x44\xd1\xb0\x02\xa1\xa8\x56\x28\x05\x17\x05\xd4\x28\x97\x5c\x51\xf0\x14\x30\x91\xfb\x25\x5f\x72\xcd\xb4\x79\xdf\x33\x27\xf1\x4f\x52\xdf\xaf\x59\xb6\x20\x21\x59\x25\x56\x28\x35\x4a\xdf\xe7\xcb\xba\x92\x1a\x42\xdf\x0b\x66\x4b\x1d\xf8\x5e\xc0\xab\x94\x57\x8d\xe6\x25\xbd\x08\xd4\x29\xc5\x85\x9e\xc9\x19\xa2\x50\x81\xef\x7b\x41\xc1\xf5\xbc\x99\x26\x59\xb5\x4c\x97\x8d\x10\x28\xff\x48\x8b\x8a\x35\xba\x12\x58\x18\x82\xc5\xf7\x2a\xe1\x55\xba\x28\xab\x22\x5d\x9d\xf6\x87\x58\xcd\xf1\x83\x46\x61\x34\xff\x8e\xd5\x5c\xa1\x5c\xa1\x4c\xeb\x45\x41\x73\x6a\x97\x20\x5d\xbd\x08\xfe\x04\xef\x14\x35\x23\x01\x4b\xd4\x6c\xf5\x02\x7a\x72\x96\x2c\x9b\x73\x81\x72\xb3\x65\x26\xa2\xbd\xf5\x8e\xd3\xa5\x8d\x50\x5a\x36\x99\x6e\x24\xe6\x1f\x63\x92\x8d\xd0\x7c\x89\x4f\x20\x49\x15\x4a\xce\x4a\xfe\x07\xca\xf4\xbd\xaa\x44\xe0\x7b\x14\x09\x37\x7b\x5c\x7d\x22\xda\x2e\x13\xf9\x7e\x9a\xb6\x41\x7e\xd9\x88\x8c\x92\x99\x92\xa1\x51\x28\x21\xc7\x19\x17\x98\xc3\xac\x11\x19\x65\x8b\x49\x36\x26\x36\x8e\x81\x3c\x97\x18\x48\xc9\xaa\x1c\xa9\x72\xb6\x55\xcf\x15\x30\x12\xad\x71\x59\x97\x4c\x53\xce\x32\x0d\x19\x13\x30\x35\xc2\x3b\x51\x67\xd7\x3d\x69\x50\xf0\x15\xb6\x62\xdc\xa2\x89\xaf\x37\x35\xee\xe8\x48\x53\xe1\xd5\xf4\x3d\x66\x1a\x4e\xfa\xae\x4d\x6e\x7b\x2f\x31\xb4\x52\x6d\x3a\x46\x10\x7e\x8c\xd8\xc6\x3d\x99\x68\xa6\x1b\x15\xf9\x3e\x2d\x02\xca\xbc\x5d\x48\x59\xc9\x37\x5c\xcf\x5f\xa1\x52\xac\xc0\x70\xa9\x0a\x27\x34\x86\x9a\x49\xb6\x54\x90\x24\x09\x17\x1a\xe5\x8c\x65\x78\xff\x10\xed\x8a\x83\x7b\xdf\x93\xa8\x1b\x29\x76\xc7\xef\x7d\xcf\x73\x32\x07\x30\x5b\xea\x64\x52\x4b\x2e\xf4\x8c\x16\x68\x25\x27\x49\x12\xc5\xbe\xe7\x59\x8e\x01\xec\x4a\x78\xc9\x78\xd9\x48\x8c\x7d\xef\xc1\x7f\xd8\x51\x7a\xd2\x64\x19\x62\x1e\x7e\x86\x2a\xed\x12\x3b\x13\x46\x8e\x52\xed\x0a\x69\x0a\x79\x75\xd6\x45\xec\xb5\xad\x9b\x36\x3c\x36\x79\x08\x6b\x51\x19\x2c\x34\x41\x52\x36\x37\x10\x5c\x95\xc1\x96\xff\xda\x92\x42\xa3\x08\xa8\x88\xc6\xa6\x40\x2f\x27\xba\xec\x23\xe8\x4a\x53\xb0\xda\x2b\xb3\x45\x74\x44\x12\x55\x5d\x11\x7a\x81\xf3\x88\x02\x26\x49\x13\xc2\x2c\xcc\xb7\x1b\xce\x35\x32\x55\x89\x56\xa1\x43\x12\xac\x13\x0f\x18\x19\x3a\x23\x5b\x9d\x4f\x9c\x39\xc9\x9e\x39\x71\xeb\x8f\x7e\xda\x46\x87\x19\xec\xaa\x14\x96\x15\x93\x1d\xde\xe6\x57\xce\x73\xef\xee\x5c\xb1\x26\xd7\x6c\x7d\xd1\x02\x96\xef\x51\xfd\xfc\x33\x26\x07\xc3\x60\x08\x92\x89\x2d\x58\x3b\x25\x92\x56\x04\x85\x36\x93\x44\x76\x34\xfd\xef\x1f\x7c\xcf\xe3\x33\x40\x69\xe8\x32\x99\xdc\x8a\x25\x93\x6a\xce\xca\x7f\x4c\xae\x2e\xc3\x6a\xfa\x9e\xd6\x8f\x7e\x30\x14\xdf\x0c\x41\xf0\xd2\xc8\xf5\x08\xb6\x13\x53\x20\x21\x4a\x19\xd1\x90\x4b\xaf\x67\xc7\xad\x35\x9c\xde\x35\xaa\xa6\xd4\x83\xfd\x3c\xf4\x8e\x54\x45\x30\x63\xbc\xb4\xdb\x74\xd3\xaa\x57\xba\x1c\x83\xf0\xdb\x55\x64\xc3\x8c\xa4\xcd\x00\xbe\x5d\x05\xb1\xab\xd2\x4e\xff\x98\x26\x4d\x39\x79\x9f\xae\x28\xcf\xf3\x1e\xcc\x0f\x39\x87\xfe\x77\xc1\x39\xbb\x8e\x5d\x95\x19\x6f\xd9\xe1\xf0\x59\x26\xe3\xc7\x31\x38\x47\x45\x5d\xc7\xe8\xb7\xb1\x6b\x9f\x22\xeb\x68\xcb\xdd\xd6\xe4\x37\xc3\x83\x35\xb7\xe7\xe1\x8e\xcb\x18\x15\x7d\x91\xb7\xad\x8c\x63\x76\x25\x13\xd4\x5b\x65\xc3\xa7\x58\xb3\x97\xb2\x43\x6a\xb0\x50\xe4\xe1\xe3\x99\x18\x0e\xe5\xf2\xbd\x9d\x1d\x40\x4f\x8d\x87\x88\xe0\xe6\x89\xb6\x9d\x3d\x5a\x66\xb0\x57\x45\x64\x6d\x6b\xff\xf6\xdf\x23\x9c\x3c\x8a\x70\x4f\x06\xb7\xff\x3e\x5c\x3b\x00\x69\x9f\x83\x66\x7f\x1b\x20\xfb\x3f\x86\xfd\x45\x18\xf6\x3f\x0a\x5f\x7f\x0d\x72\xd9\xee\x8f\xce\x39\xe1\xda\x9c\x91\x93\x76\xb1\x37\x92\x6b\x94\x31\x48\x38\x71\xe3\x1f\xab\x6c\x57\xc2\xd3\x2a\xdf\xc0\xbb\xbb\xe9\x46\xa3\x4f\xf1\x96\xc9\x8f\x34\xd2\x2b\x1a\x3e\x83\x9c\x69\x16\xb7\xe5\x66\x4f\x83\xc9\x35\xb2\x7c\x54\x96\xa1\x65\x70\xb5\x36\xec\xd5\x9a\x91\x3c\x34\xbc\x36\x86\x0f\xbe\x4f\x81\xd0\x28\xf4\x0d\x75\xfb\x84\x04\xc9\xcf\xc8\x72\x94\xc9\x4f\xa8\xc3\xe0\xcc\x4e\x7e\x47\xb3\x41\xe4\x7b\xdb\xd3\x0f\xd1\x16\xa8\xc7\xa2\x6e\xf4\xa4\x1b\x0d\x7b\xd2\x22\xa3\x7d\x8f\xa3\xa7\x0a\x75\xf2\x83\xe1\x6e\x85\x72\xb1\x62\x25\xcf\xa1\xbf\x26\xcc\x8d\x32\xf0\xfb\xb7\xea\xf7\xc0\xb8\xad\x27\xbd\x97\xde\xa6\x75\xa7\x21\xe3\x66\x9b\xf1\xeb\x18\x4c\x3f\x6f\x86\x6c\x71\xfc\xc8\x72\x17\x02\xa2\xb5\x79\x62\xbd\x60\x44\xbd\x0e\x4f\xa3\x64\x2c\x66\xd5\x2c\x0c\xe6\x4c\xe4\x25\x6d\x22\x6e\xe3\x71\xa0\x40\x2e\x8c\x7c\xaf\x9a\xbe\x8f\xa1\x58\x2d\xba\x10\x6c\xcd\x4c\xce\x91\xce\x65\x21\x51\xc6\x64\xb0\xf9\x63\x9d\xf1\x08\xfc\x0e\x79\x61\x8b\x53\x39\x76\x42\x6d\x4e\x3c\x82\xa9\x1d\x94\x32\x7a\x59\x88\xf2\x0f\x81\xea\x97\xfa\x85\x12\xb2\xdd\xca\xae\xa6\xef\xbb\x52\xb4\x75\xe2\x7b\x6a\xcd\x75\x36\x87\x93\x62\xb5\x20\x93\x32\xa6\xba\xe3\x46\x32\xc9\xe6\xb8\xc4\x9f\x64\xd5\xd4\xae\xf0\x13\x3a\xcd\xfd\xc2\x45\x6e\x32\xab\xab\xcc\x15\xc7\x75\x10\x0d\xb6\xa8\x60\x87\x62\xa8\x16\xe4\x1f\x42\xe0\xf0\x60\x13\x4f\x54\x0e\x15\xbf\xa9\x16\x36\xc9\x0f\x39\xf5\xe2\x43\x8d\x19\xed\xdb\xc7\x84\xc0\xb4\xd1\x50\x54\x14\xe5\x9b\xc0\xec\x8a\xd1\x2e\x7e\x76\x09\xf6\x59\x9e\xec\x5c\xd9\x07\x4c\xbb\x62\x87\x11\x54\x90\x1f\x3b\xf4\x38\xe2\x5d\xe0\x88\x8e\x8a\x4b\x6e\xc7\xe7\x30\x84\x83\xec\x34\xd7\x66\x47\x97\xeb\xe1\x8e\xa7\x14\x8a\xdc\x66\xbd\x15\xe7\xd2\xfe\xf0\x5a\x51\xe4\xfb\x9e\x67\x7a\x28\x85\xba\xdf\xa6\xc5\xc0\x35\x70\x65\xee\x25\x05\x62\x8e\x39\x98\xdb\xc5\x6d\x57\xb4\xaf\xbf\x6d\x85\x86\x87\xdb\x4e\x33\x69\xba\x8c\x7e\x36\x3e\xb2\xb3\xcb\xbf\xaf\x9e\x7a\x7f\x36\xeb\xfe\xa3\x13\xee\xef\x9d\x6b\x5f\x92\x66\x39\xce\x18\xf5\x06\x47\x30\xfc\x56\xa8\xa6\x76\x27\x85\x82\x72\xb0\xbb\x12\x5b\x70\x91\x3b\x33\x8b\xd5\xe2\xeb\x42\x35\xcb\xcc\x8d\xff\xde\x1e\x3e\x32\xe3\xb4\x7b\x57\xfd\xad\xda\x6d\xe0\x57\x8d\xde\xdd\xc1\xad\x18\xbb\x5f\xed\x32\x3c\x71\xff\x76\x7a\xec\xee\xdc\x9d\xd4\xaf\xb7\x69\x7b\xa6\xbd\xd9\xd5\x31\xb9\x10\x66\xf3\xed\x45\x2f\x86\xf5\xc1\xcd\xf7\x53\x8e\x47\x29\xdd\x4b\xb4\xa3\xce\x58\x68\x94\x82\x95\x13\x73\xb1\x6d\x28\x76\xf5\xb2\x67\x59\x33\x7d\xf1\x81\x2d\xeb\x12\x5d\xbf\x69\x7b\x44\xa9\x00\x45\x5e\x57\x5c\xe8\xee\x2b\x02\x5a\xba\xed\xb5\x7f\x77\x07\xcc\x54\x3b\xd8\xca\xba\x3e\xef\xdd\xd1\x9a\xd6\xf3\xc0\x52\x4f\x6c\x44\x4d\xcf\xe9\x3a\xd7\x18\xb6\x47\x90\xed\x5a\x11\x99\x63\x6e\x82\x97\x98\x73\x66\x7a\x32\x7b\xec\x23\x56\x7a\x8d\x61\xd2\x4c\xdb\x71\x2e\x0a\x62\xa0\xae\x41\x19\x08\x86\x61\xd7\x32\x5c\xe2\xda\xc2\x72\xd8\x5e\xf3\x72\xc1\x75\x68\x74\x60\x79\x7e\x53\xb9\x59\xcb\x18\x75\x9d\xf5\xfe\x1c\x9c\xb4\x32\xed\xb0\x11\xd1\xbb\x86\x4f\x5e\x35\x4a\x87\xab\x17\xc9\x68\x5f\x6c\x74\x90\xd2\x6e\x38\x07\xc9\x5b\x73\xba\x1c\xa3\xa3\xca\x92\xd5\xef\x3a\x87\x74\x27\xec\x6d\x1e\xde\xfb\xde\x7d\xe0\xbe\x77\x51\xa4\x82\x18\x02\xf3\xb9\xe0\x61\x00\xf4\x6b\x9c\xb1\xad\x39\x33\x74\x6e\x41\xe5\x15\x6a\xf6\x92\x65\xba\x92\x9b\xd8\x39\x71\xfb\x3b\x63\xa5\x42\x3a\x78\xec\x49\xdf\xb0\x65\xd9\x97\xfe\x76\xf4\xea\xd7\xcf\x5f\x21\x8a\x3b\xb7\x7f\xbc\xb9\xef\x2e\xf7\xf7\x6d\xa7\x60\xd4\x4c\x6a\x73\xc0\x75\x9f\xa4\x92\x49\x5d\x72\x7d\xd9\x97\x10\x43\x90\x06\x31\x9c\xda\xe2\x2c\x51\x84\x86\x29\xa2\x1a\x3d\x35\x15\xea\xce\x71\x82\x97\xfd\x63\x5d\x2f\x10\xdb\x10\xdc\x1b\xde\x77\xcf\xef\xcc\xf5\xbd\x56\xef\x5e\xdc\x3d\xdc\xf5\x4d\x39\x02\x73\x9f\x30\xc3\x29\xe6\xc0\x8b\x00\xf0\x79\x5f\xb3\xc3\xaa\x1c\x8e\xfb\x9d\x3b\x6d\x95\xac\x51\x68\x5c\xd3\x7d\x8e\x4b\x7e\x63\x52\xa1\x85\xe9\x2d\xfc\xba\x0b\x1a\xcb\xd0\xbb\xa3\x71\x02\x48\x0d\x22\x59\xc4\xb0\xda\xce\xf6\xb3\xd4\xf4\x25\xae\x3f\x37\xcf\xa6\x39\xb2\xfc\x89\x89\xe1\x70\x08\x0b\xfb\xf4\xec\x59\x3b\xd1\x16\xb3\x99\x73\x2f\xf6\x42\xe3\x33\x38\x83\x93\xe0\x20\x4f\x70\x12\x1c\x65\x18\x18\x06\xe7\xd9\x55\xef\xa2\x81\xdc\xd6\x4b\x85\x07\xff\xdf\x01\x00\x00\xff\xff\x95\xe8\xaf\x08\x60\x1f\x00\x00") - -func testImagesAgnhostCrdConversionWebhookConverterFrameworkGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostCrdConversionWebhookConverterFrameworkGo, - "test/images/agnhost/crd-conversion-webhook/converter/framework.go", - ) -} - -func testImagesAgnhostCrdConversionWebhookConverterFrameworkGo() (*asset, error) { - bytes, err := testImagesAgnhostCrdConversionWebhookConverterFrameworkGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/crd-conversion-webhook/converter/framework.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostCrdConversionWebhookMainGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x55\x5d\x6f\xdb\x3a\x12\x7d\x16\x7f\xc5\x2c\x81\x2d\xa4\xac\x2c\xa5\x1f\x0b\x74\xbd\xc8\x83\xd7\x4d\x50\xa3\xd9\x64\x11\xb9\x0d\x8a\xa2\x40\x69\x69\x2c\x13\x96\x48\x95\x1c\xc5\xf1\x06\xf9\xef\x17\x43\xc9\x69\xd2\x0f\xdc\xdb\xbc\x28\x12\x87\x73\xce\xcc\x9c\x39\xce\x8f\xc4\xdc\x76\x7b\xa7\xeb\x0d\xc1\x8b\xe3\xe7\xaf\x61\xb9\x41\x78\xd7\xaf\xd0\x19\x24\xf4\x30\xeb\x69\x63\x9d\xcf\x84\x38\xd7\x25\x1a\x8f\x15\xf4\xa6\x42\x07\xb4\x41\x98\x75\xaa\xdc\x20\x8c\x27\x29\x7c\x40\xe7\xb5\x35\xf0\x22\x3b\x86\x98\x03\xe4\x78\x24\x93\x7f\x8b\xbd\xed\xa1\x55\x7b\x30\x96\xa0\xf7\x08\xb4\xd1\x1e\xd6\xba\x41\xc0\xdb\x12\x3b\x02\x6d\xa0\xb4\x6d\xd7\x68\x65\x4a\x84\x9d\xa6\x4d\x00\x19\x53\x64\xe2\xe3\x98\xc0\xae\x48\x69\x03\x0a\x4a\xdb\xed\xc1\xae\x1f\x47\x81\x22\x21\x00\x00\x36\x44\xdd\x34\xcf\x77\xbb\x5d\xa6\x02\xcb\xcc\xba\x3a\x6f\x86\x28\x9f\x9f\x2f\xe6\xa7\x17\xc5\xe9\xe4\x45\x76\x2c\xc4\x7b\xd3\xa0\xf7\xe0\xf0\x6b\xaf\x1d\x56\xb0\xda\x83\xea\xba\x46\x97\x6a\xd5\x20\x34\x6a\x07\xd6\x81\xaa\x1d\x62\x05\x64\x99\xe7\xce\x69\xd2\xa6\x4e\xc1\xdb\x35\xed\x94\x43\x51\x69\x4f\x4e\xaf\x7a\x7a\xd2\xa0\x03\x2b\xed\xe1\x71\x80\x35\xa0\x0c\xc8\x59\x01\x8b\x42\xc2\x7f\x66\xc5\xa2\x48\xc5\xf5\x62\xf9\xf6\xf2\xfd\x12\xae\x67\x57\x57\xb3\x8b\xe5\xe2\xb4\x80\xcb\x2b\x98\x5f\x5e\xbc\x59\x2c\x17\x97\x17\x05\x5c\x9e\xc1\xec\xe2\x23\xbc\x5b\x5c\xbc\x49\x01\x35\x6d\xd0\x01\xde\x76\x8e\xb9\x5b\x07\x9a\x5b\x87\x55\x26\x0a\xc4\x27\xe0\x6b\x3b\x90\xf1\x1d\x96\x7a\xad\x4b\x68\x94\xa9\x7b\x55\x23\xd4\xf6\x06\x9d\xd1\xa6\x86\x0e\x5d\xab\x3d\x0f\xcf\x83\x32\x95\x68\x74\xab\x49\x51\x78\xff\xa1\x9c\x4c\x1c\xe5\x42\x74\xaa\xdc\x72\x92\xd2\x55\xa5\x35\x37\x3b\x5c\x6d\xac\xdd\x0a\xa1\xdb\xce\x3a\x82\x58\x44\x72\xdd\x92\x14\x91\x34\x48\x39\xcf\x43\x0a\x11\xc9\x5a\xd3\xa6\x5f\x65\xa5\x6d\x73\xdf\xad\x9f\xbf\xcc\x4b\xbb\x72\x2a\x1c\x6d\x5f\xfb\x4c\xdb\x7c\xfb\xa0\xbe\x9c\xd0\x53\xae\x5b\x55\xa3\xcf\x55\x6d\x36\xd6\x53\x5e\xba\x6a\xc2\x80\x83\xd6\x26\x23\x6e\x3e\x7c\x22\x74\x52\x24\x42\xdc\x28\xc7\x0c\x4a\x74\x74\xc6\x12\xe3\xde\x9b\x5a\x44\x5b\xdc\x87\xf7\x87\x0f\x81\x2b\xff\x69\x43\x7c\x31\xcf\x61\xde\x56\x73\x57\xcd\x1f\x20\xae\x07\x04\x1e\x62\xef\x47\x79\x0c\x5c\x60\xce\xdc\xb3\x80\xf6\xab\x5b\x27\xf0\x2c\x54\x98\xcd\x6d\xdb\x2a\x53\xdd\x89\xe8\xbd\xc7\x29\x00\xc8\x9f\x57\x22\x53\x11\x15\x1b\xeb\x68\x0a\xb2\x20\xe5\xc8\xc3\xdb\xe5\xf2\x7f\xe0\xd1\xdd\xa0\x63\xed\x04\xce\xaf\x5e\xbd\x1c\x26\x8b\x9e\xa5\x08\xf3\xde\x93\x6d\xaf\xd0\xdb\xde\x95\xf8\x03\x0f\xce\x7a\x6e\x4d\x3d\x85\x2f\xbc\xe1\xbe\x5f\x95\x03\x9f\x90\xc0\x83\xfc\xb3\xfb\x99\x10\xb3\x35\xa1\x83\x0a\xbb\xc6\xee\x19\x52\x13\xaf\xc3\x23\xb3\x28\x9b\xde\x13\xba\x34\x88\x45\x55\xad\x36\x2c\x7a\x45\xd6\x81\x41\xac\x3c\x87\x97\x0e\x15\x21\xa8\x5f\x23\x66\x07\x48\xde\xb4\x1f\xb3\x73\x12\xf6\x0f\x87\xad\x25\x84\xb1\x6b\xa1\x17\xdf\x9a\xc9\x86\xf5\x5d\x9d\x7e\xe8\xa5\x7a\xdc\xcd\x14\x1a\xed\x09\xc3\x0a\x3c\x6a\x6c\xca\x3b\x30\x30\xe5\x93\xe0\x64\xf9\xa8\x73\x74\x24\x01\x4d\xd5\x59\x6d\x28\xfb\x92\x8a\x68\xe6\x6a\x3f\x85\x61\xc8\xff\x55\xb7\xba\xed\xdb\x0b\xfe\x16\x1f\x27\xa9\x88\xae\x7a\x33\x05\x68\x95\x36\xa9\xb8\x17\x62\xdd\x9b\x12\xb4\xd1\x14\x27\x70\x27\xa2\x5f\xa8\x26\x3b\x6b\x54\xed\xe3\x24\x2b\x82\x4c\x3f\x28\x17\x3f\x3b\x68\x39\x05\x49\x8d\x9f\xf0\xeb\x84\xed\x53\xa6\x20\x79\xba\x91\x0c\xca\x2e\xad\x61\x7b\x3c\xf0\xae\x70\xad\xfa\x86\xe0\xf6\x9f\xc7\xff\x82\x39\x3a\x62\x07\xe0\x01\x70\xbf\xb8\x13\x45\x06\xf1\x7c\x06\x9c\x2e\x05\xbd\x06\x65\xf6\x29\x27\xe1\x20\xa3\xd8\xad\xe4\x3f\x44\x14\x45\x52\x85\xe9\x8f\x2a\xe4\xf0\x4c\x26\xbf\x55\xc0\xb8\x7b\x23\xff\xce\xe9\x1b\x45\x38\xd9\xe2\xfe\x77\xcb\x18\xaf\xc2\x16\xf7\xd0\x2a\x2a\x37\x1c\x35\x99\x3c\xe9\xca\x5f\x22\xb7\x30\x14\x98\xf1\xdc\x53\x90\xfc\x90\x69\x10\x00\xf3\x28\xb0\xec\x1d\x0e\xa2\xa0\x8d\xa2\x40\xe4\x20\xb7\x41\x37\x1e\xac\x91\x09\xcf\x95\x7d\xc3\x9a\xb5\xae\x0f\xcc\xfd\xe0\xb9\x43\xbb\xe2\x47\x57\x93\xd0\xbc\xa0\xb0\x2d\xee\x33\x41\xfb\x0e\x0f\x77\x3d\xb9\xbe\xa4\x20\x8c\xef\x9d\xeb\xdd\x77\xce\x75\xd0\x12\x2b\x2b\x2e\xdb\x0a\x8e\x9e\xd8\x4c\x0a\xca\xd5\x1e\x3e\x7d\x1e\xc2\x83\xd8\xca\x01\x64\x7a\x32\xc2\xdd\x1d\x40\xa6\xf0\x4d\x5c\x23\xce\x14\xc6\x71\xdd\x0b\x11\xb1\x79\x67\x6f\x95\xa9\x1a\x3c\xeb\x4d\x19\x3f\x59\x86\x14\x1e\xac\x37\x2b\xb8\xdc\xd3\x5b\xd5\x76\xcd\xb8\xd0\x94\xfc\xec\xba\x43\x55\xed\xff\x2f\x53\xe0\x12\xe2\x5d\xf8\xb5\xce\xae\xd0\x77\xd6\x78\xbc\x76\x3a\x98\x88\xc3\xaf\x70\x34\x9e\x7c\xed\xd1\x53\x02\x77\xb0\xcb\xc2\x71\xfc\xe9\xf3\x6a\x4f\x18\x4b\xbb\x95\x49\x02\xf7\x89\x88\xca\x46\xa3\x21\x8f\xc4\x05\xd6\x48\xf3\xf0\x1e\x27\x22\x1a\x87\x30\x3d\x81\x67\x21\x5d\x60\xe9\xee\x44\x14\xcd\xaa\xca\x4d\x83\xfd\xc3\xba\xa5\xac\xe8\x9c\x36\xb4\x8e\xe5\xf4\xef\x95\x4c\xc3\xe4\x79\x85\xa3\xe5\x79\x31\x74\x8c\xd7\x9c\x9f\xcb\xf3\x22\x1e\xfe\x4b\xe1\x01\x97\x43\xef\x45\x84\x2e\x40\x0d\xa0\xd9\x79\xd0\xc9\xcc\x54\x01\x94\xef\xc9\xa0\xf4\x44\x44\x7a\x0d\x1c\xfb\xb7\x13\x30\xba\xe1\xf9\x44\x9d\x32\xba\x8c\xd1\xb9\x84\x33\xdd\x8b\x3f\x02\x00\x00\xff\xff\xd8\x5a\xb9\x49\x9e\x09\x00\x00") - -func testImagesAgnhostCrdConversionWebhookMainGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostCrdConversionWebhookMainGo, - "test/images/agnhost/crd-conversion-webhook/main.go", - ) -} - -func testImagesAgnhostCrdConversionWebhookMainGo() (*asset, error) { - bytes, err := testImagesAgnhostCrdConversionWebhookMainGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/crd-conversion-webhook/main.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostDnsCommonGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa4\x54\x5d\x6f\xdb\x36\x14\x7d\x16\x7f\xc5\x99\x1e\x36\xbb\x50\xa4\x34\x7b\x9a\x87\x3c\x78\x4e\x8a\x7a\xcd\x94\x21\x4a\x56\x14\xc3\x80\xd2\xd2\x95\x74\x31\x89\xd4\x48\x2a\x8e\x51\xf4\xbf\x0f\x94\x1c\x7f\xb4\x5d\xd2\x62\x4f\x02\xc5\x73\x0f\xcf\x39\xf7\x92\xc9\x0b\xb1\xd0\xdd\xc6\x70\x55\x3b\x9c\x9d\xbe\xfc\x09\xb7\x35\xe1\x4d\xbf\x22\xa3\xc8\x91\xc5\xbc\x77\xb5\x36\x36\x16\xe2\x8a\x73\x52\x96\x0a\xf4\xaa\x20\x03\x57\x13\xe6\x9d\xcc\x6b\xc2\x76\x27\xc2\x1f\x64\x2c\x6b\x85\xb3\xf8\x14\x13\x0f\x08\xb7\x5b\xe1\xf4\x67\xb1\xd1\x3d\x5a\xb9\x81\xd2\x0e\xbd\x25\xb8\x9a\x2d\x4a\x6e\x08\xf4\x90\x53\xe7\xc0\x0a\xb9\x6e\xbb\x86\xa5\xca\x09\x6b\x76\xf5\x70\xc8\x96\x22\x16\xef\xb6\x04\x7a\xe5\x24\x2b\x48\xe4\xba\xdb\x40\x97\x87\x28\x48\x27\x04\x00\xd4\xce\x75\xb3\x24\x59\xaf\xd7\xb1\x1c\x54\xc6\xda\x54\x49\x33\xa2\x6c\x72\xb5\x5c\x5c\xa6\xd9\xe5\xc9\x59\x7c\x2a\xc4\x9d\x6a\xc8\x5a\x18\xfa\xa7\x67\x43\x05\x56\x1b\xc8\xae\x6b\x38\x97\xab\x86\xd0\xc8\x35\xb4\x81\xac\x0c\x51\x01\xa7\xbd\xce\xb5\x61\xc7\xaa\x8a\x60\x75\xe9\xd6\xd2\x90\x28\xd8\x3a\xc3\xab\xde\x1d\x05\xf4\xa8\x8a\x2d\x0e\x01\x5a\x41\x2a\x84\xf3\x0c\xcb\x2c\xc4\x2f\xf3\x6c\x99\x45\xe2\xed\xf2\xf6\xf5\xf5\xdd\x2d\xde\xce\x6f\x6e\xe6\xe9\xed\xf2\x32\xc3\xf5\x0d\x16\xd7\xe9\xc5\xf2\x76\x79\x9d\x66\xb8\x7e\x85\x79\xfa\x0e\x6f\x96\xe9\x45\x04\x62\x57\x93\x01\x3d\x74\xc6\x6b\xd7\x06\xec\xa3\xa3\x22\x16\x19\xd1\xd1\xe1\xa5\x1e\xc5\xd8\x8e\x72\x2e\x39\x47\x23\x55\xd5\xcb\x8a\x50\xe9\x7b\x32\x8a\x55\x85\x8e\x4c\xcb\xd6\x37\xcf\x42\xaa\x42\x34\xdc\xb2\x93\x6e\x58\x7f\x66\x27\x16\x2f\x12\x21\x3a\x99\xff\xed\x49\x0a\x65\x85\xe0\xb6\xd3\xc6\x61\x22\x82\xb0\x6c\x5d\x28\x82\x90\x75\xc2\xba\x77\xdc\xf8\x85\xb7\xae\x2a\x1b\x0a\x11\x84\x15\xbb\xba\x5f\xc5\xb9\x6e\x13\xdb\x95\x2f\x7f\x4c\x72\xbd\x32\x32\x14\x53\x21\x92\x04\x8b\xb6\xb8\x48\xb3\xac\x2f\x4b\x7e\xf0\xb1\xf5\x76\xdb\x90\x4a\xd5\xda\x3a\x2c\x3c\x38\x16\xf7\xd2\x1c\x43\xcf\xf1\xfd\xc0\x13\x2f\x74\xdb\x4a\x55\x7c\x10\xc1\x9d\xa5\x19\x80\xb0\x50\xf6\xc4\x0e\xa8\x30\x12\x41\x56\x6b\xe3\x66\x08\x7f\x37\xac\x9c\x1d\x6c\x79\xe2\x1f\x2c\x2e\xd2\x0c\x23\x0e\x0d\x5b\xe7\xc1\x57\x5a\x55\x33\xe0\xfd\x01\x78\x8f\x22\x3b\x0e\x1f\xdb\x81\x21\x7e\x1f\x89\x60\x6e\x2a\x3b\x03\x46\x29\xbf\xc9\x07\x6e\xfb\x36\xf5\x3f\x27\xa7\xd3\x48\x04\x37\xbd\xf2\x92\x3a\x4f\xb7\xd3\x7e\xc5\xd6\x45\xe2\xe3\xa1\x7d\x32\xf7\x64\xfc\xff\xaf\x8b\x60\x0f\x7f\x2e\x86\x01\x79\xf2\x68\xef\xe9\x2c\x46\xda\xe7\xb2\x38\x40\xfd\xef\x38\x76\x3e\x0e\xe2\xb8\x74\xf9\x6b\x6d\x9d\x7d\x3e\x89\x1d\xf2\x89\x10\xc8\xe5\x27\xbe\xd4\x3e\x6d\x3f\x21\x97\x27\x03\x6e\x78\xa1\xfe\xc3\x7e\x38\x32\x8d\x8f\xd8\x91\xf7\xf0\x1b\xcd\x0f\xba\x5f\x71\x43\x83\xf1\xb2\x57\xf9\x17\x66\x64\x92\xb7\x05\x5e\x1c\x39\x8b\x20\x4d\x65\xf1\xe7\x5f\xe3\x05\x9b\xe2\x83\x08\x0a\x65\xf7\x35\x98\x9d\xa3\xa2\x4f\x78\xa6\x22\x28\x5b\x17\x0f\x4e\x1a\x35\xd9\x5e\xce\xf8\x57\xcd\x6a\x72\x54\x1d\x21\x8c\xc2\xe9\xf4\x73\x4d\xbb\x46\x7d\x83\xa6\xfd\x90\xee\x35\xed\x79\x9e\xd3\xb4\x1f\x8d\x2f\x69\xda\xe5\xf7\x95\x7a\x0e\x8f\x32\x24\x8b\xa1\x94\xb6\xf3\xe3\x17\x07\x07\xec\xf6\x7d\x9b\x53\xd9\x12\x1e\x89\xc6\xef\xc0\xc7\x0d\x5d\x48\x27\x23\x90\x31\xde\xdf\xf8\xf4\xc5\x37\x9f\xd6\x4e\x45\xc0\xe5\x00\xfa\xee\x1c\x8a\x1b\x5f\x1c\x74\x52\x71\x3e\x21\x63\xa6\x22\xf8\x28\x44\x60\xc8\xf5\x46\x6d\xe9\x27\x8f\xdc\x5e\xd1\xbf\x01\x00\x00\xff\xff\x61\x62\x94\x60\xaf\x07\x00\x00") - -func testImagesAgnhostDnsCommonGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostDnsCommonGo, - "test/images/agnhost/dns/common.go", - ) -} - -func testImagesAgnhostDnsCommonGo() (*asset, error) { - bytes, err := testImagesAgnhostDnsCommonGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/dns/common.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostDnsDnsGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x94\x41\x6f\xdb\xb8\x13\xc5\xcf\xe2\xa7\x98\xea\x64\xf7\xef\x4a\x69\x8a\x1c\xfe\x5e\xf4\xe0\xb5\x53\xc4\x68\x60\x17\x91\xb3\x45\xd1\x2d\x82\x31\x35\x92\x06\xa6\x49\x85\x1c\xc5\x36\x8a\x7c\xf7\x05\x2d\xa7\x9b\xb4\xc0\xde\x16\xd8\xa3\x38\x8f\x8f\x33\xbf\x37\x50\x9e\xc3\xff\xd6\x1d\x9b\x12\x5e\xed\xd8\x96\x6e\x17\x94\xca\x5f\xab\xa9\x6b\x0f\x9e\xeb\x46\xe0\xfc\xec\xed\xff\x61\xd5\x10\x7c\xec\xd6\xe4\x2d\x09\x05\x98\x74\xd2\x38\x1f\x32\xa5\xae\x59\x93\x0d\x54\x42\x67\x4b\xf2\x20\x0d\xc1\xa4\x45\xdd\x10\x9c\x2a\x23\xf8\x83\x7c\x60\x67\xe1\x3c\x3b\x83\x41\x14\xa4\xa7\x52\x3a\xfc\x4d\x1d\x5c\x07\x5b\x3c\x80\x75\x02\x5d\x20\x90\x86\x03\x54\x6c\x08\x68\xaf\xa9\x15\x60\x0b\xda\x6d\x5b\xc3\x68\x35\xc1\x8e\xa5\x39\x3e\x72\xb2\xc8\xd4\x97\x93\x81\x5b\x0b\xb2\x05\x04\xed\xda\x03\xb8\xea\xb9\x0a\x50\x94\x02\x00\x68\x44\xda\x71\x9e\xef\x76\xbb\x0c\x8f\x5d\x66\xce\xd7\xb9\xe9\x55\x21\xbf\x9e\x4f\x2f\x17\xc5\xe5\x9b\xf3\xec\x4c\xa9\x5b\x6b\x28\x04\xf0\x74\xdf\xb1\xa7\x12\xd6\x07\xc0\xb6\x35\xac\x71\x6d\x08\x0c\xee\xc0\x79\xc0\xda\x13\x95\x20\x2e\xf6\xb9\xf3\x2c\x6c\xeb\x11\x04\x57\xc9\x0e\x3d\xa9\x92\x83\x78\x5e\x77\xf2\x02\xd0\x53\x57\x1c\xe0\xb9\xc0\x59\x40\x0b\xe9\xa4\x80\x79\x91\xc2\xef\x93\x62\x5e\x8c\xd4\xe7\xf9\xea\x6a\x79\xbb\x82\xcf\x93\x9b\x9b\xc9\x62\x35\xbf\x2c\x60\x79\x03\xd3\xe5\x62\x36\x5f\xcd\x97\x8b\x02\x96\x1f\x60\xb2\xf8\x02\x1f\xe7\x8b\xd9\x08\x88\xa5\x21\x0f\xb4\x6f\x7d\xec\xdd\x79\xe0\x88\x8e\xca\x4c\x15\x44\x2f\x1e\xaf\x5c\xdf\x4c\x68\x49\x73\xc5\x1a\x0c\xda\xba\xc3\x9a\xa0\x76\x0f\xe4\x2d\xdb\x1a\x5a\xf2\x5b\x0e\x31\xbc\x00\x68\x4b\x65\x78\xcb\x82\x72\xfc\xfe\x65\x9c\x4c\xbd\xce\x95\x6a\x51\x6f\xa2\x49\x69\x83\x52\xbc\x6d\x9d\x17\x18\xa8\x24\x8d\x63\xda\x3a\xa4\x6a\xa8\x94\x76\x36\x08\x90\xe8\x2b\x17\x24\x7c\x88\x61\xbf\x87\x34\x27\xd1\x79\x13\x4f\x52\xa5\xf2\x1c\x26\x70\x3c\xf1\x14\x9c\x79\xc8\xb4\xb3\x55\xbf\x17\x5b\xb4\x58\xf7\x79\x6c\xba\x35\x19\x12\x30\xce\x6d\x02\x18\xde\xf4\xfb\x33\x8e\xd7\x2d\x6e\x29\x90\x7f\x20\x0f\xb3\x45\x71\x37\xbd\xbe\x2d\x56\x97\x37\x77\xf3\x4f\xb1\x18\x08\xbd\x6e\x40\x28\xc8\x9b\xd2\x86\x2c\x3c\xe8\x4c\x9b\x2e\x08\xf9\xcc\x38\x8d\x06\x7e\x3d\x79\xf9\x75\x7f\xf1\x0e\xb1\x41\xde\xdc\x23\x35\x1a\xf9\xdd\xc1\x54\xf7\xa5\xe8\x8b\x75\xb6\xde\x67\x6c\x85\xbc\x45\x93\x69\xe3\xba\x12\xdb\x36\xb3\x24\xf1\x61\xd7\xf6\xf4\x6c\xe9\x24\x8c\x2f\x54\xd5\x59\x0d\x35\xc9\x6c\x51\x14\x5d\x55\xf1\xfe\x9a\x83\x0c\x86\xf0\xf5\x5b\x0f\x0c\xbe\xab\x24\x4e\x3d\x43\x41\x18\xbf\x07\x4f\x58\x46\x60\x83\xf4\x67\x38\xe9\x50\x25\x86\x2d\x85\x28\x3b\xd1\xce\x8a\xd6\xb0\x0c\x9e\x0c\x46\x90\xfe\x69\xa3\x2e\x66\x7f\x37\x82\x28\x3f\x9a\xa2\xad\x09\xfa\xcb\xdf\x55\x92\x70\xf5\xc3\xe0\x0a\xc3\x27\x4f\x15\xef\x07\xb1\x3c\x82\xb4\x27\x97\x0e\x8f\xc2\x24\x4e\xb4\x65\xe9\x17\x49\xd0\xc7\xf5\xff\xa1\xc9\xa2\xc2\x93\x74\xde\xfe\xd4\xd0\xc9\x0b\xd2\xe1\xd7\xb7\xe3\x6f\x2a\x49\x1e\x55\xf2\xa8\x54\xd2\xa2\x65\x3d\x48\xa7\xae\x33\xe5\xf1\x8f\x50\xb1\x2d\x63\x7c\x4f\x81\x19\x0e\xf2\x2a\x1d\xaa\x47\xf5\x82\xdc\x31\xe6\xff\x3a\xb9\xbf\x17\xf2\x9f\xe9\x3d\xd3\xfd\xab\x04\xff\x0a\x00\x00\xff\xff\x17\xe8\x51\x08\xf9\x05\x00\x00") - -func testImagesAgnhostDnsDnsGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostDnsDnsGo, - "test/images/agnhost/dns/dns.go", - ) -} - -func testImagesAgnhostDnsDnsGo() (*asset, error) { - bytes, err := testImagesAgnhostDnsDnsGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/dns/dns.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostDnsDns_windowsGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x53\xd1\x6e\xdb\x36\x14\x7d\x36\xbf\xe2\x54\x0f\x83\x55\x38\x54\x96\x3d\x2d\x43\x06\xb8\x76\xba\x1a\x0d\x6c\x20\x72\x17\x14\x6d\x1f\x68\xea\x4a\x22\x26\x91\x1a\x79\x19\xc7\x18\xfa\xef\x03\x25\x0f\x4b\xd6\xd7\xf5\x8d\xe4\x3d\xf7\x9c\x7b\x8e\xae\x8a\xd7\x62\xe5\x86\x93\x37\x4d\xcb\xb8\xba\xfc\xf1\x67\xec\x5b\xc2\xfb\x78\x20\x6f\x89\x29\x60\x19\xb9\x75\x3e\x48\x21\xee\x8c\x26\x1b\xa8\x42\xb4\x15\x79\x70\x4b\x58\x0e\x4a\xb7\x84\x73\x65\x81\xdf\xc9\x07\xe3\x2c\xae\xe4\x25\xe6\x09\x90\x9d\x4b\x59\xfe\x8b\x38\xb9\x88\x5e\x9d\x60\x1d\x23\x06\x02\xb7\x26\xa0\x36\x1d\x81\x9e\x34\x0d\x0c\x63\xa1\x5d\x3f\x74\x46\x59\x4d\x38\x1a\x6e\x47\x91\x33\x85\x14\x1f\xcf\x04\xee\xc0\xca\x58\x28\x68\x37\x9c\xe0\xea\xe7\x28\x28\x16\x02\x00\x5a\xe6\xe1\xba\x28\x8e\xc7\xa3\x54\xe3\x94\xd2\xf9\xa6\xe8\x26\x54\x28\xee\x36\xab\xdb\x6d\x79\x7b\x71\x25\x2f\x85\xf8\x60\x3b\x0a\x01\x9e\xfe\x8c\xc6\x53\x85\xc3\x09\x6a\x18\x3a\xa3\xd5\xa1\x23\x74\xea\x08\xe7\xa1\x1a\x4f\x54\x81\x5d\x9a\xf3\xe8\x0d\x1b\xdb\x2c\x10\x5c\xcd\x47\xe5\x49\x54\x26\xb0\x37\x87\xc8\x2f\x02\xfa\x67\x2a\x13\xf0\x1c\xe0\x2c\x94\x45\xb6\x2c\xb1\x29\x33\xbc\x59\x96\x9b\x72\x21\x1e\x36\xfb\x77\xbb\x0f\x7b\x3c\x2c\xef\xef\x97\xdb\xfd\xe6\xb6\xc4\xee\x1e\xab\xdd\x76\xbd\xd9\x6f\x76\xdb\x12\xbb\xb7\x58\x6e\x3f\xe2\xfd\x66\xbb\x5e\x80\x0c\xb7\xe4\x41\x4f\x83\x4f\xb3\x3b\x0f\x93\xa2\xa3\x4a\x8a\x92\xe8\x85\x78\xed\xa6\x61\xc2\x40\xda\xd4\x46\xa3\x53\xb6\x89\xaa\x21\x34\xee\x91\xbc\x35\xb6\xc1\x40\xbe\x37\x21\x7d\xbc\x00\x65\x2b\xd1\x99\xde\xb0\xe2\xf1\xfe\x8d\x1d\x29\x5e\x17\x42\x0c\x4a\xff\x91\x48\x2a\x1b\x84\x30\xfd\xe0\x3c\x63\x2e\x66\xd9\xe1\xc4\x14\x32\x31\xcb\x5c\x28\xe8\x89\x74\x3a\x26\xeb\xb6\x09\x99\xc8\x85\xd0\xce\x06\x06\xb1\x7e\xe7\x02\x87\xb7\x69\x01\x6e\x90\xad\xae\x8b\x07\x63\x2b\x77\x0c\x45\x79\x0a\x4c\xfd\x4f\x57\x45\xe5\xcd\x23\xf9\x50\x10\xeb\xa2\x4d\xe0\x4c\x88\x3a\x5a\x8d\x86\x78\xbd\x2d\xcb\x58\xd7\xe6\xe9\xce\x04\x9e\xe7\xf8\xf4\x65\xd2\xc0\x5f\x62\xe6\x22\x0f\x91\x71\x7d\x03\x1f\xed\xca\xf5\xbd\xb2\xd5\x3c\x1b\xdc\x91\x7c\x68\xa9\xeb\xb2\x05\xb2\x8b\xf3\x7b\x3a\xcf\x7f\x23\xbe\x58\xdb\xb0\xea\x0c\x59\xce\x3f\x5d\x7e\x91\x13\x77\x49\xca\xeb\x36\x29\x64\xb9\x98\x99\x1a\x1d\xd9\xf9\xc4\x9e\xe3\x57\x5c\x26\xb1\x99\x27\x8e\xde\xe2\x6c\x51\x96\x43\x67\xf8\x0c\x5a\x20\xfb\xec\x3f\xdb\xd4\xfc\x55\x88\xd9\xa0\xac\xd1\xf3\x6c\xe5\x62\x57\x8d\xbf\x41\x6d\x6c\x85\xf5\xb6\x44\x18\x85\xd0\x99\xc0\xaf\xb2\x5c\x7c\x7d\xe9\x93\xfc\x23\xf9\xff\xdd\xe7\x44\xbb\xac\xaa\xb4\x40\xb9\x7c\x71\xa5\xf0\x9d\x0d\x4f\x6a\xdf\x18\x7e\xe6\xc3\xaa\x9e\xce\x1a\x0b\x28\xdf\x40\x4a\x39\x5d\x73\xfc\x1b\xc1\xa3\xf2\x70\x91\x31\x2e\x9d\x7c\x13\xeb\x9a\xbc\x98\xe9\xbe\x4a\xa9\xa4\xed\x93\xcf\xf9\x46\x22\x29\x65\x3e\x42\x64\xc9\x55\xea\xbd\xc1\x0f\x2e\xb2\x10\x33\xf2\x3e\xb5\xa5\xd2\x7d\xb4\xf3\x29\x81\xf4\xf8\xea\x06\xd6\x74\xa3\xf9\xc9\x12\x79\x7f\xb6\xf8\x9f\x30\xf6\xde\xf4\xe5\xa0\x34\xa5\x40\x64\x39\xbe\xce\xf3\x64\xf0\xef\x00\x00\x00\xff\xff\x8e\xa4\x0f\xbb\x6a\x05\x00\x00") - -func testImagesAgnhostDnsDns_windowsGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostDnsDns_windowsGo, - "test/images/agnhost/dns/dns_windows.go", - ) -} - -func testImagesAgnhostDnsDns_windowsGo() (*asset, error) { - bytes, err := testImagesAgnhostDnsDns_windowsGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/dns/dns_windows.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostEntrypointTesterEpGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x53\xc1\x6e\xe3\x36\x10\x3d\x9b\x5f\xf1\x20\xa0\x8d\x1d\x68\xa5\x6c\x8a\x5e\x52\xf4\xe0\x7a\x5d\xd4\xd8\xc0\x2e\x22\xa7\x8b\x45\xdb\x03\x25\x8d\x24\xa2\x14\xa9\x92\xc3\xc8\xc6\x62\xff\xbd\xa0\x6c\xa7\x09\xd2\x43\x8f\x04\xdf\xbc\x79\xf3\xe6\x4d\x7e\x2d\x56\x76\x38\x3a\xd5\x76\x8c\xdb\x9b\xf7\xdf\x63\xdf\x11\x3e\x86\x92\x9c\x21\x26\x8f\x65\xe0\xce\x3a\x9f\x09\x71\xaf\x2a\x32\x9e\x6a\x04\x53\x93\x03\x77\x84\xe5\x20\xab\x8e\x70\xfe\x49\xf1\x1b\x39\xaf\xac\xc1\x6d\x76\x83\x79\x04\x24\xe7\xaf\x64\xf1\x83\x38\xda\x80\x5e\x1e\x61\x2c\x23\x78\x02\x77\xca\xa3\x51\x9a\x40\x87\x8a\x06\x86\x32\xa8\x6c\x3f\x68\x25\x4d\x45\x18\x15\x77\x53\x93\x33\x45\x26\x3e\x9f\x09\x6c\xc9\x52\x19\x48\x54\x76\x38\xc2\x36\x2f\x51\x90\x2c\x04\x00\x74\xcc\xc3\x5d\x9e\x8f\xe3\x98\xc9\x49\x65\x66\x5d\x9b\xeb\x13\xca\xe7\xf7\x9b\xd5\x7a\x5b\xac\xdf\xdd\x66\x37\x42\x3c\x1a\x4d\xde\xc3\xd1\xdf\x41\x39\xaa\x51\x1e\x21\x87\x41\xab\x4a\x96\x9a\xa0\xe5\x08\xeb\x20\x5b\x47\x54\x83\x6d\xd4\x39\x3a\xc5\xca\xb4\x29\xbc\x6d\x78\x94\x8e\x44\xad\x3c\x3b\x55\x06\x7e\x65\xd0\x45\x95\xf2\x78\x09\xb0\x06\xd2\x20\x59\x16\xd8\x14\x09\x7e\x5a\x16\x9b\x22\x15\x9f\x36\xfb\x5f\x76\x8f\x7b\x7c\x5a\x3e\x3c\x2c\xb7\xfb\xcd\xba\xc0\xee\x01\xab\xdd\xf6\xc3\x66\xbf\xd9\x6d\x0b\xec\x7e\xc6\x72\xfb\x19\x1f\x37\xdb\x0f\x29\x48\x71\x47\x0e\x74\x18\x5c\xd4\x6e\x1d\x54\xb4\x8e\xea\x4c\x14\x44\xaf\x9a\x37\xf6\x24\xc6\x0f\x54\xa9\x46\x55\xd0\xd2\xb4\x41\xb6\x84\xd6\x3e\x91\x33\xca\xb4\x18\xc8\xf5\xca\xc7\xe5\x79\x48\x53\x0b\xad\x7a\xc5\x92\xa7\xf7\x9b\x71\x32\x71\x9d\x0b\x31\xc8\xea\xaf\x48\x42\x86\xdd\x71\xb0\xca\xb0\x10\xaa\x1f\xac\x63\xcc\xc5\x2c\x69\x7a\x4e\xc4\x2c\xb1\x3e\x11\x62\x96\xb4\x8a\xbb\x50\x66\x95\xed\x73\x3f\x34\xef\xbf\xcb\x2b\x5b\x3a\x99\x88\x85\x10\x79\x8e\x55\x5f\xaf\x9f\x59\xf6\xe4\x99\x5c\xb4\x2c\xf8\xf3\x32\x5a\xd3\x59\xcf\x58\xc5\x9a\x4c\x3c\x49\xf7\x9f\x15\x3f\xe2\xdb\x89\x35\x5b\xd9\xbe\x97\xa6\xfe\x22\x66\x8f\x9e\xee\x00\x24\xff\x6a\x7c\xc7\x13\x38\x49\xc5\xac\xe8\xac\xe3\x3b\x24\xbf\x3a\x65\xd8\x4f\x03\x4a\xd7\x7a\x28\xbe\xf2\x18\xa4\x8f\xdd\xa5\xa9\x41\x07\xc5\x3e\x16\xdc\x5b\xd3\xde\xe1\x7f\x16\x64\xb1\xe2\x21\x98\xd8\xbf\x97\xca\xa4\xe2\xeb\x34\xeb\x3e\xc6\x7e\x70\xb6\x75\xb2\xc7\x70\x62\x92\x5a\x4f\x6c\x74\xa0\x2a\x70\x4c\xdd\x95\x8f\xd4\xa1\xa7\xe9\xfb\x99\x53\x34\xc1\x54\x13\xdd\xbc\xea\x6b\x5c\xbf\x9a\x37\x3d\xa9\xf9\xfd\xcf\x18\x34\xd3\x2e\xf0\x45\xcc\xf2\x1c\x85\xed\xe9\x72\x25\x6f\x7c\x80\x23\x2d\x63\x24\xe3\xd3\x23\xe6\xc1\xa9\x9a\xfc\xc5\xf3\x2b\x8f\x9a\x1a\x19\x34\xbf\xdc\x73\xa4\x9d\xee\xf3\x8c\x7a\x77\x9b\x4e\x22\x4f\x27\x1d\x4c\x15\x83\x73\x1a\xc1\x63\x54\x5a\xc3\x1a\x7d\x44\x65\xcd\x74\xb9\x53\x18\x43\x59\x9d\x64\x5f\xf9\x89\x6f\xc2\xce\xb3\xfc\xb2\xec\xb7\x52\xb9\x23\x7f\x72\x7c\x91\xa2\x0c\x8c\x91\x60\xce\x37\x39\x19\x89\x6b\xa9\xf5\x75\xc4\x3d\x33\xa6\x18\x3b\x55\x75\x31\x4d\x63\x77\x84\xf5\xd9\x32\xf6\xf1\x9d\x0d\xba\x46\x49\xa7\x42\xaa\xa1\x8c\x67\x92\x75\x26\x66\x4d\xcf\xd9\xb4\xe1\x66\x9e\x7c\xf3\xf4\x87\x49\xd2\x4b\xd9\x42\xcc\xac\xcf\xd6\x07\xc5\xf3\x9b\x85\xf8\x2a\xfe\x09\x00\x00\xff\xff\x08\xed\x42\xe3\x3d\x05\x00\x00") - -func testImagesAgnhostEntrypointTesterEpGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostEntrypointTesterEpGo, - "test/images/agnhost/entrypoint-tester/ep.go", - ) -} - -func testImagesAgnhostEntrypointTesterEpGo() (*asset, error) { - bytes, err := testImagesAgnhostEntrypointTesterEpGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/entrypoint-tester/ep.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostFakegitserverGitserverGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x93\x51\x6b\xe3\xc6\x17\xc5\x9f\x3d\x9f\xe2\x30\x0f\x7f\xec\xa0\x48\xde\xfc\xa1\x14\x97\x3e\xb8\xde\xa4\x6b\x36\x75\x20\x72\x1a\x96\x52\xf0\x58\xba\x96\x2e\x19\xcd\x68\x67\x46\x51\xcc\xb2\xdf\xbd\x8c\xec\xec\xda\xa4\xa5\x7d\xb3\x74\xaf\xce\x3d\xf7\x77\x8f\xb3\x0b\xb1\xb0\xed\xde\x71\x55\x07\x5c\x4d\xdf\xfd\x80\x75\x4d\xf8\xd8\x6d\xc9\x19\x0a\xe4\x31\xef\x42\x6d\x9d\x4f\x85\xb8\xe5\x82\x8c\xa7\x12\x9d\x29\xc9\x21\xd4\x84\x79\xab\x8a\x9a\x70\xac\x24\xf8\x9d\x9c\x67\x6b\x70\x95\x4e\x31\x8e\x0d\xf2\x58\x92\x93\x9f\xc4\xde\x76\x68\xd4\x1e\xc6\x06\x74\x9e\x10\x6a\xf6\xd8\xb1\x26\xd0\x4b\x41\x6d\x00\x1b\x14\xb6\x69\x35\x2b\x53\x10\x7a\x0e\xf5\x30\xe4\x28\x91\x8a\x4f\x47\x01\xbb\x0d\x8a\x0d\x14\x0a\xdb\xee\x61\x77\xa7\x5d\x50\x41\x08\x00\xa8\x43\x68\x67\x59\xd6\xf7\x7d\xaa\x06\x97\xa9\x75\x55\xa6\x0f\x5d\x3e\xbb\x5d\x2e\xae\x57\xf9\xf5\xe5\x55\x3a\x15\xe2\xc1\x68\xf2\x1e\x8e\x3e\x77\xec\xa8\xc4\x76\x0f\xd5\xb6\x9a\x0b\xb5\xd5\x04\xad\x7a\x58\x07\x55\x39\xa2\x12\xc1\x46\x9f\xbd\xe3\xc0\xa6\x4a\xe0\xed\x2e\xf4\xca\x91\x28\xd9\x07\xc7\xdb\x2e\x9c\x01\x7a\x75\xc5\x1e\xa7\x0d\xd6\x40\x19\xc8\x79\x8e\x65\x2e\xf1\xcb\x3c\x5f\xe6\x89\x78\x5c\xae\x3f\xdc\x3d\xac\xf1\x38\xbf\xbf\x9f\xaf\xd6\xcb\xeb\x1c\x77\xf7\x58\xdc\xad\xde\x2f\xd7\xcb\xbb\x55\x8e\xbb\x1b\xcc\x57\x9f\xf0\x71\xb9\x7a\x9f\x80\x38\xd4\xe4\x40\x2f\xad\x8b\xde\xad\x03\x47\x74\x54\xa6\x22\x27\x3a\x1b\xbe\xb3\x07\x33\xbe\xa5\x82\x77\x5c\x40\x2b\x53\x75\xaa\x22\x54\xf6\x99\x9c\x61\x53\xa1\x25\xd7\xb0\x8f\xc7\xf3\x50\xa6\x14\x9a\x1b\x0e\x2a\x0c\xcf\x6f\xd6\x49\xc5\x45\x26\x44\xab\x8a\xa7\x28\xb2\x53\x4f\x54\x71\xf0\xe4\x9e\xc9\x09\xc1\x4d\x6b\x5d\xc0\x58\x8c\x24\x5b\x29\x46\xd2\x50\xc8\xe2\x35\xa4\x10\x23\x59\x71\xa8\xbb\x6d\x5a\xd8\x26\xf3\xed\xee\xdd\xff\xb3\xc2\x6e\x9d\x92\x62\x22\x44\x96\x61\xd1\x94\x37\xea\x89\x7e\xe5\x90\x0f\x6a\x91\x5b\xe7\x8f\x17\xa9\x4c\x6d\x7d\xc0\x22\x7e\x90\x8a\x67\xe5\xde\xb6\xff\x8c\xff\x0d\x7a\xe9\xc2\x36\x8d\x32\xe5\x17\x31\x7a\xf0\x34\x03\x20\xa3\xcb\xcb\x6f\x36\x65\x22\x46\x79\x6d\x5d\x98\x41\x46\x09\x0f\x85\x8a\x03\xbe\x57\x6f\xad\xa9\x66\xd8\x3c\xd6\x64\x50\xda\x88\x28\x7a\x47\xa1\xad\xa1\xd7\x70\x69\x5b\x28\x1d\x4d\xcd\x7e\x9c\x4e\xa7\x32\x41\x8c\x78\xcf\x5a\x1f\xdb\x94\x01\x35\x6d\xd8\x0f\xd2\x8e\x5a\x0b\xa3\x1a\x2a\x21\xbf\x7d\x28\x63\x14\x86\xa7\x43\xbc\x0b\x65\xa0\xb4\xb7\xc3\x1f\xe4\xdf\x06\xa2\xd9\x5f\x46\xd5\xcb\xa8\x2a\x63\x32\x1d\xc5\x9f\x08\xb5\x3a\xcc\x4b\x37\x89\x18\xcd\x5d\xe5\x67\x38\x70\xf9\x4d\xbd\x70\xd3\x35\xab\xf8\x6e\x3c\x9d\x24\x62\x74\xdf\x99\x19\xd0\x28\x36\x89\xf8\x2a\xc4\xae\x33\x05\x6a\xd2\xda\x8e\xfb\x61\x6a\x7a\x4f\xbe\xb5\xc6\xd3\xa3\xe3\x40\x2e\x81\xc3\xc5\xf1\xfd\xe7\x8e\x7c\x98\xe0\x8b\x18\xb1\x4d\x87\x72\x1e\x1c\x9b\x6a\xdc\x27\x90\x4b\xa8\x06\x6a\x08\xc7\x29\xd9\x89\x88\x53\xb2\x0c\x27\x60\x37\xdf\xf7\x3c\x5f\x70\xf3\xdf\x89\x0e\x07\x38\x81\x99\x65\x78\xc3\xf3\x1f\xe7\x9c\x81\xdc\xfc\x2d\xc8\x03\x98\x88\x69\x5c\x34\x25\x2e\xce\x62\x96\x40\xb9\xca\xe3\x8f\x3f\xfd\xb0\xff\x80\x64\x60\xf4\x41\x99\x52\xd3\x4d\x67\x8a\xb1\xcc\x64\x72\x00\x3b\x39\x16\x6f\xd9\x07\x32\x73\x53\x0e\xe1\x1d\xcb\xd7\x10\x19\xd6\x13\xf1\x55\xfc\x15\x00\x00\xff\xff\x26\x09\x87\x2c\x9a\x05\x00\x00") - -func testImagesAgnhostFakegitserverGitserverGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostFakegitserverGitserverGo, - "test/images/agnhost/fakegitserver/gitserver.go", - ) -} - -func testImagesAgnhostFakegitserverGitserverGo() (*asset, error) { - bytes, err := testImagesAgnhostFakegitserverGitserverGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/fakegitserver/gitserver.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostGuestbookGuestbookGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xdc\x5a\x7b\x6f\xdb\x46\x12\xff\x9b\xfc\x14\x53\x02\xb6\xa9\x80\xa6\xd2\x16\xbd\x6b\x75\x27\x14\x8e\x93\x34\x6e\x5d\xdb\x67\xc9\x0d\x8a\x20\x68\x57\xe4\x88\xda\x13\xb9\xcb\xdb\x5d\x5a\xd1\x19\xfe\xee\x87\xd9\xe5\x4b\xb2\xfc\x6a\xd1\x03\xda\x00\x89\xa4\xe5\xec\xbc\xe7\x37\x3b\xcb\x0c\x5f\xf8\xc7\xb2\x5c\x2b\x9e\x2d\x0c\x7c\xf1\xf2\xf3\x6f\x60\xba\x40\xf8\xa1\x9a\xa1\x12\x68\x50\xc3\x51\x65\x16\x52\xe9\xd8\xf7\x4f\x79\x82\x42\x63\x0a\x95\x48\x51\x81\x59\x20\x1c\x95\x2c\x59\x20\xd4\x4f\x22\xf8\x09\x95\xe6\x52\xc0\x17\xf1\x4b\x08\x89\x20\xa8\x1f\x05\x83\x7f\xf8\x6b\x59\x41\xc1\xd6\x20\xa4\x81\x4a\x23\x98\x05\xd7\x30\xe7\x39\x02\x7e\x4a\xb0\x34\xc0\x05\x24\xb2\x28\x73\xce\x44\x82\xb0\xe2\x66\x61\x85\xd4\x2c\x62\xff\xe7\x9a\x81\x9c\x19\xc6\x05\x30\x48\x64\xb9\x06\x39\xef\x53\x01\x33\xbe\x0f\x00\xb0\x30\xa6\x1c\x0d\x87\xab\xd5\x2a\x66\x56\xcb\x58\xaa\x6c\x98\x3b\x2a\x3d\x3c\x3d\x39\x7e\x73\x36\x79\x73\xf8\x45\xfc\xd2\xf7\xaf\x44\x8e\x5a\x83\xc2\xff\x54\x5c\x61\x0a\xb3\x35\xb0\xb2\xcc\x79\xc2\x66\x39\x42\xce\x56\x20\x15\xb0\x4c\x21\xa6\x60\x24\xe9\xb9\x52\xdc\x70\x91\x45\xa0\xe5\xdc\xac\x98\x42\x3f\xe5\xda\x28\x3e\xab\xcc\x86\x83\x1a\xad\xb8\x86\x3e\x81\x14\xc0\x04\x04\x47\x13\x38\x99\x04\xf0\xea\x68\x72\x32\x89\xfc\xf7\x27\xd3\x77\xe7\x57\x53\x78\x7f\x74\x79\x79\x74\x36\x3d\x79\x33\x81\xf3\x4b\x38\x3e\x3f\x7b\x7d\x32\x3d\x39\x3f\x9b\xc0\xf9\x5b\x38\x3a\xfb\x19\x7e\x38\x39\x7b\x1d\x01\x72\xb3\x40\x05\xf8\xa9\x54\xa4\xbb\x54\xc0\xc9\x75\x98\xc6\xfe\x04\x71\x43\xf8\x5c\x3a\x65\x74\x89\x09\x9f\xf3\x04\x72\x26\xb2\x8a\x65\x08\x99\xbc\x46\x25\xb8\xc8\xa0\x44\x55\x70\x4d\xc1\xd3\xc0\x44\xea\xe7\xbc\xe0\x86\x19\xfb\xfb\x8e\x39\xb1\xff\x62\xe8\xfb\x25\x4b\x96\x96\x49\x85\xda\xcc\xa4\x5c\xfa\x3e\x2f\x4a\xa9\x0c\x84\xbe\x17\xa0\x48\x64\xca\x45\x36\xfc\xb7\x96\x22\xf0\xbd\x60\x5e\x18\xfa\xe0\x72\xc8\x65\x65\x78\x4e\x3f\x72\x99\xd1\x87\x40\x53\x7f\x0c\x29\x6c\xcd\xf7\x4a\x59\x22\x72\x9b\xc8\x34\x7d\x35\xbc\xc0\xc0\xf7\xbd\x20\xe3\x66\x51\xcd\xe2\x44\x16\x43\x5d\xce\x3f\xff\x72\x98\xc8\x99\x62\xf4\x88\x58\x0b\x34\x10\x2c\xbf\xd6\x31\x97\x43\x56\xf2\x82\x25\x0b\x2e\x50\xad\x87\xe5\x32\x1b\x12\xc1\xd0\x4a\x1c\xf8\xfe\x70\x08\xc7\x45\xfa\x5d\x63\x01\xc5\xa9\xd2\x75\x06\x64\x62\x21\xb5\x81\x63\xe2\x1c\xfb\xd7\x4c\x6d\x92\x8e\x61\xdf\x0a\x8d\x8f\x65\x51\x30\x91\xde\xf8\xde\x95\xc6\x11\x00\x04\xad\x47\x82\xc8\xf7\x26\x0b\xa9\xcc\x08\x82\x63\x85\x8c\x0a\x8a\xc1\xbb\xe9\xf4\x02\x34\xaa\x6b\x54\x2e\xcb\xaf\x99\xe2\xb2\xd2\x80\x22\x2d\x25\x17\x86\x52\x91\xc2\x8a\x82\x92\x0c\x58\xe7\x62\xca\x4b\x62\x7a\x2a\x45\x36\x82\x5f\x27\x86\x29\xb3\xcd\x52\x0a\x1b\xab\x8c\x5f\xa3\x80\xc3\x43\xf2\xe8\xa1\x0b\x4b\x8a\x73\x56\xe5\x66\x04\x5f\xbf\x1c\x44\x96\x9c\xd8\x3f\x4f\x7a\x6c\x01\xa2\xa3\x65\x22\x25\x71\x5c\x41\x59\xa9\x52\x52\x05\x2a\x1c\xf9\xfe\x21\x0c\x15\x66\x5c\x1b\x54\x23\x38\xea\xf1\x50\x68\x2b\x0b\x56\x3c\xcf\x41\x57\x33\x9d\x28\x3e\x43\xaa\x2b\x06\xa5\xe2\x05\x53\xeb\xc8\x56\x99\xd1\xad\x0d\xf5\x1e\x39\x6f\x05\x3b\x35\x6a\x7a\xc7\xcb\x2c\x50\x40\x59\xe9\x05\x30\xb1\x86\xaa\x4c\xad\xbb\xb9\x01\x85\x09\xf2\x6b\xd4\x0d\xd7\x46\x2f\x4c\x1b\x65\x34\x98\x85\x92\x55\xe6\x00\xe7\xf0\x70\xc6\x92\x25\x8a\xd4\xba\x2d\x26\x53\x32\x34\x23\xb8\x44\x53\x29\xa1\xe1\xe0\x26\x48\x99\x61\xc1\x08\xae\x59\x5e\xe1\xed\x41\x04\xab\x05\x2a\x57\x74\x76\x89\xf2\xc8\x56\x9c\x91\x24\xc5\xad\x35\x65\xe8\x8c\x5a\xe2\x1a\xf8\x1c\x84\x14\x87\x58\x94\x66\x1d\x41\xfd\x98\xdc\xae\xea\xad\x56\xb6\x26\xd9\xef\xad\xb7\xd0\x6c\x72\x38\x74\x9c\x4b\xc6\x15\xa1\x12\x19\x27\x57\xc2\xed\xb5\x91\x29\x95\x2c\x59\xc6\x0c\x92\x1f\x5a\xf3\x9d\xcd\x11\xc9\x67\x62\x1d\x3b\xe6\xca\x5a\xd7\x33\x2e\xb8\xb2\x2e\x4c\x83\xdb\x03\xda\x4a\x82\x13\x96\xe7\x2e\xc3\x74\x95\x24\xa8\xb5\x73\x4e\x13\xdb\x5a\xcd\x52\xc9\x4f\x6b\x4b\x4f\x88\x8a\xda\x4a\xae\xcb\xe9\xb0\x09\x19\x9f\xf7\x4c\x49\x8a\x94\x5c\x76\xa0\xd1\x1c\x44\x0e\x6c\x1d\x75\x93\x2c\x3b\xa9\x33\x34\x07\xf1\xaf\x91\xef\x1d\xa9\x4c\x8f\xc0\x55\xe3\x8f\xec\x13\x2f\xaa\xe2\x8c\xd6\xc2\x97\x83\xc8\xf7\x2e\x2b\x31\x02\x28\x18\x17\x91\x7f\xeb\xdb\x42\x0e\x7d\x8f\xca\xe2\x82\xaa\x02\x00\x1c\xc2\xf8\x5e\x1d\x76\xbb\xdc\xac\xd5\x1a\x9c\xcf\x7b\x74\x6d\xd6\x00\xc0\x87\x8f\xcd\xaa\xf3\xba\xfb\x53\xb0\xf2\x83\x5b\xff\xc8\x85\x41\x35\x67\x09\xde\xdc\x12\xe2\x24\x52\x68\x8b\x90\x84\x65\xb2\x32\x30\x06\xfa\x16\xbf\xae\x94\x85\xdb\xf0\xf3\xaf\x06\xf0\xc2\xad\x4d\x30\x91\x22\xf5\x3d\x9d\x23\x96\x00\x77\x49\xb7\x29\x07\xbe\x3f\xaf\x44\x02\x5c\x70\x13\x0e\xe0\xc6\xf7\xfa\x90\x15\xbf\xcd\x59\xa6\xc3\x41\x3c\xb1\x9a\xfd\xc4\x54\xb8\xdf\xb8\x21\x82\xa0\x05\x8a\x20\x82\xe0\xeb\x97\xf4\xaf\x85\x95\x53\x2a\x16\x01\x44\x15\x0c\x1e\xe7\xd8\x73\x62\x04\x41\xbf\x92\x88\xe3\xdf\xbe\xfc\xfb\x37\xf4\xf9\xca\xad\x1f\x68\xf8\x2d\x32\xda\xa0\x44\x10\xb4\xd8\x40\x6c\xe9\x2f\x01\x03\x25\xcf\x81\x06\xc1\x0a\x8b\x2c\x4d\xc5\x83\x91\xc4\xde\x45\x6a\x0c\x05\x5b\x62\xb8\x3b\x54\x03\x4a\x15\xeb\x4b\x4a\x9c\x90\x52\xee\xc5\x06\xdc\x47\xc0\x54\xa6\xdb\xf0\x5b\x67\x67\x9d\xa4\x33\x99\x62\xd8\x53\xb3\xe7\x15\xab\x00\x53\x86\x0c\x9f\x58\xc8\x0e\x9b\x28\x74\x52\xb7\xf8\xb8\x1f\x53\x19\x41\xd9\x25\xa7\x95\xc9\xe7\xd0\x3d\x86\xf1\x18\x82\x80\x96\x3d\x57\xce\xbe\x77\xeb\xfb\x1e\x79\xc3\x26\xf5\x68\x0c\x02\x4d\xfc\xbd\xe4\xe2\x5d\xbd\xb6\xc1\x7c\x43\xcb\x5a\x4d\xda\x64\x73\xec\x4c\xae\xc2\x81\xef\x59\x18\xb3\x39\xc7\x45\x82\xa1\xa5\x19\xc0\x3f\xa1\xc9\x67\x12\x4e\x02\x23\x40\xa5\x68\x73\x86\xe6\xe4\x22\x6c\x74\x18\xf8\x1e\xe9\x4c\xcf\x3e\x1b\x83\xe0\xb9\xdd\xe0\xe5\x32\x8b\x2f\x14\x17\x66\x1e\x06\x95\xb0\xe7\x2e\x23\x69\x2b\x9c\x5c\xc0\x9e\x1e\xc1\xde\x75\x4c\x00\xac\xd6\xd4\x93\xb8\x80\x3d\x1d\x07\x11\x34\x5c\xad\xb0\x08\x6c\xa1\x90\x04\xcf\x69\x48\x3f\xc3\x6e\x31\x91\xd4\xd2\x2a\xf4\x3d\xeb\x16\xaf\x81\xa7\xd1\x18\xe6\x85\x89\x27\x65\xad\x40\xe3\x92\x6f\x89\xfd\x78\x4f\xd7\x82\xea\x0c\x0c\x07\xc4\xac\xaf\xf0\x65\x4d\x4f\xaa\x19\xd9\x74\xa5\x11\xec\xe9\x61\xbb\xd9\x69\x59\x4b\x24\x06\xbf\x38\x07\xb9\x88\x5c\xa2\x96\xf9\x35\x4e\x8f\x2f\x8e\xd2\x54\x85\x81\x49\xca\xde\xbe\x67\xf9\x4c\x39\x56\xb0\xa7\xa3\x8d\xce\x59\x32\xc5\x0a\x6a\x0a\x43\xa9\xb6\x5a\x5c\xf3\x4c\x21\x70\x71\xcd\x72\x9e\xfe\x51\xfe\xd6\xa5\xb4\x83\x42\x9d\x1a\x29\x67\x39\x95\x41\x58\xfb\xe5\x59\x26\xd3\x09\xb3\x12\xae\x8f\xa3\x52\x52\xc1\x6a\x41\xd3\x84\xba\x2f\x1a\x3b\x2d\xfa\x3d\x76\x7c\x3f\x39\x3f\x23\x33\x1e\xc4\x11\xcf\x73\x61\xa6\x73\x70\x7c\x25\x0a\xa6\xf4\x82\xe5\xe1\x87\x8f\xb3\xb5\xa1\xd2\x76\xac\x06\x11\xec\xf7\xd9\x3e\x60\xff\x5b\x66\x58\x3e\x0f\x83\x37\x3d\x9b\xab\x86\xaf\x3d\xcb\x3b\x8b\x0f\xa8\xd5\x3b\x8e\x64\xbc\xb3\x75\xd0\xd8\x40\x6d\x50\x2e\x61\x26\x65\xee\x7b\x0e\x11\x23\xb0\xc7\xda\xbe\x1a\x1f\xdc\x61\xe0\x63\xfc\x80\x79\x7c\x0e\x9f\xc9\xe5\x5d\xfd\x8e\x65\x95\xa7\x76\xda\x4b\x98\x36\x1b\x6c\xa9\x34\x82\x68\xa7\x24\xa7\xe0\xee\xfa\x72\xe3\x97\x90\x29\xb6\x0c\x1a\xec\x1a\x6c\x41\x5e\xab\x48\x18\x4c\x79\x41\x23\x57\x65\x1e\xcc\x8f\x38\xe8\xc0\x77\x1b\x9e\xb7\x31\x97\xe0\x3a\x7e\xc7\x44\x9a\xe3\xdb\x4a\x24\x61\xd0\x1e\x75\x7b\x3a\xb9\xe7\xe4\xf0\xbb\xe4\x19\x52\x33\xcc\xd0\x3c\x44\xa4\x2d\x91\x7e\x98\xa8\x37\x6a\x74\x67\xec\x6e\x43\xe7\x06\xbb\xd5\xb5\xd9\x23\x91\x5a\xc3\xc2\x0d\xd0\x1b\x59\x8f\x92\xa9\x83\x88\x12\x6e\x60\xfd\x31\x1c\x6e\x1b\xe4\x0e\xdb\x5d\x47\xed\x8e\x85\x5c\xb8\x99\xde\xcd\x21\x07\x1a\x72\xae\x0d\xcd\xe7\xcd\x79\x29\x26\x76\x64\x57\x83\x83\xda\x31\x9b\x61\x77\x50\x4d\x1d\x86\x6d\x1d\x51\x37\x9b\x62\xad\x49\xb8\xb2\x53\x3e\x81\xa7\x4d\xa3\xf7\x8a\x1b\x54\x11\x28\x78\x51\xaf\x3b\xb0\xa5\x90\xd9\x83\xb2\x6e\x81\xa7\x52\x79\x7c\xc1\x94\xc6\x50\xc5\x57\x97\xa7\x0d\xe9\xd5\xe5\x89\x45\xf7\xbb\x95\x67\x19\xda\x8a\x0b\x57\xd1\x66\xb7\x68\x4b\x2b\x72\xea\x4c\x0c\x33\x95\x7e\xc5\xd2\xcb\x0e\xec\xfb\xa9\xc9\x4b\xd2\xc0\x29\x14\xff\xab\x42\xb5\x0e\x07\xf1\x77\x68\xc2\x80\xc0\x2f\xa8\xa3\xd6\xe4\xfe\x77\x6f\xa6\xdd\x24\xd5\x6b\x48\xbc\xa4\x0e\x3d\x1c\x82\x46\x91\x02\x73\xf3\x4f\x7d\xf2\xaf\x4f\xeb\xcd\xe1\x99\x69\x58\x61\x9e\xc7\xbe\x27\x2b\x53\x56\xe6\x71\xc8\x72\x74\x4d\x49\xc2\xd8\xf1\xf5\x3d\x82\xac\xce\x89\x16\xd1\x7e\xac\xf1\xcc\x6d\x79\xae\xef\x1a\x04\x80\xa4\x05\x8b\x19\x52\x02\x71\x96\xf3\xff\x62\x1a\xc3\x6e\xef\xbe\xf9\x54\x62\xe2\xee\x27\xde\x32\x9e\x63\xba\xe9\x64\x8f\x84\xbc\xb5\x42\x48\xa4\xb3\x31\xb4\xda\x53\x78\xdb\xf3\xfb\x98\x26\x5a\x14\x69\xd8\x4b\xb8\x72\x2b\x00\x74\x02\x83\x83\x3d\x7d\xd0\x9b\x1b\xe3\x3a\x00\xae\x40\xba\x3a\x6e\x6a\x63\x6b\x92\xda\x1a\x13\x1f\x1c\x11\x89\xe1\x23\x53\xe2\xe6\x84\x68\x2b\xa3\x53\xe1\x4f\x5a\x14\x64\xe8\x3d\x55\xb1\xc4\x75\x30\xf0\x77\x54\x45\x86\xe6\xdb\x25\xae\x5d\x3d\x2c\x71\x4d\x44\x4f\xcd\x70\x3e\xb7\xbe\xed\xce\xcb\xf7\xa5\xfc\x2d\x60\xae\xd1\x92\x58\xe5\x22\x98\xcb\x4a\xa4\x24\xc1\x52\x7c\x58\xe2\xfa\x63\xdd\x05\xdd\x13\xdb\x08\x5d\x3c\x89\x7b\xdd\xcf\xee\xf0\xb7\x14\xce\xf8\x67\x94\xd5\xb8\xf3\xfe\xc3\x39\xde\xd3\xfb\xff\x54\x7f\xb7\x75\x39\xe8\xad\x72\xf8\x1d\xb7\x16\xc4\xee\x19\x17\x17\x05\x6a\xcd\x32\x7c\xf2\xdd\x85\x6b\xf6\x7f\xf9\xd2\xa9\x93\xf1\x1e\x1a\xbb\xb6\xbb\xc0\x74\x5b\x60\xfb\x96\xaa\xad\xb4\xc8\x71\xa2\x4d\x77\x0a\x69\xd3\xb2\x20\x61\x82\xb2\x8a\x92\xc0\xde\x75\x5a\x18\xa3\x2d\x76\x9c\x78\x8a\x7d\x5d\x99\x75\x55\x73\xdf\xe4\xf6\xb8\xc6\x76\x7e\xfd\x25\x6a\x9b\xe3\x68\x0c\x8a\x89\x0c\xbb\xab\xc0\x66\x80\x7d\x60\x62\xb6\x94\xdb\x43\x7d\x37\xd1\x3d\x7b\xac\x79\x20\x1b\xee\x9b\x72\x9a\x1a\xa9\x4f\xb1\x8d\x39\xd4\xa8\xea\xd3\x7e\xab\xe6\xd3\xba\x67\xeb\x73\x82\xab\xdb\x2d\x28\x6d\x51\xd4\x7d\xdc\xdc\x76\x67\x84\xa6\xe8\x28\x3a\x6d\xd9\xfd\xd5\x30\x6d\xfb\x68\xed\x90\xed\xb7\x5e\x74\x12\x47\x7b\xd7\xf9\xbc\xab\xce\xba\xd5\x6f\xa9\xf2\x27\x45\x2d\xb2\xcc\xf6\x50\xfb\x72\x27\x9e\xca\x53\xb9\x42\x15\xee\x42\xa8\xa4\x48\x03\xd2\xe7\x8f\x03\xba\xd6\xa7\xdf\x26\x45\x4a\xe0\x71\x17\x43\x92\x22\xdd\x01\x7d\x64\xc5\x67\x63\x08\x68\xa0\x83\xfd\xfd\xf6\x37\xcd\x6e\x8f\x79\xac\x12\xba\x2a\x69\xde\xc2\x94\xf6\x8d\x6c\xed\x3a\x49\x4f\x73\x62\xa3\xc0\xb8\x11\xb8\xbf\xff\x47\x63\xb1\x7d\x23\x36\x1a\x43\xb0\x95\xe5\xc1\x86\x32\x59\x6b\x3d\x91\xf7\xa8\xeb\x1c\x0f\x9e\x70\x2d\xe9\xae\x10\x37\x11\xf6\x79\x57\x66\xcf\x4a\x5f\xab\x69\x7d\x39\xb6\xfb\x4a\xec\x3e\xd8\xb8\xdf\x59\xf7\x35\xa9\x3d\xbd\xa3\x47\xdd\xc9\xaf\x67\xde\x96\x3d\x86\xa5\xed\x45\xd3\x53\x61\xf4\x4e\xe3\x19\x3d\x17\x37\x2d\x5c\xdd\xaf\x74\x7b\xa3\x12\xba\x2f\x91\x13\x63\x81\xca\x28\x26\x74\x59\xe7\x46\xfd\x4a\x37\x9e\xa0\x99\x36\xeb\xaf\xdd\xab\x4c\xed\xde\x60\xc4\xed\xba\x3d\xdc\xd3\xd2\x71\xce\x51\xd8\xed\x89\x7d\xf1\x4a\x3a\xb8\xb5\xb0\x65\x5e\x3b\xb9\x75\x70\xb7\xcf\x22\xc6\x66\x82\xb8\xff\x4f\x70\xff\x95\xee\xc0\xf7\x52\x9c\xa3\x82\x96\x7d\x7c\x9c\x4b\x8d\x27\x69\x8e\xc7\x52\x08\x4c\xec\xdb\xf4\x70\x67\xac\xdc\x4e\x52\x26\x7e\x25\xd3\xb5\xdb\x49\xa4\xde\x4c\xa6\xeb\x56\x41\xf7\xe6\x3c\xbe\x44\x96\x1e\xe5\x79\xd8\xd2\xf7\x8e\x15\x3d\xa6\x75\x32\xb6\x6d\x94\x08\xed\xd5\x4e\xd3\xe3\x1b\x82\xc0\x85\xb5\x8d\xd9\xfd\x1e\xab\x7b\x4a\xeb\xee\x41\xbd\x50\x7b\xfb\xc6\xf7\x92\xd6\xef\xfb\xbd\x27\xa4\x4e\xbb\x69\xd4\xb9\x28\xa2\x75\xf7\xe2\x60\x04\x00\x5f\x6d\xbe\xcf\x8a\xfa\x4a\x3a\xc6\xad\x8e\x9b\x6f\x15\xba\x5c\xa2\x44\x39\xb9\xe8\xe7\x52\x22\x85\x68\x3d\x48\x8f\x5f\x73\x96\x87\x41\x95\x3e\x8a\x17\xb5\x64\x77\x55\x7b\x73\xeb\x9c\x44\x2a\xb9\x70\x11\xe3\x36\x52\xd4\x55\x12\x96\x13\x16\xd9\xa4\xa3\x67\xa7\xcd\x4a\x38\x88\xc3\x17\x24\xfa\xea\xb5\x45\xab\x41\x6b\x55\xbb\xc9\x2a\x4d\xb1\xb9\xf5\xff\x17\x00\x00\xff\xff\x64\x37\x6c\x48\x94\x23\x00\x00") - -func testImagesAgnhostGuestbookGuestbookGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostGuestbookGuestbookGo, - "test/images/agnhost/guestbook/guestbook.go", - ) -} - -func testImagesAgnhostGuestbookGuestbookGo() (*asset, error) { - bytes, err := testImagesAgnhostGuestbookGuestbookGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/guestbook/guestbook.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostInclusterclientMainGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x56\x7f\x6f\xdb\x38\x12\xfd\x5b\xfc\x14\x73\x02\x5a\x48\x81\x42\xa5\xd9\x6b\x71\xe7\xdb\x1c\xe0\xcd\x8f\x5b\x63\x73\xf1\xc2\x76\xb7\x58\xb4\xc5\x95\x96\x46\x12\x11\x89\x54\xc9\x51\x5c\xb7\x97\xef\x7e\x18\xca\x71\x9c\x36\xf7\x97\xc5\x21\x67\xf8\x38\xef\x3d\xd2\xf9\x91\x38\xb7\xfd\xd6\xe9\xba\x21\x38\x3d\x79\xf5\x77\x58\x35\x08\xbf\x0d\x6b\x74\x06\x09\x3d\x4c\x07\x6a\xac\xf3\x52\x88\x6b\x5d\xa0\xf1\x58\xc2\x60\x4a\x74\x40\x0d\xc2\xb4\x57\x45\x83\xb0\x9b\xc9\xe0\x0f\x74\x5e\x5b\x03\xa7\xf2\x04\x12\x5e\x10\xef\xa6\xe2\xf4\x1f\x62\x6b\x07\xe8\xd4\x16\x8c\x25\x18\x3c\x02\x35\xda\x43\xa5\x5b\x04\xfc\x52\x60\x4f\xa0\x0d\x14\xb6\xeb\x5b\xad\x4c\x81\xb0\xd1\xd4\x84\x4d\x76\x25\xa4\xf8\x73\x57\xc0\xae\x49\x69\x03\x0a\x0a\xdb\x6f\xc1\x56\x87\xab\x40\x91\x10\x00\x00\x0d\x51\x3f\xc9\xf3\xcd\x66\x23\x55\x40\x29\xad\xab\xf3\x76\x5c\xe5\xf3\xeb\xd9\xf9\xe5\xcd\xf2\xf2\xf8\x54\x9e\x08\xf1\xd6\xb4\xe8\x3d\x38\xfc\x3c\x68\x87\x25\xac\xb7\xa0\xfa\xbe\xd5\x85\x5a\xb7\x08\xad\xda\x80\x75\xa0\x6a\x87\x58\x02\x59\xc6\xb9\x71\x9a\xb4\xa9\x33\xf0\xb6\xa2\x8d\x72\x28\x4a\xed\xc9\xe9\xf5\x40\x4f\x1a\xf4\x80\x4a\x7b\x38\x5c\x60\x0d\x28\x03\xf1\x74\x09\xb3\x65\x0c\xbf\x4c\x97\xb3\x65\x26\xde\xcd\x56\xbf\xce\xdf\xae\xe0\xdd\x74\xb1\x98\xde\xac\x66\x97\x4b\x98\x2f\xe0\x7c\x7e\x73\x31\x5b\xcd\xe6\x37\x4b\x98\x5f\xc1\xf4\xe6\x4f\xf8\x6d\x76\x73\x91\x01\x6a\x6a\xd0\x01\x7e\xe9\x1d\x63\xb7\x0e\x34\xb7\x0e\x4b\x29\x96\x88\x4f\x36\xaf\xec\x08\xc6\xf7\x58\xe8\x4a\x17\xd0\x2a\x53\x0f\xaa\x46\xa8\xed\x1d\x3a\xa3\x4d\x0d\x3d\xba\x4e\x7b\x26\xcf\x83\x32\xa5\x68\x75\xa7\x49\x51\x18\xff\x70\x1c\x29\x8e\x72\x21\x7a\x55\xdc\x72\x11\x6d\x8a\x76\xf0\x84\xae\x68\x35\x1a\x12\x42\x77\xbd\x75\x04\x89\x88\xe2\xc2\x1a\xc2\x2f\x14\xf3\xa7\xdb\xf6\x64\x73\xdf\xa8\xd3\xd7\x6f\x38\x80\xa6\xb0\xa5\x36\x75\xbe\x56\x1e\xdf\xfc\x95\x43\x55\xab\xea\xf0\xdb\x85\x94\xd6\x86\x91\x41\xca\x99\x4e\xfe\x26\xdd\x61\x2c\x44\x14\xd7\x9a\x9a\x61\x2d\x0b\xdb\xe5\xbe\xaf\x5e\xfd\x94\x17\x76\xed\x54\x98\xba\xfd\x9b\x97\xda\xe6\x23\x9c\xe3\xda\xe6\xb7\x7b\x39\xc7\xcf\x4d\x3b\xf4\x74\x38\x61\xbb\xde\x1a\x9e\x63\x60\x79\x6b\xeb\xc3\xb4\xdb\xd6\xd6\xf9\xdd\x69\x2c\x52\x21\xee\x94\x83\xde\xb6\xed\xcc\x10\xba\x3b\xd5\x82\xe6\xe3\xe7\x39\x9c\x77\xe5\xcc\x9c\x8f\x5d\x39\x0f\xfb\xb0\x02\x06\xbf\xd3\x56\x6d\x1a\xeb\x09\xce\x19\xb1\x0c\x55\x9e\x49\x38\x83\x97\xe1\x48\xf2\xdc\x76\x9d\x32\xe5\x37\x11\xbd\xf5\x38\x01\x80\xf8\xbb\x8e\xc7\x99\x88\x96\x8d\x75\x34\x81\xf8\x77\x74\xda\x96\xba\x50\x6d\xbb\x0d\xd8\x02\x6f\x07\x7e\xfe\x10\xe7\x0d\xaa\x96\x9a\xaf\x1f\x62\x40\x53\xf6\x56\x8f\x15\xae\xad\xa9\x27\xf0\xe9\x87\x02\xfe\xfb\x0a\xfb\x02\x8f\xf9\x30\x78\x16\x11\x2f\xd4\xe6\x78\x07\x0e\x0a\x6b\x2a\x5d\x4b\xf8\x05\x0b\xc5\x86\x0f\x4e\xd5\x3e\x1b\x9d\xef\x87\x75\x31\x9e\x8c\x7b\xd3\xa1\x32\xc4\xe6\x5a\x23\xb8\xc1\x80\x36\x5e\x97\x21\x45\x1d\xee\xdd\xdb\x52\x0a\xb1\xfa\x2e\xbf\x50\x06\x54\xeb\x43\x72\x68\x32\x59\xb8\x53\xad\x2e\x15\x21\x90\xbd\x45\x03\xce\x8e\x6a\x96\x9f\x32\x11\x4d\x5d\xed\x27\x30\x76\xf7\xdf\xea\x8b\xee\x86\xee\x86\x63\xc9\x49\x9a\x89\x68\x31\x98\x09\x40\xa7\xb4\xc9\xc4\xbd\x10\xd5\x60\x0a\xd0\x46\x53\x92\xc2\x37\x11\xfd\xc8\x94\xbc\x6a\x55\xed\x93\x54\xce\x0c\xfd\xa1\x5c\xf2\xf2\x50\x12\x19\xc4\x3c\x3c\xd6\xbb\x71\x9c\xc1\x4f\x27\x99\x88\xa2\x10\x86\x87\x30\x1f\x94\x5b\xce\xc8\x1f\xda\xcb\xf7\x8c\xc7\xc2\x9a\xd2\xc7\xe9\x1e\x09\xe3\x4a\x8a\xae\x84\xa3\x27\xea\xc8\x40\xb9\xda\xc3\xfb\x8f\x7c\xc9\x98\x3a\x40\x65\xe5\xca\x99\xd1\x74\x6d\x19\x9f\x88\x4a\xac\xd0\x41\x08\x5f\xb5\x83\x6f\x76\x71\x11\xb1\xef\xe4\x12\x29\x61\xcb\x91\xf5\x54\xa2\x73\x71\x06\x31\xb9\x01\x63\x5e\xc1\xb2\x97\x33\x53\xd9\x2a\x89\x3d\x29\x47\x58\x86\x78\x51\xd5\x19\xa0\x73\x30\x39\x03\xf6\x91\x7c\x6c\x4e\x60\x9f\xb7\xd5\x55\x58\xf1\x97\x33\x30\xba\x65\x60\x8c\x4c\x5e\x29\x52\x6d\x95\xc4\xe8\xdc\x04\x5e\xdc\xc5\xa1\x4c\x2a\xa2\xfb\xb1\xaa\x7c\xe7\x54\x9f\xf0\x91\x13\x47\xe1\x36\x97\x0b\x3b\x98\x72\xe5\x74\xdf\xa3\x4b\x7f\x0c\x85\xca\x0e\x69\x70\x06\x5e\x96\xb8\x1e\xea\x05\x71\x28\x62\x63\x38\xe2\xa6\xdf\x8b\xe8\x3e\xa0\x66\xb8\x8f\xb7\x82\xbc\xc1\xcd\x95\xdd\x21\x9e\xbb\x0b\x8d\x49\x51\xd5\xa9\x5c\x5c\x2e\x57\x23\xc7\xa1\x4b\x79\xde\x6a\x43\x13\x5d\x1b\xeb\x10\x96\xd3\x57\x27\xaf\x5e\x83\xb1\xda\xb3\x51\xbc\x26\x7d\x87\x19\x7c\xe2\x1b\x4a\xae\x74\x71\xfb\x69\xef\xf9\xf0\x58\x31\x71\xc0\xe7\x61\x19\xc2\xa6\xd1\x45\x03\xe1\x01\x34\x28\x22\x62\x40\xfb\xcc\x24\x7c\x5d\x0c\x2e\x48\x36\x39\xd4\x53\x0a\x47\xe3\xba\x65\x50\x46\x2a\x22\xbe\xdd\xf9\x98\x3f\x1f\x93\x88\x9e\xf0\xc4\x82\x62\x5b\xee\xfd\x9a\x8a\x28\x5a\xef\xe9\x2a\xe4\xbf\x90\x92\x54\x4e\xd7\xfe\x77\x45\x4d\xf2\xe8\xeb\x54\x5e\xd8\x64\x77\x75\xcb\xd5\xfc\x62\x9e\xa4\xa9\x5c\xa8\x0d\x93\xf9\x0c\x9b\xe3\xa6\x97\xce\x59\x37\xaa\x83\x06\x7f\x56\x29\xdd\x06\x8d\x7c\x3f\x8f\xfc\x0b\x45\x83\xc5\xed\x21\x38\xd6\xc0\x07\xf3\xc2\x7f\x30\xa3\x12\x32\x18\x95\x9c\xac\xd3\x74\xc7\x1c\x7b\x80\xb6\x3d\xc2\x8e\x5c\x5e\x31\x14\xc4\x18\x9e\x93\xc8\xde\x32\x2c\xa0\xa3\x5d\x4e\x0a\xfb\x25\x89\xc3\xcf\x70\x34\xa6\xe1\xe7\x01\x3d\xa5\x90\x3c\x8c\x7d\x6f\xc3\x3f\x9a\x80\x36\xb8\x49\x0d\xd4\xfc\x8a\x8a\x9f\xc2\xa0\xf5\xcf\x72\x1c\x85\x2e\xc6\xe3\xdf\x24\xfd\x35\x30\x16\x8f\xa2\x6f\xd1\x24\x8f\x59\x29\xb7\xec\x24\x34\x2c\x04\x95\x6f\xb8\xd0\xf8\x1e\xca\xe5\xd0\x9d\xbe\x7e\x93\xbc\xff\xb8\xde\x12\x26\x55\x47\x72\xd9\x3b\x6d\xa8\x4a\xe2\x17\xfe\xbf\x2f\x3c\x9b\xd1\xab\x96\xe2\x0c\x0e\x4a\x86\xd6\x1c\x52\xce\x73\x5f\xff\xd3\x84\xd9\xb3\x90\x35\x3e\xae\xcc\xde\xdb\xc5\xf5\xe5\xee\xc9\x95\xe1\x03\x57\x76\x39\xf6\xf8\x01\xd0\xfb\xc9\x47\x2e\x79\x0f\xd8\x7a\x0c\x50\x9f\x50\xf7\xa4\xfa\xcf\xd8\xf5\xb4\xfd\x67\x1c\x2c\xfb\xe0\x3b\x47\xd2\x91\x7c\xd2\xe2\xf4\xff\xf0\xc0\xfe\xee\xb1\x3c\x64\x2c\x79\xd6\xd5\x70\x58\x1b\xee\xc5\xff\x02\x00\x00\xff\xff\xef\x41\xba\xf3\xb3\x0a\x00\x00") - -func testImagesAgnhostInclusterclientMainGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostInclusterclientMainGo, - "test/images/agnhost/inclusterclient/main.go", - ) -} - -func testImagesAgnhostInclusterclientMainGo() (*asset, error) { - bytes, err := testImagesAgnhostInclusterclientMainGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/inclusterclient/main.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostLivenessServerGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x54\x5d\x6f\xdb\x36\x17\xbe\x16\x7f\xc5\x79\x09\xf4\x85\x14\x68\x92\x9b\x6d\x40\xe1\xa1\x03\x5c\x37\x59\x8c\x7a\x0e\x66\x25\x0b\x8a\xa2\x17\xb4\x74\x24\x11\xa5\x48\xe5\x90\xb4\xe3\x15\xf9\xef\x03\x25\x7b\x88\xbb\x14\xd8\x8a\x5d\x59\x1f\xcf\x79\xbe\x8e\xe8\xfc\x8c\xcd\x4d\xbf\x27\xd9\xb4\x0e\xce\x27\x2f\x7f\x80\x9b\x16\xe1\x9d\xdf\x20\x69\x74\x68\x61\xe6\x5d\x6b\xc8\x66\x8c\x2d\x65\x89\xda\x62\x05\x5e\x57\x48\xe0\x5a\x84\x59\x2f\xca\x16\xe1\xf0\x26\x85\xdf\x91\xac\x34\x1a\xce\xb3\x09\xc4\x01\xc0\x0f\xaf\x78\xf2\x13\xdb\x1b\x0f\x9d\xd8\x83\x36\x0e\xbc\x45\x70\xad\xb4\x50\x4b\x85\x80\x0f\x25\xf6\x0e\xa4\x86\xd2\x74\xbd\x92\x42\x97\x08\x3b\xe9\xda\x41\xe4\x40\x91\xb1\xf7\x07\x02\xb3\x71\x42\x6a\x10\x50\x9a\x7e\x0f\xa6\x7e\x8a\x02\xe1\x18\x03\x00\x68\x9d\xeb\xa7\x79\xbe\xdb\xed\x32\x31\xb8\xcc\x0c\x35\xb9\x1a\x51\x36\x5f\x2e\xe6\x17\xab\xe2\xe2\xbb\xf3\x6c\xc2\xd8\xad\x56\x68\x2d\x10\xde\x7b\x49\x58\xc1\x66\x0f\xa2\xef\x95\x2c\xc5\x46\x21\x28\xb1\x03\x43\x20\x1a\x42\xac\xc0\x99\xe0\x73\x47\xd2\x49\xdd\xa4\x60\x4d\xed\x76\x82\x90\x55\xd2\x3a\x92\x1b\xef\x4e\x0a\x3a\xba\x92\x16\x9e\x02\x8c\x06\xa1\x81\xcf\x0a\x58\x14\x1c\xde\xcc\x8a\x45\x91\xb2\xbb\xc5\xcd\xd5\xf5\xed\x0d\xdc\xcd\xd6\xeb\xd9\xea\x66\x71\x51\xc0\xf5\x1a\xe6\xd7\xab\xb7\x8b\x9b\xc5\xf5\xaa\x80\xeb\x4b\x98\xad\xde\xc3\xbb\xc5\xea\x6d\x0a\x28\x5d\x8b\x04\xf8\xd0\x53\xf0\x6e\x08\x64\xa8\x0e\xab\x8c\x15\x88\x27\xe2\xb5\x19\xcd\xd8\x1e\x4b\x59\xcb\x12\x94\xd0\x8d\x17\x0d\x42\x63\xb6\x48\x5a\xea\x06\x7a\xa4\x4e\xda\xb0\x3c\x0b\x42\x57\x4c\xc9\x4e\x3a\xe1\x86\xfb\xbf\xc5\xc9\xd8\x59\xce\x58\x9e\xc3\x0c\x6c\x50\x45\xb0\x48\xdb\x01\x23\x5c\xc8\x2a\x94\xdc\x8e\xba\x2f\x27\x60\xb1\x34\xba\xb2\x69\x60\xd0\x40\xd8\x1b\x72\x81\xb4\x45\xa1\x5c\xbb\x0f\xb0\xc0\x15\xf8\x09\xad\x0b\x0b\x95\xce\x42\xdc\x9a\x1e\x6b\xaf\xd4\x3e\x01\xdb\x1a\x72\x80\x0f\xd2\x3a\xd4\x25\x66\x8c\xf5\xa2\xfc\x14\x12\x04\x21\x8d\xd6\x32\x26\xbb\x40\x0c\x31\x8b\x78\xdd\x39\xce\x22\xae\x4c\x13\x7e\x34\xba\x3c\x7c\x0d\xc7\x6b\x4f\x2a\x5c\x3a\xd9\x21\x67\x2c\xe2\x8d\x74\xad\xdf\x64\xa5\xe9\x72\xdb\xd7\x2f\xbf\xcf\x4b\xb3\x21\xc1\x59\x32\x44\x9c\x77\xd5\xf2\xa0\x11\x92\x79\x7b\xf8\x3e\x1a\xdd\x1a\xeb\x60\x1e\xb0\x19\xdb\x0a\x3a\x41\xbe\x86\xff\x0f\x2c\xd9\xdc\x74\x9d\xd0\xd5\x67\x16\xdd\x5a\x9c\x02\x00\x3f\x3a\xe6\x29\x8b\x8a\x90\x6b\x0a\xbc\x70\x22\x74\x22\xfe\x49\x8f\x61\x6e\x69\x74\x33\x05\xe0\xff\x55\xff\xff\xa6\xfc\xa0\x3f\xa3\xc6\x4e\x01\xc6\x88\xbf\x8a\x07\xd9\xf9\x6e\x15\x1e\xc6\x93\x24\x65\xd1\xda\xeb\x10\xb5\x13\x52\xa7\xec\x91\xb1\xda\xeb\x72\xb8\x8b\xcb\xae\x82\xb3\x93\x66\x52\x10\xd4\x58\xf8\xf0\x31\x9c\x0e\xdd\x24\xf0\x99\x45\x36\xd4\x81\x15\x4c\x5f\x43\xd8\x52\xb6\x32\xbb\x38\x61\x51\x58\x62\x76\x25\x74\xa5\xf0\xd2\xeb\x32\xe6\xf9\x01\xc8\x53\x08\x12\xf1\x6e\x38\xf5\xd9\x1a\x6d\x6f\xb4\xc5\x3b\x92\x0e\x29\x05\x82\xb3\xc3\xf3\x7b\x8f\xd6\x0d\x12\xd1\x2e\x1b\x5e\x5f\xa1\xa8\x90\xe2\xf3\xc9\x24\x61\x51\x54\x09\x27\x82\x6a\x3c\xc8\x16\x52\x97\x18\x1f\x34\x92\x24\x2b\x06\x87\xc1\xc9\x71\x3a\xfe\xf0\x71\xb3\x77\x18\x87\xb9\x24\x61\xd1\xe3\xb3\x2e\xc7\xa2\xff\xf8\x16\x97\x95\xa7\xe1\x10\xfe\x55\xc5\xa9\x27\x16\x45\xb2\x86\x23\x28\x2b\xc6\x4d\xc7\x09\xfc\x1c\x16\x1f\x08\xbe\xc8\xf9\xe3\x98\xf3\x4b\xff\x75\xe7\xb2\xa2\x27\xa9\x5d\x1d\x73\x24\x32\x34\x85\x17\x5b\x9e\x3e\x43\x9d\x84\x9c\xd1\x23\xa0\xb2\xf8\x9c\xc2\xf9\xf3\x0a\xdc\x7c\xe2\xe3\xe4\xd7\x5a\x22\xac\x24\x61\xe9\xbe\xa5\x26\x65\xca\x14\x90\x28\xd4\xe4\x49\x65\xbf\x79\xa4\xfd\xad\x46\x5b\x8a\x1e\x63\xca\x6e\xd7\xcb\xf1\x59\x9c\x64\xbf\xa0\x8b\xb9\x32\xe5\x68\x47\xd6\xc3\xdc\xff\x5e\x83\x96\x6a\xcc\x33\xd0\x5f\x84\x12\xe2\x5d\x0a\x27\xd5\x48\xbd\x15\x4a\x56\x70\xf4\x3a\x85\x17\xf7\x3c\x85\xaf\x0a\xa4\x63\x86\xc2\x09\xe7\xed\x1b\x51\x1d\x4d\x07\x19\x42\xe7\x49\x8f\x8d\x44\x87\x48\x23\x6b\x90\xa5\x14\x86\x50\x4f\xe6\x2f\x8d\xd7\xd5\xe1\x23\x53\xa6\xc9\x2e\x85\x13\x2a\x1e\x00\xcb\xe1\x6c\xce\x74\x55\x84\xff\x81\x98\x4f\x5f\x4d\x5e\x4d\x78\x1a\x32\x25\x09\x7b\x64\x7f\x06\x00\x00\xff\xff\xdc\x7c\x35\xe8\xe6\x07\x00\x00") - -func testImagesAgnhostLivenessServerGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostLivenessServerGo, - "test/images/agnhost/liveness/server.go", - ) -} - -func testImagesAgnhostLivenessServerGo() (*asset, error) { - bytes, err := testImagesAgnhostLivenessServerGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/liveness/server.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostLogsGeneratorLogs_generatorGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x55\x6b\x6f\xd3\xcc\x12\xfe\xec\xfd\x15\x23\x4b\x45\x36\x38\x76\x5a\x74\xd0\x51\x68\x91\x72\x4a\xe1\x44\x94\x04\x35\x29\x08\x21\x3e\x6c\xec\xb1\xbd\x8a\xbd\xeb\x77\x2f\x09\x11\xe2\xbf\xbf\x9a\x75\xae\x54\x02\x29\x52\xf6\x32\xf3\xcc\x33\xcf\xcc\x8e\xb3\xe7\xec\x56\x75\x5b\x2d\xaa\xda\xc2\xd5\xf0\xf2\x15\x2c\x6a\x84\x0f\x6e\x89\x5a\xa2\x45\x03\x63\x67\x6b\xa5\x4d\xca\xd8\xbd\xc8\x51\x1a\x2c\xc0\xc9\x02\x35\xd8\x1a\x61\xdc\xf1\xbc\x46\xd8\xdd\x24\xf0\x19\xb5\x11\x4a\xc2\x55\x3a\x84\x88\x0c\xc2\xdd\x55\x18\xbf\x66\x5b\xe5\xa0\xe5\x5b\x90\xca\x82\x33\x08\xb6\x16\x06\x4a\xd1\x20\xe0\x8f\x1c\x3b\x0b\x42\x42\xae\xda\xae\x11\x5c\xe6\x08\x1b\x61\x6b\x1f\x64\x07\x91\xb2\xaf\x3b\x00\xb5\xb4\x5c\x48\xe0\x90\xab\x6e\x0b\xaa\x3c\xb5\x02\x6e\x19\x03\x00\xa8\xad\xed\x46\x59\xb6\xd9\x6c\x52\xee\x59\xa6\x4a\x57\x59\xd3\x5b\x99\xec\x7e\x72\x7b\x37\x9d\xdf\x0d\xae\xd2\x21\x63\x8f\xb2\x41\x63\x40\xe3\x3f\x4e\x68\x2c\x60\xb9\x05\xde\x75\x8d\xc8\xf9\xb2\x41\x68\xf8\x06\x94\x06\x5e\x69\xc4\x02\xac\x22\x9e\x1b\x2d\xac\x90\x55\x02\x46\x95\x76\xc3\x35\xb2\x42\x18\xab\xc5\xd2\xd9\x33\x81\xf6\xac\x84\x81\x53\x03\x25\x81\x4b\x08\xc7\x73\x98\xcc\x43\xf8\xdf\x78\x3e\x99\x27\xec\xcb\x64\xf1\xff\xd9\xe3\x02\xbe\x8c\x1f\x1e\xc6\xd3\xc5\xe4\x6e\x0e\xb3\x07\xb8\x9d\x4d\xdf\x4e\x16\x93\xd9\x74\x0e\xb3\x77\x30\x9e\x7e\x85\x0f\x93\xe9\xdb\x04\x50\xd8\x1a\x35\xe0\x8f\x4e\x13\x77\xa5\x41\x90\x74\x58\xa4\x6c\x8e\x78\x16\xbc\x54\x3d\x19\xd3\x61\x2e\x4a\x91\x43\xc3\x65\xe5\x78\x85\x50\xa9\x35\x6a\x29\x64\x05\x1d\xea\x56\x18\x2a\x9e\x01\x2e\x0b\xd6\x88\x56\x58\x6e\xfd\xfe\x49\x3a\x29\x7b\x9e\x31\xd6\xf1\x7c\x45\x20\x8d\xaa\x4c\x85\x92\x31\xd1\x76\x4a\x5b\x88\x58\x10\x96\xad\x0d\x59\x10\x5a\xd1\x62\xc8\x58\x10\x56\xc2\xd6\x6e\x99\xe6\xaa\xcd\x4c\x57\x5e\xbe\xcc\x72\xb5\xd4\xdc\x5f\xad\xfe\x6b\x52\xa1\x32\xde\x89\x96\xe7\xb5\x90\xa8\xb7\x59\xb7\xaa\x32\x67\x45\x93\x69\x2e\x8b\xf0\x68\xb4\x6a\x54\x95\xad\xaf\x42\x16\x33\xb6\xe6\x9a\x42\x51\x9d\x3f\xa2\xad\x55\x61\xe0\x06\xbe\x7d\x27\x91\x65\xf5\x93\x05\x41\xf8\xfe\x6e\x11\x26\xb4\xf8\x34\x9b\xef\x57\x8f\x7e\xf1\x8b\x05\x92\xb7\x68\x3a\x9e\xe3\x13\xb7\x95\x5b\xe2\xc0\x6c\x8d\xc5\xb6\x77\x2a\xb0\xe4\xae\xb1\xfd\x46\x9a\x1e\x20\x66\x2c\xcb\xe0\xb6\x2d\xee\x55\x65\xde\xa3\x44\xcd\x2d\x15\xc1\x50\x6f\xf7\x2d\x54\xc9\x5a\x19\x0b\xb7\x94\x6a\xea\xf9\x3e\x31\xbf\x81\x67\x5e\x89\xf4\x56\xb5\x2d\x97\xc5\x4f\x16\x3c\x1a\x1c\x01\x40\x48\xb2\x0e\xaa\xbd\x25\x05\x9d\xd7\x4a\xdb\x11\x84\x33\x67\x3b\x67\x0d\x34\x42\xa2\xa1\xfe\x27\x53\x6a\x4c\x63\x0b\xe5\x2c\x38\x29\x4a\xa5\xdb\x66\x4b\x4e\xf7\x4a\x56\x23\x38\x3a\x5d\x7b\xaf\x85\xb2\xbc\x79\xf3\x77\x04\xdf\x3b\xd7\x85\xd3\xbe\x15\xde\x10\xe0\x58\x57\x66\x04\xd0\xd3\xfe\xc8\x7f\x88\xd6\xb5\x53\x3a\x8c\x86\x71\xc2\x82\x07\x27\x89\xfe\x8e\x38\x52\xba\x09\xfb\x75\x28\xd7\x31\x3a\x08\x69\x59\xb0\x87\x06\x00\x6a\x96\xf4\xed\x6e\x4f\xfa\x96\x4e\xe6\x20\xa4\xb0\x51\x0c\x3f\x59\xf0\xbb\x78\xe9\xbb\x86\x57\x26\x8a\xd3\x89\xb4\x9f\xb9\xfe\x14\x3d\x3b\x82\x27\x5e\xbf\x81\x3f\x18\x58\x3a\x09\x13\x08\x6d\x98\xc0\x30\x81\xb0\x8f\xdf\x27\x6f\x6b\x6e\xc1\xd4\xca\x35\x05\x2c\xf1\xc0\xdb\x57\x90\x5a\x1e\x65\xb1\x1f\x31\xda\xc9\x30\xfe\x03\x8f\x3d\xf7\x9e\xcc\x3e\xb3\x04\x42\xed\xe4\x60\xbf\x25\x1e\xc5\x19\x8f\x83\x04\x67\x61\x7e\xf9\xfe\x3a\x2b\xf5\x29\xed\xbf\xd5\x6c\x0f\xda\x8b\x78\x5a\x8d\x28\x6f\x0b\x78\x7e\xd6\x75\x09\x70\x5d\x99\xc3\x2b\xf0\x6a\x8b\xf2\x34\xe8\xf5\x0d\x0c\xe9\x34\xa0\x17\x98\xbe\xe3\x96\x37\x65\x14\x4e\xe4\x9a\x37\x82\x66\x22\xd9\x48\xd7\x2e\x51\x7b\x66\xe4\x38\x82\x0b\xca\xf3\x08\x12\xd3\xb3\xf1\xc0\x87\x8c\xff\x0c\xbb\x37\x1b\xc1\xc5\x3a\x4c\x0e\xdb\x1d\x4e\x81\x0d\xdf\xc2\xe8\xe6\x88\x96\x9d\xb7\x50\x74\x1a\x9a\x05\x56\xe4\x2b\xd4\xe4\xe0\xad\xa6\xb8\x59\xf8\x93\xc8\x03\xc5\x04\x58\xd2\x98\xf3\x87\xe9\xdc\xaa\x2e\x8a\x59\x40\x5a\x8a\x82\xbc\x86\xaf\x69\x71\x7d\x92\x10\x1d\xbc\x78\x71\xe4\x3f\x91\xa5\x8a\x4e\xa4\xbe\x17\x12\x23\x51\xc4\x31\x0b\x82\xeb\xc1\x0e\xf8\x96\xd8\xf7\xc5\xdd\x75\x10\x1a\xe0\x9d\x30\xa8\xd7\xa8\x07\x8d\x58\xa1\x0f\xd1\x7f\xff\xf8\x1a\xb5\x9f\xb1\x28\x2b\x5b\x93\xb6\x97\xc3\x21\x98\x6d\xbb\x54\x8d\x79\x52\xdb\x5d\x40\x7a\x59\x31\xf4\xb5\x24\x76\xad\x1f\x8f\x94\xc3\xc9\xb0\xfc\x46\xa3\x95\x9e\x8e\x8c\x1a\x94\xd1\xc9\x4d\x1c\x7f\x3f\x19\x8f\xe4\x76\x9c\x95\xbf\x79\x1d\x2f\xc8\x89\x05\x9d\x2a\xa6\xbc\xf5\x3e\xde\x70\xee\x39\x44\x07\xa7\x07\x2e\x2b\x8c\x5e\x26\xf0\x1f\x12\xc5\xe9\x86\x2c\xcb\xd6\xa6\xf3\x4e\x0b\x69\xcb\x28\xa4\xef\x40\xb6\xbe\xcc\x8e\xc8\xd9\x85\xc9\x3a\x55\xd0\x7f\x98\x1c\xa9\x24\xb0\x0b\x16\xb3\xc0\x58\x6e\x9d\x39\x44\x3d\x46\xba\x1a\x0e\x13\x78\x35\x1c\x52\xfd\x35\x5a\xa7\xe5\x79\xb4\x8b\x02\x2e\x8c\xff\x51\xab\x8a\x22\x81\x5e\xab\x04\x9c\x6e\x12\xe8\x71\xe9\x2d\xfe\x1b\x00\x00\xff\xff\x27\x3f\x55\xc6\x27\x09\x00\x00") - -func testImagesAgnhostLogsGeneratorLogs_generatorGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostLogsGeneratorLogs_generatorGo, - "test/images/agnhost/logs-generator/logs_generator.go", - ) -} - -func testImagesAgnhostLogsGeneratorLogs_generatorGo() (*asset, error) { - bytes, err := testImagesAgnhostLogsGeneratorLogs_generatorGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/logs-generator/logs_generator.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostMounttestFilepermissionsPs1 = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x56\xff\x8f\xda\x36\x14\xff\xdd\x7f\xc5\x53\x40\x2a\x48\x24\x97\x63\xfd\x61\xeb\x74\x9b\x32\xa0\x1d\xea\x95\x3b\x11\xda\x5b\x35\x4d\x95\x71\x1e\xc4\xbb\x60\xa7\xb6\x73\xc0\xb6\xfe\xef\x93\xed\x10\x42\x61\xd5\x8d\x5f\xe2\xd8\xef\x7d\x3e\x9f\xf7\xc5\x8f\x74\x60\x24\xcb\xbd\xe2\xeb\xdc\xc0\x30\xbe\xfe\x01\x16\x39\xc2\xdb\x6a\x89\x4a\xa0\x41\x0d\x49\x65\x72\xa9\x74\x44\x3a\xa4\x03\xb7\x9c\xa1\xd0\x98\x41\x25\x32\x54\x60\x72\x84\xa4\xa4\x2c\xc7\xc3\xc9\x00\x3e\xa0\xd2\x5c\x0a\x18\x46\x31\xf4\xac\x41\x50\x1f\x05\xfd\x1f\x49\x07\xf6\xb2\x82\x0d\xdd\x83\x90\x06\x2a\x8d\x60\x72\xae\x61\xc5\x0b\x04\xdc\x31\x2c\x0d\x70\x01\x4c\x6e\xca\x82\x53\xc1\x10\xb6\xdc\xe4\x8e\xa6\x06\x89\x48\x07\x3e\xd6\x10\x72\x69\x28\x17\x40\x81\xc9\x72\x0f\x72\xd5\xb6\x03\x6a\x9c\x60\xfb\xcb\x8d\x29\x5f\x5d\x5d\x6d\xb7\xdb\x88\x3a\xb1\x91\x54\xeb\xab\xc2\x1b\xea\xab\xdb\xe9\x68\x32\x4b\x27\xe1\x30\x8a\x9d\xcb\x7b\x51\xa0\xd6\xa0\xf0\x73\xc5\x15\x66\xb0\xdc\x03\x2d\xcb\x82\x33\xba\x2c\x10\x0a\xba\x05\xa9\x80\xae\x15\x62\x06\x46\x5a\xbd\x5b\xc5\x0d\x17\xeb\x01\x68\xb9\x32\x5b\xaa\x90\x74\x20\xe3\xda\x28\xbe\xac\xcc\x49\xb2\x0e\xea\xb8\x3e\x31\x90\x02\xa8\x80\x20\x49\x61\x9a\x06\xf0\x4b\x92\x4e\xd3\x01\xe9\xc0\xc3\x74\xf1\xeb\xdd\xfb\x05\x3c\x24\xf3\x79\x32\x5b\x4c\x27\x29\xdc\xcd\x61\x74\x37\x1b\x4f\x17\xd3\xbb\x59\x0a\x77\xaf\x21\x99\x7d\x84\xb7\xd3\xd9\x78\x00\xc8\x4d\x8e\x0a\x70\x57\x2a\xab\x5f\x2a\xe0\x36\x8d\x98\xd9\x9c\xa5\x88\x27\x02\x56\xd2\x0b\xd2\x25\x32\xbe\xe2\x0c\x0a\x2a\xd6\x15\x5d\x23\xac\xe5\x13\x2a\xc1\xc5\x1a\x4a\x54\x1b\xae\x6d\x31\x35\x50\x91\x91\x0e\x14\x7c\xc3\x0d\x35\x6e\xe7\x2c\xa8\x88\x90\x7b\xaa\xe8\xa6\x47\x00\x7e\xb7\xb1\x89\xf5\x1f\xdd\xd7\xbc\xc0\x19\xdd\x20\xdc\x40\xb7\x67\x72\x25\xb7\x10\x84\xcd\x26\x3f\xa6\x39\x0a\xfa\x04\xfa\x84\x90\x0e\x28\xa4\x19\xdc\xf8\x47\x46\x0d\x85\x7f\xfc\x9a\x9a\x3a\x61\x9a\x74\xe7\x93\x64\xfc\xe9\x7e\x32\x7f\x37\x4d\x53\x97\x8a\x1b\x88\x77\x71\x1c\x5f\x43\xb8\x94\xca\xad\xbf\x8f\x2d\x98\xad\x8d\x65\xf7\xcf\x1a\x8e\x96\x25\x8a\x06\xdc\x1f\x1d\xd1\x9b\xad\x49\x42\xba\x0f\xf3\xe9\x62\x72\x89\x69\x78\x64\x8a\x5f\x36\xeb\xeb\x38\xf6\x6b\x77\x70\xed\x24\xe0\x0e\x59\xe5\x44\xb4\x43\xaa\x7b\xde\x1d\x91\xee\xe4\xb7\xc9\xe8\xfd\x65\xa2\x56\x48\xc3\x98\x10\xb2\xaa\x04\xb3\x25\x80\x37\x68\x6c\x26\xef\x8f\x65\xea\x75\x4b\x6a\xf2\x3e\xfc\x4d\x6c\xdf\x77\xe5\xf2\xcf\x7b\x6a\x72\xb8\x81\xe0\x81\x8b\xef\x86\x9f\x6e\xe5\x9a\x33\x5a\x58\xaf\x14\x59\xa5\xb8\xd9\xa7\x68\x6c\xef\xde\xbc\x70\xae\x2f\x82\xda\xb3\x32\x65\x65\xe0\x06\xa6\xe2\x49\x3e\x62\xf8\xb0\xe1\xef\xd0\xe4\x32\x83\xd0\x16\x4e\x97\x94\x21\x28\x29\xcd\x15\xe3\x9b\xa7\x21\x84\x8e\xa7\x21\x74\x46\x56\xdf\x81\x65\x8c\x9a\x29\x5e\x1a\xa9\x88\x23\xe0\x2b\xe8\xd5\x24\xd1\x1c\x4d\xa5\xc4\x07\x5a\x54\x08\xa1\x40\x88\x0f\xfa\x9d\x12\x85\xe6\x03\x2d\x6c\xfb\x9c\x9b\x37\x56\x0f\xb6\x5c\xe1\x44\x29\xa9\x20\xb8\x48\x0b\x5c\x3c\x49\xe6\x5a\x17\x56\x94\x17\x98\xf9\xd1\xc2\x64\x86\xaf\x0e\x2c\x41\x03\x88\x3b\x6e\xe0\xda\xbd\x7e\xf1\x8a\xbb\xb6\x5e\xe9\xb8\x25\xa4\x15\x53\x63\x70\xb7\x15\xa8\xde\x28\x59\x95\xd6\xd0\xbb\x44\xee\xfd\x2b\x9b\xd6\xb1\x7b\x6f\xa5\xe5\x14\x27\x72\xa9\x0c\xf1\x33\x74\x45\x55\x14\x10\x52\x91\x7d\xcd\x15\x8d\xe5\xc6\x4e\xc2\xc6\xaa\x9d\xc1\x8e\xbb\xa3\xae\xdb\xa4\xf5\x78\xa1\x61\xed\x04\x72\xed\x86\xb0\x42\x26\xd7\x82\xff\x85\x59\x04\xa3\x1c\xd9\xa3\x55\x61\x5d\xbc\x4e\x6e\x34\x16\x2b\xe0\xba\x05\x48\x3d\xc2\xc0\x4e\x05\x6b\xad\xe5\x00\x32\x5c\xd1\xaa\x30\xce\xd3\xe3\xdb\xd9\x68\xa2\xc6\x4d\xa0\x1b\xf8\xaa\x25\xde\xc7\xf6\x53\x1d\xd9\xb0\x5e\x34\x1e\x36\x1b\xa1\x95\xd8\xfd\xb9\x1d\xd0\x37\x92\xed\x53\x79\x30\xaa\x2b\x77\x28\xa0\x25\x7f\x47\xf5\xa3\xbd\x57\x7e\xc7\xe9\x3c\xdd\x92\x76\x86\x36\x5b\x6e\x6f\x25\x15\x52\x96\x43\xaf\x6b\x9b\x9e\x8b\xa6\x70\xe3\x64\x74\x7b\xd2\xab\x9b\x36\x54\x53\x4f\xca\x30\x4a\x18\x2e\xf6\xe5\x85\xfe\xf6\x09\xb5\x41\x52\x01\x49\x51\xc8\x2d\x24\xa3\xc9\x00\xf4\x23\x2f\xa3\x13\x2b\x26\x85\xe1\xa2\xd5\xf4\x75\x5c\x1e\x81\x49\xf1\x84\xca\x80\x95\x10\x9d\xf0\x37\x0a\x18\x6a\xed\x22\x0b\x97\xae\x87\xbe\x1e\xa1\x7d\xdf\x3f\x67\x93\xf5\x2c\xf7\x75\x98\xfe\xe9\x66\xd3\xcb\x96\xa8\x67\x71\x9f\x4d\xd5\x9a\xfc\x7c\xda\x3e\x83\x7d\xf8\x7f\xd9\x2f\x0c\xdb\x9a\xff\xd2\x18\x7e\x86\x82\xeb\xcb\x45\xc9\xd0\x20\xf3\x35\x01\xb3\x2f\x31\x3a\x6f\x8c\x85\xaa\xb4\x41\x8c\x26\x9f\x2b\x5a\xe8\xd6\xe5\xef\x9f\xd1\xb6\xfa\xd7\x51\xff\x47\xd4\xdf\x86\x75\xd7\xe5\x1c\xbb\x7d\x13\x9e\x0d\x6e\x6f\x6f\xb4\x90\xb7\x72\x8b\xaa\xe7\x13\x18\x58\x91\x3a\x38\xc3\x6f\x5f\xab\x4b\xf8\x75\xda\x94\x9b\xed\x10\x34\xb1\x1e\x85\x1d\x21\x02\xf2\x85\x90\x43\x11\x2e\xfd\x07\x1e\x3e\x2f\xfa\xe4\xc2\x04\xa9\x27\xfb\x17\xfb\xc7\x5c\x2a\x2e\xfc\xc4\x3a\x7e\xea\xf8\x6a\xdd\x72\x51\xed\x42\x6d\xf6\x05\x46\x04\x59\x2e\x21\x88\x1d\x65\x40\xfe\x0d\x00\x00\xff\xff\xd5\xb7\xd8\x1a\x30\x0b\x00\x00") - -func testImagesAgnhostMounttestFilepermissionsPs1Bytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostMounttestFilepermissionsPs1, - "test/images/agnhost/mounttest/filePermissions.ps1", - ) -} - -func testImagesAgnhostMounttestFilepermissionsPs1() (*asset, error) { - bytes, err := testImagesAgnhostMounttestFilepermissionsPs1Bytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/mounttest/filePermissions.ps1", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostMounttestMtGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x58\x6d\x6f\xdb\x38\x12\xfe\x6c\xfe\x8a\x39\x01\xdd\x93\x0b\x55\x76\xb3\x7b\xc9\xc1\x7b\xf9\x90\x3a\xc9\x9d\xb1\xad\x53\xc4\xc9\x16\x8b\x6e\x11\xd0\xf2\x48\x22\x2a\x91\x5a\x92\x8a\x62\x14\xf9\xef\x87\xa1\x24\x47\x56\x9c\x5c\x92\x5e\x0b\xac\xb1\x14\x87\xcf\x33\x6f\x9c\x19\x66\xf4\x9a\x4d\x55\xb1\xd6\x22\x49\x2d\xec\x8d\xdf\xfe\x03\x2e\x52\x84\xdf\xca\x25\x6a\x89\x16\x0d\x1c\x95\x36\x55\xda\x84\x8c\xbd\x17\x11\x4a\x83\x2b\x28\xe5\x0a\x35\xd8\x14\xe1\xa8\xe0\x51\x8a\xd0\xec\x04\xf0\x3b\x6a\x23\x94\x84\xbd\x70\x0c\x3e\x09\x78\xcd\x96\x37\xfc\x95\xad\x55\x09\x39\x5f\x83\x54\x16\x4a\x83\x60\x53\x61\x20\x16\x19\x02\xde\x44\x58\x58\x10\x12\x22\x95\x17\x99\xe0\x32\x42\xa8\x84\x4d\x1d\x49\x03\x11\xb2\x3f\x1a\x00\xb5\xb4\x5c\x48\xe0\x10\xa9\x62\x0d\x2a\xee\x4a\x01\xb7\x8c\x01\x00\xa4\xd6\x16\x93\xd1\xa8\xaa\xaa\x90\x3b\x2d\x43\xa5\x93\x51\x56\x4b\x99\xd1\xfb\xd9\xf4\x64\xbe\x38\x79\xb3\x17\x8e\x19\xbb\x94\x19\x1a\x03\x1a\xff\x2a\x85\xc6\x15\x2c\xd7\xc0\x8b\x22\x13\x11\x5f\x66\x08\x19\xaf\x40\x69\xe0\x89\x46\x5c\x81\x55\xa4\x67\xa5\x85\x15\x32\x09\xc0\xa8\xd8\x56\x5c\x23\x5b\x09\x63\xb5\x58\x96\x76\xcb\x41\xad\x56\xc2\x40\x57\x40\x49\xe0\x12\xbc\xa3\x05\xcc\x16\x1e\xbc\x3b\x5a\xcc\x16\x01\xfb\x34\xbb\xf8\xcf\xd9\xe5\x05\x7c\x3a\x3a\x3f\x3f\x9a\x5f\xcc\x4e\x16\x70\x76\x0e\xd3\xb3\xf9\xf1\xec\x62\x76\x36\x5f\xc0\xd9\x29\x1c\xcd\xff\x80\xdf\x66\xf3\xe3\x00\x50\xd8\x14\x35\xe0\x4d\xa1\x49\x77\xa5\x41\x90\xeb\x70\x15\xb2\x05\xe2\x16\x79\xac\x6a\x65\x4c\x81\x91\x88\x45\x04\x19\x97\x49\xc9\x13\x84\x44\x5d\xa3\x96\x42\x26\x50\xa0\xce\x85\xa1\xe0\x19\xe0\x72\xc5\x32\x91\x0b\xcb\xad\x5b\xdf\x33\x27\x64\xaf\x47\x8c\x15\x3c\xfa\x4a\x20\xb9\x2a\xa5\xb5\x68\x2c\x63\x22\x2f\x94\xb6\xe0\xb3\x81\x17\xe7\xd6\x63\x03\x4f\xa8\x91\x50\xa5\x15\x19\x2d\x94\xa1\x5f\x2b\x72\xf4\x18\x1b\x78\x89\xb0\x69\xb9\x0c\x23\x95\x8f\x4c\x11\xbf\xfd\x79\x14\xa9\xa5\xe6\x1e\x1b\x32\x36\x1a\xc1\x34\x5f\x7d\x68\x91\xc9\x7f\xa5\x69\x22\x93\xc8\x54\x19\x0b\x53\x12\x0e\xd9\x35\xd7\xdb\xa2\x87\xf0\x93\xc3\x09\xa7\x2a\xcf\xb9\x5c\x7d\x63\x83\x4b\x83\x13\x00\xf0\x36\x9a\x7a\x01\x1b\x2c\x52\xa5\xed\x04\xbc\xa9\x46\x4e\x89\x4e\x99\x68\xea\xac\x4b\xc4\x35\xca\xbe\x4b\x40\x95\xb6\x28\xad\x81\xd3\x05\xd8\x75\x81\x01\xa8\x4a\xa2\x0e\x20\x57\x2b\x0c\xba\xd2\x01\x44\x4a\x5a\x94\xd6\x50\x72\x3a\x5c\x22\x7c\xaf\x64\x32\x81\x9d\x84\x9b\xc8\xb8\xeb\xb0\x05\xd5\x65\xa6\x10\xb8\x53\x6b\x63\x31\x7f\xaa\x16\xed\x0d\xa9\xad\x72\xe7\x03\x10\xee\xdb\x1a\xf0\x46\x18\x1b\x92\x7a\x47\x3a\x31\x13\x80\xda\x77\x1f\xf8\x8d\xc8\xcb\x7c\x4e\x1f\xfd\xf1\x30\x60\x83\xf3\x52\x92\x0f\x73\x2e\x64\xc0\x6e\x99\xf3\xbb\xcf\x06\xb1\xb9\x58\x17\xf8\x91\xdb\x14\x7a\xff\x0e\xc1\xf3\xd8\x80\xe8\x3e\xa8\xd5\x0e\x89\xbb\xfd\x8f\xa8\xf3\xc7\xf6\xcf\xc8\xc2\x7b\x02\xf5\xbe\xc4\xea\x94\x20\xb8\x4d\xc7\xfb\xbf\xfc\xf2\xf8\xfe\xfe\xfe\xff\xd8\x1f\x3f\xba\x7f\x70\x70\x70\x6f\x5f\x23\x5f\x91\xc0\xb4\xf6\x75\x47\xcb\x9d\xfb\x33\xf9\x5e\xa9\xc2\x49\xb5\xfb\x56\xaf\x8f\x4b\xed\xae\x5a\xcf\xbe\xb7\xff\x1c\xb3\xc1\x52\x23\xff\x7a\x26\x4f\x6e\x0a\x8c\x2c\xae\x1a\x9c\x5a\xc0\xea\x12\xe9\xb6\xc4\xa5\x8c\x40\x48\x61\xfd\x21\x7c\x63\x83\xee\x75\x08\x4f\x33\x9e\x18\x7f\x18\x2e\xac\x16\x32\xf9\x9d\x6b\xff\xa7\xbb\x98\x05\xe0\xc5\xe6\x8a\xf2\xc8\x0b\xc0\xa3\xff\x9c\x6a\x56\x41\xa1\x85\xb4\x75\xc2\x19\x97\x68\x54\x45\xbc\xe1\x13\xc0\x3b\x01\x27\x78\x91\xe1\x15\xe5\xe6\xc3\x04\xb4\x0b\x4b\xe1\x6e\xcb\x53\x19\xda\x94\x69\x19\x28\xef\x1f\x66\xa0\xdd\xe7\xa0\x6f\x12\xae\x85\x77\x77\xec\x61\x7c\x55\xb9\x1a\x7a\x39\x3b\x76\xd7\xf5\xdf\xb3\xe3\x27\x92\xf5\xb2\x37\x00\x4f\x62\x75\xe5\x28\x69\xdd\x67\xa4\xae\x83\xf4\x3f\xc4\x42\x99\x05\xb1\x56\x79\x5d\x42\xc8\x46\x70\x87\x9e\xcb\xbb\xbf\xbf\xcd\xbb\xbf\xff\x02\xde\xfd\xfd\xe7\xf3\x8e\x7b\xbc\xe3\x97\xf0\x8e\x9f\xcb\x7b\x70\x70\xb0\xc5\x7b\x70\x70\xf0\x7c\x5e\x3a\xf4\x04\xde\x1d\xd5\xa1\x4d\xa9\xa6\x38\xf7\xa9\x1d\x5b\x5b\xe7\x37\x15\x9c\xe8\x5f\xc0\x77\x57\x6d\x7a\xac\x57\x42\x5e\x65\x4a\x15\x4f\x63\x17\x12\x48\xf8\x71\x2d\x66\xd2\x36\x2a\x74\x0a\x5a\x00\x9e\x5b\x5f\xb9\x9e\x1f\x50\x45\x0b\xc0\x3b\xa7\x4f\x40\x9f\x60\x55\x92\xee\x8e\xd2\xe9\xf3\x10\xfa\x3b\xa5\x32\x07\xbf\xbb\x1c\x06\xe0\xb9\x8d\x2b\x25\xaf\xb0\xd9\xea\x78\x98\xea\x64\x00\xde\x3b\x12\xa1\x66\x4a\x1d\xd1\x59\xa4\x24\xb4\xe2\xad\xb5\x01\xf8\x34\x9c\xba\x58\xbf\x79\xb3\xcb\x69\x10\x67\x3c\x01\x25\xb3\xf5\xd0\x1b\x52\x2b\x1c\x8d\xe0\x82\x66\xd9\x42\xab\x44\xf3\x9c\x52\x24\x56\x54\x71\x8c\xca\x11\xc8\x0e\x43\x4c\xbd\xee\xcd\x69\x24\x8c\x2c\xb7\xf5\x58\x63\x53\x24\x20\xc2\x36\x50\x70\x63\x36\x9f\x69\xf2\xd1\x61\x5d\xe4\xa9\xfd\xfa\x51\xbe\x82\xd7\x5b\x33\x4e\x00\x5c\x27\x06\x3e\x7f\x31\x2e\x17\x5c\x17\x68\x1a\xf4\x00\xb5\x06\x40\xad\x95\xae\x17\x06\x0e\xe1\xf3\x17\xf7\xe1\xdb\x2d\x1b\x0c\x19\x1b\xd0\xb4\x95\x21\xaf\x67\xbc\x32\xe7\xe6\x2b\x18\x05\x15\x42\xc4\x25\x18\xb4\xc0\xe5\xba\x53\xa6\x2b\x84\x8a\x4b\x1b\xb2\x81\x93\xf5\xc7\xe3\xf1\xb8\x81\x99\x9f\x5d\x9c\x4c\xea\x9a\xa8\x57\xe8\x62\xab\x62\xc0\x1b\x8c\x4a\xd7\xe0\x9a\x51\xe4\x9a\x6b\xa1\x4a\x43\xe3\x3e\xa9\x0f\x99\x90\xe8\xce\xd7\xe6\x0b\x03\xc2\xb9\x5c\x28\xc9\x33\x77\x0b\x79\x96\xa9\xca\x00\x07\x23\x64\xe2\x72\xb3\x3e\x69\xd5\x84\x0e\xba\xc3\x6f\x43\x80\x69\x8a\xd1\xd7\xa6\x6f\xb9\xb6\xa5\x62\xe0\x50\x70\x9b\x3a\x91\xbd\x10\xe0\x93\xbb\xdd\x1c\x24\x56\x75\x9e\x53\xac\x05\xc5\x87\xdb\x3b\xc9\x9f\x3b\x60\xdc\x6e\x82\xf7\x77\xb3\xb9\x16\xe4\x9c\x25\xba\x3b\xb3\x51\x61\x9a\x72\x99\xb4\x19\xdd\x75\x81\x3b\xaf\xc8\x08\xfa\x10\x91\x2f\x2b\x91\x65\xe0\xd2\xb6\xce\x91\x90\x31\x17\xac\x43\xa8\x1b\xb4\x7f\xd7\xa7\x87\x6c\x20\x62\x0a\x22\xfc\xed\x10\xa4\xc8\x28\xbe\x6d\x2c\x79\x51\xa0\x5c\xf9\xb4\x0a\x48\x64\xc8\x06\xb7\x1b\x24\x52\xce\xd9\x3b\xaf\x2b\xa0\x7f\xaf\xe3\xd0\xef\x0f\x82\xa7\xc6\x42\xbf\x3f\x0a\x7e\xec\xe0\xc7\x3f\x06\xde\xb5\x09\xfa\x7d\x31\x7c\x3b\x09\xf9\xdd\x91\xe8\xbb\xd0\x68\xea\xf1\xbb\xe3\xcf\x77\xa1\xb9\x29\xc7\xdf\x9a\x77\xbe\xcb\x95\x9d\xc6\xe3\xef\x68\x7c\xff\x2f\xec\xba\xa9\xf5\x19\xba\xad\xae\xd7\x82\x76\xb7\x8c\x17\xa8\x23\x62\xc8\x50\xba\xcf\x43\x3a\x35\x76\x67\x94\x09\x4f\x6e\x84\xf5\xdf\x36\x52\xed\x7a\xec\x7a\x83\xab\xda\x7d\xef\x50\x91\x81\xb6\x54\xbb\x4a\x4c\x48\x22\x76\xd5\x07\x0e\xe9\x65\xe0\xa0\x35\xda\x52\x4b\xd2\xae\x86\x6e\x2a\xcf\xbb\xb5\xc5\x5a\x31\x98\x1c\x42\xfd\xbc\x0e\xcf\x1b\x0e\x07\xbe\xd3\xb8\x38\xb7\xe1\x47\x9a\x59\x63\xdf\xab\x49\x49\x2f\x2a\x47\xdb\xb3\x86\xd2\xf0\xea\xaf\x09\xbc\xba\xfe\x53\x7a\x81\x53\xa9\x75\x42\xab\x10\x6a\x5d\x2b\xd4\x85\xec\xbc\x36\x1d\xde\x3d\x8c\xda\x60\xbf\x6b\xc4\x90\xda\x46\xc7\xca\x5b\xc6\x22\x25\xe9\xbd\x2f\x85\x15\x3c\x6b\x5f\x3b\xf5\x51\x7a\x32\xb9\x27\xfc\x1b\xaa\x97\xa8\x37\x15\xfc\x4f\xe9\x75\x3c\xbd\x75\xa5\x3b\xae\xae\x5f\xc7\xa0\x4c\x78\xda\x5c\xc8\x67\x39\x7f\xdb\xdd\x8e\x64\xc3\x10\xc0\xe7\x2f\xcb\xb5\x45\x7f\x5b\xef\x61\x4d\xf9\xc4\x68\x34\x7f\x53\xba\xeb\x4b\x4f\x8d\x42\xb3\xde\x95\x65\x0f\xe6\x60\x73\x8b\xb6\xdc\xb3\xfd\x16\x15\x34\x0b\x3d\xf0\xfa\x5c\x2a\x95\x3d\xc3\x79\xed\x92\xc2\xd6\xd7\xf0\xc9\xd7\xb5\x35\xa4\x0f\x12\x37\x15\xfb\xfb\xcd\x68\x27\xa6\x6e\x86\x36\x81\x6d\xe7\xa8\xf6\x5f\x33\x4f\x35\xe9\xab\xd7\x17\x34\xcc\x4e\x0e\xdd\x50\x1b\x2e\x30\x52\x72\x05\xaf\xeb\x55\xab\x89\xbf\xa5\xd7\x90\x0d\xe8\xa2\x19\xcb\xb5\xdd\x1c\x9c\xab\xca\x1f\xfe\xda\x80\x08\x19\xa1\xef\xf6\x87\xf0\x2f\xd8\xb0\xb4\xdb\x19\x62\xe1\xef\xb5\x24\x35\xa5\x9b\xfb\x76\x54\x89\xfb\x45\xa2\x75\x1a\xa5\xd3\xfd\xdc\xdc\x4a\xce\x93\xfb\xa5\xe2\x95\xa1\xc4\x6c\x3c\x2d\x64\xe2\x52\xb4\x85\xdc\xa4\xa9\x53\x44\xc8\x92\x9c\x77\xdb\xcb\xf8\x47\x8a\xc5\x1d\xce\xee\x82\xe1\x14\x7e\x20\xa0\x4e\x79\x11\xef\x3c\x49\x06\xf6\xca\x8a\x13\xdf\xd2\xeb\x52\xf6\xdf\x03\x21\xb4\x24\x13\x78\x65\x42\x38\x6f\x6c\xf6\x82\x1e\x9a\x33\xb9\x6b\xb3\x33\xba\xfe\xfb\x4d\xed\x81\xbb\x8b\x40\x57\xf7\x96\xfd\x37\x00\x00\xff\xff\xd7\x2d\x2f\xd6\x7c\x17\x00\x00") - -func testImagesAgnhostMounttestMtGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostMounttestMtGo, - "test/images/agnhost/mounttest/mt.go", - ) -} - -func testImagesAgnhostMounttestMtGo() (*asset, error) { - bytes, err := testImagesAgnhostMounttestMtGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/mounttest/mt.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostMounttestMt_utilsGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x94\xdf\x6e\xdb\x36\x14\x87\xaf\xcd\xa7\xf8\x55\x40\x06\xab\x73\x25\x27\xd8\x4d\x52\xf8\xc2\x4b\xb2\xce\x68\x6a\x17\xb1\xbd\xa2\xc0\x80\x81\x92\x0e\x25\xa2\x12\xa9\x90\x54\x15\xa3\xf0\xbb\x0f\x94\xec\x2c\x6e\x96\x2c\x08\x76\xd3\x1b\x02\x36\xcf\x9f\xef\x7c\x07\x54\x1c\xe3\xe7\xa4\x91\x65\x86\x57\xad\x54\x99\x6e\x2d\x63\xf1\x6b\x76\xae\xeb\x8d\x91\x79\xe1\x70\x32\x3e\x3e\xc5\xaa\x20\xbc\x6f\x12\x32\x8a\x1c\x59\x4c\x1b\x57\x68\x63\x23\xc6\xae\x64\x4a\xca\x52\x86\x46\x65\x64\xe0\x0a\xc2\xb4\xe6\x69\x41\xd8\xdd\x8c\xf0\x07\x19\x2b\xb5\xc2\x49\x34\xc6\xd0\x07\x04\xbb\xab\x20\x7c\xcb\x36\xba\x41\xc5\x37\x50\xda\xa1\xb1\x04\x57\x48\x0b\x21\x4b\x02\xdd\xa6\x54\x3b\x48\x85\x54\x57\x75\x29\xb9\x4a\x09\xad\x74\x45\xd7\x64\x57\x22\x62\x9f\x77\x05\x74\xe2\xb8\x54\xe0\x48\x75\xbd\x81\x16\xf7\xa3\xc0\x1d\x63\x00\x50\x38\x57\x9f\xc5\x71\xdb\xb6\x11\xef\x28\x23\x6d\xf2\xb8\xec\xa3\x6c\x7c\x35\x3b\xbf\x9c\x2f\x2f\xdf\x9c\x44\x63\xc6\xd6\xaa\x24\x6b\x61\xe8\xa6\x91\x86\x32\x24\x1b\xf0\xba\x2e\x65\xca\x93\x92\x50\xf2\x16\xda\x80\xe7\x86\x28\x83\xd3\x9e\xb3\x35\xd2\x49\x95\x8f\x60\xb5\x70\x2d\x37\xc4\x32\x69\x9d\x91\x49\xe3\x0e\x04\xed\xa9\xa4\xc5\xfd\x00\xad\xc0\x15\x82\xe9\x12\xb3\x65\x80\x5f\xa7\xcb\xd9\x72\xc4\x3e\xcd\x56\xbf\x2f\xd6\x2b\x7c\x9a\x5e\x5f\x4f\xe7\xab\xd9\xe5\x12\x8b\x6b\x9c\x2f\xe6\x17\xb3\xd5\x6c\x31\x5f\x62\xf1\x1b\xa6\xf3\xcf\x78\x3f\x9b\x5f\x8c\x40\xd2\x15\x64\x40\xb7\xb5\xf1\xec\xda\x40\x7a\x75\x94\x45\x6c\x49\x74\xd0\x5c\xe8\x1e\xc6\xd6\x94\x4a\x21\x53\x94\x5c\xe5\x0d\xcf\x09\xb9\xfe\x4a\x46\x49\x95\xa3\x26\x53\x49\xeb\x97\x67\xc1\x55\xc6\x4a\x59\x49\xc7\x5d\xf7\xfb\xc1\x38\x11\x7b\x1d\x33\x56\xf3\xf4\x8b\x2f\x52\xe9\x46\x39\x47\xd6\x31\x26\xab\x5a\x1b\x87\x21\x1b\x04\xa2\x72\x01\x1b\x04\xda\xfa\xd3\x6e\x6c\xca\xcb\x32\x60\x21\x63\xa2\x51\x29\x9a\x8a\xdb\x2f\x43\x7f\x40\x2a\x17\xfa\x03\xdf\xd8\xc0\x90\x6b\x8c\xc2\x2e\x3c\x5a\xdf\x45\x85\x6c\xcb\x58\x1c\xe3\x82\x84\x54\xfd\x86\xae\xa4\x6a\x6e\x31\xb4\x1b\x1b\x5b\xc7\x9d\xb0\x51\x11\xe2\x4d\x87\xe9\x36\x35\x41\x35\x55\x42\xa6\x1f\xbe\xaa\x85\xed\x39\x6d\xc4\x52\xad\xac\x43\xe9\xd3\x57\xfe\xe2\x03\xcf\x65\x8a\x09\xc6\xb7\xe3\xe3\xf1\xc9\xf1\xe9\xe9\x2f\x3b\x48\x61\x57\x9b\x9a\x86\x35\x77\x05\xfc\xee\x54\x1e\x82\x8c\xd1\xc6\xa3\x4a\x81\xee\x62\x32\x41\x10\xf8\x3f\xf6\xf0\x4a\x96\x6c\xb0\x65\x6c\x90\x34\x02\x67\x93\xbb\x61\x96\x1d\xe4\x5f\xee\xdb\xb6\x4b\x26\x63\x1e\xde\x76\xbd\x46\xf8\x29\x69\x44\xf8\xb6\x0b\x79\x35\xf1\x05\xbb\xfa\xa2\x72\xd1\x47\x23\x95\x13\xc3\xa0\xc7\x10\x46\x57\xe8\x87\x1f\x1e\xdd\x84\x67\x38\xfa\xfa\xa7\x0a\x46\xe8\xab\x90\x31\xe1\x3f\x58\x64\x4c\x8f\x25\x05\x92\x46\x44\x7e\x34\x0f\xff\xbd\x87\xef\x3b\x75\xd6\x7a\xa3\x5a\xe0\xe8\xe6\xac\xb7\x79\xd7\x27\x64\x83\x2d\xa8\xb4\xf4\x8c\xcc\x03\xbc\x3d\x44\xd8\x63\xdd\xb3\xb7\xdd\xfb\x97\x25\x7d\xd0\xd9\xcb\x37\xe0\x0b\x48\x25\xf4\x68\x6f\x5b\xdb\x4e\xf4\x70\x07\xbe\x5b\xc3\x7f\x3b\xee\x92\x9e\x6d\xf8\x50\x42\xd6\x8d\xdf\x7d\xe7\x1e\x38\xd8\x03\x46\xdd\x98\x61\xf8\xa8\x86\x8f\x64\xaa\x1f\x59\x83\xff\xbc\xd8\x67\x7b\x88\xba\x71\x9f\xd0\xb1\x68\x15\x99\xff\xf3\x61\x3e\xf5\x2c\x5f\xfa\x28\x5f\x66\x4a\xfb\xd1\xb0\x9e\x5d\x3c\xfa\x68\xd6\x32\x0b\xff\x2d\xe7\xdd\x13\x39\xef\xba\x9c\x03\x9b\x7f\x07\x00\x00\xff\xff\xd4\x95\x84\xc5\x0e\x08\x00\x00") - -func testImagesAgnhostMounttestMt_utilsGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostMounttestMt_utilsGo, - "test/images/agnhost/mounttest/mt_utils.go", - ) -} - -func testImagesAgnhostMounttestMt_utilsGo() (*asset, error) { - bytes, err := testImagesAgnhostMounttestMt_utilsGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/mounttest/mt_utils.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostMounttestMt_utils_windowsGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x55\x4d\x6f\xdb\x46\x13\x3e\x73\x7f\xc5\xbc\x04\x92\x90\x79\x69\xd2\x71\x2f\xad\x0b\x1d\x14\x7f\x34\x44\x52\xc9\x30\xe5\x1a\x01\x7a\x59\x91\x43\x71\x11\x72\x97\x99\x9d\x15\x2d\x14\xf9\xef\xc5\x52\xb4\x2d\xdb\xf5\xad\x87\x5e\xd6\xf4\xce\xcc\xb3\xcf\x33\x5f\xca\x32\xf8\xff\xda\xa9\xb6\x82\x41\xe9\xca\x0c\x56\x88\xec\xbd\x38\x33\xfd\x8e\xd4\xa6\x61\x38\x39\xfe\xf0\x0b\xac\x1a\x84\xcf\x6e\x8d\xa4\x91\xd1\xc2\xdc\x71\x63\xc8\xa6\x42\x7c\x51\x25\x6a\x8b\x15\x38\x5d\x21\x01\x37\x08\xf3\x5e\x96\x0d\xc2\x64\x49\xe0\x0f\x24\xab\x8c\x86\x93\xf4\x18\x22\xef\x10\x4e\xa6\x30\xfe\x55\xec\x8c\x83\x4e\xee\x40\x1b\x06\x67\x11\xb8\x51\x16\x6a\xd5\x22\xe0\x5d\x89\x3d\x83\xd2\x50\x9a\xae\x6f\x95\xd4\x25\xc2\xa0\xb8\x19\x1f\x99\x20\x52\xf1\x75\x02\x30\x6b\x96\x4a\x83\x84\xd2\xf4\x3b\x30\xf5\xa1\x17\x48\x16\x02\x00\xa0\x61\xee\x4f\xb3\x6c\x18\x86\x54\x8e\x2c\x53\x43\x9b\xac\xdd\x7b\xd9\xec\x4b\x7e\x76\xb1\x28\x2e\x8e\x4e\xd2\x63\x21\x6e\x74\x8b\xd6\x02\xe1\x77\xa7\x08\x2b\x58\xef\x40\xf6\x7d\xab\x4a\xb9\x6e\x11\x5a\x39\x80\x21\x90\x1b\x42\xac\x80\x8d\xe7\x39\x90\x62\xa5\x37\x09\x58\x53\xf3\x20\x09\x45\xa5\x2c\x93\x5a\x3b\x7e\x92\xa0\x7b\x56\xca\xc2\xa1\x83\xd1\x20\x35\x84\xf3\x02\xf2\x22\x84\x8f\xf3\x22\x2f\x12\x71\x9b\xaf\x3e\x2d\x6f\x56\x70\x3b\xbf\xbe\x9e\x2f\x56\xf9\x45\x01\xcb\x6b\x38\x5b\x2e\xce\xf3\x55\xbe\x5c\x14\xb0\xbc\x84\xf9\xe2\x2b\x7c\xce\x17\xe7\x09\xa0\xe2\x06\x09\xf0\xae\x27\xcf\xdd\x10\x28\x9f\x3a\xac\x52\x51\x20\x3e\x79\xbc\x36\x7b\x32\xb6\xc7\x52\xd5\xaa\x84\x56\xea\x8d\x93\x1b\x84\x8d\xd9\x22\x69\xa5\x37\xd0\x23\x75\xca\xfa\xe2\x59\x90\xba\x12\xad\xea\x14\x4b\x1e\xff\x7f\x21\x27\x15\xef\x33\x21\x7a\x59\x7e\xf3\x20\x9d\x71\x9a\x19\x2d\x0b\xa1\xba\xde\x10\x43\x24\x82\x70\xbd\x63\xb4\xa1\x08\xc2\xba\x63\xff\xc7\xd8\xfd\x99\xe1\x1d\x96\xfe\xd3\x32\x95\x46\x6f\xa7\x4f\xa5\x37\x36\x14\xb1\x10\xb5\xd3\x25\xb8\x4e\xda\x6f\x91\x3f\x40\x69\x8e\xfd\x01\x7f\x89\x20\xcb\x40\x1b\xd3\x8f\x82\x6e\xf7\x1d\x9c\x8a\x80\x90\x1d\x69\x38\x16\x3f\xa6\x68\xdf\x53\xcb\x41\x23\x45\xbd\xe4\x06\xf6\xe8\x31\x20\x91\xa1\x09\x66\x8a\x86\xca\xa0\x1d\x1b\xb2\x91\x5b\x04\xe3\x83\xe0\x26\x3f\x87\x0c\x7e\xcb\xcf\x53\xf8\x64\x06\xdc\x22\x25\xa0\xbc\x87\x9d\x1c\x8a\xfc\x3c\x9d\xc8\x30\x94\x8e\x08\x35\xb7\xbb\x31\xff\xd8\xa1\xf6\x05\x56\xfa\x60\x86\x7c\x97\x8c\xc4\x1f\xc9\x6a\xd5\x3e\xa1\xfb\xbb\xa9\xf0\x15\xb6\xaa\x86\xd1\x30\x9b\x41\x18\xfa\x8b\x43\x8c\xe0\x87\x10\xc1\x41\xed\x12\x1f\x07\xa7\x33\xd8\x20\x5f\xaa\x16\xaf\x90\xba\x11\x37\x1e\x81\xbc\xf1\x7f\x33\x1f\x79\x08\x84\x44\x7b\xa0\xba\xe3\xf4\x8a\x94\xe6\x3a\x0a\x3b\x53\xa1\x9f\xad\xfb\x4c\x8d\x83\xfa\xe6\xfb\x29\xbc\xd9\xfe\xa9\xc3\x64\xe4\x94\x1c\xb6\x4d\xfc\xaa\xb8\x07\x12\xff\x19\x71\x1e\xd4\xfe\x0b\xea\x9e\x13\x79\x10\x18\x19\x9b\x5e\x4e\x75\x4d\xf6\x72\x63\xcf\x6a\x2b\xc9\x4f\x47\x60\x1c\xfb\x25\x35\x0e\x49\xfa\xd1\xd5\x35\x92\x08\x02\x24\x5a\x3a\x7e\x76\x1b\x0b\x11\x94\x5d\xe5\x75\xfb\xd1\x49\xcf\x4c\xd7\x49\x5d\x45\x61\x6f\x06\x24\xdb\x60\xdb\xa6\x78\x87\x61\x02\xe1\xd1\xc2\xe8\x5c\x33\x92\x2c\x59\x6d\xc7\xab\x34\xbb\xaf\xc0\x24\x24\xed\xed\x87\x30\x11\x41\x10\x1e\x79\x82\x0b\xd9\xe1\xa4\x37\x1e\xdf\x49\x0b\xae\x3c\xbb\x19\xbc\x35\x8e\x1f\xae\x7c\x72\x67\xf0\x76\xcf\x50\x04\x53\x21\xbc\xf1\xda\xe9\xc8\x73\x7c\x59\x81\xc3\x8c\xef\x2b\x5e\x93\xe9\xe0\xca\xf3\x2e\x3c\x6f\x28\x4a\x52\x3d\xfb\xac\x27\xf7\x99\x47\xa2\xf1\x58\x3a\x4e\x8b\x31\x9b\x51\x1c\x3f\x96\xf3\x38\x79\xac\xa8\x71\xdc\x3b\xf6\x3c\xa6\x05\x92\xae\x48\x75\x45\x2f\x4b\x8c\xcc\xd3\xf0\xad\x6c\x1f\xba\x67\x5a\x3c\xe9\x95\x24\x8b\xb9\xe6\x68\x8f\x93\xc0\xcf\x09\xfc\x74\xf2\x8f\xbd\xf4\x52\x49\x2f\xc9\xfa\xbd\xb9\x7f\x19\xde\xbd\xb1\xef\x40\x5a\xbf\xa8\x1e\x7a\xe8\x1e\x16\x89\x5e\x11\x30\x5d\x1d\xf4\x4a\xb4\x95\x6d\x9c\x3c\x9d\x20\xbb\xda\xf5\xaf\x2d\x87\x2c\x03\xa3\xdb\x1d\x2c\x56\x97\x85\xff\x91\xb1\xae\xf7\x1b\x18\x2b\x90\x3c\x6e\xec\xce\xf8\x8d\xf4\x7c\xf1\xfc\x1d\x00\x00\xff\xff\xe2\x4e\xea\x18\x09\x08\x00\x00") - -func testImagesAgnhostMounttestMt_utils_windowsGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostMounttestMt_utils_windowsGo, - "test/images/agnhost/mounttest/mt_utils_windows.go", - ) -} - -func testImagesAgnhostMounttestMt_utils_windowsGo() (*asset, error) { - bytes, err := testImagesAgnhostMounttestMt_utils_windowsGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/mounttest/mt_utils_windows.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostNetCommonCommonGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x92\x4f\x4f\xf4\x36\x10\xc6\xcf\xf8\x53\x3c\xda\x13\xa0\x25\xa1\xa8\xa7\xf6\xb4\x05\xaa\xa6\xa0\xac\xb4\x59\x8a\x38\x7a\x9d\xd9\xc4\x22\xb1\xdd\xf1\x98\x10\x21\xbe\xfb\xab\x84\xe5\xdf\xfb\xde\x12\xcd\xe3\xdf\xfc\x66\xec\xfc\x54\x5d\xfa\x30\xb2\x6d\x5a\xc1\xc5\xf9\x6f\xbf\x63\xdb\x12\x6e\xd2\x8e\xd8\x91\x50\xc4\x2a\x49\xeb\x39\x66\x4a\xdd\x5a\x43\x2e\x52\x8d\xe4\x6a\x62\x48\x4b\x58\x05\x6d\x5a\xc2\xa1\xb2\xc4\x7f\xc4\xd1\x7a\x87\x8b\xec\x1c\xc7\x53\x60\x71\x28\x2d\x4e\xfe\x54\xa3\x4f\xe8\xf5\x08\xe7\x05\x29\x12\xa4\xb5\x11\x7b\xdb\x11\xe8\xd9\x50\x10\x58\x07\xe3\xfb\xd0\x59\xed\x0c\x61\xb0\xd2\xce\x4d\x0e\x88\x4c\x3d\x1c\x00\x7e\x27\xda\x3a\x68\x18\x1f\x46\xf8\xfd\xd7\x14\xb4\x28\x05\x00\xad\x48\xf8\x23\xcf\x87\x61\xc8\xf4\x6c\x99\x79\x6e\xf2\xee\x2d\x15\xf3\xdb\xe2\xf2\xba\xac\xae\xcf\x2e\xb2\x73\xa5\xee\x5c\x47\x31\x82\xe9\xff\x64\x99\x6a\xec\x46\xe8\x10\x3a\x6b\xf4\xae\x23\x74\x7a\x80\x67\xe8\x86\x89\x6a\x88\x9f\x3c\x07\xb6\x62\x5d\xb3\x44\xf4\x7b\x19\x34\x93\xaa\x6d\x14\xb6\xbb\x24\xdf\x16\xf4\x6e\x65\x23\xbe\x06\xbc\x83\x76\x58\xac\x2a\x14\xd5\x02\x7f\xad\xaa\xa2\x5a\xaa\xfb\x62\xfb\xcf\xfa\x6e\x8b\xfb\xd5\x66\xb3\x2a\xb7\xc5\x75\x85\xf5\x06\x97\xeb\xf2\xaa\xd8\x16\xeb\xb2\xc2\xfa\x6f\xac\xca\x07\xdc\x14\xe5\xd5\x12\x64\xa5\x25\x06\x3d\x07\x9e\xdc\x3d\xc3\x4e\xab\xa3\x3a\x53\x15\xd1\xb7\xe6\x7b\xff\x26\x13\x03\x19\xbb\xb7\x06\x9d\x76\x4d\xd2\x0d\xa1\xf1\x4f\xc4\xce\xba\x06\x81\xb8\xb7\x71\xba\xbc\x08\xed\x6a\xd5\xd9\xde\x8a\x96\xf9\xff\x97\x71\x32\x75\x9a\x2b\x15\xb4\x79\x9c\x20\xc6\xf7\xbd\x77\x4a\xd9\x3e\x78\x16\x2c\x3a\xdf\x2c\x94\xca\x73\x6c\x92\x73\xc4\xd3\xec\x1a\xa6\xb3\xe4\x64\xd2\x8c\xc4\x4f\x13\xce\x83\x93\xcb\x94\x8c\x81\x3e\x92\x4e\x88\xf7\xda\x10\x5e\xd4\x51\x9e\xa3\xa4\x61\x1d\xde\x1c\x98\x24\xf1\xe4\x06\x47\x03\xa8\x0f\x32\xc2\x1f\x6a\x51\x38\x19\x49\x4c\x13\x74\x47\x08\x3e\xa4\x4e\x0b\xd5\x33\x64\x37\x62\xcf\xbe\x9f\xfd\xff\xad\xd6\x25\xce\xde\xcf\x69\x6e\x52\x4f\x4e\x32\x75\xf4\xd9\xe9\xf8\xe4\x53\xe3\xe5\x75\x26\x6c\x92\x9b\x4f\xff\x3c\xc3\x12\xa2\x1f\xa7\xe5\x59\xf7\xee\x92\x61\x3b\xbd\x6a\x7a\x26\x93\x64\xbe\x85\x99\x20\x14\x05\xc6\xd7\x94\xa9\xa3\x4d\x72\xc7\x9d\x6f\x1a\x62\x9c\x76\xbe\xc9\x6e\xe7\xef\xe5\xc7\x34\x5f\xba\x9f\x80\x98\x3d\xab\x57\xf5\x23\x00\x00\xff\xff\xb0\x3a\x4e\xbc\xa7\x03\x00\x00") - -func testImagesAgnhostNetCommonCommonGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostNetCommonCommonGo, - "test/images/agnhost/net/common/common.go", - ) -} - -func testImagesAgnhostNetCommonCommonGo() (*asset, error) { - bytes, err := testImagesAgnhostNetCommonCommonGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/net/common/common.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostNetMainGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa4\x57\x6d\x6f\xdc\xb8\x11\xfe\x2c\xfe\x8a\x29\x8b\x24\x52\x2c\x4b\x4e\xee\x8a\x3a\x7b\xe7\x03\xf6\x7c\x0e\xe2\x9e\x63\x07\xbb\xce\xa5\x87\x24\xc0\x71\xa5\x59\x2d\x6b\x89\x54\x49\xca\x6b\x23\xf5\x7f\x2f\x86\x94\xd6\x52\xec\xb6\x01\xfa\x69\x57\x7c\x99\x97\x67\x9e\x79\x48\xe6\xcf\xd9\xb1\x6e\x6f\x8d\xac\x36\x0e\x5e\x1e\xbc\xf8\x1e\x2e\x37\x08\xbf\x76\x2b\x34\x0a\x1d\x5a\x98\x77\x6e\xa3\x8d\xcd\x18\x3b\x93\x05\x2a\x8b\x25\x74\xaa\x44\x03\x6e\x83\x30\x6f\x45\xb1\x41\xe8\x67\x52\xf8\x0d\x8d\x95\x5a\xc1\xcb\xec\x00\x62\x5a\xc0\xfb\x29\x9e\xfc\xc0\x6e\x75\x07\x8d\xb8\x05\xa5\x1d\x74\x16\xc1\x6d\xa4\x85\xb5\xac\x11\xf0\xa6\xc0\xd6\x81\x54\x50\xe8\xa6\xad\xa5\x50\x05\xc2\x56\xba\x8d\x77\xd2\x9b\xc8\xd8\xef\xbd\x01\xbd\x72\x42\x2a\x10\x50\xe8\xf6\x16\xf4\x7a\xbc\x0a\x84\x63\x0c\x00\x60\xe3\x5c\x3b\xcb\xf3\xed\x76\x9b\x09\x1f\x65\xa6\x4d\x95\xd7\x61\x95\xcd\xcf\x4e\x8f\x4f\xce\x97\x27\xfb\x2f\xb3\x03\xc6\xde\xab\x1a\xad\x05\x83\xff\xec\xa4\xc1\x12\x56\xb7\x20\xda\xb6\x96\x85\x58\xd5\x08\xb5\xd8\x82\x36\x20\x2a\x83\x58\x82\xd3\x14\xe7\xd6\x48\x27\x55\x95\x82\xd5\x6b\xb7\x15\x06\x59\x29\xad\x33\x72\xd5\xb9\x09\x40\x43\x54\xd2\xc2\x78\x81\x56\x20\x14\xf0\xf9\x12\x4e\x97\x1c\x7e\x9e\x2f\x4f\x97\x29\xfb\x70\x7a\xf9\xe6\xe2\xfd\x25\x7c\x98\x2f\x16\xf3\xf3\xcb\xd3\x93\x25\x5c\x2c\xe0\xf8\xe2\xfc\x97\xd3\xcb\xd3\x8b\xf3\x25\x5c\xbc\x86\xf9\xf9\xef\xf0\xeb\xe9\xf9\x2f\x29\xa0\x74\x1b\x34\x80\x37\xad\xa1\xd8\xb5\x01\x49\xd0\x61\x99\xb1\x25\xe2\xc4\xf9\x5a\x87\x60\x6c\x8b\x85\x5c\xcb\x02\x6a\xa1\xaa\x4e\x54\x08\x95\xbe\x46\xa3\xa4\xaa\xa0\x45\xd3\x48\x4b\xc5\xb3\x20\x54\xc9\x6a\xd9\x48\x27\x9c\xff\x7e\x90\x4e\xc6\x9e\xe7\x8c\xb5\xa2\xb8\x22\x23\x0a\x1d\x63\xb2\x69\xb5\x71\x10\xb3\x88\xaf\x6e\x1d\x5a\xce\x22\x8e\xaa\xd0\xa5\x54\x55\xfe\x0f\xab\x15\x0d\xac\x1b\x47\x3f\x52\xe7\x52\x77\x4e\xd6\xf4\x51\xeb\x8a\x7e\x14\xba\x9c\x4a\x46\xff\xb5\xdf\x4d\x68\xa9\xca\x72\xc6\x22\x5e\x49\xb7\xe9\x56\x59\xa1\x9b\xdc\xb6\xeb\x17\xdf\xe5\x85\x5e\x19\xe1\xa7\xae\x0e\x6d\x26\x75\x7e\xb5\x63\x6c\xee\xd0\xba\x5c\x36\xa2\x42\x9b\x8b\x4a\x6d\xb4\x75\x39\x99\x2f\x74\xd3\x84\x38\xbe\x7d\x8f\x12\x8e\xb3\x84\x31\x77\xdb\x22\x98\x4e\x29\x34\x6f\x45\x0b\x8d\x68\x3f\x86\xf8\x3e\x07\xab\xd9\xc2\xcf\x31\x76\x2d\x0c\x81\x90\xe7\xb0\xae\x45\x65\x77\xd8\xd3\x32\xa1\x4a\xa8\xa5\xc2\x0c\xa8\x42\x9d\x25\xf0\x84\xa9\x2c\xac\xb0\xd6\x5b\x5a\xea\x37\x96\x68\x0b\x23\x5b\x8f\x7d\xc6\xa2\x60\xc7\x3a\xd3\x15\x0e\xbe\xb0\x28\x5a\xa2\xb9\x46\x00\x08\x01\xb0\x28\x0a\xbe\x47\x03\x17\x61\xf3\x6e\xe0\xce\xdb\x0d\xe1\x5b\xe2\xa2\xa0\x0c\x60\x6d\x74\xd3\x8f\x82\x12\x0d\x12\xb7\xfb\x4f\xa9\xac\xa3\x2e\xcc\x58\x34\x6c\x3b\x82\x46\x5c\xe1\x62\xc0\x20\x4e\x76\xb8\xd4\xba\xba\xe8\x5c\xdb\xb9\x51\x94\x2b\xf0\x34\xc8\x7e\xee\xd6\x6b\x34\xec\x8e\xb1\x3c\x87\xe3\xa6\x3c\x47\x47\x01\x74\xb6\x6f\xb3\x80\x35\x1c\x53\x3d\x33\x8f\x5e\xbf\xe8\x08\x9e\xfa\x22\x67\xc7\x01\xb9\x2f\x2c\x7a\x6f\x71\x06\x00\xc4\x15\x9e\xb2\x68\xb9\xd1\xc6\xcd\x80\x1f\x1b\x14\xa4\x54\x5b\x5c\x59\x82\xc6\x50\x33\xf4\x79\x10\xfc\xd7\xc2\x48\xdd\x59\xe2\xe9\x56\x9b\x2b\x62\x3b\x95\xdb\x92\x8d\x33\xad\xaa\x19\xfc\x41\x9a\x67\xbb\xd5\x50\xa4\xad\xac\x6b\xb2\xe0\x2b\xd7\x6f\xf3\x7b\x3c\x32\xd0\x7b\x69\x74\x89\x20\x83\xfa\xf0\xfd\x7d\x3f\xca\x7d\xd9\x29\xc3\x4a\x5e\xa3\x4a\xa9\x97\xfc\x82\x01\x45\x61\x10\x9c\x91\x55\x85\x24\x34\x6e\x63\x74\x57\x6d\xe0\xcd\xe5\xe5\x3b\x2f\x3f\x14\x57\xc6\xd8\xbc\x76\x68\x94\x70\xf2\x1a\xeb\xdb\x74\xe4\x24\x98\x79\xe0\x45\xba\x10\x33\xde\x60\xd1\xb9\xd0\xfd\x7e\x6a\xc0\xa1\x94\x06\x0b\x57\xdf\x66\x70\xae\xfd\xbc\x70\x63\x73\x14\xe5\x34\x05\x0b\x85\x50\xa4\xd4\xab\xc1\x92\x70\x41\x44\x3c\x51\x64\x83\x19\x63\x27\x37\xa2\x69\x6b\xb4\xb3\x20\xb9\x43\x31\x15\x3a\x18\x6c\x83\x12\x6e\xbf\xa8\xb5\xc5\xad\x90\xf4\x4f\xa2\xa2\x59\xdd\x53\xf4\xd9\x17\xbe\xc0\x46\x3b\x9c\x97\xa5\xe1\x33\xfe\xe2\xe5\x5f\xb3\x83\xec\x20\x7b\x31\x7b\xf5\xea\xd5\x2b\x7e\xf7\xec\x31\xd3\x3e\x4e\x98\x1d\x1e\x1e\xbe\x82\xa7\x4f\xa1\xe8\x4c\x0d\xfb\xd7\xb0\xff\x77\x78\x77\xb1\xbc\x84\x5a\x17\xa2\xa6\xe5\x7e\x45\x6e\x3a\x95\x4f\xa3\xe8\x0b\xb8\x5f\x92\xfb\x33\x5a\xfd\x1f\xbd\xff\x91\xb2\x68\x6e\x2a\x3b\x83\xc0\xc6\xb7\xe2\x46\x36\x5d\x73\x4e\x63\xf1\x41\x92\x32\xea\xbe\x19\x40\x23\xa4\x4a\x89\xe6\xeb\x4e\x15\x20\x95\x74\x71\x42\x7d\x50\x63\x25\xea\x45\x5f\xfc\xd9\x11\x70\xce\x22\x22\xe5\x15\x7d\x18\xa1\xaa\x7b\x6a\x50\x6f\x4f\x96\xef\x1d\x01\x07\x0e\x7b\x70\xe5\x5b\x38\x34\x46\xf6\x9a\xaa\x13\x27\xd9\xd2\x37\xf7\x6f\xc2\xc4\x4f\x7d\xc1\x32\xaf\x0b\x29\xf0\x50\xc5\x14\x38\x11\x3c\xe2\x94\x1a\x9d\x10\x54\x63\xaf\xd1\x4e\xc3\x4a\x2a\x7f\x92\xc5\x98\x55\x19\xdc\x67\x7d\x78\x70\x78\x90\x90\x3c\x39\xe7\xdb\x84\x4e\x68\x4f\x2c\xbe\xc7\xa2\x28\xe2\xdf\xd6\x13\x7d\xe5\x1f\xa7\x7a\x6f\x69\xca\x78\x9e\xfc\xef\xf4\x02\x2a\x29\xf0\x9e\xb4\x3e\x41\xe0\xbd\xf8\x39\xbd\x23\x7f\x2c\xae\x85\xac\xe9\xe8\x9e\xf1\xbd\x31\xa0\x7b\x3c\xf9\x16\x47\xbd\x7a\xa6\xc0\x7b\x92\x0e\xae\xfe\xb6\xbc\x38\x87\x81\xb8\x4e\x7b\x24\x82\x69\x9e\xec\x4a\x4f\x44\x88\x8b\xa6\x84\xe7\x13\xf9\x4a\x83\xd2\x7f\xfc\x1c\x34\xd9\x73\x43\xae\x61\x9c\x1a\x1c\x11\x3d\x88\xd0\xa3\x7a\xf6\x83\x9e\x1b\xba\xca\x5e\x0b\x27\xea\x75\xcc\xdf\x76\xd6\x81\x45\x37\x5c\x03\x76\xed\xa6\xcd\xd0\x1f\x29\x58\x44\xd8\xdf\xdf\x60\xdd\x52\xda\x77\x8c\x79\x13\x4b\x74\x21\x75\x6f\x2f\x80\x00\xff\x22\x11\xcf\xce\x2c\x49\x2a\x5d\xc9\x12\x36\x0a\xef\xeb\x40\xb4\x17\xfb\x14\xd0\x18\x62\x71\x8f\x7b\x48\x22\x9e\x16\x6b\x82\x68\xc2\x22\x32\x4a\xdb\x8e\x8e\x40\xc9\xda\x5b\x8b\xd6\x8d\xcb\xde\x19\xa9\x5c\xcc\x83\xe5\xd9\x27\xf5\x49\x11\xef\xc3\x67\xb6\xea\x6b\x14\x27\x64\x21\xd2\x36\x3b\xb9\x91\x2e\x3e\xa0\xaf\x3b\xc0\xda\x62\x30\x44\x29\x78\x43\xeb\x98\x9f\x18\xa3\xcd\x0c\x9e\x5c\x73\x1f\x67\xf2\xff\x38\x7a\xe1\x1d\xb1\xb1\x2f\xba\xaa\x64\x6f\x84\x2a\x6b\x7c\xdd\xa9\x22\xe6\x5e\x65\x78\x0a\x1b\x3f\xb6\xe8\xd4\x22\x70\x3b\x61\xd3\xb8\x08\x18\x6a\xad\xe1\xa4\x52\x21\xc4\x11\xd0\xc9\xb8\xd4\xb1\x77\x74\x26\xad\x43\x35\x57\xa5\x5f\x10\x4f\xda\x5d\xc9\x3a\xf1\xd5\xbd\x27\xe0\xe4\x94\x1e\xdd\x5a\xbe\x8c\xae\x01\xe1\xc0\x97\x16\x7e\x6c\xaf\xaa\x9f\xf6\x7f\xa4\xa2\xff\xb4\xff\xe3\x70\x45\xfc\x89\x0e\x7e\x74\x9d\x51\xf7\xfb\x29\x6f\xfe\x98\x9c\xf3\x19\xa9\x7c\x76\x8e\xdb\x63\x9a\xf9\x20\xa4\x3b\xf6\x13\x71\x92\x3e\xdc\x13\x32\x7f\x64\x8f\x4f\xc8\xf8\x3d\xf7\xd9\x4c\xc9\xe5\x83\x0e\x1d\x94\x82\x11\xdb\xe9\x45\x27\x81\x78\x77\x15\xf1\x55\xd7\xc6\xf7\x99\xe9\xc9\xa8\x83\xe8\x06\x31\xf8\x48\xb6\x3e\x7b\x96\xeb\xab\x40\xeb\xde\xd8\x6e\x0d\x45\xd7\x7b\x88\x47\xdc\x9d\x1d\x01\x5d\x68\xb3\xf7\xaa\x11\xc6\x6e\x44\x1d\x7f\xfc\x4c\x97\x9d\xf8\x3e\xa0\x24\x1d\x74\x22\xf9\xc1\xef\xf9\xd3\x88\xef\x3d\xae\xbb\x50\xbf\xdc\xa5\x40\xd4\xf4\x94\x5d\xc7\xfc\x54\x5d\x8b\x5a\x96\x3b\xa5\x21\xd9\x99\x32\x99\x5a\x79\xc2\xaa\xde\xed\x0c\x9e\xec\xd1\xb2\xc1\x37\xdb\x35\x2b\x05\x3d\x72\x18\xb6\x57\x68\xfa\x71\xca\x34\x7e\x3a\x74\x41\x0a\xfc\xcf\xc0\xd3\x47\x24\x61\x88\x7d\x50\x80\x1e\xa7\x45\xa7\xe2\x60\x6f\xe4\xdb\x47\xf9\xad\xb9\x06\x43\x33\x78\xf6\xe4\xfa\xd9\x44\xb8\x06\x1f\x49\x7f\x85\xfc\xba\xbf\xfa\x01\xba\xd2\xf6\xa7\x89\xc7\x6b\x90\xe7\xe9\x41\x95\x05\x4e\x7d\x6d\x23\xde\xfa\xd7\x62\xb6\x40\xdb\x6a\x65\xf1\x83\x91\x8e\x52\x31\xf0\xbc\x1f\x0f\xad\xec\xcf\xf3\x11\xea\x0f\x62\xf1\x35\x7a\x6e\x08\xa9\xce\xd4\xef\x84\x71\x9e\x4d\xfd\x4b\x26\x5b\xb6\xb5\x74\xb1\xc9\xde\x2f\xce\xb2\x77\xc2\x6d\x52\xe0\x39\x29\xb3\x5c\x43\x8d\x2a\x1e\xb6\x24\xc4\x96\xef\xee\x65\xc6\x63\x15\x6f\x03\x70\xcb\xb6\x77\x2e\x07\xe4\x7a\xdf\xe1\xee\xde\xf3\x64\x67\x2a\x85\xef\x0f\xbc\x4e\x86\x42\xf4\x45\x09\x0a\x30\x3b\xda\xad\xfb\xf8\x32\x74\x82\xc9\x7e\xd6\xe5\xed\x58\x9d\xa7\x11\xf0\xb7\xf4\x46\x54\xd5\xce\xeb\x4a\x97\xb7\xfc\x51\x27\x34\xb3\x3b\x22\xc2\x73\x2f\x5b\xa0\x28\xe7\x75\x1d\x07\x37\x21\xf3\xaf\xba\xe3\xbf\x64\xec\x1b\x1a\x0c\x0a\x7a\x53\x7a\xcf\xa3\xae\x78\x34\x06\x7a\x4e\xf4\xfc\xdf\x31\x30\x74\xfc\xe8\x04\xfb\xfa\x00\x1b\xd4\x22\x54\x2d\x26\x3f\xc9\xc3\x2e\x2e\xb4\x72\xa8\x42\x7d\x27\x51\xfa\xd8\xc7\x4f\x2b\x0a\xf2\x93\x1a\x1d\x38\x4f\xfc\xcb\x23\x8a\xd0\x50\xbb\x3c\x76\xf2\x4c\x41\x18\x5c\xa5\xf0\x97\x87\x29\x92\xef\xd7\xbd\x6f\x2a\x90\xbe\x9a\xf8\xe2\x7b\x8f\x38\xb8\x63\xff\x0e\x00\x00\xff\xff\xbe\x8b\x61\x8e\xf6\x11\x00\x00") - -func testImagesAgnhostNetMainGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostNetMainGo, - "test/images/agnhost/net/main.go", - ) -} - -func testImagesAgnhostNetMainGo() (*asset, error) { - bytes, err := testImagesAgnhostNetMainGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/net/main.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostNetNatClosewaitGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x57\x6d\x6f\xdb\xc8\x11\xfe\xcc\xfd\x15\x73\x02\x2e\xa0\x0c\x89\x74\xf2\xa1\x28\x92\x4b\x00\x55\xb6\x7b\xea\x19\x52\x60\x29\x35\x0e\x45\x51\xac\xc8\x21\xb9\xf0\x6a\x97\xdd\x5d\x4a\xa7\x26\xfe\xef\xc5\x2c\x49\x99\x94\x64\xc7\x87\xf6\xfc\xc1\x92\xb8\xf3\xf2\xcc\xcb\xce\x33\x8c\x2f\xd8\x54\x97\x7b\x23\xf2\xc2\xc1\xbb\xcb\xb7\x7f\x82\x55\x81\xf0\x4b\xb5\x46\xa3\xd0\xa1\x85\x49\xe5\x0a\x6d\x6c\xc4\xd8\xad\x48\x50\x59\x4c\xa1\x52\x29\x1a\x70\x05\xc2\xa4\xe4\x49\x81\xd0\x9c\x8c\xe0\xef\x68\xac\xd0\x0a\xde\x45\x97\x10\x92\xc0\xa0\x39\x1a\x0c\x3f\xb0\xbd\xae\x60\xc3\xf7\xa0\xb4\x83\xca\x22\xb8\x42\x58\xc8\x84\x44\xc0\xdf\x12\x2c\x1d\x08\x05\x89\xde\x94\x52\x70\x95\x20\xec\x84\x2b\xbc\x93\xc6\x44\xc4\x7e\x6d\x0c\xe8\xb5\xe3\x42\x01\x87\x44\x97\x7b\xd0\x59\x57\x0a\xb8\x63\x0c\x00\xa0\x70\xae\x7c\x1f\xc7\xbb\xdd\x2e\xe2\x1e\x65\xa4\x4d\x1e\xcb\x5a\xca\xc6\xb7\xb3\xe9\xf5\x7c\x79\x3d\x7e\x17\x5d\x32\xf6\x45\x49\xb4\x16\x0c\xfe\xbb\x12\x06\x53\x58\xef\x81\x97\xa5\x14\x09\x5f\x4b\x04\xc9\x77\xa0\x0d\xf0\xdc\x20\xa6\xe0\x34\xe1\xdc\x19\xe1\x84\xca\x47\x60\x75\xe6\x76\xdc\x20\x4b\x85\x75\x46\xac\x2b\xd7\x4b\x50\x8b\x4a\x58\xe8\x0a\x68\x05\x5c\xc1\x60\xb2\x84\xd9\x72\x00\x7f\x99\x2c\x67\xcb\x11\xbb\x9f\xad\x7e\x5e\x7c\x59\xc1\xfd\xe4\xee\x6e\x32\x5f\xcd\xae\x97\xb0\xb8\x83\xe9\x62\x7e\x35\x5b\xcd\x16\xf3\x25\x2c\x6e\x60\x32\xff\x15\x7e\x99\xcd\xaf\x46\x80\xc2\x15\x68\x00\x7f\x2b\x0d\x61\xd7\x06\x04\xa5\x0e\xd3\x88\x2d\x11\x7b\xce\x33\x5d\x83\xb1\x25\x26\x22\x13\x09\x48\xae\xf2\x8a\xe7\x08\xb9\xde\xa2\x51\x42\xe5\x50\xa2\xd9\x08\x4b\xc5\xb3\xc0\x55\xca\xa4\xd8\x08\xc7\x9d\xff\x7d\x12\x4e\xc4\x2e\x62\xc6\x4a\x9e\x3c\x90\x11\x45\x29\x8f\x2f\x58\x22\x05\x2a\x17\x5b\x34\x5b\x34\xb5\x53\xb4\x94\x25\x98\xde\x2e\x96\xd7\xff\xba\x9f\xcc\x56\xe0\xc4\x06\x75\xe5\x20\xd1\x2a\x15\x64\x9e\xb2\x29\x4a\x47\x99\xb6\x30\x9f\xac\x22\xd6\x18\x82\xde\x5f\x6d\x95\x01\x7c\x83\xd3\xbf\x6f\xf4\xfc\xa7\xf1\xd8\x25\x25\x14\x5c\xa5\xb6\xe0\x0f\x38\x1e\x7f\x6a\x9f\xfb\xbf\x4c\xa8\xe6\xdb\xf8\x1b\x14\x5c\x66\xe3\x44\x6a\xca\x8e\xd1\x9b\xef\x98\x87\x06\x91\xb0\x84\xf6\x29\x1a\x9f\x06\xb1\x29\xb5\x71\x10\xb2\x60\x80\xc6\x68\x63\x07\x2c\x18\x08\x4d\xff\xa5\xce\xe9\x43\xa1\xa3\x0f\x0a\x7d\xc0\x58\x30\x78\xf8\xb3\x8d\x84\x8e\x1f\x0e\x97\x2c\xa6\x44\xc5\x62\xc3\x73\xb4\x31\xcf\x55\xa1\xad\x8b\x15\xba\x38\xd1\x9b\x8d\x56\x03\x36\x64\x2c\x8e\x41\x22\x7f\xc0\x74\xaa\x95\xc2\xa4\x4e\x9d\x05\x0e\xb9\xd4\x6b\x2e\x61\xcb\x8d\xf0\xed\xea\x0a\xee\xc0\x16\xba\x92\xa9\xd7\xf0\x85\xe3\x89\x13\x5b\x24\x23\xc9\x93\x3a\xb7\x56\xe4\x0a\x53\x28\xd0\x60\xc4\xe2\x58\x0a\xe5\xde\x8b\x5c\x69\x83\xf0\xe5\xed\xe5\xe5\x25\x08\xe5\x50\x91\x30\x97\x50\xa9\x8a\x6e\x7f\xeb\x88\x6d\xb9\x39\x85\x74\xa1\xd0\x45\xab\xe9\x67\x7a\xe4\x41\x4f\x29\xc9\xf7\x5c\xb8\xa5\x4f\xf1\xa2\xac\x7b\xaa\xd0\x32\xb5\x4d\xda\xe1\x6f\xcb\xc5\x1c\x74\x7d\x12\x31\xb7\x2f\xf1\x39\x35\xeb\x4c\x95\x38\xf8\xca\x82\x38\x86\x49\x9a\xfa\xde\x77\x1a\xd6\x42\xa5\x87\x3e\xa7\x6c\xb2\xe0\x56\x27\x5c\x92\x08\x29\x09\x95\x7b\x95\x55\xd3\x7e\x4e\xc3\x8e\x0b\x07\x3c\x73\x68\xc0\xa2\x4a\xa9\x4f\x49\xf9\x66\x36\x8f\x58\xf0\x59\x5b\x77\x23\x54\x23\xbe\x44\x6a\x57\x2a\xbe\x63\x8f\xac\x06\x98\xf4\x01\x76\x90\x35\x81\xc0\xc5\xf9\x18\xc8\x42\x1c\xc3\x1c\x77\x47\xe7\x60\xd0\x55\x86\xee\x1f\x28\xdc\xc1\x5d\xa5\x14\x9a\x88\x65\x95\x4a\xce\x48\x87\x43\xa8\xbb\x23\xaa\x05\xc9\x73\x6d\x00\xde\x1c\x61\xfb\xfa\xf8\xe4\xb3\x4d\x24\x97\x52\x27\x9c\x06\x3c\xf9\xd2\xbd\xf4\x56\xd4\x0d\xde\x6d\xd8\x14\xe8\xe2\xc8\xe2\xb0\x63\x2a\x1c\xfa\x2e\x31\x19\x4f\xf0\xeb\x63\x17\xc6\xf9\xf8\x0f\x68\xee\x2a\x55\x8f\x25\x7f\x3a\xb6\x22\xc5\x76\x98\x53\x05\xbf\x0b\xe1\xae\x52\xa1\xd4\x79\x4e\x87\x52\xe7\xd1\xad\xff\x3e\x02\xc3\x0f\x51\x76\x80\x0d\xc1\xdf\x4e\xc2\x27\xb2\x36\xe0\x11\xe8\x07\x78\xff\xb1\xa3\x12\x85\xcf\x94\x6d\xf8\x81\x64\xbf\xb2\x20\xa8\x01\x45\x6d\xce\x3e\xb6\xc6\x58\xf0\x08\x28\x2d\x7a\xa1\x26\x07\xf5\x44\x88\xe6\xb8\x0b\x07\x42\x6d\xb9\x14\x29\x50\xfb\x0c\x86\x2c\x78\x64\x2c\xa8\xf1\x47\x9f\x8d\x50\x2e\x0b\x07\x94\x92\x1f\xb7\x83\x11\xf4\x7d\x0c\x19\x0b\x78\x9a\x9a\x11\xd9\x23\xbc\x74\xc9\xee\xd0\x6a\xb9\xc5\xd5\xf4\x33\x35\x79\x38\x70\x49\x79\xa2\x18\x1d\x2e\xc1\xd0\x87\x4d\xea\x3f\x7c\x04\x25\xe4\x11\xc8\x06\x8d\xb0\x0e\x15\xf6\xfd\xdc\xfa\x87\xab\xe9\xe7\xd6\x05\x7f\x9d\xb9\x20\xc5\x0c\x0d\xb4\x36\x23\x9f\xd6\x70\x78\x1a\x74\xd3\xfd\xb5\x20\x5d\x43\xdd\x24\xa1\x76\xc4\x02\x1a\x59\x07\x48\x07\x7b\x93\x84\x96\x06\xc2\xf5\x7a\x30\x64\xe9\x79\x20\xd3\x7a\xca\x37\x13\x12\xd3\x01\xc9\xc4\x31\x2c\x51\xa5\x2d\x05\x74\x88\xe3\x66\x36\x07\xab\x3b\xdc\xa0\xf4\xae\xcf\x0f\x11\xdc\x23\x3c\x20\x96\xde\x0c\x35\x76\x23\x3c\xfe\xd4\x8e\xbe\x52\x94\x08\xba\x44\x45\x23\x69\x8b\x46\x64\x7b\xd8\x15\xe8\xb9\x5d\x1b\xbf\x2b\x91\xde\x7c\xb2\xf2\x36\x52\xa3\xcb\x92\x16\x88\xca\x74\x26\x79\x74\x48\xc0\xfb\x8f\x9d\x18\xef\x8d\x70\x18\x0e\x3f\x7c\xb7\xec\x67\xeb\x61\x09\xe8\xcd\x6c\x3e\xf2\x93\x92\xea\xf2\xe3\x16\x6c\x3d\x09\x07\xa3\x93\x7b\x10\x9d\x1d\x99\x94\xc1\x9f\xc6\xc4\x7c\xd1\x84\x46\x6d\xe8\xbf\x5e\x55\xc6\xaf\x16\xe1\xab\x4c\xc0\x85\xdf\x1a\xa2\xfa\xf7\x99\xba\x5d\x69\x85\xbe\x56\x4d\x60\x4a\xc8\x66\xc4\x1c\xae\x72\x5d\xda\x3e\xf9\x34\xb5\x78\x89\x7c\xfa\x6a\x3d\xf2\xb9\xc3\x8d\x76\xe8\xf9\xa5\x19\x5a\x4d\x45\x9d\x6e\x2b\x03\x4e\x47\x2c\xe8\x08\x9e\x12\x51\xcb\x2c\x5a\xc1\x2c\x5e\x3c\xed\xbc\x4d\x62\x58\x70\x86\x81\x48\xfd\xe7\xa7\x36\x6c\x37\xaa\xd0\x69\xc8\xc5\x16\x0f\x03\xd4\x9f\x78\x38\x05\x26\xf5\x1a\x60\x1d\x77\x95\x6d\x00\x7b\x43\x04\xd5\x19\x4e\xe7\x7e\x7b\x40\xe5\xcc\xfe\x45\x02\x24\xad\x5b\xda\x2b\x3a\x9b\x44\x58\xaf\x12\xe4\xec\x78\x1d\xb1\xba\x2b\x58\xd2\x0b\x82\x75\xd6\x5b\xe1\x16\xa4\x56\x39\x7d\x12\xb8\xd2\xe8\xa4\x5e\xc3\x37\x5c\x50\x2d\x02\x72\xd3\xd9\x2d\xd6\x5a\xcb\x53\xfe\x6d\x6e\xed\x4b\xfc\xdb\x2b\xe3\x19\xfe\x6d\x2f\xbe\x41\xcf\x88\x35\xff\x1a\x4f\xab\xa7\xf4\x5b\x0b\xbf\x8a\x7e\x6b\xd1\xff\x81\x7e\x9b\x16\xbd\x38\xb2\xf8\x3b\xe9\xb7\x17\xfe\x09\xfd\xd6\x3e\xa2\xcd\xf7\x5c\xfe\xe1\x74\xdb\x83\xf9\x44\xb7\x0d\xbe\x3f\x94\x6e\xfb\x3e\x7e\x07\xdd\xf6\x15\xa3\xa7\xbb\xfe\x2a\xbe\xed\x11\x1b\x39\xb9\x12\x5c\x76\x98\x56\x09\xf9\x7a\xba\x15\x19\xfc\x70\x04\xe7\xe8\xfe\x90\xd2\x19\x1e\x3c\x97\x99\x69\xcb\x81\x74\xa5\xeb\x61\xe4\x27\xac\xc8\x8e\x43\x3e\x9a\x10\x9f\xe0\xb2\xf1\x23\xf9\x9e\xc2\xea\x0f\xfc\x17\x95\x8f\x26\x3d\xd5\x9e\x70\x2e\xd1\xdd\x21\x4f\xaf\x90\xa7\x52\x28\xac\x29\x64\xae\x77\xe1\x30\x9a\xa4\x69\xe8\x3d\x0d\x9b\x30\xd6\x55\x46\x4e\x37\xfc\x01\xc3\x7f\xfc\x73\xbd\x77\x38\x82\xb7\x23\x78\x3b\x64\x81\x15\xff\xc1\x51\x8f\x24\xc9\x6a\xb8\xae\xb2\x26\xb0\x4e\x7a\xdf\xbc\x69\x7f\x09\x1d\x5d\x2f\x6e\xce\x56\x4f\x64\x40\x36\x49\xea\xf2\xb9\x26\xfc\xab\x76\x90\x72\xc7\x61\x5d\x39\x7a\x57\xaf\x73\x7a\xbd\xb8\x79\xa6\x23\x1b\xee\x2d\xb8\xed\x6c\x1a\x69\x7d\x4f\x0f\x85\x7c\x96\x91\x8f\xb2\xfb\x2c\x23\x9f\x56\xf1\x4c\xa7\x1c\x21\x23\x09\x72\x99\xf4\x96\xa4\xce\xf0\xf7\x2f\x50\x27\xf3\x7f\x48\x81\x06\x27\xaf\x89\x75\x05\xea\x14\xf4\xf6\x03\x16\x04\x2f\x76\xcc\xff\x75\x45\xf8\x6f\x00\x00\x00\xff\xff\x46\x2e\x84\x9e\xfd\x12\x00\x00") - -func testImagesAgnhostNetNatClosewaitGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostNetNatClosewaitGo, - "test/images/agnhost/net/nat/closewait.go", - ) -} - -func testImagesAgnhostNetNatClosewaitGo() (*asset, error) { - bytes, err := testImagesAgnhostNetNatClosewaitGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/net/nat/closewait.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostNetexecNetexecGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x7b\x6b\x73\xdb\xb8\xd5\xf0\x67\xf2\x57\x9c\x72\x26\x09\x95\xd2\x94\xec\x6e\xa7\xfb\x6a\xd7\xdd\xf1\xda\x49\xe3\x6e\xea\xf8\xb5\xec\xee\x74\xf2\x64\x5a\x98\x84\x24\x34\x14\xa0\x05\x40\x5f\x9a\xe6\xbf\x3f\x73\x0e\x00\x5e\x74\x8b\x9d\xa4\xf3\xdc\xfa\x61\x37\x32\x79\x70\x70\xee\x37\x80\xc3\xe7\xf1\xb1\x5a\xde\x6b\x31\x9b\x5b\x38\x18\xed\x7f\x03\x97\x73\x0e\x3f\xd5\xd7\x5c\x4b\x6e\xb9\x81\xa3\xda\xce\x95\x36\x79\x1c\xbf\x16\x05\x97\x86\x97\x50\xcb\x92\x6b\xb0\x73\x0e\x47\x4b\x56\xcc\x39\xf8\x37\x19\xfc\x99\x6b\x23\x94\x84\x83\x7c\x04\x29\x02\x24\xfe\x55\x32\xf8\x2e\xbe\x57\x35\x2c\xd8\x3d\x48\x65\xa1\x36\x1c\xec\x5c\x18\x98\x8a\x8a\x03\xbf\x2b\xf8\xd2\x82\x90\x50\xa8\xc5\xb2\x12\x4c\x16\x1c\x6e\x85\x9d\xd3\x26\x1e\x45\x1e\xff\xc5\x23\x50\xd7\x96\x09\x09\x0c\x0a\xb5\xbc\x07\x35\xed\x42\x01\xb3\x71\x0c\x00\x30\xb7\x76\x39\x1e\x0e\x6f\x6f\x6f\x73\x46\x54\xe6\x4a\xcf\x86\x95\x83\x32\xc3\xd7\xa7\xc7\x2f\xce\x26\x2f\xf6\x0e\xf2\x51\x1c\x5f\xc9\x8a\x1b\x03\x9a\xff\x52\x0b\xcd\x4b\xb8\xbe\x07\xb6\x5c\x56\xa2\x60\xd7\x15\x87\x8a\xdd\x82\xd2\xc0\x66\x9a\xf3\x12\xac\x42\x3a\x6f\xb5\xb0\x42\xce\x32\x30\x6a\x6a\x6f\x99\xe6\x71\x29\x8c\xd5\xe2\xba\xb6\x3d\x01\x05\xaa\x84\x81\x2e\x80\x92\xc0\x24\x24\x47\x13\x38\x9d\x24\xf0\xe3\xd1\xe4\x74\x92\xc5\x3f\x9f\x5e\xbe\x7a\x73\x75\x09\x3f\x1f\x5d\x5c\x1c\x9d\x5d\x9e\xbe\x98\xc0\x9b\x0b\x38\x7e\x73\x76\x72\x7a\x79\xfa\xe6\x6c\x02\x6f\x5e\xc2\xd1\xd9\x5f\xe0\xa7\xd3\xb3\x93\x0c\xb8\xb0\x73\xae\x81\xdf\x2d\x35\xd2\xae\x34\x08\x14\x1d\x2f\xf3\x78\xc2\x79\x6f\xf3\xa9\x72\xc4\x98\x25\x2f\xc4\x54\x14\x50\x31\x39\xab\xd9\x8c\xc3\x4c\xdd\x70\x2d\x85\x9c\xc1\x92\xeb\x85\x30\xa8\x3c\x03\x4c\x96\x71\x25\x16\xc2\x32\x4b\x7f\xaf\xb1\x93\xc7\xcf\x87\x71\xbc\x64\xc5\x7b\x44\x82\x76\x72\xc7\x8b\x38\x16\x8b\xa5\xd2\x16\xd2\x38\x4a\x0a\x25\x2d\xbf\xb3\x49\x1c\x25\x5c\x16\xaa\x14\x72\x36\xfc\xbb\x51\x12\x1f\x4c\x17\xf4\x5c\x28\xf7\xff\xa1\x50\xb5\x15\x15\xfe\x51\xa9\x19\xfe\x23\xb9\xf5\xff\x0c\x51\x8b\xe1\x77\xad\x09\x48\x19\xf7\xff\x21\x6e\x8a\x3f\x8d\xd5\x85\x92\x37\xfe\xa7\x90\x33\x02\x30\xf7\xb2\x18\x32\xab\x16\x82\x80\xac\x58\xf0\x24\x8e\xa3\x64\x26\xec\xbc\xbe\xce\x0b\xb5\x18\x0a\x33\x17\x25\xbb\x65\x96\xe9\x7a\x68\x0a\xb7\x53\xe7\xbd\x59\x4e\xf7\x7f\x33\x2c\xd4\xb5\x66\xb8\x14\xa9\x94\xdc\x42\xf2\xfe\x5b\x93\x0b\x35\x64\x4b\xb1\x60\xc5\x5c\x48\xae\xef\x87\xcb\xf7\xb3\x21\x02\x0c\x89\xf8\x41\x1c\xdf\x30\x8d\x92\x40\x06\xce\x51\x2a\x00\x70\x08\xdf\x8e\xbe\x1d\xc5\x51\x5d\x36\x8f\xdc\xb3\xfd\x38\xc2\xed\x5b\xb8\x3d\x7c\x32\xe7\x55\x75\xce\xec\x9c\x9e\x24\xc3\x6b\x21\x87\x66\x9e\xc4\x91\xe1\xfa\x86\xeb\x0b\xce\xca\x7b\x38\x84\xa7\x8e\xc7\x1f\x95\xaa\x3e\x8c\x3e\xc6\x51\xc1\xb5\x7d\x89\x4e\xe5\x96\x25\x71\xb4\xd4\xe2\xe6\x27\x7e\x4f\x0f\xe9\xc9\x20\x8e\x87\x43\x38\x5e\x94\x67\x4e\x73\x68\x9d\xb5\xf1\x76\x3f\x93\x73\x65\x2c\x1c\x23\xd7\x39\x71\xd1\x01\x3c\x84\xa7\x24\x8e\xfc\x58\x2d\x16\x4c\x96\x1f\xe2\xe8\xca\xf0\x31\x00\x24\xde\x0a\x92\x2c\x8e\x26\x73\xa5\xed\x18\x92\x63\xcd\x19\x86\x90\x57\x97\x97\xe7\xe9\x64\x90\xc1\xd5\xc9\x79\x86\xd6\x05\xa9\x5a\xa2\x69\xb1\xaa\xba\x1f\xc0\xe4\xf8\xf2\x1c\x1c\x53\xc6\x79\xfd\x0d\xd3\x42\xd5\x06\xb8\x2c\x97\x4a\x48\x6b\x10\xeb\x6b\x25\x67\x63\xf8\xdb\xc4\x32\x6d\x0d\xb0\x80\xd5\xaf\x44\x97\x9a\x89\x1b\x2e\x81\x6c\xb0\x09\x1e\x53\x55\x55\xea\x16\x2d\xbc\x41\x36\x8e\xe3\x3d\x18\x8e\xe1\x82\xdb\x5a\x4b\x43\x60\xe8\xfa\xdc\xd8\x67\x06\xd0\x50\x8c\x65\x8b\x65\x8e\x50\x45\x25\xb8\xb4\x62\xb9\x0d\xfa\xf4\x1c\x58\x59\xa2\x07\x12\x78\x29\x58\x35\x86\xc0\x37\xf3\x14\xc9\x7a\x71\x8d\x14\x4e\xc3\x42\x83\x51\x04\x11\xb9\xf7\x24\x70\x14\x0b\x91\x5e\x1b\xa4\xb6\x7d\xbb\xd4\xca\xaa\x42\x55\x59\x0c\x04\xa4\x3d\x21\x0c\xfe\x38\x79\x73\xd6\xe1\x54\xf0\xaa\x34\x90\x68\x6e\x96\x0a\x63\x5c\x02\xa9\xa9\x8b\x82\x1b\x33\xad\xab\xb0\x35\x34\xaf\x07\x84\x2d\xe1\x5a\x2b\x8d\xb0\x31\xc0\x94\x89\x8a\x97\x1b\x40\xf3\x86\xfd\xe4\x60\x34\x82\x37\x3f\x25\x60\x2c\xb3\xb5\x81\x42\x95\x1c\x84\x0b\xc1\x15\xa3\x45\x6e\x31\x6d\xcd\x4b\x5e\x22\xdd\xc9\x37\xfb\xbf\x83\x17\x77\x4b\x5e\xb8\x98\x02\x2f\x69\xa7\x04\x57\x0a\x0b\xa5\x28\x31\x2b\x64\x18\xc5\x92\x6f\x46\x23\xf8\x91\x95\x70\xe1\x10\x11\x0c\x93\x4d\x9c\x0f\x6a\x7c\x66\x60\xc9\x34\x5b\x70\xcb\xb5\x89\x01\x6d\x58\xc8\x1b\x56\x89\x32\xa7\x14\xb6\x11\x0e\x98\xe6\xe3\x18\x60\x0f\x12\x14\x7a\x32\x26\x50\x92\xbf\x9d\x33\x34\x9b\xaa\x82\x6b\x0e\xa8\x47\x8c\xa4\x04\x89\x5a\xf1\x90\xa4\xa0\xed\x90\x9e\x77\x0f\x8c\x06\xda\x90\x81\xac\x95\xcc\x32\xd4\xfc\x35\x07\xc3\x25\x22\xd2\xaa\x9e\xcd\xd1\x2d\x72\x38\x9d\x52\x62\xf4\x31\x9a\x97\x19\x0a\x86\x76\xd1\xdc\xd4\x95\xa5\xa4\x46\x59\x6f\x5d\x42\x5d\x5d\x5c\x73\x34\x1f\x67\x24\x2d\x0b\xde\x86\x02\x1b\xfe\x4f\xb8\x9d\x8b\x62\xde\xf0\x42\x31\xe0\x76\xce\x25\x2c\xd8\xfb\x60\x84\x9e\xa7\x1c\x4e\xf8\x94\xd5\x95\x85\x1b\x56\xd5\x7c\x0c\x09\x85\xe6\x9c\xc8\x3a\x2a\x30\x7f\x53\xb2\xa4\xb7\x26\xbc\xce\x20\xa9\x4b\xfa\x87\xc2\xab\xa7\xc6\x6a\xc1\x8d\x27\xa5\xf5\x0d\x72\xbc\xee\x96\x0d\x5d\x4b\xae\xa7\x4a\x2f\x78\xb9\x4e\xc4\x7e\x82\x7e\x97\x0c\x79\x31\x57\x49\xdf\x49\x9d\xf7\x24\x0b\x33\x4b\x20\x75\x10\x3f\x2c\xcc\xec\x10\x7f\xf0\xf2\xaf\xf8\x7c\xe0\xd6\xde\x09\x54\xd9\x71\xa5\x8c\x27\xc0\x87\x94\xc6\xb5\x1c\x2a\x12\x2f\xfa\xcc\x4c\xb3\x82\xa3\x4f\x99\x79\x6d\x4b\x75\x2b\x77\x58\x5c\x1c\x91\xc9\x45\x7b\x90\xe0\x7a\xcf\x35\x6e\xe9\xf0\x85\xdc\xbc\xd4\x0a\x3d\x75\x8d\xc3\x51\x0e\x47\x18\xc1\x30\x2b\x83\x90\x96\xcf\xb8\x86\xb7\xa3\xbd\xfd\x83\xdf\xbd\xcb\x09\x2d\xca\x4d\xd5\xc1\xe8\xd8\x42\xd5\x68\x6d\x4e\x9e\x68\x6d\xb7\x4c\x58\xda\xa6\x50\x52\xf2\xc2\xa5\x74\xab\xa0\x40\x7e\xe1\x9a\x4f\x95\xe6\xc4\x09\x16\x34\x40\xec\xc4\x51\xb4\xa6\x52\x74\x1d\x98\x29\x2c\x1d\xa0\xac\xb5\x2b\x0d\xc8\x6c\x47\x5d\x06\x9c\xd2\x88\x3f\xb1\x58\xf0\x52\x30\xcb\xab\x7b\x12\xa5\xaa\x6d\x1c\x45\x8d\xcc\x88\x78\x24\x6e\x37\xe5\x81\x40\x0c\xfb\x48\x60\x2b\xf3\x8d\x24\xc6\x11\x3c\x98\x4a\xc2\xd9\x20\xec\xd2\xeb\x8c\x6a\xce\x59\x65\xe7\xff\xe8\xd8\x55\x13\xfd\x7c\xc4\xf3\x86\x22\xb0\x76\x64\xe5\x7d\x86\x81\xee\x00\x26\xce\x1d\xcf\x35\x2f\x94\x2c\x45\x37\xe0\xc5\x00\x0a\xeb\xb6\x5b\x61\xb8\xb3\x9a\x16\x45\xa1\xa4\x11\x25\xc7\x02\x14\x23\x01\x61\x0c\x1b\x5d\x9d\x84\x14\x19\x82\xa5\xa7\xfe\x9e\x63\x68\xc1\xf8\x67\x49\xea\xe8\xf2\x44\xbb\x32\x56\xb2\x05\x5f\x71\x0a\x87\xe3\x99\x81\xf0\xbe\x85\x3e\x7b\x30\x34\x55\x26\xc9\x18\x5e\xdc\xf1\xa2\xb6\xbc\xe7\x6e\xf4\xce\x57\x07\x09\xc5\xf3\x62\x51\x92\x03\xd2\x9b\x1f\x8a\x45\x79\x68\xd4\x82\xef\x15\x1e\x86\xd2\x50\x0c\xab\x69\x0d\x0b\x48\x26\x64\x88\x42\x21\xb9\xa9\xda\x2e\x6b\x9b\x40\xea\x97\x3f\x33\xe0\x1e\x75\xb3\x59\xf7\x75\x0c\x40\xcf\x60\xc1\x8d\x61\x33\xbe\x29\x95\x79\x19\xfb\x35\x9d\xcc\xb5\x33\x6f\x49\x65\x83\x38\x9c\x01\xed\x8e\x21\xad\xcb\x8f\xdc\xb2\x7a\x59\x29\x56\x26\x63\x6f\xc7\xc8\x39\x35\x43\x2e\x41\xb8\xb7\x48\x83\x6f\x35\x50\xc1\x42\x12\xaa\xb0\xd6\x24\x58\xde\x94\xae\xf8\xb1\x3e\x91\x61\x8c\xbd\xf8\x44\x89\xd0\x91\xe2\x8a\x94\x2b\xfe\xcc\x00\x6a\x3a\xa0\x74\x6c\x04\x25\x05\xf9\x76\xd6\x61\x6a\x5e\x2a\x8b\x55\x12\xab\x02\xd7\x68\xc7\x4e\xee\xd8\x38\x9e\xfa\x50\xce\x2a\xa3\xbc\xd9\xb2\xae\x45\xfb\xad\x84\x2c\x45\xc1\xb0\x3d\xc2\x77\x6d\xaa\x75\x65\x48\xd9\x14\x4d\x6d\x49\xe7\x35\xe6\x2a\xba\xe4\xa1\x26\x8f\xb0\x98\x04\xe0\xfb\x85\x99\xfd\x7e\x63\xd6\xa0\x37\x08\x17\xea\xbf\xe4\xd3\x05\x60\x1c\x1f\x95\xce\xd9\xb1\xac\xcd\xd0\x44\x52\x34\x27\x25\x2b\x74\xe3\x01\xec\xed\x61\x12\xdc\x23\xc6\x04\xe6\x08\x63\xba\x69\xde\x0b\x46\x76\xeb\x61\x27\x1a\x66\x49\x1a\x59\xec\x25\x41\xea\x72\xb2\x30\xa8\xaa\x20\x06\x60\x66\x25\x58\xe4\xf1\xdf\xb2\x38\x3a\xd2\x33\x33\x06\x57\xb8\xff\x89\xdd\x89\x45\xbd\x38\xc3\x67\xe9\x68\x90\xc5\xd1\x45\x2d\xc7\x00\x0b\x26\x64\x16\x7f\x8c\xe3\x69\x2d\x0b\x10\x52\xd8\x74\x00\x1f\xe2\xa8\x2d\xfe\xf3\x97\x15\x9b\x99\x74\x90\x9f\x4a\xfb\x67\xa6\xd3\xa7\xa1\xb5\xc9\x5c\xb2\x27\xc6\x92\x8c\x7a\x9c\x0c\x12\xaa\x7e\x5e\x0b\x63\xb9\x04\x84\x4a\x06\x1b\x91\x4d\xa8\x63\x23\x7c\xa1\x73\xc9\x20\xb1\x95\xd9\xc3\x3f\xf7\xd0\x22\xb1\x7c\xc0\x06\x20\x4a\xa8\x85\xe9\xd9\x1e\xdc\xfd\x76\xf4\xff\x00\x41\xb1\xb1\x65\xd6\x25\x54\xdc\x7b\x92\x43\x7a\x7c\x44\xaf\x32\x5f\x42\x66\xb8\x16\x81\x24\x59\x19\x9b\x5a\x34\x55\x27\x68\x84\x1b\x7c\x9a\xc6\x4e\x2f\xe5\xc9\xc4\x27\xcc\xf2\xbd\xf7\xfc\xfe\x81\xd4\xfa\x15\xf0\x9e\xdf\xc3\x82\x59\xec\x20\x67\xb0\xb7\xd7\xe7\x79\x33\x25\x41\xf4\xbe\x83\x74\xe5\x55\x47\xf0\xfb\x19\x24\xa8\xfd\x4f\xcb\x3d\x60\x0a\x7d\xa7\x2f\xd1\x02\xae\x3d\xc4\x44\x86\xd8\x47\xf5\x91\x5a\xc7\xb6\xe5\xc4\x9a\xd1\x00\x06\xa3\xa1\xb1\x98\xa7\xd5\x92\xfb\xac\xeb\x87\x1c\x42\xda\xdf\x1c\xa0\xb9\x1a\xb1\xa8\x2b\xe4\x9b\x49\x8f\x00\xae\x95\xaa\x38\x93\x79\x6c\xef\x97\xbc\x8b\xd5\x58\x5d\x17\x16\xed\xef\xc6\x21\xf0\x1b\x1b\x6e\xf1\x3f\xe3\xe3\x85\xc7\xdc\xfa\x6d\x83\x90\xac\x38\x65\xf0\xbc\x45\x8a\x9d\xa2\x4d\xa9\x52\x20\x38\x32\x6f\x31\x75\xb5\x03\xfe\x8e\x1c\x6c\x3e\x41\x46\x4e\x11\x79\xfa\x94\xe5\x37\x19\xec\x0f\xe2\x28\x72\xf9\x29\x8e\x3e\xc6\x5b\xe1\x46\x41\x3e\x33\x6e\x9b\x7c\x66\x75\xdd\x34\x48\x8e\xe2\xc3\x43\xd8\xdf\x4c\xe0\x8c\xa3\xd7\x21\x71\x48\x8f\xc3\xe0\xc5\x92\xbf\x56\xac\x6c\x37\x1b\x38\x2c\xc1\x5f\xd1\x7b\xd3\x62\x51\xc2\xf3\x5e\x7b\x9e\x01\xd3\x33\x03\x6f\xdf\xb9\xb9\x08\x71\x8c\x79\xe8\x78\x0e\xe3\x43\x2c\xf2\x79\x5a\xcc\x99\x6c\x4a\x20\xdf\x50\x0c\xe2\x88\x95\xe5\x85\xc2\xdc\x9e\x3a\xf8\x41\x1c\x47\x33\x1f\xbc\xaf\x4e\xce\x27\xe4\x34\xa9\x37\xc3\x01\xc9\xb1\x99\x60\xfc\xea\x10\xf6\xf6\x49\xa0\x61\x05\x1a\x92\x5f\x12\xa0\x06\x28\xc9\x30\xcb\x40\x6a\x28\x9c\xe4\x0e\xea\xc3\x51\x59\xea\x31\x4c\x17\x36\x9f\x2c\xb5\x90\x76\x9a\x26\xe3\x27\x65\x92\x41\x88\x39\x83\x8f\xb4\x67\xc5\x65\x1a\xc2\xc6\x00\x7e\x0f\x23\xda\xd6\xed\xe9\xf7\xa3\x7f\x32\x70\x6c\x64\x80\xe2\x4a\x07\xbe\x26\xf8\xe0\xb5\x14\xa2\xa5\xb3\xf5\x23\x59\xd2\xe2\xcb\xd7\x93\xb4\x8d\x49\x1d\xcf\x1f\xc0\x47\x24\x1f\x78\x65\xf8\x27\x37\xdc\x88\x9a\xb8\x0f\xca\x5b\x95\x35\x6c\xd4\x09\x6e\x44\x22\x7a\xc5\x64\x59\xf1\x97\xc8\x47\x32\x4c\x32\xd0\x4a\x59\xf7\x4c\x0f\x36\x81\x34\x29\x2c\x03\xf7\xf3\xf4\x7c\x17\x38\x75\x52\x19\xe0\x3f\x3b\xc1\xb0\x69\xf2\xe2\xbc\x25\xb5\xe4\x17\x7e\x5c\xf0\xb3\x16\x16\x25\xa0\xf9\x2f\xf0\xdc\xbf\x09\x3c\x90\x58\x3c\xde\xf4\x96\x60\x82\xa8\x9c\x54\xd7\x77\x6a\xd2\x7a\xd6\x64\xf0\x5d\x84\xb9\xe2\x34\x03\xfa\x77\x17\xa0\xaf\xbf\x32\x5f\x6a\xed\x02\xc5\x26\x3f\xc9\xa8\xd7\xdf\x05\x16\xfa\x85\x0c\xfc\xaf\x16\x78\x38\x04\x57\xa9\xcd\xdd\x23\xb3\x8d\xd3\xb3\x96\xd3\xb3\x4f\x72\xea\xeb\xce\xac\x31\x96\x06\x3c\xd8\xd6\xba\x65\x7a\x95\x4c\x7a\x66\xba\xd1\xe4\x32\x98\xca\x9e\xbf\x90\x0d\xce\x54\x78\xf6\x81\xa2\x22\xfa\xee\xf7\x7b\x0e\x4d\x1c\x45\x85\xbd\xcb\xa0\x60\xb2\xe0\xd5\x4b\x89\xef\xfc\x24\x38\xff\x59\xd8\xf9\xa5\x6b\x55\xd3\xf0\xec\x47\x56\xbc\x9f\x69\x55\xcb\x32\x1d\xa0\x2d\xe4\xbe\x97\xc5\x78\x5b\xf2\x29\xa6\x65\x8f\x29\xc5\x47\x5c\x53\xa4\xf0\x1e\x35\xf1\xd4\xa6\x85\xbd\xc3\xb7\x95\x9a\xe5\xe7\x3e\x58\xfc\x61\xb5\x43\x77\x07\x0b\x1c\xd3\x3e\x56\xc3\x63\x78\x72\x83\x46\xae\x51\xb2\x91\x32\xf9\x8b\x3b\x61\x53\xcd\x73\x2c\xd0\xd1\x39\x53\x0c\x78\x62\x0a\x7e\xcb\xa9\x4c\x07\xdf\xd1\x1f\xbf\x3a\x04\x29\x28\x3c\x87\xd7\x87\x87\xce\xfc\x5f\x68\xed\x84\x4a\x4d\x40\x49\x20\xa8\x77\xea\x62\x6b\x69\x45\xe5\x12\x95\xd2\xaa\xb6\x42\x72\x28\x58\x55\x19\x08\x9b\x23\x21\x91\xe1\x15\xc7\xbc\xf7\x31\x8e\x30\xd1\x10\x4f\x2f\x99\x65\x55\xea\x48\x6d\x83\x46\xc7\xeb\xb7\xfa\xdf\x9a\xf7\xc5\x7d\x21\xbd\xb8\x84\x21\x96\x07\x18\x67\x5f\xfa\x38\x7b\x9b\x41\x72\xf6\xe6\x67\x2f\x20\xd4\x47\x7e\xa6\x6e\xd3\x41\x6b\x52\x9d\xc8\xf0\x45\x3b\x37\x03\x99\x27\x06\xa3\x58\xfe\x52\xe9\xc5\x9f\x31\x17\xa7\x34\xb3\x19\x6c\x20\x6c\x2b\x64\xa0\x6d\x25\xc0\x7d\x11\x7d\x4d\xdc\x5c\x27\x44\xe7\x17\x7c\xa1\x2c\xc7\x34\x45\x9b\x53\xfd\xb2\xe2\x3e\x9d\x22\x86\xda\x3e\x1a\xdf\xd9\x38\xf2\x36\xee\x64\x7b\xe2\x67\x14\xad\x74\xbb\xf1\xf1\x41\xd4\xf7\x7c\xf8\xfb\xbd\x8d\x89\x03\x6d\xd0\x55\xb1\x68\xcd\x3d\x09\xd2\x04\x66\xd0\x90\xb5\x05\x2a\x0c\x99\x06\x8e\x99\x2d\x50\x34\xe1\x1a\x6c\xd2\xf5\x9d\xb0\x3f\xe0\xdb\xc3\x27\xe6\xa9\xc7\x85\x3f\x71\x73\xa7\xff\x16\xab\xb3\xba\x86\x94\x0c\x5a\xe2\x5b\x32\xb3\xe0\x99\x24\xc5\x73\xa6\x0d\x0f\xa2\x4c\x7b\xcb\x07\x8d\x1b\x7b\xcf\x7d\xfa\xb4\x8f\x1f\x9f\x27\x09\x79\xeb\xaa\xb9\x31\x3d\xab\x17\x5c\x5a\x78\xe6\x57\x3c\x83\x45\x6d\x2c\xb6\xe7\x0c\x68\xd4\xbc\x3a\x6a\x02\xa5\x81\x2f\x96\xf6\x3e\x83\x99\xb2\xf0\xe4\x97\xff\x90\xc9\x0a\x3f\x2b\xb5\x24\x32\xb7\x8b\x99\x1e\xf3\x6b\x9c\x74\xf4\xfa\x10\x36\x10\xfc\x33\x79\xe8\xd1\xd1\x65\x00\x15\xd7\x30\xe0\x8f\xe2\xf2\x23\xab\x44\xda\xaa\x74\x13\xe9\x1d\x33\x7a\x08\xe9\x08\xde\x21\x7d\x6d\x16\xba\x99\xea\x1e\x09\x5d\xaa\xbb\x16\xfa\xb3\x1b\x33\xcf\x84\xec\xcc\x02\x25\x3c\x31\x19\xb0\x30\x69\x78\x62\xb6\x8e\x50\x33\x0c\xeb\xb2\x33\xf7\xa4\x71\x0b\x55\xab\x4e\xb9\x8d\xc9\xfa\xe4\x42\x5a\x9e\x54\x9c\x2f\x49\xbb\x4e\x38\x21\x2a\x1c\x1e\xfa\x22\x36\xe4\x85\x90\x91\x9a\xca\x7d\xdd\xc5\x3f\x20\xcc\x18\x9c\x26\x3c\xa2\x71\xf8\xd1\xa6\x8c\x95\xea\xe9\x8b\x82\x63\x53\x94\xf5\x82\x23\xea\x6c\xc6\xed\x2b\x5f\xbc\xf8\xac\x31\x1c\xfa\x7a\xc8\x6f\xdc\x9c\x2b\x39\x49\x31\x38\x18\x8d\x36\xcc\x39\xc3\x50\x35\x87\x53\xeb\x47\x47\xf8\xc2\x50\x03\x6a\x80\x79\xa4\x50\xcc\x79\xf1\x3e\x9c\x0e\xd1\xd4\xc1\x23\xb8\xbe\x87\x1b\xa1\x6d\xcd\xf1\xa5\x3b\x16\x71\xa7\x86\xa1\x08\xf3\x6d\x62\xbf\x58\xfb\x32\xb1\xf8\x0a\xd0\x77\x44\xed\x41\x6d\xee\x5a\x3b\x54\xec\x6d\x4e\x28\x5f\x71\x56\x72\x9d\x1e\x8c\x46\xab\x11\xa1\xf7\xde\x15\x6b\x34\x50\xee\xce\x93\xdd\x1c\xb2\x53\xe7\xf5\x0b\xc0\x2f\x62\xa2\xa9\x2b\x07\x71\x63\x85\xa3\x76\xab\x4e\x15\xfc\x98\x6d\xdc\x88\xbe\x89\x14\xb5\xae\x5c\xa4\x4b\x75\x7e\x75\xf1\x3a\x80\x5e\x5d\x9c\xa2\xd5\xac\x84\x0b\x14\x5b\xa8\xb1\x14\xf5\x0d\xbd\xd6\xb0\xa9\xe5\x5c\x7f\xe8\xc5\xf5\x23\x2b\xdb\x7e\xb6\x23\xe0\x38\xa2\xf3\xbe\xf1\xa1\x3f\x35\xc8\xff\x7f\xcd\xf5\x7d\x3a\xc8\xff\xc0\x6d\xea\x8e\x05\x07\x71\x44\x53\xba\x2d\x30\x4b\x3f\x56\x09\xe7\x54\x5b\xc0\xc2\x69\xe0\x00\xd0\x03\xbc\x4f\xc4\x51\x73\xf8\xb6\x0d\x7b\x38\xab\xc3\x50\xa1\xef\xcf\x99\x66\x8b\x6d\xb0\xee\x24\x6d\x53\xc6\x45\x2d\xfd\x80\x9b\x62\x9a\x0d\x28\xe9\xb7\xd2\xf4\xcc\x53\x47\x09\x19\xb1\xb8\x34\x8c\x2b\xb2\xf6\xc8\xd9\xcd\x1d\xc3\xb8\x33\x83\x40\x0f\x91\x26\xb8\x41\xba\xf6\x9b\x4e\xbc\x79\xdb\x74\xe2\x04\xe4\x74\xbe\x92\x1c\x3a\x98\x3e\x3e\x52\xdd\x6e\xe7\xe6\x88\xad\x77\xf2\xfb\x38\x53\x08\x84\xeb\x60\xa7\x4d\xf4\xdd\xb1\x7d\xd0\x7a\x4b\x40\xef\xdc\xf6\xb1\x34\x38\x73\x3c\xf7\xe6\x26\xb9\xcd\xff\xa8\x84\x7c\xe5\x9f\xa5\x5e\x21\x6e\x62\x72\xc3\x34\x4d\x9b\x09\x0c\x8b\x4f\xf7\x88\xce\xa0\xb5\x6b\xcb\x8c\x2f\x9a\x02\xc4\x00\x9a\x47\xae\x87\x8b\x23\x73\x2b\x6c\x31\x07\x7f\x57\x26\xbf\x54\xaf\xd5\x2d\xd7\x69\x50\x3a\x79\x6b\xc1\x0c\x87\x24\xf1\xa3\xdd\x64\x1c\x47\xad\xdd\x1e\xfa\x87\xd8\xa4\xb9\x9d\x0f\x5d\x50\xb8\xbc\x3c\x8f\xa3\x08\x09\x0c\x2a\x47\x2a\x2e\xb8\x51\xd5\x0d\xbf\x3c\x3e\x47\x7a\xd2\xc4\x16\x4b\x6f\x68\x7e\x0e\xe4\xf6\xaa\xcb\xf5\x6d\xf0\xd9\xea\x2e\x57\x27\x3b\x36\xb9\x3a\xf1\x9b\xb8\x53\xe7\xb5\x4d\xe8\x14\x7a\x75\x17\x7f\xf3\xa7\xbf\xcd\xe4\x78\x8d\x19\x84\x0b\x1b\xe1\x6b\xb7\x13\xad\xee\x6d\x55\xba\x13\xdc\xf1\x6e\x33\xaa\xa5\xa9\x97\xa8\x57\x5e\x36\xfe\x96\x03\x39\x61\xa3\x89\x07\x1b\xf1\xc3\x9d\x27\xdc\x35\x19\x2a\xed\x8e\x58\xc8\x8c\xe9\x70\xf7\x33\x9d\x28\x8e\xdc\x41\x4f\x33\x52\x0c\xe3\x46\x1a\x88\x46\xcd\x25\x92\x2d\xef\xd1\x80\x9b\x82\xc0\xbd\x88\x23\xac\xb5\x04\x2e\x18\x7d\x07\x02\xbe\x07\x72\xf9\xef\x40\xfc\xfa\xd7\x7e\xea\xe0\xe0\x83\x66\x9c\xe6\xd2\x26\x4c\x31\xea\xcb\xa2\x0d\x92\x09\xb4\x1e\x02\x5b\x2e\xb9\x2c\x53\xf7\xf7\xb6\x84\x82\x48\x3a\x73\xbe\x0e\x33\x0d\x82\xe6\x51\xd6\xb0\x31\x70\xdd\xfb\xc7\x38\x72\x07\x6d\x8e\xf3\xe5\x5b\xc7\xdd\xbb\xc0\xff\x87\x6e\x00\xf2\x2b\x9b\xc8\xe9\x56\xbe\xed\xdc\xe6\x79\x07\x87\xed\x8d\x9c\x6e\xf4\x72\x2c\xac\x2f\xf5\x37\x7b\x70\x9d\xfb\x49\x8b\xae\xef\x6d\x27\x0d\xff\xdd\x28\x99\xff\x89\x69\x33\x67\x55\xea\x4f\x52\xe3\xce\x64\x23\xc8\xad\x5f\xe3\x39\xfa\x53\x42\x35\xe8\x8f\x42\x77\x06\x4e\xaf\xe5\x42\xd5\x95\x3b\xc3\xa6\x9b\x30\x5a\xb0\x4a\xfc\x63\x7b\xe4\xec\x9c\xbf\x86\xb2\xa7\x33\x08\x09\x91\x27\xd5\x6d\xdb\x4d\xc6\xd5\x0b\x94\x6b\x61\x10\x89\xb5\x9a\x49\x13\x12\xbd\xbf\xdd\x97\x4f\xb8\xbd\x0c\xcf\xfd\x5d\x0c\xe3\xce\xba\xf2\xe6\xf9\x87\x30\xa9\x3c\xa6\x19\x01\x8d\xb9\xe8\xce\x17\x12\xe2\x9e\xa5\x0d\x72\xef\x03\x8d\xc8\xdb\x75\x94\xc3\xfb\xde\xe9\x2e\xad\x3e\x31\x43\x0a\x04\xc8\x82\x3f\x7d\x72\x03\x32\xe7\x7e\x2e\xc6\x70\x0d\xcd\x1e\x39\xcd\x9c\x4e\xcb\x8a\x1f\xb7\x1d\x4a\xba\x51\x93\x6e\x25\x52\x94\xff\xa8\xca\x7b\xb7\x92\xa6\x4f\xd7\xaa\xbc\x6f\xa8\x74\x97\x32\x73\x2c\x5e\x8f\xaa\x2a\x6d\xe0\x07\xbd\xc1\x57\xe3\x56\x61\x8e\xee\x0d\x03\x01\x33\x7c\xdb\x78\x82\x07\x48\x9c\x82\xdb\x81\xcd\x56\xb1\xf9\x12\xb2\x91\xf9\xc0\x3f\xf0\x22\xc7\x1c\xd5\x08\xff\x69\xe7\x0d\x92\xd3\x2c\x1a\xb7\x22\xca\xf0\x79\xe8\x8d\x00\x7e\x0b\xcf\x5d\xbb\x3d\xa1\xa2\x3a\xeb\x12\xe9\x10\xf7\x2c\xec\xea\xe4\x73\x0c\x0c\x95\xd1\x48\x14\x21\x4f\x3c\x2a\x9f\x9f\xa4\xa8\xbc\x92\xd3\xe7\xf8\xda\xa7\xaf\xcd\x05\x70\x47\x82\x68\x33\xe4\x63\x53\xc2\x44\x14\xfa\xcb\x7b\x39\x2e\x1b\x77\xa6\x9b\x18\xa0\x9d\xce\x91\x9a\x56\xdd\xd7\xf5\x14\xa9\x7a\xfb\x0e\xbd\xb8\xa9\x80\xe2\xe8\xaf\x21\xa8\x12\x38\x55\xf4\xe9\x75\x3d\x7d\x2c\x49\x6d\xa7\x4c\x17\x18\xf8\x76\xf2\xa2\xba\x5c\x86\x06\xa2\x93\x23\x90\xac\x0c\x0e\x46\xdf\x7c\x3b\x70\x82\x44\xcf\x44\x73\x3c\xe1\xac\xac\x84\xe4\x69\x3b\x9c\x44\x0d\xa4\x2b\x1a\x1d\xd0\xa8\xaa\x96\xed\x74\x85\x90\x20\x86\xb4\xb3\xe3\x1a\x5f\xff\xfc\x27\xd0\xb2\xb6\x16\xdc\xc2\x25\x36\xa7\xd8\x53\x4e\xb5\x5a\xc0\x0a\xcb\x5d\x66\x9f\x3d\xb9\x79\xd6\x65\xb7\xef\x2a\x1d\x52\xde\x8e\xc6\xb4\xf3\x3b\xef\x3a\x5d\xfb\xc3\x7a\xe3\x4b\x0d\x90\xea\x97\x93\x80\x2c\x14\x2e\x5d\x1b\x24\x88\x50\xda\x3c\xca\x0a\x71\xe5\x7f\x37\x33\x24\x9a\x1e\x61\x87\x08\xbf\xd5\x10\xf7\x47\x07\xdf\x7c\x7d\x43\xec\x6e\xf9\x95\x2c\x71\x95\xeb\x87\x9b\x62\x97\x98\x6d\xb6\xd8\x3d\x55\x7b\x4c\xf7\x5f\x2c\xca\xb5\x69\x71\xef\xaa\x98\xe3\x1e\xc1\x0e\x9b\x69\x20\xfd\xb5\x32\x61\x5e\x10\xe8\xc7\x8d\x63\x8b\x70\xbf\xcc\x0d\x94\x17\x58\x27\x14\x8b\xf2\x4d\x67\x5a\x4c\x57\x20\xfc\x96\x69\x73\xc1\x3e\x83\x64\xaf\xf0\x4b\xf0\xed\xb5\x90\x1c\x97\x2d\x6b\x3a\x96\xd9\x58\xc4\xad\x95\x70\x6e\xa7\xf5\x2a\xcc\xdf\xb5\x7a\xe7\x1a\x60\x94\xb3\x87\xdc\x52\xbb\xf7\xaa\x37\x5a\xb6\xb9\x34\x5d\x13\x82\x23\x78\xec\x5a\x88\xa6\x94\xfb\xdf\x56\xee\xf5\x0e\x6b\xbf\x68\xcc\xe5\xcf\x7f\x5d\x79\x56\x57\xdb\x15\x3c\xa5\xf3\xff\xbf\x36\x42\x74\x06\xf9\x52\x54\x3c\x4d\xc2\x5d\x9d\x4d\x41\x09\x91\x76\xf5\x98\x5c\x49\xba\xac\x6a\x95\xe7\x82\xee\xdb\xe5\xd8\x7a\xee\xd0\x92\xc3\xb3\xa5\xec\xda\xad\xa7\x5e\xeb\xb2\x6b\x7e\x66\x72\x38\xaa\x8c\x82\xba\x21\xb0\x51\x93\xb7\x24\xaf\xac\x15\xa6\x36\x68\xef\x54\x5a\xae\x25\xab\xdc\x51\xe8\x0b\x3f\x72\x68\x0e\x33\x83\x06\x36\x8a\xc2\xdb\xae\x3f\x95\xed\x74\xb8\x2e\x71\x90\xb4\x42\xe2\x88\xa3\xe9\x6a\xad\x7a\xc9\x17\x4b\xa7\x95\xe6\x7e\x64\x06\x49\xab\xe6\x47\xea\x48\x2d\xb9\x74\x37\x32\xb1\x1b\xa5\xe4\xf1\x7f\x5c\x55\x1b\x24\xf2\x29\x95\xb5\x89\x5e\x4c\xa1\xc9\xe9\x42\xe5\xc7\x6a\x79\x9f\x4e\x33\x42\xb7\x7e\xb4\xbe\x53\x31\x3e\x8f\xff\xdb\x77\x3a\x92\xd8\xa6\x87\x38\xba\x22\xfb\xa7\xbb\x88\xe3\x43\x98\xe6\xee\x60\xa6\x7b\xb9\x41\x99\xfc\x78\xbe\x50\x65\xda\x82\x66\x30\xfa\xdd\x68\xf4\x48\xbd\x14\x88\xe4\xdf\x7a\xe9\x49\x62\xab\x7f\xf4\x0e\x20\xb5\xb2\xe1\xc6\x37\x2e\xa7\x25\xad\x32\x9a\x0c\xd5\x2b\x26\xda\xf7\x3b\x8e\x8c\xdc\x97\x68\xe5\xee\x3a\xa0\xd1\xc6\xe3\x0e\x5d\xfe\xf5\x02\xee\x88\x6b\xa7\x51\x74\x0f\x38\xcf\xbe\xe2\x01\xe7\xd9\xc3\x0f\x38\xb1\xff\x0b\x77\xdf\xdd\x58\xd7\x34\x37\xf2\x11\xd2\x5d\xa8\xa3\x6f\x14\xc2\x1d\x95\xe6\xda\x76\xde\xb9\xaa\xb5\x76\xb7\x12\x84\x74\x14\x3a\xec\x47\xee\xae\x79\x6f\xa8\xb0\x79\xf6\xbd\xe1\xf2\x64\xb8\xae\x39\x88\x23\x66\x0c\xd7\xf6\x4c\x39\xdd\x72\xad\x57\x16\xf8\x2f\x01\xad\x42\xed\x21\x76\x3a\x99\xf5\x37\xdd\x29\xfc\xd3\x8c\x86\xd0\x36\x57\x3a\x07\x81\xca\xb5\xb9\x87\xbb\xfd\xd8\x99\x7c\xf4\xb8\x79\x14\x3d\x6e\x62\x04\x15\x61\xc4\x14\xa3\x74\x8f\x36\x32\xb9\x3e\xfa\x66\x5e\xd6\x52\xb7\xd6\x80\x6e\x98\x3a\xf4\xad\x82\xbe\x3b\xf5\xdf\x26\x38\x3c\x89\xbb\xd7\x47\x2f\xa0\x7f\x35\xdf\x75\x64\x48\xce\x52\xab\x6b\x6e\xf2\xde\x57\xbb\xb9\xe1\x36\xb5\xba\xe6\x0d\x61\x9d\x1b\x75\xbd\x88\xd2\x9e\x86\xbb\x6f\x7b\x70\xcb\x35\x4c\x53\x56\x99\x70\x69\x8d\x26\xe7\x88\x46\x86\xdb\x9e\xab\x16\xd3\x91\x01\xa2\x78\xa9\xd5\x02\xf5\xe2\x7a\xeb\x87\xea\x81\xd1\x27\x2b\xc8\x2c\x92\xd8\xb9\x15\x41\xd7\xb6\x22\xcd\x0b\x2e\x6e\x78\x79\xc9\xef\xac\xbf\x16\xd2\x3b\x6a\x6a\xfe\xd6\x62\x31\x59\xb2\x82\xa7\xc1\xa3\xeb\xe9\xdb\xd1\x58\xbe\x1b\x0c\x7c\x72\xe8\x61\xc2\xce\xb0\xb9\x78\xe0\x32\x40\x23\xad\x4a\xa6\xc9\x84\x3b\x05\xa0\x33\x06\xc7\x6b\x46\xe6\x24\xba\x76\xac\xd0\x11\x03\xc5\x85\x4b\x85\x52\xf0\x63\x88\xbe\x8b\xaf\x48\x92\xf0\x3c\xdc\x5e\x5d\x8e\x0e\x64\xe3\x13\x12\x99\x9b\x5d\xba\x4e\xb5\x87\xbd\x93\xe3\xc4\xb4\x91\xdc\x2b\x66\xce\x35\x9f\x8a\xbb\xb4\x2b\x91\xcc\x7f\xc8\x92\x38\xd3\x89\x96\xf4\x69\x74\x47\xe0\x93\x65\x25\xec\xd9\xea\x1a\x48\x32\x38\x18\x84\xf3\x0c\x84\x4f\x30\x61\x87\x4e\x96\xb0\xd0\x59\xe8\x81\x43\xeb\xc0\x0e\x81\x5e\xbc\xdd\x7f\x87\xcf\x3e\xf6\xa4\x3f\x4d\x93\x17\xc5\x5c\xd1\x4d\x99\x9b\x35\x1e\xe9\x2a\x8e\x9b\x81\xaf\x4b\xf2\x61\x1a\xc1\xd5\x5f\xa8\x08\x92\xd4\x23\xc5\xbf\x66\x7e\xcd\xa5\xc0\x15\xf3\x9b\xb6\xd6\x17\x40\xe0\x9a\x15\xef\x37\xcb\xe2\x73\xa5\xd0\x5b\xd7\x1c\x0c\x7c\x15\x03\x6d\xa8\x7e\xa4\x84\xdc\xe9\x55\x2b\xa5\x76\x00\xb2\x52\x1b\xbd\x97\xea\x56\xfa\x70\xe1\xbe\xb3\x0b\xcb\xdc\xdc\xea\x89\x19\xc3\x93\x9b\x75\xf1\x64\x3d\x25\x34\x47\x6b\xfe\x7b\x90\xc2\x7e\x9d\xbc\xbb\xe1\x0b\x85\x4f\x64\xde\x9d\xa7\xc1\x1b\x92\x6f\x37\x4b\x3e\x3e\xfb\xd2\xa7\x38\x9f\x4e\xbf\x21\x2b\xf6\xa9\x74\xd9\xb7\x37\xf5\xfd\xba\xf9\xb7\x47\xdd\xae\x04\x1c\x56\xed\x4e\xbf\x6e\xd6\xba\x39\xfd\x76\x3e\x8e\xfb\xd7\xe7\xdf\xee\x97\x78\x8f\x4d\xc0\x45\xb7\x06\x6a\xf8\x76\xdf\x7a\x92\x2a\x3e\x2b\xdd\x12\x45\x6b\xf9\xb6\xe7\x30\xfe\xd2\xbd\xec\xdc\x51\x6e\xbe\x61\xa3\x4d\x5b\xb2\x8a\x66\x10\xfd\xb8\xf4\xef\x25\xec\x1c\xd7\x91\xb4\x33\x5c\xfc\x17\xd7\x03\x44\xe1\xa7\x0a\x82\xa2\x3d\x67\xd8\x58\x05\x7c\x71\xda\x7f\x80\x9c\xfe\xe7\xe7\xfd\x3e\x93\x0f\x4b\xfc\xeb\x92\xa7\x6c\xff\x99\xe9\xfd\x51\x62\xfe\x2a\xf9\x7d\x03\xcf\x8f\xe2\x76\x9d\xc0\x2f\xca\xde\x8f\x12\xc0\x23\xd3\xb7\x0f\x3f\x5f\x9c\xbf\x29\x3a\xb6\x49\xa0\x1d\xef\xf7\x7c\xce\x9b\x33\x7d\xf9\xd6\xe6\xf3\x66\x68\xf5\xca\x3b\x57\xba\x39\x7f\x75\x84\x34\xe3\x16\xba\x37\x96\xfd\xb9\x57\x73\x27\xb3\xf9\x12\x6f\x15\x8b\x3b\x4a\xcd\xa0\xe4\x96\x89\x0a\x3a\x9f\x51\xae\xcf\x4a\x9a\x6f\x75\xd0\x29\xe8\xf3\x42\x55\x14\xb5\xd6\xbc\x1c\xa3\x70\x28\x2d\x3a\x3c\xed\x01\xce\xc7\xf8\x3f\x03\x00\x00\xff\xff\xeb\xa4\x00\xb2\x80\x4d\x00\x00") - -func testImagesAgnhostNetexecNetexecGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostNetexecNetexecGo, - "test/images/agnhost/netexec/netexec.go", - ) -} - -func testImagesAgnhostNetexecNetexecGo() (*asset, error) { - bytes, err := testImagesAgnhostNetexecNetexecGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/netexec/netexec.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostNettestNettestGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x5a\xff\x6f\xdb\x46\xb2\xff\x59\xfc\x2b\xe6\xf1\xc1\x09\x99\xca\x94\xdd\xf7\x0a\x14\x4a\x5d\xc0\x67\x27\x8d\x5f\x1d\x3b\x88\x9c\x06\x87\x5c\x71\xb7\x22\x47\xd4\x9e\xc9\x5d\x76\x77\x29\x45\x30\xfc\xbf\x3f\xcc\xec\x92\xa2\x6c\x39\x6d\x7a\xd5\x0f\xb6\x44\xee\xce\xcc\xce\x97\xcf\x7c\x21\x27\x2f\xa2\x33\xdd\x6c\x8c\x2c\x97\x0e\xbe\x3d\x3a\xfe\x5f\xb8\x59\x22\xfc\xdc\xce\xd1\x28\x74\x68\xe1\xb4\x75\x4b\x6d\x6c\x16\x45\x97\x32\x47\x65\xb1\x80\x56\x15\x68\xc0\x2d\x11\x4e\x1b\x91\x2f\x11\xc2\x9d\x31\xfc\x82\xc6\x4a\xad\xe0\xdb\xec\x08\x12\x5a\x10\x87\x5b\x71\xfa\x32\xda\xe8\x16\x6a\xb1\x01\xa5\x1d\xb4\x16\xc1\x2d\xa5\x85\x85\xac\x10\xf0\x73\x8e\x8d\x03\xa9\x20\xd7\x75\x53\x49\xa1\x72\x84\xb5\x74\x4b\x66\x12\x48\x64\xd1\xdf\x03\x01\x3d\x77\x42\x2a\x10\x90\xeb\x66\x03\x7a\x31\x5c\x05\xc2\x45\x11\x00\xc0\xd2\xb9\x66\x3a\x99\xac\xd7\xeb\x4c\xb0\x94\x99\x36\xe5\xa4\xf2\xab\xec\xe4\xf2\xe2\xec\xd5\xd5\xec\xd5\xe1\xb7\xd9\x51\x14\x7d\x50\x15\x5a\x0b\x06\x7f\x6b\xa5\xc1\x02\xe6\x1b\x10\x4d\x53\xc9\x5c\xcc\x2b\x84\x4a\xac\x41\x1b\x10\xa5\x41\x2c\xc0\x69\x92\x73\x6d\xa4\x93\xaa\x1c\x83\xd5\x0b\xb7\x16\x06\xa3\x42\x5a\x67\xe4\xbc\x75\x3b\x0a\xea\xa4\x92\x16\x86\x0b\xb4\x02\xa1\x20\x3e\x9d\xc1\xc5\x2c\x86\xbf\x9d\xce\x2e\x66\xe3\xe8\xe3\xc5\xcd\x9b\xeb\x0f\x37\xf0\xf1\xf4\xfd\xfb\xd3\xab\x9b\x8b\x57\x33\xb8\x7e\x0f\x67\xd7\x57\xe7\x17\x37\x17\xd7\x57\x33\xb8\x7e\x0d\xa7\x57\x7f\x87\x9f\x2f\xae\xce\xc7\x80\xd2\x2d\xd1\x00\x7e\x6e\x0c\xc9\xae\x0d\x48\x52\x1d\x16\x59\x34\x43\xdc\x61\xbe\xd0\x5e\x18\xdb\x60\x2e\x17\x32\x87\x4a\xa8\xb2\x15\x25\x42\xa9\x57\x68\x94\x54\x25\x34\x68\x6a\x69\xc9\x78\x16\x84\x2a\xa2\x4a\xd6\xd2\x09\xc7\xbf\x1f\x1d\x27\x8b\x5e\x4c\xa2\x68\x32\x81\x53\x70\x52\x6d\x60\x8d\x73\xb0\x68\x56\x68\x98\x57\xbe\xc4\xfc\x96\x88\x2a\x74\x6b\x6d\xf8\x6b\xae\x95\xc2\xdc\xc9\x95\x74\x9b\x2c\x9a\x4c\x68\xf7\x47\x59\x55\x50\x48\x51\x81\x6e\x1d\x38\x3d\x26\xce\x74\x22\xcc\xe9\x27\x2c\x51\x18\x58\x18\x5d\x8f\x01\x57\x68\x36\xd0\xe8\x02\xdc\x52\x38\x52\xa7\x80\x1a\xeb\x39\x1a\xd0\x0b\xa2\xc5\xe7\x43\xb3\x92\x39\x42\x23\x2c\xb9\xa9\x54\x7c\x75\x51\x89\x12\x0e\xc3\xbd\x1d\xd6\x2c\x32\x08\x12\x3f\x48\xaf\x15\x94\x72\x85\x0a\x0e\x1b\x6d\x5c\xb7\xf8\x17\x69\xa5\x83\x89\x41\xc1\xe6\xb7\x41\xbd\x79\x6b\x0c\x2a\x07\xd6\x09\x87\x63\xb2\xc0\xe4\xb7\x56\xb2\xe4\x76\xd9\x3a\x28\xf4\x5a\x3d\x20\x41\x4b\x5b\xdb\x11\x21\x39\x27\xa6\x55\x64\x80\xc9\x42\xc8\x0a\x0a\x74\x64\x07\xc5\x8a\xcf\x20\xa9\xa4\x43\x23\xaa\x6a\x33\x06\xe9\x60\x2d\xab\x8a\x88\x19\x74\xad\x51\xa0\x15\x7a\xe7\xd7\x16\x61\xad\x4d\x61\xb3\x34\xb0\x9b\x90\x7f\xb2\xd7\xb5\xd6\xfb\xb3\x66\x6f\x09\x06\x01\x87\xd6\x91\x36\x59\x14\x83\xa5\xb4\x0e\xcd\x03\x1b\x45\x8d\xc8\x6f\xc9\x49\x14\x3a\x5a\x1f\x45\xb2\x26\xad\x40\x12\x8d\xe2\xf9\xc6\xa1\x8d\xa3\x51\x9c\x6b\xe5\xf0\xb3\xa3\xaf\xa8\x72\x5d\xd0\x51\xfe\x6d\xb5\xa2\x0b\x8b\x9a\xaf\x4b\x3d\x91\xba\x75\xb2\xa2\x1f\x95\x2e\xe9\x9f\x42\x17\xfe\x4d\x28\x50\xe9\xbb\xb6\xfe\xef\xc4\xca\x52\x09\x5e\x6c\x37\x2a\xf7\xff\x6d\x2e\x2a\xbe\xe4\x64\x8d\x71\x14\x8d\xe2\x52\xba\x65\x3b\xcf\x72\x5d\x4f\x6c\xb3\x38\xfe\x9f\x49\xae\xe7\x46\xd0\xad\xd5\x31\xc4\xb7\xdf\xdb\x4c\xea\x89\x68\x64\x2d\xf2\xa5\x54\x68\x36\x93\xe6\xb6\xa4\x0b\x76\x52\xa3\x13\x93\xd5\x31\x91\x7b\x6a\x1d\x89\x3b\xb1\xe8\xec\x97\x16\xad\x3c\xda\xc5\xd1\x28\xaf\x24\x2a\x67\xd1\xf5\x9c\xfd\x95\xc3\x52\x4f\x6e\x7b\x2c\x8d\xa3\x91\x41\xeb\xfc\xad\x3d\x2b\xe9\x66\x1c\xa5\x51\xb4\x12\x86\xb4\xcc\xda\xee\x3f\x52\xb9\x68\xd4\x20\x9a\x33\xdd\x2a\xb7\xbd\xd4\x79\xbd\xff\x10\xc6\xa8\x32\x1a\x29\x51\xa3\x6d\x44\xb8\xde\x5d\x2d\xb0\x12\x9b\xd9\xb2\x75\xe4\x9b\xbc\x3d\xe5\x38\x3e\xab\x8b\x2b\x6f\xe5\xa1\xcf\x88\x52\x2d\xb5\x75\x70\x46\x9a\xcd\x58\xaa\xc1\xc2\x13\x78\xc6\x2a\xcf\xce\x74\x5d\x0b\x55\xdc\x45\xa3\x0f\x16\xa7\x00\x10\x07\x8f\x89\xc7\xd1\x68\xb6\xd4\xc6\x4d\x21\x9e\x39\x61\x1c\x45\xed\x9f\x01\x0c\x22\x74\xa9\x55\x39\x85\x7f\xf5\x74\xbe\x92\x04\x85\x36\x05\xad\x0f\xef\xf8\x90\x03\x3c\xce\xa2\xe8\xaf\x02\xa1\x21\x02\x45\x7b\x10\x28\x3e\xec\x30\x88\xb8\x52\x92\x1d\x9c\x80\x22\x1b\x96\x62\xe5\x81\x65\xa1\xab\x4a\xaf\xe9\x04\xa8\x8a\x46\x4b\xe5\xec\x34\x8a\x0e\x21\x66\x08\x8a\xa7\x5f\x06\xa1\x98\x51\x28\x7e\x00\x43\xbc\xdd\xc3\xcf\x96\x40\xfc\x08\x81\xe2\x3f\x00\x41\x01\x7f\xa2\xbd\xf8\xc3\x7c\x18\x7d\xe2\xe9\x7f\x84\x3f\xff\x1a\x47\xa3\x53\x53\xda\x29\x78\x2f\x7b\x2b\x3e\xcb\xba\xad\xaf\xe8\x5a\x72\x94\x8e\xa3\xd1\xfb\x56\x4d\x01\x6a\x21\xd5\x38\xba\x8f\xa2\x45\xab\x72\x90\x4a\xba\x24\x85\xbb\x68\xb4\xf5\xd4\xec\x75\x25\x4a\x9b\xa4\xd9\x85\x72\xbf\x08\x93\x3c\x23\xd3\x8f\x21\x66\x0f\x18\xc3\xf7\x47\xdf\x1f\x8d\x21\x7e\x47\xc1\xa6\x5a\xb6\x26\xab\x87\x73\x83\xcb\xe2\xf4\xcb\xb4\xba\x80\x24\x82\x88\xc6\x12\xc5\x31\xc4\x6f\x5b\xeb\x60\x21\x55\x01\xc2\x41\x85\xc2\x3a\x5f\xef\xd4\x42\x6d\x80\x17\xf6\x69\x99\x95\xe1\x34\xa7\x83\xa7\xd8\xcd\x38\x80\x99\x63\xf0\xa2\x31\xc4\x9d\x3f\x8d\x07\x11\x07\xf1\x2c\xe0\x81\xd3\x9e\xff\x53\x9a\x97\xea\x0f\x30\xeb\x61\x84\x78\x74\xdf\x89\x4b\x81\x0b\xd1\x56\xcc\xf0\xaa\x87\x1a\xf6\x06\x69\x89\x7e\x06\x37\xd7\xe7\xd7\x53\xd8\xa2\x1f\xd8\xa5\x6e\xab\x02\x6a\x71\x1b\x6a\xbf\x42\xda\x9c\x0a\x10\xaa\xb2\x7e\x4f\xcf\x3b\xc8\xc5\xfc\x2b\xb1\x39\xb4\xe1\x42\x3c\x06\xb2\xe1\x55\xdb\x05\xa3\xc5\x5c\x2b\xef\x5e\xbc\x12\xba\x95\xb0\x5e\xa2\x02\x83\x39\xca\x15\x45\xd8\xec\xe2\xa7\x9b\x57\xef\xdf\x12\xfb\x7b\x86\xc2\x19\x05\x12\x38\x23\xf2\x5b\xcb\xe6\x91\xca\xa1\x51\xa2\xf2\x21\x46\xc4\x75\x6b\xa0\x92\xce\x55\xc8\x55\x66\x08\x62\x4a\xf5\x70\xe1\x9e\xdb\x10\x1f\x58\xc0\x0a\xcd\x5c\x38\x59\x03\x9d\x92\x89\xf9\x22\xa2\x0b\xeb\x2c\x72\x9b\x06\x03\x4b\xeb\x4c\x9b\x3b\x72\xdd\xc9\x04\xde\x68\xeb\x48\xdf\x14\x42\x94\x56\x34\x55\xc4\x04\x4c\x8a\x40\x08\xf2\xa5\x50\x25\x16\x87\x87\x20\x89\xa1\xa8\xd6\x62\x63\xc1\x8a\x05\xfa\x80\x12\x45\x16\x8d\x7a\x1a\x01\xfd\x99\x30\x01\xcf\x1c\x2b\xbd\x86\x85\xc4\xaa\xe8\x8b\x5e\x0f\x69\x95\xce\x6f\x89\xe5\x12\xab\x02\xe6\xb8\xd0\x06\x99\x1a\x69\x4a\x9b\xae\xea\xcd\xa2\xd1\x0c\xd5\x20\x35\x85\x4f\x2d\x9a\x4f\x9e\xd7\xaf\x9c\x99\xde\xb3\x96\xb1\xf8\xe2\xa2\x57\xc6\x68\x63\x1f\x50\xfa\xf4\x6b\x97\xb1\x2e\x75\xf9\x88\xcf\xe0\xf6\xcc\xc9\xaa\x3a\xd3\xca\x89\x9c\x24\x7b\xc7\x81\x35\xd7\xba\x8a\xa2\x11\x1f\x86\x4a\x88\xec\x6d\xeb\xf0\x73\x8f\x11\x89\x85\x17\xac\xf2\x14\x0a\xad\xf0\xc1\x6e\x8f\x1e\x36\xa3\xdd\xd9\xa5\xce\x6f\x93\x94\xf2\xe6\x02\x0d\x84\x8b\x1f\x54\x15\x2e\xdb\x6c\x2f\xff\x13\x58\x88\xca\x62\x70\x28\xf6\x8e\x99\x2f\xfc\xbc\x67\x58\x0f\xbc\x14\x3b\x01\x7b\x63\x8f\xdc\x8c\xc0\xd9\x23\x29\x07\x14\x92\x35\xbb\x5c\xf6\x1e\x6d\xa3\x95\xc5\x8f\x84\xb4\x66\x0c\x06\x5e\x84\xeb\xbf\xb5\x68\xdd\x57\x9c\x41\x2e\xa0\x42\x95\xd8\x8c\x4c\x9a\xc2\x8f\x27\xb0\xad\x31\x9e\x3d\x0b\xf7\x3a\x4b\x3e\xb8\x7f\x17\x8d\x46\x8b\xda\x65\xaf\x1b\x23\x95\x5b\x24\xeb\x71\x38\x59\x1a\x8d\x46\x21\x4b\x8c\xee\x99\xc7\x13\xaa\xda\x47\xa1\xd3\xc9\x03\x22\x93\x09\x5c\xea\x72\x01\xb9\x50\xcf\x1d\xcc\x11\xa8\x24\xc4\x02\xd6\x4b\x6a\x21\x97\xba\x62\x2f\xa5\x20\xa3\xa3\x51\x67\x06\xfe\xc8\xad\xa5\x1b\x02\x4a\x6d\xa8\x0c\x55\x18\x8d\x4a\x0d\x36\x23\x6a\x49\x7c\x8e\x79\x25\xc8\x99\x80\xb4\xdf\x1a\xdf\x2e\x1d\xd8\xc9\x81\xf5\x2d\xe8\x41\x01\x96\xbc\x9d\xa2\xef\xa0\x08\xd0\x81\x45\xf7\xbb\x03\xfd\x01\x52\xf6\x08\x3d\x50\xec\xf8\xa1\x26\xc7\x5b\x3d\xa6\xd1\x23\x1d\xb0\x27\xa4\x43\x0f\x7a\x4f\xc0\xc1\x89\xd5\x32\x00\x51\x91\x0d\x5c\x72\x63\xe1\xa1\x69\xbf\xdf\xd0\xbe\xbf\xde\x6b\xd6\x19\xd3\x78\x83\xa2\x40\x93\x30\x11\xef\xa0\xd7\x3f\xa7\xd1\x68\x3e\x06\x34\x06\xa6\x27\x2c\x65\xf6\x56\x18\xbb\x14\xd5\x85\x2a\x50\xb9\xc4\x8e\x21\x26\xd7\xff\x87\x8b\x39\x84\x44\xd3\xa0\x2a\x5e\x19\x93\xa0\x31\x69\x34\xfa\xa7\xdf\x7c\x02\x81\x47\x32\xdf\xb7\xcc\x6b\x86\x17\xbc\xd3\xbe\x6c\xf5\xa5\x93\xa9\x85\xf3\x60\x96\x0c\x55\x94\x32\xd0\xa1\x75\x9c\x13\x18\x8a\x7d\x8f\xb4\x14\xaa\xa8\xe8\x88\x3e\x3b\x39\x71\x8b\x01\x96\xb7\xc4\xb7\xd0\x3c\xd3\xad\xc9\x7b\x44\x1d\x9d\x53\x36\xed\xcb\xeb\x81\x4c\xa4\x69\x92\xa9\x4f\x05\xf3\x4d\x60\x38\xa0\xcd\x8b\xb6\xb4\x1f\xe2\xf5\xc0\xf8\xbc\x9c\x5c\x8f\xaa\x2c\x5f\xf7\xf9\x40\xa2\x12\x93\xbc\x81\x1d\xe0\x09\xe4\xf0\x5a\xfc\x0a\x17\xf0\x36\x37\xd9\xdf\x74\xb1\xc9\xce\x2a\x6d\xd1\x83\xdd\x7f\xee\x18\xd4\x42\xac\x9b\xad\x66\x77\x0d\xcb\xce\x72\x85\xeb\x73\x24\x93\x99\xc4\x4b\x90\x66\xfe\x77\xf2\x6c\xdd\xa4\x1e\xb0\xd6\x4d\x16\x0c\x71\x72\x02\x71\xcc\x28\x32\x24\x44\xd1\xc4\x79\x65\x91\xc4\x07\xab\x29\xfc\xa4\x5d\x67\x7e\x1f\xd3\x4a\x83\x65\x02\xf1\x18\x6c\xd6\x29\x9e\xa8\xdf\x03\x56\x16\x99\x22\xa3\x56\x9f\xc3\x4e\x4e\x40\xc9\x8a\x6f\x8c\x86\x97\x1f\x24\xb4\xbb\xfb\x68\x44\x68\x35\x58\xf3\xa9\x17\xf7\xd7\x6f\xbe\x61\x28\xdb\x77\xe8\x57\xca\x1f\x7a\x9d\x66\xfe\x6b\xf2\xac\x77\x92\xbb\x4e\xc2\xe9\x40\xda\xfb\xb4\x8b\x82\x9e\x18\x88\xa2\xb0\x1c\x3d\xc1\xc7\x2b\x69\xdd\x18\xe4\x82\xaf\x49\xcb\xa3\x37\x25\xab\x0c\x2c\xd4\x54\xa0\xce\x3d\x58\x62\xf1\xd8\x75\x76\xe2\x8d\xf6\x6b\xc3\xce\x11\x88\xfd\xd7\x56\x1d\x36\x0b\x39\xfc\x24\x6c\x4a\xba\x2b\x1c\xc9\xfe\x7b\xc2\xca\x0d\x02\x33\x8e\x07\x2c\xeb\x24\xd5\x25\xd4\x68\xad\x28\xbd\xd4\xbd\x88\x24\xf2\x40\x4c\x8a\x88\xe7\x96\x28\x74\xad\x17\xb7\x24\x85\xd1\x0d\x08\x05\x9a\x0a\xcc\x40\x46\x2e\xb8\x63\xe1\xb0\xe6\x22\x78\x2d\x2d\x12\x81\x39\xe6\xba\x26\x92\xaa\xe4\xb2\x4c\x28\xf8\xee\xe8\xa8\xdb\x67\x1f\xeb\x82\x33\x45\x80\x16\x6f\xea\x31\x08\x53\x5a\xc8\xb2\x8c\xcb\xc3\x85\xc8\xf1\xee\xfe\xab\x2a\x07\x3a\xc1\x40\x61\x97\xba\x1c\x03\xf9\xed\x2c\x64\x01\xcf\xce\xf3\xc9\xb2\x2c\x1d\xa6\xea\x4b\x5d\xa6\xf0\x23\x0b\xed\x0d\xe0\x89\xf1\xff\x4f\xc7\xd3\x5f\xb7\x9a\xde\xa7\xc4\x27\x4c\x3d\x6b\xf3\x1c\xad\x5d\xb4\xd5\x8c\x44\x72\xfa\x01\x1e\x7d\x5d\x4d\xe1\xd3\xde\x30\x6a\xba\x2b\x7b\x02\x86\x43\x82\xee\x7e\xda\x72\xa5\x58\xb9\xef\x47\x21\x93\x09\x5c\xb7\x86\x47\x5e\x94\x77\xb5\xaa\x36\x5d\x3d\x3e\xff\x37\xe6\x04\x24\xfc\x8b\x4f\x14\xa5\xa1\xd2\xa3\xde\x30\xc9\xeb\x02\x5e\xec\x4c\x2a\x82\xf1\xba\x2a\xb2\x73\xeb\x6e\x90\xb2\xc5\x94\x4a\x97\xd9\x6b\xe1\x44\x95\xf8\x7e\xae\x31\x7a\x25\x0b\xec\xa7\x89\xdc\xd9\x73\xe7\x72\x1f\x45\xa3\x65\x90\xbc\x4f\x7e\x7a\x1b\xac\x41\x2b\x0f\x22\xa7\xa7\xbf\x48\x62\x8e\x12\x28\xd1\x51\x71\x04\xcb\x3e\xe0\x0f\x56\x31\x13\x0c\x4c\xe4\x02\x76\x87\x38\x3f\x82\x77\x02\xea\xda\xcf\x96\xc4\x96\x1a\xac\x84\x3a\x04\x12\x60\xc6\xc3\x34\x2a\xa5\xfc\x58\x2d\xbb\xd2\x4e\x2e\x36\x89\x5f\x3e\x86\x30\x5a\xcb\x42\x1f\x44\x0b\x4b\x0d\xa4\x3d\x5f\x08\x8f\x46\x3f\x1c\xfa\xb5\xf4\x9d\x04\x7e\xe7\xfd\x33\x9e\x55\x88\x0d\xc9\xca\x05\x92\x6f\xb7\x42\xcb\x80\x9f\xa5\xa3\xd8\x88\xc7\xbb\xc2\x12\xf5\x91\x93\x35\x66\xbc\x39\xe1\xaf\xe7\xad\xe1\x59\x43\xb2\xbb\x14\x5e\x80\x5f\xc9\xa4\x79\xa7\xb6\xd9\xab\xcf\xd2\x25\x47\xf4\xeb\x3e\x09\x1a\xf1\x86\x9f\x9e\x78\xdb\x93\xc8\x5b\xb4\x1c\x7e\x7a\xf3\x44\xa3\xbd\x6d\xc3\x14\x9c\x69\xe9\x2e\x11\x2d\x75\x97\x61\xaf\x09\x39\x6c\xf2\x8c\xd9\xa4\x64\x66\xca\x69\x6f\xb8\x6a\x78\x4d\x6a\x0a\xf3\x96\xb1\x57\xda\x57\xa4\xd9\x9d\xf3\xdc\xef\x27\xcd\x03\x9f\x71\x48\xef\x7d\x3d\x97\xee\x5b\xea\x87\x2e\x3b\x6b\x99\xfb\xde\xc5\x61\x12\xb4\xb3\xda\xe7\xe9\xd4\x9f\x7e\xeb\xfa\xbc\xf9\x52\x5a\x87\xea\x54\x15\x33\x5a\x99\x0c\x81\x2a\x9e\x1e\x90\x88\x8d\x36\x54\xe5\x2a\x59\xa5\x44\xc2\x62\x85\x54\xd6\x74\x40\xf4\x9a\x47\x21\x55\x05\x56\xce\x2b\x7e\xe0\xe0\x67\x10\x3b\x83\x7b\x0a\xed\x46\xfb\x69\x88\x5b\xa2\x34\x0f\x8a\xb4\x80\xcc\xbb\x96\xf1\xf6\xef\xb0\xec\xce\x17\x19\x49\x34\x1a\x85\xf1\xec\x85\x5a\x68\x78\x11\x7e\x64\xf4\x2b\x1a\x8d\x28\x10\xbb\x0f\xe7\xb6\x68\x44\xa8\x4c\x5e\x79\x23\x6b\x76\xa7\xef\x76\x3d\x90\x31\xe8\x42\x41\x25\x4c\x89\x90\x57\x2d\x8f\xac\xba\x78\xa5\x93\xf5\xc3\x3a\xca\xb4\x8d\x41\xe7\x36\x3c\x47\x54\x56\xae\x30\x0b\xdd\x77\x6b\xc7\xb0\x46\x9f\xb4\xf8\x19\x0b\x95\x6f\x16\xab\x15\x86\xc7\x02\xca\x3f\x1d\x5a\xa1\xa1\x1c\x26\x1c\xd4\xa4\x90\xe3\x23\xb0\x6d\xbe\x64\x22\x7d\x21\xdb\x10\xf6\x06\xe1\x08\xbf\x7a\xe9\x7f\x80\xdd\xc8\xea\x3b\x8d\xc9\xf1\x51\xfa\x62\x70\x28\x0f\xcc\xfd\xbe\x93\x2f\xed\x7b\xa8\x8e\xfb\x88\x43\x59\xb7\x6e\x47\x5b\x6f\xa5\x6a\x1d\xb2\xa0\x33\x59\xcb\x4a\x98\x6a\x43\x27\x56\xe1\xe1\xd9\xbc\xad\x1b\xe8\x36\x5a\x1d\x46\xa9\xce\x17\xcb\xc2\x6a\xc5\xcf\xdc\x64\x50\x34\xd3\x09\xca\xb6\x19\x1f\xb3\xdb\xfb\xe4\x21\x1f\x9f\xb0\xdb\xf2\xe4\xf9\xf6\x1d\x2e\xe4\x36\x8e\x8f\xbd\x73\x82\x28\x1a\xe5\x5a\x2d\x64\xd9\x03\xfe\x76\xba\x9f\x5d\xa8\x33\x2f\xf5\x19\x2f\xf9\x7d\xfc\xff\xe0\x0f\xee\x34\xe4\x06\xc9\xa3\x3d\xed\x97\xde\x3d\x29\x0f\xfc\x43\x0d\x32\x41\x60\x9d\x91\x54\xa8\xdc\x0d\x35\x15\x27\x10\x87\xc7\x96\x74\xba\xc9\x4a\x15\xd9\x76\xfc\x96\x35\x46\x3b\x3d\x6f\x17\xfd\xe3\x8a\x5e\xec\xfe\xe9\x05\xd5\xa1\xaf\x75\x27\xb2\xe7\xf0\x27\x04\x67\x72\x4f\x09\xee\xe3\xc0\x6c\x68\x43\x89\xae\x8f\x7f\x34\x10\x62\x14\x5a\xe5\x64\x05\x3f\x04\xab\xfd\xf8\x92\xdc\xa7\xb5\xc8\x0f\x0f\xbc\x21\xe7\x98\x8b\xd6\x7a\xef\x20\x02\x8d\x2e\xa0\xe6\x47\xd8\x54\xe9\xf0\x20\x5d\xd6\x35\x16\x92\xe4\xe9\x46\x9f\xbb\x8f\xb7\x46\xd4\xe6\x5b\x27\x0c\xbb\x2f\x1b\xff\x4a\xaf\x93\xf4\x65\x70\x04\xa9\x72\x4c\xf8\x7e\x1a\x5c\x4d\xb7\xae\xbb\xc9\xd9\xab\x8f\x1b\x8f\xe6\x93\x09\x9c\xeb\x96\x54\xc1\xcf\x22\xbc\x63\x13\x63\xdf\xfd\x75\x48\xf1\xf8\xbc\x99\xef\x35\x06\x70\xd5\x75\xc0\xc1\x97\xce\xc3\x9c\x74\x93\xa4\x19\xe3\xaf\x09\xcf\xd9\x49\xda\x07\x96\xd9\x49\xd1\x5b\xd3\x90\xa6\x77\xb9\x92\x61\x5e\x52\x7f\x6a\x36\x52\x95\xd9\xc0\x46\xc3\x1e\x68\x37\xe3\x3f\x24\xf0\xdf\xde\xb4\x03\xc9\x39\x4f\xcf\x0d\x8a\xdb\xd0\x06\x0d\xf4\x75\xfc\x28\xa5\x87\x82\xe6\x8f\x39\x57\x68\x78\xb7\xaf\x26\xec\x71\xad\xbf\xda\xa6\xd8\x58\xa2\x54\xa2\xfb\xd8\x3d\x23\x7e\xd5\xa1\x7c\xe2\xad\x93\x7a\xeb\x61\x63\xb3\x4b\x54\xc9\x9e\x09\xd9\x8e\x3e\x3c\x9e\xf8\xd1\xd3\xc1\x6a\x72\xb0\x82\xa5\xb0\x70\xb0\x1a\x64\x8f\xe4\x60\x95\x8e\x61\xbd\x94\xf9\x92\x50\x91\x5f\x4d\xe0\x26\xe5\x60\x05\xc2\x86\x47\x53\x58\x64\xf0\x51\xf0\x38\x96\x07\x56\xbb\x09\x88\xf5\x55\x23\xb4\x4d\xf6\x85\xd1\x14\x36\x36\x1d\x7b\xc9\xa5\x75\xc9\x83\x91\x54\x08\xd5\x73\xed\x87\xf5\x06\x1b\x8a\xee\x82\x1f\x04\x29\xc8\x05\xbf\xc1\x81\x06\x9f\x5b\xb0\xc4\xab\x31\xba\x11\x25\x43\x4f\x98\xb9\x73\xab\x1d\xfc\x9e\x69\x29\x5c\xfb\xba\xdd\x38\x2c\xba\x0a\x20\x34\x80\x5b\xe1\xb9\xfd\xf3\xb6\x94\xa4\xfd\xa3\x97\x20\xe1\x07\x38\xfe\xee\x25\xc8\x6f\xbe\xf9\x1a\xbb\x10\x09\x6c\x18\x99\x85\x2a\x91\x8e\x1a\x1a\xf8\x81\x15\x4e\x9d\xc3\xba\xf1\xb1\xb9\x75\xb3\x03\x2a\x8e\xb0\x61\x7f\x0e\xd7\x66\x52\x95\x15\x26\xd8\x84\xaa\x29\x7d\xec\xe2\x5b\xf7\xe9\x5b\xb0\xbd\x32\xf6\x83\x60\xe7\x9f\x03\x86\xd0\xdc\xea\x40\x58\x10\x7e\xf0\xbf\x80\x59\xe8\x38\x51\x90\x43\xa8\xe1\x9c\xab\x92\xb7\x08\x71\x78\xd5\xe5\x4e\x36\xf7\xd3\x3b\xaa\xc3\xee\x63\x5f\x28\x7d\x49\x3f\x03\xd4\xbf\xe8\x5a\xd8\x94\x58\xda\xf0\xfc\x87\x34\xd5\x0b\xf4\x20\x57\x64\x67\xda\xe0\x2f\xc7\x49\x9a\x6d\xc9\xf6\x5e\x96\x66\x3f\xa1\x4b\xc2\x8b\x01\xd9\xcd\xf5\xf9\x35\xb9\x56\xef\x79\xab\x63\xba\x7f\xdd\xf0\xbb\x25\x77\xf7\x69\xd4\x59\x73\xc0\xfb\xee\x7e\xef\xa0\x61\x60\xb5\x2d\x30\xf8\xd7\x32\x76\x3c\x88\x27\xb8\x14\x5c\x04\x11\x4f\x45\x40\x00\xbb\xf0\x32\x05\x36\x96\xd3\x2a\x6d\xfd\xe7\x18\xac\x1d\x78\x4d\x47\x37\x9b\xb5\x73\x12\xd2\x4f\xad\xfd\x42\xb1\x5d\x67\x6d\x76\x5a\x14\x06\xad\xc5\xe0\x66\x61\x4d\xb3\xb3\xe6\x9d\x36\x81\xc4\x68\x24\x1b\x7e\xec\x38\x3d\xa1\x24\x95\xfd\x9f\x96\x8a\x7a\x17\xba\x96\x88\xec\xe2\xdd\x70\x22\x90\x34\xbc\x33\x65\x8f\x24\x95\x65\x17\xca\xa2\x71\xbb\xb5\x78\x70\x05\xf6\x5e\x4f\xdc\x6f\x08\x53\xa9\xfb\x68\x78\x5e\x5f\x99\xef\x78\x37\x3f\x09\xf7\x6e\x29\xfc\x59\xe0\x39\x3e\xe7\xc2\xdc\x19\xe9\x6b\xd4\x77\xd7\xb3\x1b\x7e\x0d\xca\xd9\xae\x3e\x0f\x6b\x77\xeb\xf3\x2e\x5e\xfa\x91\xc9\xa3\x4a\x7d\xae\x8b\xcd\xde\x51\x71\x98\x7d\xbd\xd3\xd6\x91\xa2\xce\xd1\x3a\x6a\xe6\x7c\xef\xc6\xa3\xb4\x69\xa8\xcc\xde\x6c\xbb\xba\xfb\xdf\x2d\x55\x78\x20\x5c\x7b\x16\xdb\xf2\x64\x58\x55\x19\xb4\x4d\x2f\x11\x77\x3e\x24\x43\x82\xdf\x6c\xfb\xab\x9d\x1a\x8b\x5f\x75\x19\x03\xbf\x0e\x43\xd5\xd3\x7b\x3f\xf7\xa4\x83\xa5\x7b\xc5\x19\xfa\xf0\x47\xc1\xef\x5e\x4d\xa1\x7d\x94\xe5\x86\xfe\x0c\x07\xbf\x75\x62\x3e\xf0\xda\x41\x9d\x4a\x82\xef\x0e\x6c\x87\xea\x3d\x01\xff\x06\x4e\x46\xf2\x9d\x56\x55\xd2\x2f\xff\x33\x42\x72\xc4\x99\xd0\xe1\xf2\xbb\x11\xf0\xfc\x60\xf5\x7c\xca\x7f\x9f\x12\x93\x47\xbf\x66\x3b\xf8\x8e\x46\x5e\x30\x36\xfb\x07\x15\xac\x92\x78\x99\x9f\xad\xcd\x9f\x11\xac\xed\xc8\x6c\xa5\xa3\x64\xba\x47\x44\xef\x92\xde\x4e\x4f\x08\xec\x79\xed\x9d\x8d\xad\xcd\x76\x66\x1c\xdd\x47\xff\x1f\x00\x00\xff\xff\x3a\x5e\xd9\x5a\x44\x29\x00\x00") - -func testImagesAgnhostNettestNettestGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostNettestNettestGo, - "test/images/agnhost/nettest/nettest.go", - ) -} - -func testImagesAgnhostNettestNettestGo() (*asset, error) { - bytes, err := testImagesAgnhostNettestNettestGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/nettest/nettest.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostNoSnatTestMainGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x57\x6d\x6f\xdb\xc8\x11\xfe\xcc\xfd\x15\x13\x02\xce\x91\x29\x4d\x29\x2e\x0e\x0d\x7c\x50\x0b\xc5\x71\x1a\xf5\x5c\xd9\xb5\x9c\x0b\x0e\x69\x70\xb7\x22\x87\xd2\xd4\xe4\x2e\xbd\xbb\x94\x22\xf8\xfc\xdf\x8b\x59\x92\x7a\x71\x1c\x5c\xf2\x21\x91\xb9\x9c\xd7\x67\x9e\x99\x59\x0e\x5e\x88\x33\x5d\x6f\x0c\x2d\x96\x0e\x4e\x86\x2f\xff\x06\x37\x4b\x84\x9f\x9b\x39\x1a\x85\x0e\x2d\x8c\x1b\xb7\xd4\xc6\xa6\x42\x5c\x50\x86\xca\x62\x0e\x8d\xca\xd1\x80\x5b\x22\x8c\x6b\x99\x2d\x11\xba\x37\x09\xfc\x82\xc6\x92\x56\x70\x92\x0e\x21\x62\x81\xb0\x7b\x15\xc6\x3f\x89\x8d\x6e\xa0\x92\x1b\x50\xda\x41\x63\x11\xdc\x92\x2c\x14\x54\x22\xe0\xe7\x0c\x6b\x07\xa4\x20\xd3\x55\x5d\x92\x54\x19\xc2\x9a\xdc\xd2\x3b\xe9\x4c\xa4\xe2\xd7\xce\x80\x9e\x3b\x49\x0a\x24\x64\xba\xde\x80\x2e\xf6\xa5\x40\x3a\x21\x00\x00\x96\xce\xd5\xa7\x83\xc1\x7a\xbd\x4e\xa5\x8f\x32\xd5\x66\x31\x28\x5b\x29\x3b\xb8\x98\x9c\x9d\x4f\x67\xe7\xc7\x27\xe9\x50\x88\xf7\xaa\x44\x6b\xc1\xe0\x5d\x43\x06\x73\x98\x6f\x40\xd6\x75\x49\x99\x9c\x97\x08\xa5\x5c\x83\x36\x20\x17\x06\x31\x07\xa7\x39\xce\xb5\x21\x47\x6a\x91\x80\xd5\x85\x5b\x4b\x83\x22\x27\xeb\x0c\xcd\x1b\x77\x00\x50\x1f\x15\x59\xd8\x17\xd0\x0a\xa4\x82\x70\x3c\x83\xc9\x2c\x84\xd7\xe3\xd9\x64\x96\x88\x0f\x93\x9b\x77\x97\xef\x6f\xe0\xc3\xf8\xfa\x7a\x3c\xbd\x99\x9c\xcf\xe0\xf2\x1a\xce\x2e\xa7\x6f\x26\x37\x93\xcb\xe9\x0c\x2e\xdf\xc2\x78\xfa\x2b\xfc\x3c\x99\xbe\x49\x00\xc9\x2d\xd1\x00\x7e\xae\x0d\xc7\xae\x0d\x10\x43\x87\x79\x2a\x66\x88\x07\xce\x0b\xdd\x06\x63\x6b\xcc\xa8\xa0\x0c\x4a\xa9\x16\x8d\x5c\x20\x2c\xf4\x0a\x8d\x22\xb5\x80\x1a\x4d\x45\x96\x8b\x67\x41\xaa\x5c\x94\x54\x91\x93\xce\x3f\x7f\x91\x4e\x2a\x5e\x0c\x84\xa8\x65\x76\xcb\x46\x94\xb6\x8a\x51\xa7\xaa\xd6\xc6\x41\x24\x82\xb0\xa8\x5c\x28\x82\x90\xf4\x80\x74\xe3\xa8\xe4\x07\x85\xae\xfb\x19\x70\x6d\xf8\x6f\x6d\xf9\x7f\x86\x45\x2d\x6c\x28\x44\x10\x2e\xc8\x2d\x9b\x79\x9a\xe9\x6a\x60\xeb\xe2\xe5\x5f\x07\x99\x9e\x1b\xc9\x52\xb7\xaf\x6c\x4a\x7a\xc0\x04\xd1\x0a\x95\x3b\x9e\x4b\x8b\x83\x52\xb3\x62\x2c\xc4\x60\x00\x67\x55\x3e\xd5\x33\x25\xdd\x0d\x5a\xc7\x88\x37\xb6\xab\xe5\x42\x2d\xb5\x75\x70\xc6\xb6\x52\xb1\x92\xe6\x91\xec\x08\x9e\x7b\x3f\xe9\x99\xae\x2a\xa9\xf2\x7b\x11\xbc\xb7\x78\x0a\x00\xa1\xd2\xc7\x9c\xdd\xb1\x43\xeb\xc2\x44\x04\xb3\xa5\x36\xee\x14\xc2\x33\x83\x92\xdb\x83\x51\x19\x64\x4b\xcc\x6e\x5b\x18\x18\x3c\x18\xac\x97\x5a\x56\x04\xa8\xf2\x5a\x93\x72\x96\x35\x2f\xb4\x5a\x9c\xc2\xef\x33\x34\xab\x4e\xaf\xd0\x65\xa9\xd7\x8c\xfe\x56\x90\x99\xc1\xaf\x16\xb4\x42\x05\x2d\x9e\x39\x16\xb2\x29\x9d\x65\xea\x85\xaf\x86\xaf\x86\x61\x9c\x0a\x71\xbc\xf5\x72\x0c\x06\x5d\x63\x54\x6b\x94\x49\x8c\xd6\xfd\x60\x61\x72\x05\x32\xcf\x99\x1d\x29\x4b\xef\x07\x79\x0c\x77\x0d\x1a\x42\x0b\x10\x52\xdd\x19\x0a\x3d\x51\x50\x66\x4b\xa8\x8d\x5e\x51\x8e\x39\xdb\x88\xc2\x7d\xd5\x7f\x50\x6d\x47\x54\xbf\x4c\xa8\x3e\x09\xe3\x44\x80\x4f\x98\x0a\x90\x65\xd9\xf9\xb7\xb5\x66\xd6\xcd\x75\xce\x0e\x2a\xe9\xb2\xb6\x8f\xc3\xab\xcb\x37\xbf\x4d\xae\x42\x40\xb5\x22\xa3\x55\x85\xca\xc1\x4a\x1a\xe2\x2e\x4b\x80\x1c\xac\xa9\x2c\xbb\x64\x40\xc2\xc9\x70\xb8\xb5\x96\xc0\x8f\xc3\x21\x68\xa6\xfc\x9a\x2c\xa6\xbf\x27\x22\x18\x9b\x85\x3d\x85\xb6\x70\xff\x96\x9f\xa9\x6a\xaa\x29\x9f\x45\xc3\x38\x11\xc1\x75\xa3\x4e\x01\x2a\x49\x2a\x11\x0f\xc2\x17\xdd\xc3\xd9\xb2\x4d\x88\xa2\x51\x19\x90\x22\x17\xc5\x70\x2f\x82\x03\x42\xa4\x6f\x4b\xb9\xb0\x51\x9c\xce\xbc\xf0\x2f\xd2\x44\xcf\x59\x39\x81\x90\x7f\xc2\xa4\xab\x43\x02\x21\x4f\x4b\x6f\xd7\x69\xb0\x5c\xda\x6f\x60\x03\x68\x95\x86\x31\x47\x35\x18\x00\xd5\x30\x02\x27\xcd\x02\x9d\xc7\xbf\x97\xe6\x02\x6d\x58\xc0\x78\x89\x16\x15\xcc\x81\x6a\x3e\xac\x5b\x35\x9e\xa0\xb5\xce\x7f\xb0\xdd\xb1\xda\x1d\x2b\x9d\x63\x7b\x2e\xdc\xa6\x46\xa8\xa4\xbd\xe3\xdc\xd0\x30\x04\x4d\xe6\x38\xeb\xab\x3d\x44\x1e\x3a\x4c\x18\xb2\x28\xab\x72\x78\x71\xd0\x13\x09\x48\xb3\xb0\xf0\xf1\x53\x2b\xee\x41\xab\xe0\x74\x04\xcf\x77\x96\xef\x45\xe0\x4d\x9e\x7a\x48\x12\x11\x3c\x08\x11\x70\x8b\xa6\x13\x45\xee\x42\x33\xa6\x22\xc8\xb1\x40\x03\xfe\xf8\x6d\xd9\xd8\x65\x77\x2e\x02\x2a\x00\x8d\x61\x9b\x55\x7a\xdd\xa8\x28\xfe\xc9\x3f\x3f\x1b\x81\xa2\x92\xfd\x05\x45\xe5\xd2\xb7\xb5\x21\xe5\x8a\x48\xdb\x74\xe6\x72\x34\x26\x81\xf0\x68\xf5\x5f\x15\x26\x2c\x1d\x8b\x20\xd0\x36\x3d\xff\x4c\x2e\x7a\x19\x73\x04\x7d\x5e\x51\x05\x2f\x76\xa1\xc6\xe0\x3d\xb0\x8a\x36\x6c\xbb\x03\x95\xda\x2e\xca\x1a\x63\x98\x9e\x2d\xb8\xdc\x49\x2a\xf7\xe8\x3e\x7a\xdf\xa1\x3c\xb9\x6a\x0d\x34\x5d\x13\xb0\xa5\x5e\x43\x37\xae\xdf\x51\xa8\x56\x22\xa8\xa9\x4e\x40\xdf\x72\x9a\xda\xa6\x17\x5a\xdf\x36\xf5\xb9\x5a\x45\x7d\x7b\xc4\x1e\x88\x67\xfa\xd6\x67\xdc\x75\x03\x27\x7e\xce\xa1\x16\xbd\x1c\x1b\xe3\xee\x81\xb5\xb4\x7e\xa5\xf2\x1e\xe0\x90\x48\xf5\xbe\xfa\x26\x0b\x3d\x0e\x81\xfa\x9a\xe3\xe9\xe5\x9b\xf3\x6f\xf2\xdc\x09\x7e\xb7\x6b\x0f\xce\x4a\x96\x94\x4b\xc7\xab\x49\xba\x03\x84\xa4\x41\x6e\x83\x6e\x58\xa1\x4d\x7d\x1c\x0a\x5d\x7a\x25\x8d\xc5\xc9\x55\x54\x53\x1d\xc3\x68\xc7\x83\x3f\x47\x25\xd3\x8a\x2f\x09\x98\xc3\xd1\x5d\x02\xeb\x25\x65\x4b\xa0\x36\x5a\xa9\xf6\x46\x63\x98\x70\x28\x2d\x40\x8f\x9c\xaa\x3f\x77\xfa\x18\x90\xef\xf0\xaa\x3a\xaf\x1e\x1b\x83\x0b\xf2\xad\xb9\x94\x2a\x2f\xd1\x58\x11\xf0\x8e\x4c\xdf\xf9\xc7\xb7\x8d\xca\xa2\xb0\x9f\xd2\x6c\x97\xff\x88\x9f\x92\xd9\x9b\x3d\x61\x02\xd5\xed\xd9\xee\x39\xf2\xc4\x63\xb7\x71\xeb\xd4\xd6\xa4\xa0\xa9\xdb\xab\x01\x8f\x2e\x23\xfa\x1c\xbd\xe1\x0b\x0e\x49\x8d\x55\xee\x57\x56\x14\x9e\x86\x7f\xa9\xd2\x2b\x3f\x06\x15\x95\x7e\x7e\xf9\xc9\xd2\xc5\x0c\xdc\x65\x91\xd7\xbc\xee\xa6\xf6\x07\x43\x0e\x4d\x02\x2f\xba\x53\xbf\x99\xe2\xae\x1f\xff\xa7\x49\x79\x1c\x6d\x84\xc6\xf0\x64\xf1\xbd\x98\x80\xc5\x1a\xfa\x21\xd3\xfe\x32\xfc\xd6\x19\xeb\x47\x83\xbc\xc5\xa8\x9f\x42\x09\x94\xa8\xbc\x7a\x1c\x8b\x80\xc7\x27\x25\xfd\x0c\x31\x52\x2d\x10\xbc\x69\xae\x1e\xeb\x7f\xa4\x4f\x30\xe2\xa3\xb6\x80\x51\x5b\xf6\x2e\xe7\xee\x1a\x92\xfe\x4b\x93\x8a\x58\xda\x47\xd2\x8f\xe9\xd7\x0d\x95\xb9\x85\xfd\xd9\xde\xe5\x9d\x40\x63\xfd\x0d\x4a\xe7\x2d\xa3\x75\xee\xe9\xac\x8b\xed\x94\x28\x75\xe6\xaf\x52\xdd\x80\x7d\x5c\x15\xe8\x93\x51\xb4\xcb\xbc\x47\xb5\x1d\x4d\xff\xe9\xd6\x75\xbf\x1d\xbe\xdc\xd4\x5c\x5c\xde\x96\x7e\x6d\x76\xfb\xd8\x3f\x3f\xda\xc3\x64\xe1\xaa\xdb\x18\x8f\x96\xea\x16\x09\x5f\xc8\x35\x3c\x59\x4a\x83\x77\x8f\xca\xe9\xd1\xf5\x30\x9f\x8e\xfa\x22\xde\x3f\x88\x20\xa0\xda\x1f\xf5\xb8\xce\xea\x92\x5c\x64\xf0\x2e\x7d\x7f\x7d\x91\x72\x42\x9b\x28\x4e\xff\x89\x2e\x0a\xa9\xb6\x61\x9c\x40\x98\xf0\xb8\xf0\x65\xfc\x2d\x61\x08\xb7\x55\x64\x53\xec\x66\x6f\x45\xf8\x4a\x44\x9c\xc4\x96\xd7\x5f\xac\x8b\x2e\xae\x11\xdf\xe6\x51\xe5\x9e\x28\xdb\x2d\xc1\xa5\xf7\xff\xa8\xd8\xb1\x08\xfe\x0e\xc3\x56\x75\x9d\xfa\x94\xdf\xa1\xcc\xd1\x44\x3f\x0e\x87\x5e\x67\x7f\x01\xad\x79\xf1\x70\x2b\x3f\x62\x32\x27\x02\x61\xec\xe5\x5b\x44\x3b\x47\x87\x26\x4f\xbc\xc9\x87\x8e\x5f\xfe\xcd\xf6\x06\x97\x5e\x63\xa5\x1d\x8e\xf3\xdc\x00\x29\xa7\x0f\x6e\x56\xc9\x17\x12\xad\x5e\x37\x5b\xfa\x65\x43\x2a\xd3\x15\x13\x33\xd3\x4a\x61\xb6\xe3\x5f\x4b\xa1\xef\x2b\xf0\x93\x79\x1f\x86\xd1\x77\x4a\x4f\xd5\xed\xbd\xd2\x77\x05\xdf\xdb\xa5\x41\xbb\xbb\x1f\x3a\xdd\x56\xae\xb1\x68\x3d\xf3\x9d\x86\x9c\x8a\x02\xb9\x65\x88\x17\xc5\x6c\x3a\xbe\x81\xc2\xe8\xaa\xe5\x28\xd4\xda\xf9\x57\x25\x14\x92\xca\xc6\x20\x54\x3a\x47\xdb\x66\xd5\xf3\x61\xdb\x4c\x5f\x6b\xac\xed\xc6\x6f\x4c\xc9\x44\xe2\xd4\x66\x5d\x6a\x61\xf7\xd5\x78\x64\x77\xd3\xd6\xcf\x69\x8e\x7a\x3b\x59\x3c\x3a\x4c\xdc\xc6\x94\xf1\xf6\xda\xf2\xec\x8b\x4d\x81\xc6\xf8\x01\xd3\x5e\x78\xd8\x44\xfa\x5a\xe7\x9b\xf4\xac\xd4\x16\x79\xf8\xcc\x75\xbe\xd9\x5a\x6d\xbf\x94\xd2\x6b\x94\xf9\xb8\x2c\xa3\xad\xf8\xb7\x78\x30\x4f\xf6\x5a\xfb\x14\xb1\x17\xee\xae\xd3\x6e\xc1\x7b\xe1\x6e\xaf\xfd\xf1\x87\xe7\x3e\x1f\xf9\x5d\x37\xfc\xda\xa6\x9b\x28\xbf\xbf\xf7\xef\xa1\x70\x74\xd7\x56\xe7\xe8\x2e\x4c\xe0\xd0\x59\x8b\x4c\x1b\x99\x6f\x63\xaa\xed\xc7\xe1\xa7\xde\x3f\xa7\xc2\xf5\xb9\x6f\xdb\xcf\x5f\x71\x47\xbe\x4a\xf7\xbb\xae\x39\xf0\x7f\x7d\xe8\xf7\xd9\x08\xaa\x0d\x0f\xb2\xf6\x39\x61\xf5\x6a\x03\xd3\x6e\xf6\x1e\xdd\xc1\xb1\xa7\x0f\xb3\xf4\x60\x46\x74\xad\xf8\xdd\x1e\xf8\x03\xfb\x29\x07\xcc\xda\x46\xe1\xe7\x1a\x33\xd7\xea\x46\xb5\xb6\x96\xe6\x65\xc7\x5f\xb7\x34\xba\x59\x2c\x0f\x84\x94\x43\x53\xc8\x0c\xfb\xaf\xbd\xb5\xdc\xb4\x6d\x2e\x55\xcb\x74\xde\x21\xf1\x13\xb1\xef\xb6\x95\xa2\x52\x3c\x88\xff\x07\x00\x00\xff\xff\x96\x06\x59\x4a\xbe\x11\x00\x00") - -func testImagesAgnhostNoSnatTestMainGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostNoSnatTestMainGo, - "test/images/agnhost/no-snat-test/main.go", - ) -} - -func testImagesAgnhostNoSnatTestMainGo() (*asset, error) { - bytes, err := testImagesAgnhostNoSnatTestMainGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/no-snat-test/main.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostNoSnatTestProxyMainGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x56\x71\x4f\xe3\x3e\x12\xfd\x3b\xfe\x14\x73\x91\xe0\x12\x2e\x38\x85\xd5\xea\x4e\x5d\xa1\x53\xb7\x0b\xb7\xd5\x72\x85\x6b\x60\x57\xab\xbb\xd3\xe1\x26\xd3\xc4\x22\xb1\x8d\xed\x50\x2a\xc4\x77\x3f\x8d\x53\xf8\x95\x65\xf9\x2b\xb5\x3d\x79\xf3\xe6\xcd\xf3\xa4\xf9\x01\x9b\x6a\xb3\xb1\xb2\x6e\x3c\x1c\x8f\x8e\xfe\x0a\x57\x0d\xc2\xb7\x7e\x89\x56\xa1\x47\x07\x93\xde\x37\xda\x3a\xce\xd8\xb9\x2c\x51\x39\xac\xa0\x57\x15\x5a\xf0\x0d\xc2\xc4\x88\xb2\x41\xd8\x9e\x64\xf0\x1d\xad\x93\x5a\xc1\x31\x1f\x41\x42\x01\xf1\xf6\x28\x4e\x3f\xb1\x8d\xee\xa1\x13\x1b\x50\xda\x43\xef\x10\x7c\x23\x1d\xac\x64\x8b\x80\x0f\x25\x1a\x0f\x52\x41\xa9\x3b\xd3\x4a\xa1\x4a\x84\xb5\xf4\x4d\x48\xb2\x85\xe0\xec\xe7\x16\x40\x2f\xbd\x90\x0a\x04\x94\xda\x6c\x40\xaf\x76\xa3\x40\x78\xc6\x00\x00\x1a\xef\xcd\x38\xcf\xd7\xeb\x35\x17\x81\x25\xd7\xb6\xce\xdb\x21\xca\xe5\xe7\xb3\xe9\xe9\xbc\x38\x3d\x3c\xe6\x23\xc6\xae\x55\x8b\xce\x81\xc5\xbb\x5e\x5a\xac\x60\xb9\x01\x61\x4c\x2b\x4b\xb1\x6c\x11\x5a\xb1\x06\x6d\x41\xd4\x16\xb1\x02\xaf\x89\xe7\xda\x4a\x2f\x55\x9d\x81\xd3\x2b\xbf\x16\x16\x59\x25\x9d\xb7\x72\xd9\xfb\x57\x02\x3d\xb3\x92\x0e\x76\x03\xb4\x02\xa1\x20\x9e\x14\x30\x2b\x62\xf8\x3c\x29\x66\x45\xc6\x7e\xcc\xae\xbe\x5e\x5c\x5f\xc1\x8f\xc9\x62\x31\x99\x5f\xcd\x4e\x0b\xb8\x58\xc0\xf4\x62\xfe\x65\x76\x35\xbb\x98\x17\x70\x71\x06\x93\xf9\x4f\xf8\x36\x9b\x7f\xc9\x00\xa5\x6f\xd0\x02\x3e\x18\x4b\xdc\xb5\x05\x49\xd2\x61\xc5\x59\x81\xf8\x2a\xf9\x4a\x0f\x64\x9c\xc1\x52\xae\x64\x09\xad\x50\x75\x2f\x6a\x84\x5a\xdf\xa3\x55\x52\xd5\x60\xd0\x76\xd2\x51\xf3\x1c\x08\x55\xb1\x56\x76\xd2\x0b\x1f\xd6\x6f\xca\xe1\xec\x20\x67\xcc\x88\xf2\x96\x40\x94\x76\x4a\x78\x63\xf5\xc3\x86\x31\xd9\x19\x6d\x3d\x24\x2c\x8a\x57\x9d\x8f\x59\x14\x4b\x9d\x4b\xdd\x7b\xd9\xd2\x42\xa1\xcf\xa9\x33\xf4\x5b\xbb\x98\xb1\x28\xae\xa5\x6f\xfa\x25\x2f\x75\x97\x3b\xb3\x3a\xfa\x90\x97\x7a\x69\x05\x05\xdc\xfe\xcd\x71\xa9\x73\xf2\x84\x56\xa8\xfc\xe1\x52\x38\xcc\x5b\x5d\xbb\x98\xa5\x8c\xe5\x39\x4c\xbb\x6a\xae\x0b\x25\xfc\x15\x3a\x7f\x49\x0c\x48\xe9\xde\x6d\x7b\x58\xab\x46\x3b\x0f\x53\x02\xe4\xec\x5e\xd8\xdf\xbd\x70\x02\xfb\x21\x23\x9f\xea\xae\x13\xaa\x7a\x64\xd1\xb5\xc3\x31\x00\xc4\x4a\x1f\x52\x69\x87\x1e\x9d\x3f\x0c\x05\xc6\x19\x8b\x8a\x46\x5b\x3f\x86\x78\x6a\x51\xd0\x0d\x11\x10\x8e\x5e\x64\xce\xcb\x06\xcb\xdb\x41\x15\x40\x55\x19\x2d\x95\xa7\x17\xcf\xb5\xaa\xc7\x00\x37\xcf\x2f\xbe\x1b\x0c\xeb\x46\x96\x4d\x80\x95\xdb\x38\xf2\x26\x3a\x4f\xf6\xa3\x65\x2d\xef\x51\x81\x17\xb6\x46\x0f\xc9\x2e\xc8\xdf\x87\xcd\x93\xe1\xf1\x3f\x69\xf6\xa5\x71\x27\xd2\x1c\x65\xd2\x1c\xa7\xd4\x5b\xb0\xe8\x7b\xab\x1c\x48\x4f\x9e\x77\x46\x87\xbb\x4b\x16\x87\x8f\xa3\xd1\xcb\x16\xb9\x14\xad\xd5\x96\xdf\x64\x2c\x9a\xd8\xda\x8d\x01\x06\xa9\xfe\x29\x1e\x64\xd7\x77\x73\xda\x4c\x46\x69\xc6\xa2\x45\xaf\x48\xb2\x4e\x48\x95\xb1\x27\x16\xc4\x0e\x4e\x20\xd3\xab\x9a\xb1\x55\xaf\x4a\x90\x4a\xfa\x24\x85\x47\x16\xbd\x6d\x04\x3f\x6b\x45\xed\x92\x94\x17\xe1\x8d\xef\xc2\x26\xfb\x84\x90\x41\x4c\x8f\x38\x83\xf8\xc3\xd1\xf1\x87\x8f\xf4\x83\x66\x54\x40\xf7\x1a\x1c\xda\xfb\xf7\x74\xd4\x8a\xc7\x29\xd1\xc9\x73\xb8\xa2\x71\x73\xa9\xab\x3f\xbb\xd7\xc1\x5e\xdc\xa2\x83\x9b\x41\xaf\x9b\x20\xd0\x8d\x34\xee\x06\x84\xad\xfb\x0e\x95\x77\x59\xd8\xbc\xeb\xd1\x52\x37\x1e\x87\xc8\xa7\x57\xa2\x93\xc6\x8f\xd2\xb8\x27\xc6\xfc\xc6\x20\x74\xc2\xdd\xfd\x61\x31\xe7\x6d\x5f\x7a\x2a\xfb\x72\x47\x92\xa7\xad\x28\xa4\x59\x52\x76\x15\x1c\xbc\xf2\x61\x46\x04\x1c\xfc\xfb\xbf\x43\x78\x50\xad\x83\xf1\x09\xec\xbf\x02\x7f\x64\x51\x40\x1d\x07\x41\x32\x16\x3d\x31\x16\xd1\x1d\xe1\x33\x25\xfd\xb9\x26\x49\x59\x54\xe1\x0a\x2d\x84\xed\xb3\xb6\x77\xcd\x76\x9f\x45\x72\x45\x3d\x26\xd8\x8e\x2f\x7a\x95\xa4\x9f\xc2\xfa\x4f\x27\xa0\x64\x4b\x29\xa3\x55\xe7\xf9\x99\xb1\x52\xf9\x55\xa2\x1d\x2f\x7c\x85\xd6\x66\x10\xef\xdd\xff\x47\xc5\x19\x45\xa7\x2c\x8a\xb4\xe3\xa7\x0f\xd2\x27\x47\x29\x31\x78\x2e\x2d\xe9\xe0\xe0\x15\xdb\x14\x42\x92\xc1\x57\x04\x9f\xe7\x60\xb1\x96\xce\xa3\x85\x46\xa8\xaa\x45\xcb\x22\x9a\x10\xfc\x6b\x58\x9d\xf5\xaa\x4c\xe2\x5d\xad\xe3\x0c\x76\x56\x54\x43\x9e\x83\x33\x52\x41\x6f\x86\x31\x47\x86\xb0\x2c\x1a\x6c\x1e\x3e\x04\xfc\x9c\x32\xa8\x89\xaa\x0a\x3a\x4c\xe2\x71\xfc\x97\x8e\x5f\x06\x77\x29\xd9\xa6\x2f\x84\x77\x90\xaf\x17\xe7\x89\x91\x26\x03\x69\x1c\x3c\xf7\x60\x78\x12\xf1\x2d\x3a\xa9\x53\x6c\xd5\x89\xb7\xdf\x9c\x3d\xf7\xc6\x1b\x7b\x2e\xce\xe0\x19\xed\xb7\xe9\x92\xf5\xc0\x74\xb1\xbd\x7d\x3f\xac\xf4\x68\x33\xba\xf8\x70\xb0\x3d\x09\x23\x20\x18\xa1\xb7\x2d\xf5\xec\x17\xba\x16\xef\xf8\xf5\xe2\x9c\xff\xab\x47\xbb\x49\x52\xfe\x0f\xf4\x49\x3c\xd8\x35\x4e\x03\xd4\xdb\x63\x69\x5c\x9c\xa6\x54\x8f\x33\xd9\xb3\x17\x42\x3e\x3a\xee\x6d\x9b\xbe\x98\x64\xc7\x14\x6b\x1e\xf8\x7d\x45\x51\xa1\x4d\x3e\x8e\x46\xe9\x2f\x4e\x59\x67\x10\x0f\x4d\xa6\x7b\xb3\x21\xd1\xf6\xee\x02\xfe\x18\xf6\xee\xe3\x0c\x7a\xdb\x3e\x9b\xe7\x09\xb0\x75\x18\x70\x97\xba\xda\xbc\xb0\x18\x3e\x1b\x7c\x81\xa2\x9a\xb4\x6d\x42\x0c\xf9\x67\x5d\x6d\x28\xd7\x5b\x4a\xbf\xe7\xf4\x0e\x29\x8b\xa2\x22\x4e\x94\x8f\xfe\x41\xbc\xcc\xbc\x95\xd5\xdd\xfb\x4c\x77\xa9\x92\xed\x86\x66\x55\x83\xed\x44\x87\xe0\xbc\xf0\xbd\x83\x52\x57\x18\x86\x46\xc0\x17\xbf\x4c\x1c\xad\xc2\x0b\x52\x79\xb4\x4a\xb4\x34\x94\xde\xf2\x0f\xd5\x16\x01\x6e\xaa\x2b\x4c\x77\x22\x92\xe5\x56\x84\x27\xba\x6b\xd1\x8b\x2e\x7c\xda\x6a\x87\x09\xd9\xeb\xff\x01\x00\x00\xff\xff\x3d\xc5\xcc\xbc\xd7\x09\x00\x00") - -func testImagesAgnhostNoSnatTestProxyMainGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostNoSnatTestProxyMainGo, - "test/images/agnhost/no-snat-test-proxy/main.go", - ) -} - -func testImagesAgnhostNoSnatTestProxyMainGo() (*asset, error) { - bytes, err := testImagesAgnhostNoSnatTestProxyMainGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/no-snat-test-proxy/main.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostOpenidmetadataOpenidmetadataGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x58\x6f\x6f\xdb\x38\xf2\x7e\x2d\x7e\x8a\x59\xfd\xd0\x54\xee\x4f\x96\x7a\xb9\x37\x07\x17\x7d\x91\x3a\xcd\xad\xaf\xbd\x24\xa8\x9d\x16\x8b\xbb\x03\x4a\x4b\x23\x89\xb5\x44\x6a\x49\x2a\x8e\x51\xf4\xbb\x1f\x86\x94\x64\x3b\xf1\x2e\xd2\x2b\x50\x38\x96\x38\x0f\xe7\xcf\xc3\x67\x86\x4e\x5f\xb1\xb9\x6a\x77\x5a\x94\x95\x85\xf3\xd7\xe7\xaf\x61\x55\x21\x7c\xe8\xd6\xa8\x25\x5a\x34\x70\xd1\xd9\x4a\x69\x93\x30\xf6\x51\x64\x28\x0d\xe6\xd0\xc9\x1c\x35\xd8\x0a\xe1\xa2\xe5\x59\x85\xd0\xbf\x89\xe1\x33\x6a\x23\x94\x84\xf3\xe4\x35\x44\xb4\x20\xec\x5f\x85\x93\x37\x6c\xa7\x3a\x68\xf8\x0e\xa4\xb2\xd0\x19\x04\x5b\x09\x03\x85\xa8\x11\xf0\x21\xc3\xd6\x82\x90\x90\xa9\xa6\xad\x05\x97\x19\xc2\x56\xd8\xca\x6d\xd2\x43\x24\xec\xb7\x1e\x40\xad\x2d\x17\x12\x38\x64\xaa\xdd\x81\x2a\x0e\x57\x01\xb7\x8c\x01\x00\x54\xd6\xb6\xb3\x34\xdd\x6e\xb7\x09\x77\x5e\x26\x4a\x97\x69\xed\x57\x99\xf4\xe3\x62\xfe\xfe\x7a\xf9\x7e\x7a\x9e\xbc\x66\xec\x4e\xd6\x68\x0c\x68\xfc\xbd\x13\x1a\x73\x58\xef\x80\xb7\x6d\x2d\x32\xbe\xae\x11\x6a\xbe\x05\xa5\x81\x97\x1a\x31\x07\xab\xc8\xcf\xad\x16\x56\xc8\x32\x06\xa3\x0a\xbb\xe5\x1a\x59\x2e\x8c\xd5\x62\xdd\xd9\xa3\x04\x0d\x5e\x09\x03\x87\x0b\x94\x04\x2e\x21\xbc\x58\xc2\x62\x19\xc2\xbb\x8b\xe5\x62\x19\xb3\x2f\x8b\xd5\xaf\x37\x77\x2b\xf8\x72\xf1\xe9\xd3\xc5\xf5\x6a\xf1\x7e\x09\x37\x9f\x60\x7e\x73\x7d\xb9\x58\x2d\x6e\xae\x97\x70\x73\x05\x17\xd7\xbf\xc1\x87\xc5\xf5\x65\x0c\x28\x6c\x85\x1a\xf0\xa1\xd5\xe4\xbb\xd2\x20\x28\x75\x98\x27\x6c\x89\x78\xb4\x79\xa1\xbc\x33\xa6\xc5\x4c\x14\x22\x83\x9a\xcb\xb2\xe3\x25\x42\xa9\xee\x51\x4b\x21\x4b\x68\x51\x37\xc2\x50\xf1\x0c\x70\x99\xb3\x5a\x34\xc2\x72\xeb\xbe\x3f\x09\x27\x61\xaf\x52\xc6\xd2\x14\x6e\x79\xb6\x21\x1c\xd5\xa2\x14\x79\x83\x96\xe7\xdc\x72\xb0\x68\xac\x71\x06\x37\x8b\xcb\x39\x45\x9e\xd1\x46\x3b\x40\x99\xb7\x4a\x48\x6b\x60\x5b\x89\xac\x02\xae\x11\x5a\xae\x2d\xa8\x82\xe0\xc8\x62\x89\xfa\x5e\x64\x78\x91\x65\xaa\x93\x76\x61\x4c\x87\xfa\x72\x04\x28\x90\xdb\x4e\x63\xc2\xda\x93\x3b\x33\x26\x9a\x56\x69\x0b\x11\x0b\xc2\x4c\x49\x8b\x0f\x36\x64\x41\x58\x34\xee\x43\xa8\x54\xa8\xce\x8a\x9a\xbe\xd4\xaa\xa4\x0f\x89\x36\x25\xae\x84\x8c\x05\x4a\xe4\x19\x84\xa5\xb0\x55\xb7\x4e\x32\xd5\xa4\x99\xd2\xa8\x4c\x5a\xaa\x29\xbd\xa2\xe5\x07\x2f\x4d\x5b\xfc\xe5\xaf\x69\xa6\xd6\x9a\xbb\x37\x8a\xd2\xea\x58\xf6\x90\x2a\xde\xd9\xea\xdc\x3f\x6e\x37\x65\x22\x64\x6a\x7e\xef\xb8\x46\xc2\xfa\xa6\x0c\x26\xf7\xe7\xe9\xb7\xad\xf3\x6a\xf3\x37\x93\x08\x95\x66\xb5\x40\x69\xa7\xa5\x4a\x35\x1a\x1b\xb2\x89\xcb\xf0\xbc\xc9\x57\x68\xec\x9f\x67\x45\x18\x3a\x50\x9e\xb7\xa5\xac\x94\xb1\x30\x27\xb7\x12\x76\xcf\xf5\xf3\x20\xde\xc2\x99\x8b\x24\x99\xab\xa6\xe1\x32\xff\xce\x82\x3b\x83\x33\x00\x08\xa9\x9a\x53\xe3\xad\xa7\xdc\x9b\x4f\x85\xb3\x9f\x8e\xa5\x0d\x63\x16\x2c\x2b\xa5\xed\x0c\xc2\xd5\x58\xfe\x67\x15\x93\x4c\x3f\x2a\x59\xce\x20\xfc\x84\x3c\x37\xe0\xce\x76\x43\x16\xee\xbc\x6d\x90\x4e\x4b\x0e\xdc\x5a\x6c\x5a\x42\x56\x70\x8f\x5a\x14\x3b\x10\x16\x78\xc9\x85\x34\xd6\xcb\xd1\xed\x02\xc8\x51\xd4\x2f\x0d\x84\xf0\xff\x2c\x08\x42\xc7\xc0\x91\x77\x31\x74\x86\xe8\xce\x49\x7d\x74\x3e\x25\xf2\xed\x3c\x4b\xe9\xf8\x60\x83\xd2\xb3\x3e\x21\xaf\x2e\x74\x69\x66\xe0\xf3\xf2\x4f\xfe\x20\x9a\xae\xb9\xa6\x67\xd1\xeb\x49\xcc\x82\x4f\x9d\x9c\x01\x34\x5c\xc8\x98\xfd\x60\x2e\xd5\x11\x0b\x9c\xbf\xb7\xdc\x56\x30\xfe\xa3\x73\x2f\x4b\x16\xf0\x2e\x17\x48\xd2\xf6\xf4\x95\x90\xf3\xba\x33\xf6\x30\x3b\x6b\xa5\x6a\x22\x41\xd1\xc9\x0c\x84\x14\x36\x9a\xc0\x77\x16\x14\x06\x66\x6f\x9f\x55\xd3\xe4\xaa\xe6\xa5\x89\x26\x64\x93\x2c\xdd\x46\x9f\xb9\x8e\xce\x46\x0f\x63\x08\xdd\xdf\xd3\x96\xdb\x2a\x8c\x21\xa4\xff\xce\x75\xab\x40\x23\xcf\xa1\xaf\x3a\xf4\x55\xef\x8b\x51\x68\xd5\x24\xe1\x13\xdc\x21\xbc\x18\xc2\xe1\xcf\x01\xf4\x62\x88\xdc\x2a\xc8\x2a\xcc\x36\xa4\x80\x1a\x33\x14\xf7\x43\x89\x07\xc0\x77\x4a\xd5\x0e\xee\x69\x4a\x62\x08\x85\x9c\x66\xfe\xe9\x21\xf5\xa0\xe0\xb5\xc1\x98\xca\xbd\x90\x59\xdd\xe5\xe8\xe9\xb7\x5f\x0d\x6b\xe4\x9a\x44\xcc\x05\x20\xa4\xd3\x7a\x34\x16\x2a\xe4\x39\x6a\x93\x40\x48\x6c\x09\xc2\x3b\x83\xb0\xad\x50\xc2\x3d\xaf\x45\xce\xad\x23\x4b\x4f\xb1\x23\x7a\x9d\x10\xb5\x78\x00\xf1\xe2\xd6\xb7\x13\x20\x29\x40\x69\x45\xd6\x13\x6b\x42\x6c\x71\x55\x25\xee\x44\x59\x93\xc3\xab\xa3\xb3\x17\x03\xd7\xa5\x81\x7f\xfd\xc7\xb3\xc3\x95\x3d\xb3\x0f\x31\xa0\xd6\x54\x7c\xea\x8c\x37\xd4\x97\xcf\xe7\x4e\x33\xa2\x5e\xe9\x92\x77\x3c\xdb\x94\x5a\x75\x32\x8f\x26\x13\x16\x88\xc2\x59\xfc\xf2\x16\xa4\xa8\x09\x24\xa8\x55\x99\x5c\x71\xcb\xeb\x08\xb5\x9e\xb0\xe0\x07\x63\x81\xe6\xdb\x11\xb9\x44\xeb\x32\x14\x3d\xd3\xda\x3d\xba\xd5\x42\xda\x28\xbc\xf9\x30\x83\xbf\xab\x9e\x23\x54\x4c\xab\x36\x23\xf0\xb7\xad\x4d\x6e\xb9\x36\xb8\x14\xa5\xc4\x3c\xd2\x7c\xfb\xdc\x2d\xe8\x5c\x75\xd2\xf0\x02\xe7\x35\x17\x8d\x81\xcc\x7d\x8c\xd6\xb3\xb7\xb4\x65\x72\x77\xb0\xe4\x8b\xb0\x95\xea\xec\x67\x12\x89\x3e\xed\xd1\xd9\x21\xc6\xe4\xcd\xcf\xc4\x56\xf8\xe0\x4a\x65\xc1\xcb\x1e\xbc\x30\x61\x7c\xe4\x54\xe2\xcf\xde\xe4\xd8\xea\xaa\xab\xeb\x98\xe6\x9d\x69\xcf\x26\xcc\x7b\xef\x67\xf0\x6f\xf9\xe2\xff\xee\x1f\xa1\x4c\x18\x0b\x84\x31\x63\xd6\xa8\xe9\x24\xd7\xb8\xbd\xd5\xea\x5e\xe4\xa8\x23\xc7\x82\xd3\xfb\xfe\x5c\xb9\xfa\x90\xe6\x4a\x1a\xab\xbb\x8c\x1c\x73\x22\xd8\xf6\x3b\xb9\x99\x61\x08\xf6\xb1\x9b\xe3\xa6\x54\x9c\x5a\xe4\xab\x83\x42\x0b\x63\x12\x9f\x77\xd4\xd1\x99\x0b\x60\xae\x64\x21\xca\xef\x9e\xab\x8b\xcb\x19\x0c\xea\xf0\x63\xe2\x97\xee\x7c\x5c\x3f\xc1\x89\x47\xb4\xfb\x3c\x66\xd7\x88\x52\xba\xa6\x42\x02\xf3\x8f\x2f\xab\xd0\x3b\xa9\xe1\x4f\xf9\x33\x44\x91\xf8\x15\xd1\xd9\xff\xca\x94\xfd\x29\x70\x90\xfd\x56\x4e\x30\xfd\xb9\xf8\x25\x3c\x49\x91\x3f\xa6\xc7\xa1\x2b\xa4\x1b\x76\xd7\x22\x6c\xba\x35\x5e\xf3\x06\xc1\x17\x8f\xdc\x1a\xbe\x92\x5e\x7d\xfd\x66\x94\x9c\x85\x92\x37\x18\x7e\x65\xc1\xdd\xe2\x12\x1e\xbd\xea\x44\x1e\x7e\x3d\x82\xeb\x73\x73\x0c\x68\x5a\x3e\x74\xab\xde\x1e\x0e\xc1\xdd\x6b\xda\xe1\xb8\x0d\xed\xdd\xeb\xd7\xf6\x5d\xa4\x6f\x22\x07\x1b\x67\x8f\x37\x25\x99\xf0\x9e\x30\x16\x1c\x5c\x42\x0e\x3c\xec\x31\x37\xe3\xcb\x44\x28\x0f\xe9\x24\x35\xda\xc0\x2b\x0f\x3b\x01\xdf\x9b\xa2\xc9\xe0\xfc\x77\x16\x68\xb4\x9d\x96\x50\x34\x36\x59\xb6\x7d\x09\x5e\x98\xf4\x85\x71\x84\x77\xc7\x7a\x93\xec\x37\x4e\xc6\x2c\x3c\x7a\x7e\x1c\xb1\x5b\x46\x2b\x86\x3e\xb7\x97\xf8\xbd\xa2\x42\xe4\xdd\x70\x47\x45\x69\xa7\xea\xeb\xfd\xb9\x71\x73\x69\x42\x03\xd0\x95\xa8\x31\x1a\x9b\xf4\x64\x74\xda\x9b\x47\xeb\x89\x33\xa2\x1d\xd2\xf4\x49\x2f\x00\xbf\xd8\xb8\xdb\x91\xeb\x0a\x60\x2b\x4e\x77\xab\xbe\x2f\x72\x09\xbf\xae\x56\xb7\xe0\x97\xc7\xfb\xe1\x9e\xd0\xfc\xd8\x9a\xd0\x82\x1e\x6e\x83\xbb\x04\x16\x05\xc0\x74\x7a\xaa\xf7\xd2\xe8\x69\x75\x87\xb1\xeb\xb7\x7e\x84\x85\xad\xa8\x6b\x42\xf3\x97\xbc\xa3\xdb\xe4\x62\x68\xea\x5e\x14\x12\xb8\xa1\x5b\xcc\x56\xd0\x15\xc9\x1b\x92\x15\x19\xd3\x4c\x9e\x5c\x62\xc1\xbb\xda\xae\x34\x97\x86\xe6\xfa\x84\xde\xd0\x05\xf5\x2b\x29\xcb\x57\xa8\xc5\x5a\x73\xbd\x03\x8d\x74\xb7\xe9\x87\xce\xa7\x41\x0c\x99\xd8\xe0\xee\x0d\x88\x82\xb6\x12\x06\x0c\xda\x78\xb8\x75\x0c\x40\x83\x07\xee\x61\x2f\x86\xb9\xf7\x65\xc8\x2f\x77\xf7\x2e\x5b\x71\xe9\x16\xe5\xde\x45\x02\x72\x79\xf5\x39\xe8\x1d\x15\x06\x78\x5d\xab\x2d\xcd\xe7\x34\xfb\xa0\x34\xa4\x4d\xfd\xf0\x61\x88\x1d\xa0\x55\xe7\xe7\xdc\x47\x23\x2c\x31\x92\x50\x4e\x27\x3e\xf6\x53\x72\x36\x06\x58\x88\xb2\xa3\xbb\xeb\x78\x6d\xe6\x6d\xab\x55\xab\x05\xb7\x08\xf3\x8b\xc4\xd3\xf1\x0f\x47\x87\xb9\xff\x9c\xc0\xe3\x27\x87\x74\xa5\x98\x6e\x2e\x6f\xa2\xc6\xf2\xae\x40\x39\x99\xc1\x52\x35\x98\xf3\x5d\x0c\x8d\xfb\x01\x61\xcb\xdd\x90\x08\x59\xc5\x65\xd9\xdf\xf0\x8d\xf2\x0c\xdc\x22\x64\x94\x33\x34\xd6\x23\x39\x86\x6b\xf5\x0d\x33\x6a\xd0\xde\x71\x2e\x5d\x06\xc6\x49\xd9\xa0\x1d\x32\x83\x0f\x16\xb5\xe4\xf5\xbe\x47\x91\x85\x83\x1a\xf3\x39\x4c\x6a\xe3\xda\xfd\x85\x33\xa2\x5b\xbb\x9b\xcb\x32\x4e\x33\x1e\xbe\xa4\xf1\x56\xe6\x0e\x80\x43\x2e\x8a\x02\x35\x8e\x33\xae\xf7\x06\xa4\x92\xd3\x03\xfa\x0e\x7e\x4d\x12\xe6\xec\xde\xed\x86\xfa\xc7\x23\x6b\xfa\x07\x8e\x34\x60\x07\xe6\xee\xeb\x62\x76\xc6\x62\x03\x5a\x29\x0b\xeb\x4e\xe6\x35\x0d\xae\x69\x0a\x46\x50\xc0\xc2\xbe\x34\xa7\x66\xcf\xa3\x0c\x08\x69\x9d\x47\x09\x0b\xb4\x25\xf5\x38\x79\x58\x5c\x87\x3b\x71\xb1\xa0\x26\x96\xa6\x74\xa8\x0f\xe6\xe3\x03\x62\xd1\xb4\x3a\x46\x73\xb0\xc4\x93\x8c\xea\xe9\x4b\xe9\x61\x0e\xa6\xdb\x83\xdf\x6c\xf6\x34\x4e\x58\x10\x64\x45\x39\x0a\x1d\x5d\x6e\x93\x47\x32\x40\xe3\xe6\x89\xc6\x3f\x08\x9f\x14\xb5\x97\xbc\x80\x9a\x6d\xa0\x3d\x27\xa1\xc7\x1a\xe3\xbd\x52\x3a\xca\x8a\xf2\x19\x58\x24\xff\xef\x89\xd5\x45\x14\x66\xaa\xab\x73\xf7\x9b\x54\x7f\x18\x65\x6e\xb5\x68\x5b\xd4\x33\x3f\xf9\xf8\x2e\x4f\x3b\xd3\xb4\x9c\xd9\x07\x8a\x62\x38\x24\x34\x69\x7e\xe6\x75\x87\x27\x67\x70\xba\x91\x3c\x51\xa3\x18\xce\x0e\xf4\xc4\xf9\x36\x86\x30\x03\x6d\xc9\xe8\xc7\x5e\xf5\xdd\x68\x24\x45\xcd\x7e\xb0\xff\x06\x00\x00\xff\xff\xb4\x88\x6d\x9a\xac\x13\x00\x00") - -func testImagesAgnhostOpenidmetadataOpenidmetadataGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostOpenidmetadataOpenidmetadataGo, - "test/images/agnhost/openidmetadata/openidmetadata.go", - ) -} - -func testImagesAgnhostOpenidmetadataOpenidmetadataGo() (*asset, error) { - bytes, err := testImagesAgnhostOpenidmetadataOpenidmetadataGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/openidmetadata/openidmetadata.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostPausePauseGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x93\x41\x6f\xdb\xc6\x13\xc5\xcf\x9c\x4f\xf1\x40\xe0\xff\x07\x65\xd0\xa4\xed\x9e\xaa\x26\x07\x55\x71\x5b\x22\x8e\x1c\x98\x72\x83\xa0\x2d\x90\xd5\x72\x48\x2e\x4c\xee\xb2\xbb\xcb\x48\x42\xe0\xef\x5e\x2c\xa9\xa0\x56\xd3\x43\x2f\x04\x76\xe7\xbd\x99\xdf\xcc\x2c\xf3\x0b\x5a\x9b\xe1\x68\x55\xd3\x7a\xdc\x5c\x5d\x7f\x8f\x6d\xcb\x78\x3b\xee\xd8\x6a\xf6\xec\xb0\x1a\x7d\x6b\xac\xcb\x88\xee\x94\x64\xed\xb8\xc2\xa8\x2b\xb6\xf0\x2d\x63\x35\x08\xd9\x32\x4e\x91\x14\xbf\xb2\x75\xca\x68\xdc\x64\x57\x48\x82\x20\x3e\x85\xe2\xc5\x0f\x74\x34\x23\x7a\x71\x84\x36\x1e\xa3\x63\xf8\x56\x39\xd4\xaa\x63\xf0\x41\xf2\xe0\xa1\x34\xa4\xe9\x87\x4e\x09\x2d\x19\x7b\xe5\xdb\xa9\xc8\x29\x45\x46\x1f\x4f\x09\xcc\xce\x0b\xa5\x21\x20\xcd\x70\x84\xa9\x5f\xaa\x20\x3c\x11\x00\xb4\xde\x0f\xcb\x3c\xdf\xef\xf7\x99\x98\x28\x33\x63\x9b\xbc\x9b\x55\x2e\xbf\x2b\xd6\xb7\x9b\xf2\xf6\xf2\x26\xbb\x22\x7a\xd4\x1d\x3b\x07\xcb\x7f\x8e\xca\x72\x85\xdd\x11\x62\x18\x3a\x25\xc5\xae\x63\x74\x62\x0f\x63\x21\x1a\xcb\x5c\xc1\x9b\xc0\xb9\xb7\xca\x2b\xdd\xa4\x70\xa6\xf6\x7b\x61\x99\x2a\xe5\xbc\x55\xbb\xd1\x9f\x0d\xe8\x2b\x95\x72\x78\x29\x30\x1a\x42\x23\x5e\x95\x28\xca\x18\x3f\xae\xca\xa2\x4c\xe9\x43\xb1\xfd\xe5\xfe\x71\x8b\x0f\xab\x87\x87\xd5\x66\x5b\xdc\x96\xb8\x7f\xc0\xfa\x7e\xf3\xa6\xd8\x16\xf7\x9b\x12\xf7\x3f\x61\xb5\xf9\x88\xb7\xc5\xe6\x4d\x0a\x56\xbe\x65\x0b\x3e\x0c\x36\xb0\x1b\x0b\x15\x46\xc7\x55\x46\x25\xf3\x59\xf1\xda\xcc\x30\x6e\x60\xa9\x6a\x25\xd1\x09\xdd\x8c\xa2\x61\x34\xe6\x33\x5b\xad\x74\x83\x81\x6d\xaf\x5c\x58\x9e\x83\xd0\x15\x75\xaa\x57\x5e\xf8\xe9\xfc\x4d\x3b\x19\x5d\xe4\x44\x83\x90\x4f\x21\xc9\x20\x46\xc7\x44\xaa\x1f\x8c\xf5\x48\x28\x8a\xeb\xde\xc7\x14\xc5\xc6\xcd\xdf\xdc\xa9\x46\x8b\x2e\x1c\xdc\xd1\x49\xd1\x75\x31\x51\x14\x37\xca\xb7\xe3\x2e\x93\xa6\xcf\xdd\x50\x5f\x7f\x97\x4b\xb3\xb3\x22\xa6\x05\x51\x9e\x63\xdd\x57\xef\x43\xe2\x30\xba\xd1\x9d\x96\xd2\xe8\xd6\x38\x8f\x75\x10\x66\xf4\x59\xd8\xbf\x65\xaf\xf1\xff\xc9\x9f\xad\x4d\xdf\x0b\x5d\x7d\xa1\xe8\xd1\xf1\x12\x40\x3c\x01\xc6\x29\x45\x65\x6b\xac\x5f\x22\x9e\x1c\x6e\xea\x88\x0f\x2c\xc7\xd0\x66\x88\xdf\x19\xdd\x2c\x81\x4f\xff\x16\xcf\xf0\xe8\xb8\x1e\xbb\x69\x9a\x4f\xcc\x43\x98\x5a\x50\x48\xa3\xc3\x73\x64\xeb\x60\x47\xad\x4f\xaf\x02\x66\x5a\x8f\x9c\x61\x1c\xa4\xd0\xd8\x7d\x4d\xc7\x55\xf6\x29\xa5\x68\x65\x1b\xb7\x04\x66\xec\x77\xe2\xa0\xfa\xb1\xdf\x84\xcb\xe4\x6a\x91\x52\xf4\x30\xea\x80\x3f\xd1\xa7\xf4\x4c\x54\x8f\x5a\xce\xc7\x44\xf6\x15\x2e\xce\xfa\x4d\x21\x6c\xe3\xf0\xdb\x1f\xe1\x95\xe9\x66\x81\x2f\x14\xd5\xbd\xcf\xde\x5b\xa5\x7d\xa7\x93\xb9\xe9\x2a\x5e\x50\xe4\x54\xb3\x6e\xb1\x7c\x8d\x5e\x3c\x71\x22\x5b\xa1\x61\x5c\x56\x4e\x4b\x5a\x50\x54\x19\xcd\xe7\x51\xa5\x7d\x8a\xeb\xd9\xa9\x45\x97\x6d\x8c\x57\xf5\x31\x99\xf2\xa4\x38\xed\x34\x2b\x8b\x9f\x8b\xcd\xf6\x3f\xa8\xb6\xb7\x0f\xef\x16\x14\x35\x06\xa1\xa3\x64\x42\x0d\xa6\x50\xf4\xd5\xe5\xa4\x0f\x17\x7b\xe5\x65\x8b\x70\x1f\xe2\x52\x38\xfe\x47\xa9\x25\x45\xd1\x4c\xfb\xea\x12\xd7\xe1\x60\x5c\x76\x7b\x50\x3e\x09\xac\xdf\x38\x42\xd9\x33\xcb\xcd\x4b\xcb\x4d\xb0\x3c\x53\xf4\x9c\x2c\x28\xb2\xec\xc6\xce\xcf\x3c\x41\xfd\x62\x94\x75\x12\xf3\x61\xfa\xf9\xf1\xbf\xea\x77\x1d\xa7\x98\xc5\x0b\x7a\xa6\xbf\x02\x00\x00\xff\xff\x2b\x3f\x3c\x77\x4d\x05\x00\x00") - -func testImagesAgnhostPausePauseGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostPausePauseGo, - "test/images/agnhost/pause/pause.go", - ) -} - -func testImagesAgnhostPausePauseGo() (*asset, error) { - bytes, err := testImagesAgnhostPausePauseGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/pause/pause.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostPortForwardTesterPortforwardtesterGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x58\x6f\x73\x1b\xb7\xf1\x7e\x4d\x7c\x8a\xf5\xcd\xf8\xf7\x23\x1d\xf2\x28\xc9\xc9\x4c\x43\x57\xed\xd0\x94\x5c\xb3\x51\x64\x8d\x48\xc7\x4d\xd3\x8c\x03\xe2\xf6\xee\x30\xc2\x01\x67\x00\x47\x8a\xf5\xb8\x9f\xbd\xb3\xc0\x1d\xff\xd8\x52\xe2\xe9\x1b\x5b\x24\x80\x67\x17\x8b\x67\xf7\xd9\xe5\xf8\x19\x9b\x99\x7a\x6b\x65\x51\x7a\x38\x3b\x39\xfd\x0e\x96\x25\xc2\x0f\xcd\x0a\xad\x46\x8f\x0e\xa6\x8d\x2f\x8d\x75\x29\x63\x57\x52\xa0\x76\x98\x41\xa3\x33\xb4\xe0\x4b\x84\x69\xcd\x45\x89\xd0\xae\x0c\xe1\x27\xb4\x4e\x1a\x0d\x67\xe9\x09\xf4\x69\x43\xd2\x2e\x25\x83\x17\x6c\x6b\x1a\xa8\xf8\x16\xb4\xf1\xd0\x38\x04\x5f\x4a\x07\xb9\x54\x08\x78\x2f\xb0\xf6\x20\x35\x08\x53\xd5\x4a\x72\x2d\x10\x36\xd2\x97\xc1\x48\x0b\x91\xb2\x9f\x5b\x00\xb3\xf2\x5c\x6a\xe0\x20\x4c\xbd\x05\x93\x1f\xee\x02\xee\x19\x03\x00\x28\xbd\xaf\x27\xe3\xf1\x66\xb3\x49\x79\xf0\x32\x35\xb6\x18\xab\xb8\xcb\x8d\xaf\xe6\xb3\xcb\xeb\xc5\xe5\xe8\x2c\x3d\x61\xec\xad\x56\xe8\x1c\x58\xfc\xd0\x48\x8b\x19\xac\xb6\xc0\xeb\x5a\x49\xc1\x57\x0a\x41\xf1\x0d\x18\x0b\xbc\xb0\x88\x19\x78\x43\x7e\x6e\xac\xf4\x52\x17\x43\x70\x26\xf7\x1b\x6e\x91\x65\xd2\x79\x2b\x57\x8d\x3f\x0a\x50\xe7\x95\x74\x70\xb8\xc1\x68\xe0\x1a\x92\xe9\x02\xe6\x8b\x04\x5e\x4e\x17\xf3\xc5\x90\xbd\x9b\x2f\x5f\xbf\x79\xbb\x84\x77\xd3\xdb\xdb\xe9\xf5\x72\x7e\xb9\x80\x37\xb7\x30\x7b\x73\x7d\x31\x5f\xce\xdf\x5c\x2f\xe0\xcd\x2b\x98\x5e\xff\x0c\x3f\xcc\xaf\x2f\x86\x80\xd2\x97\x68\x01\xef\x6b\x4b\xbe\x1b\x0b\x92\x42\x87\x59\xca\x16\x88\x47\xc6\x73\x13\x9d\x71\x35\x0a\x99\x4b\x01\x8a\xeb\xa2\xe1\x05\x42\x61\xd6\x68\xb5\xd4\x05\xd4\x68\x2b\xe9\xe8\xf1\x1c\x70\x9d\x31\x25\x2b\xe9\xb9\x0f\x9f\xbf\xb8\x4e\xca\x9e\x8d\x19\x1b\x8f\x61\x0a\x5e\xea\x2d\xac\xa4\xe6\x76\x1b\xed\xa0\xf3\x01\xcf\x58\x4f\x5f\x6c\xb8\xcd\xa4\x2e\xd2\x40\xab\xdc\x28\x65\x36\xb4\x8c\x7a\x2d\xad\xd1\x15\x6a\x0f\x6b\x6e\x25\x05\xda\x11\xa2\x30\xda\x5b\xa3\x82\xb5\x08\xfb\xff\x0e\x94\x29\xa4\x98\xb0\xf1\x98\x76\xbc\x9c\x5f\x5f\xbc\xbf\x79\x73\xbb\x84\x51\xd8\xb5\x9c\xdd\x44\x6b\xde\x04\x5a\x75\xb7\x55\xd2\x79\xd4\x68\xe9\xcc\xe5\x3f\x6e\x2e\x67\xcb\xcb\x8b\xf7\xb3\xab\xf9\xe5\xf5\xf2\xfd\xc5\x74\x39\x85\x11\x64\xdc\x73\xf0\x25\xf7\xb0\x21\x12\xd6\x28\x02\x8a\x45\x81\x72\x8d\x90\x5b\x53\x05\x28\xa1\x24\x6a\xff\x22\x90\x6f\x85\x90\x24\x29\x81\xce\x5e\xbf\xbd\xfe\x61\x01\x23\x28\xcd\x06\x2a\xae\xb7\x20\xca\x46\xdf\x39\x62\x64\x40\xde\x20\xb8\xd2\x34\x2a\x03\x87\x3a\x30\x67\x0f\xb6\x03\x78\xbf\x98\xff\xf3\xb2\x05\x51\xdc\x16\x08\xc8\x45\x19\xa1\xba\xe3\x2b\xdc\x6f\x9f\x5f\x2f\x2f\x6f\x7f\x9a\x5e\xb5\xb7\xcf\x50\xf1\x2d\x31\x72\x85\x7e\x83\xa8\x83\xa9\x10\xe1\x1d\x4a\x1b\xb7\x2b\x53\x40\x85\xce\xf1\x02\x1d\x70\x8b\x81\xc3\x1e\x35\xf9\xe5\x7c\x66\x1a\x0f\x3c\x3e\x86\x69\x1c\x38\x1f\xf6\xb5\xc9\xb5\x7b\x09\xbc\x47\xd1\x10\x2b\x42\x04\x96\xe8\x3c\x08\x93\x21\x08\xae\xc1\xa2\xb7\x12\xd7\x6d\x62\xd3\x43\x72\xa9\xd1\xc6\xf7\x23\x52\xc1\x9a\x2b\x99\x71\x8f\x31\xe6\x04\x1c\x83\x8e\x19\xa1\xad\xb0\xe4\x6b\x49\x44\x76\xe0\xf9\x5d\x60\x91\xe2\x02\x53\xc6\x6a\x2e\xee\x88\xaf\xf4\xce\x2d\xa9\x88\x68\x68\x19\x93\x55\x78\xfc\x3e\xeb\x25\x79\xe5\x13\xd6\x4b\x34\x86\xff\x8c\xa3\x7f\x9d\xb7\xc2\xe8\x75\xfb\xa7\xd4\x45\xf8\xd6\xcb\x0a\x13\xc6\x7a\x49\x21\x7d\xd9\xac\x52\x61\xaa\xb1\xab\xf3\xd3\xe7\x63\x61\x56\x96\x27\x6c\xc0\x58\xde\x68\x01\x05\xfa\x4b\xbd\x9e\x6b\xdf\xd7\xbc\x42\x88\x10\x03\x90\xda\xc3\x47\xd6\x73\x30\x39\x07\xe3\xd2\xbf\xa1\x47\xbd\x0e\x5b\x06\xac\xb7\xe6\xaa\xc1\x21\xa0\xb5\xb4\xdc\x3a\x90\x4e\xbd\x91\x7d\x37\x60\x3d\x99\x87\xa5\x27\xe7\xa0\xa5\x22\x94\x5e\x5e\xf9\xf4\xc6\x4a\xed\xf3\x7e\x72\x69\xad\xb1\x50\x73\xeb\xe8\xfe\x4f\x1d\x3c\xfd\x30\x81\xa7\xeb\x7f\xe9\x64\x08\x84\x3f\x04\x17\xa0\x07\xac\xd7\x33\x2e\xbd\xbc\x97\xbe\x7f\x3a\x60\xbd\x4f\xac\x67\xd1\x37\x56\x43\x30\xcf\x3e\x85\xfc\xf4\xfc\x0e\x75\xe4\xb1\x46\x3f\xa6\x9a\x38\x76\x68\xd7\x68\xd3\xc2\x74\x09\x65\x9d\x9f\xae\x8d\xcc\xa8\xea\x5e\x44\x3a\xb9\xf0\x38\xbc\x32\x8d\xf6\x81\x03\xb2\xc2\x40\x67\x85\x58\x03\xcf\x3d\x5a\x10\xca\x04\x1f\x7d\x19\xd8\x49\x6c\x42\x70\x32\x43\x3a\xc0\x43\x5a\x0a\xa3\x35\x0a\xa2\x0b\xac\x30\x37\x16\x0f\x0f\x01\x6a\x2f\x2d\x82\x33\xe2\x0e\x7d\xe0\xd3\xcb\x6d\xb4\x10\x2a\xeb\x06\x41\x6a\x61\x91\xbb\x58\xcd\x44\x49\x0e\xba\x3d\x77\x62\x22\x81\x43\xe2\x69\x63\xe1\xd5\xfc\x9a\x40\x88\x68\xb5\x35\x02\x9d\x43\x07\xd2\x93\xc6\x68\xae\x62\x4a\xb6\x6e\xf8\x12\xb7\xdd\xa6\x58\x1a\x9b\x95\xc3\x0f\x0d\xe1\xdd\x2e\x96\x04\x13\x82\xd6\xb9\xcb\x0f\xaf\x12\x84\xe9\x4e\x9b\x8d\x86\x46\x5b\xe4\x59\x80\x8e\x09\x41\xcc\xbf\x5d\x2c\xc9\xa9\xca\x51\x66\x19\x21\x1a\x0b\x95\x71\x5e\x6d\xa9\xec\xbf\x5c\x5c\x80\xdb\x3a\x8f\x95\x4b\xa1\x3f\xd5\x19\xbc\x93\x3a\x33\x1b\xf7\xd7\xc1\x0e\x80\xa2\x4d\xe9\x28\x1d\x38\x53\xe1\x86\x2e\xcc\xed\x4a\x7a\x4b\x55\xb6\xff\x1f\xc5\x3d\x6a\xb1\x05\x6e\x4d\x43\x75\xa5\x44\x4a\x14\x8d\x7e\x90\x32\x61\xb4\xf3\x0f\x3c\xe9\x39\x7c\x77\x72\x02\xcf\x02\x76\xfa\xa3\x54\x4a\x3a\x14\x46\x67\x81\x26\xb3\x2a\xbb\x31\xd6\xbf\x8a\x99\xb5\x0c\x99\x45\xd6\x1b\xd7\x8a\x61\xa1\x4b\xe3\x3c\xcc\x28\x39\x52\xb6\xe6\xf6\xe1\x23\xe7\xf0\x7f\x21\x7f\xd2\x99\xa9\x2a\xae\xb3\x8f\xac\xf7\xd6\xe1\x04\x00\x12\x4a\xd2\x51\x9b\xba\xa3\x98\xbb\xc9\x90\xf5\x16\xa5\xb1\x7e\x02\xc9\xcc\x22\xa7\x6e\x23\xf2\x26\x52\x34\xbe\x34\xd5\x33\xf7\x59\x65\xa5\x93\x57\x46\x17\x13\xf8\xed\x2a\x54\x79\x17\xaa\xfe\x31\xe5\x5c\x50\x59\x28\xe4\x1a\x35\xf0\x2c\x0b\x32\x19\xc8\x61\xac\x1f\x82\xa9\x69\x13\x57\x8a\xca\x36\x8a\xbb\xc8\x83\x40\x92\xb6\xfe\x67\x43\x46\xdb\xa3\x03\x81\x01\xb9\x2c\x1a\x1b\x7a\x02\xdd\x54\x2b\xb4\xbb\x4a\x1f\xdd\x1b\x46\x6a\x7c\xb6\x55\x6a\x8f\x76\xcd\xd5\xae\x42\xc7\xcd\x29\x63\xcb\x48\x3c\x11\x83\x15\x03\xde\x25\xc7\x1f\x48\xe5\x84\xb1\x51\x54\xc2\xe9\xc5\xc5\xed\xe5\x62\x01\xfd\xee\x42\x83\x49\xd0\xda\xee\xc6\x44\xd8\x52\x8a\x12\xa4\x87\x8d\x54\x8a\x2a\xbb\xf5\xad\x3a\x12\xfe\x43\x91\xeb\x67\x98\xf3\x46\xf9\x58\x4c\x26\xa0\x8c\xe0\x8a\x28\x30\xe8\xcc\x92\x00\x47\x43\xa1\xfc\xfe\x2f\x56\x52\x36\x7a\x58\x98\x0f\xaf\x32\xcf\xc1\xa1\x1f\xee\x70\xc3\x5b\xed\x6b\x00\xb5\x6c\x24\x42\xf1\x91\x42\x26\x53\x9d\xc6\x7b\x2e\x7c\x9b\x96\xa3\x56\xa8\x27\xf0\xfa\x11\x9d\xf6\xa6\xad\x5e\x52\xb7\xa0\xae\x36\xa1\xcd\x19\x1d\x68\x74\xbc\x6d\x27\x58\xe0\xe4\xbf\x43\xa5\x0b\x3a\xdb\x49\x69\x54\xed\x16\x37\x25\xe7\xa5\x87\xcc\xa0\x0b\x4d\x6f\xc5\xbd\x88\x2d\x2d\x17\xbe\xe1\x6a\x87\x41\x5f\x75\x10\x74\x72\x7f\x5d\xbc\x0f\x7f\xb5\x9d\x70\xf8\x14\xf4\xf6\xdb\xbd\x6f\x5d\x43\xd0\x3e\xfb\x71\xcd\xa6\xab\x71\xe9\x0f\x1b\x84\x96\x7e\xbf\x0d\x59\x6f\x6a\x0b\x37\x81\x98\xb2\x3f\xf2\x7b\x59\x35\xd5\x35\x7d\xd7\x3f\x19\x0c\x59\xef\xb6\xd1\x13\x80\x8a\x4b\x3d\x24\x39\x09\x7a\x48\x9f\xfa\xa2\xca\xe0\xd9\x51\xa2\x0f\x81\xdb\xc2\xc1\x2f\xbf\x76\x02\xf9\x91\xf5\x56\x52\x67\xd3\x96\x84\x47\x32\x99\x1c\xf2\x36\x89\x8a\x78\xb8\xf9\xfc\x1c\x92\x24\x08\xe3\xd1\xb7\x90\xec\x58\x98\x04\xbd\xa3\x55\xaa\x41\x0f\xa1\x13\x3d\x09\x9a\xb2\x60\x27\xc5\x1a\x7d\x7a\x8b\xce\xa8\x35\x2e\x67\x37\x04\xdc\x4f\xbc\xa8\x49\x59\xd1\xa7\x7f\x37\x52\xbf\x36\xce\x13\x64\xff\xc0\xf2\x10\x3a\x43\x83\xaf\x54\x6f\x1b\x6c\x48\xaa\x4f\xad\x72\x3f\x2c\xd8\x5d\x87\x7a\xe4\x60\x2c\x68\xcb\xd9\x4d\xe7\x1b\x5d\xe1\x2b\x0d\xef\xd2\xed\xf7\x0d\xb3\x1e\x65\xe1\xce\x6a\xe7\x46\x3a\x15\x34\x86\x91\xe9\xaf\xb4\xc7\xc3\x01\x4a\xef\x7d\x5a\xff\x91\xe9\x1d\x8a\xd2\xfd\x24\x5a\xc4\xac\xd3\xf2\x3d\x4c\x32\x60\xac\xd7\x25\xdb\x2c\xac\x5e\x50\xae\x1e\xbf\xf5\x43\xe5\xa3\x65\x94\x42\xdd\xff\xf2\xfc\x00\xfe\x02\x27\x91\x5b\x4d\x4e\x60\x15\xbf\xc3\xfe\x2f\xbf\xae\xb6\x1e\x87\x8f\x9d\xa1\x6b\x90\xce\xef\x22\x46\x6e\xa6\xb7\xc8\xb3\xfe\xaa\xc9\x69\x55\xe6\x10\x1a\x81\x27\xe7\x8f\xda\x25\x9b\xc7\x21\xec\x2a\x49\x98\x38\x78\x06\x4f\x49\x6b\x49\x04\xdb\xd6\x83\xce\x0e\x61\xd5\x78\x28\x8c\xa7\x55\xa9\x9d\x47\x9e\xa5\xe4\xc6\x79\x1b\xe5\x47\xcc\x0d\x61\xe7\x30\xf9\xb7\x7b\x85\x33\xfa\xf4\x29\x7a\xfc\x40\x74\x9f\x9c\xb7\x2d\x6e\xb8\xd8\x63\x3e\xef\x3d\xfe\x70\xe0\xdf\x87\x23\xbf\xbe\x04\x1f\x1e\x42\x7f\xe9\xd9\xf3\x43\xcf\x8e\x89\x77\xe4\x02\x85\x9d\x36\x7c\xce\xb3\x4f\x87\x0c\x25\x6e\xdd\xb6\x2a\xbe\x2f\xd9\x2d\xc9\x42\x07\xd1\x25\x42\x54\x82\xc9\xf9\x41\xa7\x9f\x44\xbd\xa0\x2d\x61\x79\x41\x55\xfa\x81\x1d\x41\x15\x76\xbb\xe6\x9d\xcc\x3f\xb4\xb3\xab\xd1\x81\xd5\x31\x0c\x1d\x9b\xdb\xa9\x24\xbd\xc5\x1a\xb9\xef\x27\xf7\xc9\x10\x76\x66\x07\xac\x97\xb5\xfb\x22\x47\xfb\xfb\xc3\x04\x45\xaa\x2a\x69\xf5\xe4\x05\x48\xf8\x73\x5b\xdb\x5f\x80\xfc\xe6\x9b\x10\xb9\x56\x54\x8e\x89\xfb\x8e\xb4\xae\x9f\x05\x88\x10\xee\x4e\x7a\x9e\x9c\xef\x2d\xff\x3e\x5f\xa3\x5c\x3e\x4e\xd8\x8d\x35\x71\xfd\x21\xca\xee\x6c\x0c\xe1\xd0\xbf\x23\x36\x7c\xfb\x95\x6c\x08\x77\x79\x8c\x0e\x32\x07\xf9\xcd\xe9\x2e\x2c\xf1\x74\x68\x80\x17\x34\x65\xf4\xc3\x9f\x17\x8d\x0d\x3f\x73\xf4\x8f\x5e\x71\xf0\x40\xab\xdc\xc2\x7e\x51\xc4\x16\x65\xe3\x43\x11\xcc\x68\x24\xf8\xac\x84\x8d\xc7\xd4\xbf\x80\x92\xba\xa0\x8e\xb6\xed\xec\xbd\x81\x5c\x35\xae\x84\x55\x93\xe7\x68\x5d\x1a\x1b\xff\x76\xee\x32\x79\x2e\x85\xe4\x0a\x36\x7c\x4b\x35\xd6\x84\x9f\x50\xba\xdf\x0f\x0a\x03\xbc\x96\x90\x19\xe1\x52\x78\xd9\xf8\x60\xc3\x97\x68\x31\x4c\xf5\xf1\x07\x94\x35\x5a\x47\x08\x99\x74\xa2\x69\x7f\xd6\xd9\x94\x18\x7e\x32\x0a\xe3\x79\x68\xec\xa0\xe4\xd4\x12\x6f\x41\x56\x35\x35\x4c\x46\x87\x49\x85\xa6\x09\x1a\xb3\x2b\x17\xb0\xfb\xc2\x54\x35\x41\xd3\xf8\xe8\x26\xe3\x31\x75\x20\x16\xd7\x12\x37\x29\xaf\x6b\x57\x1b\x1f\x06\xe8\xef\xbf\x7b\x7e\x76\x72\xf2\xed\xf3\x41\x1a\x05\x26\x5d\xa0\xbf\x0a\xf7\xee\x8f\x4e\xdb\x58\xbc\x0a\xb7\x0e\xd3\xdb\x7e\xa0\x12\x0a\xb9\x56\xdb\xe1\x41\xd3\xdb\x99\x5a\x29\x53\xa4\x3a\xf8\xad\xf8\xca\xa5\x5a\x8d\xb9\xf5\x52\x28\x74\xe3\xb3\x93\x93\xef\xc7\x27\xa7\xe3\xd3\x3f\x8d\x7d\x89\xa3\x46\x79\x59\x71\x8f\x23\x67\xde\xc7\x70\x8f\x6a\x5e\xe0\xc8\xd8\xd1\xa6\xdc\x8e\xa4\x1b\x55\xdb\x91\x17\xf5\x48\x1b\x3f\xb2\xa8\x42\x23\x3d\x09\x5e\x9d\xa6\x61\xd2\xc3\x96\xd7\x25\x57\x39\x75\x50\x87\x33\x5f\x68\x6e\xbb\x51\xe0\xd5\xfc\x1a\x6a\x4e\x63\x6b\x38\x7e\x96\x86\x29\x63\x37\x90\x1a\x6a\xbc\xda\xee\xab\xfb\x2d\x89\xae\x4c\x03\x2a\xed\x7f\xde\x99\x8b\x71\xa8\x6a\x85\xfe\x30\x20\x6d\xf8\x66\xb4\x27\x26\xeb\x80\x1d\xf2\xf6\x8b\xe9\x6e\x70\x78\xa2\x3f\xf8\x9c\xa0\x17\x46\x63\x32\x60\x9f\xd8\x7f\x03\x00\x00\xff\xff\xaa\xaf\xdd\xd7\xed\x15\x00\x00") - -func testImagesAgnhostPortForwardTesterPortforwardtesterGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostPortForwardTesterPortforwardtesterGo, - "test/images/agnhost/port-forward-tester/portforwardtester.go", - ) -} - -func testImagesAgnhostPortForwardTesterPortforwardtesterGo() (*asset, error) { - bytes, err := testImagesAgnhostPortForwardTesterPortforwardtesterGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/port-forward-tester/portforwardtester.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostPorterLocalhostCrt = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x94\x4b\xaf\xba\x48\x1b\xc4\xf7\x7c\x8a\x77\x6f\xde\x78\x01\x01\x17\xb3\x78\x9a\x6e\x6e\xd2\x4a\x23\x08\xb2\xa3\x3d\x02\xc2\x01\x14\x90\x56\x3e\xfd\xe4\x7f\x26\x99\x4c\xe6\x52\xcb\xa7\x92\x7a\x16\xf5\x4b\xfd\xff\x97\x10\xb1\x9c\xc3\xff\x0c\x12\x84\x8e\xe9\x18\x10\x92\x9f\xab\x44\x1d\x07\x5b\xa1\x61\x40\x61\x15\x20\x1c\x04\x85\x13\xc0\x11\xe0\xb5\xd9\xbe\xf1\xf0\xc9\xca\x43\x8a\x4e\xc9\x10\xc5\xe5\x20\x30\xbb\xb8\xfb\x2e\x75\xca\xe9\x7a\x00\x46\x3c\xc4\x40\x48\xa4\x22\x8c\x82\x62\xc1\x3a\x22\x46\x49\x6d\x16\x1f\xc6\xf4\x84\x30\x9f\xa1\x30\xc5\x4a\xa6\x18\xde\x14\x13\x41\x31\x08\x8a\x51\x66\x81\xfe\xa1\xb8\x58\x51\x4c\x3e\xc7\x90\x6c\xa4\x1f\xc3\xec\xc4\x7f\x07\x19\x06\x9c\x9c\xbf\x7f\x47\x88\x01\x2e\x0a\xe2\x4b\x80\x0d\x03\x58\x67\x14\x05\x41\xe0\xca\xbc\x6b\xf4\xd8\xb6\xcc\xd0\xe2\x64\xb8\x6d\x6a\x95\x97\xc0\xde\x55\xfb\x76\xa7\xef\x95\xbc\xc0\x6d\xd1\xb7\x3d\x0f\xa3\xe4\xa5\xce\x62\x5d\x2f\xb9\xd4\xd6\xeb\x75\x6a\xe7\x4e\xea\x3f\x5a\xab\xfb\x9c\x48\x7c\xf1\x9e\x36\xba\x07\x77\x3a\x59\x22\x28\x2c\x78\xc9\x56\x3f\xe6\x72\x93\xdf\x9c\xb6\x1a\xd6\xd9\x2d\x31\x6f\x8f\x2c\xb9\x6a\xfb\xa0\x51\xb8\x34\x2f\x73\x21\x03\x12\x93\xcb\x76\xbd\x2b\x76\x8b\x84\xeb\x73\xfa\x44\xd1\xa3\xf3\xd2\xb9\xaa\x22\x1c\xd6\x9b\xcd\xe3\x00\xa7\x5d\x42\xab\xe0\x74\x8c\x46\x6f\xf6\xc9\xc5\xde\xe6\x9e\xba\x26\x93\xe4\x6a\x26\xd6\x46\x71\x6f\xb3\x88\xa7\x10\xb1\xa9\x58\xb7\x83\x47\xbc\x51\xd7\xc6\x05\xef\x76\xaa\xf2\x50\x1f\x8b\x59\xd3\x0a\x35\x44\x99\xea\xfb\xb7\xf9\xdc\x7e\xcd\x4d\x20\x9b\xab\xb3\x6f\x9f\xa5\xc0\xf3\x8f\x5f\xbb\xe2\x29\x78\x67\x5e\xcb\xb2\x93\x67\x55\x4f\x0f\x5c\xe9\xdb\x7d\xb1\xce\x3f\xfc\x95\x1d\xfd\xa4\x11\x68\x8f\x83\x3a\x63\x14\xe6\xef\x16\x9f\x6f\x1b\x45\xed\xdf\xea\x51\x15\x85\xc4\xdd\xfd\xf4\xce\x92\xe9\x7e\xab\xae\x7b\xea\xbf\xd2\x15\xc1\xd5\x7b\xee\x62\xbb\x6a\x4b\xb5\xeb\xee\xc7\xc8\x00\x41\x00\xb2\x43\x47\xad\x8b\xc0\xc5\x05\x9f\x83\x95\x0f\xcc\x5e\x22\x60\x58\x82\x62\x5f\x53\x44\x7f\xd5\xf7\xe5\x32\x46\x29\x74\x96\x61\x0c\x16\xb0\xc8\x44\x82\x22\x0a\xfa\x8f\x47\x04\x41\x4b\xc1\x4c\x0a\x14\x41\xae\x0b\xef\x8f\xa0\x40\x42\xc6\x55\xb8\x17\xc7\x4b\x93\xb2\xe4\x09\x1a\xd2\xd3\xb6\xe2\x9b\x8d\x8d\x6c\x1d\x00\x2c\x9b\xc0\xbf\x89\xfc\xc9\x85\xf4\x17\x2c\xf1\x0f\x0b\x56\x22\xda\xe5\x34\x31\x58\xd9\x98\xc7\x7a\xdc\x86\x10\x3f\xa6\x19\xf2\xec\xa8\x56\xaa\x80\x01\x0b\x75\xa0\xe3\x95\xe1\x6e\xfa\xbc\x6a\x89\xc9\xa6\x51\xa7\x2e\x62\x7a\xb6\x6e\x8c\x6f\x64\x25\xd3\x2d\xce\x70\x2f\xf3\x48\x97\x65\xe7\xcc\x1c\x14\x4e\x83\xd7\x78\x0d\xdb\x8d\x9b\x4b\xdf\x8f\x9c\xc4\x9f\xbc\x18\xe6\xa7\xb5\x57\x0c\x4d\xaa\x1d\xfe\x89\x92\x9b\x46\xcc\xbb\x1b\xfb\x1a\xac\xe2\xa7\xb8\xdb\xe3\x91\xf2\x5a\xaf\x74\x45\x5f\x1a\xcd\x7d\xef\x28\x78\xfb\x58\x5c\x8a\xe4\x5c\xbc\x7a\x7f\xed\xb0\xed\xa8\xed\xd8\x32\xc5\x1f\x2c\x11\x77\x5c\xd8\xa3\x3b\xf5\x46\xb7\x4b\xed\xec\xda\x18\xba\xba\xbd\x75\x6e\x6a\xa9\x83\xb5\x89\xbe\x55\xc5\x71\xc6\xe0\x82\x53\xde\x6f\xb7\xd1\xfe\x7c\x77\xf5\x5e\x5f\x33\x55\x6b\x0f\xc6\xb4\xd4\xb1\x94\x2b\xcb\xfd\x26\x5f\x34\x77\xff\x9c\x85\xd4\x83\xef\x6f\x75\x36\x42\x4d\x77\x16\xf2\xfd\xe4\xfb\x47\xf9\x63\x34\xde\x72\x13\x7d\x3d\x94\x6c\xbd\x72\x9f\x7d\x3e\x2d\x4a\x9e\xeb\xa3\x82\xa3\xeb\xf3\x7b\x96\x94\xc4\xec\x23\x7b\x78\x04\x38\xbd\x5a\x89\xe9\x78\x2d\x0c\x87\xe3\x23\xdf\x6b\x51\x13\x45\x2b\x51\x73\xb3\x28\x6b\xe7\x37\xe9\x67\x3e\xc8\x01\xff\x73\x52\x7e\x0f\x00\x00\xff\xff\x75\xaa\xd9\x75\x6f\x04\x00\x00") - -func testImagesAgnhostPorterLocalhostCrtBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostPorterLocalhostCrt, - "test/images/agnhost/porter/localhost.crt", - ) -} - -func testImagesAgnhostPorterLocalhostCrt() (*asset, error) { - bytes, err := testImagesAgnhostPorterLocalhostCrtBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/porter/localhost.crt", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostPorterLocalhostKey = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\xd5\xa7\x12\xa4\x00\x02\x04\x50\xcf\x57\xac\xa7\xae\xc8\x49\x9c\x20\xc3\x90\x33\x8c\x23\x0f\x39\xc7\xaf\xbf\xda\xd5\xd7\xb6\x4d\x8b\xae\x7a\xff\xf9\x1b\x4e\x94\x55\xf3\x8f\xeb\xb1\x7f\x6c\x57\x0d\x59\x5f\xfc\xa3\x89\xc9\xbf\x06\x30\x54\x55\x9c\x6a\x95\x63\x59\x8d\x67\x1d\x91\x1d\x8b\xa3\xc9\xee\x24\x4f\x42\xe3\xbb\x79\x37\x95\xfa\xf3\x21\x72\x82\x6c\x55\xe2\x00\xc6\x7e\x85\x5b\x25\x7f\x94\xfb\x6e\xba\x25\xb5\xda\x42\x04\xf8\xcc\x51\xfa\x71\xd8\x15\xf4\xaf\x03\x87\x3c\x6d\x3f\xaa\xfb\xad\x8f\x29\x97\x3f\xb2\xfa\xd0\x19\x27\xb3\x09\x4f\xe5\xe9\x81\x40\xe5\x97\xc1\x9b\xd2\x7a\xc3\x99\xc8\x43\xb2\x9f\x8b\x77\x9b\x65\x20\xfb\x9d\x36\x03\x09\x39\xab\xf0\x74\x2f\xa0\xdb\x28\x60\x44\x71\xbe\xe6\x30\x49\xde\x50\xef\xa3\x65\x99\x8e\x69\xf9\x59\xda\xc1\x9c\x8e\xe4\x8f\x29\xa9\x84\x07\x9f\x06\xed\xd6\x55\x4f\x9f\x2b\x10\x78\xf4\xb8\x05\xf6\x81\xf1\x5a\x31\xbb\x7b\xc7\xb9\x3c\x28\x44\xe5\xb5\x39\x07\xf6\x1e\x18\x71\xb4\xd8\xda\x8c\xcb\x48\xd9\xe7\x21\xcc\x86\xb4\x4e\x34\x43\x99\x51\x81\x59\x5f\x25\x8f\xdd\x00\xa0\x8b\x50\xdc\x68\x02\x43\xf9\x95\x3b\xea\xf0\x91\xe5\xb6\xb2\xd7\xbb\x43\xce\xe6\xc8\x17\x21\x84\x3e\x07\x31\xe1\x4c\x99\xb1\xe2\x64\xca\xee\xcc\x5e\x82\x15\xe5\x66\x48\x65\xed\x72\x2a\x13\x05\xac\x3c\xb7\x75\x0b\x24\xcd\x25\xf8\x21\xcd\x6b\xba\x40\x62\x74\x1c\xcb\x56\xac\x5f\x52\x5a\xa5\xb2\x34\x8d\x4a\x38\xaa\xc0\x3a\x2c\xc7\x4e\x2a\xc7\xca\xc8\xe5\x0e\x91\xef\x90\xc7\xdc\xb2\x85\x0e\xa0\x43\xfe\xb4\x55\x7f\x86\x24\x86\x10\xe6\x6c\xbd\xa4\xc9\x55\xe1\x5b\x9c\xb9\x74\x69\xd9\x10\xe0\x1d\x63\x10\xe4\x81\xec\xcd\xaf\xa6\xd7\xe6\xc1\x05\xd5\x0b\x1b\xcb\xa7\xb1\xe3\x28\xea\xd2\x01\xf2\x0c\xb4\x9f\xf7\xcc\xa0\xb9\x1f\xf6\x81\x42\x85\x79\x2a\x6c\xf4\xab\xf4\x71\x46\x8e\xc1\x7d\x90\xb1\x61\xad\x77\xb3\x74\xfc\x7e\x43\xee\x96\x5f\x3b\xfc\x0a\x35\xed\x11\xd3\x81\xca\x53\x17\x03\xb1\x21\x3b\xe7\x6f\x2f\x9a\xee\xfe\x71\x0a\xa7\x0e\x92\xf6\x2e\xc3\xba\x69\xaf\xc2\x58\xd8\x94\xf6\x73\xcc\x2b\xbe\xaa\x14\x68\x2a\x18\xdd\xb0\x1a\x59\xd1\x7a\xa0\xe7\xd9\x5c\x4f\x3e\xed\xf4\x02\x4c\x9a\x8d\xe9\xbb\x5b\x78\x06\x77\x14\x19\x8c\x10\x89\xd3\x2f\x42\x7d\x19\x17\xb4\xce\x25\x38\x23\x9d\xbf\x79\x9d\x8e\xb9\x4a\x2e\x88\x4e\x54\x3d\x2c\xd6\x39\xd4\xec\xd5\x5d\x9b\x37\xc3\xbe\x00\xce\xcf\x92\x19\x27\xcc\xd4\x6e\x1c\xab\xaf\x73\xb3\x2c\xf5\xef\x6d\xa7\xbb\xf7\xa5\xa3\x80\x83\x50\xba\x38\xa3\xb7\x90\x73\x74\x84\x9e\xec\x2b\x7d\x7b\xed\x96\x61\xf5\x1c\x5a\xee\x52\x19\x2a\x05\xce\xce\xf0\x7a\x3a\xe0\xeb\x44\x64\xe1\xc8\x94\x7e\x4c\x3b\xbf\xd8\xa8\x8d\x75\xb6\x5a\xca\x8d\x9d\x0f\xa9\x74\x2a\xd5\x4e\xfb\x86\x75\x11\xad\xe7\x43\x8f\x1c\xae\x3a\x5a\x96\x4c\x8e\xe5\xda\x03\x03\xec\x79\x36\xb4\x73\x03\x7e\x1a\x1a\xdc\xbf\x57\x2f\x54\xa9\x6f\xdb\x64\xb0\x9c\xca\xc8\xe1\x9a\xca\x14\x35\xf6\xf7\x45\xfe\xd6\xdd\x3c\x62\xac\x83\x08\x7d\xe3\x6d\x0e\x14\x53\xea\xf9\x14\xf0\x89\xe0\x5b\xc7\x57\x41\x6a\xc1\x09\x67\x39\xc8\x60\x9a\xca\x26\x90\xd3\xac\x4d\x32\x88\xb0\x50\x6a\xe4\x19\x80\x89\xc0\xd5\x2c\x3e\x2f\xf9\x73\x3d\xd3\xae\xe1\xdb\xbf\xc5\x97\x0d\x42\x80\xc5\xa5\xed\x62\x7e\x96\x6d\x6e\xb4\x89\x0c\xce\x52\xe3\x95\x09\x06\x75\x12\x5c\x57\xa7\x11\xb1\x8b\xd5\x14\x8c\x52\x19\x18\x31\x25\x47\xe7\x5e\x8d\xdb\x63\x99\x03\x85\x5f\xb1\x2e\xce\x91\xfc\x80\x10\x14\xaa\x26\xee\xf6\xae\xc2\xaa\xc5\x7b\xf1\x5e\x23\xca\x69\x50\xd7\x0b\x6c\x6f\x3b\xac\x6a\x55\x50\x5a\x3b\xf0\x3e\xd3\x93\xd2\xdb\x6d\x07\x27\x21\x12\xe1\x41\x15\x27\x29\xe6\xcd\x28\x22\x40\xb5\x6d\x86\x2c\xbc\x1b\xde\xe7\x21\x2a\xfb\x58\x36\xd6\x84\xcf\x64\xb5\x86\xac\x6d\x8e\x30\x48\xc3\x5b\x67\x0a\xd3\x7c\x9d\x70\x0f\x23\xf5\x19\x83\x93\xd2\x9d\x1c\xed\x3a\xf3\x34\xd3\x36\x31\x00\x47\x95\xf0\x44\x54\xa2\xfc\xa6\x11\xfe\x6d\xcb\xe1\x9a\x41\x4d\x53\xf9\x49\x09\xec\xf1\x93\x8c\xd4\x85\x5d\x14\x31\xf7\xf1\xf7\x65\xec\x70\xa2\x2d\x51\x3d\x73\x92\x0c\x87\x22\xe7\xbb\xc7\xeb\x80\x13\x12\x74\x69\x64\xe6\xb0\xf3\xa9\xe6\xe3\x3d\x8e\x02\x1d\xa4\x7e\x43\x42\x01\x47\xd5\xab\xe0\xfb\x9d\x49\x0b\xb8\xd8\xcb\x25\xb8\xc8\xcf\xb7\x57\x2f\x8c\xa4\x66\xc9\xce\xd6\x9b\x1a\x9d\xa1\x80\x4f\x7d\x0b\x3b\x5a\x12\x3f\x12\xf5\x72\x47\xe0\x2a\x67\x56\x4a\x47\xe3\x6a\xe5\x3b\xe5\x45\x3b\x36\x87\x88\xef\x08\x42\x45\xae\xb5\x17\xc6\x87\xb1\xd6\x79\x74\x50\x71\xc9\xe8\xd3\xdb\x63\x59\x05\x64\xc8\xf3\xc2\xf1\xaa\x9f\xe9\x42\xf6\x58\x0c\x11\xa7\x1f\x5f\x61\x10\xbe\xc5\x57\x2a\x27\x06\x42\xc8\xf0\x72\xee\xa0\x3c\xad\x11\xb4\x03\x97\x64\x46\xef\x43\x0c\x10\xb5\x4c\x89\x6a\x80\x83\x01\x6c\x25\x1e\x50\xf3\x43\x86\xe8\x2e\x53\x28\x94\x0c\x51\x68\xfc\x08\x28\xd5\xf4\x46\x89\xa5\x05\x94\x25\x54\xae\x71\xfa\x0b\xad\x70\xb0\xdb\x03\xb7\x78\x55\x33\x3a\x31\x9d\x79\xa0\xde\x25\x9c\x08\x10\xea\xfa\x63\x27\x99\xb5\xaa\x71\x64\x2d\xb6\xf5\x16\xcd\xff\x4a\x84\x4e\xf1\x9f\x8f\xc2\x25\xc9\x74\xed\x79\x51\x6b\x05\x57\x89\x7a\x64\x83\x65\xe4\xd6\xb1\x1d\x79\xd4\x16\x1d\xac\x48\x52\x30\xe0\xf9\x42\xb5\xc2\xda\x3d\x76\xab\x61\xc9\x27\xec\xd9\xb3\x49\x2d\xe1\x8f\x79\xed\x55\xda\xab\xf8\xd5\xbb\x96\xa4\x6a\xea\x29\xee\x40\x35\x09\x22\xaf\x85\xc9\x96\xf4\x99\x0f\xdd\x98\xa6\x94\x00\x18\xb3\xf0\xca\xb3\x3b\x6c\x4b\x6e\x71\x10\xfe\x31\x31\x94\x49\x0b\x53\x45\xf4\x6d\xb4\x97\x87\x60\xf4\x97\xbb\x05\x03\xfa\x44\x29\x4e\xb1\x64\x42\x85\xf9\x7f\x81\x7f\xa4\x88\xa6\xf0\xff\xa9\xf9\x5f\x00\x00\x00\xff\xff\x45\x85\x28\xa6\x8b\x06\x00\x00") - -func testImagesAgnhostPorterLocalhostKeyBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostPorterLocalhostKey, - "test/images/agnhost/porter/localhost.key", - ) -} - -func testImagesAgnhostPorterLocalhostKey() (*asset, error) { - bytes, err := testImagesAgnhostPorterLocalhostKeyBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/porter/localhost.key", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostPorterPorterGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x57\x5d\x6f\xdb\x38\xd6\xbe\x16\x7f\xc5\x79\x05\x74\x5e\x39\xa3\xca\x4e\xba\x8b\xdd\x7a\xe0\x0b\xaf\xc7\xd9\x66\x9b\x71\x82\xc8\x6d\xa7\x28\x82\x0c\x2d\x1d\x4b\x44\x24\x52\x25\x29\x3b\x46\x91\xff\xbe\x38\xa4\xfc\xd5\x78\x77\x66\x2e\xf7\xa6\x8d\xc4\x73\x9e\xf3\x9c\xaf\x87\x72\xff\x8c\x4d\x54\xb3\xd1\xa2\x28\x2d\x5c\x0c\xce\xff\x0a\xf3\x12\xe1\x7d\xbb\x40\x2d\xd1\xa2\x81\x71\x6b\x4b\xa5\x4d\xc2\xd8\xb5\xc8\x50\x1a\xcc\xa1\x95\x39\x6a\xb0\x25\xc2\xb8\xe1\x59\x89\xd0\x9d\xc4\xf0\x11\xb5\x11\x4a\xc2\x45\x32\x80\x88\x0c\xc2\xee\x28\xec\xfd\xc4\x36\xaa\x85\x9a\x6f\x40\x2a\x0b\xad\x41\xb0\xa5\x30\xb0\x14\x15\x02\x3e\x65\xd8\x58\x10\x12\x32\x55\x37\x95\xe0\x32\x43\x58\x0b\x5b\xba\x20\x1d\x44\xc2\x3e\x77\x00\x6a\x61\xb9\x90\xc0\x21\x53\xcd\x06\xd4\xf2\xd0\x0a\xb8\x65\x0c\x00\xa0\xb4\xb6\x19\xf6\xfb\xeb\xf5\x3a\xe1\x8e\x65\xa2\x74\xd1\xaf\xbc\x95\xe9\x5f\x5f\x4d\xa6\xb3\x74\xfa\xfa\x22\x19\x30\xf6\x41\x56\x68\x0c\x68\xfc\xda\x0a\x8d\x39\x2c\x36\xc0\x9b\xa6\x12\x19\x5f\x54\x08\x15\x5f\x83\xd2\xc0\x0b\x8d\x98\x83\x55\xc4\x73\xad\x85\x15\xb2\x88\xc1\xa8\xa5\x5d\x73\x8d\x2c\x17\xc6\x6a\xb1\x68\xed\x51\x81\xb6\xac\x84\x81\x43\x03\x25\x81\x4b\x08\xc7\x29\x5c\xa5\x21\xfc\x63\x9c\x5e\xa5\x31\xfb\x74\x35\x7f\x77\xf3\x61\x0e\x9f\xc6\x77\x77\xe3\xd9\xfc\x6a\x9a\xc2\xcd\x1d\x4c\x6e\x66\x3f\x5f\xcd\xaf\x6e\x66\x29\xdc\x5c\xc2\x78\xf6\x19\xde\x5f\xcd\x7e\x8e\x01\x85\x2d\x51\x03\x3e\x35\x9a\xb8\x2b\x0d\x82\x4a\x87\x79\xc2\x52\xc4\xa3\xe0\x4b\xe5\xc9\x98\x06\x33\xb1\x14\x19\x54\x5c\x16\x2d\x2f\x10\x0a\xb5\x42\x2d\x85\x2c\xa0\x41\x5d\x0b\x43\xcd\x33\xc0\x65\xce\x2a\x51\x0b\xcb\xad\x7b\x7e\x91\x4e\xc2\xce\xfa\x8c\xf5\xfb\x30\x06\x2b\xe4\x06\x16\x42\x72\xbd\xf1\x71\xd0\x58\x87\xa7\xb4\x35\x09\xeb\xf7\xc9\xec\x0e\x79\x6e\x00\xe5\x0a\x56\x5c\x9b\x9f\x9c\x21\xae\x50\x6f\xe8\x79\xdb\xc0\xa5\xd2\x35\xa4\xd3\xbb\x8f\xd3\x87\xdb\x9b\xbb\xf9\xc3\xaf\x31\xac\x4b\xd4\x08\xbf\x52\xf5\x38\xac\x78\x25\x72\x42\x23\x68\x90\x6d\xbd\x40\x1d\xbb\x07\xd4\x60\x2c\xd7\x96\x98\xc3\xbb\xf9\xfc\x16\x0c\xea\x15\x6a\x58\x97\x22\x2b\xfd\x83\x71\x31\x3a\x0a\xff\x6f\x08\xad\x45\x42\x13\x12\x34\x9a\x46\x51\xa1\xac\x02\x2e\x37\xf0\xb5\x45\xbd\x49\x18\x6b\x78\xf6\x48\x55\xf2\x31\x18\x13\xb5\x0b\x1d\xb1\x20\x5c\xd6\x36\x64\x41\x58\xa9\x82\xfe\x93\x68\xfb\x34\x6f\xf4\xb7\x32\xf4\x2f\xb5\x5a\x16\x26\x64\x2c\x08\x0b\x61\xcb\x76\x91\x64\xaa\xee\x0b\x53\x8a\x9c\xaf\xb9\xe5\xba\xed\x9b\xcc\x7b\x1c\x9c\x9b\x66\x79\xfe\xa6\x9f\xa9\x85\xe6\x21\xeb\x31\x96\x29\x69\x2c\xd8\xac\xb9\xd5\xb8\x14\x4f\x30\x82\xf0\xa0\x42\x61\x77\x4e\x40\xdf\x1b\xa4\x93\xf9\xed\xb1\x95\xad\xcc\xf7\x46\xf3\xeb\x74\x6b\x43\xa5\x98\xd4\xf9\xad\x2f\xa7\x30\xb4\xa1\x7e\x11\x0a\x59\x2a\x63\x61\x42\xa4\x12\x46\x0d\xdb\xdb\x8d\xe0\x07\x47\x36\x99\xa8\xba\xe6\x32\xff\xc6\x82\x0f\x06\x87\x00\x10\xfa\xa2\x85\x31\x0b\xd2\x52\x69\x3b\x84\x30\xf5\x7d\xa0\x2d\x43\x43\x5b\x90\x73\xcb\x69\x15\xdc\xac\x6c\xa7\x13\x73\x6a\xc9\x74\xf6\x91\x1a\x25\x68\x01\x0d\x81\x5c\x2b\x59\x0c\xe1\xb7\x3f\x83\x81\x72\x25\xb4\x92\x35\x4a\xbb\xc7\x3a\x31\x6d\xdf\xa8\x04\xf1\xb6\x16\xf1\xae\x72\xcf\x0f\x5f\x66\xb3\xd9\xec\x3e\x01\x16\x30\x2c\x86\xec\xec\x70\x3c\xdf\x0e\x06\xe7\xf0\xda\x0f\x17\xcc\x27\xb7\x90\x29\x29\x31\xf3\x1b\xd3\x11\x02\x32\xda\xb9\xed\xaa\xfd\x76\x30\xb8\xd8\xbb\x5e\xa7\xaf\x51\x66\x7a\xd3\x50\x3a\xff\x05\xe8\x62\x07\xb4\xef\xed\xdb\xc1\xe0\xcd\x0e\x89\x5e\xff\x27\xe7\x37\x8c\x91\xae\x0b\x99\x55\x6d\x8e\x39\x84\x95\xca\x78\x45\x8d\x4d\x32\x6d\x43\xbf\x61\xb7\xd3\x5f\x88\x8a\x22\x83\xf9\x75\x0a\x19\x6a\xeb\x65\x38\x1d\xcf\xe0\xea\xd6\x40\x78\x7e\xf1\xb7\x64\x90\x0c\x92\xf3\x90\x54\x02\xc2\x2f\xc3\xe1\xf9\x7d\x18\x93\x0c\x09\x9a\x78\xaa\xfb\xbf\xb8\x6c\x49\x0e\x2e\x06\x7f\xff\x4b\x0c\x05\x4a\xd4\x9c\x72\x5b\x6a\x55\x43\x68\x74\xd6\x77\xd9\xaa\xbe\xad\x4c\x98\x30\x36\x57\xee\x3a\xe0\x90\x8b\xe5\x12\x35\xb5\x8b\x22\xf7\x1f\x71\x13\x43\xad\x5a\x69\xa9\x63\x35\x08\x69\x95\xeb\x5d\xa3\x72\x17\xdd\xa0\x3b\x81\x70\x32\xbd\x9b\x3f\x5c\x5e\x5d\x4f\x3b\x56\xef\xa7\x9f\xbb\xc7\xd3\x33\xd0\xe1\xe4\x68\x9c\xdc\x37\xdc\x96\x26\xf9\x2d\x66\xc1\x58\x17\x66\x08\x7e\xa4\x7f\xe1\x4f\xa2\x6e\xeb\x19\xbd\x8b\x06\xbd\x98\x05\x77\xad\x1c\x02\xd4\x5c\xc8\x98\x3d\x33\xb6\x6c\x65\xe6\x9e\xa2\xac\xce\xe1\xec\x68\x11\x62\xe0\xba\x30\xf0\xe5\xde\x0b\x41\x0f\xbe\xb1\x80\x54\xef\x21\x86\xd5\x23\x0c\x47\xa0\xb9\x2c\x10\x94\x49\xa6\x9e\x61\xe4\x4c\x82\x7e\x1f\x6e\x5b\xeb\xc5\xd1\x96\x54\xd0\x05\x2e\x95\xf6\x7a\xbe\x14\xda\x58\x18\x81\x11\x85\xa4\x42\x37\xa4\x79\x5f\x06\xf7\xb1\x53\x6c\xe7\x7c\xe0\x88\x15\xdd\x3b\x5b\xab\xf3\x7b\x88\x70\x85\x12\x84\x9b\x7f\x8d\xc0\x35\x42\xdd\x56\x56\x34\x15\xc2\xc8\xbb\x67\x25\xd7\x3c\xb3\xa8\x4d\x2f\x61\x41\xe0\x5c\x89\x6d\x27\x67\x49\xda\x54\xc2\xce\xa2\xd5\x63\x0c\xe1\x28\x8c\xe1\xa2\xc7\x82\xe0\x11\x37\x64\xb3\x65\xc3\x82\xc0\x89\xeb\xfe\xdd\xf9\x3d\x63\x41\x60\xd6\xc2\x66\xa5\xcb\x32\xe3\x06\x77\x98\xef\x78\xa7\x4b\x91\x6b\xf8\x4e\xec\x7a\x43\x16\x04\x81\x1b\xe0\x03\x06\x73\x2d\xea\xd3\xe6\x64\x5d\x28\xbf\x0b\x24\x4f\x11\xb9\xc6\x5e\xe8\x7b\xbf\x13\x74\xaf\xa0\x7f\x2c\xea\x81\xfd\x61\x58\xda\xc0\x3f\x1b\x7a\x27\xcb\x7f\x30\xdf\x9d\xf9\x61\xe0\xf9\x75\x7a\x2a\xee\x33\x0b\x9e\x19\x0b\x0c\x56\x98\x59\xf8\xf6\xbc\x9b\xda\x93\x45\x82\x83\x59\x75\x5d\xff\x81\xee\xb4\xc4\x49\xae\xa6\xb6\x8d\xf3\x5c\x0f\x21\x1c\x38\x05\x18\x0c\x43\xf8\xd1\xe9\x4b\xcc\x82\xe0\x1d\x97\x79\x85\x7a\xe8\x3e\xbb\x92\xee\xe9\xb2\x95\x59\x44\xf1\xa2\xb5\x7f\x7f\xd7\x5d\xb4\x9f\xb4\xb0\x74\x79\x6b\x38\xeb\xde\x3b\x39\xf7\x2b\x10\x2c\x6b\x9b\x5c\x36\x5a\x48\x1b\xad\x0f\x93\xa1\x15\x7c\x66\x41\xa5\x8a\xe4\x96\x4e\x97\x51\xd8\xdd\xf3\x5b\xa1\x7b\xf5\x15\x96\x5c\x54\x98\x0f\xe1\xd5\x2a\xf4\x1f\x07\x31\x98\xe4\x5a\x18\x8b\x72\x2c\x73\x97\x4b\xd4\xeb\x1d\x17\xe2\x44\xf5\xfe\x47\x6a\x41\x3a\x79\x49\x5f\xd0\xc3\x11\x69\xc9\x3f\xd1\xa2\x5c\x45\x07\x7a\xd8\x63\x81\x58\x42\x85\x32\xda\x9a\xf6\x60\x34\x82\x81\x5f\xc3\xad\xf7\xe8\xfb\xfb\xc0\x81\x3f\xe2\xe6\x04\xf6\x4e\x5b\xf7\xd0\x9d\xe1\x01\xf2\xd6\xf5\x08\xf8\x11\x37\xe1\x8b\x0e\xda\xca\xc0\xcb\x2e\xba\x4b\x67\x4b\x6f\xf4\xea\x6b\x0c\x1d\xe2\xe8\x74\x8b\xb7\xa6\x3b\xbb\x97\x5d\x9f\x5f\xa7\xd1\x0b\xb3\xef\x27\xe1\xd4\x02\x1f\x8d\x82\x63\x4a\xbd\x47\x63\x62\x40\xad\xdd\xae\x66\xbe\x9f\xaa\xf2\x08\x74\x1e\x85\xee\xf3\x2e\x3e\x18\x91\x1f\x09\xd4\x57\x8d\x1c\xff\x6f\x04\x52\x54\xae\x5c\x54\x90\x4b\x6e\x79\x15\x85\x69\x66\x9b\x61\x97\x22\xdd\x53\xda\xc3\x02\xf7\x31\x13\x72\x55\x7a\x18\xba\xe0\x3d\xbf\xdf\x95\x4b\x94\x86\xe8\x90\x90\x4f\x9f\xf8\xec\xb8\x1c\xd1\xff\x3d\x26\x97\x3b\x0e\x1e\xdf\x7d\x5f\x9c\x88\x7f\xd4\xce\x94\xbe\xc3\x31\xf7\xdf\x22\x3e\x5c\xd8\x63\x2c\xc8\x71\x89\x1a\xb6\x44\x93\x49\xa5\x0c\x46\xbd\xed\x7b\xb7\x17\xbd\x1d\x81\x1d\xd8\x1e\x04\xf0\x49\x58\xcc\x69\xe8\x9e\x23\x02\xa4\xcb\xd4\xcd\xb0\x92\x72\x97\xf7\x0e\x7f\x9c\xd1\x0f\x4a\x97\x3b\xad\xcb\xcb\x3c\x4f\x27\xca\x9d\xdb\xe9\x44\x29\x53\xd2\x5b\xc7\x95\xa2\xc2\x99\x2b\x33\x19\x4f\x94\x94\xdd\xc2\xfa\x84\xe8\x7c\x9f\xe4\x41\x56\x95\x8c\xc2\x14\x65\x4e\x17\xf4\xf6\x67\x47\xe8\x4c\x1e\x7c\x16\x23\xef\xeb\x54\x21\xfa\x72\xbf\xd8\x58\x8c\xfc\xda\x3b\xab\x13\x99\x1c\x83\xef\x93\x31\x28\xf3\x7d\x8c\x5d\x1a\x41\xa0\xd1\xb6\x5a\xd2\x9f\xcf\x2f\xb8\x6d\x55\x89\xbc\xad\x23\xf6\xec\x92\x75\x9d\x7e\x66\xff\x0e\x00\x00\xff\xff\x1c\x06\xe4\x0d\x2e\x10\x00\x00") - -func testImagesAgnhostPorterPorterGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostPorterPorterGo, - "test/images/agnhost/porter/porter.go", - ) -} - -func testImagesAgnhostPorterPorterGo() (*asset, error) { - bytes, err := testImagesAgnhostPorterPorterGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/porter/porter.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostResourceConsumerControllerControllerGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xe4\x5a\x6d\x6f\xdb\x46\xf2\x7f\x2d\x7e\x8a\x29\x01\x17\x64\xca\x90\x4e\xff\xc0\x1f\x85\x52\x1f\xa0\x28\x71\x2b\xd4\xb2\x7d\x92\xdd\xa0\xb8\x1e\x0e\x2b\x72\x44\x2d\x42\xee\xb2\xbb\x4b\x2b\x3e\xd7\xdf\xfd\xb0\xcb\x07\x91\x12\x29\x29\xb6\xdb\xbb\xc3\xf9\x45\x24\x71\x66\xe7\xf1\xc7\xdf\x2c\x97\x09\x5e\x59\x63\x9e\xdd\x0b\x1a\xaf\x14\x7c\x7b\xfa\xe6\xff\xe1\x66\x85\xf0\x53\xbe\x40\xc1\x50\xa1\x84\x51\xae\x56\x5c\x48\xdf\xb2\x2e\x68\x88\x4c\x62\x04\x39\x8b\x50\x80\x5a\x21\x8c\x32\x12\xae\x10\x4a\x89\x07\x3f\xa3\x90\x94\x33\xf8\xd6\x3f\x05\x47\x2b\xd8\xa5\xc8\x76\xdf\x5a\xf7\x3c\x87\x94\xdc\x03\xe3\x0a\x72\x89\xa0\x56\x54\xc2\x92\x26\x08\xf8\x39\xc4\x4c\x01\x65\x10\xf2\x34\x4b\x28\x61\x21\xc2\x9a\xaa\x95\x71\x52\x9a\xf0\xad\x5f\x4a\x03\x7c\xa1\x08\x65\x40\x20\xe4\xd9\x3d\xf0\x65\x53\x0b\x88\xb2\x2c\x00\x80\x95\x52\xd9\x30\x08\xd6\xeb\xb5\x4f\x4c\x94\x3e\x17\x71\x90\x14\x5a\x32\xb8\x98\x8c\x3f\x5c\xce\x3f\xbc\xfe\xd6\x3f\xb5\xac\x5b\x96\xa0\x94\x20\xf0\xb7\x9c\x0a\x8c\x60\x71\x0f\x24\xcb\x12\x1a\x92\x45\x82\x90\x90\x35\x70\x01\x24\x16\x88\x11\x28\xae\xe3\x5c\x0b\xaa\x28\x8b\x3d\x90\x7c\xa9\xd6\x44\xa0\x15\x51\xa9\x04\x5d\xe4\xaa\x55\xa0\x2a\x2a\x2a\xa1\xa9\xc0\x19\x10\x06\xf6\x68\x0e\x93\xb9\x0d\xef\x46\xf3\xc9\xdc\xb3\x3e\x4e\x6e\x7e\xbc\xba\xbd\x81\x8f\xa3\xd9\x6c\x74\x79\x33\xf9\x30\x87\xab\x19\x8c\xaf\x2e\xdf\x4f\x6e\x26\x57\x97\x73\xb8\x3a\x87\xd1\xe5\x2f\xf0\xd3\xe4\xf2\xbd\x07\x48\xd5\x0a\x05\xe0\xe7\x4c\xe8\xd8\xb9\x00\xaa\x4b\x87\x91\x6f\xcd\x11\x5b\xce\x97\xbc\x08\x46\x66\x18\xd2\x25\x0d\x21\x21\x2c\xce\x49\x8c\x10\xf3\x3b\x14\x8c\xb2\x18\x32\x14\x29\x95\xba\x79\x12\x08\x8b\xac\x84\xa6\x54\x11\x65\x7e\xef\xa4\xe3\x5b\xaf\x02\xcb\xca\x48\xf8\x49\x1b\x11\x28\x43\xce\x64\x9e\xa2\x08\x95\x48\x2c\x8b\xa6\x19\x17\x0a\x1c\x6b\x60\x2f\x53\x65\x5b\x03\x3b\xe1\xb1\xfe\x60\xa8\x02\xdd\x97\xea\x7b\x2e\x12\xfd\x55\x2a\x11\x72\x76\x67\xbe\xde\xb3\xd0\xb6\xac\x81\x1d\x53\xb5\xca\x17\x7e\xc8\xd3\x40\x66\xcb\x37\xff\x17\x84\x7c\x21\x88\x11\x7d\xfa\x4e\xfa\x94\x07\x9f\x6a\x8c\x06\x0a\xa5\x0a\x68\x4a\x62\x94\x81\x40\xc9\x73\x11\xe2\xeb\x2a\xa6\x20\xe4\x69\xca\x99\x6d\xb9\x96\x15\x04\x30\x4e\xa3\x59\xa9\x32\x2e\x35\xc6\x9c\x29\xc1\x93\x04\x85\xee\x53\x2e\x4b\x04\xc4\x6c\xc5\xa5\x82\xb1\x76\xec\x5b\x77\x44\x1c\x58\x7b\x06\x5f\x9b\x20\xfd\x31\x4f\x53\xc2\xa2\x07\x6b\x70\x2b\x71\x08\x00\xf6\x4e\x50\xfa\x4b\xb9\xce\xf6\xac\xc1\x7c\xc5\x85\x1a\x82\x3d\x57\x44\x28\x09\x04\x7e\xbc\xb9\xb9\x06\x89\xe2\xce\x14\x9e\x28\x90\x99\x40\x12\x15\x18\x45\xa9\x75\x04\xcf\x59\x04\x95\x65\xa8\x2c\x4b\x6d\xef\x82\xb3\x78\x08\x2f\x63\xcf\x37\x8c\xd0\x34\xb0\x22\xb2\xc0\x13\x49\x11\x90\x45\x19\xa7\x4c\x19\xd8\x40\x2e\x35\x22\x4a\x39\x67\x1a\x73\x64\xcd\x8a\x82\xea\x4b\xbf\xee\x96\xe2\x57\x1b\x64\xbe\x08\x8b\x9a\xf9\x3a\xfa\x91\x88\xe5\x10\xa0\x28\xe6\x94\x7c\xa6\x69\x9e\x5e\xea\x8b\xce\xa9\xeb\x59\x83\x59\xce\x74\x51\x53\x42\x99\x67\x3d\x5a\xa6\x33\x8e\x35\x30\x98\xeb\xfa\xa3\x4c\x59\x83\xca\xdb\xf5\xb6\x56\x4b\x3a\x47\x71\x47\x43\xbc\xd4\x89\x99\x3f\x7d\xcb\xb2\xb8\x53\x41\x66\x24\xc4\x4a\xc1\xb5\xac\x65\xce\x42\xa0\x8c\x2a\xc7\x85\x07\x6b\xb0\x17\x2b\xfe\x79\x42\x62\xe9\xb8\xfe\x84\xa9\x9f\x89\x70\xbe\xd6\xc1\x7b\x60\xeb\x0f\xdb\x83\xef\x4e\xbf\x3b\xf5\xc0\x36\xb1\xb2\x3c\x5d\xa0\xf0\x6d\xf7\x4b\x4d\x36\x33\xf6\xc0\xae\x91\xd7\xeb\x43\x33\xe9\xa6\xeb\xc7\x3b\x9c\x9b\x12\xb4\x7c\x36\xca\xd4\x74\x2d\x8b\xcb\xaf\x19\x49\xd1\xf6\x3a\x6e\x0b\x7d\xd1\x14\x9f\x2f\xa1\x54\xd6\x21\x69\xba\xd7\x24\xd5\x01\xce\x97\x0a\xd3\x74\xb3\x2f\x56\x23\xd4\xb1\x45\xb8\x24\x79\xa2\xaa\x30\x0b\x08\x7c\x49\xac\x8f\x25\x4e\x34\x78\x9d\x30\x8d\xe0\x55\x8b\x32\x3c\x20\x22\x96\xf0\xb7\xbf\x17\xb0\x32\x40\x4a\x63\x01\xc3\x33\x60\xb8\xde\x24\xe5\xb8\xd6\x20\xe1\xb1\x7f\x4e\x14\x49\x1c\x4d\xa9\xfe\x05\x95\x0a\xd9\x88\x45\x3a\x29\x74\x96\xa9\xf2\xe7\x99\xa0\x4c\x2d\x1d\x7b\x78\x12\xd9\x1e\xe8\xc6\xbb\x1e\xa4\xb1\x70\x4d\x20\xea\x3e\x2b\x22\x2e\xf9\x4b\x2a\x91\x87\x4a\xbb\x14\x28\x33\xce\x24\x7e\x14\x54\xa1\xb8\xe0\xe1\x27\xd0\xc4\xec\x4f\x73\x85\x9f\xad\xc1\x9a\x50\xf5\x83\xe0\x79\xb6\xb9\x8b\x8c\xf8\x63\x75\xbd\x4e\x73\x2b\x68\x9d\x6d\xed\xee\xc1\x1a\x84\x3a\xb1\xaf\x37\xd7\x1e\x1e\xb5\x6f\x95\x0b\x06\x61\x6d\xc3\x09\x9b\xcb\x5c\x30\xf9\x69\x3a\x72\xd6\x66\xc8\xfb\xb3\x56\xb4\x9e\xa6\x34\x78\x55\x4a\x0c\xb9\x99\x32\xd2\xa5\x16\xf8\x53\x54\x2b\x1e\xc1\x57\x67\x60\x5f\x5f\xcd\x6f\x6c\x2d\x1a\x18\xe5\x0f\x42\x70\xe1\xac\x3d\x28\xe6\x85\xff\x8e\x44\xe5\x7a\xaf\xf0\x33\x57\x44\xe5\x72\x73\xd9\xb5\x06\x65\xb4\xd6\xe0\xd1\x1a\x04\x01\x64\x44\x48\xdd\x7b\x6d\xb9\x62\x56\x88\x88\x22\x86\x1b\x6f\x67\x17\xe6\x87\x89\x05\x85\xe9\xaa\x0e\xe9\x9a\x08\x89\xe7\x5c\xa4\x8e\xfb\xd6\x5c\xff\xea\x0c\x18\x4d\x3a\x22\x43\x21\xca\x1f\xee\xd1\x31\xad\x08\x8b\x92\x1a\x85\xe3\xeb\xdb\xba\x14\xb7\xb3\x0b\xff\x9a\xa8\x15\x9c\x9d\x55\x39\x8f\x6b\xad\x51\x14\x99\x7d\x85\x0e\x22\xf4\x0b\x23\x1b\xa9\x0e\x46\x9b\xd0\x51\x1f\x72\x39\xc5\xf4\x08\x97\x53\x4c\xf7\xb8\x9c\x62\x7a\x94\xcb\x45\x9e\x66\x53\x54\x82\x86\xfb\x5c\xbe\xab\xb5\xba\x5c\x6e\xa4\x7b\x5c\x76\x22\xe6\x96\x7d\x62\x7c\xcd\xce\x73\x16\xea\x8d\x53\xab\x45\x97\x5c\x9d\xeb\x01\xeb\xf6\xe2\x7a\xb7\xc6\xdd\xf0\xfe\x2d\x47\x71\x0f\xb9\x48\xfc\x9f\x49\x92\xa3\x34\xe8\x0e\x02\x88\x51\xe9\x2d\x69\x39\x91\x0a\xd8\xe9\x9d\x5f\xb3\xf3\x51\x2e\xcc\x9e\x6e\x8e\x61\x41\x87\x1a\x83\xc6\xa0\xff\x03\x2a\xa7\xcc\xe3\xfd\x46\xeb\xaf\x5a\xe6\x5a\x83\x94\x26\x09\x0d\xb9\x40\xb9\x67\xdd\xb4\x56\xaa\x96\x95\xf7\xc0\x9c\xfe\x13\x27\x6c\x7a\x8c\x8d\x59\xf7\x8a\xca\x20\x5d\xc2\x6e\x0e\x67\x67\x60\xdb\xf0\xfb\xef\xb0\x13\x65\x2d\xd9\x1f\x48\xa1\xd6\xcb\x04\x97\x5c\xfd\x40\xef\xb0\x6e\xec\x48\xc4\x79\x8a\xec\x38\x5e\x30\xbd\xd1\xdb\x5b\x14\x25\x17\x38\x45\x87\x64\xf1\x28\xa1\xa4\xbb\xaf\x4d\x5e\x33\x5f\x13\x98\x2e\x5b\xb9\x63\xf6\x47\x8a\x53\x67\xa7\x20\xad\x7e\x79\x8d\xaa\x74\xaf\xdf\xae\x5a\x7f\xdf\xbc\xbe\x3a\x76\x1b\xde\x5b\xf4\x9d\x66\x16\x36\x4a\xee\x6b\x35\x73\x5b\xb2\x37\x88\x83\x6a\xf0\xfd\x19\x9c\xf6\x37\x7b\xc2\x42\x2e\x04\x86\xea\x89\xdd\x0e\x79\xce\x94\x2e\xc5\x26\x7e\x08\xfa\x62\x31\xa3\x76\x5b\xfb\x35\x18\x1b\xaf\x7a\xd7\xe8\xd9\x7e\x5e\xce\xf6\xb5\x07\xf6\x6c\x0c\x29\x61\x24\x46\x31\x04\x89\x2c\xd2\x90\x3e\xb9\xdb\x6c\xed\x15\xaf\xd0\xa5\x2f\x37\x3c\x21\x09\x57\x66\x34\xbd\xa9\xa7\x55\x9f\xee\xaf\xcc\xf6\x8a\xb8\x7a\x41\xa0\x05\xa6\x1e\x74\x59\x68\xc2\x5f\xca\x42\x87\x7e\xbd\x65\xf0\x47\x51\xe4\x18\xa9\x6b\x04\x3a\xde\x0d\xe7\x95\x35\x95\x45\x3f\xf6\x3b\x6b\x40\xc7\x35\x9c\x6c\x08\x5f\xf6\x7b\x7d\xa3\x3d\xc6\x1c\x0a\xa7\x57\x0c\x77\xfc\x16\x84\xaf\x07\xfe\x8e\xf1\xa6\x31\xbd\xcf\x71\x8e\x24\x72\x33\xb9\x5e\x94\xc8\xcd\x3c\x7d\x3a\x91\x63\x4c\x16\xf7\x6a\x3f\x8f\x57\x3a\xdd\x34\x7e\x84\x85\x59\xe7\x82\x23\x49\x7c\xcb\x7e\x0f\x87\x77\x6a\xfd\x47\x50\xf8\x76\x83\x9e\x4a\xe1\x55\x86\xde\xa6\x24\x3d\x04\xde\xae\x45\x6f\xc3\xb6\x6f\xa6\xfd\x56\xf7\x95\xfb\x30\x79\xb7\x6d\xf7\x91\xf2\x97\x69\xfd\x69\xcc\x5d\x3b\xdc\x26\xee\x4a\xd0\xe0\xed\x5a\xb7\x9b\xb6\x37\x2b\x9e\xc7\xda\xd3\x77\x87\xd9\x7a\xfa\xae\x9f\xa5\x9b\x18\x78\x0e\x49\x4f\x31\x3d\x48\xd2\x1b\x5f\x2f\xc6\xd1\x1b\xb7\x2f\xc9\xd1\xcd\xad\xfe\xcb\x70\xf4\xb6\x5d\x7d\x1b\xeb\xcf\x1e\x9e\xd5\xa2\x4b\x92\x62\xc5\x8c\x11\x26\x8a\xec\x23\x74\x2d\xaf\x95\x9f\x3a\x03\x1a\xdd\x1a\xe7\x52\xf1\xb4\x08\xe4\x38\x3e\x6f\xae\x38\x96\xd0\x4d\x05\xea\xdf\xcd\x24\xbb\xc8\xbd\x23\xa6\x7f\x2f\xbb\x07\xcb\x84\x93\x8a\xe4\x77\x3b\xfc\x7c\xaa\x37\x15\xf1\x8a\xc2\xf4\xac\xda\xd4\xac\xbf\x81\x5e\x5f\x15\x0f\x12\xfc\x6e\xc9\x0f\x32\x7c\x23\xd8\x4e\xde\xde\xf5\x7f\x50\xed\xcf\xe2\x77\x13\x7a\x9b\xdb\x9b\x61\x6c\xc8\xbd\x50\xec\x20\xf6\xb6\xfa\x13\x98\x7d\x91\xa7\x19\x84\xc6\x4a\x75\x7f\x2c\xee\xb5\x52\x37\xc9\x1b\x75\xa3\xd0\xc3\xf0\xdb\x30\x78\xd6\x3e\xbc\x61\x4b\xe7\x93\x96\x56\x0f\x79\x7d\xb9\x0d\x79\x4f\x00\xcf\xa7\xfd\xbe\xa7\x8d\xde\x83\x44\x23\x6f\x3e\x42\xb7\xfc\x6b\x76\x30\x13\x41\x13\x03\xd5\x88\x39\x7d\x0b\x14\xbe\xaf\x57\xbe\x05\xfa\xcd\x37\x26\xf7\x83\xcf\x1d\x3d\x2e\x4c\x8a\x47\xa4\xd3\x9a\xcb\x07\xd3\xe9\x9c\xd0\xcf\xcb\xa6\x3d\xa1\xbb\x3d\x1c\x9b\x4c\x1b\x00\xdd\xd9\x94\x77\x4d\x41\xd5\xcd\xe4\x2a\x32\x7d\xb1\x36\xf5\xa0\x71\xd7\x4f\x2b\xbd\x50\x20\x51\xf5\xfb\x88\xdb\xd9\x85\x23\xf3\xe5\x92\x7e\x86\xea\x68\xbf\xdc\x3a\x3c\xd4\x47\xde\xad\x23\xfb\xf2\xf5\xf5\x89\xf4\x4f\xa4\x2f\xef\x42\x3f\x4c\x72\xa9\x50\xf8\x09\x0f\x49\x32\x3c\x89\x4e\xa4\x21\x82\x8e\xf7\x2d\xfd\x6f\x37\xda\xaf\x84\x8a\x78\xcc\xcd\x12\x04\xd0\x87\x4d\x23\x90\xed\x23\x6d\xf3\xb0\x93\xe5\xa5\xbd\x4c\xa7\xdf\xdf\xd3\x6e\xc0\xf7\x34\x75\x73\x36\x41\x99\xea\x6e\x62\x84\x4b\x14\xd0\xbc\xe9\xdf\x73\x86\x8e\x6b\x0d\x8a\xcd\xda\xf0\xac\xa3\xf6\x7d\xe7\xdb\xae\x35\xf8\x87\x57\x1d\xc6\x9b\x90\xae\xb9\x54\xe6\x30\xde\x58\xf3\x1a\x7b\xbf\x87\xee\x63\xce\x21\x3c\x54\x63\x75\xa2\x38\x69\x1c\xa7\xb9\x8f\xf5\xec\xda\xde\x85\x6d\x2f\x6a\xa2\xe8\xf1\xd1\xd5\xa4\xb6\xfb\x12\xc6\xd7\xff\x38\xee\xa6\x04\x1d\x2a\xb7\x2c\x29\x95\xca\x97\x0c\x8d\x97\x09\xdb\x73\xea\x9c\xd0\xa4\xf8\x1f\x0d\x21\x67\x0c\xc3\xe6\xf3\x84\x18\x56\xc3\x06\x85\xd8\x3a\xfc\xde\xb6\x53\x56\x35\x82\x93\x68\xfb\xc4\xa8\x51\x8c\x4e\x9c\x6d\x58\xa3\x0f\x67\x29\xa6\x5c\xdc\x7f\x29\xd4\x9a\x6c\xd4\xc7\x1f\xd5\x83\xdb\x1f\x89\xb4\xcd\x6b\x8d\x27\x21\xad\x75\x72\xb2\x03\xb4\x4a\xfa\x3f\x89\xb3\x2a\xf9\x02\x66\x75\x29\xba\xd9\xac\xb9\xc9\xec\xe3\xb3\xd6\x66\xec\x4b\x99\xed\x88\x81\x15\x36\x74\xcc\x3b\xee\x6a\x74\x15\xbb\xcc\x3f\x04\x85\x3b\x6f\xba\x0e\xa2\xd0\x1a\x0c\xba\x70\xd8\x7a\x50\x1d\xc2\xc3\x76\x32\x4f\x44\xe0\x66\x55\xfd\x60\xbb\xa3\xaf\x25\xff\x7d\x58\xd5\x95\xc7\xa8\x82\xd3\x89\x34\xbb\xf7\xa8\xd8\xbd\x6f\xd5\xae\x44\x80\x86\xee\xbf\x02\x00\x00\xff\xff\x15\xfe\x98\x61\x8e\x27\x00\x00") - -func testImagesAgnhostResourceConsumerControllerControllerGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostResourceConsumerControllerControllerGo, - "test/images/agnhost/resource-consumer-controller/controller.go", - ) -} - -func testImagesAgnhostResourceConsumerControllerControllerGo() (*asset, error) { - bytes, err := testImagesAgnhostResourceConsumerControllerControllerGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/resource-consumer-controller/controller.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostServeHostnameServe_hostnameGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x57\xdf\x73\xdb\xb8\x11\x7e\x26\xfe\x8a\x2d\x67\x92\x92\x1e\x06\x74\x72\x9d\x74\xaa\x36\x0f\x3a\xd9\xae\x35\x97\xb3\x3d\x92\x7c\x99\x9b\x34\xd3\x83\xc8\x15\x89\x86\x04\x58\x00\xb4\xa2\xb9\xf3\xff\xde\x59\x80\x54\xa4\xd8\xb9\x3a\x33\xf7\x62\x11\xe4\xfe\xf8\xf6\xdb\x0f\x0b\x38\x3f\x61\x33\xdd\xed\x8c\xac\x6a\x07\xaf\x4e\x5f\xfe\x05\x56\x35\xc2\x0f\xfd\x1a\x8d\x42\x87\x16\xa6\xbd\xab\xb5\xb1\x9c\xb1\xb7\xb2\x40\x65\xb1\x84\x5e\x95\x68\xc0\xd5\x08\xd3\x4e\x14\x35\xc2\xf0\x25\x83\x9f\xd0\x58\xa9\x15\xbc\xe2\xa7\x90\x90\x41\x3c\x7c\x8a\xd3\xbf\xb3\x9d\xee\xa1\x15\x3b\x50\xda\x41\x6f\x11\x5c\x2d\x2d\x6c\x64\x83\x80\x9f\x0a\xec\x1c\x48\x05\x85\x6e\xbb\x46\x0a\x55\x20\x6c\xa5\xab\x7d\x92\x21\x04\x67\x3f\x0f\x01\xf4\xda\x09\xa9\x40\x40\xa1\xbb\x1d\xe8\xcd\xa1\x15\x08\xc7\x18\x00\x40\xed\x5c\x37\xc9\xf3\xed\x76\xcb\x85\x47\xc9\xb5\xa9\xf2\x26\x58\xd9\xfc\xed\x7c\x76\x7e\xb5\x3c\x7f\xf1\x8a\x9f\x32\x76\xab\x1a\xb4\x16\x0c\xfe\xb7\x97\x06\x4b\x58\xef\x40\x74\x5d\x23\x0b\xb1\x6e\x10\x1a\xb1\x05\x6d\x40\x54\x06\xb1\x04\xa7\x09\xe7\xd6\x48\x27\x55\x95\x81\xd5\x1b\xb7\x15\x06\x59\x29\xad\x33\x72\xdd\xbb\x23\x82\x46\x54\xd2\xc2\xa1\x81\x56\x20\x14\xc4\xd3\x25\xcc\x97\x31\x7c\x3f\x5d\xce\x97\x19\x7b\x37\x5f\x5d\x5e\xdf\xae\xe0\xdd\x74\xb1\x98\x5e\xad\xe6\xe7\x4b\xb8\x5e\xc0\xec\xfa\xea\x6c\xbe\x9a\x5f\x5f\x2d\xe1\xfa\x02\xa6\x57\x3f\xc3\x0f\xf3\xab\xb3\x0c\x50\xba\x1a\x0d\xe0\xa7\xce\x10\x76\x6d\x40\x12\x75\x58\x72\xb6\x44\x3c\x4a\xbe\xd1\x01\x8c\xed\xb0\x90\x1b\x59\x40\x23\x54\xd5\x8b\x0a\xa1\xd2\x77\x68\x94\x54\x15\x74\x68\x5a\x69\xa9\x79\x16\x84\x2a\x59\x23\x5b\xe9\x84\xf3\xeb\x07\xe5\x70\x76\x92\x33\x96\xe7\x30\x05\xdb\x8a\xa6\x81\xde\xc9\x46\xba\x1d\x91\xf3\x9f\xde\x3a\xb0\x68\xee\x02\x86\x5a\x5b\xa7\x44\x8b\x54\xf2\x6a\x76\x43\xb1\x73\x6d\xe0\xf6\xec\x86\x33\xd6\x89\xe2\x23\xc1\xf0\xe6\xa3\x25\x63\xb2\xed\xb4\x71\x90\xb0\x28\xde\xb4\x2e\x66\x51\xdc\xe8\x8a\x7e\x14\xba\xe1\x27\xa7\xf6\xd2\xb3\xb6\xe1\x6f\x6e\x65\xa5\x44\x43\x0b\xbb\xb3\x85\x68\xfc\xa3\x93\x2d\xc6\x8c\x45\x71\x25\x5d\xdd\xaf\x79\xa1\xdb\xdc\x76\x9b\x97\xdf\xe5\x85\x5e\x1b\x11\xb3\xd4\x97\x31\x6b\xcb\x25\x41\xb8\x1c\xc1\x4a\x4b\x0a\x0d\x42\xa8\x14\x21\x83\x19\x39\x70\x76\x27\xcc\x43\xf3\x37\xf0\xdc\xc7\xe3\x33\xdd\xb6\x42\x95\xbf\xb2\xe8\xd6\xe2\x04\x00\x62\x5f\xda\x8b\xb1\xb6\x38\x63\xd1\xb2\xd6\xc6\x4d\x20\xf6\x21\xec\x11\x49\xf4\xf9\xad\x56\xd5\x04\xe0\x97\x47\x3e\x83\xab\x8d\xee\xab\x1a\x2e\x57\xab\x1b\xc8\x3d\x9f\x39\x51\x49\xe4\x92\x61\x25\xef\x50\x01\x91\xc7\x7f\xc9\x58\x34\x35\x95\x9d\x00\x04\x68\x3f\x8a\x4f\xb2\xed\xdb\x2b\x7a\x99\x9c\xa6\x19\x8b\x16\xbd\x22\x88\xad\x90\x2a\x63\xf7\xcc\x97\x96\xb0\xa8\xd4\x14\x17\x60\xad\x75\x43\x2b\x8a\xff\x79\xe5\x53\xef\x57\xb3\x46\x5b\x1c\x56\xbe\x67\x00\x20\x95\x23\x5a\x37\xbd\x2a\x40\x2a\xe9\x92\x14\x7e\x65\xd1\x97\x9c\xf1\x8b\x46\x54\x36\x49\xf9\xf7\x5a\x37\x3f\x09\x93\x3c\xf7\x79\x33\x88\x5d\xd1\xc5\x19\x6c\x44\x43\x03\x25\xb0\x04\x86\xb6\xe0\x1d\x1a\x2a\x99\xc7\xe9\xd3\xc2\xdd\x9e\x51\xb8\xbe\xfc\x9d\x70\x24\xc3\xa7\x86\xa3\xca\x33\x88\xbd\xf0\x32\x70\xa6\xff\x1c\x8f\x3e\x3d\x39\x8e\xe7\x2c\x83\xb8\xa0\xdf\x03\x68\x81\xcb\x42\x2b\x85\x05\xed\x3b\xda\x92\x80\xa2\x18\xda\x4d\xc3\x09\xad\xfb\xfd\x34\x73\xe5\x7c\x16\xea\x45\x06\x31\xfd\xc4\x19\xfc\xed\xbb\xbf\xbe\xce\x20\xbe\xa1\x06\xa9\xbe\x5d\xa3\xa1\x28\xf7\x43\x8f\xa8\xff\x49\xd1\x96\x70\x72\xa4\xe1\x0c\x84\xa9\x2c\xbc\xff\x40\x53\x4b\x55\xbe\x89\x72\x03\x83\x02\x9e\x3f\x87\x24\x08\xe5\xb7\xdf\xc0\x53\xed\x0d\xa2\x46\x57\xfc\x42\x38\xd1\x6c\x92\x78\x26\xd4\x9f\x87\x51\xe0\x1b\x97\x93\x92\x5a\x5d\x22\x0d\x81\x50\x54\x58\xb9\x30\x9d\xbc\xc2\x69\xc3\xa6\x2c\xba\x67\x2c\x1a\x65\x9f\x01\x1a\x03\x93\x37\xa0\x2d\x1f\x2b\x4e\x52\x8f\x86\x3e\xfc\xe9\x0d\x28\xd9\x3c\xc8\x7e\x6e\x8c\x36\xb0\x31\xba\x3d\xf6\x9b\xc0\x33\x1b\xfb\x90\x43\x1a\x5f\x14\x55\xe2\x23\x48\xeb\x50\xa1\xd9\xe7\x54\xe8\xf8\x5b\xff\x32\x19\x95\xd9\x3a\xbe\xec\x8c\x54\x6e\x93\xc4\x93\x67\x65\x9c\xf9\x1d\x97\xa6\x2c\x7a\x04\xd2\xd7\x30\x1d\xc4\x3d\x86\x14\xdd\xb3\x28\xaa\x34\x50\x6f\xc2\xd6\x89\x22\x1a\xe0\xfe\x21\x22\x79\xec\xb1\x8d\x60\xf9\xb4\xa0\xf3\x93\x38\x89\x1e\xc5\xf0\x55\x14\xa3\xe3\x31\x82\x80\x21\x38\xdd\x0c\x85\x12\x41\x83\x04\x83\xab\x77\x20\x38\x7c\x81\xad\x76\x38\x2d\x4b\x93\xa4\x7c\xe9\xd5\x92\xa4\xe9\x1e\x2e\x7f\x67\xa4\xc3\xe4\xfd\x87\xf5\xce\x61\x32\x36\xf5\xd0\xc0\x2b\x3f\xa0\xa7\xc4\xf7\x89\xef\x4c\x68\x0c\x69\x86\x6a\x10\x65\x79\xdc\x94\x05\x5a\xdd\xdc\xe1\xed\xd9\x8d\xcf\x3c\xee\xf3\x3f\xac\x39\x5f\xc4\x7f\xa4\x49\x56\x17\x1f\x1f\xd1\xc9\xed\xd9\xcd\x88\x86\x40\x7f\x5b\xe6\xcf\x21\xfe\xbf\x2a\x68\x5e\xaf\xfb\xcd\x06\x0d\xbc\x7f\xf9\xda\xd3\x7b\x2c\x96\x7f\x67\x50\x34\x72\x7a\xc8\x1c\x61\xe6\x0b\x14\xe5\x85\xd1\x6d\x12\xbc\xdf\x9f\x4e\x3e\x7c\xbb\x74\xf6\x41\x9e\x20\x1e\x6a\xe2\x23\xe2\x09\xd8\xbe\x90\x8c\x47\xe8\x25\xb3\xd2\x0f\x44\xb3\x77\x7a\x5c\x2c\x7e\xa6\x10\x6c\x1a\xd2\xfc\x52\xa8\xb2\xc1\x0b\x62\x2c\xce\x49\x1b\xf4\xb4\xf5\x17\x43\xea\x6e\xa7\x95\x45\x9f\xc8\x64\x60\xe0\x64\x78\xef\x51\xa6\x9f\x9b\x34\xd6\x70\x38\x84\x0f\x8a\x30\x07\xf2\x4f\x19\x0b\x24\x8e\x07\x63\x60\x90\xee\x49\x65\x19\xae\xbb\x35\x0a\x7f\x97\xd2\x74\x29\x2b\x90\x1e\xfc\x39\xe0\x27\xe0\xc1\xec\x17\x1b\x87\xc6\xcf\x4e\xba\x9c\xd1\xc7\x71\xfe\xfb\x90\x5b\x7e\xe9\x03\x25\x29\x9f\x96\x65\x12\xcf\xf6\x9e\xf1\xfe\x64\x19\x28\xf2\x92\x68\x1d\xbf\x18\x76\xc5\x36\x83\xd8\x23\xdf\x93\x4a\x2c\xa6\x0f\xe5\x95\xe7\xb0\xe8\x15\x84\x8b\x76\xa3\x6d\x6f\x10\xac\x0e\xf4\x05\x99\x4e\x55\x38\x86\xa0\xd4\x68\x69\xd6\xaf\x1b\x5d\x7c\x3c\x52\x77\xf2\x88\x79\xf2\xb5\x4d\x9a\x91\xec\xbc\x0c\xc6\xae\x1e\x36\x60\x39\x90\xa1\xc3\x0d\x07\x9e\x95\xfc\x5f\x6a\x74\x65\x51\xb8\xff\x59\x12\x79\x2b\x3e\x62\x52\xd4\x42\xd1\xe4\x5f\xfa\xf7\x19\xbc\xdc\xdb\xf0\x2b\xed\xe4\x66\x97\x0c\x1e\x19\x0c\x17\x46\xbe\x9c\xff\x73\x75\xbe\xf8\x31\x18\x52\xa0\x7f\xbc\x18\x6c\xbe\x40\x52\xf7\x8e\x6e\xff\x50\xea\xed\xd8\x2a\x83\x05\x4a\x8f\x2f\xb8\xd0\xa6\x08\xf8\xac\xac\xd2\x63\xff\xe9\x56\xf8\xff\x1e\xa0\xd3\x25\x94\xd8\x20\x35\x8e\x8c\x53\x16\xd1\x01\xc8\x97\x0d\x62\x97\xbc\x3e\x85\x13\x08\x6b\x2c\xb4\x2a\xe9\xc8\xfe\x5f\x00\x00\x00\xff\xff\xfe\x9a\xce\x0f\xaf\x0d\x00\x00") - -func testImagesAgnhostServeHostnameServe_hostnameGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostServeHostnameServe_hostnameGo, - "test/images/agnhost/serve-hostname/serve_hostname.go", - ) -} - -func testImagesAgnhostServeHostnameServe_hostnameGo() (*asset, error) { - bytes, err := testImagesAgnhostServeHostnameServe_hostnameGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/serve-hostname/serve_hostname.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostTestWebserverTestWebserverGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x55\x4b\x6f\xdb\x46\x10\x3e\x73\x7f\xc5\x80\x40\x53\xca\xe0\xc3\x79\x1c\x0a\x15\x39\xa8\xb2\x5d\x0b\xb1\x25\x41\x94\xe3\x04\x45\x0f\x2b\x72\x48\x0e\x42\xee\x32\xbb\x43\x53\x42\xe0\xff\x5e\xec\x4a\x71\xe3\x26\x40\x73\x5a\x71\x77\x66\xbe\x6f\xbe\x79\x28\x3b\x13\x73\xdd\x1f\x0c\xd5\x0d\xc3\xab\xf3\x97\x6f\x60\xdb\x20\xbc\x1b\x76\x68\x14\x32\x5a\x98\x0d\xdc\x68\x63\x53\x21\x6e\xa8\x40\x65\xb1\x84\x41\x95\x68\x80\x1b\x84\x59\x2f\x8b\x06\xe1\xf4\x12\xc3\x7b\x34\x96\xb4\x82\x57\xe9\x39\x44\xce\x20\x3c\x3d\x85\x93\xdf\xc5\x41\x0f\xd0\xc9\x03\x28\xcd\x30\x58\x04\x6e\xc8\x42\x45\x2d\x02\xee\x0b\xec\x19\x48\x41\xa1\xbb\xbe\x25\xa9\x0a\x84\x91\xb8\xf1\x20\xa7\x10\xa9\xf8\x78\x0a\xa0\x77\x2c\x49\x81\x84\x42\xf7\x07\xd0\xd5\xb7\x56\x20\x59\x08\x00\x80\x86\xb9\x9f\x66\xd9\x38\x8e\xa9\xf4\x2c\x53\x6d\xea\xac\x3d\x5a\xd9\xec\x66\x31\xbf\x5c\xe6\x97\xc9\xab\xf4\x5c\x88\x3b\xd5\xa2\xb5\x60\xf0\xf3\x40\x06\x4b\xd8\x1d\x40\xf6\x7d\x4b\x85\xdc\xb5\x08\xad\x1c\x41\x1b\x90\xb5\x41\x2c\x81\xb5\xe3\x39\x1a\x62\x52\x75\x0c\x56\x57\x3c\x4a\x83\xa2\x24\xcb\x86\x76\x03\x3f\x13\xe8\x2b\x2b\xb2\xf0\xad\x81\x56\x20\x15\x84\xb3\x1c\x16\x79\x08\x7f\xcc\xf2\x45\x1e\x8b\xfb\xc5\xf6\x7a\x75\xb7\x85\xfb\xd9\x66\x33\x5b\x6e\x17\x97\x39\xac\x36\x30\x5f\x2d\x2f\x16\xdb\xc5\x6a\x99\xc3\xea\x0a\x66\xcb\x8f\xf0\x6e\xb1\xbc\x88\x01\x89\x1b\x34\x80\xfb\xde\x38\xee\xda\x00\x39\xe9\xb0\x4c\x45\x8e\xf8\x0c\xbc\xd2\x47\x32\xb6\xc7\x82\x2a\x2a\xa0\x95\xaa\x1e\x64\x8d\x50\xeb\x07\x34\x8a\x54\x0d\x3d\x9a\x8e\xac\x2b\x9e\x05\xa9\x4a\xd1\x52\x47\x2c\xd9\x7f\x7f\x97\x4e\x2a\xce\x32\x21\xb2\x0c\xd6\xb2\xf8\xe4\xe2\x30\x5a\x1e\x71\x67\xd1\x3c\xa0\x01\x5d\x55\x68\x2c\x48\x60\x52\x07\x18\x71\x07\xa7\x07\x6e\x24\x1f\x7f\xbb\x57\xeb\xe2\x17\xbe\x03\x52\xd1\xff\x28\x92\x10\xd4\xf5\xda\x30\x44\x22\x08\xab\x8e\x43\x11\x84\xad\xae\xdd\xa1\x90\x33\x57\xe2\x50\x88\x20\xac\x89\x9b\x61\x97\x16\xba\xcb\x6c\x5f\xbd\x7c\x9d\x15\x7a\x67\x64\x28\x26\x9e\xe4\xbc\x2b\xb7\x68\xf9\xfe\x89\x1f\x59\xd7\x7f\xc7\x32\xd7\xaa\xd1\x96\x61\xee\x1c\x52\xf1\x20\xcd\xf7\xe6\x6f\xe1\x85\x8f\x97\xce\x75\xd7\x49\x55\x7e\x11\xc1\x9d\xc5\x29\x00\x84\x8e\x6d\xf2\x44\x37\x8c\x45\x90\x37\xda\xf0\x14\xc2\x9c\xa5\x61\x9f\xa5\x2b\x0b\xc2\xf5\x76\xbb\xf6\xa9\xfe\x6b\x7a\xa3\x55\x3d\x85\xff\x35\x75\xcd\xe2\xb4\xaf\xe9\x01\x15\x24\x89\x13\x24\x86\xb1\xa1\xa2\x79\xd2\x52\x1d\x8e\x83\x74\xaa\x30\x96\xae\x47\x9d\xd3\xdd\xe6\x06\x7a\xc9\x4d\x0c\x54\x01\x31\xe0\x9e\x2c\xdb\xd4\xc1\xcf\x4c\x6d\xa7\x00\xc7\xd4\x6e\xe5\x9e\xba\xa1\x5b\xba\xcb\xe8\x7c\x12\x8b\x60\x33\x28\x97\x62\x27\x49\xc5\xe2\x51\x78\x69\x22\x11\xf8\x72\x90\x62\xa7\x6d\x35\xa8\x02\x48\x11\x47\x13\xf8\x22\x82\xff\x0a\x97\x5e\xb5\xb2\xb6\xd1\x24\x5d\x28\x7e\x2f\x4d\xf4\xe2\xc8\x3c\x74\x47\x18\xc3\x6f\xe7\x31\x84\x6b\x17\x4e\x0d\xdd\x0e\x4d\x1a\x4e\x1c\x8e\x0f\xea\x50\xa3\xa2\x2b\xe1\xec\x99\xf2\x31\x48\x53\x5b\xf8\xeb\x6f\x37\x49\xaa\xf6\xa8\x95\x85\xe9\x5b\x3f\xed\x69\xce\x86\xfa\xb5\xc1\x8a\xf6\x51\x98\x85\xf1\xf1\xf6\x8a\x5a\xcc\x3d\xa1\xc8\x7f\x5f\x90\x71\xaf\x93\xc9\x44\x88\xc0\xdf\x5c\x4b\x55\xb6\x78\x35\xa8\xe2\xe8\xe6\x28\x44\xe3\xd1\x7b\x83\xb6\xd7\xca\xe2\xbd\x21\x46\x13\x83\x81\xb3\xd3\xfd\xe7\x01\x2d\x7b\x0a\xc1\x98\x5e\xa3\x2c\xd1\x44\x93\x34\x47\x8e\xc2\xb9\xdb\x37\xc9\x5c\x2b\x36\xba\x0d\x5d\xca\x86\x1e\x24\x63\x38\x11\x41\x90\x65\xb0\x44\x2c\xb1\xf4\x73\xd9\xea\x42\xb6\xd0\x1b\xbd\x3f\xb8\xd5\xf2\xed\xe2\x5d\x2f\x9e\xe6\x46\xc3\xa8\xcd\xa7\xf4\x07\x50\xb3\xa2\x40\x6b\xbf\x62\x25\xb3\xb6\xd5\x63\xb2\x32\x54\x93\x72\xc0\x67\x1e\xf2\xa7\x9c\xe6\x06\x4b\x54\x4c\xb2\xb5\xce\x93\xcd\x80\x3f\xef\x7c\x8b\xdc\xe8\xd2\x3b\xfe\x79\xb9\x8d\x61\xbd\xca\xb7\x31\xac\xd6\x7e\x71\xfd\x7c\x98\xa3\x89\x0f\x73\xb1\xdc\xc6\x1f\x92\xdb\x7d\xb2\xc1\xcf\x5b\xfd\x09\x55\xfc\x0e\xb1\x4f\x66\x2d\x3d\x60\x7c\x67\xd1\x24\xb3\x1a\x15\xc7\x1f\x92\x53\x29\xb0\x4c\xee\x89\x9b\xf8\x99\xf8\xb1\x3b\x51\x71\xb2\x3d\xf4\x4f\xf2\x5f\x90\xf5\x8b\x7d\x51\x25\xb7\xba\xf4\xf3\x92\xe4\xe4\xfe\x73\xac\x86\xa1\x2f\x25\x63\x52\x62\xa7\x81\xac\xfa\x95\x61\x67\x1c\xbc\xdb\x16\xaf\xcf\xdf\x58\x11\x04\xe6\x94\x4a\x7a\x81\x6d\x14\x7e\x17\xc5\xc3\x54\x36\xf5\x4d\xe7\x86\x39\x1a\x63\x30\x13\x11\x3c\xba\x8e\xab\x35\xb4\xba\x4e\xaf\x24\xcb\xf6\xd8\x90\x37\x64\x19\xd5\x4c\x95\xde\x21\xaa\x3a\x4e\xf3\xde\x90\xe2\x2a\x0a\xa7\xbf\x94\x61\x0c\x6e\x62\x26\x31\x28\x6a\x7d\xd3\x5a\x6c\xb1\x60\xf8\xf2\x28\x1e\xc5\x3f\x01\x00\x00\xff\xff\xbc\x81\x8d\x15\xc0\x07\x00\x00") - -func testImagesAgnhostTestWebserverTestWebserverGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostTestWebserverTestWebserverGo, - "test/images/agnhost/test-webserver/test-webserver.go", - ) -} - -func testImagesAgnhostTestWebserverTestWebserverGo() (*asset, error) { - bytes, err := testImagesAgnhostTestWebserverTestWebserverGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/test-webserver/test-webserver.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostWebhookAddlabelGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x53\x41\x6f\xdb\x38\x13\x3d\x8b\xbf\x62\xaa\x43\x61\x07\xae\x94\xe4\x54\xf8\x83\x0f\xfe\xd2\x14\xeb\x6d\xd6\x5e\xd8\x4e\x8a\x22\x08\x90\x91\x38\x96\x98\xd0\x24\x4b\x52\x56\x85\xc0\xff\x7d\x41\xc6\xde\xb5\x37\x29\x36\x87\xea\x26\xf2\xcd\xbc\x37\x6f\x1e\xf3\x13\x76\xa1\x4d\x67\x45\x55\x7b\x38\x3f\x3d\xfb\x08\xcb\x9a\xe0\x4b\x53\x90\x55\xe4\xc9\xc1\xb8\xf1\xb5\xb6\x2e\x63\xec\x4a\x94\xa4\x1c\x71\x68\x14\x27\x0b\xbe\x26\x18\x1b\x2c\x6b\x82\xdd\xcd\x00\x6e\xc8\x3a\xa1\x15\x9c\x67\xa7\xd0\x0b\x80\x74\x77\x95\xf6\xff\xc7\x3a\xdd\xc0\x1a\x3b\x50\xda\x43\xe3\x08\x7c\x2d\x1c\xac\x84\x24\xa0\x1f\x25\x19\x0f\x42\x41\xa9\xd7\x46\x0a\x54\x25\x41\x2b\x7c\x1d\x49\x76\x2d\x32\xf6\x6d\xd7\x40\x17\x1e\x85\x02\x84\x52\x9b\x0e\xf4\xea\x10\x05\xe8\x19\x03\x00\xa8\xbd\x37\xc3\x3c\x6f\xdb\x36\xc3\xa8\x32\xd3\xb6\xca\xe5\x33\xca\xe5\x57\x93\x8b\xcb\xe9\xe2\xf2\xc3\x79\x76\xca\xd8\xb5\x92\xe4\x1c\x58\xfa\xde\x08\x4b\x1c\x8a\x0e\xd0\x18\x29\x4a\x2c\x24\x81\xc4\x16\xb4\x05\xac\x2c\x11\x07\xaf\x83\xce\xd6\x0a\x2f\x54\x35\x00\xa7\x57\xbe\x45\x4b\x8c\x0b\xe7\xad\x28\x1a\x7f\x64\xd0\x5e\x95\x70\x70\x08\xd0\x0a\x50\x41\x3a\x5e\xc0\x64\x91\xc2\xff\xc7\x8b\xc9\x62\xc0\xbe\x4e\x96\xbf\xcd\xae\x97\xf0\x75\x3c\x9f\x8f\xa7\xcb\xc9\xe5\x02\x66\x73\xb8\x98\x4d\x3f\x4d\x96\x93\xd9\x74\x01\xb3\xcf\x30\x9e\x7e\x83\x2f\x93\xe9\xa7\x01\x90\xf0\x35\x59\xa0\x1f\xc6\x06\xed\xda\x82\x08\xd6\x11\xcf\xd8\x82\xe8\x88\x7c\xa5\x9f\xc5\x38\x43\xa5\x58\x89\x12\x24\xaa\xaa\xc1\x8a\xa0\xd2\x1b\xb2\x4a\xa8\x0a\x0c\xd9\xb5\x70\x61\x79\x0e\x50\x71\x26\xc5\x5a\x78\xf4\xf1\xff\xc5\x38\x19\x3b\xc9\x19\x33\x58\x3e\x86\x26\x2d\x15\xb5\xd6\x8f\x8c\x89\xb5\xd1\xd6\x43\x8f\x25\x29\xa9\x52\x73\xa1\xaa\xfc\xc1\x69\x95\x32\x96\xa4\x8f\x1f\x5d\x26\x74\x8e\x46\xe4\xc8\x77\x54\xf9\xe6\x2c\x65\xc9\x9a\x3c\x6e\xce\xe0\x00\xb1\xc6\xb2\x16\x8a\x6c\x97\x9b\xc7\x2a\x1c\xb8\x3c\x80\x9e\xe1\x7b\xdc\xa3\xd4\x55\xbe\x39\x4f\x59\x9f\xb1\x52\x2b\x17\x89\x91\xf3\xcf\xc2\x3a\x7f\x85\x05\xc9\x3f\xd1\x97\x35\x04\xd7\x55\x05\x23\xb8\xbf\x8d\xc1\x88\xdf\x13\xa4\xda\xa4\x43\x48\x91\xf3\x74\x00\xa9\x41\x5f\x87\xdf\xc8\xc3\xd1\x63\x2e\x43\x07\x17\xee\x36\x28\x1b\x4a\x87\xf0\x14\xc0\xc4\x3f\xc4\x9b\x00\xee\xc8\xa5\xdb\xed\x73\xd3\xbb\xfb\x48\x3e\xe6\x5c\x04\xd3\x50\xfe\x2a\x05\xf9\x21\xe9\x81\x9a\xc8\x0e\x07\xec\x8d\xe1\xe8\xe9\xcd\xb4\x96\x8c\xc4\x92\x7e\x05\x75\x9f\xb1\x3c\x87\x31\xe7\x80\x10\xc1\x3f\xb1\x2a\xbc\x9d\x90\x22\x5d\x3c\x50\xe9\xd9\xaa\x51\x25\x20\xe7\x51\x72\x0f\x2d\x6c\xce\xb2\xf1\x3e\x1a\x73\xda\x08\x6a\xfb\x70\x72\x7c\xe8\x8c\x0e\x89\x7e\x62\x49\x58\x7f\x76\xd3\x3b\xef\x67\x13\xb5\xd2\xbd\xb4\x44\x29\xc3\xb8\xc8\xf7\xb4\x7d\x96\xe8\xe2\x01\x86\xa3\xe0\x44\x53\xfa\x50\xb5\x0b\x5b\x36\x8b\x12\xfe\x20\x8f\x70\x1f\x22\x3a\x4c\xf7\xb3\x0f\xf4\x5a\x78\x5a\x1b\xdf\xa5\xf7\x2c\xd9\x3e\x6d\x59\x62\xb1\x0d\x5d\xd0\x66\x73\xfa\xde\x90\xf3\xbb\xf2\x6c\x8e\x2d\x4b\xc8\xda\x70\x1b\xba\x64\xd7\x6a\x8d\xd6\xd5\x28\x7b\x16\xdb\x01\xbc\xd7\xc5\x43\x9f\x25\x62\x05\x01\xf4\x6e\x04\x4a\xc8\xa8\x22\x8a\xbf\xb4\x56\xdb\x1e\x59\xdb\x67\x49\x62\xc9\x37\x56\x81\xd7\x37\x67\x2f\xc6\xdd\x61\xb6\x8c\x25\x36\xda\xf2\xb7\x0f\xc3\x11\xbc\xe6\x4f\x14\x7d\x84\xcc\xc6\x52\xea\x96\x38\x8c\xc0\xdb\x86\x18\x4b\x8c\xdf\x55\xc7\xb0\x2c\x3b\x43\xbf\x2f\x66\xd3\xf8\xc3\x92\x68\xe0\x4d\x58\xf7\x00\x6a\x74\x71\x43\x01\xae\x8b\x87\x03\xeb\xb2\x78\xee\x6e\x8f\x96\x7d\xc7\x12\xd7\x8a\x90\xbf\x27\x96\x94\xe8\x08\x24\xa9\xde\xab\x85\x7d\x18\x8d\xe0\x74\x18\xa7\x3f\x12\xfb\x9c\xdf\x11\xdc\xde\x15\x9d\xa7\xde\xcb\x47\xdd\xff\x49\x4d\x18\x03\x46\xf0\xde\xf8\x1d\xf7\xbb\xbd\xfa\x37\xb1\xbc\xf6\x7a\xdf\x4c\xf5\x8f\x67\x61\xd3\x31\xf1\xff\x4d\xfa\xef\x47\xfb\x16\x36\x4e\x2b\x6c\xa4\x0f\xcd\xf3\x1c\x50\x5a\x42\xde\x81\x23\x1f\x22\xb2\x0f\xd2\xfb\xe3\x2e\x6c\xcb\xfe\x0a\x00\x00\xff\xff\x2a\xc0\xc9\x38\xea\x07\x00\x00") - -func testImagesAgnhostWebhookAddlabelGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostWebhookAddlabelGo, - "test/images/agnhost/webhook/addlabel.go", - ) -} - -func testImagesAgnhostWebhookAddlabelGo() (*asset, error) { - bytes, err := testImagesAgnhostWebhookAddlabelGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/webhook/addlabel.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostWebhookAddlabel_testGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa4\x54\x61\x6f\xdb\x36\x10\xfd\x2c\xfe\x8a\xab\x86\x0e\x72\xe0\x52\x4d\x3f\x6d\x1e\xf2\xc1\x4b\x52\xcc\x68\x6b\x0f\xb6\xbb\xa2\xe8\x8a\x81\xa6\x4e\x12\x13\x89\x64\xc9\x93\x15\x23\xf0\x7f\x1f\x28\xc9\x4d\xbc\xa4\xdb\xb2\x05\x88\x21\xf1\xde\xbd\xf7\xee\x74\xc7\xf4\x84\x9d\x1b\xbb\x73\xaa\x28\x09\x5e\xbd\x3c\xfd\x11\xd6\x25\xc2\x9b\x66\x83\x4e\x23\xa1\x87\x69\x43\xa5\x71\x9e\x33\xf6\x56\x49\xd4\x1e\x33\x68\x74\x86\x0e\xa8\x44\x98\x5a\x21\x4b\x84\x21\x32\x86\xdf\xd0\x79\x65\x34\xbc\xe2\x2f\x21\x09\x80\x78\x08\xc5\xa3\x9f\xd8\xce\x34\x50\x8b\x1d\x68\x43\xd0\x78\x04\x2a\x95\x87\x5c\x55\x08\x78\x23\xd1\x12\x28\x0d\xd2\xd4\xb6\x52\x42\x4b\x84\x56\x51\xd9\x89\x0c\x14\x9c\x7d\x1c\x08\xcc\x86\x84\xd2\x20\x40\x1a\xbb\x03\x93\xdf\x47\x81\x20\xc6\x00\x00\x4a\x22\x3b\x49\xd3\xb6\x6d\xb9\xe8\x5c\x72\xe3\x8a\xb4\xea\x51\x3e\x7d\x3b\x3b\xbf\x9c\xaf\x2e\x5f\xbc\xe2\x2f\x19\x7b\xaf\x2b\xf4\x1e\x1c\x7e\x69\x94\xc3\x0c\x36\x3b\x10\xd6\x56\x4a\x8a\x4d\x85\x50\x89\x16\x8c\x03\x51\x38\xc4\x0c\xc8\x04\x9f\xad\x53\xa4\x74\x31\x06\x6f\x72\x6a\x85\x43\x96\x29\x4f\x4e\x6d\x1a\x3a\x6a\xd0\xc1\x95\xf2\x70\x1f\x60\x34\x08\x0d\xf1\x74\x05\xb3\x55\x0c\x3f\x4f\x57\xb3\xd5\x98\x7d\x98\xad\x7f\x59\xbc\x5f\xc3\x87\xe9\x72\x39\x9d\xaf\x67\x97\x2b\x58\x2c\xe1\x7c\x31\xbf\x98\xad\x67\x8b\xf9\x0a\x16\xaf\x61\x3a\xff\x08\x6f\x66\xf3\x8b\x31\xa0\xa2\x12\x1d\xe0\x8d\x75\xc1\xbb\x71\xa0\x42\xeb\x30\xe3\x6c\x85\x78\x24\x9e\x9b\xde\x8c\xb7\x28\x55\xae\x24\x54\x42\x17\x8d\x28\x10\x0a\xb3\x45\xa7\x95\x2e\xc0\xa2\xab\x95\x0f\x1f\xcf\x83\xd0\x19\xab\x54\xad\x48\x50\xf7\xfe\xa0\x1c\xce\x4e\x52\xc6\xac\x90\xd7\x81\xa4\xc5\x4d\x69\xcc\x35\x63\xaa\xb6\xc6\x11\x24\x2c\x8a\x51\x4b\x93\x29\x5d\xa4\x57\xde\xe8\x98\x45\xb1\xc3\xbc\x42\x49\xe1\x91\xd0\x87\xde\xc5\x8c\x45\x21\x6a\x05\xc9\x12\xe2\x42\x51\xd9\x6c\xb8\x34\x75\x8a\x5b\xa1\x6d\x79\xd3\xe5\xbe\xe8\xc2\x21\xed\xfa\x07\xcf\x95\x49\x85\x55\xa9\xc8\x06\xaf\xe9\xf6\x34\x66\x91\x34\x0e\xb7\xa7\x70\x1f\x11\x8e\xfa\x60\x8d\x24\x8e\x83\xb5\x90\xa5\xd2\xe8\x76\xa9\xbd\x2e\xc2\x81\x4f\x03\xa8\x87\x7f\x13\xe7\x1a\x4d\xaa\xc6\x98\x8d\x18\xcb\x1b\x2d\x61\x8d\x9e\xa6\x59\xf6\x56\x6c\xb0\x4a\x08\x4e\x86\xb2\xf8\x7a\x04\xb7\x2c\x0a\x6f\xe7\xc2\xa3\x87\xc9\x19\x7c\xfa\xec\xc9\x35\x92\x42\x20\xd2\xa2\x46\xb8\xfb\x0b\x43\xa1\x0b\x16\x45\x4a\x2b\x52\xa2\xea\xf8\x3c\x40\x2d\xec\xa7\x3e\xf6\xf9\x2b\x04\x6f\x2c\x4a\xc2\x6c\xc0\x3c\x02\xd9\x07\x85\xf0\xdf\xc9\x4c\xee\xe9\xc4\x22\xcb\x20\x57\xce\x13\x54\x21\x3d\x1e\x07\xd4\x91\xe8\x04\x40\xab\xaa\x3b\x3f\x56\x9a\x3c\x94\xba\x0d\x7c\x98\xbd\xe8\xb9\x26\x10\xef\xd0\xc7\xfb\x90\xdb\xfd\x7c\xdb\x82\x47\x69\x74\xf6\x77\x1e\x1e\xd1\x32\x61\xd6\x1f\xd1\xfa\x37\x3e\x1f\xc9\x1d\xc3\x7f\x71\xaf\x32\xac\xad\x21\xd4\x04\x8d\xcd\x04\xe1\x13\x8b\xf8\x96\xe4\xff\x6d\xf6\x9e\xb1\x28\xac\xf8\x1f\x63\x20\x19\xc6\xcd\x09\x5d\x20\xdc\x4d\x60\x28\x87\xf8\xb2\xd1\x09\x49\x1e\xca\x1a\x43\x98\xe0\x87\x43\x1b\x45\xe1\x0a\x44\x4f\x81\xa5\xdf\x2a\x7e\x6e\x74\xae\x8a\x77\xc2\xde\x2e\x36\x57\x28\xe9\x1d\x92\x98\x40\xbf\x55\xfc\xee\xe8\xf6\x60\x9e\x24\x3f\xea\xc5\x7e\xdf\xf1\x8a\x76\x0c\xe8\x5c\x20\x0e\x6b\xcd\xdf\x09\xe7\x4b\x51\x25\x83\xe0\xa8\xeb\x61\xde\x41\x9e\x9d\x85\x31\xec\xfd\x44\xc4\x5f\x0b\x12\x55\x82\xce\x75\x98\x9e\x0d\xb7\x0a\xdb\xc0\xb5\x3d\xe5\xd3\xc3\x65\xb0\xec\x4e\x6f\x97\x3d\xe3\x04\xbe\x3f\x0e\x76\xa7\x43\x11\x13\x18\xd6\x99\x2f\x45\x7b\x79\x43\xa8\x03\xe6\x76\x29\xda\x09\x38\xd1\xee\x07\xd3\xe8\xad\x09\x17\xe8\xe4\x0c\xc4\x61\xd3\x7b\xed\x83\xdf\x03\x84\xff\xda\xdd\x62\x47\xd6\xbb\x9b\x6b\xb1\xb9\x3a\x2a\xbc\x3b\xe4\x17\x28\x4d\x86\x5d\x4e\xf2\xe9\xf3\x66\x47\x98\x1c\x33\x8d\x3a\x81\x47\x3b\xf2\xa0\x25\x7d\x4f\xee\x5a\x7c\x06\x07\x65\x3e\xb5\xb6\xda\x25\x4e\xb4\x4f\xa6\x0b\x43\x15\x45\x66\x73\xb5\xde\xd9\xae\x01\xc3\x05\xce\xc3\xfb\x22\x3f\xfa\x6e\x01\x35\x0c\xcd\x01\x35\xc7\x36\x19\x92\x47\x7c\xa6\x09\x5d\x2e\x24\x26\x1d\xbc\xf7\xd8\x4d\xc1\x7b\x5d\x1f\xe6\x20\xb8\x1f\x88\x9e\x36\x0c\x42\x52\x23\xaa\x20\x3e\xa4\xf3\xe4\xe4\xaf\xb3\x7b\x60\x7c\x76\xf0\x77\x81\x68\x2f\xbf\x34\xa2\x4a\xfa\x74\xde\x0f\x6b\xd8\x20\x7e\xbc\x8e\xa3\xaf\xda\x97\xce\x19\x97\x27\xf1\xef\xfa\x80\x80\xe7\xdf\x6d\xc7\x50\x18\xea\x1f\xba\xb6\x4f\xe0\xf9\x36\x1e\xc3\x3f\xd1\x8e\x87\x8b\xff\xd1\xef\x1e\xea\xda\x8f\xc2\x66\xef\xd9\x9f\x01\x00\x00\xff\xff\xdd\x8c\x48\xdf\xa1\x09\x00\x00") - -func testImagesAgnhostWebhookAddlabel_testGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostWebhookAddlabel_testGo, - "test/images/agnhost/webhook/addlabel_test.go", - ) -} - -func testImagesAgnhostWebhookAddlabel_testGo() (*asset, error) { - bytes, err := testImagesAgnhostWebhookAddlabel_testGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/webhook/addlabel_test.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostWebhookAlwaysallowGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x52\x5d\x6f\xdb\x36\x14\x7d\x36\x7f\xc5\x81\x1e\x0a\x3b\x48\xa4\xc4\x40\x81\x2d\x43\x1e\xb4\x24\xc5\x84\x76\x36\x60\xb9\x2d\xfa\x48\x4b\xd7\xd2\x85\x29\x92\x23\x29\xab\x46\xd0\xff\x3e\x50\x72\x86\x64\x29\xfa\x64\x93\xf7\xe8\x7c\xdc\xc3\xec\x42\xdc\x1b\x7b\x72\xdc\xb4\x01\xcb\xeb\x9b\xdf\xb1\x6d\x09\x1f\xfb\x1d\x39\x4d\x81\x3c\xf2\x3e\xb4\xc6\xf9\x54\x88\x4f\x5c\x91\xf6\x54\xa3\xd7\x35\x39\x84\x96\x90\x5b\x59\xb5\x84\xf3\xe4\x12\x5f\xc8\x79\x36\x1a\xcb\xf4\x1a\xf3\x08\x48\xce\xa3\x64\xf1\x87\x38\x99\x1e\x9d\x3c\x41\x9b\x80\xde\x13\x42\xcb\x1e\x7b\x56\x04\xfa\x5e\x91\x0d\x60\x8d\xca\x74\x56\xb1\xd4\x15\x61\xe0\xd0\x8e\x22\x67\x8a\x54\x7c\x3b\x13\x98\x5d\x90\xac\x21\x51\x19\x7b\x82\xd9\xbf\x44\x41\x06\x21\x00\xa0\x0d\xc1\xde\x66\xd9\x30\x0c\xa9\x1c\x5d\xa6\xc6\x35\x99\x9a\x50\x3e\xfb\x54\xdc\x3f\xae\xca\xc7\xab\x65\x7a\x2d\xc4\x67\xad\xc8\x7b\x38\xfa\xa7\x67\x47\x35\x76\x27\x48\x6b\x15\x57\x72\xa7\x08\x4a\x0e\x30\x0e\xb2\x71\x44\x35\x82\x89\x3e\x07\xc7\x81\x75\x73\x09\x6f\xf6\x61\x90\x8e\x44\xcd\x3e\x38\xde\xf5\xe1\xd5\x82\x9e\x5d\xb1\xc7\x4b\x80\xd1\x90\x1a\x49\x5e\xa2\x28\x13\xfc\x99\x97\x45\x79\x29\xbe\x16\xdb\xbf\xd6\x9f\xb7\xf8\x9a\x6f\x36\xf9\x6a\x5b\x3c\x96\x58\x6f\x70\xbf\x5e\x3d\x14\xdb\x62\xbd\x2a\xb1\xfe\x80\x7c\xf5\x0d\x1f\x8b\xd5\xc3\x25\x88\x43\x4b\x0e\xf4\xdd\xba\xe8\xdd\x38\x70\x5c\x1d\xd5\xa9\x28\x89\x5e\x89\xef\xcd\x64\xc6\x5b\xaa\x78\xcf\x15\x94\xd4\x4d\x2f\x1b\x42\x63\x8e\xe4\x34\xeb\x06\x96\x5c\xc7\x3e\x96\xe7\x21\x75\x2d\x14\x77\x1c\x64\x18\xcf\x6f\xe2\xa4\xe2\x22\x13\xc2\xca\xea\x10\x49\x06\xda\xb5\xc6\x1c\x84\xe0\xce\x1a\x17\x30\x17\xb3\x24\x70\x47\x89\x10\xb3\xe4\xf0\x9b\x4f\xd9\x64\xd2\x72\x26\xeb\xb3\x42\x76\xbc\x49\xc4\xac\xa3\x20\x8f\x37\x78\x81\xe8\x64\xd5\xb2\x26\x77\xca\xec\xa1\x89\x17\x3e\x8b\xa0\x09\xfe\x8c\x3b\x28\xd3\x64\xc7\x65\x22\x16\x42\x64\x19\xa4\x1a\xe4\xc9\xe7\x4a\x99\xe1\x81\x94\x3c\x7d\xe0\x23\x95\x54\x19\x5d\x7b\x78\x45\x64\xfd\x18\x7f\xcf\x47\x82\x3f\xdf\x4b\x5d\x43\xc6\x2f\x7c\xfc\x19\x6b\x27\x1f\x3c\x3a\x59\x53\xec\x77\x7a\x98\xbd\xae\x62\xfc\x54\xc4\x7f\xbf\xd2\x99\x4b\x87\xe3\x4d\x9a\x3f\xc7\xdb\xd0\x91\x69\x58\xe0\xe2\xf5\xa5\xb7\x26\x96\xf1\x24\x66\x31\x42\xfa\x65\xbe\x5c\xa4\x85\xde\x9b\x79\x32\x71\x5f\x8d\x96\xae\xe2\xb3\xbf\xaa\xa3\xc4\xe4\x3f\x96\x13\x13\xbc\x7f\xb6\x9f\x2c\xc4\x2c\xae\x37\x2d\xe3\x78\xfe\x1e\x17\x98\x8e\xe3\x78\xf1\x96\xbe\x92\x4a\x45\x96\x97\x32\x91\xc4\x8d\x3e\xff\x33\x76\x7b\x87\x9f\x19\x7e\xfa\xf1\x7f\x64\x3a\x6e\x81\x6a\xdc\x21\xb8\x9e\xde\x8c\x37\xe4\x7b\x15\x70\x87\x77\x53\xc5\x69\x19\x64\xe8\xfd\xd3\xdf\xe4\xbd\x6c\xe8\x16\xc9\xb8\xe0\xf3\xb3\xf9\x59\x13\xc9\xa8\x19\x7a\xa7\xf1\xee\x35\xb9\xf8\x21\xfe\x0d\x00\x00\xff\xff\xf1\xee\x8b\x02\xb2\x04\x00\x00") - -func testImagesAgnhostWebhookAlwaysallowGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostWebhookAlwaysallowGo, - "test/images/agnhost/webhook/alwaysallow.go", - ) -} - -func testImagesAgnhostWebhookAlwaysallowGo() (*asset, error) { - bytes, err := testImagesAgnhostWebhookAlwaysallowGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/webhook/alwaysallow.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostWebhookAlwaysdenyGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x92\x41\x6f\xeb\x36\x10\x84\xcf\xe6\xaf\x18\xe8\xf0\x60\x07\x7e\x52\xec\xd3\x43\x8a\x1c\xd4\x24\x45\x85\xa4\x36\x60\x39\x09\x72\x5c\x4b\x6b\x89\x30\x45\xb2\x24\x65\x45\x08\xf2\xdf\x0b\xd9\x4e\x61\x37\xbd\x49\xdc\x8f\xb3\xb3\xb3\x4c\xae\xc4\x9d\xb1\xbd\x93\x55\x1d\x30\xbf\x9e\xfd\xc2\xba\x66\x3c\xb6\x1b\x76\x9a\x03\x7b\xa4\x6d\xa8\x8d\xf3\xb1\x10\x4f\xb2\x60\xed\xb9\x44\xab\x4b\x76\x08\x35\x23\xb5\x54\xd4\x8c\x53\x65\x8a\x17\x76\x5e\x1a\x8d\x79\x7c\x8d\xf1\x00\x44\xa7\x52\x34\xf9\x4d\xf4\xa6\x45\x43\x3d\xb4\x09\x68\x3d\x23\xd4\xd2\x63\x2b\x15\x83\xdf\x0b\xb6\x01\x52\xa3\x30\x8d\x55\x92\x74\xc1\xe8\x64\xa8\x0f\x4d\x4e\x12\xb1\x78\x3b\x09\x98\x4d\x20\xa9\x41\x28\x8c\xed\x61\xb6\xe7\x14\x28\x08\x01\x00\x75\x08\xf6\x26\x49\xba\xae\x8b\xe9\xe0\x32\x36\xae\x4a\xd4\x91\xf2\xc9\x53\x76\xf7\xb0\xc8\x1f\x7e\xce\xe3\x6b\x21\x9e\xb5\x62\xef\xe1\xf8\xef\x56\x3a\x2e\xb1\xe9\x41\xd6\x2a\x59\xd0\x46\x31\x14\x75\x30\x0e\x54\x39\xe6\x12\xc1\x0c\x3e\x3b\x27\x83\xd4\xd5\x14\xde\x6c\x43\x47\x8e\x45\x29\x7d\x70\x72\xd3\x86\x8b\x80\xbe\x5c\x49\x8f\x73\xc0\x68\x90\x46\x94\xe6\xc8\xf2\x08\xbf\xa7\x79\x96\x4f\xc5\x6b\xb6\xfe\x73\xf9\xbc\xc6\x6b\xba\x5a\xa5\x8b\x75\xf6\x90\x63\xb9\xc2\xdd\x72\x71\x9f\xad\xb3\xe5\x22\xc7\xf2\x0f\xa4\x8b\x37\x3c\x66\x8b\xfb\x29\x58\x86\x9a\x1d\xf8\xdd\xba\xc1\xbb\x71\x90\x43\x74\x5c\xc6\x22\x67\xbe\x68\xbe\x35\x47\x33\xde\x72\x21\xb7\xb2\x80\x22\x5d\xb5\x54\x31\x2a\xb3\x67\xa7\xa5\xae\x60\xd9\x35\xd2\x0f\xcb\xf3\x20\x5d\x0a\x25\x1b\x19\x28\x1c\xfe\xbf\x8d\x13\x8b\xab\x44\x08\x4b\xc5\x6e\x10\xe9\x78\x53\x1b\xb3\x13\x42\x36\xd6\xb8\x80\xb1\x18\x45\xbb\x5f\x3e\x96\x26\x21\x2b\x13\x2a\x4f\xc2\xc9\x7e\x16\x89\x51\xc3\x81\xf6\x33\x9c\x11\x0d\x15\xb5\xd4\xec\xfa\xc4\xee\xaa\xe1\xc0\x27\x03\x74\xc4\xbf\xb8\x9d\x32\x55\xb2\x9f\x47\x62\x22\x44\x92\x80\x54\x47\xbd\xbf\x67\xdd\x83\x94\x3a\x6c\x8e\x7d\xf0\x68\xa8\xe4\x61\x45\xc7\xb7\xd5\xea\x62\x98\x20\x16\xc3\xd7\xd9\x9d\x31\x39\xec\x67\x71\xfa\xe5\x6c\xc5\x7b\xc9\xdd\x04\x57\x97\x87\xde\x9a\x21\xbe\x0f\x31\x1a\xba\xc7\x2f\xe3\xf9\x24\xce\xf4\xd6\x8c\xa3\x82\x94\x1a\x52\x3b\x4a\xfe\x2c\x59\xf7\xd1\x44\x8c\xdc\x41\xe7\xdf\x8b\x37\xb7\xf8\x3f\xc1\x8f\xcf\xff\x92\x71\xaa\x94\xe9\xb8\xc4\x2d\xb6\xa4\x3c\x7f\xab\xaf\xd8\xb7\x2a\xe0\x16\x3f\x8e\xf1\xc5\x79\xa0\xd0\xfa\x8f\xbf\xd8\x7b\xaa\xf8\x06\xd1\x61\xe0\xd3\x26\x50\xb2\x96\xec\x2f\x92\x89\x0e\x4d\x43\xeb\x34\x7e\x5c\x8a\x8b\x4f\xf1\x4f\x00\x00\x00\xff\xff\x4c\x4c\xc1\x4f\x05\x04\x00\x00") - -func testImagesAgnhostWebhookAlwaysdenyGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostWebhookAlwaysdenyGo, - "test/images/agnhost/webhook/alwaysdeny.go", - ) -} - -func testImagesAgnhostWebhookAlwaysdenyGo() (*asset, error) { - bytes, err := testImagesAgnhostWebhookAlwaysdenyGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/webhook/alwaysdeny.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostWebhookConfigGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x93\x41\x6f\xe3\x36\x10\x85\xcf\x9a\x5f\xf1\xea\x43\x11\x07\xae\x94\x06\x28\xb0\x4d\xb1\x07\xd7\x49\x50\x23\x81\x5d\x44\xde\xdd\x2e\x8a\x1e\x68\x69\x24\x11\xa6\x49\x95\x1c\x45\x2b\x04\xf9\xef\x05\x25\x05\xbb\x8b\xde\x24\xce\xf0\x7b\x8f\x8f\xc3\xec\x92\x36\xae\x1d\xbc\xae\x1b\xc1\xf5\xd5\xcf\xef\x70\x68\x18\x0f\xdd\x91\xbd\x65\xe1\x80\x75\x27\x8d\xf3\x21\x25\x7a\xd4\x05\xdb\xc0\x25\x3a\x5b\xb2\x87\x34\x8c\x75\xab\x8a\x86\x31\x57\x56\xf8\xc8\x3e\x68\x67\x71\x9d\x5e\xe1\x22\x36\x2c\xe6\xd2\x62\xf9\x1b\x0d\xae\xc3\x59\x0d\xb0\x4e\xd0\x05\x86\x34\x3a\xa0\xd2\x86\xc1\x5f\x0a\x6e\x05\xda\xa2\x70\xe7\xd6\x68\x65\x0b\x46\xaf\xa5\x19\x45\x66\x44\x4a\x9f\x67\x80\x3b\x8a\xd2\x16\x0a\x85\x6b\x07\xb8\xea\xdb\x2e\x28\x21\x02\x80\x46\xa4\xbd\xc9\xb2\xbe\xef\x53\x35\xba\x4c\x9d\xaf\x33\x33\x75\x85\xec\x71\xbb\xb9\xdb\xe5\x77\x3f\x5d\xa7\x57\x44\x1f\xac\xe1\x10\xe0\xf9\xdf\x4e\x7b\x2e\x71\x1c\xa0\xda\xd6\xe8\x42\x1d\x0d\xc3\xa8\x1e\xce\x43\xd5\x9e\xb9\x84\xb8\xe8\xb3\xf7\x5a\xb4\xad\x57\x08\xae\x92\x5e\x79\xa6\x52\x07\xf1\xfa\xd8\xc9\x77\x01\xbd\xb9\xd2\x01\xdf\x36\x38\x0b\x65\xb1\x58\xe7\xd8\xe6\x0b\xfc\xbe\xce\xb7\xf9\x8a\x3e\x6d\x0f\x7f\xec\x3f\x1c\xf0\x69\xfd\xf4\xb4\xde\x1d\xb6\x77\x39\xf6\x4f\xd8\xec\x77\xb7\xdb\xc3\x76\xbf\xcb\xb1\xbf\xc7\x7a\xf7\x19\x0f\xdb\xdd\xed\x0a\xac\xa5\x61\x0f\xfe\xd2\xfa\xe8\xdd\x79\xe8\x18\x1d\x97\x29\xe5\xcc\xdf\x89\x57\x6e\x32\x13\x5a\x2e\x74\xa5\x0b\x18\x65\xeb\x4e\xd5\x8c\xda\x3d\xb3\xb7\xda\xd6\x68\xd9\x9f\x75\x88\x97\x17\xa0\x6c\x49\x46\x9f\xb5\x28\x19\xff\xff\x77\x9c\x94\x2e\x33\xa2\x56\x15\xa7\x08\xe9\xf9\xd8\x38\x77\x22\xd2\xe7\xd6\x79\xc1\x05\x25\x8b\xc2\x0f\xad\xb8\x4c\x4c\x58\x10\x25\x8b\xd3\xbb\x90\x6a\x97\x9d\x8c\xab\xb3\xe7\xeb\x05\x2d\x89\xb2\x0c\x1b\x67\x2b\x5d\xa3\x70\x36\xde\x67\x98\x3c\xb2\x7f\x66\x3f\x0d\xcf\x0c\x5e\xa2\x60\x2f\xd1\x15\x4e\x3c\xa4\x24\x43\xcb\x6f\x7b\x83\xf8\xae\x10\xbc\x50\xb2\x61\x2f\xf7\x71\x98\x62\xca\xb6\xa6\xe4\x81\x87\xf1\xff\x6d\xe1\x95\xa8\xea\x6c\x11\xe5\x2a\x5d\x1f\x1e\xf3\x8b\xe9\x6b\x46\x2d\x71\x29\x26\xa4\x33\xf7\x85\x92\x10\x89\x2b\xb0\xf7\xb8\x79\x8f\x58\x7b\x74\xaa\xfc\xeb\x97\xab\x5f\x1f\x78\xf8\x53\x69\x3f\xef\x4f\xdf\x94\x57\x33\x3a\x9d\x95\x97\x94\xe8\x6a\xdc\xff\xc3\x7b\x58\x6d\x22\x34\x89\x11\xa4\xf7\x4a\x94\xb9\x60\xef\x97\x94\xbc\x52\xe2\x59\x3a\x6f\xf1\xe3\x57\xfd\xd8\x19\xb1\xf1\xb6\x94\x70\xb8\xc1\xdf\xff\x8c\xd5\xaf\x6b\x2f\xa3\xbf\xd7\x15\x25\x49\x96\xe1\xb0\xbf\xdd\xdf\xc4\x57\x15\x70\xee\xa4\x53\x26\x1a\x86\xaa\x84\x3d\x7a\x9e\x66\x37\x4e\x5d\xdf\x28\x99\xe2\x8c\x01\xab\x56\xcf\x79\x87\xc6\x75\xa6\x8c\x80\x74\x02\x6e\x8c\x66\x2b\xf1\xf1\xdf\x00\xe3\xe9\x9f\xa6\xd7\xb1\xb6\xe5\x47\xf6\xba\x1a\xa6\x8e\x31\xa4\x78\x8a\x57\xfa\x2f\x00\x00\xff\xff\x32\xc2\xa5\x30\x4b\x04\x00\x00") - -func testImagesAgnhostWebhookConfigGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostWebhookConfigGo, - "test/images/agnhost/webhook/config.go", - ) -} - -func testImagesAgnhostWebhookConfigGo() (*asset, error) { - bytes, err := testImagesAgnhostWebhookConfigGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/webhook/config.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostWebhookConfigmapGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x56\x51\x6f\xdb\x36\x10\x7e\x16\x7f\xc5\x55\xc0\x02\xbb\x70\xa4\xd8\x4f\x85\x0b\x3f\x78\x49\xb6\x79\xed\xec\xc1\x4e\x5a\x14\x45\xb1\x9e\xa5\x93\xc4\x59\x26\x59\x92\xb2\xea\xa5\xfe\xef\x03\x29\xdb\xb5\x93\x3a\x5b\xd1\x61\x2f\x5b\x10\x3f\x48\xf7\xf1\xee\xd3\x77\xc7\x8f\x8c\x9f\xb2\x4b\xa9\xd6\x9a\xe7\x85\x85\xde\x45\xf7\x19\xdc\x14\x04\x2f\xaa\x39\x69\x41\x96\x0c\x0c\x2b\x5b\x48\x6d\x22\xc6\x5e\xf2\x84\x84\xa1\x14\x2a\x91\x92\x06\x5b\x10\x0c\x15\x26\x05\xc1\x36\xd2\x81\x57\xa4\x0d\x97\x02\x7a\xd1\x05\xb4\x1c\x20\xdc\x86\xc2\xf6\x73\xb6\x96\x15\x2c\x71\x0d\x42\x5a\xa8\x0c\x81\x2d\xb8\x81\x8c\x97\x04\xf4\x31\x21\x65\x81\x0b\x48\xe4\x52\x95\x1c\x45\x42\x50\x73\x5b\xf8\x22\xdb\x14\x11\x7b\xb3\x4d\x20\xe7\x16\xb9\x00\x84\x44\xaa\x35\xc8\xec\x10\x05\x68\x19\x03\x00\x28\xac\x55\xfd\x38\xae\xeb\x3a\x42\xcf\x32\x92\x3a\x8f\xcb\x06\x65\xe2\x97\xa3\xcb\xeb\xf1\xec\xfa\xbc\x17\x5d\x30\x76\x2b\x4a\x32\x06\x34\x7d\xa8\xb8\xa6\x14\xe6\x6b\x40\xa5\x4a\x9e\xe0\xbc\x24\x28\xb1\x06\xa9\x01\x73\x4d\x94\x82\x95\x8e\x67\xad\xb9\xe5\x22\xef\x80\x91\x99\xad\x51\x13\x4b\xb9\xb1\x9a\xcf\x2b\x7b\x24\xd0\x8e\x15\x37\x70\x08\x90\x02\x50\x40\x38\x9c\xc1\x68\x16\xc2\xf7\xc3\xd9\x68\xd6\x61\xaf\x47\x37\x3f\x4d\x6e\x6f\xe0\xf5\x70\x3a\x1d\x8e\x6f\x46\xd7\x33\x98\x4c\xe1\x72\x32\xbe\x1a\xdd\x8c\x26\xe3\x19\x4c\x7e\x80\xe1\xf8\x0d\xbc\x18\x8d\xaf\x3a\x40\xdc\x16\xa4\x81\x3e\x2a\xed\xb8\x4b\x0d\xdc\x49\x47\x69\xc4\x66\x44\x47\xc5\x33\xd9\x90\x31\x8a\x12\x9e\xf1\x04\x4a\x14\x79\x85\x39\x41\x2e\x57\xa4\x05\x17\x39\x28\xd2\x4b\x6e\x5c\xf3\x0c\xa0\x48\x59\xc9\x97\xdc\xa2\xf5\xcf\x0f\x3e\x27\x62\x4f\x63\xc6\x14\x26\x0b\x97\xa4\xa6\x79\x21\xe5\x82\x31\xbe\x54\x52\x5b\x68\xb1\x60\xd5\x85\x70\xf1\xcc\x44\x5c\xc6\xa8\x78\x8c\xe9\x36\x77\xbc\xea\x86\x2c\x48\xa4\xa6\x7b\x08\xf7\xaa\x09\x2e\xc9\xe2\x71\x70\x89\x49\xc1\x05\xe9\x75\xac\x16\xb9\x7b\x61\x62\x07\x6a\xe0\x3b\xdc\xa2\x94\x79\xbc\xea\x85\xac\xcd\x58\x22\x85\xf1\x34\x12\x29\x32\x9e\xff\x82\xea\x57\xb4\x49\xd1\x05\xd7\x00\x91\xc3\x00\xde\xbf\xf5\x33\xe2\xff\xee\x20\x94\x2a\xec\x43\x88\x69\x1a\x76\x20\x54\x68\x0b\xf7\x18\xa7\x68\x31\x5e\x56\x8d\x0a\xe7\xc6\x62\x4e\xe7\x5d\x87\x58\x61\x59\x91\x83\xac\xc9\x84\xb0\x69\x52\xbd\x7b\x7f\xbf\x5e\xef\x1f\xa8\xd7\x7b\xac\x5e\x9b\xb1\x38\x86\x94\xc4\x1a\x9a\xca\x4b\x54\xa6\xd9\x37\xfb\x56\x2f\x68\x7d\xee\xd7\x83\x42\xae\x23\x96\x55\x22\x01\xd7\x0f\x7b\xb9\x23\x6b\x5a\xa8\x61\xd5\x8d\x86\xbb\x2e\x4d\x69\xc5\xa9\x6e\xc3\xd3\xe3\x97\x46\x49\x37\x4d\x77\x2c\x70\x62\x47\xaf\x5a\xbd\x76\x34\x12\x99\x6c\x85\x3e\x9f\xdb\x0f\x07\x3c\xc2\xf6\x81\x1e\x53\x32\xb2\xd2\x09\x41\x7f\x00\x4d\x83\xa3\x1f\xb5\xac\xd4\xd6\x2f\x76\xe1\x3b\xff\xb2\x0f\x61\xb8\xb7\x92\x3e\x84\x2b\x27\xfa\x0e\xd2\x87\xf0\xa0\xc6\x86\x05\x3c\x03\xd4\xd1\x94\x3e\x54\x64\x6c\xb4\x2f\xf4\x64\x00\x0f\xab\xdf\xb1\xa0\xe1\x7e\xad\xb5\xd4\x59\x2b\xa4\x8f\x8a\x12\x0b\x7a\x07\xb0\x12\xe6\x04\xdf\x99\xb0\xf3\x70\x75\x9b\x05\x81\x26\x5b\x69\x01\x82\x97\x2c\xd8\x30\x16\xac\x50\x83\xc6\x1a\xde\xbe\x9b\xaf\x2d\xdd\x27\x33\x51\xa4\x7d\x33\x61\x30\x70\x02\x5f\x51\x49\xb6\x61\xe1\x16\x0d\x8e\xb0\x65\x3a\x99\xff\x4e\x89\x8d\xa6\x58\xb3\x60\x03\x54\x9a\x53\xd0\x43\xdc\x4e\xe4\x25\x2a\x27\x6e\xb3\xb5\xa2\x7d\x6f\xef\x36\x2c\x48\xc9\x90\xe6\x58\xf2\x3f\x48\x37\x98\x94\x12\x13\xdd\x0a\xbe\x22\x6d\xb0\xbc\x3a\x88\xb7\xda\xfe\x23\x7e\xeb\xb8\x7f\xd2\x1e\x7f\xb8\x3e\xba\x22\xb7\xbc\xa5\xb1\xee\x38\x19\x3a\x70\xb6\xaf\xdf\x7e\xee\x57\x3c\x19\xb8\xc0\x3d\xad\x5b\xa4\xf5\x81\x80\x56\xbe\xea\x3e\x98\xac\x2d\x66\xc3\x02\xed\x07\x70\x3f\x71\xfd\x01\x7c\x69\x12\xef\x1e\x20\xa3\x61\x59\xca\x9a\x52\x18\x80\xd5\x15\xb1\xc0\x39\xdf\xa2\x03\x2b\x97\x42\xa3\xc8\xe9\xf3\x80\x46\x57\x68\xd1\xb3\xe4\x19\x2c\x5c\x87\xc2\xad\x91\x9d\x53\x8f\xce\x2d\x19\x1b\xc2\xd9\x19\xac\x8e\x42\x29\x37\xe8\x6a\xb8\x10\x0b\x82\xa0\xf5\x48\xbb\x2f\x35\xa1\x25\xf8\xf4\xe9\xb1\x99\xb8\x55\x29\x5a\x6a\x7b\x22\xa7\xbf\x26\xc3\xd2\xd0\x17\x10\x53\x32\x55\x69\x61\x00\x67\xdb\x5d\x35\xb3\x68\x2b\xe3\x93\x05\x53\x42\xe3\x37\x90\x73\xee\xcf\x53\x92\x48\xe1\x8e\x4f\x67\xeb\x35\x0a\x77\x1a\x2d\x68\xed\x3c\x1f\x1a\x9f\xe9\xb8\xc5\x1b\xd6\xfc\xbe\x46\x1b\x21\x45\xea\x26\xdc\x1d\x9a\x3e\xfc\xf7\xb6\xc2\xbf\xf4\xd5\x28\xdc\xbd\x63\x4e\xe0\x39\xba\x43\x9e\x12\x74\xd7\x10\x6e\xbf\x4a\x12\x3f\x74\x7e\x88\xcf\x8e\x69\xb1\x0d\x6b\xdc\xd5\x5b\x38\x5d\xee\x5d\xea\x9b\xed\xb5\x39\x13\xfe\x7b\xee\xea\x9c\xaf\x7f\xd2\xfa\xfe\xf7\xbd\xd3\xbe\xc7\xb3\x7b\x46\xf7\x36\x3c\xbc\x58\x68\x1b\xbe\xf3\x5b\xd7\x5f\x28\xfc\x21\x73\x9c\xcf\xdf\x5f\x60\xb0\x3d\xd7\x5a\xf7\xee\x51\x0d\xd9\xbf\xa8\xe1\x2f\x4b\xdf\x50\xa5\xd7\x6e\x86\x80\x67\x50\x92\x68\x7d\x69\x69\xdb\x69\x7e\xe1\x33\x2b\xbb\x55\xcb\x07\x6e\xd6\x8a\x7e\x9e\x4d\xc6\xfe\xe1\x44\x5d\x87\x71\x16\xa2\xec\x76\xd8\x4e\x6d\xea\x3f\x03\x00\x00\xff\xff\xdb\xd6\x49\x67\x22\x0d\x00\x00") - -func testImagesAgnhostWebhookConfigmapGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostWebhookConfigmapGo, - "test/images/agnhost/webhook/configmap.go", - ) -} - -func testImagesAgnhostWebhookConfigmapGo() (*asset, error) { - bytes, err := testImagesAgnhostWebhookConfigmapGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/webhook/configmap.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostWebhookConvertGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x56\xc1\x6e\xe3\x36\x10\x3d\x8b\x5f\x31\xf5\x21\x70\x02\x57\x8a\x73\x6a\x5d\xe4\xa0\x26\x29\x2a\x64\x6b\x17\x96\x93\x60\x8f\xb4\x34\x96\xd8\xc8\x24\x77\x48\xd9\x6b\x04\xf9\xf7\x82\x92\xac\x48\x76\xbc\xbb\x3d\x15\x2d\x36\xa7\xf8\xbd\xe7\x99\x37\x9c\x27\xca\xc1\x05\xbb\x51\x7a\x47\x22\xcb\x2d\x5c\x5d\x8e\x7f\x86\x45\x8e\x70\x5f\x2e\x91\x24\x5a\x34\x10\x96\x36\x57\x64\x7c\xc6\x3e\x88\x04\xa5\xc1\x14\x4a\x99\x22\x81\xcd\x11\x42\xcd\x93\x1c\xa1\x61\x46\xf0\x88\x64\x84\x92\x70\xe5\x5f\xc2\xd0\x09\x06\x0d\x35\x38\xff\x85\xed\x54\x09\x6b\xbe\x03\xa9\x2c\x94\x06\xc1\xe6\xc2\xc0\x4a\x14\x08\xf8\x39\x41\x6d\x41\x48\x48\xd4\x5a\x17\x82\xcb\x04\x61\x2b\x6c\x5e\x35\x69\x4a\xf8\xec\x63\x53\x40\x2d\x2d\x17\x12\x38\x24\x4a\xef\x40\xad\xba\x2a\xe0\x96\x31\x00\x80\xdc\x5a\x3d\x09\x82\xed\x76\xeb\xf3\xca\xa5\xaf\x28\x0b\x8a\x5a\x65\x82\x0f\xd1\xcd\xdd\x34\xbe\xfb\xf1\xca\xbf\x64\xec\x41\x16\x68\x0c\x10\x7e\x2a\x05\x61\x0a\xcb\x1d\x70\xad\x0b\x91\xf0\x65\x81\x50\xf0\x2d\x28\x02\x9e\x11\x62\x0a\x56\x39\x9f\x5b\x12\x56\xc8\x6c\x04\x46\xad\xec\x96\x13\xb2\x54\x18\x4b\x62\x59\xda\xde\x01\xed\x5d\x09\x03\x5d\x81\x92\xc0\x25\x0c\xc2\x18\xa2\x78\x00\xbf\x86\x71\x14\x8f\xd8\x53\xb4\xf8\x7d\xf6\xb0\x80\xa7\x70\x3e\x0f\xa7\x8b\xe8\x2e\x86\xd9\x1c\x6e\x66\xd3\xdb\x68\x11\xcd\xa6\x31\xcc\x7e\x83\x70\xfa\x11\xee\xa3\xe9\xed\x08\x50\xd8\x1c\x09\xf0\xb3\x26\xe7\x5d\x11\x08\x77\x74\x98\xfa\x2c\x46\xec\x35\x5f\xa9\xda\x8c\xd1\x98\x88\x95\x48\xa0\xe0\x32\x2b\x79\x86\x90\xa9\x0d\x92\x14\x32\x03\x8d\xb4\x16\xc6\x2d\xcf\x00\x97\x29\x2b\xc4\x5a\x58\x6e\xab\xcf\x47\xe3\xf8\xec\x22\x60\x4c\xf3\xe4\xd9\x15\xd9\xe2\x32\x57\xea\x99\x31\xb1\xd6\x8a\x2c\x0c\x99\xb7\x19\xc3\xe0\xf9\x27\xe3\x0b\x15\x70\x2d\x02\x9e\x36\xb5\x83\xcd\x78\xc0\xbc\x53\xd4\x12\x2d\x77\xfc\x1a\x2d\xef\x57\x58\xf3\x24\x17\x12\x69\x17\xe8\xe7\xcc\x01\x26\x70\xa2\xaa\xdc\x39\x63\xab\x52\x26\x90\x28\xb9\x41\xb2\xe1\xbe\xe0\x1c\x3f\x95\x68\xec\x42\x3d\x8e\x87\x04\x17\x4d\x79\xff\x90\x3f\x77\xd4\x11\x0a\x2f\xcc\x23\xb4\x25\x49\x38\x7b\x87\x7e\x61\x9e\x77\x2f\x64\x3a\x81\xfe\x1f\xf9\x0e\x1d\x31\xcf\x9b\xf2\x35\x1a\xcd\x13\x9c\x74\xd9\x16\xdd\x4b\x8e\x0b\x38\xd4\xb1\xb3\xe5\x5f\x98\xd8\xc9\x01\x5b\xa3\x8e\x9f\xa3\x51\x25\xf5\xea\x03\xf9\x7b\xb4\xaa\xa0\x91\xaa\x0d\x76\x24\x9b\xb1\xdf\xc2\x43\x7a\xfb\xff\xdc\x7d\xe1\x21\xba\x3d\xf4\x03\xe4\x3f\x44\xb7\x8e\xbc\xa5\xdd\xbc\x94\x87\x7e\x6a\xb4\xea\x56\xa4\x47\x96\xc9\x6f\xd1\xda\x50\x95\xa7\xc9\xc1\x48\x35\x5a\xcf\x54\x9d\x6e\xef\x64\xdd\x4c\x2d\xda\x11\xf5\xe6\x6f\x45\xdd\xf9\x1b\x28\x2e\x97\x6f\xda\x56\xd8\x41\x9d\xb6\x27\x6a\x3b\x1f\x88\x1e\x0c\x52\x24\x57\xaa\x7f\xe4\x7b\x74\xc4\xbc\x57\xf6\xfa\xf5\x30\x56\x31\xac\x13\xf9\x7e\x18\xdf\xcf\x69\x3f\x91\xef\x6b\xfe\xc3\xb1\xac\x07\xfa\x9e\xcd\x7f\x25\x9b\x46\x2b\x69\xf0\x0b\x37\x65\x2d\x38\xba\x2a\x6b\xd8\x25\x73\xc3\x09\xb4\xad\xf8\x3f\xb9\x4d\xf2\xc5\x4e\x23\xf3\xc4\x0a\xe8\xed\x33\xfc\x70\x0d\x52\x14\x4e\xee\x59\x98\x5c\x43\x57\x3c\xbc\xe8\x28\xcf\x99\xe7\x69\x0b\xd7\x70\x66\x9d\xf1\x13\x37\x71\xdd\xfd\xe5\xdd\x70\xb4\xd1\x08\x8b\x42\x6d\x31\xed\x2d\xbe\xc1\x2a\xba\x4c\x85\x0d\xa5\x54\xcd\xbb\xce\x6d\xe1\x10\x73\xba\xca\xda\x41\x38\x2a\xac\x25\x9d\xef\x56\xa0\xf7\xcf\x42\x59\xd8\xa3\x27\xa1\x2c\x2a\xf6\x89\x57\x6f\xde\x4e\xe4\xc8\xdf\x63\xdf\xbc\xaf\x13\x97\x49\x67\x5f\x27\x76\xd9\x5f\x5a\x2d\xfa\x27\x9b\x3b\xf8\xc6\x37\xae\xef\x84\x99\xff\xff\x0e\xad\x7a\x1c\x1f\x8d\x3d\x44\x22\x40\x22\x45\x5f\x78\xb2\xbe\x96\xfd\xbd\xc1\xb3\xfa\x57\x93\x1f\x5b\x6e\x4b\xe3\x18\xef\x0f\x34\x86\x67\x38\x71\x3d\xfc\x3b\xd7\x67\x58\xdd\xa5\xaf\x8d\xb5\xbf\x03\x00\x00\xff\xff\x37\xa3\xe3\x05\xfc\x0b\x00\x00") - -func testImagesAgnhostWebhookConvertGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostWebhookConvertGo, - "test/images/agnhost/webhook/convert.go", - ) -} - -func testImagesAgnhostWebhookConvertGo() (*asset, error) { - bytes, err := testImagesAgnhostWebhookConvertGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/webhook/convert.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostWebhookConvert_testGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x54\xdd\x6e\xdb\x46\x13\xbd\xe6\x3e\xc5\x7c\x04\xf2\x81\x4c\x54\x52\x4a\x81\xa2\x75\xda\x0b\xd5\x3f\xa8\x90\x40\x02\x24\x25\x41\x80\xde\x2c\x97\x43\x72\x6a\x72\x97\xde\x9d\xb5\xac\x04\x7e\xf7\x62\x29\xfa\x27\x36\x62\x17\x45\x51\xf4\x4a\x1c\xcd\x99\xd9\x73\x0e\x0f\x37\x7f\x29\x8e\x4d\xbf\xb7\x54\x37\x0c\xaf\xa7\xb3\x9f\x60\xdb\x20\xbc\xf5\x05\x5a\x8d\x8c\x0e\xe6\x9e\x1b\x63\x5d\x26\xc4\x3b\x52\xa8\x1d\x96\xe0\x75\x89\x16\xb8\x41\x98\xf7\x52\x35\x08\x63\x67\x02\x1f\xd0\x3a\x32\x1a\x5e\x67\x53\x48\x02\x20\x1e\x5b\x71\xfa\x46\xec\x8d\x87\x4e\xee\x41\x1b\x06\xef\x10\xb8\x21\x07\x15\xb5\x08\x78\xa5\xb0\x67\x20\x0d\xca\x74\x7d\x4b\x52\x2b\x84\x1d\x71\x33\x1c\x32\xae\xc8\xc4\xa7\x71\x81\x29\x58\x92\x06\x09\xca\xf4\x7b\x30\xd5\x7d\x14\x48\x16\x02\x00\xa0\x61\xee\x8f\xf2\x7c\xb7\xdb\x65\x72\x60\x99\x19\x5b\xe7\xed\x01\xe5\xf2\x77\x8b\xe3\xd3\xe5\xe6\xf4\xbb\xd7\xd9\x54\x88\xf7\xba\x45\xe7\xc0\xe2\x85\x27\x8b\x25\x14\x7b\x90\x7d\xdf\x92\x92\x45\x8b\xd0\xca\x1d\x18\x0b\xb2\xb6\x88\x25\xb0\x09\x3c\x77\x96\x98\x74\x3d\x01\x67\x2a\xde\x49\x8b\xa2\x24\xc7\x96\x0a\xcf\x5f\x19\x74\xc3\x8a\x1c\xdc\x07\x18\x0d\x52\x43\x3c\xdf\xc0\x62\x13\xc3\xaf\xf3\xcd\x62\x33\x11\x1f\x17\xdb\xdf\x56\xef\xb7\xf0\x71\xbe\x5e\xcf\x97\xdb\xc5\xe9\x06\x56\x6b\x38\x5e\x2d\x4f\x16\xdb\xc5\x6a\xb9\x81\xd5\x19\xcc\x97\x9f\xe0\xed\x62\x79\x32\x01\x24\x6e\xd0\x02\x5e\xf5\x36\x70\x37\x16\x28\x58\x87\x65\x26\x36\x88\x5f\x1d\x5e\x99\x03\x19\xd7\xa3\xa2\x8a\x14\xb4\x52\xd7\x5e\xd6\x08\xb5\xb9\x44\xab\x49\xd7\xd0\xa3\xed\xc8\x85\x97\xe7\x40\xea\x52\xb4\xd4\x11\x4b\x1e\xea\x47\x72\x32\xf1\x32\x17\xa2\x97\xea\x3c\x2c\xd9\x61\xd1\x18\x73\x2e\x04\x75\xbd\xb1\x0c\x89\x88\xe2\xaa\xe3\x58\x44\x71\x27\xb9\xc9\xad\xd4\x65\x28\x2c\x56\x2d\xaa\xe1\x7f\x46\x17\xec\x8b\x85\x88\x2a\xff\xf9\x33\xc4\x35\x71\xe3\x8b\x4c\x99\x2e\xaf\x8d\xa9\x5b\xcc\x6b\x13\x3a\x01\x71\x39\x83\xf8\xfc\x47\x97\x91\xc9\x65\x4f\xb9\x2c\x47\xa2\xf9\xe5\x2c\xec\xfa\x46\xab\x40\x96\x0f\xfa\x9d\x54\x0d\x69\xb4\xfb\xbc\x3f\xaf\x0f\x03\x3d\x8d\x54\xf2\x70\x1a\xda\xa7\x06\xac\xd7\x4c\x1d\xfe\x05\x48\xee\xd0\x92\x6c\xe9\x99\x85\x9e\xa9\xcd\x4b\xaa\xaa\x58\x44\xb7\xd4\x0f\x3c\x6e\x15\x9f\xdf\x7e\x89\x37\xa4\xdd\x3d\x99\x37\xa4\x53\x21\x2a\xaf\x15\x6c\xd1\xf1\xb1\xd1\x97\x68\x79\x7e\x03\x5a\xe3\x85\x47\xc7\x5b\xf3\x61\x96\x30\xbc\x1c\xf5\x66\xdb\x14\xbe\x88\xa8\x82\xa3\x5f\xe0\xb0\x25\x3b\x1b\x7e\xce\x8c\x4d\x1e\x90\xc9\xce\xbc\x56\x6e\x02\xe1\x45\x66\x4b\xdc\x6d\x8c\xb7\x0a\x93\xa1\x5c\x68\xfe\xe1\xfb\x24\x4d\x27\x70\xa7\x39\x60\x8e\x4d\x89\xea\x4c\x2a\x36\x76\x9f\x8c\xb6\x0c\xb3\xaa\xc1\x0e\x93\x34\x4d\x45\x14\x72\x49\x81\xc0\xf4\x0d\x10\xfc\x0c\xb3\x69\x78\x78\xf5\x2a\x10\x8b\x38\x5b\x7b\x9d\x54\x1d\x67\x9b\xde\x92\xe6\x2a\x89\xd7\x5e\xc3\x8b\x32\x9f\x4d\xa7\xf1\x04\x28\x9d\x40\xd0\xfc\x58\x53\x14\x19\x4b\x75\xd8\xfb\xff\x31\x06\xd9\x43\x33\xbe\x5c\x07\x58\x35\x48\x4e\x02\x3a\x0d\xb5\x3a\x38\x87\x65\x98\x55\x4f\xd8\x78\x3b\x61\xf9\x19\xe8\x70\x7c\x72\xbb\x78\x18\xa2\x0a\xfe\x37\x7e\x0b\xd9\x09\x62\x7f\x7a\xe1\x65\x3b\xec\x9c\x80\xe5\x51\x42\xc4\xd9\xa9\xb5\xc6\x56\x49\x8c\x57\x3d\xaa\xc0\x4a\xb6\xed\x70\x47\xa1\x63\xa8\x08\xdb\xd2\x85\xdb\xa8\xc0\xc3\xc5\x79\xc3\xdd\x14\x7f\xa0\x62\x28\x3c\x43\x65\xbc\x0e\xb7\x91\x54\xca\x78\x1d\x9a\xc1\xf2\x90\x38\xb4\xa8\x15\xba\xc9\x50\x1c\xfd\xae\x5f\xb8\xf8\xf0\x9c\xad\x86\xf1\xf5\x81\xdf\x09\x55\xd5\xc8\xec\x4e\xc3\x20\x22\x18\x78\x9d\x8a\xe8\x5a\x5c\x3f\x99\x3d\xd7\x1b\xed\xf0\xce\x8a\x6f\x27\x30\xa4\x23\xf9\x97\x52\x91\x3d\x62\xf8\xb7\x12\xf1\x50\xdc\xb3\xb9\xb8\x1b\xf8\x27\x33\xf1\x5f\xca\xc2\x9f\x01\x00\x00\xff\xff\x0e\x52\xf0\x28\x50\x08\x00\x00") - -func testImagesAgnhostWebhookConvert_testGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostWebhookConvert_testGo, - "test/images/agnhost/webhook/convert_test.go", - ) -} - -func testImagesAgnhostWebhookConvert_testGo() (*asset, error) { - bytes, err := testImagesAgnhostWebhookConvert_testGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/webhook/convert_test.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostWebhookCrdGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xe4\x56\xdd\x6e\xe3\x36\x13\xbd\x16\x9f\x62\x3e\x01\x1b\xd8\x81\x22\x25\xbe\x5a\x38\xf0\x85\x3f\x3b\xdd\x1a\x9b\xda\x80\xed\x64\xb1\x08\x82\x82\xa2\x46\x12\x6b\x89\xd4\x92\x94\x14\x37\xc8\xbb\x17\xd4\x4f\x62\x37\x4e\x51\xb4\x97\x05\x0c\x1b\x22\xcf\x9c\x39\x3c\x33\x1a\x3a\x38\x27\x33\x59\xec\x15\x4f\x52\x03\xa3\xcb\xab\xcf\xb0\x4d\x11\xbe\x96\x21\x2a\x81\x06\x35\x4c\x4b\x93\x4a\xa5\x7d\x42\x6e\x39\x43\xa1\x31\x82\x52\x44\xa8\xc0\xa4\x08\xd3\x82\xb2\x14\xa1\xdb\xf1\xe0\x1e\x95\xe6\x52\xc0\xc8\xbf\x84\x81\x05\xb8\xdd\x96\x3b\xbc\x26\x7b\x59\x42\x4e\xf7\x20\xa4\x81\x52\x23\x98\x94\x6b\x88\x79\x86\x80\x4f\x0c\x0b\x03\x5c\x00\x93\x79\x91\x71\x2a\x18\x42\xcd\x4d\xda\x24\xe9\x28\x7c\xf2\xbd\x23\x90\xa1\xa1\x5c\x00\x05\x26\x8b\x3d\xc8\xf8\x10\x05\xd4\x10\x02\x00\x90\x1a\x53\x8c\x83\xa0\xae\x6b\x9f\x36\x2a\x7d\xa9\x92\x20\x6b\x51\x3a\xb8\x5d\xcc\x6e\x96\x9b\x9b\x8b\x91\x7f\x49\xc8\x9d\xc8\x50\x6b\x50\xf8\xa3\xe4\x0a\x23\x08\xf7\x40\x8b\x22\xe3\x8c\x86\x19\x42\x46\x6b\x90\x0a\x68\xa2\x10\x23\x30\xd2\xea\xac\x15\x37\x5c\x24\x1e\x68\x19\x9b\x9a\x2a\x24\x11\xd7\x46\xf1\xb0\x34\x47\x06\xf5\xaa\xb8\x86\x43\x80\x14\x40\x05\xb8\xd3\x0d\x2c\x36\x2e\xfc\x7f\xba\x59\x6c\x3c\xf2\x6d\xb1\xfd\x79\x75\xb7\x85\x6f\xd3\xf5\x7a\xba\xdc\x2e\x6e\x36\xb0\x5a\xc3\x6c\xb5\x9c\x2f\xb6\x8b\xd5\x72\x03\xab\x9f\x60\xba\xfc\x0e\x5f\x17\xcb\xb9\x07\xc8\x4d\x8a\x0a\xf0\xa9\x50\x56\xbb\x54\xc0\xad\x75\x18\xf9\x64\x83\x78\x94\x3c\x96\xad\x18\x5d\x20\xe3\x31\x67\x90\x51\x91\x94\x34\x41\x48\x64\x85\x4a\x70\x91\x40\x81\x2a\xe7\xda\x16\x4f\x03\x15\x11\xc9\x78\xce\x0d\x35\xcd\xf3\xbb\xe3\xf8\xe4\x3c\x20\xa4\xa0\x6c\x67\x49\x6a\x0c\x53\x29\x77\x84\xf0\xbc\x90\xca\xc0\x80\x38\x6e\x9c\x1b\x97\x10\xc7\xdd\x7d\xd6\x3e\x97\x01\x2d\x78\x40\xa3\x2e\x41\x50\x5d\xb9\xc4\xa1\x05\xc7\x27\x83\xa2\x49\x59\x5d\xc1\x01\xf4\x6d\xfd\x82\x16\x5c\xa3\xaa\x50\x05\xc5\x2e\xb1\x7b\xfa\x18\x70\x92\x2b\x44\x43\xff\x05\x61\x13\xee\x12\x27\x47\x43\x8f\x85\xe5\x94\xa5\x5c\xa0\xda\xbf\x05\x5b\x50\x2b\xa2\xc7\xed\x32\x99\x04\xd5\xc8\x25\x43\x42\x82\x00\xb6\x4d\x97\x97\x82\x59\x2f\x6d\xb9\x90\x19\x0d\x34\xcb\x60\xb6\x9e\x6b\xd0\x65\x98\x73\x63\xba\xc6\x32\xf6\x3b\x44\x38\x92\xe4\x77\xc4\xfd\xc1\x6c\x2f\x9e\xde\xf7\x89\x4d\x04\xd6\x69\x33\x5b\xcf\x07\x54\x41\x75\xe5\x4f\x7b\xe3\xd7\x58\x71\xac\x87\x70\x7e\xbc\xa8\x0b\x69\xbb\xe4\x99\x38\x56\xba\x7f\x3f\x18\x0d\xfd\x85\x88\xe5\xc0\x6d\x88\x6c\x9f\x03\x53\x91\x3b\x24\xc4\x51\xa8\x65\xa9\x18\xc2\x78\x02\x2e\x2b\xb5\x91\x79\xbf\x14\x61\xcc\x05\x6f\x3a\xc6\x25\x4e\x27\xf6\xcb\xfd\xda\x42\x5b\x2b\xfd\x2f\x4a\x96\x45\x37\x23\xd6\x5d\xd8\x73\xb3\x38\x86\x53\x35\x6c\x03\x96\x34\x7f\x1b\x2d\x63\x70\xfb\x0a\x79\xd0\x73\x8c\xa1\x17\xf1\x62\x33\xff\xe3\xa4\x1f\xe5\xfb\x20\x95\xb5\xc3\x3a\xfa\x6a\xe1\x78\x02\xa7\xac\x7d\x7e\xf9\x33\xd2\x9f\x66\x99\xac\x31\x82\x09\x18\x55\xa2\x65\xa2\xb5\x0d\xa7\xca\x5f\xe3\x8f\x12\xb5\xf1\x57\xe1\x6f\xc8\x8c\xbf\xa6\x35\x71\x2a\xaa\x20\xa3\x21\x66\x1a\x72\x5a\x3c\xd8\x41\x22\x92\xc7\xf6\x87\x10\x47\xd7\xdc\xb0\xf4\x30\xb8\x97\x6b\xab\xca\xa8\x46\x78\xab\xc7\x98\x38\x0e\x53\x51\x93\xed\x94\xe7\xb3\xa6\xaa\x3d\xc1\xfc\xb5\xaa\xf6\x14\x4e\x84\x1a\x15\xa7\x19\xff\x1d\x95\x65\x60\x32\x42\xa6\xfd\x3b\xc1\x2b\x54\x9a\x66\xf3\x83\xfd\xc1\x90\x38\x0e\x8f\xe1\x57\xcf\x7e\x50\x35\x01\x87\x04\xfe\x1c\x6d\xfc\x40\xd1\xda\x03\xc1\x33\x0f\xce\x98\x8a\x86\xd7\x0d\xf6\x7f\x13\xbb\x64\xf5\x3b\x6d\x5f\xde\x28\x25\xd5\x00\x95\xb2\xb4\x8e\x42\x53\x2a\x01\x46\xde\x5f\xbd\xf3\xbb\x07\x59\xc1\x9d\x6b\x13\xdb\xc1\xfe\x6d\xf3\xf0\xea\xc8\x5f\x9a\xf1\x5f\xf0\x21\xc2\x98\x96\x99\xb1\x26\x74\xb2\xe2\xdc\xb4\x09\xe2\x81\xdb\xce\xaa\xd7\x7e\xef\x46\x93\x14\x68\xaf\xdc\x87\x4f\x95\x07\x9f\xaa\x47\x08\x4b\x03\x89\x34\xf0\xa9\x72\xbd\x83\x2e\xf3\x5a\x7f\xbd\x53\x4d\x69\x35\xbd\x3f\xca\xdf\x38\x89\x7d\xe5\x78\x0c\x95\x07\x72\x67\xd5\xb6\x87\x7a\x70\xbb\x1b\xe8\x02\x47\x78\x61\x50\x1b\xf7\xf1\xda\x22\x9e\x5b\xdf\x2b\x98\x4c\xe0\x15\x13\x71\x4d\xed\xcb\xe7\xb6\x96\x7e\xf8\x5e\xc6\x34\xd3\x78\x02\xb1\x46\x5d\x66\x06\x26\x70\xd6\xcd\x97\x8d\xa1\xa6\xd4\xcf\xbf\xa0\xd6\x34\xc1\x31\xb8\xf6\xa2\xb4\x3d\xc5\xa4\xb0\xff\x53\xec\xfd\x59\x53\x61\x47\x7c\xa3\xd7\x7d\x69\x4b\xd2\x0c\x85\xe6\xc8\x67\xc7\x29\x08\x79\x21\x7f\x04\x00\x00\xff\xff\x70\x6d\x73\x5e\x97\x09\x00\x00") - -func testImagesAgnhostWebhookCrdGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostWebhookCrdGo, - "test/images/agnhost/webhook/crd.go", - ) -} - -func testImagesAgnhostWebhookCrdGo() (*asset, error) { - bytes, err := testImagesAgnhostWebhookCrdGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/webhook/crd.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostWebhookCustomresourceGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x56\xd1\x6f\xdb\xb6\x13\x7e\x16\xff\x8a\xfb\xe9\x21\xb0\x0b\x47\x8a\xfd\x54\xe4\x07\x3f\x78\x49\x86\x79\xed\xec\xc1\x76\x52\x14\x41\x80\x9e\xa5\xb3\xc4\x5a\x26\x55\xf2\x64\xd5\x48\xfd\xbf\x0f\xa4\x94\xc2\x6e\x9d\x60\xc3\xba\x01\x0b\x10\x18\x12\x3f\xde\x7d\xf7\xdd\x47\xf1\xe2\x57\xe2\x4a\x97\x3b\x23\xb3\x9c\x61\x70\xd1\x7f\x0d\x8b\x9c\xe0\x4d\xb5\x24\xa3\x88\xc9\xc2\xa8\xe2\x5c\x1b\x1b\x09\xf1\x56\x26\xa4\x2c\xa5\x50\xa9\x94\x0c\x70\x4e\x30\x2a\x31\xc9\x09\xda\x95\x1e\xdc\x91\xb1\x52\x2b\x18\x44\x17\xd0\x71\x80\xb0\x5d\x0a\xbb\xff\x17\x3b\x5d\xc1\x06\x77\xa0\x34\x43\x65\x09\x38\x97\x16\x56\xb2\x20\xa0\xcf\x09\x95\x0c\x52\x41\xa2\x37\x65\x21\x51\x25\x04\xb5\xe4\xdc\x27\x69\x43\x44\xe2\x7d\x1b\x40\x2f\x19\xa5\x02\x84\x44\x97\x3b\xd0\xab\x43\x14\x20\x0b\x01\x00\x90\x33\x97\x97\x71\x5c\xd7\x75\x84\x9e\x65\xa4\x4d\x16\x17\x0d\xca\xc6\x6f\xc7\x57\x37\x93\xf9\xcd\xf9\x20\xba\x10\xe2\x56\x15\x64\x2d\x18\xfa\x54\x49\x43\x29\x2c\x77\x80\x65\x59\xc8\x04\x97\x05\x41\x81\x35\x68\x03\x98\x19\xa2\x14\x58\x3b\x9e\xb5\x91\x2c\x55\xd6\x03\xab\x57\x5c\xa3\x21\x91\x4a\xcb\x46\x2e\x2b\x3e\x12\xe8\x89\x95\xb4\x70\x08\xd0\x0a\x50\x41\x38\x9a\xc3\x78\x1e\xc2\x4f\xa3\xf9\x78\xde\x13\xef\xc6\x8b\x5f\xa6\xb7\x0b\x78\x37\x9a\xcd\x46\x93\xc5\xf8\x66\x0e\xd3\x19\x5c\x4d\x27\xd7\xe3\xc5\x78\x3a\x99\xc3\xf4\x67\x18\x4d\xde\xc3\x9b\xf1\xe4\xba\x07\x24\x39\x27\x03\xf4\xb9\x34\x8e\xbb\x36\x20\x9d\x74\x94\x46\x62\x4e\x74\x94\x7c\xa5\x1b\x32\xb6\xa4\x44\xae\x64\x02\x05\xaa\xac\xc2\x8c\x20\xd3\x5b\x32\x4a\xaa\x0c\x4a\x32\x1b\x69\x5d\xf3\x2c\xa0\x4a\x45\x21\x37\x92\x91\xfd\xf3\x77\xe5\x44\xe2\x55\x2c\x44\x89\xc9\xda\x05\xa9\x69\x99\x6b\xbd\x16\x42\x6e\x4a\x6d\x18\x3a\x22\x08\x49\x25\x3a\x95\x2a\x8b\x3f\x5a\xad\x42\x21\x82\x6d\x1f\xc2\xf5\x6b\x1b\x49\x1d\x63\x29\x63\x4c\xdb\x6c\xf1\xb6\x1f\x8a\x60\x43\x8c\xc7\x88\x0d\x26\xb9\x54\x64\x76\x71\xb9\xce\xdc\x0b\x1b\x3b\x50\x03\x7f\xc2\xad\x0b\x9d\xc5\xdb\x41\x28\xba\x42\x24\x5a\x59\x9f\x3b\xa9\x2c\xeb\xcd\x8c\xac\xae\x4c\x42\xbf\x23\x27\x79\x1f\x9c\xf4\x2a\x83\x21\x7c\xb8\xf7\xee\xf0\x7f\x8f\x10\xea\x32\xbc\x84\x10\xd3\x34\xec\x41\x58\x22\xe7\xee\x31\x4e\x91\x31\xde\x54\x4d\xfd\xe7\x96\x31\xa3\xf3\xbe\x43\x6c\xb1\xa8\xc8\x41\x76\x64\x43\xd8\x37\xa1\x1e\x3e\x9c\x4c\x3a\xf8\x01\x49\x07\x2f\x25\xed\x0a\xb1\xaa\x54\x02\x7e\x0f\x5d\x1d\x31\xe8\xa0\x81\x6d\x3f\x1a\x3d\xc9\x3c\xa3\xad\xa4\xba\x0b\xaf\x8e\x5f\xda\x52\x3b\x83\x3c\x8a\xc0\x49\x19\xdd\x75\x06\xdd\x68\xac\x56\xba\x13\x36\x44\x54\x06\x4d\x65\x60\xda\xc0\x61\x57\x04\x89\x81\xcb\xa1\xab\xae\x4a\xd8\xed\x6d\xdb\x17\x4d\x97\x1f\x29\xe1\xdf\x88\x51\x04\xc1\x35\x32\xc2\x06\xcb\xfb\x46\x85\x87\xe6\x47\x04\xfb\xc7\xbd\x10\x81\xc1\xda\xc5\x40\x13\xcd\xe8\x53\x45\x96\xdb\xcd\xd1\x0c\x6b\x11\x90\xf1\x19\x9c\x77\xa2\x5b\xb5\x41\x63\x73\x2c\x3a\x06\xeb\x1e\x9c\x25\xa6\x2b\x02\xb9\x02\x87\xf9\xdf\x10\x94\x2c\x3c\x05\xcf\xff\xc6\x18\x6d\x3a\x64\x1c\x24\x30\xc4\x95\x51\xc0\xfa\xae\xff\x5d\xc5\x2d\xc6\x33\xf1\xca\x7c\x95\xe2\x72\x08\xa7\x24\x7a\xdc\x7f\x8b\x8c\x46\x45\xa1\x6b\x4a\x61\x08\x6c\x2a\x12\x9e\x54\x62\x22\x57\xf7\x7d\x78\xd8\x47\xc3\xe1\x03\x0c\x87\x6d\xff\x1e\x3d\xb5\xa3\x48\xde\x2e\x30\x84\xfb\x87\xe5\x8e\xa9\x73\xca\xc0\x9e\xec\xb3\x19\xbc\x3d\xff\x6e\x8e\xc1\xd7\x1c\x05\xa9\xce\xa9\xed\x5d\x27\xf8\x85\x8f\x5e\x72\xab\x94\x5f\x58\xec\x4a\xfa\x75\x3e\x9d\xf8\x87\x67\x72\x3b\x0c\x0c\xe1\xac\x64\x9f\xa6\xed\xce\xd9\x31\x54\xec\x5b\x4f\xbb\xef\x03\xff\x60\x4b\xfb\x98\xff\xa0\xa7\xb7\x68\xc0\xf9\xba\x91\xd8\x2b\x79\xe8\xef\x92\x8c\x6f\x98\x6b\xd3\xb6\x1f\x5d\x53\x41\x4c\x4d\xab\xb0\x86\xe3\xb3\x50\xa4\x87\xc7\x61\x0f\x54\xd8\xe7\xa0\x87\xb8\xff\xe6\xc9\x09\xdc\xfd\xb4\xee\xc1\xd6\x85\x30\xa8\x32\x7a\x72\xb9\xe7\x27\x57\xb0\xf6\xd6\x6e\xef\x99\x73\x1a\xd0\x39\x93\xe5\x10\xce\xce\x60\x7b\xb4\x94\x4a\x8b\x2e\xb8\x5b\x12\x41\x10\x74\x5e\x68\xc0\x95\x21\x64\x82\x2f\x5f\x5e\xea\xd2\x6d\x99\x22\x53\xd7\x13\x79\xbe\x8c\x15\x16\x96\x4e\x20\x66\x64\xab\x82\x9d\xeb\x5b\x37\xcd\x19\xb9\xb2\x3e\x58\x30\x23\xb4\x5a\x5d\x42\xe8\x2e\xd6\x6f\x1c\x09\x89\x56\x6e\xc6\x71\x77\x6f\x8d\xca\x8d\x0c\xee\x7a\x08\x7b\x6e\xe7\x5e\x34\xff\x7f\x45\x18\xa5\x55\xea\x0c\xe7\x06\x1a\xbf\xfc\xe7\x9c\xf9\xaf\x96\x8c\xca\x4d\x86\x4b\x02\xcf\xd4\x8d\x61\x94\xa0\x1b\x14\x25\x9f\xd0\x63\x4d\x3b\x37\xa8\x40\x73\x3b\x1e\x0a\xf3\xd2\xd7\xe5\x8f\x00\x00\x00\xff\xff\x0f\x5b\x65\x7b\xef\x0a\x00\x00") - -func testImagesAgnhostWebhookCustomresourceGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostWebhookCustomresourceGo, - "test/images/agnhost/webhook/customresource.go", - ) -} - -func testImagesAgnhostWebhookCustomresourceGo() (*asset, error) { - bytes, err := testImagesAgnhostWebhookCustomresourceGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/webhook/customresource.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostWebhookMainGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x58\x5f\x6f\xdb\x36\xf7\xbe\x16\x3f\xc5\x99\x80\x16\x52\x20\x4b\x6d\xb7\x01\xfb\x79\xc8\x85\x9b\xb4\x6b\xd0\x34\x19\x62\xb7\xc5\x30\x0c\xbf\xd1\xd2\x91\xcc\x5a\x22\x35\x92\xb2\xeb\x05\xfd\xee\x2f\x0e\x25\x2b\x72\x6c\xa7\xdb\xb0\xe0\x7d\x7d\xd1\x46\x22\xf9\x3c\x87\xe7\xcf\xc3\x23\x26\x27\xec\x4c\xd5\x1b\x2d\x8a\x85\x85\x17\xcf\x9e\xff\x00\xb3\x05\xc2\xdb\x66\x8e\x5a\xa2\x45\x03\x93\xc6\x2e\x94\x36\x31\x63\x97\x22\x45\x69\x30\x83\x46\x66\xa8\xc1\x2e\x10\x26\x35\x4f\x17\x08\xdd\x48\x04\x1f\x50\x1b\xa1\x24\xbc\x88\x9f\x41\x40\x13\xfc\x6e\xc8\x0f\x7f\x64\x1b\xd5\x40\xc5\x37\x20\x95\x85\xc6\x20\xd8\x85\x30\x90\x8b\x12\x01\x3f\xa7\x58\x5b\x10\x12\x52\x55\xd5\xa5\xe0\x32\x45\x58\x0b\xbb\x70\x24\x1d\x44\xcc\x7e\xe9\x00\xd4\xdc\x72\x21\x81\x43\xaa\xea\x0d\xa8\x7c\x38\x0b\xb8\x65\x0c\x00\x60\x61\x6d\x3d\x4e\x92\xf5\x7a\x1d\x73\x67\x65\xac\x74\x91\x94\xed\x2c\x93\x5c\x5e\x9c\xbd\xba\x9a\xbe\x1a\xbd\x88\x9f\x31\xf6\x5e\x96\x68\x0c\x68\xfc\xa3\x11\x1a\x33\x98\x6f\x80\xd7\x75\x29\x52\x3e\x2f\x11\x4a\xbe\x06\xa5\x81\x17\x1a\x31\x03\xab\xc8\xce\xb5\x16\x56\xc8\x22\x02\xa3\x72\xbb\xe6\x1a\x59\x26\x8c\xd5\x62\xde\xd8\x1d\x07\x6d\xad\x12\x06\x86\x13\x94\x04\x2e\xc1\x9f\x4c\xe1\x62\xea\xc3\xcb\xc9\xf4\x62\x1a\xb1\x8f\x17\xb3\x37\xd7\xef\x67\xf0\x71\x72\x73\x33\xb9\x9a\x5d\xbc\x9a\xc2\xf5\x0d\x9c\x5d\x5f\x9d\x5f\xcc\x2e\xae\xaf\xa6\x70\xfd\x1a\x26\x57\xbf\xc0\xdb\x8b\xab\xf3\x08\x50\xd8\x05\x6a\xc0\xcf\xb5\x26\xdb\x95\x06\x41\xae\xc3\x2c\x66\x53\xc4\x1d\xf2\x5c\xb5\xc6\x98\x1a\x53\x91\x8b\x14\x4a\x2e\x8b\x86\x17\x08\x85\x5a\xa1\x96\x42\x16\x50\xa3\xae\x84\xa1\xe0\x19\xe0\x32\x63\xa5\xa8\x84\xe5\xd6\x3d\xef\x6d\x27\x66\x27\x09\x63\x35\x4f\x97\x04\xb2\xc6\xf9\x42\xa9\x25\x63\xa2\xaa\x95\xb6\x10\x30\xcf\x47\x99\xaa\x4c\xc8\x22\xf9\x64\x94\xf4\x99\xe7\xe7\x95\xa5\xff\x84\x4a\x84\x6a\xac\x28\xe9\x41\xa2\x4d\x28\x4c\x3e\x63\x9e\x5f\x08\xbb\x68\xe6\x71\xaa\xaa\xc4\xd4\xf9\xf3\x6f\x93\x54\xcd\x35\xa7\xa1\xd5\x73\xf0\x97\x3f\x98\x58\xa8\x84\xd7\x22\xe1\x59\x67\x68\xb2\x7a\x4e\x28\x47\x86\xe6\x68\xf9\xbd\xf1\x8a\xa7\x0b\x21\x51\x6f\x92\x7a\x59\x24\xba\x91\x56\x54\x38\x98\xb2\x2c\x55\x91\xac\x5e\xf8\xcc\x4b\x12\x98\x5d\x9f\x5f\x8f\xc1\xea\x4d\x9b\xa7\xa5\x98\x6b\x4e\x0f\x0a\x0c\x22\x88\x1c\x84\x85\x02\x25\x6a\x4e\x55\x92\x2a\xad\x31\xb5\x40\xdb\x85\x9a\xdb\x74\xe1\x40\x68\x77\x66\x9c\x24\x83\xcd\x55\xdc\xda\x39\x17\x3a\x73\xae\x69\xa7\x86\x8c\xad\xb8\x26\xc7\xa5\xa8\xed\x6b\x2a\x09\xfa\x51\xbe\xc8\x82\x79\x4b\xdc\xf4\xef\xfa\x97\xce\xd5\xdb\x9f\x90\x96\x79\x46\x64\x98\x72\x7d\x51\x51\x50\xba\x69\x21\x63\x49\x02\x67\x55\xf6\xb1\x0d\x12\x25\x62\x63\xba\x14\x2f\xe4\x42\x19\x0b\x67\xe4\xe8\xd8\x59\x30\x98\x78\x0a\x4f\x5d\x04\xe2\x33\x55\x55\x5c\x66\xb7\xcc\x7b\x6f\x70\x0c\x00\x7e\x17\x70\x3f\x62\xde\x74\xa1\xb4\x1d\x83\x3f\xb5\x5c\x5b\x03\x1c\xde\xcc\x66\x3f\x83\x41\xbd\x42\x1d\x11\x53\xde\x94\x6d\xfe\xa1\xa1\x82\x81\x77\x0d\x65\x95\x2c\x26\xdb\x50\x6d\xf9\xb8\xcc\xe0\x03\x2f\x45\x76\x70\x98\xb8\x2e\x95\x2c\xc6\xf0\xfb\x63\x53\xc5\x6c\x92\x5b\xd4\x90\x61\x5d\xaa\x0d\x01\x09\x4b\x61\x1f\x68\x62\x5a\x36\xc6\x12\xab\xd3\xc0\xac\x12\x92\x6a\x9b\x5b\xa5\x41\x22\x66\x86\xa6\xa7\x1a\xb9\x45\xe0\x03\xa6\x8e\xe0\x4c\xc9\x5c\x14\x8d\x76\xd5\xc5\x84\x74\x28\xfb\xe8\x04\xa2\xb1\x10\xee\x6f\x8d\x95\xb2\x7d\xa9\x41\x9f\xe8\x90\x2a\x69\xb5\x2a\x4b\xd4\x26\xfe\x3d\x62\xde\x44\x17\x66\x0c\x6d\xe4\xde\xf1\xcf\xa2\x6a\xaa\x2b\x7a\x17\x3c\x0b\x23\xe6\xdd\x34\x72\x0c\x50\x71\x21\x23\xf6\x85\xb1\xbc\x91\x29\x08\x29\x6c\x10\xc2\x2d\xf3\xee\xa2\x1f\xbf\x2e\x79\x61\x82\x30\x9e\xba\x34\xfa\xc0\x75\xf0\x74\x9b\x9a\x11\xf8\xb6\x34\x23\x7a\x1c\x91\x7a\xfb\x11\xf8\x14\x1e\xcf\x77\x49\x4a\x06\x71\xe1\x34\x85\xf6\x95\x61\xce\x9b\xd2\xc2\xe7\xef\x9f\xfd\x1f\x9c\xa1\xb6\x24\x40\xe4\x18\x8a\x14\x45\x70\x1a\x43\x70\x36\x01\x82\x8b\xa8\xac\xb8\xdc\x44\x04\x42\x93\x24\x27\xb1\xe4\x2e\x1c\x6d\xa0\xdd\xbc\x30\xf6\xc3\xaf\x59\xdb\xd5\x4c\x67\x6c\xad\xc5\x8a\x5b\x1c\x2d\x71\xf3\x77\x6d\xee\x96\xc2\x12\x37\x50\x51\xb5\xd2\xac\xd1\x68\xc7\x05\xc7\xec\xb9\x90\xd6\x19\x43\xb5\x1a\x81\x4f\xff\xf9\x11\x7c\xf7\xdd\xb7\x8e\x7a\x8a\x69\xa3\x11\x5c\x21\xdb\x05\xb7\x8e\x7b\x1b\xe1\x92\xe2\x2e\x0d\x28\xf9\xf5\xbd\x0e\x0b\x3f\x02\xbf\x7b\x1c\x09\x7a\xbe\xdb\x69\xab\x0b\x56\xc1\x1c\x5b\x09\xe0\xc6\x31\x0a\xf9\x09\x53\xf2\x73\xb7\xce\x0f\x29\x35\x92\xc4\x25\x99\xed\x84\xf4\x35\x65\xca\x82\xcb\xac\x44\x2a\xbd\xee\xed\x5d\x1e\x32\xbb\xa9\x71\x7f\x05\x25\x58\xd0\xbd\x88\xfb\x42\xbb\xc1\x95\xc0\x75\x08\x27\x07\x46\x4c\xad\xa4\xc1\xaf\xf3\x1f\xa1\x1e\xb2\x1e\x24\x7c\x88\xeb\x8d\xc3\xd7\xa4\x91\xbc\x23\xd3\x91\x4b\xd4\xb9\xb2\x0b\x58\xb5\x85\xac\xb4\x3b\x21\xa1\x22\x79\x51\xda\x44\x6d\xf0\x4c\x53\x53\x24\x0d\x54\x4d\x69\x45\x5d\xe2\xa0\x48\xb5\xe3\x87\x55\xdb\x1d\x99\x81\xc5\x5b\x4a\x63\x75\x93\x5a\x2a\xc2\xa1\x6b\x87\xbb\x77\xe7\xa0\xfb\x0d\xb6\xda\x17\xb1\xc4\xf5\x39\x96\x58\x70\x8b\x33\xf5\xe1\xf9\x64\x80\x1d\xe4\xc3\x15\xe1\x2e\xef\x2d\xf3\x34\xda\x46\xcb\x9d\xd7\xb7\xcc\xdb\xda\x31\x86\xac\xc3\xfd\xd0\xbe\x70\xd0\xc4\x11\xe4\xa4\x28\xde\xea\xf9\xb8\x35\x2b\x8f\x98\xf7\xa5\x37\xe8\xf8\xaa\x03\xd6\x0c\x83\x7c\x67\x91\x0b\xe3\xd6\x75\x7f\x3f\x87\x08\xc9\x13\x12\xc6\xa7\xb0\x9f\x0b\xb7\x37\xf8\x47\x83\xc6\x92\x54\xca\x15\x6a\x3b\x18\x77\x03\xce\xd6\x96\x3c\xee\x5e\x85\x5f\x98\xe7\xa9\xc6\x12\x62\x1e\x08\x19\x32\x6f\x6b\xea\x3e\x48\x6b\x03\xa1\x38\xf3\x02\xd5\xd8\xb0\xf3\x4f\x92\xb4\x62\xd6\xe7\x33\x55\x21\x75\x0a\x4e\x0a\x28\x5f\x54\x0e\xdc\x75\xa3\x68\x2c\x09\x90\x72\x87\x01\x4d\x77\x12\xa5\xa8\x79\x74\x8e\x23\x2c\x72\x93\x3b\x49\x9c\xdf\x1d\x72\xb0\x76\x78\xf1\xd6\x8c\x8f\x5a\xb8\xe3\x4a\xc3\x49\xf7\xde\x41\x47\x2d\xc8\x4e\xe8\xdd\x41\x40\xad\xc0\x5c\x65\x1b\xf8\xf5\xb7\xf9\xc6\x22\xf3\x44\x0e\x3a\x7e\x49\x6f\xbe\x39\x05\x29\xca\xd6\xb7\x39\x64\xdc\xf2\x08\x50\x6b\xf2\x49\xdb\xd8\xc5\x37\xc8\xb3\x49\x59\x06\xed\x82\xf0\x47\x37\x7c\x7a\xb7\xcc\x73\xc8\xa7\x6e\x2d\xf3\xbc\x2f\xe4\x15\xd7\x2c\xad\x50\x8b\x7c\xe3\xbc\x41\x82\x8c\xd2\x82\x2b\x14\x2a\xc7\x34\xa5\xf3\x12\x99\xd7\x8d\xcc\x68\x60\x7c\x0a\x3a\x7e\x83\x3c\x43\x1d\xff\x84\x36\xf0\xcf\xda\xc1\x11\x8d\x92\x6c\x8a\x1c\x86\xf3\xbf\x39\x05\xbf\xeb\xeb\xc9\x61\x6d\x6f\xea\x6c\xa2\xce\x2f\x7e\xa5\xb5\xd2\x79\xe0\x0f\x96\x9c\x3e\x31\x11\xb5\xd8\xd4\xda\xed\xad\x8c\x86\xe0\x77\xc9\xd0\xee\xc7\x21\x7e\x08\x5e\xd0\x21\x90\xab\x20\xaf\x6c\x3c\xad\xb5\x90\x36\x0f\x7c\x17\x77\x8a\xa4\xde\x26\xe1\x13\xe3\x47\xce\xe3\x61\xc8\x98\x97\xa1\x41\x2d\x78\x29\xfe\x44\xe7\xd8\x54\x65\x98\x9a\xf8\xbd\x14\xa4\x20\xbc\x3c\x1f\x8c\x07\x21\xf3\xd4\xfc\x53\x04\xc5\x6a\xd9\x47\x62\x08\x10\x9f\x23\xad\x0f\x08\x3d\xa2\x20\xb8\x7f\x5a\xe7\xd0\xf4\x41\x40\x2b\x53\xb8\xdc\x1e\xda\xda\xa5\x0a\xa4\xaa\x29\x33\xf7\xe9\x36\xa7\x03\x92\x20\xb3\x31\x3c\x59\xf9\x8e\x34\xdc\xf1\x61\x50\x99\x82\xde\xb8\x5c\x6b\xdf\xac\x23\xa8\x4c\x11\xb5\x69\x39\xb5\xdc\x36\xe6\x25\xcf\xb6\x85\x75\xcf\x77\x94\x7e\xba\x4b\xdd\xeb\xf9\x27\xe8\x3a\xf5\xf8\x7a\x4e\x27\x15\xf3\xcc\x5a\xd8\x74\x01\x27\xc5\x6a\x49\x76\xa7\xdc\x60\x2f\x10\xd3\x74\x81\x15\xfe\xa4\x55\x53\x77\x1f\xa3\xf1\x47\x61\x17\x6f\x85\xcc\x02\xff\x9e\x08\xf8\xe1\xd8\x31\x3b\x23\x30\xbb\x37\x1a\x81\x5a\x92\x3b\xd4\xfc\x53\x1c\x1c\x92\x19\x27\x40\x6d\x1d\x7c\xa3\x96\x6d\x6e\xef\x24\xd2\x2b\x97\x38\x98\x1d\x53\x2f\x98\x37\x16\x0a\x45\xf1\x9f\xf9\x11\x11\x11\x5c\xef\x0a\x2a\x0d\x6f\xeb\x87\xfb\x4b\xc7\xa7\xf0\xf4\x08\xec\xed\x03\xeb\xe2\x29\xda\xa1\x73\x9c\x5f\xc8\x91\xe1\x03\x6b\x7a\x45\x3d\x6d\xa5\x22\xee\x88\x83\x93\x63\xbe\xfb\x2b\x68\xf1\xfb\x8b\x73\x38\x85\x63\x10\x5b\x91\xa2\x69\x03\x34\xca\x87\x53\x38\x82\xdd\xe7\xc2\x23\xa6\xc1\x3f\xcd\x80\x7f\x3f\xf8\xff\x8d\xb8\xff\x0f\x86\xbc\xeb\xd6\xc7\x47\x04\xec\xbd\xec\x3a\x33\xcc\xa0\x20\x0f\x6c\xdb\x30\x58\x0a\xb9\x95\xb0\xce\x11\xff\x9e\x84\x3d\x24\xff\x06\xdb\x73\x7c\xbb\xa3\xce\x86\xc1\x76\xc3\x90\xb9\xdd\xbf\xdc\x58\x34\xbd\xaa\xd3\xa1\x13\xbf\xe3\xda\x2c\x78\x19\x0c\x67\x1f\xd2\xf2\xc1\x56\x3a\x7d\xde\xdd\x0a\x6a\xdd\x3d\x84\x3b\x5b\xba\x90\x16\xb5\xe4\xe5\xd4\x7d\x6e\xb9\x19\xbb\x7b\xf3\xd6\xdd\x91\x4b\xdf\x20\x7b\x87\x6e\x74\xe0\x84\x6d\xed\xfb\xff\x7e\x1f\xeb\xd8\xf5\x23\x41\xbf\xc3\xae\x47\x78\xc8\xfa\xbb\xc6\xd2\x35\x38\x93\x72\xcd\x37\x66\x52\x96\x8a\xda\x5e\xbe\x79\x2d\x56\x38\xc5\x54\xc9\xcc\xfc\xc5\xde\xc7\xf5\x39\x5d\xb3\x14\x81\x8e\x1e\xec\xa0\xf9\x71\xba\x30\x3c\x64\xd9\x39\xca\xcd\xe3\x19\x42\xe8\x7b\xbc\x59\x76\xc9\xe7\x58\x3e\x0a\x6b\x87\x7d\x9f\xf3\x67\xf5\x48\xee\xa6\x07\x02\xdf\xdb\xa4\xb5\xee\x0a\xaf\x78\x2c\xe6\x0c\xe5\x66\xda\xdd\x92\xb6\x64\x15\x4a\x7b\xdf\x0c\x77\xb1\xf4\x68\xbb\xaf\x7a\xf4\xe3\xbc\xd3\xf6\x53\xfd\x71\xe9\x3b\x92\xfb\x56\xb4\xd7\x57\x15\xaf\x1f\x2f\xf6\x2d\xc5\x3b\x5e\x1f\x71\xc1\xe3\x9a\x50\xdd\xe3\xd8\x73\x40\x63\xac\xaa\x6e\xd0\xa8\x46\xa7\x7f\xf5\x5b\xeb\x1f\x38\x61\x87\xe6\x88\x23\x1e\xdd\x94\xea\x00\xcf\x9e\x43\x6e\xce\x1f\xcf\x0b\x37\xe7\x03\xba\x8a\x0b\x19\xa4\x55\x06\x27\x3b\x77\xd3\x11\x70\x5d\x18\xf8\xf5\xb7\xf6\xd6\xdb\xb1\xa4\x2e\x7e\x74\xde\xb4\x91\xa4\x63\xe5\xac\xbb\xc2\x1c\x43\x7f\x99\xc9\x3c\xef\x6d\x7b\x55\x38\x06\xd8\x5e\x1a\xb6\x67\xb8\x33\xbc\x35\xe6\x75\x23\xd3\xc0\x4f\x5a\xf9\x1d\x71\x3a\x08\x46\x19\x9d\x04\xa3\xef\xe9\xcb\xed\x6b\x67\x52\xf8\x00\x18\x49\xce\x2e\x84\x93\xf7\x83\x2b\xb2\x6c\x54\x92\x10\xf7\xf3\xb7\xc2\x7c\x68\x76\xad\xb2\xde\x36\xa7\x26\xc7\x26\x25\xdc\x29\x5d\x0f\x3a\x14\xd9\x83\x8b\xaa\xee\x62\x7d\x34\xa4\xb8\x13\xa7\xaf\xaf\x19\x6d\xaf\x1a\xf7\xd6\x6e\x35\xe7\x10\x44\xda\x57\xe4\x76\xdd\xa0\x46\x1f\xe4\xdc\x5f\x79\x5f\x47\x0e\x13\xba\xac\x1f\xe9\x2e\xed\x7b\xd6\xdd\x62\x78\x98\xf9\x30\xc4\xa1\xea\x3d\x6c\x82\xce\x7a\xda\x9b\xf3\x83\x53\x34\xf2\x6c\xf3\xa7\x1f\xb5\xf7\x65\xc7\xea\x10\xff\xd8\xab\xc4\xbe\x11\x6b\x6f\x79\x02\x5f\x2d\xfd\x30\x84\x2f\x61\x57\xa2\xae\x59\x7b\xda\xf6\x86\xee\x99\x4a\x68\x92\x65\x7a\x7b\xe1\x37\x6c\x6a\xc7\x4f\xc8\x50\xea\xb3\xdd\xad\xe0\xec\x72\xda\x3a\xd7\x5d\xb0\xe5\xa2\x98\x5d\x4e\x83\xf6\xaf\xd0\x95\x97\xd7\x35\x83\x2d\x53\x7c\xe9\xae\xbb\x27\x32\x73\x4c\x34\xd9\x77\x37\xd7\x07\x7b\xdb\x9a\x4b\x91\x0e\x1a\xc3\xff\x04\x00\x00\xff\xff\xb5\xee\xc0\x8c\xc4\x1e\x00\x00") - -func testImagesAgnhostWebhookMainGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostWebhookMainGo, - "test/images/agnhost/webhook/main.go", - ) -} - -func testImagesAgnhostWebhookMainGo() (*asset, error) { - bytes, err := testImagesAgnhostWebhookMainGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/webhook/main.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostWebhookPatch_testGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xdc\x57\x4d\x6f\xdb\x38\x13\x3e\x8b\xbf\x62\xaa\x17\x6f\x61\x17\x8e\x54\xe7\x54\x78\xd1\x83\x37\x49\xb1\xee\x87\x5d\x44\xce\x16\x45\x1a\x2c\x28\x6a\x24\x31\x91\x48\x96\xa4\xe2\x18\x85\xff\xfb\x82\xfa\x88\xe5\xe6\xa3\x6e\xb7\x3d\xec\x1e\x62\x89\xe4\x70\xe6\x99\x67\x66\x34\x93\xf0\x19\x39\x92\x6a\xad\x79\x96\x5b\x38\x7c\x3e\x7e\x01\xcb\x1c\xe1\x4d\x15\xa3\x16\x68\xd1\xc0\xb4\xb2\xb9\xd4\x26\x20\xe4\x2d\x67\x28\x0c\x26\x50\x89\x04\x35\xd8\x1c\x61\xaa\x28\xcb\x11\xda\x93\x11\xfc\x89\xda\x70\x29\xe0\x30\x78\x0e\x03\x27\xe0\xb7\x47\xfe\xf0\x37\xb2\x96\x15\x94\x74\x0d\x42\x5a\xa8\x0c\x82\xcd\xb9\x81\x94\x17\x08\x78\xc3\x50\x59\xe0\x02\x98\x2c\x55\xc1\xa9\x60\x08\x2b\x6e\xf3\xda\x48\xab\x22\x20\x1f\x5b\x05\x32\xb6\x94\x0b\xa0\xc0\xa4\x5a\x83\x4c\xfb\x52\x40\x2d\x21\x00\x00\xb9\xb5\x6a\x12\x86\xab\xd5\x2a\xa0\x35\xca\x40\xea\x2c\x2c\x1a\x29\x13\xbe\x9d\x1d\x9d\xcc\xa3\x93\x83\xc3\xe0\x39\x21\x67\xa2\x40\x63\x40\xe3\xe7\x8a\x6b\x4c\x20\x5e\x03\x55\xaa\xe0\x8c\xc6\x05\x42\x41\x57\x20\x35\xd0\x4c\x23\x26\x60\xa5\xc3\xb9\xd2\xdc\x72\x91\x8d\xc0\xc8\xd4\xae\xa8\x46\x92\x70\x63\x35\x8f\x2b\xbb\x43\x50\x87\x8a\x1b\xe8\x0b\x48\x01\x54\x80\x3f\x8d\x60\x16\xf9\xf0\xfb\x34\x9a\x45\x23\xf2\x61\xb6\xfc\x63\x71\xb6\x84\x0f\xd3\xd3\xd3\xe9\x7c\x39\x3b\x89\x60\x71\x0a\x47\x8b\xf9\xf1\x6c\x39\x5b\xcc\x23\x58\xbc\x82\xe9\xfc\x23\xbc\x99\xcd\x8f\x47\x80\xdc\xe6\xa8\x01\x6f\x94\x76\xd8\xa5\x06\xee\xa8\xc3\x24\x20\x11\xe2\x8e\xf1\x54\x36\x60\x8c\x42\xc6\x53\xce\xa0\xa0\x22\xab\x68\x86\x90\xc9\x6b\xd4\x82\x8b\x0c\x14\xea\x92\x1b\x17\x3c\x03\x54\x24\xa4\xe0\x25\xb7\xd4\xd6\xeb\x3b\xee\x04\xe4\x59\x48\x88\xa2\xec\xca\x29\x59\x61\x9c\x4b\x79\x45\x08\x2f\x95\xd4\x16\x06\xc4\xf3\x51\x30\x99\x70\x91\x85\x97\x46\x0a\x9f\x78\x7e\x5a\x5a\xf7\xd0\x98\x16\xc8\xea\x57\x8b\xc6\x51\xe8\x13\xe2\x39\x21\x45\x2d\xcb\xc1\xcf\xb8\xcd\xab\x38\x60\xb2\x0c\xf1\x9a\x0a\x95\xdf\xd4\x2a\x0e\xea\x63\x9f\x78\x4c\x6a\xbc\x1e\x83\x7f\xf5\xc2\x04\x5c\x86\x54\xf1\xd0\x6d\x85\xd7\x63\xa7\x73\xbb\x5b\x52\x96\x73\x81\x7a\x1d\xaa\xab\xcc\x6d\x98\xb0\x44\x4b\xc3\xeb\x71\x58\x09\x63\x75\xc5\x6c\xa5\x31\xf1\xc9\x90\x90\xb4\x12\x0c\x96\x68\xec\x7b\x67\x04\xcd\xc0\xc2\xb3\x16\x5d\xb0\x1c\xc2\x17\xe2\x19\x9e\x20\xa3\x7a\x56\x3a\x7f\x5f\x42\x8d\xfd\x80\xbb\x95\x4f\x3c\xb7\x38\xa2\x06\x0d\x4c\x5e\xc2\xf9\x45\xa3\xdc\xdd\xf2\x1a\x9f\x00\xc0\x45\x5e\x64\xc4\xf3\xb8\xe0\x96\xd3\x02\x80\x0b\x8b\x3a\xa5\x0c\xbf\x6c\x88\xe7\xe1\x8d\x42\xe6\x12\x63\x77\xdb\x4a\x87\x0a\xbe\x92\xde\x38\xd5\xee\xaf\xd1\x3f\x01\x26\x45\xca\xb3\x77\x54\xd5\xf8\xc7\x23\x77\xd4\x1a\x72\x87\x8e\xb0\xe0\xa8\x93\xa9\x2f\x7a\xc7\xd4\xd2\x09\x94\x54\x9d\x37\xd0\x2e\x9a\x47\x73\xe8\xf9\x65\xd5\xc4\xfe\xc0\x58\xaa\xad\x3f\x01\x7f\x8d\xc6\xaf\x15\x7b\x9b\xfa\xd1\xfc\x76\xb8\x27\xf0\xf4\xe7\xd8\x81\xbe\xa5\xdd\xf3\x0c\x0f\xc6\x0f\x22\xa9\x7f\x1e\xe6\xe4\xf0\xbf\xcb\xc9\xe1\x63\x9c\x7c\x45\x8a\x92\x89\x99\x09\x6e\x8f\xa4\x70\x5f\x50\xd4\x35\x39\xf7\x72\xf3\x5e\x26\x0d\xa0\x48\x21\xeb\xef\xba\x75\x0b\x75\x47\x95\x99\xc0\xf9\xc5\xd6\xe1\x66\xf3\xcb\x66\x1f\x7e\x7e\x92\xad\x46\xd0\xeb\x9e\x5e\x5d\xad\x8e\x3e\x00\xbf\xfd\x46\x1d\xd0\x24\xc1\xa4\xad\xdc\x51\x27\x38\xa7\x65\x2b\x77\x47\x50\x70\x7b\xc0\x3a\x0b\xdb\x1b\xa7\x68\x64\xa5\x19\x9a\x5b\xb4\xdd\xce\x69\xd3\x43\x4a\x14\xd6\x74\xde\x77\x9e\xdf\x3e\x1f\x4b\xdc\xb4\xb4\x41\xa4\x34\x17\x36\x1d\xb8\x78\x45\xcd\xa7\xa7\x89\x14\xf4\x3f\x44\xc3\x1f\x0e\xdc\x3f\x20\xb2\xa6\x6e\x7c\x3f\x77\xb7\x44\x8d\x7f\x05\x53\x3f\x98\x38\xff\x02\x5f\xef\xb5\xde\x8f\xf4\x1e\x99\xda\x8a\xff\xaa\x14\xdd\x10\xcf\x4d\x11\x7f\x8d\xc0\x75\x3b\x46\x0d\xba\x66\xa7\xa9\xc8\x10\xb6\xfd\xcf\xf9\x21\xe3\xcb\xd7\xd1\x08\x50\x6b\x27\xe1\x7a\x77\xf0\x8e\x6a\x93\xd3\x62\xd0\x5d\x0d\xda\x9c\x1d\xba\x86\x98\xd6\xa2\x4f\x5e\x82\xe0\x45\xad\xc0\xb3\xc1\x2b\x6a\x69\x31\x40\xad\x9d\xc4\xa6\x6b\xa4\x8b\xf8\x72\x47\x6f\xbd\x19\x1c\x23\x93\x09\xd6\xe5\x31\x38\xbf\x88\xd7\x16\xb7\x76\x6a\x89\xe1\xbe\x66\x3a\x3b\x98\xf4\x1c\xe8\x2c\x07\x53\xa5\x8a\xf5\xa0\xf6\x6e\x7f\xdc\x32\xbe\x5c\xae\x55\xc3\x55\x33\xf9\x04\x6e\xbd\x48\xef\xe5\xc2\x49\xbb\x7e\xdf\x93\x9e\xe3\x6a\xd0\x2a\x19\x06\xb3\x6e\x0a\x18\x38\x69\x67\xbe\x25\xf8\x4c\x94\x2d\xc5\x3d\x07\x5a\x6d\xfb\x83\xe5\x29\x3c\xe9\xec\x1e\x23\xaa\x93\xcf\x15\x2d\x06\xad\x9a\x6d\xe0\x83\xae\x0e\x87\x9d\xa6\x13\xad\xa5\x4e\x07\xfe\x27\x71\x3b\xc7\xfc\xff\x7f\xd7\x9f\xc4\x08\x32\x69\xdd\xab\x7f\xcf\xed\x1d\x80\x6e\xaa\x21\x64\xd3\x1b\xc5\x5e\x47\x8b\x79\x1d\xd4\x57\x52\x9f\xf5\x06\xb6\xbb\xb3\x19\xab\xe3\xf4\xb4\x3f\xd5\x05\xfd\x1b\x0e\xe4\x22\xbe\x44\x66\x77\x9a\x6e\x6f\xa4\xaa\xdd\xf0\xaf\xb8\x48\xfc\xb6\xb8\xc0\x8f\x64\x89\x36\x77\xf3\x69\x5d\x08\x3e\x55\xbc\xfd\xe7\xc6\xf5\x5b\x23\x4b\xcc\xb4\xac\x94\x9b\x3b\x1b\x81\x84\x5a\xea\x3f\x6a\xe1\xd1\x11\xa2\x5f\x69\x4c\x3f\x54\x41\xcc\x05\xeb\x6e\x34\x77\x83\xe9\x32\xf9\xfb\x0a\xe6\xab\x01\x72\xb8\x97\x91\x6f\x17\x8b\xf3\xe3\xbb\x54\x2d\xe2\x4b\xa7\xe6\xe1\x50\x6e\xc8\x37\xd3\xfe\xe9\x56\xd7\x7e\xb6\xbb\x84\x74\x63\x99\xb3\xfe\x70\x04\x1f\x1d\xcd\x1e\x9b\x55\x5d\x44\xee\xaf\xae\x2d\xd8\xa0\xc9\xd1\xf3\x26\x91\x2e\x46\xd0\xc7\x35\x6c\xa1\xef\x53\x69\xfd\x7b\x23\x78\xd0\x40\xed\xfc\x86\xfc\x1d\x00\x00\xff\xff\x4a\xcc\x89\x60\x00\x10\x00\x00") - -func testImagesAgnhostWebhookPatch_testGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostWebhookPatch_testGo, - "test/images/agnhost/webhook/patch_test.go", - ) -} - -func testImagesAgnhostWebhookPatch_testGo() (*asset, error) { - bytes, err := testImagesAgnhostWebhookPatch_testGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/webhook/patch_test.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostWebhookPodsGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x58\x5f\x6f\xe3\xb8\x11\x7f\x16\x3f\xc5\x84\xc5\xee\xd9\x5b\x59\x4a\x02\x14\x38\x38\xf5\x83\x9b\xdd\x6b\xdd\xdb\x3a\x41\x9c\xdd\xc3\x21\x0d\x6e\x69\x69\x6c\xb3\x91\x48\x2d\x49\xd9\xeb\xfa\xfc\xdd\x0b\x92\xb2\x2c\xc5\xce\xde\x65\xf7\xae\xe8\x43\x81\x00\x89\x38\xc3\x99\xdf\xfc\x1f\x26\x7e\x45\x2e\x65\xb1\x56\x7c\xbe\x30\x70\x7e\x7a\xf6\x2d\xdc\x2e\x10\xbe\x2f\xa7\xa8\x04\x1a\xd4\x30\x2c\xcd\x42\x2a\x1d\x11\xf2\x96\x27\x28\x34\xa6\x50\x8a\x14\x15\x98\x05\xc2\xb0\x60\xc9\x02\xa1\xa2\x84\xf0\x1e\x95\xe6\x52\xc0\x79\x74\x0a\x1d\xcb\x40\x2b\x12\xed\x5e\x90\xb5\x2c\x21\x67\x6b\x10\xd2\x40\xa9\x11\xcc\x82\x6b\x98\xf1\x0c\x01\x3f\x25\x58\x18\xe0\x02\x12\x99\x17\x19\x67\x22\x41\x58\x71\xb3\x70\x4a\x2a\x11\x11\xf9\xb1\x12\x20\xa7\x86\x71\x01\x0c\x12\x59\xac\x41\xce\x9a\x5c\xc0\x0c\x21\x00\x00\x0b\x63\x8a\x7e\x1c\xaf\x56\xab\x88\x39\x94\x91\x54\xf3\x38\xf3\x5c\x3a\x7e\x3b\xba\x7c\x33\x9e\xbc\xe9\x9d\x47\xa7\x84\xbc\x13\x19\x6a\x0d\x0a\x3f\x96\x5c\x61\x0a\xd3\x35\xb0\xa2\xc8\x78\xc2\xa6\x19\x42\xc6\x56\x20\x15\xb0\xb9\x42\x4c\xc1\x48\x8b\x73\xa5\xb8\xe1\x62\x1e\x82\x96\x33\xb3\x62\x0a\x49\xca\xb5\x51\x7c\x5a\x9a\x96\x83\x76\xa8\xb8\x86\x26\x83\x14\xc0\x04\xd0\xe1\x04\x46\x13\x0a\x7f\x19\x4e\x46\x93\x90\xfc\x30\xba\xfd\xdb\xd5\xbb\x5b\xf8\x61\x78\x73\x33\x1c\xdf\x8e\xde\x4c\xe0\xea\x06\x2e\xaf\xc6\xaf\x47\xb7\xa3\xab\xf1\x04\xae\xbe\x83\xe1\xf8\x47\xf8\x7e\x34\x7e\x1d\x02\x72\xb3\x40\x05\xf8\xa9\x50\x16\xbb\x54\xc0\xad\xeb\x30\x8d\xc8\x04\xb1\xa5\x7c\x26\x3d\x18\x5d\x60\xc2\x67\x3c\x81\x8c\x89\x79\xc9\xe6\x08\x73\xb9\x44\x25\xb8\x98\x43\x81\x2a\xe7\xda\x06\x4f\x03\x13\x29\xc9\x78\xce\x0d\x33\xee\xfb\xc0\x9c\x88\xbc\x8a\x09\x29\x58\xf2\x60\x85\xac\x70\xba\x90\xf2\x81\x10\x9e\x17\x52\x19\xe8\x90\x80\xce\x72\x43\x49\x40\xad\xc5\x62\xae\x29\x21\x01\x7d\xf8\x56\x47\x5c\xc6\xac\xe0\x31\x4b\x2b\x5d\xf1\xf2\x8c\x92\x20\x91\x0a\x97\x67\xd0\xe4\xb0\x47\x9e\x98\xa3\x61\x6d\x62\xce\x92\x05\x17\xa8\xd6\x71\xf1\x30\xb7\x07\x3a\xb6\x4c\x9e\x7d\xc7\xf7\x90\xc9\x79\xbc\x3c\xa7\xa4\x4b\x48\x22\x85\x76\xb0\x0a\x99\xea\x91\xe0\xe6\x52\x0a\x9b\x41\xa8\xae\x99\x49\x16\xe0\x51\xc2\x00\x3e\xdc\x91\x20\x80\x0d\x95\x05\xed\x53\x96\xa6\x34\xa4\x05\x33\x0b\xda\xa7\xb1\xf5\x5d\xcc\x9b\x77\x35\x0d\xe9\x92\x65\x25\xd2\xfe\xdd\x86\xf2\x9c\xcd\x91\xf6\x69\xe5\x8c\x1e\x4b\x53\x4c\x7b\xfe\x34\xa4\x82\xe5\x47\x88\x82\x9b\x5e\xb2\x13\x47\x43\xaa\x50\xcb\x52\x25\xa8\x69\x7f\xb3\xdd\xde\x6f\x49\x70\xff\xc1\x83\x9e\xf0\x14\x13\x76\x14\x6e\x13\x2d\xb4\xe1\xd6\xb2\x75\xdc\xdb\x83\xdd\x63\x7d\xb1\x7c\x0a\x9a\xf6\xfa\x0e\x30\x79\x48\x5d\x42\xe2\x18\xa4\xc8\xd6\xc0\xb2\x4c\xae\xc0\x42\xb4\x85\x51\x94\x59\x06\x4e\xba\x86\x99\x92\xf9\x3e\xe3\x14\xce\x6d\xfa\xaf\x23\x32\x2b\x45\x02\x36\x01\xcc\xb5\x4c\x75\x87\x29\x58\x9e\x45\xc3\x5d\x42\xdc\xe0\x92\xe3\xaa\x0b\xaf\xda\x87\xba\x90\x36\x91\x37\x24\xb0\x71\x8d\xde\x77\xce\xbb\xd1\x48\xcc\x64\x87\x3a\x49\xc6\x65\xb0\x4c\x35\xed\x3a\x7f\xdd\x54\xa0\xa1\x3f\x00\x9f\x3f\xd1\x5f\x95\x2c\x8b\xaa\x3d\xed\xc8\x1b\x77\xd8\x07\x4a\xeb\xce\xd5\x07\xba\x3c\xa3\x21\xec\x58\xfa\x40\x9d\xdc\x2d\x09\xf8\x0c\x98\x8a\x6e\xf0\x63\x89\xda\x44\xb5\x8a\x93\x01\x34\x35\x6e\x48\x10\xa0\x52\x56\xf3\x2c\x37\xd1\x1b\xa5\xa4\x9a\x75\x28\x7e\x2a\x30\x31\xb0\xf3\xa6\x75\xd6\x14\xe1\x85\xa6\x61\xf3\x76\x97\x04\xde\x40\x77\xad\x83\x4a\xd9\x13\x85\xa6\x54\x02\x8c\x7c\x7f\x76\xe0\x92\x8a\x67\x4b\x48\xa0\xd8\xca\x6a\x6d\x60\xbc\x9a\xfe\x0b\x13\x13\xdd\xb0\x95\xf3\x8a\xa5\xfa\x52\x8b\xae\x65\xba\xd9\x92\x20\x45\x8d\x8a\xb3\x8c\xff\x1b\x95\xa7\xa6\x98\xe8\xe8\x9d\xe0\x4b\x54\x9a\x65\xaf\x1b\xf4\x4e\xd7\xb9\xe0\xa7\xd0\xfe\x54\x16\x36\xef\x47\xaf\xd1\x5e\xef\x28\xb6\x0a\x41\xf0\x2c\x84\x97\x85\x4c\xbb\x17\x8e\xf7\x64\x60\x8f\x9c\x73\xbe\xd0\xbe\x40\xb9\xcc\xa8\x53\xa1\x3f\x80\x63\x29\xb2\x39\xe0\x8c\x86\x36\x45\x31\x85\x01\x18\x55\x22\x21\xc1\x92\x29\xc8\xf5\xbc\xaa\x23\x67\xd5\x32\x04\xf9\x60\x65\x16\x32\x8d\xde\xb2\x29\x66\xfa\xae\x2e\x09\x3c\xc7\x9e\x41\x6d\xe8\xfd\x85\xe5\xb2\x46\xd8\x2b\x30\x18\x40\xcd\x93\x72\xed\x4a\x81\x3a\xf2\xd3\x10\x66\x2c\xd3\x68\x39\x2c\x80\x81\x83\xf1\x47\xa0\xb6\xb5\xda\x00\x55\x05\x6b\x3b\xee\x8a\x09\x3b\x28\x32\x8b\xe5\x02\x28\x09\xac\x0f\x1a\x7a\x19\x37\xbd\x99\x0d\x26\xaa\xaf\xd3\xa9\x76\x1e\xd5\x0b\x59\x66\xa9\x9b\xce\x53\x04\x8d\xc2\x78\xbd\xc1\x9f\x7b\x39\x7b\xc0\x4e\xb2\x60\x02\xb8\x30\x5d\x88\x63\x98\x64\x88\x05\x54\x00\xa0\x07\x42\x82\x14\xee\x96\xef\x04\x6e\xb6\xdb\x1b\x02\x33\x8f\x7d\x4b\x02\x3b\x87\x7e\x0a\xa1\x6e\x4b\xd6\xe1\x8a\x89\xb9\x03\x12\x4d\x0a\x4c\xa2\x7d\x77\xdd\xf9\xb9\x1a\x21\x3b\x8a\xee\xd4\xd7\xa3\x31\xcb\x31\x3c\x12\x83\xee\x6f\x1c\x84\x3d\x60\xdb\x2c\xeb\x68\xf8\x9e\x70\xf2\x84\x9a\x0d\x39\x40\x70\x83\xba\xcc\x0c\x0c\xe0\x65\xd5\x94\x26\x86\x99\x52\x6f\xfe\x81\x5a\xb3\x39\xf6\x6b\x5b\x6f\x15\xcf\x27\x05\x4b\xb0\x93\xeb\x79\x77\x5b\xe5\xbf\xab\x92\x97\x6d\x99\x64\x4b\x7c\x47\xcd\x4b\xc3\x0c\x7e\x51\x4b\xf5\x81\x77\xb3\xe5\xda\x77\x09\x2b\xb1\x63\x7d\xf1\x6a\xdf\x2f\xba\x30\x95\x32\xdb\x45\xc5\x06\xcc\xba\xdf\x56\x76\x1d\x00\x23\x7b\x53\xec\x79\x24\x69\x9d\x95\x0e\xf6\xce\xe5\xdb\x7d\xbd\x9f\x2c\x98\xae\xc3\xdd\xa9\x33\xa0\x35\x9f\x75\x23\xbc\x47\x87\x66\xb7\xe9\x1b\xbb\xb3\xad\xaf\xa5\x37\xa5\xc3\x54\x08\x6d\xd3\x5c\xaf\x3d\xb2\x00\x74\x8f\x78\xb1\x9a\xb8\xcf\x76\xa6\xcd\x58\x7f\x75\x64\xe7\xa0\x2b\x56\x5a\x25\x83\x0f\xe0\xd1\xb6\x65\x5d\x55\x65\x4e\xdf\x3b\x2b\xb4\x47\x3e\x63\xfa\x8f\x13\xc6\x92\x02\xff\x77\x1f\x80\x7e\xc7\x78\x56\x2a\xa4\xee\x4a\x50\x67\x13\x1d\x4b\x3f\x8c\x77\x63\xd8\x6f\xb6\x6e\x13\xf4\x10\xfd\x7e\x02\x05\x53\x2c\x47\x63\x77\x10\x27\xe1\x52\xa6\xd8\xb7\x3b\xf4\x9f\x4e\x4f\xdd\xc9\x36\xac\x33\xfe\xd9\xc9\xf2\xf9\x68\x7f\x26\xd2\xbb\x1d\xe4\x99\x21\xb6\x53\x77\x52\x28\x2e\xcc\xac\xf3\x78\x75\x0a\x5b\xb1\xe9\xee\xe3\xde\x02\xb7\x5f\x9b\xe0\xee\xbe\xb2\xa9\xa6\x36\xda\x97\xcb\x7f\x5f\xb2\x7b\x7b\x9f\xee\x71\xc9\x41\x6b\x6b\x77\x32\x9b\x2a\x6d\xd9\xcd\x02\x72\xb3\x6b\x17\x84\x56\x51\xed\x6c\x78\xec\x9a\x23\x79\xfb\xd8\x5b\x3e\x76\x07\x71\x0b\xa1\x68\x2c\x9a\xcf\x58\xc6\x5c\xf9\xfc\x6f\xed\x62\xfb\x75\xe3\x59\x5b\x58\xe5\x61\xc1\xb3\xff\x2f\x57\xcf\x58\xae\x5c\xfb\x6b\xa5\x58\xc7\x01\x3d\x36\x0d\xfd\x63\x66\x00\x77\xf7\xd3\xb5\xc1\x4e\xe1\x3b\x71\x10\x14\xa6\xd2\xef\x18\x6e\xd7\x05\xfe\x7d\x72\x35\x76\x1f\x4f\x08\xb1\x3c\x76\xaa\x16\xe6\x17\x26\x65\x1c\x43\x8a\x62\x3d\xa9\x5e\x25\x43\x63\x58\xb2\xc8\x51\x18\x7b\xcc\x51\xc3\x87\x87\x72\x8a\x89\xc9\x80\x39\x12\xf8\x89\xe6\x3f\x30\xed\xd9\x38\xf7\x38\xf4\x92\x41\x5d\xa8\x67\xd4\xbd\x85\x14\xe0\xc7\x92\x2f\x59\x66\x85\x25\x19\xb7\xbf\x94\xcf\x14\x5d\xbd\x79\x8e\x6b\xfe\xea\x07\xd0\x82\x89\x34\xb3\x35\xe7\x51\x36\xab\xaf\x5d\x25\xf5\xb8\x3e\x34\xea\x57\x0c\xa8\x7a\x38\xd9\x38\xfb\x2e\xf4\x3b\x16\x37\x86\xc0\xaa\x75\x7c\xc7\x10\x1e\xab\xf8\x0b\x70\x26\xb1\xe7\x3e\xbb\x42\x98\x4b\xe3\x0b\xdf\x0a\xfe\x8a\x77\x57\x13\x2d\xf5\x3e\xa5\x2d\xa8\x93\x72\xfa\x4c\xb4\xba\x9c\xfe\x8e\x80\x7f\x45\x2f\xf3\xd9\x79\x55\xf8\xff\xfe\xb4\x1a\x5b\x8b\xf4\xdf\xe9\x72\x2d\x95\xbf\x5d\xcb\x7b\x54\x47\xcd\xb5\x81\x3e\xd6\x3a\x78\xf1\x87\xe5\x3f\x85\x9f\x12\x6d\x38\xde\xa2\x93\xc7\xe7\xd1\xc4\xa4\x5c\xc0\xcf\x3f\x1f\xdc\xd8\x6f\x12\xae\x16\x1b\x7d\xe4\x8b\x6a\xf0\x97\x96\xca\xc3\x9d\xf2\x33\x2b\xe5\x7e\x73\xdc\xf7\x12\x23\xdd\xa3\xe8\x9b\xc3\xa6\xf1\x0d\x70\xed\x5e\x8b\xcc\xeb\x70\xcb\xa3\xdd\x14\xb7\x64\x4b\xfe\x13\x00\x00\xff\xff\x16\xa1\xb8\xcd\x57\x16\x00\x00") - -func testImagesAgnhostWebhookPodsGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostWebhookPodsGo, - "test/images/agnhost/webhook/pods.go", - ) -} - -func testImagesAgnhostWebhookPodsGo() (*asset, error) { - bytes, err := testImagesAgnhostWebhookPodsGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/webhook/pods.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesAgnhostWebhookSchemeGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa4\x92\x4f\x4f\xeb\x46\x14\xc5\xd7\xcc\xa7\x38\xca\x2a\x41\xa9\x0d\xac\x50\x2b\x16\x6e\x00\xd5\x82\x26\x12\x0e\x45\x2c\x27\xe3\x1b\xfb\x2a\xf6\x8c\x3b\x33\x8e\x49\x2b\xbe\xfb\x93\x1d\xe7\x91\x04\x78\x7a\x7f\x96\xb9\xe7\x77\xcf\x39\xbe\x99\xf0\x54\x4c\x4c\xb5\xb1\x9c\xe5\x1e\x17\x67\xe7\x97\x98\xe7\x84\xbb\x7a\x41\x56\x93\x27\x87\xa8\xf6\xb9\xb1\x2e\x10\xe2\x9e\x15\x69\x47\x29\x6a\x9d\x92\x85\xcf\x09\x51\x25\x55\x4e\xe8\x95\x31\xfe\x21\xeb\xd8\x68\x5c\x04\x67\x18\xb6\xc0\xa0\x97\x06\xa3\x3f\xc4\xc6\xd4\x28\xe5\x06\xda\x78\xd4\x8e\xe0\x73\x76\x58\x72\x41\xa0\x17\x45\x95\x07\x6b\x28\x53\x56\x05\x4b\xad\x08\x0d\xfb\xbc\x0b\xe9\x2d\x02\xf1\xdc\x1b\x98\x85\x97\xac\x21\xa1\x4c\xb5\x81\x59\xee\x53\x90\x5e\x08\x00\xc8\xbd\xaf\x7e\x0f\xc3\xa6\x69\x02\xd9\xb5\x0c\x8c\xcd\xc2\x62\x4b\xb9\xf0\x3e\x9e\xdc\x4c\x93\x9b\xdf\x2e\x82\x33\x21\x1e\x75\x41\xce\xc1\xd2\xbf\x35\x5b\x4a\xb1\xd8\x40\x56\x55\xc1\x4a\x2e\x0a\x42\x21\x1b\x18\x0b\x99\x59\xa2\x14\xde\xb4\x3d\x1b\xcb\x9e\x75\x36\x86\x33\x4b\xdf\x48\x4b\x22\x65\xe7\x2d\x2f\x6a\x7f\x70\xa0\x5d\x2b\x76\xd8\x07\x8c\x86\xd4\x18\x44\x09\xe2\x64\x80\x3f\xa3\x24\x4e\xc6\xe2\x29\x9e\xff\x35\x7b\x9c\xe3\x29\x7a\x78\x88\xa6\xf3\xf8\x26\xc1\xec\x01\x93\xd9\xf4\x3a\x9e\xc7\xb3\x69\x82\xd9\x2d\xa2\xe9\x33\xee\xe2\xe9\xf5\x18\xc4\x3e\x27\x0b\x7a\xa9\x6c\xdb\xdd\x58\x70\x7b\x3a\x4a\x03\x91\x10\x1d\x84\x2f\xcd\xb6\x8c\xab\x48\xf1\x92\x15\x0a\xa9\xb3\x5a\x66\x84\xcc\xac\xc9\x6a\xd6\x19\x2a\xb2\x25\xbb\xf6\xcf\x73\x90\x3a\x15\x05\x97\xec\xa5\xef\x7e\xbf\xfb\x9c\x40\x9c\x86\x42\x54\x52\xad\x5a\x93\x86\x16\xb9\x31\x2b\x21\xb8\xac\x8c\xf5\x18\x8a\x13\x99\xf6\x66\xeb\x73\x0c\x56\x97\x2e\x60\x13\xca\x8a\xc3\xaf\xf3\x70\x7d\x3e\x38\xc0\x16\xe4\xe5\xe7\x6c\xa7\xee\x2f\x58\xca\xda\x73\x76\x05\x3f\xcb\xd8\x67\x8e\xf2\x0e\xd7\xbf\x91\x7d\xe4\xb1\xeb\xa1\x8c\xa5\xa3\xd8\x76\xb4\x4d\xd9\x9b\x96\x52\xe5\xac\xc9\x6e\xc2\x6a\x95\x85\xb6\xd6\x9e\x4b\xfa\x0e\x24\x74\x64\x59\x16\xfc\x1f\xd9\x81\x38\xa9\x3d\x17\xbd\x80\x4f\x37\x5b\xe8\x2d\x61\x24\xc4\x5a\x5a\x38\x95\x53\x49\xb8\x42\x2f\x04\x53\x6a\x92\x6e\x36\x1c\x75\x80\x32\x29\x29\x87\x2b\xbc\x05\xb6\xcc\xa4\x1d\xdf\x4a\xe5\x8d\xdd\x0c\xb7\x26\x23\x21\x96\xb5\x56\x60\xcd\x7e\x38\xc2\xff\xed\x35\xd3\xb9\xe9\xdd\x76\xcc\x6b\x4f\xbd\xd7\x70\xba\xeb\xb0\x1d\x77\x16\x7b\x5f\x16\xfc\x5d\x3b\x3f\xdc\x1e\x36\x88\xde\x5b\x8f\x3e\xa0\x8f\xdf\xcf\x0f\xef\x7d\xf0\x0e\x7e\x22\xfb\x17\x63\x3f\x5e\x7f\x15\x5f\x02\x00\x00\xff\xff\xff\xeb\x6a\xaa\x9b\x05\x00\x00") - -func testImagesAgnhostWebhookSchemeGoBytes() ([]byte, error) { - return bindataRead( - _testImagesAgnhostWebhookSchemeGo, - "test/images/agnhost/webhook/scheme.go", - ) -} - -func testImagesAgnhostWebhookSchemeGo() (*asset, error) { - bytes, err := testImagesAgnhostWebhookSchemeGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/agnhost/webhook/scheme.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesApparmorLoaderBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x4d\xcc\x29\xc8\xcc\x4b\xb5\x32\xd6\xb3\xe0\x82\x0a\x17\xe5\xda\x26\x16\xe5\x1a\x1b\x95\x99\xe9\x63\x93\x04\xe9\x01\x91\x65\x16\x98\xd2\x05\x05\xc9\x66\x26\x39\xa9\xb6\x50\x1a\x59\x01\x20\x00\x00\xff\xff\x60\x32\x37\xfb\x74\x00\x00\x00") - -func testImagesApparmorLoaderBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesApparmorLoaderBaseimage, - "test/images/apparmor-loader/BASEIMAGE", - ) -} - -func testImagesApparmorLoaderBaseimage() (*asset, error) { - bytes, err := testImagesApparmorLoaderBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/apparmor-loader/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesApparmorLoaderDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x93\x41\x73\xab\x36\x14\x85\xf7\xfa\x15\x67\xa0\x8b\x76\xc6\x40\xea\x45\x17\xed\x74\xc1\xb3\xfd\xde\x63\x5e\x0c\x29\xd8\xcd\x78\x3a\x99\x8c\x8c\xae\x41\x53\x59\x52\x24\x11\xe2\x7f\xdf\x01\x27\x69\xd3\xc7\x8a\xcb\x3d\x1c\xbe\x7b\x0f\x8a\xb1\x32\xf6\xe2\x64\xd7\x07\x2c\x6f\x7e\xfe\x05\xbb\x9e\xf0\x6d\x38\x92\xd3\x14\xc8\x23\x1f\x42\x6f\x9c\x4f\x59\xcc\x62\xdc\xca\x96\xb4\x27\x81\x41\x0b\x72\x08\x3d\x21\xb7\xbc\xed\xe9\xad\xb3\xc0\x9f\xe4\xbc\x34\x1a\xcb\xf4\x06\x3f\x4e\x82\xe8\xb5\x15\xfd\xf4\x1b\x8b\x71\x31\x03\xce\xfc\x02\x6d\x02\x06\x4f\x08\xbd\xf4\x38\x49\x45\xa0\x97\x96\x6c\x80\xd4\x68\xcd\xd9\x2a\xc9\x75\x4b\x18\x65\xe8\xe7\xcf\xbc\x9a\xa4\x2c\xc6\xe1\xd5\xc2\x1c\x03\x97\x1a\x1c\xad\xb1\x17\x98\xd3\x7f\x75\xe0\x61\x06\x9e\xae\x3e\x04\xfb\x6b\x96\x8d\xe3\x98\xf2\x19\x36\x35\xae\xcb\xd4\x55\xe8\xb3\xdb\x62\xb5\x29\x9b\x4d\xb2\x4c\x6f\xe6\x57\xf6\x5a\x91\xf7\x70\xf4\x34\x48\x47\x02\xc7\x0b\xb8\xb5\x4a\xb6\xfc\xa8\x08\x8a\x8f\x30\x0e\xbc\x73\x44\x02\xc1\x4c\xbc\xa3\x93\x41\xea\x6e\x01\x6f\x4e\x61\xe4\x8e\x58\x0c\x21\x7d\x70\xf2\x38\x84\x0f\xcb\x7a\xa3\x93\xfe\x83\xc0\x68\x70\x8d\x28\x6f\x50\x34\x11\x3e\xe5\x4d\xd1\x2c\x58\x8c\xfb\x62\xf7\xb5\xda\xef\x70\x9f\xd7\x75\x5e\xee\x8a\x4d\x83\xaa\xc6\xaa\x2a\xd7\xc5\xae\xa8\xca\x06\xd5\x67\xe4\xe5\x01\xdf\x8a\x72\xbd\x00\xc9\xd0\x93\x03\xbd\x58\x37\xf1\x1b\x07\x39\xad\x91\xc4\xb4\xb3\x86\xe8\x03\xc0\xc9\x5c\x81\xbc\xa5\x56\x9e\x64\x0b\xc5\x75\x37\xf0\x8e\xd0\x99\x67\x72\x5a\xea\x0e\x96\xdc\x59\xfa\x29\x4c\x0f\xae\x05\x8b\xa1\xe4\x59\x06\x1e\xe6\x27\xdf\x0d\x95\x32\x96\xd7\x5f\x26\xfa\x4d\xb1\xcd\xbf\x6c\xd8\xe7\xba\xda\xe2\x87\x7f\x6b\xb6\xaa\xab\xa6\x79\xfc\xb4\x2f\x6e\xd7\x8f\xab\xea\xee\x80\x27\x3a\x0f\xc9\x1f\x9b\xed\x3e\xaf\x57\x5f\x13\x3f\x59\xb7\xc8\x06\xef\xb2\xa3\xd4\x19\x63\xf5\xbe\x04\xb7\x7f\x83\x0b\x31\x65\xc0\xdd\xd9\x38\x28\x79\x7c\xbf\x4f\x92\xc1\x0a\x1e\x28\x69\xe7\x9f\x30\x49\x1c\x59\xe3\x65\x30\xee\xf2\x16\xbb\x50\x49\x2b\x74\xca\x95\x95\x9a\x94\xd4\xc3\xcb\x1c\xff\xb5\xce\x48\x74\x94\x05\xf2\x53\x7e\x19\x92\x84\x2b\x65\xc6\x64\xd0\xc1\x0d\x3e\x90\x60\x2c\x5f\xaf\xa1\x0c\x9f\x66\x7d\x07\xbb\xd6\x8c\x6d\xca\x5d\x7d\xb8\xab\x8a\x72\x87\xbf\xa2\xff\x75\xa3\x05\xa2\x44\x99\x2e\x18\x1f\x04\xb9\x6b\xfd\xfc\xfb\x32\x7a\x60\x2c\xc6\x9a\x4e\x7c\x50\x01\x42\x3a\x6a\x67\xda\x60\x30\xf2\xd0\xf6\x29\x5b\x6d\xd7\x93\x9d\x75\x66\x3a\x16\x3e\x7a\x60\xff\x04\x00\x00\xff\xff\x50\x23\xa2\xf6\xa3\x03\x00\x00") - -func testImagesApparmorLoaderDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesApparmorLoaderDockerfile, - "test/images/apparmor-loader/Dockerfile", - ) -} - -func testImagesApparmorLoaderDockerfile() (*asset, error) { - bytes, err := testImagesApparmorLoaderDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/apparmor-loader/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesApparmorLoaderMakefile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x51\x6b\xdb\x3e\x14\xc5\x9f\xff\xfa\x14\x87\xb8\x0f\x09\xa4\x4e\xff\x65\x74\xd0\x51\x86\x97\x64\xa9\x69\x67\x0f\x3b\x6d\xe9\x53\x91\xed\x1b\xfb\x82\x22\x79\x92\x3c\x27\xdf\x7e\x28\x6d\x61\x65\x7a\xbb\xf7\x9e\x7b\xf4\xd3\x51\x84\xa5\xe9\x8f\x96\xdb\xce\xe3\xf2\xe2\xff\x2b\x6c\x3b\xc2\xdd\x50\x91\xd5\xe4\xc9\x21\x19\x7c\x67\xac\x8b\x45\x24\x22\xdc\x73\x4d\xda\x51\x83\x41\x37\x64\xe1\x3b\x42\xd2\xcb\xba\xa3\xf7\xc9\x1c\x8f\x64\x1d\x1b\x8d\xcb\xf8\x02\xd3\x20\x98\xbc\x8d\x26\xb3\x2f\x22\xc2\xd1\x0c\xd8\xcb\x23\xb4\xf1\x18\x1c\xc1\x77\xec\xb0\x63\x45\xa0\x43\x4d\xbd\x07\x6b\xd4\x66\xdf\x2b\x96\xba\x26\x8c\xec\xbb\xd3\x35\x6f\x26\xb1\x88\xf0\xfc\x66\x61\x2a\x2f\x59\x43\xa2\x36\xfd\x11\x66\xf7\xb7\x0e\xd2\x9f\x80\xc3\xe9\xbc\xef\xaf\x17\x8b\x71\x1c\x63\x79\x82\x8d\x8d\x6d\x17\xea\x55\xe8\x16\xf7\xe9\x72\x9d\x95\xeb\xf3\xcb\xf8\xe2\xb4\xf2\xa0\x15\x39\x07\x4b\xbf\x06\xb6\xd4\xa0\x3a\x42\xf6\xbd\xe2\x5a\x56\x8a\xa0\xe4\x08\x63\x21\x5b\x4b\xd4\xc0\x9b\xc0\x3b\x5a\xf6\xac\xdb\x39\x9c\xd9\xf9\x51\x5a\x12\x11\x1a\x76\xde\x72\x35\xf8\x0f\x61\xbd\xd3\xb1\xfb\x20\x30\x1a\x52\x63\x92\x94\x48\xcb\x09\xbe\x25\x65\x5a\xce\x45\x84\xa7\x74\x7b\x9b\x3f\x6c\xf1\x94\x14\x45\x92\x6d\xd3\x75\x89\xbc\xc0\x32\xcf\x56\xe9\x36\xcd\xb3\x12\xf9\x77\x24\xd9\x33\xee\xd2\x6c\x35\x07\xb1\xef\xc8\x82\x0e\xbd\x0d\xfc\xc6\x82\x43\x8c\xd4\x84\xcc\x4a\xa2\x0f\x00\x3b\xf3\x0a\xe4\x7a\xaa\x79\xc7\x35\x94\xd4\xed\x20\x5b\x42\x6b\x7e\x93\xd5\xac\x5b\xf4\x64\xf7\xec\xc2\x67\x3a\x48\xdd\x88\x08\x8a\xf7\xec\xa5\x3f\x75\xfe\x79\x54\x2c\x44\x59\x2c\xcb\x1b\x65\x64\x43\x56\xe4\x25\xbe\xde\x40\xb1\x1e\x0e\x22\x29\x96\xb7\xa1\x92\xfb\xe6\xea\x93\xd8\x26\xc5\x66\xbd\x0d\xf5\xd9\x74\xf9\x50\xac\xd2\x62\x26\x36\x79\x52\xfc\x08\xad\xcf\x62\x93\xdf\x27\xd9\xe6\xe5\x71\x5d\x94\x69\x9e\x9d\x4c\xa4\x27\xe7\x83\xfb\xcb\x2a\x2d\x10\xf6\xb4\xf1\x0d\x5b\x9c\x4d\x5d\x47\x4a\xa1\x1f\x9b\xd9\x4c\xd0\xa1\x37\xd6\x0b\x51\xb1\xbe\x16\xff\xc5\xf1\x82\xf7\xb2\xa5\xf3\xc1\xb3\x8a\x5d\x87\x8a\x35\xce\xa6\x81\x71\x26\x44\xfc\xf3\x36\xcf\x9e\xaf\x43\x53\xfc\x09\x00\x00\xff\xff\xc9\x5a\xa2\x25\x03\x03\x00\x00") - -func testImagesApparmorLoaderMakefileBytes() ([]byte, error) { - return bindataRead( - _testImagesApparmorLoaderMakefile, - "test/images/apparmor-loader/Makefile", - ) -} - -func testImagesApparmorLoaderMakefile() (*asset, error) { - bytes, err := testImagesApparmorLoaderMakefileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/apparmor-loader/Makefile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesApparmorLoaderOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xc9\xcc\x2d\xe6\x02\x04\x00\x00\xff\xff\xe2\x68\x65\xd7\x14\x00\x00\x00") - -func testImagesApparmorLoaderOwnersBytes() ([]byte, error) { - return bindataRead( - _testImagesApparmorLoaderOwners, - "test/images/apparmor-loader/OWNERS", - ) -} - -func testImagesApparmorLoaderOwners() (*asset, error) { - bytes, err := testImagesApparmorLoaderOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/apparmor-loader/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesApparmorLoaderVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe4\x02\x04\x00\x00\xff\xff\x9e\xc5\x88\x7d\x04\x00\x00\x00") - -func testImagesApparmorLoaderVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesApparmorLoaderVersion, - "test/images/apparmor-loader/VERSION", - ) -} - -func testImagesApparmorLoaderVersion() (*asset, error) { - bytes, err := testImagesApparmorLoaderVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/apparmor-loader/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesApparmorLoaderExampleConfigmapYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x94\x5f\x6f\xeb\x44\x10\xc5\xdf\xfd\x29\x46\xea\x0b\x44\x4e\x17\x24\x84\x20\x02\x04\xba\xe8\xbe\x20\x04\x02\x89\x97\xe8\x26\x1a\xef\x8e\xed\xbd\xde\x7f\xcc\x8e\xe3\x86\xd2\xef\x7e\x65\x37\x69\xd3\xdb\x6d\xfb\x90\x97\xf3\x9b\x3d\x7b\x66\x67\xe2\x2b\xf8\x25\x00\xdd\xa0\x4f\x8e\xe0\x5d\x0c\xad\xed\x7e\xc7\x04\x86\x7c\x0c\x59\x18\xc5\x86\x0e\xfa\x38\x41\xe2\xd8\x5a\x47\x19\x34\x06\x68\x08\xb2\x44\x26\x03\x98\xe1\xb7\xb1\x21\x0e\x24\x94\x21\x36\x1f\x49\x4b\xae\x01\x83\x01\x17\xd1\x90\x81\xe6\x58\x5d\x81\xf4\x04\x98\x12\xb2\x8f\xbc\x5e\x00\xc3\xaf\x38\x5f\xf2\x37\xc9\x75\x55\x61\xb2\xff\x10\x67\x1b\xc3\x06\x0e\x5f\x57\x83\x0d\x66\xf3\x18\xa7\xf2\x24\x68\x50\x70\x53\x01\x04\xf4\xb4\x79\x34\x3b\xe7\x3a\x91\x9c\x50\x5f\xe0\xea\x7c\xea\x0a\xde\x5b\x47\x73\x05\x0c\xdf\xe5\x75\xe8\x6c\xb8\x01\x8f\x29\x83\xc4\x25\x9d\xa1\xd6\x06\x2b\x36\x06\x88\xed\xa2\xdc\xd7\x9c\xfc\xaf\x2b\x78\x3c\xb8\x81\xff\xd7\x15\x00\xc0\x95\x0d\xda\x8d\x86\xe0\x07\x19\x03\x36\x8e\xb2\xea\x5c\x6c\xd0\xfd\x54\xdd\x73\x78\xcf\xd1\x43\x2f\x92\xf2\x46\xa9\xce\x4a\x3f\x36\xd7\x3a\x7a\xf5\xb1\x65\xfc\x8f\x9c\x23\xd5\x60\x20\xd5\xb8\xd8\x28\x8f\x59\x88\x95\x89\x7a\x20\xbe\xbf\x69\x9d\x97\xc9\x2c\x66\xa7\x24\x17\xf9\x5b\x87\x5d\xfe\xf1\x0b\x14\x41\xdd\xef\x8d\xcd\x3a\x86\x40\x5a\xc8\xd4\x9e\x8c\x45\xa1\xbd\x21\x47\x42\xe6\x4b\xb8\x5d\x3c\x2e\x23\x63\x33\x0f\x58\xcf\x2d\x67\xd5\x60\xa6\x53\x68\x80\x40\x32\x45\x1e\xc0\x06\x12\x10\x9d\xea\x92\x3e\x9a\xb2\x6e\xb5\x4f\xf5\xd9\xc9\x50\x38\x3e\x60\xc6\xa9\x0c\x12\xea\x81\xe4\x81\xcd\x5d\x9e\xad\x47\x1f\xc7\x20\x4f\x8f\xa9\xc6\x06\xb5\x5a\xc1\xe4\xea\xa7\x72\x8c\x52\xd2\x0d\x1d\x4a\x32\x89\x2e\xc9\x7d\xf4\x54\xd2\x9d\x6d\x5e\x90\xbf\xfd\xa6\x04\x96\x09\x14\x41\x28\xa6\x8c\xa9\x28\x27\x8e\xc5\x98\xfc\x42\xb3\xf9\x85\xc7\xc9\x5c\x7c\x04\xf1\xa9\x58\x7d\xcc\x25\x79\xcc\x7c\x96\x4f\x3a\x8e\xc6\x0a\x2c\xe2\x83\xa6\x0e\xc8\x8a\xc7\xa0\x96\x2d\xbd\x4e\xd6\x5c\xc2\xd9\x63\x09\x79\xbf\xc3\xf6\xa6\x30\x5c\x83\xb9\x07\xcf\xd3\xe0\x6e\xea\x67\xf0\x05\x34\xfb\xce\x58\x62\x7a\xe0\xa7\x02\x8d\x09\x1b\xeb\xac\x1c\x41\xf7\x71\x0a\xf5\x73\xdd\xa0\xde\xc7\x03\x31\x5b\x43\x05\x9c\x49\x46\x6b\xca\xa0\x2b\x82\x40\xb2\x6f\x6c\x30\xfb\x4c\x7c\xb0\x9a\x9e\x76\xf9\xf3\xed\x9f\x7f\xfd\xf1\xee\x4e\xdd\xae\xea\xd5\x6a\xb7\xfd\x6a\xfd\xfd\xea\x43\x3d\x3f\xfa\x30\x7f\x4a\x9d\xca\xbd\x5f\xdd\xc1\x34\x3c\xed\xf1\x7c\x2a\x1f\x33\xff\xbb\x16\xb6\x5d\x47\x0c\xcf\xdf\xe2\x5c\xe7\xc9\xbf\x42\x87\x37\xb0\x8e\x4c\x05\x7e\xfa\x43\x7e\xbe\x2d\xdb\x5d\xfb\x61\xb5\xec\xc1\xb3\xc9\xcc\xb8\xdd\xee\xf2\xab\x7c\x76\xd0\x6f\x54\xe8\xed\xae\x7b\xab\xa4\xdb\xee\xf8\xd5\x1a\xcb\x7e\x42\x26\x45\xad\x9d\x7f\x07\xe4\x65\xd5\x0b\x1b\x75\x39\x0f\xd2\x23\x5b\x39\x7e\x56\x79\x57\x7d\x0a\x00\x00\xff\xff\x7e\x92\x58\xad\x40\x07\x00\x00") - -func testImagesApparmorLoaderExampleConfigmapYamlBytes() ([]byte, error) { - return bindataRead( - _testImagesApparmorLoaderExampleConfigmapYaml, - "test/images/apparmor-loader/example-configmap.yaml", - ) -} - -func testImagesApparmorLoaderExampleConfigmapYaml() (*asset, error) { - bytes, err := testImagesApparmorLoaderExampleConfigmapYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/apparmor-loader/example-configmap.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesApparmorLoaderExampleDaemonYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x54\xc1\x6e\xdb\x3a\x10\xbc\xeb\x2b\x06\xf0\xd9\x76\x1e\x72\xf3\x2d\xc8\x3b\xbe\xbc\x16\x68\xd0\xfb\x86\x5c\x5b\x44\x49\x2e\x4b\xae\x9c\xf8\xef\x0b\x4a\xb6\x2c\xc9\x71\x50\x9d\x6c\x72\x39\x33\x3b\xb3\xe4\x0a\xaf\x2d\x83\x3f\x28\x24\xcf\xf8\x97\x38\x48\xfc\xc1\x0a\x5b\x7f\x14\xcd\xa4\x2e\x1e\xd0\xca\x3b\xb4\x65\xa4\x2c\x7b\xe7\x19\x5e\xc8\x72\x86\xa1\x88\x37\x86\xe5\xe4\xe5\xc4\x16\x12\x55\x40\x30\xbe\x2b\xca\x19\x2a\xcd\x0a\xd4\xa9\x04\x52\x67\xc8\xfb\x53\x7f\x10\x4f\x29\x3d\xe5\x20\xf9\x02\x57\xb0\xcf\x12\x40\x78\x96\xb8\x77\x87\x17\x4a\x9b\xa6\xa1\xe4\x7e\x72\x2e\x4e\xe2\x0e\x94\x52\xd9\x1e\xff\x69\x7e\xb9\x68\x77\x57\x91\x4d\x60\x25\x4b\x4a\xbb\x06\x88\x14\xb8\xaf\xa4\x0a\xbd\x1e\x14\x36\xc0\x0a\xff\x53\xe0\x92\xc8\x30\x42\x57\x14\x81\xd4\xb4\xd0\x96\x14\xb2\xef\xbb\x9a\xd0\x0e\x38\x7d\xf5\x15\xac\x01\x3c\xbd\xb1\x2f\x95\x07\xb0\x3d\xff\x2d\x57\x49\x6c\x6a\x45\x61\xcf\x46\x25\x0f\xd5\x3d\xdd\x7f\x93\xe3\xf7\x01\x00\xe5\x90\x3c\x29\x9f\x8f\x4e\xda\xab\xdf\xbd\x16\xeb\xe7\x67\x0c\x5f\x71\x00\x17\xa1\xf5\x33\x12\x95\x5c\xe4\x3c\x9e\x5d\x7f\xc9\x03\xb8\x40\x07\xde\xe1\x20\x72\xf0\xbc\x5d\x54\xed\xaa\xfa\xa2\x63\x31\xe5\xc3\x44\x54\x4d\xe3\x95\xbd\xef\x5d\x3f\xcf\x90\x0a\x52\x77\x5e\xda\x8e\x03\x61\x5d\xee\x3d\x3c\x81\x8f\x9c\x4f\x78\x7c\x40\x61\x23\xd1\x96\xcd\x04\x6d\x8d\x75\x12\xef\x67\x2b\x8f\x0f\x65\xf6\x7f\xc4\x1c\x57\x0b\x9b\x2e\x3b\x3d\x3d\x4b\x54\xfe\xd0\x85\xbc\xab\xb2\xcc\xbf\x3b\x97\xb9\x20\x8b\x28\x12\xe7\xe0\x4a\x9d\xc7\x52\x35\x93\xd1\xee\x3a\xd1\x93\xbb\x31\x13\x98\xb2\x3b\x3a\xcf\x07\xb6\x3b\x68\xee\x78\xdc\x3a\x8a\xef\x02\xbf\x48\x17\x75\xe2\xcf\xc5\xfa\x72\x9a\xf6\x10\x6a\xd5\x77\xd2\x76\x87\xed\x7c\x27\x33\xd9\x6f\xd1\x9f\x16\xe0\x37\x09\xba\x68\x7c\x67\xf9\x1e\x28\xab\x19\x73\xdc\xd8\xbf\xc7\xbf\x71\x76\x0e\xfb\xc9\xf6\xa7\x80\x83\x17\xa3\x0d\x43\x06\xb5\xd3\xc9\x14\xf4\x37\xf7\x8d\x07\x7c\xb6\x35\x01\x17\x95\x33\x19\xc5\xbb\xd3\xb6\x4f\x60\x7c\x57\x82\xd8\xce\xf3\xa6\xb9\xef\x6a\x2b\x65\x90\x39\x0d\x6b\x69\xf1\x59\xc9\xdc\x9e\x89\x28\x57\x2e\x33\x62\xb1\xef\x69\x8b\x8e\xa6\xe3\x6c\xfa\x78\xa7\xcb\x52\xcf\xfd\x78\xbe\x50\xf7\x69\x56\x2b\xbc\x50\x82\x8b\xb3\x37\xba\xbe\x1c\x4b\xca\x9b\x48\xcc\xe5\xe9\x9b\x52\x2d\xe4\x8d\x87\xfe\x04\x00\x00\xff\xff\x7d\xc7\xad\x50\x2c\x06\x00\x00") - -func testImagesApparmorLoaderExampleDaemonYamlBytes() ([]byte, error) { - return bindataRead( - _testImagesApparmorLoaderExampleDaemonYaml, - "test/images/apparmor-loader/example-daemon.yaml", - ) -} - -func testImagesApparmorLoaderExampleDaemonYaml() (*asset, error) { - bytes, err := testImagesApparmorLoaderExampleDaemonYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/apparmor-loader/example-daemon.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesApparmorLoaderExampleNamespaceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x44\xcb\x31\x0a\x42\x31\x10\x04\xd0\x7e\x4f\x31\x60\x2f\xd8\xe6\x10\x56\x62\x3f\xff\x67\x20\x51\x37\x59\x92\x28\x7a\x7b\x3b\xad\x1f\xef\x80\x4b\x11\xf4\xa6\xc7\x43\x38\xd3\x35\x83\xbb\xf0\x9c\xca\xd8\x3e\xe8\xab\x68\xfc\xbc\x6f\x37\xed\x6b\x1e\xcd\x18\xf5\xaa\x31\x6b\x6f\x09\xaf\x93\xdd\x6b\xcb\xe9\xdf\xcd\xb5\x98\xb9\x98\x0c\x68\x74\x25\x30\x82\xc3\xfb\xb0\x6f\x00\x00\x00\xff\xff\xc3\x16\x28\x79\x72\x00\x00\x00") - -func testImagesApparmorLoaderExampleNamespaceYamlBytes() ([]byte, error) { - return bindataRead( - _testImagesApparmorLoaderExampleNamespaceYaml, - "test/images/apparmor-loader/example-namespace.yaml", - ) -} - -func testImagesApparmorLoaderExampleNamespaceYaml() (*asset, error) { - bytes, err := testImagesApparmorLoaderExampleNamespaceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/apparmor-loader/example-namespace.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesApparmorLoaderExamplePodYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\x91\x3d\x6f\x1b\x31\x0c\x86\x77\xfd\x8a\x17\xf1\x6c\xa5\x01\x3a\x04\xb7\x65\x2e\x50\x64\x08\xba\xf3\x4e\xcc\x99\xb0\x8e\x14\x24\x3a\x48\xfa\xeb\x0b\xc9\x1f\x75\x00\x4d\x14\xf5\xbc\x1f\xda\xe1\xed\xc0\xe0\x4f\xda\x4a\x66\xbc\x5a\xc2\xc9\x25\xcb\x5f\xd1\x15\x7e\x60\x94\x6a\xef\x92\x19\xd9\x28\x71\xc2\xfc\x35\xa6\xed\xbc\x9e\x88\x37\xd3\x18\x02\x15\xf9\xc3\xb5\x89\xe9\x84\x8f\xa7\x70\x14\x4d\x53\x87\x85\x8d\x9d\x12\x39\x4d\x01\x50\xda\x78\x82\xae\xa2\x9f\x7b\x2a\x85\xea\x66\x35\x00\x3b\xfc\x36\x67\xf8\x81\x7c\xb0\xbb\x87\x64\xdc\xa0\xe6\x50\xe6\x04\x37\xcc\x0c\xd1\xab\x34\x0f\x54\x2b\xb4\x30\xa8\x8d\xe9\xb0\x57\x63\x00\x32\xcd\x9c\x5b\xd7\x03\xa8\x94\x8b\x60\x00\x48\xd5\x9c\x5c\x4c\x2f\xb7\x3b\xbc\x71\xce\xf8\x75\x9a\xb9\x2a\x3b\xb7\x2e\x44\xa5\xe4\x73\xc6\x97\x52\x5e\xba\xc5\x5b\x05\x0f\xc7\xe7\xb6\x1f\xb4\x87\x78\x01\xdc\x3b\x97\x86\x7e\x56\xb5\xca\x09\xf2\x3e\x20\x77\x70\xb5\xc4\x7d\xa3\xc7\xaa\x27\xd5\xde\xf0\xc7\xb9\x34\x3c\xc5\x9f\xb0\x8a\xb5\x32\xf9\x39\x06\xb0\x98\x3a\x89\x72\x8d\xd7\xb2\x62\xe3\xe5\x54\xc5\xbf\xe2\xcc\x4e\xf1\x78\x63\x47\xb1\xc7\x61\x6c\x42\xb6\x85\xf2\xc1\x9a\x3f\xde\xdc\x86\x56\x78\xe9\x91\x6f\xc4\x51\xc0\xfe\xfe\x43\x86\xa2\x6c\xb4\x7e\x1b\x14\xab\x7e\x29\x6b\xff\xff\xf5\xab\x55\x9f\xf0\xfc\x23\xfc\x0b\x00\x00\xff\xff\x39\xce\x35\xa3\x3c\x02\x00\x00") - -func testImagesApparmorLoaderExamplePodYamlBytes() ([]byte, error) { - return bindataRead( - _testImagesApparmorLoaderExamplePodYaml, - "test/images/apparmor-loader/example-pod.yaml", - ) -} - -func testImagesApparmorLoaderExamplePodYaml() (*asset, error) { - bytes, err := testImagesApparmorLoaderExamplePodYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/apparmor-loader/example-pod.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesApparmorLoaderLoaderGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x59\x6d\x6f\x1b\x37\x12\xfe\xac\xfd\x15\xd3\x05\xd2\xae\x8a\xcd\x6e\x1a\xdc\x01\x07\xb7\x3e\xc0\xf5\xcb\x55\x57\xd7\x36\x2c\x27\x41\xe1\x04\x01\xbd\x3b\x2b\x11\xa2\xc8\x3d\x92\x6b\x59\x08\xfc\xdf\x0f\x43\x72\xdf\x24\x25\x69\x0b\x34\x1f\x62\x69\x77\x38\x7c\x38\xf3\xcc\xf0\x21\x95\x7f\x1f\x9d\xaa\x7a\xab\xf9\x62\x69\xe1\xf5\xab\x1f\xfe\x09\x77\x4b\x84\x5f\x9b\x07\xd4\x12\x2d\x1a\x38\x69\xec\x52\x69\x93\x45\xd1\x25\x2f\x50\x1a\x2c\xa1\x91\x25\x6a\xb0\x4b\x84\x93\x9a\x15\x4b\x84\xf0\x26\x85\xb7\xa8\x0d\x57\x12\x5e\x67\xaf\x20\x21\x83\x38\xbc\x8a\xa7\x3f\x46\x5b\xd5\xc0\x9a\x6d\x41\x2a\x0b\x8d\x41\xb0\x4b\x6e\xa0\xe2\x02\x01\x9f\x0a\xac\x2d\x70\x09\x85\x5a\xd7\x82\x33\x59\x20\x6c\xb8\x5d\xba\x49\x82\x8b\x2c\xfa\x3d\x38\x50\x0f\x96\x71\x09\x0c\x0a\x55\x6f\x41\x55\x43\x2b\x60\x36\x8a\x00\x00\x96\xd6\xd6\x47\x79\xbe\xd9\x6c\x32\xe6\x50\x66\x4a\x2f\x72\xe1\xad\x4c\x7e\x39\x3b\x3d\xbf\x9a\x9f\xbf\x7c\x9d\xbd\x8a\xa2\x37\x52\xa0\x31\xa0\xf1\x7f\x0d\xd7\x58\xc2\xc3\x16\x58\x5d\x0b\x5e\xb0\x07\x81\x20\xd8\x06\x94\x06\xb6\xd0\x88\x25\x58\x45\x38\x37\x9a\x5b\x2e\x17\x29\x18\x55\xd9\x0d\xd3\x18\x95\xdc\x58\xcd\x1f\x1a\x3b\x0a\x50\x8b\x8a\x1b\x18\x1a\x28\x09\x4c\x42\x7c\x32\x87\xd9\x3c\x86\x9f\x4f\xe6\xb3\x79\x1a\xbd\x9b\xdd\xfd\x72\xfd\xe6\x0e\xde\x9d\xdc\xde\x9e\x5c\xdd\xcd\xce\xe7\x70\x7d\x0b\xa7\xd7\x57\x67\xb3\xbb\xd9\xf5\xd5\x1c\xae\x2f\xe0\xe4\xea\x77\xf8\x75\x76\x75\x96\x02\x72\xbb\x44\x0d\xf8\x54\x6b\xc2\xae\x34\x70\x0a\x1d\x96\x59\x34\x47\x1c\x4d\x5e\x29\x0f\xc6\xd4\x58\xf0\x8a\x17\x20\x98\x5c\x34\x6c\x81\xb0\x50\x8f\xa8\x25\x97\x0b\xa8\x51\xaf\xb9\xa1\xe4\x19\x60\xb2\x8c\x04\x5f\x73\xcb\xac\xfb\xbe\xb7\x9c\x2c\xfa\x3e\x8f\xa2\x9a\x15\x2b\x72\xb2\x66\x5c\x46\x11\x5f\xd7\x4a\x5b\x48\xa2\x49\xfc\xd0\x54\x5c\xc5\xf4\x61\x6b\xd1\xd0\x87\x4a\xb0\x85\xfb\xbb\xb6\xf4\x87\xab\x9c\xab\xc6\x72\x41\x5f\x94\xf1\xff\xe7\xf8\x84\x05\x7d\xac\x99\x5d\xb6\x7f\x73\xe2\x47\xfb\x80\xe2\x27\x17\xce\xdc\xf2\x35\xc6\x51\x34\x89\x57\xff\x32\x19\x57\xf9\x4a\xa8\x45\xfe\xf8\x3a\x8e\xa6\x51\xf4\xc8\x34\xc1\xc8\x73\x47\xe5\x92\x6b\x2c\xac\xd2\x1c\x0d\xe5\x4e\x28\x56\x42\xad\x15\xf9\x35\x50\x69\xb5\xce\xa2\x49\xc9\xb5\x81\xfb\x0f\xde\x7f\x34\xa9\x95\x10\x70\x0c\x04\x3a\x3b\x6b\xb4\x8b\x42\x12\xd3\xd3\x38\x85\x97\x3f\xa4\x10\xdf\x90\x85\xdd\xf1\x4e\x61\x96\xb8\xe9\xbd\x07\x06\x73\x03\x5c\x5a\xd4\x8f\x4c\x64\xf0\x96\x89\x06\x0d\xfc\x04\xaf\x88\x10\x8e\x5f\xe4\xd8\x71\x89\xc9\x12\xf0\x89\x5b\x60\x95\x45\xed\xa0\x52\x6a\x68\x9e\xd6\x67\x16\x4f\x69\x89\x85\x92\xc6\xc5\xba\x66\xda\xa0\x26\xbe\xc3\x31\xc4\xac\xae\x99\x5e\x2b\xfd\xd1\x3f\x8e\xa3\x49\xfb\xa4\x32\xf4\x3e\x37\x5b\x93\xaf\xa8\xb2\x45\x6e\xb0\x68\x34\xb7\xdb\xbc\x35\x71\xb1\xab\x1a\x59\xb8\x84\x26\x53\xf8\x14\x4d\x28\xac\xd9\x4c\x72\x7b\x21\xd8\xc2\x24\x92\x8b\x69\x34\x71\x71\x79\x63\x28\xf5\xc7\x40\x03\xbc\xed\xa4\x5a\xdb\xec\xa2\xd6\x5c\xda\x2a\x51\x26\x9b\xdb\x12\xb5\x4e\x21\x76\xa6\x47\xf0\xc2\xc0\xfd\xc5\xe5\xc9\x7f\x3e\x64\x59\x06\xf7\x37\xb7\xd7\x17\xb3\xcb\xf3\x8f\x67\xb3\x5b\x7a\xf0\x5e\xc6\x29\x28\x93\x9d\xe8\x85\xb9\x7f\xf5\x61\xfa\x05\x77\x97\x94\x41\xdf\x7c\xea\x13\x02\xde\x07\x3c\x10\x1c\x4b\x2a\x51\x32\x19\xcc\x32\x4c\x15\x4d\xe7\xa6\xa0\x95\xdc\xd0\x14\x67\x58\xb1\x46\x58\x93\x4c\xa3\xc9\x73\x58\xe2\x0d\x05\x31\x99\x46\x81\x1f\x81\x10\x84\x90\xac\x78\x05\x02\x65\x42\xaf\xa6\x70\x7c\x0c\xaf\x5c\x0c\x5c\xc0\xce\xb5\x56\xba\x4a\xe2\xdf\x1a\x63\x03\xa6\x2d\x30\x0b\x02\x99\xb1\xa0\x64\x4f\x9b\x6d\xd6\xe3\x70\x61\x22\xcf\x13\x65\xb2\xf3\x27\x6e\x93\x1f\x1c\x18\xc7\xe4\xd3\x25\x16\x2b\xb0\x4b\x66\xdd\xba\xba\x4e\x15\xf2\xff\xc0\x25\xd3\x5b\xea\x32\x95\x6a\x64\x99\x39\x78\x1f\x53\x40\xad\xe1\xe8\x18\xa8\xb2\xb2\x4b\xa5\x56\x37\xcc\x2e\x13\x3f\x66\xfa\xa3\x7b\xfb\xcd\x31\x48\x2e\x06\xd8\x9f\xb8\xad\x92\xf8\xb6\x6b\x85\xde\xf3\x0b\xe3\xda\xb6\xf3\x4e\xc1\xbd\x39\xb9\xfb\x25\x4e\xc3\xf4\x07\x61\x12\x7b\x71\x50\x6a\x05\x93\xf0\x40\xc8\xd9\x1e\xbc\x05\xda\x4b\x67\x7d\x13\x8c\x93\x2f\x83\x7b\x23\x5d\xdd\x58\x05\xac\x28\xa8\xf9\xb5\x14\xee\x66\x3b\x82\x17\x8f\xb1\xf3\x1f\xb0\xf1\x0a\xbe\x77\x65\xfd\x53\x48\x94\x6e\xe4\xb5\x2c\x5c\xbc\x9f\x01\x85\x41\xf7\x94\x4c\x2e\x94\xc6\x47\xd4\x9e\x09\xcf\x51\x94\xe7\x70\xa5\xda\x22\x3d\x02\xdd\x48\x50\xb4\x3f\xb5\xd5\x9a\xf9\xa2\xe9\x1c\x92\x23\x5e\x81\x69\x1c\xb6\x94\x5a\x42\xbb\x2e\x5a\x2c\xc5\xe5\xaa\x7f\x44\x4b\xfd\x26\xd8\x3a\x08\x81\x57\x83\x51\x53\xf8\x77\x00\x3d\x8a\xc2\x95\xb2\xc0\x84\x18\xb4\x1b\xd4\xd8\x4e\x5b\x35\x42\x6c\x43\x0e\x32\xf0\xd1\x0d\x41\x19\x7a\x8e\x26\xc3\xd5\xf7\xee\x93\xd8\x71\xb8\x6b\x41\xc3\xf6\x33\xa1\x02\x19\x8c\xfa\x3a\xe0\x99\xac\x54\x95\xc4\xf3\x7d\x68\xbb\x09\xfb\x1a\xb6\x77\xcc\xed\x56\xb4\xf8\x71\xab\xf5\xb4\xef\xd0\x85\xbc\x1d\x6c\xd3\x5c\x96\x58\x71\xc9\x2d\x8a\x6d\xc8\xdd\x28\xed\x5d\xdf\x7b\x9b\xbc\x9e\xb6\xd8\x6f\x7c\xfa\xa9\x0e\xc8\x8a\x0a\x22\x4e\x21\x6c\x48\xd9\x7f\x15\xf7\x9d\x20\x85\x38\x85\x78\x9a\x3a\x8f\xd9\xdc\xbd\x4e\xa6\x53\xbf\xa5\x5c\x48\xca\xff\xa0\x61\x7e\xfc\x3a\x39\xfe\x50\x7c\x87\x40\xff\x42\x90\x5d\xc7\xf3\x00\x93\x29\xe4\x39\xdc\x36\x12\xf8\x7a\x8d\x25\x67\x3e\x48\x13\xcb\x8b\x15\xba\x5a\xa5\x8d\x37\xbb\xc2\xcd\x9d\x7b\x92\xb8\xa2\xa2\x3d\x41\x69\xd0\x4c\x2e\x10\xbc\x69\x76\xda\xd7\x93\xec\x4a\xc9\x05\x7b\x6f\x8d\x90\xb4\xfc\x7f\x50\x4a\x8c\x63\xd2\x6e\xca\x2e\x60\x62\xd4\x24\xbe\xd4\x3e\x5c\x05\x1e\xec\x20\xa1\x35\x7b\x7a\x53\x33\xa2\xac\x1e\x8e\x93\xef\x1e\x13\x8d\xb6\xd1\x12\x2a\x26\x48\xe1\x4a\x2e\x7c\x47\x69\x31\x1f\x83\xd5\x0d\xfa\x08\x7c\x4c\x89\x69\x84\xc9\xc7\xc2\xed\x1b\xae\x46\x64\xa5\x7a\xc0\x5e\xfb\x64\xb7\xc8\xca\x33\xae\x89\x38\x21\xcf\x3b\x88\x47\x9c\xdf\x03\xfd\xa2\xc5\x59\x72\xdd\x81\x1d\xc0\x72\x80\xe9\x51\xa1\xa4\xe5\x92\x30\x3a\xe0\x2d\x52\xc2\xd4\x43\x75\x08\xfd\xac\x24\xb7\x1c\x53\x83\xf4\xea\xe8\xed\xc7\x64\x57\x6c\x8d\x8e\xd4\x13\x6a\xf9\xb3\xaa\xdf\xcd\x52\x92\xa1\x66\xbb\x16\x5c\xae\x5c\x7b\x1e\xbe\x32\x2b\x5e\x03\xb5\xcb\x09\xc5\xd4\x28\xf1\x88\x25\x91\xb6\x0b\x4b\x78\x38\xf7\xe3\xfb\x09\xdd\x4c\x07\xa2\xf3\xb9\xf0\x90\x17\x0a\x50\x00\x32\xce\xe6\x28\x1c\x44\x7c\xe7\x7a\x88\x27\x9b\x19\xca\xca\x34\x4c\x92\xe7\x70\xd6\x2e\x02\x04\x37\x24\xfb\x69\xa3\x35\x4b\x26\x84\xda\x64\x3d\x92\xb7\xc9\x3f\xfa\x32\x5c\xf1\xba\x26\xcb\x2e\x00\xbe\x63\x50\x3c\x0f\xc1\x88\x0e\x3a\x29\x98\x94\xa1\xeb\xec\x8a\xcb\xa1\xaf\xfa\x40\x45\x84\x5a\xa0\x5c\x99\xa4\xb3\xfc\x13\x51\xdc\x21\x19\xb9\x18\x04\xf1\x00\xcd\x0e\xac\x88\x57\xd0\xc8\x71\xd5\x26\xbb\x45\x5c\x77\x4d\xcd\xc3\x09\x10\x43\x33\xec\x86\xb9\x25\xec\xa9\x82\xc9\x4e\x59\x9f\xaa\x46\x94\x4e\xa9\x8c\x74\xfe\x2e\x05\x0e\xc2\x1f\xe1\xf7\xcc\xa0\xe4\x9f\x94\xe5\x78\xab\xa1\x43\x04\x27\x1d\x57\xed\xf6\x0d\xcf\x85\x61\xfb\x3a\x26\x69\x82\xb2\x1c\x76\xef\x7e\xc9\x59\x96\x79\x3c\xa1\x22\xc3\xf3\xbe\x28\xbb\x39\xc3\x5a\xc7\xb1\xbb\x0f\xaf\x3f\x74\x3d\xa8\xc5\xfd\xdc\xb6\xf5\xa8\xed\x5e\x87\xd4\x48\xd7\x91\x0f\xd1\x05\xda\xbe\x9b\xb4\x2d\xd8\xc5\x4f\x69\x97\xa7\x62\x5d\x76\xba\xf2\x54\xad\xd7\x4c\x96\x41\x56\xa6\x10\xbf\x7c\x29\xc9\x4d\xcf\x50\xe3\xa4\x3b\x0d\xf8\xd6\x9d\x08\xb3\x9f\x9b\xaa\x42\xfd\xe9\xd9\x39\x0a\xca\x1e\x8e\xc1\xdb\x45\x13\xd5\xd8\x8e\xca\x64\x70\xdd\xd8\xba\xb1\x87\xbb\x3a\x29\x2d\x37\x2c\xbb\x44\xda\xbe\xc6\x3b\x63\xab\x17\x82\xc9\x60\x43\x76\x31\x0a\xc1\x91\x5c\xa4\x40\xc7\x8d\x96\x46\x38\xaa\x81\xd1\x69\xf1\x70\x45\x50\xa4\xad\x76\x7b\x26\x81\x6e\x75\xc1\x9d\xe6\xeb\x79\xcd\x0a\x4c\xfc\x93\x44\x35\x76\xea\xb7\x58\x5c\xab\x47\x04\xab\x19\x77\xba\xe2\xbd\xec\x53\x15\x06\xcf\x6b\xc1\x6d\x12\xbc\xa6\x10\xd3\x99\xc5\xef\x3f\x6d\xde\xbe\x52\x5b\xb0\x66\xf5\xbd\xf7\xf6\xc1\xef\xac\xf5\xfe\xb6\x4a\x2f\x28\x60\x7f\x88\x82\xbc\x82\x6f\x3e\xc7\xc1\x4f\xbe\xaf\xbb\x25\x04\x36\x7a\x65\x31\xdc\x3f\x47\x22\x60\x54\xdb\x1d\xdf\x7c\xec\xbf\xce\xb1\x47\xd4\x0f\xca\xe0\xdf\xc1\xb2\x3d\x51\x75\xa9\x3e\xc3\x84\xf7\xb2\xeb\xea\x29\x50\x72\xff\x2e\x8a\xee\xb3\x73\x57\x9a\x7f\x91\x9d\x03\xa6\x07\x69\x3c\xf3\xb7\x66\x0b\xfe\x88\xd2\xed\xf4\x4e\x0e\x70\x03\xac\xdd\x37\x53\x68\xb3\xb9\x44\xb8\xe0\x02\x29\x18\xed\x6d\x9b\x65\x7a\x81\x36\x83\x6b\xbb\x44\xbd\xe1\xa4\x8c\x7a\x6b\xf2\x3f\x76\xdc\x9e\x91\xc6\x3b\xfc\x03\x33\x78\xd3\xe7\x3e\x48\x12\x65\xb2\x76\xb6\x29\x24\x83\x6f\xc3\x06\xc4\x2b\xaf\x45\x7e\x53\x25\x26\xd3\x6f\x95\x71\x9f\x82\xe3\xfe\x38\xee\xce\x6e\xb6\x5f\x53\xd6\x47\x94\x3b\x8f\x41\xce\x4d\xaa\xc3\xa2\xa7\x45\xb8\xab\x7c\x5a\xbd\x40\x0f\x3a\x12\x75\x43\xcf\x1f\x99\x08\x50\x4c\x52\x05\x7a\xee\xf3\xe2\x6b\xdd\x67\x47\xc7\xf4\xb9\xad\xf6\x92\x7b\x40\x4d\xb9\x2b\x13\x66\x93\x21\xd4\xbf\x00\xa3\x60\xfe\xe0\x63\x2c\xb3\xa0\x64\x0f\x62\x2f\x04\x23\xa2\x8d\x21\xf5\xb4\xbb\xbb\x3e\xbb\x3e\x82\x3b\x77\x27\x66\xa0\x50\x35\xc7\xd2\x33\xb7\xbd\xc8\xeb\x6e\x9e\xf3\x7a\xb5\xd8\xbf\xa5\xca\xf6\xd4\x7e\x46\x7e\xfd\xbf\x5b\xac\x18\x89\x2d\x7f\x03\xb1\x46\xbb\x54\xee\xc2\x16\x9f\x6a\x65\x10\xb8\xbb\x62\x66\xa0\xb1\xf1\x37\x6f\x1b\xb6\xf5\xb7\x6e\x25\x0a\xb4\xe1\x46\xfa\xd1\xdf\x61\x67\xdd\xde\xb8\x7b\xb8\x80\x64\xaf\xb1\xf6\xc4\x6c\xcb\xf1\x26\xf0\xa9\xe7\x52\x7f\x15\x97\x42\xdc\xc9\xb8\x69\x3f\x84\x78\x3e\x4c\xdf\x75\x8d\x32\x19\xfa\xfb\x53\xe9\xab\x18\x17\xfe\xba\x5a\xd5\x38\xc8\xdb\xd0\xe1\x20\x6f\x25\x56\xd8\xdf\x9f\x10\x94\xec\x54\xa8\x70\xff\x55\x0f\x8e\xa8\x3b\x6b\xa7\xf6\x6a\x48\xa7\xfa\xe3\xa1\xbb\xfa\xa5\xf3\xe1\xdc\x3f\x4b\x86\x1e\xc3\x39\x31\x98\x67\x64\x12\x64\x76\xdd\xcb\x0f\x1f\x34\x6d\x70\x20\x49\x92\x76\xc8\x1d\x3e\x59\xdf\x1b\x79\x05\xc3\x41\xc7\xc7\x10\xc7\xbe\xab\xe6\x39\xbc\x91\x2b\xa9\x36\x12\x04\x97\xee\xf6\x7b\xcd\xec\x8f\xa3\xf3\xc7\xe8\x48\xd4\x0b\xe8\xfb\x81\xcb\x5e\x55\xf5\xac\xee\x85\xf6\x80\xd1\x83\xdb\x59\xff\x6b\x86\xbb\x85\xa3\x39\x2d\x96\xfe\x0e\x58\xc9\xce\x06\x6a\xd4\x0e\x57\x0a\x6b\x66\x8b\x25\xd5\x16\x73\xf6\x47\x9e\xc7\x4e\x3b\x91\x66\x38\xca\xf3\x30\xc6\xe9\x29\x48\xd6\xaa\xc4\xa9\x37\xfa\xcc\x8b\x77\x4b\xd4\x08\xf4\x95\x40\x7c\x42\x59\x29\x5d\x60\xea\x7f\x55\x61\x5c\xa6\xb0\xe2\x42\x3c\x67\x0e\x74\x3c\x9c\x29\xa6\x01\x4a\x8a\x2d\x70\x59\x88\x86\x54\xad\x3b\x71\xb4\x26\x25\xb9\xef\x74\x2b\x5c\x84\x5f\x14\xea\x46\x53\x65\x19\xda\x16\xfa\xdf\x8c\x52\xd8\x20\x14\x4a\x1a\xde\xfe\x6e\xd0\xf9\xa1\xd4\xda\x76\x13\x69\x43\x42\x6f\xdb\x9b\x98\xdd\xcc\x07\x9b\x4b\xca\x64\x2b\x11\xfc\x5f\xca\x36\x2d\x75\x26\x4b\x7c\x1a\xaa\x2e\xf7\xe0\xb6\x91\xa3\xc1\x29\x7c\x97\x7c\xe7\x0b\xa8\x1f\xd4\x5d\x06\xfa\xf4\xc6\xf1\x30\xd9\xfb\x22\x6e\xe0\xee\xfe\xa8\xf3\xf2\x61\x1a\x3d\x47\xff\x0f\x00\x00\xff\xff\x15\xdb\x22\x43\x47\x1b\x00\x00") - -func testImagesApparmorLoaderLoaderGoBytes() ([]byte, error) { - return bindataRead( - _testImagesApparmorLoaderLoaderGo, - "test/images/apparmor-loader/loader.go", - ) -} - -func testImagesApparmorLoaderLoaderGo() (*asset, error) { - bytes, err := testImagesApparmorLoaderLoaderGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/apparmor-loader/loader.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesBusyboxBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x2a\xcf\xcc\x4b\xc9\x2f\x2f\xd6\x4f\xcc\x4d\x31\x33\xd1\x37\xb4\x30\xb0\xb4\xcd\x4d\x2e\xd2\xcb\xcd\x4c\x2e\xca\x2f\xce\x4f\x2b\xd1\x4b\xce\xcf\xd5\x87\x29\x2a\x4e\x2d\x2a\x4b\x2d\x4a\xce\x2f\x4a\xb5\xca\x29\x29\x4e\x36\x32\x30\xb4\xe4\x42\x33\xc0\xd2\xc0\x98\x38\x03\x40\x2a\x31\x35\x13\x69\x3b\x48\x25\x17\x20\x00\x00\xff\xff\x39\x77\x4e\x50\xbb\x00\x00\x00") - -func testImagesBusyboxBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesBusyboxBaseimage, - "test/images/busybox/BASEIMAGE", - ) -} - -func testImagesBusyboxBaseimage() (*asset, error) { - bytes, err := testImagesBusyboxBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/busybox/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesBusyboxDockerfile_windows = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x94\xdd\x6e\xe3\x36\x10\x85\xef\xf9\x14\x07\xf2\xa6\xfb\x83\x58\x0c\x82\xb6\x0b\x64\xb1\x17\xaa\xed\xec\x0a\x49\xa4\x40\x72\x12\x04\x4d\x51\x50\xd2\x58\x22\x2c\x91\x2a\x49\x55\xf1\xdb\x17\x94\x9d\xd4\x41\xbb\xbe\xb0\xc9\x99\xc3\x33\x1f\x87\xa4\x67\x58\xe8\x7e\x67\x64\xdd\x38\x9c\x9f\x9d\x9f\x61\xdd\x10\xae\x86\x82\x8c\x22\x47\x16\xd1\xe0\x1a\x6d\x6c\xc8\x66\x6c\x86\x6b\x59\x92\xb2\x54\x61\x50\x15\x19\xb8\x86\x10\xf5\xa2\x6c\xe8\x25\x73\x8a\x7b\x32\x56\x6a\x85\xf3\xf0\x0c\x1f\xbc\x20\x38\xa4\x82\x8f\x5f\xd8\x0c\x3b\x3d\xa0\x13\x3b\x28\xed\x30\x58\x82\x6b\xa4\xc5\x46\xb6\x04\x7a\x2e\xa9\x77\x90\x0a\xa5\xee\xfa\x56\x0a\x55\x12\x46\xe9\x9a\xa9\xcc\xc1\x24\x64\x33\x3c\x1e\x2c\x74\xe1\x84\x54\x10\x28\x75\xbf\x83\xde\x1c\xeb\x20\xdc\x04\xec\x3f\x8d\x73\xfd\x05\xe7\xe3\x38\x86\x62\x82\x0d\xb5\xa9\x79\xbb\x17\x5a\x7e\x1d\x2f\x56\x49\xbe\x9a\x9f\x87\x67\xd3\x92\x3b\xd5\x92\xb5\x30\xf4\xd7\x20\x0d\x55\x28\x76\x10\x7d\xdf\xca\x52\x14\x2d\xa1\x15\x23\xb4\x81\xa8\x0d\x51\x05\xa7\x3d\xef\x68\xa4\x93\xaa\x3e\x85\xd5\x1b\x37\x0a\x43\x6c\x86\x4a\x5a\x67\x64\x31\xb8\x37\xcd\x7a\xa1\x93\xf6\x8d\x40\x2b\x08\x85\x20\xca\x11\xe7\x01\x7e\x8b\xf2\x38\x3f\x65\x33\x3c\xc4\xeb\xef\xe9\xdd\x1a\x0f\x51\x96\x45\xc9\x3a\x5e\xe5\x48\x33\x2c\xd2\x64\x19\xaf\xe3\x34\xc9\x91\x5e\x22\x4a\x1e\x71\x15\x27\xcb\x53\x90\x74\x0d\x19\xd0\x73\x6f\x3c\xbf\x36\x90\xbe\x8d\x54\xf9\x9e\xe5\x44\x6f\x00\x36\x7a\x0f\x64\x7b\x2a\xe5\x46\x96\x68\x85\xaa\x07\x51\x13\x6a\xfd\x37\x19\x25\x55\x8d\x9e\x4c\x27\xad\x3f\x4c\x0b\xa1\x2a\x36\x43\x2b\x3b\xe9\x84\x9b\x22\xff\xd9\x54\xc8\x58\x94\x7d\xf3\xf4\xab\xf8\x26\xfa\xb6\x62\x1b\xa3\x3b\xbc\x7b\x9d\x43\x58\xf4\x86\x7a\xc6\x56\xc9\x3d\x16\x77\xd9\xf5\x9f\xf7\xab\x2c\x8f\xd3\x04\x9f\xc3\x5f\x3e\x87\x67\xec\x21\xcd\xae\x96\x71\x06\x5e\x0e\xa6\x65\xd1\x72\x39\x1d\x9d\xbd\xe0\xdc\x6e\x85\x72\x8d\xd8\x86\x8d\xee\xa8\x17\x35\x85\x6e\xae\x55\x2b\x15\x85\x15\xf1\x4a\x8f\xaa\xd5\xa2\x9a\xd6\xcd\xdf\x1d\x5b\x87\xa5\x28\xe0\xc3\x7e\xc0\xb2\xbb\xc4\xf7\x47\xa8\x0a\x3c\x7b\x0d\x83\x5f\x5e\x7c\x42\xc8\xd8\x65\x96\xde\x1c\x01\x33\xb6\x48\x6f\x1f\x31\x9f\xfb\x8d\x7c\xf5\xe8\x7b\x32\x1e\xdd\x2c\x7f\xfd\xf9\x40\xf9\x03\x89\x67\x08\xaf\xe3\xc5\xff\xec\xa5\x96\xae\x19\x8a\xb0\xd4\x1d\xdf\xbe\x3e\xb3\xb9\x95\xb5\xe5\xa3\x54\x95\x1e\xed\xdc\x91\xf5\x17\x8a\x1b\x31\xf2\x4e\x58\x47\x86\xcb\x4e\xd4\x64\x79\x31\xd8\x5d\xa1\x9f\x5f\x7e\x43\x7a\x26\xf0\x42\xaa\xe3\xc0\x8f\xaa\x55\x92\x6a\x5d\x1a\xae\xc8\x95\xc2\x1d\x9b\xab\xf2\x5f\xa3\xfd\x78\xef\xa1\xad\x53\xa2\x3b\x24\x5e\x66\x53\xfa\x2e\x5f\x65\x58\x68\xe5\x5f\x20\x99\xa8\xea\xa4\xf2\xf7\x59\x38\x6d\xa6\x2e\x5f\xa6\x19\xf8\x06\x81\xd3\x5b\x52\xf6\xeb\xa7\x00\x27\x12\x71\x82\x0f\xef\x17\x17\x4f\x85\x54\x4f\x07\x5e\xcc\xe7\xad\xb4\xee\xfd\x47\x2c\x53\x74\xdb\x56\xaa\x2d\x0e\x8a\x13\x39\x41\xbd\xd5\x4f\xc5\x7d\x01\x4b\xee\x19\xfc\x06\xb7\xd1\xfa\x3b\x82\xbd\xe8\xcb\xe2\xe2\xc9\xb7\xfb\xe9\xcb\x89\x0f\x9f\x04\xf8\xe9\x89\xf9\x7f\x80\x6e\x5b\x49\xe3\x9d\x5c\xd7\xb3\x55\xb2\xce\x1e\x6f\xd3\x38\x59\xe3\xf7\xa0\xec\x2a\x6f\x19\x9c\x22\xe0\x76\xfa\x2e\x83\x3f\xd8\x3f\x01\x00\x00\xff\xff\xbc\xfc\xf5\x49\x14\x05\x00\x00") - -func testImagesBusyboxDockerfile_windowsBytes() ([]byte, error) { - return bindataRead( - _testImagesBusyboxDockerfile_windows, - "test/images/busybox/Dockerfile_windows", - ) -} - -func testImagesBusyboxDockerfile_windows() (*asset, error) { - bytes, err := testImagesBusyboxDockerfile_windowsBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/busybox/Dockerfile_windows", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesBusyboxMakefile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x51\x6b\xe3\x38\x14\x85\x9f\x57\xbf\xe2\x10\xf7\x21\x81\xd4\x09\x61\xd9\x85\x2e\x65\xf1\x24\x99\xd4\xb4\x63\x0f\xb6\xdb\xd2\xa7\x22\xdb\x37\xf6\x05\x5b\xf2\x48\xf2\x38\xf9\xf7\x83\xd2\x16\xa6\x8c\xde\xee\xbd\xe7\x1e\x7d\x3a\x0a\xb0\xd5\xc3\xd9\x70\xd3\x3a\x6c\xd6\x9b\x35\x8a\x96\x70\x3f\x96\x64\x14\x39\xb2\x88\x46\xd7\x6a\x63\x43\x11\x88\x00\x0f\x5c\x91\xb2\x54\x63\x54\x35\x19\xb8\x96\x10\x0d\xb2\x6a\xe9\x63\xb2\xc4\x13\x19\xcb\x5a\x61\x13\xae\x31\xf7\x82\xd9\xfb\x68\xb6\xf8\x4f\x04\x38\xeb\x11\xbd\x3c\x43\x69\x87\xd1\x12\x5c\xcb\x16\x47\xee\x08\x74\xaa\x68\x70\x60\x85\x4a\xf7\x43\xc7\x52\x55\x84\x89\x5d\x7b\xb9\xe6\xdd\x24\x14\x01\x5e\xde\x2d\x74\xe9\x24\x2b\x48\x54\x7a\x38\x43\x1f\x7f\xd7\x41\xba\x0b\xb0\x3f\xad\x73\xc3\xcd\x6a\x35\x4d\x53\x28\x2f\xb0\xa1\x36\xcd\xaa\x7b\x13\xda\xd5\x43\xbc\xdd\x27\xf9\xfe\x7a\x13\xae\x2f\x2b\x8f\xaa\x23\x6b\x61\xe8\xc7\xc8\x86\x6a\x94\x67\xc8\x61\xe8\xb8\x92\x65\x47\xe8\xe4\x04\x6d\x20\x1b\x43\x54\xc3\x69\xcf\x3b\x19\x76\xac\x9a\x25\xac\x3e\xba\x49\x1a\x12\x01\x6a\xb6\xce\x70\x39\xba\x4f\x61\x7d\xd0\xb1\xfd\x24\xd0\x0a\x52\x61\x16\xe5\x88\xf3\x19\xbe\x44\x79\x9c\x2f\x45\x80\xe7\xb8\xb8\x4b\x1f\x0b\x3c\x47\x59\x16\x25\x45\xbc\xcf\x91\x66\xd8\xa6\xc9\x2e\x2e\xe2\x34\xc9\x91\x7e\x45\x94\xbc\xe0\x3e\x4e\x76\x4b\x10\xbb\x96\x0c\xe8\x34\x18\xcf\xaf\x0d\xd8\xc7\x48\xb5\xcf\x2c\x27\xfa\x04\x70\xd4\x6f\x40\x76\xa0\x8a\x8f\x5c\xa1\x93\xaa\x19\x65\x43\x68\xf4\x4f\x32\x8a\x55\x83\x81\x4c\xcf\xd6\x7f\xa6\x85\x54\xb5\x08\xd0\x71\xcf\x4e\xba\x4b\xe7\x8f\x47\x85\x42\xe4\xd9\x36\xbf\x6d\xb5\x75\x4a\xf6\x24\xd2\x1c\xff\xdf\xa2\x63\x35\x9e\x44\x94\x6d\xef\x7c\x25\xfb\xfa\x9f\xbf\x45\x11\x65\x87\x7d\xe1\xeb\xab\xf9\xf6\x31\xdb\xc5\xd9\x42\x1c\xd2\x28\xfb\x86\x5b\xfc\x2b\x0e\xe9\x43\x94\x1c\x5e\x9f\xf6\x59\x1e\xa7\xc9\xc5\x43\x3a\xb2\xce\xdb\xbf\xee\xe2\x0c\x7e\x4d\x69\x57\xb3\xc1\xd5\xdc\xb6\xd4\x75\x18\xa6\x7a\xb1\x10\x74\x1a\xb4\x71\x42\x94\xac\x6e\xc4\x5f\x61\xb8\xe2\x5e\x36\x74\x3d\x3a\xee\x42\xdb\xa2\x64\x85\xab\xb9\x87\x5c\x08\x11\x7e\xbf\x4b\x93\x97\x1b\xdf\x14\xbf\x02\x00\x00\xff\xff\x0a\xe0\x85\x2e\x04\x03\x00\x00") - -func testImagesBusyboxMakefileBytes() ([]byte, error) { - return bindataRead( - _testImagesBusyboxMakefile, - "test/images/busybox/Makefile", - ) -} - -func testImagesBusyboxMakefile() (*asset, error) { - bytes, err := testImagesBusyboxMakefileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/busybox/Makefile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesBusyboxOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xce\x49\x2c\x4d\xc9\x2c\x4d\x4a\xcd\x29\xe5\x02\x04\x00\x00\xff\xff\x9b\x12\xb6\xf7\x1b\x00\x00\x00") - -func testImagesBusyboxOwnersBytes() ([]byte, error) { - return bindataRead( - _testImagesBusyboxOwners, - "test/images/busybox/OWNERS", - ) -} - -func testImagesBusyboxOwners() (*asset, error) { - bytes, err := testImagesBusyboxOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/busybox/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesBusyboxVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xb2\xe4\x02\x04\x00\x00\xff\xff\x7c\xeb\x30\xd3\x05\x00\x00\x00") - -func testImagesBusyboxVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesBusyboxVersion, - "test/images/busybox/VERSION", - ) -} - -func testImagesBusyboxVersion() (*asset, error) { - bytes, err := testImagesBusyboxVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/busybox/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesBusyboxHostnameGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x53\xc1\x6e\xdb\x38\x10\x3d\x8b\x5f\xf1\x56\x27\x29\xf0\xd2\x46\x4e\x45\x16\x3d\xa8\x49\x8a\x0a\x0d\x6c\x23\x72\xb6\xe8\x91\x96\x46\xd2\x60\x29\x92\x4b\x52\xeb\x1a\x8b\xfc\xfb\x82\x8a\x53\xa4\x1b\xf8\x40\x0f\xe7\xcd\x7b\x6f\x9e\xa4\xf5\x95\xb8\xb5\xee\xec\x79\x18\x23\xae\x37\xd7\x1b\x1c\x46\xc2\xd7\xf9\x48\xde\x50\xa4\x80\x6a\x8e\xa3\xf5\x41\x0a\xf1\xc0\x2d\x99\x40\x1d\x66\xd3\x91\x47\x1c\x09\x95\x53\xed\x48\xb8\x74\x56\xf8\x93\x7c\x60\x6b\x70\x2d\x37\x28\x12\x20\xbf\xb4\xf2\xf2\x0f\x71\xb6\x33\x26\x75\x86\xb1\x11\x73\x20\xc4\x91\x03\x7a\xd6\x04\xfa\xd1\x92\x8b\x60\x83\xd6\x4e\x4e\xb3\x32\x2d\xe1\xc4\x71\x5c\x44\x2e\x14\x52\x7c\xbf\x10\xd8\x63\x54\x6c\xa0\xd0\x5a\x77\x86\xed\xdf\xa2\xa0\xa2\x10\x00\x30\xc6\xe8\x6e\xd6\xeb\xd3\xe9\x24\xd5\xe2\x52\x5a\x3f\xac\xf5\x0b\x2a\xac\x1f\xea\xdb\xfb\x6d\x73\xff\xfb\xb5\xdc\x08\xf1\x64\x34\x85\x00\x4f\x7f\xcf\xec\xa9\xc3\xf1\x0c\xe5\x9c\xe6\x56\x1d\x35\x41\xab\x13\xac\x87\x1a\x3c\x51\x87\x68\x93\xcf\x93\xe7\xc8\x66\x58\x21\xd8\x3e\x9e\x94\x27\xd1\x71\x88\x9e\x8f\x73\xfc\x25\xa0\x57\x57\x1c\xf0\x16\x60\x0d\x94\x41\x5e\x35\xa8\x9b\x1c\x9f\xaa\xa6\x6e\x56\xe2\x5b\x7d\xf8\xb2\x7b\x3a\xe0\x5b\xf5\xf8\x58\x6d\x0f\xf5\x7d\x83\xdd\x23\x6e\x77\xdb\xbb\xfa\x50\xef\xb6\x0d\x76\x9f\x51\x6d\xbf\xe3\x6b\xbd\xbd\x5b\x81\x38\x8e\xe4\x41\x3f\x9c\x4f\xde\xad\x07\xa7\xe8\xa8\x93\xa2\x21\xfa\x45\xbc\xb7\x2f\x66\x82\xa3\x96\x7b\x6e\xa1\x95\x19\x66\x35\x10\x06\xfb\x0f\x79\xc3\x66\x80\x23\x3f\x71\x48\x0f\x2f\x40\x99\x4e\x68\x9e\x38\xaa\xb8\xd4\xef\xd6\x91\xe2\x6a\x2d\x84\x53\xed\x5f\x89\x64\x52\x6c\x84\xe0\xc9\x59\x1f\x51\x88\x2c\xef\xb5\x1a\xf2\x74\x4e\x31\x1d\xda\x2e\x95\xa1\xa5\xb2\x21\x17\xa5\x10\xfd\x6c\x5a\x0c\x14\x77\x73\x3c\xda\xd9\x74\xf5\xbe\x28\x61\x28\xca\x7a\x8f\x7f\x45\xd6\x5a\x63\x56\x20\xef\x71\xf3\x71\xb9\xbe\x63\xa5\x8b\x7c\xee\x5c\xbe\x42\xfe\x41\x2e\xbf\x9b\x0f\x9b\xbc\x14\x19\xf7\x0b\xf0\xb7\x8f\x30\xac\xd3\x70\xa6\xed\x20\x3f\xab\xa8\x74\x41\xde\x97\x22\x7b\x16\x59\x47\x3d\x79\x24\x5a\x79\xab\x6d\xa0\xa2\x14\x99\xb6\xad\xd2\x55\xd7\x2d\x22\x4b\xeb\xe1\xf5\xa6\x28\x65\x71\x95\x74\x9f\xee\xf6\xa9\x2e\x45\xe6\x29\xce\xde\xe0\xe7\x90\xac\xf7\xe2\xf9\xb2\x48\x8a\xa0\x28\x93\x76\xda\xbd\xde\x27\xc2\xf4\x4f\x7e\xb2\x56\x17\x39\xe7\x2b\xf4\x4a\xa7\x2f\x24\x57\x48\xaf\x81\x19\x92\xf3\x05\xb2\x57\xfe\xc5\x0e\xf7\xb8\xba\x8c\xa7\x25\xd8\x25\x96\xff\x45\x24\xb2\xac\x9f\xa2\xdc\x7b\x36\xb1\x60\x27\x9b\x85\xab\x28\xd3\x92\x20\x1d\x68\x19\x1d\x6d\x88\x46\x4d\xf4\x33\x41\x1b\xe4\x97\xcb\xdd\xc2\xf1\x3e\xb2\x77\x99\xa5\xd0\xde\x68\xbd\x52\x2e\x69\x3e\x8b\xff\x02\x00\x00\xff\xff\xff\xa0\xe4\x9c\x37\x04\x00\x00") - -func testImagesBusyboxHostnameGoBytes() ([]byte, error) { - return bindataRead( - _testImagesBusyboxHostnameGo, - "test/images/busybox/hostname.go", - ) -} - -func testImagesBusyboxHostnameGo() (*asset, error) { - bytes, err := testImagesBusyboxHostnameGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/busybox/hostname.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesCloudbuildYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xc4\x56\x6f\x8b\xdb\xb8\x13\x7e\x9f\x4f\x31\xb0\x05\xb7\x10\xd9\xde\x3f\xfd\x13\x43\x7e\x90\x5f\x9b\xdb\x5d\x2e\xdb\x2c\xd9\x94\xde\xbe\x32\xb2\x34\xb6\x75\xb1\x25\x23\xc9\x09\x39\xee\xc3\x1f\x92\x9c\x5c\xd3\xdd\x85\xeb\xdd\x8b\x42\xc0\xca\x78\xfc\xcc\xa3\x47\xa3\x99\x39\x83\x07\x44\xa8\xad\xed\x4c\x96\x24\xac\x51\x3d\x8f\x2b\xa5\xaa\x06\x63\xa6\xda\x60\x20\x45\x2f\x1a\x9e\x70\xc5\x4c\xe2\x97\x84\x29\x59\x8a\x6a\x34\x3a\x03\x5b\x0b\x03\x6d\x6f\x2c\x14\x08\xa6\x43\x26\x4a\x81\x1c\x84\x04\x83\x4c\x49\x6e\x62\xb8\x2d\x41\xb5\xc2\x5a\xe4\x63\xe0\x58\xd2\xbe\xb1\x06\xac\x82\x77\x69\x6a\xe0\xf5\x79\x0a\xad\x90\xe6\x8d\xc7\x42\xb0\xa2\x45\xd5\x5b\xd8\x51\x03\x42\x32\x8d\xd4\x20\x87\x02\x19\xed\x0d\x82\x51\x2d\x82\x68\x69\x85\x06\x5a\x51\xd5\x16\x2c\xdd\x20\x34\x4a\x56\xa8\x1d\xa6\xa7\x07\xaf\x31\xae\xe2\x0c\x0c\x6d\xbb\x06\x09\xed\x84\x41\xbd\x45\x3d\x86\x0e\xad\x49\x34\x72\x61\x88\x90\xc6\xd2\xa6\x41\xfd\x66\x34\xc4\xcc\xe0\xed\x55\x9a\x9a\xc3\xa6\x3a\x8d\x5b\x94\xd6\x00\x6a\xad\xb4\x01\x51\xc2\x5e\xf5\xc0\x95\x8c\x2c\x38\x32\x85\xb2\x35\xe4\xd7\xb7\xeb\x7c\x3d\xbb\x06\x2a\x39\xe4\xf7\x5f\x16\x8b\xfc\xff\xb3\x87\x79\xbe\x9a\xff\x32\x1e\x9d\x81\xd2\x40\xe5\x1e\x24\xee\xc0\xf4\x85\xb1\xc2\xf6\x56\x28\x69\x80\x72\x1e\x64\x72\x9b\x2e\x7b\xdb\x6b\x8c\x47\xaa\xf3\x2f\xb3\x11\x9c\x78\xe7\xc1\x9e\xc1\x6c\xb1\x58\x7e\xcd\x17\xcb\xe5\xc3\x7c\x04\xd0\x52\x56\x0b\x89\xeb\x7d\x87\x19\x44\x9f\xcf\xf3\x9b\xdb\xeb\x9b\x8f\xf7\x5f\xf2\x0f\xd1\xc8\x58\xec\x3c\x0e\x01\x49\x5b\xcc\xa0\x62\x3a\x16\xea\xdb\xf3\x44\x6d\x92\xca\xff\x1f\x01\x00\xa0\xb4\x7a\xdf\x29\x21\x6d\x06\x51\x41\x4d\x1d\x79\xf3\x19\x7c\x5e\xae\xe7\xaf\x59\x43\x7b\x2e\xfa\xe2\x4d\x06\x5f\x11\x24\x22\x77\x6a\x57\x68\x3d\x7f\x46\xe3\x0e\xdb\x31\x30\xd4\x36\xac\x36\xb8\x77\x0b\x28\x45\x83\xc6\x6b\xd3\xf5\x16\xdc\x71\x5a\x74\x9f\x0c\xd8\x89\xfb\xc2\x24\x31\x57\x6c\x83\x9a\x9c\x7f\x48\x27\xc9\xf8\x89\x75\x92\x5e\x3e\x6b\x9d\x24\x50\x2a\xbf\x91\x31\xec\x6a\xc1\x6a\xd8\x89\xa6\x01\xa6\xa4\xa5\x07\x65\x5d\xfc\xd8\x47\xa3\xba\xf2\x8a\x38\x4d\x08\x1b\x16\x7f\xfa\x27\x40\xbb\xe1\x42\x03\xe9\xe0\x00\xbf\x13\x92\xab\x9d\x19\x5e\x07\x9d\x5c\x4a\x6b\xb4\x06\xb6\xa8\x4d\x38\x45\xc6\xd0\x18\x68\xa8\x45\x63\x81\x90\x4e\xab\xdf\x91\xd9\xe9\xe6\x83\x4b\xb0\x52\x53\x67\xd9\x05\xbd\x89\xd5\xbd\xb1\xc8\x81\x90\x80\x33\x1d\x62\x10\x8d\xad\xb2\x48\x42\xe4\x9c\x51\xe2\x94\xfb\xdf\xf7\x54\x92\xa0\xf2\xcf\x60\x84\xda\xbe\xc4\x69\x38\xf1\x9f\xc0\x6a\x83\xfb\x17\x48\x0d\xc9\x37\x70\x62\x1d\x10\xfd\xbd\xcf\x73\x99\xf7\x43\xfe\x93\xf4\xf2\x07\xfd\x03\xfe\x56\x35\x7d\x8b\xc7\x44\x0c\x97\x33\xf2\xce\xd1\x00\xd8\x51\x5b\x67\x10\x25\x47\xe3\xd1\x6d\xb8\xc4\x4e\x35\x27\x64\x28\x84\x49\xc5\x8a\x41\x13\x12\xf4\xcf\xb6\x17\xa9\x0b\x98\xbe\x23\xef\xaf\xde\x96\xc8\xaf\xa2\x27\x57\xbc\xa5\x9b\x70\x09\xb9\xd0\x19\xc4\x89\xc3\x4b\x06\xc0\xc1\x79\x7b\x20\xf9\x69\xf9\xf1\xd7\xf9\x2a\xff\xb8\xb8\xcd\xe7\xbf\xdd\xcf\x57\xb7\x77\xf3\xcf\xeb\xd9\x62\x8a\x92\x16\x0d\xf2\xc1\x6b\x3d\xbb\x9e\xbe\x3a\x94\xc3\xc1\x76\x28\x85\xd3\x57\xa7\xa5\x71\x78\xfd\xf5\x66\xb6\x9e\xbe\xca\xdd\x63\xb0\xac\xe6\xd7\xb7\x0f\xeb\xd5\xe3\xf4\x9b\xad\x1a\x4b\x2b\x21\x2b\x82\x17\xe8\xb7\x4d\x02\xcd\xef\xc8\xcd\x57\xeb\x00\x7f\x3f\x5b\xdf\x4c\x83\x78\x47\xd0\xbb\xe5\x7a\x9e\x0f\x9e\x5f\x56\x8b\xdc\x1d\xf7\xd4\xb2\x2e\x4b\x12\xd1\x56\x2e\xf9\x5c\x66\x85\x34\x88\x91\x1a\xdb\x9b\xd8\x4b\x49\xbb\x2e\xa6\x7f\xb8\xe2\xcc\x54\x9b\x5d\x5c\xbe\x7f\xf7\x32\xe6\x24\xbd\x7c\x16\x73\x92\x5e\xfe\x07\xcc\xe7\x79\x4e\xfe\x19\xcf\x6f\x6b\x1e\x6d\x9a\xe1\x82\x51\xc9\x49\xd7\x9b\xfa\x5f\x26\xe4\x49\x23\x73\xdf\x9d\xfd\xdd\x05\x7d\x01\x2e\x7c\xdd\x6d\x90\xc3\x4e\xd8\x1a\x28\x54\xc2\x92\xc2\x37\x72\x4b\x2b\x28\x95\xf6\xb5\xd9\x1f\xe3\x18\x54\x19\x2a\xb5\xd2\x2d\x6c\x1f\x1f\x1f\x1f\xef\xee\x3e\x7d\x22\x35\x35\xf5\xd8\x35\x0e\x8f\xcf\xa8\x74\xa8\xbd\x83\xa0\x06\xe8\x49\x7b\x1c\xc1\x31\x7e\x06\xd1\xf9\xc5\xe5\xd5\xdb\x28\xb0\x3a\xc9\xb9\xa7\xcd\x41\xa3\x0b\x4d\xc3\xb0\xe1\x04\x09\x5d\xcd\xfd\xb4\xa8\xfc\x44\xe1\x06\x81\x30\x53\x10\x0f\x49\xa1\xd0\x54\xb2\x1a\x1a\xb1\x41\x88\x5a\x6a\x2c\xea\xc8\xb5\xf9\x48\x63\xe3\x86\x15\x92\xc6\x17\xd1\xd8\x37\x7e\xbf\xdb\xe0\xb8\x75\x56\xd7\x87\x4e\x39\x65\x47\x88\x40\xd8\xdd\x84\xa7\x3c\xbd\x50\xfe\x64\xfc\x88\x83\x9e\x91\x1d\xba\x6a\xd1\x88\x23\xf1\x1a\x61\xb8\x2c\xa0\xb1\x12\xc6\xea\xbd\x8f\xe9\x60\x33\x88\x5c\x06\xb8\xc9\x4d\xe9\x96\x4a\x86\xd1\xe8\xaf\x00\x00\x00\xff\xff\xfe\xae\x61\xa7\xfd\x09\x00\x00") - -func testImagesCloudbuildYamlBytes() ([]byte, error) { - return bindataRead( - _testImagesCloudbuildYaml, - "test/images/cloudbuild.yaml", - ) -} - -func testImagesCloudbuildYaml() (*asset, error) { - bytes, err := testImagesCloudbuildYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/cloudbuild.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesCudaVectorAddBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\xcd\x2b\xcb\x4c\xc9\x4c\xd4\x4f\x2e\x4d\x49\xb4\x32\x34\xd0\x33\xd0\x4d\x49\x2d\x4b\xcd\xd1\x2d\x4d\x2a\xcd\x2b\x29\x35\xb4\xd0\x33\x30\xe1\x82\x28\x2f\x28\x48\x36\x33\xc9\x49\x45\xd6\xa0\x0b\x15\xc3\xa5\x11\x10\x00\x00\xff\xff\x54\xd9\xcc\x89\x68\x00\x00\x00") - -func testImagesCudaVectorAddBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesCudaVectorAddBaseimage, - "test/images/cuda-vector-add/BASEIMAGE", - ) -} - -func testImagesCudaVectorAddBaseimage() (*asset, error) { - bytes, err := testImagesCudaVectorAddBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/cuda-vector-add/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesCudaVectorAddDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x51\x6f\xbb\x36\x14\xc5\xdf\xfd\x29\x8e\xc2\x5f\xd5\x36\x05\x9c\xf5\x65\xd2\xf6\x44\x49\xda\xa2\x34\xd0\x41\xd2\xaa\xd2\xa4\xc8\x81\x1b\xb0\x66\x6c\x6a\x9b\xa4\xf9\xf6\x13\x49\xba\xb5\x9a\xdf\xee\xbd\x87\x73\x7f\xf7\x10\x20\x31\xfd\xc9\xca\xa6\xf5\xb8\x9d\xfd\xfa\x1b\xd6\x2d\x61\x39\xec\xc8\x6a\xf2\xe4\x10\x0f\xbe\x35\xd6\x45\x2c\x60\x01\x9e\x64\x45\xda\x51\x8d\x41\xd7\x64\xe1\x5b\x42\xdc\x8b\xaa\xa5\xcf\xc9\x14\x2f\x64\x9d\x34\x1a\xb7\xd1\x0c\x3f\x8d\x82\xc9\x75\x34\xf9\xf9\x0f\x16\xe0\x64\x06\x74\xe2\x04\x6d\x3c\x06\x47\xf0\xad\x74\xd8\x4b\x45\xa0\x8f\x8a\x7a\x0f\xa9\x51\x99\xae\x57\x52\xe8\x8a\x70\x94\xbe\x3d\xaf\xb9\x9a\x44\x2c\xc0\xdb\xd5\xc2\xec\xbc\x90\x1a\x02\x95\xe9\x4f\x30\xfb\xaf\x3a\x08\x7f\x06\x1e\x5f\xeb\x7d\xff\x3b\xe7\xc7\xe3\x31\x12\x67\xd8\xc8\xd8\x86\xab\x8b\xd0\xf1\xa7\x34\x59\x64\xe5\x22\xbc\x8d\x66\xe7\x4f\x36\x5a\x91\x73\xb0\xf4\x3e\x48\x4b\x35\x76\x27\x88\xbe\x57\xb2\x12\x3b\x45\x50\xe2\x08\x63\x21\x1a\x4b\x54\xc3\x9b\x91\xf7\x68\xa5\x97\xba\x99\xc2\x99\xbd\x3f\x0a\x4b\x2c\x40\x2d\x9d\xb7\x72\x37\xf8\x6f\x61\x7d\xd2\x49\xf7\x4d\x60\x34\x84\xc6\x24\x2e\x91\x96\x13\xdc\xc5\x65\x5a\x4e\x59\x80\xd7\x74\xfd\x98\x6f\xd6\x78\x8d\x8b\x22\xce\xd6\xe9\xa2\x44\x5e\x20\xc9\xb3\x79\xba\x4e\xf3\xac\x44\x7e\x8f\x38\x7b\xc3\x32\xcd\xe6\x53\x90\xf4\x2d\x59\xd0\x47\x6f\x47\x7e\x63\x21\xc7\x18\xa9\x1e\x33\x2b\x89\xbe\x01\xec\xcd\x05\xc8\xf5\x54\xc9\xbd\xac\xa0\x84\x6e\x06\xd1\x10\x1a\x73\x20\xab\xa5\x6e\xd0\x93\xed\xa4\x1b\x7f\xa6\x83\xd0\x35\x0b\xa0\x64\x27\xbd\xf0\xe7\xce\xff\x8e\x8a\x18\x8b\x8b\x87\x91\x7e\x91\xae\xe2\x87\x05\xbb\x2f\xf2\x15\x7e\xfc\x57\xb3\xa4\xc8\xcb\x72\x7b\xb7\x49\x9f\xe6\xdb\x24\x7f\x7e\xc3\x3b\x75\x43\xf8\xe7\x62\xb5\x89\x8b\xe4\x31\x74\xa3\x75\x05\x3e\x38\xcb\x77\x52\x73\xc6\x8a\x4d\x06\xd1\xfb\xb0\x21\x8f\xa1\xaf\x85\x27\xdc\xdc\xfc\xdb\x91\xda\x79\xa1\x14\xc2\x13\xc2\x50\x9b\xf0\x5a\x87\x96\x2a\xd3\x75\xa4\x6b\x87\xbf\x18\xae\xaf\x1a\x6a\x11\x3a\xd1\xf5\x8a\x5c\xf8\x23\xd9\xcc\xe3\xed\xf3\xf2\x61\xfb\xb2\x28\xca\x34\xcf\x46\xdb\x8b\xd6\x76\x08\xed\x1e\xfc\x20\x2c\x57\x72\xc7\x45\xef\xb9\x92\xce\x3b\xfe\x0b\x63\xaf\x79\xb1\x9c\xa7\xc5\x05\x51\x99\x4a\x28\x3e\xfa\xf2\xab\x2f\x9f\x6d\xcb\x31\x73\xe2\x07\xaa\xbc\xb1\x71\x5d\x9f\x4f\xe8\xc4\xdf\xc4\x58\xb2\x9a\x43\x1f\x64\x2d\x45\xe8\x3a\x39\x6e\x8c\xbe\xe8\xfe\x09\x00\x00\xff\xff\xf1\x72\x29\x14\x87\x03\x00\x00") - -func testImagesCudaVectorAddDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesCudaVectorAddDockerfile, - "test/images/cuda-vector-add/Dockerfile", - ) -} - -func testImagesCudaVectorAddDockerfile() (*asset, error) { - bytes, err := testImagesCudaVectorAddDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/cuda-vector-add/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesCudaVectorAddOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\xc8\xca\x4c\xac\xcc\xcc\x4b\xaf\x02\x73\x72\xb3\x4b\x73\x13\x4b\x12\xd3\xb9\x00\x01\x00\x00\xff\xff\xa1\xc6\xdb\x43\x25\x00\x00\x00") - -func testImagesCudaVectorAddOwnersBytes() ([]byte, error) { - return bindataRead( - _testImagesCudaVectorAddOwners, - "test/images/cuda-vector-add/OWNERS", - ) -} - -func testImagesCudaVectorAddOwners() (*asset, error) { - bytes, err := testImagesCudaVectorAddOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/cuda-vector-add/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesCudaVectorAddVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd2\x33\xe4\x02\x04\x00\x00\xff\xff\x70\x6a\x3d\x6f\x04\x00\x00\x00") - -func testImagesCudaVectorAddVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesCudaVectorAddVersion, - "test/images/cuda-vector-add/VERSION", - ) -} - -func testImagesCudaVectorAddVersion() (*asset, error) { - bytes, err := testImagesCudaVectorAddVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/cuda-vector-add/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesEchoserverBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\xcd\x4b\xcf\xcc\xab\xb0\x32\xd4\x33\x34\xd5\x4d\xcc\x29\xc8\xcc\x4b\xe5\x82\xca\x16\xe5\xda\x26\x16\xe5\x1a\x1b\x95\x99\xe9\xe3\x51\x63\x66\x62\x0b\x26\xcb\x2c\x70\xaa\x2a\x28\x48\x36\x33\xc9\x49\xb5\x85\xd2\x38\xd5\x15\x1b\x5b\x1a\x54\xd8\x82\x49\x2c\x6a\x00\x01\x00\x00\xff\xff\xc4\xff\xf5\xf6\xb4\x00\x00\x00") - -func testImagesEchoserverBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesEchoserverBaseimage, - "test/images/echoserver/BASEIMAGE", - ) -} - -func testImagesEchoserverBaseimage() (*asset, error) { - bytes, err := testImagesEchoserverBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/echoserver/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesEchoserverDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x92\xd1\x6e\x9b\x30\x14\x86\xef\xfd\x14\xbf\xc2\x2e\x36\x2d\x40\x5b\x69\x9a\xb4\x5d\xd1\x84\xb6\xa8\x0d\x74\x90\xac\x8a\xa6\xa9\x72\xe0\x04\xac\x82\xed\xda\x66\x49\xde\x7e\x82\xb4\x6a\xab\x75\x5c\xc1\xef\xef\x1c\x7f\x3e\xc6\xc3\x4c\xe9\x83\x11\x75\xe3\x70\x76\x72\xfa\x15\xcb\x86\x70\xdd\x6f\xc8\x48\x72\x64\x11\xf5\xae\x51\xc6\x06\xcc\x63\x1e\x6e\x44\x49\xd2\x52\x85\x5e\x56\x64\xe0\x1a\x42\xa4\x79\xd9\xd0\xf3\xca\x14\x3f\xc9\x58\xa1\x24\xce\x82\x13\x7c\x1c\x80\xc9\xd3\xd2\xe4\xd3\x77\xe6\xe1\xa0\x7a\x74\xfc\x00\xa9\x1c\x7a\x4b\x70\x8d\xb0\xd8\x8a\x96\x40\xfb\x92\xb4\x83\x90\x28\x55\xa7\x5b\xc1\x65\x49\xd8\x09\xd7\x8c\xdb\x3c\x35\x09\x98\x87\xf5\x53\x0b\xb5\x71\x5c\x48\x70\x94\x4a\x1f\xa0\xb6\xaf\x39\x70\x37\x0a\x0f\x4f\xe3\x9c\xfe\x16\x86\xbb\xdd\x2e\xe0\xa3\x6c\xa0\x4c\x1d\xb6\x47\xd0\x86\x37\xc9\x2c\x4e\x8b\xd8\x3f\x0b\x4e\xc6\x92\x95\x6c\xc9\x5a\x18\x7a\xec\x85\xa1\x0a\x9b\x03\xb8\xd6\xad\x28\xf9\xa6\x25\xb4\x7c\x07\x65\xc0\x6b\x43\x54\xc1\xa9\xc1\x77\x67\x84\x13\xb2\x9e\xc2\xaa\xad\xdb\x71\x43\xcc\x43\x25\xac\x33\x62\xd3\xbb\x37\xc3\x7a\xb6\x13\xf6\x0d\xa0\x24\xb8\xc4\x24\x2a\x90\x14\x13\x9c\x47\x45\x52\x4c\x99\x87\xbb\x64\x79\x95\xad\x96\xb8\x8b\xf2\x3c\x4a\x97\x49\x5c\x20\xcb\x31\xcb\xd2\x79\xb2\x4c\xb2\xb4\x40\x76\x81\x28\x5d\xe3\x3a\x49\xe7\x53\x90\x70\x0d\x19\xd0\x5e\x9b\xc1\x5f\x19\x88\x61\x8c\x54\x0d\x33\x2b\x88\xde\x08\x6c\xd5\x51\xc8\x6a\x2a\xc5\x56\x94\x68\xb9\xac\x7b\x5e\x13\x6a\xf5\x87\x8c\x14\xb2\x86\x26\xd3\x09\x3b\x5c\xa6\x05\x97\x15\xf3\xd0\x8a\x4e\x38\xee\xc6\xe4\x9f\x43\x05\x8c\x45\xf9\xe5\x60\x1f\x27\x8b\xe8\x32\x66\x17\x79\xb6\xc0\x87\x97\x6f\x36\xcb\xb3\xa2\xb8\x3f\x5f\x25\x37\xf3\xfb\x59\x76\xbb\xc6\x23\x75\xbd\xff\x23\x5e\xac\xa2\x7c\x76\xe5\xdb\xa1\x75\x89\xb0\xb7\x26\xdc\x08\x19\x32\x96\xaf\x52\x70\xfd\x00\x5e\x55\xf0\x7d\xa9\xfc\x72\xfc\xd7\x94\x26\x69\x6d\x0b\x59\x0b\xb9\xf7\x3b\x55\xf9\xc3\x15\xfb\x6d\xcf\xdf\x89\xfc\x5e\x5b\x67\x88\x77\x63\xb7\xee\xa1\x12\x06\xbe\x46\x68\x7a\x19\x8e\x34\x63\xd1\x7c\x7e\x2c\x0c\x4a\x25\xb7\x08\xc9\x95\xc7\xa5\xf0\x25\x1d\x21\x47\x9d\x6e\xb9\xa3\x60\xd8\x6a\xf4\x6c\x55\xc9\xdb\xd0\x36\xdc\x50\xd8\xf6\x3c\xfc\x12\x9c\x86\x23\x9a\xc7\xd1\x7c\x11\x07\x5d\xf5\xf2\x36\xe6\xa6\x97\x81\x6d\x5e\x17\x0f\x47\x3d\xa6\xa3\x61\xd9\x74\xaa\xc2\xe7\xfd\x7f\x90\x38\x5d\xe6\xeb\xdb\x2c\x49\x97\xf8\x35\x79\x17\x99\xfc\x66\x7f\x03\x00\x00\xff\xff\x95\xfc\xf7\xf7\xd4\x03\x00\x00") - -func testImagesEchoserverDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesEchoserverDockerfile, - "test/images/echoserver/Dockerfile", - ) -} - -func testImagesEchoserverDockerfile() (*asset, error) { - bytes, err := testImagesEchoserverDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/echoserver/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesEchoserverOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xc9\xcc\x2d\xe6\x02\x04\x00\x00\xff\xff\xe2\x68\x65\xd7\x14\x00\x00\x00") - -func testImagesEchoserverOwnersBytes() ([]byte, error) { - return bindataRead( - _testImagesEchoserverOwners, - "test/images/echoserver/OWNERS", - ) -} - -func testImagesEchoserverOwners() (*asset, error) { - bytes, err := testImagesEchoserverOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/echoserver/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesEchoserverVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd2\x33\xe6\x02\x04\x00\x00\xff\xff\xf2\x08\x0b\x5d\x04\x00\x00\x00") - -func testImagesEchoserverVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesEchoserverVersion, - "test/images/echoserver/VERSION", - ) -} - -func testImagesEchoserverVersion() (*asset, error) { - bytes, err := testImagesEchoserverVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/echoserver/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesEchoserverNginxConf = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x56\x41\x6f\xdb\x3a\x12\x3e\x8b\xbf\x62\xa0\x20\x88\x0d\xc4\x52\xd2\x06\x8b\xae\x03\x1f\xd2\x6d\x80\x06\x8b\x36\x41\xd2\x3d\x05\x81\x40\x53\x63\x8b\x30\x45\xaa\x24\x65\x5b\x6b\xf8\xbf\x3f\x0c\x25\xd9\x72\x93\x77\x78\x27\x81\xc3\x6f\x66\xc8\xe1\x37\xdf\x48\x19\x9e\x67\xa5\xc9\x6b\x85\xd0\x7e\x5c\xaa\xf3\x55\x56\x78\x5f\x75\xf6\xc4\x99\x5b\xf6\x21\x6e\xb9\x6d\x71\xaa\xe6\xff\x08\x5b\x57\xce\x5b\xe4\xe5\xd0\x89\xe1\x1a\xb5\x77\xb0\x63\xd1\xc6\xd8\x15\xda\x4c\x18\xad\x51\x78\x69\xb4\x83\xeb\xab\x4f\x37\xb7\x6c\xcf\x18\xea\x35\x7c\x7f\x7c\xf9\xf5\xf3\xee\xc7\xfd\x6d\x58\xfd\x7c\xfc\x76\x9f\x1d\x97\x4f\x8f\xdf\x3e\x58\xbd\x3c\xdd\xfd\x67\x60\x7a\x78\xba\x65\x8c\x8e\x43\xe9\x72\x5c\xf0\x5a\xf9\xcc\x37\x15\xc2\x85\xc7\xad\x4f\x2b\xc5\xa5\xbe\xb8\x65\xd1\x19\x94\x7c\x2b\xcb\xba\x04\xae\x94\xd9\x60\x0e\x4e\xfe\x1f\xc1\x2c\xc0\x17\x08\x42\x49\xd4\x1e\x2c\xfe\xae\xd1\x79\x98\x9b\xbc\x49\xe0\x6b\x03\x5d\x44\xf0\x85\x74\x20\x1d\x5c\x97\x09\x85\x7a\xee\x70\x1b\xe9\x0b\x98\xcb\xe5\x12\x2d\xf9\x48\x74\xa0\x97\x52\x6f\x61\x23\x95\x02\x8b\xbe\xb6\x1a\xd0\x5a\x63\x41\x98\x1c\xe1\xe6\xfa\x73\xf0\xa7\x03\x4f\xd3\x34\x60\x13\x63\x97\x29\xea\x34\x37\xc2\xa5\xb4\x71\xac\xb0\x30\x16\xfb\xca\x16\xbe\x54\x67\xed\x31\xb3\x92\x6f\x33\x3a\x62\x46\x57\x60\xd1\x47\x56\xb8\xbe\x2a\x6f\x19\x8b\xa4\x96\x3e\x9b\x37\xe1\xb1\xe6\xca\x88\x15\xd5\x29\x52\x46\x70\x05\x1e\xcb\x4a\x71\x8f\x30\x0b\x17\x97\x16\x47\x71\x6f\x8b\xc7\x2c\x8a\x26\x93\x23\xc6\x35\xda\xf3\x2d\xe4\x46\xd4\x25\x6a\x8f\x39\x14\x68\x71\xda\xa2\xe8\xb4\x6e\x9a\xa6\x4b\xe9\x8b\x7a\x9e\x08\x53\xa6\xf3\x5a\x2f\x15\xa6\xaa\xe6\x13\x8b\xce\x37\x93\x3e\x52\x3a\x57\x66\x9e\x96\xdc\x79\xb4\xe9\xf3\xfd\xdd\xb7\x1f\xf7\x49\x99\xb3\x28\xf2\x65\xa5\x60\x76\xc8\x48\x51\x2a\xa9\x70\xf4\xfa\xca\x18\xfb\x6e\x9c\xd7\xbc\xc4\x29\xec\x76\xc6\x25\x4b\xf4\xa8\xd7\xa3\xb8\x27\x50\x3c\x06\x63\x21\xfe\x99\xde\xc5\xfb\x3d\x63\x4f\x26\x87\x07\xbd\x30\xb6\xe4\xc4\xba\x29\xdb\x9d\x83\x5c\xc0\xc0\xb1\xa7\x53\x3c\xa6\xf7\xd7\x70\xbe\x67\x91\xa6\x27\x0a\x49\xa2\x93\x24\x07\x5e\x9e\x66\x89\x2a\x93\x7f\x04\x1f\x84\xfe\x08\xed\x2a\x2e\xfe\xce\x25\x90\xfb\x03\xbf\x87\xa7\x0f\x1c\x1e\x9e\x4e\x91\xbb\x73\x40\xe5\x30\x5c\x65\xa2\x0d\x90\xa3\x3c\x16\x01\xf8\x9a\x4b\xc5\xe7\x0a\x27\x01\xaa\x73\x42\xb2\x17\xb4\x6b\xb4\xb0\xe6\xaa\x46\x37\x65\x91\x0b\xeb\x6c\x8d\xd6\x49\xa3\x67\x81\xa2\x54\x74\xbd\xdc\x26\x6b\x6e\x93\x60\xe8\xb7\xf7\x7b\x98\x80\xaa\x79\x0f\x10\x46\x2f\xe4\x32\x21\x02\x13\xe1\x0e\x28\xc6\xfa\x8e\x39\x79\x95\x9e\xb9\x3c\xcf\x2d\x3a\x37\x3b\x66\xb1\x58\x1a\x8f\x61\x83\x6a\x50\xa2\x2f\x4c\xde\xed\x5b\xfc\x4d\x75\xc8\x5a\xe3\x68\x4c\x00\x8b\x5c\x41\xc5\x7d\x71\x12\x23\xa4\xcc\x6a\x2b\x09\xf2\xbb\x46\xdb\x0c\xb6\xc3\x3a\x73\xde\x4a\xbd\x0c\x65\x8c\xdb\x40\xad\x53\x7f\xff\x63\xca\xd0\x91\x9d\xb9\x4f\xda\x62\x9d\x28\xb0\xc4\x41\xe8\xd6\x30\x84\xd4\x56\xbe\xdb\x4f\x92\x78\x9a\xa6\x71\x92\xf4\xe6\xc2\x38\x4f\xc6\x81\xa9\x7b\x8d\xca\x58\x7f\x34\x9e\x5e\xec\x50\xda\xef\xc8\x73\xb4\x2e\x90\x7d\x61\x2c\xc8\x4b\x58\x61\x03\x52\x83\xac\xb8\xb4\x6e\xb4\xc2\xc6\x8d\x21\x37\x81\x21\xbb\x73\x68\x55\x60\xcd\xa9\xeb\x8a\xd6\xf9\x75\x85\xcd\x5b\xbf\x2f\x17\x40\x4a\x3a\x5a\x73\x35\x86\xd9\x0c\x62\x4f\xec\x89\x8f\x0d\x13\xf5\x99\x60\x06\xd7\x97\x67\x14\xa9\x8f\xbe\x5b\x61\xb3\xdf\xcf\x76\xbb\x35\x57\xaf\xf2\x6d\xdf\xa1\x3b\xd6\x45\x43\xae\x9e\x60\xf7\xdd\x66\x8b\x1b\xf0\xb4\xbf\xe5\x57\x93\x37\x53\xf6\xfe\x95\x49\xf9\xc2\x33\x06\xee\x87\x95\xd4\xbd\xa0\x4f\xe8\x6d\xdf\xde\xc6\x2c\xda\xb3\x9e\xe2\x41\x08\xcf\xa0\x52\xc8\x1d\x82\x28\x50\xac\xc2\x28\x98\xa3\xc6\x85\xf4\x8e\x46\x83\xc5\xda\x21\x15\xff\xa0\x70\x9b\xcd\xa6\x6d\x81\x56\xe4\x94\x59\xa6\xce\x88\x15\xfa\x89\x2b\xb8\xcd\xa5\x5e\x4e\xc2\xf6\xc4\x62\x08\x3c\xb9\x9e\xfc\x7b\x72\x1d\x32\xcd\xb9\x93\x82\x2b\x45\x07\x73\xde\xd6\xc2\x3b\xf0\x06\x84\x45\xd2\x57\xae\x41\xea\x5c\xae\x65\x5e\x73\x05\x4a\x3a\x8f\x9a\x98\xd9\x46\x0f\x65\x46\x2e\x0a\x68\x47\x2a\x54\xd6\x08\x74\x0e\x46\xb5\x23\x14\x1d\xfc\xe5\x31\x7b\xbe\xff\xdf\xcb\xfd\xd3\xe3\xf3\xaf\x90\xb0\x73\x35\x15\x75\xdb\xf8\xb2\x1d\x7c\x84\xe6\xb0\x42\xab\x51\x51\xfa\x5c\x52\x0b\xcc\x6b\x8f\x20\xb5\x30\x25\xed\x0f\xe7\xf5\x1c\xfd\x06\x51\xff\x91\x17\x5d\x42\x63\x24\x9c\x12\xbe\x5c\x7d\xb9\xea\x27\x65\xd6\x15\xf7\x50\xb9\xdb\x01\xee\xe6\xe6\xf3\x9f\x38\xe7\x54\xa8\xed\xa7\xa1\x07\x8b\x22\xe7\x54\x26\xd0\x7a\xb9\x90\x82\xca\x93\xd2\xc2\xa5\x03\x53\x22\xda\xe0\x7f\x20\x33\xe2\x7c\x87\xae\xac\x5c\x73\x8f\xff\xc5\x26\x59\x61\x13\xe2\xd2\xec\xae\x14\x17\x08\x17\xd9\x45\x3b\xbf\x1b\x53\x5b\x28\xba\xf9\x42\xd7\xea\x9a\x8e\x96\x90\x75\x5e\x0e\x3d\x28\xa3\x97\xb0\x42\xac\xb8\x92\x6b\xcc\xbc\x2c\xd1\xd4\x1e\xe6\x28\x78\xed\x10\x9c\x29\x11\xe8\x8f\x69\xce\x15\xd7\xa2\x2d\xd6\x96\xfe\x09\x70\x5b\xa1\xf0\xed\x8f\xc6\xa1\xb4\x21\xac\x37\x60\xb1\xe4\x52\x83\xa9\x50\x87\x57\xe6\x1e\x88\x39\x1e\xa8\x64\xa5\xd4\xb5\x6f\x8b\xfd\x3e\xf1\xbf\x3e\x5d\xb9\x70\x3c\x6a\xe4\x20\xf1\x69\x20\x75\x44\xda\xab\x11\xf3\xec\xb4\x39\x34\x95\x2b\x12\x46\x7b\x12\xdd\x77\x3f\x05\x51\x44\x3d\xd5\x0a\xc1\x6b\xdc\xce\x85\xf8\x0d\x66\x10\xa3\x28\x4c\x5b\x94\x98\x05\x60\xab\x1c\x9d\x66\xc0\x0c\x86\xb2\xdc\x59\x47\xe3\x01\x92\x94\x07\x66\xb0\xdb\x07\x1b\xdd\x72\x85\xcd\x65\x90\x1e\xa9\xa1\x55\xa7\xce\x8f\x04\x2a\xa0\xa2\xa0\x36\x89\xd4\x0e\xad\x0f\xda\x15\xf4\xac\x0d\x8b\x3a\x67\x47\x8c\x33\x1d\x62\xcc\x0e\xf7\x70\xbc\x19\xd1\x1f\xc5\x68\x67\xdc\xcc\xb8\x4b\x3a\xe3\x4c\x2f\xb7\x21\x88\x9b\xb5\xf1\xba\x9c\xb3\xee\xbb\x1f\x87\xe8\x74\xca\x3d\x49\xc5\x9e\xfd\x15\x00\x00\xff\xff\x6d\xfd\xc1\xd0\x55\x0b\x00\x00") - -func testImagesEchoserverNginxConfBytes() ([]byte, error) { - return bindataRead( - _testImagesEchoserverNginxConf, - "test/images/echoserver/nginx.conf", - ) -} - -func testImagesEchoserverNginxConf() (*asset, error) { - bytes, err := testImagesEchoserverNginxConfBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/echoserver/nginx.conf", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesEchoserverRunSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\xd1\x6f\xab\x36\x14\xc6\xdf\xfd\x57\x7c\x83\x97\x4d\x0a\x90\x65\xeb\xd5\xdd\xbd\xca\x43\x96\x76\x1b\x4a\x04\x52\x49\x56\x55\xea\x8b\x03\x07\x38\x0b\xd8\x9e\x6d\x4a\xf8\xef\x27\xd2\x54\x6a\x35\x3f\xd8\xb2\xbf\xcf\xc7\xdf\xf9\x39\xfc\x21\x39\xb1\x4a\x5c\x2b\x44\x88\xad\x36\x93\xe5\xa6\xf5\x58\x2d\x7f\xfe\x8a\x43\x4b\xd8\x0d\x27\xb2\x8a\x3c\x39\x6c\x06\xdf\x6a\xeb\x62\x11\x8a\x10\x7b\x2e\x49\x39\xaa\x30\xa8\x8a\x2c\x7c\x4b\xd8\x18\x59\xb6\xf4\xae\x2c\xf0\x37\x59\xc7\x5a\x61\x15\x2f\xf1\xe3\x6c\x08\x6e\x52\xf0\xd3\x77\x11\x62\xd2\x03\x7a\x39\x41\x69\x8f\xc1\x11\x7c\xcb\x0e\x35\x77\x04\xba\x94\x64\x3c\x58\xa1\xd4\xbd\xe9\x58\xaa\x92\x30\xb2\x6f\xaf\xcf\xdc\x8a\xc4\x22\xc4\xf3\xad\x84\x3e\x79\xc9\x0a\x12\xa5\x36\x13\x74\xfd\xd1\x07\xe9\xaf\x81\xe7\xd1\x7a\x6f\xbe\x25\xc9\x38\x8e\xb1\xbc\x86\x8d\xb5\x6d\x92\xee\xcd\xe8\x92\x7d\xba\x7d\xc8\x8a\x87\x68\x15\x2f\xaf\x57\x8e\xaa\x23\xe7\x60\xe9\xdf\x81\x2d\x55\x38\x4d\x90\xc6\x74\x5c\xca\x53\x47\xe8\xe4\x08\x6d\x21\x1b\x4b\x54\xc1\xeb\x39\xef\x68\xd9\xb3\x6a\x16\x70\xba\xf6\xa3\xb4\x24\x42\x54\xec\xbc\xe5\xd3\xe0\x3f\xc1\x7a\x4f\xc7\xee\x93\x41\x2b\x48\x85\x60\x53\x20\x2d\x02\xfc\xbe\x29\xd2\x62\x21\x42\x3c\xa5\x87\xbf\xf2\xe3\x01\x4f\x9b\xc7\xc7\x4d\x76\x48\x1f\x0a\xe4\x8f\xd8\xe6\xd9\x7d\x7a\x48\xf3\xac\x40\xfe\x07\x36\xd9\x33\x76\x69\x76\xbf\x00\xb1\x6f\xc9\x82\x2e\xc6\xce\xf9\xb5\x05\xcf\x18\xa9\x9a\x99\x15\x44\x9f\x02\xd4\xfa\x2d\x90\x33\x54\x72\xcd\x25\x3a\xa9\x9a\x41\x36\x84\x46\xbf\x92\x55\xac\x1a\x18\xb2\x3d\xbb\xf9\x33\x1d\xa4\xaa\x44\x88\x8e\x7b\xf6\xd2\x5f\x4f\xfe\xd7\x54\x2c\x04\x95\xad\x46\xf0\x27\x29\xb2\x72\x26\x02\x47\x5d\x1d\x39\x6e\x14\x55\x28\xc9\xfa\x40\xf4\xe7\x8a\x2d\x22\x83\x64\xde\x3b\xa1\x0d\x29\xe7\xba\x19\x37\xa2\xcb\xdd\xf2\x37\x44\xae\x95\xab\xbb\x2f\x88\x94\xae\xc8\x21\xaa\xe4\xe4\xf0\xcb\x97\x3b\x44\x8a\xc6\x33\x4d\xb0\x4e\x7e\x5b\x2d\x7f\xfd\x8a\x17\x11\x9d\x69\xd2\x83\xbf\x15\x4b\x8c\xe5\x57\xe9\x69\x47\x53\x3c\x1b\x5f\x44\xf4\x41\x9c\xe7\xb9\x55\xe9\x29\x2e\xad\x9f\x55\x37\x9c\xfe\x41\x90\x6c\xd7\xc7\x5d\x52\x1c\xd6\x4f\xd2\x8e\x5c\x9e\x5d\xcb\x96\x92\xfd\x7a\x4f\xb2\x67\xd5\x78\xad\x92\x7c\x9d\xdb\x26\x93\x3d\x25\xf9\x71\x9d\x1e\x70\x4f\x46\x5a\xdf\x93\xf2\xc9\x36\x5b\xd3\x45\xf6\xa6\xa3\xb8\xd4\x7d\xf0\x0e\xa1\xf0\xd2\x5e\x11\xa8\x86\xd5\x25\x10\xd7\x05\x51\x83\xa0\x92\xd4\x6b\x05\x5d\xd7\xdf\x03\xf1\x5f\x00\x00\x00\xff\xff\x0b\x85\xf1\xac\x89\x03\x00\x00") - -func testImagesEchoserverRunShBytes() ([]byte, error) { - return bindataRead( - _testImagesEchoserverRunSh, - "test/images/echoserver/run.sh", - ) -} - -func testImagesEchoserverRunSh() (*asset, error) { - bytes, err := testImagesEchoserverRunShBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/echoserver/run.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesEchoserverTemplateLua = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x5b\x7b\x73\xda\xc8\x96\xff\x9f\x4f\x71\x4a\xb3\x33\x16\x13\x19\x1b\x27\xd9\x4c\x32\xc3\x54\x61\x50\x6c\x55\x61\xf0\x4a\xb2\x73\x53\xc4\x4b\x09\xd1\x60\xc5\x42\xd2\xd5\xc3\x86\x71\x79\x3f\xfb\xd6\xe9\x87\xde\x60\xf0\x9d\x57\xa5\x46\x55\x09\x52\x77\x9f\x67\xff\xfa\xf4\x39\x2d\xf9\xf0\x10\xee\x89\x37\xf3\x43\x32\x83\x79\xe8\x2f\xe1\x36\x8e\x83\xe8\xc3\xd1\x51\x68\x3d\xb4\x16\x4e\x7c\x9b\x4c\x93\x88\x84\xb6\xef\xc5\xc4\x8b\x5b\xb6\xbf\x3c\x9a\x26\xde\xc2\x25\x47\x6e\x62\x1d\x86\x24\x8a\xd7\x87\x31\x59\x06\xae\x15\x93\xa3\xf6\xfc\xbd\xf5\xd6\x3e\x79\x33\xb7\xdf\xbd\x7d\x77\x32\x9b\xce\xdf\x4e\xc9\xf1\xf4\xfd\xfc\xa7\xf6\x7f\xff\x64\xdb\xaf\xdf\xff\xf4\x66\x7a\xfc\x7a\x76\xf2\xe6\xc8\x75\xa6\x47\x94\xf6\x48\xd0\xb6\xdc\xc4\x6a\x1c\x1e\x82\xef\xb9\x6b\x58\xfa\x33\x67\xee\xd8\x56\xec\xf8\xde\x07\x08\xc9\xd2\xbf\x27\x70\xc4\xf4\x3b\x37\x2f\x06\x13\x75\x68\x6a\xa6\xa6\x1a\x10\xfb\xe0\xf9\x31\x90\xc8\xb6\x02\x02\x4e\xac\x80\xe5\xcd\x60\xee\xac\x20\xbe\x25\x60\x05\x41\xe8\x07\xa1\x63\xc5\x04\x42\xb2\x20\xab\x56\xe3\xf0\x70\x3c\x6e\xf4\xfc\x60\x1d\x3a\x8b\xdb\x18\x64\xbb\x09\x27\xc7\xed\x37\x70\x88\x3f\xef\xa0\x6b\x05\x3e\x98\x96\x7b\x4f\xbc\xc8\xb2\x42\xa7\xd1\x75\x5d\xa0\x43\x23\x08\x49\x44\xc2\x7b\x32\x6b\x35\x1a\x3a\x99\x39\x51\x1c\x3a\xd3\x04\x55\xa4\x32\x93\x88\x80\xe3\x41\xe4\x27\xa1\x4d\x68\xcb\xd4\xf1\xac\x70\x0d\x73\x3f\x5c\x46\x0a\x3c\x38\xf1\x2d\xf8\x21\xfd\xf5\x93\xb8\x60\xa3\xd2\xb0\x42\x02\x01\x09\x97\x4e\x1c\x93\x19\x04\xa1\x7f\xef\xcc\xc8\x0c\xe2\x5b\x2b\xa6\x96\xcc\x7d\xd7\xf5\x1f\x1c\x6f\x01\xb6\xef\xcd\x1c\x24\x8a\x00\x89\x96\x24\xfe\xd0\x68\xfc\x08\x45\x8d\x22\xf0\xe7\x42\x15\xdb\x9f\x11\x58\x26\x51\x0c\x21\x89\x2d\xc7\x63\x9e\x99\xa2\x4b\xed\xd4\x0f\x9e\x1f\x3b\x36\x51\x20\xbe\x75\xa2\x06\x80\xeb\x44\x31\xb2\xc8\x0b\xf3\x66\x25\x4d\x66\x4e\x64\xbb\x96\xb3\x24\x61\xab\x4e\x03\xc7\xcb\x7b\x40\x68\x10\x84\xfe\x2c\xb1\xc9\x1f\xa0\x04\x70\xd3\x66\xbe\x9d\x2c\x89\x17\x5b\x62\x6a\x8e\xfc\xb0\x01\xe0\xc7\xb7\x24\x84\xa5\x15\x93\xd0\xb1\xdc\x28\xf3\x31\x9d\x18\x4a\x98\x53\x9f\x5a\x34\x24\x0e\x25\xc2\x4e\xcf\x5a\x12\x54\x06\xef\x1f\xfd\x70\x61\x79\xce\x6f\x54\xc2\x13\x78\x7e\x36\x84\x3a\xde\x89\x51\x7d\x5c\x32\x94\x9d\x1f\x46\xb0\xb4\xd6\x30\x25\x08\x92\x19\x62\x96\xae\xb8\x88\x20\x1e\x82\xd0\x5f\xfa\x31\x01\xe6\x98\x38\x82\x19\x09\x9d\x7b\xbe\x1a\x1b\x40\x9d\x01\x91\x3f\x8f\x1f\x70\xba\x05\x7a\xa2\x80\xd8\x08\x1f\x08\x42\x07\x41\x15\x22\x70\x3c\x06\xa1\x28\x62\x06\x98\xe7\x9a\x01\xc6\xe8\xa3\xf9\xa9\xab\xab\xa0\x19\x70\xa9\x8f\xae\xb5\xbe\xda\x87\xd3\xcf\x60\x9e\xab\xd0\x1b\x5d\x7e\xd6\xb5\xb3\x73\x13\xce\x47\x83\xbe\xaa\x1b\xd0\x1d\xf6\xa1\x37\x1a\x9a\xba\x76\x7a\x65\x8e\x74\x03\xa4\xae\x01\x9a\x21\x61\x47\xa3\x3b\xfc\x0c\xea\xbf\x2e\x75\xd5\x30\x60\xa4\x83\x76\x71\x39\xd0\xd4\x3e\x7c\xea\xea\x7a\x77\x88\xab\x51\x01\x6d\xd8\x1b\x5c\xf5\xb5\xe1\x99\x02\xa7\x57\x26\x0c\x47\x26\x0c\xb4\x0b\xcd\x54\xfb\x60\x8e\x14\x2a\x94\x93\x35\x32\x32\x18\x7d\x84\x0b\x55\xef\x9d\x77\x87\x66\xf7\x54\x1b\x68\xe6\x67\xaa\xc8\x47\xcd\x1c\xa2\xac\x8f\x23\x1d\xba\x70\xd9\xd5\x4d\xad\x77\x35\xe8\xea\x70\x79\xa5\x5f\x8e\x0c\x15\xba\xba\xda\xe8\x6b\x46\x6f\xd0\xd5\x2e\xd4\x7e\x0b\xb4\x21\x0c\x47\xa0\x5e\xab\x43\x13\x8c\xf3\xee\x60\x50\x6b\x25\xea\x5e\xb0\xf1\x54\x85\x81\xd6\x3d\x1d\xa8\x28\x89\x5a\xd9\xd7\x74\xb5\x67\xa2\x39\xd9\x5d\x4f\xeb\xab\x43\xb3\x3b\x50\xc0\xb8\x54\x7b\x1a\xde\xa8\xff\x52\x2f\x2e\x07\x5d\xfd\xb3\xc2\x79\x1a\xea\xff\x5c\x61\x68\xea\x0e\xa0\xdf\xbd\xe8\x9e\xa9\x46\x43\x7e\xc6\x25\x97\xfa\xa8\x77\xa5\xab\x17\xa8\xf3\xe8\x23\x18\x57\xa7\x86\xa9\x99\x57\xa6\x0a\x67\xa3\x51\x9f\x3a\xda\x50\xf5\x6b\xad\xa7\x1a\x3f\x37\x06\x23\x83\x7a\xeb\xca\x50\x15\xe8\x77\xcd\x2e\x15\x7c\xa9\x8f\x3e\x6a\xa6\xf1\x33\xde\x9f\x5e\x19\x1a\x75\x9a\x36\x34\x55\x5d\xbf\xba\x34\xb5\xd1\xb0\x09\xe7\xa3\x4f\xea\xb5\xaa\x43\xaf\x7b\x65\xa8\x7d\xea\xdd\xd1\x90\x9a\x6a\x9e\xab\x23\xfd\x33\x32\x45\x1f\x50\xe7\x2b\xf0\xe9\x5c\x35\xcf\x55\x1d\x1d\x4a\x3d\xd5\x45\x17\x18\xa6\xae\xf5\xcc\xfc\xb0\x91\x0e\xe6\x48\x37\x73\x36\xc2\x50\x3d\x1b\x68\x67\xea\xb0\xa7\x62\xef\x08\xb9\x7c\xd2\x0c\xb5\x09\x5d\x5d\x33\x70\x80\x36\x04\x14\xfb\xa9\xfb\x19\x46\x57\xd4\x64\x9c\xa3\x2b\x43\x65\xb7\x9a\xd1\x10\x88\x55\xe8\x4c\x82\xf6\x11\xba\xfd\x6b\x0d\xd5\xe6\x83\x2f\x47\x86\xa1\x71\x9c\x50\x97\xf5\xce\xb9\xbb\x31\xbc\xdf\xdc\x34\x1a\xae\x6f\x5b\x2e\x44\x24\x5e\x92\xd8\x8a\xad\xa9\x4b\xa0\x53\x78\xe4\x23\x5c\xdf\x9a\xe1\x9a\xf7\x16\xd0\xc9\x3d\xe4\x7a\xed\xdb\xc4\xbb\xe3\xcf\xb1\x9f\x8e\x15\xb7\x99\xa4\x39\xf1\xee\x99\x10\xbc\xe3\xed\x21\xf9\x77\xe2\x84\x28\x9c\xdf\xf1\x76\xdb\x0a\xe2\x24\x7b\xf2\x3d\xdb\x8a\x91\x2b\xaa\xd6\x62\x8f\xbc\xcf\x8a\x22\x12\x62\x1f\xbb\xe1\xad\x41\x48\xe6\xce\x8a\x3f\xe0\xda\x47\x11\x8e\xdf\xa2\xb7\x62\x8c\x6d\xb9\x2e\x74\xd8\xaf\x68\xbb\xb5\x22\xd1\xef\x07\xc4\x63\x54\x78\x97\x33\x99\xbb\x42\x18\xbd\x0e\x90\x39\xfe\xf0\x96\x59\xb2\x0c\xd0\x52\xea\x80\x16\x3e\xf1\x8e\xb9\xe3\xcd\xb2\x0e\x7c\xe2\x1d\x8b\x28\x99\x66\x1d\xf8\xc4\x3b\xa6\x6b\xaa\x39\xef\xc0\x27\xde\xe1\x25\xa9\xce\x05\xda\x8c\xd4\x5b\xac\xa0\x83\xff\xf3\xe7\xaf\x0e\x7a\xe9\xab\x23\x5c\x74\x6f\x85\x02\x07\x93\x6b\x55\x37\xb4\xd1\x10\x3a\xe9\xad\xe8\x51\x87\xd7\xd8\xaa\x0e\xaf\x45\xcb\x19\x3e\x9f\x09\xd2\x62\xb2\xd1\x81\xc7\x06\x00\xc0\x58\xfa\x41\xba\x81\x0e\x48\x3f\x58\xcb\xe0\x67\x49\xe1\x8d\xbf\xf0\x46\x37\xce\xda\x7e\xe5\x6d\x8b\xac\xed\x40\x3a\x60\x6d\xff\x4e\xfc\xdc\xc8\x03\x3e\xf2\xbb\xd7\xef\xb1\xf1\x49\xa8\xd0\x1b\xf5\xd5\x3a\x15\x1e\xc5\xf8\xf6\xc9\xeb\x8c\xcb\x53\xd6\xfa\x36\x6b\xfd\xe3\xd5\x65\x8d\x47\xa2\xf1\xcd\xbb\x9f\xa5\xcc\x84\xeb\xae\x3e\xb9\x3c\xef\x1a\xaa\x21\x5a\xfc\x3b\x05\x3c\xf2\x10\x5b\x53\x81\x50\x99\xaf\x10\x05\x24\xb6\x0c\x3c\xf2\x20\x35\x1b\xce\x9c\xe6\x77\xfe\x1d\xee\xb0\x5e\x46\x33\x4f\x3c\x1b\x77\x5f\xb9\x89\x59\x4d\x12\x7a\xf0\xf8\x84\xbb\x2a\xfe\x6b\xa4\xab\xcc\xbe\xe5\xcb\x35\x4c\x04\xb2\x44\xbe\x89\xe0\xa1\xcc\xe4\x63\x05\xda\x27\xcd\x46\x23\xcd\x44\x73\x78\x91\xda\xad\xf7\x52\xd6\x83\x1c\x09\x9a\xda\x81\xc7\xd4\x3a\xa1\x0a\x10\x0f\x15\x9f\xc9\xf7\x96\xdb\xa4\x0e\x71\xe6\x70\x6f\xb9\xd0\xe9\x80\xe7\xb8\xcc\x00\xae\x2c\x2a\x44\x55\xc5\x61\xbc\x8d\x0f\xa5\x5d\x7e\x08\x32\x7f\x96\xda\x12\x3e\x8a\x27\xec\x2e\x34\xf8\x9e\xd4\x6c\xe4\xac\x4e\xd5\x89\x43\x67\x29\x47\xcd\xbc\x08\x5c\x7a\x32\xfd\x2f\x52\x40\xfa\xdf\xef\xa3\x57\x92\x02\x92\xd4\x54\x40\xfa\x3e\x7a\xf5\x5f\xec\xa1\x96\x59\x18\xf8\x91\x7c\xef\x90\x07\x05\x38\xcb\x87\x5b\xc7\x25\x10\xc1\xaf\x70\x0c\x33\x9f\x36\xe1\xc5\x5d\x8f\x4b\x36\x99\x0a\x8a\x94\x88\x7b\xc5\xa6\x9a\x03\xb5\x83\xdd\x7f\x89\xf3\x0f\xc7\xf9\x87\xd5\xf1\xa9\x44\x9d\x97\x72\xc0\x2b\x42\x09\x70\x08\xed\xb4\x95\xb8\x11\x29\x0c\x99\x86\xc4\xba\xcb\xba\xb9\xb7\x4b\x5e\x8f\x6a\xcd\x65\xf5\xc4\xac\x68\xb1\x33\xa7\xe6\xb6\x69\x16\x9a\xb3\x0e\xb5\xe0\x3f\x4d\xa6\xf2\x97\x92\xc2\x9c\xf2\xa4\x86\xf2\x84\xff\x6c\xa0\xcc\x69\x3a\xb7\xdc\x88\x28\xdb\x0c\xce\x81\xab\x30\xae\xde\x72\xce\xef\xb8\x7e\xbe\x89\x35\x9b\x3b\x2e\x91\x03\x2b\xbe\x65\xe6\x8b\x20\x4f\x37\x53\xdc\x33\x68\x9f\x02\x52\x38\x95\x52\x07\xe1\x62\xa5\x43\xf2\x68\x47\xf4\x0b\xe1\xe9\x96\x87\xe5\x24\x2e\x64\xc7\x25\x1f\x50\x1a\x48\x3f\x5a\x12\x1d\x42\x9b\x6c\xd7\x8f\x88\x5c\x40\x2f\x27\xaa\xd5\x17\x77\x2c\x37\xb1\x72\xea\x72\xa2\xa2\x21\x34\xe1\xb6\xe2\xdb\x8d\x3c\xbc\xc5\xaa\x62\xf2\xbd\x15\x22\xda\xb2\x28\x36\xa6\xfb\xa8\xdc\xbc\x29\xf9\x45\xa1\xf7\x94\x57\x07\x98\x73\x28\x2d\xce\xfa\xbd\x15\xb6\x44\x1c\x99\x88\x61\x29\xac\x92\xa9\xcc\x18\xb4\x9b\x40\x81\x70\xc4\x70\x20\xdc\x9d\x0d\x38\x69\xa6\xae\x74\xe6\x99\x3c\x14\x91\x3e\xfc\x5f\x07\xa4\x1a\x04\x26\x53\x59\x0c\x51\xe0\x90\x63\x55\x08\xca\x69\x5e\x1c\xd8\x56\xe0\x30\x27\x34\xb3\x38\x24\xe8\x15\x9e\xca\xc8\x2c\x6b\x79\x84\x8c\xf0\xe0\xe8\x40\xa1\xfa\x3f\x15\xd6\x7e\x48\xa2\x56\x14\x5b\x71\x12\xa1\xfc\x93\xe3\xe3\x02\x54\xb0\x77\xea\xcf\xd6\x15\xd0\x72\x99\xbe\x8f\xa0\x49\xbd\x2a\x17\xdc\x4a\x7b\x69\x68\x0c\x5b\xa2\x0a\xa4\x8d\x6c\xde\x59\xd2\x94\xf3\x06\x76\x55\x3d\xc1\x65\x64\x03\x4a\x1e\x28\x03\x4b\x58\xce\x06\x4b\x47\x12\xb3\x1a\x9e\x4a\x68\xe3\x41\x12\x17\xc9\x62\x55\x9c\x9d\x0c\x5a\xe9\x06\x9f\xc6\x39\x12\xe7\x9e\xd8\xf6\xa0\x94\x56\x3d\xcb\x00\x37\x8f\xb0\x6c\x9b\x44\xd1\x36\x1e\x62\x3d\x6e\x1e\x71\x4b\xac\x19\x09\x27\x73\xc7\x8d\x49\x58\x3b\x02\xa7\x4d\xf4\xd7\xf3\x70\xfd\x45\xc5\x96\x74\xc0\x53\x7a\x97\x6e\xb7\x41\xe8\xd0\x18\xe1\x2d\x56\xfc\x9e\x97\xba\xa4\x3a\x96\x66\xae\x3c\x75\xc5\xac\x50\x0c\x60\xb3\x4e\x17\xa2\x22\xc0\xaa\xd0\xfc\x52\x61\xe9\x30\xe7\x6f\xfb\xde\xdc\x59\xb4\xd8\x70\xb9\xa9\xd0\x46\x4a\x84\x37\x02\xd5\xad\x8c\xc3\x62\xd5\x62\x5c\xf0\x6e\x41\xe2\x09\x4b\xae\x73\x48\xaf\x09\x18\xd5\xe0\x9e\x25\x29\x59\xfa\x90\x83\x34\xcd\x38\x9a\xd5\x50\x9e\x0f\xfd\x15\x7f\xed\xe0\x22\x37\xb1\x0a\xcb\xcb\x99\xe7\xd2\xe4\x0e\x48\x83\xc4\x82\xb7\xad\x76\x29\x8a\xe4\x82\xf7\x0a\x05\x3d\xc2\x64\xe2\x78\x33\xb2\xca\x67\x64\xb1\x02\x77\xcd\xda\x7d\xa9\xc5\x29\xc7\x77\x37\x38\x93\x71\x6a\x26\x6f\x98\x9c\x8d\xef\x6e\xf2\xb6\xe6\x40\xe1\xcc\x69\x8a\x5f\xf1\x5f\x5a\xa4\xe5\x55\xc0\xed\xb5\xa8\x42\x4e\x0d\x56\x49\xc9\x48\xc8\xf7\x61\xcf\x71\xf9\x7f\xf9\x1a\x51\x7e\xcc\x27\x8b\xe9\xed\x93\x22\x1c\xd0\x6c\x16\x65\xe4\x43\x64\x65\x6f\xde\x43\xcf\x6c\x5b\x4a\xeb\x3e\x39\x2b\x4e\x19\x51\x95\x8a\x57\x9e\x32\xd2\xed\x6d\xc8\x26\x5f\x21\xb3\xcd\x36\xd6\x81\xf1\x8f\x86\x88\x3a\xbc\xde\x0c\x92\x1d\x9d\xfc\x47\x02\x21\xbf\x6f\xd1\xb0\x9f\xe5\xe3\xf9\x2a\x02\x27\x92\x2d\xf8\x34\x75\x62\x8f\xb8\x79\xa7\xd5\x42\x39\x38\xa4\xf5\x41\x69\x2f\xe2\xe3\x36\x09\xf4\x93\x38\x48\x62\x39\x9f\xc6\xf2\x9a\xc4\x0f\xf9\x7d\xe2\x16\x0b\x14\x49\xca\x87\x06\xac\xfe\xe5\x88\x6d\x93\x82\xbd\x54\x2c\x68\xca\xb2\xe4\x66\x65\xc7\x14\x87\x26\xa8\xc8\x06\x4d\x59\xde\x8d\xd5\x89\xdd\xac\x13\xce\x18\x54\x73\x1b\xbb\xa0\x4c\x5a\xe1\x8c\x9f\x1e\xbf\x48\xbf\x1e\xfd\x72\xf0\xc3\x8d\xa4\x14\x2b\xe9\x62\x46\x53\x21\xfc\x22\xfd\xca\xa9\x0a\x47\x00\xcd\xba\x44\xba\xc6\xcf\x1b\xcc\xf3\xc8\x03\x47\x9a\x6b\xad\xfd\x24\x66\xec\x38\x0e\x59\x87\x84\x3f\xf0\x60\x45\x34\x95\x4e\x0f\xa9\xe7\xb8\x18\x36\xb2\x69\x49\xf9\x7c\x35\x24\xde\x8c\xe0\x6e\xe7\x2f\x03\x96\x3e\xa6\x94\xa2\x2b\xc3\x22\x1b\x93\xe6\x93\x94\x5f\xc5\xbd\x74\x0a\xb8\x2c\x56\x85\x22\x1a\x37\x97\x2a\xa5\xd5\xc3\xa4\xe6\xd7\x64\x44\xdc\x79\xb6\x7c\x36\x44\xc0\x2c\x88\x88\x3b\x84\x2b\x71\xe7\x95\xf1\xbc\xbf\x35\x75\x7d\xfb\x2e\xca\x08\x44\x83\x1f\x62\xbd\xbe\x89\x8a\x7a\xbc\x23\xdc\xc5\xe2\x85\xbc\x59\x37\xea\x86\x3d\x45\x71\xa2\x54\x52\x4e\xb0\x1f\x82\x24\x6d\x8a\xbf\x8c\xee\x03\x73\xa0\x5c\xd9\x6e\x30\x06\x61\x80\xcd\x9d\x4c\x16\x5c\xfc\xbc\x67\xbf\x35\x77\x6e\x72\x64\x1a\x7b\xf2\x0b\xaf\xe0\xc9\xe6\xb3\x75\xf5\xb7\x8c\xea\xb4\xa8\xa1\x40\x63\x4e\xda\x60\xca\xb7\x81\xbb\xf4\x4c\x81\x8d\xe6\xb0\xa8\x1f\x5f\xc6\xc7\x86\x93\xa4\x17\xc2\xa3\xe8\x7a\x16\xd7\x4b\xd0\x48\xb7\x9d\xdd\x1d\x5f\xb2\x8f\x79\xa3\xc4\x6b\xe3\x3e\x15\x84\x24\x4f\xa8\xf0\xc3\x0c\x94\x19\xe4\x77\x1a\x91\x6b\xcd\x92\x65\x20\x97\xf7\x14\x26\x93\x53\x61\x5a\x43\x0f\x9c\xd2\x6d\x1d\x59\xd6\x55\x17\x35\x07\x4c\x0f\xe2\x80\x09\xc4\xe9\x10\xad\x70\x64\x2a\xbe\xd4\x93\x3f\x37\x2a\x67\x49\xf4\x5d\xce\xa6\xa4\xac\x60\xef\x1d\x59\x2b\x10\xb8\x96\xe3\xbd\x70\x8b\xde\xc8\xae\x95\x9d\x95\xdd\x91\x35\xdd\x4c\x3d\xff\x90\x96\x79\xa5\xfd\x54\x6c\x01\x22\xa7\xcd\x1c\x1c\x58\x61\x94\xce\x0c\xe5\xda\x54\x98\x77\x0b\x66\x53\xfe\xf4\x7f\x3f\x84\x34\x38\x66\x67\xe3\x85\xcc\x80\x36\x08\xcd\xe8\xc3\xf8\x8e\xac\x6f\x0a\x79\x55\xd6\xac\x14\xd3\xd0\x42\xc5\xb2\x9b\xc2\x79\x51\x08\xe4\x34\xdf\xe5\x72\x19\xb0\x2b\x67\x96\xb4\xb8\x61\xa6\x6e\xc2\x6e\x45\xd6\xcb\x66\xb0\xca\xa7\x55\x3c\xe6\xa4\x8d\xc5\x29\xe3\x21\xa8\x50\x71\x97\xea\x0f\x67\x4e\xdf\x7a\x71\xc6\x6d\x85\x9f\x19\x9f\xbc\x2b\x78\x9a\x32\xaa\x3f\x02\xfb\x0a\x1d\x38\xc9\xcf\x24\x16\x59\xe3\x71\x83\x87\x8c\x4e\xab\xd5\xe2\x81\xb2\x74\xbc\xe9\x78\xb6\x9b\xcc\x88\x7c\x8f\xc9\x75\x25\x77\x4d\x01\xdb\x94\x6d\x7a\xf8\xce\xc3\x14\x95\xce\xdf\x8d\x4d\x26\x0a\x8b\xc4\x0a\x0b\x97\x9d\xc7\x27\xa5\x10\x9a\x6f\x6e\x78\x31\xc6\x08\x1c\x85\x1e\xd3\xb7\x15\xfa\x6a\x50\xf8\xfe\x51\xa2\x76\x23\x80\x8a\x6f\x12\x2a\x6f\x11\x62\x05\x82\xe2\x8b\x04\x78\xc5\x8e\xda\x5f\x41\xbb\xc9\x7e\x4f\x0a\x79\x2a\x5d\x4f\x8f\x35\x89\x29\x63\x48\xe8\x81\x73\xa6\xca\xd3\x93\xa4\x40\x90\xd7\x25\xc7\x8c\x54\xb9\x64\x9c\x7e\x53\x00\x67\xba\xf6\x3d\x41\x89\x8f\x03\xbf\xd0\x23\xfe\x87\x7a\x7e\x78\xd9\xe3\xaf\xf4\xc5\xd9\x64\x32\x19\x7f\x37\x99\x4c\x5e\xb5\x6f\x3a\xe3\xce\xf8\x8b\x57\x4d\x0c\xf9\xf0\x57\xed\x9b\x82\x67\x1c\xfe\x02\x02\xe5\x54\xb5\x10\x44\x27\x54\xca\x4d\xe7\x66\x13\xe7\xaf\x9d\xaf\xaf\x5e\x57\x7a\xf2\x95\x52\xce\xb0\xdf\x36\x1b\xe4\xa0\x72\x55\x3e\xe5\xc4\x6a\x9b\xfd\xe5\x9a\xf0\x19\x57\xb0\xb7\x5d\xa9\x3f\x02\x05\x08\x7d\x21\xf3\x9c\x33\x9a\xfb\xb9\x02\xaf\x48\xa1\xf6\x11\x06\x46\x52\x00\x61\x6a\x6a\xc9\x65\xe5\xb3\xa1\x14\xac\x3f\xee\x0c\xd6\x1f\xff\x01\x6b\xf1\xfa\x3b\x82\x95\x1f\x01\x7c\xa3\x60\xfd\x7e\x67\xb0\x7e\xff\x67\x80\x75\xdb\x9c\xee\x04\x65\xd8\x1f\xce\xf0\x52\x48\xc3\xae\xb0\x86\xad\xf3\x59\x07\x6f\xd8\x1f\xc4\xfc\x23\x1a\x8e\x8c\x2a\x24\x20\x7b\x4b\xc6\x8f\x46\x15\xf0\xf8\x3b\x6a\xaf\x06\x05\xf9\x0b\xb9\x7a\x88\xb7\xbd\x0c\xe0\x67\x57\xd0\x29\x7c\x6b\x40\x97\xc5\x96\x19\xee\x40\xf8\x27\x4d\x6f\xf8\x97\x4c\x2b\x57\x7f\xff\x80\x41\x0d\x90\xb6\xc5\x8b\xfa\x49\xe7\xf1\xc2\x63\x1f\x35\x54\xfd\xba\x73\xac\x90\x77\x8e\x15\xcd\x7f\x36\xb6\xe2\xf5\x17\x6d\x6c\xbc\x5e\x28\x58\x94\x22\x6d\x0b\xc5\x4a\xcc\xe7\x5c\x01\x49\x91\x14\x38\xa9\x9b\xcb\x9c\xca\xab\xfd\x97\xac\x28\x5e\xc6\x9d\xf1\x0e\x0b\x37\x5d\x2e\x73\x5a\x6a\xac\xb6\xac\x15\x28\x4f\x8a\xb2\x9d\xff\xeb\x32\xff\x15\x2d\x46\xb6\x33\x7f\xb3\x7d\xf7\x06\x3e\xe7\x6f\xeb\x43\xc3\xa6\xf9\x82\xdf\xcf\x57\x35\x27\x76\xf9\x81\xa9\x73\x9e\x35\x61\xbf\xe8\xf6\xbb\x26\x27\xe3\x9d\x03\xce\xcd\x3f\x01\xa7\x78\xfd\x8d\x32\x69\x01\xde\x6f\x34\x83\x3e\xdc\x19\xa4\x87\x2f\x06\xe9\x4a\x81\x75\x91\x59\xe1\x53\x4c\xc2\x4f\x4f\xa8\x25\x9b\x22\xf5\xf6\x28\xbd\xdf\x62\x80\x67\x71\x03\x7b\x65\xec\xf0\xb2\xb4\x0e\xfe\x93\xcc\x1d\xf6\x49\xf3\x60\x2b\x9e\x60\x4b\x40\x84\x8d\x8b\x08\x9e\xdb\x09\x70\xca\xd7\x1b\xb3\x6e\xbc\x70\x9f\x5e\x15\x3e\x99\xad\x88\xce\x67\xfc\x6b\x05\xd6\x3b\x66\xfc\xbb\xc9\xdf\x66\x34\xff\x7b\x80\xbd\x57\x36\xd7\x7a\x4a\xf5\xbc\x27\xe1\xd4\x8a\x9d\x25\xfd\x7a\x98\x35\x85\xd6\xc3\x0e\xba\xef\x87\x3d\x78\x39\xfe\xe0\x3f\xc5\x20\xec\x8b\x43\x78\x16\x8b\xf0\xcc\xd4\xc0\x66\x73\xf7\x5e\x6c\x3c\xe6\xac\xfe\xbc\x85\xb6\x6d\xc9\x40\x19\xf2\x2b\x54\x6d\x77\xc8\xc3\x4e\x8b\x0a\x76\xf0\xef\xbe\xc5\x6f\x4e\xfb\x5d\x8a\x60\x71\xfd\xee\xa8\xdd\x52\x14\xe7\x09\xff\x1a\xb4\x1e\xb0\x77\x13\x63\xe9\x60\x37\x98\x4e\x77\x03\xe5\x81\x94\x66\x29\xe3\xce\xf8\x79\xde\xaf\x5f\xba\x04\xde\xec\xb3\x04\xea\x6b\x07\x78\xc6\x5b\x3c\xb7\x59\xb3\x6a\x7f\xbd\x73\xf2\xbe\x73\xbe\xf3\xdd\xce\xf9\xce\x77\xff\x24\xe5\xc5\xeb\x2f\x4a\xca\xc9\xee\x67\x82\x44\x01\xb2\x63\xb8\x14\x5c\xf7\x3b\x13\x4c\x53\x6f\x0a\xcf\xaa\xbe\x5b\x61\x98\xbb\x8f\x4a\x58\x7b\x94\xd2\x77\x89\x19\xdc\x04\x41\x54\x9c\xcc\xdc\x47\x93\xf4\xaf\x77\xea\xfe\xba\x62\x07\xcc\x64\x38\x29\x34\xd5\xa2\x20\x9b\x79\xa1\x93\x10\x50\xf8\x2c\x8c\xea\x23\xea\x25\xfe\xc9\x4e\xf1\x23\x14\x34\xa1\x93\xff\xab\x52\x79\x32\x99\x34\xf9\x3b\xdb\x0e\xfb\x79\x52\x1e\xf9\x17\xba\x1d\xfe\xce\xf7\xa9\x49\xff\x72\xa1\x42\xc7\x14\xcc\xfe\x18\x07\xdb\xed\x8d\xdf\x90\xd4\x7d\xcf\xf2\x3b\x7c\x58\xf1\x2c\x5b\xf1\x96\xbe\xfc\x82\x9b\x7e\x1c\x5f\xff\x91\x4a\x81\x5e\xce\x3e\x8a\xa6\x96\x95\xf8\xfc\x7f\x00\x00\x00\xff\xff\x47\xf1\xfa\x92\x30\x43\x00\x00") - -func testImagesEchoserverTemplateLuaBytes() ([]byte, error) { - return bindataRead( - _testImagesEchoserverTemplateLua, - "test/images/echoserver/template.lua", - ) -} - -func testImagesEchoserverTemplateLua() (*asset, error) { - bytes, err := testImagesEchoserverTemplateLuaBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/echoserver/template.lua", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesImageUtilSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x5a\x7d\x73\xdb\x36\x93\xff\x5f\x9f\x62\x1f\x5a\x57\xdb\x39\x93\xb4\xd3\x36\x49\x9d\x6a\xa6\x8a\xad\x3a\x9e\x38\x56\x1f\x49\x69\xd2\x27\xc9\x69\x20\x72\x25\xa2\x26\x09\x16\x00\x2d\xab\xb6\xf2\xd9\x6f\x16\x00\x29\xea\x25\x69\x9f\x5e\xe7\x66\x6e\xe6\x32\x9d\x5a\x22\xf1\xb2\xd8\x97\xdf\x6f\x77\xa1\xbd\x7f\x84\xa5\x92\xe1\x84\xe7\x21\xe6\xb7\x30\x61\x2a\x69\xb5\xf6\xe0\x4c\x14\x0b\xc9\x67\x89\x86\xc7\xc7\x27\x4f\x61\x94\x20\xbc\x2a\x27\x28\x73\xd4\xa8\xa0\x5b\xea\x44\x48\x15\xb4\xf6\x5a\x7b\x70\xc5\x23\xcc\x15\xc6\x50\xe6\x31\x4a\xd0\x09\x42\xb7\x60\x51\x82\xd5\x9b\x23\xf8\x19\xa5\xe2\x22\x87\xc7\xc1\x31\x1c\xd0\x00\xcf\xbd\xf2\x0e\x9f\xb7\xf6\x60\x21\x4a\xc8\xd8\x02\x72\xa1\xa1\x54\x08\x3a\xe1\x0a\xa6\x3c\x45\xc0\xbb\x08\x0b\x0d\x3c\x87\x48\x64\x45\xca\x59\x1e\x21\xcc\xb9\x4e\xcc\x36\x6e\x91\xa0\xb5\x07\xbf\xb8\x25\xc4\x44\x33\x9e\x03\x83\x48\x14\x0b\x10\xd3\xe6\x38\x60\xda\x08\x4c\xff\x12\xad\x8b\xd3\x30\x9c\xcf\xe7\x01\x33\xc2\x06\x42\xce\xc2\xd4\x0e\x54\xe1\xd5\xe5\x59\xef\x7a\xd8\xf3\x1f\x07\xc7\x66\xca\x9b\x3c\x45\xa5\x40\xe2\x6f\x25\x97\x18\xc3\x64\x01\xac\x28\x52\x1e\xb1\x49\x8a\x90\xb2\x39\x08\x09\x6c\x26\x11\x63\xd0\x82\xe4\x9d\x4b\xae\x79\x3e\x3b\x02\x25\xa6\x7a\xce\x24\xb6\xf6\x20\xe6\x4a\x4b\x3e\x29\xf5\x9a\xb2\x2a\xe9\xb8\x5a\x1b\x20\x72\x60\x39\x78\xdd\x21\x5c\x0e\x3d\x78\xd1\x1d\x5e\x0e\x8f\x5a\x7b\xf0\xf6\x72\xf4\xb2\xff\x66\x04\x6f\xbb\x83\x41\xf7\x7a\x74\xd9\x1b\x42\x7f\x00\x67\xfd\xeb\xf3\xcb\xd1\x65\xff\x7a\x08\xfd\x1f\xa1\x7b\xfd\x0b\xbc\xba\xbc\x3e\x3f\x02\xe4\x3a\x41\x09\x78\x57\x48\x92\x5f\x48\xe0\xa4\x46\x8c\x49\x67\x43\xc4\x35\x01\xa6\xc2\x0a\xa4\x0a\x8c\xf8\x94\x47\x90\xb2\x7c\x56\xb2\x19\xc2\x4c\xdc\xa2\xcc\x79\x3e\x83\x02\x65\xc6\x15\x19\x53\x01\xcb\xe3\xd6\x1e\xa4\x3c\xe3\x9a\x69\xf3\x64\xeb\x50\x41\xab\xa5\x50\x83\x2f\x00\xa5\xc4\x3b\xae\xab\xaf\xb9\x28\x73\x85\xf5\xd7\x82\x17\x38\x65\x3c\x6d\xb5\x46\xdd\xe1\xab\x4e\xfb\xa4\xf5\xf6\x65\x77\xd4\x69\x3f\xb6\xbe\x98\xe7\x18\x91\x36\x49\xb7\x0c\x06\x98\x09\x8d\x70\x2e\xa2\x1b\x94\x95\x4d\x14\x44\x28\x35\x89\xcd\xc8\x43\xe9\x2c\xac\xd4\x09\xe6\x9a\x9e\x70\x91\x1f\xc1\x3c\xe1\x51\x02\x11\xcb\x61\x42\x87\x2d\x8d\xf8\x4c\x5b\x77\x2b\x98\x4e\x02\x78\xb1\x80\x18\xa7\xac\x4c\xf5\x11\x1d\x63\xb1\x36\x9a\xcc\x4a\x67\x6b\xdf\xbf\xec\xbf\xee\x2d\x61\x2a\xd2\x18\x65\x00\x6f\x71\x5f\x92\xab\x16\x2b\x21\xa7\xdc\x2c\x9e\xa0\x44\xf0\x82\xd8\x48\xea\xb7\xef\x85\x1a\xdf\xda\x50\x58\x7a\x6e\xba\xaa\xc4\x12\x39\x79\xae\x32\x3b\xe4\x18\xa1\x52\x4c\x2e\xd6\x0e\x15\xb4\xce\xfb\x67\xaf\x7a\x83\xf1\x59\x6f\x30\x1a\xbf\xe8\x0e\x7b\xe3\x9f\xba\xa3\x97\x1d\xaf\x7d\xbf\xf3\xc5\xa9\xef\x24\x5d\x7a\xad\xd6\xab\x37\x2f\x7a\xe3\x41\xbf\x3f\xea\x78\xed\x83\x28\x06\xaf\x7d\x10\x73\x99\xb3\x0c\xc1\x6b\xdf\xbf\xe8\x0e\x5f\x8e\x87\xfd\x37\x83\xb3\xde\xfb\xe3\x8f\x4b\xef\x30\x0c\x82\x30\x08\x3c\xf8\xea\x2b\x28\xe6\x31\xf8\x3f\x1d\x7a\x2d\x25\x4a\x19\x99\xe1\xf5\x62\xcb\x30\x61\xd1\x4d\x98\xf2\x49\x98\x8a\xd9\x8c\xe7\xb3\x40\x25\x7f\x34\xb2\xd4\x3c\x35\xc3\x5a\x7b\xf0\x9a\x15\x05\xe9\x4c\x4c\x61\x26\xa0\x3b\x38\x7b\x69\x6c\x1c\xe9\x92\xa5\xc0\x64\x94\x70\x8d\x91\x2e\xc9\xbe\x2a\xe1\x45\x81\x31\x14\x4c\x6a\x1a\x9f\x95\xa9\xe6\x34\x24\xfc\x0d\xb3\xd2\x2f\x15\x4a\x5f\x91\x27\x46\x50\x48\xf1\x2b\x46\xba\x15\x63\x94\x32\x89\xe0\x77\xe1\x9f\xbd\xd7\x6f\x68\xf9\x61\xe7\x00\xde\x7b\x2c\x8b\x9f\x7c\xe3\x7d\xec\x78\x77\xcf\x9e\x8c\x9f\x7c\xe3\xd1\x23\x99\xd1\x03\xfa\x63\xbf\xd9\x01\x8c\x76\xb0\x23\x8a\x22\x7a\xf2\x4d\x8a\xf4\xb4\xfa\x08\xef\x3d\xf5\xf5\x77\xc7\x77\xf4\xcc\x7e\x80\x43\x3a\xd6\x00\x75\x29\x73\x05\x29\x57\x46\x56\x96\xa6\xa0\xca\xa2\x10\x92\x42\x7b\xfd\x5c\x53\x29\x32\x8a\xef\xde\xe5\xeb\xee\x45\xcf\xe0\x5e\x8b\xe6\xf5\x55\x57\x46\x89\x3a\x38\x84\xfb\x16\x00\xcf\xd8\x0c\x29\x30\x00\xa2\x52\x83\x1f\x83\xd7\xf1\xc0\x9f\xc2\x09\xa9\xd9\xbc\x5d\x7a\x61\xbd\x4c\x6b\xd9\x6a\xa9\x22\xe5\x6e\x15\xb7\xc8\xda\x32\x00\x42\x8d\x49\x14\x13\x66\xe6\xe5\x14\xde\xbf\x87\xb6\x7b\x0c\x9d\x4f\x10\x3c\x0a\xcd\x7f\xf0\xf1\xe3\x73\xf2\xcc\xdc\x8c\x03\xd8\x33\x01\xf6\x96\xe7\xb1\x98\xab\x23\x98\x23\x24\xec\x16\xc9\x74\xee\x94\x30\x11\x3a\x81\xab\xd1\x90\x50\x02\x86\xdd\x33\x88\x12\x96\xe7\x98\x2a\x42\x44\x98\x9b\x90\x99\x94\x3c\x8d\xc9\xfa\xc6\x94\x45\x8a\xd5\x8a\x56\x4c\x15\xd4\xbb\x51\x50\x4c\x85\xcc\x98\x76\x28\xc5\x15\x44\xcc\x80\xe6\x29\xf4\x87\x21\x59\x36\xec\x0f\xc7\x3f\xf7\x06\xc3\xcb\xfe\x75\x35\x51\xa8\x31\x79\x78\xa7\x7d\x80\x51\x22\xc0\xab\x8e\xe6\xc1\x43\xad\xc5\xd0\x6a\xf1\xd0\x4d\xb1\x0a\xf9\xc3\xf1\x8f\x0f\x57\x5b\xb8\x90\xfe\x13\xb3\xbe\xae\x66\xa9\x72\x3a\xe5\x77\x1d\x33\x94\x24\xf4\xdb\x34\xc1\x6f\xaf\x56\xf3\x5a\xf5\xe1\xa3\x52\x4a\xcc\x75\xba\x38\x82\x8b\xb3\x1e\xc4\x02\x95\xa1\x4a\xa3\xf2\x97\x8b\x02\xa5\xff\x73\xa5\xf7\x0a\xe5\x32\x64\x06\x4b\x0c\xbc\x21\x28\x8a\xf3\x5c\xc4\x48\x80\x46\x73\x27\x48\x4c\x6b\xc8\xca\x58\xa1\xde\xac\x36\x85\x93\x43\x91\xfb\x6e\x98\x05\xde\x9a\x3d\x38\x61\xd7\xa2\x36\x7e\x7b\xd0\x7b\xdd\x1f\xf5\xc6\x0e\x8b\xde\x0c\xae\xc6\x8d\xf3\xc0\x9b\xc1\x95\x22\x94\x9b\xf2\x59\x29\x89\x80\xaa\x1d\x47\xfd\xf3\xfe\x41\x94\xb2\x32\xe6\xe5\xe4\xf0\x14\x04\x71\xfc\xc6\xb1\x20\x61\x0a\x26\x88\x39\xb0\x38\xb6\x62\x5f\x9c\xf5\x8e\x40\xe2\x2d\x4a\x87\xe0\x5a\xc0\xaf\xa5\xd2\x3b\xe4\xa8\xf6\x92\x86\x38\xc6\x16\x8e\xc7\xa5\x4c\xad\x77\x78\x5f\x14\xdc\x73\x93\xb7\x06\x91\xbd\x6f\x59\x0a\xd6\xe8\x1f\xda\xf7\xed\xfb\xdd\x1b\x2c\x4f\xfd\xa5\x67\x2d\x8f\xe9\x67\x62\x6c\x33\xc0\xfe\x17\x3c\x77\xb7\x0f\x7a\x4e\x4e\x85\x6e\x98\x5d\x8f\x12\xc0\x75\x8c\xaa\xd3\x85\x0a\x7d\xac\x77\x90\x57\x90\x83\x15\x52\x14\x28\xd3\x85\x0b\x5b\x8d\x71\x00\x3d\x43\x91\x18\x03\xe6\x5a\x72\x34\x26\x53\x9a\xe0\xdc\xa4\x74\xfb\x42\x85\x24\xc2\xfe\x91\xe3\xdb\x7d\xc3\x98\xf4\x68\xb9\x0f\x3c\x57\x1a\x59\x1c\x54\xf6\xa0\x6c\x02\x2c\x8e\x4d\x39\xc1\xdd\x0a\x75\x27\x4c\xa1\x15\x26\x77\x09\x99\xf1\x75\x9e\xbb\x9c\xa1\x16\x9f\xe5\x0b\x98\xf1\x5b\x72\xab\x06\x24\xb7\x66\xa8\x5f\x30\x85\x97\xb4\x84\x43\xce\x1a\x2a\x69\xc7\x99\xc4\x82\x50\xb7\x12\xae\xe3\x35\x74\x53\xe9\xbb\x03\xfe\xf4\xb1\x95\x6b\x64\xf2\xd9\x32\x8f\x28\x0f\x81\x39\x4f\x53\x1b\x74\xa0\x51\x69\xa7\x36\x23\x4e\x9a\x1a\x8d\xae\xf1\x43\x6b\x0f\x32\xca\x62\x44\x6e\x8f\xb0\x6e\x85\x00\x2e\x6d\x52\xc2\x26\x0a\x29\x70\xc4\x74\x63\x04\x25\x8d\x5c\x37\x77\x6d\x6e\xb5\x4e\x4a\x96\xaf\x7c\x30\xf4\x78\x04\x4c\x66\x34\xdb\x70\xe1\x11\x38\xce\x3b\x02\x43\x74\x2d\xb3\xd6\x36\x39\x59\xff\xf6\xa7\xb5\x5b\xac\x38\x69\xdd\xc7\x9d\xf2\x54\xa7\x7d\xd0\x60\x3b\xf0\xda\x66\x9a\x89\x97\xda\x0b\xf7\xa0\x90\x58\x60\x1e\x43\xca\xf3\xf2\x2e\x24\x93\x92\xf4\x35\xa9\x03\xd7\x98\x39\xbe\x68\x2c\x5c\x48\x9e\xeb\x29\xec\xdb\x59\xff\xa1\x3e\xe4\xfb\x64\xb7\x7f\xd4\xf3\xde\x3f\xfa\x68\x43\x73\xca\x09\x6f\x6f\xca\x09\x9e\x9e\x52\x7e\x72\x7a\x8a\xb9\x2a\x25\xfa\xb3\xbc\xf4\x15\xc6\xf4\x96\xf4\x56\xc5\x2d\xcf\xa1\xb6\xbf\x5a\x3e\x87\x58\x98\xbd\x1b\x94\xdb\xa0\xe5\xa6\xaf\x78\x0d\xa6\xb5\x8f\x0d\x44\x78\xd0\xe9\x80\x37\xb7\x38\x6b\xd2\x2e\xff\x77\x7a\xbf\x85\x3a\x4b\x6f\x9b\x8b\x2f\xa7\x35\x08\xb3\x1a\xab\x2b\x49\x29\xd6\x16\x30\x29\x35\xe4\x62\x23\x75\x3e\x67\x98\x89\xdc\x9c\x8b\xeb\xa3\x7a\xb9\x39\x82\x4a\x44\x99\xc6\xa0\x6e\x78\x41\xaf\x2c\x65\x43\x2c\xf2\x7d\x5d\x33\xbd\x75\x26\x0a\xa1\x09\xcf\x99\x89\x67\xbb\x52\xb0\x86\x1c\x67\x8e\x70\xac\xc3\x27\xe8\xfc\x7d\xbf\xd2\xce\xbe\x99\xb5\x52\x50\xb0\x8d\xb4\x6b\x3c\xe2\x44\x9b\x20\x28\xd4\x47\x55\xde\x6c\xf2\xee\x04\x89\x65\x6c\x91\x50\xa9\xc1\x62\x31\xc4\xe6\xa8\x35\x78\xd0\x2c\x9e\x97\x58\xc1\x47\x6b\x25\xef\x8b\x2a\x29\x59\xc5\x65\x8d\x70\x2e\xd3\x38\x6d\x8a\x1b\x04\x8e\xaa\xf7\xe0\x4c\x22\xd3\x64\x03\x8d\x59\x21\x24\xe5\xef\x31\x97\x18\x69\x21\x0d\x0e\x02\xb1\xd5\x62\x2d\xbc\x4d\x7a\x64\x6a\xd5\x95\x6a\x48\x38\xcc\xb5\x5b\x94\x06\x6c\x2a\xcf\xa4\x8c\x3b\x36\x31\x53\xb2\x9b\x98\x4b\xf0\x8b\xf5\xf4\xdb\x0b\xc7\x3a\x2b\xcc\x00\x9a\x38\x8e\xb9\xec\xb4\x0f\xb2\x1b\xfa\x62\xd8\x61\x7b\x70\x48\xf0\xe4\x5b\xce\xf7\x8d\x08\xc1\x3b\xf3\xcf\x32\x48\x33\x58\xb4\x64\xc5\x98\xc5\x31\x78\x32\x03\x5f\x52\xf4\x57\xbb\x2c\x3d\xe8\xbd\xbb\x1c\x59\x1d\x45\x05\xf8\xb2\x99\xb0\x3e\xa2\x2f\xab\xa1\x8d\xe0\x68\x42\xc8\x6b\x76\x83\x06\xb4\xb7\x5c\x3f\x63\x37\x48\xfe\x67\xf1\x4d\xd3\xb7\x88\x32\x7e\x97\x73\x93\xca\x0a\x89\xa6\x46\x54\x9c\x0a\x43\x62\x04\x8c\xd7\xd2\xd8\x3a\x0d\xa5\xd1\xce\x5f\xcc\xc6\x6e\x94\xd9\xc3\x3f\x6b\x06\x34\xed\xd8\x1f\x76\xd6\x02\x98\x3c\x83\x9e\xd8\x30\x87\x51\x77\x70\xd1\xa3\x6a\x6b\xf3\x78\x53\x6e\xfe\x14\xa5\x4a\xe2\x1d\xa7\xdf\x73\x36\xd6\x6c\x66\xbe\x8f\xba\x17\x9d\xf6\xc1\xf7\x2e\xb3\x3d\x6c\xad\xab\xe8\x33\xe0\x0a\xab\x17\x9d\xf6\x41\x93\xcf\xd6\xb0\x08\x1e\xa0\x7d\x3f\xec\x9d\x2f\xc1\x53\x0f\x83\xde\xc5\xe5\x70\x34\xf8\xe5\x81\x50\xc7\x7e\x5c\x3e\xcc\xbc\xc3\x55\x22\x7a\xdd\x1f\xf5\x9a\x99\xda\x50\x64\x9b\x29\x3b\x64\xa6\x69\xe4\x8a\x72\x12\x88\x4b\x10\xf3\x26\xf3\xae\x70\x26\x21\x93\x2a\x9e\x15\x29\x4a\x10\x39\x2a\x6b\xc5\x5c\xe8\xc0\x62\xda\x5a\x91\xb0\x56\x71\x44\x09\x46\x37\xc0\xa7\xf5\x62\xde\x6a\x83\x71\x0d\xa3\x78\xc7\x95\x36\x6d\x0f\x5a\xd3\x8d\x8d\x57\x03\x6d\xfa\xb7\x9a\x59\xc1\x43\x05\xcf\xce\xb8\x1e\x6c\x62\xf3\x74\xf7\x7e\x1b\x36\xf8\xe2\x5e\xf5\x2c\x37\xb8\x42\x21\xa8\x4c\xe2\x73\xb2\x0a\xd9\x91\x3c\xeb\xc1\x39\xd6\xc3\xcc\x83\xf6\xc6\xb2\x6b\x28\xb6\xb7\x82\x13\x53\x17\x3f\xaa\x8a\x62\x83\xd2\x0b\x42\xc7\xa6\x8f\xaf\x90\x9c\x66\x98\xec\x7f\x1d\xa0\xec\x28\x91\xc3\xdd\xb3\x27\x50\xa4\x4c\x53\x42\x57\x39\xa1\xc9\x84\xfc\xdf\xc0\x3b\x1b\xf4\x87\xc3\xf1\x8b\x37\x97\x57\xe7\x63\xaf\x61\xec\x35\x7d\xd4\xac\xe7\xbc\x8f\x28\xcf\x56\xe2\xdb\x9a\x6b\x28\x21\x6c\x2e\x1e\xc6\xde\xb6\x2f\x35\xd2\xd5\x0d\xf5\x55\x4c\xff\xd0\xbe\x5f\x91\xbe\x49\x74\x3f\x1a\x55\x6e\x2d\x45\x0a\x1c\xe0\x8c\x2b\x8d\x72\x43\x81\x55\xde\xb4\xca\x99\x0a\x29\x22\x54\x4a\x48\x55\x75\x2a\x49\x89\xae\x5e\x23\x8f\xae\x17\xb5\xdc\x52\x2d\x4c\xee\xbc\xc3\x38\x44\xa1\xae\xc7\x74\x83\x32\xc7\xd4\xab\xe7\xa7\x22\x62\xb4\x73\x2c\x3a\xde\xea\xa9\x2b\x26\x0e\x78\x0c\x7e\x79\x08\xff\xe8\xc0\xf1\xb6\x26\xc1\x4e\xa3\xff\xd5\xcf\x1c\x06\x59\x75\xd1\x9b\xe5\x46\xb3\x46\x27\x5c\xc6\xe3\x82\x49\xbd\x08\x3f\xdf\x68\x09\xa5\x3b\x50\xfd\x21\x50\x89\x07\xbe\x2f\x51\xa1\xae\xb7\x88\x4a\x99\x82\xaf\x86\x57\xa6\xed\xaa\x4e\xc3\x70\xc6\x75\x52\x4e\x82\x48\x64\x5f\x5e\x3d\x45\xa6\x50\x85\xb1\x98\xe7\xa9\x60\x71\xe8\x59\x33\x3a\x30\x5c\x7a\xa1\xed\xdf\x8c\xcd\x54\x6f\x87\x8d\x3d\xb7\x56\xa0\x99\x0c\x66\xbf\xc3\x03\x68\x26\xc1\xbf\xfb\xdd\x01\xfa\x06\xf8\x5a\xfb\xf7\x4c\xea\xb7\xca\x78\x66\xa8\x41\x95\xb2\x90\x5c\xd9\xde\x6f\x99\x31\x75\x43\xf9\x87\xe6\xf9\x4c\xad\xce\x99\x64\x22\x86\xe3\xa7\xdf\x7e\xbb\xb6\xb4\x3d\xd8\x0e\xe1\x9c\x6c\xde\x4e\xd7\x5d\xf7\xfa\x70\x97\xaf\x3a\x2b\x56\x91\xbf\x0b\xb5\x4c\xe6\xbb\x15\x5e\x0e\x00\x6c\xdc\xfb\x7e\x51\xa6\x29\xf8\xda\xe6\x9b\x0e\xf9\xc3\x8a\xec\x4e\xdb\xf7\xa3\xee\xc5\xd2\x5f\x51\x9d\x5f\x07\xb0\x6f\xd3\x02\x9f\xc9\x59\x83\x70\x6c\x3f\xd1\x7e\x59\x7a\x10\xac\x55\xbe\x7e\xbe\x33\xad\xa5\x12\x79\x9b\xdd\x37\x09\xc7\x76\x5a\x4b\x45\xf1\xc3\x5c\x39\x5f\x13\x90\x69\x6f\xac\xa1\x59\xf5\xe6\xbc\x81\x77\x8d\xa6\x12\xd5\xb4\x66\x52\xdd\x42\x1e\x5d\x0d\xb7\xba\xc6\x94\x7f\xe9\xa4\x54\x54\x44\x71\xe5\xda\xbc\x54\x55\xba\xde\xca\xaa\x4d\xc3\x82\x02\xb3\x23\xd3\xb2\xb5\x9f\x6e\x70\x41\x1f\x4c\x19\xa6\xbe\xd4\x4a\x0e\x77\xb6\x88\xab\x06\xf3\x67\x3b\x25\x26\xe1\xaa\x8c\xc8\x95\x48\x8d\xc8\x9d\x64\x51\xa0\xbc\xf5\x6c\x23\xe5\xe2\xac\x07\x3c\xd7\x52\xc4\x65\x84\x6a\xb3\xaf\xb2\xce\x89\xe0\xfb\x3a\x55\xb7\x28\xf9\x74\x61\x3f\x47\x8c\x4e\x03\x9f\xeb\x30\x7f\x46\xf0\xd0\xaa\xc2\x83\x0f\xb5\x67\xdb\xd5\xfe\xd2\x5a\x4e\x9d\x9e\x5d\xe3\x06\x17\xff\xf6\x12\xce\x0e\x6b\xf2\xbc\xfc\x5c\x75\xf5\x3f\x0c\x8a\xcd\x2e\x7f\x53\x05\x7f\x22\x58\x28\xeb\xdd\x60\x77\x17\x40\x55\xda\x28\x0a\xca\x5e\x63\x22\x97\x65\xab\xe5\x5a\x4d\x6e\xbf\xb1\x49\x8b\x5c\x51\x6e\x1d\x5c\x22\x53\xae\xc6\x33\x5d\xb2\xaa\x8c\x72\x09\x94\xa2\x9a\x84\x7c\x51\x94\xb3\x04\x3c\xe7\x07\x19\xcb\xf9\x14\x95\xf6\x20\x12\x59\x46\x11\xc0\x15\xb0\x5b\xc6\x53\x73\xdf\xc5\x73\x38\x79\x16\x1c\x7f\x7d\x44\x31\x11\x0b\x54\x66\x37\xaa\xf2\xe6\x42\xde\xac\x5a\x3f\xc6\xc9\x99\xae\xf6\x0c\x60\x68\xca\x48\x9e\x2b\xd3\x16\xb7\xab\x3c\x09\x8e\x29\x41\x4b\xf8\x2c\xb1\xbe\xbe\x7e\xa4\x4e\xfb\xc0\x09\x55\x49\xee\xfb\xae\x13\xbc\x7f\x7f\x1f\x9c\xa5\x1c\x73\x1d\xb8\x0b\xc6\xe5\x72\xbf\xee\xbf\x78\x3e\x69\xd3\x74\xc7\x1c\x4d\xde\xaf\xaf\xbc\x24\xbe\xac\x24\xf8\xea\xab\x1d\xef\xbf\xaf\x5f\xaf\x21\x93\xe5\xf2\xd7\x3c\xe7\x59\x99\xc1\x86\x74\xd5\x0c\xde\xb8\x2d\x24\xe5\x47\x54\x1b\x1a\xdc\xca\x63\x93\xfb\x9b\xbe\xb7\xd3\xb3\x83\xa6\xf7\x06\x1b\x4e\xb7\x25\xf9\xe8\xba\x72\x55\xcb\xab\x6a\x78\xed\x68\x2c\xd1\xd2\x5b\x85\x8c\x6a\xd1\xe3\xed\x66\xcd\x2e\xef\x69\xd5\x25\x47\xa3\x4c\xab\xab\x8f\xff\xcb\x0d\x9e\xbf\xad\x83\xf3\xd7\xd8\xd6\x58\xe6\xdf\xa5\xd8\xbf\x9b\x3b\x2b\xcf\x5b\xf5\x12\xe6\xb6\xc4\x32\xf1\xa8\x0d\x60\x6c\xb1\xea\xff\xb3\xc4\x16\x4b\xfc\x15\x63\x6e\x50\xc3\xee\x46\xbb\x6b\x97\xd5\x61\xfc\x57\xba\x65\x6b\x49\xc4\xdf\xd2\x2f\x6b\x36\x05\xf1\x2e\x4a\xcb\xd8\xfd\x4a\xa3\xd9\x8f\xa2\xfa\xb1\x02\x34\xd3\x48\x66\x0a\xe6\x98\xa6\xe6\x7e\x30\xa2\xb9\x94\x4c\x5b\x7e\x0d\xed\x09\x57\xcd\xc2\xed\xa0\xf6\x28\x9c\xbd\xd5\x55\x86\xf2\xe0\xc1\x15\x9c\xb7\x6b\x17\x1c\x0f\xa0\x65\x89\x87\x2b\x96\x34\xe4\x68\xa1\xca\x74\xd8\x6d\x2b\xb5\x8e\x75\xaf\x11\x29\x7b\xd5\x5d\x62\x0e\x09\x2b\x0a\xcc\x9b\x6d\x06\x5f\xe4\xc4\x62\xb6\xb1\xc1\xa7\xf6\x17\x01\xa6\xfd\x69\xae\xa2\xd4\x8d\xbd\x90\xa6\x6c\x51\x62\xba\x08\x1a\xec\x70\x2d\x1a\xfd\xc3\x2d\xcd\x04\x30\xa4\xb9\x64\x84\xca\xb0\x4e\xd5\xd2\x5c\x61\xfc\xc9\x86\xb4\x65\xf8\x7a\xe5\x06\x57\x2b\x4d\x5c\x40\xb9\xaa\xe4\x19\xe6\x9a\xa5\x64\x0c\x31\xad\x52\x61\x62\xa9\xef\x82\xc7\x04\xc1\x77\xe6\x7e\xad\x8a\x94\xab\xcb\x71\xef\xdd\x4f\xbd\xc1\xe5\xeb\xde\xf5\xa8\x7b\xd5\xf1\x30\x27\xca\x8f\x3d\xb3\x9d\x29\xeb\xd6\x8f\xf2\xdc\x75\xd4\xcc\x6f\x74\x98\xc2\xd5\x05\xa2\xd3\x1b\x93\xa4\x2e\x3a\xaa\x85\x19\x6b\x79\x7b\x01\x58\xad\xd4\x39\x38\x34\xeb\xbf\x66\x37\x58\x7b\x82\xf5\x21\x9e\xeb\x4a\x95\xd5\xe8\x00\x7a\xb3\xd3\x0a\xf3\x4d\xff\xc0\xb1\x86\xbb\xa1\xd8\x27\x8f\xde\xff\x52\x6c\x9a\xe1\xbe\x9d\xfa\xc7\xe3\xaa\x65\x5b\xe0\x5a\x56\x97\x3f\x0e\x3b\xfb\xfb\x94\x5a\xc5\xe0\x4b\xda\x1c\x89\x3f\x6a\x01\xff\xb3\x73\xe0\xb5\xe9\xa9\x77\xf8\xdc\x38\x23\x7c\x0f\xdf\x6f\x5c\xcc\xa9\xb5\xe6\xdb\xa7\x0f\xe1\x27\xff\xd3\xac\xf1\xcc\x47\x7a\xfc\xfe\xbf\xe0\xe3\xa3\x4f\xed\x4a\xc2\x0f\xa1\x25\xcf\xd3\xf6\xa8\x7b\xf1\xc1\xff\xea\xd3\xcc\x70\xdb\x46\xd6\x66\x73\x0d\x04\xdf\x67\x19\x51\xea\x97\x60\xca\x30\x5b\x35\xf1\xfd\x0f\x1f\x0d\x2c\xfd\x8d\x17\x1d\x9b\xa2\x19\x74\xb3\xc2\x09\xb5\x7e\x01\xe2\xfb\xcc\xad\xe6\xaa\xcb\x3f\x94\xfb\x4b\xe0\x6b\x6f\x37\x8d\x14\xb1\x6d\xc4\x6c\x8a\x62\x00\x88\xf2\x7c\x69\xbb\xa2\x9f\xdf\x6b\x57\xb2\xc5\xd5\x7a\xef\xb8\x7b\x7d\x5e\x93\x6b\x75\x4d\xfe\x46\xe1\xb4\x4c\x09\x39\xda\xf7\x6f\x5f\x76\x47\x4b\x9a\xe5\xb1\x34\xf5\x23\x91\x9b\x24\x36\x8f\xd0\x0b\xaa\xb5\x4d\xfe\xc6\xd2\x54\xcc\xab\xd8\xa1\x6a\x16\x5d\xbc\x00\xcf\x32\x8c\x39\xd3\x98\x2e\x80\x4d\xb5\xfd\xa1\xd5\x62\xbf\x42\x23\x13\x5d\x81\xbd\x96\x1b\xb3\x3c\x1e\xef\x4e\xf9\x2c\xfc\xae\x4c\xd6\x82\x9a\xcb\xaa\x27\x7f\xe2\xb4\x84\x68\x33\x01\x91\x88\xb1\x35\xe1\xb9\xdb\xc6\x36\xa9\xc8\x7a\xe3\x42\xa2\xb9\x5c\xf6\x5a\x8d\xb6\x9f\xb9\x3b\xf1\xab\xc6\x9f\xcc\x36\xb2\x96\xb5\x89\x17\xfd\xee\xe0\x75\xa7\x7d\x6f\xfe\x9e\xfa\x4f\xad\x63\x56\x49\xdc\x70\x70\x46\x9e\xe9\xb5\x7f\xf0\x9e\x1b\xd3\xae\xec\x2b\x4b\x2a\x11\x64\x66\x59\xe2\xde\xb6\xe1\xad\x29\xed\xa7\x7f\x79\xee\x55\xe3\xbe\xe3\x34\x9c\x89\x50\xc9\x28\xbc\x79\xa6\x02\x2e\xc2\x9b\xfa\xb7\x8e\xa7\xff\x6a\xe4\x03\x33\x91\xb2\x7c\x76\xea\x91\x58\x57\xdd\xeb\x8b\x71\xdd\x88\x6a\x0c\x32\xbf\xa5\x9c\x30\x72\xae\x08\xbc\x0f\x8d\x3e\x9c\xeb\x12\xc5\xf0\xd9\xdd\xcc\x95\x4b\x68\xad\x1f\xb6\xef\x87\x83\xb3\xf1\xf9\xe5\x60\x49\xe5\xc9\xf6\x42\x67\x17\xfd\x71\xef\xba\xfb\xe2\xaa\x77\xde\x39\x06\x1b\x36\x4e\x7f\x4b\xb8\xe8\xf7\x87\x9d\xf6\x7d\x7f\x48\x1f\xcd\xd5\x84\xd5\xff\x92\xec\xe6\x6a\x5c\x06\x3e\xcf\x95\x66\x69\x6a\xa3\x05\xa2\x99\x00\xdf\x4f\xe3\x69\xca\x66\x0a\xf6\xfd\xf9\x3e\xf8\x02\x6a\xd5\x59\x89\x96\x10\x84\x6b\x3f\x1e\xa3\x67\xde\xa1\xd7\xa8\x4a\x55\xc2\xa7\xba\xd5\xaa\x0d\x6f\x9c\xdf\x99\x7d\xc3\xfb\x9b\x2e\xb0\x9d\xb4\xd6\x97\x71\x8f\xba\x57\x57\x8f\x56\x09\x51\xf3\xa7\x86\xbb\xb5\xe7\x9a\x27\xe6\x4a\x48\x01\xcb\x01\xef\xb4\xc4\x0c\xd3\x85\xd9\x28\x15\xe4\xc5\x3c\x43\x38\x40\xf3\x7b\x47\x96\xa6\x0b\x50\x22\xab\x36\x38\xb4\x9d\x9f\xc6\x13\xc3\x64\x92\x11\xd3\xdb\xdf\x13\xd0\xfb\xea\x7b\x11\x33\x8d\xb1\xb9\x28\xd5\x09\x4a\xdc\xaf\x6a\x62\x28\x04\xcf\xcd\x2f\x58\x25\xd6\xe1\xc3\xd2\xd4\xfd\x36\x35\x73\x77\x82\x24\x4a\xd0\x80\x01\x93\x79\xac\x3a\x59\x67\x2b\x8d\xf9\x12\x53\xda\xab\xd1\xce\xda\x83\x73\xae\xa2\x52\x91\x50\x71\x69\xba\xcb\x8d\x09\xd0\x9f\x4e\x79\x84\xf0\x52\x94\x52\xc1\x6b\x44\x53\x86\x1e\x3c\x3e\x3e\xf9\x2e\x38\x79\x1c\x9c\x3c\x3d\x3c\x35\x6b\x54\xbd\xd9\x58\x44\x2a\x98\x09\x31\x4b\xd1\x34\x68\x63\x11\x95\x94\x43\x84\x71\x78\xf2\xf6\xeb\x93\xfc\x5d\xf2\xdd\xe0\x97\xee\x64\xfc\x33\xfb\xe5\x66\x5e\xfe\x74\x15\x9f\x24\x3f\xde\x95\x83\x77\x5f\xf3\x37\xc7\xe7\x19\xfb\xe7\x37\xe9\xcd\x99\x7a\xf7\x2c\xc4\x98\xeb\xbd\x04\x19\x9d\xb8\x93\x04\xe9\xb3\xa7\x69\x79\xf2\xf4\x2e\xfb\x6e\x92\x98\xfd\x88\x0f\x15\xca\xdb\xfa\x26\x82\xf2\x5e\x9e\x9b\xe4\x32\x3e\xdd\xd5\x2a\x6e\x58\xba\xf1\x91\x2b\x55\xa2\x0a\x9f\x7d\x73\xf2\xed\xb3\x96\xb9\xda\xad\x4e\x3e\xb6\x2a\xea\x1c\x78\x93\x52\x2d\x26\xe2\xce\x03\x8f\xcd\xf2\x44\x28\xed\x81\xf7\x2b\x2a\xc5\xd1\x8f\x73\x45\xf9\x95\xf2\xc0\xbb\xe1\x5a\x23\xa5\x9c\x39\xa3\x47\x25\x3d\xcb\x45\x8e\xf3\x42\xf2\x5b\xfa\x22\xd1\xfe\xb2\x91\x3c\x58\x95\x19\x4a\x0f\x3c\xc5\xb2\x22\x45\x9f\x15\xdc\x1e\xc6\x56\x9b\xa2\x3a\x94\x41\xa9\xfb\x6d\xa1\x0c\xd7\xd6\x74\x6a\x7e\x48\x64\xd0\x6a\xf8\xca\x72\xdb\x0a\x9e\x4d\x50\xb9\x3a\x61\x6b\xdc\x0f\x5e\x6b\xca\x5b\xff\x1d\x00\x00\xff\xff\xa1\xf2\xd3\x29\xc5\x2d\x00\x00") - -func testImagesImageUtilShBytes() ([]byte, error) { - return bindataRead( - _testImagesImageUtilSh, - "test/images/image-util.sh", - ) -} - -func testImagesImageUtilSh() (*asset, error) { - bytes, err := testImagesImageUtilShBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/image-util.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesIpcUtilsBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x4d\xcc\x29\xc8\xcc\x4b\xb5\x32\xd6\x33\xe3\x82\x0a\x17\xe5\xda\x26\x16\xe5\x1a\x1b\x95\x99\xe9\x63\x93\x04\xe9\x01\x91\x65\x16\x98\xd2\x05\x05\xc9\x66\x26\x39\xa9\xb6\x50\x1a\x59\x01\x20\x00\x00\xff\xff\xeb\x4c\x33\x25\x74\x00\x00\x00") - -func testImagesIpcUtilsBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesIpcUtilsBaseimage, - "test/images/ipc-utils/BASEIMAGE", - ) -} - -func testImagesIpcUtilsBaseimage() (*asset, error) { - bytes, err := testImagesIpcUtilsBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/ipc-utils/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesIpcUtilsDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x92\xcf\x4f\xdb\x30\x1c\xc5\xef\xfe\x2b\x9e\x9a\x1d\x36\xa9\x49\x18\xa7\x69\x3b\x85\x52\x20\x02\x92\x2d\x69\x87\x38\x21\x37\xf9\x36\xf9\x6a\xa9\x6d\xfc\x63\xa1\xff\xfd\x94\x00\xda\xaa\xf9\x66\xbf\xe7\xe7\x8f\x9f\x1d\x61\xa5\xcd\xd1\x72\xd7\x7b\x9c\x9f\x7d\xfe\x82\x4d\x4f\xb8\x0d\x3b\xb2\x8a\x3c\x39\x64\xc1\xf7\xda\xba\x44\x44\x22\xc2\x1d\x37\xa4\x1c\xb5\x08\xaa\x25\x0b\xdf\x13\x32\x23\x9b\x9e\xde\x95\x25\x7e\x92\x75\xac\x15\xce\x93\x33\x7c\x9c\x0c\x8b\x37\x69\xf1\xe9\x9b\x88\x70\xd4\x01\x07\x79\x84\xd2\x1e\xc1\x11\x7c\xcf\x0e\x7b\x1e\x08\xf4\xd2\x90\xf1\x60\x85\x46\x1f\xcc\xc0\x52\x35\x84\x91\x7d\x3f\x1f\xf3\x16\x92\x88\x08\x8f\x6f\x11\x7a\xe7\x25\x2b\x48\x34\xda\x1c\xa1\xf7\xff\xfa\x20\xfd\x0c\x3c\x8d\xde\x7b\xf3\x35\x4d\xc7\x71\x4c\xe4\x0c\x9b\x68\xdb\xa5\xc3\xab\xd1\xa5\x77\xf9\x6a\x5d\xd4\xeb\xf8\x3c\x39\x9b\xb7\x6c\xd5\x40\xce\xc1\xd2\x73\x60\x4b\x2d\x76\x47\x48\x63\x06\x6e\xe4\x6e\x20\x0c\x72\x84\xb6\x90\x9d\x25\x6a\xe1\xf5\xc4\x3b\x5a\xf6\xac\xba\x25\x9c\xde\xfb\x51\x5a\x12\x11\x5a\x76\xde\xf2\x2e\xf8\x93\xb2\xde\xe9\xd8\x9d\x18\xb4\x82\x54\x58\x64\x35\xf2\x7a\x81\x8b\xac\xce\xeb\xa5\x88\xf0\x90\x6f\x6e\xca\xed\x06\x0f\x59\x55\x65\xc5\x26\x5f\xd7\x28\x2b\xac\xca\xe2\x32\xdf\xe4\x65\x51\xa3\xbc\x42\x56\x3c\xe2\x36\x2f\x2e\x97\x20\xf6\x3d\x59\xd0\x8b\xb1\x13\xbf\xb6\xe0\xa9\x46\x6a\xa7\xce\x6a\xa2\x13\x80\xbd\x7e\x05\x72\x86\x1a\xde\x73\x83\x41\xaa\x2e\xc8\x8e\xd0\xe9\xdf\x64\x15\xab\x0e\x86\xec\x81\xdd\xf4\x98\x0e\x52\xb5\x22\xc2\xc0\x07\xf6\xd2\xcf\x2b\xff\x5d\x2a\x11\x22\xab\xae\x27\xfa\x75\x7e\x9f\x5d\xaf\xc5\x55\x55\xde\xe3\xc3\xdf\xb9\x58\x55\x65\x5d\x3f\x5d\x6c\xf3\xbb\xcb\xa7\x55\xf9\xfd\x11\xcf\x74\x08\xf1\x8f\xf5\xfd\x36\xab\x56\x37\xb1\x9b\xa2\x1b\xa4\xc1\xd9\x74\xc7\x2a\x15\xa2\xda\x16\x90\xe6\x17\x64\xdb\x22\x8e\x95\x8e\x9b\xf9\xaf\x05\xcf\x43\x3c\xb0\x0a\x2f\xe2\x4f\x00\x00\x00\xff\xff\xf5\x16\x2c\x14\xbe\x02\x00\x00") - -func testImagesIpcUtilsDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesIpcUtilsDockerfile, - "test/images/ipc-utils/Dockerfile", - ) -} - -func testImagesIpcUtilsDockerfile() (*asset, error) { - bytes, err := testImagesIpcUtilsDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/ipc-utils/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesIpcUtilsVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe4\x02\x04\x00\x00\xff\xff\x9e\xc5\x88\x7d\x04\x00\x00\x00") - -func testImagesIpcUtilsVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesIpcUtilsVersion, - "test/images/ipc-utils/VERSION", - ) -} - -func testImagesIpcUtilsVersion() (*asset, error) { - bytes, err := testImagesIpcUtilsVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/ipc-utils/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesJessieDnsutilsBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x4d\x49\x4d\xca\x4c\xcc\xb3\xca\x4a\x2d\x2e\xce\x4c\xe5\x82\xca\x14\xe5\xda\x26\x16\xe5\x1a\x1b\x95\x99\xeb\xe3\x90\x37\x33\xb1\x05\x93\x65\x16\x58\x55\x14\x14\x24\x9b\x99\xe4\xa4\xda\x42\x69\xac\x6a\x8a\x8d\x2d\x0d\x2a\x6c\xc1\x24\x9a\x3c\x20\x00\x00\xff\xff\x77\xe6\x98\x0c\xa0\x00\x00\x00") - -func testImagesJessieDnsutilsBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesJessieDnsutilsBaseimage, - "test/images/jessie-dnsutils/BASEIMAGE", - ) -} - -func testImagesJessieDnsutilsBaseimage() (*asset, error) { - bytes, err := testImagesJessieDnsutilsBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/jessie-dnsutils/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesJessieDnsutilsDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x53\x51\x6f\xdc\x36\x13\x7c\xe7\xaf\x18\x9c\x3e\x04\x5f\x01\x4b\x72\x8c\xd4\x0f\xee\x93\x72\xbe\x38\x42\xec\xbb\xf4\x64\x37\x30\xda\xc2\xe0\x51\x7b\xd2\xa6\x12\x49\x93\x94\x75\xca\xaf\x2f\x28\xfb\xda\x1a\xd6\x8b\xb0\x9c\xdd\xe5\xec\x70\x36\xc1\xd2\xd8\xc9\x71\xd3\x06\x9c\x9d\xbe\x3f\xc7\x6d\x4b\xf8\x32\xec\xc8\x69\x0a\xe4\x51\x0c\xa1\x35\xce\x67\x22\x11\x09\xae\x59\x91\xf6\x54\x63\xd0\x35\x39\x84\x96\x50\x58\xa9\x5a\x3a\x22\x27\xf8\x8d\x9c\x67\xa3\x71\x96\x9d\xe2\xff\x31\x61\xf1\x02\x2d\x7e\xfa\x45\x24\x98\xcc\x80\x5e\x4e\xd0\x26\x60\xf0\x84\xd0\xb2\xc7\x9e\x3b\x02\x1d\x14\xd9\x00\xd6\x50\xa6\xb7\x1d\x4b\xad\x08\x23\x87\x76\xbe\xe6\xa5\x49\x26\x12\xdc\xbf\xb4\x30\xbb\x20\x59\x43\x42\x19\x3b\xc1\xec\xff\x9b\x07\x19\x66\xc2\xf1\x6b\x43\xb0\x17\x79\x3e\x8e\x63\x26\x67\xb2\x99\x71\x4d\xde\x3d\x27\xfa\xfc\xba\x5c\xae\xd6\xd5\x2a\x3d\xcb\x4e\xe7\x92\x3b\xdd\x91\xf7\x70\xf4\x38\xb0\xa3\x1a\xbb\x09\xd2\xda\x8e\x95\xdc\x75\x84\x4e\x8e\x30\x0e\xb2\x71\x44\x35\x82\x89\x7c\x47\xc7\x81\x75\x73\x02\x6f\xf6\x61\x94\x8e\x44\x82\x9a\x7d\x70\xbc\x1b\xc2\x2b\xb1\x8e\xec\xd8\xbf\x4a\x30\x1a\x52\x63\x51\x54\x28\xab\x05\x3e\x16\x55\x59\x9d\x88\x04\xdf\xca\xdb\xcf\x9b\xbb\x5b\x7c\x2b\xb6\xdb\x62\x7d\x5b\xae\x2a\x6c\xb6\x58\x6e\xd6\x97\xe5\x6d\xb9\x59\x57\xd8\x7c\x42\xb1\xbe\xc7\x97\x72\x7d\x79\x02\xe2\xd0\x92\x03\x1d\xac\x8b\xfc\x8d\x03\x47\x19\xa9\x8e\x9a\x55\x44\xaf\x08\xec\xcd\x33\x21\x6f\x49\xf1\x9e\x15\x3a\xa9\x9b\x41\x36\x84\xc6\x3c\x91\xd3\xac\x1b\x58\x72\x3d\xfb\xf8\x98\x1e\x52\xd7\x22\x41\xc7\x3d\x07\x19\xe6\x93\x37\x43\x65\x42\x14\xdb\xab\xc8\x7e\x55\xde\x14\x57\x2b\xf1\x69\xbb\xb9\xc1\xff\xfe\x8d\xc5\x72\xbb\xa9\xaa\x87\x8f\x77\xe5\xf5\xe5\xc3\x72\xf3\xf5\x1e\x8f\xd4\x0f\xe9\xaf\xab\x9b\xbb\x62\xbb\xfc\x9c\xfa\xd8\x5a\x21\x1f\xbc\xcb\x77\xac\x73\x11\x25\x28\xb6\xeb\x72\x7d\x75\x81\xaf\x1d\x49\x4f\xd1\x36\x71\x10\x19\x9e\xd9\x2b\xc7\x36\x60\x47\x9d\x19\xe1\xa8\x37\x4f\xe4\x9f\x01\x52\x83\xe3\x30\xc1\x4a\xf5\x97\x6c\xc8\x63\xef\x4c\x0f\xe9\xfa\xf3\x0f\x71\x16\x58\xab\xce\x3f\x50\x07\xee\x23\x2a\x12\xc8\xb9\x70\x42\x6d\x66\x6b\xd2\x81\x7d\x80\xd4\x53\x6f\x1c\xc5\x37\x8e\x5d\x6b\xda\xb1\xd4\x70\x64\x8d\xe7\x60\x1c\xc7\xbe\xc6\xe1\x3b\x79\xcf\x94\xa1\x32\x18\xe9\xd8\xc1\x91\x32\x7d\x4f\xba\xc6\xe0\xa3\x9a\xd1\xe8\x22\x79\xbe\x70\xae\x92\x7a\x82\x75\xa6\x1e\x54\x14\x74\x5e\x86\xc8\x6c\xd6\x78\x8e\x66\x47\xb3\x7f\x29\x09\x06\xdf\x07\x1f\x10\xc8\x07\x78\x45\x5a\x3a\x36\x3e\x13\x62\x56\x72\xcf\x87\xc1\xa6\xd2\x86\xb4\x63\x1f\x32\xdf\x22\x17\xdb\xbb\x35\x7e\x5f\xe4\x6f\xa0\xc5\x9f\x62\xc6\xe2\x51\x43\x01\xe9\x23\x06\x5b\xcb\x40\x78\xf7\x0e\x7f\x88\xb8\x32\x47\x88\xb5\x0f\xb2\xeb\x90\x4e\x48\xd3\xbd\x71\x8a\xd2\x89\x3c\x6a\xed\x87\xc0\x9d\x7f\x5b\xa0\x3a\x92\x5a\x88\xe2\xf2\x72\x5e\x3b\x7f\x91\xe7\x0d\x87\x76\xd8\x65\xca\xf4\xb9\x32\x8e\x6a\xed\xff\xf9\x3b\x9a\x5f\xd5\xe7\xb5\x19\x75\x67\x64\x9d\x3f\xbd\xcf\x7e\xce\x4e\x8f\x09\x0f\x73\xf4\xd0\xb1\x1e\x0e\x0f\xd1\x48\xd1\x27\x59\x68\x7e\xe0\x98\x11\x83\x79\x98\x20\x1d\xd2\xc3\x8f\xa7\xfd\x2b\x28\x12\x74\x3d\xd2\xd7\xa7\xe2\xef\x00\x00\x00\xff\xff\x02\x98\x43\x49\xf4\x04\x00\x00") - -func testImagesJessieDnsutilsDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesJessieDnsutilsDockerfile, - "test/images/jessie-dnsutils/Dockerfile", - ) -} - -func testImagesJessieDnsutilsDockerfile() (*asset, error) { - bytes, err := testImagesJessieDnsutilsDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/jessie-dnsutils/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesJessieDnsutilsOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xc9\xcc\x2d\x06\x33\x72\xb3\x4b\x73\x13\x4b\x12\xd3\xb9\x00\x01\x00\x00\xff\xff\x78\x0c\x5f\x33\x21\x00\x00\x00") - -func testImagesJessieDnsutilsOwnersBytes() ([]byte, error) { - return bindataRead( - _testImagesJessieDnsutilsOwners, - "test/images/jessie-dnsutils/OWNERS", - ) -} - -func testImagesJessieDnsutilsOwners() (*asset, error) { - bytes, err := testImagesJessieDnsutilsOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/jessie-dnsutils/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesJessieDnsutilsVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe6\x02\x04\x00\x00\xff\xff\x1c\xa7\xbe\x4f\x04\x00\x00\x00") - -func testImagesJessieDnsutilsVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesJessieDnsutilsVersion, - "test/images/jessie-dnsutils/VERSION", - ) -} - -func testImagesJessieDnsutilsVersion() (*asset, error) { - bytes, err := testImagesJessieDnsutilsVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/jessie-dnsutils/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesJessieDnsutilsFixupAptListSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x93\x51\x6f\xdb\x36\x14\x85\xdf\xf9\x2b\xce\xac\x3e\x34\x40\x24\xaa\x69\x91\xa1\x09\xf6\xe0\x26\x19\x6a\xb4\xb0\x01\xdb\x5d\xd1\xa7\x81\xa2\xae\xa5\xdb\x49\x24\x47\x52\x76\x8c\x65\xff\x7d\xa0\x6c\x6f\x33\x12\xec\x69\x7c\x32\x7c\xaf\xee\xf9\xce\xb9\x64\xf6\x83\x1c\x82\x97\x15\x1b\x49\x66\x8b\x4a\x85\x56\x88\x0c\x77\xd6\xed\x3d\x37\x6d\xc4\x55\xf9\xe6\x47\xac\x5b\xc2\xa7\xa1\x22\x6f\x28\x52\xc0\x74\x88\xad\xf5\xa1\x10\x99\xc8\xf0\x99\x35\x99\x40\x35\x06\x53\x93\x47\x6c\x09\x53\xa7\x74\x4b\xa7\xca\x25\x7e\x21\x1f\xd8\x1a\x5c\x15\x25\x5e\xa7\x86\xc9\xb1\x34\xb9\xb8\x15\x19\xf6\x76\x40\xaf\xf6\x30\x36\x62\x08\x84\xd8\x72\xc0\x86\x3b\x02\x3d\x6a\x72\x11\x6c\xa0\x6d\xef\x3a\x56\x46\x13\x76\x1c\xdb\x51\xe6\x38\xa4\x10\x19\xbe\x1d\x47\xd8\x2a\x2a\x36\x50\xd0\xd6\xed\x61\x37\xff\xee\x83\x8a\x23\x70\x3a\x6d\x8c\xee\x46\xca\xdd\x6e\x57\xa8\x11\xb6\xb0\xbe\x91\xdd\xa1\x31\xc8\xcf\xb3\xbb\x87\xf9\xea\x21\xbf\x2a\xca\xf1\x93\x2f\xa6\xa3\x10\xe0\xe9\xf7\x81\x3d\xd5\xa8\xf6\x50\xce\x75\xac\x55\xd5\x11\x3a\xb5\x83\xf5\x50\x8d\x27\xaa\x11\x6d\xe2\xdd\x79\x8e\x6c\x9a\x4b\x04\xbb\x89\x3b\xe5\x49\x64\xa8\x39\x44\xcf\xd5\x10\xcf\xc2\x3a\xd1\x71\x38\x6b\xb0\x06\xca\x60\x32\x5d\x61\xb6\x9a\xe0\xc3\x74\x35\x5b\x5d\x8a\x0c\x5f\x67\xeb\x8f\x8b\x2f\x6b\x7c\x9d\x2e\x97\xd3\xf9\x7a\xf6\xb0\xc2\x62\x89\xbb\xc5\xfc\x7e\xb6\x9e\x2d\xe6\x2b\x2c\x7e\xc6\x74\xfe\x0d\x9f\x66\xf3\xfb\x4b\x10\xc7\x96\x3c\xe8\xd1\xf9\xc4\x6f\x3d\x38\xc5\x48\x75\xca\x6c\x45\x74\x06\xb0\xb1\x07\xa0\xe0\x48\xf3\x86\x35\x3a\x65\x9a\x41\x35\x84\xc6\x6e\xc9\x1b\x36\x0d\x1c\xf9\x9e\x43\x5a\x66\x80\x32\xb5\xc8\xd0\x71\xcf\x51\xc5\xf1\x9f\x67\xa6\x0a\x21\xee\x1f\x3e\xfc\x3a\x5d\xde\x7d\xfc\xe9\xd5\xeb\xda\xfd\xd6\x20\xcf\x9d\x67\x13\x73\xe5\x75\xcb\x91\x74\x1c\x3c\x5d\xa4\x2b\x77\x5c\x49\x20\x3d\x78\x8e\xfb\xa2\xa6\x8a\x95\x19\xf7\x72\xf8\x99\x9f\x4a\x32\xe5\x14\xe4\x77\x0a\x81\x49\x0e\xae\x56\x91\x82\x9c\x99\x25\x75\xa4\x0e\x49\x8e\x90\xa6\x11\x19\xc8\x44\xcf\x14\x46\x77\xc1\xf6\x04\xd7\xa9\xb8\xb1\xbe\x0f\x69\x37\xd8\x11\xbe\x0f\x21\xc2\x53\x6f\xb7\x87\x3c\x3a\x15\x22\x3a\x36\x94\xf6\x18\xec\xe0\x35\x85\xa2\xe3\x90\xee\xa1\xc8\x20\x29\x6a\xa9\x5c\x94\x67\xa5\x5d\xcb\xba\x4d\xca\x93\x9a\xaa\x93\x97\x9a\xaa\xe7\x36\x70\xe0\xce\x8f\xdc\xe8\x15\x9b\x89\x10\x3a\x91\xbf\xfa\xe3\x14\xd7\x9f\x49\x2c\xdd\xd4\xf0\xf6\x7d\xf9\xf8\xa4\x7c\x7f\xfd\xee\xc9\x39\x7d\xfd\x8e\xba\x8b\xb1\x90\x4e\x96\xf8\x5b\x95\xc0\xed\xf1\xe9\x10\xc6\x64\xb7\x84\x9e\xbd\x1f\x5f\xe9\x3f\xdd\x2b\xa2\x9b\x11\x2e\xdc\x48\x99\xb8\xc3\x0b\x31\xd7\xb4\xa5\x2e\x57\xc6\xd8\xc1\x68\x92\x57\xe5\x9b\xf7\xb2\x7c\x2b\xfb\xd0\x94\x65\x59\x5e\x17\x6d\xec\xbb\xbf\x67\x92\x6e\xed\x99\xe7\xa3\xfa\xf3\xb9\xf2\x68\x7c\x34\x0c\x6d\xd3\x5e\x2a\x18\x6b\xf2\x8d\x27\x9a\xe0\x09\x91\xe8\xe5\x74\x9f\xab\xe5\xc1\xeb\xff\x49\x31\x57\xff\x2d\x7a\x7b\x2b\x28\x28\x2d\x04\x3d\x72\x44\x29\xfe\x0a\x00\x00\xff\xff\x89\x46\xbb\xca\x32\x05\x00\x00") - -func testImagesJessieDnsutilsFixupAptListShBytes() ([]byte, error) { - return bindataRead( - _testImagesJessieDnsutilsFixupAptListSh, - "test/images/jessie-dnsutils/fixup-apt-list.sh", - ) -} - -func testImagesJessieDnsutilsFixupAptListSh() (*asset, error) { - bytes, err := testImagesJessieDnsutilsFixupAptListShBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/jessie-dnsutils/fixup-apt-list.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesKittenBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x0d\x72\x75\xf7\x0c\x0e\x09\x8a\xd4\x4f\x4c\xcf\xcb\xc8\x2f\x2e\xb1\x32\xd2\x33\x32\xd4\x05\xab\xd0\x05\xab\xe0\x82\xaa\x2e\xca\xc5\xaf\xb6\x28\x17\xa1\x92\x90\xb9\x20\x15\x50\xd5\x05\x05\xc9\x66\x26\x39\xa9\x78\xd5\x43\xd5\x40\x75\x14\x1b\x5b\x1a\x54\xe0\x55\x0f\x56\xc1\x55\x9e\x99\x97\x92\x5f\x5e\x0c\xf1\xa7\xbe\xa1\x85\x81\x25\x0e\x4d\x50\x85\x10\xef\xea\x82\x14\xa2\xeb\xb5\x34\x30\x26\x4e\xaf\xa5\x81\x31\xa6\x5e\x22\xed\xb5\x34\xb0\xe4\x02\x04\x00\x00\xff\xff\x3f\x6b\x27\xe4\x9a\x01\x00\x00") - -func testImagesKittenBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesKittenBaseimage, - "test/images/kitten/BASEIMAGE", - ) -} - -func testImagesKittenBaseimage() (*asset, error) { - bytes, err := testImagesKittenBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/kitten/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesKittenDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x41\x53\xdb\x30\x10\x85\xef\xfa\x15\x6f\xec\x1e\xda\x99\xe0\x50\x0e\x3d\xb4\x27\x37\x04\xea\x01\xec\x4e\x1c\xca\x30\x9d\x1e\x64\x7b\x63\x2f\x75\x24\x55\x5a\x63\xf2\xef\x3b\x0e\xa1\x90\xa9\x4e\x2b\xbd\xa7\xd5\xa7\xb7\x31\x16\xd6\xed\x3c\xb7\x9d\xe0\xec\xf4\xe3\x27\xac\x3b\xc2\xd5\x50\x91\x37\x24\x14\x90\x0e\xd2\x59\x1f\x12\x15\xab\x18\xd7\x5c\x93\x09\xd4\x60\x30\x0d\x79\x48\x47\x48\x9d\xae\x3b\x7a\x51\x66\xf8\x41\x3e\xb0\x35\x38\x4b\x4e\xf1\x7e\x32\x44\x07\x29\xfa\xf0\x45\xc5\xd8\xd9\x01\x5b\xbd\x83\xb1\x82\x21\x10\xa4\xe3\x80\x0d\xf7\x04\x7a\xaa\xc9\x09\xd8\xa0\xb6\x5b\xd7\xb3\x36\x35\x61\x64\xe9\xf6\xcf\x1c\x9a\x24\x2a\xc6\xfd\xa1\x85\xad\x44\xb3\x81\x46\x6d\xdd\x0e\x76\xf3\xd6\x07\x2d\x7b\xe0\x69\x75\x22\xee\xf3\x7c\x3e\x8e\x63\xa2\xf7\xb0\x89\xf5\xed\xbc\x7f\x36\x86\xf9\x75\xb6\x58\xe6\xe5\xf2\xe4\x2c\x39\xdd\x5f\xb9\x35\x3d\x85\x00\x4f\x7f\x06\xf6\xd4\xa0\xda\x41\x3b\xd7\x73\xad\xab\x9e\xd0\xeb\x11\xd6\x43\xb7\x9e\xa8\x81\xd8\x89\x77\xf4\x2c\x6c\xda\x19\x82\xdd\xc8\xa8\x3d\xa9\x18\x0d\x07\xf1\x5c\x0d\x72\x14\xd6\x0b\x1d\x87\x23\x83\x35\xd0\x06\x51\x5a\x22\x2b\x23\x7c\x4d\xcb\xac\x9c\xa9\x18\x77\xd9\xfa\x5b\x71\xbb\xc6\x5d\xba\x5a\xa5\xf9\x3a\x5b\x96\x28\x56\x58\x14\xf9\x79\xb6\xce\x8a\xbc\x44\x71\x81\x34\xbf\xc7\x55\x96\x9f\xcf\x40\x2c\x1d\x79\xd0\x93\xf3\x13\xbf\xf5\xe0\x29\x46\x6a\xa6\xcc\x4a\xa2\x23\x80\x8d\x7d\x06\x0a\x8e\x6a\xde\x70\x8d\x5e\x9b\x76\xd0\x2d\xa1\xb5\x8f\xe4\x0d\x9b\x16\x8e\xfc\x96\xc3\x34\xcc\x00\x6d\x1a\x15\xa3\xe7\x2d\x8b\x96\xfd\xc9\x7f\x9f\x4a\x94\x4a\x57\x97\x13\xfd\x32\xbb\x49\x2f\x97\xea\x62\x55\xdc\xe0\xdd\xeb\x7e\x51\x7c\xbf\x47\x27\xdb\x7e\xfe\x9b\x45\xc8\x24\x0f\xae\xc5\x6b\xf9\x46\x6f\xb4\xe8\xe4\x21\x58\x83\x7f\x95\x5a\xdc\x9c\xe3\x67\x24\x14\xe4\x64\xa4\x2a\x90\x7f\x24\x1f\xfd\x52\x7f\x03\x00\x00\xff\xff\xe4\xdf\x68\x02\xbf\x02\x00\x00") - -func testImagesKittenDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesKittenDockerfile, - "test/images/kitten/Dockerfile", - ) -} - -func testImagesKittenDockerfile() (*asset, error) { - bytes, err := testImagesKittenDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/kitten/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesKittenOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xce\x49\x2c\x4d\xc9\x2c\x4d\x4a\xcd\x29\x05\xf3\x73\xb3\x4b\x73\x13\x4b\x12\xd3\xb9\x00\x01\x00\x00\xff\xff\xeb\x9e\xa3\x19\x28\x00\x00\x00") - -func testImagesKittenOwnersBytes() ([]byte, error) { - return bindataRead( - _testImagesKittenOwners, - "test/images/kitten/OWNERS", - ) -} - -func testImagesKittenOwners() (*asset, error) { - bytes, err := testImagesKittenOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/kitten/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesKittenVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe1\x02\x04\x00\x00\xff\xff\xdb\x31\xff\x00\x04\x00\x00\x00") - -func testImagesKittenVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesKittenVersion, - "test/images/kitten/VERSION", - ) -} - -func testImagesKittenVersion() (*asset, error) { - bytes, err := testImagesKittenVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/kitten/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesKittenHtmlDataJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xaa\xe6\x52\x50\x50\xca\xcc\x4d\x4c\x4f\x55\xb2\x52\x50\xca\xce\x2c\x29\x49\xcd\xd3\xcb\x2a\x48\x57\xe2\xaa\xe5\x02\x04\x00\x00\xff\xff\x27\x07\xd0\xf9\x1c\x00\x00\x00") - -func testImagesKittenHtmlDataJsonBytes() ([]byte, error) { - return bindataRead( - _testImagesKittenHtmlDataJson, - "test/images/kitten/html/data.json", - ) -} - -func testImagesKittenHtmlDataJson() (*asset, error) { - bytes, err := testImagesKittenHtmlDataJsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/kitten/html/data.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesMetadataConcealmentDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x91\x51\x6f\xd3\x30\x14\x85\xdf\xfd\x2b\x8e\x92\x17\x90\x4a\x32\xf6\xc0\x03\x3c\x85\xae\x13\xd1\x46\x32\x35\x19\x53\x85\xd0\xe4\x3a\xb7\xc9\x15\x89\x1d\xec\x1b\xb2\xfe\x7b\x94\x6e\x93\xa8\x10\x7e\xf4\xfd\x7c\xfc\xf9\x38\xc6\xda\x8d\x47\xcf\x6d\x27\xb8\xbc\x78\xff\x01\x75\x47\xb8\x99\xf6\xe4\x2d\x09\x05\x64\x93\x74\xce\x87\x44\xc5\x2a\xc6\x2d\x1b\xb2\x81\x1a\x4c\xb6\x21\x0f\xe9\x08\xd9\xa8\x4d\x47\xaf\x93\x15\xbe\x91\x0f\xec\x2c\x2e\x93\x0b\xbc\x59\x80\xe8\x65\x14\xbd\xfd\xa4\x62\x1c\xdd\x84\x41\x1f\x61\x9d\x60\x0a\x04\xe9\x38\xe0\xc0\x3d\x81\x9e\x0c\x8d\x02\xb6\x30\x6e\x18\x7b\xd6\xd6\x10\x66\x96\xee\x74\xcd\x4b\x48\xa2\x62\xec\x5e\x22\xdc\x5e\x34\x5b\x68\x18\x37\x1e\xe1\x0e\x7f\x73\xd0\x72\x12\x5e\x56\x27\x32\x7e\x4c\xd3\x79\x9e\x13\x7d\x92\x4d\x9c\x6f\xd3\xfe\x19\x0c\xe9\x6d\xbe\xde\x14\xd5\xe6\xdd\x65\x72\x71\x3a\x72\x6f\x7b\x0a\x01\x9e\x7e\x4d\xec\xa9\xc1\xfe\x08\x3d\x8e\x3d\x1b\xbd\xef\x09\xbd\x9e\xe1\x3c\x74\xeb\x89\x1a\x88\x5b\x7c\x67\xcf\xc2\xb6\x5d\x21\xb8\x83\xcc\xda\x93\x8a\xd1\x70\x10\xcf\xfb\x49\xce\xca\x7a\xb5\xe3\x70\x06\x38\x0b\x6d\x11\x65\x15\xf2\x2a\xc2\xe7\xac\xca\xab\x95\x8a\xf1\x90\xd7\x5f\xca\xfb\x1a\x0f\xd9\x76\x9b\x15\x75\xbe\xa9\x50\x6e\xb1\x2e\x8b\xab\xbc\xce\xcb\xa2\x42\x79\x8d\xac\xd8\xe1\x26\x2f\xae\x56\x20\x96\x8e\x3c\xe8\x69\xf4\x8b\xbf\xf3\xe0\xa5\x46\x6a\x96\xce\x2a\xa2\x33\x81\x83\x7b\x16\x0a\x23\x19\x3e\xb0\x41\xaf\x6d\x3b\xe9\x96\xd0\xba\xdf\xe4\x2d\xdb\x16\x23\xf9\x81\xc3\xf2\x99\x01\xda\x36\x2a\x46\xcf\x03\x8b\x96\xd3\xce\x3f\x8f\x4a\x94\xba\xde\x96\x5f\x11\x8c\xd7\x62\x3a\xa5\xd6\xe5\xdd\x0e\xa6\x23\xf3\xf3\x71\x20\xd1\x8d\x16\xfd\x68\x9c\x35\xa4\xfb\x81\xac\x20\x55\x6a\x53\xd4\xdb\xdd\x5d\x99\x17\x35\xbe\x47\xe9\xff\xd9\xe8\x87\xfa\x13\x00\x00\xff\xff\x3e\xaf\x22\x2c\xa8\x02\x00\x00") - -func testImagesMetadataConcealmentDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesMetadataConcealmentDockerfile, - "test/images/metadata-concealment/Dockerfile", - ) -} - -func testImagesMetadataConcealmentDockerfile() (*asset, error) { - bytes, err := testImagesMetadataConcealmentDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/metadata-concealment/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesMetadataConcealmentMakefile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x41\x6f\x9b\x40\x10\x85\xcf\xdd\x5f\xf1\x64\x72\xb0\x25\x07\xa7\x51\x95\x4a\xa9\xa2\x8a\xda\xae\x83\x92\x42\x05\x4e\xa2\x9c\xac\x05\xc6\x30\x2a\xec\xd2\xdd\xa5\xd8\xff\xbe\x5a\x27\x91\x1a\x95\xdb\xcc\xbc\x79\xf3\xf1\x36\xc0\x52\xf7\x47\xc3\x75\xe3\x70\x79\xf1\xf1\x0a\xdb\x86\x70\x37\x14\x64\x14\x39\xb2\x88\x06\xd7\x68\x63\x43\x11\x88\x00\xf7\x5c\x92\xb2\x54\x61\x50\x15\x19\xb8\x86\x10\xf5\xb2\x6c\xe8\x6d\x32\xc7\x23\x19\xcb\x5a\xe1\x32\xbc\xc0\xd4\x0b\x26\xaf\xa3\xc9\xec\x8b\x08\x70\xd4\x03\x3a\x79\x84\xd2\x0e\x83\x25\xb8\x86\x2d\xf6\xdc\x12\xe8\x50\x52\xef\xc0\x0a\xa5\xee\xfa\x96\xa5\x2a\x09\x23\xbb\xe6\x74\xe6\xd5\x24\x14\x01\x9e\x5f\x2d\x74\xe1\x24\x2b\x48\x94\xba\x3f\x42\xef\xff\xd5\x41\xba\x13\xb0\xff\x1a\xe7\xfa\xeb\xc5\x62\x1c\xc7\x50\x9e\x60\x43\x6d\xea\x45\xfb\x22\xb4\x8b\xfb\x78\xb9\x4e\xf2\xf5\xf9\x65\x78\x71\x5a\x79\x50\x2d\x59\x0b\x43\xbf\x07\x36\x54\xa1\x38\x42\xf6\x7d\xcb\xa5\x2c\x5a\x42\x2b\x47\x68\x03\x59\x1b\xa2\x0a\x4e\x7b\xde\xd1\xb0\x63\x55\xcf\x61\xf5\xde\x8d\xd2\x90\x08\x50\xb1\x75\x86\x8b\xc1\xbd\x0b\xeb\x8d\x8e\xed\x3b\x81\x56\x90\x0a\x93\x28\x47\x9c\x4f\xf0\x2d\xca\xe3\x7c\x2e\x02\x3c\xc5\xdb\xdb\xf4\x61\x8b\xa7\x28\xcb\xa2\x64\x1b\xaf\x73\xa4\x19\x96\x69\xb2\x8a\xb7\x71\x9a\xe4\x48\xbf\x23\x4a\x9e\x71\x17\x27\xab\x39\x88\x5d\x43\x06\x74\xe8\x8d\xe7\xd7\x06\xec\x63\xa4\xca\x67\x96\x13\xbd\x03\xd8\xeb\x17\x20\xdb\x53\xc9\x7b\x2e\xd1\x4a\x55\x0f\xb2\x26\xd4\xfa\x0f\x19\xc5\xaa\x46\x4f\xa6\x63\xeb\x1f\xd3\x42\xaa\x4a\x04\x68\xb9\x63\x27\xdd\xa9\xf3\xdf\x4f\x85\x42\xe4\xd9\x32\xbf\x29\x1b\x2a\x7f\xed\x3a\x72\xb2\x92\x4e\xee\x4a\xad\x4a\x92\x6d\x47\xca\x89\x34\xc7\xd7\x1b\xb4\xac\x86\x83\x88\xb2\xe5\xad\xaf\x64\x57\x5d\x7d\x12\xdb\x28\xdb\xac\xb7\xbe\x3e\x9b\x2e\x1f\xb2\x55\x9c\xcd\xc4\x26\x8d\xb2\x1f\xbe\xf5\x59\x6c\xd2\xfb\x28\xd9\xec\x1e\xd7\x59\x1e\xa7\xc9\xc9\x44\x3a\xb2\xce\x5f\xdc\xad\xe2\x0c\x7e\x4f\x69\x57\xb1\xc1\xd9\xd4\x36\xd4\xb6\xe8\xc7\x6a\x36\x13\x74\xe8\xb5\x71\x42\x14\xac\xae\xc5\x87\x30\x5c\x70\x27\x6b\x3a\x1f\x1c\xb7\xa1\x6d\x50\xb0\xc2\xd9\xd4\x73\xcf\x84\x08\x7f\xde\xa6\xc9\xf3\xb5\x6f\x8a\xbf\x01\x00\x00\xff\xff\xf0\x72\x29\x8b\x17\x03\x00\x00") - -func testImagesMetadataConcealmentMakefileBytes() ([]byte, error) { - return bindataRead( - _testImagesMetadataConcealmentMakefile, - "test/images/metadata-concealment/Makefile", - ) -} - -func testImagesMetadataConcealmentMakefile() (*asset, error) { - bytes, err := testImagesMetadataConcealmentMakefileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/metadata-concealment/Makefile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesMetadataConcealmentOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xc9\xcc\x2d\xe6\x02\x04\x00\x00\xff\xff\xe2\x68\x65\xd7\x14\x00\x00\x00") - -func testImagesMetadataConcealmentOwnersBytes() ([]byte, error) { - return bindataRead( - _testImagesMetadataConcealmentOwners, - "test/images/metadata-concealment/OWNERS", - ) -} - -func testImagesMetadataConcealmentOwners() (*asset, error) { - bytes, err := testImagesMetadataConcealmentOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/metadata-concealment/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesMetadataConcealmentVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe6\x02\x04\x00\x00\xff\xff\x1c\xa7\xbe\x4f\x04\x00\x00\x00") - -func testImagesMetadataConcealmentVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesMetadataConcealmentVersion, - "test/images/metadata-concealment/VERSION", - ) -} - -func testImagesMetadataConcealmentVersion() (*asset, error) { - bytes, err := testImagesMetadataConcealmentVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/metadata-concealment/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesMetadataConcealmentCheck_metadata_concealmentGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xbc\x58\x6d\x4f\xe3\xb8\x16\xfe\x5c\xff\x8a\x33\x91\xba\xb7\x5d\xa5\x49\x07\x66\xe0\x2e\xab\x6a\xd4\xe5\x65\xb7\x9a\x19\x18\x51\xd8\xb9\xab\xd5\x8a\x71\x93\x93\xc4\xc2\xb5\x83\xed\xb4\x54\x23\xfe\xfb\x95\xf3\x46\x29\xa5\x5b\x5a\x98\x0f\xd0\x36\x39\x7e\xce\x73\x5e\x7d\x6c\xff\x67\x72\x28\xd3\x99\x62\x71\x62\x60\xa7\xfb\x76\x1f\x2e\x12\x84\x8f\xd9\x08\x95\x40\x83\x1a\xfa\x99\x49\xa4\xd2\x1e\x21\x9f\x58\x80\x42\x63\x08\x99\x08\x51\x81\x49\x10\xfa\x29\x0d\x12\x84\xf2\x8d\x0b\x7f\xa2\xd2\x4c\x0a\xd8\xf1\xba\xd0\xb2\x02\x4e\xf9\xca\x69\xff\x4a\x66\x32\x83\x31\x9d\x81\x90\x06\x32\x8d\x60\x12\xa6\x21\x62\x1c\x01\x6f\x03\x4c\x0d\x30\x01\x81\x1c\xa7\x9c\x51\x11\x20\x4c\x99\x49\x72\x25\x25\x84\x47\xfe\x2a\x01\xe4\xc8\x50\x26\x80\x42\x20\xd3\x19\xc8\x68\x5e\x0a\xa8\x21\x04\x00\x20\x31\x26\x3d\xf0\xfd\xe9\x74\xea\xd1\x9c\xa5\x27\x55\xec\xf3\x42\x4a\xfb\x9f\x06\x87\xc7\xa7\xc3\xe3\xce\x8e\xd7\x25\xe4\x52\x70\xd4\x1a\x14\xde\x64\x4c\x61\x08\xa3\x19\xd0\x34\xe5\x2c\xa0\x23\x8e\xc0\xe9\x14\xa4\x02\x1a\x2b\xc4\x10\x8c\xb4\x3c\xa7\x8a\x19\x26\x62\x17\xb4\x8c\xcc\x94\x2a\x24\x21\xd3\x46\xb1\x51\x66\x1e\x38\xa8\x62\xc5\x34\xcc\x0b\x48\x01\x54\x80\xd3\x1f\xc2\x60\xe8\xc0\x6f\xfd\xe1\x60\xe8\x92\xaf\x83\x8b\x3f\xce\x2e\x2f\xe0\x6b\xff\xfc\xbc\x7f\x7a\x31\x38\x1e\xc2\xd9\x39\x1c\x9e\x9d\x1e\x0d\x2e\x06\x67\xa7\x43\x38\x3b\x81\xfe\xe9\x5f\xf0\x71\x70\x7a\xe4\x02\x32\x93\xa0\x02\xbc\x4d\x95\xe5\x2e\x15\x30\xeb\x3a\x0c\x3d\x32\x44\x7c\xa0\x3c\x92\x05\x19\x9d\x62\xc0\x22\x16\x00\xa7\x22\xce\x68\x8c\x10\xcb\x09\x2a\xc1\x44\x0c\x29\xaa\x31\xd3\x36\x78\x1a\xa8\x08\x09\x67\x63\x66\xa8\xc9\x7f\x3f\x32\xc7\x23\x3f\xfb\x84\xa4\x34\xb8\xb6\x20\x63\xca\x04\x21\x6c\x9c\x4a\x65\xa0\x45\x1a\x4e\x34\x36\x0e\x69\x38\x4c\xfa\x4c\x66\x86\x71\xfb\x83\xcb\xd8\x7e\x08\x34\xbe\x8d\x8c\xfd\x2e\xb5\xfd\xaf\x30\xc6\xdb\xd4\x21\x6d\x42\x26\x54\xd9\xf5\x3a\x0b\x02\xd4\xfa\x58\x84\xa9\x64\xc2\x68\xe8\xc1\xdf\xff\x58\xdf\x89\xf8\x3b\x69\x34\x7c\x1f\x8e\x98\x0e\x2c\xf3\x19\x69\x34\x9c\x32\xd0\x6f\xf7\x7e\xf1\x76\xde\xbf\xf3\xca\x4f\xc7\x9d\x7b\x37\x46\x43\x43\x6a\xa8\x17\x4b\x19\x73\xf4\x98\x30\xa8\x04\xe5\x0f\x84\x16\x00\xfc\xb5\x10\xd6\x94\xea\x7a\x6f\xd7\x16\x5c\x13\xd2\x56\x4a\x66\xf0\x73\xf9\x7e\xa3\x45\xfe\xa4\xa0\xe5\xfb\xd0\xe7\x5c\x4e\x31\x84\xfe\x97\x01\x4c\x8a\x2a\xd6\xde\x66\x90\x7e\x85\x39\x44\x35\x61\x01\x02\x0d\x02\x99\x09\x03\x46\x5e\xa3\x00\xac\xe2\xba\x29\x3c\x13\xda\xd8\x0e\xe1\xeb\x02\xbf\x53\xe2\x6b\x3f\xc4\x88\x66\xdc\xf8\xb9\xa2\x8a\xc5\x17\x9b\xd9\xc6\x56\x9d\xc2\x20\x53\x9a\x4d\x10\x6e\x32\x54\x33\x5b\xca\xc3\x7e\xcd\xe7\xf5\xe8\x7c\xa8\x15\xf7\x8c\xca\xb0\x22\xf6\x51\xc8\xa9\x28\xa9\xa4\x54\xd1\xf1\xf6\x1e\x31\x34\xd6\x1f\x28\x37\x3d\x83\xb7\x66\xd3\x94\x58\x80\x9b\x52\x66\xae\x22\xa9\xae\x82\x84\x8a\x18\x7b\x11\xe5\x1a\x5f\x09\xdb\xba\xe7\x27\xc3\xc6\x28\x33\x73\xa5\x31\xe8\x75\x5f\x53\x11\xa7\xda\x5c\xa1\xa1\x71\x2f\xdc\x7d\x17\x8e\x76\x77\x23\xab\xed\x8e\x34\x38\xc6\x34\x98\x0d\x37\xea\x43\x2b\x4b\xdb\xbe\xec\x6c\x53\xae\x23\x34\x74\xfb\x9a\x7d\x40\x65\xb3\x7e\x53\x71\x79\xd1\x62\x7f\xc8\xeb\xc9\x7a\xa2\x41\xbe\x4f\x6f\xc7\xfb\x99\x5d\x64\xc3\x62\x7d\x9e\x45\x1f\x74\x20\x53\xd4\x65\x16\x0a\x69\xc7\xb0\x63\x31\x59\x91\x81\x87\x09\x06\xd7\x60\x12\x6a\xec\xfe\xac\x11\x42\x29\xfe\x63\x20\x46\x03\x74\xae\xdf\x29\xd4\x19\xdf\xbe\xc3\xdd\x37\xb2\xe6\xee\x51\xd1\xca\x00\xc0\xf7\x21\x53\x1c\x45\x20\x43\x0c\x5f\x40\x45\xb3\xfb\xdf\x85\x7e\x69\x55\x8c\x68\x70\xad\x53\x1a\x58\x15\x77\xa4\x11\x51\xc6\x33\x85\x2b\x5c\x73\x96\xcf\x47\x1b\xd4\xc6\xce\xa6\x15\xb1\x53\x17\xc3\x75\x36\xc2\x0e\x8a\xc9\x06\x39\x42\x4d\x39\x25\x6a\xbf\x42\x79\xa1\x44\x7f\x41\xe4\x7f\x07\xf5\x7d\xf8\xf3\x33\xb0\x10\x85\x61\x66\xf6\x92\xb5\x52\x61\xbe\x76\xf9\x6f\xab\xe7\xb9\x2a\x7c\x1f\x4e\xa4\x1a\xb1\x30\x44\xb1\x30\xaa\x30\xdc\x7e\x34\x58\x36\x84\x6c\x07\xd8\xdc\xdf\x69\xee\xbd\x6f\xee\xed\x36\xf7\xdf\xdb\xef\xfb\xbb\xcd\xbd\x5f\x9a\xfb\x7b\xcd\xbd\xf7\x73\x75\x9b\x29\xde\xb9\xef\x0d\xbe\x0f\x97\xe2\x7a\xb1\x97\xc2\x35\xae\x97\x22\x2b\xf9\x68\x39\x46\x93\x30\x11\xf7\xf0\x45\x26\x94\x0f\x59\xc1\xb4\x8a\x4e\xde\x50\xb6\xa6\x39\x57\x30\xaf\x53\x86\x9e\xf7\x3a\x95\xfe\x28\x8b\x7f\x44\xa5\x78\xde\x7a\xd5\x73\x67\xcf\x8f\x51\x26\x82\xfc\x34\xda\x6a\xc3\xf7\xfa\x1c\x09\x07\x3d\xe8\x92\x46\x62\x3f\xc7\x34\xfd\xbb\xd8\x24\xfe\x99\xdf\x2d\x9c\x8a\x4c\xe7\x84\xd3\x89\x54\xce\x01\x7c\x77\x7e\xcf\x79\x3b\x77\xc5\x66\x6c\xcf\xd0\x57\x2e\xa0\x45\x51\x76\x84\x84\x47\xc7\x54\x8b\xc4\x22\x40\xa5\xac\x50\x60\x77\xe6\xcb\xf3\x4f\x2d\x74\x21\x71\x61\xa7\xdb\x75\xc1\x71\xec\x5f\xfb\xd7\x5c\xe6\x4d\x0f\x04\xe3\xf9\xaa\x06\x97\xb1\xf7\x45\x31\x61\xa2\x96\xf3\x55\x49\x11\xdb\x1d\x3b\x95\xd5\xe1\xbd\x39\x39\x80\xe6\xc4\x71\x01\x5d\xbb\xb4\x6d\x97\x54\xd6\xf5\xe0\x2d\x69\x58\x86\x4b\x49\x2e\x99\x21\x56\xd2\x7c\xd7\xdd\x2d\x69\xd6\x89\xf3\x23\xe9\x3e\xda\xd5\xd7\x24\xfb\x7a\x24\xab\xc3\x40\x45\xe9\xf8\x36\xc5\xc0\x60\x38\x34\xd4\x64\x79\x6e\xed\x74\xbb\x64\x19\xc7\x97\xaa\xe7\x90\x69\x3a\xe2\xd8\x29\x78\x74\xea\x89\xda\x99\xcb\xab\xb2\xdd\xd6\x7e\xe8\xdd\xfb\xc1\xf7\x61\x10\xc1\xb7\xa7\x50\xbe\x01\xd3\xa0\xd1\xce\xeb\x60\x51\xdc\x6a\xc3\xb1\x0f\x32\x11\x48\x11\x20\xe5\x18\x42\xb1\xf0\x7e\xa0\x87\x29\xe3\x1c\x14\x9a\x4c\x09\xa0\x36\x16\xb6\x35\xae\x74\x56\xcf\x4a\x3d\x11\xf9\x27\x8e\x5c\x2b\xe3\xbf\x4a\xd9\x0f\x48\x8c\xdb\x13\xa9\xa6\x54\x85\x18\x9e\x48\xf5\x07\xd2\x10\xd5\xaa\x1e\xf3\xbf\x4e\x2d\x6f\xbf\xe5\x3d\x66\x28\xc7\x38\x92\xe1\xac\x63\xf7\xae\x69\x82\xaa\xee\x37\x0f\x67\xfb\x4a\xff\xbd\xf7\x6d\xa5\x00\x8b\x60\x01\xd5\x46\x33\x55\xa8\x31\xbf\xcf\xd8\xaa\x69\x2d\x31\x6f\xeb\x92\x2b\x2e\x75\x17\x38\xaf\xd7\x2c\xa4\xf6\x8e\x6f\x99\x69\x95\xef\xda\xe4\x8e\x90\xca\x49\xba\xf0\x12\x85\xcb\xf3\x4f\xf7\xf7\xc6\x31\x9b\xa0\x80\x24\x67\xae\xcb\x4c\xd5\xf9\x9b\xe2\xb6\xdb\xce\x24\x1e\x29\xea\x03\xcb\xe4\xb9\x90\x87\x52\xe4\xb7\xcb\x4c\x83\x90\xa2\x83\xe3\xd4\xcc\xdc\xc2\x31\xba\x3e\x68\x81\x0d\x1a\x04\x85\xa8\x7e\xbc\x3a\x87\x1d\xb2\x31\xe3\x54\xf1\x99\x6b\x03\x75\x2f\x73\x2a\xcd\x33\x94\x84\x12\xb5\x3d\xd2\x95\xca\x96\xe2\x78\xc5\xd6\x57\x47\x2f\x53\x1c\x8a\xcc\x73\x4b\xfb\xf3\xeb\x70\xaf\x8a\x22\x3e\xac\x4b\x26\x8c\xfb\xd8\x06\x77\x39\xe5\x02\xb7\x6d\x63\x25\x95\x0d\x7b\xc0\x19\x0a\x63\xb3\xe7\xa7\x5c\xc9\x61\xfe\xfb\xfb\x1d\x69\x28\xbc\x71\xab\xcc\xca\x5f\x9d\xe2\xf4\x1c\x6f\x32\xd4\xa6\xe5\xfc\x7e\x7c\xe1\xb8\x76\x3a\x74\x6d\xfe\xb4\xeb\x16\x3a\x97\x4f\x65\x73\x41\xa5\xf2\x0c\x50\x78\x53\x5a\x00\xbd\xd2\x2c\xfb\x50\xa7\xb5\x92\x82\x8a\x77\x24\x5b\x0a\x6f\xd6\x81\x0c\x31\x42\x95\x27\xa9\xf7\x9b\x0c\x67\xde\x21\x97\x1a\x5b\xc5\xca\xfc\x69\xe1\xa1\x43\x19\xa2\x45\x59\xf0\xdb\x1c\x60\x34\x36\xde\xb1\xf5\x48\xd4\x72\x32\x51\xc9\xd5\xe9\x7f\x00\xb1\x34\xd0\x0c\x5d\x98\x52\x61\xbf\x38\xee\x22\xfe\x62\x54\xda\x39\x41\x9b\x02\xb5\x79\xc5\x6d\xba\x77\x8e\x34\xec\x73\xde\xaa\x69\xaf\x63\x29\x5b\x96\xe3\x6f\x7a\xe0\x38\xb9\xf4\x98\x9a\x20\xc1\xb0\x56\x55\xdc\xca\x7b\x9f\xed\xe3\xd6\x92\xd4\x18\x15\x6a\x97\xe8\x7d\xa0\xd8\x6a\xb6\x32\x6f\x4a\xfc\x07\x12\xf3\x3e\x2b\x52\x9d\x85\xf3\x99\xde\xbc\x29\xdd\x96\x77\x87\xc7\x1c\x8a\x4c\x6c\xe5\x54\xda\x75\x9f\x78\xaa\xd4\x9e\x6d\xeb\xfd\xda\x67\x9b\xbb\x96\xb5\x4c\x04\x52\x29\x0c\x0c\xaf\x3b\x09\x86\x4f\x19\x3d\x4f\x66\xb9\xdd\xa5\x1a\xc1\x38\xb9\x23\xff\x0f\x00\x00\xff\xff\x6b\xf2\x86\x74\xd6\x1b\x00\x00") - -func testImagesMetadataConcealmentCheck_metadata_concealmentGoBytes() ([]byte, error) { - return bindataRead( - _testImagesMetadataConcealmentCheck_metadata_concealmentGo, - "test/images/metadata-concealment/check_metadata_concealment.go", - ) -} - -func testImagesMetadataConcealmentCheck_metadata_concealmentGo() (*asset, error) { - bytes, err := testImagesMetadataConcealmentCheck_metadata_concealmentGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/metadata-concealment/check_metadata_concealment.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNautilusBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x0d\x72\x75\xf7\x0c\x0e\x09\x8a\xd4\x4f\x4c\xcf\xcb\xc8\x2f\x2e\xb1\x32\xd2\x33\x32\xd4\x05\xab\xd0\x05\xab\xe0\x82\xaa\x2e\xca\xc5\xaf\xb6\x28\x17\xa1\x92\x90\xb9\x20\x15\x50\xd5\x05\x05\xc9\x66\x26\x39\xa9\x78\xd5\x43\xd5\x40\x75\x14\x1b\x5b\x1a\x54\xe0\x55\x0f\x56\xc1\x55\x9e\x99\x97\x92\x5f\x5e\x0c\xf1\xa7\xbe\xa1\x85\x81\x25\x0e\x4d\x50\x85\x10\xef\xea\x82\x14\xa2\xeb\xb5\x34\x30\x26\x4e\xaf\xa5\x81\x31\xa6\x5e\x22\xed\xb5\x34\xb0\xe4\x02\x04\x00\x00\xff\xff\x3f\x6b\x27\xe4\x9a\x01\x00\x00") - -func testImagesNautilusBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesNautilusBaseimage, - "test/images/nautilus/BASEIMAGE", - ) -} - -func testImagesNautilusBaseimage() (*asset, error) { - bytes, err := testImagesNautilusBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/nautilus/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNautilusDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\xc1\x72\x9b\x30\x10\x86\xef\x7a\x8a\x7f\xa0\x87\x76\xc6\xc1\x69\x0e\x3d\xb4\x27\xea\x38\x29\x93\x04\x3a\xc6\x69\x26\xd3\xe9\x41\xc0\x1a\x36\x83\x25\x55\x5a\x42\xfc\xf6\x1d\x1c\xa7\xb5\xa7\x9c\x58\xed\xa7\xd5\xa7\x5f\x31\x16\xd6\xed\x3c\xb7\x9d\xe0\xe2\xfc\xe3\x27\xac\x3b\xc2\xcd\x50\x91\x37\x24\x14\x90\x0e\xd2\x59\x1f\x12\x15\xab\x18\xb7\x5c\x93\x09\xd4\x60\x30\x0d\x79\x48\x47\x48\x9d\xae\x3b\x7a\xeb\xcc\xf0\x83\x7c\x60\x6b\x70\x91\x9c\xe3\xfd\x04\x44\x87\x56\xf4\xe1\x8b\x8a\xb1\xb3\x03\xb6\x7a\x07\x63\x05\x43\x20\x48\xc7\x01\x1b\xee\x09\xf4\x52\x93\x13\xb0\x41\x6d\xb7\xae\x67\x6d\x6a\xc2\xc8\xd2\xed\x8f\x39\x0c\x49\x54\x8c\xc7\xc3\x08\x5b\x89\x66\x03\x8d\xda\xba\x1d\xec\xe6\x98\x83\x96\xbd\xf0\xf4\x75\x22\xee\xf3\x7c\x3e\x8e\x63\xa2\xf7\xb2\x89\xf5\xed\xbc\x7f\x05\xc3\xfc\x36\x5b\x2c\xf3\x72\x79\x76\x91\x9c\xef\xb7\xdc\x9b\x9e\x42\x80\xa7\xdf\x03\x7b\x6a\x50\xed\xa0\x9d\xeb\xb9\xd6\x55\x4f\xe8\xf5\x08\xeb\xa1\x5b\x4f\xd4\x40\xec\xe4\x3b\x7a\x16\x36\xed\x0c\xc1\x6e\x64\xd4\x9e\x54\x8c\x86\x83\x78\xae\x06\x39\x09\xeb\xcd\x8e\xc3\x09\x60\x0d\xb4\x41\x94\x96\xc8\xca\x08\x5f\xd3\x32\x2b\x67\x2a\xc6\x43\xb6\xfe\x56\xdc\xaf\xf1\x90\xae\x56\x69\xbe\xce\x96\x25\x8a\x15\x16\x45\x7e\x99\xad\xb3\x22\x2f\x51\x5c\x21\xcd\x1f\x71\x93\xe5\x97\x33\x10\x4b\x47\x1e\xf4\xe2\xfc\xe4\x6f\x3d\x78\x8a\x91\x9a\x29\xb3\x92\xe8\x44\x60\x63\x5f\x85\x82\xa3\x9a\x37\x5c\xa3\xd7\xa6\x1d\x74\x4b\x68\xed\x33\x79\xc3\xa6\x85\x23\xbf\xe5\x30\x3d\x66\x80\x36\x8d\x8a\xd1\xf3\x96\x45\xcb\x7e\xe5\xbf\x4b\x25\x4a\xa5\xab\xeb\xc9\x7e\x99\xdd\xa5\xd7\x4b\x75\xb5\x2a\xee\xf0\xee\x5f\xbd\x28\xbe\x3f\xa2\x93\x6d\x3f\x37\x7a\x10\xee\x87\x90\x3c\xb9\x16\xc7\xc5\x11\xd3\x68\xd1\xc9\x53\xb0\x06\x7f\xff\xd4\xe2\xee\x12\x3f\x23\xa1\x20\x67\x23\x55\x81\xfc\x33\xf9\xe8\x97\xfa\x13\x00\x00\xff\xff\x3d\xe3\xd5\x42\xc3\x02\x00\x00") - -func testImagesNautilusDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesNautilusDockerfile, - "test/images/nautilus/Dockerfile", - ) -} - -func testImagesNautilusDockerfile() (*asset, error) { - bytes, err := testImagesNautilusDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/nautilus/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNautilusOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xce\x49\x2c\x4d\xc9\x2c\x4d\x4a\xcd\x29\x05\xf3\x73\xb3\x4b\x73\x13\x4b\x12\xd3\xb9\x00\x01\x00\x00\xff\xff\xeb\x9e\xa3\x19\x28\x00\x00\x00") - -func testImagesNautilusOwnersBytes() ([]byte, error) { - return bindataRead( - _testImagesNautilusOwners, - "test/images/nautilus/OWNERS", - ) -} - -func testImagesNautilusOwners() (*asset, error) { - bytes, err := testImagesNautilusOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/nautilus/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNautilusVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe1\x02\x04\x00\x00\xff\xff\xdb\x31\xff\x00\x04\x00\x00\x00") - -func testImagesNautilusVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesNautilusVersion, - "test/images/nautilus/VERSION", - ) -} - -func testImagesNautilusVersion() (*asset, error) { - bytes, err := testImagesNautilusVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/nautilus/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNautilusHtmlDataJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xaa\xe6\x52\x50\x50\xca\xcc\x4d\x4c\x4f\x55\xb2\x52\x50\xca\x4b\x2c\x2d\xc9\xcc\x29\x2d\xd6\xcb\x2a\x48\x57\xe2\xaa\xe5\x02\x04\x00\x00\xff\xff\xbe\x2a\xe3\xd9\x1e\x00\x00\x00") - -func testImagesNautilusHtmlDataJsonBytes() ([]byte, error) { - return bindataRead( - _testImagesNautilusHtmlDataJson, - "test/images/nautilus/html/data.json", - ) -} - -func testImagesNautilusHtmlDataJson() (*asset, error) { - bytes, err := testImagesNautilusHtmlDataJsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/nautilus/html/data.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNodePerfNpbEpBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x4d\x49\x4d\xca\x4c\xcc\xb3\x2a\x2e\x29\x4a\x2d\x49\xce\xd0\x2d\xce\xc9\xcc\xe5\x82\xca\x17\xe5\x9a\x99\xd8\x82\xc9\x32\x0b\x7d\xdc\xea\x0a\x0a\x92\xcd\x4c\x72\x52\x6d\xa1\x34\x56\x95\x80\x00\x00\x00\xff\xff\x23\xf1\xf9\x99\x72\x00\x00\x00") - -func testImagesNodePerfNpbEpBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesNodePerfNpbEpBaseimage, - "test/images/node-perf/npb-ep/BASEIMAGE", - ) -} - -func testImagesNodePerfNpbEpBaseimage() (*asset, error) { - bytes, err := testImagesNodePerfNpbEpBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/node-perf/npb-ep/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNodePerfNpbEpDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x54\x6d\x6f\xd3\x48\x17\xfd\x3e\xbf\xe2\x3c\x09\xaa\x00\xd5\x36\x2f\x8f\x10\xa2\xea\x4a\x6e\x12\xc0\x22\x75\xb2\x76\x0a\xaa\x96\x55\x34\xb6\xaf\xed\x59\xec\x19\x33\x33\x6e\x12\x10\xff\x7d\x35\x4e\x1a\xb5\xdd\x7e\x20\x52\xa4\xf1\x7d\x3d\x73\xe7\x9c\x3b\xc6\x44\x75\x3b\x2d\xaa\xda\xe2\xd5\x8b\x97\x6f\xb1\xaa\x09\x9f\xfa\x8c\xb4\x24\x4b\x06\x61\x6f\x6b\xa5\x8d\xcf\xc6\x6c\x8c\xb9\xc8\x49\x1a\x2a\xd0\xcb\x82\x34\x6c\x4d\x08\x3b\x9e\xd7\x74\xeb\x39\xc5\x67\xd2\x46\x28\x89\x57\xfe\x0b\x3c\x75\x01\xa3\x83\x6b\xf4\xec\x8c\x8d\xb1\x53\x3d\x5a\xbe\x83\x54\x16\xbd\x21\xd8\x5a\x18\x94\xa2\x21\xd0\x36\xa7\xce\x42\x48\xe4\xaa\xed\x1a\xc1\x65\x4e\xd8\x08\x5b\x0f\x6d\x0e\x45\x7c\x36\xc6\xf5\xa1\x84\xca\x2c\x17\x12\x1c\xb9\xea\x76\x50\xe5\xdd\x38\x70\x3b\x00\x76\xbf\xda\xda\xee\x5d\x10\x6c\x36\x1b\x9f\x0f\x60\x7d\xa5\xab\xa0\xd9\x07\x9a\x60\x1e\x4d\x66\x71\x3a\xf3\x5e\xf9\x2f\x86\x94\x2b\xd9\x90\x31\xd0\xf4\xbd\x17\x9a\x0a\x64\x3b\xf0\xae\x6b\x44\xce\xb3\x86\xd0\xf0\x0d\x94\x06\xaf\x34\x51\x01\xab\x1c\xde\x8d\x16\x56\xc8\xea\x14\x46\x95\x76\xc3\x35\xb1\x31\x0a\x61\xac\x16\x59\x6f\xef\x0d\xeb\x16\x9d\x30\xf7\x02\x94\x04\x97\x18\x85\x29\xa2\x74\x84\x8b\x30\x8d\xd2\x53\x36\xc6\x97\x68\xf5\x71\x71\xb5\xc2\x97\x30\x49\xc2\x78\x15\xcd\x52\x2c\x12\x4c\x16\xf1\x34\x5a\x45\x8b\x38\xc5\xe2\x3d\xc2\xf8\x1a\x9f\xa2\x78\x7a\x0a\x12\xb6\x26\x0d\xda\x76\xda\xe1\x57\x1a\xc2\x8d\x91\x0a\x37\xb3\x94\xe8\x1e\x80\x52\xed\x01\x99\x8e\x72\x51\x8a\x1c\x0d\x97\x55\xcf\x2b\x42\xa5\x6e\x48\x4b\x21\x2b\x74\xa4\x5b\x61\xdc\x63\x1a\x70\x59\xb0\x31\x1a\xd1\x0a\xcb\xed\x60\xf9\xcf\xa5\x7c\xc6\xc2\xe4\x83\x43\x3f\x8b\x2e\xc3\x0f\x33\xf6\x3e\x59\x5c\xe2\xc9\xf1\x1b\xdc\x20\xeb\x45\x53\xac\xa5\x2a\x68\xdd\x91\x2e\xd7\xb2\xcb\xd6\xd4\x31\x36\x49\x16\x69\xba\xbe\xb8\x8a\xe6\xd3\xf5\x64\xb1\xbc\xc6\x77\x6a\x7b\xef\xcf\xd9\xe5\x55\x98\x4c\x3e\x7a\xc6\x35\xcd\x11\xf4\x46\x07\x99\x90\x01\x63\xc9\x55\x0c\xde\x59\xaf\x22\x8b\xbe\x2b\xb8\x25\x9c\x9c\x1c\x2d\x42\x1a\xcb\x9b\x06\xde\x6e\xdf\xd1\x23\x63\x48\x5a\xc1\x1b\x54\xa5\xd2\x56\x73\xc9\x58\x38\x9d\xde\xa5\x86\xe4\xc6\xfd\xb9\x5f\xa9\x9b\x80\x1b\x43\xd6\x04\xb2\xcb\x82\x78\x79\xf1\xda\x7f\xed\xbf\xf4\x2d\xd7\x7e\xf5\x03\xfe\xd0\xdb\x72\x8d\xed\x8f\x12\x0f\xbc\x8c\x7d\x59\x24\x9f\xa6\x51\x02\xff\x98\x78\x38\x78\x8b\xcb\xe5\x90\x2a\x4a\xfc\x85\x27\x4f\xb9\xce\xeb\x67\xf8\xdf\x39\x46\xdb\xb7\x6f\xd6\x6f\xfe\x3f\xc2\xdf\x67\x6e\x9c\x12\x5f\x99\x63\xad\x53\x99\x09\xbc\x36\x6f\x55\x41\xcd\x79\x4b\x85\xe8\xdb\x20\xa8\x90\x2b\x59\x8a\x2a\x88\xc3\xd4\x37\xbc\xed\x1a\x32\x41\xcb\xbf\x91\x5f\x50\xe9\x57\x79\xbe\xde\xbe\x7d\x83\x3f\x6e\xa3\x6e\x3d\x67\xf8\xca\xa8\x31\x74\x28\x9e\x77\xbf\x55\xe6\x91\x22\xa5\x18\x2e\xe1\x4c\x98\x2d\x31\x99\x87\x69\x7a\x3e\x65\x6c\xbf\x46\x1c\x6d\x1c\x25\x8e\xe2\x69\x44\xa6\xb9\x16\x64\xf0\xd4\xd4\xdc\x59\x54\xf6\x0f\xe5\x76\x90\xbc\x79\xe6\x04\xe4\xf4\x2b\x6f\x48\x0a\x92\x16\x8d\xca\x07\x7e\xc1\x28\xd8\x9a\x5b\x08\x8b\x9c\x4b\x64\xe4\x54\x2e\xa8\x80\x90\xd6\xb9\x9c\xc6\x5a\x3e\x2c\x0b\xe9\xd6\x00\x69\xa7\xc4\x81\xd2\x94\x2b\x59\xec\x1f\x1e\xc6\xf2\x8a\xf6\x4f\xd6\x7e\x2b\x84\x86\xd7\x21\x68\x44\xe6\x0d\x3b\xe3\xe4\x04\xa5\x90\xc5\x9e\x58\x8d\xc8\xe0\x49\xde\x12\x46\xcf\x7d\xa3\xfc\xe7\x23\x78\xb4\xa5\xdc\x0d\xeb\xe7\xaf\x3b\x59\x5f\xcf\xd8\x43\x6e\x33\x36\xb0\xd6\xf3\x4a\xad\xda\xf3\xc7\x59\x8e\xc7\x18\x31\xd0\x99\x3a\x7f\xea\x6f\x11\xfc\x56\x91\x23\x8c\xe3\x89\xcd\xe2\xcf\x98\x4f\xd7\xf3\xe8\x22\x09\x93\xeb\xf5\x32\x5c\x7d\x3c\x1f\x3d\xf9\xf9\xc0\xf4\xeb\xdd\x31\x63\xc4\xd8\x2c\x5e\x25\xd7\xcb\x45\x14\xaf\x70\xe8\xcf\xfe\x0d\x00\x00\xff\xff\xc8\xdd\xe0\xa9\x0a\x06\x00\x00") - -func testImagesNodePerfNpbEpDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesNodePerfNpbEpDockerfile, - "test/images/node-perf/npb-ep/Dockerfile", - ) -} - -func testImagesNodePerfNpbEpDockerfile() (*asset, error) { - bytes, err := testImagesNodePerfNpbEpDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/node-perf/npb-ep/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNodePerfNpbEpVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe4\x02\x04\x00\x00\xff\xff\x9e\xc5\x88\x7d\x04\x00\x00\x00") - -func testImagesNodePerfNpbEpVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesNodePerfNpbEpVersion, - "test/images/node-perf/npb-ep/VERSION", - ) -} - -func testImagesNodePerfNpbEpVersion() (*asset, error) { - bytes, err := testImagesNodePerfNpbEpVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/node-perf/npb-ep/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNodePerfNpbIsBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x4d\x49\x4d\xca\x4c\xcc\xb3\x2a\x2e\x29\x4a\x2d\x49\xce\xd0\x2d\xce\xc9\xcc\xe5\x82\xca\x17\xe5\x9a\x99\xd8\x82\xc9\x32\x0b\x7d\xdc\xea\x0a\x0a\x92\xcd\x4c\x72\x52\x6d\xa1\x34\x56\x95\x80\x00\x00\x00\xff\xff\x23\xf1\xf9\x99\x72\x00\x00\x00") - -func testImagesNodePerfNpbIsBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesNodePerfNpbIsBaseimage, - "test/images/node-perf/npb-is/BASEIMAGE", - ) -} - -func testImagesNodePerfNpbIsBaseimage() (*asset, error) { - bytes, err := testImagesNodePerfNpbIsBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/node-perf/npb-is/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNodePerfNpbIsDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x54\x6d\x6f\xdb\x38\x13\xfc\xce\x5f\x31\x8f\x5d\x04\x6d\x11\x49\x7d\x79\x50\x14\x0d\x72\x80\x62\xbb\xad\x50\x47\xce\x49\x4e\x8b\xe0\x72\x30\x28\x69\x25\xf1\x22\x91\x2a\x49\xc5\x76\x8b\xfe\xf7\x03\x65\xc7\x48\x72\xf9\x50\x03\x06\xe8\xdd\xe5\xee\x70\x3c\xb3\x63\x4c\x54\xb7\xd5\xa2\xaa\x2d\xde\xbc\x7a\xfd\x1e\xcb\x9a\xf0\xa5\xcf\x48\x4b\xb2\x64\x10\xf6\xb6\x56\xda\xf8\x6c\xcc\xc6\x98\x8b\x9c\xa4\xa1\x02\xbd\x2c\x48\xc3\xd6\x84\xb0\xe3\x79\x4d\x77\x99\x63\x7c\x25\x6d\x84\x92\x78\xe3\xbf\xc2\x73\x57\x30\xda\xa7\x46\x2f\x4e\xd8\x18\x5b\xd5\xa3\xe5\x5b\x48\x65\xd1\x1b\x82\xad\x85\x41\x29\x1a\x02\x6d\x72\xea\x2c\x84\x44\xae\xda\xae\x11\x5c\xe6\x84\xb5\xb0\xf5\x30\x66\xdf\xc4\x67\x63\x5c\xed\x5b\xa8\xcc\x72\x21\xc1\x91\xab\x6e\x0b\x55\xde\xaf\x03\xb7\x03\x60\xf7\xa9\xad\xed\x3e\x04\xc1\x7a\xbd\xf6\xf9\x00\xd6\x57\xba\x0a\x9a\x5d\xa1\x09\xe6\xd1\x64\x16\xa7\x33\xef\x8d\xff\x6a\xb8\x72\x29\x1b\x32\x06\x9a\xbe\xf7\x42\x53\x81\x6c\x0b\xde\x75\x8d\xc8\x79\xd6\x10\x1a\xbe\x86\xd2\xe0\x95\x26\x2a\x60\x95\xc3\xbb\xd6\xc2\x0a\x59\x1d\xc3\xa8\xd2\xae\xb9\x26\x36\x46\x21\x8c\xd5\x22\xeb\xed\x03\xb2\xee\xd0\x09\xf3\xa0\x40\x49\x70\x89\x51\x98\x22\x4a\x47\x38\x0b\xd3\x28\x3d\x66\x63\x7c\x8b\x96\x9f\x17\x97\x4b\x7c\x0b\x93\x24\x8c\x97\xd1\x2c\xc5\x22\xc1\x64\x11\x4f\xa3\x65\xb4\x88\x53\x2c\x3e\x22\x8c\xaf\xf0\x25\x8a\xa7\xc7\x20\x61\x6b\xd2\xa0\x4d\xa7\x1d\x7e\xa5\x21\x1c\x8d\x54\x38\xce\x52\xa2\x07\x00\x4a\xb5\x03\x64\x3a\xca\x45\x29\x72\x34\x5c\x56\x3d\xaf\x08\x95\xba\x25\x2d\x85\xac\xd0\x91\x6e\x85\x71\x7f\xa6\x01\x97\x05\x1b\xa3\x11\xad\xb0\xdc\x0e\x91\xff\x3c\xca\x67\x2c\x4c\x3e\x39\xf4\xb3\xe8\x3c\xfc\x34\x63\x1f\x93\xc5\x39\x9e\x1d\x7e\x83\x1b\x64\xbd\x68\x8a\x95\x54\x05\xad\x3a\xd2\xe5\x4a\x76\xd9\x4a\x18\xc6\x26\xc9\x22\x4d\x57\x67\x97\xd1\x7c\xba\x9a\x2c\x2e\xae\xf0\x9d\xda\xde\xfb\x73\x76\x7e\x19\x26\x93\xcf\x9e\x71\x43\x73\x04\xbd\xd1\x41\x26\x64\xc0\x58\x72\x19\x83\x77\xd6\xab\xc8\xa2\xef\x0a\x6e\x09\x47\x47\x87\x88\x90\xc6\xf2\xa6\x81\xb7\xdd\x4d\xf4\xc8\x18\x92\x56\xf0\x06\x55\xa9\xb4\xd5\x5c\x32\x16\x4e\xa7\xf7\xa5\x21\xb9\x71\x5f\xee\x57\xea\x36\xe0\xc6\x90\x35\x81\xec\xb2\x20\xbe\x38\x7b\xeb\xbf\xf5\x5f\xfb\x96\x6b\xbf\xfa\x01\x7f\x98\x6d\xb9\xc6\xe6\x47\x89\x47\x59\xc6\xbe\x2d\x92\x2f\xd3\x28\x81\x7f\xb8\xb8\x3f\x78\x8b\xf3\x0b\xc6\xc6\x98\x68\x72\x68\x07\x5c\xc8\x95\x2c\x45\x85\x8c\x9b\x9d\x0a\x1c\x9d\x5c\xe7\xb5\xb0\x94\xdb\x5e\x93\xe3\x7d\x5f\xea\x52\x6b\xa5\x6f\x1a\xc5\x8b\x1d\x06\x51\xe2\x2f\x3c\x7b\xee\xea\x5f\xe0\x7f\xa7\x18\x6d\xde\xbf\x5b\xbd\xfb\xff\x08\x7f\x9f\xb8\x6a\x89\x6b\xe6\xe4\xef\x5a\x9b\xc0\x6b\xf3\x56\x15\xd4\x9c\xb6\x54\x88\xbe\x0d\x82\x6a\x3f\x3c\x88\xc3\xd4\x37\xbc\xed\x1a\x32\x41\xcb\x6f\xc8\x2f\xa8\xf4\xab\x3c\x5f\x6d\xde\xbf\xc3\x1f\x77\x55\x77\x99\x13\x5c\x33\x6a\x0c\xed\x9b\xe7\xdd\x6f\xb5\x79\xa2\x49\x29\x86\x47\xb8\x10\xa2\x14\x93\x79\x98\xa6\xa7\xd3\x81\x21\xd5\x6d\x9d\xfe\xdc\x8b\x0f\x2e\x6c\x44\xa6\xb9\x16\x64\xf0\xdc\xd4\xdc\x45\x54\xf6\x0f\xe5\x76\xd8\x1d\xe6\x85\x73\xa2\x5b\x04\xf2\x96\xa4\x20\x69\xd1\xa8\x7c\x10\x2a\x8c\x82\xad\xb9\x85\xb0\xc8\xb9\x44\x46\x6e\x5d\x08\x2a\x20\xa4\x75\x29\x67\xd6\x96\x0f\x5b\x47\xba\x7d\x42\xda\x59\x7a\xf0\x06\xe5\xea\x40\xbf\xb1\xbc\xa2\x1d\xef\xed\x4d\x21\x34\xbc\x0e\x41\x23\x32\x6f\x58\x3e\x47\x47\x28\x85\x2c\x76\x0a\x6d\x44\x06\x4f\xf2\x96\x30\x7a\xe9\x1b\xe5\xbf\x1c\xc1\xa3\x0d\xe5\x8e\xac\x9f\xbf\xee\xdd\xba\x3e\x61\x8f\x4d\xc2\xd8\x20\x7f\xcf\x2b\xb5\x6a\x4f\x9f\xb6\x0b\x9e\x92\xd6\xe0\x0b\x61\xfc\xa9\xbf\x41\xf0\x5b\x4d\x0e\x30\x0e\x27\x36\x8b\xbf\x62\x3e\x5d\xcd\xa3\xb3\x24\x4c\xae\x56\x17\xe1\xf2\xf3\xe9\xe8\xd9\xcf\x47\xa1\x5f\x1f\x0e\x37\x46\x8c\xcd\xe2\x65\x72\x75\xb1\x88\xe2\x25\xf6\xf3\xd9\xbf\x01\x00\x00\xff\xff\xde\x2a\x2d\x70\x53\x06\x00\x00") - -func testImagesNodePerfNpbIsDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesNodePerfNpbIsDockerfile, - "test/images/node-perf/npb-is/Dockerfile", - ) -} - -func testImagesNodePerfNpbIsDockerfile() (*asset, error) { - bytes, err := testImagesNodePerfNpbIsDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/node-perf/npb-is/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNodePerfNpbIsVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe4\x02\x04\x00\x00\xff\xff\x9e\xc5\x88\x7d\x04\x00\x00\x00") - -func testImagesNodePerfNpbIsVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesNodePerfNpbIsVersion, - "test/images/node-perf/npb-is/VERSION", - ) -} - -func testImagesNodePerfNpbIsVersion() (*asset, error) { - bytes, err := testImagesNodePerfNpbIsVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/node-perf/npb-is/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNodePerfTfWideDeepBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x2d\xa8\x2c\xc9\xc8\xcf\xb3\x32\xd6\x33\xd3\x2d\xce\xc9\xcc\xd5\x2d\x2e\x29\x4a\x2d\x49\xce\xe0\x82\xaa\x29\xca\x35\x33\xb1\x05\x93\x65\x16\xfa\xb8\xd4\x02\x02\x00\x00\xff\xff\xea\xf7\x16\x80\x50\x00\x00\x00") - -func testImagesNodePerfTfWideDeepBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesNodePerfTfWideDeepBaseimage, - "test/images/node-perf/tf-wide-deep/BASEIMAGE", - ) -} - -func testImagesNodePerfTfWideDeepBaseimage() (*asset, error) { - bytes, err := testImagesNodePerfTfWideDeepBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/node-perf/tf-wide-deep/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNodePerfTfWideDeepDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x92\x51\x6f\x9c\x38\x14\x85\xdf\xfd\x2b\x8e\x32\x51\xd4\xac\x02\xa4\xd1\x6a\xb5\x9b\x3c\xd1\x09\xed\xa0\x24\x90\x05\xa6\xd1\x48\x95\x22\x0f\x5c\xc0\x12\xd8\xae\x6d\x42\xe8\xaf\x5f\x31\x99\x64\x36\xdb\x4a\xcb\x93\xaf\xef\x39\x87\xcf\xd7\x5e\x60\xa9\xf4\x64\x44\xd3\x3a\x5c\x9c\x7f\xfc\x13\x45\x4b\xb8\x19\xb6\x64\x24\x39\xb2\x08\x07\xd7\x2a\x63\x7d\xb6\x60\x0b\xdc\x8a\x92\xa4\xa5\x0a\x83\xac\xc8\xc0\xb5\x84\x50\xf3\xb2\xa5\xd7\xce\x19\xbe\x92\xb1\x42\x49\x5c\xf8\xe7\xf8\x30\x0b\x8e\xf6\xad\xa3\xd3\x2b\xb6\xc0\xa4\x06\xf4\x7c\x82\x54\x0e\x83\x25\xb8\x56\x58\xd4\xa2\x23\xd0\x73\x49\xda\x41\x48\x94\xaa\xd7\x9d\xe0\xb2\x24\x8c\xc2\xb5\xbb\xdf\xec\x43\x7c\xb6\xc0\x66\x1f\xa1\xb6\x8e\x0b\x09\x8e\x52\xe9\x09\xaa\xfe\xb7\x0e\xdc\xed\x80\xe7\xaf\x75\x4e\x5f\x06\xc1\x38\x8e\x3e\xdf\xc1\xfa\xca\x34\x41\xf7\x22\xb4\xc1\x6d\xbc\x8c\x92\x3c\xf2\x2e\xfc\xf3\x9d\x65\x2d\x3b\xb2\x16\x86\xbe\x0f\xc2\x50\x85\xed\x04\xae\x75\x27\x4a\xbe\xed\x08\x1d\x1f\xa1\x0c\x78\x63\x88\x2a\x38\x35\xf3\x8e\x46\x38\x21\x9b\x33\x58\x55\xbb\x91\x1b\x62\x0b\x54\xc2\x3a\x23\xb6\x83\x7b\x37\xac\x57\x3a\x61\xdf\x09\x94\x04\x97\x38\x0a\x73\xc4\xf9\x11\x3e\x85\x79\x9c\x9f\xb1\x05\x1e\xe2\x62\x95\xae\x0b\x3c\x84\x59\x16\x26\x45\x1c\xe5\x48\x33\x2c\xd3\xe4\x3a\x2e\xe2\x34\xc9\x91\x7e\x46\x98\x6c\x70\x13\x27\xd7\x67\x20\xe1\x5a\x32\xa0\x67\x6d\x66\x7e\x65\x20\xe6\x31\x52\x35\xcf\x2c\x27\x7a\x07\x50\xab\x17\x20\xab\xa9\x14\xb5\x28\xd1\x71\xd9\x0c\xbc\x21\x34\xea\x89\x8c\x14\xb2\x81\x26\xd3\x0b\x3b\x5f\xa6\x05\x97\x15\x5b\xa0\x13\xbd\x70\xdc\xed\x76\x7e\x3a\x94\xcf\x58\x98\x7d\x99\xe9\xa3\xf8\x2e\xfc\x12\xb1\xcf\x59\x7a\x87\xe3\x43\xcd\x96\x59\x9a\xe7\x8f\x9f\xd6\xf1\xed\xf5\xe3\x32\xbd\xdf\xe0\x3b\xf5\x83\xf7\x77\x74\xb7\x0e\xb3\xe5\xca\xb3\x73\x74\x89\x60\xb0\x26\xd8\x0a\x19\x30\x96\xad\x13\x70\xed\xbc\x86\x1c\x06\x5d\x71\x47\x38\x39\x79\xdb\x11\xd2\x3a\xde\x75\xf0\x26\x8c\x73\xed\x44\x4f\x2f\x9e\x92\x5b\xc2\xf1\x87\x41\xf2\x9e\xe0\xf5\xa7\xf3\x25\x7d\x63\xf3\x5b\xe0\xdc\x94\xed\x1f\xbf\x9f\xee\x4b\x40\x0b\xfd\x16\xe4\x48\x5a\x65\xea\x4e\x8d\xde\x5e\x77\xf5\xa6\xbb\x7a\x5d\xfe\xf6\x7f\xde\x5f\x78\xc8\xf2\xf2\x85\x6c\x07\x3a\x3f\x48\x7b\x19\x04\x8d\x70\xed\xb0\xf5\x4b\xd5\x07\x07\x7b\xd0\xab\x8a\x3a\x1b\xcc\x00\xe2\x89\x82\xa7\x8f\xfe\x5f\xfe\xb9\xef\xb8\xf1\x9b\x1f\xf8\xc6\x4e\x4e\xe0\xb8\xc1\xf3\x8f\x1a\xbf\x68\x99\x1e\xde\x7f\x1a\x8c\x3d\xa4\xd9\xcd\x75\x9c\xe1\x78\x95\xde\x45\xfb\x7c\x6f\x27\x09\x54\x5d\x8b\x52\xf0\x2e\x18\x45\x45\x8f\x15\x91\x66\x51\xf2\x15\xf7\x9b\x62\x95\x26\xf7\x61\xb1\xc2\xf1\x61\x7d\xf9\x73\x00\x63\x51\x52\x64\x9b\xfb\x34\x4e\x0a\xe8\xc9\xb5\x4a\xc2\x3f\x84\xf9\x7a\x62\xff\x04\x00\x00\xff\xff\xcb\x15\x24\x20\x61\x04\x00\x00") - -func testImagesNodePerfTfWideDeepDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesNodePerfTfWideDeepDockerfile, - "test/images/node-perf/tf-wide-deep/Dockerfile", - ) -} - -func testImagesNodePerfTfWideDeepDockerfile() (*asset, error) { - bytes, err := testImagesNodePerfTfWideDeepDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/node-perf/tf-wide-deep/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNodePerfTfWideDeepVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe4\x02\x04\x00\x00\xff\xff\x9e\xc5\x88\x7d\x04\x00\x00\x00") - -func testImagesNodePerfTfWideDeepVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesNodePerfTfWideDeepVersion, - "test/images/node-perf/tf-wide-deep/VERSION", - ) -} - -func testImagesNodePerfTfWideDeepVersion() (*asset, error) { - bytes, err := testImagesNodePerfTfWideDeepVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/node-perf/tf-wide-deep/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNonewprivsGitignore = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xcb\x2b\xe0\x02\x04\x00\x00\xff\xff\xee\x29\x1e\x77\x04\x00\x00\x00") - -func testImagesNonewprivsGitignoreBytes() ([]byte, error) { - return bindataRead( - _testImagesNonewprivsGitignore, - "test/images/nonewprivs/.gitignore", - ) -} - -func testImagesNonewprivsGitignore() (*asset, error) { - bytes, err := testImagesNonewprivsGitignoreBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/nonewprivs/.gitignore", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNonewprivsBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x4d\xcc\x29\xc8\xcc\x4b\xb5\x32\xd6\x33\xe3\x82\x0a\x17\xe5\xda\x26\x16\xe5\x1a\x1b\x95\x99\xe9\x63\x93\x04\xe9\x01\x91\x65\x16\x98\xd2\x05\x05\xc9\x66\x26\x39\xa9\xb6\x50\x1a\x59\x01\x20\x00\x00\xff\xff\xeb\x4c\x33\x25\x74\x00\x00\x00") - -func testImagesNonewprivsBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesNonewprivsBaseimage, - "test/images/nonewprivs/BASEIMAGE", - ) -} - -func testImagesNonewprivsBaseimage() (*asset, error) { - bytes, err := testImagesNonewprivsBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/nonewprivs/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNonewprivsDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x91\x51\x6f\x9b\x3e\x14\xc5\xdf\xfd\x29\x8e\xc2\xff\xe1\x3f\x2d\x85\xae\x2f\x93\xb6\x27\x4a\xd2\x16\xb5\x81\x0d\x92\x55\xd5\x34\x55\x0e\xdc\xc0\x95\xc0\x76\x6d\x33\x9a\x6f\x3f\x41\x5b\x6d\xd1\xe6\x37\xdf\x73\x7c\xfc\xf3\x71\x80\x44\x9b\xa3\xe5\xa6\xf5\xb8\x38\xff\xf0\x11\xdb\x96\x70\x3b\xec\xc9\x2a\xf2\xe4\x10\x0f\xbe\xd5\xd6\x85\x22\x10\x01\xee\xb8\x22\xe5\xa8\xc6\xa0\x6a\xb2\xf0\x2d\x21\x36\xb2\x6a\xe9\x4d\x59\xe2\x1b\x59\xc7\x5a\xe1\x22\x3c\xc7\xff\x93\x61\xf1\x2a\x2d\xde\x7d\x16\x01\x8e\x7a\x40\x2f\x8f\x50\xda\x63\x70\x04\xdf\xb2\xc3\x81\x3b\x02\x3d\x57\x64\x3c\x58\xa1\xd2\xbd\xe9\x58\xaa\x8a\x30\xb2\x6f\xe7\x6b\x5e\x43\x42\x11\xe0\xe1\x35\x42\xef\xbd\x64\x05\x89\x4a\x9b\x23\xf4\xe1\x4f\x1f\xa4\x9f\x81\xa7\xd5\x7a\x6f\x3e\x45\xd1\x38\x8e\xa1\x9c\x61\x43\x6d\x9b\xa8\x7b\x31\xba\xe8\x2e\x4d\xd6\x59\xb9\x3e\xbb\x08\xcf\xe7\x23\x3b\xd5\x91\x73\xb0\xf4\x34\xb0\xa5\x1a\xfb\x23\xa4\x31\x1d\x57\x72\xdf\x11\x3a\x39\x42\x5b\xc8\xc6\x12\xd5\xf0\x7a\xe2\x1d\x2d\x7b\x56\xcd\x12\x4e\x1f\xfc\x28\x2d\x89\x00\x35\x3b\x6f\x79\x3f\xf8\x93\xb2\xde\xe8\xd8\x9d\x18\xb4\x82\x54\x58\xc4\x25\xd2\x72\x81\xcb\xb8\x4c\xcb\xa5\x08\x70\x9f\x6e\x6f\xf2\xdd\x16\xf7\x71\x51\xc4\xd9\x36\x5d\x97\xc8\x0b\x24\x79\xb6\x4a\xb7\x69\x9e\x95\xc8\xaf\x10\x67\x0f\xb8\x4d\xb3\xd5\x12\xc4\xbe\x25\x0b\x7a\x36\x76\xe2\xd7\x16\x3c\xd5\x48\xf5\xd4\x59\x49\x74\x02\x70\xd0\x2f\x40\xce\x50\xc5\x07\xae\xd0\x49\xd5\x0c\xb2\x21\x34\xfa\x27\x59\xc5\xaa\x81\x21\xdb\xb3\x9b\x3e\xd3\x41\xaa\x5a\x04\xe8\xb8\x67\x2f\xfd\x3c\xf9\xeb\x51\xa1\x10\x71\x71\x3d\xd1\xaf\xd3\x4d\x7c\xbd\x16\x57\x45\xbe\xc1\x7f\xbf\xf7\x22\x29\xf2\xb2\x7c\xbc\xdc\xa5\x77\xab\xc7\x24\xff\xf2\x80\x27\xea\x87\xb3\xaf\xeb\xcd\x2e\x2e\x92\x9b\x33\x37\x45\x57\x88\x06\x67\xa3\x3d\xab\x48\x88\xd9\xa4\x94\x79\x99\x75\xba\x92\xdd\xac\x28\x65\x44\xb1\xcb\x50\xb5\xbd\xae\xf1\xde\xfd\x4b\x17\xc9\x66\x85\xef\x0b\xa5\xcc\xe2\x87\xf8\x15\x00\x00\xff\xff\x6f\x34\x51\x3e\xe5\x02\x00\x00") - -func testImagesNonewprivsDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesNonewprivsDockerfile, - "test/images/nonewprivs/Dockerfile", - ) -} - -func testImagesNonewprivsDockerfile() (*asset, error) { - bytes, err := testImagesNonewprivsDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/nonewprivs/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNonewprivsMakefile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x51\x6b\xdb\x3e\x14\xc5\x9f\xff\xfa\x14\x87\xb8\x0f\x09\xa4\x4e\xff\x65\xac\xd0\x51\x86\x97\x64\xa9\x69\x67\x0f\x3b\x6d\xe9\x53\x91\xed\x1b\xfb\x82\x23\x69\x92\x3c\x27\xdf\x7e\x28\x6d\x61\x65\x7a\xbb\xf7\x9e\x7b\xf4\xd3\x51\x84\xa5\x36\x47\xcb\x6d\xe7\x71\x79\xf1\xff\x15\xb6\x1d\xe1\x6e\xa8\xc8\x2a\xf2\xe4\x90\x0c\xbe\xd3\xd6\xc5\x22\x12\x11\xee\xb9\x26\xe5\xa8\xc1\xa0\x1a\xb2\xf0\x1d\x21\x31\xb2\xee\xe8\x7d\x32\xc7\x23\x59\xc7\x5a\xe1\x32\xbe\xc0\x34\x08\x26\x6f\xa3\xc9\xec\x8b\x88\x70\xd4\x03\xf6\xf2\x08\xa5\x3d\x06\x47\xf0\x1d\x3b\xec\xb8\x27\xd0\xa1\x26\xe3\xc1\x0a\xb5\xde\x9b\x9e\xa5\xaa\x09\x23\xfb\xee\x74\xcd\x9b\x49\x2c\x22\x3c\xbf\x59\xe8\xca\x4b\x56\x90\xa8\xb5\x39\x42\xef\xfe\xd6\x41\xfa\x13\x70\x38\x9d\xf7\xe6\x7a\xb1\x18\xc7\x31\x96\x27\xd8\x58\xdb\x76\xd1\xbf\x0a\xdd\xe2\x3e\x5d\xae\xb3\x72\x7d\x7e\x19\x5f\x9c\x56\x1e\x54\x4f\xce\xc1\xd2\xaf\x81\x2d\x35\xa8\x8e\x90\xc6\xf4\x5c\xcb\xaa\x27\xf4\x72\x84\xb6\x90\xad\x25\x6a\xe0\x75\xe0\x1d\x2d\x7b\x56\xed\x1c\x4e\xef\xfc\x28\x2d\x89\x08\x0d\x3b\x6f\xb9\x1a\xfc\x87\xb0\xde\xe9\xd8\x7d\x10\x68\x05\xa9\x30\x49\x4a\xa4\xe5\x04\xdf\x92\x32\x2d\xe7\x22\xc2\x53\xba\xbd\xcd\x1f\xb6\x78\x4a\x8a\x22\xc9\xb6\xe9\xba\x44\x5e\x60\x99\x67\xab\x74\x9b\xe6\x59\x89\xfc\x3b\x92\xec\x19\x77\x69\xb6\x9a\x83\xd8\x77\x64\x41\x07\x63\x03\xbf\xb6\xe0\x10\x23\x35\x21\xb3\x92\xe8\x03\xc0\x4e\xbf\x02\x39\x43\x35\xef\xb8\x46\x2f\x55\x3b\xc8\x96\xd0\xea\xdf\x64\x15\xab\x16\x86\xec\x9e\x5d\xf8\x4c\x07\xa9\x1a\x11\xa1\xe7\x3d\x7b\xe9\x4f\x9d\x7f\x1e\x15\x0b\x51\x16\xcb\x12\x37\x50\xca\x88\xbc\xc4\xd7\x1b\xf4\xac\x86\x83\x48\x8a\xe5\x6d\xa8\xe4\xbe\xf9\xfc\x49\x6c\x93\x62\xb3\xde\x86\xfa\x6c\xba\x7c\x28\x56\x69\x31\x13\x9b\x3c\x29\x7e\x84\xd6\x95\xd8\xe4\xf7\x49\xb6\x79\x79\x5c\x17\x65\x9a\x67\x27\x13\xe9\xc9\xf9\x60\xfe\xb2\x4a\x0b\x84\x3d\xa5\x7d\xc3\x16\x67\x53\xd7\x51\xdf\xc3\x8c\xcd\x6c\x26\xe8\x60\xb4\xf5\x42\x54\xac\xae\xc5\x7f\x71\xbc\xe0\xbd\x6c\xe9\x7c\xf0\xdc\xc7\xae\x43\xc5\x0a\x67\xd3\x80\x38\x13\x22\xfe\x79\x9b\x67\xcf\xd7\xa1\x29\xfe\x04\x00\x00\xff\xff\x9e\x9e\xea\x79\x02\x03\x00\x00") - -func testImagesNonewprivsMakefileBytes() ([]byte, error) { - return bindataRead( - _testImagesNonewprivsMakefile, - "test/images/nonewprivs/Makefile", - ) -} - -func testImagesNonewprivsMakefile() (*asset, error) { - bytes, err := testImagesNonewprivsMakefileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/nonewprivs/Makefile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNonewprivsOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\xc8\x4a\x2d\x2e\x4e\x2b\x4a\xac\x02\x73\x72\xb3\x4b\x73\x13\x4b\x12\xd3\xb9\x00\x01\x00\x00\xff\xff\x11\x31\x6a\x04\x25\x00\x00\x00") - -func testImagesNonewprivsOwnersBytes() ([]byte, error) { - return bindataRead( - _testImagesNonewprivsOwners, - "test/images/nonewprivs/OWNERS", - ) -} - -func testImagesNonewprivsOwners() (*asset, error) { - bytes, err := testImagesNonewprivsOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/nonewprivs/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNonewprivsVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe2\x02\x04\x00\x00\xff\xff\x5d\x96\xa5\x56\x04\x00\x00\x00") - -func testImagesNonewprivsVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesNonewprivsVersion, - "test/images/nonewprivs/VERSION", - ) -} - -func testImagesNonewprivsVersion() (*asset, error) { - bytes, err := testImagesNonewprivsVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/nonewprivs/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNonewprivsNnpGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x41\x6b\xdb\x4c\x10\x86\xcf\x99\x5f\xf1\x22\xf8\xc0\x0e\xfe\xe4\x34\x97\x42\x7a\x52\x13\xb7\x15\x09\x76\xb1\x9c\x86\x40\x2f\x6b\x69\x24\x0d\x95\x76\xb7\xbb\xa3\x28\xa6\xf4\xbf\x17\x39\x2e\x24\xf4\xb8\xcc\xc3\x3b\xcf\xbe\xb3\x3c\xa7\x6b\xe7\x0f\x41\x9a\x56\x71\x79\xf1\xee\x3d\x76\x2d\xe3\x76\xd8\x73\xb0\xac\x1c\x91\x0d\xda\xba\x10\x53\xa2\x3b\x29\xd9\x46\xae\x30\xd8\x8a\x03\xb4\x65\x64\xde\x94\x2d\xe3\x34\x59\xe0\x1b\x87\x28\xce\xe2\x32\xbd\xc0\x6c\x02\x92\xd3\x28\x99\x7f\xa0\x83\x1b\xd0\x9b\x03\xac\x53\x0c\x91\xa1\xad\x44\xd4\xd2\x31\xf8\xb9\x64\xaf\x10\x8b\xd2\xf5\xbe\x13\x63\x4b\xc6\x28\xda\x1e\x97\x9c\x22\x52\x7a\x3c\x05\xb8\xbd\x1a\xb1\x30\x28\x9d\x3f\xc0\xd5\xaf\x29\x18\x25\x02\x80\x56\xd5\x5f\x2d\x97\xe3\x38\xa6\xe6\x68\x99\xba\xd0\x2c\xbb\x17\x2a\x2e\xef\xf2\xeb\xd5\xba\x58\xfd\x7f\x99\x5e\x10\xdd\xdb\x8e\x63\x44\xe0\x9f\x83\x04\xae\xb0\x3f\xc0\x78\xdf\x49\x69\xf6\x1d\xa3\x33\x23\x5c\x80\x69\x02\x73\x05\x75\x93\xe7\x18\x44\xc5\x36\x0b\x44\x57\xeb\x68\x02\x53\x25\x51\x83\xec\x07\x7d\x53\xd0\x5f\x2b\x89\x78\x0d\x38\x0b\x63\x91\x64\x05\xf2\x22\xc1\xc7\xac\xc8\x8b\x05\x3d\xe4\xbb\x2f\x9b\xfb\x1d\x1e\xb2\xed\x36\x5b\xef\xf2\x55\x81\xcd\x16\xd7\x9b\xf5\x4d\xbe\xcb\x37\xeb\x02\x9b\x4f\xc8\xd6\x8f\xb8\xcd\xd7\x37\x0b\xb0\x68\xcb\x01\xfc\xec\xc3\xe4\xee\x02\x64\xaa\x8e\xab\x94\x0a\xe6\x37\xcb\x6b\xf7\x22\x13\x3d\x97\x52\x4b\x89\xce\xd8\x66\x30\x0d\xa3\x71\x4f\x1c\xac\xd8\x06\x9e\x43\x2f\x71\x3a\x5e\x84\xb1\x15\x75\xd2\x8b\x1a\x3d\xbe\xff\xf9\x4e\x4a\xe7\x4b\x22\x6f\xca\x1f\x53\x48\x6f\xc4\x12\x49\xef\x5d\x50\xcc\xe8\x2c\xa9\x7b\x4d\xe8\x2c\x71\x31\xa1\x39\x51\x3d\xd8\xf2\xc8\xcc\xe6\xf8\x45\x67\x75\xaf\xe9\xd7\x20\x56\xeb\x59\xb2\xaa\x6b\x2e\x55\x9e\x18\x83\x54\x57\xf8\xaf\xfa\x6e\x93\x05\x5c\x4c\x3f\xb3\xf2\x20\xd5\x6c\x3e\xa7\xdf\xf4\x27\x00\x00\xff\xff\x1d\x9d\xa7\x78\xa3\x02\x00\x00") - -func testImagesNonewprivsNnpGoBytes() ([]byte, error) { - return bindataRead( - _testImagesNonewprivsNnpGo, - "test/images/nonewprivs/nnp.go", - ) -} - -func testImagesNonewprivsNnpGo() (*asset, error) { - bytes, err := testImagesNonewprivsNnpGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/nonewprivs/nnp.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNonrootBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\xcd\xb6\x28\xd6\x4b\x4f\x2e\xd2\xcb\xcc\xd7\x4f\x49\x4d\xca\x4c\xcc\xd3\x4d\x4a\x2c\x4e\xd5\x05\x4b\x5a\x95\x19\xea\x19\xe8\x19\x70\x41\xd5\x17\xe5\xe2\x54\x5d\x94\x8b\xa1\x16\x8f\xd9\x20\x49\x54\xf5\x05\x05\xc9\x66\x26\x39\xa9\xb8\x74\x40\xa5\x51\xf5\x14\x1b\x5b\x1a\x54\xe0\xd2\x01\x96\x84\xa9\x07\x04\x00\x00\xff\xff\xd5\x7f\xdd\x2c\xf0\x00\x00\x00") - -func testImagesNonrootBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesNonrootBaseimage, - "test/images/nonroot/BASEIMAGE", - ) -} - -func testImagesNonrootBaseimage() (*asset, error) { - bytes, err := testImagesNonrootBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/nonroot/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNonrootDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x41\x6f\xd3\x30\x14\xc7\xef\xfe\x14\x7f\x35\x1c\x40\x2a\xe9\x56\xb8\x00\xa7\xd0\x65\x23\xda\x96\x48\x49\xcb\xb4\xa3\x9b\xbc\x26\x4f\x4a\x6d\x63\xbf\x90\xf5\xdb\xa3\x64\x9d\xa0\xc2\x37\xfb\xfd\xfc\xfc\xf3\xff\x45\xd8\x58\x77\xf2\xdc\x76\x82\xf5\xd5\xf5\x17\x6c\x3b\xc2\xfd\xb0\x27\x6f\x48\x28\x20\x19\xa4\xb3\x3e\xc4\x2a\x52\x11\x1e\xb8\x26\x13\xa8\xc1\x60\x1a\xf2\x90\x8e\x90\x38\x5d\x77\xf4\x56\x59\xe2\x27\xf9\xc0\xd6\x60\x1d\x5f\xe1\xfd\x04\x2c\xce\xa5\xc5\x87\x6f\x2a\xc2\xc9\x0e\x38\xea\x13\x8c\x15\x0c\x81\x20\x1d\x07\x1c\xb8\x27\xd0\x4b\x4d\x4e\xc0\x06\xb5\x3d\xba\x9e\xb5\xa9\x09\x23\x4b\x37\x3f\x73\x6e\x12\xab\x08\xcf\xe7\x16\x76\x2f\x9a\x0d\x34\x6a\xeb\x4e\xb0\x87\x7f\x39\x68\x99\x85\xa7\xd5\x89\xb8\xaf\xab\xd5\x38\x8e\xb1\x9e\x65\x63\xeb\xdb\x55\xff\x0a\x86\xd5\x43\xb6\x49\xf3\x2a\xfd\xb8\x8e\xaf\xe6\x2b\x3b\xd3\x53\x08\xf0\xf4\x6b\x60\x4f\x0d\xf6\x27\x68\xe7\x7a\xae\xf5\xbe\x27\xf4\x7a\x84\xf5\xd0\xad\x27\x6a\x20\x76\xf2\x1d\x3d\x0b\x9b\x76\x89\x60\x0f\x32\x6a\x4f\x2a\x42\xc3\x41\x3c\xef\x07\xb9\x08\xeb\xcd\x8e\xc3\x05\x60\x0d\xb4\xc1\x22\xa9\x90\x55\x0b\x7c\x4f\xaa\xac\x5a\xaa\x08\x4f\xd9\xf6\x47\xb1\xdb\xe2\x29\x29\xcb\x24\xdf\x66\x69\x85\xa2\xc4\xa6\xc8\x6f\xb2\x6d\x56\xe4\x15\x8a\x5b\x24\xf9\x33\xee\xb3\xfc\x66\x09\x62\xe9\xc8\x83\x5e\x9c\x9f\xfc\xad\x07\x4f\x31\x52\x33\x65\x56\x11\x5d\x08\x1c\xec\xab\x50\x70\x54\xf3\x81\x6b\xf4\xda\xb4\x83\x6e\x09\xad\xfd\x4d\xde\xb0\x69\xe1\xc8\x1f\x39\x4c\xc3\x0c\xd0\xa6\x51\x11\x7a\x3e\xb2\x68\x99\x4f\xfe\xfb\x54\xac\x54\x52\xde\x4d\xf6\x69\xf6\x98\xdc\xa5\xea\xb6\x2c\x1e\xf1\xee\xef\x5e\xed\xaa\xb4\xc4\xf5\xfa\xd3\x67\xf5\x27\x00\x00\xff\xff\xd2\x2c\xe2\xef\x75\x02\x00\x00") - -func testImagesNonrootDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesNonrootDockerfile, - "test/images/nonroot/Dockerfile", - ) -} - -func testImagesNonrootDockerfile() (*asset, error) { - bytes, err := testImagesNonrootDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/nonroot/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNonrootOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x28\x49\xcc\xc9\x49\xce\x49\xcc\x2c\xe2\x02\x04\x00\x00\xff\xff\x69\x7f\xf2\x61\x19\x00\x00\x00") - -func testImagesNonrootOwnersBytes() ([]byte, error) { - return bindataRead( - _testImagesNonrootOwners, - "test/images/nonroot/OWNERS", - ) -} - -func testImagesNonrootOwners() (*asset, error) { - bytes, err := testImagesNonrootOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/nonroot/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesNonrootVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe4\x02\x04\x00\x00\xff\xff\x9e\xc5\x88\x7d\x04\x00\x00\x00") - -func testImagesNonrootVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesNonrootVersion, - "test/images/nonroot/VERSION", - ) -} - -func testImagesNonrootVersion() (*asset, error) { - bytes, err := testImagesNonrootVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/nonroot/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\xc8\xcd\x2e\xcd\x4d\x2c\x49\x4c\x07\x73\x92\x0a\x8a\x12\x8b\x33\x12\xf3\x4a\x32\xb8\x00\x01\x00\x00\xff\xff\x9e\x5b\xa3\x99\x27\x00\x00\x00") - -func testImagesPetsOwnersBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsOwners, - "test/images/pets/OWNERS", - ) -} - -func testImagesPetsOwners() (*asset, error) { - bytes, err := testImagesPetsOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsPeerFinderBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\xcc\x4d\x31\x33\xb1\xcd\xb6\x28\xd6\x4b\x4f\x2e\xd2\xcb\xcc\xd7\x4f\x49\x4d\xca\x4c\xcc\xd3\x4d\x4a\x2c\x4e\xd5\x05\x4b\x5a\x19\xe8\x99\xe8\x19\x72\x25\x16\xe5\xe2\x54\x56\x94\x8b\x50\x84\xc7\x34\x90\x24\x54\x61\x41\x41\xb2\x99\x49\x4e\x2a\x2e\xa5\x50\x69\xa8\xe2\x62\x63\x4b\x83\x0a\x5c\x4a\xc1\x92\x50\x85\x80\x00\x00\x00\xff\xff\x82\x15\xeb\x61\xcd\x00\x00\x00") - -func testImagesPetsPeerFinderBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsPeerFinderBaseimage, - "test/images/pets/peer-finder/BASEIMAGE", - ) -} - -func testImagesPetsPeerFinderBaseimage() (*asset, error) { - bytes, err := testImagesPetsPeerFinderBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/peer-finder/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsPeerFinderDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x51\x4f\x9c\x40\x14\x85\xdf\xe7\x57\x9c\x2c\x7d\x68\x93\x5d\xb0\x36\xb1\x69\xfb\x84\x2b\x2a\x51\xc1\x02\x5b\xbb\x69\x1a\x33\xc0\x5d\xb8\x09\x3b\x83\x33\x43\x71\xff\x7d\x03\x6a\xaa\x29\x6f\xcc\xfd\xe6\xcc\x37\x67\x3c\xac\x75\x7f\x30\xdc\xb4\x0e\xc7\x47\x1f\x4f\x50\xb4\x84\xab\xa1\x24\xa3\xc8\x91\x45\x38\xb8\x56\x1b\xeb\x0b\x4f\x78\xb8\xe6\x8a\x94\xa5\x1a\x83\xaa\xc9\xc0\xb5\x84\xb0\x97\x55\x4b\x2f\x93\x25\x7e\x90\xb1\xac\x15\x8e\xfd\x23\xbc\x9f\x80\xc5\xf3\x68\xf1\xe1\x9b\xf0\x70\xd0\x03\xf6\xf2\x00\xa5\x1d\x06\x4b\x70\x2d\x5b\xec\xb8\x23\xd0\x63\x45\xbd\x03\x2b\x54\x7a\xdf\x77\x2c\x55\x45\x18\xd9\xb5\xf3\x31\xcf\x21\xbe\xf0\xb0\x7d\x8e\xd0\xa5\x93\xac\x20\x51\xe9\xfe\x00\xbd\x7b\xcd\x41\xba\x59\x78\xfa\x5a\xe7\xfa\xaf\x41\x30\x8e\xa3\x2f\x67\x59\x5f\x9b\x26\xe8\x9e\x40\x1b\x5c\xc7\xeb\x28\xc9\xa3\xd5\xb1\x7f\x34\x6f\xd9\xa8\x8e\xac\x85\xa1\x87\x81\x0d\xd5\x28\x0f\x90\x7d\xdf\x71\x25\xcb\x8e\xd0\xc9\x11\xda\x40\x36\x86\xa8\x86\xd3\x93\xef\x68\xd8\xb1\x6a\x96\xb0\x7a\xe7\x46\x69\x48\x78\xa8\xd9\x3a\xc3\xe5\xe0\xde\x94\xf5\x62\xc7\xf6\x0d\xa0\x15\xa4\xc2\x22\xcc\x11\xe7\x0b\x9c\x86\x79\x9c\x2f\x85\x87\xbb\xb8\xb8\x4c\x37\x05\xee\xc2\x2c\x0b\x93\x22\x8e\x72\xa4\x19\xd6\x69\x72\x16\x17\x71\x9a\xe4\x48\xcf\x11\x26\x5b\x5c\xc5\xc9\xd9\x12\xc4\xae\x25\x03\x7a\xec\xcd\xe4\xaf\x0d\x78\xaa\x91\xea\xa9\xb3\x9c\xe8\x8d\xc0\x4e\x3f\x09\xd9\x9e\x2a\xde\x71\x85\x4e\xaa\x66\x90\x0d\xa1\xd1\x7f\xc8\x28\x56\x0d\x7a\x32\x7b\xb6\xd3\x63\x5a\x48\x55\x0b\x0f\x1d\xef\xd9\x49\x37\xaf\xfc\x77\x29\x5f\x88\x30\xbb\x98\xec\xa3\xf8\x26\xbc\x88\xc4\x79\x96\xde\xe0\xdd\xbf\x7f\xb1\xce\xd2\x3c\xbf\x3f\xdd\xc4\xd7\x67\xf7\xeb\xf4\x76\x8b\x07\xda\x0f\xab\xef\xd1\xcd\x26\xcc\xd6\x97\x2b\x3b\x45\x57\x08\x06\x6b\x82\x92\x55\x20\x44\xb6\x49\x50\x75\x24\xd5\x8a\x95\x75\xb2\xeb\x30\x36\xe4\x50\x4a\xdb\xa2\x56\x76\x70\xdc\x59\x21\xe6\xa8\x9e\xc8\xac\x76\x3c\x4b\x05\x42\x44\x3f\x6f\xd3\x3c\xc2\x97\x4f\x9f\x4f\x44\x94\x14\xd9\xf6\x36\x8d\x93\x02\xbf\x16\xc1\x2b\x70\xf1\x5b\xfc\x0d\x00\x00\xff\xff\x89\xa7\xb5\xbd\xfe\x02\x00\x00") - -func testImagesPetsPeerFinderDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsPeerFinderDockerfile, - "test/images/pets/peer-finder/Dockerfile", - ) -} - -func testImagesPetsPeerFinderDockerfile() (*asset, error) { - bytes, err := testImagesPetsPeerFinderDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/peer-finder/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsPeerFinderMakefile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x51\x4f\xdc\x3a\x10\x85\x9f\xaf\x7f\xc5\xd1\x86\x07\x90\x96\x84\x8b\xae\xb8\x12\x15\xaa\xd2\xdd\xed\x12\x41\x93\x2a\x09\x20\x9e\x90\x93\xcc\x26\x23\x65\xed\xd4\x76\x9a\xdd\x7f\x5f\x39\x80\x04\xaa\xdf\x66\xe6\x78\xce\xe7\xe3\x00\x2b\x3d\x1c\x0d\xb7\x9d\xc3\xe5\xc5\xbf\x57\x28\x3b\xc2\xdd\x58\x91\x51\xe4\xc8\x22\x1e\x5d\xa7\x8d\x0d\x45\x20\x02\xdc\x73\x4d\xca\x52\x83\x51\x35\x64\xe0\x3a\x42\x3c\xc8\xba\xa3\xf7\xc9\x12\x8f\x64\x2c\x6b\x85\xcb\xf0\x02\xa7\x5e\xb0\x78\x1b\x2d\xce\xbe\x88\x00\x47\x3d\x62\x2f\x8f\x50\xda\x61\xb4\x04\xd7\xb1\xc5\x8e\x7b\x02\x1d\x6a\x1a\x1c\x58\xa1\xd6\xfb\xa1\x67\xa9\x6a\xc2\xc4\xae\x9b\x6d\xde\x96\x84\x22\xc0\xf3\xdb\x0a\x5d\x39\xc9\x0a\x12\xb5\x1e\x8e\xd0\xbb\x8f\x3a\x48\x37\x03\xfb\xd3\x39\x37\x5c\x47\xd1\x34\x4d\xa1\x9c\x61\x43\x6d\xda\xa8\x7f\x15\xda\xe8\x3e\x59\x6d\xd2\x62\x73\x7e\x19\x5e\xcc\x57\x1e\x54\x4f\xd6\xc2\xd0\xaf\x91\x0d\x35\xa8\x8e\x90\xc3\xd0\x73\x2d\xab\x9e\xd0\xcb\x09\xda\x40\xb6\x86\xa8\x81\xd3\x9e\x77\x32\xec\x58\xb5\x4b\x58\xbd\x73\x93\x34\x24\x02\x34\x6c\x9d\xe1\x6a\x74\x9f\xc2\x7a\xa7\x63\xfb\x49\xa0\x15\xa4\xc2\x22\x2e\x90\x14\x0b\x7c\x8b\x8b\xa4\x58\x8a\x00\x4f\x49\x79\x9b\x3d\x94\x78\x8a\xf3\x3c\x4e\xcb\x64\x53\x20\xcb\xb1\xca\xd2\x75\x52\x26\x59\x5a\x20\xfb\x8e\x38\x7d\xc6\x5d\x92\xae\x97\x20\x76\x1d\x19\xd0\x61\x30\x9e\x5f\x1b\xb0\x8f\x91\x1a\x9f\x59\x41\xf4\x09\x60\xa7\x5f\x81\xec\x40\x35\xef\xb8\x46\x2f\x55\x3b\xca\x96\xd0\xea\xdf\x64\x14\xab\x16\x03\x99\x3d\x5b\xff\x99\x16\x52\x35\x22\x40\xcf\x7b\x76\xd2\xcd\x9d\xbf\x1e\x15\x0a\x51\xe4\xab\x02\x37\x18\x88\xcc\xf9\x8e\xbd\x40\x64\x05\xbe\xde\xa0\x67\x35\x1e\x44\x9c\xaf\x6e\x7d\x25\xf7\xcd\xd5\x7f\xa2\x8c\xf3\xed\xa6\xf4\xf5\xc9\xe9\xea\x21\x5f\x27\xf9\x99\xd8\x66\x71\xfe\xc3\xb7\xfe\x17\xdb\xec\x3e\x4e\xb7\x2f\x8f\x9b\xbc\x48\xb2\x74\x5e\x22\x1d\x59\xe7\x4d\x5e\xd6\x49\x3e\xfb\x38\x1b\x7d\x34\xa3\xc3\xa0\x8d\x13\xa2\x62\x75\x2d\xfe\x09\xc3\x28\x0c\x23\xde\xcb\x96\xce\x47\xc7\x7d\x68\x3b\x54\xac\x70\x72\xea\x39\xcf\x84\x08\x7f\xde\x66\xe9\xf3\xb5\x6f\x8a\x3f\x01\x00\x00\xff\xff\x11\x9d\x3d\x9a\x07\x03\x00\x00") - -func testImagesPetsPeerFinderMakefileBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsPeerFinderMakefile, - "test/images/pets/peer-finder/Makefile", - ) -} - -func testImagesPetsPeerFinderMakefile() (*asset, error) { - bytes, err := testImagesPetsPeerFinderMakefileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/peer-finder/Makefile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsPeerFinderVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe1\x02\x04\x00\x00\xff\xff\xdb\x31\xff\x00\x04\x00\x00\x00") - -func testImagesPetsPeerFinderVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsPeerFinderVersion, - "test/images/pets/peer-finder/VERSION", - ) -} - -func testImagesPetsPeerFinderVersion() (*asset, error) { - bytes, err := testImagesPetsPeerFinderVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/peer-finder/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsPeerFinderPeerFinderGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x58\x6f\x73\xdb\xb8\xd1\x7f\x2d\x7e\x8a\x0d\x67\x72\x0f\xa9\xa3\xa9\x24\x4f\xa7\xd3\x3a\x75\x6f\x74\xb6\x73\x51\x2f\x27\x7b\x2c\x27\x99\x6b\xec\xb9\x83\xc9\x25\x85\x31\x09\xf0\x00\x50\xb2\xea\xf8\xbb\x77\x16\x00\x29\x5a\x72\xda\xc9\xb5\x6f\x9a\x99\x58\x02\xb0\xd8\xfd\xed\xff\x85\x26\xe3\xe0\x58\x36\x1b\xc5\xcb\xa5\x81\x57\x2f\x5e\xfe\x01\x2e\x97\x08\x3f\xb6\x37\xa8\x04\x1a\xd4\x30\x6d\xcd\x52\x2a\x9d\x06\xc1\x3b\x9e\xa1\xd0\x98\x43\x2b\x72\x54\x60\x96\x08\xd3\x86\x65\x4b\x04\x7f\x92\xc0\x07\x54\x9a\x4b\x01\xaf\xd2\x17\x10\x11\x41\xe8\x8f\xc2\xf8\x75\xb0\x91\x2d\xd4\x6c\x03\x42\x1a\x68\x35\x82\x59\x72\x0d\x05\xaf\x10\xf0\x2e\xc3\xc6\x00\x17\x90\xc9\xba\xa9\x38\x13\x19\xc2\x9a\x9b\xa5\x15\xe2\x59\xa4\xc1\xcf\x9e\x81\xbc\x31\x8c\x0b\x60\x90\xc9\x66\x03\xb2\x18\x52\x01\x33\x41\x00\x00\xb0\x34\xa6\x39\x9c\x4c\xd6\xeb\x75\xca\x2c\xca\x54\xaa\x72\x52\x39\x2a\x3d\x79\x37\x3b\x3e\x9d\x2f\x4e\x0f\x5e\xa5\x2f\x82\xe0\xbd\xa8\x50\x6b\x50\xf8\x5b\xcb\x15\xe6\x70\xb3\x01\xd6\x34\x15\xcf\xd8\x4d\x85\x50\xb1\x35\x48\x05\xac\x54\x88\x39\x18\x49\x38\xd7\x8a\x1b\x2e\xca\x04\xb4\x2c\xcc\x9a\x29\x0c\x72\xae\x8d\xe2\x37\xad\x79\x64\xa0\x0e\x15\xd7\x30\x24\x90\x02\x98\x80\x70\xba\x80\xd9\x22\x84\xef\xa7\x8b\xd9\x22\x09\x3e\xce\x2e\xdf\x9e\xbd\xbf\x84\x8f\xd3\x8b\x8b\xe9\xfc\x72\x76\xba\x80\xb3\x0b\x38\x3e\x9b\x9f\xcc\x2e\x67\x67\xf3\x05\x9c\xbd\x81\xe9\xfc\x67\xf8\x71\x36\x3f\x49\x00\xb9\x59\xa2\x02\xbc\x6b\x14\x61\x97\x0a\x38\x99\x0e\xf3\x34\x58\x20\x3e\x12\x5e\x48\x07\x46\x37\x98\xf1\x82\x67\x50\x31\x51\xb6\xac\x44\x28\xe5\x0a\x95\xe0\xa2\x84\x06\x55\xcd\x35\x39\x4f\x03\x13\x79\x50\xf1\x9a\x1b\x66\xec\x7a\x4f\x9d\x34\x18\x4f\x82\x60\x32\x81\x29\xe8\x9a\x55\x15\xb4\x86\x57\xdc\x6c\xa0\x51\xb2\x54\xac\x26\x23\x55\x52\xde\xb6\x0d\x2c\xa5\x36\x82\xd5\xa8\xc9\x4f\x28\xf2\x46\x72\x61\x34\x58\xf7\x69\x54\x2b\x9e\x61\x1a\x34\x2c\xbb\x25\x38\x35\xe3\x22\x08\x78\xdd\x48\x65\x20\x0a\x46\x61\x51\xb1\x32\xa4\xcf\xda\xd0\x07\x97\x13\x2e\x49\x16\x2d\x2a\x69\x8f\x04\xda\x23\xa9\xdd\xdf\x09\xde\x61\x46\x5f\x15\x96\x78\xd7\xd0\x37\x2d\x95\x25\x21\xf3\x8b\xd2\xd2\x19\x5e\x63\x18\x04\xa3\xf0\xf6\x4f\x3a\xe5\x72\xc2\x1a\x5e\xb3\x6c\xc9\x05\xaa\xcd\xa4\xb9\x2d\x27\x24\x64\xa2\xd1\xe8\x30\x88\x83\x20\x93\x42\x5b\x40\x8d\xac\xaa\x73\x54\x5c\xe6\x70\x04\x2f\x61\x0c\xc4\x28\x5d\x60\x26\x45\x4e\x84\x2b\xa6\x88\x4c\x8a\xe3\x25\x13\x25\x02\x1c\x01\xa9\x90\x2e\xac\xe8\x28\x94\xe2\x20\xb3\x27\x61\x02\x21\xfd\x5f\x64\x8a\x37\x86\xec\xa5\x5a\x41\x61\xe1\x8e\x13\xa8\x5b\x6d\x80\x65\x36\x2f\x18\x08\x5c\x43\xc5\x05\x82\xc6\x86\x29\x46\x21\x54\x71\x6d\xc8\xa6\x0d\xa2\xd2\xb0\xe2\x0c\xb4\xc9\xb9\x48\xc3\x98\xe4\x2f\x0c\x53\x06\x9e\x92\xaf\xe9\xe4\x8b\xe2\xed\xe9\x7f\x28\x5d\xaf\x32\x70\xff\x76\xa4\x7b\x7f\x77\xc2\x7f\xe8\x83\xcf\x1f\x80\x42\xdd\x48\xa1\x39\x65\x5d\x17\xb4\x27\xf3\x05\x28\xcc\xa4\xca\x75\x97\xea\xb9\xa4\x40\x71\xf5\xa3\x91\x39\x25\x97\x17\x6d\x23\xad\x61\x19\xee\x8a\x16\xba\x93\x4a\xe5\x6d\x4b\x36\xe4\xa1\x5a\x61\xd1\x70\x91\xc2\xac\x80\x56\xf8\x7c\xc1\x3c\xb1\x62\xcf\xcf\x4e\x7e\x99\x4f\x7f\x3a\x5d\x9c\x4f\x8f\x4f\x01\xc5\x0a\xc8\xdd\x5c\x53\x31\xcb\xad\x78\x0f\x6c\x5f\x73\x77\x30\x84\x70\x5c\xb5\xda\xa0\x82\x13\x77\x65\xbd\xe4\xd9\xb2\xe3\x45\xf5\xc7\x6c\x69\x12\xe0\x85\x2d\x9a\x1a\x0d\x18\xc5\x51\x93\xc3\x72\x34\x94\xb2\x02\x81\x1b\x28\x94\xac\x61\x82\x26\x9b\x28\xd4\xb2\x5a\xa5\x99\x14\x85\xad\xad\x84\x2b\x0e\x82\xa2\x15\x99\x4f\xc9\x48\xaf\xb2\x39\xab\x11\x5c\x3e\xc4\x10\x51\x9c\x7b\xa8\x09\xa0\x52\x52\xc5\x70\x1f\x8c\xb6\xd9\x7a\x78\x04\x96\x66\x8e\x6b\xaf\x51\x1c\x8c\x7e\x49\x40\xab\xd5\x85\x73\x8d\xbd\x47\x74\x02\x4d\xfa\xce\xca\x59\x5c\x7c\x88\x42\xaf\xb2\x17\x19\x07\x23\x5e\x58\xca\x67\x47\x20\x78\x45\x52\x46\x0a\x4d\xab\xc4\xb6\x36\x58\x56\xc1\xe8\x21\x18\x51\x08\x0c\xa5\x10\x7f\x65\xf3\x6a\x2b\xd8\xb2\x98\x4c\x6c\xd7\x5a\x5c\x7c\xe8\x43\x05\x45\xee\xab\x4c\x98\x86\x7d\x30\x29\x29\x8d\x0f\x9f\x60\x34\xc2\x86\x38\x16\xb5\x49\x17\x8d\xe2\xc2\x14\x51\xf8\x7c\x15\x0e\x04\xa6\x97\x4c\x95\x68\x3e\x1d\x56\x28\xa2\xdd\xdd\xf8\xe0\xe5\x75\x4c\x5c\x3a\xe0\xe9\x4c\x68\x54\x26\xc2\x26\xb6\xf0\xf7\x15\x13\xbc\x0a\x1e\xbc\x33\xf4\x12\xab\xea\xac\x35\x91\x46\x91\x2f\x28\x79\x12\xd0\x2e\x1d\x3b\xc7\xdc\x07\xa3\x4a\x96\xe9\xb9\xc7\x46\x95\x8d\x8b\xf2\x10\x9e\xaf\x5c\x73\xb4\x29\x47\xcb\xb0\xbb\x9a\x40\xcf\x2d\x0e\x82\x51\x56\x5b\x9b\xd1\xc5\xf4\x58\xd6\x35\x13\x79\xe4\x08\x29\x4d\x9d\x4c\xef\xb7\xac\xce\x53\x7b\xef\x9c\x37\x18\x3d\xe9\x28\xc2\xf2\x86\x19\x56\x15\x51\xf8\x86\xf1\xca\x35\xc3\x12\x8d\x03\x02\x0d\x6f\xd0\xa3\x41\xa5\x9c\x0d\xb4\xc9\x65\x6b\x76\xa5\xc8\xd6\xfc\x4e\x31\xb2\x35\x4f\xc9\xb1\xaa\xa6\xb6\xe8\x45\xa4\xb8\x2b\x46\x1f\x15\x37\x18\x7d\xba\xbe\xd9\x18\xdc\x9a\x39\xee\x74\x4f\x8f\x2b\xa9\xd1\xd2\x0f\x31\xba\x0e\x93\x5e\x20\xcb\xa7\x55\x15\x39\xa1\x5f\x81\x94\xac\xdd\x1a\x84\xe7\x2b\x02\x69\xd9\xee\xfa\xc8\xe5\x10\xb1\x1d\xaa\xd0\xfb\x3a\x1a\x10\xc4\x7d\xc0\x50\xd0\x46\x36\x28\x6c\x69\x39\x67\xca\x83\x17\x36\x41\xc7\x7d\x51\xb3\x50\x85\x86\xa3\x23\x08\x43\x0b\x94\x16\x20\x75\xfa\x03\x1a\x14\xab\x28\x7c\x54\xc9\x42\xe7\x29\x5e\xc0\x98\x2a\xb7\xbb\xf5\xf9\xf3\x96\xc3\xe7\xcf\x10\x8d\xfb\x96\xe6\xf6\xbe\xf9\x06\xc6\x5d\x97\xb1\x3b\xf1\x9e\x45\x66\xc2\x0e\x73\x68\x10\x98\x2a\x75\xd2\x8d\x57\x70\xd0\x77\x41\x9a\x34\x26\x52\xd9\x1d\xdf\x79\x0e\xba\x5e\xc0\x44\x0e\x07\xc2\x0e\x36\x4c\xf4\xd5\x96\x12\xf9\x11\xfa\x34\xf4\xd6\xeb\x06\x8d\xde\x8f\x52\xa7\x6f\xfd\xde\xd7\x06\x5a\xc7\xeb\x10\x9e\xeb\x61\x34\x13\x02\x57\x3d\x06\x05\x34\x08\xa8\xfe\xcc\x8a\xae\x2d\x71\x6d\x8b\x75\xa3\xe4\x8a\xe7\xb6\x77\xa8\x4d\xc7\xb8\x2b\xd5\x83\x2a\xed\x2c\xef\xef\x6e\x5d\xe6\x28\x8e\xa5\x28\xbe\xdf\x18\xd4\x4f\x45\xe7\x1b\x5e\x61\x14\xee\x56\x7d\xb2\xc7\xe0\xb6\xad\xdd\x2e\x9c\x76\x58\x12\xdd\xbe\x51\xb6\x56\x89\xc2\xf7\xc2\xce\xbf\x34\x1d\x20\xcb\xf7\xfa\x8b\x95\x44\xa6\xb7\x76\x51\x08\x63\x37\x73\xa5\x17\xf6\xc3\xb1\x7f\x14\x87\x64\x28\x6a\x0e\xd4\x65\xc9\x93\x6c\xdb\xca\x99\xb1\xed\x49\x43\xc5\x6f\xfd\xec\x3f\x4e\xf5\x2a\x4b\xc7\x63\xba\xa8\xbc\x5f\x8f\xc0\xcb\x38\x96\x75\x43\xfa\xff\x7a\x35\x8d\xd2\xf1\x95\x88\xc7\x1a\x99\xca\x96\x57\xfa\xfe\x65\xf2\x40\x5b\xf6\x4b\x3c\x8e\xbe\x3b\xff\x4b\x29\x59\xf5\xd7\x4f\xec\xe0\x1f\xd3\x83\xbf\xbf\x38\xf8\xf3\xc1\xf5\xfd\xcb\xe4\x8f\xff\xff\x60\xf9\x47\xfb\xfb\x57\x69\x3c\xde\xee\x5e\xdf\xbf\xa2\xcd\xf8\x57\xab\x2e\x60\xa5\xf1\xeb\x94\xf9\xaf\x6a\xf1\x3b\x20\xff\x1b\x3f\x3f\x8a\xfe\x4c\x21\x33\x34\x88\x95\x6d\xc5\xfa\xd7\x05\x97\xe2\x51\xc1\x75\x5e\x2f\x95\x6c\x9b\xb9\x9d\xed\xa9\x31\x63\xba\x68\x6f\xf0\xce\xed\x44\x3e\x0a\xdb\xca\xf8\xc3\x37\x9c\xea\x2f\x05\xe2\xa2\xbd\xa9\x99\xc9\x96\x83\x80\x24\x6a\xb2\xe1\x6d\x02\xab\x6d\x97\xf7\xf7\x2d\x5c\x5e\xc0\x56\xde\xa7\xdb\x6b\x1b\x55\x64\x11\x1f\x59\xfb\xb1\x66\x1d\x74\xd2\xe7\x64\x5f\x8c\x1c\x21\xd7\x80\x75\x63\x36\x8e\x72\x90\xd4\x47\xb0\xb2\x7b\x43\x4f\x5b\x56\x73\xff\xfa\xcb\xa4\x58\xa1\x32\xde\xad\xc0\x85\x91\x20\xf4\x20\x56\x77\xd8\x09\x0d\xdf\xda\x21\xe4\xdb\x8e\xb3\xfd\x7b\xa3\x90\xdd\x06\x7e\xf9\xe0\xcb\x51\xd7\xea\x4f\xba\xe1\x2e\xef\x34\x30\x12\x6e\xd0\x95\xa3\x2d\x77\xaa\xfe\x03\x9c\x8f\xc4\xfa\xd7\x4e\xfa\x37\xc9\x45\xf4\xe9\xda\x2d\xef\x85\x4e\x20\xd4\xab\x2c\x4c\xba\x9a\xf3\x90\x10\x38\x5f\x44\xf7\x9a\xc0\x90\xe5\xff\x50\x33\xa8\x37\x16\xf2\xe1\x97\xcc\xb0\x6d\x16\xa4\xee\xd0\xa4\xbd\x39\xfc\x2c\x46\x9d\xd5\xeb\x66\xcd\xe3\xb7\xb7\x71\xd6\x6d\x40\x6f\x95\x1d\x5f\xce\x25\x74\x1a\x81\x6e\x1b\xfb\x46\x4f\x60\xab\xb6\x9d\xe6\xaa\x8a\xdc\xcb\xdc\x69\xff\x10\x4b\xfb\xa1\x21\xee\x07\x62\xf7\xe2\x7a\x62\x22\x7f\xdd\x61\x7b\x46\xd8\x5e\xfb\xa7\x69\x85\xd8\x44\xdb\x67\xab\xf3\x8c\xc0\xf5\x39\xb1\xe9\xbb\x8a\x7f\x19\x90\x31\xfe\x45\x5b\x38\x1f\x0e\xc9\xbe\x12\x8c\x32\x29\x0c\x17\x2d\x6e\x2b\x4d\xc7\x3d\x3d\xfd\xad\x65\x55\x64\x01\xc7\x14\x38\xcf\xfa\x93\xb7\x4c\x47\xce\x47\xf1\x3e\xfb\xb7\x6c\x85\xb6\x85\x16\xb2\x15\x39\xd4\x1b\x8d\x55\x41\xb3\xbc\x7d\x74\x6e\xd0\xa4\x57\xe2\xa7\x0d\xbc\x1d\x34\xe9\x2b\x41\x2b\xdd\x11\xf9\xbe\xed\x24\x24\x8f\x63\xa0\xc7\xf0\x8e\x6b\x13\xc5\x09\xd0\x13\x25\x7e\x4a\x15\x02\x4e\x44\xee\x59\xf3\xe8\x16\xf9\x5d\x2a\xe3\x1f\x4d\x3a\xea\x48\xe3\x1d\xdf\xd3\x1d\x07\xbb\x6d\x72\x7a\x38\x5f\x89\x35\xd3\xf0\x7c\x75\x25\x84\x5c\xbb\x92\xda\x3c\x42\xb3\x23\xc8\x4a\xea\x5f\x0a\x43\x3d\x3a\x91\x09\x84\x57\x22\x8c\x07\x81\x32\x72\x21\xb2\x05\xfd\x85\x28\x7d\xb0\x83\xcb\xe5\xd9\xc9\xd9\x21\x9c\xde\x71\x43\x95\xd1\x2c\x51\xe1\xff\xd1\x04\xb3\x8d\xd0\xef\x82\x7d\x9d\x0a\x6e\x7f\x13\xc2\x3b\xfb\x33\x58\x48\x53\xea\x3f\x03\x00\x00\xff\xff\xb9\xe2\x7f\x68\x4a\x14\x00\x00") - -func testImagesPetsPeerFinderPeerFinderGoBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsPeerFinderPeerFinderGo, - "test/images/pets/peer-finder/peer-finder.go", - ) -} - -func testImagesPetsPeerFinderPeerFinderGo() (*asset, error) { - bytes, err := testImagesPetsPeerFinderPeerFinderGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/peer-finder/peer-finder.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsRedisInstallerBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\xcd\xb6\x28\xd6\x4b\x4f\x2e\xd2\xcb\xcc\xd7\x4f\x49\x4d\xca\x4c\xcc\xd3\x4d\x4a\x2c\x4e\xd5\x05\x4b\x5a\x19\xe8\x99\xe8\x19\x72\x41\x95\x17\xe5\xe2\x54\x5c\x94\x8b\xae\x14\x8f\xc9\x20\x49\x14\xe5\x05\x05\xc9\x66\x26\x39\xa9\xb8\x34\x40\xa5\xa1\x5a\x00\x01\x00\x00\xff\xff\x2a\x1e\xc7\x42\xbc\x00\x00\x00") - -func testImagesPetsRedisInstallerBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsRedisInstallerBaseimage, - "test/images/pets/redis-installer/BASEIMAGE", - ) -} - -func testImagesPetsRedisInstallerBaseimage() (*asset, error) { - bytes, err := testImagesPetsRedisInstallerBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/redis-installer/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsRedisInstallerDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x93\xd1\x6e\xe3\x36\x13\x85\xef\xf9\x14\x07\xf6\x8f\xfd\x5b\x20\x92\x52\x17\xdb\x05\x52\xf4\x42\xb1\xbd\xbb\xc2\x26\xd2\xd6\x72\xba\x08\xda\x22\xa0\xa4\xb1\xc4\xae\x44\x2a\x24\x15\xc5\x79\xfa\x82\x94\xdd\x38\x48\x7c\x65\x91\x67\x66\xce\x7c\x33\x9c\x63\xa9\xfa\xbd\x16\x75\x63\xb1\x38\xff\xe9\x17\x6c\x1b\xc2\x97\xa1\x20\x2d\xc9\x92\x41\x3c\xd8\x46\x69\x13\xb2\x39\x9b\xe3\x4a\x94\x24\x0d\x55\x18\x64\x45\x1a\xb6\x21\xc4\x3d\x2f\x1b\x3a\xde\x9c\xe1\x0f\xd2\x46\x28\x89\x45\x78\x8e\x1f\x9c\x60\x76\xb8\x9a\xfd\xf8\x2b\x9b\x63\xaf\x06\x74\x7c\x0f\xa9\x2c\x06\x43\xb0\x8d\x30\xd8\x89\x96\x40\x8f\x25\xf5\x16\x42\xa2\x54\x5d\xdf\x0a\x2e\x4b\xc2\x28\x6c\xe3\xcb\x1c\x92\x84\x6c\x8e\xdb\x43\x0a\x55\x58\x2e\x24\x38\x4a\xd5\xef\xa1\x76\xa7\x3a\x70\xeb\x0d\xbb\x5f\x63\x6d\x7f\x11\x45\xe3\x38\x86\xdc\x9b\x0d\x95\xae\xa3\x76\x12\x9a\xe8\x2a\x59\xae\xd3\x7c\x1d\x2c\xc2\x73\x1f\x72\x23\x5b\x32\x06\x9a\xee\x07\xa1\xa9\x42\xb1\x07\xef\xfb\x56\x94\xbc\x68\x09\x2d\x1f\xa1\x34\x78\xad\x89\x2a\x58\xe5\xfc\x8e\x5a\x58\x21\xeb\x33\x18\xb5\xb3\x23\xd7\xc4\xe6\xa8\x84\xb1\x5a\x14\x83\x7d\x01\xeb\xe8\x4e\x98\x17\x02\x25\xc1\x25\x66\x71\x8e\x24\x9f\xe1\x32\xce\x93\xfc\x8c\xcd\xf1\x2d\xd9\x7e\xce\x6e\xb6\xf8\x16\x6f\x36\x71\xba\x4d\xd6\x39\xb2\x0d\x96\x59\xba\x4a\xb6\x49\x96\xe6\xc8\x3e\x22\x4e\x6f\xf1\x25\x49\x57\x67\x20\x61\x1b\xd2\xa0\xc7\x5e\x3b\xff\x4a\x43\x38\x8c\x54\x39\x66\x39\xd1\x0b\x03\x3b\x35\x19\x32\x3d\x95\x62\x27\x4a\xb4\x5c\xd6\x03\xaf\x09\xb5\x7a\x20\x2d\x85\xac\xd1\x93\xee\x84\x71\xc3\x34\xe0\xb2\x62\x73\xb4\xa2\x13\x96\x5b\x7f\xf2\xaa\xa9\x90\xb1\x39\xb6\xd9\x2a\xbb\x40\x4d\x16\x5a\x54\x6e\x26\x05\x37\x0d\x2a\xea\x49\x56\x24\xcb\xbd\x4b\x04\x33\x0a\x5b\x36\x0e\x5e\xdf\xba\x09\x16\x83\xd9\x17\xea\xd1\xf9\x74\xcb\x67\xb9\xc6\xf3\x29\x78\x6b\x14\x2a\x45\x46\xfe\xdf\xc2\x10\x75\x2e\xd0\x57\x37\xd6\x65\x73\xdb\xe2\x3a\x16\x4a\x86\x2c\xde\x7c\x72\xfc\xd6\xc9\x75\xfc\x69\xcd\x3e\x6e\xb2\x6b\xfc\xef\xf9\x9b\x2d\x37\x59\x9e\xdf\x5d\xde\x24\x57\xab\xbb\x65\xf6\xf5\x16\xf7\xd4\x0d\xc1\xef\xeb\xeb\x9b\x78\xb3\xfc\x1c\x18\xd7\x5c\x89\x68\x30\x3a\x2a\x84\x8c\x9e\x3b\xfa\x67\x30\xd3\xbe\xfa\x9a\x5c\x57\xd0\x54\x09\x83\xb1\x21\xe9\x20\x68\x3f\x53\x25\x27\xb2\x3f\x87\x8b\xf0\x3c\x64\x9b\x9b\x14\x65\x4b\x5c\x06\x42\x1a\xcb\xdb\x16\xa3\x23\xd3\xf1\xef\x84\xba\x2c\xd1\x8a\xa2\x0c\x2a\x7a\xf0\x90\xd8\x61\x4a\x9b\x75\xbc\xba\x5e\x87\x5d\xe5\xc3\x7d\x40\x70\x9f\x21\xf2\xf5\x82\x29\xb3\xe5\x3a\xac\x9f\x8e\x8b\x5d\xa9\x51\xb6\x8a\x57\xa1\x97\x84\x42\x45\x9a\x5a\xe2\x6e\xb7\xdf\x08\x7a\xf7\x0e\x7f\x31\xf7\x2c\x1c\xe6\xe0\xf1\x69\xf7\x66\xea\x60\x89\xc8\x76\x7d\xe4\xe4\xba\x7b\x4b\xe2\xfc\x2e\x5d\x73\x50\x83\x05\x3d\x0a\xe3\xde\x80\x1b\xb5\x41\x41\x3b\xe5\x88\x4c\x5d\xfb\x85\x61\x73\x37\x3b\x6f\xd9\x5c\x44\x51\x2d\x6c\x33\x14\x61\xa9\xba\x88\x4b\x2b\x34\x3d\x4d\x25\x22\x61\xcc\x40\x26\xfa\xb0\x58\x4c\xf8\xaa\xc9\xc7\x49\x7d\x67\xc9\x23\x74\x2f\xc8\xe3\xf5\x27\xdf\x2b\xa1\x11\xf4\x07\xab\xcf\x6d\x7a\xe9\x91\x7f\x92\xe6\xdb\xf8\xea\xea\xee\x32\x49\x7f\x7b\x25\x7c\x78\x55\x6a\xfa\x1f\x96\x4a\x1e\x29\x9d\x9e\xfc\x17\xa9\x3b\x04\x7a\xf7\x2a\x9a\xb1\x78\xb5\x82\x92\x6e\xad\xb4\x0d\x4d\x83\x88\x31\xbf\x75\x3d\x91\x0e\x76\xc2\xbf\xa0\xc8\xab\x0e\x06\x27\x91\x6f\xbc\xe9\x54\x85\xa0\xc4\x87\xf7\xef\x11\x9d\x5e\xbf\x48\x78\x92\x89\xad\xd3\xed\xe6\xf6\x6b\x96\xa4\x5b\xfc\x39\x3b\x09\x99\xfd\xcd\xfe\x0d\x00\x00\xff\xff\x83\x12\xc0\xa9\xe5\x05\x00\x00") - -func testImagesPetsRedisInstallerDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsRedisInstallerDockerfile, - "test/images/pets/redis-installer/Dockerfile", - ) -} - -func testImagesPetsRedisInstallerDockerfile() (*asset, error) { - bytes, err := testImagesPetsRedisInstallerDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/redis-installer/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsRedisInstallerMakefile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x51\x4f\xdc\x3a\x10\x85\x9f\xaf\x7f\xc5\xd1\x86\x07\x90\x96\x84\x8b\xae\xb8\x12\x15\xaa\xd2\xdd\xed\x12\x41\x93\x2a\x09\x20\x9e\x90\x93\xcc\x26\x23\x65\xed\xd4\x76\x9a\xdd\x7f\x5f\x39\x80\x04\xaa\xdf\x66\xe6\x78\xce\xe7\xe3\x00\x2b\x3d\x1c\x0d\xb7\x9d\xc3\xe5\xc5\xbf\x57\x28\x3b\xc2\xdd\x58\x91\x51\xe4\xc8\x22\x1e\x5d\xa7\x8d\x0d\x45\x20\x02\xdc\x73\x4d\xca\x52\x83\x51\x35\x64\xe0\x3a\x42\x3c\xc8\xba\xa3\xf7\xc9\x12\x8f\x64\x2c\x6b\x85\xcb\xf0\x02\xa7\x5e\xb0\x78\x1b\x2d\xce\xbe\x88\x00\x47\x3d\x62\x2f\x8f\x50\xda\x61\xb4\x04\xd7\xb1\xc5\x8e\x7b\x02\x1d\x6a\x1a\x1c\x58\xa1\xd6\xfb\xa1\x67\xa9\x6a\xc2\xc4\xae\x9b\x6d\xde\x96\x84\x22\xc0\xf3\xdb\x0a\x5d\x39\xc9\x0a\x12\xb5\x1e\x8e\xd0\xbb\x8f\x3a\x48\x37\x03\xfb\xd3\x39\x37\x5c\x47\xd1\x34\x4d\xa1\x9c\x61\x43\x6d\xda\xa8\x7f\x15\xda\xe8\x3e\x59\x6d\xd2\x62\x73\x7e\x19\x5e\xcc\x57\x1e\x54\x4f\xd6\xc2\xd0\xaf\x91\x0d\x35\xa8\x8e\x90\xc3\xd0\x73\x2d\xab\x9e\xd0\xcb\x09\xda\x40\xb6\x86\xa8\x81\xd3\x9e\x77\x32\xec\x58\xb5\x4b\x58\xbd\x73\x93\x34\x24\x02\x34\x6c\x9d\xe1\x6a\x74\x9f\xc2\x7a\xa7\x63\xfb\x49\xa0\x15\xa4\xc2\x22\x2e\x90\x14\x0b\x7c\x8b\x8b\xa4\x58\x8a\x00\x4f\x49\x79\x9b\x3d\x94\x78\x8a\xf3\x3c\x4e\xcb\x64\x53\x20\xcb\xb1\xca\xd2\x75\x52\x26\x59\x5a\x20\xfb\x8e\x38\x7d\xc6\x5d\x92\xae\x97\x20\x76\x1d\x19\xd0\x61\x30\x9e\x5f\x1b\xb0\x8f\x91\x1a\x9f\x59\x41\xf4\x09\x60\xa7\x5f\x81\xec\x40\x35\xef\xb8\x46\x2f\x55\x3b\xca\x96\xd0\xea\xdf\x64\x14\xab\x16\x03\x99\x3d\x5b\xff\x99\x16\x52\x35\x22\x40\xcf\x7b\x76\xd2\xcd\x9d\xbf\x1e\x15\x0a\x51\xe4\xab\x02\x37\x18\x88\xcc\xf9\x8e\xbd\x40\x64\x05\xbe\xde\xa0\x67\x35\x1e\x44\x9c\xaf\x6e\x7d\x25\xf7\xcd\xd5\x7f\xa2\x8c\xf3\xed\xa6\xf4\xf5\xc9\xe9\xea\x21\x5f\x27\xf9\x99\xd8\x66\x71\xfe\xc3\xb7\xfe\x17\xdb\xec\x3e\x4e\xb7\x2f\x8f\x9b\xbc\x48\xb2\x74\x5e\x22\x1d\x59\xe7\x4d\x5e\xd6\x49\x3e\xfb\x38\x1b\x7d\x34\xa3\xc3\xa0\x8d\x13\xa2\x62\x75\x2d\xfe\x09\xc3\x28\x0c\x23\xde\xcb\x96\xce\x47\xc7\x7d\x68\x3b\x54\xac\x70\x72\xea\x39\xcf\x84\x08\x7f\xde\x66\xe9\xf3\xb5\x6f\x8a\x3f\x01\x00\x00\xff\xff\x11\x9d\x3d\x9a\x07\x03\x00\x00") - -func testImagesPetsRedisInstallerMakefileBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsRedisInstallerMakefile, - "test/images/pets/redis-installer/Makefile", - ) -} - -func testImagesPetsRedisInstallerMakefile() (*asset, error) { - bytes, err := testImagesPetsRedisInstallerMakefileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/redis-installer/Makefile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsRedisInstallerVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe1\x02\x04\x00\x00\xff\xff\xdb\x31\xff\x00\x04\x00\x00\x00") - -func testImagesPetsRedisInstallerVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsRedisInstallerVersion, - "test/images/pets/redis-installer/VERSION", - ) -} - -func testImagesPetsRedisInstallerVersion() (*asset, error) { - bytes, err := testImagesPetsRedisInstallerVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/redis-installer/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsRedisInstallerInstallSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x92\x41\x6f\xe3\x36\x10\x85\xef\xfc\x15\xaf\x52\x0e\xdd\x20\x92\xd2\x14\xe8\xa1\x81\x81\xba\x89\x8b\x0a\x71\x6d\xc0\x72\x12\xec\x69\x41\x4b\x63\x69\x10\x99\x64\x49\x2a\x8a\x91\xe6\xbf\x17\x94\xad\x76\x9d\xb4\x3d\xd4\x27\x8b\x6f\x38\xfc\xe6\xbd\x89\xbf\xc9\x36\xac\xb2\x8d\x74\x8d\x10\x31\x6e\xb4\xd9\x5b\xae\x1b\x8f\xab\xcb\xef\x7e\xc0\xba\x21\xdc\x75\x1b\xb2\x8a\x3c\x39\x4c\x3b\xdf\x68\xeb\x52\x11\x8b\x18\x73\x2e\x49\x39\xaa\xd0\xa9\x8a\x2c\x7c\x43\x98\x1a\x59\x36\x34\x2a\x17\x78\x20\xeb\x58\x2b\x5c\xa5\x97\xf8\x36\x14\x44\x47\x29\xfa\x74\x2d\x62\xec\x75\x87\x9d\xdc\x43\x69\x8f\xce\x11\x7c\xc3\x0e\x5b\x6e\x09\xf4\x52\x92\xf1\x60\x85\x52\xef\x4c\xcb\x52\x95\x84\x9e\x7d\x33\x3c\x73\x6c\x92\x8a\x18\x9f\x8f\x2d\xf4\xc6\x4b\x56\x90\x28\xb5\xd9\x43\x6f\xbf\xae\x83\xf4\x03\x70\xf8\x35\xde\x9b\x1f\xb3\xac\xef\xfb\x54\x0e\xb0\xa9\xb6\x75\xd6\x1e\x0a\x5d\x36\xcf\x6f\x66\x8b\x62\x96\x5c\xa5\x97\xc3\x95\x7b\xd5\x92\x73\xb0\xf4\x7b\xc7\x96\x2a\x6c\xf6\x90\xc6\xb4\x5c\xca\x4d\x4b\x68\x65\x0f\x6d\x21\x6b\x4b\x54\xc1\xeb\xc0\xdb\x5b\xf6\xac\xea\x0b\x38\xbd\xf5\xbd\xb4\x24\x62\x54\xec\xbc\xe5\x4d\xe7\x4f\xcc\x1a\xe9\xd8\x9d\x14\x68\x05\xa9\x10\x4d\x0b\xe4\x45\x84\x9f\xa7\x45\x5e\x5c\x88\x18\x8f\xf9\xfa\xd7\xe5\xfd\x1a\x8f\xd3\xd5\x6a\xba\x58\xe7\xb3\x02\xcb\x15\x6e\x96\x8b\xdb\x7c\x9d\x2f\x17\x05\x96\xbf\x60\xba\xf8\x8c\xbb\x7c\x71\x7b\x01\x62\xdf\x90\x05\xbd\x18\x1b\xf8\xb5\x05\x07\x1b\xa9\x0a\x9e\x15\x44\x27\x00\x5b\x7d\x00\x72\x86\x4a\xde\x72\x89\x56\xaa\xba\x93\x35\xa1\xd6\xcf\x64\x15\xab\x1a\x86\xec\x8e\x5d\x08\xd3\x41\xaa\x4a\xc4\x68\x79\xc7\x5e\xfa\xe1\xe4\xc3\x50\x69\xd8\xa5\x75\x88\xf3\x59\xb7\xdd\x6e\x18\x52\x3a\xd7\xed\x0e\x3e\xd1\x0b\x3b\x1f\xfa\x84\x73\xd7\xc8\x60\xed\x90\xae\x91\x96\x94\x1f\xf3\x63\xc5\x5e\xc4\x28\xb5\x0a\xe1\x92\x4d\x91\xfb\xf1\xcb\x0d\x15\x96\x2a\x76\x60\xe5\xbc\x6c\xdb\x01\x26\x15\xf9\xa2\x58\x4f\xe7\xf3\x2f\x0f\xcb\xf9\xfd\x6f\xb3\x49\x94\x69\xe3\xa3\xff\xc9\x13\xde\x30\x44\x36\xd9\x72\x18\x51\xc4\x03\xd3\xbf\x11\x69\x95\x38\x2f\xad\xcf\xca\x46\xaa\x9a\x82\xb0\xe5\xba\xb3\x03\x18\x5c\x69\xd9\x78\x97\x8a\xc7\xe5\xea\xee\xcb\x6d\xbe\x9a\x44\x59\xaf\xed\x53\x52\xb1\x8d\x84\x78\x98\xad\x8a\x7c\xb9\x98\x44\xdf\xa7\x57\xe9\x65\x24\x44\x88\x85\xc3\x4a\x45\x67\x3f\x45\xa2\xd2\xa2\x94\x8e\x70\x16\x8e\x44\x58\xe5\x84\x27\xe7\x7f\x24\xc9\x71\xf8\x84\x95\xd7\x93\xf3\x4f\x83\xf4\xde\x82\xb3\x57\x8e\xcf\x27\x6f\xd1\x20\xba\x86\xb7\x7e\xf8\x77\x7d\x7d\x68\xd4\x0f\x8d\x46\x96\xb1\xc9\xdf\x98\xff\x7d\xfd\x58\x1e\xa3\x53\x4f\x4a\xf7\x0a\xda\x84\x79\xc7\x12\x72\xb2\x14\x95\x56\x24\x04\x95\x8d\x1e\xc3\x0a\x4b\x75\xf0\x67\x34\x06\x61\x02\x44\x67\xaf\xe3\xc3\x6f\x91\xd8\x3d\x55\x6c\x91\x98\x77\xc7\xa5\x41\x36\x9a\x9d\xba\xe6\x54\xcd\x06\xf9\xab\xd4\xde\xcb\x1f\x38\x86\x2d\x4a\xa2\xb3\xd7\x63\x06\x6f\xd1\x5f\x2c\xa7\x4e\xbe\x23\xfa\x28\x3e\x23\x3b\xac\xe4\x3f\xa8\x07\x45\xfc\x19\x00\x00\xff\xff\xce\xa7\x2e\xcb\x71\x05\x00\x00") - -func testImagesPetsRedisInstallerInstallShBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsRedisInstallerInstallSh, - "test/images/pets/redis-installer/install.sh", - ) -} - -func testImagesPetsRedisInstallerInstallSh() (*asset, error) { - bytes, err := testImagesPetsRedisInstallerInstallShBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/redis-installer/install.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsRedisInstallerOnStartSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x54\x61\x6f\xdb\x36\x14\xfc\xce\x5f\x71\x93\x0c\xa4\x0d\x6c\x39\xeb\x80\x0e\x6b\x61\x0c\x5e\xe2\xb6\x46\x5b\x3b\x88\xdd\x15\x45\xd7\x01\xb4\xf4\x24\x71\xa0\x49\x8d\xa4\xa2\x0a\x49\xfe\xfb\xf0\x28\x67\x8d\xd3\xcd\x1f\x6c\x8b\xe2\xe3\xbb\xbb\x77\xbc\xf4\x87\x69\xeb\xdd\x74\xa7\xcc\x94\xcc\x35\x76\xd2\xd7\x42\xa4\x38\xb7\x4d\xef\x54\x55\x07\x3c\x3b\xfb\xf1\x39\xb6\x35\xe1\x6d\xbb\x23\x67\x28\x90\xc7\xbc\x0d\xb5\x75\x3e\x13\xa9\x48\xf1\x4e\xe5\x64\x3c\x15\x68\x4d\x41\x0e\xa1\x26\xcc\x1b\x99\xd7\x74\xff\x66\x8c\xdf\xc9\x79\x65\x0d\x9e\x65\x67\x78\xc2\x1b\x92\xc3\xab\xe4\xe9\x4b\x91\xa2\xb7\x2d\xf6\xb2\x87\xb1\x01\xad\x27\x84\x5a\x79\x94\x4a\x13\xe8\x6b\x4e\x4d\x80\x32\xc8\xed\xbe\xd1\x4a\x9a\x9c\xd0\xa9\x50\xc7\x36\x87\x43\x32\x91\xe2\xd3\xe1\x08\xbb\x0b\x52\x19\x48\xe4\xb6\xe9\x61\xcb\x87\xfb\x20\x43\x04\xcc\x9f\x3a\x84\xe6\xc5\x74\xda\x75\x5d\x26\x23\xd8\xcc\xba\x6a\xaa\x87\x8d\x7e\xfa\x6e\x79\xbe\x58\x6d\x16\x93\x67\xd9\x59\x2c\xf9\x60\x34\x79\x0f\x47\x7f\xb7\xca\x51\x81\x5d\x0f\xd9\x34\x5a\xe5\x72\xa7\x09\x5a\x76\xb0\x0e\xb2\x72\x44\x05\x82\x65\xbc\x9d\x53\x41\x99\x6a\x0c\x6f\xcb\xd0\x49\x47\x22\x45\xa1\x7c\x70\x6a\xd7\x86\x23\xb1\xee\xd1\x29\x7f\xb4\xc1\x1a\x48\x83\x64\xbe\xc1\x72\x93\xe0\xb7\xf9\x66\xb9\x19\x8b\x14\x1f\x97\xdb\x37\xeb\x0f\x5b\x7c\x9c\x5f\x5d\xcd\x57\xdb\xe5\x62\x83\xf5\x15\xce\xd7\xab\x8b\xe5\x76\xb9\x5e\x6d\xb0\x7e\x85\xf9\xea\x13\xde\x2e\x57\x17\x63\x90\x0a\x35\x39\xd0\xd7\xc6\x31\x7e\xeb\xa0\x58\x46\x2a\x58\xb3\x0d\xd1\x11\x80\xd2\x0e\x80\x7c\x43\xb9\x2a\x55\x0e\x2d\x4d\xd5\xca\x8a\x50\xd9\x6b\x72\x46\x99\x0a\x0d\xb9\xbd\xf2\x3c\x4c\x0f\x69\x0a\x91\x42\xab\xbd\x0a\x32\xc4\x95\xef\x48\x65\x42\x78\x0a\x98\x90\x10\xe7\xaf\x5e\xcf\xa6\xb6\x09\x53\x47\x85\xf2\xc3\x77\x96\x5b\x53\x8a\x37\xeb\xcd\x76\x35\x7f\xbf\x98\x8d\x9e\xd4\xd6\x07\x23\xf7\xf4\x54\x5c\xcc\xb7\xf3\x8b\xe5\xd5\x2c\x99\x16\x32\xc8\x44\xa4\xb8\xb4\x2e\xb0\x2a\x5d\xad\xf2\x1a\xb1\x1e\x5a\xf9\x40\xc6\x47\xe8\xb9\x35\x86\xf2\x08\x24\x13\x97\xeb\xab\xed\xec\xf9\x4f\x3f\xff\xc2\x66\xbe\x64\xe4\x74\x4d\xae\xb7\x86\xb0\x6b\x03\x6c\xeb\x3c\xe9\x92\x67\xe5\x89\xa0\xa2\x4f\x1c\x9d\x78\x48\xec\xa5\x0f\xe4\x32\xac\x8d\xee\xc1\x05\x0d\x05\xf8\x20\x5d\xf0\xd1\x41\x90\x08\x6a\x4f\x3c\x59\x2e\xec\x08\x85\x35\x27\x21\x1e\x74\x5f\xcd\xab\xb9\x34\x90\xde\xb7\xfb\x41\xe5\xc6\x7a\xc5\xe0\x78\xce\xdc\x3e\x13\x5d\xcd\x16\x77\x24\x0b\x4c\x9c\xc4\xbb\xe5\x6a\xf1\x12\x85\x15\xec\x4f\x55\xe2\xf3\x67\x24\xa3\x1b\x5e\xfd\x7c\xf6\xe5\x2e\xc1\x6c\x86\xd3\x64\x74\x73\xaf\xd6\x5d\x72\x8a\x2f\x5f\x5e\xf2\xd9\x26\x96\xf0\x87\xaf\xe1\x44\x61\x42\x48\xfc\xed\x9f\x3b\x65\x8a\xec\x74\x74\xcb\xbf\xf8\x76\xd4\x6d\x82\xd1\xcd\xf9\xab\xd7\x77\xb1\x8c\x34\xf7\x42\x32\x7a\xf2\x78\x3a\x93\x5c\x2b\x4c\xea\x63\x14\xca\x94\x16\xb7\xa8\x1c\x35\x70\x56\x13\x6e\x63\xd3\x13\x3f\xfe\xc3\x8d\xc6\xe3\x93\xa7\x09\x66\x48\xf8\xcd\x8b\x41\x8a\x04\x8f\x41\xa6\xd8\xae\x2f\xd6\x2f\xf0\xde\x3a\xa6\xcf\x96\xcf\x83\xba\xe6\xff\x15\x7d\xfd\xf5\x7f\xc8\xa4\xf0\x5a\x5e\x93\x2d\x99\xd1\xe1\xef\x03\x52\x18\xdd\xf0\xcc\x1f\x91\x2b\x95\x28\xac\x21\x11\xdd\x1e\xe2\x1c\xd8\x4e\x28\x94\xa3\x3c\x58\xd7\x47\xe7\xc8\xa6\x21\xc3\x37\x4e\xf7\xd0\xb6\x62\x63\xc3\x1b\xd9\xf8\xda\x86\x98\x43\x3e\xc3\x96\x33\xc9\xd7\xb6\xd5\x6c\xfa\x1d\x8f\xba\xe1\x54\x63\xff\x05\x5c\x5b\xcd\x73\x3e\xd8\x70\x58\xcd\xfb\x4c\x1c\x53\xc8\x4e\x0b\xe5\xc0\xf8\xf9\x77\x74\x73\xf0\xf8\x03\xcc\x22\x8d\x51\xfb\x18\x90\xf2\x31\x4f\x02\x99\xd8\x22\x5a\x19\x9b\xc5\x16\xb6\x21\x17\xef\x5e\x86\x8f\x2a\xd4\xb6\x0d\x43\x78\x7a\x0a\x31\x7d\x44\x7a\xb8\x28\x7f\xb5\x3e\xfc\xcb\xc9\x33\x74\x65\x0b\x95\x4b\xad\xfb\xc3\x85\x62\x5b\x72\x3f\x2f\xcb\x81\x88\x44\x1e\x83\x71\xa0\xde\x29\xad\x45\x8a\xc6\xd9\xa2\xcd\x89\xa3\x69\x00\xc9\x35\x99\xb4\xe5\x90\xd7\xca\x44\x8d\xf9\x5a\xab\xaa\xe5\xa4\xbc\x97\xfb\xb1\x16\xdf\xaa\xa3\x20\x0f\x1e\x7b\xf2\x47\x82\x2c\x22\x5b\xe6\x4f\x08\x4e\x55\x15\x39\xce\x1e\x94\xbe\x37\x79\x86\x2b\xca\xed\x7e\x4f\xa6\xe0\x66\x54\xca\x56\x07\xe6\x92\x44\x91\x3c\xe5\xc9\x78\x20\x28\xd2\xef\x29\xce\x2f\xef\x63\xfc\x10\x1b\xff\x85\x31\xf6\x79\x00\x72\x78\x96\xba\x93\xfd\x43\xa0\xe2\x9f\x00\x00\x00\xff\xff\xce\x83\xcb\x23\x4a\x07\x00\x00") - -func testImagesPetsRedisInstallerOnStartShBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsRedisInstallerOnStartSh, - "test/images/pets/redis-installer/on-start.sh", - ) -} - -func testImagesPetsRedisInstallerOnStartSh() (*asset, error) { - bytes, err := testImagesPetsRedisInstallerOnStartShBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/redis-installer/on-start.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsZookeeperInstallerBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\xcd\xb6\x28\xd6\x4b\x4f\x2e\xd2\xcb\xcc\xd7\x4f\x49\x4d\xca\x4c\xcc\xd3\x4d\x4a\x2c\x4e\xd5\x05\x4b\x5a\x19\xe8\x99\xe8\x19\x72\x41\x95\x17\xe5\xe2\x54\x5c\x94\x8b\xae\x14\x8f\xc9\x20\x49\x14\xe5\x05\x05\xc9\x66\x26\x39\xa9\xb8\x34\x40\xa5\xa1\x5a\x00\x01\x00\x00\xff\xff\x2a\x1e\xc7\x42\xbc\x00\x00\x00") - -func testImagesPetsZookeeperInstallerBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsZookeeperInstallerBaseimage, - "test/images/pets/zookeeper-installer/BASEIMAGE", - ) -} - -func testImagesPetsZookeeperInstallerBaseimage() (*asset, error) { - bytes, err := testImagesPetsZookeeperInstallerBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/zookeeper-installer/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsZookeeperInstallerDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x93\x51\x6f\xdb\x36\x14\x85\xdf\xf9\x2b\x0e\xac\xa1\xdb\x80\x48\xca\x3a\x64\x03\xba\x27\xd5\x56\x5b\xa1\x89\xd4\x49\xf6\x8a\x60\x1b\x0a\x4a\xba\x96\x88\x49\x24\x43\x52\x51\x9c\x5f\x3f\x50\x76\x10\x07\x2b\x3a\x3f\xd9\xe4\x3d\x87\xe7\x7e\xf7\x3a\xc0\x5a\xe9\x83\x11\x5d\xef\xf0\xfa\xf2\xa7\x5f\xb0\xed\x09\x1f\xa7\x9a\x8c\x24\x47\x16\xc9\xe4\x7a\x65\x6c\xc4\x02\x16\xe0\x5a\x34\x24\x2d\xb5\x98\x64\x4b\x06\xae\x27\x24\x9a\x37\x3d\x3d\xdd\x5c\xe0\x0f\x32\x56\x28\x89\xd7\xd1\x25\x7e\xf0\x05\xab\xd3\xd5\xea\xc7\xdf\x58\x80\x83\x9a\x30\xf2\x03\xa4\x72\x98\x2c\xc1\xf5\xc2\x62\x2f\x06\x02\x3d\x34\xa4\x1d\x84\x44\xa3\x46\x3d\x08\x2e\x1b\xc2\x2c\x5c\xbf\x3c\x73\x32\x89\x58\x80\xdb\x93\x85\xaa\x1d\x17\x12\x1c\x8d\xd2\x07\xa8\xfd\x79\x1d\xb8\x5b\x02\xfb\x4f\xef\x9c\x7e\x13\xc7\xf3\x3c\x47\x7c\x09\x1b\x29\xd3\xc5\xc3\xb1\xd0\xc6\xd7\xd9\x3a\xcd\xab\x34\x7c\x1d\x5d\x2e\x92\x9d\x1c\xc8\x5a\x18\xba\x9b\x84\xa1\x16\xf5\x01\x5c\xeb\x41\x34\xbc\x1e\x08\x03\x9f\xa1\x0c\x78\x67\x88\x5a\x38\xe5\xf3\xce\x46\x38\x21\xbb\x0b\x58\xb5\x77\x33\x37\xc4\x02\xb4\xc2\x3a\x23\xea\xc9\xbd\x80\xf5\x94\x4e\xd8\x17\x05\x4a\x82\x4b\xac\x92\x0a\x59\xb5\xc2\xdb\xa4\xca\xaa\x0b\x16\xe0\x73\xb6\xfd\x50\xec\xb6\xf8\x9c\x94\x65\x92\x6f\xb3\xb4\x42\x51\x62\x5d\xe4\x9b\x6c\x9b\x15\x79\x85\xe2\x1d\x92\xfc\x16\x1f\xb3\x7c\x73\x01\x12\xae\x27\x03\x7a\xd0\xc6\xe7\x57\x06\xc2\x63\xa4\xd6\x33\xab\x88\x5e\x04\xd8\xab\x63\x20\xab\xa9\x11\x7b\xd1\x60\xe0\xb2\x9b\x78\x47\xe8\xd4\x3d\x19\x29\x64\x07\x4d\x66\x14\xd6\x0f\xd3\x82\xcb\x96\x05\x18\xc4\x28\x1c\x77\xcb\xc9\x7f\x9a\x8a\x18\x0b\xb0\x2d\x36\xc5\x1b\x74\xe4\x60\x44\xeb\x67\x52\x73\xdb\xa3\x25\x4d\xb2\x25\xd9\x1c\xbc\x11\xec\x2c\x5c\xd3\x7b\x78\x7a\xf0\x13\xac\x27\x7b\xa8\xd5\x83\xcf\xe9\x97\xcf\x71\x83\xe7\x53\xf0\xc1\x2a\xb4\x8a\xac\xfc\xde\xc1\x12\x8d\x5e\xb8\xbc\x6e\x9d\x77\xf3\xdb\xe2\x3b\x16\x4a\x46\x2c\x29\xdf\x7b\x7e\x69\x76\x93\xbc\x4f\xd9\xbb\xb2\xb8\xc1\x77\xcf\xbf\xd9\xba\x2c\xaa\xea\xcb\xdb\x5d\x76\xbd\xf9\xb2\x2e\x3e\xdd\xe2\x8e\xc6\x29\xfc\x3d\xbd\xd9\x25\xe5\xfa\x43\x68\x7d\x73\x0d\xe2\xc9\x9a\xb8\x16\x32\x66\xac\xdc\xe5\x68\x06\xe2\x32\x14\xd2\x3a\x3e\x0c\x98\x7d\x73\x4b\x57\x92\x5c\xc3\x1d\x63\xc9\x66\x03\x25\xbd\xd8\xb8\xc8\xf6\x88\x19\x5b\xbc\x35\x91\x09\xf7\x62\xe1\x14\xb3\xd3\x10\xca\x34\xd9\xdc\xa4\xd1\xd8\x2e\xd6\x8b\x59\x78\x87\xb0\x40\xfc\xa8\xd4\x3f\x44\x9a\x4c\xf8\x73\x74\x15\x5d\x86\x7c\xd0\x3d\x8f\x1c\x37\x51\xf7\xf8\xb4\xc3\xdc\x34\xbd\xb8\xa7\xf3\x3d\xf6\x7b\xf4\xac\xfd\xba\xcb\xb7\xbd\x5f\xbd\xc2\x5f\xcc\xff\x51\x3c\xf8\xf0\xe1\x71\xff\x3f\x59\xc2\x35\x62\x37\xea\xd8\x0b\xc7\xfb\xe3\xf7\xaf\x0a\xce\x7c\x7c\xad\x19\xbf\x6d\x7c\x24\x79\xe2\x7c\x04\xb9\xe0\xef\x47\xd5\x22\x6c\xf0\xeb\xd5\x15\xe2\xf3\xeb\x17\xd0\xcf\x68\xb3\x34\xdf\x96\xb7\x9f\x8a\x2c\xdf\xe2\xcf\xd5\x99\x64\xf5\x37\xfb\x37\x00\x00\xff\xff\xde\x7f\x41\x2e\xef\x04\x00\x00") - -func testImagesPetsZookeeperInstallerDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsZookeeperInstallerDockerfile, - "test/images/pets/zookeeper-installer/Dockerfile", - ) -} - -func testImagesPetsZookeeperInstallerDockerfile() (*asset, error) { - bytes, err := testImagesPetsZookeeperInstallerDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/zookeeper-installer/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsZookeeperInstallerMakefile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x51\x4f\xdc\x3a\x10\x85\x9f\xaf\x7f\xc5\xd1\x86\x07\x90\x96\x84\x8b\xae\xb8\x12\x15\xaa\xd2\xdd\xed\x12\x41\x93\x2a\x09\x20\x9e\x90\x93\xcc\x26\x23\x65\xed\xd4\x76\x9a\xdd\x7f\x5f\x39\x80\x04\xaa\xdf\x66\xe6\x78\xce\xe7\xe3\x00\x2b\x3d\x1c\x0d\xb7\x9d\xc3\xe5\xc5\xbf\x57\x28\x3b\xc2\xdd\x58\x91\x51\xe4\xc8\x22\x1e\x5d\xa7\x8d\x0d\x45\x20\x02\xdc\x73\x4d\xca\x52\x83\x51\x35\x64\xe0\x3a\x42\x3c\xc8\xba\xa3\xf7\xc9\x12\x8f\x64\x2c\x6b\x85\xcb\xf0\x02\xa7\x5e\xb0\x78\x1b\x2d\xce\xbe\x88\x00\x47\x3d\x62\x2f\x8f\x50\xda\x61\xb4\x04\xd7\xb1\xc5\x8e\x7b\x02\x1d\x6a\x1a\x1c\x58\xa1\xd6\xfb\xa1\x67\xa9\x6a\xc2\xc4\xae\x9b\x6d\xde\x96\x84\x22\xc0\xf3\xdb\x0a\x5d\x39\xc9\x0a\x12\xb5\x1e\x8e\xd0\xbb\x8f\x3a\x48\x37\x03\xfb\xd3\x39\x37\x5c\x47\xd1\x34\x4d\xa1\x9c\x61\x43\x6d\xda\xa8\x7f\x15\xda\xe8\x3e\x59\x6d\xd2\x62\x73\x7e\x19\x5e\xcc\x57\x1e\x54\x4f\xd6\xc2\xd0\xaf\x91\x0d\x35\xa8\x8e\x90\xc3\xd0\x73\x2d\xab\x9e\xd0\xcb\x09\xda\x40\xb6\x86\xa8\x81\xd3\x9e\x77\x32\xec\x58\xb5\x4b\x58\xbd\x73\x93\x34\x24\x02\x34\x6c\x9d\xe1\x6a\x74\x9f\xc2\x7a\xa7\x63\xfb\x49\xa0\x15\xa4\xc2\x22\x2e\x90\x14\x0b\x7c\x8b\x8b\xa4\x58\x8a\x00\x4f\x49\x79\x9b\x3d\x94\x78\x8a\xf3\x3c\x4e\xcb\x64\x53\x20\xcb\xb1\xca\xd2\x75\x52\x26\x59\x5a\x20\xfb\x8e\x38\x7d\xc6\x5d\x92\xae\x97\x20\x76\x1d\x19\xd0\x61\x30\x9e\x5f\x1b\xb0\x8f\x91\x1a\x9f\x59\x41\xf4\x09\x60\xa7\x5f\x81\xec\x40\x35\xef\xb8\x46\x2f\x55\x3b\xca\x96\xd0\xea\xdf\x64\x14\xab\x16\x03\x99\x3d\x5b\xff\x99\x16\x52\x35\x22\x40\xcf\x7b\x76\xd2\xcd\x9d\xbf\x1e\x15\x0a\x51\xe4\xab\x02\x37\x18\x88\xcc\xf9\x8e\xbd\x40\x64\x05\xbe\xde\xa0\x67\x35\x1e\x44\x9c\xaf\x6e\x7d\x25\xf7\xcd\xd5\x7f\xa2\x8c\xf3\xed\xa6\xf4\xf5\xc9\xe9\xea\x21\x5f\x27\xf9\x99\xd8\x66\x71\xfe\xc3\xb7\xfe\x17\xdb\xec\x3e\x4e\xb7\x2f\x8f\x9b\xbc\x48\xb2\x74\x5e\x22\x1d\x59\xe7\x4d\x5e\xd6\x49\x3e\xfb\x38\x1b\x7d\x34\xa3\xc3\xa0\x8d\x13\xa2\x62\x75\x2d\xfe\x09\xc3\x28\x0c\x23\xde\xcb\x96\xce\x47\xc7\x7d\x68\x3b\x54\xac\x70\x72\xea\x39\xcf\x84\x08\x7f\xde\x66\xe9\xf3\xb5\x6f\x8a\x3f\x01\x00\x00\xff\xff\x11\x9d\x3d\x9a\x07\x03\x00\x00") - -func testImagesPetsZookeeperInstallerMakefileBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsZookeeperInstallerMakefile, - "test/images/pets/zookeeper-installer/Makefile", - ) -} - -func testImagesPetsZookeeperInstallerMakefile() (*asset, error) { - bytes, err := testImagesPetsZookeeperInstallerMakefileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/zookeeper-installer/Makefile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsZookeeperInstallerVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe1\x02\x04\x00\x00\xff\xff\xdb\x31\xff\x00\x04\x00\x00\x00") - -func testImagesPetsZookeeperInstallerVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsZookeeperInstallerVersion, - "test/images/pets/zookeeper-installer/VERSION", - ) -} - -func testImagesPetsZookeeperInstallerVersion() (*asset, error) { - bytes, err := testImagesPetsZookeeperInstallerVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/zookeeper-installer/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsZookeeperInstallerInstallSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x55\xef\x6f\xdb\x36\x10\xfd\xce\xbf\xe2\x95\xf2\x87\xa4\x88\xe4\xb4\xeb\x86\xa1\xa9\xbb\x79\x89\x8b\x09\xcd\x6c\xc0\x72\x5b\x14\x45\x51\xd0\xd2\xd9\xba\x45\x26\x35\x92\xb2\x9a\x65\xf9\xdf\x07\xca\x76\x7e\xa7\x58\xe7\x4f\x96\xee\xf1\xee\xf1\xbd\xbb\x53\xf4\x04\xfd\x39\xeb\xfe\x5c\xb9\x52\x88\x08\xc7\xa6\x3e\xb7\xbc\x2c\x3d\x9e\x1f\x3e\xfb\x09\xb3\x92\xf0\xb6\x99\x93\xd5\xe4\xc9\x61\xd8\xf8\xd2\x58\x97\x88\x48\x44\x38\xe5\x9c\xb4\xa3\x02\x8d\x2e\xc8\xc2\x97\x84\x61\xad\xf2\x92\x76\x91\x03\xbc\x27\xeb\xd8\x68\x3c\x4f\x0e\xb1\x17\x00\x72\x1b\x92\xfb\x47\x22\xc2\xb9\x69\xb0\x52\xe7\xd0\xc6\xa3\x71\x04\x5f\xb2\xc3\x82\x2b\x02\x7d\xcd\xa9\xf6\x60\x8d\xdc\xac\xea\x8a\x95\xce\x09\x2d\xfb\xb2\x2b\xb3\x4d\x92\x88\x08\x1f\xb7\x29\xcc\xdc\x2b\xd6\x50\xc8\x4d\x7d\x0e\xb3\xb8\x89\x83\xf2\x1d\xe1\xf0\x2b\xbd\xaf\x5f\xf6\xfb\x6d\xdb\x26\xaa\x23\x9b\x18\xbb\xec\x57\x1b\xa0\xeb\x9f\xa6\xc7\xa3\x71\x36\x8a\x9f\x27\x87\xdd\x91\x77\xba\x22\xe7\x60\xe9\xaf\x86\x2d\x15\x98\x9f\x43\xd5\x75\xc5\xb9\x9a\x57\x84\x4a\xb5\x30\x16\x6a\x69\x89\x0a\x78\x13\xf8\xb6\x96\x3d\xeb\xe5\x01\x9c\x59\xf8\x56\x59\x12\x11\x0a\x76\xde\xf2\xbc\xf1\xb7\xc4\xda\xb1\x63\x77\x0b\x60\x34\x94\x86\x1c\x66\x48\x33\x89\xdf\x86\x59\x9a\x1d\x88\x08\x1f\xd2\xd9\xef\x93\x77\x33\x7c\x18\x4e\xa7\xc3\xf1\x2c\x1d\x65\x98\x4c\x71\x3c\x19\x9f\xa4\xb3\x74\x32\xce\x30\x79\x83\xe1\xf8\x23\xde\xa6\xe3\x93\x03\x10\xfb\x92\x2c\xe8\x6b\x6d\x03\x7f\x63\xc1\x41\x46\x2a\x82\x66\x19\xd1\x2d\x02\x0b\xb3\x21\xe4\x6a\xca\x79\xc1\x39\x2a\xa5\x97\x8d\x5a\x12\x96\x66\x4d\x56\xb3\x5e\xa2\x26\xbb\x62\x17\xcc\x74\x50\xba\x10\x11\x2a\x5e\xb1\x57\xbe\x7b\x73\xef\x52\x49\xe8\xa5\x59\xb0\x73\x6d\xaa\x66\xd5\x5d\x52\x39\xd7\xac\x36\x3a\xd1\x57\x76\x3e\xe4\x09\xef\x5d\xa9\x82\xb4\x9d\xbb\xb5\xb2\xa4\xfd\xce\x3f\xd6\xec\x45\x84\xdc\xe8\x60\x2e\xd9\x04\xa9\xdf\x3d\xb9\x0e\xf1\xb7\x31\x67\x44\x35\x59\xb0\x76\x5e\x55\x55\x47\x28\x11\xe9\x38\x9b\x0d\x4f\x4f\xbf\xbc\x9f\x9c\xbe\xfb\x63\x34\x90\x7d\x53\x7b\xf9\x3f\x39\x85\x3a\x35\x91\x8d\x17\x1c\xae\x29\xa2\x8e\xd7\x63\xac\x8c\x8e\x9d\x57\xd6\xf7\xf3\x52\xe9\x25\x85\xc0\x82\x97\x8d\xed\x88\xc1\xe5\x96\x6b\xef\x12\xf1\x61\x32\x7d\x7b\x92\x4e\xaf\x09\xb6\xc6\x9e\xc5\x05\xdb\x8e\xe5\xd0\x05\x09\x86\xb5\xe5\x2a\xee\xe6\x90\x1d\x7e\x48\x5e\x24\x3f\x87\x3f\x81\x4f\xa5\x3c\x39\x0f\xe7\x43\x1f\x1e\x60\xde\x78\xac\x37\xb3\x16\x80\x3f\x26\x87\x30\xba\x55\x36\xf8\xa4\xaa\xca\xb4\x28\xce\xb5\x5a\x71\x0e\x4b\xb7\x08\x25\xe2\xfd\x68\x9a\xa5\x93\xf1\x40\x76\xc7\x62\x55\xd5\xa5\x92\x42\x84\x9e\xe0\xd0\xcf\xb2\xf7\xab\x14\x85\x11\xb9\x72\x84\x5e\x78\x25\xc2\x1c\xc5\x3c\x78\xfa\x4f\x1c\x6f\x55\x8f\x59\x7b\x33\x78\xba\xdf\x85\xee\x6a\xdf\xbb\xe0\xe8\xe9\xe0\x52\x76\x41\x57\xf2\xc2\x77\xff\x8e\x8e\x36\x89\xda\x2e\xd1\xee\xfa\xbb\x24\x77\xf5\xf9\x76\x92\xed\xa1\x08\x8d\x3e\xd3\xa6\xd5\x30\x75\xb8\xdd\x0e\x42\x4e\xe5\xa2\x30\x9a\x84\xa0\xbc\x34\xbb\x5e\x09\x7d\xbd\x51\x63\xe7\x0b\xc2\x3d\x20\x7b\x17\xb7\xcb\x5f\x4a\xb1\x3a\x2b\xd8\x22\xae\x1f\x0c\xe6\x35\xfa\x3b\xdf\x13\x57\x3e\x84\xe9\x77\xa0\x1b\x6d\xf4\x30\xe8\x1e\xbf\xab\x06\x8f\x65\xef\x62\xeb\xd5\xa5\xbc\xe2\x79\x5b\xeb\x3b\x3c\xef\x07\xd7\xe8\x5f\x4f\xcc\x03\x88\xeb\x68\xa0\xfb\x4d\x40\x3f\x28\x17\x1e\xbf\x38\xb5\xaa\x2b\x4a\xf2\xc5\xf2\x3f\x9e\x08\xd0\x6e\x16\x27\x27\x93\x97\xc8\x4a\xd3\x54\xc5\x55\x83\x6e\x0d\x99\x13\x3c\x6f\x06\x33\xf4\xfb\xb6\xb9\x7f\x11\xe9\x9b\x6c\x20\x13\x09\x4b\xaa\x40\x6c\x15\xa6\xa3\xd3\xd1\x30\x1b\xe1\xd5\xab\x57\xb8\x29\x91\xe0\x05\x3e\x41\xf6\xf6\xf6\x64\xef\x62\x0b\xfa\xf4\xec\xf3\xa5\xdc\xdf\x97\x88\x97\x1e\x2f\xf0\xf9\x28\xe4\xde\x74\x49\xa7\xfb\x23\x62\xbb\xa6\xae\x8d\xf5\xee\xb1\x21\x3a\x00\x69\x35\xef\xec\x62\x7f\x9d\x4d\x3a\xaf\x74\xa1\x2a\xa3\x69\x14\xe2\x54\x0c\x16\xaa\x72\x24\xf1\xfa\xf5\xf7\x28\x75\x9d\x70\x5b\xff\xb8\x2b\xfe\x86\x2b\x1a\xdc\xcb\xf2\x48\x92\x64\x7b\xf4\x7b\x6b\x2f\xf8\xda\xa8\x6e\x75\x86\x9d\x89\x52\xe5\x67\x07\xd0\xe4\x73\xe5\xc3\x9b\xdc\xe8\x35\x69\x0e\x9b\xdb\x1b\x94\x6a\x1d\x56\xf7\x9d\xfd\x7c\xb5\x2e\x45\x84\x14\xad\xda\x60\xd5\xda\x70\x81\xc6\x05\xed\x14\xf2\xc6\x79\xb3\xba\xb9\xd4\x57\xe1\x2b\xf4\x67\xe3\xfc\xf6\x23\xc5\x2e\x41\x66\x36\x1f\x79\xf6\x89\x18\x1f\x0f\x7a\x7b\x6d\xc9\x79\x09\x9d\xef\xef\x3c\xbf\x18\x1f\x5f\x4a\x3c\x19\x40\xca\xfb\x26\x87\xb3\xa1\x9c\xce\x1f\x9f\xa2\x00\xde\x0c\x40\x97\xe9\x21\xc8\x82\xc5\xbf\x01\x00\x00\xff\xff\xa3\xa5\x09\x26\x3c\x09\x00\x00") - -func testImagesPetsZookeeperInstallerInstallShBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsZookeeperInstallerInstallSh, - "test/images/pets/zookeeper-installer/install.sh", - ) -} - -func testImagesPetsZookeeperInstallerInstallSh() (*asset, error) { - bytes, err := testImagesPetsZookeeperInstallerInstallShBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/zookeeper-installer/install.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesPetsZookeeperInstallerOnStartSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x57\x61\x6f\xdb\x38\x12\xfd\xae\x5f\xf1\x56\x36\xd0\xa4\x17\xcb\x49\x7a\x77\x08\xdc\x3a\x38\x37\x71\x77\x8d\xb6\xc9\x22\x4e\xb7\x28\x82\xa0\xa0\xa5\xb1\xc5\x2d\x45\xaa\x24\x15\xc7\xcd\xfa\xbf\x1f\x86\x92\x6c\x27\xb7\xdd\xc3\x02\x4d\xbe\x58\x12\x39\x9c\x79\xf3\xe6\xcd\xb0\xf3\x13\xfa\x33\xa9\xfb\x33\xe1\xf2\x28\xea\xe0\xcc\x94\x2b\x2b\x17\xb9\xc7\xf1\xe1\xd1\xbf\x71\x9d\x13\xde\x56\x33\xb2\x9a\x3c\x39\x8c\x2a\x9f\x1b\xeb\x92\xa8\x13\x75\xf0\x4e\xa6\xa4\x1d\x65\xa8\x74\x46\x16\x3e\x27\x8c\x4a\x91\xe6\xd4\x7e\x39\xc0\x6f\x64\x9d\x34\x1a\xc7\xc9\x21\xf6\x78\x41\xdc\x7c\x8a\xf7\x5f\x46\x1d\xac\x4c\x85\x42\xac\xa0\x8d\x47\xe5\x08\x3e\x97\x0e\x73\xa9\x08\x74\x9f\x52\xe9\x21\x35\x52\x53\x94\x4a\x0a\x9d\x12\x96\xd2\xe7\xe1\x98\xc6\x48\x12\x75\xf0\xa9\x31\x61\x66\x5e\x48\x0d\x81\xd4\x94\x2b\x98\xf9\xee\x3a\x08\x1f\x1c\xe6\xbf\xdc\xfb\x72\xd0\xef\x2f\x97\xcb\x44\x04\x67\x13\x63\x17\x7d\x55\x2f\x74\xfd\x77\x93\xb3\xf1\xc5\x74\xdc\x3b\x4e\x0e\xc3\x96\x0f\x5a\x91\x73\xb0\xf4\xb5\x92\x96\x32\xcc\x56\x10\x65\xa9\x64\x2a\x66\x8a\xa0\xc4\x12\xc6\x42\x2c\x2c\x51\x06\x6f\xd8\xdf\xa5\x95\x5e\xea\xc5\x01\x9c\x99\xfb\xa5\xb0\x14\x75\x90\x49\xe7\xad\x9c\x55\xfe\x11\x58\xad\x77\xd2\x3d\x5a\x60\x34\x84\x46\x3c\x9a\x62\x32\x8d\xf1\x7a\x34\x9d\x4c\x0f\xa2\x0e\x3e\x4e\xae\x7f\xb9\xfc\x70\x8d\x8f\xa3\xab\xab\xd1\xc5\xf5\x64\x3c\xc5\xe5\x15\xce\x2e\x2f\xce\x27\xd7\x93\xcb\x8b\x29\x2e\xdf\x60\x74\xf1\x09\x6f\x27\x17\xe7\x07\x20\xe9\x73\xb2\xa0\xfb\xd2\xb2\xff\xc6\x42\x32\x8c\x94\x31\x66\x53\xa2\x47\x0e\xcc\x4d\xed\x90\x2b\x29\x95\x73\x99\x42\x09\xbd\xa8\xc4\x82\xb0\x30\x77\x64\xb5\xd4\x0b\x94\x64\x0b\xe9\x38\x99\x0e\x42\x67\x51\x07\x4a\x16\xd2\x0b\x1f\xde\xfc\x4f\x50\x49\x14\x39\xf2\xe8\x91\x41\x29\x4b\x9a\x0b\xa9\x98\x5d\xd7\x9c\x60\x97\x5a\x59\x7a\xa4\x46\xcf\xe5\xa2\xb2\xe4\xf0\xcd\x98\x2f\x44\x25\x59\xa4\xaa\x72\x9e\x2c\x0a\x2a\x66\x64\xe1\x72\x59\x06\xf7\xee\x1a\x22\x99\xf9\x76\x71\xd4\xc1\xe9\x10\x2f\x92\x7f\x25\x87\x09\x26\x1e\x2e\x37\x95\xca\x02\x99\x66\xc4\x7c\xca\xb6\x8c\x31\xba\x97\xe6\x42\x2f\x28\x71\x79\xeb\x80\xd4\x35\xe1\xe8\x5e\x14\xa5\x0a\x6c\x1a\x39\x3e\x61\x54\x5a\xa9\x7a\x81\xff\xd2\xe1\x45\xf2\xcf\xe4\x84\x7f\xb0\x1d\x25\x3c\x39\x0f\xe7\x39\xff\x09\x87\xf4\xda\xf8\x1c\x7d\x53\x7a\x86\x05\x7d\x5f\x94\xfd\x6d\x38\xc2\x12\x84\x73\x55\x51\xd3\x63\x46\xb8\x33\xaa\x2a\xc8\xc1\xe5\xc2\xee\x3a\x58\x0a\x4b\xda\x27\x01\xa3\x90\x91\x42\x78\xf6\x85\x44\x9a\x43\x49\x4d\xb5\xbb\x84\x6c\xa5\x45\x21\xd3\x06\xbe\xba\x5a\xa4\x1b\x44\x1d\x38\xb2\x77\x64\x93\x57\x47\x98\x09\x0e\x5e\xea\x8c\xee\x4f\x87\xaf\xea\xf7\xbd\x4c\xbb\x9e\x16\x05\x9d\x0e\x5e\x95\x44\x16\xa5\xb1\xfe\x74\xf0\x8a\x14\xa5\x9c\xc4\xfa\xf9\x66\x60\x8d\xa2\xdb\x97\x37\xaf\x52\x25\x49\xfb\xf0\x16\x22\xcb\x98\x46\xa7\x83\xdb\xdd\xd7\xa7\x51\x07\x4f\x0e\x6b\x61\xaa\x8f\xac\x5f\xc2\xe7\xc2\xa3\x10\x3e\xcd\xa9\xfe\x2a\x79\x39\x32\xe1\x45\x26\x6d\xbf\x58\x49\xa6\xd3\x8e\x53\xad\x95\x70\xb6\xd1\x58\xe6\x32\xcd\xc1\xdf\x1d\xcb\x41\x51\x69\x99\x0a\x4f\x8c\x68\x28\x3d\x5e\x53\x95\x19\xa7\x86\x0d\x3d\x8e\xe8\x91\xb1\x40\x0a\xe6\x93\x22\xc1\x8c\x6d\x97\x46\x1d\x34\x91\x23\x15\x9a\xf3\xc4\xec\xf5\x06\x66\x56\x87\x72\xc0\x09\xf2\x32\x95\xa5\xd0\x9e\x55\x20\xa3\xb9\xa8\x94\xe7\xf3\xfe\x0c\x29\x3e\xd5\x94\x6c\x5a\xa8\x40\x8c\x66\xbd\x63\xa3\x87\x49\xf8\x7f\xb2\xf7\x3b\x61\xef\xc0\x29\x52\x16\x45\x87\x66\x53\x6a\xb4\xae\xdd\x77\x51\x74\xf6\xe6\xe7\x21\xb3\x70\x4b\xbe\x3e\x33\x84\x1f\x93\x74\xbe\x48\x1a\xda\xf0\xba\xcf\xaf\x47\x6f\xff\x72\xed\x4c\x7c\x89\xde\x7f\xfa\x3c\x39\xff\xfc\x66\xf2\x6e\x3c\x7c\xcc\xe9\x3a\x5f\xbf\x5c\x4e\xaf\x2f\x46\xef\xc7\xc3\xee\x5e\x6e\x9c\x67\x5e\xed\x47\xd1\x32\x67\x36\x5a\x12\x19\x7a\x56\xe0\xdd\xe4\x62\xfc\x12\x99\x89\x58\x78\x7f\x1d\x8f\xaf\xa6\xc3\xbd\xb8\xfb\x10\x7e\xdd\xfc\xe7\x76\x1d\x23\xee\x3e\xf0\xa2\x9b\xc3\xdb\x75\xbc\x1f\x65\x46\x13\x97\xd4\xb9\xd1\xcf\x02\x94\x21\xf8\xb9\xb4\xce\xb7\x82\x20\x58\x7d\x36\x59\x89\xe4\x1c\x37\xe8\x3e\x74\x36\x26\xd1\xa3\xaf\x38\xc2\xed\x4b\xde\xaa\xc3\xc1\x1d\x7c\x24\xe8\x46\xa0\x59\x9d\x09\xa6\x6a\xb9\xd9\x6a\x80\x92\x2e\x94\x5b\x6d\xd7\x41\x6a\x6f\xb0\xc5\x20\x69\x2c\x5d\x18\xa6\x1d\xf3\x39\xec\x6a\x7b\x97\x50\x4b\xb1\x62\x6e\x4a\x9d\xca\x6c\xa7\x51\xb5\xd8\x40\x66\xb5\x09\x4a\x73\x83\x23\x9c\x72\xe4\x5b\xf3\xeb\x78\xfb\x31\x6e\xca\xf8\x68\xd8\x22\x75\x78\xbb\x1e\x1c\x9f\x9c\x9c\x0c\x5e\x9c\x9c\x9c\xbc\x3c\x3e\x3a\x39\x8a\x6b\x03\x67\x6f\x7e\x6e\x76\x76\x70\x7d\x79\x7e\x39\xc0\xb7\x2f\xd3\xba\xd8\xa5\x96\x5e\x0a\x25\xbf\xd1\xa6\x24\xc5\x9c\xb0\x14\x2b\x46\x21\x17\x3a\x53\x84\x5a\x11\x03\x25\x9b\x62\x6c\x8c\xcd\x28\x15\xdc\x8f\x1d\x37\x8d\x15\xab\x9d\xe5\x9e\x86\xa5\x54\x0a\xa9\x25\x2e\x3e\x01\x4d\xcb\x76\xdf\x01\x5e\x7f\xb8\x86\xac\xbb\x6e\xe5\x58\xc8\x83\xed\xac\x31\x58\x9a\x0c\x9e\x8a\x52\x85\xb2\xcd\x69\x85\x22\xcc\x18\xa4\x33\x54\x65\x8d\xd7\x71\x6b\x2c\x34\x18\xcc\xac\xa4\x39\x5c\xa9\xa4\xc7\xcc\x0a\xa9\x1b\x00\xef\xa5\x8f\xe6\x92\x69\x32\xbe\x23\xbb\x82\xab\x66\x8e\xbe\x56\x5c\x10\x0d\x47\xa4\x63\xee\x50\xf6\x84\x2c\xc1\x6a\x69\x4d\x61\x7c\xcd\x05\xb1\x5b\xd3\x51\x0d\xfe\x16\x59\xae\x92\x75\x1c\xc9\xe1\x61\xf4\x6e\x3c\x3a\x1f\x5f\x0d\xbb\x2d\xe9\x23\x56\x90\x20\x57\x52\xe3\x11\xa1\x37\x6c\xdf\xdb\x83\x1c\xca\x7f\x1c\x61\x7f\x3f\x3c\x33\x51\x6f\x78\x2d\x6f\x5b\xc7\x18\x0e\xf1\x3c\xee\x3e\xb4\x16\xd7\xf1\x73\xdc\xee\x92\x16\x35\xf9\x86\x5d\xb9\x7d\xac\xeb\xad\xb6\xd0\xbc\x0d\x4e\x77\xe5\x77\xf8\xf4\x84\x51\xdd\x07\xb9\x6e\xf7\x6f\x09\x35\x68\xf1\x69\x99\xf5\x04\x80\x60\x46\x39\x6a\x2c\xd6\x81\x74\xf7\x82\x65\x67\xef\x2c\xfe\x08\xdd\xaf\xaf\xd3\x9d\xf0\xd8\x14\xfe\xc0\xc2\x52\x89\xf7\x26\xa3\x7d\x0c\x11\xf3\x8f\x41\xa3\xbc\xf1\xd3\x70\x81\x06\xe5\x8d\x91\xe6\xc3\x5c\xfe\x8d\x58\x76\x12\xfa\x17\xe1\xcc\xe5\x46\x6a\xb6\xad\x7a\x19\x44\x27\x50\x3d\xf0\xd1\x54\x1e\x2c\x75\x10\x7a\xb5\x14\xab\xa4\x9d\x5e\x0a\x12\xda\x05\x05\xd9\x14\xf7\x52\x38\xde\xdb\x34\xe8\x40\x0c\xd6\x93\xa4\x96\xa7\x9f\xd0\x9b\x3f\x4d\xcf\x8e\x40\x31\xa1\x71\xd4\x50\xfa\x92\xc7\xdc\xef\x77\xf9\x20\x5f\x9e\x34\x64\x3b\xed\xf0\xb9\x33\x42\x61\x32\x39\x97\x94\xf1\xd4\xd9\x88\xa6\x16\x2a\xea\xc0\xd2\x66\xcc\x0a\x1a\xe8\xea\xf2\x2f\x4b\x62\x67\xad\xa9\x16\xb5\x50\xc5\xed\xc2\x38\x74\x58\xa1\xb3\x24\x4a\x4b\x6c\x91\xab\x7f\xae\xc3\x10\xf7\x63\xa4\xe6\x87\xca\xcc\x8f\x92\x98\x27\x6d\x91\x6f\x46\x6d\xa0\x61\x72\x64\x17\xb7\x18\x7c\xa4\x9d\x34\xb4\x2d\xa6\x9e\xa2\x57\xc1\xc7\x66\x1c\x68\xef\x23\x85\x08\xc3\xad\x70\x50\x46\x2f\x20\x78\x5c\xe1\x39\x9d\x9e\x39\x7c\xad\x8c\xad\x8a\x04\xa3\x34\x35\x36\x63\x18\x7c\x9d\xca\xcc\xa4\x35\xac\x0c\x44\x3b\x58\x39\xfc\x5e\x39\xdf\x34\x1f\x65\x96\xe1\xe8\xa8\x83\x3b\xe3\xe9\x00\xd2\x3f\x73\x70\x9e\x61\xdc\x7e\x65\xed\x2b\x8d\xa3\x96\x53\x4d\x4a\x0e\x02\x14\xd2\xe3\x8b\x36\xcb\x70\x50\xd4\x61\x52\xba\x90\x8a\x5a\x52\x37\x01\xf0\x68\x5f\xf0\xcd\x67\x6e\x4d\x81\xe7\xd2\xbb\xe7\x8d\xb9\x24\x1a\x9d\x9f\x7f\x9e\x8e\xaf\x7e\xe3\x1a\x6e\xab\xb4\x11\xb1\x46\xbc\xbe\x53\xa8\xcd\x38\x34\x08\x05\xfb\xe7\x19\x38\x53\x92\xe1\x6f\x49\x8a\x9e\x0b\xa3\x43\x50\x8c\x75\x1c\x76\xa2\xc7\x03\x43\xdc\x7d\xd8\xfa\xb1\x8e\x39\x55\xbf\x5a\x73\xd7\x34\xed\x25\x3d\xbb\x23\x88\xd4\x57\x42\xa9\x15\x7e\x37\x52\x53\x3d\x64\xd8\x4a\x87\x6b\x4e\x73\xff\x88\x26\xd7\xe3\xab\x11\xdf\xab\x86\x87\x51\xa5\xbd\x54\xb5\xfc\x34\xc7\x6f\x25\x4f\x99\x54\x28\x16\x82\x47\x92\xf7\xc4\x0b\x9c\xa2\x9f\xd1\x5d\x5f\x57\x4a\x35\x1d\xa2\x16\xee\xcd\x29\xb7\x58\x8a\x70\x6d\x0c\xc3\x69\x3d\xcb\x66\xed\x69\xcc\xa9\x95\x4e\x31\x13\xe9\x17\x7e\xd8\x9c\x19\x01\x4e\x11\x95\x38\x8a\x42\xc7\xd9\x3a\xbd\xf9\xd5\x76\xa0\x7a\x50\xda\xbc\x0e\x63\xd2\xf1\xe1\xa3\x39\xa9\x11\xa2\x1d\x79\xfc\xbf\xc5\x60\xca\xe8\xbf\x01\x00\x00\xff\xff\xa6\x97\x4d\xe4\x40\x10\x00\x00") - -func testImagesPetsZookeeperInstallerOnStartShBytes() ([]byte, error) { - return bindataRead( - _testImagesPetsZookeeperInstallerOnStartSh, - "test/images/pets/zookeeper-installer/on-start.sh", - ) -} - -func testImagesPetsZookeeperInstallerOnStartSh() (*asset, error) { - bytes, err := testImagesPetsZookeeperInstallerOnStartShBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/pets/zookeeper-installer/on-start.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesRedisBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x4d\xcc\x29\xc8\xcc\x4b\xb5\x32\xd6\x33\xe3\x82\x0a\x17\xe5\xda\x26\x16\xe5\x1a\x1b\x95\x99\xe9\x63\x93\x04\xe9\x01\x91\x65\x16\x98\xd2\x05\x05\xc9\x66\x26\x39\xa9\xb6\x50\x1a\x53\x41\xb1\xb1\xa5\x41\x85\x2d\x98\x44\x96\x04\x04\x00\x00\xff\xff\xc8\xfe\x7a\xdd\x91\x00\x00\x00") - -func testImagesRedisBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesRedisBaseimage, - "test/images/redis/BASEIMAGE", - ) -} - -func testImagesRedisBaseimage() (*asset, error) { - bytes, err := testImagesRedisBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/redis/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesRedisDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x92\x51\x4f\xdb\x30\x14\x85\xdf\xfd\x2b\x8e\x92\x3d\x6c\x52\x9b\x30\x26\x0d\x6d\x7b\x0a\x69\x80\x88\x36\x61\x49\x0b\x43\xd3\x84\x5c\xe7\x36\xb1\x96\xda\xc1\x76\x08\xfd\xf7\x53\x02\x88\xb1\xf9\xc9\xd7\xf7\xf8\xf8\xf3\xb1\x7d\xc4\xba\x3b\x18\x59\x37\x0e\xc7\x47\x1f\x4f\xb0\x6e\x08\x97\xfd\x96\x8c\x22\x47\x16\x51\xef\x1a\x6d\x6c\xc0\x7c\xe6\x63\x29\x05\x29\x4b\x15\x7a\x55\x91\x81\x6b\x08\x51\xc7\x45\x43\x2f\x9d\x19\xae\xc9\x58\xa9\x15\x8e\x83\x23\xbc\x1f\x05\xde\x73\xcb\xfb\xf0\x8d\xf9\x38\xe8\x1e\x7b\x7e\x80\xd2\x0e\xbd\x25\xb8\x46\x5a\xec\x64\x4b\xa0\x47\x41\x9d\x83\x54\x10\x7a\xdf\xb5\x92\x2b\x41\x18\xa4\x6b\xa6\x63\x9e\x4d\x02\xe6\xe3\xf6\xd9\x42\x6f\x1d\x97\x0a\x1c\x42\x77\x07\xe8\xdd\xdf\x3a\x70\x37\x01\x8f\xa3\x71\xae\xfb\x1a\x86\xc3\x30\x04\x7c\x82\x0d\xb4\xa9\xc3\xf6\x49\x68\xc3\x65\x1a\x27\x59\x99\xcc\x8f\x83\xa3\x69\xcb\x46\xb5\x64\x2d\x0c\xdd\xf7\xd2\x50\x85\xed\x01\xbc\xeb\x5a\x29\xf8\xb6\x25\xb4\x7c\x80\x36\xe0\xb5\x21\xaa\xe0\xf4\xc8\x3b\x18\xe9\xa4\xaa\x67\xb0\x7a\xe7\x06\x6e\x88\xf9\xa8\xa4\x75\x46\x6e\x7b\xf7\x26\xac\x17\x3a\x69\xdf\x08\xb4\x02\x57\xf0\xa2\x12\x69\xe9\xe1\x34\x2a\xd3\x72\xc6\x7c\xdc\xa4\xeb\x8b\x7c\xb3\xc6\x4d\x54\x14\x51\xb6\x4e\x93\x12\x79\x81\x38\xcf\x16\xe9\x3a\xcd\xb3\x12\xf9\x19\xa2\xec\x16\x97\x69\xb6\x98\x81\xa4\x6b\xc8\x80\x1e\x3b\x33\xf2\x6b\x03\x39\xc6\x48\xd5\x98\x59\x49\xf4\x06\x60\xa7\x9f\x80\x6c\x47\x42\xee\xa4\x40\xcb\x55\xdd\xf3\x9a\x50\xeb\x07\x32\x4a\xaa\x1a\x1d\x99\xbd\xb4\xe3\x63\x5a\x70\x55\x31\x1f\xad\xdc\x4b\xc7\xdd\xb4\xf2\xdf\xa5\x02\xc6\xa2\xe2\x7c\xa4\x4f\xd2\x55\x74\x9e\xb0\xb3\x22\x5f\xe1\xdd\x6b\xcd\xe2\x22\x2f\xcb\xbb\xd3\x4d\xba\x5c\xdc\xc5\xf9\xd5\x2d\xee\x69\xdf\xcf\xbf\x27\xab\x4d\x54\xc4\x17\x73\x3b\x5a\x0b\x84\xbd\x35\xe1\x56\xaa\x90\xb1\x62\x93\x81\x77\xbf\xc1\xab\x0a\xf3\xb9\xd2\x73\x31\xfd\x35\x43\x95\xb4\x8c\x4d\x16\xd3\x3c\x10\x5a\xed\x10\x92\x13\xe1\x6b\xcd\x58\xf2\xe3\x2a\x2f\x13\x7c\xfe\x74\xf2\x85\x5d\xe7\xcb\xcd\x2a\x41\x58\x71\xc7\x19\x8b\x57\x0b\xfc\xf4\x26\xed\xdc\x92\x79\x20\xe3\xcd\xe0\xfd\x63\xe0\xfd\x62\x7f\x02\x00\x00\xff\xff\x65\x6b\x18\x97\x1d\x03\x00\x00") - -func testImagesRedisDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesRedisDockerfile, - "test/images/redis/Dockerfile", - ) -} - -func testImagesRedisDockerfile() (*asset, error) { - bytes, err := testImagesRedisDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/redis/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesRedisOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\xc8\xcd\x2e\xcd\x4d\x2c\x49\x4c\xe7\x4a\xcd\x4d\x2d\xca\x2c\x29\x2d\x8e\x47\x53\x50\x94\x9b\x9b\x01\x08\x00\x00\xff\xff\x64\x89\x71\xde\x34\x00\x00\x00") - -func testImagesRedisOwnersBytes() ([]byte, error) { - return bindataRead( - _testImagesRedisOwners, - "test/images/redis/OWNERS", - ) -} - -func testImagesRedisOwners() (*asset, error) { - bytes, err := testImagesRedisOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/redis/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesRedisVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe4\x02\x04\x00\x00\xff\xff\x9e\xc5\x88\x7d\x04\x00\x00\x00") - -func testImagesRedisVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesRedisVersion, - "test/images/redis/VERSION", - ) -} - -func testImagesRedisVersion() (*asset, error) { - bytes, err := testImagesRedisVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/redis/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesRedisRedisConf = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\xca\xcc\x4b\x51\x30\xd0\x03\x43\xae\x94\xcc\x22\x05\xfd\x94\xc4\x92\x44\x2e\x40\x00\x00\x00\xff\xff\xcd\x81\x31\xc0\x17\x00\x00\x00") - -func testImagesRedisRedisConfBytes() ([]byte, error) { - return bindataRead( - _testImagesRedisRedisConf, - "test/images/redis/redis.conf", - ) -} - -func testImagesRedisRedisConf() (*asset, error) { - bytes, err := testImagesRedisRedisConfBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/redis/redis.conf", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesRegressionIssue74839Gitignore = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd2\x2f\x4a\x4d\x2f\x4a\x2d\x2e\xce\xcc\xcf\xd3\xcd\x2c\x2e\x2e\x4d\xd5\x35\x37\xb1\x30\xb6\xe4\x02\x04\x00\x00\xff\xff\x58\x2f\x20\xa0\x18\x00\x00\x00") - -func testImagesRegressionIssue74839GitignoreBytes() ([]byte, error) { - return bindataRead( - _testImagesRegressionIssue74839Gitignore, - "test/images/regression-issue-74839/.gitignore", - ) -} - -func testImagesRegressionIssue74839Gitignore() (*asset, error) { - bytes, err := testImagesRegressionIssue74839GitignoreBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/regression-issue-74839/.gitignore", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesRegressionIssue74839Dockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x91\x41\x8f\xd3\x3c\x10\x86\xef\xfe\x15\xaf\x92\xcb\xf7\x49\x6d\x52\x0a\x12\x2c\x9c\x42\xdb\x15\xd1\x2e\x09\x6a\xb2\xac\x2a\xc4\xc1\x49\xa6\xc9\x48\xa9\x6d\x6c\x87\x6c\xff\x3d\x4a\xb6\x2b\x51\x01\x3e\xce\x3c\x1e\x3f\xf3\x3a\xc4\x46\x9b\xb3\xe5\xb6\xf3\x58\xaf\x5e\xdd\xa0\xec\x08\x77\x43\x45\x56\x91\x27\x87\x64\xf0\x9d\xb6\x2e\x12\xa1\x08\x71\xcf\x35\x29\x47\x0d\x06\xd5\x90\x85\xef\x08\x89\x91\x75\x47\x2f\x9d\x05\xbe\x92\x75\xac\x15\xd6\xd1\x0a\xff\x4d\x40\x70\x69\x05\xff\x7f\x10\x21\xce\x7a\xc0\x49\x9e\xa1\xb4\xc7\xe0\x08\xbe\x63\x87\x23\xf7\x04\x7a\xaa\xc9\x78\xb0\x42\xad\x4f\xa6\x67\xa9\x6a\xc2\xc8\xbe\x9b\x9f\xb9\x0c\x89\x44\x88\xc3\x65\x84\xae\xbc\x64\x05\x89\x5a\x9b\x33\xf4\xf1\x77\x0e\xd2\xcf\xc2\xd3\xe9\xbc\x37\xef\xe3\x78\x1c\xc7\x48\xce\xb2\x91\xb6\x6d\xdc\x3f\x83\x2e\xbe\x4f\x37\xbb\xac\xd8\x2d\xd7\xd1\x6a\xbe\xf2\xa0\x7a\x72\x0e\x96\x7e\x0c\x6c\xa9\x41\x75\x86\x34\xa6\xe7\x5a\x56\x3d\xa1\x97\x23\xb4\x85\x6c\x2d\x51\x03\xaf\x27\xdf\xd1\xb2\x67\xd5\x2e\xe0\xf4\xd1\x8f\xd2\x92\x08\xd1\xb0\xf3\x96\xab\xc1\x5f\x85\xf5\x62\xc7\xee\x0a\xd0\x0a\x52\x21\x48\x0a\xa4\x45\x80\x8f\x49\x91\x16\x0b\x11\xe2\x31\x2d\x3f\xe5\x0f\x25\x1e\x93\xfd\x3e\xc9\xca\x74\x57\x20\xdf\x63\x93\x67\xdb\xb4\x4c\xf3\xac\x40\x7e\x8b\x24\x3b\xe0\x2e\xcd\xb6\x0b\x10\xfb\x8e\x2c\xe8\xc9\xd8\xc9\x5f\x5b\xf0\x14\x23\x35\x53\x66\x05\xd1\x95\xc0\x51\x3f\x0b\x39\x43\x35\x1f\xb9\x46\x2f\x55\x3b\xc8\x96\xd0\xea\x9f\x64\x15\xab\x16\x86\xec\x89\xdd\xf4\x99\x0e\x52\x35\x22\x44\xcf\x27\xf6\xd2\xcf\x95\x3f\x96\x8a\x84\xb8\xdd\xe7\x9f\xd1\xd6\x36\x62\x1d\xcf\xfb\xe9\x29\xca\xb8\x92\x8e\x84\x48\xb6\x5b\x58\x6a\x27\x39\xd6\x6a\xc9\xce\x0d\xb4\x7c\xfb\xe6\xdd\xeb\x1b\xc4\x7f\xaf\x0b\xb1\xcb\xca\xfd\xe1\x4b\x9e\x66\x25\xbe\x05\xff\xa0\x82\xef\x42\xfc\x0a\x00\x00\xff\xff\x39\x3c\x7b\xcf\xc5\x02\x00\x00") - -func testImagesRegressionIssue74839DockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesRegressionIssue74839Dockerfile, - "test/images/regression-issue-74839/Dockerfile", - ) -} - -func testImagesRegressionIssue74839Dockerfile() (*asset, error) { - bytes, err := testImagesRegressionIssue74839DockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/regression-issue-74839/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesRegressionIssue74839Makefile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\xd1\x4f\xdb\x30\x10\xc6\x9f\xe7\xbf\xe2\x53\xc3\x43\x2b\xb5\x29\x63\x68\x0c\x26\x34\x65\x6d\x57\x22\x58\x32\x25\x05\xc4\x13\x72\x92\x6b\x72\x52\x6a\x67\xb6\xb3\xb4\xff\xfd\xe4\x02\xd2\xd0\xfc\x76\x77\xdf\xdd\xfd\xee\x73\x80\x85\xee\x0e\x86\xeb\xc6\xe1\xec\xf4\xe3\x25\x36\x0d\xe1\xb6\x2f\xc8\x28\x72\x64\x11\xf5\xae\xd1\xc6\x86\x22\x10\x01\xee\xb8\x24\x65\xa9\x42\xaf\x2a\x32\x70\x0d\x21\xea\x64\xd9\xd0\x5b\x65\x8a\x07\x32\x96\xb5\xc2\x59\x78\x8a\xb1\x17\x8c\x5e\x4b\xa3\xc9\x57\x11\xe0\xa0\x7b\xec\xe4\x01\x4a\x3b\xf4\x96\xe0\x1a\xb6\xd8\x72\x4b\xa0\x7d\x49\x9d\x03\x2b\x94\x7a\xd7\xb5\x2c\x55\x49\x18\xd8\x35\xc7\x35\xaf\x43\x42\x11\xe0\xe9\x75\x84\x2e\x9c\x64\x05\x89\x52\x77\x07\xe8\xed\xbf\x3a\x48\x77\x04\xf6\xaf\x71\xae\xbb\x9a\xcf\x87\x61\x08\xe5\x11\x36\xd4\xa6\x9e\xb7\x2f\x42\x3b\xbf\x8b\x17\xab\x24\x5f\xcd\xce\xc2\xd3\x63\xcb\xbd\x6a\xc9\x5a\x18\xfa\xdd\xb3\xa1\x0a\xc5\x01\xb2\xeb\x5a\x2e\x65\xd1\x12\x5a\x39\x40\x1b\xc8\xda\x10\x55\x70\xda\xf3\x0e\x86\x1d\xab\x7a\x0a\xab\xb7\x6e\x90\x86\x44\x80\x8a\xad\x33\x5c\xf4\xee\x9d\x59\x6f\x74\x6c\xdf\x09\xb4\x82\x54\x18\x45\x39\xe2\x7c\x84\xef\x51\x1e\xe7\x53\x11\xe0\x31\xde\xdc\xa4\xf7\x1b\x3c\x46\x59\x16\x25\x9b\x78\x95\x23\xcd\xb0\x48\x93\x65\xbc\x89\xd3\x24\x47\xfa\x03\x51\xf2\x84\xdb\x38\x59\x4e\x41\xec\x1a\x32\xa0\x7d\x67\x3c\xbf\x36\x60\x6f\x23\x55\xde\xb3\x9c\xe8\x1d\xc0\x56\xbf\x00\xd9\x8e\x4a\xde\x72\x89\x56\xaa\xba\x97\x35\xa1\xd6\x7f\xc8\x28\x56\x35\x3a\x32\x3b\xb6\xfe\x33\x2d\xa4\xaa\x44\x80\x96\x77\xec\xa4\x3b\x66\xfe\x3b\x2a\x14\x22\xcf\x16\xf9\xb5\xa1\xda\x03\xb0\x56\x33\xb6\xb6\xa7\xd9\xc5\xf9\x97\x4f\x97\x22\xcd\xf1\xed\x1a\x2d\xab\x7e\x2f\xa2\x6c\x71\xe3\x23\xb9\xab\x3e\x9f\x8b\x4d\x94\xad\x57\x1b\x1f\x9f\x8c\x17\xf7\xd9\x32\xce\x26\x62\x9d\x46\xd9\x4f\x9f\xba\x10\xeb\xf4\x2e\x4a\xd6\xcf\x0f\xab\x2c\x8f\xd3\xe4\x38\x44\x3a\xb2\xce\x6f\x7b\x5e\xc6\x19\x7c\x9f\xd2\xae\x62\x83\x93\xb1\x6d\xa8\x6d\xd1\x0d\xd5\x64\x22\x04\xed\x3b\x6d\x9c\x10\xe1\xaf\x9b\x34\x79\xba\x42\xc1\x4a\x14\xac\xae\xc4\x87\x30\x9c\xf3\x4e\xd6\x34\xeb\x1d\xb7\xa1\x6d\x7c\x09\x27\x63\x7f\xc0\x44\x88\xbf\x01\x00\x00\xff\xff\x04\x52\x01\x2e\x14\x03\x00\x00") - -func testImagesRegressionIssue74839MakefileBytes() ([]byte, error) { - return bindataRead( - _testImagesRegressionIssue74839Makefile, - "test/images/regression-issue-74839/Makefile", - ) -} - -func testImagesRegressionIssue74839Makefile() (*asset, error) { - bytes, err := testImagesRegressionIssue74839MakefileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/regression-issue-74839/Makefile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesRegressionIssue74839Owners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xcc\x4b\x4b\x2d\xca\x4b\x4d\xe5\x02\x04\x00\x00\xff\xff\x81\xb9\x09\x28\x18\x00\x00\x00") - -func testImagesRegressionIssue74839OwnersBytes() ([]byte, error) { - return bindataRead( - _testImagesRegressionIssue74839Owners, - "test/images/regression-issue-74839/OWNERS", - ) -} - -func testImagesRegressionIssue74839Owners() (*asset, error) { - bytes, err := testImagesRegressionIssue74839OwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/regression-issue-74839/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesRegressionIssue74839Version = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe4\x02\x04\x00\x00\xff\xff\x9e\xc5\x88\x7d\x04\x00\x00\x00") - -func testImagesRegressionIssue74839VersionBytes() ([]byte, error) { - return bindataRead( - _testImagesRegressionIssue74839Version, - "test/images/regression-issue-74839/VERSION", - ) -} - -func testImagesRegressionIssue74839Version() (*asset, error) { - bytes, err := testImagesRegressionIssue74839VersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/regression-issue-74839/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesRegressionIssue74839MainGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x55\xe1\x4e\xdb\x4a\x13\xfd\xed\x7d\x8a\xc1\x52\x2b\x87\x1a\x27\xd0\xf6\xd3\x57\xb7\xfc\x48\xa1\xa8\x16\x08\x22\x4c\x2f\xaa\x10\xba\xda\xd8\x63\x67\x15\x67\x77\x59\xaf\x49\xb9\x2d\xef\x7e\x35\x6b\x27\x38\x90\x2b\x91\x48\x01\x7b\xcf\x9c\x39\x73\x66\x77\x76\xb8\xcb\x8e\x94\x7e\x30\xa2\x9c\x59\x38\x18\xed\x7f\x82\xab\x19\xc2\x69\x33\x45\x23\xd1\x62\x0d\xe3\xc6\xce\x94\xa9\x23\xc6\xce\x44\x86\xb2\xc6\x1c\x1a\x99\xa3\x01\x3b\x43\x18\x6b\x9e\xcd\x10\xba\x95\x10\xfe\x42\x53\x0b\x25\xe1\x20\x1a\x41\x40\x00\xbf\x5b\xf2\x07\x9f\xd9\x83\x6a\x60\xc1\x1f\x40\x2a\x0b\x4d\x8d\x60\x67\xa2\x86\x42\x54\x08\xf8\x2b\x43\x6d\x41\x48\xc8\xd4\x42\x57\x82\xcb\x0c\x61\x29\xec\xcc\x25\xe9\x28\x22\xf6\xb3\x23\x50\x53\xcb\x85\x04\x0e\x99\xd2\x0f\xa0\x8a\x3e\x0a\xb8\x65\x0c\x00\x60\x66\xad\x8e\x87\xc3\xe5\x72\x19\x71\xa7\x32\x52\xa6\x1c\x56\x2d\xaa\x1e\x9e\x25\x47\xdf\xce\xd3\x6f\x7b\x07\xd1\x88\xb1\x1f\xb2\xc2\xba\x06\x83\x77\x8d\x30\x98\xc3\xf4\x01\xb8\xd6\x95\xc8\xf8\xb4\x42\xa8\xf8\x12\x94\x01\x5e\x1a\xc4\x1c\xac\x22\x9d\x4b\x23\xac\x90\x65\x08\xb5\x2a\xec\x92\x1b\x64\xb9\xa8\xad\x11\xd3\xc6\x6e\x18\xb4\x52\x25\x6a\xe8\x03\x94\x04\x2e\xc1\x1f\xa7\x90\xa4\x3e\x7c\x1d\xa7\x49\x1a\xb2\xeb\xe4\xea\xfb\xc5\x8f\x2b\xb8\x1e\x5f\x5e\x8e\xcf\xaf\x92\x6f\x29\x5c\x5c\xc2\xd1\xc5\xf9\x71\x72\x95\x5c\x9c\xa7\x70\x71\x02\xe3\xf3\x9f\x70\x9a\x9c\x1f\x87\x80\xc2\xce\xd0\x00\xfe\xd2\x86\xb4\x2b\x03\x82\xac\xc3\x3c\x62\x29\xe2\x46\xf2\x42\xb5\x62\x6a\x8d\x99\x28\x44\x06\x15\x97\x65\xc3\x4b\x84\x52\xdd\xa3\x91\x42\x96\xa0\xd1\x2c\x44\x4d\xcd\xab\x81\xcb\x9c\x55\x62\x21\x2c\xb7\xee\xf9\x45\x39\x11\xdb\x1d\x32\xa6\x79\x36\x27\x92\x05\x17\x92\x31\xb1\xd0\xca\x58\x08\x98\xe7\x57\xaa\xf4\x99\xe7\x4b\xb4\xf4\xc7\x8a\x05\xfa\x6c\xc0\x58\xd1\xc8\xcc\x81\x83\x01\xfc\x66\x9e\xd0\x10\x1f\x42\x89\x36\x99\x04\x83\x28\xb5\x46\xc8\x32\x18\x30\xaf\x52\x65\x34\x31\x42\xda\x22\xf0\xf1\x97\x45\x23\x79\x05\x42\xc7\xf0\xe6\xde\x0f\x41\xe8\x01\x63\x5e\xa9\x40\x1b\x35\xc5\xa0\x7d\xec\x87\x54\xa2\xb6\x28\xc9\xe1\x37\xf7\xf1\xa7\xd1\x68\xe4\x87\xe0\x8f\x22\xf7\xf5\x1d\xd8\x01\xd0\x84\x80\xc6\x90\x04\x89\x36\x3a\x73\x2f\x03\xdf\x66\xba\x87\x6f\xe3\x07\xcc\x13\x85\x03\xef\x1c\x82\x14\x15\x89\xf7\x34\x97\x22\x0b\xd0\x98\x01\xf3\x1e\x19\xf3\xc8\x63\x7a\x9f\x29\x29\xd7\xcc\xab\x54\xd1\x38\xa3\x0d\x4e\xd5\x6d\xa1\xda\xe0\x72\x64\x54\x1f\xb9\x15\x10\x9b\xd3\x77\xa4\xa4\x1c\xb4\x68\xf2\x33\x4a\x2b\x44\x1d\xec\x8f\x60\x17\xda\x67\xcc\x94\xcc\x29\xde\x29\x88\x8e\x2a\x55\xa3\xcb\xf7\xe8\x48\x9c\xca\xc7\xae\x07\x2b\xeb\xa0\x76\xa6\x3b\xde\xbe\x85\xb4\x4e\x7b\xa2\x67\xb8\xd0\xe3\x3c\xdf\xb4\xec\x12\x6b\x55\xdd\x63\x32\xa1\x95\xc0\x17\xfa\x43\xdc\xba\x47\x11\xaf\x70\x6c\xc3\xa9\xa7\x1e\x24\x93\x4d\x2e\x62\x7f\x15\x9f\x46\x99\x93\xea\xf8\x10\x16\x7c\x8e\xc1\x82\xeb\x9b\xb6\xc0\xdb\x46\x48\xfb\xfe\x80\xea\xb8\xe7\x06\xa6\x4d\x51\xa0\x81\x9b\x0f\xa3\x4f\xff\xbb\x9d\x3e\x58\x7c\xea\x9e\x0c\x81\xf7\xeb\x74\x5e\x5e\x22\xcf\x4f\x8c\x5a\x04\x6d\xe0\x4d\x7c\xfb\x1f\x7d\xec\x7b\xb8\x19\x39\x20\xac\x32\xdd\x1e\xee\x3a\x4d\x0e\x58\x21\x1b\x5c\x75\x5d\xcf\x2d\x25\x7d\x6b\x33\x3d\xe1\xd9\x1c\xed\xef\x47\xe6\x79\x39\xb7\x7c\x2d\x48\xcf\x6d\x94\x63\xa6\x72\x5c\xab\x91\xaf\x91\x63\x33\x0d\xda\x71\x82\xe6\xa6\xc6\x57\xe9\x11\x85\xcb\x77\x8c\xb5\x9d\xd0\xd9\xde\x39\x04\x3a\x10\x2d\xfb\x73\xf0\xf6\x6c\x31\xbc\x79\x77\x1f\x42\x51\xf1\x92\x92\x85\x40\xd5\xb4\xff\x91\xd1\x9d\x00\x3d\xb7\xee\x27\x3a\xa9\x78\xb9\x9a\x04\x2d\xb6\xc5\x0d\x7a\x72\x08\x53\xbf\x4d\x7f\x9e\x93\x9e\x4e\x4c\xd7\xfb\x1b\xc2\xae\x47\xc9\x2d\xb4\x7e\xa5\x78\x07\xef\x60\xff\x85\xe8\x67\x8c\x97\xe9\x55\x9f\xd1\xed\x2e\x9f\x5e\x1a\xcc\x50\xdc\x63\xee\x0f\xb6\x85\x8d\x8f\x4e\x7b\x61\xa2\x80\x1a\xef\x42\x50\x73\xd7\xad\xad\xb2\x3e\xd3\xaa\x43\x3f\x99\x56\xc9\x76\xcb\x60\x46\x23\x17\xb0\xb6\x7c\x5a\x89\x7a\xd6\x65\xf5\xbc\x1c\x2b\xb4\x18\x74\x8c\xad\x2b\x6b\x4a\x67\x8f\xe7\x4d\x79\x3e\x79\xb1\x85\xdc\x8a\x97\x9a\x8c\x5a\x18\xd3\xcd\xd8\xef\x69\xd8\x2e\xaf\x1e\xe3\x6e\xb9\x83\x77\xab\xe3\x6c\xee\x02\xe9\x43\xd5\x75\x94\x78\xb7\x7e\x4b\x31\xe3\x6c\x0e\x7b\xb0\x3f\xa2\x4f\xd8\xbe\x1e\x0e\xe1\x2b\xcf\x63\x0a\x02\xd5\xd8\x3d\x55\xec\x2d\x85\xcc\xd5\xb2\x65\x70\x06\x76\x1c\xc1\x47\xf8\xf2\x05\xf6\x0f\x06\xf0\x07\x26\xe9\x77\xf8\x03\xe3\xa3\xd3\x90\x18\x2e\x8a\xa2\x46\x4b\x97\x12\xb8\x00\x00\xa5\x94\x1a\x8d\x46\x27\x70\xd2\x7d\x20\x50\xb1\x72\xb0\x10\x4e\x62\xda\x6c\x75\xeb\x9a\x77\xed\xd2\xa5\xe2\x1f\x8c\x9d\xc8\xa7\xe7\xb6\x8a\xc7\xd6\x39\xda\x69\xe4\xdb\x8d\x9b\x07\x81\x3f\x55\x6a\xb1\xb3\xb3\xd3\x79\x6f\x70\xa1\x2c\x26\x93\xd5\xa0\x9a\xd0\x09\x4a\x26\xc1\xb3\x1e\xb4\x0d\xcd\x78\xf5\x12\xe9\xa6\xc1\x19\xad\xb9\x61\x39\x78\x16\xf5\xf7\xe6\xc0\xb9\x36\xc2\xe2\x95\x0a\xda\x7e\x46\x28\xdd\x79\xef\xa8\x43\x58\xc9\x69\x0f\x08\x8d\xa3\xd5\x21\xf1\xbc\xad\x83\x60\xcb\x64\x5a\xa5\xd8\x3e\x98\xdc\x2e\x77\x3f\x8f\xfd\x7b\xa3\xbb\xab\x5d\x65\xc9\x84\xb8\x5f\xcc\xf0\x63\xc1\xab\xc0\x6f\x72\x77\x8b\xfe\x3f\x72\xdf\xf8\xe3\xfb\xed\x77\x28\xa9\x3a\xe1\x96\x57\xeb\x29\xee\xe5\x48\xa3\x79\xe3\x0a\x63\xad\xa9\x64\xdc\xda\xa1\xbe\x95\xc1\x2e\x25\xfe\x71\x3c\x19\x77\x83\xc2\xa0\x6d\x8c\x84\x75\x54\x94\x4c\xd8\x23\xfb\x37\x00\x00\xff\xff\xdc\x2d\xe6\x30\xe9\x0a\x00\x00") - -func testImagesRegressionIssue74839MainGoBytes() ([]byte, error) { - return bindataRead( - _testImagesRegressionIssue74839MainGo, - "test/images/regression-issue-74839/main.go", - ) -} - -func testImagesRegressionIssue74839MainGo() (*asset, error) { - bytes, err := testImagesRegressionIssue74839MainGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/regression-issue-74839/main.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesRegressionIssue74839TcpGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x56\x7d\x6f\xda\xca\xd2\xff\xdb\xfb\x29\xe6\x20\xb5\xb2\x1b\x8e\x0d\x34\xca\x93\x87\x13\x22\x51\x9a\x9e\xa2\x1e\x11\x84\xc9\x8d\xaa\x28\x57\x5a\xec\xc1\xac\x30\xbb\xee\x7a\x5d\x9a\x13\xf5\xbb\x5f\xcd\xda\x18\x07\x37\x8d\x82\xc0\x33\xbf\x9d\x97\xdf\xbc\xac\x83\x77\x6c\xa2\xb2\x27\x2d\x92\x8d\x81\x41\xaf\xff\xff\xb0\xdc\x20\x7c\x29\x56\xa8\x25\x1a\xcc\x61\x5c\x98\x8d\xd2\xb9\xcf\xd8\x3f\x22\x42\x99\x63\x0c\x85\x8c\x51\x83\xd9\x20\x8c\x33\x1e\x6d\x10\x2a\x4d\x17\xfe\x83\x3a\x17\x4a\xc2\xc0\xef\x81\x4b\x80\x4e\xa5\xea\x78\x7f\xb1\x27\x55\xc0\x8e\x3f\x81\x54\x06\x8a\x1c\xc1\x6c\x44\x0e\x6b\x91\x22\xe0\x8f\x08\x33\x03\x42\x42\xa4\x76\x59\x2a\xb8\x8c\x10\xf6\xc2\x6c\xac\x93\xca\x84\xcf\xbe\x56\x06\xd4\xca\x70\x21\x81\x43\xa4\xb2\x27\x50\xeb\x26\x0a\xb8\x61\x0c\x00\x60\x63\x4c\x36\x0c\x82\xfd\x7e\xef\x73\x1b\xa5\xaf\x74\x12\xa4\x25\x2a\x0f\xfe\x99\x4e\x6e\x66\xe1\xcd\x9f\x03\xbf\xc7\xd8\x9d\x4c\x31\xcf\x41\xe3\xb7\x42\x68\x8c\x61\xf5\x04\x3c\xcb\x52\x11\xf1\x55\x8a\x90\xf2\x3d\x28\x0d\x3c\xd1\x88\x31\x18\x45\x71\xee\xb5\x30\x42\x26\x5d\xc8\xd5\xda\xec\xb9\x46\x16\x8b\xdc\x68\xb1\x2a\xcc\x0b\x82\x0e\x51\x89\x1c\x9a\x00\x25\x81\x4b\xe8\x8c\x43\x98\x86\x1d\xf8\x30\x0e\xa7\x61\x97\xdd\x4f\x97\x9f\x6f\xef\x96\x70\x3f\x5e\x2c\xc6\xb3\xe5\xf4\x26\x84\xdb\x05\x4c\x6e\x67\x1f\xa7\xcb\xe9\xed\x2c\x84\xdb\x4f\x30\x9e\x7d\x85\x2f\xd3\xd9\xc7\x2e\xa0\x30\x1b\xd4\x80\x3f\x32\x4d\xb1\x2b\x0d\x82\xa8\xc3\xd8\x67\x21\xe2\x0b\xe7\x6b\x55\x06\x93\x67\x18\x89\xb5\x88\x20\xe5\x32\x29\x78\x82\x90\xa8\xef\xa8\xa5\x90\x09\x64\xa8\x77\x22\xa7\xe2\xe5\xc0\x65\xcc\x52\xb1\x13\x86\x1b\xfb\xdc\x4a\xc7\x67\xef\x02\xc6\x82\x00\xe6\x5c\x1b\xc1\xd3\xf4\x89\x4a\x21\x30\x86\xb5\x56\x3b\x4b\x7d\x3e\x0c\x82\x44\x98\x4d\xb1\xf2\x23\xb5\x0b\x56\x6a\x8f\x22\x48\xa9\xcb\x36\xaa\xc8\x31\x58\xa5\x6a\x15\xec\x78\x6e\x50\x07\xd9\x36\x09\x32\xad\x56\x18\x98\x28\xf3\x13\xc5\x58\xc6\xa3\x2d\xc5\xb7\xe3\x42\x32\x26\x76\x99\xd2\x06\x5c\xe6\x74\x56\x4f\x06\xf3\x0e\x73\x3a\x28\x23\x15\x0b\x99\x04\x2b\x21\xb9\x7e\x22\x51\xaa\x12\xfa\x92\x68\x3a\xcc\x63\x2c\x52\x32\xb7\x87\x4c\x94\x7d\x46\x1e\xa3\x0e\xc5\xbf\x08\x23\x18\xf4\xac\x6c\xae\x95\x51\xb3\x62\x07\x00\x23\xb8\x78\x71\x22\x08\xe0\xd3\x74\x46\x45\xe3\xb0\x9c\xcc\x61\x9d\xf2\x84\x39\x24\x2a\x84\x34\xfd\x0b\x18\x41\x1f\xae\xae\x40\x28\xc3\x2d\x3a\xfc\xda\x42\x87\x5f\x67\x56\xb5\x08\x97\xa7\xaa\x45\xb8\xb4\xaa\x79\xf8\xf9\x54\x35\x0f\x3f\x5b\xd5\x78\xf2\xe5\x54\x35\x9e\x7c\xb1\xaa\xbb\xc5\xdf\xa7\xaa\xbb\xc5\xdf\x56\x75\x33\xb9\x39\x55\xdd\x4c\x6e\xac\x6a\x72\xbf\x38\x55\x4d\xee\x17\x56\x35\x0b\x4f\x35\xb3\x90\xe8\x30\x4f\x19\x02\x11\xc5\xa3\x2d\x1a\xc8\x8d\x2e\x22\x03\xcf\xcc\x09\x75\x34\xa7\x82\x00\x1c\xf8\x08\x02\xe8\x31\xe7\x23\xe6\xa6\x52\x1c\xe5\x03\xe6\x84\xf8\x0d\xaa\x3f\x92\xbf\x1f\x90\xfc\x9c\x39\xe3\x68\xdb\x96\x5f\x32\xe7\x53\xca\x93\xfc\x28\x2f\xed\xf4\xdf\x33\xe7\x5e\xc8\x58\xed\x6d\x19\x1b\x8a\x73\xe6\x4c\x36\x18\x6d\x73\x5b\xcb\x86\xe2\x82\x39\x77\x3a\x41\x69\xe6\x46\xbf\x50\x5c\xda\xbc\x07\x3d\xf6\x93\xb1\x75\x21\x23\x70\x0d\xbc\xab\x33\xf5\x20\xc6\x48\xc5\xe8\x66\x5b\x03\x0f\x8f\xd4\x72\x1e\xb8\xe5\x8f\x2e\xa0\xd6\x4a\x7b\x44\x03\x6a\x0d\xc3\x11\x94\x0d\xe8\x2f\x90\xc7\xae\x6d\x4f\x7f\x86\xfb\x85\x6d\x38\xb2\xe0\x75\x0f\x88\x0f\x22\xb9\x91\xb1\xe0\xb2\x0b\xc6\x63\x8e\x58\x93\x2d\xf8\x63\x04\x52\xa4\x64\xcf\xd1\x68\x0a\x2d\xe9\xd1\xba\x61\xce\x4f\xc6\x0e\xc2\x6c\x6b\x1e\x8c\xff\x91\x1b\x7e\xbb\x5e\xe7\x68\x5c\x6f\xf8\xd8\x25\xe8\x6b\x39\x34\xa1\x20\xa4\x2d\x5c\x65\x4b\x48\xe3\xba\xc6\x2f\x69\xbe\xbe\x86\xfe\xc0\x83\x77\x70\xee\xbd\x66\x8a\x80\xa1\xd1\x42\x26\xae\x47\x6d\x40\xfb\xe2\x99\x39\xaa\x30\x94\x7f\xa7\xc3\x6c\x32\x95\xc1\xb7\x34\x26\x7f\x8c\xa0\x67\x53\x22\xcc\xd9\x08\x3a\x24\xec\x50\x42\x4d\x24\x4d\x4d\x0b\x49\xc2\x16\x92\x86\xa8\x85\x24\x61\x0b\x49\x33\xd5\x42\x92\xb0\x85\xa4\x11\x6b\x21\x49\xd8\x42\xd2\xc4\xb5\x90\x24\x6c\x21\x69\x00\x5b\x48\x12\xb6\x90\x34\x8f\x2d\x24\x09\x5b\xc8\x59\xd8\x06\xce\xc2\x12\x57\x97\x54\x15\xe6\xb5\xea\xd9\x4d\x89\x6e\xae\xa3\x2e\xc4\x98\x1b\x90\x68\xfc\xe9\xbc\x0b\x31\x37\xbc\xee\xef\xf2\x9b\x9c\x50\xd7\x0f\x47\xb0\xe3\x5b\xac\x9b\x7e\xd0\xa3\xcf\x59\x8a\xd2\xa5\x53\x9e\xc7\x98\x53\xda\x6d\x8e\x40\xdd\xe0\xb5\xd2\x9f\x17\xe6\xce\xce\x1d\x8d\x42\x17\x8c\x5f\xed\x0e\xef\x15\xc8\xc3\x80\xda\xda\xf8\x87\x55\xd2\xc6\xbd\x1f\x58\xdc\x79\x89\x0b\xf1\xdb\xab\x90\xcb\x12\x32\x8e\xb6\xaf\x7a\xeb\x57\xee\x2c\xd3\xaf\xa3\x2a\x67\xc7\xf5\xf3\x3a\xb4\x72\x5a\xef\x1d\x62\x2a\x3a\x6c\xa7\xe1\x08\x0e\xbf\x97\x93\xf9\xb1\x24\x5d\x3b\xde\xc3\x17\x17\xd5\x63\x59\x20\xcf\x16\xe4\xa1\x7f\xf1\x08\x23\xbb\xc2\x2e\xdd\xda\xdc\x5b\xe8\xfd\x58\xaf\x0f\x88\xff\xfb\x05\xe2\xfa\x1a\x2e\x29\x02\xaa\xe9\x88\xde\x69\x50\xc6\x65\x25\xc8\xb6\xef\xfb\xde\x8b\x0d\x53\xb7\xd0\x2f\xa3\xac\x1b\xa7\x8e\xf3\xa4\x87\xaa\x0d\xfb\xcc\x9c\x54\x25\xfe\x5c\x0b\x69\xd6\x6e\x27\xe2\x69\x4a\x1b\xa3\x61\x73\x08\x6f\xbe\xd7\xff\x9d\x2e\x34\x88\x38\xb1\xed\x11\x7b\x5b\x22\xee\xad\x89\xb2\xc3\x9a\x47\xfd\x4c\xbd\x4f\x37\x9e\xad\x02\x64\x39\x16\xb1\xda\xd8\x83\xbe\x3d\xe2\xf3\x38\xa6\xd0\xfd\xa5\x3a\x77\x3d\xef\x28\x23\x37\x07\x21\x73\xbe\x73\x5d\x1d\x2e\xbd\xc2\xc3\xb9\x4d\x86\x39\x4d\xe9\x43\x9f\xb8\x6d\xbc\x33\x30\xe7\xb4\xe5\x9b\x7d\xd0\x3c\x69\x1b\xac\x24\xc6\xad\xc7\xc7\x0e\x52\x9d\xa9\xd7\x0c\xef\xc5\xe1\xe1\x63\x43\x73\xc4\x37\x92\xb1\x14\x9d\xf0\x5d\x93\x34\x84\x37\x67\x44\x6f\xb4\xd9\x36\xea\x4c\x67\xd7\x42\xf2\x54\xfc\x8b\xae\xdd\xf9\x87\x8b\xfe\x48\x6f\xe3\xb2\x2f\x6f\xd5\xc3\x0d\xcd\x1c\x15\xc7\x1f\x68\x53\x94\x2c\xa5\x28\x13\xb3\x01\xba\x52\x8e\xfb\x27\xb2\xfb\xe7\x68\xcd\x83\xa3\xbf\x46\x93\x68\xb4\x8b\x26\xf2\x73\x22\x54\xac\x21\xf2\x4b\x73\x6f\x06\x70\x5d\x2d\x3c\xc2\x9c\x8d\x2a\xe7\x6e\xe4\x57\xde\x3d\xbb\x24\xeb\xac\x53\xe9\x76\x34\x9a\x21\x74\xba\xa0\x91\x96\x06\xbd\xf2\x6a\x34\xd7\xd7\xfd\x8b\x17\xb6\x46\x24\x7d\x4b\x63\xb3\x5e\xc3\xd9\x01\xc2\x9c\xdf\xd9\xfa\xbd\xa7\x8a\xd5\xff\x56\x35\xb6\xc2\xdf\x30\x71\xa8\x5a\x3d\x34\xcf\x36\xf5\xba\x35\x60\x34\x3a\x86\x5b\x68\x69\xdd\x6f\xf8\x77\xbc\xad\x78\xb7\x8c\x35\x79\x62\xce\xe1\x99\x98\xaa\x0d\x59\xb3\xcd\x83\x64\xd3\x7a\xae\x17\x41\x19\xc2\x73\xcd\xea\xcf\xc6\x5a\x20\xb7\x44\xa2\x20\x87\xbd\xbf\x40\xc0\xd5\xd1\xf6\x9f\x7d\x12\x9c\x8d\x60\x60\xad\xda\x0a\x36\xca\x44\x98\x07\xf1\xe8\xc1\xd9\x4b\xc9\x59\xff\xd1\xbb\xba\xba\x3c\x5c\x70\xbf\x28\x77\x1d\x0a\x8c\x6c\x28\x0f\x0d\x97\x8f\x74\xee\x27\xfb\x5f\x00\x00\x00\xff\xff\x2a\x67\xe4\x3f\xb1\x0e\x00\x00") - -func testImagesRegressionIssue74839TcpGoBytes() ([]byte, error) { - return bindataRead( - _testImagesRegressionIssue74839TcpGo, - "test/images/regression-issue-74839/tcp.go", - ) -} - -func testImagesRegressionIssue74839TcpGo() (*asset, error) { - bytes, err := testImagesRegressionIssue74839TcpGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/regression-issue-74839/tcp.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesResourceConsumerGitignore = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\xce\xcf\x2b\x2e\xcd\x4d\x2d\xe2\x82\x32\x74\x93\x0b\x4a\xf5\x91\xd8\x20\xf1\x92\xa2\xfc\x9c\x9c\xd4\x22\x7d\x04\x93\x0b\x10\x00\x00\xff\xff\x1b\x0f\x16\x78\x37\x00\x00\x00") - -func testImagesResourceConsumerGitignoreBytes() ([]byte, error) { - return bindataRead( - _testImagesResourceConsumerGitignore, - "test/images/resource-consumer/.gitignore", - ) -} - -func testImagesResourceConsumerGitignore() (*asset, error) { - bytes, err := testImagesResourceConsumerGitignoreBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/resource-consumer/.gitignore", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesResourceConsumerBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\xcd\xb6\x28\xd6\x4b\x4f\x2e\xd2\xcb\xcc\xd7\x4f\x49\x4d\xca\x4c\xcc\xd3\x4d\x4a\x2c\x4e\xd5\x05\x4b\x5a\x19\xe8\x99\xe8\x19\x72\x41\x95\x17\xe5\xe2\x54\x5c\x94\x8b\xae\x14\x8f\xc9\x20\x49\x14\xe5\x05\x05\xc9\x66\x26\x39\xa9\xb8\x34\x40\xa5\x51\xb4\x14\x1b\x5b\x1a\x54\xe0\xd2\x00\x96\x84\x2a\x07\x04\x00\x00\xff\xff\x71\x77\xcf\xba\xeb\x00\x00\x00") - -func testImagesResourceConsumerBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesResourceConsumerBaseimage, - "test/images/resource-consumer/BASEIMAGE", - ) -} - -func testImagesResourceConsumerBaseimage() (*asset, error) { - bytes, err := testImagesResourceConsumerBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/resource-consumer/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesResourceConsumerDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x4f\x6f\xdb\x30\x0c\xc5\xef\xfa\x14\x0f\xf1\x0e\x1b\x90\xc4\x59\x0f\x43\xb1\x9d\xdc\xc4\x6d\x8d\xb6\x76\x67\x3b\xeb\x82\x61\x28\x14\x99\xb1\x09\x38\x92\x2b\xc9\x73\xf3\xed\x07\xa7\x7f\xd6\x62\x3a\x89\xe4\x23\xf5\xe3\x53\x80\xa5\xe9\x0e\x96\xeb\xc6\xe3\x64\xf1\xf9\x0b\xca\x86\x70\xd5\x6f\xc9\x6a\xf2\xe4\x10\xf5\xbe\x31\xd6\xcd\x45\x20\x02\x5c\xb3\x22\xed\xa8\x42\xaf\x2b\xb2\xf0\x0d\x21\xea\xa4\x6a\xe8\xa5\x32\xc5\x0f\xb2\x8e\x8d\xc6\xc9\x7c\x81\x8f\xa3\x60\xf2\x5c\x9a\x7c\xfa\x26\x02\x1c\x4c\x8f\xbd\x3c\x40\x1b\x8f\xde\x11\x7c\xc3\x0e\x3b\x6e\x09\xf4\xa8\xa8\xf3\x60\x0d\x65\xf6\x5d\xcb\x52\x2b\xc2\xc0\xbe\x39\x3e\xf3\x3c\x64\x2e\x02\x6c\x9e\x47\x98\xad\x97\xac\x21\xa1\x4c\x77\x80\xd9\xbd\xd5\x41\xfa\x23\xf0\x78\x1a\xef\xbb\xaf\x61\x38\x0c\xc3\x5c\x1e\x61\xe7\xc6\xd6\x61\xfb\x24\x74\xe1\x75\xb2\x8c\xd3\x22\x9e\x9d\xcc\x17\xc7\x96\xb5\x6e\xc9\x39\x58\x7a\xe8\xd9\x52\x85\xed\x01\xb2\xeb\x5a\x56\x72\xdb\x12\x5a\x39\xc0\x58\xc8\xda\x12\x55\xf0\x66\xe4\x1d\x2c\x7b\xd6\xf5\x14\xce\xec\xfc\x20\x2d\x89\x00\x15\x3b\x6f\x79\xdb\xfb\x77\x66\xbd\xd0\xb1\x7b\x27\x30\x1a\x52\x63\x12\x15\x48\x8a\x09\xce\xa2\x22\x29\xa6\x22\xc0\x5d\x52\x5e\x66\xeb\x12\x77\x51\x9e\x47\x69\x99\xc4\x05\xb2\x1c\xcb\x2c\x5d\x25\x65\x92\xa5\x05\xb2\x73\x44\xe9\x06\x57\x49\xba\x9a\x82\xd8\x37\x64\x41\x8f\x9d\x1d\xf9\x8d\x05\x8f\x36\x52\x35\x7a\x56\x10\xbd\x03\xd8\x99\x27\x20\xd7\x91\xe2\x1d\x2b\xb4\x52\xd7\xbd\xac\x09\xb5\xf9\x43\x56\xb3\xae\xd1\x91\xdd\xb3\x1b\x3f\xd3\x41\xea\x4a\x04\x68\x79\xcf\x5e\xfa\x63\xe6\xbf\xa5\xe6\x42\x44\xf9\xc5\x48\x1f\x27\x37\xd1\x45\x2c\xce\xf3\xec\x06\x1f\xfe\xc5\x62\x99\x67\x45\x71\x7f\xb6\x4e\xae\x57\xf7\xcb\xec\x76\x83\x07\xda\xf7\xb3\xef\xf1\xcd\x3a\xca\x97\x97\x33\x37\x8e\x56\x08\x7b\x67\xc3\x2d\xeb\x50\x88\x7c\x9d\x42\xb5\x24\xf5\x8c\xb5\xf3\xb2\x6d\xe1\xfc\xb8\x9c\x10\xd1\x6a\x05\x65\xb4\xeb\xf7\x64\x11\xbe\xdc\xde\xa6\x67\xaa\xeb\x5f\x2b\x63\x20\xe2\x9f\xb7\x59\x11\xe3\x74\x71\xba\x10\x71\x5a\xe6\x9b\xdb\x2c\x49\x4b\xfc\x9a\xbc\xf6\x4f\x7e\x8b\xbf\x01\x00\x00\xff\xff\x1c\xcd\x8d\x79\x0f\x03\x00\x00") - -func testImagesResourceConsumerDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesResourceConsumerDockerfile, - "test/images/resource-consumer/Dockerfile", - ) -} - -func testImagesResourceConsumerDockerfile() (*asset, error) { - bytes, err := testImagesResourceConsumerDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/resource-consumer/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesResourceConsumerMakefile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x5f\x4f\xdb\x4a\x10\xc5\x9f\xef\x7e\x8a\xa3\x98\x87\x44\x0a\x0e\x17\x5d\x71\x25\x2a\x54\xb9\x49\x1a\x2c\xa8\x5d\xd9\x01\xc4\x13\xda\xd8\x13\x7b\x24\x7b\x77\xbb\xbb\xae\x93\x6f\x5f\x6d\x00\x09\x54\x3f\xcd\x9f\x33\x33\x3f\x9f\x8d\xb0\xd4\xe6\x68\xb9\x69\x3d\x2e\x2f\xfe\xbd\xc2\xb6\x25\xdc\x0d\x3b\xb2\x8a\x3c\x39\x24\x83\x6f\xb5\x75\xb1\x88\x44\x84\x7b\xae\x48\x39\xaa\x31\xa8\x9a\x2c\x7c\x4b\x48\x8c\xac\x5a\x7a\xef\xcc\xf1\x48\xd6\xb1\x56\xb8\x8c\x2f\x30\x0d\x82\xc9\x5b\x6b\x32\xfb\x22\x22\x1c\xf5\x80\x5e\x1e\xa1\xb4\xc7\xe0\x08\xbe\x65\x87\x3d\x77\x04\x3a\x54\x64\x3c\x58\xa1\xd2\xbd\xe9\x58\xaa\x8a\x30\xb2\x6f\x4f\x67\xde\x96\xc4\x22\xc2\xf3\xdb\x0a\xbd\xf3\x92\x15\x24\x2a\x6d\x8e\xd0\xfb\x8f\x3a\x48\x7f\x02\x0e\x5f\xeb\xbd\xb9\x5e\x2c\xc6\x71\x8c\xe5\x09\x36\xd6\xb6\x59\x74\xaf\x42\xb7\xb8\x4f\x97\xeb\xac\x5c\x9f\x5f\xc6\x17\xa7\x91\x07\xd5\x91\x73\xb0\xf4\x6b\x60\x4b\x35\x76\x47\x48\x63\x3a\xae\xe4\xae\x23\x74\x72\x84\xb6\x90\x8d\x25\xaa\xe1\x75\xe0\x1d\x2d\x7b\x56\xcd\x1c\x4e\xef\xfd\x28\x2d\x89\x08\x35\x3b\x6f\x79\x37\xf8\x4f\x66\xbd\xd3\xb1\xfb\x24\xd0\x0a\x52\x61\x92\x94\x48\xcb\x09\xbe\x25\x65\x5a\xce\x45\x84\xa7\x74\x7b\x9b\x3f\x6c\xf1\x94\x14\x45\x92\x6d\xd3\x75\x89\xbc\xc0\x32\xcf\x56\xe9\x36\xcd\xb3\x12\xf9\x77\x24\xd9\x33\xee\xd2\x6c\x35\x07\xb1\x6f\xc9\x82\x0e\xc6\x06\x7e\x6d\xc1\xc1\x46\xaa\x83\x67\x25\xd1\x27\x80\xbd\x7e\x05\x72\x86\x2a\xde\x73\x85\x4e\xaa\x66\x90\x0d\xa1\xd1\xbf\xc9\x2a\x56\x0d\x0c\xd9\x9e\x5d\x78\x4c\x07\xa9\x6a\x11\xa1\xe3\x9e\xbd\xf4\xa7\xca\x5f\x3f\x15\x0b\x51\x16\xcb\x12\x37\xa8\xb4\x72\x43\x4f\xf6\x3d\x38\xaf\xcc\xb0\xf8\x10\x8b\xbc\xc4\xd7\x1b\x74\xac\x86\x83\x48\x8a\xe5\x6d\xc8\x64\x5f\x5f\xfd\x27\xb6\x49\xb1\x59\x6f\x43\x7e\x36\x5d\x3e\x14\xab\xb4\x98\x89\x4d\x9e\x14\x3f\x42\xe9\x7f\xb1\xc9\xef\x93\x6c\xf3\xf2\xb8\x2e\xca\x34\xcf\x4e\x4b\xa4\x27\xe7\xc3\xe5\x97\x55\x5a\x20\xcc\x29\xed\x6b\xb6\x38\x9b\xba\x96\xba\x0e\x66\xac\x67\x33\x41\x07\xa3\xad\x17\x62\xc7\xea\x5a\xfc\x13\xc7\x0b\xee\x65\x43\xe7\x83\xe7\x2e\x76\x2d\x76\xac\x70\x36\x0d\xfc\x33\x21\xe2\x9f\xb7\x79\xf6\x7c\x1d\x8a\xe2\x4f\x00\x00\x00\xff\xff\xe6\x5b\xa6\xf0\x1f\x03\x00\x00") - -func testImagesResourceConsumerMakefileBytes() ([]byte, error) { - return bindataRead( - _testImagesResourceConsumerMakefile, - "test/images/resource-consumer/Makefile", - ) -} - -func testImagesResourceConsumerMakefile() (*asset, error) { - bytes, err := testImagesResourceConsumerMakefileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/resource-consumer/Makefile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesResourceConsumerVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe7\x02\x04\x00\x00\xff\xff\x18\x62\xd2\x2b\x04\x00\x00\x00") - -func testImagesResourceConsumerVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesResourceConsumerVersion, - "test/images/resource-consumer/VERSION", - ) -} - -func testImagesResourceConsumerVersion() (*asset, error) { - bytes, err := testImagesResourceConsumerVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/resource-consumer/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesResourceConsumerCommonCommonGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x94\x41\x73\xdb\x36\x10\x85\xcf\xc4\xaf\xd8\xc1\x29\xc9\xd8\xa4\xeb\x43\x0f\xed\xf8\x40\xcb\x76\xca\x49\x44\xb9\xa6\xdc\x4c\x8e\x10\xb8\x22\x31\x26\x00\x06\x58\x84\x51\x7e\x7d\x07\x14\x65\x49\x96\xcc\x9b\xf4\xbe\xf7\x76\xdf\x52\xa3\xec\x13\x9b\xd9\x7e\xe3\x54\xd3\x12\x5c\x5f\xfd\xf1\x27\x2c\x5b\x84\x2f\x61\x85\xce\x20\xa1\x87\x3c\x50\x6b\x9d\x4f\x19\xfb\xaa\x24\x1a\x8f\x35\x04\x53\xa3\x03\x6a\x11\xf2\x5e\xc8\x16\x61\x52\x2e\xe0\x3f\x74\x5e\x59\x03\xd7\xe9\x15\x7c\x88\x00\x9f\x24\xfe\xf1\x6f\xb6\xb1\x01\xb4\xd8\x80\xb1\x04\xc1\x23\x50\xab\x3c\xac\x55\x87\x80\xbf\x24\xf6\x04\xca\x80\xb4\xba\xef\x94\x30\x12\x61\x50\xd4\x8e\x43\xa6\x88\x94\x7d\x9f\x02\xec\x8a\x84\x32\x20\x40\xda\x7e\x03\x76\x7d\x48\x81\x20\xc6\x00\x00\x5a\xa2\xfe\xaf\x2c\x1b\x86\x21\x15\xe3\x96\xa9\x75\x4d\xd6\x6d\x29\x9f\x7d\x2d\x66\xf7\x65\x75\x7f\x79\x9d\x5e\x31\xf6\x6c\x3a\xf4\x1e\x1c\xfe\x08\xca\x61\x0d\xab\x0d\x88\xbe\xef\x94\x14\xab\x0e\xa1\x13\x03\x58\x07\xa2\x71\x88\x35\x90\x8d\x7b\x0e\x4e\x91\x32\xcd\x05\x78\xbb\xa6\x41\x38\x64\xb5\xf2\xe4\xd4\x2a\xd0\xd1\x81\x76\x5b\x29\x0f\x87\x80\x35\x20\x0c\xf0\xbc\x82\xa2\xe2\x70\x9b\x57\x45\x75\xc1\xbe\x15\xcb\x7f\x16\xcf\x4b\xf8\x96\x3f\x3d\xe5\xe5\xb2\xb8\xaf\x60\xf1\x04\xb3\x45\x79\x57\x2c\x8b\x45\x59\xc1\xe2\x01\xf2\xf2\x3b\x7c\x29\xca\xbb\x0b\x40\x45\x2d\x3a\xc0\x5f\xbd\x8b\xbb\x5b\x07\x2a\x9e\x0e\xeb\x94\x55\x88\x47\xc3\xd7\x76\xbb\x8c\xef\x51\xaa\xb5\x92\xd0\x09\xd3\x04\xd1\x20\x34\xf6\x27\x3a\xa3\x4c\x03\x3d\x3a\xad\x7c\x7c\x79\x1e\x84\xa9\x59\xa7\xb4\x22\x41\xe3\xe7\x93\x3a\x29\xfb\x94\x31\xd6\x0b\xf9\x12\x43\xa4\xd5\xda\x1a\xc6\xb2\x0c\x66\xd6\x78\x12\x86\xe2\x2d\x3b\x41\xdb\x73\x3d\x3a\xab\x91\x5a\x0c\x1e\x34\x92\x53\xd2\xa7\x4c\x46\x10\x3e\xb0\x24\x3a\x82\xc6\xd9\xe3\x73\x5e\xd7\x63\x93\xed\x73\x03\x3c\xdb\x6b\xfc\x15\x9c\xa3\x7e\x17\x9c\xa3\xe6\x2c\xb9\x0d\xba\x9f\x8f\x73\x4e\xc1\xbd\xc6\x59\xf2\x19\x69\x16\x9c\x43\x43\x15\x09\x0a\x7e\x87\x47\xf0\xad\xc6\x59\xb2\xf5\xf9\xe3\xd0\x29\x77\xea\xc5\x19\x4b\xe6\xaa\xeb\x94\xb4\x0e\xfd\xbf\x01\xdd\x06\x8e\x9e\x1b\xe0\xfa\x55\x1f\x33\x1b\xb1\xda\xd0\x59\x76\x84\x77\xfa\xeb\xfc\x52\x68\x7c\x27\x78\xd7\xeb\x0e\x3b\x12\xe7\x02\x27\xb0\x8e\x7a\xe4\x82\x1b\x5f\x70\x85\xf2\x94\x8e\xdc\x5e\xe7\x2c\x79\xc2\x1f\x01\x3d\x55\xea\x37\x16\xe6\x6d\xc9\x1b\xe0\x6e\xaf\xcf\x0f\x2b\x1e\xfb\xde\xf4\x7d\xe3\x3b\x68\x7b\x60\x9b\x05\x4f\x56\x6f\xeb\x9f\x1d\xb7\x3f\xfe\xad\xa8\x27\xe3\x99\xde\xb7\xa2\x86\xc9\x96\x42\x69\x09\x04\x3c\x2e\xaa\xe5\xee\x3b\xce\x92\x67\xf3\x62\xec\x60\x1e\x82\x91\xb1\xf8\xb1\x3d\x6c\x45\x58\x4f\x2a\x67\x49\x61\xa4\x75\x0e\x25\xed\x1c\xb9\x6b\x82\x46\x43\x91\x57\x3b\xf1\xd5\x01\x62\x92\x39\x4b\x4a\x4b\x9f\xd5\x4f\x34\x27\xce\x68\x8d\xff\x90\x4d\x54\xcf\x59\x59\xf2\xe0\x84\xc6\xc1\xba\x97\xf8\x63\x88\x7c\x6b\x9d\xfa\x6d\x0d\x89\xee\xb2\xb7\xf5\xa5\x08\x64\xbd\x14\x9d\x32\x0d\x67\x1f\xd9\xff\x01\x00\x00\xff\xff\xe1\xe8\xc2\x46\xe3\x05\x00\x00") - -func testImagesResourceConsumerCommonCommonGoBytes() ([]byte, error) { - return bindataRead( - _testImagesResourceConsumerCommonCommonGo, - "test/images/resource-consumer/common/common.go", - ) -} - -func testImagesResourceConsumerCommonCommonGo() (*asset, error) { - bytes, err := testImagesResourceConsumerCommonCommonGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/resource-consumer/common/common.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesResourceConsumerConsumeCpuConsume_cpuGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x52\x5d\x6f\xa3\x46\x14\x7d\x66\x7e\xc5\x11\x4f\x90\x78\xc1\x89\xda\x4a\xdd\x24\x0f\x6e\x92\xb6\xd6\x6e\x9d\x28\x38\x5d\xed\xe3\x78\xb8\xc0\x68\x61\x86\x9d\xb9\xc4\xb1\xaa\xfc\xf7\x6a\xc0\x49\xec\x56\x2d\x2f\xc0\xb9\x5f\xe7\xdc\x73\xf3\x13\x71\x6d\xfb\x9d\xd3\x75\xc3\x38\x9f\x9f\xfd\x88\x75\x43\xf8\x34\x6c\xc8\x19\x62\xf2\x58\x0c\xdc\x58\xe7\x33\x21\x3e\x6b\x45\xc6\x53\x89\xc1\x94\xe4\xc0\x0d\x61\xd1\x4b\xd5\x10\xf6\x91\x19\xfe\x24\xe7\xb5\x35\x38\xcf\xe6\x48\x42\x42\xbc\x0f\xc5\xe9\x85\xd8\xd9\x01\x9d\xdc\xc1\x58\xc6\xe0\x09\xdc\x68\x8f\x4a\xb7\x04\x7a\x56\xd4\x33\xb4\x81\xb2\x5d\xdf\x6a\x69\x14\x61\xab\xb9\x19\x87\xec\x5b\x64\xe2\xeb\xbe\x81\xdd\xb0\xd4\x06\x12\xca\xf6\x3b\xd8\xea\x30\x0b\x92\x85\x00\x80\x86\xb9\xff\x98\xe7\xdb\xed\x36\x93\x23\xcb\xcc\xba\x3a\x6f\xa7\x2c\x9f\x7f\x5e\x5e\xdf\xae\x8a\xdb\x0f\xe7\xd9\x5c\x88\x47\xd3\x92\xf7\x70\xf4\x7d\xd0\x8e\x4a\x6c\x76\x90\x7d\xdf\x6a\x25\x37\x2d\xa1\x95\x5b\x58\x07\x59\x3b\xa2\x12\x6c\x03\xcf\xad\xd3\xac\x4d\x3d\x83\xb7\x15\x6f\xa5\x23\x51\x6a\xcf\x4e\x6f\x06\x3e\x5a\xd0\x2b\x2b\xed\x71\x98\x60\x0d\xa4\x41\xbc\x28\xb0\x2c\x62\xfc\xb2\x28\x96\xc5\x4c\x7c\x59\xae\x7f\xbf\x7b\x5c\xe3\xcb\xe2\xe1\x61\xb1\x5a\x2f\x6f\x0b\xdc\x3d\xe0\xfa\x6e\x75\xb3\x5c\x2f\xef\x56\x05\xee\x7e\xc5\x62\xf5\x15\x9f\x96\xab\x9b\x19\x48\x73\x43\x0e\xf4\xdc\xbb\xc0\xdd\x3a\xe8\xb0\x3a\x2a\x33\x51\x10\x1d\x0d\xaf\xec\x44\xc6\xf7\xa4\x74\xa5\x15\x5a\x69\xea\x41\xd6\x84\xda\x3e\x91\x33\xda\xd4\xe8\xc9\x75\xda\x07\xf3\x3c\xa4\x29\x45\xab\x3b\xcd\x92\xc7\xff\x7f\xc9\xc9\xc4\x49\x2e\x44\x2f\xd5\xb7\xd0\xa4\x93\xda\x08\xa1\xbb\xde\x3a\x46\x22\xa2\xb8\x6a\x65\x1d\x8b\x28\xee\x24\x37\xe1\xcd\xba\xa3\x58\x88\x28\xde\x68\xde\x0c\xea\x1b\xf1\xe8\xc5\x86\x1c\xeb\x6e\xf0\x3f\xe7\x7e\xe7\x99\x3a\xcf\x92\x63\x91\x0a\xa1\xac\xf1\x0c\xdf\x12\xf5\xb8\x42\xa8\xce\x6e\x06\x37\x92\x49\xce\xe6\x29\x4e\x26\xec\x0f\xdd\xb6\xda\x93\xb2\xa6\x14\xa2\x1a\x8c\x42\x69\x0b\xdb\x11\x37\xda\xd4\x49\x8a\xbf\x44\x14\x94\x6b\x7c\xbc\xc2\xd9\x05\x34\x2e\x71\x36\x9f\x9e\x0b\xe8\xd3\xd3\x90\x10\x3d\x87\x68\xd5\x5a\xc9\x3f\xfd\x90\xcc\xd3\x11\x39\xbd\x42\xa0\x9e\x15\xdf\x1d\x8f\xd8\x8b\x78\x11\xe2\x49\xba\xa0\xae\x0b\x53\x95\x75\xe4\x81\x50\x29\xeb\x6c\x69\x38\x89\xdf\xf1\x78\x86\xf9\x0c\x07\x00\xcc\xd0\x6d\xc8\xc5\xa9\x88\xca\xbd\x8e\x82\xd4\x51\xf5\x2b\xfe\xc1\x93\xda\xd7\xbf\x42\xa3\xd8\x70\x73\x93\x54\x1f\xa7\x61\x47\xa3\xde\xb0\xf9\xbd\xd0\xd0\xe9\x5e\x3a\x4f\x49\x2a\xa2\x3c\x87\xb2\xe6\x89\x1c\xe3\x80\x05\xdb\xe0\xb2\x22\xc3\xb2\xa6\x43\x21\xf7\x8a\x0f\xb7\x70\xf2\x1e\x49\x91\xbf\xc1\x67\xf3\x03\xfe\x21\xff\xd8\x98\x93\x03\x69\x6f\x16\x15\x93\x3b\x91\x67\xe9\xf8\xad\x66\x65\xb7\x81\x65\xa5\x9d\x1f\xc1\x77\xfb\xb3\xdf\x88\xef\x9d\x55\xd7\xf7\x8f\x85\xec\xfa\x76\x54\x33\x9e\xef\xd8\x4d\x1b\x45\xc9\xd8\x2b\xc5\x25\xde\xb8\x04\x1f\x55\x3f\xfc\x67\xab\xc5\x13\x39\x59\x53\x32\x0e\x9c\xfd\xff\xb8\x7f\x86\x1f\xfb\x30\x3a\x49\xb3\xe9\x23\x1c\x88\xae\xa0\xfa\x21\x5b\x5b\x96\x6d\x58\xdd\x25\x8e\x57\x19\xe8\x44\x47\xa7\x28\xa2\xe8\x05\xd4\x7a\x9a\x62\x93\x98\x70\xde\xc9\x78\xe4\x63\x7c\xba\xb2\xbf\x03\x00\x00\xff\xff\xa6\x15\x1f\xf2\x8f\x05\x00\x00") - -func testImagesResourceConsumerConsumeCpuConsume_cpuGoBytes() ([]byte, error) { - return bindataRead( - _testImagesResourceConsumerConsumeCpuConsume_cpuGo, - "test/images/resource-consumer/consume-cpu/consume_cpu.go", - ) -} - -func testImagesResourceConsumerConsumeCpuConsume_cpuGo() (*asset, error) { - bytes, err := testImagesResourceConsumerConsumeCpuConsume_cpuGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/resource-consumer/consume-cpu/consume_cpu.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesResourceConsumerResource_consumerGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x91\x51\x6b\xdb\x4a\x10\x85\x9f\xb3\xbf\xe2\x20\xb8\x20\x05\x5d\xd9\x37\x70\x21\xa4\xe4\x41\x75\x12\x22\x12\xec\x60\x39\x0d\x79\x5c\x4b\x23\x69\xa9\xb4\xbb\xdd\x1d\x45\x31\xa5\xff\xbd\xac\xe2\x42\x42\xdb\xa7\x65\x74\xce\xcc\xf9\x34\xb3\x38\x15\x2b\x63\x0f\x4e\xb5\x1d\xe3\x6c\xf9\xdf\xff\xd8\x75\x84\xbb\x71\x4f\x4e\x13\x93\x47\x3e\x72\x67\x9c\xcf\x84\xb8\x57\x15\x69\x4f\x35\x46\x5d\x93\x03\x77\x84\xdc\xca\xaa\x23\x1c\x95\x14\x5f\xc8\x79\x65\x34\xce\xb2\x25\xe2\x60\x88\x8e\x52\x94\x7c\x12\x07\x33\x62\x90\x07\x68\xc3\x18\x3d\x81\x3b\xe5\xd1\xa8\x9e\x40\xaf\x15\x59\x86\xd2\xa8\xcc\x60\x7b\x25\x75\x45\x98\x14\x77\x73\xc8\x71\x44\x26\x9e\x8f\x03\xcc\x9e\xa5\xd2\x90\xa8\x8c\x3d\xc0\x34\xef\x5d\x90\x2c\x04\x00\x74\xcc\xf6\x62\xb1\x98\xa6\x29\x93\x33\x65\x66\x5c\xbb\xe8\xdf\x5c\x7e\x71\x5f\xac\xae\xd7\xe5\xf5\xbf\x67\xd9\x52\x88\x47\xdd\x93\xf7\x70\xf4\x6d\x54\x8e\x6a\xec\x0f\x90\xd6\xf6\xaa\x92\xfb\x9e\xd0\xcb\x09\xc6\x41\xb6\x8e\xa8\x06\x9b\xc0\x39\x39\xc5\x4a\xb7\x29\xbc\x69\x78\x92\x8e\x44\xad\x3c\x3b\xb5\x1f\xf9\xc3\x82\x7e\x51\x29\x8f\xf7\x06\xa3\x21\x35\xa2\xbc\x44\x51\x46\xf8\x9c\x97\x45\x99\x8a\xa7\x62\x77\xbb\x79\xdc\xe1\x29\xdf\x6e\xf3\xf5\xae\xb8\x2e\xb1\xd9\x62\xb5\x59\x5f\x15\xbb\x62\xb3\x2e\xb1\xb9\x41\xbe\x7e\xc6\x5d\xb1\xbe\x4a\x41\x8a\x3b\x72\xa0\x57\xeb\x02\xbb\x71\x50\x61\x75\x54\x67\xa2\x24\xfa\x10\xde\x98\x37\x18\x6f\xa9\x52\x8d\xaa\xd0\x4b\xdd\x8e\xb2\x25\xb4\xe6\x85\x9c\x56\xba\x85\x25\x37\x28\x1f\x8e\xe7\x21\x75\x2d\x7a\x35\x28\x96\x3c\xd7\xbf\xfd\x4e\x26\x4e\x17\x42\x58\x59\x7d\x0d\x43\x06\xa9\xb4\x10\x6a\xb0\xc6\x31\x62\x71\x12\x35\xbd\x6c\xa3\xf0\x0e\x1c\x9e\xde\xcc\x95\x26\x5e\x84\xa3\x44\x22\x11\xe2\x45\x3a\xcc\xfe\x4b\x04\x77\x56\x68\x8e\xa3\xf0\x21\x4a\x71\xbe\x3c\x5f\xa6\x88\x1e\x82\xac\xc7\x61\x4f\x2e\x8b\x12\x21\x9a\x51\x57\x73\x56\x9c\xe0\xbb\x38\x99\xdb\x1e\xa4\xf3\x14\x27\xe2\xc4\x91\x37\xa3\xab\x68\x65\xb4\x1f\x07\x72\xb7\x52\xd7\x3d\x39\x5c\x5c\x62\x4d\xd3\xf6\xcf\x6a\x68\xec\x4d\x9b\xdd\x48\x96\x7d\x1c\xd8\xb2\x7b\xe5\x99\x74\xae\xeb\x92\xdc\x0b\xc5\xcd\xc0\x59\x69\x9d\xd2\xdc\xc4\xd1\xc5\x3f\x75\x94\xe2\x34\x50\x26\x29\xfe\x92\x98\x24\xe2\x87\xf8\x19\x00\x00\xff\xff\x8b\x9d\x03\xcd\x55\x03\x00\x00") - -func testImagesResourceConsumerResource_consumerGoBytes() ([]byte, error) { - return bindataRead( - _testImagesResourceConsumerResource_consumerGo, - "test/images/resource-consumer/resource_consumer.go", - ) -} - -func testImagesResourceConsumerResource_consumerGo() (*asset, error) { - bytes, err := testImagesResourceConsumerResource_consumerGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/resource-consumer/resource_consumer.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesResourceConsumerResource_consumer_handlerGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x58\x6f\x6f\xdb\xbe\x11\x7e\x6d\x7e\x8a\xab\x86\xfc\x60\x65\xaa\xd4\x5f\xd1\x15\x43\x0a\xbf\x70\xd3\xa4\x31\x9a\x38\x5e\xec\x34\x28\xba\x62\xa0\xa5\x93\x4c\x58\x22\x55\x92\x8a\xeb\xa5\xf9\xee\x03\x29\xd9\x96\xff\xc8\xf9\xb3\xa2\x5b\x5f\xd4\x96\x79\xba\xbb\xe7\xe1\x3d\x77\x64\x82\x43\x72\x2c\xf2\xb9\x64\xc9\x44\xc3\xeb\x57\x7f\xfe\x0d\x46\x13\x84\x4f\xc5\x18\x25\x47\x8d\x0a\xba\x85\x9e\x08\xa9\x7c\x42\xce\x59\x88\x5c\x61\x04\x05\x8f\x50\x82\x9e\x20\x74\x73\x1a\x4e\x10\xaa\x15\x0f\x3e\xa3\x54\x4c\x70\x78\xed\xbf\x82\xb6\x31\x70\xaa\x25\xc7\x7d\x47\xe6\xa2\x80\x8c\xce\x81\x0b\x0d\x85\x42\xd0\x13\xa6\x20\x66\x29\x02\xfe\x08\x31\xd7\xc0\x38\x84\x22\xcb\x53\x46\x79\x88\x30\x63\x7a\x62\x83\x54\x2e\x7c\xf2\xa5\x72\x20\xc6\x9a\x32\x0e\x14\x42\x91\xcf\x41\xc4\x75\x2b\xa0\x9a\x10\x00\x80\x89\xd6\xf9\x51\x10\xcc\x66\x33\x9f\xda\x2c\x7d\x21\x93\x20\x2d\xad\x54\x70\xde\x3b\x3e\xe9\x0f\x4f\x5e\xbe\xf6\x5f\x11\x72\xcd\x53\x54\x0a\x24\x7e\x2f\x98\xc4\x08\xc6\x73\xa0\x79\x9e\xb2\x90\x8e\x53\x84\x94\xce\x40\x48\xa0\x89\x44\x8c\x40\x0b\x93\xe7\x4c\x32\xcd\x78\xe2\x81\x12\xb1\x9e\x51\x89\x24\x62\x4a\x4b\x36\x2e\xf4\x1a\x41\x8b\xac\x98\x82\xba\x81\xe0\x40\x39\x38\xdd\x21\xf4\x86\x0e\xbc\xef\x0e\x7b\x43\x8f\xdc\xf4\x46\x67\x97\xd7\x23\xb8\xe9\x5e\x5d\x75\xfb\xa3\xde\xc9\x10\x2e\xaf\xe0\xf8\xb2\xff\xa1\x37\xea\x5d\xf6\x87\x70\x79\x0a\xdd\xfe\x17\xf8\xd4\xeb\x7f\xf0\x00\x99\x9e\xa0\x04\xfc\x91\x4b\x93\xbb\x90\xc0\x0c\x75\x18\xf9\x64\x88\xb8\x16\x3c\x16\x65\x32\x2a\xc7\x90\xc5\x2c\x84\x94\xf2\xa4\xa0\x09\x42\x22\x6e\x51\x72\xc6\x13\xc8\x51\x66\x4c\x99\xcd\x53\x40\x79\x44\x52\x96\x31\x4d\xb5\x7d\xde\x82\xe3\x93\xc3\x80\x90\x9c\x86\x53\xe3\x24\xa3\x8c\x13\xc2\xb2\x5c\x48\x0d\x6d\xd2\x72\xe2\x4c\x3b\xa4\xe5\x70\xd4\x81\xd9\x85\xc5\xf7\x42\xa6\xe6\xab\xd2\x32\x14\xfc\xd6\x7e\x9d\xf3\xd0\x7c\x6a\x96\xa1\x43\x48\xcb\x99\xfe\x5d\xf9\x4c\x04\xd3\x65\xf9\x05\x1a\x95\x0e\x58\x46\x13\x54\x81\x44\x25\x0a\x19\xe2\xcb\x50\x70\x55\x64\x28\x83\x50\x64\x99\xe0\x0e\x71\x09\x09\x02\xb8\xaa\xd6\x8f\xab\xe5\x33\xca\xa3\x14\x25\x4c\x44\x1a\x29\xc8\x50\x4b\x16\x2a\xcb\x06\x85\x85\x2f\x58\xf8\xf2\x89\x9e\xe7\xd8\xe8\x43\x69\x59\x84\x1a\xee\x48\x6b\xe1\xc7\xfc\xcb\x68\xfe\xd5\xec\x2a\x4f\xbe\xc5\xa9\xa0\xfa\xed\x9b\xe5\xfa\xb9\x08\xa7\x60\x00\xfa\x17\x85\xc6\x1f\xe4\xde\xa6\xd8\xc7\x59\x53\x84\x50\x22\x35\x82\xa3\x3c\x02\xc6\x99\x66\x34\x65\xff\x36\xcf\x8d\x39\x69\x01\x11\xc6\xb4\x48\xb5\xf2\x49\x5c\xf0\x70\x8f\xfb\xb6\x0b\x87\x4d\x7e\xee\x48\x4b\xa2\x2e\x24\x87\x3f\x1a\x4c\xee\x2a\x50\x47\x3b\x10\xdf\xdd\xdf\x1b\x70\x36\x7e\x7b\x52\xb9\x6c\x8a\xe5\xc2\x10\xe5\x2d\x9e\x8d\x46\x83\xf6\xcc\x6a\xd4\xbf\x42\x95\x0b\xae\xf0\x46\x32\x8d\xd2\x33\x2a\x84\xc3\x6a\xe5\x7b\x81\x4a\xbb\x26\xc1\x20\x80\xd2\xb7\xa9\x78\xa1\x4c\xc9\x2e\x36\x82\x71\x18\x48\x91\xa1\x9e\x60\x61\xb7\x37\xa3\x1a\xda\x63\xa1\x27\xf0\xf1\x64\x04\x7f\xc0\xe0\x72\x38\x72\x49\x8b\xc5\xc6\xb7\x7f\x7d\x75\xee\x0f\xa8\x9e\x40\xa7\x03\x65\xfd\xf8\x17\xa5\xa7\x6e\x14\x59\x2d\xdd\x91\x56\xab\x02\xe2\x97\x9f\x95\x41\x7b\xe6\x92\x56\xc5\x15\x69\xdd\x2f\x5d\x5e\xa0\x9e\x88\x08\x5e\x74\xc0\x31\xb1\x9c\xd2\x83\x81\x70\x22\xa5\x90\xed\x99\xb7\x88\xf4\x9e\x46\x15\x2a\xaf\x44\x3f\xd4\x54\x17\x6a\xf5\xf3\x46\x80\x20\x80\x9c\x4a\x0b\xd7\x78\xb6\x2d\x0a\x95\x86\x88\x6a\x6a\x2b\xe5\xfa\xea\xdc\x3e\xd8\x5c\x50\x4a\x38\xea\xd8\x94\x06\x54\x2a\x3c\x15\x32\x6b\xbb\xef\xec\xef\x2f\x3a\xc0\x59\xba\x23\x33\x94\xb2\x7a\x70\x1f\x9d\x53\xb5\x15\x95\x76\x8e\x07\xd7\xfb\xd8\x3d\x5e\x5a\x35\x13\xbc\xb2\x31\x29\x19\x47\x26\xf7\x87\x02\x5f\x60\xf6\x88\xc0\x17\x98\x3d\x18\xf8\x02\xb3\x47\x05\x4e\x50\x1f\x17\x52\x22\xd7\x25\x49\xfb\xc2\x7f\xdc\xb0\x6d\x4e\x62\xd3\x72\xab\xce\x56\x09\x8c\x8b\x2c\x2f\xab\x71\x5f\xe8\xf7\x4b\xab\xe6\xa0\x2b\x9b\x3d\xc8\xd7\x4b\x25\xce\xb4\x3f\xcc\x25\xe3\x3a\x6e\x3b\x07\xea\x08\x0e\x94\xb3\x2c\xed\x6b\x3e\xe5\x62\xc6\x4f\x0b\x1e\x9a\xb1\xe1\xad\xe5\xb6\x5e\x5a\x7d\xa1\x4f\x45\xc1\x23\xf7\x29\x8d\x63\xbb\x50\x76\xf7\x8f\xef\x05\xca\x39\x14\x32\xf5\x3f\xd3\xb4\x40\xb5\x68\x1f\x09\x6a\x33\xb2\xa1\xec\x5e\xa5\x82\xcc\x2c\xa8\x17\x71\x54\x48\x3b\xf3\x86\x18\x0e\x4b\xb3\xa3\x4e\xe9\xd0\xec\x66\xbb\x42\xfa\x61\x65\xf5\x0f\xb3\xe6\x92\x56\xc6\xd2\x94\x85\x42\xa2\xda\xf3\xde\xc5\xd2\x68\xf1\x1a\x8b\x61\x3b\x64\xa7\x03\x8e\x03\x3f\x7f\xc2\x96\xd3\x72\xa5\xb1\xb9\xf4\x85\xfe\xc8\x6e\x71\xb9\x05\x5d\x99\x14\x19\xf2\xc7\xb5\x1a\xcb\x91\x19\xcc\x28\xab\xf6\xd2\x2e\x99\x52\xe5\x91\x47\x2b\x77\x1f\x5d\x5e\x1d\x88\x4d\xcc\x50\x50\xcd\x7a\xbf\xab\x05\x6b\x6f\x21\x5d\xe3\xcd\xab\xc1\xdd\xfd\xfe\x26\x1d\x5b\xfc\x95\xaf\x55\x8d\x6e\x8d\xbf\xb5\x95\x46\xfe\x7a\x3c\x14\x52\x62\xa8\x9f\x49\x60\x22\xa0\x56\x9e\x75\x68\xb5\x24\x5d\xd2\x32\x32\x3a\xb5\x32\x4a\x79\x2d\xfc\x56\x9f\xfc\xfa\xe7\xd1\xb7\x1d\xe6\x75\xc7\x8d\x95\xb5\xf9\xd2\xda\x56\x35\xd6\xf1\x73\xe5\x68\xdb\xe7\x2f\x95\xa3\x6d\xed\xcf\x97\x23\x26\x74\x3c\xd7\xfb\xd5\xb8\xb0\x79\xa4\x18\x37\x5c\xfe\x1f\x69\x71\x93\xab\xe7\x6a\x71\x81\xd0\x5b\x81\x6d\x50\xe2\x3a\x17\x0f\x0b\x71\xdd\xdd\xef\xd3\xa1\xa9\xcb\x1a\xac\xa7\xc8\x70\x75\x6a\x68\x92\xe1\xca\x6f\x53\x45\xfd\x26\x11\x6e\x1f\x1f\x76\x49\xd1\x0a\x6f\xcb\x74\x47\x96\xce\x0d\xb5\x77\xc2\x23\x7b\x53\x37\xb7\x4a\x34\xe4\x63\xf4\xc2\x59\xb3\xae\x71\xd6\x70\xd4\x29\x99\x7b\x32\x9e\xe5\x69\xbb\x11\xc6\xe2\x24\x53\xbb\x6b\xf9\xe6\x3f\x03\x27\xc2\xd8\xdc\xf9\x76\x58\x5c\xf3\xb4\xb2\x31\xe2\x99\x7a\x70\x6b\x4f\xcb\x94\x27\xb8\x69\x6f\x8b\x73\x05\x35\xb6\xbc\xfc\x05\xce\x4e\xce\x07\x70\x60\xae\x1c\xb1\x80\x0c\x95\xa2\x09\xfa\xff\xe4\x8e\x07\x53\x77\xe7\x0b\xa3\x2f\x83\x13\xf3\x42\x42\x8b\x04\x9b\x0d\x0f\x14\x1c\xc4\xe5\xb2\x07\xb7\xae\x29\xe3\x27\xb0\xb6\x3a\x13\xb6\xcb\xf4\xab\xa6\xea\x41\x84\xa9\x69\xab\xe5\x45\x6d\x55\x7f\x60\x2e\xdc\xcb\xca\x7b\x90\x51\x16\xc3\xbf\x3c\x10\x53\xc3\xd6\x86\xdd\xd7\xf2\xf3\xdb\x3b\xb3\x5c\x3f\x63\x6e\xac\xc3\x5f\x3b\x65\x32\xa4\x75\x0f\x98\x2a\xdc\x6b\xbc\xb2\xdd\x9d\xd8\x72\x23\x49\xcb\x22\x19\xa6\x88\xf9\xb2\xa7\x99\x9f\xf7\xc1\x69\x8a\xfa\x72\x19\x76\x6f\xcc\x27\x97\x73\xfd\xa0\xfd\x6b\x66\xe4\xa6\xdf\xc5\x1f\x1d\x1a\xe6\x9c\x59\xea\xd3\x0c\x17\x6d\xc9\xa2\xdc\x37\x50\xcd\xfa\xd2\xf8\xb9\x33\xf8\xa1\x71\x6a\x13\x5e\x3e\xd7\x73\xfa\xdf\x8e\xd6\xc0\xca\xa5\x9a\xb0\xdb\x4c\xff\xf7\x73\xd6\x42\xad\xb4\xb9\xf5\x56\x79\x6f\x37\x19\xb4\x6b\x94\x78\xf0\xf6\xcd\x83\x53\xb6\xe6\xf0\x37\x4c\xd8\x85\x46\xb6\x9a\x4f\x85\xcc\x5b\x6f\x32\x75\x26\xdc\xc3\x52\xb5\x18\x0a\x73\x07\x6c\x1a\xc4\x5b\x97\xd8\xc6\x41\x5c\x86\x6d\xac\xf7\xad\x31\x5c\xe6\xb7\xab\xda\x9f\x3b\xb1\xff\x13\x00\x00\xff\xff\x25\xcb\xc3\xb1\x47\x17\x00\x00") - -func testImagesResourceConsumerResource_consumer_handlerGoBytes() ([]byte, error) { - return bindataRead( - _testImagesResourceConsumerResource_consumer_handlerGo, - "test/images/resource-consumer/resource_consumer_handler.go", - ) -} - -func testImagesResourceConsumerResource_consumer_handlerGo() (*asset, error) { - bytes, err := testImagesResourceConsumerResource_consumer_handlerGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/resource-consumer/resource_consumer_handler.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesResourceConsumerUtilsGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x55\x5d\x8f\xda\x46\x14\x7d\x66\x7e\xc5\x91\xa5\x48\x90\x82\xbd\x8b\xd4\x97\xad\xf6\x81\x90\x6d\x8b\x92\x85\x68\xcd\x36\xca\xe3\x30\xbe\xd8\xa3\x7a\x66\xdc\xf9\x80\x45\x55\xfe\x7b\x35\xe6\xcb\xb0\xda\x2a\x79\x31\xc3\xdc\x73\xee\x3d\xf7\x9e\x6b\xc8\xde\xb3\xa9\x69\x76\x56\x96\x95\xc7\xf8\xe6\xf6\x57\x2c\x2b\xc2\xa7\xb0\x22\xab\xc9\x93\xc3\x24\xf8\xca\x58\x97\x32\xf6\x59\x0a\xd2\x8e\x0a\x04\x5d\x90\x85\xaf\x08\x93\x86\x8b\x8a\x70\x88\x0c\xf1\x17\x59\x27\x8d\xc6\x38\xbd\x41\x3f\x02\x92\x43\x28\x19\xfc\xc6\x76\x26\x40\xf1\x1d\xb4\xf1\x08\x8e\xe0\x2b\xe9\xb0\x96\x35\x81\x5e\x04\x35\x1e\x52\x43\x18\xd5\xd4\x92\x6b\x41\xd8\x4a\x5f\xb5\x45\x0e\x29\x52\xf6\xed\x90\xc0\xac\x3c\x97\x1a\x1c\xc2\x34\x3b\x98\x75\x17\x05\xee\x19\x03\x80\xca\xfb\xe6\x2e\xcb\xb6\xdb\x6d\xca\x5b\x95\xa9\xb1\x65\x56\xef\x51\x2e\xfb\x3c\x9b\x3e\xcc\xf3\x87\xd1\x38\xbd\x61\xec\x59\xd7\xe4\x1c\x2c\xfd\x13\xa4\xa5\x02\xab\x1d\x78\xd3\xd4\x52\xf0\x55\x4d\xa8\xf9\x16\xc6\x82\x97\x96\xa8\x80\x37\x51\xe7\xd6\x4a\x2f\x75\x39\x84\x33\x6b\xbf\xe5\x96\x58\x21\x9d\xb7\x72\x15\xfc\xc5\x80\x8e\xaa\xa4\x43\x17\x60\x34\xb8\x46\x32\xc9\x31\xcb\x13\x7c\x98\xe4\xb3\x7c\xc8\xbe\xce\x96\x7f\x2e\x9e\x97\xf8\x3a\x79\x7a\x9a\xcc\x97\xb3\x87\x1c\x8b\x27\x4c\x17\xf3\x8f\xb3\xe5\x6c\x31\xcf\xb1\xf8\x1d\x93\xf9\x37\x7c\x9a\xcd\x3f\x0e\x41\xd2\x57\x64\x41\x2f\x8d\x8d\xda\x8d\x85\x8c\xa3\xa3\x22\x65\x39\xd1\x45\xf1\xb5\xd9\x8b\x71\x0d\x09\xb9\x96\x02\x35\xd7\x65\xe0\x25\xa1\x34\x1b\xb2\x5a\xea\x12\x0d\x59\x25\x5d\x34\xcf\x81\xeb\x82\xd5\x52\x49\xcf\x7d\xfb\xfd\x55\x3b\x29\x7b\x9f\x31\xd6\x70\xf1\x77\x4c\xa2\xb8\xd4\x8c\x49\xd5\x18\xeb\xd1\x67\xbd\x64\xad\x7c\xc2\x7a\x49\x6d\xca\xf8\x61\x5c\x46\x2f\x24\xe2\xd1\x79\x2b\x8c\xde\x24\x6c\xc0\x98\x30\xda\xb5\xf0\x78\x08\x8a\xa6\x5f\x9e\x3f\x48\xcd\xed\x0e\xf7\x48\xd2\xec\x70\x3b\x12\x4d\xe8\x9e\x93\x13\xfe\x91\xd4\x19\xef\x7c\x1c\x42\x9b\x37\xcb\x30\x3d\x65\xc4\x01\xec\xc0\x51\xca\x0d\x69\xe8\xa0\x56\x64\xe3\xd2\x28\x59\xd7\x52\x18\x4b\xee\x7a\x40\x54\xa0\x08\xb6\x6d\x3e\x65\xeb\xa0\x45\x27\x63\xbf\x43\x93\xda\x0f\x4f\xc8\x9c\x44\xbc\x18\xe0\x5f\xd6\xab\x4d\x99\x7e\xb1\x52\xfb\x75\x3f\xe9\x88\x39\x53\xef\xf0\x6e\x73\x41\x8d\x17\xc9\xb0\x83\xb8\x88\x0e\x58\x2f\xcb\x20\x2c\xf1\xb8\x74\xd0\xb4\x3d\x36\x06\xd1\x04\x34\xd6\x08\x72\x8e\xf5\xb8\x2d\x6f\x71\x77\x8f\xb5\xf2\x69\xde\x1c\x04\x8c\xce\x49\xef\xdf\x15\x17\x45\x06\x2d\x65\xfc\x9a\x72\xac\x3d\x72\x24\xf6\xa4\x4b\x35\x67\xcf\x22\x37\xda\x9b\x4e\x8d\x52\x5c\x17\xfd\x6b\x3b\x87\x88\xaa\xda\xe7\xf8\x82\x99\x3e\x05\xdd\x1f\xb0\xef\x5d\xcb\x1e\x49\xfd\xaf\x65\x54\xf2\xd5\xce\xff\x84\x63\x8f\xa4\xfa\x67\xd6\xcf\x18\x16\xa5\x9c\x98\x6f\xfa\x75\x04\x5c\x0f\xe8\x14\xc8\xbd\x8d\x96\xdd\xdd\xe3\xb0\xfc\xe9\xcc\x1b\x7e\xd6\x34\xc0\x2f\x48\x1e\x13\xd6\xeb\xf0\xdf\xe0\xfc\xd8\x42\x28\x52\xc6\xee\xce\x3b\x71\x7e\x5d\xde\xb2\xea\xf4\x26\x0d\x91\x8c\x54\x32\x44\x72\x1b\x1f\xa3\xd1\x46\x8d\x5a\x8d\xdd\x46\xf7\xda\x8e\xe1\x8a\xeb\x32\x62\x6f\x5a\x82\xbf\xdc\x93\x3d\x74\xd0\x95\x70\xe1\xf9\x1f\xe4\xa7\xc1\x5a\xd2\x3e\xf7\xdc\x07\x87\x76\xfd\x1c\x4c\xf0\xe0\xd0\x66\x64\x9a\x83\x99\xd7\xc8\xfe\x2b\xd3\xae\x11\xc9\x7e\x42\xf1\xaf\x26\xfe\x2c\x92\x22\xed\xa9\x60\xdf\xd9\x7f\x01\x00\x00\xff\xff\x36\xd7\xfc\x69\xf0\x06\x00\x00") - -func testImagesResourceConsumerUtilsGoBytes() ([]byte, error) { - return bindataRead( - _testImagesResourceConsumerUtilsGo, - "test/images/resource-consumer/utils.go", - ) -} - -func testImagesResourceConsumerUtilsGo() (*asset, error) { - bytes, err := testImagesResourceConsumerUtilsGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/resource-consumer/utils.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesSampleApiserverBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x4d\xcc\x29\xc8\xcc\x4b\xb5\x32\xd6\xb3\xe0\x82\x0a\x17\xe5\xda\x26\x16\xe5\x1a\x1b\x95\x99\xe9\x63\x93\x04\xe9\x01\x91\x65\x16\x98\xd2\x05\x05\xc9\x66\x26\x39\xa9\xb6\x50\x1a\x53\x41\xb1\xb1\xa5\x41\x85\x2d\x98\x44\x96\x04\x04\x00\x00\xff\xff\xa4\xbc\x38\xda\x91\x00\x00\x00") - -func testImagesSampleApiserverBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesSampleApiserverBaseimage, - "test/images/sample-apiserver/BASEIMAGE", - ) -} - -func testImagesSampleApiserverBaseimage() (*asset, error) { - bytes, err := testImagesSampleApiserverBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/sample-apiserver/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesSampleApiserverDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x54\xef\x4f\xe3\x46\x10\xfd\xee\xbf\xe2\x29\xe6\x43\x2b\x61\x3b\x41\xaa\x0e\x71\x42\xaa\x09\xb9\x60\x1d\xc4\x28\x0e\x77\x42\x6d\x15\x6d\xec\x89\xbd\xc5\xde\x75\xf7\x47\x42\x74\xba\xff\xbd\xda\x35\x70\x50\x2a\x5d\x3e\xc5\xb3\xb3\xf3\xde\xbe\x99\x37\x21\xa6\xb2\x3f\x28\x5e\x37\x06\x27\xe3\xc9\x29\x56\x0d\xe1\xb3\xdd\x90\x12\x64\x48\x23\xb5\xa6\x91\x4a\xc7\x41\x18\x84\xb8\xe6\x25\x09\x4d\x15\xac\xa8\x48\xc1\x34\x84\xb4\x67\x65\x43\xcf\x27\xc7\xf8\x42\x4a\x73\x29\x70\x12\x8f\xf1\x8b\x4b\x18\x3d\x1d\x8d\x7e\xfd\x18\x84\x38\x48\x8b\x8e\x1d\x20\xa4\x81\xd5\x04\xd3\x70\x8d\x2d\x6f\x09\xf4\x58\x52\x6f\xc0\x05\x4a\xd9\xf5\x2d\x67\xa2\x24\xec\xb9\x69\x3c\xcc\x53\x91\x38\x08\x71\xff\x54\x42\x6e\x0c\xe3\x02\x0c\xa5\xec\x0f\x90\xdb\xd7\x79\x60\xc6\x13\x76\xbf\xc6\x98\xfe\x2c\x49\xf6\xfb\x7d\xcc\x3c\xd9\x58\xaa\x3a\x69\x87\x44\x9d\x5c\x67\xd3\xd9\xa2\x98\x45\x27\xf1\xd8\x5f\xb9\x13\x2d\x69\x0d\x45\xff\x58\xae\xa8\xc2\xe6\x00\xd6\xf7\x2d\x2f\xd9\xa6\x25\xb4\x6c\x0f\xa9\xc0\x6a\x45\x54\xc1\x48\xc7\x77\xaf\xb8\xe1\xa2\x3e\x86\x96\x5b\xb3\x67\x8a\x82\x10\x15\xd7\x46\xf1\x8d\x35\x6f\xc4\x7a\x66\xc7\xf5\x9b\x04\x29\xc0\x04\x46\x69\x81\xac\x18\xe1\x22\x2d\xb2\xe2\x38\x08\xf1\x35\x5b\x5d\xe5\x77\x2b\x7c\x4d\x97\xcb\x74\xb1\xca\x66\x05\xf2\x25\xa6\xf9\xe2\x32\x5b\x65\xf9\xa2\x40\xfe\x09\xe9\xe2\x1e\x9f\xb3\xc5\xe5\x31\x88\x9b\x86\x14\xe8\xb1\x57\x8e\xbf\x54\xe0\x4e\x46\xaa\x9c\x66\x05\xd1\x1b\x02\x5b\x39\x10\xd2\x3d\x95\x7c\xcb\x4b\xb4\x4c\xd4\x96\xd5\x84\x5a\xee\x48\x09\x2e\x6a\xf4\xa4\x3a\xae\x5d\x33\x35\x98\xa8\x82\x10\x2d\xef\xb8\x61\xc6\x47\xde\x3d\x2a\x0e\x82\x74\x39\x77\xec\x67\xd9\x4d\x3a\x9f\x05\x9f\x96\xf9\x0d\x1e\x4e\x75\x5c\x97\x2a\xe6\x32\xd9\x58\xde\x56\x11\xef\x58\x4d\xc9\x83\xdd\x50\x54\x2a\xa9\xf5\xd9\x6e\x12\x4f\x7e\x8b\x4f\xa2\x09\x98\x86\xcf\x59\x3f\x9c\xea\xf5\x64\x3d\xf9\xb0\xd6\xac\xeb\x5b\x5a\xb3\x9e\x6b\x52\x3b\x52\x41\x30\x5b\x7c\xc1\x3c\xbf\x4d\x57\x57\x48\x6a\x19\x2c\xef\x16\xe8\x1e\x2a\xae\x10\xf5\x38\xfa\x36\x9c\x7c\x4f\xb4\x2a\x5f\x7d\x6d\xb8\xf0\xf7\xfc\xad\xa3\x21\xea\x82\x67\x47\xee\x5f\x10\x04\xa1\x1f\x7a\x3a\x21\xb0\xba\x56\x54\x33\xe3\xe4\x21\x6d\x7c\xa3\x48\xf3\x5a\x0c\xcd\xf6\x31\xb6\xe1\x2d\x37\x07\xf7\xad\xac\xc0\xc0\x31\x7a\xe1\xe8\x9e\xc1\xc4\x4b\x25\xaa\x30\xc4\x5d\x1b\x34\x0d\x30\xbe\x8e\x60\x1d\x55\x18\x15\x8d\xb4\x6d\x85\x0d\xc1\x0f\x98\x91\xd0\xb6\xef\xa5\x32\x5e\xdc\x49\x3c\xf9\x80\xc2\x43\x20\xbd\xcd\x50\x0c\x18\x56\xbb\x0e\xb9\x84\xd2\x2a\x45\xc2\x20\x7d\x61\x3e\x72\x0f\xba\x70\x42\xc2\x69\xfb\x21\x1e\xbb\xa2\x24\xb4\x55\xf4\xe6\x8a\xa2\x96\x98\xa6\x67\x3c\x0d\x86\x5e\x71\xa9\xb0\x7b\xf2\xf0\x93\xa7\x86\x17\xe2\x47\x17\x42\xcc\xc9\x78\x6f\x4a\x6b\x86\x9e\x79\x3a\x12\xbd\xec\x6d\xcb\x0c\xa1\x93\x95\x6d\x09\xa5\xf3\x9b\xef\xd2\x3c\x9f\x4c\x26\x37\xf9\xe5\xdd\xf5\xec\x5c\x0a\xd4\x12\x35\x19\x44\x95\x9f\x10\x2e\x93\xff\xca\xf8\xfb\x6e\xec\xb9\xbf\x02\x43\x5e\x24\xe9\x72\x7a\x15\xbd\x4c\x2d\x89\x9d\x43\xf5\x0c\xfe\x0f\x65\x3a\xcf\xd7\xb3\x45\x7a\x71\x3d\xbb\x3c\x1f\x63\x9e\xe7\xc5\x79\xcb\x85\x7d\xc4\x3c\x77\x85\xce\xdd\xb0\xba\x3f\xcf\x74\x7e\xc6\x25\x08\xbd\x73\x98\xea\x8e\xdd\x15\x2e\xb4\x61\x6d\xeb\x16\x99\x46\x2d\xdd\x4c\x25\xbe\xfe\xda\x67\x68\x89\xbf\xad\x36\xd8\x72\x51\x79\x21\xfd\x9e\x63\xa2\x1a\x36\x16\x37\x7e\xa4\x1a\x82\x92\xd2\x40\xcb\x20\xc4\xde\x49\x26\x5e\xce\x9d\xbc\x5b\x25\xbb\x61\x4d\x9a\x46\xc9\x3d\xd8\x9e\x1d\x50\x4a\xe1\x96\x1f\x39\x93\x3b\xd7\xfa\x24\x06\x6d\x98\xa8\x98\xaa\xd0\xca\xd2\xfb\xd4\x8b\xe2\xf1\x93\x81\x1f\x22\x37\x76\xef\x87\x36\xa2\x47\x2a\x51\xf6\xf8\xf6\x1d\x09\xfe\xfc\x18\x0c\xf6\x3d\xfa\x61\xe7\x69\x7e\x7b\x8f\x28\x72\x48\xe7\x3f\xb1\x29\xde\x29\xf8\x3e\xe2\xac\xbc\x5a\xde\xdf\xe6\xd9\x62\x85\x3f\x46\xef\xce\x47\x7f\x05\xff\x06\x00\x00\xff\xff\xd5\x5c\x5b\xe6\x9b\x06\x00\x00") - -func testImagesSampleApiserverDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesSampleApiserverDockerfile, - "test/images/sample-apiserver/Dockerfile", - ) -} - -func testImagesSampleApiserverDockerfile() (*asset, error) { - bytes, err := testImagesSampleApiserverDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/sample-apiserver/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesSampleApiserverOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xc9\xcc\x2d\xe6\x02\x04\x00\x00\xff\xff\xe2\x68\x65\xd7\x14\x00\x00\x00") - -func testImagesSampleApiserverOwnersBytes() ([]byte, error) { - return bindataRead( - _testImagesSampleApiserverOwners, - "test/images/sample-apiserver/OWNERS", - ) -} - -func testImagesSampleApiserverOwners() (*asset, error) { - bytes, err := testImagesSampleApiserverOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/sample-apiserver/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesSampleApiserverVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\x34\xd7\x33\xe6\x02\x04\x00\x00\xff\xff\x34\xa3\x0e\x79\x07\x00\x00\x00") - -func testImagesSampleApiserverVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesSampleApiserverVersion, - "test/images/sample-apiserver/VERSION", - ) -} - -func testImagesSampleApiserverVersion() (*asset, error) { - bytes, err := testImagesSampleApiserverVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/sample-apiserver/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesSampleDevicePluginBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x4d\xcc\x29\xc8\xcc\x4b\xb5\x32\xd6\xb3\xe0\x82\x0a\x17\xe5\xda\x26\x16\xe5\x1a\x1b\x95\x99\xe9\x63\x93\x04\xe9\x01\x91\x65\x16\x98\xd2\x05\x05\xc9\x66\x26\x39\xa9\xb6\x50\x1a\x53\x41\xb1\xb1\xa5\x41\x85\x2d\x98\x44\x96\x04\x04\x00\x00\xff\xff\xa4\xbc\x38\xda\x91\x00\x00\x00") - -func testImagesSampleDevicePluginBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesSampleDevicePluginBaseimage, - "test/images/sample-device-plugin/BASEIMAGE", - ) -} - -func testImagesSampleDevicePluginBaseimage() (*asset, error) { - bytes, err := testImagesSampleDevicePluginBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/sample-device-plugin/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesSampleDevicePluginDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x91\x41\x6f\xd3\x30\x14\xc7\xef\xfe\x14\x7f\x25\x1c\x40\xea\xd2\xb1\x13\x82\x53\x68\xb3\x11\x6d\x4b\x50\x92\x31\x55\x88\x83\x9b\xbc\x26\x4f\x72\x6d\x63\x3b\xcb\xfa\xed\x51\xba\x4e\x50\x0d\xdf\xfc\xde\xcf\xcf\x3f\xff\x1d\x63\x65\xec\xc1\x71\x3f\x04\x5c\x5d\x7e\xfc\x84\x66\x20\xdc\x8e\x5b\x72\x9a\x02\x79\xa4\x63\x18\x8c\xf3\x89\x88\x45\x8c\x3b\x6e\x49\x7b\xea\x30\xea\x8e\x1c\xc2\x40\x48\xad\x6c\x07\x7a\xed\x2c\xf0\x83\x9c\x67\xa3\x71\x95\x5c\xe2\xfd\x0c\x44\xa7\x56\xf4\xe1\x8b\x88\x71\x30\x23\xf6\xf2\x00\x6d\x02\x46\x4f\x08\x03\x7b\xec\x58\x11\xe8\xb9\x25\x1b\xc0\x1a\xad\xd9\x5b\xc5\x52\xb7\x84\x89\xc3\x70\xbc\xe6\x34\x24\x11\x31\x36\xa7\x11\x66\x1b\x24\x6b\x48\xb4\xc6\x1e\x60\x76\xff\x72\x90\xe1\x28\x3c\xaf\x21\x04\xfb\x79\xb9\x9c\xa6\x29\x91\x47\xd9\xc4\xb8\x7e\xa9\x5e\x40\xbf\xbc\xcb\x57\x59\x51\x67\x17\x57\xc9\xe5\xf1\xc8\x83\x56\xe4\x3d\x1c\xfd\x1e\xd9\x51\x87\xed\x01\xd2\x5a\xc5\xad\xdc\x2a\x82\x92\x13\x8c\x83\xec\x1d\x51\x87\x60\x66\xdf\xc9\x71\x60\xdd\x2f\xe0\xcd\x2e\x4c\xd2\x91\x88\xd1\xb1\x0f\x8e\xb7\x63\x38\x0b\xeb\xd5\x8e\xfd\x19\x60\x34\xa4\x46\x94\xd6\xc8\xeb\x08\x5f\xd3\x3a\xaf\x17\x22\xc6\x63\xde\x7c\x2b\x1f\x1a\x3c\xa6\x55\x95\x16\x4d\x9e\xd5\x28\x2b\xac\xca\x62\x9d\x37\x79\x59\xd4\x28\xaf\x91\x16\x1b\xdc\xe6\xc5\x7a\x01\xe2\x30\x90\x03\x3d\x5b\x37\xfb\x1b\x07\x9e\x63\xa4\x6e\xce\xac\x26\x3a\x13\xd8\x99\x17\x21\x6f\xa9\xe5\x1d\xb7\x50\x52\xf7\xa3\xec\x09\xbd\x79\x22\xa7\x59\xf7\xb0\xe4\xf6\xec\xe7\xcf\xf4\x90\xba\x13\x31\x14\xef\x39\xc8\x70\xac\xbc\x79\x54\x22\x44\x5a\xdd\xcc\xf6\x59\x7e\x9f\xde\x64\xe2\xba\x2a\xef\xf1\xee\xef\x3e\x5d\xaf\xe1\xe5\xde\x2a\xea\xe8\x89\x5b\xb2\x6a\xec\x59\x63\xf9\xb6\x26\xb2\xa2\xa9\x36\xdf\xcb\xbc\x68\xf0\x33\xfa\x0f\x10\x2d\x10\x5d\x48\xe5\x8d\x32\x7d\x30\x3e\x74\xe4\x5c\xf4\x4b\xfc\x09\x00\x00\xff\xff\x21\xa9\x98\x3a\xcc\x02\x00\x00") - -func testImagesSampleDevicePluginDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesSampleDevicePluginDockerfile, - "test/images/sample-device-plugin/Dockerfile", - ) -} - -func testImagesSampleDevicePluginDockerfile() (*asset, error) { - bytes, err := testImagesSampleDevicePluginDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/sample-device-plugin/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesSampleDevicePluginMakefile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x51\x4f\xdb\x4a\x10\x85\x9f\xef\xfe\x8a\xa3\x98\x87\x44\x0a\x0e\x17\x5d\xdd\x56\x54\xa8\x72\x93\x34\x58\x50\xbb\xb2\x03\x88\x27\xb4\xb1\x27\xf6\x48\xeb\xdd\xed\xee\x1a\x27\xff\xbe\x72\x00\xa9\xa8\x7e\x9b\x99\x33\x67\x3e\x9f\x8d\xb0\x34\xf6\xe8\xb8\x69\x03\x2e\x2f\xfe\xfd\x8c\x6d\x4b\xb8\xed\x77\xe4\x34\x05\xf2\x48\xfa\xd0\x1a\xe7\x63\x11\x89\x08\x77\x5c\x91\xf6\x54\xa3\xd7\x35\x39\x84\x96\x90\x58\x59\xb5\xf4\x3e\x99\xe3\x81\x9c\x67\xa3\x71\x19\x5f\x60\x3a\x0a\x26\x6f\xa3\xc9\xec\x8b\x88\x70\x34\x3d\x3a\x79\x84\x36\x01\xbd\x27\x84\x96\x3d\xf6\xac\x08\x74\xa8\xc8\x06\xb0\x46\x65\x3a\xab\x58\xea\x8a\x30\x70\x68\x4f\x67\xde\x4c\x62\x11\xe1\xe9\xcd\xc2\xec\x82\x64\x0d\x89\xca\xd8\x23\xcc\xfe\x4f\x1d\x64\x38\x01\x8f\x5f\x1b\x82\xbd\x5a\x2c\x86\x61\x88\xe5\x09\x36\x36\xae\x59\xa8\x57\xa1\x5f\xdc\xa5\xcb\x75\x56\xae\xcf\x2f\xe3\x8b\xd3\xca\xbd\x56\xe4\x3d\x1c\xfd\xea\xd9\x51\x8d\xdd\x11\xd2\x5a\xc5\x95\xdc\x29\x82\x92\x03\x8c\x83\x6c\x1c\x51\x8d\x60\x46\xde\xc1\x71\x60\xdd\xcc\xe1\xcd\x3e\x0c\xd2\x91\x88\x50\xb3\x0f\x8e\x77\x7d\xf8\x10\xd6\x3b\x1d\xfb\x0f\x02\xa3\x21\x35\x26\x49\x89\xb4\x9c\xe0\x5b\x52\xa6\xe5\x5c\x44\x78\x4c\xb7\x37\xf9\xfd\x16\x8f\x49\x51\x24\xd9\x36\x5d\x97\xc8\x0b\x2c\xf3\x6c\x95\x6e\xd3\x3c\x2b\x91\x7f\x47\x92\x3d\xe1\x36\xcd\x56\x73\x10\x87\x96\x1c\xe8\x60\xdd\xc8\x6f\x1c\x78\x8c\x91\xea\x31\xb3\x92\xe8\x03\xc0\xde\xbc\x02\x79\x4b\x15\xef\xb9\x82\x92\xba\xe9\x65\x43\x68\xcc\x0b\x39\xcd\xba\x81\x25\xd7\xb1\x1f\x1f\xd3\x43\xea\x5a\x44\x50\xdc\x71\x90\xe1\xd4\xf9\xeb\xa7\x62\x21\xca\x62\x59\x5e\x7b\xd9\x59\x45\x35\xbd\x70\x45\x56\xf5\x0d\x6b\x91\x97\xf8\x7a\x0d\xc5\xba\x3f\x88\xa4\x58\xde\x8c\x95\xec\xea\xff\xff\x13\xdb\xa4\xd8\xac\xb7\x63\x7d\x36\x5d\xde\x17\xab\xb4\x98\x89\x4d\x9e\x14\x3f\xc6\xd6\x27\xb1\xc9\xef\x92\x6c\xf3\xfc\xb0\x2e\xca\x34\xcf\x4e\x26\x32\x90\x0f\xe3\xa5\xe7\x55\x5a\x60\xdc\xd3\x26\xd4\xec\x70\x36\xf5\x2d\x29\x05\x3b\xd4\xb3\x99\xa0\x83\x35\x2e\x08\xb1\x63\x7d\x25\xfe\x89\xe3\x05\x77\xb2\xa1\xf3\x3e\xb0\x8a\x7d\x8b\x1d\x6b\x9c\x4d\x47\xde\x99\x10\xf1\xcf\x9b\x3c\x7b\xba\x1a\x9b\xe2\x77\x00\x00\x00\xff\xff\x2f\x48\xaa\xda\x0f\x03\x00\x00") - -func testImagesSampleDevicePluginMakefileBytes() ([]byte, error) { - return bindataRead( - _testImagesSampleDevicePluginMakefile, - "test/images/sample-device-plugin/Makefile", - ) -} - -func testImagesSampleDevicePluginMakefile() (*asset, error) { - bytes, err := testImagesSampleDevicePluginMakefileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/sample-device-plugin/Makefile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesSampleDevicePluginVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe2\x02\x04\x00\x00\xff\xff\x5d\x96\xa5\x56\x04\x00\x00\x00") - -func testImagesSampleDevicePluginVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesSampleDevicePluginVersion, - "test/images/sample-device-plugin/VERSION", - ) -} - -func testImagesSampleDevicePluginVersion() (*asset, error) { - bytes, err := testImagesSampleDevicePluginVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/sample-device-plugin/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesSampleDevicePluginSampledevicepluginGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa4\x56\x4f\x6f\xdb\x3e\x12\x3d\x9b\x9f\x62\x42\xa0\x81\x9c\xaa\x52\x93\x53\xe1\xc2\x07\xaf\x9d\xb6\xda\x74\x9d\xc0\x4e\xb6\x28\x8a\xa2\xa0\xa5\x91\x4c\x58\x22\x59\x92\xb2\x63\x04\xfe\xee\x0b\x52\xb2\x23\x3b\x29\xba\xc0\x2f\x87\x24\xe6\xcc\xbc\x79\x6f\xfe\x90\x8e\x2f\xc8\x58\xaa\xad\xe6\xc5\xd2\xc2\xd5\xfb\xcb\x0f\x70\xbf\x44\xb8\xa9\x17\xa8\x05\x5a\x34\x30\xaa\xed\x52\x6a\x13\x11\xf2\x95\xa7\x28\x0c\x66\x50\x8b\x0c\x35\xd8\x25\xc2\x48\xb1\x74\x89\xd0\x5a\x42\xf8\x2f\x6a\xc3\xa5\x80\xab\xe8\x3d\x04\xce\x81\xb6\x26\xda\xff\x48\xb6\xb2\x86\x8a\x6d\x41\x48\x0b\xb5\x41\xb0\x4b\x6e\x20\xe7\x25\x02\x3e\xa6\xa8\x2c\x70\x01\xa9\xac\x54\xc9\x99\x48\x11\x36\xdc\x2e\x7d\x92\x16\x22\x22\xdf\x5b\x00\xb9\xb0\x8c\x0b\x60\x90\x4a\xb5\x05\x99\x77\xbd\x80\x59\x42\x00\x00\x96\xd6\xaa\x41\x1c\x6f\x36\x9b\x88\x79\x96\x91\xd4\x45\x5c\x36\x5e\x26\xfe\x9a\x8c\xaf\xa7\xf3\xeb\x77\x57\xd1\x7b\x42\x1e\x44\x89\xc6\x80\xc6\xdf\x35\xd7\x98\xc1\x62\x0b\x4c\xa9\x92\xa7\x6c\x51\x22\x94\x6c\x03\x52\x03\x2b\x34\x62\x06\x56\x3a\x9e\x1b\xcd\x2d\x17\x45\x08\x46\xe6\x76\xc3\x34\x92\x8c\x1b\xab\xf9\xa2\xb6\x47\x05\xda\xb3\xe2\x06\xba\x0e\x52\x00\x13\x40\x47\x73\x48\xe6\x14\xfe\x35\x9a\x27\xf3\x90\x7c\x4b\xee\xbf\xdc\x3e\xdc\xc3\xb7\xd1\x6c\x36\x9a\xde\x27\xd7\x73\xb8\x9d\xc1\xf8\x76\x3a\x49\xee\x93\xdb\xe9\x1c\x6e\x3f\xc1\x68\xfa\x1d\x6e\x92\xe9\x24\x04\xe4\x76\x89\x1a\xf0\x51\x69\xc7\x5d\x6a\xe0\xae\x74\x98\x45\x64\x8e\x78\x94\x3c\x97\x0d\x19\xa3\x30\xe5\x39\x4f\xa1\x64\xa2\xa8\x59\x81\x50\xc8\x35\x6a\xc1\x45\x01\x0a\x75\xc5\x8d\x6b\x9e\x01\x26\x32\x52\xf2\x8a\x5b\x66\xfd\xe7\x17\x72\x22\x72\x11\x13\xa2\x58\xba\x72\x20\x15\xe3\x82\x10\x5e\x29\xa9\x2d\x04\xa4\x47\xf3\xca\x52\xd2\xa3\xd2\xb8\xdf\x8a\xd9\x65\xec\xba\xec\xfe\x71\x07\x96\x57\x48\x09\xe9\xd1\xd5\x07\x13\x71\x19\xaf\x4a\x59\xc4\xeb\x2b\x4a\x7a\xaa\xac\x0b\x2e\x98\xe2\x70\xb0\xd5\x0b\x2c\xd1\xc6\x6a\x55\xc4\x4c\x71\x13\x67\xb8\xe6\x29\x36\x8e\xf1\xfa\x72\x81\x96\x5d\x52\xd2\xcb\xaa\xa3\x90\x66\x74\x7d\xd4\x1e\x21\xad\xda\xd8\x8a\x09\x56\xa0\xa6\xa4\x4f\x48\x2a\x85\xf1\x94\x35\x1a\x59\xeb\x14\xa7\xac\x42\x18\x02\xc5\x47\x56\xa9\x12\xa3\x54\x56\xf1\xde\xe6\x23\xe2\x18\x8c\xad\x17\xa3\xb2\x94\xe9\xa7\x5a\xa4\x90\x6a\x64\x6e\x4d\x98\xc8\x40\xa3\xad\xb5\xab\x9f\xb3\xfa\xda\x81\x46\xa3\x64\xb7\x07\x5c\xa8\xda\xee\x3d\xd0\x8f\x1c\x1a\x4b\x72\x87\x75\x84\x1c\x68\xb8\x38\x14\x24\x1a\xb5\x01\xb3\xc6\x3f\x84\x0c\xd7\x06\x2a\xa6\x7e\xb8\xa1\x12\xc5\xcf\x67\xd7\x89\x97\xd9\x87\xe0\xd5\xf0\x86\x4e\x08\xa8\xb5\xd4\x7d\x78\x22\xbd\x35\xd3\x07\x9a\x06\xfe\x1c\x43\x7a\x4e\xc3\xaf\xd0\x71\x86\xc1\x10\x34\x13\x05\x82\x8e\xc6\x52\xb8\x75\x44\xdd\x72\x33\x0e\xb4\x77\x10\x3e\x18\xc2\xf9\x33\xe8\xc1\xf9\x14\xfd\x69\x47\x7a\x9d\x04\x0e\x28\x99\x74\xd2\xe0\xef\x56\x98\x49\x26\x4d\x86\x5e\x86\xeb\x10\xe4\xca\x39\xb9\x6a\xfc\x38\x84\xfd\x74\x56\x9e\xc3\x99\x5c\x35\x9e\xbd\xa6\x33\x20\x78\x19\x42\x5e\xd9\xe8\xda\xa9\xcf\x03\xca\xc5\x9a\x95\x3c\x3b\xee\x98\x47\x69\xae\x1f\x21\xc5\x3b\x7c\xe4\xc6\xed\x3a\x34\xf3\x03\x6f\x0c\xed\x50\xec\x3b\xfc\x1d\x69\x33\x66\xb8\x8e\xbe\x20\x2b\xed\x12\xce\x86\x9d\x5a\x36\x67\xdb\x7f\xc8\xa6\x16\xcb\x16\xa7\xa1\x32\xf8\x33\x97\x38\x6e\x27\x13\x72\xb6\xc2\x3d\x75\xb7\x86\xce\x9a\xbb\x5d\x74\x75\xdb\xef\x65\xf4\x6f\xc9\x45\x40\x63\x5b\x29\xea\x67\x2b\x72\x68\x7b\xa0\x12\x99\x80\x9c\x6b\x63\x5b\x99\xa8\xb5\x8b\x96\x26\x9a\x61\x25\xd7\x38\x2a\xcb\xc0\x63\xf6\x3f\x7a\xdb\xd9\xd0\x89\xfb\x8b\xda\x9c\xf1\xb2\xb9\x4f\xdb\x04\x27\x44\x21\xd7\xb2\x02\xa5\x71\xcd\x65\x6d\x40\xd7\xa2\xd5\x8b\x5a\x77\x94\xe6\x61\x87\xce\xd8\x6b\x6e\xb9\x74\xc8\xb6\x84\xce\xcf\xe1\x4c\x9a\x28\x31\xd7\xae\xa7\x81\x03\xfa\xff\x49\xbe\x5e\xce\xd7\x39\x45\xe3\x52\x1a\x0c\x9a\x12\xee\x57\x21\xfa\x8f\xac\x85\x35\x30\x74\x8f\x0b\x8a\x2c\x38\x31\x84\xdd\x45\xf1\x47\x0d\xb7\xc3\xce\xdc\x31\xbb\x1c\x80\x17\x17\x7a\xcb\x17\x69\x6c\x73\xe8\x7f\x9e\x2d\x3b\x47\x66\xd7\x59\x43\xd3\x5d\xd3\xfd\xae\xbf\x20\xf2\x9a\x57\x78\xb8\x1c\xfa\xc4\xcb\x6b\x4b\x75\xae\x9f\x3d\x04\x2f\xc9\x8e\x34\x97\x98\x7b\x0d\x02\x5f\x56\x7f\x45\x0d\x86\xf0\xe3\xe7\xc5\xe9\xed\xe4\x84\x3d\x25\x93\x01\xd0\x09\xae\xdf\x5d\xd2\x10\x9a\x0d\x19\xbc\xdc\x99\x5d\x78\xe4\x7b\xf5\x37\x5f\x47\xb1\x31\xcc\x65\xba\x32\x13\xbe\x9f\x8d\xcf\x68\x51\xac\x03\x7a\xf7\xf5\xe1\x73\x32\xfd\x35\xbf\x1d\xdf\xfc\x9a\x24\x33\xda\x27\x3d\xf7\x04\x45\x89\xc8\x65\x1e\xd0\xe3\xd8\xb6\xbd\xc7\x87\x7d\xe2\xe6\xea\x24\xc9\x70\x08\x94\xfa\x69\xf2\x68\xfb\x01\xba\xae\x94\xdd\x9e\xf8\xba\x94\x6d\x19\x1d\xdf\x9e\x91\xe9\x0a\x7d\x23\x1d\xd5\x13\xdc\xb7\x40\xe3\x4c\x45\x14\xde\xfa\xc1\x9c\x2b\xcd\x85\xcd\x03\xfa\x26\xa3\x21\xb8\xb7\x34\x9a\xca\x4d\xd0\x8f\x1e\x04\x7f\x0c\xfa\x6e\xe2\x32\x75\xe9\xef\xc4\x2a\x9a\xe2\xa6\xa9\xf7\x5d\x83\x69\xeb\x45\xe0\xba\xe2\xbe\xb6\xec\x53\xfa\xfe\x1e\x1e\xbf\x10\x72\x56\x9a\xfd\x9f\x46\x68\xbb\x5e\x99\xba\x8c\xe6\x96\x69\x1b\xbc\xdc\x72\xc5\x04\x4f\xfd\x3e\x11\xaf\xc8\xfb\xa2\x7d\x7e\xcc\x8e\x9e\xb6\x17\xb0\x33\x2c\xb8\xb1\xa8\x83\xe7\x8e\xde\x34\xef\xf6\xdc\xf3\x3c\xe5\x78\x3a\x4e\x8d\xbc\xbb\x57\x2f\xa0\x0e\x35\x5f\x6b\x2c\x31\xb5\xf0\xb4\x23\x3b\xf2\xbf\x00\x00\x00\xff\xff\x4f\xbe\x49\x55\xfc\x0a\x00\x00") - -func testImagesSampleDevicePluginSampledevicepluginGoBytes() ([]byte, error) { - return bindataRead( - _testImagesSampleDevicePluginSampledevicepluginGo, - "test/images/sample-device-plugin/sampledeviceplugin.go", - ) -} - -func testImagesSampleDevicePluginSampledevicepluginGo() (*asset, error) { - bytes, err := testImagesSampleDevicePluginSampledevicepluginGoBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/sample-device-plugin/sampledeviceplugin.go", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\xc8\x2a\x4e\x4c\x2b\x4a\xcc\x4b\x05\x73\x72\xb3\x4b\x73\x13\x4b\x12\xd3\xb9\x00\x01\x00\x00\xff\xff\x2d\x3f\xb3\x41\x25\x00\x00\x00") - -func testImagesVolumeOwnersBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeOwners, - "test/images/volume/OWNERS", - ) -} - -func testImagesVolumeOwners() (*asset, error) { - bytes, err := testImagesVolumeOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeGlusterBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x4d\x4b\x4d\xc9\x2f\x4a\xb4\x32\xb2\xe0\x82\x8a\x16\xe5\x9a\x99\xd8\x82\xc9\x32\x0b\x7d\x74\xd9\x82\x82\x64\x33\x93\x9c\x54\x5b\x28\x8d\x24\x0f\x08\x00\x00\xff\xff\xc6\xfc\xc2\x5e\x54\x00\x00\x00") - -func testImagesVolumeGlusterBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeGlusterBaseimage, - "test/images/volume/gluster/BASEIMAGE", - ) -} - -func testImagesVolumeGlusterBaseimage() (*asset, error) { - bytes, err := testImagesVolumeGlusterBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/gluster/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeGlusterDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x61\x6f\xb3\x36\x10\xc7\xdf\xfb\x53\xfc\x15\xa6\x6a\x93\x12\x48\xa3\xac\xd3\xb6\x57\x34\xa1\x2d\x6a\x0b\x1d\x24\xeb\xa2\x69\xaa\x1c\xb8\x80\x25\x63\x53\xdb\x24\xcd\xb7\x9f\x20\xe9\xba\x3c\x0f\xaf\xf0\xdd\xef\xee\x7e\x3e\x7b\x58\xe8\xf6\x68\x44\x55\x3b\xcc\xa6\xd7\x37\x58\xd5\x84\xc7\x6e\x4b\x46\x91\x23\x8b\xb0\x73\xb5\x36\xd6\x67\x1e\xf3\xf0\x24\x0a\x52\x96\x4a\x74\xaa\x24\x03\x57\x13\xc2\x96\x17\x35\x7d\x66\xc6\xf8\x93\x8c\x15\x5a\x61\xe6\x4f\xf1\x63\x0f\x8c\xce\xa9\xd1\x4f\xbf\x33\x0f\x47\xdd\xa1\xe1\x47\x28\xed\xd0\x59\x82\xab\x85\xc5\x4e\x48\x02\x7d\x14\xd4\x3a\x08\x85\x42\x37\xad\x14\x5c\x15\x84\x83\x70\xf5\x30\xe6\xdc\xc4\x67\x1e\x36\xe7\x16\x7a\xeb\xb8\x50\xe0\x28\x74\x7b\x84\xde\xfd\x9f\x03\x77\x83\x70\xff\xd5\xce\xb5\xbf\x05\xc1\xe1\x70\xf0\xf9\x20\xeb\x6b\x53\x05\xf2\x04\xda\xe0\x29\x5e\x44\x49\x1e\x4d\x66\xfe\x74\x28\x59\x2b\x49\xd6\xc2\xd0\x7b\x27\x0c\x95\xd8\x1e\xc1\xdb\x56\x8a\x82\x6f\x25\x41\xf2\x03\xb4\x01\xaf\x0c\x51\x09\xa7\x7b\xdf\x83\x11\x4e\xa8\x6a\x0c\xab\x77\xee\xc0\x0d\x31\x0f\xa5\xb0\xce\x88\x6d\xe7\x2e\x96\xf5\x69\x27\xec\x05\xa0\x15\xb8\xc2\x28\xcc\x11\xe7\x23\xdc\x86\x79\x9c\x8f\x99\x87\xd7\x78\xf5\x90\xae\x57\x78\x0d\xb3\x2c\x4c\x56\x71\x94\x23\xcd\xb0\x48\x93\x65\xbc\x8a\xd3\x24\x47\x7a\x87\x30\xd9\xe0\x31\x4e\x96\x63\x90\x70\x35\x19\xd0\x47\x6b\x7a\x7f\x6d\x20\xfa\x35\x52\xd9\xef\x2c\x27\xba\x10\xd8\xe9\x93\x90\x6d\xa9\x10\x3b\x51\x40\x72\x55\x75\xbc\x22\x54\x7a\x4f\x46\x09\x55\xa1\x25\xd3\x08\xdb\x3f\xa6\x05\x57\x25\xf3\x20\x45\x23\x1c\x77\x43\xe4\xbb\x4b\xf9\x8c\x85\xd9\x7d\x6f\x1f\xc5\xcf\xe1\x7d\xc4\xee\xb2\xf4\x19\x3f\x7c\x9d\xd9\x22\x4b\xf3\xfc\xed\x76\x1d\x3f\x2d\xdf\x16\xe9\xcb\x06\xef\xd4\x74\x93\x3f\xa2\xe7\x75\x98\x2d\x1e\x26\xb6\x6f\x5d\x20\xe8\xac\x09\xb6\x42\x05\x8c\x65\xeb\x04\xc7\xae\xc1\xe4\x08\xa1\xac\xe3\x52\xa2\xd6\xd6\x29\xde\x10\x2a\xd9\x59\x47\x66\x67\x27\x96\xcc\x9e\x0c\xae\xae\x06\xb6\x90\xc4\x15\xb8\x94\x2c\x5c\x2e\x3f\xa9\xd2\xdf\x6b\x89\x80\x5c\x11\xfc\x57\x17\x0c\x80\xe9\xd4\xdb\x39\xe4\xdb\xfa\x34\x5c\xea\x82\xcb\x93\x42\x8f\x08\x55\xd2\x87\x5f\xbb\x46\x22\xd8\x6b\x19\x0c\x5a\x45\xdd\xe8\x12\x37\xf3\xf9\x29\xf6\xc5\x30\x16\xfd\xf5\x92\xe6\x11\x66\xf3\xe9\xf4\x97\xc0\x15\x2d\xe6\xbf\x5e\xff\x3c\xeb\xff\x18\x8b\x92\x55\xb6\x79\x49\xe3\x64\x85\xbf\x47\xdf\x0c\xbb\x54\x19\xfd\xc3\xfe\x0d\x00\x00\xff\xff\x0d\x00\xfd\xb0\x9b\x03\x00\x00") - -func testImagesVolumeGlusterDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeGlusterDockerfile, - "test/images/volume/gluster/Dockerfile", - ) -} - -func testImagesVolumeGlusterDockerfile() (*asset, error) { - bytes, err := testImagesVolumeGlusterDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/gluster/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeGlusterVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe4\x02\x04\x00\x00\xff\xff\x9e\xc5\x88\x7d\x04\x00\x00\x00") - -func testImagesVolumeGlusterVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeGlusterVersion, - "test/images/volume/gluster/VERSION", - ) -} - -func testImagesVolumeGlusterVersion() (*asset, error) { - bytes, err := testImagesVolumeGlusterVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/gluster/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeGlusterGlusterdVol = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x90\x41\x4e\xc3\x30\x10\x45\xf7\x3e\xc5\x57\xb3\x01\xa9\x4e\x29\x82\x05\xf7\xe0\x02\xae\x3d\x49\x47\xb5\x3d\xd1\x78\x92\xaa\xb7\x47\x69\x05\x08\xa9\x20\xb6\x5f\x6f\xde\x1f\xfd\x0e\xef\x47\x6e\xe0\x86\x44\x43\x98\xb3\x61\xcc\x73\x33\xd2\xd4\x2f\x92\xf1\xc0\x35\xe6\x1e\x51\x4a\xa1\x6a\x94\x20\xb3\xe1\x10\x1a\xf9\x49\xd4\x1e\xb7\xae\xc3\x99\xed\x88\x90\x12\x25\x6c\x74\x8a\x3e\xcc\x76\xf4\x21\x67\x39\x7b\xae\x8d\xe2\xac\x04\xa9\x1b\x98\xe0\x9a\x22\x4a\xad\x14\x8d\xa5\xba\x0e\x83\x4a\x41\x95\xea\x27\xe5\x85\x33\x8d\x94\xb0\xaa\x5b\xef\xdc\x22\x79\x2e\x84\x12\x6a\x18\x69\xed\x77\x00\x60\x97\x89\x50\xc6\x62\xbb\xcf\x4f\xaf\xb1\x4c\xab\x11\x67\xd1\x13\xd7\xd1\x27\x56\x8a\x26\x7a\xc1\x6e\x09\xba\xcb\x7c\xb8\x8b\x9b\x86\xda\xd6\x3e\x7f\xd5\x36\x89\x27\xb2\xad\xa6\x12\xee\x52\xfd\x0d\xe8\x4f\x44\x53\xc8\xbc\x90\x37\x2e\x84\xfd\xd3\x3f\x69\xae\x46\xba\x84\x8c\xe7\x3f\x0f\x94\x42\xf2\x43\xe0\xec\xb3\x8c\x90\x61\x70\xdd\x37\xfd\xb5\x3e\x5e\xde\xf6\xaf\x3f\x44\xbf\xcf\xef\xa8\x26\x7f\xdb\xd3\x7d\x04\x00\x00\xff\xff\xbe\xa1\x56\x52\xf3\x01\x00\x00") - -func testImagesVolumeGlusterGlusterdVolBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeGlusterGlusterdVol, - "test/images/volume/gluster/glusterd.vol", - ) -} - -func testImagesVolumeGlusterGlusterdVol() (*asset, error) { - bytes, err := testImagesVolumeGlusterGlusterdVolBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/gluster/glusterd.vol", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeGlusterIndexHtml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xf2\x48\xcd\xc9\xc9\x57\x48\x2b\xca\xcf\x55\x70\xcf\x29\x2d\x2e\x49\x2d\x72\x0b\x56\xe4\x02\x04\x00\x00\xff\xff\xed\xdd\x63\xe1\x16\x00\x00\x00") - -func testImagesVolumeGlusterIndexHtmlBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeGlusterIndexHtml, - "test/images/volume/gluster/index.html", - ) -} - -func testImagesVolumeGlusterIndexHtml() (*asset, error) { - bytes, err := testImagesVolumeGlusterIndexHtmlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/gluster/index.html", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeGlusterRun_glusterSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x93\x5f\x6f\xdb\x36\x14\xc5\xdf\xf9\x29\xce\xa4\x3c\xc4\x43\x24\x65\x01\x82\x01\x2d\x0a\xcc\x8b\x3d\x4c\x68\x67\x03\x96\xbb\xa2\x4f\x03\x2d\x5d\x49\x44\x25\x92\x23\x2f\xad\x18\xc3\xbe\xfb\x20\xc9\xa9\x63\x64\x7a\x3c\xbc\x7f\x7e\xe7\x90\x8a\x7f\xc8\x82\x77\xd9\x41\xe9\x8c\xf4\x11\x07\xe9\x5b\x21\x62\x3c\x19\x7b\x72\xaa\x69\x19\x0f\xf7\x3f\x3d\x62\xdf\x12\x3e\x86\x03\x39\x4d\x4c\x1e\xcb\xc0\xad\x71\x3e\x15\xb1\x88\xf1\x49\x95\xa4\x3d\x55\x08\xba\x22\x07\x6e\x09\x4b\x2b\xcb\x96\x5e\x4e\xee\xf0\x27\x39\xaf\x8c\xc6\x43\x7a\x8f\xdb\xb1\x20\x3a\x1f\x45\x8b\xf7\x22\xc6\xc9\x04\xf4\xf2\x04\x6d\x18\xc1\x13\xb8\x55\x1e\xb5\xea\x08\xf4\x5c\x92\x65\x28\x8d\xd2\xf4\xb6\x53\x52\x97\x84\x41\x71\x3b\xad\x39\x0f\x49\x45\x8c\xaf\xe7\x11\xe6\xc0\x52\x69\x48\x94\xc6\x9e\x60\xea\xd7\x75\x90\x3c\x01\x8f\x5f\xcb\x6c\xdf\x65\xd9\x30\x0c\xa9\x9c\x60\x53\xe3\x9a\xac\x9b\x0b\x7d\xf6\x29\x7f\x5a\x6f\x8a\x75\xf2\x90\xde\x4f\x2d\x9f\x75\x47\xde\xc3\xd1\xdf\x41\x39\xaa\x70\x38\x41\x5a\xdb\xa9\x52\x1e\x3a\x42\x27\x07\x18\x07\xd9\x38\xa2\x0a\x6c\x46\xde\xc1\x29\x56\xba\xb9\x83\x37\x35\x0f\xd2\x91\x88\x51\x29\xcf\x4e\x1d\x02\x5f\x85\xf5\x42\xa7\xfc\x55\x81\xd1\x90\x1a\xd1\xb2\x40\x5e\x44\xf8\x75\x59\xe4\xc5\x9d\x88\xf1\x25\xdf\xff\xbe\xfd\xbc\xc7\x97\xe5\x6e\xb7\xdc\xec\xf3\x75\x81\xed\x0e\x4f\xdb\xcd\x2a\xdf\xe7\xdb\x4d\x81\xed\x6f\x58\x6e\xbe\xe2\x63\xbe\x59\xdd\x81\x14\xb7\xe4\x40\xcf\xd6\x8d\xfc\xc6\x41\x8d\x31\x52\x35\x66\x56\x10\x5d\x01\xd4\x66\x06\xf2\x96\x4a\x55\xab\x12\x9d\xd4\x4d\x90\x0d\xa1\x31\x47\x72\x5a\xe9\x06\x96\x5c\xaf\xfc\x78\x99\x1e\x52\x57\x22\x46\xa7\x7a\xc5\x92\x27\xe5\x8d\xa9\x54\x88\x55\xbe\xfb\x10\xdd\xdc\xf6\xdf\x98\x7a\x8b\xa4\x5a\x44\x42\xd4\x41\x97\x63\x07\x3c\x4b\xc7\xb7\x0b\xf1\x8f\x18\x2f\xa5\x37\x41\x33\x12\x06\xf7\xb6\xf6\x60\xf2\x8c\xe8\x66\x95\xef\xa2\xe9\xb8\x6c\x7b\x53\xe1\xe7\xc7\xc7\x2b\xd1\x22\x3b\x9a\x2e\xfb\x71\x16\xb3\x59\x9d\xde\xb4\x1f\x1f\x75\xd3\x05\xcf\xe4\x2a\x24\x16\x99\x0b\x17\x21\xb5\xaa\x9a\x6a\xcf\x02\x8e\xa6\x0b\x3d\xa1\x74\x24\x99\xa6\xe5\x7f\x1d\x4d\x87\xe8\xe6\xb6\x35\x9e\xb5\xec\x09\x89\x5a\xbc\x9b\x56\x8f\x59\x95\xf4\x7f\xed\x93\xa3\xef\xdd\xe2\xdf\x2b\xb3\xc6\x7e\xf7\xfa\xd2\x96\x24\xbd\xa9\xe8\x83\x2f\x9d\xb2\x7c\x19\x62\xec\x85\xe0\xb2\xeb\x9b\xea\x26\xa0\x52\xf2\x5b\x33\x8b\xd9\x7a\x98\x53\x7c\x15\x91\xeb\x91\xb8\xfa\xb5\x42\xcf\x8a\x71\x3f\xc2\x09\x76\xd2\xce\xfb\xf6\xeb\xdd\x1f\x42\xcc\xfc\xd1\xcd\x2f\x91\x10\x43\x3b\xfe\x83\xec\x02\xbd\x47\x65\xa6\x4e\xdf\x11\x59\x3c\x8a\xca\x68\x12\xe2\xbf\x00\x00\x00\xff\xff\x0e\x77\xa5\x03\x3d\x04\x00\x00") - -func testImagesVolumeGlusterRun_glusterShBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeGlusterRun_glusterSh, - "test/images/volume/gluster/run_gluster.sh", - ) -} - -func testImagesVolumeGlusterRun_glusterSh() (*asset, error) { - bytes, err := testImagesVolumeGlusterRun_glusterShBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/gluster/run_gluster.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeIscsiBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x4d\x4b\x4d\xc9\x2f\x4a\xb4\x32\xb2\xe0\x82\x8a\x16\xe5\x9a\x99\xd8\x82\xc9\x32\x0b\x7d\x74\xd9\x82\x82\x64\x33\x93\x9c\x54\x5b\x28\x8d\x24\x0f\x08\x00\x00\xff\xff\xc6\xfc\xc2\x5e\x54\x00\x00\x00") - -func testImagesVolumeIscsiBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeIscsiBaseimage, - "test/images/volume/iscsi/BASEIMAGE", - ) -} - -func testImagesVolumeIscsiBaseimage() (*asset, error) { - bytes, err := testImagesVolumeIscsiBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/iscsi/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeIscsiDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x91\xc1\x6e\xdb\x38\x10\x86\xef\x7c\x8a\x1f\xd6\x22\xd8\x05\x6c\x29\x9b\x43\x0f\xed\x49\xb1\x9d\x44\x48\x22\xa5\x92\xdd\xc0\x28\x0a\x83\xa6\xc7\xd2\xa0\x34\xa9\x90\x54\x1d\xf5\xe9\x0b\xd9\x09\xda\xb4\xe5\x8d\x9c\x7f\x3e\x7e\x1c\x46\x98\xda\xb6\x77\x5c\x37\x01\x17\xe7\xff\xbf\xc3\xa2\x21\xdc\x76\x1b\x72\x86\x02\x79\xa4\x5d\x68\xac\xf3\xb1\x88\x44\x84\x3b\x56\x64\x3c\x6d\xd1\x99\x2d\x39\x84\x86\x90\xb6\x52\x35\xf4\x5a\x19\xe3\x13\x39\xcf\xd6\xe0\x22\x3e\xc7\xbf\x43\x60\xf4\x52\x1a\xfd\xf7\x41\x44\xe8\x6d\x87\xbd\xec\x61\x6c\x40\xe7\x09\xa1\x61\x8f\x1d\x6b\x02\x3d\x2b\x6a\x03\xd8\x40\xd9\x7d\xab\x59\x1a\x45\x38\x70\x68\x8e\xd7\xbc\x40\x62\x11\x61\xf5\x82\xb0\x9b\x20\xd9\x40\x42\xd9\xb6\x87\xdd\xfd\x9a\x83\x0c\x47\xe1\x61\x35\x21\xb4\xef\x93\xe4\x70\x38\xc4\xf2\x28\x1b\x5b\x57\x27\xfa\x14\xf4\xc9\x5d\x36\x9d\xe7\xd5\x7c\x72\x11\x9f\x1f\x5b\x96\x46\x93\xf7\x70\xf4\xd4\xb1\xa3\x2d\x36\x3d\x64\xdb\x6a\x56\x72\xa3\x09\x5a\x1e\x60\x1d\x64\xed\x88\xb6\x08\x76\xf0\x3d\x38\x0e\x6c\xea\x31\xbc\xdd\x85\x83\x74\x24\x22\x6c\xd9\x07\xc7\x9b\x2e\xbc\x19\xd6\xab\x1d\xfb\x37\x01\x6b\x20\x0d\x46\x69\x85\xac\x1a\xe1\x32\xad\xb2\x6a\x2c\x22\x3c\x66\x8b\x9b\x62\xb9\xc0\x63\x5a\x96\x69\xbe\xc8\xe6\x15\x8a\x12\xd3\x22\x9f\x65\x8b\xac\xc8\x2b\x14\x57\x48\xf3\x15\x6e\xb3\x7c\x36\x06\x71\x68\xc8\x81\x9e\x5b\x37\xf8\x5b\x07\x1e\xc6\x48\xdb\x61\x66\x15\xd1\x1b\x81\x9d\x3d\x09\xf9\x96\x14\xef\x58\x41\x4b\x53\x77\xb2\x26\xd4\xf6\x1b\x39\xc3\xa6\x46\x4b\x6e\xcf\x7e\xf8\x4c\x0f\x69\xb6\x22\x82\xe6\x3d\x07\x19\x8e\x27\x7f\x3c\x2a\x16\x22\x2d\xaf\x07\xfb\x79\x76\x9f\x5e\xcf\xc5\x55\x59\xdc\xe3\x9f\x9f\x7b\x31\x2d\x8b\xaa\x5a\x5f\x2e\xb3\xbb\xd9\x7a\x5a\x3c\xac\xf0\x44\xfb\x6e\xf2\x71\x7e\xbf\x4c\xcb\xe9\xcd\xc4\x0f\x68\x85\xa4\xf3\x2e\xd9\xb0\x49\x84\x28\x97\x39\xfa\x6e\x0f\x36\x3e\x48\xad\x31\xe9\x11\xa4\xab\x29\x28\xcd\x38\x3b\x3b\xd6\x94\x26\x69\x20\xb5\x16\xe9\x6c\x06\xd7\x99\x35\x7b\xe5\x79\x7d\x0a\xc6\xbe\x39\x01\xb5\x55\x52\x9f\xb0\x43\x6e\xa3\xad\xfa\x1a\x07\xe9\xe2\xfa\x3b\x12\x21\xe6\xf9\xa2\x5c\x3d\x14\x59\xbe\xc0\xe7\xd1\x6f\x0d\x7f\x61\x8e\xbe\x88\x1f\x01\x00\x00\xff\xff\x28\x6d\xd2\xab\x38\x03\x00\x00") - -func testImagesVolumeIscsiDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeIscsiDockerfile, - "test/images/volume/iscsi/Dockerfile", - ) -} - -func testImagesVolumeIscsiDockerfile() (*asset, error) { - bytes, err := testImagesVolumeIscsiDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/iscsi/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeIscsiVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd2\x33\xe4\x02\x04\x00\x00\xff\xff\x70\x6a\x3d\x6f\x04\x00\x00\x00") - -func testImagesVolumeIscsiVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeIscsiVersion, - "test/images/volume/iscsi/VERSION", - ) -} - -func testImagesVolumeIscsiVersion() (*asset, error) { - bytes, err := testImagesVolumeIscsiVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/iscsi/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeIscsiBlockTarGz = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xdd\x79\x58\x53\x67\xbe\x07\xf0\x28\x2a\x3a\xb6\xd2\xd6\x8e\xd6\x52\xc5\xd6\x05\x2b\xe2\x52\xab\x28\x08\xb8\x4c\x55\x44\x8c\xcb\x54\x54\x36\xa9\x28\x6a\x59\x5c\x58\x15\x12\x2b\x55\x3a\xb6\xb2\xa5\x82\x82\x24\x76\x0c\x64\x54\x10\x05\x25\xc8\x16\x94\x51\x44\x96\x68\x82\x06\x12\x11\x14\x25\x1e\xd9\x44\x22\x09\x21\xcb\x7d\xea\x5c\xdf\x73\xef\xf3\xdc\x79\x9e\xb9\x73\x6f\x27\x9d\xfa\xfd\xfc\xf9\x3b\xe7\xfd\xfd\x7e\xef\x9b\xf7\x9c\xf3\x8f\xbe\x58\x7d\x3f\x94\x91\x50\x9c\xe0\xc9\x30\x6b\x57\x44\x16\x2b\xbf\xf4\xaa\xe8\x2e\x7a\xeb\xcf\xdf\x9d\xd8\x96\x79\x65\xec\x1e\x57\xdb\x8f\xfc\x3c\xff\xec\x96\x97\xe4\x79\xcb\x71\x4e\x4a\xf9\xd9\xa7\x33\x4f\x57\x6f\xde\xbe\x75\x4a\x50\xc3\xd2\x73\xc9\xb6\xe6\xe1\xb6\x29\xd3\x6c\xab\x0e\x7d\xa6\xc8\xab\xa9\xcb\x6a\x6f\xde\x94\xea\xfa\xc5\x9f\x6c\x4a\x9c\xa7\x38\xae\x1e\x53\x75\x73\x8a\xb8\x87\x6a\x19\xac\xde\x2b\x12\x59\xed\xed\x8a\x89\xf4\xe9\xf3\x8f\x6b\x2c\x51\x17\xc4\x06\x44\x05\x75\xfc\xe0\xd1\x2e\x0f\xbd\xda\xd4\xf2\x09\x5b\xf4\xe4\xbc\x17\x4f\xa3\xf9\x6e\x42\x78\x87\x3c\xf4\xaf\x89\xc2\x82\x86\x9a\x17\x7d\x13\xc2\x1e\xe8\x92\xed\x9a\xb6\x3b\x38\x57\xf8\xc8\x06\xaf\x6a\x14\x1a\x8f\xaf\xdb\xa4\x98\xb7\xb5\xeb\x81\x9e\x47\x85\x1a\x1b\xf6\x1e\x30\x06\x8f\x4b\x7c\x90\x7f\x65\xf7\xe3\xbb\x73\xe7\x72\x0d\xf2\x9a\xa3\x7b\x99\x8a\xfa\xfa\xe2\xa7\x3d\xbd\xdd\xb5\x0b\xe6\x95\xe8\xaa\xfb\xd7\xa7\x59\x2a\x79\x6c\xa1\x3a\xd0\xfb\x79\x61\xe1\x8c\x28\xea\x50\x57\x51\x94\xbd\x63\xe3\xd4\xc0\x8c\x8e\x90\x8a\xf0\x93\xdd\xcf\xac\x17\xa8\x9f\xb6\x39\xb5\x0c\x89\xdf\x5f\x3d\xc6\x7f\xc1\x8b\x30\x9e\x76\xeb\xfd\x10\x63\xa5\x45\xf6\x08\x76\x73\xfa\x38\xd5\x85\xd8\xae\x62\xf1\x9d\xf0\x82\x1e\xb6\xb2\xa8\x41\xb7\xd2\xc2\xea\x72\x77\xd2\xb9\x93\x3d\xad\x8a\x93\x6a\x7e\x4a\xc9\xee\xa6\xb4\x5a\x07\x75\xe3\xcb\x47\x4b\x9c\xbb\xdb\xff\xdc\x54\x61\xe4\x9b\x45\x2f\x8a\x8d\x9a\xce\x9a\xa5\x99\x16\xa8\xb4\x7b\x1a\x17\xb2\x5a\x7b\xfb\xf2\xb8\xfd\xcf\xef\xdd\x88\x63\xb2\x58\x1b\xb8\x82\x18\xc9\xc7\xb2\xf3\xbc\x81\x3c\x5d\x54\xcf\xbd\x86\x08\xf9\xaa\x58\x6f\xa5\x94\x17\x6c\xc5\x11\xf3\x63\xe2\xe6\x97\xf5\x33\xc5\xfd\xd2\x5e\xca\x3c\xc2\xb8\xb1\x6f\xa5\xfd\xd3\x2c\xb3\x62\x63\x7b\xb1\x73\x20\x2f\xfa\x80\x9a\xf7\xf3\x2d\xb5\xf3\xcb\xfa\x7b\x44\xd9\x97\xd2\xa7\xf7\xea\x63\x03\x5b\xfb\x9b\xaa\xd5\xa2\xc8\x03\x5d\xce\x5d\x4c\x85\xb0\x54\xa3\x0e\xee\x5d\xc0\x54\xe8\x19\x62\xa6\xb8\xe7\x52\xb4\x76\x00\x37\x7e\x01\x53\xd1\xc2\x10\x8b\x6b\x7b\x2e\x45\xf7\x0e\xe0\x8a\x17\x30\x15\xd4\x0b\x05\xcf\x70\xf2\x72\xa0\xb0\x4e\xba\x3c\xaf\x53\xac\x61\xff\x54\xa6\x4c\x1c\x6b\xfb\xf2\x73\x49\x96\xc2\xe0\xfb\x7b\xf3\xcb\x3f\xc7\x83\xfa\x63\xbf\xf4\xcc\xcc\xe0\x2e\x4d\x0d\x55\x38\x67\x3d\x6a\x4e\xde\xf7\xe1\x8e\x7b\x81\xc6\x0b\x47\xaa\xf2\xc9\xe5\xf3\xe4\x72\x02\x7d\x59\xf8\xfa\xf2\x47\xf2\xb5\xcc\x09\x35\x85\x1d\x56\xeb\x77\x1f\x22\x97\x67\x6c\x3f\x23\x48\xdc\xd6\xd8\x6b\x71\xae\xe0\x2b\x57\xc7\xa3\x9f\xb7\xe5\xb3\x37\x5c\x1f\x4d\xa7\x3c\x43\x52\xde\x22\x0d\xf9\xd4\x91\x44\xc7\xe8\x44\x41\x24\xd1\x4e\x92\x28\xe5\x12\x49\x94\x4d\x12\x3d\xa3\x13\xd1\x1d\x1d\x25\x89\xbe\xa6\x8b\x9f\x23\x63\xe4\x64\x8c\x6c\xc7\xeb\x3a\xdb\x49\x2c\x96\xac\x50\xd4\x46\x52\x3b\xd4\xe3\xd9\x0e\xfe\x46\xa1\xbe\x7c\xea\x79\x19\x29\xa3\x27\x65\x2c\x49\x6b\xf7\x2f\x90\x32\x55\x64\x4c\x10\x3d\xc7\x16\x32\x26\x8d\x8c\x89\xfa\x82\xd4\x71\x27\xfd\x7e\xf4\x80\x8c\x91\x92\x31\xe9\xa4\xcb\x65\x74\xc5\x2c\x52\xf1\x26\xb9\xd1\x8b\xdc\x68\x17\x4c\x96\x92\x2e\x63\x4b\xb7\x76\xf7\x75\x99\xee\x2f\xe9\xe4\xf4\x12\x84\x92\x31\x32\xba\xdf\x40\x3a\x48\xdf\x19\x4d\x82\xd9\x74\x76\x29\xc9\xfe\x36\xc9\x2e\x0c\x7c\xdd\x91\xe6\x06\x69\x38\x78\x27\x09\xb6\x92\xa0\x82\x64\xff\xa8\x91\x24\xb2\xa5\x13\xd1\x53\x5b\x42\x8a\x8f\x25\xc5\x3b\xc9\xaa\x77\x67\x93\x31\x4d\xf7\xc8\xb2\x2a\x49\x9d\x22\x7a\x31\x2f\x93\xc5\x0c\x22\x63\xc2\xe9\x3a\xcb\x48\x1d\x47\x52\xa7\xb4\x84\x8c\xf1\x26\x63\xd4\xf4\x0e\x66\x92\x31\xe1\x74\x1d\x21\x19\xc3\xa2\xc7\x90\x3a\x11\x0b\x5f\x8f\xf9\x82\xc4\xe6\xd1\xcf\x6b\x3d\xe9\xbc\x65\xd3\xeb\x2e\xe2\xe8\x1b\x7f\x22\x37\xfe\x95\xdc\x68\x4e\x36\xd6\x82\xbf\x90\xcb\x7c\xfa\x32\x79\xb0\x17\xf0\x5f\x5f\xfe\x2a\x9c\x34\x5e\x49\x7a\xdc\x4f\x0a\xf6\xd2\x19\x2f\x91\x8c\xbe\xe4\x46\x01\x99\x6b\xfb\xd7\xaf\x3b\xab\x6f\x22\x8b\x4f\x3f\xd6\xe5\xf4\x42\xe6\x91\x3c\x97\x48\x67\xf4\x46\x5f\x90\x4b\x2e\x17\x91\x2e\x4a\x8b\x48\x90\x6e\x6d\x1c\xbd\xa9\x4b\xe8\x86\xe8\x29\x16\x92\x31\xb3\xc8\x65\x7f\xba\x4e\x3e\xb9\xbc\x9b\x5c\x8e\xa7\x7f\x9b\xc5\xa4\xf5\x91\x74\xeb\x39\x64\x8c\x0b\xbd\xd7\xc8\x74\xbb\xcd\x48\xd0\xb9\x9e\x04\x97\xd0\xc1\xfb\x64\x61\xb6\x91\xec\xf1\xa4\x23\xdd\x76\x3a\x48\x1e\x09\x5d\x04\x09\x32\xe9\x3b\xfd\x48\x90\x43\x9a\xe3\x4a\x48\xc9\x75\x74\x49\xfa\x89\xaa\x23\x8b\xcd\x23\xef\x43\x4d\x03\x1d\x24\xbf\x9f\xa6\x8f\x04\xef\x90\x86\xd7\x93\x8a\x52\xf2\x03\x70\xc9\xcb\xab\xfb\x07\x32\xc4\x9f\xde\x30\xf4\xbb\xb8\x81\x34\x24\x26\xb5\x23\x82\x48\xca\x1e\x92\x92\x45\xef\xea\xd1\xf4\xcc\xe8\x15\x3e\x48\xea\xd0\x1f\x9c\x62\x7a\xab\xa7\x90\x44\xde\x64\xad\xbb\xab\x48\x71\x11\xbd\x44\x49\x24\x51\x0a\x49\xa4\xa3\xb7\x6b\x0e\xf9\x01\x8a\xe9\x17\xaf\x8c\x74\xc4\x3a\x4d\x82\x4f\x48\xf6\x1c\xf2\x5d\x8c\xd8\x4a\x12\x9d\x23\x1d\xd5\x92\x77\x85\xa6\x86\x14\x6f\x22\x2f\xc4\x08\xfa\x1d\x1c\x4c\xf6\x70\x31\xfd\x36\x08\xa7\xd7\x88\x7e\xab\xa8\xe9\xa0\x88\x04\x2d\x48\xd0\x40\x7f\xa6\xe2\xe9\x60\x01\x09\x5e\x26\xbd\xb3\xe9\x95\x11\xd0\x41\xf2\x16\xed\x56\xd2\x41\xb2\x27\xba\x0b\xc9\x34\x44\x01\x64\x1a\xf4\x07\xc2\x92\x94\x7c\x40\x3f\x0d\xee\x24\xd1\x7f\xf9\x16\xb4\xd1\x89\xe8\xad\xa9\x20\x41\x3b\xb2\x1e\x3a\x2f\x92\x9d\x54\x9c\x27\x20\xf3\xa1\x3f\x1a\xc1\xe4\xeb\x13\xe1\x41\x86\x28\xc8\xef\xf7\x80\x9e\x44\x2d\x5d\x9b\x3c\xfc\x9a\x58\x12\x0c\xa7\x37\x02\xfd\x0e\xb2\xa2\x13\xd1\x9f\xbe\x07\x64\x8c\x9a\x1e\x43\xff\x2a\x3c\xfa\x07\xb8\x42\x82\x3e\xf4\xee\xa0\x3f\x97\x32\x92\x88\x4d\x3f\x93\xe4\x53\x71\x3d\x92\x4c\xd2\x8a\xac\x81\x66\x35\xb9\x1c\x4b\x7a\x73\xa2\x7f\xd3\x3b\x24\x25\xfd\x66\x39\xf9\xfa\xa9\x4a\xde\xbd\xc1\x7e\x72\xfa\xb1\xda\x33\x3f\xe7\x4c\x6b\x30\x6e\xeb\x15\x9d\xd0\x07\x73\xd7\xfd\x9c\x23\x3f\xd7\x98\xdd\xce\xb6\xe9\x6f\xb2\x17\xbc\x1a\xc3\x1e\xe6\xa5\x7c\xcf\xa0\x65\xc9\xcb\x32\x94\x3a\x1b\x6f\xb9\xcf\x55\x63\xbe\xab\x76\xa4\x85\x13\xdb\xb3\xe0\xc8\x6c\x1f\x56\x6b\xf4\x8c\x76\xf6\xde\xa3\x5d\x57\xdc\x0c\xb9\x2d\x8f\x58\xfa\x8e\xa3\xd9\xcc\xe2\x4c\x83\xe5\x43\x33\xc3\x92\x6f\xc4\xdf\x48\xad\xd2\x45\xed\xf7\x2f\xb6\x48\xd9\xc6\xc0\xa0\x80\xb1\xfb\x2a\x0d\x0d\x0e\xf9\x86\x1e\xd9\x2e\xca\xbe\x88\x65\x68\x2f\x2e\xe0\x39\x7b\x58\xba\x17\xdd\x6c\xab\xad\x12\xf3\x2c\x32\x2d\x32\x2c\x04\xf1\xfc\xf8\xcc\xf8\x8c\x1e\xbb\x19\x11\x7d\x37\xb6\xc9\x57\x28\x78\xd7\x45\x6a\xff\xc7\xea\xa6\x63\x73\xa7\x77\xca\x9a\xb2\xac\xbe\xe7\x69\xa6\x74\xcc\x2b\x73\x6e\x16\x35\x47\x76\xb1\x6b\xe6\x8c\x78\xb1\xff\x5d\xc6\x9b\xe4\x80\xd1\x3c\x5f\xf2\x93\x65\x9a\x47\xac\xb1\xa2\xc2\xc3\x23\x56\x59\x10\xe5\x54\x7a\xeb\xc6\xc7\x1e\x45\xea\x4e\x05\x9b\x33\x52\xcd\x2d\x54\x6a\xf6\xe5\x5f\xec\x2e\xec\x58\x32\x97\x29\xdf\xab\x1b\x26\x18\x6b\x38\xa5\xb7\xee\x2a\xfd\xa3\x28\xa4\xf9\xbd\xb3\xe9\x3e\x21\x46\x65\x10\x3b\xca\x58\xf6\x49\x98\xa7\xdc\x87\xb1\xeb\xcc\x45\xf6\x86\x14\x7d\x79\x61\xbb\xd5\xbd\xad\xc6\x0b\xd3\xfb\x63\x43\x1b\x9c\xb3\xaa\x0c\xbe\x5e\xbd\x16\x6d\xb9\xaf\x2e\x25\xe5\xcf\xb5\x9b\x9b\x6f\xe7\x64\x98\xd0\x7c\x2a\xe4\x44\xc8\xae\xc2\x80\x42\x4f\x7b\xbf\x96\x6b\xce\x13\x2e\x5c\xdc\x7d\x48\x35\x98\x3a\x42\x0d\x97\x1e\x93\x1c\x93\x8e\x0e\xac\xe3\xfd\x5e\x5e\xaf\x79\x14\x72\x57\x35\x89\xda\x49\x3d\xa3\x5c\xa5\x73\x24\x73\xa4\x97\x25\x97\xa5\xa1\x6b\x5d\x63\x33\x66\xb8\xca\xdc\x64\xae\x32\xa6\xdd\x72\xbb\x95\x3e\xdc\xa0\x1f\x83\x4e\x06\x25\x95\x7e\x12\xbd\xf5\xac\x73\xea\x2e\xe9\xa5\xd9\x63\x13\x83\x92\xe3\x56\x16\x49\x6a\xa4\xb6\x12\x5b\x69\xb6\xc4\x3d\xe3\xb4\xc4\x5d\x90\xe3\xe2\x93\x56\x3a\x3d\x3a\xba\x30\xb4\xd0\x4d\x7b\x38\x44\xa1\x3a\x4a\xa5\x49\xec\x04\x8a\x8c\xd3\x52\x21\x5f\x21\x70\xe0\x3b\x64\x3a\x64\x04\xbb\x35\x25\x77\x9e\xec\x4c\xea\x4c\xed\x4c\xee\xe4\x76\x26\x76\x9e\x28\x75\x6c\xb4\x69\x74\x68\xb4\x8e\x5e\x56\x18\x5c\xe8\x53\xc8\xde\xb7\xf0\x19\x75\x3c\x24\xc0\x7e\xfa\x58\xde\xaa\xe5\xd6\x99\xe6\x99\xe6\x19\x1c\x49\x8c\x74\xc9\x5a\xfd\x9a\x73\x1c\x29\xf7\x92\x9d\xe3\xe7\x8e\xd3\xd2\x93\x7a\x33\xf4\x54\x9d\xea\xb9\x2a\x9d\xba\xa4\xfa\x4e\x75\x53\xe5\x45\x15\x49\xd5\xfc\x65\x19\x5d\x6e\x02\xc1\x32\x41\x05\x7f\xb6\x64\x8b\xb4\x45\xd2\x22\x1d\x29\x19\x29\x55\x67\x58\x67\x74\x31\x9d\x13\x58\x33\xf5\xab\xb5\x0f\x43\xb6\x69\x13\x55\xa7\xa9\x0a\x49\xbc\x80\xb7\xdc\xf9\x04\xf7\x24\x37\x89\x35\x55\x1f\xb2\x6f\xa7\xf6\x84\x2a\x8f\x52\x4a\xc4\x82\xc4\xda\x15\x4c\x57\x26\x53\xbc\x5c\xbc\x52\xbc\x42\xbc\x4a\xec\x22\x76\x13\xbb\x8a\x12\x58\xb3\x1c\x9d\x4b\xc6\x97\xcc\x2c\x99\xa2\x5f\xbb\x6f\xb7\xf6\x89\xca\x86\x9a\x44\x65\x50\xee\xd2\x9c\x8c\x94\x0c\x1f\xa6\x28\xd1\x9b\xeb\x9d\xe8\x7d\xc2\xfb\x58\xed\x2a\xd1\x09\x96\x4d\x89\xbd\x3e\x6c\x9f\x9b\x36\x5d\x55\x44\xa9\x25\x5d\x02\xe7\xe5\xec\xe3\x86\x29\xfa\xdd\xfb\x02\xb5\x1c\x95\x80\x12\x4b\x78\x02\xd1\xf2\x1c\x57\xf6\x09\x6f\xde\x83\x84\x07\xc7\x0d\x53\x4b\x3e\xd5\x87\x6a\xd3\x54\x42\xaa\x86\xea\x92\xac\x54\xf2\x85\x7c\x61\xa6\x30\x43\x28\x08\xe7\x87\x67\x8a\x98\xc6\x84\x07\xc7\x1e\xa4\x1b\x66\x95\x58\x97\xd8\x95\xcc\x28\x71\xd6\xaf\xd3\x2a\x55\x33\xa8\xfb\xaa\x1c\xaa\x49\x62\x2e\x89\xa4\x62\xa8\x25\x54\x39\x35\x81\x3a\x4d\x6d\xa1\x74\x97\x12\x1b\x83\x83\xee\x99\x7b\x74\xc9\x75\x9a\x2b\xdd\x87\x63\x9d\x32\x33\x0d\x2e\x23\x4a\xab\x2d\xdb\x2a\xca\x07\x2b\xb2\x94\xfd\xab\xea\xa3\x25\xdc\x75\xcc\xfe\xba\x94\x01\xc6\xd8\x93\x85\xca\x82\x92\xfd\xab\x16\xec\x10\x0f\xab\x70\x6e\xae\x3b\xdd\x3b\xae\xbf\x79\x64\x9c\xc2\x78\x60\x5d\x9c\x7d\xa8\xb8\x73\x4b\x9c\xa3\x6f\xb8\xd3\x15\xe3\x5f\xa2\x1d\x66\x74\xe4\xbc\x59\x8f\x31\xfc\x27\x8d\x6e\x8f\x6a\x58\x51\x78\x57\xa0\x35\x37\x57\xfd\x38\x4c\x52\xda\xd2\x9b\x1e\x72\x33\x43\x3f\x78\x80\xa9\x3b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xbb\x74\x0e\x0e\x2f\x73\x3e\xfc\xe2\xfd\x65\x03\x22\xb6\x05\x1f\x3e\xe0\xb2\xc3\xb7\x85\x37\x5e\x33\x70\x6e\xd8\x8d\x15\xc3\x1d\x3c\xbe\x7f\x3c\x26\xa0\x6e\xf1\x90\x94\xf1\x1b\x3a\x26\x4c\x3c\x75\xc8\x62\xf3\xc7\x1b\xa6\xd5\x7b\x7c\x7f\xa8\x60\xfc\xdc\x51\x73\x7f\xf7\xe9\xb7\x2f\xbf\x5d\x53\x9f\xe0\xf9\xf1\x20\xaf\x84\x2e\x8f\x11\xe5\x25\xfe\xac\x99\xa3\xc3\x86\x98\x7a\x4a\x00\x26\x73\x80\x13\x99\x10\xb5\x33\xed\x9c\x32\xb5\xb5\x4f\x91\xdf\xc7\x12\xed\x90\x5f\x37\x48\x12\x2a\x9f\x5d\x38\x59\xcc\xbd\x1f\x98\xda\xa7\xab\x95\x3d\x2c\xf5\x75\xd4\x38\x0a\x93\x55\x1b\xbd\xaa\x42\x7f\xfc\xf1\x71\xaf\xb2\x3b\xcd\x7a\x46\x90\x17\x2b\x6c\xab\xb2\x3b\x42\xf7\xbc\xd5\xc7\xde\xad\x5f\xf0\x62\x4d\xcf\x8b\xf6\xf6\xf2\xa3\x7a\x41\xce\x83\xc6\xfd\x22\x63\x47\xd5\xd5\x9a\x36\x51\xe1\xf5\xbd\xba\x3c\xf3\x83\x93\x6c\xfa\x62\xce\x4f\xf4\x7a\xd1\xa2\xab\x7d\xf6\x97\x8d\xf3\xef\x07\xf3\x99\x85\x8f\xab\x0f\xc5\xe4\x94\x3d\x2c\x6d\xac\x76\xe0\xfe\xe8\xa7\x7f\x74\xa7\x34\xc0\xdf\x9a\xca\xb7\xe9\x89\x6e\xe5\x48\xdc\x5b\xd5\xb9\x9c\x90\xfd\xc7\xfa\x76\xb4\x72\x3e\xcb\xae\x16\xe7\x72\x42\xf2\x6e\x45\xb1\x4e\xf3\x27\x56\xd4\x06\x5f\x9a\xcf\x4e\xeb\x11\x1e\xeb\xf1\x77\xfa\x34\xad\x42\x2c\xf4\xa0\x38\xb9\x5f\x52\xfd\x2a\x17\xca\x46\x1f\xa4\xe5\xb7\xaf\xd7\xee\xd0\xf2\x57\xda\xe8\x2b\x54\x2e\x2e\xf7\x6e\xdd\x19\x67\xea\x35\x36\xad\x51\x35\xcc\x27\xda\x5c\x2b\xab\xe6\x41\xab\xd4\xd7\x63\x8c\x95\xb9\x4d\x4b\x4d\xdd\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x8f\x9a\xad\x1d\x42\x57\x9b\x31\x18\xd7\x16\xae\x1c\x68\xb8\x7b\xd0\xcc\x7b\x62\xc2\xed\xa9\x05\x62\xfc\xa3\x06\x78\xc3\x08\xfd\x6c\xf2\x7b\x18\x43\x5e\xc6\x9b\xf3\x02\xf0\x1f\xe0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x37\xe8\x48\xba\xd6\xfd\xe8\x27\x47\x4e\x33\xa2\xfc\xff\xc9\xf3\x12\x7e\x18\xbf\xc8\xfd\x71\xff\xe1\xf2\x99\xea\x6a\x8b\xd6\x6b\xd5\xa6\x9e\x10\xc0\xff\x9a\xf1\xf8\xfe\xca\xd8\x4c\x4f\xa7\x75\xb7\xa4\x32\xb7\xbe\x7d\xc2\x1f\xb7\x5d\x14\xdd\xf6\xcf\x95\xfb\xac\xf2\x5e\x15\x94\xf2\x19\xaf\x49\x7b\xbf\x49\xe6\xa3\x66\xd5\x66\x4f\xf2\x3a\xf3\x64\x45\xed\x69\xfe\x64\x3b\xe7\x38\x1f\xc7\x7d\x61\x2d\x8f\x38\xae\x0e\x16\x15\x2d\xfd\x32\xe3\xed\xa0\x54\x9f\x63\x16\xb7\x7a\xa4\x79\xe1\xb2\x5e\x2b\x51\xc4\x5e\x65\x87\x21\x85\x69\x6e\x97\x63\x7c\x3a\x4a\xdd\x2d\x1b\x37\x34\x39\xab\x75\xb0\x97\x8b\xfc\xb1\xa2\x21\xfd\xee\x9a\xbf\x9d\x72\x20\x7f\x5c\x77\x25\x46\x54\xf6\xb0\xb4\xa1\xda\x8e\x5b\xe7\xa7\xd7\xdd\x29\x0d\xf2\x9f\xb4\x43\x68\xde\x5a\x54\x6d\x7d\xd9\xf2\x78\x53\xd5\x0a\x49\xe7\xdb\xd5\xcc\xd9\xbc\x3a\xaa\x4c\x37\xcd\xc6\xc5\xc1\xf2\xb8\x78\xd6\x8a\x9d\x7b\xda\x75\x4b\x39\x7a\xbb\x06\xf6\xec\x0b\xc6\x6a\xeb\xd0\x1e\x4d\xdf\x36\x9b\xe8\xb5\xc2\x21\xda\xe9\xd1\x6b\x8b\xbe\x61\xd9\x45\xaf\x0d\x37\xd7\xee\xd0\xf2\x57\x99\x6b\xd5\x14\x27\x35\xeb\xee\x69\x47\x53\xaf\xb1\x69\x4d\x4b\xe5\xdd\xbc\xbb\xd5\xd9\xa9\x2c\x78\x5e\x83\x95\x85\xc1\xba\xca\xf0\x21\x4e\xbd\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x6d\x3b\xd0\xd5\x5e\xb7\xe8\x6d\x06\x63\xa8\xd9\xac\x61\x1a\xf7\xe1\x23\x22\x12\x17\x2e\x3e\xd7\xec\x64\x69\xea\xbe\x00\xfe\x21\xf7\x93\xb2\xeb\x6b\xcd\x3e\xa8\x73\x1e\x17\x95\x5b\x82\x93\xfc\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xae\x29\x61\xcf\x7c\xe6\x1c\x99\x12\x37\xf0\x79\x7a\xc9\x98\x81\x93\x33\x0e\x1d\x65\x1f\x6c\x1e\x5e\x5f\x3f\xc6\xc6\xb6\x3d\xc0\x36\xc9\xff\xc2\x9a\xe1\x63\x3c\x0f\x6e\xbe\x1c\x9f\x70\x60\x94\xd3\x81\x43\x9b\x2f\x6e\x0e\xb6\x1d\xf5\xe8\x60\xfd\x86\xfa\x29\xfc\x77\xee\x8d\x5c\xea\xbb\xe4\xb3\x83\x83\xbc\x12\xbb\x2c\x47\x94\xdf\x9f\xed\x7c\x7c\xf8\x6c\x33\x53\xcf\x08\xde\x18\xba\x2d\x9d\x93\xac\x52\xf7\xf4\xad\xfc\x94\xe9\x63\xf7\xa4\xad\x71\x6d\xea\x75\xc3\x62\x5e\xe5\x4e\xf6\xfc\xc8\xf9\x57\xbc\x6e\x45\xb1\xda\xf6\xb2\x7d\xd8\x8d\xfd\xf3\x85\xc9\x21\x19\xb6\xee\x7b\xc6\x4d\x9a\x73\xa5\x6f\xb7\xee\xd9\x9d\x3c\xcb\xd1\x3c\x4f\x79\xe4\xbc\x71\x4d\x22\x43\x6c\x98\x54\x77\x36\x6a\x35\x97\xc7\x2d\x29\xca\x37\x6a\xae\xa7\x39\x04\xab\x45\x51\xf6\x05\x91\xfa\x65\xc2\x82\x78\x51\xef\xc2\x0b\x7e\x73\x66\x3c\x5d\x21\x99\xdc\x54\xdb\x99\x15\x77\xeb\xd6\x43\xd6\x84\x68\xc9\x64\x41\xed\x58\xdd\xe0\x11\xea\x9a\x6d\xa5\xdd\xfc\xc9\x6d\xca\xf8\xde\x50\x07\x1b\x97\x22\xc7\x99\x4d\x5b\x9d\xce\x34\x96\xe9\xbc\xd7\x27\x85\x05\x6f\x66\xa5\xf6\xf1\x57\x99\xb7\xfa\x6f\x74\x91\x37\x94\x45\xc5\xad\x59\xcb\xd9\xa2\xb4\x4b\x6d\x17\x55\x1a\xd2\xbe\xd1\xfb\x3b\x9d\x49\xab\x10\xdb\x79\x50\x9c\xc2\x39\xb7\xc3\x29\x8e\xfc\x6d\x55\x11\xc5\x29\x74\xb8\xcd\x94\x5a\x87\xda\xdf\x16\x31\x79\x75\x7e\xd9\xe3\x3a\xde\xec\xff\xd5\xbf\xf9\x8e\xee\x0f\xe7\xa7\xf7\x77\x0f\x60\x95\x57\x1a\x22\x9e\x3b\x6f\xec\x95\x0d\x35\x75\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x6f\x22\xca\x5f\x30\x62\x27\x83\xb1\xf0\x83\xef\x5c\xca\x44\x9b\x76\x95\x7d\x3f\xe8\xbd\x4d\x83\xd5\x0d\xa6\x6e\x0b\x7e\xdb\x9a\x93\x03\xae\x87\x8d\x2b\x3b\x65\xe8\x6e\xe6\x74\xcc\x19\x68\xea\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\xfb\x16\x5e\x5c\x67\x3c\xbb\xe6\x0f\xbb\xdf\x3f\xd0\xd5\x5e\x93\x9b\xc0\xbf\x74\xa1\x9b\xf9\x4e\xd4\x00\x4b\x87\x2d\x19\x87\xd2\xb3\xbf\x78\xf1\xd6\xdc\x9d\x1f\xc7\xb8\xbe\x93\xd5\xfb\xee\x7b\xb7\xaf\x99\x5f\x78\x67\xda\xa8\xf6\xec\xeb\x8b\x3d\xdf\xb1\x1c\x6e\x69\xf6\xe9\xb7\x2f\xbf\x5d\x53\x9f\xf0\xc3\xf8\x45\xee\x8f\xfb\x0f\x97\xcf\x54\x57\x5b\xb4\x5e\xab\x36\xf5\x8c\xe0\x57\xcf\x78\xbc\xbf\xb2\x22\xd3\x73\xbe\xc7\xad\x3c\x3b\xb7\x06\x91\xfb\x8a\xbc\x7a\x9f\xf6\xcf\xc6\x84\xa6\x70\xdc\x39\x0e\x19\xd5\x4a\xa1\x28\x44\x1d\x2a\x4b\xe7\xed\xfd\xda\xc5\x63\xe9\x93\x9d\xb5\x31\xfc\xc9\x42\xa7\xa3\x3e\xce\x2c\x56\x8f\x44\x5a\xe5\x10\x7f\xa3\xc5\xdc\xce\x70\x3b\x28\xd5\xe7\x98\x45\xd5\xf7\xb3\xf3\xd4\x32\x0b\x6e\x71\xd4\x7e\x75\xe3\x55\x99\x38\xd6\x2e\xc7\xf8\x74\x94\xba\x5b\x36\x6e\x68\x72\x56\xeb\x60\x2f\x97\xc3\x95\xc2\xbd\x0e\xa7\x17\x6d\x9c\x2f\x0f\xe6\x33\x0f\x57\x3e\xeb\x2b\x17\x95\xdd\x29\x6d\xa8\xb6\xe3\xd6\xf9\xe9\xaf\x75\x97\x06\xf9\x4f\x1a\x13\xa4\xae\x16\x9e\x60\xee\x54\xcc\x16\xa5\x1c\xf3\x2b\x90\xcd\x76\xae\x89\x5a\x2b\x70\xec\xc9\xcb\x9a\x58\xbe\x51\x1c\x15\xb7\x68\x2d\x67\xe4\xeb\x73\x0e\xb8\xaf\xce\x39\xb0\xfe\xdb\x39\x07\x77\xa5\x42\x8a\x23\xef\x7d\x75\xce\x81\x42\xca\x94\x5a\x87\xca\xa5\xec\xe5\xaf\xce\x39\xe8\x7a\xe3\xcf\x39\xf8\xe3\x79\xdb\x57\xe7\x1c\x50\x38\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x03\x07\x26\xc0\x3f\x0e\xe7\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xbb\x5a\x78\x71\x5d\xc5\xd9\x35\x7f\xf0\x7d\x75\x60\xc2\x7b\x9f\x7f\x6a\x1b\x50\x37\xe8\xea\xe8\x0b\x17\x67\xaf\xdf\x54\xdf\xb0\x69\xa2\x78\xf3\x96\x69\x7e\xbb\x86\x1d\xbc\xeb\xb4\x78\xe0\x26\x0d\x63\xd4\xc1\xeb\x07\x4b\x2e\x6f\xf8\x6e\xf8\x57\x5b\x12\x97\x7e\x7c\xe8\x02\x77\xe6\xef\x2c\x93\xde\x9d\xf8\xf4\x48\x54\xd3\xae\x0f\x5a\xb9\x7d\xbe\xd3\xab\xdf\x32\xf5\x8c\xe0\x17\xf2\x3c\xbe\x61\x95\xd3\xdc\x27\xcf\xfa\xd6\x72\x4b\x76\xdc\x92\xf5\x67\x7c\xde\xa3\xdf\x94\xd2\xbd\x27\x7c\x3e\x6b\x4e\xa9\xc7\xad\x80\x30\x7f\x51\x51\x4e\x51\xa7\xee\xa4\x87\x8b\x7c\x4f\xa6\x67\x55\x64\x42\xdd\xe3\x5e\xc1\x9d\xb6\x0a\x71\xb0\x17\x6b\xdf\x56\xe5\x9d\xed\xaa\xe6\x56\x2b\xb9\x5b\xcf\xb9\x17\xbe\x91\xbb\x83\xb4\x86\x1b\x57\x39\x29\xc1\x5d\x25\x0e\x9a\x17\x7d\xcf\x5b\xef\x5a\x35\xea\x9c\x0c\x72\xb3\xab\x07\xef\x16\x9f\x72\xad\x9c\xd9\x17\xe6\xeb\x1f\xb9\x3a\x39\xae\xb7\x8d\xe2\xf8\xee\xe9\x7d\xf4\xd0\xa7\x79\x7b\x53\xc0\x63\x4b\xe6\xce\xdc\x7d\x54\x84\x8f\x30\x37\xe9\x2d\xe1\xbe\x56\x45\xb5\xf5\xe5\x8e\x13\x4d\x55\x2b\x3e\xbb\xdf\x76\x82\xe7\xe7\x74\x86\xc3\xed\xdb\xb1\x3e\xe9\xe1\x25\x7f\xa7\x8a\xf1\x67\x2a\xff\xd4\xd3\xe6\xd6\xdb\xe4\x67\x74\x13\x1b\x66\xf3\xea\x8e\x72\x94\x69\x35\x2a\x97\xc6\x76\x4a\xa1\x72\x09\xdc\xaf\x6d\x54\xb9\x34\x76\x50\xd6\x14\xc7\x9e\xa2\x9c\xf9\xcc\x9d\xb9\x6b\xe3\xd5\xa6\x5e\x64\xd3\x9a\x19\x1c\x36\x55\x36\x5a\xaf\x61\x88\x1e\x86\xb0\x17\x68\x78\xd3\xb4\x5f\x0f\x32\x75\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xa4\xd2\xbc\x75\xe6\x73\x18\x8c\xf1\x6f\xfd\x75\x62\xb3\x8f\xed\xbc\xe6\x2f\x06\x0e\xcb\x3e\xd8\x1f\x60\xea\xb6\xe0\xff\xd3\x2e\xd7\xfc\xaf\x1c\x2c\x36\xaf\x36\x46\x3c\xaf\xec\xfd\xf0\xcd\xfe\xdb\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\xa8\x53\xf5\x67\x62\x3e\x64\x30\xde\x19\xf2\xd5\x7b\xcf\x73\x46\x7d\xf4\xfc\x93\x6f\xbe\x5d\x7f\x35\x7a\xae\xa9\xdb\x82\xff\x0e\x7f\xc9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x4f\x56\xb7\xd7\x2d\x7a\x9b\xc1\x18\x6a\x36\x6b\x98\xc6\x7d\xf8\x88\x88\xc4\x85\x8b\xcf\x35\x3b\x59\x9a\xba\xad\xdf\x9e\x32\xdb\x86\x23\x1d\x0b\x0e\x2c\xd2\xb7\x5c\xb5\x56\xe0\x98\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xd7\x9a\x12\xf6\xec\xd4\x10\x06\xe3\xdb\x6f\x8e\x0f\xd2\x9d\x1b\x6c\x5e\xbc\x7c\xfc\x4f\x5f\xee\xe2\xbd\x6d\xea\xb6\x7e\x8d\x0e\x78\xe4\xfe\x5e\x11\xc9\x88\xd1\x56\xc4\x30\xf3\x65\x43\x4d\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x3f\xee\x7d\x87\xd0\xd5\x66\x0c\xc6\xb5\x85\x2b\x07\x1a\xee\x1e\x34\xf3\x9e\x98\x70\x7b\x6a\x81\x78\x88\xa9\xdb\xfa\x85\x08\xfd\x6c\xf2\x7b\x18\x43\x5e\xc6\x9b\xf3\x02\x72\xde\x35\x75\x37\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x2a\x67\xa3\xed\xa7\x0e\x60\x1c\xf6\x9d\x32\xc5\x37\x59\x19\xb5\xf7\xb6\x48\xf2\x7e\xe7\x5b\x0b\x86\xfe\x7a\xcf\xbf\xbf\xf9\x62\x85\xc0\x81\xdd\xe6\x74\xfb\x4c\x7f\x73\x64\xe6\xe8\xd8\x8f\xa4\xc1\xbf\xde\x66\x01\xe0\x97\xb3\x39\xc5\x42\xf2\x62\xe9\x09\xc6\x07\x09\xe6\xff\x11\x00\x00\xff\xff\xc8\xee\xdd\x5b\xe2\xf6\x01\x00") - -func testImagesVolumeIscsiBlockTarGzBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeIscsiBlockTarGz, - "test/images/volume/iscsi/block.tar.gz", - ) -} - -func testImagesVolumeIscsiBlockTarGz() (*asset, error) { - bytes, err := testImagesVolumeIscsiBlockTarGzBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/iscsi/block.tar.gz", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeIscsiCreate_blockSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x93\xdf\x6f\xdb\xb6\x17\xc5\xdf\xf9\x57\x9c\xaf\x94\x87\x04\xdf\x44\xb2\x0d\xec\xa5\x83\x3b\x38\x89\x87\x0a\xad\x1d\xc0\x56\xd7\xf5\x69\xa0\xa5\x2b\x89\x30\x45\x6a\xe4\x95\x7f\x64\xdd\xff\x3e\x50\x72\xda\x66\x7d\x98\x1e\xc5\xc3\x73\x3f\xf7\xf0\xde\xf8\x7f\x69\xef\x5d\xba\x53\x26\x25\x73\xc0\x4e\xfa\x46\x88\x18\x0f\xb6\x3b\x3b\x55\x37\x8c\xd9\x64\xfa\x13\xf2\x86\xf0\xbe\xdf\x91\x33\xc4\xe4\xb1\xe8\xb9\xb1\xce\x27\x22\x16\x31\x3e\xa8\x82\x8c\xa7\x12\xbd\x29\xc9\x81\x1b\xc2\xa2\x93\x45\x43\x2f\x27\xb7\xf8\x8d\x9c\x57\xd6\x60\x96\x4c\x70\x1d\x04\xd1\xe5\x28\xba\xf9\x59\xc4\x38\xdb\x1e\xad\x3c\xc3\x58\x46\xef\x09\xdc\x28\x8f\x4a\x69\x02\x9d\x0a\xea\x18\xca\xa0\xb0\x6d\xa7\x95\x34\x05\xe1\xa8\xb8\x19\xca\x5c\x4c\x12\x11\xe3\xf3\xc5\xc2\xee\x58\x2a\x03\x89\xc2\x76\x67\xd8\xea\x7b\x1d\x24\x0f\xc0\xe1\x6b\x98\xbb\x37\x69\x7a\x3c\x1e\x13\x39\xc0\x26\xd6\xd5\xa9\x1e\x85\x3e\xfd\x90\x3d\x2c\xd7\xdb\xe5\xdd\x2c\x99\x0c\x57\x3e\x1a\x4d\xde\xc3\xd1\x9f\xbd\x72\x54\x62\x77\x86\xec\x3a\xad\x0a\xb9\xd3\x04\x2d\x8f\xb0\x0e\xb2\x76\x44\x25\xd8\x06\xde\xa3\x53\xac\x4c\x7d\x0b\x6f\x2b\x3e\x4a\x47\x22\x46\xa9\x3c\x3b\xb5\xeb\xf9\x55\x58\x2f\x74\xca\xbf\x12\x58\x03\x69\x10\x2d\xb6\xc8\xb6\x11\xee\x17\xdb\x6c\x7b\x2b\x62\x7c\xca\xf2\x77\x4f\x1f\x73\x7c\x5a\x6c\x36\x8b\x75\x9e\x2d\xb7\x78\xda\xe0\xe1\x69\xfd\x98\xe5\xd9\xd3\x7a\x8b\xa7\x5f\xb1\x58\x7f\xc6\xfb\x6c\xfd\x78\x0b\x52\xdc\x90\x03\x9d\x3a\x17\xf8\xad\x83\x0a\x31\x52\x19\x32\xdb\x12\xbd\x02\xa8\xec\x08\xe4\x3b\x2a\x54\xa5\x0a\x68\x69\xea\x5e\xd6\x84\xda\x1e\xc8\x19\x65\x6a\x74\xe4\x5a\xe5\xc3\x63\x7a\x48\x53\x8a\x18\x5a\xb5\x8a\x25\x0f\x7f\x7e\x68\x2a\x09\xb3\xb4\x3c\x29\x0e\xed\x84\xff\x95\x72\x9e\x41\xce\x59\x97\x08\x4f\x8c\x3b\x12\x62\xb5\xce\x1f\xb3\xcd\x3c\xba\xba\x6e\xf7\x4c\x6d\x87\xbb\xf2\x26\x12\xa2\xd0\x24\x4d\xdf\x5d\xdf\x88\xbf\x44\x78\xb3\x18\x2b\xb9\x27\xf8\xde\x11\x8e\x04\x47\xdc\xbb\xd1\x75\x9c\x54\x0a\x75\x0a\x5b\xd2\xa0\xde\x2c\xf3\xf9\xd5\x2f\x97\x8b\x5b\xa5\xc9\xb0\x3e\xc3\x51\x6b\x0f\x04\x3a\x90\x3b\x73\x13\x3a\x92\xa6\x84\xaa\x8d\x75\x34\x62\xf9\xe1\x4a\x40\xfb\xff\x68\x34\xec\x46\xdf\xda\xde\x30\xa2\xab\x91\x35\xc2\xec\x6d\x5a\xd2\x21\x35\xbd\xd6\xdf\x54\xae\x2d\x95\xfb\x6f\x11\x76\xda\x16\xfb\x1f\x4e\x07\xfe\xab\xcd\x32\x17\x7f\x0b\xc1\x4e\x76\xb8\x24\x80\x7c\xb9\x59\x61\xf9\x7b\x96\x0f\xab\xe9\x48\x32\x61\x3a\x9b\xac\xee\x51\xd2\x41\xbd\xac\x04\x9d\x78\x26\x62\x5c\x1f\xac\xee\x5b\xfa\x43\x59\x30\x79\xf6\x30\x61\x2a\x25\x43\x93\xf4\x8c\xe9\x64\xb2\xba\xbf\x11\x65\x09\x55\xcd\x07\x80\x67\x72\x16\xb6\x9a\x8f\x54\x9e\x68\x3f\x9f\xce\x26\x28\x42\xc7\xf3\x29\x76\x7e\x3e\x5d\x89\x76\x5f\xf9\x24\x54\x18\xe1\x03\xc8\x22\x78\x98\x92\x4e\x49\xc3\xad\x1e\xe6\x9e\xc5\x98\xd3\x9d\x85\xb6\xb6\xbb\x34\xfa\x35\x10\x41\x45\x63\x11\xbd\x23\xad\x2d\x2a\x67\x5b\x28\x5f\x78\x15\xe1\xed\x57\x4d\xfa\xcd\x31\x12\xff\x4e\x5d\x88\x97\xf0\x12\x96\x2e\xa9\x9f\xbf\xcf\x10\x5f\xbe\xe0\x8d\x60\xe9\x50\x54\xcf\xaf\x55\x23\xf2\x3f\x01\x00\x00\xff\xff\x2c\xc9\xba\x04\xeb\x04\x00\x00") - -func testImagesVolumeIscsiCreate_blockShBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeIscsiCreate_blockSh, - "test/images/volume/iscsi/create_block.sh", - ) -} - -func testImagesVolumeIscsiCreate_blockSh() (*asset, error) { - bytes, err := testImagesVolumeIscsiCreate_blockShBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/iscsi/create_block.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeIscsiRun_iscsi_targetSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x56\x5d\x6f\xdb\x36\x17\xbe\xd7\xaf\x78\x5e\xbb\xc0\x9b\x14\xb1\xe4\xf4\x6a\x58\x91\x0b\x2f\xcd\x50\xa3\xa9\x83\xc4\xce\x8a\x5e\x05\xb4\x74\x2c\x1d\x44\x22\x55\xf2\xd0\xae\x37\xec\xbf\x0f\x24\xe5\xd4\x69\xbb\x0e\xcd\x55\xcc\x8f\x73\x9e\xf3\x7c\x10\x1a\xff\xaf\xf0\xce\x16\x6b\xd6\x05\xe9\x2d\xd6\xca\x35\x59\x36\xc6\xa5\xe9\xf7\x96\xeb\x46\xf0\x6a\x7a\xfe\x0b\x56\x0d\xe1\x9d\x5f\x93\xd5\x24\xe4\x30\xf3\xd2\x18\xeb\xf2\x6c\x9c\x8d\x71\xcd\x25\x69\x47\x15\xbc\xae\xc8\x42\x1a\xc2\xac\x57\x65\x43\x87\x9d\x33\xfc\x41\xd6\xb1\xd1\x78\x95\x4f\x71\x12\x0e\x8c\x86\xad\xd1\xe9\xeb\x6c\x8c\xbd\xf1\xe8\xd4\x1e\xda\x08\xbc\x23\x48\xc3\x0e\x1b\x6e\x09\xf4\xb9\xa4\x5e\xc0\x1a\xa5\xe9\xfa\x96\x95\x2e\x09\x3b\x96\x26\xb6\x19\x8a\xe4\xd9\x18\x1f\x87\x12\x66\x2d\x8a\x35\x14\x4a\xd3\xef\x61\x36\xc7\xe7\xa0\x24\x02\x0e\x7f\x8d\x48\xff\x6b\x51\xec\x76\xbb\x5c\x45\xb0\xb9\xb1\x75\xd1\xa6\x83\xae\xb8\x9e\x5f\x5e\x2d\x96\x57\x93\x57\xf9\x34\x5e\xb9\xd7\x2d\x39\x07\x4b\x9f\x3c\x5b\xaa\xb0\xde\x43\xf5\x7d\xcb\xa5\x5a\xb7\x84\x56\xed\x60\x2c\x54\x6d\x89\x2a\x88\x09\x78\x77\x96\x85\x75\x7d\x06\x67\x36\xb2\x53\x96\xb2\x31\x2a\x76\x62\x79\xed\xe5\x19\x59\x07\x74\xec\x9e\x1d\x30\x1a\x4a\x63\x34\x5b\x62\xbe\x1c\xe1\xb7\xd9\x72\xbe\x3c\xcb\xc6\xf8\x30\x5f\xbd\xbd\xb9\x5f\xe1\xc3\xec\xee\x6e\xb6\x58\xcd\xaf\x96\xb8\xb9\xc3\xe5\xcd\xe2\xcd\x7c\x35\xbf\x59\x2c\x71\xf3\x3b\x66\x8b\x8f\x78\x37\x5f\xbc\x39\x03\xb1\x34\x64\x41\x9f\x7b\x1b\xf0\x1b\x0b\x0e\x34\x52\x15\x38\x5b\x12\x3d\x03\xb0\x31\x09\x90\xeb\xa9\xe4\x0d\x97\x68\x95\xae\xbd\xaa\x09\xb5\xd9\x92\xd5\xac\x6b\xf4\x64\x3b\x76\x41\x4c\x07\xa5\xab\x6c\x8c\x96\x3b\x16\x25\x71\xe5\x9b\xa1\xf2\xe0\xa5\x55\x90\xd3\x95\x96\x7b\x41\x65\xc8\x45\x9d\xad\x0f\xf3\xed\x51\x29\xea\x8c\x3e\x03\x0b\x8c\x6e\xf7\x28\x8d\xde\x70\xed\x2d\x39\xf0\xf2\x72\x39\x87\x28\x5b\x93\xe0\xe4\xc2\x91\xdd\x92\x3d\xcd\xc6\x81\xde\xc7\x60\xc5\x36\xc7\x5c\x02\x6f\xbd\x71\x8e\x83\x12\x62\x62\x61\x39\xea\xd8\xf9\x56\xb8\x0f\x7b\xdc\x91\x8b\xb4\xc2\xb1\xae\xdb\xa0\x88\x36\x15\x9d\x81\x54\xd9\xc4\x7b\x3b\x6e\x5b\x94\x96\x94\x10\x58\x1c\xcc\x4e\x63\x7e\xbb\x08\x93\xe2\xfa\x7e\x11\xa7\x39\x8a\x41\xe7\x9d\xa0\xb7\x66\xcb\x15\xc1\x6b\xfe\xe4\x09\x5a\x75\x94\x67\xf3\xdb\xc5\xc5\x8b\xf3\x70\x3c\xc1\x2f\x5b\x86\xdb\xeb\xb2\xb1\x46\xf3\x9f\x01\xc6\x96\x2c\xaa\xb5\x77\x67\x68\xcc\x8e\xc2\x2f\x3e\x62\x67\x67\xec\x23\x58\x67\xe3\xc0\x47\x70\x34\x59\x97\xe3\x3e\x88\xd4\x9a\x32\x6c\x39\x21\x55\x65\xd7\x37\x97\xef\x2e\x0a\x67\xb7\x05\xbb\xd2\x71\xf1\xd4\x2d\x0f\xc7\xb2\x6c\xe3\x75\x19\xa4\x81\x13\x65\xe5\xe4\x34\xfb\x2b\x0b\xee\x3f\x86\xa5\x83\x67\x03\x92\x48\xe6\x21\x86\x81\x0d\xa3\xa3\x94\x8d\x71\x12\x6c\x9c\x6a\x40\xa1\xb7\xbc\x0d\x0c\x19\x4d\xb1\x5a\xf7\x58\xb1\x45\x61\xbd\x2e\x42\x9d\xb8\x16\xfe\x99\x24\x6d\x81\xc9\xc4\xed\x9d\x50\x97\x0d\xcd\x2f\x13\xc3\x9a\x76\x91\xdd\x93\x24\xf4\xad\x57\x2d\x6f\x98\x2a\x2c\x54\x47\xa7\xf1\x6c\x9a\xf6\x45\x18\xf3\x08\x72\x1a\xf6\x20\xd4\xe8\xc5\xfc\x76\x31\x1a\x4a\xdf\x79\x1d\x88\x64\x8d\x8a\x3a\x83\x2e\xea\xcb\x39\xe5\xd0\x06\xca\x4b\x43\x5a\xb8\x8c\x76\xfd\xcf\x06\x45\xaa\x5c\x48\x5f\x9f\xc3\x91\x40\xc9\x90\xce\xaf\x2a\x5d\x4c\x63\xb7\x87\xd0\xed\x21\x04\x9f\x1e\x7a\x6b\x84\x4a\xb9\x98\xa2\x26\x4d\x56\x09\x3d\x04\xaf\x3d\xa8\xb2\x75\x17\xe7\x28\xc3\x93\xf3\x50\xed\xb5\xea\xb8\x1c\x16\xbf\x62\x67\xf0\xd3\x68\x1d\x11\x6e\x4d\xeb\x3b\x1a\xe1\x24\xce\xb2\x69\x95\xc4\x07\xf2\xf4\x20\xd2\xcb\xa0\xd2\xcb\x7c\x28\xf1\x56\x6d\x43\x58\x13\x11\x61\xfb\xc9\x45\x31\x5f\xde\x91\x1b\x12\x84\x8d\x35\x1d\x9c\xe9\x08\x96\x94\x1b\x58\x19\x47\xc7\xb3\xfc\x3f\xb9\x51\x0d\xd1\x4a\x09\xfc\x92\xa8\xeb\xfb\x85\x4b\x05\x2a\xde\x6c\xc8\x92\x96\xe1\xfa\x91\x6b\x87\x95\x2f\x26\x4d\xb1\x59\x13\xd6\xac\xab\x49\x67\xbc\x96\x54\xe4\x60\xb6\x74\xa5\xec\x51\xa4\xd9\x8f\xfc\x3d\x68\x3d\xd4\x7c\xaf\x1e\xd3\x0b\x76\xcc\x11\xd4\x56\x71\x9b\x20\x37\xd6\xf8\xba\x81\xf1\x36\xc5\xd8\x05\xc8\x98\xfe\x48\xf9\xb5\x2a\x1f\x9d\x18\x4b\xae\x08\x04\xb3\x39\xd8\x2c\xf6\x98\x24\x00\xdf\x81\xf4\x33\x66\x2a\x5a\xaf\xdd\xa1\xee\xb7\x1d\x8b\xe3\x56\x69\x56\x2a\x1b\x83\x51\xa2\x6f\x78\x10\x63\x1a\xa9\x1a\x65\x7f\x3f\x8b\xb9\xe9\x9f\x52\x9e\x2e\x85\xa5\x3e\xba\xe1\xe8\xf6\x53\x5c\xa8\x33\x5b\x0a\xe4\xfc\xfc\x00\x05\x2a\x6a\x49\xe8\xc7\x7c\xa6\xae\xc3\xc9\xe7\x51\x4d\xbd\x93\x76\x15\x6d\xb9\x24\x74\x2a\x62\xfd\x39\x81\x86\xe2\xcf\x58\x0b\x05\xe2\x47\x8d\xed\x30\xd9\xfc\x8b\x5e\xdf\x65\xd5\xf4\x7d\x60\x35\xee\x7f\x66\xc1\x34\x10\x9c\x89\x55\x7d\xdc\xc4\xea\xea\xee\x7d\x16\xc9\xcf\xb2\x5d\x13\x3e\x52\xc4\x7a\x7a\x8d\xca\xc4\x3b\xae\x25\xea\x71\x9e\x55\xe1\x75\xfc\x27\x00\x00\xff\xff\x66\xfb\xb9\xf5\x5d\x09\x00\x00") - -func testImagesVolumeIscsiRun_iscsi_targetShBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeIscsiRun_iscsi_targetSh, - "test/images/volume/iscsi/run_iscsi_target.sh", - ) -} - -func testImagesVolumeIscsiRun_iscsi_targetSh() (*asset, error) { - bytes, err := testImagesVolumeIscsiRun_iscsi_targetShBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/iscsi/run_iscsi_target.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeNfsBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x4d\x4e\xcd\x2b\xc9\x2f\xb6\x32\xe7\x82\x0a\x16\xe5\x9a\x99\xd8\x82\xc9\x32\x0b\x7d\x34\xc9\x82\x82\x64\x33\x93\x9c\x54\x5b\x28\x8d\x90\x06\x04\x00\x00\xff\xff\x95\x2b\xa6\xc1\x51\x00\x00\x00") - -func testImagesVolumeNfsBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeNfsBaseimage, - "test/images/volume/nfs/BASEIMAGE", - ) -} - -func testImagesVolumeNfsBaseimage() (*asset, error) { - bytes, err := testImagesVolumeNfsBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/nfs/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeNfsDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x91\x5f\x8f\xdb\x36\x10\xc4\xdf\xf9\x29\x06\x52\x11\xb4\x80\x2d\xb9\x87\x43\xd0\x3f\x4f\x8a\xad\x24\x42\xce\xd2\x55\xb2\x93\x1e\x8a\xe0\x40\x4b\x6b\x8b\x08\x45\x32\x24\x55\x9f\xbf\x7d\x41\xd9\x89\x7b\x39\xbd\xed\xce\x68\xf6\xb7\xcb\x18\x4b\x6d\x4e\x56\x1c\x7a\x8f\x9b\xc5\xaf\xaf\xb1\xe9\x09\x1f\xc6\x1d\x59\x45\x9e\x1c\xb2\xd1\xf7\xda\xba\x84\xc5\x2c\xc6\x9d\x68\x49\x39\xea\x30\xaa\x8e\x2c\x7c\x4f\xc8\x0c\x6f\x7b\xfa\xa6\xcc\xf0\x91\xac\x13\x5a\xe1\x26\x59\xe0\xe7\x60\x88\x2e\x52\xf4\xcb\x9f\x2c\xc6\x49\x8f\x18\xf8\x09\x4a\x7b\x8c\x8e\xe0\x7b\xe1\xb0\x17\x92\x40\x4f\x2d\x19\x0f\xa1\xd0\xea\xc1\x48\xc1\x55\x4b\x38\x0a\xdf\x4f\x63\x2e\x21\x09\x8b\xf1\x70\x89\xd0\x3b\xcf\x85\x02\x47\xab\xcd\x09\x7a\xff\x7f\x1f\xb8\x9f\x80\xc3\xd7\x7b\x6f\xfe\x48\xd3\xe3\xf1\x98\xf0\x09\x36\xd1\xf6\x90\xca\xb3\xd1\xa5\x77\xc5\x32\x2f\x9b\x7c\x7e\x93\x2c\xa6\x5f\xb6\x4a\x92\x73\xb0\xf4\x75\x14\x96\x3a\xec\x4e\xe0\xc6\x48\xd1\xf2\x9d\x24\x48\x7e\x84\xb6\xe0\x07\x4b\xd4\xc1\xeb\xc0\x7b\xb4\xc2\x0b\x75\x98\xc1\xe9\xbd\x3f\x72\x4b\x2c\x46\x27\x9c\xb7\x62\x37\xfa\x67\xc7\xfa\x46\x27\xdc\x33\x83\x56\xe0\x0a\x51\xd6\xa0\x68\x22\xbc\xc9\x9a\xa2\x99\xb1\x18\x9f\x8a\xcd\xfb\x6a\xbb\xc1\xa7\xac\xae\xb3\x72\x53\xe4\x0d\xaa\x1a\xcb\xaa\x5c\x15\x9b\xa2\x2a\x1b\x54\x6f\x91\x95\x0f\xf8\x50\x94\xab\x19\x48\xf8\x9e\x2c\xe8\xc9\xd8\xc0\xaf\x2d\x44\x38\x23\x75\xe1\x66\x0d\xd1\x33\x80\xbd\x3e\x03\x39\x43\xad\xd8\x8b\x16\x92\xab\xc3\xc8\x0f\x84\x83\xfe\x97\xac\x12\xea\x00\x43\x76\x10\x2e\x3c\xa6\x03\x57\x1d\x8b\x21\xc5\x20\x3c\xf7\x53\xe7\xc5\x52\x09\x63\x59\xfd\x2e\xd0\xe7\xc5\x3a\x7b\x97\xb3\xb7\x75\xb5\xc6\x4f\xd7\x9a\x2d\xeb\xaa\x69\x1e\xdf\x6c\x8b\xbb\xd5\xe3\xb2\xba\x7f\xc0\x57\x1a\xc6\xf9\x5f\xf9\x7a\x9b\xd5\xcb\xf7\x73\x17\xa2\x5b\xa4\xa3\xb3\xe9\x4e\xa8\x94\xd5\xdb\x12\xa7\x71\xc0\xfc\x04\xa1\x9c\xe7\x52\x5e\x45\xe3\xa0\xf6\x6e\x3e\x7a\x21\x1d\x5e\xbd\x9a\x7c\xad\x24\xae\xc0\xa5\x9c\xfe\x1c\xbe\x74\xc2\x62\x6e\x90\xd2\x93\xd1\xd6\x3b\x96\xad\x56\xb0\xa3\x7a\x54\x7b\x97\xb8\xfe\x9c\x25\x75\xcb\xe5\x79\x5c\x90\x85\xea\xe8\x29\xe9\xfd\x20\x91\xfa\xc1\xa4\xd7\x7a\xca\x6c\xfb\x41\x77\x78\x7d\x7b\xfb\x42\x65\x31\x06\x6e\xbf\x7c\x1f\x06\xee\xc0\x31\xe8\x51\x79\x18\x2d\x94\x67\x1f\xab\xbb\xed\x3a\xbf\xd2\xc4\xe1\xa9\xb4\xa3\xb3\xa9\xc3\xcd\x62\x71\xfb\x5b\xea\x5b\x13\x8e\x1d\x96\x0b\xad\xdb\xdf\x43\x87\xe5\x7f\xdf\x57\x4d\xfe\xbd\xbe\x7a\x19\xcb\xcb\x4d\xfd\x70\x5f\x15\xe5\x06\xff\x44\x3f\xac\x74\x5d\x36\xfa\xcc\x96\xeb\x55\x70\x5c\xc6\x47\x33\x44\x69\xf4\x99\xfd\x17\x00\x00\xff\xff\xe0\xaf\x66\x45\xff\x03\x00\x00") - -func testImagesVolumeNfsDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeNfsDockerfile, - "test/images/volume/nfs/Dockerfile", - ) -} - -func testImagesVolumeNfsDockerfile() (*asset, error) { - bytes, err := testImagesVolumeNfsDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/nfs/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeNfsVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe4\x02\x04\x00\x00\xff\xff\x9e\xc5\x88\x7d\x04\x00\x00\x00") - -func testImagesVolumeNfsVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeNfsVersion, - "test/images/volume/nfs/VERSION", - ) -} - -func testImagesVolumeNfsVersion() (*asset, error) { - bytes, err := testImagesVolumeNfsVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/nfs/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeNfsIndexHtml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xf2\x48\xcd\xc9\xc9\x57\x48\x2b\xca\xcf\x55\xf0\x73\x0b\x56\xe4\x02\x04\x00\x00\xff\xff\x3a\x50\xf2\x93\x10\x00\x00\x00") - -func testImagesVolumeNfsIndexHtmlBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeNfsIndexHtml, - "test/images/volume/nfs/index.html", - ) -} - -func testImagesVolumeNfsIndexHtml() (*asset, error) { - bytes, err := testImagesVolumeNfsIndexHtmlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/nfs/index.html", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeNfsRun_nfsSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x55\x51\x6f\xdb\x38\x13\x7c\xd7\xaf\x98\x4f\xf6\x43\x5c\xd8\x96\x92\xb6\x5f\x81\x04\xed\x9d\xaf\x4d\x72\x46\x7b\x76\x11\xb9\x2d\x8a\x43\x51\xd0\xe4\x4a\x22\x2a\x93\x2c\x49\xd9\x31\x8a\xfe\xf7\x03\x29\xc7\xb1\x93\x96\x0f\x89\xc4\x1d\x2e\x67\x67\x56\xeb\xde\xff\xb2\xd6\xd9\x6c\x29\x55\x46\x6a\x8d\x25\x73\x75\x92\xf4\xf0\x5a\x9b\xad\x95\x55\xed\x71\x96\x9f\x3e\xc7\xa2\x26\xbc\x6d\x97\x64\x15\x79\x72\x98\xb4\xbe\xd6\xd6\x8d\x93\x5e\xd2\xc3\x3b\xc9\x49\x39\x12\x68\x95\x20\x0b\x5f\x13\x26\x86\xf1\x9a\xee\x22\x43\x7c\x24\xeb\xa4\x56\x38\x1b\xe7\x38\x09\x80\x74\x17\x4a\x07\x17\x49\x0f\x5b\xdd\x62\xc5\xb6\x50\xda\xa3\x75\x04\x5f\x4b\x87\x52\x36\x04\xba\xe5\x64\x3c\xa4\x02\xd7\x2b\xd3\x48\xa6\x38\x61\x23\x7d\x1d\xaf\xd9\x25\x19\x27\x3d\x7c\xde\xa5\xd0\x4b\xcf\xa4\x02\x03\xd7\x66\x0b\x5d\x1e\xe2\xc0\x7c\x24\x1c\x56\xed\xbd\x39\xcf\xb2\xcd\x66\x33\x66\x91\xec\x58\xdb\x2a\x6b\x3a\xa0\xcb\xde\x4d\x5f\x5f\xce\x8a\xcb\xd1\xd9\x38\x8f\x47\x3e\xa8\x86\x9c\x83\xa5\xef\xad\xb4\x24\xb0\xdc\x82\x19\xd3\x48\xce\x96\x0d\xa1\x61\x1b\x68\x0b\x56\x59\x22\x01\xaf\x03\xdf\x8d\x95\x5e\xaa\x6a\x08\xa7\x4b\xbf\x61\x96\x92\x1e\x84\x74\xde\xca\x65\xeb\x8f\xc4\xba\x63\x27\xdd\x11\x40\x2b\x30\x85\x74\x52\x60\x5a\xa4\xf8\x6b\x52\x4c\x8b\x61\xd2\xc3\xa7\xe9\xe2\xef\xf9\x87\x05\x3e\x4d\x6e\x6e\x26\xb3\xc5\xf4\xb2\xc0\xfc\x06\xaf\xe7\xb3\x37\xd3\xc5\x74\x3e\x2b\x30\xbf\xc2\x64\xf6\x19\x6f\xa7\xb3\x37\x43\x90\xf4\x35\x59\xd0\xad\xb1\x81\xbf\xb6\x90\x41\x46\x12\x41\xb3\x82\xe8\x88\x40\xa9\x3b\x42\xce\x10\x97\xa5\xe4\x68\x98\xaa\x5a\x56\x11\x2a\xbd\x26\xab\xa4\xaa\x60\xc8\xae\xa4\x0b\x66\x3a\x30\x25\x92\x1e\x1a\xb9\x92\x9e\xf9\xb8\xf3\xa8\xa8\x71\x92\x94\xad\xe2\x21\x0a\xe7\x99\xf5\x27\x83\xe4\x47\x92\x04\x07\x5a\xe5\xc8\xa3\x92\x22\xbe\xf5\xc0\x78\xb4\x3a\x1d\x5d\x87\xcd\x14\xda\x84\x53\x31\xb8\xa9\x43\x2f\x54\xe4\xb5\xf1\x0e\xe9\xf5\x79\x8c\x5e\x40\xe8\x18\x0e\x8b\x33\x47\xe8\xff\xd0\xc6\xff\x84\x54\xfb\xed\xb0\xae\x07\x21\xe1\xcb\xfe\x8f\xf9\xfb\xc5\xe4\xe6\xfa\xe7\xc5\xc5\x51\xf8\xc9\xe0\xfc\x60\x87\x1c\xe3\xf1\x45\x68\x45\xf1\xc1\xd5\xb2\xf4\xe8\x9f\x9c\xcc\xdf\x2f\xa6\xb3\x37\x18\xe1\x74\x30\x48\x76\xa4\x8d\x25\xc3\x2c\x21\x23\xcf\x33\xba\x35\xda\x7a\x17\x43\x41\x4b\x19\xfa\x20\xed\xff\x99\x1e\x31\xed\xa1\x74\x52\xbc\xcc\xcf\xa1\x88\x04\x89\x08\x9d\x5d\x15\xeb\x67\xf7\x24\x78\xad\x91\xf6\x25\x9e\x9c\xd8\xcd\xb0\x83\x0f\xa5\x72\xc4\x5b\x4b\x43\xa5\xbf\x5a\xad\xfd\x57\xf7\xbd\x65\xae\x1e\xa4\x78\xf5\xea\xf1\xfd\x61\xc9\x12\xff\x62\xb4\x0e\xd5\xe3\x0b\x2e\x82\x2f\xc7\xca\xf0\x7a\xa5\x05\xf2\x17\x79\xb8\x2c\x7d\x10\xaa\xac\x41\xda\x8f\x56\x1c\x45\x4b\x79\x50\xca\x4a\xaf\x09\x52\x09\xba\x1d\xd7\x7e\xd5\x84\xde\xaf\xc9\xd2\x1e\x11\xe7\x0a\x37\xc8\xfc\xca\x64\x07\xb8\xb4\x2f\xb3\xfb\x94\x1d\x8f\xff\x3f\x7b\x16\xf7\xef\x61\xe9\x03\x45\x0a\xb2\xeb\xd0\x84\x77\x74\xa2\x47\x3b\x27\x62\x77\xc1\x1a\xbe\x94\x4a\x84\xd2\xa5\x0f\x5f\x54\x18\x29\x31\x44\x02\x5b\xf2\x11\x1c\x07\x9e\x0b\xcc\xac\xe1\x52\x95\x1a\xa7\x67\x2f\xc6\xf9\x38\x1f\x9f\xe2\x15\x32\x41\xeb\x4c\xb5\x4d\x73\x01\xf7\xb2\xff\x47\xb2\x57\xb2\xef\x30\x52\x84\x1c\x5f\x8e\xa5\xdc\x71\x0b\x97\x04\x72\x3b\x0a\x7b\xee\x47\xb7\x45\x72\xa3\x4d\xb2\x13\x32\xfe\x5f\xe9\x56\x79\x8c\x3c\x54\xe9\x44\xf7\x27\x33\x56\xf3\xac\x74\x59\x78\xbb\xab\x70\xf4\x11\x4f\xcf\x41\x2a\x8e\x9c\xd0\x30\x4f\x1f\x57\x33\x8e\xc9\x04\x46\x33\x9c\xc5\x03\xc9\x03\x4c\xd7\x23\xa5\xc3\xc8\xde\xa5\xbd\xc6\x69\x1e\x8c\xb3\x24\x5a\x4e\xa8\x2c\xe3\x04\x2f\x57\x14\x36\x4f\x73\x38\xe2\x5a\x09\xd7\x0d\xee\x46\x6f\xc8\x79\xb0\x26\x3c\x88\xc1\x2f\x18\xc4\x02\xba\xa4\xf7\x2c\x1e\xc3\x9c\x67\x81\xe7\x48\xe9\x91\xd2\x5e\x96\xdb\xe4\x5e\xcb\xd9\x55\x71\x67\x5a\x9a\xfc\x3c\x1a\x21\xda\xc4\x09\x72\xa8\xbb\x36\x26\xe8\x3e\xbb\x2a\xd2\x87\xd5\xee\xf9\xe4\xbf\x95\x81\xb5\xbf\x0d\x95\x5d\xba\x6f\xb2\x09\x0d\x7b\x02\x23\x85\x2e\x71\xa0\xf2\xa0\x33\xb9\xed\x1c\x3c\x36\x6d\xcf\xf0\x17\x1f\x27\xdd\x4a\x8f\x3c\x54\x96\x78\xcb\x4c\x2c\x0b\x8b\xcb\x9b\x7f\x92\xa4\x6b\xe3\x30\x34\xc2\xaf\xf0\x87\xaa\xd9\xa2\x66\xfc\x5b\xb0\x42\xe8\xd0\xcd\x75\xa8\x95\x29\x81\x0d\x93\x3e\xce\x8e\x62\x7a\x1d\xcf\x76\x53\xd2\xdb\x96\xf6\xf3\xc6\x35\x44\x06\xcf\x93\xf8\xa1\xfc\x17\x00\x00\xff\xff\xef\x3a\x6f\x36\xea\x07\x00\x00") - -func testImagesVolumeNfsRun_nfsShBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeNfsRun_nfsSh, - "test/images/volume/nfs/run_nfs.sh", - ) -} - -func testImagesVolumeNfsRun_nfsSh() (*asset, error) { - bytes, err := testImagesVolumeNfsRun_nfsShBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/nfs/run_nfs.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeRbdBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x4d\x4b\x4d\xc9\x2f\x4a\xb4\x32\x32\xe3\x82\x8a\x16\xe5\x9a\x99\xd8\x82\xc9\x32\x0b\x7d\x74\xd9\x82\x82\x64\x33\x93\x9c\x54\x5b\x28\x8d\x24\x0f\x08\x00\x00\xff\xff\xdf\x20\xfc\xd2\x54\x00\x00\x00") - -func testImagesVolumeRbdBaseimageBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeRbdBaseimage, - "test/images/volume/rbd/BASEIMAGE", - ) -} - -func testImagesVolumeRbdBaseimage() (*asset, error) { - bytes, err := testImagesVolumeRbdBaseimageBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/rbd/BASEIMAGE", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeRbdDockerfile = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x92\x5f\x6f\xdb\x36\x14\xc5\xdf\xf9\x29\x0e\xa2\xa1\xd8\x00\x5b\xca\xf2\xd0\xfd\x7b\x99\x62\xab\x89\xd0\xc4\xca\x24\x7b\x5d\x9e\x0a\x8a\xba\x96\x88\x48\x24\x4b\x52\x75\xd5\x4f\x3f\x50\x96\xb1\x66\xf5\x83\x89\x7b\xee\x21\xef\x8f\x87\x8a\xb0\xd1\x66\xb2\xb2\xed\x3c\x6e\xae\x7f\x7e\x8b\x7d\x47\x78\x3f\xd6\x64\x15\x79\x72\x48\x47\xdf\x69\xeb\x62\x16\xb1\x08\x0f\x52\x90\x72\xd4\x60\x54\x0d\x59\xf8\x8e\x90\x1a\x2e\x3a\xba\x74\x56\xf8\x9b\xac\x93\x5a\xe1\x26\xbe\xc6\x8f\xc1\x70\xb5\xb4\xae\x7e\xfa\x83\x45\x98\xf4\x88\x81\x4f\x50\xda\x63\x74\x04\xdf\x49\x87\xa3\xec\x09\xf4\x45\x90\xf1\x90\x0a\x42\x0f\xa6\x97\x5c\x09\xc2\x49\xfa\x6e\x1e\xb3\x1c\x12\xb3\x08\xcf\xcb\x11\xba\xf6\x5c\x2a\x70\x08\x6d\x26\xe8\xe3\xb7\x3e\x70\x3f\x03\x87\x5f\xe7\xbd\xf9\x3d\x49\x4e\xa7\x53\xcc\x67\xd8\x58\xdb\x36\xe9\xcf\x46\x97\x3c\xe4\x9b\x6c\x57\x65\xeb\x9b\xf8\x7a\xde\x72\x50\x3d\x39\x07\x4b\x9f\x46\x69\xa9\x41\x3d\x81\x1b\xd3\x4b\xc1\xeb\x9e\xd0\xf3\x13\xb4\x05\x6f\x2d\x51\x03\xaf\x03\xef\xc9\x4a\x2f\x55\xbb\x82\xd3\x47\x7f\xe2\x96\x58\x84\x46\x3a\x6f\x65\x3d\xfa\x57\x61\x5d\xe8\xa4\x7b\x65\xd0\x0a\x5c\xe1\x2a\xad\x90\x57\x57\xb8\x4d\xab\xbc\x5a\xb1\x08\x1f\xf2\xfd\x7d\x71\xd8\xe3\x43\x5a\x96\xe9\x6e\x9f\x67\x15\x8a\x12\x9b\x62\xb7\xcd\xf7\x79\xb1\xab\x50\xbc\x43\xba\x7b\xc6\xfb\x7c\xb7\x5d\x81\xa4\xef\xc8\x82\xbe\x18\x1b\xf8\xb5\x85\x0c\x31\x52\x13\x32\xab\x88\x5e\x01\x1c\xf5\x19\xc8\x19\x12\xf2\x28\x05\x7a\xae\xda\x91\xb7\x84\x56\x7f\x26\xab\xa4\x6a\x61\xc8\x0e\xd2\x85\xc7\x74\xe0\xaa\x61\x11\x7a\x39\x48\xcf\xfd\xac\x7c\x77\xa9\x98\xb1\x08\x9b\xec\xe9\x1e\xbc\xef\x43\x2c\x5a\x85\x20\x6e\xb9\x3b\xdf\x50\x0e\xe1\xf8\x7a\x42\x29\x05\xb7\x8d\x46\xa9\x45\xc7\x57\xb0\xe7\xf2\x4f\xc1\x3d\xef\x27\xe7\x63\x45\x3e\x56\x5f\x19\x4b\xcb\xbb\x90\x45\x96\x3f\xa6\x77\x19\x7b\x57\x16\x8f\xf8\xe1\xbf\x9a\x6d\xca\xa2\xaa\x3e\xde\x1e\xf2\x87\xed\xc7\x4d\xf1\xf4\x8c\x4f\x34\x8c\xeb\xbf\xb2\xc7\x43\x5a\x6e\xee\xd7\x2e\x80\x0a\x24\xa3\xb3\x49\x2d\x55\xc2\x16\x16\x3c\x71\xf1\xc2\x5b\x72\xac\x3c\xec\x30\x8d\x03\xa4\x72\x3e\x20\xaf\x27\x9c\x5a\xf2\x70\xde\x72\x41\x30\x6e\x90\x4e\xc0\x58\x2d\x8c\x5b\xab\x16\x82\x4c\x37\xff\xad\x8f\xe1\xcb\x7d\xf3\x66\xde\x2d\x7a\xe2\x2a\x5c\x39\x0c\xb8\x23\x0f\xa3\xad\x77\xe1\x19\xb4\xa3\x86\x65\xff\x3c\x15\x55\x86\xb7\xbf\xfc\xfa\x1b\x63\xe9\x76\x8b\x38\xa9\xb5\xf6\x61\x86\x89\x5d\x87\x57\xd5\x62\x18\xb4\x9a\x5b\xe7\xf5\x22\x36\xee\x2c\xce\xeb\x22\x6a\xd7\xcc\xe2\x79\x5d\xc4\x80\x18\x0b\xad\x8e\x73\xeb\xdb\x6a\x31\xbc\xd0\x64\xc3\x03\x27\x9f\xb9\x4d\x7a\x59\xcf\x9e\x30\xed\xd2\xb9\x80\xf6\x5a\xbc\xc4\x9e\xdb\xb8\xfd\x8a\x84\xb1\xcd\xe3\xf6\x7f\xbc\xff\x06\x00\x00\xff\xff\x67\xf6\x5a\x09\x3d\x04\x00\x00") - -func testImagesVolumeRbdDockerfileBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeRbdDockerfile, - "test/images/volume/rbd/Dockerfile", - ) -} - -func testImagesVolumeRbdDockerfile() (*asset, error) { - bytes, err := testImagesVolumeRbdDockerfileBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/rbd/Dockerfile", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeRbdVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xd0\x33\xe2\x02\x04\x00\x00\xff\xff\xea\xca\x48\xcf\x06\x00\x00\x00") - -func testImagesVolumeRbdVersionBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeRbdVersion, - "test/images/volume/rbd/VERSION", - ) -} - -func testImagesVolumeRbdVersion() (*asset, error) { - bytes, err := testImagesVolumeRbdVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/rbd/VERSION", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeRbdBlockTarGz = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xdd\x79\x54\xd3\x57\xda\x07\xf0\x20\xd6\x68\x6d\xc5\x2e\x0e\x75\x5c\x42\x5b\x15\x2d\xa3\xb6\x15\x0c\x6b\xa2\x32\x55\xc1\x91\xb4\x58\x57\x96\x48\xad\x52\x16\x09\x0a\xb2\x84\x25\xa8\xed\xd8\xd1\xb1\x52\x22\xa2\x22\xc4\x56\x30\x65\x50\xa8\xa2\x2c\x09\x24\xa8\x43\x11\x65\xd1\x04\x45\x0c\x10\xea\x06\x91\x4d\x20\x10\x48\x48\xf2\x9e\xe9\x79\xbd\xbf\xf7\x3d\xe7\x9d\x73\xe6\x3d\x67\x66\xd2\x69\xbf\x9f\x3f\x9f\x5f\x9e\xe7\x3e\xf7\xe6\xde\xfb\xfb\x87\x13\x18\x87\x26\xd2\xe4\x43\x9a\xcd\x34\xeb\x6e\x55\xc2\x98\x4e\xe7\x5f\xdd\xdf\xd7\xa7\x93\xee\x38\xe1\x35\x69\xc1\x05\x5d\xda\xab\x4e\x4d\xe1\x4b\x37\x4c\x7a\x73\xc1\x82\x15\x2f\x26\xf4\x5d\x2f\x8d\x09\x08\x6f\x0a\x7d\x7d\xe5\x5b\xb3\x72\xa3\x77\x77\x7a\x1c\xfd\x78\x4a\x56\x74\xe4\x49\xcf\xc7\x89\x07\x3b\xc7\x02\x7f\x7f\x34\xda\x2e\xb8\x6b\xf4\xb7\x5d\x4b\x9b\x73\xaf\x7d\xf2\x38\x49\xde\x37\x5c\x5a\xa0\xee\xd2\x8f\xc9\xa4\xc9\x72\x55\x72\x83\xba\x40\x50\xf0\x9a\xae\xdb\x4d\xc3\xca\xe4\x9c\x6f\xdd\x55\x7b\x7b\x15\x77\x24\xca\xbf\xbb\x63\xdb\x11\x96\x7e\x1b\x8f\x11\xdf\xf8\x75\x75\xdb\xb3\xef\xb6\xf1\xe2\x6a\x2f\x54\x47\xc4\x30\xca\x0c\xc7\xdf\xe6\x5d\x0a\x91\xb2\xab\x18\x4d\x5f\xd4\xbb\x46\x99\x27\x05\x5f\x2a\x76\xd9\xa6\x96\x19\x45\xdd\x46\x53\x51\x07\xcd\xac\x6e\x61\x57\x6c\x0f\x8b\x6a\xbc\xc3\xcc\xb4\xaf\x08\x0d\x1b\xec\x2d\x62\x66\x9e\x3f\xc4\xe6\x31\x7a\x3e\xa2\xf3\x96\x36\x08\x1a\x54\x7d\x5b\x76\xee\x5c\x54\xda\xfe\x55\xdf\x7d\xc9\x33\xe3\x53\x59\x67\xc0\x62\x7e\xeb\x34\x85\x8b\xe6\x87\x10\xb7\x9e\x1c\x7a\x40\xff\xf9\x58\xa9\x3a\x93\xd7\x24\x1a\xbc\x97\x51\xae\xd7\xd2\xfd\x1f\xee\x34\xf7\x5f\x2b\xbd\x62\x52\xf6\xf9\xcd\xda\xf5\xe8\xfc\x11\x97\xa1\x79\x25\x92\xfe\x9d\x7d\xb1\xf7\xcd\x8f\x8a\x9a\xf5\x9f\xda\x70\xc7\xce\x31\xfd\x87\x1e\x37\xc8\xaa\xd2\xb3\xf9\x8f\xc5\xfe\xa6\x20\xa6\xa0\x36\xe0\x69\x96\x8d\xf1\x5e\xd1\x21\xc1\x6c\x73\xe6\x14\xad\xd5\xac\x81\xbc\x91\xba\x76\x79\x88\x3d\xf7\xb4\x54\xb1\x5c\x63\xdd\x94\x78\xef\x8a\x2a\x33\x80\x61\x1e\x7b\xe6\xce\xa1\xe7\x7a\x16\xac\x57\xbf\xc0\x32\x8d\xde\xad\xbb\xd8\x7f\x49\x38\xc5\xa3\xfb\x35\x51\xdf\xa9\x54\xae\x17\x3d\x2b\x32\xa5\x49\x24\x6c\x12\x67\x45\x4d\x79\xa6\x8f\x1a\x74\xd0\x9c\x8e\xb2\x79\xa6\x1f\x1c\xd0\x5f\x8a\x6a\xb3\x0a\x14\x24\x27\xcf\x9d\x15\x6d\xb2\x0a\x14\x09\x8a\x95\x3e\x92\xbf\x36\x31\x64\xe9\x0d\x02\x07\x91\xf9\xae\x15\xcb\x5c\xce\xea\x69\xe9\x4e\xe3\xca\xef\x0c\xba\xf7\x68\xad\xdd\xd9\xf6\x0d\xca\x7a\x17\x7a\x1c\x6b\xc0\xbd\xe7\xcf\xd6\xee\xec\xc5\x0d\xca\xfa\x78\x7a\x1c\x6b\xd0\xbd\x27\xc7\xa1\x3b\xf1\x41\xd4\xdd\x62\xa5\x2f\xe7\xed\x3a\x09\x5b\x63\x5e\xb1\xb7\xc1\x4e\xba\xe5\x69\x48\xce\xe6\x12\xe3\xb5\x77\xa6\x84\xe6\x89\xbf\xde\xd1\x3a\x6c\x93\x5f\xea\xbf\xc6\xe3\xb0\x63\x57\xb1\x60\x53\xd5\x95\x85\x43\x8e\x8a\x73\x2a\x53\xd0\x34\xd1\x9d\x9f\xd2\x7a\x18\x1b\x76\x8d\x1e\xe3\xff\x36\xe4\xee\x4e\xf3\xf7\x07\x3d\x49\x76\xc1\x2d\xf2\xf8\x33\x92\x3d\xcd\xef\xf9\x63\x96\x34\x37\x7b\xe5\xc9\x3d\x2a\xf6\xb9\x07\xde\x54\x49\xe5\xf3\x9c\xfe\x32\x12\xdc\x18\xf1\xbc\x8d\x91\x72\x32\x4e\xfe\xa5\x46\xe5\xea\xa2\x08\xc3\x81\xf5\xfe\x97\x49\xa1\x50\xaa\x90\x9a\x0c\x3e\x44\x72\x16\x7f\x46\x0a\x5d\x25\xc1\x30\x52\x28\xf1\x23\xd2\xa6\x13\x69\xb3\x80\x9a\xe4\xa6\xe7\x8f\x3f\x08\x7b\x5e\xc7\xb9\x9c\x8c\x7d\x88\x4a\x69\x25\x93\x98\x4b\x1a\x6a\x0a\x21\x63\x2b\xa8\x86\x48\xa1\xd2\x08\x32\x76\x46\x09\x99\x59\x21\xa9\xae\x27\x85\xb8\xb7\x49\xf5\x74\x12\x5c\x45\x26\xd1\x72\xfa\x79\xce\x27\xb1\xa4\xe4\xd7\xe4\x83\xcc\x70\xd2\xfa\x5f\x48\xf1\x4e\xd2\xd0\x8c\xcb\xcf\xeb\xcc\x24\xdf\xc4\xae\x70\x52\xe7\x30\x99\x63\x84\x82\x3c\xa6\xb6\xc6\x46\x92\x9d\xb8\x87\x04\x9b\xa8\xd6\x2e\x91\x11\xc3\xa8\x42\x77\x49\xa1\x41\xd2\x86\x1f\xf5\x9d\x04\x90\x42\x0b\xa9\x1c\xea\x3b\xe9\x22\x39\x85\x3c\xb2\x96\x6b\x49\x0e\x93\x1a\xbc\x98\x0c\x3e\x83\x14\x92\xe5\x91\x60\x0c\x59\x22\x75\x0b\xa9\x6e\x20\xd5\x79\xd4\xd7\x77\x97\x04\xdd\xa8\xea\x17\x48\x21\x15\x39\x00\xbd\x8d\xa4\x50\x07\xc9\x91\x52\x53\x4b\x20\x6d\x06\x50\x1d\x9d\x21\x85\xdc\x48\xb0\x97\x5a\x23\x1d\x29\x94\x40\x0a\xcd\x24\x7b\xfd\x36\x49\xf1\x21\x5b\xdd\x99\x6a\x2d\x87\x24\x0b\xa9\x0f\x92\x89\x39\x53\xe7\x28\x9b\x2c\x86\x8e\x5c\x01\xce\xe7\xc9\xe3\x36\xea\x31\xc9\xbe\x47\xed\x17\x3e\x99\x57\x1b\x19\x30\x89\x4a\xd9\x49\xbe\x27\x2e\xf9\xe0\x74\xf2\x38\xb8\xf8\xf9\xb4\xba\xc9\x17\xea\x9c\x4f\x86\xa6\x2e\x27\x19\x75\x7f\x74\x93\x61\x0c\xe4\xec\xb8\x93\x73\xf0\x20\x81\xca\x29\x21\xc1\xbd\x64\x44\x1b\x32\xc5\xb8\x48\xd2\x90\x0b\xf5\x98\x4c\x31\x8e\xba\xc6\x74\x64\xa7\xbb\x9f\x23\x25\x0d\x64\x51\x67\xb7\x91\x33\xfa\x25\xe9\x8d\x41\xbe\x92\xb8\x4f\x49\x21\x1b\x32\xdd\xb1\x0f\xa9\x20\x99\xc5\xd8\x6a\x12\x3c\x42\x7d\x92\x5c\x44\x55\x67\xc8\xd4\x92\xa9\x9b\xe8\x36\xe9\x9d\x4d\xdd\x15\x42\x12\x3c\x42\x6d\xe5\x3c\xd2\x9c\x88\xba\x63\x4f\x50\x41\xf2\x55\x8d\x94\x91\x60\x35\xe9\xc3\xbd\x80\x0c\xd9\x4f\xaa\x73\xa8\x3b\x96\x7a\x29\x90\x36\x76\x51\xd7\xdc\x6b\x64\xb5\xb2\xc9\x39\xe9\x7f\x44\x52\xb8\x54\x9d\x2a\x12\x14\x93\x3d\x3f\xe6\x4b\x0a\xad\x23\x85\x92\xcb\x48\x43\x1b\xa9\x85\xa1\xb6\x75\x08\xd5\x25\xd9\x5b\x71\x2b\x49\xa1\x25\x54\x21\x6a\xaf\x37\x51\x41\xea\x68\x32\xa9\x20\xb5\x35\x37\x93\xea\x72\xea\x05\xe0\x46\x05\x55\x24\x98\x40\x82\x0d\x64\xd9\xe3\x7c\x48\x1f\x51\xd4\xca\x34\x91\x9c\x31\xb2\x08\x83\x64\x6a\x81\xe4\x0d\xdb\x4f\xbd\xcf\x6c\xc9\xd6\x2c\x2f\x25\xbd\xe9\x48\x49\x13\x75\x2e\x6c\x48\x30\x90\xdc\xe6\xfd\xd4\xcb\x29\x83\x2a\x44\xed\xad\x69\xa4\xf5\x42\xf2\x26\x89\x5b\x4f\x5a\xcf\xa7\x4a\x52\x6f\xf2\xfb\xa4\x64\x13\x29\x39\x46\xbd\x6b\xbb\x48\x4e\x1b\x35\x9f\x6a\x32\x0e\x8f\x1a\x67\x1d\xc9\x11\x51\x1b\x21\x84\x0a\x52\xd5\xe3\x49\x90\x4b\x7d\x72\x3b\x15\x24\x9f\xac\xa5\x96\x95\x5a\x22\x09\x99\x6e\x1d\xd5\x06\x75\x6a\x32\x49\x4e\x09\x39\x0b\xe5\xd4\x8e\xe1\x51\xf3\xa1\xae\x81\xaf\x48\x8e\x9c\xbc\xf3\x47\xa8\xd7\x4b\x2c\x75\xb8\x3d\x49\x97\xd4\x5d\x67\xa2\xee\x70\x11\x15\xa4\x76\x3b\x97\x04\xdb\xa8\xad\x97\x4d\xaa\x0b\xc8\x39\x8e\xe3\x91\xea\x06\x2a\x87\xbc\x3f\xfa\xf7\x92\x1c\xea\x62\x4a\xfc\x8e\x8c\x73\x8d\x2c\x07\x83\x2c\x47\xe9\xf3\x0d\xf5\xbb\x87\xcf\xa2\x57\xb8\x32\xb3\xb8\x7f\xab\x59\x7c\xd1\x7c\xbe\x5b\xe0\x60\x50\xbb\xca\xff\x56\x23\x3c\xd8\xac\x6a\x36\xc7\x0c\xcb\x93\x92\x7f\xca\x69\xf7\x75\xed\xf6\x35\x99\x64\xaa\xca\xed\x1d\xfb\x1c\x02\xee\x32\xae\x88\x55\xb9\xc6\xaf\xe8\x22\x97\x45\x5b\xaa\x06\xd5\x83\xc3\xd2\xc0\x46\x71\xd4\xe1\xbe\xf2\xf8\xe4\x7b\x7b\xbc\xe4\xe6\xfa\x1d\x86\x6d\x7d\xeb\x04\x2b\xe3\x0a\xd9\xf3\x9f\x2d\x88\xac\xf7\x1c\xb8\xd6\x1b\x20\x65\xf5\x77\xf1\xc2\x8a\x92\x3a\x73\x0d\xb1\x7d\xf7\x4d\x0d\xea\x03\x37\xef\xc6\x0f\x19\x83\x75\x73\x93\xcc\xcd\x6d\xfe\xc6\x4f\xfa\x74\xb2\x44\x73\xbc\x40\xbf\x4c\xbf\x55\xff\xa1\x3e\x52\xbf\x5a\xb2\xb5\xeb\x6a\xac\x3a\x3c\xb7\xe7\xd2\xa0\x7a\xa4\xcf\xf4\x28\xd1\x78\x87\x71\x65\x91\xa6\x8b\xd7\xf4\xe4\xdb\x12\x45\x81\xf5\xd8\x64\xd3\xe4\x02\xc3\x80\xf0\x08\xfb\x7a\xd3\x5b\xb4\x5f\x15\xb3\x4d\xb8\xd8\x93\xe9\xa7\x5a\x35\x66\x50\xa9\x54\xab\x1e\x95\xae\x68\x93\xdd\x78\x92\xda\xe3\x61\xa8\x6f\x11\x18\xd7\xe9\xb2\x2e\xeb\x1e\xf1\x8b\x9b\xcb\x93\x3b\x52\xcf\x2b\x87\xb3\x13\x6f\x34\xaf\x6a\x09\x33\x6b\x12\x16\x29\x6d\x66\x95\x1e\x0d\xed\xb0\x55\x9b\xa5\xb1\x2c\x89\x60\xeb\x2b\xd2\x45\x5d\x36\xb4\xd2\xda\x7b\xec\x73\x37\x4d\x41\x01\xc3\x36\x5d\x17\x05\x9b\x32\x8c\xd7\x24\xdd\x8c\xbb\xdb\xcd\xdf\x2f\x32\x1c\xd8\xd3\xfc\xd3\x23\x2f\x95\x5f\x66\x5d\xfd\x93\x33\xea\x71\x53\xbc\x33\xd6\xd0\xc5\x0d\xde\x19\x9c\x03\xe1\x8b\xf4\x6e\xe3\x32\xeb\xa6\x29\x83\xc5\x0e\xb9\x0d\x5e\xa2\xcc\x82\x53\x2c\xde\x3a\xc1\xc6\xcf\x8a\xca\x42\x25\x5b\xf4\x63\xd1\x43\xda\x17\x34\x93\x95\x4e\x0a\xdb\xdc\xb0\xb3\x61\xb9\xd7\x7c\xd7\x1c\x10\x2f\xf6\x69\xf2\xe1\xa6\x15\x08\x65\x8e\x49\x9b\x25\x11\xfa\x81\xe8\x8a\x68\xa3\x76\x9a\xc6\x61\x9d\xf1\xce\xe7\x33\x72\x5a\x35\xd7\xa3\xaf\x45\x7f\xec\xea\xda\x3a\x7f\x96\xf0\xab\xb5\x4c\x1f\xa6\x57\x75\x6e\xa1\x37\x37\x4b\x36\xaf\xd5\x31\x69\xa7\x64\xb3\x24\x5e\xf2\x81\x5e\x12\x7d\x33\x3a\x3f\xba\x4b\x3b\xa4\x59\xaa\x99\xa1\xd8\xa9\x64\x9e\xe5\x79\x97\xac\x51\x9f\x8a\x10\xc9\xe6\x26\x85\x49\x3c\x25\xdb\xf4\xc5\xd1\xe2\xe8\x8e\xe8\x0c\x6d\x8f\xa6\x40\xe3\xa6\x88\x3d\x2b\xcd\x95\x8a\x13\x72\x1e\xae\xe3\xd8\xe7\xbc\xa6\xf4\xd2\x3c\x8a\xf6\x76\x75\x6a\x5d\xd2\xea\x90\x75\xac\x37\xab\x57\xf8\xb4\x70\x4b\x56\xf6\xf0\xd9\x24\x8d\x4c\x93\xac\xf9\x73\xf4\x8e\xfb\xa2\x7a\x6f\x75\xba\xcc\x2d\x2b\xab\x57\x34\x3b\x55\x66\x9f\xc4\xe3\x6f\xe5\x7f\xc8\x8f\x74\xb5\xf7\x98\xe3\xe1\x98\xc4\xe5\x6f\xd2\x9b\xb4\xcf\xb4\x5f\x6a\xad\x35\x5f\x6b\xe8\x4a\x9b\x5c\x86\x0f\x3b\x2d\xd9\xd1\xb8\x89\xff\xb1\xbe\x5f\xdb\xa9\x7d\x4d\x63\xaf\xdc\xa6\xe0\xe4\x8a\x7c\xd8\xc2\xe4\xa5\x46\x7f\x7e\x38\xdf\x9f\x9f\xc8\x5f\xa1\x1f\x75\x54\x94\x69\xfe\xa4\xf1\xd2\xd4\x68\x6c\x15\x8b\xcf\x8a\x73\xb8\xde\x9c\xb5\xf2\x53\xc9\x73\x8d\xa1\xfc\x2d\x7c\x3e\x7f\x25\x7f\x87\xfe\xb2\xb6\x4b\xc3\x54\xf0\xce\xaa\xbd\x1b\xbc\xe5\x59\xc9\xf6\xc6\x08\x7d\x85\xb6\x5b\x7b\x4a\xdb\xa2\x2d\xd7\x8e\x45\x07\xf2\x97\xf3\x83\xf8\x1f\xf1\x77\xe9\x8d\x5a\xba\xc6\x46\xb9\x46\xb1\x46\x79\x53\x71\x53\xe9\xa0\x70\x50\xe6\x2b\xf2\x95\x61\x8a\x30\x65\x97\x82\x91\xdb\x24\x66\xe6\xb0\x7d\x78\x7f\xe0\x79\x0b\xd2\x4c\x8e\xc6\xcd\xfa\x41\xad\xad\x66\xb1\x92\x9b\x7b\xa2\x9e\x23\xc8\x6a\x3b\xd5\x96\x66\x9a\x57\xe1\x54\xb1\xd0\xb8\x93\x9f\xc0\x5f\xa5\x97\x6a\x75\x9a\x2c\x0d\x43\x21\x55\xb0\xcf\x0a\xbc\xcd\xa7\x4c\x73\x2b\xdc\x2a\xec\x8d\x61\x7c\x1e\x9f\xcb\xff\x9f\xa7\xd2\x6e\xe7\x45\xc3\xf9\xf3\xfc\x6d\x86\x59\x7e\x0c\x0f\x26\xaf\xbc\xcf\x33\xec\x29\xa3\xa3\xfd\x66\x45\x9e\xcc\xc3\xbf\xb4\x8e\x9f\xfc\x64\x41\x82\x8f\x2a\xe1\x6e\xb3\xb9\xbf\x35\xc5\xec\x59\x7f\x3f\x41\x21\xab\x10\x67\x17\xeb\x8e\x0a\x8f\xb0\xbb\x4a\x93\xec\xdb\x0c\x47\x85\xc3\x0c\xc1\x0f\xbb\x82\x7b\x5a\xa3\xae\xfe\x49\xdc\x5d\xb3\xb8\x97\xdd\x5b\xdb\x9a\x31\x54\x3d\xd1\xd2\x07\x0b\x2c\x21\x71\x47\x59\xdd\x82\x84\xe1\xee\x30\x71\xf6\x85\x3e\x6d\xcc\x01\xbf\x96\x81\xd4\x9b\xfa\x6b\x56\x96\xee\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xef\x32\x1d\xce\xd2\x6f\x3c\xfc\xd6\xc1\x33\x34\xf7\x22\xa6\xe7\xad\xdf\x8f\x5f\x3e\xf5\xaf\xec\xf8\x09\x33\xdc\xce\x54\xa4\x7f\x31\xf1\x37\x99\xf4\xef\xbf\x5f\x37\xf9\xc4\x8a\x84\x19\x0e\x99\x39\x53\xfb\x5f\x08\x7f\xbd\xe5\xea\x8a\xa9\x97\x2e\x72\x3e\x7c\xdd\x21\x3f\xfa\x2a\xff\xea\xfc\xf0\xd5\x05\x53\xf7\x2d\xba\xae\x5b\x78\xe0\xc7\xb6\x25\xec\xe3\x93\xdd\xac\x2d\x3d\x25\x00\xcb\xa1\xef\x61\x8e\xb6\x2c\xb5\xf5\x71\xaa\x53\xea\x76\x16\x25\x89\x43\xee\x37\x9b\xc6\x52\x57\x1d\xba\x36\x30\x34\x5c\x32\x63\xed\x92\xac\x40\x03\xab\x85\x79\x8e\x2e\xef\x38\x96\xc6\xca\x3f\x54\xf6\x55\x5a\x5a\x0b\x7b\xf8\xf1\x93\x1e\xce\xc6\xea\xc2\xec\x72\x63\x64\x57\x9b\xa6\x50\xa0\x71\xec\x11\xdd\x60\x2e\x66\x65\x27\xea\x06\x6e\xf4\x77\xd8\x67\xcf\x8a\x8f\x1c\xed\x1f\xca\xca\xcc\x10\xec\x29\xea\x18\x09\xb6\x19\x1f\xb5\x61\x80\x1e\xb0\x5a\xf2\xa8\xfa\xc4\x81\x43\x67\x76\x04\xc5\xca\xd3\x58\x9a\xb4\x33\xc1\xb1\xb2\x71\x52\x43\x8c\x53\x5f\x9c\x6f\xda\xe3\xa8\x04\xc3\xc5\x63\x59\x39\x7e\xf9\xb5\xba\x13\x1c\x6f\xee\x09\xf5\x75\x1f\xc5\xce\x8f\x9f\xd8\x9f\xe0\xdc\xc8\x79\x5f\x9e\x9e\x95\xa3\xfa\x4b\x6d\x07\xd3\xdb\xfb\x62\xdf\x98\x77\xe6\x60\x89\x8b\xc0\xcf\x45\xf0\x44\x78\x51\x62\x4e\x74\xf3\x11\x1d\xdd\x95\xdb\xa7\xb4\xcf\x2d\xd4\x76\x69\x84\x17\x03\x35\xf6\x1a\xe1\xfb\x79\xda\x4c\x8d\x30\xed\x77\xe9\x15\x1e\x96\x5e\x64\xcb\xaa\x3d\x39\xfb\x46\x6e\x3c\x9b\x55\x69\x35\xb3\xf7\x10\xdd\x2c\x8c\x97\x1f\xb6\x74\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7f\x7a\x26\xcc\x72\xfd\xce\x8a\x46\x0b\xb2\x9b\x67\x65\x0e\xbd\x62\xb5\xf8\xd5\xd5\x9f\x4d\x6b\x09\xc6\x9f\x35\xc0\xaf\x4c\x44\xcd\x86\xf0\x0e\xab\x97\x9e\x32\x6c\x58\xcd\x81\x6f\x5b\xba\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x7f\xba\x2a\x1f\x63\xd1\x86\x97\xab\x82\x68\xac\x32\xf1\x37\x9f\x39\xec\xb3\x9b\xf8\x40\x94\x3c\xc1\x96\x99\x2f\x15\xee\x9f\x38\xa5\x84\x51\x79\x65\xed\xac\x39\xfb\x7b\x17\xf9\x2c\xea\xb1\x7b\x60\x1b\xf9\xd1\xb3\x29\x53\xf6\x9d\x16\x26\x1c\xfa\xd6\xd9\x65\xcf\x6b\x05\xbc\x3f\x5d\x5d\xb8\x73\xfc\x02\xfe\x07\xd9\xf6\xe5\x9f\x9f\x62\xb2\xaf\xef\x9d\x63\xe9\x09\x01\xfc\xbf\x99\x8f\xab\x6a\xaa\xcf\x9e\x72\xfb\xe8\xc6\xc3\x92\xb5\xcd\xb2\xf5\xde\x4b\x54\xa2\x9e\xc1\xad\x17\xe4\x89\x65\xc6\xc7\x5b\x16\x28\x35\xe9\x85\xc6\x24\xe3\x9e\xbe\x8e\x16\x5f\x45\xfa\x96\xfa\x0e\x77\xef\xd0\xdd\xba\xeb\xe2\x2e\x26\xdb\x7f\xb6\x3c\x4e\xab\x6f\x3d\xec\x66\xcf\x36\x7f\xd3\xea\x28\x7f\x87\xeb\x91\x20\x18\xab\x1b\x5c\xb3\x4a\x34\x3b\x61\x77\x67\x5b\xd5\x81\x8d\xb1\x11\x81\xa6\xdb\x75\xbd\x0f\x0b\x3d\xa6\xd6\x6e\xae\x9b\x2c\x49\xbd\x54\x53\xb2\x4e\x67\xbb\x6a\xfb\x4f\xbf\x73\x10\x22\xbc\x26\x8e\x35\x8d\x93\x1a\x76\x38\xa9\xe3\x7c\x85\x8f\x97\x24\x18\x24\xc7\xd2\x73\x02\x66\x1c\xef\x7b\x5f\xd4\x18\xb1\x35\xf9\x6d\x07\x2f\xe9\x7b\xef\xb2\x6b\x12\x7d\xed\xad\x07\xfd\x36\x7b\xdd\x3f\xbf\x77\x74\xe6\x99\x9c\x79\x86\xfa\x42\xc7\x66\x81\xd0\xc8\xb4\x36\x34\x24\xfa\x6e\xd4\x89\x78\x3f\x68\x84\xae\xb3\x3b\xa5\x5a\xaf\x9e\x09\xfa\x21\xad\x57\x00\xa3\xd3\x5e\x23\x74\x9d\xde\xc9\x54\xda\x3b\x6d\xfe\x4b\x42\x82\xa5\x57\xd9\xb2\x8e\x3b\x79\xa4\x4e\x1e\x4c\x4e\x4c\x51\x47\x7e\xcf\x9e\x3d\xc6\x79\x62\x74\x1a\x67\xe9\x9e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x5f\xaa\x32\x36\xe6\xe9\xe9\x09\x34\xda\xe7\x7b\x8f\x8f\x1f\xcb\x7f\x81\x5e\xbe\xda\xee\x9b\xf5\x91\xa2\x97\x2d\xdd\x17\xc0\x3f\xa4\x74\xae\xdf\x85\x2c\xfa\xbb\xdf\x09\xdc\x47\x3e\x4d\xc0\x6f\xf9\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x5d\xaf\xbb\x0d\x35\x6c\x71\x7a\xfd\x80\xd5\xc8\xa3\xec\x3f\x7e\x7b\x7e\xe2\x3e\xbb\x2f\x05\xfa\xe9\xfe\x2d\xe7\x7a\x7d\xa6\xbc\xe5\xdc\x92\x4c\xa3\x33\xf7\xa4\xbe\x24\x91\x3a\x97\x5d\xda\xff\x25\xb7\xf2\x83\x2b\x6e\xce\x13\xf7\xf9\xf4\x2e\x3c\xf8\xe0\x51\xe3\xda\x52\xd9\xdc\x17\x4b\x2e\xbd\x92\xd3\x39\x2d\x3e\xfb\xd9\xab\xbb\xdb\xc6\xec\xe8\x69\x96\x9e\x10\xfc\x7a\x8c\x6d\x8b\xb0\x67\x64\xee\xee\xfd\xfd\x82\x23\xea\xa5\xdb\x0d\x1b\x16\xd4\x85\x0b\x8a\x1b\xf6\x57\x99\x06\x1e\x0f\x67\x84\xe5\xfe\x41\xbc\x51\x36\xac\x1b\x6a\xaa\x10\x45\xad\xf1\xda\x78\x7f\x37\xab\xe3\x23\x5f\xa1\x74\x15\x2b\x40\x3e\xfa\xe3\xc0\x48\xd5\x99\xa6\xbe\x88\x16\x97\xd1\x51\x9b\x9e\xb3\xa3\xeb\x47\x9f\x36\x1b\x1e\xf2\xb2\xb9\xae\x7a\xed\x3d\xa1\xa7\x6e\x11\xab\x5c\x12\x35\x38\x70\x24\x22\x86\x21\xe8\xd9\xbb\xb5\x3e\x34\xf0\xd6\x17\x39\x6b\x65\x59\x12\xb9\xf3\x3b\x93\xa5\x86\x74\xad\x57\xe6\x4c\x56\xc5\xa0\xed\xbd\x56\x66\xfe\xe8\x0f\xc2\x93\xbf\x13\x35\xab\x9a\x2e\x9f\x9b\xd3\x73\xbf\x32\x31\x63\x34\x27\xc6\x7a\x70\xc6\x66\xaf\xfb\x87\xf7\x8e\x7a\x3d\x11\xba\x4e\x3f\xae\xbe\xe1\xad\x88\x78\xb9\xb6\xe3\x8d\xb9\x4e\xcd\xb1\xc9\xb9\x35\xa6\xcc\x6e\xf9\xf4\x7b\x82\x27\x42\x89\xc4\x9c\xb8\xc4\x47\xd4\xd8\xbf\x4c\x9d\xcb\x09\x65\xde\x2a\x14\x73\x9e\xea\x97\xb1\xbd\x44\x8d\x35\xcb\xe4\x27\x58\x79\x35\xbe\xad\xaa\x5f\xf7\xbf\x37\xa9\x3c\xa7\xd9\xeb\x7f\x5c\xf7\xd0\x7a\xec\x8f\xfb\x8d\xfd\xed\x82\xf7\xfb\x0a\x5f\xb1\x74\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x1f\x42\x56\xb4\x8e\xee\x44\xa3\xd9\xbd\xf4\xd7\x39\xed\xdc\x85\xce\xed\x1f\x8c\x9b\x74\x7e\x9f\x21\xdc\xd2\x6d\xc1\x2f\x5b\xe5\xc2\xe6\x83\x3d\xee\x29\xcb\x8d\x0f\xaf\xd8\xab\xc2\xc6\x5b\xba\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x5f\xbe\xd3\xf7\xf2\x04\x77\xe6\x7f\xeb\xfc\x62\x65\xec\xf0\x8e\x4d\x8e\xaf\x2c\x9f\x3a\xee\x81\xc8\x7d\xff\xe1\xac\xdb\x6d\x37\x56\x8c\x3f\x54\x67\xbd\xe9\x5e\xde\x17\xe1\xdf\x54\x1c\x4e\x5f\xeb\xfb\xe5\xc8\xb8\xa5\x2f\x46\x04\xbd\x39\x71\x4b\xb3\xfd\xfc\x57\x1c\xf2\xa3\xaf\xf2\xaf\xce\x0f\x5f\xbd\x32\xf5\xb4\xc3\x40\xd2\xb5\xa0\xe3\x09\x4f\xe8\x51\x41\x3b\x2c\x3d\x23\xf8\xd9\x33\xbd\x17\x9b\xc6\x59\xeb\x22\xf7\xbf\x21\x8c\x5d\xdb\x5c\x16\xe0\xbd\x44\x25\xea\x1a\x88\xbc\x17\x20\xbb\x3f\xba\xbb\xe2\xa8\x46\xfb\xb4\xa9\x57\xd6\x2b\x19\x8c\x8a\x78\x6f\x7a\x46\x50\x59\xea\xa0\x5d\x5e\x4d\xc5\x36\x15\x33\x22\xa9\xfc\x7d\xfe\xe8\x48\x9d\x21\x33\x96\x93\x64\xf2\x94\x86\x24\xaf\x97\x25\x9b\x7e\x7c\xa4\xb2\xcd\x38\xc2\x76\xeb\xd7\x5e\x37\xae\x39\x52\xd0\xd3\x56\xae\x3d\x93\xd9\x5a\xcd\x4d\xb0\x3b\x5e\x74\xd2\x36\xfa\xcd\x10\x21\x4f\xcc\x78\x89\xbe\x3d\x88\x27\x4f\x63\x85\x08\xcf\x04\xc7\x98\xc7\x25\x18\x76\x38\xa9\xe3\x7c\x85\xb9\x45\x06\x83\xe4\x58\x7a\x4e\x40\xd7\x09\x46\x30\x2b\xef\x61\xf6\xe8\xe1\x73\x73\x7a\x56\x36\x8c\xcd\x19\xf4\xca\xd2\xd6\xf2\xb6\xcf\x0d\x29\xe1\x3f\x89\x7a\x29\xed\xe4\x4c\x67\xb9\xe2\x53\xf3\xda\x61\xb5\xb6\x9b\x3d\xe8\x15\xe0\x11\x27\x9b\x9e\xcb\x79\xfa\x9d\x98\x21\xe6\x3c\x2d\x15\x73\x39\xa2\xc6\xa1\xec\xe4\x34\x56\x9e\x30\x3b\x79\x49\x92\xaf\xb0\x4a\x22\xa7\x5b\x7a\x99\x2d\x2a\x65\xb3\xd2\xb3\xcc\xb9\xaf\x9a\x3e\xf2\xf2\x01\xc3\xc3\x2b\xe6\x4f\xdb\xb8\x6f\x5b\xba\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xb5\x49\x0c\x16\x4f\x09\xa5\xd1\x96\xbd\xf1\xa5\x57\xa5\x7c\x4b\x64\xe5\xa1\xf1\xaf\x6e\x79\x41\xd7\x6c\xe9\xb6\xe0\x67\x29\xc5\xef\xe2\x34\x55\x3c\x6d\xbf\xbe\x7a\x3f\xa7\xb8\x69\xa2\xa5\xdb\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x7f\xd8\xb2\x0b\xeb\xcc\xe7\xd6\x7b\xee\x7a\x23\x85\xd3\x1b\x32\xff\xf2\xb4\xe5\x53\xc7\xf7\x73\xd8\xfb\x0f\x65\xde\x69\xad\x59\x3e\xfe\x80\xca\xa6\xbd\xfd\xec\x94\xb4\xe5\xb1\xb6\xf6\x19\x31\x53\xfb\x27\x97\xce\x8f\xa3\xd3\x97\xdf\xaa\x69\xfd\x76\xbe\x8f\x4f\xeb\xe7\x5d\x7e\xdf\x46\xae\x99\xb1\xfc\x60\xe0\xd7\x1d\x93\x16\xbf\xd9\x51\x67\xb3\xdb\x6e\x92\xa5\x67\x04\xff\x22\x95\xec\x27\x1b\x06\x2e\x2c\x08\x3e\x92\x31\xd0\xb9\x76\x5d\x31\xef\x98\xa2\x76\x38\x58\xdf\xc2\xed\x5e\xcc\x0d\x17\x94\x6d\xb9\x11\xcd\x1f\x0d\x13\x70\x05\xad\x06\x97\x92\x53\xd1\xdb\xf3\x4e\xdd\x8c\x3f\xda\xf8\xa8\xfe\x47\x4e\x53\x44\x62\xa9\x63\xb2\xe9\xd9\x1d\x55\x57\x09\x27\xf1\xbf\x7f\xe9\x20\x51\xdf\x7b\xaf\x2b\xd8\xf6\x88\xbb\x8b\x3e\x4e\xd3\xfb\x05\x7d\x63\x4c\x44\xe0\xe8\xed\xba\xde\x87\x85\x1e\x53\x6b\x37\xd7\x4d\x96\xa4\x5e\xaa\x29\x11\xea\x7e\xb3\x6a\x7b\x50\xac\xfc\x24\x2b\x44\xe8\x29\x8e\x31\x8d\x93\x1a\x76\x2c\x54\xc7\xf9\x0a\xd3\x95\x09\x06\x49\x76\x7a\x4e\x00\xe3\x78\xdf\xfb\xa2\xc6\x88\xad\xc9\x4b\x1c\xbc\xa4\x2e\xef\xb2\x6b\x12\x7d\xed\xad\x07\xfd\x36\x7b\xdd\x3f\xbf\x77\x74\xe6\x99\x9c\x79\x86\xfa\xc2\xa5\xcd\x02\xa1\x91\x69\x6d\x68\x48\xf4\x6d\x1a\x16\xf1\x7e\xd0\x08\x5d\x67\x77\x4a\xb5\x5e\x3d\x13\xf4\x87\xb5\x5e\xad\x6f\x74\xda\x6b\x84\xae\xd3\x3b\xd5\x62\x4e\xe8\x45\x7f\xdd\xb0\xa5\x97\xd9\xb2\xde\x0d\xe3\xdb\x75\x74\x18\x47\x68\xf2\x1f\xb7\x0a\xdc\x47\x44\xb5\x06\xfc\xc3\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x4f\x95\xd2\xd7\xdd\xb8\xfc\x65\x1a\x6d\xa2\xf5\x7b\x93\x46\x36\x4e\x9e\x12\xf7\xf5\xb2\x15\xf9\xed\xac\x19\x96\xee\x0b\xfe\x99\x22\xd7\x14\x7f\xe2\x66\xb3\xf5\x43\x73\xdc\xb3\x9a\xe1\xdf\x5a\x59\xba\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xf7\x9b\x1f\xf3\xf4\xf4\x04\x1a\xed\xf3\xbd\xc7\xc7\x8f\xe5\xbf\x40\x2f\x5f\x6d\xf7\xcd\xfa\x48\xd1\xcb\x96\x6e\x0b\xfe\xb7\xf6\x63\xe1\x55\x31\xb3\x2b\x4f\x9b\xfa\xdb\x85\x3d\x4e\xe3\x2c\xdd\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xa7\x79\xdd\x6d\xcf\x87\xd6\x34\xda\xd5\x65\x7f\x18\x67\xba\xb3\xcf\x3a\x70\x4e\xea\xad\x77\x4a\x1b\x26\x58\xba\xad\x5f\x9e\xca\x85\xcd\x07\x7b\xdc\x53\x96\x1b\x1f\x5e\xb1\x57\xe1\x67\xea\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xdf\xeb\x60\x96\xeb\x77\x56\x34\x5a\x90\xdd\x3c\x2b\x73\xe8\x15\xab\xc5\xaf\xae\xfe\x6c\x5a\x4b\xb0\xb5\xa5\xdb\xfa\x39\x4a\xf1\xbb\x38\x4d\x15\x4f\xdb\xaf\xaf\xde\xcf\x29\x6e\x9a\x68\xe9\x76\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x71\x55\x3e\xb3\x1a\x69\xb4\x94\x77\xa7\x0a\x53\x04\x97\xdb\x53\x6c\x27\xcd\xb9\xf4\x62\x6f\xd1\x2f\xf5\x5f\xd4\x97\x7c\xea\x50\x3c\x48\x9b\x30\x74\x84\x2e\x0a\x2f\x7c\xc5\xd2\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x9b\xa4\x84\x8a\xbe\xf2\xa6\xa5\x04\xbd\xf1\xa2\xf7\xf1\xc7\x2e\xea\x99\xda\x42\xc7\x2f\xdc\xac\x6d\xc6\xfd\x7c\xff\x40\xe0\xfa\x80\xb7\xd8\x4d\xd0\xc5\xba\x95\x67\x68\x8f\x3f\x6b\x7b\x60\xa6\x92\x87\x1f\xeb\x07\xf8\x35\xda\x9a\x61\xe3\x3a\x33\xa0\x8a\xf6\x46\x2a\xfd\xbf\x02\x00\x00\xff\xff\x0b\x13\x25\x27\xf1\xf6\x01\x00") - -func testImagesVolumeRbdBlockTarGzBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeRbdBlockTarGz, - "test/images/volume/rbd/block.tar.gz", - ) -} - -func testImagesVolumeRbdBlockTarGz() (*asset, error) { - bytes, err := testImagesVolumeRbdBlockTarGzBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/rbd/block.tar.gz", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeRbdBootstrapSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x55\xdb\x8e\xdb\x36\x10\x7d\xd7\x57\x9c\xb5\x0b\x24\x01\x6c\xc9\xbb\x4d\xd3\x36\x01\x0a\x78\x2f\x45\x8c\xa4\x76\xb0\x76\xba\xc8\x53\x41\x89\x23\x8b\x58\x8a\xa3\xf2\x62\xaf\x5e\xfa\xed\x05\x29\x39\xd9\x4d\xd0\x00\xf5\x83\x61\x92\x73\x39\x73\xe6\xcc\x78\x7a\x56\x04\x67\x8b\x52\x99\x82\xcc\x01\xa5\x70\x4d\x96\x4d\x71\xc5\x5d\x6f\xd5\xbe\xf1\xb8\x58\x9c\xff\x84\x5d\x43\x78\x17\x4a\xb2\x86\x3c\x39\x2c\x83\x6f\xd8\xba\x3c\x9b\x66\x53\xbc\x57\x15\x19\x47\x12\xc1\x48\xb2\xf0\x0d\x61\xd9\x89\xaa\xa1\xd3\xcb\x0c\x7f\x92\x75\x8a\x0d\x2e\xf2\x05\x9e\x47\x83\xc9\xf8\x34\x79\xf1\x26\x9b\xa2\xe7\x80\x56\xf4\x30\xec\x11\x1c\xc1\x37\xca\xa1\x56\x9a\x40\x0f\x15\x75\x1e\xca\xa0\xe2\xb6\xd3\x4a\x98\x8a\x70\x54\xbe\x49\x69\xc6\x20\x79\x36\xc5\xa7\x31\x04\x97\x5e\x28\x03\x81\x8a\xbb\x1e\x5c\x3f\xb6\x83\xf0\x09\x70\xfc\x34\xde\x77\xaf\x8b\xe2\x78\x3c\xe6\x22\x81\xcd\xd9\xee\x0b\x3d\x18\xba\xe2\xfd\xea\xea\x66\xbd\xbd\x99\x5f\xe4\x8b\xe4\xf2\xd1\x68\x72\x0e\x96\xfe\x0e\xca\x92\x44\xd9\x43\x74\x9d\x56\x95\x28\x35\x41\x8b\x23\xd8\x42\xec\x2d\x91\x84\xe7\x88\xf7\x68\x95\x57\x66\x3f\x83\xe3\xda\x1f\x85\xa5\x6c\x0a\xa9\x9c\xb7\xaa\x0c\xfe\x09\x59\x27\x74\xca\x3d\x31\x60\x03\x61\x30\x59\x6e\xb1\xda\x4e\x70\xb9\xdc\xae\xb6\xb3\x6c\x8a\xbb\xd5\xee\xed\xe6\xe3\x0e\x77\xcb\xdb\xdb\xe5\x7a\xb7\xba\xd9\x62\x73\x8b\xab\xcd\xfa\x7a\xb5\x5b\x6d\xd6\x5b\x6c\x7e\xc7\x72\xfd\x09\xef\x56\xeb\xeb\x19\x48\xf9\x86\x2c\xe8\xa1\xb3\x11\x3f\x5b\xa8\x48\x23\xc9\xc8\xd9\x96\xe8\x09\x80\x9a\x07\x40\xae\xa3\x4a\xd5\xaa\x82\x16\x66\x1f\xc4\x9e\xb0\xe7\x03\x59\xa3\xcc\x1e\x1d\xd9\x56\xb9\xd8\x4c\x07\x61\x64\x36\x85\x56\xad\xf2\xc2\xa7\x9b\x6f\x8a\xca\xb3\x44\xdf\x25\xb3\x77\xde\x8a\xce\x41\xe0\xea\xe6\xc3\x5b\x38\xb2\x07\xb2\x11\xc5\xca\xa3\xb2\x24\xa2\xac\xfc\x91\xb1\xd9\x5e\xbb\x58\xbb\xe6\x4a\x68\xb4\xa2\x6a\x94\xa1\xd9\x67\x93\xdb\xcb\x6b\x74\xcc\x3a\x26\x49\x9c\x0a\x23\x63\x4d\x6c\xbd\xc3\xb3\x52\x73\x75\xff\x0c\x92\x0e\xaa\xa2\xc1\x64\xd0\xe8\x1d\xa1\x0d\xee\x94\x09\xb5\x25\xd7\x0c\xa9\xa2\x7f\x94\x9a\xeb\x9d\xa7\x16\xd1\x65\x86\x92\x2a\x11\x85\xe8\x1a\xd5\x75\xb1\x6c\xe5\xb3\x29\x46\x5d\x99\xa8\x30\xb2\x38\x72\xd0\x12\xca\xc4\x98\x6e\x60\x52\xb5\x91\xad\xb2\xc7\x3f\x3f\x2e\x16\x7f\x5c\xc6\xdc\x69\x98\x86\xac\x05\xf9\xaa\xa8\xa8\x6b\xd2\x57\x5e\xb1\xa9\x33\xd7\x20\xff\x72\xcc\x5d\x83\xc9\x0f\xcf\x1b\x76\xde\x88\x96\x30\x57\x2f\x26\xc3\x34\x9a\x5a\xed\x83\xa5\x04\xd7\x79\x61\x3d\xa2\xd3\xbc\x65\x33\x84\x68\xd9\xfc\x1f\xe7\x8b\x87\xc1\x9f\x9d\xcc\xda\x7b\xa9\x2c\xe6\x1d\x8a\x83\xb0\x85\x56\xe5\x80\x91\x9d\x4c\x3f\xe6\x8b\xff\x7a\x38\x1f\x52\xb3\x93\x31\xf5\xe2\xc9\xe9\xfc\x7b\xb0\x6b\x87\x96\xbc\x90\xc2\x8b\x51\x08\x63\x11\xd2\xe5\xc3\xfa\xf9\x60\xa9\x13\xd1\x2f\x35\xfc\xc0\x3a\xb4\x84\x49\xcd\x3c\xc1\x73\x36\xba\x1f\x76\x80\x16\x3d\xd9\xd8\x9e\x9a\x84\x0f\xb1\x71\xb1\x09\x1c\xfb\xee\xe2\x36\xc8\xa6\xa7\x89\x85\xa1\x23\x59\x54\x5a\x91\xf1\xee\x45\xd4\xdd\x7a\xb3\xbb\x79\x8d\x63\x7c\x22\x89\x2b\xea\x1a\xdc\xc7\xfd\xa6\xd1\xb2\x0c\x9a\x92\x0a\x63\xbc\x48\x28\x7c\x23\x3c\x6c\x30\x2e\x5d\x0d\x71\xce\x32\x5b\x9e\xc4\x87\xf9\x3c\x35\x7f\x3e\x42\xf9\x82\x2d\x69\x12\x35\xf3\xd3\xba\x46\x1e\x86\xd2\xb2\x78\x02\x3b\x39\x68\x7b\x54\xe9\x60\xf2\x57\xa2\xe9\xe5\x77\x4d\x3e\xb3\x39\x9a\xd5\x2e\x16\x7c\xca\xf1\xb5\xd1\xa3\xb8\x11\x52\x88\xfb\x55\xd2\x43\xde\xf8\x56\x43\x19\xcf\xa9\xc6\x11\x59\x1a\x50\x2f\xee\x29\x8e\xee\xb1\x89\x4b\x39\x18\xaf\xf4\x23\x9b\x11\x8c\x84\x28\xf9\x90\xf6\x58\xcb\xc1\xf8\xb8\x1a\xe3\xc6\x3a\x87\xa3\x8a\xe3\x98\x3a\x04\x17\x84\xd6\x3d\xc8\x70\xd8\x37\x33\x94\xc1\xc3\xdb\x3e\x01\xa8\x95\x21\xaf\x74\x9f\x67\x4e\x13\x75\x38\xcf\x86\x74\x67\x83\x54\xeb\x38\x90\xf3\xf6\x6b\x89\xbf\x7e\xf5\xf3\x2f\xbf\x4e\x50\xb4\xc6\xbf\x81\xe4\x2c\x2e\x77\xaa\x1a\xc6\xe4\x4e\xa4\x0d\x9c\xd6\xda\xc8\x84\x67\x94\x84\xd0\x4d\x92\xd9\x29\x8d\x64\x43\xd9\xe0\xf3\x96\xb4\xe6\x24\x86\xb3\x09\x7e\x4b\x51\x8b\x2f\xe4\x64\x55\xd3\xb2\xc4\xab\x97\x2f\xbf\x79\x09\xa9\xe4\x74\x9d\x8d\xb1\x92\xa4\x54\xfc\xd3\x10\xb2\x4f\x93\x18\x11\x45\x38\x14\x15\x3f\x14\xe7\x6d\xa0\xcf\xb8\x47\x40\x8b\x01\xd1\xbf\x01\x00\x00\xff\xff\x01\x0a\xa4\xfe\x9a\x07\x00\x00") - -func testImagesVolumeRbdBootstrapShBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeRbdBootstrapSh, - "test/images/volume/rbd/bootstrap.sh", - ) -} - -func testImagesVolumeRbdBootstrapSh() (*asset, error) { - bytes, err := testImagesVolumeRbdBootstrapShBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/rbd/bootstrap.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeRbdCephConfSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x93\x51\x4f\xe3\x38\x14\x85\xdf\xfd\x2b\xce\x36\xfb\xb0\x2b\x75\x93\x52\x01\x5a\xed\xaa\x23\x75\x0a\xa3\x89\x40\xad\x44\xca\x20\x84\x78\x70\x9c\x9b\xc4\xc8\xf1\xcd\xd8\x0e\x69\xe7\xd7\x8f\x92\x52\x31\x0c\xe4\xd1\xe7\xe4\xe6\xcb\x77\xe5\xe8\x8f\xa4\xf3\x2e\xc9\xb5\x4d\xc8\x3e\x23\x97\xbe\x16\x22\xc2\x8a\xdb\xbd\xd3\x55\x1d\x30\x9f\x9d\x9c\x61\x5b\x13\xae\xba\x9c\x9c\xa5\x40\x1e\xcb\x2e\xd4\xec\x7c\x2c\x22\x11\xe1\x5a\x2b\xb2\x9e\x0a\x74\xb6\x20\x87\x50\x13\x96\xad\x54\x35\x1d\x93\x29\xbe\x91\xf3\x9a\x2d\xe6\xf1\x0c\x7f\x0d\x85\xc9\x4b\x34\xf9\xfb\x7f\x11\x61\xcf\x1d\x1a\xb9\x87\xe5\x80\xce\x13\x42\xad\x3d\x4a\x6d\x08\xb4\x53\xd4\x06\x68\x0b\xc5\x4d\x6b\xb4\xb4\x8a\xd0\xeb\x50\x8f\x9f\x79\x19\x12\x8b\x08\xf7\x2f\x23\x38\x0f\x52\x5b\x48\x28\x6e\xf7\xe0\xf2\xd7\x1e\x64\x18\x81\x87\xa7\x0e\xa1\xfd\x2f\x49\xfa\xbe\x8f\xe5\x08\x1b\xb3\xab\x12\x73\x28\xfa\xe4\x3a\x5d\x5d\xae\xb3\xcb\x7f\xe6\xf1\x6c\x7c\xe5\xd6\x1a\xf2\x1e\x8e\xbe\x77\xda\x51\x81\x7c\x0f\xd9\xb6\x46\x2b\x99\x1b\x82\x91\x3d\xd8\x41\x56\x8e\xa8\x40\xe0\x81\xb7\x77\x3a\x68\x5b\x4d\xe1\xb9\x0c\xbd\x74\x24\x22\x14\xda\x07\xa7\xf3\x2e\xbc\x91\x75\xa4\xd3\xfe\x4d\x81\x2d\xa4\xc5\x64\x99\x21\xcd\x26\xf8\xbc\xcc\xd2\x6c\x2a\x22\xdc\xa5\xdb\xaf\x9b\xdb\x2d\xee\x96\x37\x37\xcb\xf5\x36\xbd\xcc\xb0\xb9\xc1\x6a\xb3\xbe\x48\xb7\xe9\x66\x9d\x61\xf3\x05\xcb\xf5\x3d\xae\xd2\xf5\xc5\x14\xa4\x43\x4d\x0e\xb4\x6b\xdd\xc0\xcf\x0e\x7a\xd0\x48\xc5\xe0\x2c\x23\x7a\x03\x50\xf2\x01\xc8\xb7\xa4\x74\xa9\x15\x8c\xb4\x55\x27\x2b\x42\xc5\xcf\xe4\xac\xb6\x15\x5a\x72\x8d\xf6\xc3\x32\x3d\xa4\x2d\x44\x04\xa3\x1b\x1d\x64\x18\x4f\xde\xfd\x54\x2c\x46\x7d\x2b\xb6\xa5\xae\x3a\x47\x1e\x09\x05\x95\x28\x6a\xeb\x58\xb1\x2d\x51\x3a\x6e\x20\x11\xa8\x69\x8d\x0c\xc3\x2a\x85\x20\x55\x33\x26\xe2\xa1\x32\x9c\x4b\xf3\x28\x64\x17\x6a\x28\xd3\xf9\x40\xee\x75\x05\x0b\x58\xb6\x74\x08\x3d\xb9\x67\xad\xe8\xe3\x50\x19\x4d\x36\xbc\xcb\xc4\x43\xc3\x36\x96\x8f\xa2\x66\x1f\xb0\xc0\xc0\x94\xf3\x4e\x34\x83\xf8\xa2\x70\x58\xe0\xcf\x13\x21\x1e\xd8\x17\x8f\x82\x7d\x81\x27\xee\x9c\x95\x06\x5e\xff\x20\x2c\x70\x32\xff\x57\x1c\x8f\x0a\xcd\x58\xa0\x94\xc6\xd3\x70\x79\xa4\x31\xdc\xc3\x75\x76\x54\xc6\x16\xb4\x0b\xa7\xe3\x8c\x46\xee\xc0\xf9\x13\xa9\x00\x2b\x1b\x82\x21\x8b\x05\xe6\x67\xe7\x1f\xa5\xbe\x95\xea\x58\x39\x3f\x3d\xa0\xc4\xb3\x03\xcc\x6f\xd0\x13\x7c\x7a\x35\xfb\xaa\x57\x88\x9f\x01\x00\x00\xff\xff\x07\xbb\xe8\x40\xdf\x03\x00\x00") - -func testImagesVolumeRbdCephConfShBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeRbdCephConfSh, - "test/images/volume/rbd/ceph.conf.sh", - ) -} - -func testImagesVolumeRbdCephConfSh() (*asset, error) { - bytes, err := testImagesVolumeRbdCephConfShBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/rbd/ceph.conf.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeRbdCreate_blockSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x93\x5f\x6f\xdb\x36\x14\xc5\xdf\xf9\x29\x4e\xa5\x00\x4d\xb0\x44\xfe\x03\xec\xa5\x83\x3b\x38\x8d\x87\x0a\xad\x1d\xc0\x56\xd7\xf5\x69\xa0\xa4\x2b\x89\x08\x45\x6a\xe4\x95\x1d\x67\xdd\x77\x1f\x28\xd9\x6d\xb2\x3e\x4c\x8f\xe2\xe1\xe1\xef\x9e\x7b\x6f\xfc\x6a\xd2\x7b\x37\xc9\x95\x99\x90\xd9\x23\x97\xbe\x11\x22\xc6\x3b\xdb\x1d\x9d\xaa\x1b\xc6\x7c\x3a\xfb\x19\x59\x43\xf8\xd0\xe7\xe4\x0c\x31\x79\x2c\x7b\x6e\xac\xf3\x89\x88\x45\x8c\x8f\xaa\x20\xe3\xa9\x44\x6f\x4a\x72\xe0\x86\xb0\xec\x64\xd1\xd0\xf9\xe4\x1a\xbf\x93\xf3\xca\x1a\xcc\x93\x29\x2e\x83\x20\x3a\x1d\x45\x57\xbf\x88\x18\x47\xdb\xa3\x95\x47\x18\xcb\xe8\x3d\x81\x1b\xe5\x51\x29\x4d\xa0\xc7\x82\x3a\x86\x32\x28\x6c\xdb\x69\x25\x4d\x41\x38\x28\x6e\x86\x67\x4e\x26\x89\x88\xf1\xe5\x64\x61\x73\x96\xca\x40\xa2\xb0\xdd\x11\xb6\x7a\xae\x83\xe4\x01\x38\x7c\x0d\x73\xf7\x66\x32\x39\x1c\x0e\x89\x1c\x60\x13\xeb\xea\x89\x1e\x85\x7e\xf2\x31\x7d\xb7\xda\xec\x56\x37\xf3\x64\x3a\x5c\xf9\x64\x34\x79\x0f\x47\x7f\xf5\xca\x51\x89\xfc\x08\xd9\x75\x5a\x15\x32\xd7\x04\x2d\x0f\xb0\x0e\xb2\x76\x44\x25\xd8\x06\xde\x83\x53\xac\x4c\x7d\x0d\x6f\x2b\x3e\x48\x47\x22\x46\xa9\x3c\x3b\x95\xf7\xfc\x22\xac\x33\x9d\xf2\x2f\x04\xd6\x40\x1a\x44\xcb\x1d\xd2\x5d\x84\xdb\xe5\x2e\xdd\x5d\x8b\x18\x9f\xd3\xec\xfd\xfd\xa7\x0c\x9f\x97\xdb\xed\x72\x93\xa5\xab\x1d\xee\xb7\x78\x77\xbf\xb9\x4b\xb3\xf4\x7e\xb3\xc3\xfd\x6f\x58\x6e\xbe\xe0\x43\xba\xb9\xbb\x06\x29\x6e\xc8\x81\x1e\x3b\x17\xf8\xad\x83\x0a\x31\x52\x19\x32\xdb\x11\xbd\x00\xa8\xec\x08\xe4\x3b\x2a\x54\xa5\x0a\x68\x69\xea\x5e\xd6\x84\xda\xee\xc9\x19\x65\x6a\x74\xe4\x5a\xe5\x43\x33\x3d\xa4\x29\x45\x0c\xad\x5a\xc5\x92\x87\x3f\x3f\x14\x95\x0c\xb3\xe4\x48\x32\x21\xd7\xb6\x78\x48\x58\xba\xa4\x7e\x1a\x7b\x28\xe1\x5b\xa9\x35\xe8\x91\xe7\x43\xbf\xfd\xd1\x33\xb5\x81\x2d\x65\xb4\xbd\x67\xe4\x04\xd7\x1b\x48\x0f\x67\x2d\xe3\x92\x2d\x5a\xdb\x1b\x1e\x0d\x5e\xdf\x58\x68\x6b\xbb\xd7\x57\xaf\xc2\x43\xab\x47\xc5\x21\xb7\x00\x50\x29\xe7\x19\xe4\x9c\x75\x89\xf0\xc4\xb8\x21\x21\xd6\x9b\xec\x2e\xdd\x2e\xa2\x8b\xcb\xf6\x81\xa9\xed\x70\x53\x5e\x45\x42\x14\x9a\xa4\xe9\xbb\xcb\x2b\xf1\xb7\x08\xc3\x11\x63\x2d\x1f\x08\xbe\x77\x84\x03\xc1\x11\xf7\x6e\x74\x1d\x57\x82\xc2\x3b\x85\x2d\x69\x50\x6f\x57\xd9\xe2\xe2\xd7\xd3\xc5\x9d\xd2\x64\x58\x1f\xe1\xa8\xb5\x7b\x02\xed\xc9\x1d\xb9\x09\xd1\x49\x53\x42\xd5\xc6\x3a\x1a\xb1\xfc\x70\x25\xa0\xfd\x34\x1a\x0d\x4b\xd8\x8f\xe5\x45\x17\x23\x6b\x84\xf9\xdb\x49\x49\xfb\x89\xe9\xb5\xfe\xae\x72\x6d\xa9\xdc\xff\x8b\xc6\xcc\x7f\x38\x1d\xf8\x2f\xb6\xab\x4c\xfc\x23\x04\x3b\xd9\xe1\x94\x00\xb2\xd5\x76\x8d\xd5\x1f\x69\xf6\xac\x6f\xb3\xf9\x74\x7d\x8b\x92\xf6\xea\xbc\x7b\xa1\x5f\x22\xc6\xe5\xde\xea\xbe\xa5\x3f\x95\x05\x93\x67\x0f\x13\xc6\x5f\x32\x34\x49\xcf\x98\x4d\xa7\xeb\xdb\x2b\x51\x96\x50\xd5\x62\x00\x78\x22\x67\x61\xab\xc5\x48\xe5\x89\x1e\x16\xb3\xf9\x14\x45\xa8\x78\x31\x43\xee\x17\xb3\xb5\x68\x1f\x2a\x9f\x0c\x13\x31\xc8\x02\xc8\x32\x78\x98\x92\x1e\x93\x86\x5b\x3d\x2c\x18\x8b\x31\xa7\xd3\x00\x9c\x0a\xfd\x16\x88\xa0\xa2\xb1\x88\xde\x93\xd6\x16\x95\xb3\x2d\xb6\xb7\x77\x11\xde\x7e\x53\x4c\xbe\xfb\x45\xe2\xbf\x99\x0b\x71\x8e\xee\x3c\xae\xcf\x12\xc4\xd7\xaf\x78\x23\x58\x3a\x14\xd5\xd3\x4b\xd5\x08\xfc\x6f\x00\x00\x00\xff\xff\xfa\xac\xf9\xe3\x52\x05\x00\x00") - -func testImagesVolumeRbdCreate_blockShBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeRbdCreate_blockSh, - "test/images/volume/rbd/create_block.sh", - ) -} - -func testImagesVolumeRbdCreate_blockSh() (*asset, error) { - bytes, err := testImagesVolumeRbdCreate_blockShBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/rbd/create_block.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeRbdKeyring = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8a\xce\xcd\xcf\xd3\x8b\xe5\x52\x80\x82\xec\xd4\x4a\x05\x5b\x05\xc7\x40\x97\xa0\x22\x6f\xbf\x30\xb3\x2a\x93\x50\xe7\x0c\x47\x47\xa7\xaa\x00\xc3\xa8\xca\xca\xe2\x90\x50\x93\x82\xac\xf4\x2c\x3f\xff\x34\xfd\x02\x63\x47\x5b\x5b\xae\xe8\xe4\x9c\xcc\xd4\xbc\x12\xbd\xc4\x94\xdc\xcc\x3c\x5c\xa6\x24\xb9\xa6\x96\x81\x4c\x71\xcd\x0d\x72\xd6\x2e\x08\xd7\xf7\x76\x0a\xf3\xa8\x48\x34\x28\xd7\x0f\xf0\xf7\xf4\x01\x99\x02\xd3\x96\x58\x9a\x99\xa2\x60\xab\x60\x00\x17\x48\x4e\x2c\x28\x56\xc8\x4d\x29\x56\xb0\x55\x50\x4a\xcc\xc9\xc9\x2f\x57\xd0\x52\x42\x93\xcc\xcf\xc3\x2d\x99\x5f\x9c\x82\x22\x09\x08\x00\x00\xff\xff\x71\x6c\x55\x44\xec\x00\x00\x00") - -func testImagesVolumeRbdKeyringBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeRbdKeyring, - "test/images/volume/rbd/keyring", - ) -} - -func testImagesVolumeRbdKeyring() (*asset, error) { - bytes, err := testImagesVolumeRbdKeyringBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/rbd/keyring", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeRbdMonSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x94\x5f\x6f\xdb\x36\x14\xc5\xdf\xf9\x29\xce\xac\x02\x4d\x80\xc8\x4a\x03\xec\x5f\xf7\xe4\xa5\x19\x66\xb4\xb3\x81\xd8\x5d\xd1\x47\x8a\xbc\x92\x2e\x22\x91\x1c\x79\x15\x55\x18\xf6\xdd\x07\xc9\x71\x61\x23\x1b\x8a\xf8\x85\x34\xcf\xb9\x87\x3f\x5e\x12\xca\xbe\x2b\xfa\x14\x8b\x92\x5d\x41\xee\x11\xa5\x4e\x8d\x52\x19\x6e\x7d\x18\x23\xd7\x8d\xe0\xe6\xfa\xcd\xf7\xd8\x37\x84\xf7\x7d\x49\xd1\x91\x50\xc2\xaa\x97\xc6\xc7\xb4\x54\x99\xca\xf0\x81\x0d\xb9\x44\x16\xbd\xb3\x14\x21\x0d\x61\x15\xb4\x69\xe8\xa8\x5c\xe1\x4f\x8a\x89\xbd\xc3\xcd\xf2\x1a\x17\x93\x61\xf1\x24\x2d\x2e\x7f\x51\x19\x46\xdf\xa3\xd3\x23\x9c\x17\xf4\x89\x20\x0d\x27\x54\xdc\x12\xe8\x8b\xa1\x20\x60\x07\xe3\xbb\xd0\xb2\x76\x86\x30\xb0\x34\xf3\x36\x4f\x21\x4b\x95\xe1\xf3\x53\x84\x2f\x45\xb3\x83\x86\xf1\x61\x84\xaf\x4e\x7d\xd0\x32\x03\x4f\xbf\x46\x24\xbc\x2d\x8a\x61\x18\x96\x7a\x86\x5d\xfa\x58\x17\xed\xc1\x98\x8a\x0f\xeb\xdb\xbb\xcd\xee\x2e\xbf\x59\x5e\xcf\x25\x1f\x5d\x4b\x29\x21\xd2\x5f\x3d\x47\xb2\x28\x47\xe8\x10\x5a\x36\xba\x6c\x09\xad\x1e\xe0\x23\x74\x1d\x89\x2c\xc4\x4f\xbc\x43\x64\x61\x57\x5f\x21\xf9\x4a\x06\x1d\x49\x65\xb0\x9c\x24\x72\xd9\xcb\x59\xb3\x8e\x74\x9c\xce\x0c\xde\x41\x3b\x2c\x56\x3b\xac\x77\x0b\xfc\xba\xda\xad\x77\x57\x2a\xc3\xa7\xf5\xfe\xf7\xed\xc7\x3d\x3e\xad\xee\xef\x57\x9b\xfd\xfa\x6e\x87\xed\x3d\x6e\xb7\x9b\x77\xeb\xfd\x7a\xbb\xd9\x61\xfb\x1b\x56\x9b\xcf\x78\xbf\xde\xbc\xbb\x02\xb1\x34\x14\x41\x5f\x42\x9c\xf8\x7d\x04\x4f\x6d\x24\x3b\xf5\x6c\x47\x74\x06\x50\xf9\x03\x50\x0a\x64\xb8\x62\x83\x56\xbb\xba\xd7\x35\xa1\xf6\x8f\x14\x1d\xbb\x1a\x81\x62\xc7\x69\xba\xcc\x04\xed\xac\xca\xd0\x72\xc7\xa2\x65\x5e\x79\x76\xa8\xa5\x9a\xdb\x77\xeb\x5d\xc5\x75\x1f\x69\x2e\x42\xab\x7b\x67\x9a\xe9\x0f\x1c\x0d\xf8\x63\xbb\x99\x5e\x92\xca\xd0\x79\xc7\xe2\x23\x12\x49\x1f\x54\xe7\x5d\xa7\x83\x78\xdf\x22\xcf\x4d\x24\x2d\x34\x4d\x5a\x5f\x96\x14\x91\xe7\x55\x62\x8b\xc5\xab\x8b\xbe\x67\x5b\x93\xbb\x5c\x20\xcf\xb5\xb5\xd0\x58\xbc\xfa\xfb\xcd\x3f\x8b\xb7\x3f\xfc\xf8\xd3\xcf\x28\x48\x4c\x61\x28\x34\xc5\x21\x4f\x75\x0f\x96\x23\x8a\x47\x1d\x8b\x96\xcb\xaf\xd2\x3c\xc9\xb5\x9a\x87\xce\x3b\xe4\x0c\x8d\x3c\xef\x1e\xaa\x34\x0d\x73\xf1\xb3\x34\xe4\x0f\xff\x11\xf5\x40\x63\x64\x57\x2b\x13\xfe\x5f\x7c\x01\xc1\x4b\xb6\x3e\x64\x7c\x25\x50\x19\x4c\xcb\xe4\xe4\xd0\x53\x5c\x34\xda\xd9\xf1\xf2\x1b\x64\xc7\x9d\xa6\xf2\xc3\xab\xe0\x04\xa1\x24\x18\x08\x83\x76\x02\xf1\x33\x26\x7c\xb2\xa8\x49\x4c\xec\x53\x33\x33\x79\x14\xd2\x85\x62\x5e\x30\x6a\x1e\x0e\x37\x68\x4f\x85\x73\x9f\x55\xd3\xe7\x23\x67\xbc\x4e\x45\x12\x0a\x30\x8d\xf7\x89\x5a\xd2\x15\x2a\x8e\x49\x1c\xae\x21\x63\x20\x34\x3e\xc9\x37\x2c\x3e\xd9\xe2\xf5\x59\xf8\x09\x84\x39\x15\x9e\xc1\x1e\x0f\x94\x4e\x0f\xc4\x67\x9e\x7f\x03\x00\x00\xff\xff\x24\x3c\x05\xf8\x2f\x05\x00\x00") - -func testImagesVolumeRbdMonShBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeRbdMonSh, - "test/images/volume/rbd/mon.sh", - ) -} - -func testImagesVolumeRbdMonSh() (*asset, error) { - bytes, err := testImagesVolumeRbdMonShBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/rbd/mon.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testImagesVolumeRbdOsdSh = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x92\xcf\x6f\x9b\x4e\x10\xc5\xef\xfc\x15\xef\x0b\x5f\x29\x6d\x65\x43\x12\xa9\x97\x56\x39\xb8\x4e\xaa\xa2\x44\xb6\x14\x9c\x46\x39\x2e\x30\xb0\x23\xaf\x77\xe9\xfe\x08\xb6\xaa\xfe\xef\xd5\x62\x47\x4a\xd4\x1e\xca\x05\x86\x79\x6f\xe6\xc3\x63\xb3\xff\x8a\xe0\x6c\x51\xb3\x2e\x48\x3f\xa3\x16\x4e\x26\x49\x86\xa5\x19\x0e\x96\x7b\xe9\x71\x79\x7e\xf1\x11\x1b\x49\xb8\x0d\x35\x59\x4d\x9e\x1c\x16\xc1\x4b\x63\x5d\x9e\x64\x49\x86\x3b\x6e\x48\x3b\x6a\x11\x74\x4b\x16\x5e\x12\x16\x83\x68\x24\xbd\x74\x66\xf8\x4e\xd6\xb1\xd1\xb8\xcc\xcf\xf1\x2e\x0a\xd2\x53\x2b\x7d\xff\x39\xc9\x70\x30\x01\x3b\x71\x80\x36\x1e\xc1\x11\xbc\x64\x87\x8e\x15\x81\xf6\x0d\x0d\x1e\xac\xd1\x98\xdd\xa0\x58\xe8\x86\x30\xb2\x97\xd3\x9a\xd3\x90\x3c\xc9\xf0\x74\x1a\x61\x6a\x2f\x58\x43\xa0\x31\xc3\x01\xa6\x7b\xad\x83\xf0\x13\x70\xbc\xa4\xf7\xc3\xa7\xa2\x18\xc7\x31\x17\x13\x6c\x6e\x6c\x5f\xa8\xa3\xd0\x15\x77\xe5\xf2\x66\x55\xdd\xcc\x2f\xf3\xf3\xc9\xf2\xa0\x15\x39\x07\x4b\x3f\x02\x5b\x6a\x51\x1f\x20\x86\x41\x71\x23\x6a\x45\x50\x62\x84\xb1\x10\xbd\x25\x6a\xe1\x4d\xe4\x1d\x2d\x7b\xd6\xfd\x0c\xce\x74\x7e\x14\x96\x92\x0c\x2d\x3b\x6f\xb9\x0e\xfe\x4d\x58\x2f\x74\xec\xde\x08\x8c\x86\xd0\x48\x17\x15\xca\x2a\xc5\x97\x45\x55\x56\xb3\x24\xc3\x63\xb9\xf9\xb6\x7e\xd8\xe0\x71\x71\x7f\xbf\x58\x6d\xca\x9b\x0a\xeb\x7b\x2c\xd7\xab\xeb\x72\x53\xae\x57\x15\xd6\x5f\xb1\x58\x3d\xe1\xb6\x5c\x5d\xcf\x40\xec\x25\x59\xd0\x7e\xb0\x91\xdf\x58\x70\x8c\x91\xda\x98\x59\x45\xf4\x06\xa0\x33\x47\x20\x37\x50\xc3\x1d\x37\x50\x42\xf7\x41\xf4\x84\xde\x3c\x93\xd5\xac\x7b\x0c\x64\x77\xec\xe2\xcf\x74\x10\xba\x4d\x32\x28\xde\xb1\x17\x7e\x7a\xf3\xc7\x47\xe5\xc9\x14\xdf\xd2\xe8\x8e\xfb\x60\x69\x32\x41\x89\xa0\x1b\x19\x0b\x68\x1a\xb1\xae\xae\xe3\x49\x4a\x1a\x1a\x24\x8c\x6b\xd1\x58\x12\x9e\xa6\x7a\x1e\xeb\x39\x23\xfd\xff\xe7\xc5\xaf\x14\xf3\xf9\x6e\xdb\xb9\xe9\xb6\xa5\xc3\xd1\x21\x82\x97\x10\x6d\x8b\xd4\xb8\x36\x3f\xea\xa2\xeb\x4c\x28\x65\x46\x7c\x38\xc3\xce\xe8\x97\xca\x8e\xfb\xb3\x69\x5e\xf1\x2c\x6c\xa1\xb8\x2e\xe2\x8c\xc2\xb8\x76\x7a\x98\x47\x7b\xb1\xa5\x83\x65\xdd\xa7\xaf\x89\x82\x3b\x2d\x39\x2e\xb8\x80\x35\xc6\x5f\xb5\xd4\x89\xa0\x3c\xa4\x71\xfe\x2a\xaa\x6b\xb3\xff\x2b\xf7\xf6\x1f\x37\xfe\x0e\x00\x00\xff\xff\x5d\x88\x53\x6c\x8f\x03\x00\x00") - -func testImagesVolumeRbdOsdShBytes() ([]byte, error) { - return bindataRead( - _testImagesVolumeRbdOsdSh, - "test/images/volume/rbd/osd.sh", - ) -} - -func testImagesVolumeRbdOsdSh() (*asset, error) { - bytes, err := testImagesVolumeRbdOsdShBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/images/volume/rbd/osd.sh", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlAdminDaemonYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x8e\x31\x4e\x04\x31\x0c\x45\xfb\x9c\xc2\x17\x18\xed\x52\x6e\x6a\x4a\x0a\x24\x24\x7a\x93\xf9\x62\x22\x26\x71\x64\x9b\x15\xc7\x47\x61\x86\xec\x20\x81\x70\x15\xe5\xdb\xef\x7d\x6e\xf9\x19\x6a\x59\x6a\x24\x6e\xcd\x4e\xd7\xbb\xf0\x96\xeb\x1c\xe9\x9e\x51\xa4\x3e\xc1\x43\x81\xf3\xcc\xce\x31\x10\x55\x2e\x88\xd4\x54\x0a\x7c\xc1\xbb\x4d\x55\x66\x4c\xf8\x68\xa2\x0e\x0d\xd6\x90\xfa\x9a\x61\x45\x72\xd1\xfe\x26\x2a\xec\x69\x79\xe0\x17\xac\xb6\x7d\x10\xcd\x5f\xf4\x8d\x34\x18\x81\xc8\x51\xda\xca\x8e\xfd\xf0\x60\xee\xf3\x8f\x7d\x5b\x5a\x7f\x88\xfe\x56\x11\x7d\xb7\xed\x93\xa4\x3a\xe7\x0a\x1d\x97\xd3\xae\x4b\x83\x94\x0b\xbf\xee\xfe\xd3\xad\xc4\x88\x7b\x8b\x83\x77\xba\x31\x1f\x45\x3d\xd2\xe5\x7c\x39\x8f\x94\x68\x11\xf3\x5f\x83\x4d\x6b\xd0\x2b\xb4\x33\xc3\x67\x00\x00\x00\xff\xff\xb0\x5f\x4e\x5d\xa5\x01\x00\x00") - -func testFixturesDocYamlAdminDaemonYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlAdminDaemonYaml, - "test/fixtures/doc-yaml/admin/daemon.yaml", - ) -} - -func testFixturesDocYamlAdminDaemonYaml() (*asset, error) { - bytes, err := testFixturesDocYamlAdminDaemonYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/admin/daemon.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlAdminHighAvailabilityEtcdYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x94\x3f\x6f\xdb\x3c\x10\x87\x77\x7d\x0a\x0e\xef\x2a\xc9\xf6\x3b\x24\xe1\x56\x34\x1e\x82\x22\xb6\xd1\x16\x01\x3a\x05\x34\x75\x88\x09\x53\xa4\x70\x3c\xa9\x08\x8a\x7c\xf7\x82\x92\x42\xfd\xb3\x65\xa8\xa3\x78\xfc\x3d\x3c\x1f\x1f\x5a\x14\xea\x05\xd0\x29\x6b\x38\xab\xd6\xd1\x59\x99\x8c\xb3\x83\xcd\xa2\x1c\x48\x64\x82\x04\x8f\x18\x33\x22\x07\xce\x80\x64\x16\x3b\xc0\x0a\x30\x72\x05\x48\x5f\x39\x59\x47\x3b\xa0\xdf\x16\xcf\x9c\x11\x96\x10\x31\x26\xad\x21\xa1\x0c\xa0\xf3\x3b\x62\xa6\x72\xf1\x06\x9c\x9d\xef\x5d\xf2\x26\x31\x51\x36\xf5\x24\xbe\x49\x56\xc9\x43\xc4\xd8\x00\x1f\xb2\x75\x41\xda\x3c\x17\x26\xe3\xf5\x47\xcc\xd2\xd2\x61\xaa\xad\x14\x3a\x3d\x2a\x53\x53\xda\x4a\x1c\x7b\x46\xfb\xf1\xdf\x9f\xdd\xfe\x71\xfb\xba\xfb\xf2\xbc\xfd\x08\x75\x65\x14\x29\xa1\x63\x91\x55\x80\xa4\x1c\xc4\x05\x00\xc6\x25\x6a\xd7\xee\x39\x11\x15\x3c\x4d\xdb\xf4\xd3\xe1\x83\x6f\xfe\xbf\x5f\x05\x80\x56\x8e\xc0\x2c\x4d\x75\xc7\x49\xad\xc0\xd0\xad\xe8\xdd\xc3\xf8\xc0\xab\xb9\xf5\xe6\x2e\x59\x25\xab\x64\x3d\x8c\xf9\x3b\x8b\x33\x85\x9f\x33\xab\x04\xd6\x93\x4a\x7d\xa1\xdb\xa5\x9c\xb4\x15\xe0\x7b\x98\xd9\xe3\xd3\x8f\xaf\xfb\x97\xed\xf7\x5f\xaf\x3f\xf7\xdf\xb6\xbb\x66\x72\x85\x45\x72\x9f\xe3\x0f\x77\x73\xb0\x48\x9c\x85\xdf\xd9\x58\x30\x59\x6c\x6e\xb5\xf1\xc5\x73\xae\x51\xda\xde\x87\x94\xb0\xd8\x50\x9a\x21\x04\x4a\x65\x75\x99\xc3\xb3\x2d\x4d\xd7\x5d\xee\xbf\x0e\x82\x4e\xbc\xfb\xcd\x03\x46\x25\xb0\x67\x4c\x7f\x3b\x90\x4c\x9d\xd3\x83\xdd\x40\xb2\x5b\x42\x10\xd9\xde\xe8\xf7\xa0\xf8\x98\xe0\xc5\x74\x27\x81\x30\xe1\x94\x0e\xeb\xc2\x02\x98\xef\x7e\x8c\xa9\x04\x2e\x6d\xe7\x42\x23\xcb\x08\x5a\x1d\x2f\x51\xb4\x3a\x2e\x05\xd5\x4f\xd6\x16\x60\x2e\xe1\x7c\x71\x58\xbb\x09\xf5\x17\x76\x09\x07\x24\xff\x81\x54\x9c\x55\x4a\xed\xeb\xea\x91\x8a\xb3\xea\x56\x27\xa0\x46\xc1\xf6\x1f\xae\x36\xd7\x03\xdb\xdd\xc5\x50\xc3\xee\xe9\x8d\x4d\xbc\x1a\xed\x2b\x39\x12\xf2\x6a\x66\x2a\xe1\x25\x05\x67\xbb\x1d\x06\x83\x74\xf3\x47\x4e\x0e\xbb\x9d\xe9\xab\x35\x15\x6b\x3e\x3a\x91\xe9\x9a\x4a\xb3\xc3\x9d\x02\x06\xf2\xcc\x66\xfb\xc2\x8c\x75\xf9\x1b\x00\x00\xff\xff\xfe\xad\x78\xd0\x50\x07\x00\x00") - -func testFixturesDocYamlAdminHighAvailabilityEtcdYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlAdminHighAvailabilityEtcdYaml, - "test/fixtures/doc-yaml/admin/high-availability/etcd.yaml", - ) -} - -func testFixturesDocYamlAdminHighAvailabilityEtcdYaml() (*asset, error) { - bytes, err := testFixturesDocYamlAdminHighAvailabilityEtcdYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/admin/high-availability/etcd.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlAdminHighAvailabilityKubeApiserverYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x95\xcf\x8e\xdb\x36\x10\xc6\xef\x7e\x0a\x9e\x7a\x32\xf5\xc7\x71\xbd\x5e\x01\x5a\xa0\x48\x91\x53\x9a\x6c\x13\xa0\xd7\x82\xa6\x26\x32\x21\x8a\x14\x66\x46\xda\xfa\xed\x0b\xca\x8e\xd6\x96\x64\x1b\xce\x51\x33\xf3\xfd\x38\x1c\x7e\xa4\x54\x63\xfe\x01\x24\xe3\x5d\x26\xba\x74\x51\x19\x57\x64\xe2\xd5\x17\x8b\x1a\x58\x15\x8a\x55\xb6\x10\xc2\xa9\x1a\x32\x51\xb5\x3b\x90\xaa\x31\x04\xd8\x01\x2e\xa8\x01\x1d\x92\x7b\x4f\xfc\x05\xf8\xcd\x63\x95\x09\xc6\x16\x16\x42\x68\xef\x58\x19\x07\x48\xa1\x42\xce\x03\x84\x10\xc2\xd4\xaa\x0c\x99\x2d\x45\xa5\xc6\xc8\xf8\xf8\xb2\x28\x7b\xde\x6c\x13\x78\xda\xae\x20\xd9\xaa\x54\xa5\xfa\x79\xad\x37\xbf\x6f\xd2\xe7\x24\x49\xd3\x5d\x91\xac\x7a\x8a\xf6\x75\xad\x5c\x91\xf5\x1f\x52\xc4\x3b\xe3\x62\xda\x9f\xbe\xa4\xfe\x19\x6e\x09\x63\xeb\xb5\xb2\x7d\xc1\xe5\x42\x42\x4a\x55\x14\x08\x44\x79\xba\x7a\x8a\x92\x28\x89\x52\x21\x25\xb0\x2e\xe4\xb1\x82\xf2\x3d\x73\x93\xc5\xf1\x90\xcf\xd6\x49\x92\xf6\x70\x21\xa4\xd4\xd6\xb7\x85\x6c\xd0\x77\xa6\x00\xcc\x4b\x0d\x7d\x58\x15\xb5\xa1\x30\x5f\x19\x86\x82\xde\xe6\x5f\x54\x0d\xd4\x28\x0d\x9f\xcd\x0f\xd0\x07\x6d\x61\xf9\xd9\xd4\x86\xbf\x29\x57\x02\x2e\xbf\x83\x6e\xd1\xf0\xe1\xa3\x77\x0c\xff\xf1\x9f\xe0\x0e\xcb\xef\x80\x9d\xd1\xf0\x87\xd6\xbe\x75\xbc\xfc\x06\xe4\x5b\xd4\xf0\x77\xeb\x59\x0d\x0d\xd0\xb1\x48\x6a\xdb\x12\x03\x4a\xd3\x48\x0c\xc8\x3c\x4d\xfa\x7e\x93\x38\xdd\xf4\x7d\x1a\x70\x2c\xb5\x92\x3f\x8c\x85\x3c\x26\xec\xfa\x59\xa0\x03\x06\x8a\xb5\x8a\x34\xf2\xd9\xae\x8e\xb0\x70\x82\x39\xac\x40\x32\x10\xcb\xdd\xae\x45\x47\x43\x11\x5b\x92\x1a\x90\xe7\x89\xc7\xf1\x45\xa1\xe0\x54\xdb\xa0\xe9\x14\x83\xac\xe0\x70\x53\x52\xc1\xe1\x6c\x77\xba\x45\x90\x8d\x47\xce\xd7\xeb\x0f\x81\xe4\x2b\x70\x52\xb5\xbc\x9f\x87\x54\xce\xbf\xb9\x7f\xfb\x2a\x8a\x34\x75\x81\xd2\xe5\xab\x81\xa8\xac\xf5\x6f\x7d\x2f\xc6\x42\x09\x45\xfe\x49\x59\x02\x91\xbe\xbc\xc4\x9d\x0a\x4e\x29\x47\x1e\x89\xac\x2f\xc5\xea\xe5\xb7\xe3\x99\x87\x4e\xe8\xa7\xe5\x06\xc3\xbf\x7a\xe4\x4c\xac\xd7\x1f\x4e\xcb\x84\xdb\x31\x8e\x1d\x6f\x43\x70\x13\xcd\xcb\x9f\x92\x6d\x32\xd1\x9f\x05\xdf\x01\xf3\xfa\xed\x9c\x7e\x3b\xd6\xf7\x57\xa1\x8f\x74\xde\xb6\x35\xfc\x15\xbc\x35\xec\xa8\x0e\x5f\xaf\x8a\xf7\x99\x18\x0d\xf6\x02\x42\xd8\x85\xcc\x29\x86\xa0\x8a\xaf\xce\x1e\x86\x87\x60\x4c\xba\x3e\xd8\x51\x6b\x65\x38\xd2\x19\x00\xb0\x8e\x89\xec\x45\x35\xb0\x7e\x0f\xdd\x6d\x21\xbc\x02\xb4\x57\x08\x13\x4e\x4b\xd8\x27\x1e\x80\x85\xfd\x8c\x31\x9d\xc2\x47\xdb\x99\x69\xe4\x31\x82\x35\xbb\x39\x8a\x35\xbb\x47\x41\xfd\xfb\xe8\x1b\x70\x73\xb8\x90\xbc\xcc\xdd\x85\x86\x03\x9b\xc3\x01\xeb\x5f\x20\x35\x95\x89\xd9\xd2\x98\xd4\x54\xe6\x3d\x3a\x01\x1d\xed\x7d\xfa\x15\xf5\x17\x22\x00\x4f\xd5\xcd\x55\x8b\x8f\x0d\x7e\x55\x7b\xd7\xd4\x7c\x68\x20\x13\x9f\x8c\x85\xaf\xf8\x11\x41\x31\x2c\xe6\xbc\x7e\x75\x81\x73\xd3\x8f\x2c\x7f\x55\x33\xb5\xf9\x9c\xc9\x6f\xee\xe9\x52\x38\xd8\xfa\xf6\x92\x93\xc5\xee\x6b\xce\xcd\x3b\xb5\xee\x6d\xe9\xc4\xae\xd7\xcc\x7a\x73\xb8\x53\xc0\x85\x3d\x6f\x6a\xcf\x2d\x39\x36\xe4\xff\x01\x00\x00\xff\xff\x82\x96\x39\xcc\x5e\x09\x00\x00") - -func testFixturesDocYamlAdminHighAvailabilityKubeApiserverYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlAdminHighAvailabilityKubeApiserverYaml, - "test/fixtures/doc-yaml/admin/high-availability/kube-apiserver.yaml", - ) -} - -func testFixturesDocYamlAdminHighAvailabilityKubeApiserverYaml() (*asset, error) { - bytes, err := testFixturesDocYamlAdminHighAvailabilityKubeApiserverYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/admin/high-availability/kube-apiserver.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlAdminHighAvailabilityKubeControllerManagerYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x94\xcd\x6e\xdb\x30\x0c\xc7\xef\x79\x0a\x9d\x76\x93\x1d\x3b\x49\x9b\x19\x48\x2f\x1b\xb6\xd3\xd6\x02\x03\x76\xa7\x25\x36\x11\x22\x4b\x06\x45\x7b\xc8\x9e\x7e\x90\x9b\x36\x71\x6c\xa7\xcd\x8e\xfc\xfa\x91\x32\xff\x34\xd4\xe6\x37\x52\x30\xde\x15\xa2\xcd\x66\x7b\xe3\x74\x21\x9e\xbc\x9e\x55\xc8\xa0\x81\xa1\x98\x09\xe1\xa0\xc2\x42\xec\x9b\x12\xa5\xf2\x8e\xc9\x5b\x8b\x24\x2b\x70\xb0\x45\x9a\x85\x1a\x55\xcc\x8a\x21\x30\x0e\x29\x44\x4b\x0a\xe5\xab\x0a\x9c\x8e\x46\x34\xd3\xd2\xb8\x34\xec\x8e\x96\x54\xaf\xee\x26\x50\x6a\xbd\x02\xdb\x25\x4c\x34\x11\x52\x56\x10\x18\x69\x93\xe5\xf7\xc9\x3c\x99\x27\x59\xb1\x9e\xaf\xe7\x42\x4a\x65\x9b\x18\x90\x71\xc8\x0d\xe6\x28\x19\x03\xcb\xb2\x6c\xc8\x85\xae\x87\x38\x4b\x52\x46\xd3\x26\x9b\x27\xf9\x72\x15\x29\x69\x76\x27\xa4\x04\x1b\xfb\x33\x4a\xe7\x35\x76\x29\x61\xc3\xd4\x60\x57\xe7\x1b\x2d\x6b\xf2\xad\xd1\x48\x9b\xad\xc2\x48\x0b\x48\xad\x51\x28\x41\x29\xdf\x38\x96\x35\x99\x36\xd6\xef\xf1\x20\x9f\x8d\xc5\x4d\x1a\xa8\xed\x9e\x42\x0e\x19\x43\x1a\x0b\x90\x92\x3d\x1e\xde\x26\x6a\x37\xb9\xc8\x1e\x1e\xd2\x16\xe2\xf3\xb7\x53\x0f\x4f\xac\xdf\x0a\x29\x2d\x82\x46\x92\x68\x51\xb1\xc8\x1f\x3e\x65\x1d\xc7\x54\xb0\x8d\x8b\x59\x87\x64\xab\x28\x31\x7e\x8a\x52\x3c\x6b\xc8\x97\x77\x8b\xb5\x5e\x65\xb0\x5c\x97\x00\xd9\x42\x2d\x56\x8b\xc5\xfd\xb3\xd2\xcb\xfb\xcf\x8b\x0e\x67\x4d\x8b\x0e\x43\x78\x22\x5f\x62\x71\x9c\x74\xc7\x5c\x7f\x47\x7e\x35\x85\xa8\x81\x77\x85\x48\x77\x08\x96\x77\x7f\x4f\x6e\x4f\x5c\x88\x6c\x9e\xaf\xf2\xa3\xcf\x38\xc3\x06\xec\x57\xb4\x70\xf8\x85\xca\x3b\x1d\x0a\x91\xad\x8e\x51\x36\x15\xfa\x86\x4f\x81\xce\x7f\x5d\x69\x31\xa3\xf5\xb6\xa9\xf0\x47\xfc\xee\xe1\x55\x5a\x55\xb4\x9e\x5e\xe6\xea\x7f\xf9\x63\xb3\x17\x6c\xa0\x36\x46\x8e\x3e\x42\xd0\x8f\xce\x1e\x0a\x11\x77\x3d\x42\xfa\xc0\x66\x7a\x78\xeb\xb7\x71\xf9\x23\x24\x64\x95\x86\x60\x7b\xd9\xc8\xea\xe4\x7a\x77\x96\x78\x24\x61\x07\x84\x03\x4e\x13\xa8\x0b\xdc\x00\x8b\x0f\xbb\xc4\xb4\x40\xb7\x8e\x33\x32\xc8\x6d\x04\x6b\xca\x31\x8a\x35\xe5\xad\xa0\xee\xf7\xe1\x6b\x74\x63\xb8\x18\xec\xc7\xde\x85\xc6\x85\x8d\xe1\x90\xd5\x7f\x90\xea\xbd\x49\xd9\x86\x4b\x52\xbd\x37\x27\xef\x00\xb4\xf3\x81\x7f\x22\xff\xf1\xb4\x7f\xf3\xbd\x68\xff\xf8\x7b\x8d\x09\x5d\x93\x59\xef\x2e\x47\xf4\x7f\xa9\xfe\xc9\xda\x8f\x2b\x9e\x0f\x35\x16\xe2\x9b\xb1\xf8\x48\x5f\x08\x81\x71\x36\x76\x08\x93\x9d\xce\x2f\xe2\xe2\x1e\x26\x6b\x86\x37\x30\x76\x01\x57\x1f\xd7\x2f\x7c\xd3\xfc\xf5\x96\x83\x66\xef\xd7\x9c\x2b\x7b\xa8\xeb\xeb\xa5\x03\x2d\x4f\x29\xf9\xea\xc7\x1d\x02\x7a\xda\xbd\x5a\x7b\xae\xd7\x4b\xb5\xfe\x0b\x00\x00\xff\xff\x6e\x92\xf3\xcb\x30\x08\x00\x00") - -func testFixturesDocYamlAdminHighAvailabilityKubeControllerManagerYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlAdminHighAvailabilityKubeControllerManagerYaml, - "test/fixtures/doc-yaml/admin/high-availability/kube-controller-manager.yaml", - ) -} - -func testFixturesDocYamlAdminHighAvailabilityKubeControllerManagerYaml() (*asset, error) { - bytes, err := testFixturesDocYamlAdminHighAvailabilityKubeControllerManagerYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/admin/high-availability/kube-controller-manager.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlAdminHighAvailabilityKubeSchedulerYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x52\xc1\xae\x9b\x30\x10\xbc\xf3\x15\x7b\xea\xcd\x80\x49\xd3\x10\x4b\x2f\x97\x56\xed\xa9\x7d\x91\x2a\xf5\xbe\xd8\x1b\x70\x63\x6c\x64\x2f\x54\xe9\xd7\x57\x10\xd2\x27\xaa\x3e\xbd\x1b\x33\xb3\xcc\x68\xbc\x8b\x83\xfd\x41\x31\xd9\xe0\x15\x4c\x32\xbb\x5a\x6f\x14\x9c\x83\xc9\x7a\x62\x34\xc8\xa8\x32\x00\x8f\x3d\x29\xb8\x8e\x0d\x89\xa4\x3b\x32\xa3\xa3\x98\xa5\x81\xf4\x2c\x76\x21\xf1\x37\xe2\x5f\x21\x5e\x15\x70\x1c\x29\x03\xd0\xc1\x33\x5a\x4f\x31\xcd\x13\xe2\xff\x06\x00\x00\xb6\xc7\x76\x56\xea\x94\xb7\x3a\xe6\x36\x14\xdb\x21\xb5\x7b\x6f\xca\xa6\xbe\xd4\xcd\x4e\x52\x75\x38\xee\x0e\xbb\xea\x70\xfc\x20\xf7\x55\x7d\xd8\x1d\x1b\x7d\x5c\x5c\x74\xe8\x7b\xf4\x46\x2d\x40\x40\xd1\x58\x5f\xa4\x6e\x45\x42\x3f\xe8\x31\xc5\xc2\x05\x8d\x6e\x19\xd8\x06\x81\x10\x3d\x26\xa6\xf8\x24\xab\x43\x5e\xe6\x65\x2e\x55\x5d\xd6\x25\x08\x31\x3d\x55\x20\x84\x23\x34\x14\x05\x39\xd2\x0c\xf2\x74\x2a\x26\x9c\xdd\xda\x7f\x7c\x72\x17\xda\x25\x0f\xa0\x3a\xbd\x93\xcb\xa7\xb3\x13\x79\x4a\xe9\x1c\x43\x43\x6a\x55\x3b\xe6\xe1\x0b\xf1\x03\x02\x0c\xc8\x9d\x82\xa2\x23\x74\xdc\xfd\x7e\xa1\x43\x64\x05\xb2\xac\xf6\x72\xe5\xac\xb7\x6c\xd1\x7d\x22\x87\xb7\xef\xa4\x83\x37\x49\x81\xdc\xaf\x2a\xdb\x9e\xc2\xc8\x2f\xc2\xc2\x4f\xc1\x8d\x3d\x7d\x0d\xa3\xe7\xf4\x78\xa6\x7e\x46\xe7\x7b\xea\x9b\x65\xee\x1b\x74\xa1\xbd\x58\x47\xaf\x18\xc4\xd1\x17\x89\x74\x24\x4e\x8b\x51\xf4\xc4\x94\xe6\xa5\x26\x8a\x93\xd5\x84\x5a\xcf\xbf\x6c\x2c\x0d\x5d\x70\x74\x2c\x38\x5c\xc9\x8b\x54\xd3\x4f\xb3\xea\x91\xd0\x3c\x7b\x77\xfb\x7b\x55\xf7\x12\xeb\x49\xcd\x67\xb7\x64\x67\x9b\xe7\x7b\xb3\x08\xdf\x06\x52\xf0\xd9\x3a\x7a\x8e\x1f\x23\x21\xdf\xdb\x6c\xfb\xfd\x09\x00\x00\xff\xff\xb8\x36\x00\x0a\x16\x03\x00\x00") - -func testFixturesDocYamlAdminHighAvailabilityKubeSchedulerYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlAdminHighAvailabilityKubeSchedulerYaml, - "test/fixtures/doc-yaml/admin/high-availability/kube-scheduler.yaml", - ) -} - -func testFixturesDocYamlAdminHighAvailabilityKubeSchedulerYaml() (*asset, error) { - bytes, err := testFixturesDocYamlAdminHighAvailabilityKubeSchedulerYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/admin/high-availability/kube-scheduler.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlAdminLimitrangeInvalidPodYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\xcc\x41\x8a\xc3\x30\x0c\x05\xd0\xbd\x4f\x21\xb2\x77\x26\x61\x36\x83\xef\x30\x30\xab\xd9\x16\xd5\x16\xa9\x48\x6c\x19\xc9\x09\xf4\xf6\xc5\xa1\x04\xaa\xdd\xd7\x7f\x7c\xac\xfc\x4f\x6a\x2c\x25\xc0\x31\xbb\x95\x4b\x0a\xf0\x27\xc9\x65\x6a\x98\xb0\x61\x70\x00\x05\x33\x05\xe0\x72\xe0\xc6\xc9\x57\x49\xce\x2a\xc5\xde\x44\x29\x0d\xb9\x90\x5a\x4f\xfe\x2d\xd7\xfd\x4e\x5a\xa8\x91\x79\x23\x3d\xc8\x3f\xc4\x5a\xaf\x1c\x00\x00\x67\x5c\x3a\xfa\xb1\x71\x89\x3a\xb2\x7c\x9d\xe8\xf6\x81\x94\x4c\x76\x8d\x74\xee\xf6\xdb\x38\x73\xbb\x12\x40\xac\x7b\x80\xe1\x7b\xb8\x1e\x99\xb2\xe8\x33\xc0\x3c\x4d\xbf\xec\x5e\x01\x00\x00\xff\xff\x01\x0f\xba\xef\xd8\x00\x00\x00") - -func testFixturesDocYamlAdminLimitrangeInvalidPodYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlAdminLimitrangeInvalidPodYaml, - "test/fixtures/doc-yaml/admin/limitrange/invalid-pod.yaml", - ) -} - -func testFixturesDocYamlAdminLimitrangeInvalidPodYaml() (*asset, error) { - bytes, err := testFixturesDocYamlAdminLimitrangeInvalidPodYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/admin/limitrange/invalid-pod.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlAdminLimitrangeLimitsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x8f\x31\x8b\xc3\x30\x0c\x85\x77\xff\x0a\x91\xfd\xc0\x4e\xe0\x06\xaf\x37\xdc\x72\x07\x25\x43\x77\x11\xab\x45\x34\xb2\xdd\xd8\x29\xcd\xbf\x2f\x4e\x42\x21\xcd\x50\xa8\x27\xe9\xf9\x7d\x7a\x3c\x8c\x7c\xa4\x21\x71\xf0\x16\x6e\x46\x5d\xd8\x3b\x0b\x7f\x2c\x9c\x5b\xf4\x67\x52\x42\x19\x1d\x66\xb4\x0a\xc0\xa3\x90\x05\x99\xfa\xf2\x9d\x54\x8a\xd4\x15\x79\x59\xcb\xf4\x05\x82\xf7\x32\x94\xd7\xc5\xd1\x42\x55\x57\xeb\x2a\x24\x61\x98\x2c\x98\x5f\x9e\x15\x61\xbf\x71\xd6\x5a\xcb\x8b\xf5\xfb\x7f\xb1\xe6\x29\x92\x85\x43\x70\x73\x84\xa3\x13\x8e\x7d\xde\xc0\xcd\x1e\xae\xb5\x5e\xf1\x15\x68\xe9\x3a\x52\xca\xef\x42\xcd\x93\xfb\xbc\x8b\xd9\x9f\x6d\x36\x5d\x7e\x82\xcf\xc8\x9e\x06\xf5\x08\x00\x00\xff\xff\xb5\xd3\x47\x59\x80\x01\x00\x00") - -func testFixturesDocYamlAdminLimitrangeLimitsYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlAdminLimitrangeLimitsYaml, - "test/fixtures/doc-yaml/admin/limitrange/limits.yaml", - ) -} - -func testFixturesDocYamlAdminLimitrangeLimitsYaml() (*asset, error) { - bytes, err := testFixturesDocYamlAdminLimitrangeLimitsYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/admin/limitrange/limits.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlAdminLimitrangeNamespaceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x04\xc0\x31\x0e\x84\x40\x08\x05\xd0\x9e\x53\x70\x81\x2d\xb6\xe5\x10\x96\xf6\x3f\xce\x2f\x88\x03\x12\x87\x18\x8f\xef\x43\xf9\xce\x7b\xf9\x95\xa6\xcf\x5f\x4e\xcf\x61\xba\x21\xb8\x0a\x07\x25\xd8\x18\x68\x98\xa8\x26\x82\xa6\xd3\xc3\xfb\xc7\x17\x51\x93\xf2\x05\x00\x00\xff\xff\xa4\x0d\x06\xa4\x3f\x00\x00\x00") - -func testFixturesDocYamlAdminLimitrangeNamespaceYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlAdminLimitrangeNamespaceYaml, - "test/fixtures/doc-yaml/admin/limitrange/namespace.yaml", - ) -} - -func testFixturesDocYamlAdminLimitrangeNamespaceYaml() (*asset, error) { - bytes, err := testFixturesDocYamlAdminLimitrangeNamespaceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/admin/limitrange/namespace.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlAdminLimitrangeValidPodYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\xcd\xc1\x4a\xc6\x30\x0c\xc0\xf1\x7b\x9f\x22\x7c\xf7\x4e\x26\x08\xd2\x77\x10\x3c\x79\x95\xac\x0d\x33\xac\x6d\x4a\xd2\x0d\x7c\x7b\xe9\x18\x03\xf9\x8e\xc9\xff\x47\x82\x8d\xbf\x48\x8d\xa5\x06\x38\x66\xb7\x71\x4d\x01\x3e\x25\xb9\x42\x1d\x13\x76\x0c\x0e\xa0\x62\xa1\x00\x07\x66\x4e\xbe\x49\x72\x00\x19\x17\xca\x36\xda\x73\xb5\x46\x71\x94\x28\xb5\x23\x57\xd2\xd3\xf9\xcb\x6d\xfb\x42\x5a\xa9\x93\x79\x23\x3d\xc8\xff\x88\xf5\x91\xce\x5b\x5c\x70\x1d\xe8\xdd\xa6\x35\xea\xc4\xf2\x72\xa2\xef\x7f\x48\xc9\x64\xd7\x48\xd7\x7f\x80\xcc\x85\xfb\x3d\x01\xc4\xb6\x07\x78\xcc\x8f\x7b\x51\xa8\x88\xfe\x06\x78\x9b\x5f\x3f\xd8\xfd\x05\x00\x00\xff\xff\x50\xe8\xe9\x7f\xf4\x00\x00\x00") - -func testFixturesDocYamlAdminLimitrangeValidPodYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlAdminLimitrangeValidPodYaml, - "test/fixtures/doc-yaml/admin/limitrange/valid-pod.yaml", - ) -} - -func testFixturesDocYamlAdminLimitrangeValidPodYaml() (*asset, error) { - bytes, err := testFixturesDocYamlAdminLimitrangeValidPodYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/admin/limitrange/valid-pod.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlAdminNamespacesNamespaceDevJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\xcb\xa1\x0e\x02\x31\x10\x84\x61\xdf\xa7\x98\xac\xc6\x60\xef\x21\x90\xf8\x81\x8e\x68\x68\xf7\x1a\xda\x9c\x21\xf7\xee\x64\x8f\x04\x77\x62\xcd\xfc\xdf\x7e\x12\x60\xaf\xe2\xd9\x16\xd8\x8d\x4d\xa3\xf3\x29\xbb\xc4\xcc\x5e\xee\x7a\x8f\xb2\x7a\xc4\xed\xfa\x5b\x9b\x26\x33\x27\x6d\x41\x3c\x03\xe6\x6c\x0a\x91\xb5\xa9\xae\xbd\xc9\xe7\x41\x01\xab\x7c\xa8\x8e\x3f\x3d\xc1\x47\xdb\x53\xdc\x9e\xbe\x01\x00\x00\xff\xff\x99\xf7\x0a\x5a\x92\x00\x00\x00") - -func testFixturesDocYamlAdminNamespacesNamespaceDevJsonBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlAdminNamespacesNamespaceDevJson, - "test/fixtures/doc-yaml/admin/namespaces/namespace-dev.json", - ) -} - -func testFixturesDocYamlAdminNamespacesNamespaceDevJson() (*asset, error) { - bytes, err := testFixturesDocYamlAdminNamespacesNamespaceDevJsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/admin/namespaces/namespace-dev.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlAdminNamespacesNamespaceProdJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xaa\xe6\x52\x50\x50\xca\xce\xcc\x4b\x51\xb2\x52\x50\xf2\x4b\xcc\x4d\x2d\x2e\x48\x4c\x4e\x55\xd2\x01\x09\x27\x16\x64\x86\xa5\x16\x15\x67\xe6\xe7\x81\x24\xcb\x0c\x21\xa2\xb9\xa9\x25\x89\x29\x89\x25\x89\x4a\x56\x0a\x20\xcd\x0a\x0a\x4a\x79\x89\xb9\xa9\x20\x15\x05\x45\xf9\x29\xa5\xc9\x25\x20\xf5\x3a\x10\x99\x9c\xc4\xa4\xd4\x9c\x62\xb8\x4a\xec\x6a\xc1\x52\xb5\x5c\x20\x5c\xcb\x05\x08\x00\x00\xff\xff\xa0\x41\x9f\x81\x90\x00\x00\x00") - -func testFixturesDocYamlAdminNamespacesNamespaceProdJsonBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlAdminNamespacesNamespaceProdJson, - "test/fixtures/doc-yaml/admin/namespaces/namespace-prod.json", - ) -} - -func testFixturesDocYamlAdminNamespacesNamespaceProdJson() (*asset, error) { - bytes, err := testFixturesDocYamlAdminNamespacesNamespaceProdJsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/admin/namespaces/namespace-prod.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlAdminResourcequotaLimitsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x8b\x31\x0e\xc2\x30\x0c\x45\xf7\x9c\xc2\x17\x40\x6a\x2b\x95\xc1\x2b\x2b\x2c\x1d\xd8\xad\xd6\x20\x8b\xda\x0d\x89\x83\xd4\xdb\xa3\x40\x16\x84\x27\xbf\xf7\xf5\x28\xca\x95\x53\x96\xcd\x10\x5e\x7d\x78\x88\x2d\x08\x67\x51\xf1\x89\xec\xce\x41\xd9\x69\x21\x27\x0c\x00\x46\xca\x08\x6b\x1d\x73\xc8\x91\xe7\x2a\xbf\x58\xbf\x03\x2c\x7c\xa3\xb2\x7a\x85\x7a\x73\x2c\x08\x43\xd7\x69\x63\x65\xdd\xd2\x8e\x30\xf6\xc3\x45\x3e\xae\x05\x13\x3f\x0b\xe7\xdf\xae\xff\xef\x86\xf1\xd8\x3a\xdf\x23\x23\x9c\x36\x73\x12\xe3\x14\xde\x01\x00\x00\xff\xff\xc1\xba\xa5\x77\xc6\x00\x00\x00") - -func testFixturesDocYamlAdminResourcequotaLimitsYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlAdminResourcequotaLimitsYaml, - "test/fixtures/doc-yaml/admin/resourcequota/limits.yaml", - ) -} - -func testFixturesDocYamlAdminResourcequotaLimitsYaml() (*asset, error) { - bytes, err := testFixturesDocYamlAdminResourcequotaLimitsYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/admin/resourcequota/limits.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlAdminResourcequotaNamespaceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x04\xc0\xb1\x11\x84\x40\x08\x05\xd0\x9c\x2a\x68\xe0\x82\x4b\x29\xc2\xd0\xfc\x8f\xfb\x83\x1d\x85\x45\x17\x1d\xcb\xf7\x21\xfb\xca\x6b\xf6\x11\xa6\xcf\x5f\xf6\x1e\xcd\x74\x81\x73\x26\x36\x8a\xb3\xd0\x50\x30\x51\x0d\x38\x4d\xcf\x7b\x14\x7e\x7c\xe1\x79\x50\xbe\x00\x00\x00\xff\xff\x4d\x03\x2d\x13\x3f\x00\x00\x00") - -func testFixturesDocYamlAdminResourcequotaNamespaceYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlAdminResourcequotaNamespaceYaml, - "test/fixtures/doc-yaml/admin/resourcequota/namespace.yaml", - ) -} - -func testFixturesDocYamlAdminResourcequotaNamespaceYaml() (*asset, error) { - bytes, err := testFixturesDocYamlAdminResourcequotaNamespaceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/admin/resourcequota/namespace.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlAdminResourcequotaQuotaYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4c\x8e\x31\x6a\x05\x31\x0c\x44\xfb\x3d\x85\xf0\x09\xb2\x81\x34\xbe\x40\xea\xa4\x48\x2f\x64\x41\x44\x6c\xcb\x91\xe4\x85\xdc\x3e\xd8\xff\x17\x5b\x89\xf7\x60\x34\x83\x43\xbe\xd8\x5c\xb4\x67\xb8\xce\xe3\x47\x7a\xc9\xf0\xc9\xae\xd3\x88\x3f\xa6\x06\x1e\x8d\x03\x0b\x06\xe6\x03\xa0\x63\xe3\x0c\xbf\xdb\xfb\x60\x5a\xee\x1b\xad\xac\x0b\x40\x63\x66\x48\xaf\x2f\x69\x53\xe3\xa6\xf6\x97\xe1\x7c\x97\xcd\x63\xf5\x78\x70\x8f\x4b\xeb\x6c\x4c\x15\xa5\x79\x86\x74\x3e\x03\x43\xcb\x1d\x8d\x47\x15\xc2\x10\xed\xa4\x3d\x4c\x6b\x65\xf3\x5b\x81\x3d\x67\xee\x39\x3b\xf9\xf0\xce\x64\x1c\xf7\x57\xce\x76\x09\xf1\x52\x6f\xe9\xf8\x0f\x00\x00\xff\xff\x9d\x63\xab\x79\xf4\x00\x00\x00") - -func testFixturesDocYamlAdminResourcequotaQuotaYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlAdminResourcequotaQuotaYaml, - "test/fixtures/doc-yaml/admin/resourcequota/quota.yaml", - ) -} - -func testFixturesDocYamlAdminResourcequotaQuotaYaml() (*asset, error) { - bytes, err := testFixturesDocYamlAdminResourcequotaQuotaYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/admin/resourcequota/quota.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuideConfigmapConfigmapYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\xc8\x0c\x4b\x2d\x2a\xce\xcc\xcf\xb3\x52\x28\x33\xe4\xca\xce\xcc\x4b\xb1\x52\x70\xce\xcf\x4b\xcb\x4c\xf7\x4d\x2c\xe0\xca\x4d\x2d\x49\x4c\x49\x2c\x49\xb4\xe2\x52\x50\xc8\x4b\xcc\x4d\xb5\x52\x28\x49\x2d\x2e\xd1\x4d\x06\x2b\xc8\x4d\x2c\xe0\x82\x49\x82\x68\x5d\x43\x2b\x85\xb2\xc4\x9c\xd2\x54\x5d\x43\x98\x88\x11\x4c\xc4\x88\x0b\x10\x00\x00\xff\xff\x21\xcc\x3c\xb6\x6a\x00\x00\x00") - -func testFixturesDocYamlUserGuideConfigmapConfigmapYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuideConfigmapConfigmapYaml, - "test/fixtures/doc-yaml/user-guide/configmap/configmap.yaml", - ) -} - -func testFixturesDocYamlUserGuideConfigmapConfigmapYaml() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuideConfigmapConfigmapYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/configmap/configmap.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuideDeploymentYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\xce\xbd\x6e\xc3\x30\x0c\x04\xe0\x5d\x4f\x71\x2f\x60\xb4\x45\x97\x42\x73\xc7\x0e\x9d\xb2\x33\x32\xe1\x08\x91\x28\x42\x22\x82\xe4\xed\x03\x21\x3f\xb6\x63\xe4\x46\xe1\xbb\x13\x49\xe3\x8e\x6b\x8b\x45\x3c\x48\xb5\x7d\x9c\xbe\xdc\x31\xca\xe8\xf1\xcb\x9a\xca\x25\xb3\x98\xcb\x6c\x34\x92\x91\x77\x80\x50\x66\x0f\x99\xa2\x9c\x87\x71\x26\x40\xa2\x3d\xa7\xd6\xc9\x5b\xd4\x94\x43\x07\x95\x35\xc5\x40\xcd\xe3\xdb\x01\x8d\x13\x07\x2b\xf5\x56\xcd\x64\xe1\xf0\xb7\xd8\x5a\xad\x39\xc0\x38\x6b\x22\xe3\x3b\x5f\x9c\xd6\x93\x56\xcd\xd7\x2e\xf0\x38\xa1\x27\x14\x31\x8a\xc2\xf5\xe9\x87\x8d\xef\x89\x99\xa6\xcd\xa3\x96\x6a\x8b\x7f\x86\x79\xed\xbf\x54\xf3\xf8\xf9\x74\xd7\x00\x00\x00\xff\xff\x93\x04\x6f\x26\x5c\x01\x00\x00") - -func testFixturesDocYamlUserGuideDeploymentYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuideDeploymentYaml, - "test/fixtures/doc-yaml/user-guide/deployment.yaml", - ) -} - -func testFixturesDocYamlUserGuideDeploymentYaml() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuideDeploymentYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/deployment.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuideDownwardApiDapiPodYamlIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x90\x4d\x4b\xf3\x40\x14\x85\xf7\xf9\x15\x97\xac\xdf\xb4\xbc\xdb\xd9\xb5\x7e\x60\x17\x6d\x07\x2b\x82\x88\x94\xeb\xcc\xad\x19\xcc\x7c\x30\x73\x13\x2c\xa5\xff\x5d\x26\xc4\x1a\x41\xdd\xa8\x9b\x90\x39\xcf\xe1\x3c\xc3\x60\x30\xb7\x14\x93\xf1\x4e\x40\xf7\xbf\x78\x36\x4e\x0b\x90\x5e\x17\x96\x18\x35\x32\x8a\x02\xc0\xa1\x25\x01\x1a\x83\xa9\x98\x12\x57\xc1\xeb\x22\x05\x52\x99\x29\xef\x18\x8d\xa3\x98\xf2\x09\xa0\x1a\xda\x7d\xf1\x04\x7b\x04\x60\x2c\x3e\x91\x80\xc3\x61\x32\x6f\xd3\x7e\xee\x5f\x16\x39\x38\x1e\x07\xac\xbc\xb5\x98\x2f\x70\x0f\xe5\xf4\xd1\xb8\x69\xaa\xcb\x7f\x50\x56\x2a\x7f\xc9\x75\x25\x3c\x0c\x4d\x72\x9d\x18\x7e\xdf\x95\xcb\xbb\xad\x5c\x9f\x6f\x57\xb3\xe5\xc5\x89\x01\x74\xd8\xb4\x74\x19\xbd\x15\xa3\x10\x60\x67\xa8\xd1\xd7\xb4\xfb\x98\x0e\xb9\x44\xae\x05\xbc\x3d\xc1\x24\xcf\x7f\x67\xdb\xc8\xd9\xd9\x1f\x28\x53\x40\xf5\xa5\x77\x21\x7f\x45\x98\x18\xb9\x4d\x93\xe0\xf5\x68\x70\xa4\xba\x5a\x6f\x6e\x7e\xe4\xfa\x44\x56\xfb\xc4\xfd\x64\xa4\xc4\x18\x59\xfa\xc6\xa8\xbd\x80\x15\x75\x14\x8b\xd7\x00\x00\x00\xff\xff\x17\xac\xa1\x83\x92\x02\x00\x00") - -func testFixturesDocYamlUserGuideDownwardApiDapiPodYamlInBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuideDownwardApiDapiPodYamlIn, - "test/fixtures/doc-yaml/user-guide/downward-api/dapi-pod.yaml.in", - ) -} - -func testFixturesDocYamlUserGuideDownwardApiDapiPodYamlIn() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuideDownwardApiDapiPodYamlInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/downward-api/dapi-pod.yaml.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuideJobYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\x8e\xcf\x6a\xc3\x30\x0c\x87\xef\x7e\x0a\xe1\xd3\x06\x09\xcb\x76\x34\xec\x05\x06\x1b\x3b\xed\x32\x7a\x90\x1d\x91\x8a\xfa\x1f\xb6\x9a\xd2\xb7\x2f\x82\x26\xb4\xbf\x8b\xa4\x8f\x4f\x42\x58\xf9\x8f\x5a\xe7\x92\x1d\x78\x94\x70\x7c\x5b\xdf\xcd\x89\xf3\xec\xe0\xab\x78\x93\x48\x70\x46\x41\x67\x00\x32\x26\x72\x50\xd9\xf4\x4a\x41\x81\x50\xaa\x11\x85\xb4\x07\x78\x54\x35\xbb\xae\xc3\xb6\xa2\x09\x25\x0b\x72\xa6\xd6\x37\x32\x3e\xcb\x1a\x4e\xb8\x28\xa1\x16\x77\x16\x4a\x4a\xa8\x9f\xfd\x5b\xe5\x76\x00\xb0\xe3\xb7\xe7\x25\x9f\xd3\xa7\xaf\x6c\x07\xb0\xe3\x25\x92\xd6\xda\x38\x0b\xf8\xca\x2f\x1f\xd3\x34\xbd\xda\xc3\xfd\x4a\xa3\x2e\xd8\xe4\xb7\x44\x0e\x57\x07\x3f\xb4\x52\x33\xe6\x16\x00\x00\xff\xff\x88\x8f\xaf\xe9\x06\x01\x00\x00") - -func testFixturesDocYamlUserGuideJobYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuideJobYaml, - "test/fixtures/doc-yaml/user-guide/job.yaml", - ) -} - -func testFixturesDocYamlUserGuideJobYaml() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuideJobYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/job.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuideLivenessExecLivenessYamlIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x90\xbf\x6e\xc2\x30\x10\xc6\xf7\x3c\xc5\xf7\x02\x6e\x92\xa1\x1d\x8c\xd4\x01\x75\xe9\x86\x54\xa9\xfb\xc5\xb9\x92\x13\xfe\x13\xd9\x07\x02\x21\xde\xbd\x4a\x08\x0a\x03\xdb\x77\xbf\xcf\x3e\xff\x64\x1a\xe5\x97\x73\x91\x14\x2d\x4e\x6d\x75\x90\xd8\x5b\xec\x52\x5f\x05\x56\xea\x49\xc9\x56\x80\xa7\x8e\x7d\x99\x12\xa0\x5c\xd4\xc2\xcb\x89\x23\x97\x52\x01\x91\x02\xaf\xc0\xf0\x99\x5d\x55\x46\x76\xd3\x71\x97\xa2\x92\x44\xce\xf3\x65\x03\xca\xfb\x65\x8d\x41\xdd\x49\xac\xcb\xb0\x4c\xc6\x2d\x81\xdd\x90\x90\x0e\xf8\x44\xad\x61\xac\x07\x26\xaf\xc3\x06\xc5\x33\x8f\x68\x9b\x0d\x72\x80\xc9\x7f\xaf\xda\x8f\xa6\x99\x97\x48\xa0\x3d\x5b\x5c\xaf\x6f\xdb\x63\xb9\x6c\xd3\xf9\x7b\x02\xb7\xdb\x5c\x3e\x44\x77\x39\x75\x7c\x77\x01\x26\xe9\x47\x9e\xac\x43\xa0\xd8\xaf\xc0\xc0\x91\x3e\x4d\x4f\x6f\x2f\x54\xa2\xa8\x90\xff\x62\x4f\x97\x1f\x76\x29\xf6\xc5\xa2\x7d\x5f\x5a\x95\xc0\xe9\xa8\x6b\x31\xf3\x57\x1f\xf7\x1f\x00\x00\xff\xff\x27\xa4\xbd\xd0\x8f\x01\x00\x00") - -func testFixturesDocYamlUserGuideLivenessExecLivenessYamlInBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuideLivenessExecLivenessYamlIn, - "test/fixtures/doc-yaml/user-guide/liveness/exec-liveness.yaml.in", - ) -} - -func testFixturesDocYamlUserGuideLivenessExecLivenessYamlIn() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuideLivenessExecLivenessYamlInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/liveness/exec-liveness.yaml.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuideLivenessHttpLivenessYamlIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x90\xbd\x4e\xc3\x30\x14\x85\xf7\x3c\xc5\x79\x01\x43\x3b\x20\x55\xde\x2a\x90\x80\xad\x12\x12\x62\xbd\x6d\x8e\x12\x0b\xff\x44\xf1\x4d\x10\x54\x7d\x77\x94\xd4\x21\x1d\xf0\x64\x7f\xe7\xc7\xf6\x95\xce\xbd\xb3\xcf\x2e\x45\x8b\x71\x5b\x7d\xba\x58\x5b\x1c\x52\x5d\x05\xaa\xd4\xa2\x62\x2b\xc0\xcb\x91\x3e\x4f\x3b\x40\x99\xd5\xc2\xbb\x91\x91\x39\x57\x40\x94\xc0\x15\x98\x56\xb5\xab\x72\xc7\xd3\x64\x3f\xa5\xa8\xe2\x22\xfb\x39\x6c\x20\x7d\x53\x6a\xcc\x6d\x05\xe0\x82\x34\xb4\x38\x9f\xef\xf6\x4d\x6c\x53\xd6\xd7\x09\x5c\x2e\xb3\xb8\x38\x0f\x7d\x3a\xf2\x1a\x07\xa6\x7b\x9e\xa9\xcb\x11\xe8\x44\x5b\x8b\xfb\x96\xe2\xb5\xfd\x59\x71\xea\xd5\x62\xb7\xd9\x6d\xfe\xd0\x14\x7d\xa1\xd4\xe5\x59\xcb\x32\xe5\x2b\x1f\xe6\x71\xc8\x9a\x82\xb9\x7a\x6e\x1c\xc0\x28\x7e\xa0\xc5\xfe\x8b\x39\x05\x16\xc9\x45\xa7\x4e\xfc\x13\xbd\x7c\xbf\xf1\x94\x62\x9d\x2d\xb6\x0f\x45\x55\x17\x98\x06\x5d\x85\x99\xff\x37\xb5\xdf\x00\x00\x00\xff\xff\xc9\xfd\x2a\x58\x8c\x01\x00\x00") - -func testFixturesDocYamlUserGuideLivenessHttpLivenessYamlInBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuideLivenessHttpLivenessYamlIn, - "test/fixtures/doc-yaml/user-guide/liveness/http-liveness.yaml.in", - ) -} - -func testFixturesDocYamlUserGuideLivenessHttpLivenessYamlIn() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuideLivenessHttpLivenessYamlInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/liveness/http-liveness.yaml.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuideMultiPodYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x52\x4d\x6b\xc2\x40\x10\xbd\xef\xaf\x18\x72\x5f\x35\x16\x5b\xba\xb7\x42\x3d\x14\xaa\x48\x95\xde\xd7\x64\xd0\xc5\xfd\x08\xbb\x93\x80\x94\xfe\xf7\x92\x4f\x37\xd6\x43\x4b\x69\x4e\x9b\x37\xf3\xe6\xe3\xcd\xe3\x9c\x33\x59\xa8\x77\xf4\x41\x39\x2b\xa0\x4a\xd9\x49\xd9\x5c\xc0\xc6\xe5\xcc\x20\xc9\x5c\x92\x14\x0c\x40\xcb\x3d\xea\x50\xbf\x00\xac\x34\x28\xc0\x63\xae\x42\xf3\xdf\xbc\x78\x40\x4b\xca\xa2\x16\x90\x90\x2f\x31\x69\x43\x4e\xa3\x00\x23\x03\xa1\x67\x23\x26\xef\xc0\x50\x60\x56\x97\xcd\x9c\x25\xa9\x2c\xfa\xae\x09\xef\x92\x07\x6e\xfd\x29\x23\x0f\x28\xe0\x90\xf9\x89\x72\xd3\x53\xb9\x47\x6f\x91\x30\x70\x9c\x23\x27\x0c\xc4\x9b\x8c\x30\x6d\x5a\x88\x74\x32\xeb\x88\x68\x2b\xd1\x3d\x2f\xa5\x57\x4f\xdb\xdd\xf2\x6d\x80\x01\x2a\xa9\x4b\x1c\xcd\x0f\x50\x38\x4f\x21\xe6\x0e\x83\x6e\x9c\x27\x01\xf7\x77\x0f\x8f\x5d\xd4\x63\x70\xa5\xcf\x30\x4a\xd7\xca\xa8\x98\x0e\x90\x15\xa5\x80\x64\x36\x59\xf4\x0d\x2a\xa7\x4b\x83\x2b\x57\xda\x71\x1f\x53\x23\x1b\x49\x47\x01\xd3\x58\x31\x5e\x9f\x24\x2a\xd8\xee\x32\x80\xfd\x72\xfd\x39\xfe\x45\xb9\xed\x72\xbd\x7b\x59\x2f\x5f\xff\xa8\xdd\xbc\x13\xaf\x95\xe0\xea\xf0\xd1\x9a\x68\x0a\x3a\x3f\x2b\x2f\xe0\xe3\x93\xfd\xd8\xb2\x6d\x99\x4a\x6a\x95\xf3\xc2\xe5\x37\x4d\x7c\x89\xde\xf6\x61\x3f\x4c\x24\x58\x40\x5f\x21\x3f\xba\x40\x75\x88\xfd\x4a\xdc\x31\x77\x50\xf9\x9b\x71\xae\x6d\xd3\x9a\x26\x4d\x06\xc0\xa0\x71\xfe\x2c\x60\x91\xce\x57\x8a\x7d\x05\x00\x00\xff\xff\x49\x13\x6b\xed\xc6\x03\x00\x00") - -func testFixturesDocYamlUserGuideMultiPodYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuideMultiPodYaml, - "test/fixtures/doc-yaml/user-guide/multi-pod.yaml", - ) -} - -func testFixturesDocYamlUserGuideMultiPodYaml() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuideMultiPodYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/multi-pod.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim01Yaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x34\xca\xb1\x0a\x02\x31\x10\x84\xe1\x3e\x4f\x31\x2f\x70\xc5\x61\x97\xd6\xc2\x4a\x14\x8b\xb3\x5e\x92\x41\x82\x97\xe4\xdc\xdd\x13\x7c\x7b\x09\x68\xf9\xcf\x7c\xcf\xd2\x72\xc4\x95\x6a\xc5\x9c\xcd\x97\xbe\xee\x95\xc7\x55\x4a\x0d\xb2\x95\x65\x1c\xbd\x45\xbc\xe7\x50\xe9\x92\xc5\x25\x06\xa0\x49\x65\x44\xfd\xa4\x01\xa7\x39\xd8\xc6\x34\x76\x49\x89\x66\xe7\x9e\x69\x23\x81\x09\x37\x4a\xbe\x6b\x71\x5e\x5a\x62\x00\x94\xd6\x77\x4d\x7f\xa0\x7c\xed\x34\xff\x15\x60\xde\x55\x1e\x8c\x38\x9c\x4a\xf8\x06\x00\x00\xff\xff\x87\xb5\xc5\xba\x9e\x00\x00\x00") - -func testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim01YamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim01Yaml, - "test/fixtures/doc-yaml/user-guide/persistent-volumes/claims/claim-01.yaml", - ) -} - -func testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim01Yaml() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim01YamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/persistent-volumes/claims/claim-01.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim02Yaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x34\xca\xb1\x0a\x02\x31\x10\x84\xe1\x3e\x4f\x31\x2f\x70\x85\x56\x92\xd6\xc2\x4a\x14\x8b\xb3\x5e\x92\x41\x82\x97\xe4\xdc\xdd\x13\x7c\x7b\x09\x68\xf9\xcf\x7c\xcf\xd2\x72\xc4\x95\x6a\xc5\x9c\xcd\xe7\xbe\x6c\x95\xc7\x45\x4a\x0d\xb2\x96\x79\x1c\xbd\x45\xbc\x77\xa1\xd2\x25\x8b\x4b\x0c\x40\x93\xca\x88\xfa\x49\x03\x4e\xfb\x60\x2b\xd3\xd8\x25\x25\x9a\x9d\x7b\xa6\x8d\x04\x26\xdc\x28\xf9\xae\xc5\x79\x69\x89\x01\x50\x5a\xdf\x34\xfd\x81\xf2\xb5\xd1\xfc\x57\x80\x79\x57\x79\x30\xe2\x70\x2a\xe1\x1b\x00\x00\xff\xff\x1e\x84\x80\xc1\x9e\x00\x00\x00") - -func testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim02YamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim02Yaml, - "test/fixtures/doc-yaml/user-guide/persistent-volumes/claims/claim-02.yaml", - ) -} - -func testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim02Yaml() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim02YamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/persistent-volumes/claims/claim-02.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim03Json = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x8f\x31\x4b\xc6\x30\x10\x86\xf7\xfc\x8a\xe3\xe6\x0a\x16\xb7\xae\x0e\x4e\xa5\xe2\x50\x07\x71\x38\x92\x43\x82\x4d\x52\x73\xa9\x50\x4a\xfe\xbb\x24\xd5\x4a\xf8\xb6\xe3\x7d\x9e\x7b\x8f\x3b\x14\x00\x00\x7e\x5a\x6f\x70\x00\x7c\xe6\x28\x56\x12\xfb\x34\x87\x65\x73\xfc\xb8\x90\x75\xd8\x9d\x12\xad\x76\x2e\x3c\xf8\xa2\x7e\xf7\x7f\xb9\xe3\x44\x86\x12\xe1\x00\x67\x5d\x4d\x3d\x39\x2e\x9e\xdb\x75\x29\xb9\x7b\xc0\xca\x72\x07\x28\x2b\xeb\x56\x26\xad\x59\x64\x0c\x86\x05\x07\x78\xbb\x40\x85\x2f\x4c\xe6\x35\xda\xc4\x93\xd7\xfc\x7b\xb4\x81\x93\x5f\xf6\x91\xfc\x8e\x17\x7a\xff\xb7\x30\xb2\x84\x2d\xea\xda\x7c\xb4\xcb\x91\xbf\x36\x96\x74\x4b\x2a\x95\x14\x22\x7d\xd4\x27\xfa\xfb\x27\x6c\x84\xac\xda\x29\xab\xac\x7e\x02\x00\x00\xff\xff\xfa\x56\x3a\xe5\x4c\x01\x00\x00") - -func testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim03JsonBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim03Json, - "test/fixtures/doc-yaml/user-guide/persistent-volumes/claims/claim-03.json", - ) -} - -func testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim03Json() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim03JsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/persistent-volumes/claims/claim-03.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuidePersistentVolumesVolumesGceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4c\xce\xb1\x6a\xc4\x30\x0c\xc6\xf1\xdd\x4f\x21\xb2\x17\x9c\xa6\x93\xe7\x42\xa7\x34\xa5\x94\x74\xd6\xc9\xba\x60\x92\xd8\x26\xd2\x85\xf3\xdb\x1f\x4e\x86\xbb\x4d\xfc\xd0\x07\xff\x39\x44\xef\xe0\x87\x37\x09\xa2\x1c\x75\x4c\xcb\x6d\x65\x83\x39\x8c\xd5\x52\x74\xb0\xb7\x66\x65\x45\x8f\x8a\xce\x00\x44\x5c\xd9\x41\xde\xad\xb5\x9d\x91\xcc\x54\x91\x30\x23\x05\x2d\xf5\x06\x10\x4d\x1b\x4e\xec\xa0\xb5\x5f\xc1\x00\x20\x11\x8b\xf4\xc9\xb3\x9c\x0f\x6f\xf0\xcb\xe8\xff\xb7\xa0\x3c\x44\xe2\x17\x1b\xe2\x52\x7a\x8c\xc5\x00\x4c\xc4\xcf\xae\xcf\x20\xf3\xb9\xcd\xfe\xfb\x28\x68\xf0\x42\xed\x7b\xd7\x1c\x78\x95\xbf\x92\x2b\xf2\x5d\x3f\x1a\xf3\x08\x00\x00\xff\xff\x23\x32\x13\xb0\xd6\x00\x00\x00") - -func testFixturesDocYamlUserGuidePersistentVolumesVolumesGceYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuidePersistentVolumesVolumesGceYaml, - "test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/gce.yaml", - ) -} - -func testFixturesDocYamlUserGuidePersistentVolumesVolumesGceYaml() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuidePersistentVolumesVolumesGceYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/gce.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuidePersistentVolumesVolumesLocal01Yaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x2c\x8e\x3d\x6a\xc0\x30\x0c\x46\x77\x9d\xe2\x23\x7b\x89\xbd\xfa\x02\x9d\x4a\x43\x87\x74\x56\x6d\xd1\x98\xfa\x8f\x48\x0d\xe4\xf6\xc5\xa4\xdb\xe3\x3d\x21\xbe\x9f\xdc\x52\xc0\x26\xa7\x66\x35\x69\xb6\xf7\xf2\x5b\x85\x78\xe4\x7d\xba\xde\x02\x2e\x4f\x55\x8c\x13\x1b\x07\x02\x1a\x57\x09\x18\x97\x73\xce\x13\x50\xf8\x4b\x8a\xce\x00\xd8\x3d\x24\xa0\xf4\xc8\x85\x74\x48\x9c\x36\xf2\xe0\x98\xed\x7e\x2e\xd4\xfa\xc9\xdf\x12\xe0\xdd\x6b\x26\x80\x63\x14\xd5\xb7\x9e\xe4\xff\xc5\x0b\x3e\x84\xd3\xe7\x99\x4d\xde\x5b\x14\x02\x8e\xae\xb6\xb1\x1d\x4f\x1f\x93\xb0\xac\xda\xab\x4c\x5e\xe7\x2c\xe7\x17\xfa\x0b\x00\x00\xff\xff\xd4\x69\x2f\xa0\xc9\x00\x00\x00") - -func testFixturesDocYamlUserGuidePersistentVolumesVolumesLocal01YamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuidePersistentVolumesVolumesLocal01Yaml, - "test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/local-01.yaml", - ) -} - -func testFixturesDocYamlUserGuidePersistentVolumesVolumesLocal01Yaml() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuidePersistentVolumesVolumesLocal01YamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/local-01.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuidePersistentVolumesVolumesLocal02Yaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x8f\x31\x6a\x03\x41\x0c\x45\x7b\x9d\xe2\xe3\x3e\x78\xe3\x2a\xcc\x05\x52\x85\x2c\x5b\x38\xb5\xa2\xfd\xc4\x43\x66\x67\x86\x95\x62\xd8\xdb\x87\xc1\xa9\xd2\x3d\xde\x13\x42\xfa\xce\x75\x4d\x98\xb9\x7b\xf6\x60\x8d\x6b\x2b\x3f\x1b\x45\x7b\xbe\x0e\xd7\x6a\xc2\xfd\x59\x36\x86\xae\x1a\x9a\x04\xa8\xba\x31\xa1\xdf\xa7\x69\xba\x08\x50\xf4\x93\xc5\x47\x00\xe2\xe8\x4c\x28\xcd\xb4\x88\x77\xda\xb0\xa6\x5d\x2d\xc7\xf1\x98\xf0\x68\xbb\x7e\x31\xe1\xe5\x35\x0b\xa0\x66\x74\x7f\x6b\x2b\xff\x36\x3c\x61\xa1\xae\x1f\x7b\x0e\xbe\x57\xa3\x00\xb7\xe6\x31\x6b\xdc\x1e\xbd\x0f\xc2\xe9\xec\x6d\xe3\xe0\xf3\xb8\x6a\xba\x9c\x04\xe8\xff\x7e\x58\x68\x45\xf3\x36\xb7\x92\xed\x48\x58\x68\x87\x15\xca\x6f\x00\x00\x00\xff\xff\x1e\x18\x48\xf3\xf1\x00\x00\x00") - -func testFixturesDocYamlUserGuidePersistentVolumesVolumesLocal02YamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuidePersistentVolumesVolumesLocal02Yaml, - "test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/local-02.yaml", - ) -} - -func testFixturesDocYamlUserGuidePersistentVolumesVolumesLocal02Yaml() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuidePersistentVolumesVolumesLocal02YamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/local-02.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuidePersistentVolumesVolumesNfsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x2c\x8c\x4d\xaa\x02\x31\x10\x06\xf7\x39\x45\x5f\xe0\xcd\xcb\x8c\xc8\x40\x2e\xe0\x4a\x14\x17\xe3\xba\x49\x3e\x35\x68\x7e\x48\xb7\x03\xde\x5e\xc2\xb8\x2b\xaa\xa0\xb8\xc6\x05\x4d\x62\xc9\x8e\xd6\xd1\x3c\x63\x0e\x8e\xce\xdd\x88\x22\xeb\x52\x5e\xef\x04\x93\xa0\x1c\x58\xd9\x19\xa2\xcc\x09\x8e\xea\x6a\xad\xdd\x19\xa9\xf0\x5d\x7a\xae\xec\xa3\x7e\x3a\x13\x89\x96\xc6\x77\x38\xda\x1f\xa2\x21\x62\xef\x21\x72\x2c\x01\xb2\xf5\x3f\xba\x80\xc3\xb5\x45\xc5\x29\x7b\xf4\xe9\xed\x97\x2a\xeb\xc3\xd1\xbf\x94\x84\x8e\xdb\x0e\x6d\x45\x73\x34\xce\xd3\x30\xce\x83\x1d\x26\xf3\x0d\x00\x00\xff\xff\xe0\xa5\xa0\x46\xb7\x00\x00\x00") - -func testFixturesDocYamlUserGuidePersistentVolumesVolumesNfsYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuidePersistentVolumesVolumesNfsYaml, - "test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/nfs.yaml", - ) -} - -func testFixturesDocYamlUserGuidePersistentVolumesVolumesNfsYaml() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuidePersistentVolumesVolumesNfsYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/nfs.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuidePodYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\xcc\x41\x0a\xc2\x40\x0c\x85\xe1\xfd\x9c\xe2\x5d\xa0\xa0\x3b\xc9\x29\xba\x72\x1f\x3b\xa1\x04\x3b\x49\x98\x09\xe2\xf1\xa5\xa2\x88\xdd\x7e\xc9\xff\x38\xf4\x2a\x7d\xa8\x1b\xe1\x71\x2e\x77\xb5\x4a\x98\xbd\x96\x26\xc9\x95\x93\xa9\x00\xc6\x4d\x08\xb6\xaa\x3d\x0b\xb0\xf1\x4d\xb6\xb1\x3b\xc0\x11\xdf\xc3\x08\x59\x76\x5c\xdc\x92\xd5\xa4\xbf\x5f\xa6\x43\x0c\x68\xe3\xf5\x0f\xc2\x7b\x7e\xe6\xa6\x5f\x3d\x7b\x4f\xc2\xe5\x54\x5e\x01\x00\x00\xff\xff\x76\xb9\xf1\x84\xa2\x00\x00\x00") - -func testFixturesDocYamlUserGuidePodYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuidePodYaml, - "test/fixtures/doc-yaml/user-guide/pod.yaml", - ) -} - -func testFixturesDocYamlUserGuidePodYaml() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuidePodYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/pod.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuideReplicasetRedisSlaveYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x53\x4f\x6f\xdb\x3e\x0c\xbd\xe7\x53\x10\xe9\xa1\x97\x24\x4e\xff\x24\xf9\xc5\xf7\xdf\xfe\x00\x2b\x3a\xb4\xc5\x76\x18\x86\x82\x92\xe8\x84\x88\x24\x7a\x92\xec\x2d\xdf\x7e\x90\xe3\x24\xce\x5a\xdf\x44\xf2\x3d\x3e\xf3\x91\x58\xf3\x37\x0a\x91\xc5\x97\x80\x75\x1d\x8b\xf6\x66\xb4\x63\x6f\x4a\x78\xa2\xda\xb2\xc6\x67\x4a\x23\x47\x09\x0d\x26\x2c\x47\x00\x1e\x1d\x95\x10\xc8\x70\x9c\x46\x8b\x2d\x8d\x00\x2c\x2a\xb2\x31\x67\x21\x93\xf4\xe9\xee\x19\xc4\x52\x09\xc7\x42\x80\xc4\x14\x4a\x50\xa8\x77\xe4\xcd\x28\xd6\xa4\x33\xec\x0a\xd2\x96\x23\x84\x43\xcb\x08\x2d\xda\x86\x80\x23\x18\xaa\xb0\xb1\xa9\x2b\x71\x62\xb8\xda\x03\x27\x40\xad\x25\x18\xf6\x1b\x48\x02\x7b\x69\x02\x68\x8c\x99\xff\x48\x50\xc2\xed\x08\x20\x92\x25\x9d\x24\x1c\x84\x39\x4c\x7a\xfb\x65\xa0\xf4\x8d\xd6\xb7\x6a\xff\xd5\x0b\x90\xc8\xd5\x16\x13\xf5\x9c\x83\xc1\xe4\xcf\x5e\xd0\xbf\xd3\xe0\xbd\x16\x6f\x9b\x00\x1c\x07\x93\x3f\x2d\x3e\x21\x7b\x0a\x27\xe2\x69\xef\xc2\x25\x0b\x3b\xdc\x50\x09\x46\xf4\x8e\xc2\x8c\xa5\xb0\xac\x02\x86\x7d\xd1\x09\x28\x17\xb3\xf9\x6c\x31\x45\x5b\xb3\x3f\x63\xae\xe0\x3b\x01\x06\x02\xf1\x76\x0f\xec\x6a\x4b\x8e\x7c\xea\x46\xbb\x25\x30\x3e\x82\xd4\x89\xc5\x83\x54\xe5\x00\xb5\x4d\xa9\x8e\x65\x51\x6c\x38\x6d\x1b\x35\xd3\xe2\x8a\x5d\xa3\x28\x78\x4a\x14\x0b\xfa\x83\x99\x29\x16\xca\x8a\x2a\xd6\x2b\xbd\x22\x33\x27\xb5\x5c\x2c\x16\x78\xaf\x96\xcb\x95\xb9\xfd\x6f\xb5\xaa\xd6\xcb\x85\xb9\x5b\xdf\xd2\x7c\x8e\x4a\xdf\x2f\x8a\x4d\x43\x31\x29\x91\x5d\x31\x58\xaf\x22\x34\x7e\x16\xb7\xa7\xde\x5a\x9c\xc3\xbc\x9f\x3f\x60\xdc\x97\x51\x68\x29\x8c\x27\x30\x9e\x1e\x20\x52\xe5\xc7\x21\xe9\x30\xa6\x43\x72\x79\xb7\x5a\x8f\xe1\xe7\xd9\x08\x8a\xd2\x04\x4d\x03\xbb\x72\xf0\x57\x16\x71\x11\x03\xd0\x75\x53\xc2\xcd\x7c\xee\x2e\xa2\x8e\x9c\x84\x7d\x97\x78\xe0\x53\x86\x7c\x7b\x06\x1f\x8d\xfa\xf8\xff\xcb\xeb\xa7\xc7\xe7\x97\xe7\xd7\x0f\x4f\x8f\x0f\x03\x96\x6e\xd1\xcb\x3c\xe7\x41\xf0\x0a\x3e\x57\xfd\x5a\xdb\x26\xcb\xcf\x2b\x50\xf1\x06\x8c\x50\x04\x2f\x09\xd8\x6b\xdb\x18\x02\xec\x1c\xca\x03\x60\x4d\x93\x6c\x99\x87\x24\x17\x54\xec\x63\x22\x34\xf9\x66\x28\x46\x40\x9f\x15\x72\x10\x9f\x7d\x86\x16\x03\xa3\xb2\x94\x0f\xa9\x62\x6f\x3a\xd7\x0f\x33\xbb\x60\xe9\x5b\x5c\x47\xd8\x4a\x4c\x93\xce\x85\x8c\x97\x26\x75\x90\xeb\xf3\x8f\x5c\x83\x65\x4f\x80\x4a\x5a\x9a\x00\xf6\x0b\x7d\x24\x6a\xfc\x11\x9a\x61\x5d\xa5\x22\x2b\xbf\x67\x17\x55\x3d\x1b\xf9\xf6\x14\xae\x25\x0c\x6d\x99\x9e\xcf\xe2\xab\x84\x54\x42\xb6\x77\xf4\x37\x00\x00\xff\xff\x7c\x90\xda\x81\xce\x04\x00\x00") - -func testFixturesDocYamlUserGuideReplicasetRedisSlaveYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuideReplicasetRedisSlaveYaml, - "test/fixtures/doc-yaml/user-guide/replicaset/redis-slave.yaml", - ) -} - -func testFixturesDocYamlUserGuideReplicasetRedisSlaveYaml() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuideReplicasetRedisSlaveYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/replicaset/redis-slave.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuideReplicationYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x8d\x31\x6a\x04\x31\x0c\x45\x7b\x9f\xe2\x5f\x60\x20\x21\x4d\x70\x9b\x0b\x84\x14\xe9\x15\x8f\x18\x44\x6c\xc9\xc8\x22\xe4\xf8\x8b\x19\x66\x77\xd8\x5d\x95\xff\x7d\xbd\x4f\x5d\xbe\xd9\x87\x98\x66\xfc\xbd\xa6\x5f\xd1\x35\xe3\x8b\x7b\x95\x42\x21\xa6\x1f\xa6\xe1\x56\x2b\x7b\x6a\x1c\xb4\x52\x50\x4e\x80\x52\xe3\x0c\xdd\x44\xff\xd3\xe8\x5c\x66\xe6\xfb\xd7\xc8\x78\x4b\xc0\xe0\xca\x25\xcc\x27\x01\xa8\xf7\xa3\x0e\x04\xb7\x5e\x29\x78\x47\x67\xed\xbc\xb3\x7a\x4f\x2a\xfd\x70\x1d\x07\xbf\x93\x01\xc7\xfe\xbc\x62\x1a\x24\xca\x7e\xad\x2f\x4f\x84\x80\x34\xda\x1e\xc2\x6e\x1e\xa7\x99\xe5\x66\xfb\x34\x8f\x8c\xf7\x97\x74\x09\x00\x00\xff\xff\x61\x99\x01\xcd\x2f\x01\x00\x00") - -func testFixturesDocYamlUserGuideReplicationYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuideReplicationYaml, - "test/fixtures/doc-yaml/user-guide/replication.yaml", - ) -} - -func testFixturesDocYamlUserGuideReplicationYaml() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuideReplicationYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/replication.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuideSecretsSecretEnvPodYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x90\x41\x4b\x03\x31\x10\x85\xef\xf9\x15\x8f\x3d\x1b\x4a\xaf\xb9\x15\xad\x17\x51\x4a\x2d\x82\x88\x94\xd9\xec\x53\x43\x9b\x64\x49\xd2\xe0\xfe\x7b\x59\x0d\xb5\x7a\x19\x66\xde\xf7\xe0\xcd\x8c\x8c\xee\x89\x29\xbb\x18\x0c\xea\x52\x1d\x5c\x18\x0c\x36\x71\x50\x9e\x45\x06\x29\x62\x14\x10\xc4\xd3\x20\xd3\x26\x16\xcd\x50\xf5\x18\x07\x95\x47\xda\x19\xda\x18\x8a\xb8\xc0\x94\xe7\x09\xd0\xcd\x5e\x98\x8b\x3e\xc3\x6f\x04\x38\x2f\xef\x34\xe8\x4f\x79\xea\xe3\x67\x13\x6d\xf4\x5e\xe6\xdc\x17\x74\x8b\xde\x85\x45\xfe\xe8\xae\xd0\x69\x3b\x57\x86\xda\xe1\xb5\x39\x19\xaa\x69\xed\x6f\xd0\xfd\xf3\xfe\x71\x7d\xbd\x5d\xef\xf6\x37\xab\xdd\xea\x8c\x81\x2a\xc7\x13\x6f\x53\xf4\xe6\x42\x44\xbb\xe3\x8e\xd3\x96\x6f\x7f\x09\x2e\x57\xff\xb1\xfd\xe3\x07\x4e\x06\xf3\x5b\xf4\x52\x01\x89\xb9\x48\x2a\x9b\x78\x74\x76\x32\x78\x60\x65\x52\x5f\x01\x00\x00\xff\xff\xab\xfe\x4b\x14\x52\x01\x00\x00") - -func testFixturesDocYamlUserGuideSecretsSecretEnvPodYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuideSecretsSecretEnvPodYaml, - "test/fixtures/doc-yaml/user-guide/secrets/secret-env-pod.yaml", - ) -} - -func testFixturesDocYamlUserGuideSecretsSecretEnvPodYaml() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuideSecretsSecretEnvPodYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/secrets/secret-env-pod.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuideSecretsSecretPodYamlIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x90\xb1\x4e\xc4\x30\x10\x44\x7b\x7f\xc5\x28\xb4\x98\xe8\x5a\x4b\x14\x94\x14\x9c\x52\xd1\x20\x84\x8c\xb3\x24\x16\xb1\x1d\xd9\x9b\x20\x74\xba\x7f\x47\x8e\x0d\x77\xc0\xb9\xdb\x99\xf1\xe8\xed\xea\xd9\x3e\x52\x4c\x36\x78\x85\x75\x27\xde\xad\xef\x15\xba\xd0\x0b\x47\xac\x7b\xcd\x5a\x09\xc0\x6b\x47\x0a\x89\x4c\x24\x96\x4c\x89\xe5\x1c\x7a\x91\x66\x32\xd9\x35\xc1\xb3\xb6\x9e\x62\xca\x13\x20\x6b\x7e\x0b\xfe\x98\x9b\x05\x58\xa7\x07\x52\x38\x1c\x6e\xee\x06\x3f\x86\xc4\xf7\x59\x38\x1e\xab\xad\xe3\x90\x14\x9e\xd0\xb8\xb0\x78\xce\x0d\xcd\x35\x1a\x29\xdf\xec\x44\x2f\xb9\x8b\x3c\xdf\xb6\xc4\xa6\xad\x34\x6b\x98\x16\x47\x6d\x26\x95\xbb\x06\xcf\xb5\xa7\xc8\x0f\xb9\xa4\x52\x95\x77\xb5\xb1\xc1\x2d\x89\xe1\x34\x9b\x11\x3c\x52\x4d\x17\xeb\x95\xa6\xf0\x71\xf6\x43\xfe\xde\xbe\x44\xcf\x7c\x60\x43\xed\x34\x8f\x0a\xff\xc9\xc4\x37\xcb\x9f\xe3\x5c\xaa\x2b\xda\x09\xb7\xcc\xfb\xd3\x31\x8b\x20\x80\x48\x89\x75\xe4\x2e\x4c\xd6\x7c\x2a\xec\x69\xa5\x28\xbe\x02\x00\x00\xff\xff\x36\x60\xeb\x69\xcb\x01\x00\x00") - -func testFixturesDocYamlUserGuideSecretsSecretPodYamlInBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuideSecretsSecretPodYamlIn, - "test/fixtures/doc-yaml/user-guide/secrets/secret-pod.yaml.in", - ) -} - -func testFixturesDocYamlUserGuideSecretsSecretPodYamlIn() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuideSecretsSecretPodYamlInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/secrets/secret-pod.yaml.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuideSecretsSecretYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\xc8\x0c\x4b\x2d\x2a\xce\xcc\xcf\xb3\x52\x28\x33\xe4\xca\xce\xcc\x4b\xb1\x52\x08\x4e\x4d\x2e\x4a\x2d\xe1\xca\x4d\x2d\x49\x4c\x49\x2c\x49\xb4\xe2\x52\x50\xc8\x4b\xcc\x4d\xb5\x52\x28\x49\x2d\x2e\xd1\x2d\x86\xc8\xc2\x64\x40\xb4\xae\xa1\x95\x42\x4a\xae\x5b\x71\x4a\x78\x68\x89\x6f\xa0\x81\x37\x4c\xd8\x08\x49\x38\xdd\xc0\xdb\x25\x30\xdf\x96\x0b\x10\x00\x00\xff\xff\x5d\x68\x23\xda\x72\x00\x00\x00") - -func testFixturesDocYamlUserGuideSecretsSecretYamlBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuideSecretsSecretYaml, - "test/fixtures/doc-yaml/user-guide/secrets/secret.yaml", - ) -} - -func testFixturesDocYamlUserGuideSecretsSecretYaml() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuideSecretsSecretYamlBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/secrets/secret.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuideUpdateDemoImagesKittenHtmlDataJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xaa\xe6\x52\x50\x50\xca\xcc\x4d\x4c\x4f\x55\xb2\x52\x50\xca\xce\x2c\x29\x49\xcd\xd3\xcb\x2a\x48\x57\xe2\xaa\xe5\x02\x04\x00\x00\xff\xff\x27\x07\xd0\xf9\x1c\x00\x00\x00") - -func testFixturesDocYamlUserGuideUpdateDemoImagesKittenHtmlDataJsonBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuideUpdateDemoImagesKittenHtmlDataJson, - "test/fixtures/doc-yaml/user-guide/update-demo/images/kitten/html/data.json", - ) -} - -func testFixturesDocYamlUserGuideUpdateDemoImagesKittenHtmlDataJson() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuideUpdateDemoImagesKittenHtmlDataJsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/update-demo/images/kitten/html/data.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuideUpdateDemoImagesNautilusHtmlDataJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xaa\xe6\x52\x50\x50\xca\xcc\x4d\x4c\x4f\x55\xb2\x52\x50\xca\x4b\x2c\x2d\xc9\xcc\x29\x2d\xd6\xcb\x2a\x48\x57\xe2\xaa\xe5\x02\x04\x00\x00\xff\xff\xbe\x2a\xe3\xd9\x1e\x00\x00\x00") - -func testFixturesDocYamlUserGuideUpdateDemoImagesNautilusHtmlDataJsonBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuideUpdateDemoImagesNautilusHtmlDataJson, - "test/fixtures/doc-yaml/user-guide/update-demo/images/nautilus/html/data.json", - ) -} - -func testFixturesDocYamlUserGuideUpdateDemoImagesNautilusHtmlDataJson() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuideUpdateDemoImagesNautilusHtmlDataJsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/update-demo/images/nautilus/html/data.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuideUpdateDemoKittenRcYamlIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x8e\x31\x4f\x03\x31\x0c\x85\xf7\xfc\x0a\xff\x81\x43\xb0\xa1\xac\x9d\x10\x4b\x85\x10\xbb\xc9\x3d\xa1\xa8\x8e\x1d\xf9\x4c\x97\xaa\xff\x1d\xa5\x70\xa5\xc3\x21\xe1\x29\x8e\xdf\xfb\xde\xe3\x5e\xdf\xe0\x4b\x35\xcd\x74\x7c\x48\x87\xaa\x73\xa6\x17\x74\xa9\x85\xa3\x9a\xee\x4c\xc3\x4d\x04\x9e\x1a\x82\x67\x0e\xce\x89\x48\xb9\x21\xd3\x67\x9f\x39\x30\xcd\x68\x36\x1d\x6a\x04\x34\x2d\x1d\x65\x08\x16\x08\x4a\x98\x8f\xf7\x86\xfc\xf2\x7b\x5c\x83\x7f\xbc\x44\x81\xd6\x85\x03\xdf\xae\xdb\xc0\x31\xc2\xef\x90\x65\xdd\xfe\xa2\x6e\x93\x89\xd6\x66\x63\x8a\x69\x70\x55\xf8\x95\x36\x51\x6d\xfc\x81\x4c\xa7\xd3\xdd\xf3\xc5\xf4\x34\xf6\xf3\xf9\x1f\x69\xdd\x3c\x6e\x6a\x4d\xbf\xf8\xbd\x79\x64\x7a\xbc\xbf\xde\x88\xba\x5b\x58\x31\xc9\xf4\xba\xdb\xa7\xaf\x00\x00\x00\xff\xff\x67\x96\xe2\x98\x7f\x01\x00\x00") - -func testFixturesDocYamlUserGuideUpdateDemoKittenRcYamlInBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuideUpdateDemoKittenRcYamlIn, - "test/fixtures/doc-yaml/user-guide/update-demo/kitten-rc.yaml.in", - ) -} - -func testFixturesDocYamlUserGuideUpdateDemoKittenRcYamlIn() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuideUpdateDemoKittenRcYamlInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/update-demo/kitten-rc.yaml.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuideUpdateDemoNautilusRcYamlIn = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x8e\xb1\x4e\x03\x31\x0c\x86\xf7\x3c\xc5\xff\x02\x87\x80\x09\x65\xed\xc4\x82\x2a\x84\xd8\x4d\xce\x42\x11\x4e\x1c\x39\xbe\x2e\x55\xdf\x1d\x85\x72\x47\x07\x2a\xd5\x5b\xec\xfc\xdf\xff\x51\xcb\xef\x6c\x3d\x6b\x8d\x38\x3c\x84\xaf\x5c\xe7\x88\x57\x6e\x92\x13\x79\xd6\xba\xd3\xea\xa6\x22\x6c\xa1\xb0\xd3\x4c\x4e\x31\x00\x95\x0a\x47\x2c\x6d\x26\xe7\x69\xe6\xa2\x53\xa5\xc5\xb3\x2c\x3d\xf4\xc6\x69\x7c\xb1\x33\xa4\x47\x3c\x06\xa0\xb3\x70\x72\xb5\x71\xf9\x27\xfe\xb3\x3d\xac\x22\x1b\x0b\x70\x2e\x4d\xc8\xf9\x9c\xbb\x54\x18\x23\xf4\xc1\xd2\xd7\xd7\x35\xee\x35\x36\xb0\xba\x8e\x49\x5a\x9d\x72\x65\xdb\x78\x13\x72\xa1\x4f\x8e\x38\x1e\xef\x5e\x7e\x63\xcf\x63\x73\x3a\xdd\xd0\xd8\xd4\xfc\x42\x6d\xfa\x2b\xd8\xab\x79\xc4\xd3\xfd\x76\x03\x9a\xa9\x6b\x52\x89\x78\xdb\xed\xc3\x77\x00\x00\x00\xff\xff\x95\x67\x7a\xc0\x95\x01\x00\x00") - -func testFixturesDocYamlUserGuideUpdateDemoNautilusRcYamlInBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuideUpdateDemoNautilusRcYamlIn, - "test/fixtures/doc-yaml/user-guide/update-demo/nautilus-rc.yaml.in", - ) -} - -func testFixturesDocYamlUserGuideUpdateDemoNautilusRcYamlIn() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuideUpdateDemoNautilusRcYamlInBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/update-demo/nautilus-rc.yaml.in", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesDocYamlUserGuideWalkthroughPodtemplateJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x8d\x3d\x8a\xc3\x30\x10\x85\x7b\x9f\x62\x98\xda\x0b\xbb\xdd\xe2\x43\x2c\x2e\x96\x34\x21\xc5\xc4\x1e\x8c\x88\x35\x12\xf2\x10\x02\x41\x77\x0f\xfe\x91\x2d\x07\xa7\x11\xe2\xbd\x6f\xbe\x07\xf0\x2c\x00\x00\x90\xbc\x39\x71\x18\x8c\x13\xac\x00\xef\x3f\x58\xce\xf9\xcd\x48\x3b\x26\xb5\x6b\xff\xd9\xfa\x9e\x94\x53\x65\x59\xa9\x25\x25\xac\x16\x09\x00\x0a\x59\x1e\x71\xe9\x8c\x3c\x70\x4a\xe3\x82\x6b\x3a\xcf\xf0\x03\x05\x00\xf6\x74\xe5\x7e\xd8\x65\xc7\xea\x4c\x3f\x21\x1d\x0b\x07\x52\xfe\xcb\xd1\xaf\xc4\xae\x24\x0e\x9e\x9b\xbd\x1e\x1b\x27\x4a\x46\x38\x8c\xbb\xe7\x7c\xf8\x7d\xb9\xdc\x75\xc6\x52\xf7\xb1\xf4\x2e\xe8\xec\xdb\xfc\xb5\x0b\x8a\x15\xfc\x7e\xc7\xcb\xc6\xae\xff\x58\xa4\x37\x16\xaf\x00\x00\x00\xff\xff\x18\xd3\xb9\x9c\x9c\x01\x00\x00") - -func testFixturesDocYamlUserGuideWalkthroughPodtemplateJsonBytes() ([]byte, error) { - return bindataRead( - _testFixturesDocYamlUserGuideWalkthroughPodtemplateJson, - "test/fixtures/doc-yaml/user-guide/walkthrough/podtemplate.json", - ) -} - -func testFixturesDocYamlUserGuideWalkthroughPodtemplateJson() (*asset, error) { - bytes, err := testFixturesDocYamlUserGuideWalkthroughPodtemplateJsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/doc-yaml/user-guide/walkthrough/podtemplate.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesPkgKubectlOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\xca\xb1\x0a\x02\x31\x0c\x00\xd0\x3d\x5f\x11\x70\xee\x75\x95\xdb\x5d\x15\xbc\xc1\x39\xd4\xd0\x06\xb5\x29\x49\x68\x7f\x5f\x70\x73\x7f\x27\x3c\x98\x31\x1a\xe3\xed\x71\xbd\xdc\x0f\x7c\x6a\x71\xa4\xc0\x16\x31\x7c\xcf\xb9\xea\xf6\x3a\xfb\x26\x9a\x75\x75\x36\x07\xa0\x31\x4c\x27\x9b\xef\x90\xd0\xa5\xa6\xf2\x96\xf4\x21\xe9\x41\xf2\x13\xc6\x53\x78\xfd\x03\xf8\x06\x00\x00\xff\xff\xf3\x7b\xef\xed\x69\x00\x00\x00") - -func testFixturesPkgKubectlOwnersBytes() ([]byte, error) { - return bindataRead( - _testFixturesPkgKubectlOwners, - "test/fixtures/pkg/kubectl/OWNERS", - ) -} - -func testFixturesPkgKubectlOwners() (*asset, error) { - bytes, err := testFixturesPkgKubectlOwnersBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/pkg/kubectl/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesPkgKubectlPluginsBarKubectlBar = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x52\x56\xd4\x4f\xca\xcc\xd3\x4f\x4a\x2c\xce\xe0\xe2\x4a\x4d\xce\xc8\x57\x50\xf2\x54\x48\xcc\x55\x28\xc8\x29\x4d\xcf\xcc\x53\x48\x4a\x2c\x52\x48\x4e\xcc\xc9\x49\x4d\x51\x28\xcf\x2c\xc9\x50\x48\x2c\x4a\x2f\x56\x50\x31\x50\x50\x71\x50\xe2\x02\x04\x00\x00\xff\xff\xb1\x1b\x02\xcf\x3b\x00\x00\x00") - -func testFixturesPkgKubectlPluginsBarKubectlBarBytes() ([]byte, error) { - return bindataRead( - _testFixturesPkgKubectlPluginsBarKubectlBar, - "test/fixtures/pkg/kubectl/plugins/bar/kubectl-bar", - ) -} - -func testFixturesPkgKubectlPluginsBarKubectlBar() (*asset, error) { - bytes, err := testFixturesPkgKubectlPluginsBarKubectlBarBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/pkg/kubectl/plugins/bar/kubectl-bar", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesPkgKubectlPluginsFooKubectlFoo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x52\x56\xd4\x4f\xca\xcc\xd3\x4f\x4a\x2c\xce\xe0\xe2\x4a\x4d\xce\xc8\x57\x50\xf2\x54\x48\xcc\x55\x28\xc8\x29\x4d\xcf\xcc\x53\x48\xcb\xcf\x57\xe2\x02\x04\x00\x00\xff\xff\xb5\x26\x01\x36\x24\x00\x00\x00") - -func testFixturesPkgKubectlPluginsFooKubectlFooBytes() ([]byte, error) { - return bindataRead( - _testFixturesPkgKubectlPluginsFooKubectlFoo, - "test/fixtures/pkg/kubectl/plugins/foo/kubectl-foo", - ) -} - -func testFixturesPkgKubectlPluginsFooKubectlFoo() (*asset, error) { - bytes, err := testFixturesPkgKubectlPluginsFooKubectlFooBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/pkg/kubectl/plugins/foo/kubectl-foo", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesPkgKubectlPluginsKubectlFoo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x52\x56\xd4\x4f\xca\xcc\xd3\x4f\x4a\x2c\xce\xe0\xe2\x4a\x4d\xce\xc8\x57\x50\xf2\x54\x48\xcc\x55\x28\xc8\x29\x4d\xcf\xcc\x53\x48\xcb\xcf\x57\xe2\x02\x04\x00\x00\xff\xff\xb5\x26\x01\x36\x24\x00\x00\x00") - -func testFixturesPkgKubectlPluginsKubectlFooBytes() ([]byte, error) { - return bindataRead( - _testFixturesPkgKubectlPluginsKubectlFoo, - "test/fixtures/pkg/kubectl/plugins/kubectl-foo", - ) -} - -func testFixturesPkgKubectlPluginsKubectlFoo() (*asset, error) { - bytes, err := testFixturesPkgKubectlPluginsKubectlFooBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/pkg/kubectl/plugins/kubectl-foo", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -var _testFixturesPkgKubectlPluginsVersionKubectlVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x34\xca\xc1\x09\x02\x41\x0c\x05\xd0\x7b\xaa\xf8\x32\x67\xd9\x66\x6c\x20\xcb\x84\x4d\x40\x92\xc5\x9f\x51\xcb\x17\x41\x8f\x0f\xde\xb8\x6c\x7b\xe4\xb6\x2b\x5d\x64\xe0\xe6\x41\x9c\xf7\x75\x44\x22\x08\x45\xd6\xb5\x4e\x68\xce\x2f\x17\x6d\xa2\x0b\x6d\x6c\x19\xd0\xff\x6c\xd7\x46\x3d\xed\x41\xd7\x59\x2f\x42\x13\xf6\x0e\x76\xe4\xf1\x3b\xf2\x09\x00\x00\xff\xff\xa4\x70\x55\x31\x69\x00\x00\x00") - -func testFixturesPkgKubectlPluginsVersionKubectlVersionBytes() ([]byte, error) { - return bindataRead( - _testFixturesPkgKubectlPluginsVersionKubectlVersion, - "test/fixtures/pkg/kubectl/plugins/version/kubectl-version", - ) -} - -func testFixturesPkgKubectlPluginsVersionKubectlVersion() (*asset, error) { - bytes, err := testFixturesPkgKubectlPluginsVersionKubectlVersionBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "test/fixtures/pkg/kubectl/plugins/version/kubectl-version", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil -} - -// Asset loads and returns the asset for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func Asset(name string) ([]byte, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err) - } - return a.bytes, nil - } - return nil, fmt.Errorf("Asset %s not found", name) -} - -// MustAsset is like Asset but panics when Asset would return an error. -// It simplifies safe initialization of global variables. -func MustAsset(name string) []byte { - a, err := Asset(name) - if err != nil { - panic("asset: Asset(" + name + "): " + err.Error()) - } - - return a -} - -// AssetInfo loads and returns the asset info for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func AssetInfo(name string) (os.FileInfo, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err) - } - return a.info, nil - } - return nil, fmt.Errorf("AssetInfo %s not found", name) -} - -// AssetNames returns the names of the assets. -func AssetNames() []string { - names := make([]string, 0, len(_bindata)) - for name := range _bindata { - names = append(names, name) - } - return names -} - -// _bindata is a table, holding each asset generator, mapped to its name. -var _bindata = map[string]func() (*asset, error){ - "test/conformance/testdata/OWNERS": testConformanceTestdataOwners, - "test/conformance/testdata/conformance.yaml": testConformanceTestdataConformanceYaml, - "test/e2e/testing-manifests/flexvolume/attachable-with-long-mount": testE2eTestingManifestsFlexvolumeAttachableWithLongMount, - "test/e2e/testing-manifests/flexvolume/dummy": testE2eTestingManifestsFlexvolumeDummy, - "test/e2e/testing-manifests/flexvolume/dummy-attachable": testE2eTestingManifestsFlexvolumeDummyAttachable, - "test/e2e/testing-manifests/guestbook/agnhost-primary-deployment.yaml.in": testE2eTestingManifestsGuestbookAgnhostPrimaryDeploymentYamlIn, - "test/e2e/testing-manifests/guestbook/agnhost-primary-service.yaml": testE2eTestingManifestsGuestbookAgnhostPrimaryServiceYaml, - "test/e2e/testing-manifests/guestbook/agnhost-replica-deployment.yaml.in": testE2eTestingManifestsGuestbookAgnhostReplicaDeploymentYamlIn, - "test/e2e/testing-manifests/guestbook/agnhost-replica-service.yaml": testE2eTestingManifestsGuestbookAgnhostReplicaServiceYaml, - "test/e2e/testing-manifests/guestbook/frontend-deployment.yaml.in": testE2eTestingManifestsGuestbookFrontendDeploymentYamlIn, - "test/e2e/testing-manifests/guestbook/frontend-service.yaml": testE2eTestingManifestsGuestbookFrontendServiceYaml, - "test/e2e/testing-manifests/guestbook/legacy/frontend-controller.yaml": testE2eTestingManifestsGuestbookLegacyFrontendControllerYaml, - "test/e2e/testing-manifests/guestbook/legacy/redis-master-controller.yaml": testE2eTestingManifestsGuestbookLegacyRedisMasterControllerYaml, - "test/e2e/testing-manifests/guestbook/legacy/redis-slave-controller.yaml": testE2eTestingManifestsGuestbookLegacyRedisSlaveControllerYaml, - "test/e2e/testing-manifests/guestbook/redis-master-deployment.yaml.in": testE2eTestingManifestsGuestbookRedisMasterDeploymentYamlIn, - "test/e2e/testing-manifests/guestbook/redis-master-service.yaml": testE2eTestingManifestsGuestbookRedisMasterServiceYaml, - "test/e2e/testing-manifests/guestbook/redis-slave-deployment.yaml.in": testE2eTestingManifestsGuestbookRedisSlaveDeploymentYamlIn, - "test/e2e/testing-manifests/guestbook/redis-slave-service.yaml": testE2eTestingManifestsGuestbookRedisSlaveServiceYaml, - "test/e2e/testing-manifests/ingress/gce/static-ip-2/ing.yaml": testE2eTestingManifestsIngressGceStaticIp2IngYaml, - "test/e2e/testing-manifests/ingress/gce/static-ip-2/rc.yaml": testE2eTestingManifestsIngressGceStaticIp2RcYaml, - "test/e2e/testing-manifests/ingress/gce/static-ip-2/svc.yaml": testE2eTestingManifestsIngressGceStaticIp2SvcYaml, - "test/e2e/testing-manifests/ingress/http/ing.yaml": testE2eTestingManifestsIngressHttpIngYaml, - "test/e2e/testing-manifests/ingress/http/rc.yaml": testE2eTestingManifestsIngressHttpRcYaml, - "test/e2e/testing-manifests/ingress/http/svc.yaml": testE2eTestingManifestsIngressHttpSvcYaml, - "test/e2e/testing-manifests/ingress/http2/ing.yaml": testE2eTestingManifestsIngressHttp2IngYaml, - "test/e2e/testing-manifests/ingress/http2/rc.yaml": testE2eTestingManifestsIngressHttp2RcYaml, - "test/e2e/testing-manifests/ingress/http2/svc.yaml": testE2eTestingManifestsIngressHttp2SvcYaml, - "test/e2e/testing-manifests/ingress/multiple-certs/ing.yaml": testE2eTestingManifestsIngressMultipleCertsIngYaml, - "test/e2e/testing-manifests/ingress/multiple-certs/rc.yaml": testE2eTestingManifestsIngressMultipleCertsRcYaml, - "test/e2e/testing-manifests/ingress/multiple-certs/svc.yaml": testE2eTestingManifestsIngressMultipleCertsSvcYaml, - "test/e2e/testing-manifests/ingress/neg/ing.yaml": testE2eTestingManifestsIngressNegIngYaml, - "test/e2e/testing-manifests/ingress/neg/rc.yaml": testE2eTestingManifestsIngressNegRcYaml, - "test/e2e/testing-manifests/ingress/neg/svc.yaml": testE2eTestingManifestsIngressNegSvcYaml, - "test/e2e/testing-manifests/ingress/neg-clusterip/ing.yaml": testE2eTestingManifestsIngressNegClusteripIngYaml, - "test/e2e/testing-manifests/ingress/neg-clusterip/rc.yaml": testE2eTestingManifestsIngressNegClusteripRcYaml, - "test/e2e/testing-manifests/ingress/neg-clusterip/svc.yaml": testE2eTestingManifestsIngressNegClusteripSvcYaml, - "test/e2e/testing-manifests/ingress/neg-exposed/ing.yaml": testE2eTestingManifestsIngressNegExposedIngYaml, - "test/e2e/testing-manifests/ingress/neg-exposed/rc.yaml": testE2eTestingManifestsIngressNegExposedRcYaml, - "test/e2e/testing-manifests/ingress/neg-exposed/svc.yaml": testE2eTestingManifestsIngressNegExposedSvcYaml, - "test/e2e/testing-manifests/ingress/nginx/rc.yaml": testE2eTestingManifestsIngressNginxRcYaml, - "test/e2e/testing-manifests/ingress/pre-shared-cert/ing.yaml": testE2eTestingManifestsIngressPreSharedCertIngYaml, - "test/e2e/testing-manifests/ingress/pre-shared-cert/rc.yaml": testE2eTestingManifestsIngressPreSharedCertRcYaml, - "test/e2e/testing-manifests/ingress/pre-shared-cert/svc.yaml": testE2eTestingManifestsIngressPreSharedCertSvcYaml, - "test/e2e/testing-manifests/ingress/static-ip/ing.yaml": testE2eTestingManifestsIngressStaticIpIngYaml, - "test/e2e/testing-manifests/ingress/static-ip/rc.yaml": testE2eTestingManifestsIngressStaticIpRcYaml, - "test/e2e/testing-manifests/ingress/static-ip/secret.yaml": testE2eTestingManifestsIngressStaticIpSecretYaml, - "test/e2e/testing-manifests/ingress/static-ip/svc.yaml": testE2eTestingManifestsIngressStaticIpSvcYaml, - "test/e2e/testing-manifests/kubectl/agnhost-primary-controller.json.in": testE2eTestingManifestsKubectlAgnhostPrimaryControllerJsonIn, - "test/e2e/testing-manifests/kubectl/agnhost-primary-pod.yaml": testE2eTestingManifestsKubectlAgnhostPrimaryPodYaml, - "test/e2e/testing-manifests/kubectl/agnhost-primary-service.json": testE2eTestingManifestsKubectlAgnhostPrimaryServiceJson, - "test/e2e/testing-manifests/kubectl/busybox-cronjob.yaml": testE2eTestingManifestsKubectlBusyboxCronjobYaml, - "test/e2e/testing-manifests/kubectl/busybox-pod.yaml": testE2eTestingManifestsKubectlBusyboxPodYaml, - "test/e2e/testing-manifests/kubectl/httpd-deployment1.yaml.in": testE2eTestingManifestsKubectlHttpdDeployment1YamlIn, - "test/e2e/testing-manifests/kubectl/httpd-deployment2.yaml.in": testE2eTestingManifestsKubectlHttpdDeployment2YamlIn, - "test/e2e/testing-manifests/kubectl/httpd-deployment3.yaml.in": testE2eTestingManifestsKubectlHttpdDeployment3YamlIn, - "test/e2e/testing-manifests/kubectl/httpd-rc.yaml.in": testE2eTestingManifestsKubectlHttpdRcYamlIn, - "test/e2e/testing-manifests/kubectl/pause-pod.yaml.in": testE2eTestingManifestsKubectlPausePodYamlIn, - "test/e2e/testing-manifests/kubectl/pod-with-readiness-probe.yaml.in": testE2eTestingManifestsKubectlPodWithReadinessProbeYamlIn, - "test/e2e/testing-manifests/pod": testE2eTestingManifestsPod, - "test/e2e/testing-manifests/rbd-storage-class.yaml": testE2eTestingManifestsRbdStorageClassYaml, - "test/e2e/testing-manifests/sample-device-plugin.yaml": testE2eTestingManifestsSampleDevicePluginYaml, - "test/e2e/testing-manifests/scheduling/nvidia-driver-installer.yaml": testE2eTestingManifestsSchedulingNvidiaDriverInstallerYaml, - "test/e2e/testing-manifests/serviceloadbalancer/haproxyrc.yaml": testE2eTestingManifestsServiceloadbalancerHaproxyrcYaml, - "test/e2e/testing-manifests/serviceloadbalancer/netexecrc.yaml": testE2eTestingManifestsServiceloadbalancerNetexecrcYaml, - "test/e2e/testing-manifests/serviceloadbalancer/netexecsvc.yaml": testE2eTestingManifestsServiceloadbalancerNetexecsvcYaml, - "test/e2e/testing-manifests/serviceloadbalancer/nginxrc.yaml": testE2eTestingManifestsServiceloadbalancerNginxrcYaml, - "test/e2e/testing-manifests/serviceloadbalancer/nginxsvc.yaml": testE2eTestingManifestsServiceloadbalancerNginxsvcYaml, - "test/e2e/testing-manifests/statefulset/cassandra/controller.yaml": testE2eTestingManifestsStatefulsetCassandraControllerYaml, - "test/e2e/testing-manifests/statefulset/cassandra/pdb.yaml": testE2eTestingManifestsStatefulsetCassandraPdbYaml, - "test/e2e/testing-manifests/statefulset/cassandra/service.yaml": testE2eTestingManifestsStatefulsetCassandraServiceYaml, - "test/e2e/testing-manifests/statefulset/cassandra/statefulset.yaml": testE2eTestingManifestsStatefulsetCassandraStatefulsetYaml, - "test/e2e/testing-manifests/statefulset/cassandra/tester.yaml": testE2eTestingManifestsStatefulsetCassandraTesterYaml, - "test/e2e/testing-manifests/statefulset/cockroachdb/service.yaml": testE2eTestingManifestsStatefulsetCockroachdbServiceYaml, - "test/e2e/testing-manifests/statefulset/cockroachdb/statefulset.yaml": testE2eTestingManifestsStatefulsetCockroachdbStatefulsetYaml, - "test/e2e/testing-manifests/statefulset/etcd/pdb.yaml": testE2eTestingManifestsStatefulsetEtcdPdbYaml, - "test/e2e/testing-manifests/statefulset/etcd/service.yaml": testE2eTestingManifestsStatefulsetEtcdServiceYaml, - "test/e2e/testing-manifests/statefulset/etcd/statefulset.yaml": testE2eTestingManifestsStatefulsetEtcdStatefulsetYaml, - "test/e2e/testing-manifests/statefulset/etcd/tester.yaml": testE2eTestingManifestsStatefulsetEtcdTesterYaml, - "test/e2e/testing-manifests/statefulset/mysql-galera/service.yaml": testE2eTestingManifestsStatefulsetMysqlGaleraServiceYaml, - "test/e2e/testing-manifests/statefulset/mysql-galera/statefulset.yaml": testE2eTestingManifestsStatefulsetMysqlGaleraStatefulsetYaml, - "test/e2e/testing-manifests/statefulset/mysql-upgrade/configmap.yaml": testE2eTestingManifestsStatefulsetMysqlUpgradeConfigmapYaml, - "test/e2e/testing-manifests/statefulset/mysql-upgrade/service.yaml": testE2eTestingManifestsStatefulsetMysqlUpgradeServiceYaml, - "test/e2e/testing-manifests/statefulset/mysql-upgrade/statefulset.yaml": testE2eTestingManifestsStatefulsetMysqlUpgradeStatefulsetYaml, - "test/e2e/testing-manifests/statefulset/mysql-upgrade/tester.yaml": testE2eTestingManifestsStatefulsetMysqlUpgradeTesterYaml, - "test/e2e/testing-manifests/statefulset/nginx/service.yaml": testE2eTestingManifestsStatefulsetNginxServiceYaml, - "test/e2e/testing-manifests/statefulset/nginx/statefulset.yaml": testE2eTestingManifestsStatefulsetNginxStatefulsetYaml, - "test/e2e/testing-manifests/statefulset/redis/service.yaml": testE2eTestingManifestsStatefulsetRedisServiceYaml, - "test/e2e/testing-manifests/statefulset/redis/statefulset.yaml": testE2eTestingManifestsStatefulsetRedisStatefulsetYaml, - "test/e2e/testing-manifests/statefulset/zookeeper/service.yaml": testE2eTestingManifestsStatefulsetZookeeperServiceYaml, - "test/e2e/testing-manifests/statefulset/zookeeper/statefulset.yaml": testE2eTestingManifestsStatefulsetZookeeperStatefulsetYaml, - "test/e2e/testing-manifests/storage-csi/OWNERS": testE2eTestingManifestsStorageCsiOwners, - "test/e2e/testing-manifests/storage-csi/controller-role.yaml": testE2eTestingManifestsStorageCsiControllerRoleYaml, - "test/e2e/testing-manifests/storage-csi/external-attacher/rbac.yaml": testE2eTestingManifestsStorageCsiExternalAttacherRbacYaml, - "test/e2e/testing-manifests/storage-csi/external-provisioner/rbac.yaml": testE2eTestingManifestsStorageCsiExternalProvisionerRbacYaml, - "test/e2e/testing-manifests/storage-csi/external-resizer/rbac.yaml": testE2eTestingManifestsStorageCsiExternalResizerRbacYaml, - "test/e2e/testing-manifests/storage-csi/external-snapshotter/rbac.yaml": testE2eTestingManifestsStorageCsiExternalSnapshotterRbacYaml, - "test/e2e/testing-manifests/storage-csi/gce-pd/controller_ss.yaml": testE2eTestingManifestsStorageCsiGcePdController_ssYaml, - "test/e2e/testing-manifests/storage-csi/gce-pd/csi-controller-rbac.yaml": testE2eTestingManifestsStorageCsiGcePdCsiControllerRbacYaml, - "test/e2e/testing-manifests/storage-csi/gce-pd/node_ds.yaml": testE2eTestingManifestsStorageCsiGcePdNode_dsYaml, - "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-attacher.yaml": testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathAttacherYaml, - "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-driverinfo.yaml": testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathDriverinfoYaml, - "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-plugin.yaml": testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathPluginYaml, - "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-provisioner.yaml": testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathProvisionerYaml, - "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-resizer.yaml": testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathResizerYaml, - "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-snapshotter.yaml": testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathSnapshotterYaml, - "test/e2e/testing-manifests/storage-csi/hostpath/hostpath/e2e-test-rbac.yaml": testE2eTestingManifestsStorageCsiHostpathHostpathE2eTestRbacYaml, - "test/e2e/testing-manifests/storage-csi/hostpath/usage/csi-storageclass.yaml": testE2eTestingManifestsStorageCsiHostpathUsageCsiStorageclassYaml, - "test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-attacher.yaml": testE2eTestingManifestsStorageCsiMockCsiMockDriverAttacherYaml, - "test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-resizer.yaml": testE2eTestingManifestsStorageCsiMockCsiMockDriverResizerYaml, - "test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver.yaml": testE2eTestingManifestsStorageCsiMockCsiMockDriverYaml, - "test/e2e/testing-manifests/storage-csi/mock/csi-mock-driverinfo.yaml": testE2eTestingManifestsStorageCsiMockCsiMockDriverinfoYaml, - "test/e2e/testing-manifests/storage-csi/mock/csi-mock-rbac.yaml": testE2eTestingManifestsStorageCsiMockCsiMockRbacYaml, - "test/e2e/testing-manifests/storage-csi/mock/csi-storageclass.yaml": testE2eTestingManifestsStorageCsiMockCsiStorageclassYaml, - "test/e2e_node/testing-manifests/sriovdp-cm.yaml": testE2e_nodeTestingManifestsSriovdpCmYaml, - "test/e2e_node/testing-manifests/sriovdp-ds.yaml": testE2e_nodeTestingManifestsSriovdpDsYaml, - "test/e2e_node/testing-manifests/sriovdp-sa.yaml": testE2e_nodeTestingManifestsSriovdpSaYaml, - "test/images/Makefile": testImagesMakefile, - "test/images/OWNERS": testImagesOwners, - "test/images/agnhost/.gitignore": testImagesAgnhostGitignore, - "test/images/agnhost/BASEIMAGE": testImagesAgnhostBaseimage, - "test/images/agnhost/Dockerfile": testImagesAgnhostDockerfile, - "test/images/agnhost/Dockerfile_windows": testImagesAgnhostDockerfile_windows, - "test/images/agnhost/Makefile": testImagesAgnhostMakefile, - "test/images/agnhost/OWNERS": testImagesAgnhostOwners, - "test/images/agnhost/VERSION": testImagesAgnhostVersion, - "test/images/agnhost/agnhost.go": testImagesAgnhostAgnhostGo, - "test/images/agnhost/audit-proxy/main.go": testImagesAgnhostAuditProxyMainGo, - "test/images/agnhost/connect/connect.go": testImagesAgnhostConnectConnectGo, - "test/images/agnhost/crd-conversion-webhook/config.go": testImagesAgnhostCrdConversionWebhookConfigGo, - "test/images/agnhost/crd-conversion-webhook/converter/converter_test.go": testImagesAgnhostCrdConversionWebhookConverterConverter_testGo, - "test/images/agnhost/crd-conversion-webhook/converter/example_converter.go": testImagesAgnhostCrdConversionWebhookConverterExample_converterGo, - "test/images/agnhost/crd-conversion-webhook/converter/framework.go": testImagesAgnhostCrdConversionWebhookConverterFrameworkGo, - "test/images/agnhost/crd-conversion-webhook/main.go": testImagesAgnhostCrdConversionWebhookMainGo, - "test/images/agnhost/dns/common.go": testImagesAgnhostDnsCommonGo, - "test/images/agnhost/dns/dns.go": testImagesAgnhostDnsDnsGo, - "test/images/agnhost/dns/dns_windows.go": testImagesAgnhostDnsDns_windowsGo, - "test/images/agnhost/entrypoint-tester/ep.go": testImagesAgnhostEntrypointTesterEpGo, - "test/images/agnhost/fakegitserver/gitserver.go": testImagesAgnhostFakegitserverGitserverGo, - "test/images/agnhost/guestbook/guestbook.go": testImagesAgnhostGuestbookGuestbookGo, - "test/images/agnhost/inclusterclient/main.go": testImagesAgnhostInclusterclientMainGo, - "test/images/agnhost/liveness/server.go": testImagesAgnhostLivenessServerGo, - "test/images/agnhost/logs-generator/logs_generator.go": testImagesAgnhostLogsGeneratorLogs_generatorGo, - "test/images/agnhost/mounttest/filePermissions.ps1": testImagesAgnhostMounttestFilepermissionsPs1, - "test/images/agnhost/mounttest/mt.go": testImagesAgnhostMounttestMtGo, - "test/images/agnhost/mounttest/mt_utils.go": testImagesAgnhostMounttestMt_utilsGo, - "test/images/agnhost/mounttest/mt_utils_windows.go": testImagesAgnhostMounttestMt_utils_windowsGo, - "test/images/agnhost/net/common/common.go": testImagesAgnhostNetCommonCommonGo, - "test/images/agnhost/net/main.go": testImagesAgnhostNetMainGo, - "test/images/agnhost/net/nat/closewait.go": testImagesAgnhostNetNatClosewaitGo, - "test/images/agnhost/netexec/netexec.go": testImagesAgnhostNetexecNetexecGo, - "test/images/agnhost/nettest/nettest.go": testImagesAgnhostNettestNettestGo, - "test/images/agnhost/no-snat-test/main.go": testImagesAgnhostNoSnatTestMainGo, - "test/images/agnhost/no-snat-test-proxy/main.go": testImagesAgnhostNoSnatTestProxyMainGo, - "test/images/agnhost/openidmetadata/openidmetadata.go": testImagesAgnhostOpenidmetadataOpenidmetadataGo, - "test/images/agnhost/pause/pause.go": testImagesAgnhostPausePauseGo, - "test/images/agnhost/port-forward-tester/portforwardtester.go": testImagesAgnhostPortForwardTesterPortforwardtesterGo, - "test/images/agnhost/porter/localhost.crt": testImagesAgnhostPorterLocalhostCrt, - "test/images/agnhost/porter/localhost.key": testImagesAgnhostPorterLocalhostKey, - "test/images/agnhost/porter/porter.go": testImagesAgnhostPorterPorterGo, - "test/images/agnhost/resource-consumer-controller/controller.go": testImagesAgnhostResourceConsumerControllerControllerGo, - "test/images/agnhost/serve-hostname/serve_hostname.go": testImagesAgnhostServeHostnameServe_hostnameGo, - "test/images/agnhost/test-webserver/test-webserver.go": testImagesAgnhostTestWebserverTestWebserverGo, - "test/images/agnhost/webhook/addlabel.go": testImagesAgnhostWebhookAddlabelGo, - "test/images/agnhost/webhook/addlabel_test.go": testImagesAgnhostWebhookAddlabel_testGo, - "test/images/agnhost/webhook/alwaysallow.go": testImagesAgnhostWebhookAlwaysallowGo, - "test/images/agnhost/webhook/alwaysdeny.go": testImagesAgnhostWebhookAlwaysdenyGo, - "test/images/agnhost/webhook/config.go": testImagesAgnhostWebhookConfigGo, - "test/images/agnhost/webhook/configmap.go": testImagesAgnhostWebhookConfigmapGo, - "test/images/agnhost/webhook/convert.go": testImagesAgnhostWebhookConvertGo, - "test/images/agnhost/webhook/convert_test.go": testImagesAgnhostWebhookConvert_testGo, - "test/images/agnhost/webhook/crd.go": testImagesAgnhostWebhookCrdGo, - "test/images/agnhost/webhook/customresource.go": testImagesAgnhostWebhookCustomresourceGo, - "test/images/agnhost/webhook/main.go": testImagesAgnhostWebhookMainGo, - "test/images/agnhost/webhook/patch_test.go": testImagesAgnhostWebhookPatch_testGo, - "test/images/agnhost/webhook/pods.go": testImagesAgnhostWebhookPodsGo, - "test/images/agnhost/webhook/scheme.go": testImagesAgnhostWebhookSchemeGo, - "test/images/apparmor-loader/BASEIMAGE": testImagesApparmorLoaderBaseimage, - "test/images/apparmor-loader/Dockerfile": testImagesApparmorLoaderDockerfile, - "test/images/apparmor-loader/Makefile": testImagesApparmorLoaderMakefile, - "test/images/apparmor-loader/OWNERS": testImagesApparmorLoaderOwners, - "test/images/apparmor-loader/VERSION": testImagesApparmorLoaderVersion, - "test/images/apparmor-loader/example-configmap.yaml": testImagesApparmorLoaderExampleConfigmapYaml, - "test/images/apparmor-loader/example-daemon.yaml": testImagesApparmorLoaderExampleDaemonYaml, - "test/images/apparmor-loader/example-namespace.yaml": testImagesApparmorLoaderExampleNamespaceYaml, - "test/images/apparmor-loader/example-pod.yaml": testImagesApparmorLoaderExamplePodYaml, - "test/images/apparmor-loader/loader.go": testImagesApparmorLoaderLoaderGo, - "test/images/busybox/BASEIMAGE": testImagesBusyboxBaseimage, - "test/images/busybox/Dockerfile_windows": testImagesBusyboxDockerfile_windows, - "test/images/busybox/Makefile": testImagesBusyboxMakefile, - "test/images/busybox/OWNERS": testImagesBusyboxOwners, - "test/images/busybox/VERSION": testImagesBusyboxVersion, - "test/images/busybox/hostname.go": testImagesBusyboxHostnameGo, - "test/images/cloudbuild.yaml": testImagesCloudbuildYaml, - "test/images/cuda-vector-add/BASEIMAGE": testImagesCudaVectorAddBaseimage, - "test/images/cuda-vector-add/Dockerfile": testImagesCudaVectorAddDockerfile, - "test/images/cuda-vector-add/OWNERS": testImagesCudaVectorAddOwners, - "test/images/cuda-vector-add/VERSION": testImagesCudaVectorAddVersion, - "test/images/echoserver/BASEIMAGE": testImagesEchoserverBaseimage, - "test/images/echoserver/Dockerfile": testImagesEchoserverDockerfile, - "test/images/echoserver/OWNERS": testImagesEchoserverOwners, - "test/images/echoserver/VERSION": testImagesEchoserverVersion, - "test/images/echoserver/nginx.conf": testImagesEchoserverNginxConf, - "test/images/echoserver/run.sh": testImagesEchoserverRunSh, - "test/images/echoserver/template.lua": testImagesEchoserverTemplateLua, - "test/images/image-util.sh": testImagesImageUtilSh, - "test/images/ipc-utils/BASEIMAGE": testImagesIpcUtilsBaseimage, - "test/images/ipc-utils/Dockerfile": testImagesIpcUtilsDockerfile, - "test/images/ipc-utils/VERSION": testImagesIpcUtilsVersion, - "test/images/jessie-dnsutils/BASEIMAGE": testImagesJessieDnsutilsBaseimage, - "test/images/jessie-dnsutils/Dockerfile": testImagesJessieDnsutilsDockerfile, - "test/images/jessie-dnsutils/OWNERS": testImagesJessieDnsutilsOwners, - "test/images/jessie-dnsutils/VERSION": testImagesJessieDnsutilsVersion, - "test/images/jessie-dnsutils/fixup-apt-list.sh": testImagesJessieDnsutilsFixupAptListSh, - "test/images/kitten/BASEIMAGE": testImagesKittenBaseimage, - "test/images/kitten/Dockerfile": testImagesKittenDockerfile, - "test/images/kitten/OWNERS": testImagesKittenOwners, - "test/images/kitten/VERSION": testImagesKittenVersion, - "test/images/kitten/html/data.json": testImagesKittenHtmlDataJson, - "test/images/metadata-concealment/Dockerfile": testImagesMetadataConcealmentDockerfile, - "test/images/metadata-concealment/Makefile": testImagesMetadataConcealmentMakefile, - "test/images/metadata-concealment/OWNERS": testImagesMetadataConcealmentOwners, - "test/images/metadata-concealment/VERSION": testImagesMetadataConcealmentVersion, - "test/images/metadata-concealment/check_metadata_concealment.go": testImagesMetadataConcealmentCheck_metadata_concealmentGo, - "test/images/nautilus/BASEIMAGE": testImagesNautilusBaseimage, - "test/images/nautilus/Dockerfile": testImagesNautilusDockerfile, - "test/images/nautilus/OWNERS": testImagesNautilusOwners, - "test/images/nautilus/VERSION": testImagesNautilusVersion, - "test/images/nautilus/html/data.json": testImagesNautilusHtmlDataJson, - "test/images/node-perf/npb-ep/BASEIMAGE": testImagesNodePerfNpbEpBaseimage, - "test/images/node-perf/npb-ep/Dockerfile": testImagesNodePerfNpbEpDockerfile, - "test/images/node-perf/npb-ep/VERSION": testImagesNodePerfNpbEpVersion, - "test/images/node-perf/npb-is/BASEIMAGE": testImagesNodePerfNpbIsBaseimage, - "test/images/node-perf/npb-is/Dockerfile": testImagesNodePerfNpbIsDockerfile, - "test/images/node-perf/npb-is/VERSION": testImagesNodePerfNpbIsVersion, - "test/images/node-perf/tf-wide-deep/BASEIMAGE": testImagesNodePerfTfWideDeepBaseimage, - "test/images/node-perf/tf-wide-deep/Dockerfile": testImagesNodePerfTfWideDeepDockerfile, - "test/images/node-perf/tf-wide-deep/VERSION": testImagesNodePerfTfWideDeepVersion, - "test/images/nonewprivs/.gitignore": testImagesNonewprivsGitignore, - "test/images/nonewprivs/BASEIMAGE": testImagesNonewprivsBaseimage, - "test/images/nonewprivs/Dockerfile": testImagesNonewprivsDockerfile, - "test/images/nonewprivs/Makefile": testImagesNonewprivsMakefile, - "test/images/nonewprivs/OWNERS": testImagesNonewprivsOwners, - "test/images/nonewprivs/VERSION": testImagesNonewprivsVersion, - "test/images/nonewprivs/nnp.go": testImagesNonewprivsNnpGo, - "test/images/nonroot/BASEIMAGE": testImagesNonrootBaseimage, - "test/images/nonroot/Dockerfile": testImagesNonrootDockerfile, - "test/images/nonroot/OWNERS": testImagesNonrootOwners, - "test/images/nonroot/VERSION": testImagesNonrootVersion, - "test/images/pets/OWNERS": testImagesPetsOwners, - "test/images/pets/peer-finder/BASEIMAGE": testImagesPetsPeerFinderBaseimage, - "test/images/pets/peer-finder/Dockerfile": testImagesPetsPeerFinderDockerfile, - "test/images/pets/peer-finder/Makefile": testImagesPetsPeerFinderMakefile, - "test/images/pets/peer-finder/VERSION": testImagesPetsPeerFinderVersion, - "test/images/pets/peer-finder/peer-finder.go": testImagesPetsPeerFinderPeerFinderGo, - "test/images/pets/redis-installer/BASEIMAGE": testImagesPetsRedisInstallerBaseimage, - "test/images/pets/redis-installer/Dockerfile": testImagesPetsRedisInstallerDockerfile, - "test/images/pets/redis-installer/Makefile": testImagesPetsRedisInstallerMakefile, - "test/images/pets/redis-installer/VERSION": testImagesPetsRedisInstallerVersion, - "test/images/pets/redis-installer/install.sh": testImagesPetsRedisInstallerInstallSh, - "test/images/pets/redis-installer/on-start.sh": testImagesPetsRedisInstallerOnStartSh, - "test/images/pets/zookeeper-installer/BASEIMAGE": testImagesPetsZookeeperInstallerBaseimage, - "test/images/pets/zookeeper-installer/Dockerfile": testImagesPetsZookeeperInstallerDockerfile, - "test/images/pets/zookeeper-installer/Makefile": testImagesPetsZookeeperInstallerMakefile, - "test/images/pets/zookeeper-installer/VERSION": testImagesPetsZookeeperInstallerVersion, - "test/images/pets/zookeeper-installer/install.sh": testImagesPetsZookeeperInstallerInstallSh, - "test/images/pets/zookeeper-installer/on-start.sh": testImagesPetsZookeeperInstallerOnStartSh, - "test/images/redis/BASEIMAGE": testImagesRedisBaseimage, - "test/images/redis/Dockerfile": testImagesRedisDockerfile, - "test/images/redis/OWNERS": testImagesRedisOwners, - "test/images/redis/VERSION": testImagesRedisVersion, - "test/images/redis/redis.conf": testImagesRedisRedisConf, - "test/images/regression-issue-74839/.gitignore": testImagesRegressionIssue74839Gitignore, - "test/images/regression-issue-74839/Dockerfile": testImagesRegressionIssue74839Dockerfile, - "test/images/regression-issue-74839/Makefile": testImagesRegressionIssue74839Makefile, - "test/images/regression-issue-74839/OWNERS": testImagesRegressionIssue74839Owners, - "test/images/regression-issue-74839/VERSION": testImagesRegressionIssue74839Version, - "test/images/regression-issue-74839/main.go": testImagesRegressionIssue74839MainGo, - "test/images/regression-issue-74839/tcp.go": testImagesRegressionIssue74839TcpGo, - "test/images/resource-consumer/.gitignore": testImagesResourceConsumerGitignore, - "test/images/resource-consumer/BASEIMAGE": testImagesResourceConsumerBaseimage, - "test/images/resource-consumer/Dockerfile": testImagesResourceConsumerDockerfile, - "test/images/resource-consumer/Makefile": testImagesResourceConsumerMakefile, - "test/images/resource-consumer/VERSION": testImagesResourceConsumerVersion, - "test/images/resource-consumer/common/common.go": testImagesResourceConsumerCommonCommonGo, - "test/images/resource-consumer/consume-cpu/consume_cpu.go": testImagesResourceConsumerConsumeCpuConsume_cpuGo, - "test/images/resource-consumer/resource_consumer.go": testImagesResourceConsumerResource_consumerGo, - "test/images/resource-consumer/resource_consumer_handler.go": testImagesResourceConsumerResource_consumer_handlerGo, - "test/images/resource-consumer/utils.go": testImagesResourceConsumerUtilsGo, - "test/images/sample-apiserver/BASEIMAGE": testImagesSampleApiserverBaseimage, - "test/images/sample-apiserver/Dockerfile": testImagesSampleApiserverDockerfile, - "test/images/sample-apiserver/OWNERS": testImagesSampleApiserverOwners, - "test/images/sample-apiserver/VERSION": testImagesSampleApiserverVersion, - "test/images/sample-device-plugin/BASEIMAGE": testImagesSampleDevicePluginBaseimage, - "test/images/sample-device-plugin/Dockerfile": testImagesSampleDevicePluginDockerfile, - "test/images/sample-device-plugin/Makefile": testImagesSampleDevicePluginMakefile, - "test/images/sample-device-plugin/VERSION": testImagesSampleDevicePluginVersion, - "test/images/sample-device-plugin/sampledeviceplugin.go": testImagesSampleDevicePluginSampledevicepluginGo, - "test/images/volume/OWNERS": testImagesVolumeOwners, - "test/images/volume/gluster/BASEIMAGE": testImagesVolumeGlusterBaseimage, - "test/images/volume/gluster/Dockerfile": testImagesVolumeGlusterDockerfile, - "test/images/volume/gluster/VERSION": testImagesVolumeGlusterVersion, - "test/images/volume/gluster/glusterd.vol": testImagesVolumeGlusterGlusterdVol, - "test/images/volume/gluster/index.html": testImagesVolumeGlusterIndexHtml, - "test/images/volume/gluster/run_gluster.sh": testImagesVolumeGlusterRun_glusterSh, - "test/images/volume/iscsi/BASEIMAGE": testImagesVolumeIscsiBaseimage, - "test/images/volume/iscsi/Dockerfile": testImagesVolumeIscsiDockerfile, - "test/images/volume/iscsi/VERSION": testImagesVolumeIscsiVersion, - "test/images/volume/iscsi/block.tar.gz": testImagesVolumeIscsiBlockTarGz, - "test/images/volume/iscsi/create_block.sh": testImagesVolumeIscsiCreate_blockSh, - "test/images/volume/iscsi/run_iscsi_target.sh": testImagesVolumeIscsiRun_iscsi_targetSh, - "test/images/volume/nfs/BASEIMAGE": testImagesVolumeNfsBaseimage, - "test/images/volume/nfs/Dockerfile": testImagesVolumeNfsDockerfile, - "test/images/volume/nfs/VERSION": testImagesVolumeNfsVersion, - "test/images/volume/nfs/index.html": testImagesVolumeNfsIndexHtml, - "test/images/volume/nfs/run_nfs.sh": testImagesVolumeNfsRun_nfsSh, - "test/images/volume/rbd/BASEIMAGE": testImagesVolumeRbdBaseimage, - "test/images/volume/rbd/Dockerfile": testImagesVolumeRbdDockerfile, - "test/images/volume/rbd/VERSION": testImagesVolumeRbdVersion, - "test/images/volume/rbd/block.tar.gz": testImagesVolumeRbdBlockTarGz, - "test/images/volume/rbd/bootstrap.sh": testImagesVolumeRbdBootstrapSh, - "test/images/volume/rbd/ceph.conf.sh": testImagesVolumeRbdCephConfSh, - "test/images/volume/rbd/create_block.sh": testImagesVolumeRbdCreate_blockSh, - "test/images/volume/rbd/keyring": testImagesVolumeRbdKeyring, - "test/images/volume/rbd/mon.sh": testImagesVolumeRbdMonSh, - "test/images/volume/rbd/osd.sh": testImagesVolumeRbdOsdSh, - "test/fixtures/doc-yaml/admin/daemon.yaml": testFixturesDocYamlAdminDaemonYaml, - "test/fixtures/doc-yaml/admin/high-availability/etcd.yaml": testFixturesDocYamlAdminHighAvailabilityEtcdYaml, - "test/fixtures/doc-yaml/admin/high-availability/kube-apiserver.yaml": testFixturesDocYamlAdminHighAvailabilityKubeApiserverYaml, - "test/fixtures/doc-yaml/admin/high-availability/kube-controller-manager.yaml": testFixturesDocYamlAdminHighAvailabilityKubeControllerManagerYaml, - "test/fixtures/doc-yaml/admin/high-availability/kube-scheduler.yaml": testFixturesDocYamlAdminHighAvailabilityKubeSchedulerYaml, - "test/fixtures/doc-yaml/admin/limitrange/invalid-pod.yaml": testFixturesDocYamlAdminLimitrangeInvalidPodYaml, - "test/fixtures/doc-yaml/admin/limitrange/limits.yaml": testFixturesDocYamlAdminLimitrangeLimitsYaml, - "test/fixtures/doc-yaml/admin/limitrange/namespace.yaml": testFixturesDocYamlAdminLimitrangeNamespaceYaml, - "test/fixtures/doc-yaml/admin/limitrange/valid-pod.yaml": testFixturesDocYamlAdminLimitrangeValidPodYaml, - "test/fixtures/doc-yaml/admin/namespaces/namespace-dev.json": testFixturesDocYamlAdminNamespacesNamespaceDevJson, - "test/fixtures/doc-yaml/admin/namespaces/namespace-prod.json": testFixturesDocYamlAdminNamespacesNamespaceProdJson, - "test/fixtures/doc-yaml/admin/resourcequota/limits.yaml": testFixturesDocYamlAdminResourcequotaLimitsYaml, - "test/fixtures/doc-yaml/admin/resourcequota/namespace.yaml": testFixturesDocYamlAdminResourcequotaNamespaceYaml, - "test/fixtures/doc-yaml/admin/resourcequota/quota.yaml": testFixturesDocYamlAdminResourcequotaQuotaYaml, - "test/fixtures/doc-yaml/user-guide/configmap/configmap.yaml": testFixturesDocYamlUserGuideConfigmapConfigmapYaml, - "test/fixtures/doc-yaml/user-guide/deployment.yaml": testFixturesDocYamlUserGuideDeploymentYaml, - "test/fixtures/doc-yaml/user-guide/downward-api/dapi-pod.yaml.in": testFixturesDocYamlUserGuideDownwardApiDapiPodYamlIn, - "test/fixtures/doc-yaml/user-guide/job.yaml": testFixturesDocYamlUserGuideJobYaml, - "test/fixtures/doc-yaml/user-guide/liveness/exec-liveness.yaml.in": testFixturesDocYamlUserGuideLivenessExecLivenessYamlIn, - "test/fixtures/doc-yaml/user-guide/liveness/http-liveness.yaml.in": testFixturesDocYamlUserGuideLivenessHttpLivenessYamlIn, - "test/fixtures/doc-yaml/user-guide/multi-pod.yaml": testFixturesDocYamlUserGuideMultiPodYaml, - "test/fixtures/doc-yaml/user-guide/persistent-volumes/claims/claim-01.yaml": testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim01Yaml, - "test/fixtures/doc-yaml/user-guide/persistent-volumes/claims/claim-02.yaml": testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim02Yaml, - "test/fixtures/doc-yaml/user-guide/persistent-volumes/claims/claim-03.json": testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim03Json, - "test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/gce.yaml": testFixturesDocYamlUserGuidePersistentVolumesVolumesGceYaml, - "test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/local-01.yaml": testFixturesDocYamlUserGuidePersistentVolumesVolumesLocal01Yaml, - "test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/local-02.yaml": testFixturesDocYamlUserGuidePersistentVolumesVolumesLocal02Yaml, - "test/fixtures/doc-yaml/user-guide/persistent-volumes/volumes/nfs.yaml": testFixturesDocYamlUserGuidePersistentVolumesVolumesNfsYaml, - "test/fixtures/doc-yaml/user-guide/pod.yaml": testFixturesDocYamlUserGuidePodYaml, - "test/fixtures/doc-yaml/user-guide/replicaset/redis-slave.yaml": testFixturesDocYamlUserGuideReplicasetRedisSlaveYaml, - "test/fixtures/doc-yaml/user-guide/replication.yaml": testFixturesDocYamlUserGuideReplicationYaml, - "test/fixtures/doc-yaml/user-guide/secrets/secret-env-pod.yaml": testFixturesDocYamlUserGuideSecretsSecretEnvPodYaml, - "test/fixtures/doc-yaml/user-guide/secrets/secret-pod.yaml.in": testFixturesDocYamlUserGuideSecretsSecretPodYamlIn, - "test/fixtures/doc-yaml/user-guide/secrets/secret.yaml": testFixturesDocYamlUserGuideSecretsSecretYaml, - "test/fixtures/doc-yaml/user-guide/update-demo/images/kitten/html/data.json": testFixturesDocYamlUserGuideUpdateDemoImagesKittenHtmlDataJson, - "test/fixtures/doc-yaml/user-guide/update-demo/images/nautilus/html/data.json": testFixturesDocYamlUserGuideUpdateDemoImagesNautilusHtmlDataJson, - "test/fixtures/doc-yaml/user-guide/update-demo/kitten-rc.yaml.in": testFixturesDocYamlUserGuideUpdateDemoKittenRcYamlIn, - "test/fixtures/doc-yaml/user-guide/update-demo/nautilus-rc.yaml.in": testFixturesDocYamlUserGuideUpdateDemoNautilusRcYamlIn, - "test/fixtures/doc-yaml/user-guide/walkthrough/podtemplate.json": testFixturesDocYamlUserGuideWalkthroughPodtemplateJson, - "test/fixtures/pkg/kubectl/OWNERS": testFixturesPkgKubectlOwners, - "test/fixtures/pkg/kubectl/plugins/bar/kubectl-bar": testFixturesPkgKubectlPluginsBarKubectlBar, - "test/fixtures/pkg/kubectl/plugins/foo/kubectl-foo": testFixturesPkgKubectlPluginsFooKubectlFoo, - "test/fixtures/pkg/kubectl/plugins/kubectl-foo": testFixturesPkgKubectlPluginsKubectlFoo, - "test/fixtures/pkg/kubectl/plugins/version/kubectl-version": testFixturesPkgKubectlPluginsVersionKubectlVersion, -} - -// AssetDir returns the file names below a certain -// directory embedded in the file by go-bindata. -// For example if you run go-bindata on data/... and data contains the -// following hierarchy: -// data/ -// foo.txt -// img/ -// a.png -// b.png -// then AssetDir("data") would return []string{"foo.txt", "img"} -// AssetDir("data/img") would return []string{"a.png", "b.png"} -// AssetDir("foo.txt") and AssetDir("notexist") would return an error -// AssetDir("") will return []string{"data"}. -func AssetDir(name string) ([]string, error) { - node := _bintree - if len(name) != 0 { - cannonicalName := strings.Replace(name, "\\", "/", -1) - pathList := strings.Split(cannonicalName, "/") - for _, p := range pathList { - node = node.Children[p] - if node == nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - } - } - if node.Func != nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - rv := make([]string, 0, len(node.Children)) - for childName := range node.Children { - rv = append(rv, childName) - } - return rv, nil -} - -type bintree struct { - Func func() (*asset, error) - Children map[string]*bintree -} - -var _bintree = &bintree{nil, map[string]*bintree{ - "test": {nil, map[string]*bintree{ - "conformance": {nil, map[string]*bintree{ - "testdata": {nil, map[string]*bintree{ - "OWNERS": {testConformanceTestdataOwners, map[string]*bintree{}}, - "conformance.yaml": {testConformanceTestdataConformanceYaml, map[string]*bintree{}}, - }}, - }}, - "e2e": {nil, map[string]*bintree{ - "testing-manifests": {nil, map[string]*bintree{ - "flexvolume": {nil, map[string]*bintree{ - "attachable-with-long-mount": {testE2eTestingManifestsFlexvolumeAttachableWithLongMount, map[string]*bintree{}}, - "dummy": {testE2eTestingManifestsFlexvolumeDummy, map[string]*bintree{}}, - "dummy-attachable": {testE2eTestingManifestsFlexvolumeDummyAttachable, map[string]*bintree{}}, - }}, - "guestbook": {nil, map[string]*bintree{ - "agnhost-primary-deployment.yaml.in": {testE2eTestingManifestsGuestbookAgnhostPrimaryDeploymentYamlIn, map[string]*bintree{}}, - "agnhost-primary-service.yaml": {testE2eTestingManifestsGuestbookAgnhostPrimaryServiceYaml, map[string]*bintree{}}, - "agnhost-replica-deployment.yaml.in": {testE2eTestingManifestsGuestbookAgnhostReplicaDeploymentYamlIn, map[string]*bintree{}}, - "agnhost-replica-service.yaml": {testE2eTestingManifestsGuestbookAgnhostReplicaServiceYaml, map[string]*bintree{}}, - "frontend-deployment.yaml.in": {testE2eTestingManifestsGuestbookFrontendDeploymentYamlIn, map[string]*bintree{}}, - "frontend-service.yaml": {testE2eTestingManifestsGuestbookFrontendServiceYaml, map[string]*bintree{}}, - "legacy": {nil, map[string]*bintree{ - "frontend-controller.yaml": {testE2eTestingManifestsGuestbookLegacyFrontendControllerYaml, map[string]*bintree{}}, - "redis-master-controller.yaml": {testE2eTestingManifestsGuestbookLegacyRedisMasterControllerYaml, map[string]*bintree{}}, - "redis-slave-controller.yaml": {testE2eTestingManifestsGuestbookLegacyRedisSlaveControllerYaml, map[string]*bintree{}}, - }}, - "redis-master-deployment.yaml.in": {testE2eTestingManifestsGuestbookRedisMasterDeploymentYamlIn, map[string]*bintree{}}, - "redis-master-service.yaml": {testE2eTestingManifestsGuestbookRedisMasterServiceYaml, map[string]*bintree{}}, - "redis-slave-deployment.yaml.in": {testE2eTestingManifestsGuestbookRedisSlaveDeploymentYamlIn, map[string]*bintree{}}, - "redis-slave-service.yaml": {testE2eTestingManifestsGuestbookRedisSlaveServiceYaml, map[string]*bintree{}}, - }}, - "ingress": {nil, map[string]*bintree{ - "gce": {nil, map[string]*bintree{ - "static-ip-2": {nil, map[string]*bintree{ - "ing.yaml": {testE2eTestingManifestsIngressGceStaticIp2IngYaml, map[string]*bintree{}}, - "rc.yaml": {testE2eTestingManifestsIngressGceStaticIp2RcYaml, map[string]*bintree{}}, - "svc.yaml": {testE2eTestingManifestsIngressGceStaticIp2SvcYaml, map[string]*bintree{}}, - }}, - }}, - "http": {nil, map[string]*bintree{ - "ing.yaml": {testE2eTestingManifestsIngressHttpIngYaml, map[string]*bintree{}}, - "rc.yaml": {testE2eTestingManifestsIngressHttpRcYaml, map[string]*bintree{}}, - "svc.yaml": {testE2eTestingManifestsIngressHttpSvcYaml, map[string]*bintree{}}, - }}, - "http2": {nil, map[string]*bintree{ - "ing.yaml": {testE2eTestingManifestsIngressHttp2IngYaml, map[string]*bintree{}}, - "rc.yaml": {testE2eTestingManifestsIngressHttp2RcYaml, map[string]*bintree{}}, - "svc.yaml": {testE2eTestingManifestsIngressHttp2SvcYaml, map[string]*bintree{}}, - }}, - "multiple-certs": {nil, map[string]*bintree{ - "ing.yaml": {testE2eTestingManifestsIngressMultipleCertsIngYaml, map[string]*bintree{}}, - "rc.yaml": {testE2eTestingManifestsIngressMultipleCertsRcYaml, map[string]*bintree{}}, - "svc.yaml": {testE2eTestingManifestsIngressMultipleCertsSvcYaml, map[string]*bintree{}}, - }}, - "neg": {nil, map[string]*bintree{ - "ing.yaml": {testE2eTestingManifestsIngressNegIngYaml, map[string]*bintree{}}, - "rc.yaml": {testE2eTestingManifestsIngressNegRcYaml, map[string]*bintree{}}, - "svc.yaml": {testE2eTestingManifestsIngressNegSvcYaml, map[string]*bintree{}}, - }}, - "neg-clusterip": {nil, map[string]*bintree{ - "ing.yaml": {testE2eTestingManifestsIngressNegClusteripIngYaml, map[string]*bintree{}}, - "rc.yaml": {testE2eTestingManifestsIngressNegClusteripRcYaml, map[string]*bintree{}}, - "svc.yaml": {testE2eTestingManifestsIngressNegClusteripSvcYaml, map[string]*bintree{}}, - }}, - "neg-exposed": {nil, map[string]*bintree{ - "ing.yaml": {testE2eTestingManifestsIngressNegExposedIngYaml, map[string]*bintree{}}, - "rc.yaml": {testE2eTestingManifestsIngressNegExposedRcYaml, map[string]*bintree{}}, - "svc.yaml": {testE2eTestingManifestsIngressNegExposedSvcYaml, map[string]*bintree{}}, - }}, - "nginx": {nil, map[string]*bintree{ - "rc.yaml": {testE2eTestingManifestsIngressNginxRcYaml, map[string]*bintree{}}, - }}, - "pre-shared-cert": {nil, map[string]*bintree{ - "ing.yaml": {testE2eTestingManifestsIngressPreSharedCertIngYaml, map[string]*bintree{}}, - "rc.yaml": {testE2eTestingManifestsIngressPreSharedCertRcYaml, map[string]*bintree{}}, - "svc.yaml": {testE2eTestingManifestsIngressPreSharedCertSvcYaml, map[string]*bintree{}}, - }}, - "static-ip": {nil, map[string]*bintree{ - "ing.yaml": {testE2eTestingManifestsIngressStaticIpIngYaml, map[string]*bintree{}}, - "rc.yaml": {testE2eTestingManifestsIngressStaticIpRcYaml, map[string]*bintree{}}, - "secret.yaml": {testE2eTestingManifestsIngressStaticIpSecretYaml, map[string]*bintree{}}, - "svc.yaml": {testE2eTestingManifestsIngressStaticIpSvcYaml, map[string]*bintree{}}, - }}, - }}, - "kubectl": {nil, map[string]*bintree{ - "agnhost-primary-controller.json.in": {testE2eTestingManifestsKubectlAgnhostPrimaryControllerJsonIn, map[string]*bintree{}}, - "agnhost-primary-pod.yaml": {testE2eTestingManifestsKubectlAgnhostPrimaryPodYaml, map[string]*bintree{}}, - "agnhost-primary-service.json": {testE2eTestingManifestsKubectlAgnhostPrimaryServiceJson, map[string]*bintree{}}, - "busybox-cronjob.yaml": {testE2eTestingManifestsKubectlBusyboxCronjobYaml, map[string]*bintree{}}, - "busybox-pod.yaml": {testE2eTestingManifestsKubectlBusyboxPodYaml, map[string]*bintree{}}, - "httpd-deployment1.yaml.in": {testE2eTestingManifestsKubectlHttpdDeployment1YamlIn, map[string]*bintree{}}, - "httpd-deployment2.yaml.in": {testE2eTestingManifestsKubectlHttpdDeployment2YamlIn, map[string]*bintree{}}, - "httpd-deployment3.yaml.in": {testE2eTestingManifestsKubectlHttpdDeployment3YamlIn, map[string]*bintree{}}, - "httpd-rc.yaml.in": {testE2eTestingManifestsKubectlHttpdRcYamlIn, map[string]*bintree{}}, - "pause-pod.yaml.in": {testE2eTestingManifestsKubectlPausePodYamlIn, map[string]*bintree{}}, - "pod-with-readiness-probe.yaml.in": {testE2eTestingManifestsKubectlPodWithReadinessProbeYamlIn, map[string]*bintree{}}, - }}, - "pod": {testE2eTestingManifestsPod, map[string]*bintree{}}, - "rbd-storage-class.yaml": {testE2eTestingManifestsRbdStorageClassYaml, map[string]*bintree{}}, - "sample-device-plugin.yaml": {testE2eTestingManifestsSampleDevicePluginYaml, map[string]*bintree{}}, - "scheduling": {nil, map[string]*bintree{ - "nvidia-driver-installer.yaml": {testE2eTestingManifestsSchedulingNvidiaDriverInstallerYaml, map[string]*bintree{}}, - }}, - "serviceloadbalancer": {nil, map[string]*bintree{ - "haproxyrc.yaml": {testE2eTestingManifestsServiceloadbalancerHaproxyrcYaml, map[string]*bintree{}}, - "netexecrc.yaml": {testE2eTestingManifestsServiceloadbalancerNetexecrcYaml, map[string]*bintree{}}, - "netexecsvc.yaml": {testE2eTestingManifestsServiceloadbalancerNetexecsvcYaml, map[string]*bintree{}}, - "nginxrc.yaml": {testE2eTestingManifestsServiceloadbalancerNginxrcYaml, map[string]*bintree{}}, - "nginxsvc.yaml": {testE2eTestingManifestsServiceloadbalancerNginxsvcYaml, map[string]*bintree{}}, - }}, - "statefulset": {nil, map[string]*bintree{ - "cassandra": {nil, map[string]*bintree{ - "controller.yaml": {testE2eTestingManifestsStatefulsetCassandraControllerYaml, map[string]*bintree{}}, - "pdb.yaml": {testE2eTestingManifestsStatefulsetCassandraPdbYaml, map[string]*bintree{}}, - "service.yaml": {testE2eTestingManifestsStatefulsetCassandraServiceYaml, map[string]*bintree{}}, - "statefulset.yaml": {testE2eTestingManifestsStatefulsetCassandraStatefulsetYaml, map[string]*bintree{}}, - "tester.yaml": {testE2eTestingManifestsStatefulsetCassandraTesterYaml, map[string]*bintree{}}, - }}, - "cockroachdb": {nil, map[string]*bintree{ - "service.yaml": {testE2eTestingManifestsStatefulsetCockroachdbServiceYaml, map[string]*bintree{}}, - "statefulset.yaml": {testE2eTestingManifestsStatefulsetCockroachdbStatefulsetYaml, map[string]*bintree{}}, - }}, - "etcd": {nil, map[string]*bintree{ - "pdb.yaml": {testE2eTestingManifestsStatefulsetEtcdPdbYaml, map[string]*bintree{}}, - "service.yaml": {testE2eTestingManifestsStatefulsetEtcdServiceYaml, map[string]*bintree{}}, - "statefulset.yaml": {testE2eTestingManifestsStatefulsetEtcdStatefulsetYaml, map[string]*bintree{}}, - "tester.yaml": {testE2eTestingManifestsStatefulsetEtcdTesterYaml, map[string]*bintree{}}, - }}, - "mysql-galera": {nil, map[string]*bintree{ - "service.yaml": {testE2eTestingManifestsStatefulsetMysqlGaleraServiceYaml, map[string]*bintree{}}, - "statefulset.yaml": {testE2eTestingManifestsStatefulsetMysqlGaleraStatefulsetYaml, map[string]*bintree{}}, - }}, - "mysql-upgrade": {nil, map[string]*bintree{ - "configmap.yaml": {testE2eTestingManifestsStatefulsetMysqlUpgradeConfigmapYaml, map[string]*bintree{}}, - "service.yaml": {testE2eTestingManifestsStatefulsetMysqlUpgradeServiceYaml, map[string]*bintree{}}, - "statefulset.yaml": {testE2eTestingManifestsStatefulsetMysqlUpgradeStatefulsetYaml, map[string]*bintree{}}, - "tester.yaml": {testE2eTestingManifestsStatefulsetMysqlUpgradeTesterYaml, map[string]*bintree{}}, - }}, - "nginx": {nil, map[string]*bintree{ - "service.yaml": {testE2eTestingManifestsStatefulsetNginxServiceYaml, map[string]*bintree{}}, - "statefulset.yaml": {testE2eTestingManifestsStatefulsetNginxStatefulsetYaml, map[string]*bintree{}}, - }}, - "redis": {nil, map[string]*bintree{ - "service.yaml": {testE2eTestingManifestsStatefulsetRedisServiceYaml, map[string]*bintree{}}, - "statefulset.yaml": {testE2eTestingManifestsStatefulsetRedisStatefulsetYaml, map[string]*bintree{}}, - }}, - "zookeeper": {nil, map[string]*bintree{ - "service.yaml": {testE2eTestingManifestsStatefulsetZookeeperServiceYaml, map[string]*bintree{}}, - "statefulset.yaml": {testE2eTestingManifestsStatefulsetZookeeperStatefulsetYaml, map[string]*bintree{}}, - }}, - }}, - "storage-csi": {nil, map[string]*bintree{ - "OWNERS": {testE2eTestingManifestsStorageCsiOwners, map[string]*bintree{}}, - "controller-role.yaml": {testE2eTestingManifestsStorageCsiControllerRoleYaml, map[string]*bintree{}}, - "external-attacher": {nil, map[string]*bintree{ - "rbac.yaml": {testE2eTestingManifestsStorageCsiExternalAttacherRbacYaml, map[string]*bintree{}}, - }}, - "external-provisioner": {nil, map[string]*bintree{ - "rbac.yaml": {testE2eTestingManifestsStorageCsiExternalProvisionerRbacYaml, map[string]*bintree{}}, - }}, - "external-resizer": {nil, map[string]*bintree{ - "rbac.yaml": {testE2eTestingManifestsStorageCsiExternalResizerRbacYaml, map[string]*bintree{}}, - }}, - "external-snapshotter": {nil, map[string]*bintree{ - "rbac.yaml": {testE2eTestingManifestsStorageCsiExternalSnapshotterRbacYaml, map[string]*bintree{}}, - }}, - "gce-pd": {nil, map[string]*bintree{ - "controller_ss.yaml": {testE2eTestingManifestsStorageCsiGcePdController_ssYaml, map[string]*bintree{}}, - "csi-controller-rbac.yaml": {testE2eTestingManifestsStorageCsiGcePdCsiControllerRbacYaml, map[string]*bintree{}}, - "node_ds.yaml": {testE2eTestingManifestsStorageCsiGcePdNode_dsYaml, map[string]*bintree{}}, - }}, - "hostpath": {nil, map[string]*bintree{ - "hostpath": {nil, map[string]*bintree{ - "csi-hostpath-attacher.yaml": {testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathAttacherYaml, map[string]*bintree{}}, - "csi-hostpath-driverinfo.yaml": {testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathDriverinfoYaml, map[string]*bintree{}}, - "csi-hostpath-plugin.yaml": {testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathPluginYaml, map[string]*bintree{}}, - "csi-hostpath-provisioner.yaml": {testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathProvisionerYaml, map[string]*bintree{}}, - "csi-hostpath-resizer.yaml": {testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathResizerYaml, map[string]*bintree{}}, - "csi-hostpath-snapshotter.yaml": {testE2eTestingManifestsStorageCsiHostpathHostpathCsiHostpathSnapshotterYaml, map[string]*bintree{}}, - "e2e-test-rbac.yaml": {testE2eTestingManifestsStorageCsiHostpathHostpathE2eTestRbacYaml, map[string]*bintree{}}, - }}, - "usage": {nil, map[string]*bintree{ - "csi-storageclass.yaml": {testE2eTestingManifestsStorageCsiHostpathUsageCsiStorageclassYaml, map[string]*bintree{}}, - }}, - }}, - "mock": {nil, map[string]*bintree{ - "csi-mock-driver-attacher.yaml": {testE2eTestingManifestsStorageCsiMockCsiMockDriverAttacherYaml, map[string]*bintree{}}, - "csi-mock-driver-resizer.yaml": {testE2eTestingManifestsStorageCsiMockCsiMockDriverResizerYaml, map[string]*bintree{}}, - "csi-mock-driver.yaml": {testE2eTestingManifestsStorageCsiMockCsiMockDriverYaml, map[string]*bintree{}}, - "csi-mock-driverinfo.yaml": {testE2eTestingManifestsStorageCsiMockCsiMockDriverinfoYaml, map[string]*bintree{}}, - "csi-mock-rbac.yaml": {testE2eTestingManifestsStorageCsiMockCsiMockRbacYaml, map[string]*bintree{}}, - "csi-storageclass.yaml": {testE2eTestingManifestsStorageCsiMockCsiStorageclassYaml, map[string]*bintree{}}, - }}, - }}, - }}, - }}, - "e2e_node": {nil, map[string]*bintree{ - "testing-manifests": {nil, map[string]*bintree{ - "sriovdp-cm.yaml": {testE2e_nodeTestingManifestsSriovdpCmYaml, map[string]*bintree{}}, - "sriovdp-ds.yaml": {testE2e_nodeTestingManifestsSriovdpDsYaml, map[string]*bintree{}}, - "sriovdp-sa.yaml": {testE2e_nodeTestingManifestsSriovdpSaYaml, map[string]*bintree{}}, - }}, - }}, - "fixtures": {nil, map[string]*bintree{ - "doc-yaml": {nil, map[string]*bintree{ - "admin": {nil, map[string]*bintree{ - "daemon.yaml": {testFixturesDocYamlAdminDaemonYaml, map[string]*bintree{}}, - "high-availability": {nil, map[string]*bintree{ - "etcd.yaml": {testFixturesDocYamlAdminHighAvailabilityEtcdYaml, map[string]*bintree{}}, - "kube-apiserver.yaml": {testFixturesDocYamlAdminHighAvailabilityKubeApiserverYaml, map[string]*bintree{}}, - "kube-controller-manager.yaml": {testFixturesDocYamlAdminHighAvailabilityKubeControllerManagerYaml, map[string]*bintree{}}, - "kube-scheduler.yaml": {testFixturesDocYamlAdminHighAvailabilityKubeSchedulerYaml, map[string]*bintree{}}, - }}, - "limitrange": {nil, map[string]*bintree{ - "invalid-pod.yaml": {testFixturesDocYamlAdminLimitrangeInvalidPodYaml, map[string]*bintree{}}, - "limits.yaml": {testFixturesDocYamlAdminLimitrangeLimitsYaml, map[string]*bintree{}}, - "namespace.yaml": {testFixturesDocYamlAdminLimitrangeNamespaceYaml, map[string]*bintree{}}, - "valid-pod.yaml": {testFixturesDocYamlAdminLimitrangeValidPodYaml, map[string]*bintree{}}, - }}, - "namespaces": {nil, map[string]*bintree{ - "namespace-dev.json": {testFixturesDocYamlAdminNamespacesNamespaceDevJson, map[string]*bintree{}}, - "namespace-prod.json": {testFixturesDocYamlAdminNamespacesNamespaceProdJson, map[string]*bintree{}}, - }}, - "resourcequota": {nil, map[string]*bintree{ - "limits.yaml": {testFixturesDocYamlAdminResourcequotaLimitsYaml, map[string]*bintree{}}, - "namespace.yaml": {testFixturesDocYamlAdminResourcequotaNamespaceYaml, map[string]*bintree{}}, - "quota.yaml": {testFixturesDocYamlAdminResourcequotaQuotaYaml, map[string]*bintree{}}, - }}, - }}, - "user-guide": {nil, map[string]*bintree{ - "configmap": {nil, map[string]*bintree{ - "configmap.yaml": {testFixturesDocYamlUserGuideConfigmapConfigmapYaml, map[string]*bintree{}}, - }}, - "deployment.yaml": {testFixturesDocYamlUserGuideDeploymentYaml, map[string]*bintree{}}, - "downward-api": {nil, map[string]*bintree{ - "dapi-pod.yaml.in": {testFixturesDocYamlUserGuideDownwardApiDapiPodYamlIn, map[string]*bintree{}}, - }}, - "job.yaml": {testFixturesDocYamlUserGuideJobYaml, map[string]*bintree{}}, - "liveness": {nil, map[string]*bintree{ - "exec-liveness.yaml.in": {testFixturesDocYamlUserGuideLivenessExecLivenessYamlIn, map[string]*bintree{}}, - "http-liveness.yaml.in": {testFixturesDocYamlUserGuideLivenessHttpLivenessYamlIn, map[string]*bintree{}}, - }}, - "multi-pod.yaml": {testFixturesDocYamlUserGuideMultiPodYaml, map[string]*bintree{}}, - "persistent-volumes": {nil, map[string]*bintree{ - "claims": {nil, map[string]*bintree{ - "claim-01.yaml": {testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim01Yaml, map[string]*bintree{}}, - "claim-02.yaml": {testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim02Yaml, map[string]*bintree{}}, - "claim-03.json": {testFixturesDocYamlUserGuidePersistentVolumesClaimsClaim03Json, map[string]*bintree{}}, - }}, - "volumes": {nil, map[string]*bintree{ - "gce.yaml": {testFixturesDocYamlUserGuidePersistentVolumesVolumesGceYaml, map[string]*bintree{}}, - "local-01.yaml": {testFixturesDocYamlUserGuidePersistentVolumesVolumesLocal01Yaml, map[string]*bintree{}}, - "local-02.yaml": {testFixturesDocYamlUserGuidePersistentVolumesVolumesLocal02Yaml, map[string]*bintree{}}, - "nfs.yaml": {testFixturesDocYamlUserGuidePersistentVolumesVolumesNfsYaml, map[string]*bintree{}}, - }}, - }}, - "pod.yaml": {testFixturesDocYamlUserGuidePodYaml, map[string]*bintree{}}, - "replicaset": {nil, map[string]*bintree{ - "redis-slave.yaml": {testFixturesDocYamlUserGuideReplicasetRedisSlaveYaml, map[string]*bintree{}}, - }}, - "replication.yaml": {testFixturesDocYamlUserGuideReplicationYaml, map[string]*bintree{}}, - "secrets": {nil, map[string]*bintree{ - "secret-env-pod.yaml": {testFixturesDocYamlUserGuideSecretsSecretEnvPodYaml, map[string]*bintree{}}, - "secret-pod.yaml.in": {testFixturesDocYamlUserGuideSecretsSecretPodYamlIn, map[string]*bintree{}}, - "secret.yaml": {testFixturesDocYamlUserGuideSecretsSecretYaml, map[string]*bintree{}}, - }}, - "update-demo": {nil, map[string]*bintree{ - "images": {nil, map[string]*bintree{ - "kitten": {nil, map[string]*bintree{ - "html": {nil, map[string]*bintree{ - "data.json": {testFixturesDocYamlUserGuideUpdateDemoImagesKittenHtmlDataJson, map[string]*bintree{}}, - }}, - }}, - "nautilus": {nil, map[string]*bintree{ - "html": {nil, map[string]*bintree{ - "data.json": {testFixturesDocYamlUserGuideUpdateDemoImagesNautilusHtmlDataJson, map[string]*bintree{}}, - }}, - }}, - }}, - "kitten-rc.yaml.in": {testFixturesDocYamlUserGuideUpdateDemoKittenRcYamlIn, map[string]*bintree{}}, - "nautilus-rc.yaml.in": {testFixturesDocYamlUserGuideUpdateDemoNautilusRcYamlIn, map[string]*bintree{}}, - }}, - "walkthrough": {nil, map[string]*bintree{ - "podtemplate.json": {testFixturesDocYamlUserGuideWalkthroughPodtemplateJson, map[string]*bintree{}}, - }}, - }}, - }}, - "pkg": {nil, map[string]*bintree{ - "kubectl": {nil, map[string]*bintree{ - "OWNERS": {testFixturesPkgKubectlOwners, map[string]*bintree{}}, - "plugins": {nil, map[string]*bintree{ - "bar": {nil, map[string]*bintree{ - "kubectl-bar": {testFixturesPkgKubectlPluginsBarKubectlBar, map[string]*bintree{}}, - }}, - "foo": {nil, map[string]*bintree{ - "kubectl-foo": {testFixturesPkgKubectlPluginsFooKubectlFoo, map[string]*bintree{}}, - }}, - "kubectl-foo": {testFixturesPkgKubectlPluginsKubectlFoo, map[string]*bintree{}}, - "version": {nil, map[string]*bintree{ - "kubectl-version": {testFixturesPkgKubectlPluginsVersionKubectlVersion, map[string]*bintree{}}, - }}, - }}, - }}, - }}, - }}, - "images": {nil, map[string]*bintree{ - "Makefile": {testImagesMakefile, map[string]*bintree{}}, - "OWNERS": {testImagesOwners, map[string]*bintree{}}, - "agnhost": {nil, map[string]*bintree{ - ".gitignore": {testImagesAgnhostGitignore, map[string]*bintree{}}, - "BASEIMAGE": {testImagesAgnhostBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesAgnhostDockerfile, map[string]*bintree{}}, - "Dockerfile_windows": {testImagesAgnhostDockerfile_windows, map[string]*bintree{}}, - "Makefile": {testImagesAgnhostMakefile, map[string]*bintree{}}, - "OWNERS": {testImagesAgnhostOwners, map[string]*bintree{}}, - "VERSION": {testImagesAgnhostVersion, map[string]*bintree{}}, - "agnhost.go": {testImagesAgnhostAgnhostGo, map[string]*bintree{}}, - "audit-proxy": {nil, map[string]*bintree{ - "main.go": {testImagesAgnhostAuditProxyMainGo, map[string]*bintree{}}, - }}, - "connect": {nil, map[string]*bintree{ - "connect.go": {testImagesAgnhostConnectConnectGo, map[string]*bintree{}}, - }}, - "crd-conversion-webhook": {nil, map[string]*bintree{ - "config.go": {testImagesAgnhostCrdConversionWebhookConfigGo, map[string]*bintree{}}, - "converter": {nil, map[string]*bintree{ - "converter_test.go": {testImagesAgnhostCrdConversionWebhookConverterConverter_testGo, map[string]*bintree{}}, - "example_converter.go": {testImagesAgnhostCrdConversionWebhookConverterExample_converterGo, map[string]*bintree{}}, - "framework.go": {testImagesAgnhostCrdConversionWebhookConverterFrameworkGo, map[string]*bintree{}}, - }}, - "main.go": {testImagesAgnhostCrdConversionWebhookMainGo, map[string]*bintree{}}, - }}, - "dns": {nil, map[string]*bintree{ - "common.go": {testImagesAgnhostDnsCommonGo, map[string]*bintree{}}, - "dns.go": {testImagesAgnhostDnsDnsGo, map[string]*bintree{}}, - "dns_windows.go": {testImagesAgnhostDnsDns_windowsGo, map[string]*bintree{}}, - }}, - "entrypoint-tester": {nil, map[string]*bintree{ - "ep.go": {testImagesAgnhostEntrypointTesterEpGo, map[string]*bintree{}}, - }}, - "fakegitserver": {nil, map[string]*bintree{ - "gitserver.go": {testImagesAgnhostFakegitserverGitserverGo, map[string]*bintree{}}, - }}, - "guestbook": {nil, map[string]*bintree{ - "guestbook.go": {testImagesAgnhostGuestbookGuestbookGo, map[string]*bintree{}}, - }}, - "inclusterclient": {nil, map[string]*bintree{ - "main.go": {testImagesAgnhostInclusterclientMainGo, map[string]*bintree{}}, - }}, - "liveness": {nil, map[string]*bintree{ - "server.go": {testImagesAgnhostLivenessServerGo, map[string]*bintree{}}, - }}, - "logs-generator": {nil, map[string]*bintree{ - "logs_generator.go": {testImagesAgnhostLogsGeneratorLogs_generatorGo, map[string]*bintree{}}, - }}, - "mounttest": {nil, map[string]*bintree{ - "filePermissions.ps1": {testImagesAgnhostMounttestFilepermissionsPs1, map[string]*bintree{}}, - "mt.go": {testImagesAgnhostMounttestMtGo, map[string]*bintree{}}, - "mt_utils.go": {testImagesAgnhostMounttestMt_utilsGo, map[string]*bintree{}}, - "mt_utils_windows.go": {testImagesAgnhostMounttestMt_utils_windowsGo, map[string]*bintree{}}, - }}, - "net": {nil, map[string]*bintree{ - "common": {nil, map[string]*bintree{ - "common.go": {testImagesAgnhostNetCommonCommonGo, map[string]*bintree{}}, - }}, - "main.go": {testImagesAgnhostNetMainGo, map[string]*bintree{}}, - "nat": {nil, map[string]*bintree{ - "closewait.go": {testImagesAgnhostNetNatClosewaitGo, map[string]*bintree{}}, - }}, - }}, - "netexec": {nil, map[string]*bintree{ - "netexec.go": {testImagesAgnhostNetexecNetexecGo, map[string]*bintree{}}, - }}, - "nettest": {nil, map[string]*bintree{ - "nettest.go": {testImagesAgnhostNettestNettestGo, map[string]*bintree{}}, - }}, - "no-snat-test": {nil, map[string]*bintree{ - "main.go": {testImagesAgnhostNoSnatTestMainGo, map[string]*bintree{}}, - }}, - "no-snat-test-proxy": {nil, map[string]*bintree{ - "main.go": {testImagesAgnhostNoSnatTestProxyMainGo, map[string]*bintree{}}, - }}, - "openidmetadata": {nil, map[string]*bintree{ - "openidmetadata.go": {testImagesAgnhostOpenidmetadataOpenidmetadataGo, map[string]*bintree{}}, - }}, - "pause": {nil, map[string]*bintree{ - "pause.go": {testImagesAgnhostPausePauseGo, map[string]*bintree{}}, - }}, - "port-forward-tester": {nil, map[string]*bintree{ - "portforwardtester.go": {testImagesAgnhostPortForwardTesterPortforwardtesterGo, map[string]*bintree{}}, - }}, - "porter": {nil, map[string]*bintree{ - "localhost.crt": {testImagesAgnhostPorterLocalhostCrt, map[string]*bintree{}}, - "localhost.key": {testImagesAgnhostPorterLocalhostKey, map[string]*bintree{}}, - "porter.go": {testImagesAgnhostPorterPorterGo, map[string]*bintree{}}, - }}, - "resource-consumer-controller": {nil, map[string]*bintree{ - "controller.go": {testImagesAgnhostResourceConsumerControllerControllerGo, map[string]*bintree{}}, - }}, - "serve-hostname": {nil, map[string]*bintree{ - "serve_hostname.go": {testImagesAgnhostServeHostnameServe_hostnameGo, map[string]*bintree{}}, - }}, - "test-webserver": {nil, map[string]*bintree{ - "test-webserver.go": {testImagesAgnhostTestWebserverTestWebserverGo, map[string]*bintree{}}, - }}, - "webhook": {nil, map[string]*bintree{ - "addlabel.go": {testImagesAgnhostWebhookAddlabelGo, map[string]*bintree{}}, - "addlabel_test.go": {testImagesAgnhostWebhookAddlabel_testGo, map[string]*bintree{}}, - "alwaysallow.go": {testImagesAgnhostWebhookAlwaysallowGo, map[string]*bintree{}}, - "alwaysdeny.go": {testImagesAgnhostWebhookAlwaysdenyGo, map[string]*bintree{}}, - "config.go": {testImagesAgnhostWebhookConfigGo, map[string]*bintree{}}, - "configmap.go": {testImagesAgnhostWebhookConfigmapGo, map[string]*bintree{}}, - "convert.go": {testImagesAgnhostWebhookConvertGo, map[string]*bintree{}}, - "convert_test.go": {testImagesAgnhostWebhookConvert_testGo, map[string]*bintree{}}, - "crd.go": {testImagesAgnhostWebhookCrdGo, map[string]*bintree{}}, - "customresource.go": {testImagesAgnhostWebhookCustomresourceGo, map[string]*bintree{}}, - "main.go": {testImagesAgnhostWebhookMainGo, map[string]*bintree{}}, - "patch_test.go": {testImagesAgnhostWebhookPatch_testGo, map[string]*bintree{}}, - "pods.go": {testImagesAgnhostWebhookPodsGo, map[string]*bintree{}}, - "scheme.go": {testImagesAgnhostWebhookSchemeGo, map[string]*bintree{}}, - }}, - }}, - "apparmor-loader": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesApparmorLoaderBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesApparmorLoaderDockerfile, map[string]*bintree{}}, - "Makefile": {testImagesApparmorLoaderMakefile, map[string]*bintree{}}, - "OWNERS": {testImagesApparmorLoaderOwners, map[string]*bintree{}}, - "VERSION": {testImagesApparmorLoaderVersion, map[string]*bintree{}}, - "example-configmap.yaml": {testImagesApparmorLoaderExampleConfigmapYaml, map[string]*bintree{}}, - "example-daemon.yaml": {testImagesApparmorLoaderExampleDaemonYaml, map[string]*bintree{}}, - "example-namespace.yaml": {testImagesApparmorLoaderExampleNamespaceYaml, map[string]*bintree{}}, - "example-pod.yaml": {testImagesApparmorLoaderExamplePodYaml, map[string]*bintree{}}, - "loader.go": {testImagesApparmorLoaderLoaderGo, map[string]*bintree{}}, - }}, - "busybox": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesBusyboxBaseimage, map[string]*bintree{}}, - "Dockerfile_windows": {testImagesBusyboxDockerfile_windows, map[string]*bintree{}}, - "Makefile": {testImagesBusyboxMakefile, map[string]*bintree{}}, - "OWNERS": {testImagesBusyboxOwners, map[string]*bintree{}}, - "VERSION": {testImagesBusyboxVersion, map[string]*bintree{}}, - "hostname.go": {testImagesBusyboxHostnameGo, map[string]*bintree{}}, - }}, - "cloudbuild.yaml": {testImagesCloudbuildYaml, map[string]*bintree{}}, - "cuda-vector-add": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesCudaVectorAddBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesCudaVectorAddDockerfile, map[string]*bintree{}}, - "OWNERS": {testImagesCudaVectorAddOwners, map[string]*bintree{}}, - "VERSION": {testImagesCudaVectorAddVersion, map[string]*bintree{}}, - }}, - "echoserver": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesEchoserverBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesEchoserverDockerfile, map[string]*bintree{}}, - "OWNERS": {testImagesEchoserverOwners, map[string]*bintree{}}, - "VERSION": {testImagesEchoserverVersion, map[string]*bintree{}}, - "nginx.conf": {testImagesEchoserverNginxConf, map[string]*bintree{}}, - "run.sh": {testImagesEchoserverRunSh, map[string]*bintree{}}, - "template.lua": {testImagesEchoserverTemplateLua, map[string]*bintree{}}, - }}, - "image-util.sh": {testImagesImageUtilSh, map[string]*bintree{}}, - "ipc-utils": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesIpcUtilsBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesIpcUtilsDockerfile, map[string]*bintree{}}, - "VERSION": {testImagesIpcUtilsVersion, map[string]*bintree{}}, - }}, - "jessie-dnsutils": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesJessieDnsutilsBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesJessieDnsutilsDockerfile, map[string]*bintree{}}, - "OWNERS": {testImagesJessieDnsutilsOwners, map[string]*bintree{}}, - "VERSION": {testImagesJessieDnsutilsVersion, map[string]*bintree{}}, - "fixup-apt-list.sh": {testImagesJessieDnsutilsFixupAptListSh, map[string]*bintree{}}, - }}, - "kitten": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesKittenBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesKittenDockerfile, map[string]*bintree{}}, - "OWNERS": {testImagesKittenOwners, map[string]*bintree{}}, - "VERSION": {testImagesKittenVersion, map[string]*bintree{}}, - "html": {nil, map[string]*bintree{ - "data.json": {testImagesKittenHtmlDataJson, map[string]*bintree{}}, - }}, - }}, - "metadata-concealment": {nil, map[string]*bintree{ - "Dockerfile": {testImagesMetadataConcealmentDockerfile, map[string]*bintree{}}, - "Makefile": {testImagesMetadataConcealmentMakefile, map[string]*bintree{}}, - "OWNERS": {testImagesMetadataConcealmentOwners, map[string]*bintree{}}, - "VERSION": {testImagesMetadataConcealmentVersion, map[string]*bintree{}}, - "check_metadata_concealment.go": {testImagesMetadataConcealmentCheck_metadata_concealmentGo, map[string]*bintree{}}, - }}, - "nautilus": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesNautilusBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesNautilusDockerfile, map[string]*bintree{}}, - "OWNERS": {testImagesNautilusOwners, map[string]*bintree{}}, - "VERSION": {testImagesNautilusVersion, map[string]*bintree{}}, - "html": {nil, map[string]*bintree{ - "data.json": {testImagesNautilusHtmlDataJson, map[string]*bintree{}}, - }}, - }}, - "node-perf": {nil, map[string]*bintree{ - "npb-ep": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesNodePerfNpbEpBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesNodePerfNpbEpDockerfile, map[string]*bintree{}}, - "VERSION": {testImagesNodePerfNpbEpVersion, map[string]*bintree{}}, - }}, - "npb-is": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesNodePerfNpbIsBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesNodePerfNpbIsDockerfile, map[string]*bintree{}}, - "VERSION": {testImagesNodePerfNpbIsVersion, map[string]*bintree{}}, - }}, - "tf-wide-deep": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesNodePerfTfWideDeepBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesNodePerfTfWideDeepDockerfile, map[string]*bintree{}}, - "VERSION": {testImagesNodePerfTfWideDeepVersion, map[string]*bintree{}}, - }}, - }}, - "nonewprivs": {nil, map[string]*bintree{ - ".gitignore": {testImagesNonewprivsGitignore, map[string]*bintree{}}, - "BASEIMAGE": {testImagesNonewprivsBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesNonewprivsDockerfile, map[string]*bintree{}}, - "Makefile": {testImagesNonewprivsMakefile, map[string]*bintree{}}, - "OWNERS": {testImagesNonewprivsOwners, map[string]*bintree{}}, - "VERSION": {testImagesNonewprivsVersion, map[string]*bintree{}}, - "nnp.go": {testImagesNonewprivsNnpGo, map[string]*bintree{}}, - }}, - "nonroot": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesNonrootBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesNonrootDockerfile, map[string]*bintree{}}, - "OWNERS": {testImagesNonrootOwners, map[string]*bintree{}}, - "VERSION": {testImagesNonrootVersion, map[string]*bintree{}}, - }}, - "pets": {nil, map[string]*bintree{ - "OWNERS": {testImagesPetsOwners, map[string]*bintree{}}, - "peer-finder": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesPetsPeerFinderBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesPetsPeerFinderDockerfile, map[string]*bintree{}}, - "Makefile": {testImagesPetsPeerFinderMakefile, map[string]*bintree{}}, - "VERSION": {testImagesPetsPeerFinderVersion, map[string]*bintree{}}, - "peer-finder.go": {testImagesPetsPeerFinderPeerFinderGo, map[string]*bintree{}}, - }}, - "redis-installer": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesPetsRedisInstallerBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesPetsRedisInstallerDockerfile, map[string]*bintree{}}, - "Makefile": {testImagesPetsRedisInstallerMakefile, map[string]*bintree{}}, - "VERSION": {testImagesPetsRedisInstallerVersion, map[string]*bintree{}}, - "install.sh": {testImagesPetsRedisInstallerInstallSh, map[string]*bintree{}}, - "on-start.sh": {testImagesPetsRedisInstallerOnStartSh, map[string]*bintree{}}, - }}, - "zookeeper-installer": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesPetsZookeeperInstallerBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesPetsZookeeperInstallerDockerfile, map[string]*bintree{}}, - "Makefile": {testImagesPetsZookeeperInstallerMakefile, map[string]*bintree{}}, - "VERSION": {testImagesPetsZookeeperInstallerVersion, map[string]*bintree{}}, - "install.sh": {testImagesPetsZookeeperInstallerInstallSh, map[string]*bintree{}}, - "on-start.sh": {testImagesPetsZookeeperInstallerOnStartSh, map[string]*bintree{}}, - }}, - }}, - "redis": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesRedisBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesRedisDockerfile, map[string]*bintree{}}, - "OWNERS": {testImagesRedisOwners, map[string]*bintree{}}, - "VERSION": {testImagesRedisVersion, map[string]*bintree{}}, - "redis.conf": {testImagesRedisRedisConf, map[string]*bintree{}}, - }}, - "regression-issue-74839": {nil, map[string]*bintree{ - ".gitignore": {testImagesRegressionIssue74839Gitignore, map[string]*bintree{}}, - "Dockerfile": {testImagesRegressionIssue74839Dockerfile, map[string]*bintree{}}, - "Makefile": {testImagesRegressionIssue74839Makefile, map[string]*bintree{}}, - "OWNERS": {testImagesRegressionIssue74839Owners, map[string]*bintree{}}, - "VERSION": {testImagesRegressionIssue74839Version, map[string]*bintree{}}, - "main.go": {testImagesRegressionIssue74839MainGo, map[string]*bintree{}}, - "tcp.go": {testImagesRegressionIssue74839TcpGo, map[string]*bintree{}}, - }}, - "resource-consumer": {nil, map[string]*bintree{ - ".gitignore": {testImagesResourceConsumerGitignore, map[string]*bintree{}}, - "BASEIMAGE": {testImagesResourceConsumerBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesResourceConsumerDockerfile, map[string]*bintree{}}, - "Makefile": {testImagesResourceConsumerMakefile, map[string]*bintree{}}, - "VERSION": {testImagesResourceConsumerVersion, map[string]*bintree{}}, - "common": {nil, map[string]*bintree{ - "common.go": {testImagesResourceConsumerCommonCommonGo, map[string]*bintree{}}, - }}, - "consume-cpu": {nil, map[string]*bintree{ - "consume_cpu.go": {testImagesResourceConsumerConsumeCpuConsume_cpuGo, map[string]*bintree{}}, - }}, - "resource_consumer.go": {testImagesResourceConsumerResource_consumerGo, map[string]*bintree{}}, - "resource_consumer_handler.go": {testImagesResourceConsumerResource_consumer_handlerGo, map[string]*bintree{}}, - "utils.go": {testImagesResourceConsumerUtilsGo, map[string]*bintree{}}, - }}, - "sample-apiserver": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesSampleApiserverBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesSampleApiserverDockerfile, map[string]*bintree{}}, - "OWNERS": {testImagesSampleApiserverOwners, map[string]*bintree{}}, - "VERSION": {testImagesSampleApiserverVersion, map[string]*bintree{}}, - }}, - "sample-device-plugin": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesSampleDevicePluginBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesSampleDevicePluginDockerfile, map[string]*bintree{}}, - "Makefile": {testImagesSampleDevicePluginMakefile, map[string]*bintree{}}, - "VERSION": {testImagesSampleDevicePluginVersion, map[string]*bintree{}}, - "sampledeviceplugin.go": {testImagesSampleDevicePluginSampledevicepluginGo, map[string]*bintree{}}, - }}, - "volume": {nil, map[string]*bintree{ - "OWNERS": {testImagesVolumeOwners, map[string]*bintree{}}, - "gluster": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesVolumeGlusterBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesVolumeGlusterDockerfile, map[string]*bintree{}}, - "VERSION": {testImagesVolumeGlusterVersion, map[string]*bintree{}}, - "glusterd.vol": {testImagesVolumeGlusterGlusterdVol, map[string]*bintree{}}, - "index.html": {testImagesVolumeGlusterIndexHtml, map[string]*bintree{}}, - "run_gluster.sh": {testImagesVolumeGlusterRun_glusterSh, map[string]*bintree{}}, - }}, - "iscsi": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesVolumeIscsiBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesVolumeIscsiDockerfile, map[string]*bintree{}}, - "VERSION": {testImagesVolumeIscsiVersion, map[string]*bintree{}}, - "block.tar.gz": {testImagesVolumeIscsiBlockTarGz, map[string]*bintree{}}, - "create_block.sh": {testImagesVolumeIscsiCreate_blockSh, map[string]*bintree{}}, - "run_iscsi_target.sh": {testImagesVolumeIscsiRun_iscsi_targetSh, map[string]*bintree{}}, - }}, - "nfs": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesVolumeNfsBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesVolumeNfsDockerfile, map[string]*bintree{}}, - "VERSION": {testImagesVolumeNfsVersion, map[string]*bintree{}}, - "index.html": {testImagesVolumeNfsIndexHtml, map[string]*bintree{}}, - "run_nfs.sh": {testImagesVolumeNfsRun_nfsSh, map[string]*bintree{}}, - }}, - "rbd": {nil, map[string]*bintree{ - "BASEIMAGE": {testImagesVolumeRbdBaseimage, map[string]*bintree{}}, - "Dockerfile": {testImagesVolumeRbdDockerfile, map[string]*bintree{}}, - "VERSION": {testImagesVolumeRbdVersion, map[string]*bintree{}}, - "block.tar.gz": {testImagesVolumeRbdBlockTarGz, map[string]*bintree{}}, - "bootstrap.sh": {testImagesVolumeRbdBootstrapSh, map[string]*bintree{}}, - "ceph.conf.sh": {testImagesVolumeRbdCephConfSh, map[string]*bintree{}}, - "create_block.sh": {testImagesVolumeRbdCreate_blockSh, map[string]*bintree{}}, - "keyring": {testImagesVolumeRbdKeyring, map[string]*bintree{}}, - "mon.sh": {testImagesVolumeRbdMonSh, map[string]*bintree{}}, - "osd.sh": {testImagesVolumeRbdOsdSh, map[string]*bintree{}}, - }}, - }}, - }}, - }}, -}} - -// RestoreAsset restores an asset under the given directory -func RestoreAsset(dir, name string) error { - data, err := Asset(name) - if err != nil { - return err - } - info, err := AssetInfo(name) - if err != nil { - return err - } - err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755)) - if err != nil { - return err - } - err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode()) - if err != nil { - return err - } - err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime()) - if err != nil { - return err - } - return nil -} - -// RestoreAssets restores an asset under the given directory recursively -func RestoreAssets(dir, name string) error { - children, err := AssetDir(name) - // File - if err != nil { - return RestoreAsset(dir, name) - } - // Dir - for _, child := range children { - err = RestoreAssets(dir, filepath.Join(name, child)) - if err != nil { - return err - } - } - return nil -} - -func _filePath(dir, name string) string { - cannonicalName := strings.Replace(name, "\\", "/", -1) - return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...) -} diff --git a/test/e2e/instrumentation/monitoring/custom_metrics_deployments.go b/test/e2e/instrumentation/monitoring/custom_metrics_deployments.go index de80b129315d4..f7c746eff6993 100644 --- a/test/e2e/instrumentation/monitoring/custom_metrics_deployments.go +++ b/test/e2e/instrumentation/monitoring/custom_metrics_deployments.go @@ -252,11 +252,11 @@ func prometheusExporterPodSpec(metricName string, metricValue int64, port int32) // CreateAdapter creates Custom Metrics - Stackdriver adapter // adapterDeploymentFile should be a filename for adapter deployment located in StagingDeploymentLocation -func CreateAdapter(namespace, adapterDeploymentFile string) error { +func CreateAdapter(adapterDeploymentFile string) error { // A workaround to make the work on GKE. GKE doesn't normally allow to create cluster roles, // which the adapter deployment does. The solution is to create cluster role binding for // cluster-admin role and currently used service account. - err := createClusterAdminBinding(namespace) + err := createClusterAdminBinding() if err != nil { return err } @@ -265,12 +265,12 @@ func CreateAdapter(namespace, adapterDeploymentFile string) error { if err != nil { return err } - stat, err := framework.RunKubectl(namespace, "create", "-f", adapterURL) + stat, err := framework.RunKubectl("", "create", "-f", adapterURL) framework.Logf(stat) return err } -func createClusterAdminBinding(namespace string) error { +func createClusterAdminBinding() error { stdout, stderr, err := framework.RunCmd("gcloud", "config", "get-value", "core/account") if err != nil { framework.Logf(stderr) @@ -278,7 +278,7 @@ func createClusterAdminBinding(namespace string) error { } serviceAccount := strings.TrimSpace(stdout) framework.Logf("current service account: %q", serviceAccount) - stat, err := framework.RunKubectl(namespace, "create", "clusterrolebinding", ClusterAdminBinding, "--clusterrole=cluster-admin", "--user="+serviceAccount) + stat, err := framework.RunKubectl("", "create", "clusterrolebinding", ClusterAdminBinding, "--clusterrole=cluster-admin", "--user="+serviceAccount) framework.Logf(stat) return err } @@ -317,8 +317,8 @@ func CleanupDescriptors(service *gcm.Service, projectID string) { } // CleanupAdapter deletes Custom Metrics - Stackdriver adapter deployments. -func CleanupAdapter(namespace, adapterDeploymentFile string) { - stat, err := framework.RunKubectl(namespace, "delete", "-f", adapterDeploymentFile) +func CleanupAdapter(adapterDeploymentFile string) { + stat, err := framework.RunKubectl("", "delete", "-f", adapterDeploymentFile) framework.Logf(stat) if err != nil { framework.Logf("Failed to delete adapter deployments: %s", err) @@ -327,11 +327,11 @@ func CleanupAdapter(namespace, adapterDeploymentFile string) { if err != nil { framework.Logf("Failed to delete adapter deployment file: %s", err) } - cleanupClusterAdminBinding(namespace) + cleanupClusterAdminBinding() } -func cleanupClusterAdminBinding(namespace string) { - stat, err := framework.RunKubectl(namespace, "delete", "clusterrolebinding", ClusterAdminBinding) +func cleanupClusterAdminBinding() { + stat, err := framework.RunKubectl("", "delete", "clusterrolebinding", ClusterAdminBinding) framework.Logf(stat) if err != nil { framework.Logf("Failed to delete cluster admin binding: %s", err) diff --git a/test/e2e/instrumentation/monitoring/custom_metrics_stackdriver.go b/test/e2e/instrumentation/monitoring/custom_metrics_stackdriver.go index 277b5a0ab2483..d340b4cf0af38 100644 --- a/test/e2e/instrumentation/monitoring/custom_metrics_stackdriver.go +++ b/test/e2e/instrumentation/monitoring/custom_metrics_stackdriver.go @@ -114,11 +114,11 @@ func testCustomMetrics(f *framework.Framework, kubeClient clientset.Interface, c } defer CleanupDescriptors(gcmService, projectID) - err = CreateAdapter(f.Namespace.Name, adapterDeployment) + err = CreateAdapter(adapterDeployment) if err != nil { framework.Failf("Failed to set up: %s", err) } - defer CleanupAdapter(f.Namespace.Name, adapterDeployment) + defer CleanupAdapter(adapterDeployment) _, err = kubeClient.RbacV1().ClusterRoleBindings().Create(context.TODO(), HPAPermissions, metav1.CreateOptions{}) if err != nil { @@ -162,11 +162,11 @@ func testExternalMetrics(f *framework.Framework, kubeClient clientset.Interface, defer CleanupDescriptors(gcmService, projectID) // Both deployments - for old and new resource model - expose External Metrics API. - err = CreateAdapter(f.Namespace.Name, AdapterForOldResourceModel) + err = CreateAdapter(AdapterForOldResourceModel) if err != nil { framework.Failf("Failed to set up: %s", err) } - defer CleanupAdapter(f.Namespace.Name, AdapterForOldResourceModel) + defer CleanupAdapter(AdapterForOldResourceModel) _, err = kubeClient.RbacV1().ClusterRoleBindings().Create(context.TODO(), HPAPermissions, metav1.CreateOptions{}) if err != nil { diff --git a/test/e2e/kubectl/kubectl.go b/test/e2e/kubectl/kubectl.go index 1127900a47bed..ce52c2a175fe2 100644 --- a/test/e2e/kubectl/kubectl.go +++ b/test/e2e/kubectl/kubectl.go @@ -170,33 +170,24 @@ properties: // Aware of the kubectl example files map. func cleanupKubectlInputs(fileContents string, ns string, selectors ...string) { ginkgo.By("using delete to clean up resources") - var nsArg string - if ns != "" { - nsArg = fmt.Sprintf("--namespace=%s", ns) - } // support backward compatibility : file paths or raw json - since we are removing file path // dependencies from this test. - framework.RunKubectlOrDieInput(ns, fileContents, "delete", "--grace-period=0", "--force", "-f", "-", nsArg) + framework.RunKubectlOrDieInput(ns, fileContents, "delete", "--grace-period=0", "--force", "-f", "-") assertCleanup(ns, selectors...) } // assertCleanup asserts that cleanup of a namespace wrt selectors occurred. func assertCleanup(ns string, selectors ...string) { - var nsArg string - if ns != "" { - nsArg = fmt.Sprintf("--namespace=%s", ns) - } - var e error verifyCleanupFunc := func() (bool, error) { e = nil for _, selector := range selectors { - resources := framework.RunKubectlOrDie(ns, "get", "rc,svc", "-l", selector, "--no-headers", nsArg) + resources := framework.RunKubectlOrDie(ns, "get", "rc,svc", "-l", selector, "--no-headers") if resources != "" { e = fmt.Errorf("Resources left running after stop:\n%s", resources) return false, nil } - pods := framework.RunKubectlOrDie(ns, "get", "pods", "-l", selector, nsArg, "-o", "go-template={{ range .items }}{{ if not .metadata.deletionTimestamp }}{{ .metadata.name }}{{ \"\\n\" }}{{ end }}{{ end }}") + pods := framework.RunKubectlOrDie(ns, "get", "pods", "-l", selector, "-o", "go-template={{ range .items }}{{ if not .metadata.deletionTimestamp }}{{ .metadata.name }}{{ \"\\n\" }}{{ end }}{{ end }}") if pods != "" { e = fmt.Errorf("Pods left unterminated after stop:\n%s", pods) return false, nil @@ -912,7 +903,7 @@ metadata: /* Release: v1.19 Testname: Kubectl, server-side dry-run Pod - Description: The command 'kubectl run' must create a pod with the specified image name. After, the command 'kubectl replace --dry-run=server' should update the Pod with the new image name and server-side dry-run enabled. The image name must not change. + Description: The command 'kubectl run' must create a pod with the specified image name. After, the command 'kubectl patch pod -p {...} --dry-run=server' should update the Pod with the new image name and server-side dry-run enabled. The image name must not change. */ framework.ConformanceIt("should check if kubectl can dry-run update Pods", func() { ginkgo.By("running the image " + httpdImage) @@ -920,12 +911,8 @@ metadata: framework.RunKubectlOrDie(ns, "run", podName, "--image="+httpdImage, "--labels=run="+podName) ginkgo.By("replace the image in the pod with server-side dry-run") - podJSON := framework.RunKubectlOrDie(ns, "get", "pod", podName, "-o", "json") - podJSON = strings.Replace(podJSON, httpdImage, busyboxImage, 1) - if !strings.Contains(podJSON, busyboxImage) { - framework.Failf("Failed replacing image from %s to %s in:\n%s\n", httpdImage, busyboxImage, podJSON) - } - framework.RunKubectlOrDieInput(ns, podJSON, "replace", "-f", "-", "--dry-run", "server") + specImage := fmt.Sprintf(`{"spec":{"containers":[{"name": "%s","image": "%s"}]}}`, podName, busyboxImage) + framework.RunKubectlOrDie(ns, "patch", "pod", podName, "-p", specImage, "--dry-run=server") ginkgo.By("verifying the pod " + podName + " has the right image " + httpdImage) pod, err := c.CoreV1().Pods(ns).Get(context.TODO(), podName, metav1.GetOptions{}) diff --git a/test/e2e/network/ingress.go b/test/e2e/network/ingress.go index 5a1c869db70cf..b1cd7060b00c1 100644 --- a/test/e2e/network/ingress.go +++ b/test/e2e/network/ingress.go @@ -40,6 +40,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" "k8s.io/apiserver/pkg/authentication/serviceaccount" + "k8s.io/client-go/util/retry" "k8s.io/kubernetes/test/e2e/framework" e2eauth "k8s.io/kubernetes/test/e2e/framework/auth" e2eingress "k8s.io/kubernetes/test/e2e/framework/ingress" @@ -1095,9 +1096,16 @@ var _ = SIGDescribe("Ingress API", func() { framework.ExpectEqual(patchedIngress.Annotations["patched"], "true", "patched object should have the applied annotation") ginkgo.By("updating") - ingToUpdate := patchedIngress.DeepCopy() - ingToUpdate.Annotations["updated"] = "true" - updatedIngress, err := ingClient.Update(context.TODO(), ingToUpdate, metav1.UpdateOptions{}) + var ingToUpdate, updatedIngress *networkingv1.Ingress + err = retry.RetryOnConflict(retry.DefaultRetry, func() error { + ingToUpdate, err = ingClient.Get(context.TODO(), createdIngress.Name, metav1.GetOptions{}) + if err != nil { + return err + } + ingToUpdate.Annotations["updated"] = "true" + updatedIngress, err = ingClient.Update(context.TODO(), ingToUpdate, metav1.UpdateOptions{}) + return err + }) framework.ExpectNoError(err) framework.ExpectEqual(updatedIngress.Annotations["updated"], "true", "updated object should have the applied annotation") @@ -1136,11 +1144,18 @@ var _ = SIGDescribe("Ingress API", func() { framework.ExpectEqual(patchedStatus.Annotations["patchedstatus"], "true", "patched object should have the applied annotation") ginkgo.By("updating /status") - statusToUpdate := patchedStatus.DeepCopy() - statusToUpdate.Status.LoadBalancer = v1.LoadBalancerStatus{ - Ingress: []v1.LoadBalancerIngress{{IP: "169.1.1.2"}}, - } - updatedStatus, err := ingClient.UpdateStatus(context.TODO(), statusToUpdate, metav1.UpdateOptions{}) + var statusToUpdate, updatedStatus *networkingv1.Ingress + err = retry.RetryOnConflict(retry.DefaultRetry, func() error { + statusToUpdate, err = ingClient.Get(context.TODO(), createdIngress.Name, metav1.GetOptions{}) + if err != nil { + return err + } + statusToUpdate.Status.LoadBalancer = v1.LoadBalancerStatus{ + Ingress: []v1.LoadBalancerIngress{{IP: "169.1.1.2"}}, + } + updatedStatus, err = ingClient.UpdateStatus(context.TODO(), statusToUpdate, metav1.UpdateOptions{}) + return err + }) framework.ExpectNoError(err) framework.ExpectEqual(updatedStatus.Status.LoadBalancer, statusToUpdate.Status.LoadBalancer, fmt.Sprintf("updated object expected to have updated loadbalancer status %#v, got %#v", statusToUpdate.Status.LoadBalancer, updatedStatus.Status.LoadBalancer)) @@ -1154,19 +1169,42 @@ var _ = SIGDescribe("Ingress API", func() { // Ingress resource delete operations ginkgo.By("deleting") + + expectFinalizer := func(ing *networkingv1.Ingress, msg string) { + framework.ExpectNotEqual(ing.DeletionTimestamp, nil, fmt.Sprintf("expected deletionTimestamp, got nil on step: %q, ingress: %+v", msg, ing)) + framework.ExpectEqual(len(ing.Finalizers) > 0, true, fmt.Sprintf("expected finalizers on ingress, got none on step: %q, ingress: %+v", msg, ing)) + } + err = ingClient.Delete(context.TODO(), createdIngress.Name, metav1.DeleteOptions{}) framework.ExpectNoError(err) - _, err = ingClient.Get(context.TODO(), createdIngress.Name, metav1.GetOptions{}) - framework.ExpectEqual(apierrors.IsNotFound(err), true, fmt.Sprintf("expected 404, got %#v", err)) + ing, err := ingClient.Get(context.TODO(), createdIngress.Name, metav1.GetOptions{}) + // If ingress controller does not support finalizers, we expect a 404. Otherwise we validate finalizer behavior. + if err == nil { + expectFinalizer(ing, "deleting createdIngress") + } else { + framework.ExpectEqual(apierrors.IsNotFound(err), true, fmt.Sprintf("expected 404, got %v", err)) + } ings, err = ingClient.List(context.TODO(), metav1.ListOptions{LabelSelector: "special-label=" + f.UniqueName}) framework.ExpectNoError(err) - framework.ExpectEqual(len(ings.Items), 2, "filtered list should have 2 items") + // Should have <= 3 items since some ingresses might not have been deleted yet due to finalizers + framework.ExpectEqual(len(ings.Items) <= 3, true, "filtered list should have <= 3 items") + // Validate finalizer on the deleted ingress + for _, ing := range ings.Items { + if ing.Namespace == createdIngress.Namespace && ing.Name == createdIngress.Name { + expectFinalizer(&ing, "listing after deleting createdIngress") + } + } ginkgo.By("deleting a collection") err = ingClient.DeleteCollection(context.TODO(), metav1.DeleteOptions{}, metav1.ListOptions{LabelSelector: "special-label=" + f.UniqueName}) framework.ExpectNoError(err) ings, err = ingClient.List(context.TODO(), metav1.ListOptions{LabelSelector: "special-label=" + f.UniqueName}) framework.ExpectNoError(err) - framework.ExpectEqual(len(ings.Items), 0, "filtered list should have 0 items") + // Should have <= 3 items since some ingresses might not have been deleted yet due to finalizers + framework.ExpectEqual(len(ings.Items) <= 3, true, "filtered list should have <= 3 items") + // Validate finalizers + for _, ing := range ings.Items { + expectFinalizer(&ing, "deleting ingress collection") + } }) }) diff --git a/test/e2e/network/service.go b/test/e2e/network/service.go index 35ac43001d228..a47ae3f20fe3c 100644 --- a/test/e2e/network/service.go +++ b/test/e2e/network/service.go @@ -3587,11 +3587,7 @@ func createPausePodDeployment(cs clientset.Interface, name, ns string, replicas labels := map[string]string{"deployment": "agnhost-pause"} pauseDeployment := e2edeployment.NewDeployment(name, int32(replicas), labels, "", "", appsv1.RollingUpdateDeploymentStrategyType) - pauseDeployment.Spec.Template.Spec.Containers[0] = v1.Container{ - Name: "agnhost-pause", - Image: imageutils.GetE2EImage(imageutils.Agnhost), - Args: []string{"pause"}, - } + pauseDeployment.Spec.Template.Spec.Containers[0] = e2epod.NewAgnhostContainer("agnhost-pause", nil, nil, "pause") pauseDeployment.Spec.Template.Spec.Affinity = &v1.Affinity{ PodAntiAffinity: &v1.PodAntiAffinity{ RequiredDuringSchedulingIgnoredDuringExecution: []v1.PodAffinityTerm{ @@ -3612,25 +3608,12 @@ func createPausePodDeployment(cs clientset.Interface, name, ns string, replicas // createPodOrFail creates a pod with the specified containerPorts. func createPodOrFail(c clientset.Interface, ns, name string, labels map[string]string, containerPorts []v1.ContainerPort) { ginkgo.By(fmt.Sprintf("Creating pod %s in namespace %s", name, ns)) - pod := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Labels: labels, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: "pause", - Image: imageutils.GetE2EImage(imageutils.Agnhost), - Args: []string{"pause"}, - Ports: containerPorts, - // Add a dummy environment variable to work around a docker issue. - // https://github.com/docker/docker/issues/14203 - Env: []v1.EnvVar{{Name: "FOO", Value: " "}}, - }, - }, - }, - } + pod := e2epod.NewAgnhostPod(ns, name, nil, nil, containerPorts) + pod.ObjectMeta.Labels = labels + // Add a dummy environment variable to work around a docker issue. + // https://github.com/docker/docker/issues/14203 + pod.Spec.Containers[0].Env = []v1.EnvVar{{Name: "FOO", Value: " "}} + _, err := c.CoreV1().Pods(ns).Create(context.TODO(), pod, metav1.CreateOptions{}) framework.ExpectNoError(err, "failed to create pod %s in namespace %s", name, ns) } diff --git a/test/e2e/node/pods.go b/test/e2e/node/pods.go index 583eeb96f0899..a5c1499ef3bdb 100644 --- a/test/e2e/node/pods.go +++ b/test/e2e/node/pods.go @@ -63,23 +63,10 @@ var _ = SIGDescribe("Pods Extended", func() { ginkgo.By("creating the pod") name := "pod-submit-remove-" + string(uuid.NewUUID()) value := strconv.Itoa(time.Now().Nanosecond()) - pod := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - Labels: map[string]string{ - "name": "foo", - "time": value, - }, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: "agnhost", - Image: imageutils.GetE2EImage(imageutils.Agnhost), - Args: []string{"pause"}, - }, - }, - }, + pod := e2epod.NewAgnhostPod(f.Namespace.Name, name, nil, nil, nil) + pod.ObjectMeta.Labels = map[string]string{ + "name": "foo", + "time": value, } ginkgo.By("setting up selector") @@ -276,7 +263,6 @@ var _ = SIGDescribe("Pods Extended", func() { start := time.Now() created := podClient.Create(pod) ch := make(chan []watch.Event) - waitForWatch := make(chan struct{}) go func() { defer ginkgo.GinkgoRecover() defer close(ch) @@ -289,7 +275,6 @@ var _ = SIGDescribe("Pods Extended", func() { return } defer w.Stop() - close(waitForWatch) events := []watch.Event{ {Type: watch.Added, Object: created}, } @@ -306,10 +291,6 @@ var _ = SIGDescribe("Pods Extended", func() { ch <- events }() - select { - case <-ch: // in case the goroutine above exits before establishing the watch - case <-waitForWatch: // when the watch is established - } t := time.Duration(rand.Intn(delay)) * time.Millisecond time.Sleep(t) err := podClient.Delete(context.TODO(), pod.Name, metav1.DeleteOptions{}) diff --git a/test/e2e/node/pre_stop.go b/test/e2e/node/pre_stop.go index a1391621d5eb1..730fde3e78cea 100644 --- a/test/e2e/node/pre_stop.go +++ b/test/e2e/node/pre_stop.go @@ -44,21 +44,7 @@ type State struct { func testPreStop(c clientset.Interface, ns string) { // This is the server that will receive the preStop notification - podDescr := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: "server", - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: "server", - Image: imageutils.GetE2EImage(imageutils.Agnhost), - Args: []string{"nettest"}, - Ports: []v1.ContainerPort{{ContainerPort: 8080}}, - }, - }, - }, - } + podDescr := e2epod.NewAgnhostPod(ns, "server", nil, nil, []v1.ContainerPort{{ContainerPort: 8080}}, "nettest") ginkgo.By(fmt.Sprintf("Creating server pod %s in namespace %s", podDescr.Name, ns)) podDescr, err := c.CoreV1().Pods(ns).Create(context.TODO(), podDescr, metav1.CreateOptions{}) framework.ExpectNoError(err, fmt.Sprintf("creating pod %s", podDescr.Name)) diff --git a/test/e2e/node/taints.go b/test/e2e/node/taints.go index d3c395316f2dd..2c513e53b0981 100644 --- a/test/e2e/node/taints.go +++ b/test/e2e/node/taints.go @@ -18,15 +18,12 @@ package node import ( "context" - "fmt" "time" - "k8s.io/api/core/v1" - apierrors "k8s.io/apimachinery/pkg/api/errors" + v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/cache" @@ -419,6 +416,10 @@ var _ = SIGDescribe("NoExecuteTaintManager Multiple Pods [Serial]", func() { */ framework.ConformanceIt("evicts pods with minTolerationSeconds [Disruptive]", func() { podGroup := "taint-eviction-b" + observedDeletions := make(chan string, 100) + stopCh := make(chan struct{}) + createTestController(cs, observedDeletions, stopCh, podGroup, ns) + // 1. Run two pods both with toleration; one with tolerationSeconds=5, the other with 25 pod1 := createPodForTaintsTest(true, additionalWaitPerDeleteSeconds, podGroup+"1", podGroup, ns) pod2 := createPodForTaintsTest(true, 5*additionalWaitPerDeleteSeconds, podGroup+"2", podGroup, ns) @@ -450,23 +451,19 @@ var _ = SIGDescribe("NoExecuteTaintManager Multiple Pods [Serial]", func() { framework.ExpectNodeHasTaint(cs, nodeName, &testTaint) defer e2enode.RemoveTaintOffNode(cs, nodeName, testTaint) - wait.PollImmediate(1*time.Second, (kubeletPodDeletionDelaySeconds+14*additionalWaitPerDeleteSeconds)*time.Second, func() (bool, error) { - deleted := 0 - for i := 1; i < 3; i++ { - _, err := cs.CoreV1().Pods(ns).Get(context.TODO(), fmt.Sprintf("%s%d", podGroup, i), metav1.GetOptions{}) - if err == nil { - return false, nil - } - if apierrors.IsNotFound(err) { - deleted++ - } else { - return false, err - } - } - if deleted == 2 { - return true, nil + // 3. Wait to see if both pods get evicted in between [5, 25] seconds + ginkgo.By("Waiting for Pod1 and Pod2 to be deleted") + timeoutChannel := time.NewTimer(time.Duration(kubeletPodDeletionDelaySeconds+3*additionalWaitPerDeleteSeconds) * time.Second).C + var evicted int + for evicted != 2 { + select { + case <-timeoutChannel: + framework.Failf("Failed to evict all Pods. %d pod(s) is not evicted.", 2-evicted) + return + case podName := <-observedDeletions: + framework.Logf("Noticed Pod %q gets evicted.", podName) + evicted++ } - return false, nil - }) + } }) }) diff --git a/test/e2e/patch_from_e2e_testfile.go b/test/e2e/patch_from_e2e_testfile.go deleted file mode 100644 index c11289ff7893f..0000000000000 --- a/test/e2e/patch_from_e2e_testfile.go +++ /dev/null @@ -1,69 +0,0 @@ -package e2e - -import ( - "flag" - "fmt" - "os" - - "k8s.io/kubernetes/test/e2e/framework/config" - - "k8s.io/kubernetes/test/e2e/framework" - "k8s.io/kubernetes/test/e2e/framework/testfiles" - "k8s.io/kubernetes/test/e2e/generated" - "k8s.io/kubernetes/test/utils/image" -) - -func HandleFlags() { - config.CopyFlags(config.Flags, flag.CommandLine) - framework.RegisterCommonFlags(flag.CommandLine) - framework.RegisterClusterFlags(flag.CommandLine) - flag.Parse() -} - -// this function matches the init block from e2e_test.go -func ViperizeFlags(viperConfig string) { - HandleFlags() - - // Register framework flags, then handle flags and Viper config. - if err := viperizeFlags(viperConfig, "e2e", flag.CommandLine); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - - if framework.TestContext.ListImages { - for _, v := range image.GetImageConfigs() { - fmt.Println(v.GetE2EImage()) - } - os.Exit(0) - } - - framework.AfterReadingAllFlags(&framework.TestContext) - - // this came from the init block, but it breaks on openshift. Not really sure why. - // TODO: Deprecating repo-root over time... instead just use gobindata_util.go , see #23987. - // Right now it is still needed, for example by - // test/e2e/framework/ingress/ingress_utils.go - // for providing the optional secret.yaml file and by - // test/e2e/framework/util.go for cluster/log-dump. - //if framework.TestContext.RepoRoot != "" { - // testfiles.AddFileSource(testfiles.RootFileSource{Root: framework.TestContext.RepoRoot}) - //} - - // Enable bindata file lookup as fallback. - testfiles.AddFileSource(testfiles.BindataFileSource{ - Asset: generated.Asset, - AssetNames: generated.AssetNames, - }) - -} - -var localViperConfig = "" - -// we appear to set ours via env-var, not flag -func GetViperConfig() string { - return localViperConfig -} - -func SetViperConfig(val string) { - localViperConfig = val -} diff --git a/test/e2e/scheduling/predicates.go b/test/e2e/scheduling/predicates.go index 61e4687ae54cc..439f6fe09d80f 100644 --- a/test/e2e/scheduling/predicates.go +++ b/test/e2e/scheduling/predicates.go @@ -814,8 +814,8 @@ func initPausePod(f *framework.Framework, conf pausePodConfig) *v1.Pod { ObjectMeta: metav1.ObjectMeta{ Name: conf.Name, Namespace: conf.Namespace, - Labels: conf.Labels, - Annotations: conf.Annotations, + Labels: map[string]string{}, + Annotations: map[string]string{}, OwnerReferences: conf.OwnerReferences, }, Spec: v1.PodSpec{ @@ -835,6 +835,12 @@ func initPausePod(f *framework.Framework, conf pausePodConfig) *v1.Pod { TerminationGracePeriodSeconds: &gracePeriod, }, } + for key, value := range conf.Labels { + pod.ObjectMeta.Labels[key] = value + } + for key, value := range conf.Annotations { + pod.ObjectMeta.Annotations[key] = value + } // TODO: setting the Pod's nodeAffinity instead of setting .spec.nodeName works around the // Preemption e2e flake (#88441), but we should investigate deeper to get to the bottom of it. if len(conf.NodeName) != 0 { diff --git a/test/e2e/scheduling/priorities.go b/test/e2e/scheduling/priorities.go index 5ffe3694358f5..af17f090f5093 100644 --- a/test/e2e/scheduling/priorities.go +++ b/test/e2e/scheduling/priorities.go @@ -32,6 +32,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" @@ -52,7 +53,7 @@ type Resource struct { Memory int64 } -var balancePodLabel = map[string]string{"name": "priority-balanced-memory"} +var balancePodLabel = map[string]string{"podname": "priority-balanced-memory"} var podRequestedResource = &v1.ResourceRequirements{ Limits: v1.ResourceList{ @@ -193,7 +194,8 @@ var _ = SIGDescribe("SchedulerPriorities [Serial]", func() { } // make the nodes have balanced cpu,mem usage - err = createBalancedPodForNodes(f, cs, ns, nodeList.Items, podRequestedResource, 0.6) + cleanUp, err := createBalancedPodForNodes(f, cs, ns, nodeList.Items, podRequestedResource, 0.6) + defer cleanUp() framework.ExpectNoError(err) ginkgo.By("Trying to launch the pod with podAntiAffinity.") labelPodName := "pod-with-pod-antiaffinity" @@ -242,7 +244,8 @@ var _ = SIGDescribe("SchedulerPriorities [Serial]", func() { ginkgo.It("Pod should avoid nodes that have avoidPod annotation", func() { nodeName := nodeList.Items[0].Name // make the nodes have balanced cpu,mem usage - err := createBalancedPodForNodes(f, cs, ns, nodeList.Items, podRequestedResource, 0.5) + cleanUp, err := createBalancedPodForNodes(f, cs, ns, nodeList.Items, podRequestedResource, 0.5) + defer cleanUp() framework.ExpectNoError(err) ginkgo.By("Create a RC, with 0 replicas") rc := createRC(ns, "scheduler-priority-avoid-pod", int32(0), map[string]string{"name": "scheduler-priority-avoid-pod"}, f, podRequestedResource) @@ -250,7 +253,7 @@ var _ = SIGDescribe("SchedulerPriorities [Serial]", func() { defer func() { // Resize the replication controller to zero to get rid of pods. if err := e2erc.DeleteRCAndWaitForGC(f.ClientSet, f.Namespace.Name, rc.Name); err != nil { - framework.Failf("Failed to cleanup replication controller %v: %v.", rc.Name, err) + framework.Logf("Failed to cleanup replication controller %v: %v.", rc.Name, err) } }() @@ -304,7 +307,8 @@ var _ = SIGDescribe("SchedulerPriorities [Serial]", func() { ginkgo.It("Pod should be preferably scheduled to nodes pod can tolerate", func() { // make the nodes have balanced cpu,mem usage ratio - err := createBalancedPodForNodes(f, cs, ns, nodeList.Items, podRequestedResource, 0.5) + cleanUp, err := createBalancedPodForNodes(f, cs, ns, nodeList.Items, podRequestedResource, 0.5) + defer cleanUp() framework.ExpectNoError(err) // Apply 10 taints to first node nodeName := nodeList.Items[0].Name @@ -366,7 +370,8 @@ var _ = SIGDescribe("SchedulerPriorities [Serial]", func() { } // Make the nodes have balanced cpu,mem usage. - err := createBalancedPodForNodes(f, cs, ns, nodes, podRequestedResource, 0.5) + cleanUp, err := createBalancedPodForNodes(f, cs, ns, nodes, podRequestedResource, 0.5) + defer cleanUp() framework.ExpectNoError(err) replicas := 4 @@ -431,13 +436,44 @@ var _ = SIGDescribe("SchedulerPriorities [Serial]", func() { }) // createBalancedPodForNodes creates a pod per node that asks for enough resources to make all nodes have the same mem/cpu usage ratio. -func createBalancedPodForNodes(f *framework.Framework, cs clientset.Interface, ns string, nodes []v1.Node, requestedResource *v1.ResourceRequirements, ratio float64) error { +func createBalancedPodForNodes(f *framework.Framework, cs clientset.Interface, ns string, nodes []v1.Node, requestedResource *v1.ResourceRequirements, ratio float64) (func(), error) { + cleanUp := func() { + // Delete all remaining pods + err := cs.CoreV1().Pods(ns).DeleteCollection(context.TODO(), metav1.DeleteOptions{}, metav1.ListOptions{ + LabelSelector: labels.SelectorFromSet(labels.Set(balancePodLabel)).String(), + }) + if err != nil { + framework.Logf("Failed to delete memory balanced pods: %v.", err) + } else { + err := wait.PollImmediate(2*time.Second, time.Minute, func() (bool, error) { + podList, err := cs.CoreV1().Pods(ns).List(context.TODO(), metav1.ListOptions{ + LabelSelector: labels.SelectorFromSet(labels.Set(balancePodLabel)).String(), + }) + if err != nil { + framework.Logf("Failed to list memory balanced pods: %v.", err) + return false, nil + } + if len(podList.Items) > 0 { + return false, nil + } + return true, nil + }) + if err != nil { + framework.Logf("Failed to wait until all memory balanced pods are deleted: %v.", err) + } + } + } + // find the max, if the node has the max,use the one, if not,use the ratio parameter var maxCPUFraction, maxMemFraction float64 = ratio, ratio var cpuFractionMap = make(map[string]float64) var memFractionMap = make(map[string]float64) + + // For each node, stores its pods info + nodeNameToPodList := podListForEachNode(cs) + for _, node := range nodes { - cpuFraction, memFraction := computeCPUMemFraction(cs, node, requestedResource) + cpuFraction, memFraction := computeCPUMemFraction(node, requestedResource, nodeNameToPodList[node.Name]) cpuFractionMap[node.Name] = cpuFraction memFractionMap[node.Name] = memFraction if cpuFraction > maxCPUFraction { @@ -491,37 +527,47 @@ func createBalancedPodForNodes(f *framework.Framework, cs clientset.Interface, n *initPausePod(f, *podConfig), true, framework.Logf) if err != nil { - return err + return cleanUp, err } } + nodeNameToPodList = podListForEachNode(cs) for _, node := range nodes { ginkgo.By("Compute Cpu, Mem Fraction after create balanced pods.") - computeCPUMemFraction(cs, node, requestedResource) + computeCPUMemFraction(node, requestedResource, nodeNameToPodList[node.Name]) } - return nil + return cleanUp, nil } -func computeCPUMemFraction(cs clientset.Interface, node v1.Node, resource *v1.ResourceRequirements) (float64, float64) { - framework.Logf("ComputeCPUMemFraction for node: %v", node.Name) - totalRequestedCPUResource := resource.Requests.Cpu().MilliValue() - totalRequestedMemResource := resource.Requests.Memory().Value() - allpods, err := cs.CoreV1().Pods(metav1.NamespaceAll).List(context.TODO(), metav1.ListOptions{}) +func podListForEachNode(cs clientset.Interface) map[string][]*v1.Pod { + nodeNameToPodList := make(map[string][]*v1.Pod) + allPods, err := cs.CoreV1().Pods(metav1.NamespaceAll).List(context.TODO(), metav1.ListOptions{}) if err != nil { framework.Failf("Expect error of invalid, got : %v", err) } - for _, pod := range allpods.Items { - if pod.Spec.NodeName == node.Name { - framework.Logf("Pod for on the node: %v, Cpu: %v, Mem: %v", pod.Name, getNonZeroRequests(&pod).MilliCPU, getNonZeroRequests(&pod).Memory) - // Ignore best effort pods while computing fractions as they won't be taken in account by scheduler. - if v1qos.GetPodQOS(&pod) == v1.PodQOSBestEffort { - continue - } - totalRequestedCPUResource += getNonZeroRequests(&pod).MilliCPU - totalRequestedMemResource += getNonZeroRequests(&pod).Memory + for _, pod := range allPods.Items { + nodeName := pod.Spec.NodeName + nodeNameToPodList[nodeName] = append(nodeNameToPodList[nodeName], &pod) + } + return nodeNameToPodList +} + +func computeCPUMemFraction(node v1.Node, resource *v1.ResourceRequirements, pods []*v1.Pod) (float64, float64) { + framework.Logf("ComputeCPUMemFraction for node: %v", node.Name) + totalRequestedCPUResource := resource.Requests.Cpu().MilliValue() + totalRequestedMemResource := resource.Requests.Memory().Value() + + for _, pod := range pods { + framework.Logf("Pod for on the node: %v, Cpu: %v, Mem: %v", pod.Name, getNonZeroRequests(pod).MilliCPU, getNonZeroRequests(pod).Memory) + // Ignore best effort pods while computing fractions as they won't be taken in account by scheduler. + if v1qos.GetPodQOS(pod) == v1.PodQOSBestEffort { + continue } + totalRequestedCPUResource += getNonZeroRequests(pod).MilliCPU + totalRequestedMemResource += getNonZeroRequests(pod).Memory } + cpuAllocatable, found := node.Status.Allocatable[v1.ResourceCPU] framework.ExpectEqual(found, true) cpuAllocatableMil := cpuAllocatable.MilliValue() diff --git a/test/e2e/scheduling/ubernetes_lite.go b/test/e2e/scheduling/ubernetes_lite.go index 83e675309159a..673dd51ee9a8f 100644 --- a/test/e2e/scheduling/ubernetes_lite.go +++ b/test/e2e/scheduling/ubernetes_lite.go @@ -20,6 +20,7 @@ import ( "context" "fmt" "math" + "time" "github.com/onsi/ginkgo" "github.com/onsi/gomega" @@ -43,6 +44,7 @@ var _ = SIGDescribe("Multi-AZ Clusters", func() { var zoneCount int var err error image := framework.ServeHostnameImage + var cleanUp func() ginkgo.BeforeEach(func() { e2eskipper.SkipUnlessProviderIs("gce", "gke", "aws") if zoneCount <= 0 { @@ -53,6 +55,20 @@ var _ = SIGDescribe("Multi-AZ Clusters", func() { msg := fmt.Sprintf("Zone count is %d, only run for multi-zone clusters, skipping test", zoneCount) e2eskipper.SkipUnlessAtLeast(zoneCount, 2, msg) // TODO: SkipUnlessDefaultScheduler() // Non-default schedulers might not spread + + cs := f.ClientSet + e2enode.WaitForTotalHealthy(cs, time.Minute) + nodeList, err := e2enode.GetReadySchedulableNodes(cs) + framework.ExpectNoError(err) + + // make the nodes have balanced cpu,mem usage + cleanUp, err = createBalancedPodForNodes(f, cs, f.Namespace.Name, nodeList.Items, podRequestedResource, 0.0) + framework.ExpectNoError(err) + }) + ginkgo.AfterEach(func() { + if cleanUp != nil { + cleanUp() + } }) ginkgo.It("should spread the pods of a service across zones", func() { SpreadServiceOrFail(f, (2*zoneCount)+1, image) diff --git a/test/e2e/storage/drivers/csi.go b/test/e2e/storage/drivers/csi.go index 6783e6bf31d7a..add027b10cec7 100644 --- a/test/e2e/storage/drivers/csi.go +++ b/test/e2e/storage/drivers/csi.go @@ -90,6 +90,14 @@ func initHostPathCSIDriver(name string, capabilities map[testsuites.Capability]b Min: "1Mi", }, Capabilities: capabilities, + StressTestOptions: &testsuites.StressTestOptions{ + NumPods: 10, + NumRestarts: 10, + }, + VolumeSnapshotStressTestOptions: &testsuites.VolumeSnapshotStressTestOptions{ + NumPods: 10, + NumSnapshots: 10, + }, }, manifests: manifests, volumeAttributes: volumeAttributes, @@ -491,6 +499,14 @@ func InitGcePDCSIDriver() testsuites.TestDriver { NumPods: 10, NumRestarts: 10, }, + VolumeSnapshotStressTestOptions: &testsuites.VolumeSnapshotStressTestOptions{ + // GCE only allows for one snapshot per volume to be created at a time, + // which can cause test timeouts. We reduce the likelihood of test timeouts + // by increasing the number of pods (and volumes) and reducing the number + // of snapshots per volume. + NumPods: 20, + NumSnapshots: 2, + }, }, } } @@ -533,11 +549,22 @@ func (g *gcePDCSIDriver) GetSnapshotClass(config *testsuites.PerTestConfig) *uns } func (g *gcePDCSIDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) { + testns := f.Namespace.Name + cfg := &testsuites.PerTestConfig{ + Driver: g, + Prefix: "gcepd", + Framework: f, + } + + if framework.ProviderIs("gke") { + framework.Logf("The csi gce-pd driver is automatically installed in GKE. Skipping driver installation.") + return cfg, func() {} + } + ginkgo.By("deploying csi gce-pd driver") // Create secondary namespace which will be used for creating driver driverNamespace := utils.CreateDriverNamespace(f) - ns2 := driverNamespace.Name - ns1 := f.Namespace.Name + driverns := driverNamespace.Name cancelLogging := testsuites.StartPodLogs(f, driverNamespace) // It would be safer to rename the gcePD driver, but that @@ -552,7 +579,7 @@ func (g *gcePDCSIDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTes // DriverContainerName: "gce-driver", // ProvisionerContainerName: "csi-external-provisioner", // } - createGCESecrets(f.ClientSet, ns2) + createGCESecrets(f.ClientSet, driverns) manifests := []string{ "test/e2e/testing-manifests/storage-csi/external-attacher/rbac.yaml", @@ -574,17 +601,17 @@ func (g *gcePDCSIDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTes // Cleanup CSI driver and namespaces. This function needs to be idempotent and can be // concurrently called from defer (or AfterEach) and AfterSuite action hooks. cleanupFunc := func() { - ginkgo.By(fmt.Sprintf("deleting the test namespace: %s", ns1)) - // Delete the primary namespace but its okay to fail here because this namespace will + ginkgo.By(fmt.Sprintf("deleting the test namespace: %s", testns)) + // Delete the primary namespace but it's okay to fail here because this namespace will // also be deleted by framework.Aftereach hook - tryFunc(deleteNamespaceFunc(f.ClientSet, ns1, framework.DefaultNamespaceDeletionTimeout)) + tryFunc(deleteNamespaceFunc(f.ClientSet, testns, framework.DefaultNamespaceDeletionTimeout)) - ginkgo.By("uninstalling csi mock driver") + ginkgo.By("uninstalling csi gce-pd driver") tryFunc(cleanup) tryFunc(cancelLogging) - ginkgo.By(fmt.Sprintf("deleting the driver namespace: %s", ns2)) - tryFunc(deleteNamespaceFunc(f.ClientSet, ns2, framework.DefaultNamespaceDeletionTimeout)) + ginkgo.By(fmt.Sprintf("deleting the driver namespace: %s", driverns)) + tryFunc(deleteNamespaceFunc(f.ClientSet, driverns, framework.DefaultNamespaceDeletionTimeout)) // cleanup function has already ran and hence we don't need to run it again. // We do this as very last action because in-case defer(or AfterEach) races // with AfterSuite and test routine gets killed then this block still diff --git a/test/e2e/storage/drivers/in_tree.go b/test/e2e/storage/drivers/in_tree.go index 9edf98cac14ab..93538a4bedaf9 100644 --- a/test/e2e/storage/drivers/in_tree.go +++ b/test/e2e/storage/drivers/in_tree.go @@ -378,6 +378,9 @@ func InitISCSIDriver() testsuites.TestDriver { MaxFileSize: testpatterns.FileSizeMedium, SupportedFsType: sets.NewString( "", // Default fsType + "ext2", + // TODO: fix iSCSI driver can work with ext3 + //"ext3", "ext4", ), TopologyKeys: []string{v1.LabelHostname}, @@ -557,6 +560,9 @@ func InitRbdDriver() testsuites.TestDriver { }, SupportedFsType: sets.NewString( "", // Default fsType + "ext2", + // TODO: fix rbd driver can work with ext3 + //"ext3", "ext4", ), Capabilities: map[testsuites.Capability]bool{ @@ -1070,6 +1076,7 @@ func InitCinderDriver() testsuites.TestDriver { }, SupportedFsType: sets.NewString( "", // Default fsType + "ext3", ), TopologyKeys: []string{v1.LabelZoneFailureDomain}, Capabilities: map[testsuites.Capability]bool{ @@ -1184,7 +1191,6 @@ func (c *cinderDriver) CreateVolume(config *testsuites.PerTestConfig, volType te } func (v *cinderVolume) DeleteVolume() { - id := v.volumeID name := v.volumeName // Try to delete the volume for several seconds - it takes @@ -1193,23 +1199,16 @@ func (v *cinderVolume) DeleteVolume() { var err error timeout := time.Second * 120 - framework.Logf("Waiting up to %v for removal of cinder volume %s / %s", timeout, id, name) + framework.Logf("Waiting up to %v for removal of cinder volume %s", timeout, name) for start := time.Now(); time.Since(start) < timeout; time.Sleep(5 * time.Second) { - output, err = exec.Command("cinder", "delete", id).CombinedOutput() + output, err = exec.Command("cinder", "delete", name).CombinedOutput() if err == nil { - framework.Logf("Cinder volume %s deleted", id) + framework.Logf("Cinder volume %s deleted", name) return } - framework.Logf("Failed to delete volume %s / %s: %v\n%s", id, name, err, string(output)) + framework.Logf("Failed to delete volume %s: %v", name, err) } - // Timed out, try to get "cinder show " output for easier debugging - showOutput, showErr := exec.Command("cinder", "show", id).CombinedOutput() - if showErr != nil { - framework.Logf("Failed to show volume %s / %s: %v\n%s", id, name, showErr, string(showOutput)) - } else { - framework.Logf("Volume %s / %s:\n%s", id, name, string(showOutput)) - } - framework.Failf("Failed to delete pre-provisioned volume %s / %s: %v\n%s", id, name, err, string(output[:])) + framework.Logf("Giving up deleting volume %s: %v\n%s", name, err, string(output[:])) } // GCE @@ -1229,17 +1228,12 @@ var _ testsuites.DynamicPVTestDriver = &gcePdDriver{} // InitGcePdDriver returns gcePdDriver that implements TestDriver interface func InitGcePdDriver() testsuites.TestDriver { - // In current test structure, it first initialize the driver and then set up - // the new framework, so we cannot get the correct OS here. So here set to - // support all fs types including both linux and windows. We have code to check Node OS later - // during test. supportedTypes := sets.NewString( "", // Default fsType "ext2", "ext3", "ext4", "xfs", - "ntfs", ) return &gcePdDriver{ driverInfo: testsuites.DriverInfo{ @@ -1269,6 +1263,38 @@ func InitGcePdDriver() testsuites.TestDriver { } } +// InitWindowsGcePdDriver returns gcePdDriver running on Windows cluster that implements TestDriver interface +// In current test structure, it first initialize the driver and then set up +// the new framework, so we cannot get the correct OS here and select which file system is supported. +// So here uses a separate Windows in-tree gce pd driver +func InitWindowsGcePdDriver() testsuites.TestDriver { + supportedTypes := sets.NewString( + "ntfs", + ) + return &gcePdDriver{ + driverInfo: testsuites.DriverInfo{ + Name: "windows-gcepd", + InTreePluginName: "kubernetes.io/gce-pd", + MaxFileSize: testpatterns.FileSizeMedium, + SupportedSizeRange: e2evolume.SizeRange{ + Min: "1Gi", + }, + SupportedFsType: supportedTypes, + TopologyKeys: []string{v1.LabelZoneFailureDomain}, + Capabilities: map[testsuites.Capability]bool{ + testsuites.CapControllerExpansion: false, + testsuites.CapPersistence: true, + testsuites.CapExec: true, + testsuites.CapMultiPODs: true, + // GCE supports volume limits, but the test creates large + // number of volumes and times out test suites. + testsuites.CapVolumeLimits: false, + testsuites.CapTopology: true, + }, + }, + } +} + func (g *gcePdDriver) GetDriverInfo() *testsuites.DriverInfo { return &g.driverInfo } @@ -1516,6 +1542,7 @@ func InitAzureDiskDriver() testsuites.TestDriver { }, SupportedFsType: sets.NewString( "", // Default fsType + "ext3", "ext4", "xfs", ), @@ -1656,6 +1683,8 @@ func InitAwsDriver() testsuites.TestDriver { }, SupportedFsType: sets.NewString( "", // Default fsType + "ext2", + "ext3", "ext4", "xfs", "ntfs", @@ -1811,6 +1840,8 @@ var ( localVolumeSupportedFsTypes = map[utils.LocalVolumeType]sets.String{ utils.LocalVolumeBlock: sets.NewString( "", // Default fsType + "ext2", + "ext3", "ext4", //"xfs", disabled see issue https://github.com/kubernetes/kubernetes/issues/74095 ), diff --git a/test/e2e/storage/empty_dir_wrapper.go b/test/e2e/storage/empty_dir_wrapper.go index a9054369fe89a..ed79810cc3d96 100644 --- a/test/e2e/storage/empty_dir_wrapper.go +++ b/test/e2e/storage/empty_dir_wrapper.go @@ -214,25 +214,8 @@ func createGitServer(f *framework.Framework) (gitURL string, gitRepo string, cle labels := map[string]string{"name": gitServerPodName} - gitServerPod := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: gitServerPodName, - Labels: labels, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: "git-repo", - Image: imageutils.GetE2EImage(imageutils.Agnhost), - Args: []string{"fake-gitserver"}, - ImagePullPolicy: "IfNotPresent", - Ports: []v1.ContainerPort{ - {ContainerPort: int32(containerPort)}, - }, - }, - }, - }, - } + gitServerPod := e2epod.NewAgnhostPod(f.Namespace.Name, gitServerPodName, nil, nil, []v1.ContainerPort{{ContainerPort: int32(containerPort)}}, "fake-gitserver") + gitServerPod.ObjectMeta.Labels = labels f.PodClient().CreateSync(gitServerPod) // Portal IP and port diff --git a/test/e2e/storage/external/external.go b/test/e2e/storage/external/external.go index b21a6f880949a..f597f103303bc 100644 --- a/test/e2e/storage/external/external.go +++ b/test/e2e/storage/external/external.go @@ -247,18 +247,6 @@ func (d *driverDefinition) SkipUnsupportedTest(pattern testpatterns.TestPattern) e2eskipper.Skipf("Driver %q does not support volume type %q - skipping", d.DriverInfo.Name, pattern.VolType) } - supported = false - switch pattern.SnapshotType { - case "": - supported = true - case testpatterns.DynamicCreatedSnapshot: - if d.SnapshotClass.FromName || d.SnapshotClass.FromFile != "" || d.SnapshotClass.FromExistingClassName != "" { - supported = true - } - } - if !supported { - e2eskipper.Skipf("Driver %q does not support snapshot type %q - skipping", d.DriverInfo.Name, pattern.SnapshotType) - } } func (d *driverDefinition) GetDynamicProvisionStorageClass(e2econfig *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass { diff --git a/test/e2e/storage/host_path_type.go b/test/e2e/storage/host_path_type.go index 7e44158db6d28..55190a31510d9 100644 --- a/test/e2e/storage/host_path_type.go +++ b/test/e2e/storage/host_path_type.go @@ -21,7 +21,7 @@ import ( "fmt" "path" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/kubernetes/pkg/kubelet/events" @@ -262,8 +262,9 @@ var _ = utils.SIGDescribe("HostPathType Character Device [Slow]", func() { ginkgo.By(fmt.Sprintf("running on node %s", basePod.Spec.NodeName)) targetCharDev = path.Join(hostBaseDir, "achardev") ginkgo.By("Create a character device for further testing") - _, err := utils.PodExec(f, basePod, fmt.Sprintf("mknod %s c 89 1", path.Join(mountBaseDir, "achardev"))) - framework.ExpectNoError(err) + cmd := fmt.Sprintf("mknod %s c 89 1", path.Join(mountBaseDir, "achardev")) + stdout, stderr, err := utils.PodExec(f, basePod, cmd) + framework.ExpectNoError(err, "command: %q, stdout: %s\nstderr: %s", cmd, stdout, stderr) }) ginkgo.It("Should fail on mounting non-existent character device 'does-not-exist-char-dev' when HostPathType is HostPathCharDev", func() { @@ -330,8 +331,9 @@ var _ = utils.SIGDescribe("HostPathType Block Device [Slow]", func() { ginkgo.By(fmt.Sprintf("running on node %s", basePod.Spec.NodeName)) targetBlockDev = path.Join(hostBaseDir, "ablkdev") ginkgo.By("Create a block device for further testing") - _, err := utils.PodExec(f, basePod, fmt.Sprintf("mknod %s b 89 1", path.Join(mountBaseDir, "ablkdev"))) - framework.ExpectNoError(err) + cmd := fmt.Sprintf("mknod %s b 89 1", path.Join(mountBaseDir, "ablkdev")) + stdout, stderr, err := utils.PodExec(f, basePod, cmd) + framework.ExpectNoError(err, "command %q: stdout: %s\nstderr: %s", cmd, stdout, stderr) }) ginkgo.It("Should fail on mounting non-existent block device 'does-not-exist-blk-dev' when HostPathType is HostPathBlockDev", func() { diff --git a/test/e2e/storage/in_tree_volumes.go b/test/e2e/storage/in_tree_volumes.go index 19372062407eb..3c557c66b4dbf 100644 --- a/test/e2e/storage/in_tree_volumes.go +++ b/test/e2e/storage/in_tree_volumes.go @@ -35,6 +35,7 @@ var testDrivers = []func() testsuites.TestDriver{ drivers.InitEmptydirDriver, drivers.InitCinderDriver, drivers.InitGcePdDriver, + drivers.InitWindowsGcePdDriver, drivers.InitVSphereDriver, drivers.InitAzureDiskDriver, drivers.InitAwsDriver, diff --git a/test/e2e/storage/persistent_volumes-local.go b/test/e2e/storage/persistent_volumes-local.go index 13e97e96fe303..238807e4f1dbb 100644 --- a/test/e2e/storage/persistent_volumes-local.go +++ b/test/e2e/storage/persistent_volumes-local.go @@ -1074,10 +1074,10 @@ func testReadFileContent(f *framework.Framework, testFileDir string, testFile st // Execute a read or write command in a pod. // Fail on error func podRWCmdExec(f *framework.Framework, pod *v1.Pod, cmd string) string { - out, err := utils.PodExec(f, pod, cmd) - framework.Logf("podRWCmdExec out: %q err: %v", out, err) + stdout, stderr, err := utils.PodExec(f, pod, cmd) + framework.Logf("podRWCmdExec cmd: %q, out: %q, stderr: %q, err: %v", cmd, stdout, stderr, err) framework.ExpectNoError(err) - return out + return stdout } // Initialize test volume on node diff --git a/test/e2e/storage/testpatterns/testpattern.go b/test/e2e/storage/testpatterns/testpattern.go index 37d872d8b08a4..cf45318a03447 100644 --- a/test/e2e/storage/testpatterns/testpattern.go +++ b/test/e2e/storage/testpatterns/testpattern.go @@ -70,6 +70,10 @@ var ( RetainSnapshot TestSnapshotDeletionPolicy = "Retain" ) +func (t TestSnapshotDeletionPolicy) String() string { + return string(t) +} + // TestPattern represents a combination of parameters to be tested in a TestSuite type TestPattern struct { Name string // Name of TestPattern @@ -255,6 +259,7 @@ var ( FsType: "ntfs", FeatureTag: "[sig-windows]", SnapshotDeletionPolicy: DeleteSnapshot, + SnapshotType: DynamicCreatedSnapshot, } // Definitions for Filesystem volume mode @@ -328,6 +333,16 @@ var ( VolType: DynamicPV, AllowExpansion: true, } + + // NtfsDynamicPVAllowExpansion is TestPattern for "Dynamic PV (default fs)(allowExpansion)" + NtfsDynamicPVAllowExpansion = TestPattern{ + Name: "Dynamic PV (ntfs)(allowExpansion)", + VolType: DynamicPV, + AllowExpansion: true, + FsType: "ntfs", + FeatureTag: "[sig-windows]", + } + // BlockVolModeDynamicPVAllowExpansion is TestPattern for "Dynamic PV (block volmode)(allowExpansion)" BlockVolModeDynamicPVAllowExpansion = TestPattern{ Name: "Dynamic PV (block volmode)(allowExpansion)", diff --git a/test/e2e/storage/testsuites/BUILD b/test/e2e/storage/testsuites/BUILD index f27f44e2d5b64..127e187b531e3 100644 --- a/test/e2e/storage/testsuites/BUILD +++ b/test/e2e/storage/testsuites/BUILD @@ -10,12 +10,13 @@ go_library( "multivolume.go", "provisioning.go", "snapshottable.go", - "stress.go", + "snapshottable_stress.go", "subpath.go", "testdriver.go", "topology.go", "volume_expand.go", "volume_io.go", + "volume_stress.go", "volumelimits.go", "volumemode.go", "volumes.go", @@ -35,9 +36,11 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/fields:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//staging/src/k8s.io/apiserver/pkg/storage/names:go_default_library", "//staging/src/k8s.io/client-go/dynamic:go_default_library", diff --git a/test/e2e/storage/testsuites/base.go b/test/e2e/storage/testsuites/base.go index 7519d0a0806b5..b5f017c8fe83d 100644 --- a/test/e2e/storage/testsuites/base.go +++ b/test/e2e/storage/testsuites/base.go @@ -34,6 +34,7 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/types" utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/sets" clientset "k8s.io/client-go/kubernetes" @@ -83,13 +84,14 @@ var BaseSuites = []func() TestSuite{ InitDisruptiveTestSuite, InitVolumeLimitsTestSuite, InitTopologyTestSuite, - InitStressTestSuite, + InitVolumeStressTestSuite, } // CSISuites is a list of storage test suites that work only for CSI drivers var CSISuites = append(BaseSuites, InitEphemeralTestSuite, InitSnapshottableTestSuite, + InitSnapshottableStressTestSuite, ) // TestSuite represents an interface for a set of tests which works with TestDriver @@ -571,6 +573,57 @@ func getSnapshot(claimName string, ns, snapshotClassName string) *unstructured.U return snapshot } +func getPreProvisionedSnapshot(snapName, ns, snapshotContentName string) *unstructured.Unstructured { + snapshot := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "kind": "VolumeSnapshot", + "apiVersion": snapshotAPIVersion, + "metadata": map[string]interface{}{ + "name": snapName, + "namespace": ns, + }, + "spec": map[string]interface{}{ + "source": map[string]interface{}{ + "volumeSnapshotContentName": snapshotContentName, + }, + }, + }, + } + + return snapshot +} +func getPreProvisionedSnapshotContent(snapcontentName, snapshotName, snapshotNamespace, snapshotHandle, deletionPolicy, csiDriverName string) *unstructured.Unstructured { + snapshotContent := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "kind": "VolumeSnapshotContent", + "apiVersion": snapshotAPIVersion, + "metadata": map[string]interface{}{ + "name": snapcontentName, + }, + "spec": map[string]interface{}{ + "source": map[string]interface{}{ + "snapshotHandle": snapshotHandle, + }, + "volumeSnapshotRef": map[string]interface{}{ + "name": snapshotName, + "namespace": snapshotNamespace, + }, + "driver": csiDriverName, + "deletionPolicy": deletionPolicy, + }, + }, + } + + return snapshotContent +} + +func getPreProvisionedSnapshotContentName(uuid types.UID) string { + return fmt.Sprintf("pre-provisioned-snapcontent-%s", string(uuid)) +} + +func getPreProvisionedSnapshotName(uuid types.UID) string { + return fmt.Sprintf("pre-provisioned-snapshot-%s", string(uuid)) +} // StartPodLogs begins capturing log output and events from current // and future pods running in the namespace of the framework. That diff --git a/test/e2e/storage/testsuites/disruptive.go b/test/e2e/storage/testsuites/disruptive.go index bc259d2d93f12..6350752ea9d56 100644 --- a/test/e2e/storage/testsuites/disruptive.go +++ b/test/e2e/storage/testsuites/disruptive.go @@ -26,6 +26,7 @@ import ( e2epod "k8s.io/kubernetes/test/e2e/framework/pod" e2epv "k8s.io/kubernetes/test/e2e/framework/pv" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" + e2evolume "k8s.io/kubernetes/test/e2e/framework/volume" "k8s.io/kubernetes/test/e2e/storage/testpatterns" "k8s.io/kubernetes/test/e2e/storage/utils" ) @@ -41,7 +42,7 @@ func InitDisruptiveTestSuite() TestSuite { return &disruptiveTestSuite{ tsInfo: TestSuiteInfo{ Name: "disruptive", - FeatureTag: "[Disruptive]", + FeatureTag: "[Disruptive][LinuxOnly]", TestPatterns: []testpatterns.TestPattern{ // FSVolMode is already covered in subpath testsuite testpatterns.DefaultFsInlineVolume, @@ -166,6 +167,7 @@ func (s *disruptiveTestSuite) DefineTests(driver TestDriver, pattern testpattern InlineVolumeSources: inlineSources, SeLinuxLabel: e2epv.SELinuxLabel, NodeSelection: l.config.ClientNodeSelection, + ImageID: e2evolume.GetDefaultTestImageID(), } l.pod, err = e2epod.CreateSecPodWithNodeSelection(l.cs, &podConfig, framework.PodStartTimeout) framework.ExpectNoError(err, "While creating pods for kubelet restart test") diff --git a/test/e2e/storage/testsuites/driveroperations.go b/test/e2e/storage/testsuites/driveroperations.go index 5026d8d8f7928..e2d41966fafa3 100644 --- a/test/e2e/storage/testsuites/driveroperations.go +++ b/test/e2e/storage/testsuites/driveroperations.go @@ -73,6 +73,7 @@ func GetStorageClass( }, ObjectMeta: metav1.ObjectMeta{ // Name must be unique, so let's base it on namespace name and use GenerateName + // TODO(#96234): Remove unnecessary suffix. Name: names.SimpleNameGenerator.GenerateName(ns + "-" + suffix), }, Provisioner: provisioner, @@ -94,8 +95,9 @@ func GetSnapshotClass( "kind": "VolumeSnapshotClass", "apiVersion": snapshotAPIVersion, "metadata": map[string]interface{}{ - // Name must be unique, so let's base it on namespace name - "name": ns + "-" + suffix, + // Name must be unique, so let's base it on namespace name and use GenerateName + // TODO(#96234): Remove unnecessary suffix. + "name": names.SimpleNameGenerator.GenerateName(ns + "-" + suffix), }, "driver": snapshotter, "parameters": parameters, diff --git a/test/e2e/storage/testsuites/ephemeral.go b/test/e2e/storage/testsuites/ephemeral.go index 45b7abe81254b..6b2bb2f8572ed 100644 --- a/test/e2e/storage/testsuites/ephemeral.go +++ b/test/e2e/storage/testsuites/ephemeral.go @@ -347,7 +347,7 @@ func StartInPodWithInlineVolume(c clientset.Interface, ns, podName, command stri Containers: []v1.Container{ { Name: "csi-volume-tester", - Image: e2evolume.GetTestImage(framework.BusyBoxImage), + Image: e2evolume.GetDefaultTestImage(), Command: e2evolume.GenerateScriptCmd(command), }, }, diff --git a/test/e2e/storage/testsuites/multivolume.go b/test/e2e/storage/testsuites/multivolume.go index e4cc1640ad256..05f546bf2f211 100644 --- a/test/e2e/storage/testsuites/multivolume.go +++ b/test/e2e/storage/testsuites/multivolume.go @@ -30,7 +30,6 @@ import ( "k8s.io/kubernetes/test/e2e/framework" e2enode "k8s.io/kubernetes/test/e2e/framework/node" e2epod "k8s.io/kubernetes/test/e2e/framework/pod" - e2epv "k8s.io/kubernetes/test/e2e/framework/pv" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" e2evolume "k8s.io/kubernetes/test/e2e/framework/volume" "k8s.io/kubernetes/test/e2e/storage/testpatterns" @@ -128,7 +127,7 @@ func (t *multiVolumeTestSuite) DefineTests(driver TestDriver, pattern testpatter // [ node1 ] ==> [ node1 ] // / \ <- same volume mode / \ // [volume1] [volume2] [volume1] [volume2] - ginkgo.It("should access to two volumes with the same volume mode and retain data across pod recreation on the same node", func() { + ginkgo.It("should access to two volumes with the same volume mode and retain data across pod recreation on the same node [LinuxOnly]", func() { // Currently, multiple volumes are not generally available for pre-provisoined volume, // because containerized storage servers, such as iSCSI and rbd, are just returning // a static volume inside container, not actually creating a new volume per request. @@ -158,7 +157,7 @@ func (t *multiVolumeTestSuite) DefineTests(driver TestDriver, pattern testpatter // [ node1 ] ==> [ node2 ] // / \ <- same volume mode / \ // [volume1] [volume2] [volume1] [volume2] - ginkgo.It("should access to two volumes with the same volume mode and retain data across pod recreation on different node", func() { + ginkgo.It("should access to two volumes with the same volume mode and retain data across pod recreation on different node [LinuxOnly]", func() { // Currently, multiple volumes are not generally available for pre-provisoined volume, // because containerized storage servers, such as iSCSI and rbd, are just returning // a static volume inside container, not actually creating a new volume per request. @@ -208,7 +207,7 @@ func (t *multiVolumeTestSuite) DefineTests(driver TestDriver, pattern testpatter // [ node1 ] ==> [ node1 ] // / \ <- different volume mode / \ // [volume1] [volume2] [volume1] [volume2] - ginkgo.It("should access to two volumes with different volume mode and retain data across pod recreation on the same node", func() { + ginkgo.It("should access to two volumes with different volume mode and retain data across pod recreation on the same node [LinuxOnly]", func() { if pattern.VolMode == v1.PersistentVolumeFilesystem { e2eskipper.Skipf("Filesystem volume case should be covered by block volume case -- skipping") } @@ -247,7 +246,7 @@ func (t *multiVolumeTestSuite) DefineTests(driver TestDriver, pattern testpatter // [ node1 ] ==> [ node2 ] // / \ <- different volume mode / \ // [volume1] [volume2] [volume1] [volume2] - ginkgo.It("should access to two volumes with different volume mode and retain data across pod recreation on different node", func() { + ginkgo.It("should access to two volumes with different volume mode and retain data across pod recreation on different node [LinuxOnly]", func() { if pattern.VolMode == v1.PersistentVolumeFilesystem { e2eskipper.Skipf("Filesystem volume case should be covered by block volume case -- skipping") } @@ -306,7 +305,7 @@ func (t *multiVolumeTestSuite) DefineTests(driver TestDriver, pattern testpatter // [ node1 ] // \ / <- same volume mode // [volume1] - ginkgo.It("should concurrently access the single volume from pods on the same node", func() { + ginkgo.It("should concurrently access the single volume from pods on the same node [LinuxOnly]", func() { init() defer cleanup() @@ -405,8 +404,9 @@ func testAccessMultipleVolumes(f *framework.Framework, cs clientset.Interface, n podConfig := e2epod.Config{ NS: ns, PVCs: pvcs, - SeLinuxLabel: e2epv.SELinuxLabel, + SeLinuxLabel: e2evolume.GetLinuxLabel(), NodeSelection: node, + ImageID: e2evolume.GetDefaultTestImageID(), } pod, err := e2epod.CreateSecPodWithNodeSelection(cs, &podConfig, framework.PodStartTimeout) defer func() { @@ -482,11 +482,11 @@ func TestConcurrentAccessToSingleVolume(f *framework.Framework, cs clientset.Int ginkgo.By(fmt.Sprintf("Creating pod%d with a volume on %+v", index, node)) podConfig := e2epod.Config{ NS: ns, - ImageID: imageutils.DebianIptables, PVCs: []*v1.PersistentVolumeClaim{pvc}, - SeLinuxLabel: e2epv.SELinuxLabel, + SeLinuxLabel: e2evolume.GetLinuxLabel(), NodeSelection: node, PVCsReadOnly: readOnly, + ImageID: e2evolume.GetTestImageID(imageutils.DebianIptables), } pod, err := e2epod.CreateSecPodWithNodeSelection(cs, &podConfig, framework.PodStartTimeout) defer func() { @@ -649,8 +649,9 @@ func initializeVolume(cs clientset.Interface, ns string, pvc *v1.PersistentVolum podConfig := e2epod.Config{ NS: ns, PVCs: []*v1.PersistentVolumeClaim{pvc}, - SeLinuxLabel: e2epv.SELinuxLabel, + SeLinuxLabel: e2evolume.GetLinuxLabel(), NodeSelection: node, + ImageID: e2evolume.GetDefaultTestImageID(), } pod, err := e2epod.CreateSecPod(cs, &podConfig, framework.PodStartTimeout) defer func() { diff --git a/test/e2e/storage/testsuites/provisioning.go b/test/e2e/storage/testsuites/provisioning.go index 5554a1ce4c813..9563deef96ed7 100644 --- a/test/e2e/storage/testsuites/provisioning.go +++ b/test/e2e/storage/testsuites/provisioning.go @@ -666,7 +666,7 @@ func StartInPodWithVolume(c clientset.Interface, ns, claimName, podName, command Containers: []v1.Container{ { Name: "volume-tester", - Image: e2evolume.GetTestImage(framework.BusyBoxImage), + Image: e2evolume.GetDefaultTestImage(), Command: e2evolume.GenerateScriptCmd(command), VolumeMounts: []v1.VolumeMount{ { diff --git a/test/e2e/storage/testsuites/snapshottable.go b/test/e2e/storage/testsuites/snapshottable.go index b1065db0da183..27e5d2b9f41ad 100644 --- a/test/e2e/storage/testsuites/snapshottable.go +++ b/test/e2e/storage/testsuites/snapshottable.go @@ -30,6 +30,7 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime/schema" utilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/client-go/dynamic" clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/test/e2e/framework" @@ -47,6 +48,9 @@ const snapshotGroup = "snapshot.storage.k8s.io" // snapshot CRD api version const snapshotAPIVersion = "snapshot.storage.k8s.io/v1beta1" +// data file name +const datapath = "/mnt/test/data" + var ( // SnapshotGVR is GroupVersionResource for volumesnapshots SnapshotGVR = schema.GroupVersionResource{Group: snapshotGroup, Version: "v1beta1", Resource: "volumesnapshots"} @@ -75,6 +79,8 @@ func InitSnapshottableTestSuite() TestSuite { TestPatterns: []testpatterns.TestPattern{ testpatterns.DynamicSnapshotDelete, testpatterns.DynamicSnapshotRetain, + testpatterns.PreprovisionedSnapshotDelete, + testpatterns.PreprovisionedSnapshotRetain, }, SupportedSizeRange: e2evolume.SizeRange{ Min: "1Mi", @@ -94,7 +100,6 @@ func (s *snapshottableTestSuite) SkipRedundantSuite(driver TestDriver, pattern t func (s *snapshottableTestSuite) DefineTests(driver TestDriver, pattern testpatterns.TestPattern) { ginkgo.BeforeEach(func() { // Check preconditions. - framework.ExpectEqual(pattern.SnapshotType, testpatterns.DynamicCreatedSnapshot) dInfo := driver.GetDriverInfo() ok := false sDriver, ok = driver.(SnapshottableTestDriver) @@ -137,24 +142,24 @@ func (s *snapshottableTestSuite) DefineTests(driver TestDriver, pattern testpatt config, driverCleanup = driver.PrepareTest(f) cleanupSteps = append(cleanupSteps, driverCleanup) - volumeResource := CreateVolumeResource(dDriver, config, pattern, s.GetTestSuiteInfo().SupportedSizeRange) + var volumeResource *VolumeResource + cleanupSteps = append(cleanupSteps, func() { + framework.ExpectNoError(volumeResource.CleanupResource()) + }) + volumeResource = CreateVolumeResource(dDriver, config, pattern, s.GetTestSuiteInfo().SupportedSizeRange) pvc = volumeResource.Pvc sc = volumeResource.Sc claimSize = pvc.Spec.Resources.Requests.Storage().String() - cleanupSteps = append(cleanupSteps, func() { - framework.ExpectNoError(volumeResource.CleanupResource()) - }) ginkgo.By("starting a pod to use the claim") originalMntTestData = fmt.Sprintf("hello from %s namespace", pvc.GetNamespace()) - command := fmt.Sprintf("echo '%s' > /mnt/test/data", originalMntTestData) + command := fmt.Sprintf("echo '%s' > %s", originalMntTestData, datapath) RunInPodWithVolume(cs, pvc.Namespace, pvc.Name, "pvc-snapshottable-tester", command, config.ClientNodeSelection) err = e2epv.WaitForPersistentVolumeClaimPhase(v1.ClaimBound, cs, pvc.Namespace, pvc.Name, framework.Poll, framework.ClaimProvisionTimeout) framework.ExpectNoError(err) - ginkgo.By("checking the claim") // Get new copy of the claim pvc, err = cs.CoreV1().PersistentVolumeClaims(pvc.Namespace).Get(context.TODO(), pvc.Name, metav1.GetOptions{}) @@ -196,31 +201,16 @@ func (s *snapshottableTestSuite) DefineTests(driver TestDriver, pattern testpatt ) ginkgo.BeforeEach(func() { - sr := CreateSnapshotResource(sDriver, config, pattern, pvc.GetName(), pvc.GetNamespace()) - vs = sr.Vs - vscontent = sr.Vscontent - vsc = sr.Vsclass + var sr *SnapshotResource cleanupSteps = append(cleanupSteps, func() { framework.ExpectNoError(sr.CleanupResource()) }) + sr = CreateSnapshotResource(sDriver, config, pattern, pvc.GetName(), pvc.GetNamespace()) + vs = sr.Vs + vscontent = sr.Vscontent + vsc = sr.Vsclass }) - - ginkgo.It("should delete the VolumeSnapshotContent according to its deletion policy", func() { - err = DeleteAndWaitSnapshot(dc, vs.GetNamespace(), vs.GetName(), framework.Poll, framework.SnapshotDeleteTimeout) - framework.ExpectNoError(err) - - switch pattern.SnapshotDeletionPolicy { - case testpatterns.DeleteSnapshot: - ginkgo.By("checking the SnapshotContent has been deleted") - err = utils.WaitForGVRDeletion(dc, SnapshotContentGVR, vscontent.GetName(), framework.Poll, framework.SnapshotDeleteTimeout) - framework.ExpectNoError(err) - case testpatterns.RetainSnapshot: - ginkgo.By("checking the SnapshotContent has not been deleted") - err = utils.WaitForGVRDeletion(dc, SnapshotContentGVR, vscontent.GetName(), 1*time.Second /* poll */, 30*time.Second /* timeout */) - framework.ExpectError(err) - } - }) - ginkgo.It("should create snapshot objects correctly", func() { + ginkgo.It("should check snapshot fields, check restore correctly works after modifying source data, check deletion", func() { ginkgo.By("checking the snapshot") // Get new copy of the snapshot vs, err = dc.Resource(SnapshotGVR).Namespace(vs.GetNamespace()).Get(context.TODO(), vs.GetName(), metav1.GetOptions{}) @@ -237,18 +227,21 @@ func (s *snapshottableTestSuite) DefineTests(driver TestDriver, pattern testpatt // Check SnapshotContent properties ginkgo.By("checking the SnapshotContent") - framework.ExpectEqual(snapshotContentSpec["volumeSnapshotClassName"], vsc.GetName()) + // PreprovisionedCreatedSnapshot do not need to set volume snapshot class name + if pattern.SnapshotType != testpatterns.PreprovisionedCreatedSnapshot { + framework.ExpectEqual(snapshotContentSpec["volumeSnapshotClassName"], vsc.GetName()) + } framework.ExpectEqual(volumeSnapshotRef["name"], vs.GetName()) framework.ExpectEqual(volumeSnapshotRef["namespace"], vs.GetNamespace()) - }) - ginkgo.It("should restore from snapshot with saved data after modifying source data", func() { + + ginkgo.By("Modifying source data test") var restoredPVC *v1.PersistentVolumeClaim var restoredPod *v1.Pod modifiedMntTestData := fmt.Sprintf("modified data from %s namespace", pvc.GetNamespace()) ginkgo.By("modifying the data in the source PVC") - command := fmt.Sprintf("echo '%s' > /mnt/test/data", modifiedMntTestData) + command := fmt.Sprintf("echo '%s' > %s", modifiedMntTestData, datapath) RunInPodWithVolume(cs, pvc.Namespace, pvc.Name, "pvc-snapshottable-data-tester", command, config.ClientNodeSelection) ginkgo.By("creating a pvc from the snapshot") @@ -258,14 +251,13 @@ func (s *snapshottableTestSuite) DefineTests(driver TestDriver, pattern testpatt }, config.Framework.Namespace.Name) group := "snapshot.storage.k8s.io" - dataSourceRef := &v1.TypedLocalObjectReference{ + + restoredPVC.Spec.DataSource = &v1.TypedLocalObjectReference{ APIGroup: &group, Kind: "VolumeSnapshot", Name: vs.GetName(), } - restoredPVC.Spec.DataSource = dataSourceRef - restoredPVC, err = cs.CoreV1().PersistentVolumeClaims(restoredPVC.Namespace).Create(context.TODO(), restoredPVC, metav1.CreateOptions{}) framework.ExpectNoError(err) cleanupSteps = append(cleanupSteps, func() { @@ -280,15 +272,28 @@ func (s *snapshottableTestSuite) DefineTests(driver TestDriver, pattern testpatt ginkgo.By("starting a pod to use the claim") restoredPod = StartInPodWithVolume(cs, restoredPVC.Namespace, restoredPVC.Name, "restored-pvc-tester", "sleep 300", config.ClientNodeSelection) - framework.ExpectNoError(e2epod.WaitForPodRunningInNamespaceSlow(cs, restoredPod.Name, restoredPod.Namespace)) cleanupSteps = append(cleanupSteps, func() { StopPod(cs, restoredPod) }) + framework.ExpectNoError(e2epod.WaitForPodRunningInNamespaceSlow(cs, restoredPod.Name, restoredPod.Namespace)) + commands := e2evolume.GenerateReadFileCmd(datapath) + _, err = framework.LookForStringInPodExec(restoredPod.Namespace, restoredPod.Name, commands, originalMntTestData, time.Minute) + framework.ExpectNoError(err) - command = "cat /mnt/test/data" - actualData, err := utils.PodExec(f, restoredPod, command) + ginkgo.By("should delete the VolumeSnapshotContent according to its deletion policy") + err = DeleteAndWaitSnapshot(dc, vs.GetNamespace(), vs.GetName(), framework.Poll, framework.SnapshotDeleteTimeout) framework.ExpectNoError(err) - framework.ExpectEqual(actualData, originalMntTestData) + + switch pattern.SnapshotDeletionPolicy { + case testpatterns.DeleteSnapshot: + ginkgo.By("checking the SnapshotContent has been deleted") + err = utils.WaitForGVRDeletion(dc, SnapshotContentGVR, vscontent.GetName(), framework.Poll, framework.SnapshotDeleteTimeout) + framework.ExpectNoError(err) + case testpatterns.RetainSnapshot: + ginkgo.By("checking the SnapshotContent has not been deleted") + err = utils.WaitForGVRDeletion(dc, SnapshotContentGVR, vscontent.GetName(), 1*time.Second /* poll */, 30*time.Second /* timeout */) + framework.ExpectError(err) + } }) }) }) @@ -335,7 +340,7 @@ func DeleteAndWaitSnapshot(dc dynamic.Interface, ns string, snapshotName string, } ginkgo.By("checking the Snapshot has been deleted") - err = utils.WaitForGVRDeletion(dc, SnapshotGVR, snapshotName, poll, timeout) + err = utils.WaitForNamespacedGVRDeletion(dc, SnapshotGVR, ns, snapshotName, poll, timeout) return err } @@ -354,6 +359,10 @@ type SnapshotResource struct { // different test pattern snapshot provisioning and deletion policy func CreateSnapshotResource(sDriver SnapshottableTestDriver, config *PerTestConfig, pattern testpatterns.TestPattern, pvcName string, pvcNamespace string) *SnapshotResource { var err error + if pattern.SnapshotType != testpatterns.DynamicCreatedSnapshot && pattern.SnapshotType != testpatterns.PreprovisionedCreatedSnapshot { + err = fmt.Errorf("SnapshotType must be set to either DynamicCreatedSnapshot or PreprovisionedCreatedSnapshot") + framework.ExpectNoError(err) + } r := SnapshotResource{ Config: config, Pattern: pattern, @@ -365,48 +374,102 @@ func CreateSnapshotResource(sDriver SnapshottableTestDriver, config *PerTestConf if r.Vsclass == nil { framework.Failf("Failed to get snapshot class based on test config") } - r.Vsclass.Object["deletionPolicy"] = pattern.SnapshotDeletionPolicy + r.Vsclass.Object["deletionPolicy"] = pattern.SnapshotDeletionPolicy.String() r.Vsclass, err = dc.Resource(SnapshotClassGVR).Create(context.TODO(), r.Vsclass, metav1.CreateOptions{}) framework.ExpectNoError(err) - r.Vsclass, err = dc.Resource(SnapshotClassGVR).Namespace(r.Vsclass.GetNamespace()).Get(context.TODO(), r.Vsclass.GetName(), metav1.GetOptions{}) + r.Vsclass, err = dc.Resource(SnapshotClassGVR).Get(context.TODO(), r.Vsclass.GetName(), metav1.GetOptions{}) framework.ExpectNoError(err) - switch pattern.SnapshotType { - case testpatterns.DynamicCreatedSnapshot: - ginkgo.By("creating a VolumeSnapshot") - // prepare a dynamically provisioned volume snapshot with certain data - r.Vs = getSnapshot(pvcName, pvcNamespace, r.Vsclass.GetName()) + ginkgo.By("creating a dynamic VolumeSnapshot") + // prepare a dynamically provisioned volume snapshot with certain data + r.Vs = getSnapshot(pvcName, pvcNamespace, r.Vsclass.GetName()) - r.Vs, err = dc.Resource(SnapshotGVR).Namespace(r.Vs.GetNamespace()).Create(context.TODO(), r.Vs, metav1.CreateOptions{}) + r.Vs, err = dc.Resource(SnapshotGVR).Namespace(r.Vs.GetNamespace()).Create(context.TODO(), r.Vs, metav1.CreateOptions{}) + framework.ExpectNoError(err) + + err = WaitForSnapshotReady(dc, r.Vs.GetNamespace(), r.Vs.GetName(), framework.Poll, framework.SnapshotCreateTimeout) + framework.ExpectNoError(err) + + r.Vs, err = dc.Resource(SnapshotGVR).Namespace(r.Vs.GetNamespace()).Get(context.TODO(), r.Vs.GetName(), metav1.GetOptions{}) + + snapshotStatus := r.Vs.Object["status"].(map[string]interface{}) + snapshotContentName := snapshotStatus["boundVolumeSnapshotContentName"].(string) + framework.Logf("received snapshotStatus %v", snapshotStatus) + framework.Logf("snapshotContentName %s", snapshotContentName) + framework.ExpectNoError(err) + + r.Vscontent, err = dc.Resource(SnapshotContentGVR).Get(context.TODO(), snapshotContentName, metav1.GetOptions{}) + framework.ExpectNoError(err) + + if pattern.SnapshotType == testpatterns.PreprovisionedCreatedSnapshot { + // prepare a pre-provisioned VolumeSnapshotContent with certain data + // Because this could be run with an external CSI driver, we have no way + // to pre-provision the snapshot as we normally would using their API. + // We instead dynamically take a snapshot (above step), delete the old snapshot, + // and create another snapshot using the first snapshot's snapshot handle. + + ginkgo.By("updating the snapshot content deletion policy to retain") + r.Vscontent.Object["spec"].(map[string]interface{})["deletionPolicy"] = "Retain" + + r.Vscontent, err = dc.Resource(SnapshotContentGVR).Update(context.TODO(), r.Vscontent, metav1.UpdateOptions{}) framework.ExpectNoError(err) - err = WaitForSnapshotReady(dc, r.Vs.GetNamespace(), r.Vs.GetName(), framework.Poll, framework.SnapshotCreateTimeout) + ginkgo.By("recording the volume handle and snapshotHandle") + snapshotHandle := r.Vscontent.Object["status"].(map[string]interface{})["snapshotHandle"].(string) + framework.Logf("Recording snapshot handle: %s", snapshotHandle) + csiDriverName := r.Vsclass.Object["driver"].(string) + + // If the deletion policy is retain on vscontent: + // when vs is deleted vscontent will not be deleted + // when the vscontent is manually deleted then the underlying snapshot resource will not be deleted. + // We exploit this to create a snapshot resource from which we can create a preprovisioned snapshot + ginkgo.By("deleting the snapshot and snapshot content") + err = dc.Resource(SnapshotGVR).Namespace(r.Vs.GetNamespace()).Delete(context.TODO(), r.Vs.GetName(), metav1.DeleteOptions{}) + if apierrors.IsNotFound(err) { + err = nil + } framework.ExpectNoError(err) - r.Vs, err = dc.Resource(SnapshotGVR).Namespace(r.Vs.GetNamespace()).Get(context.TODO(), r.Vs.GetName(), metav1.GetOptions{}) + ginkgo.By("checking the Snapshot has been deleted") + err = utils.WaitForNamespacedGVRDeletion(dc, SnapshotGVR, r.Vs.GetName(), r.Vs.GetNamespace(), framework.Poll, framework.SnapshotDeleteTimeout) + framework.ExpectNoError(err) - snapshotStatus := r.Vs.Object["status"].(map[string]interface{}) - snapshotContentName := snapshotStatus["boundVolumeSnapshotContentName"].(string) - framework.Logf("received snapshotStatus %v", snapshotStatus) - framework.Logf("snapshotContentName %s", snapshotContentName) + err = dc.Resource(SnapshotContentGVR).Delete(context.TODO(), r.Vscontent.GetName(), metav1.DeleteOptions{}) + if apierrors.IsNotFound(err) { + err = nil + } framework.ExpectNoError(err) - r.Vscontent, err = dc.Resource(SnapshotContentGVR).Get(context.TODO(), snapshotContentName, metav1.GetOptions{}) + ginkgo.By("checking the Snapshot content has been deleted") + err = utils.WaitForGVRDeletion(dc, SnapshotContentGVR, r.Vscontent.GetName(), framework.Poll, framework.SnapshotDeleteTimeout) framework.ExpectNoError(err) - case testpatterns.PreprovisionedCreatedSnapshot: - // prepare a pre-provisioned VolumeSnapshotContent with certain data - // Because this could be run with an external CSI driver, we have no way - // to pre-provision the snapshot as we normally would using their API. - // We instead dynamically take a snapshot and create another snapshot using - // the first snapshot's snapshot handle. - ginkgo.Skip("Preprovisioned test not implemented") - ginkgo.By("taking a snapshot with deletion policy retain") - ginkgo.By("recording the volume handle and status.snapshotHandle") - ginkgo.By("deleting the snapshot and snapshot content") // TODO: test what happens when I have two snapshot content that refer to the same content + ginkgo.By("creating a snapshot content with the snapshot handle") + uuid := uuid.NewUUID() + + snapName := getPreProvisionedSnapshotName(uuid) + snapcontentName := getPreProvisionedSnapshotContentName(uuid) + + r.Vscontent = getPreProvisionedSnapshotContent(snapcontentName, snapName, pvcNamespace, snapshotHandle, pattern.SnapshotDeletionPolicy.String(), csiDriverName) + r.Vscontent, err = dc.Resource(SnapshotContentGVR).Create(context.TODO(), r.Vscontent, metav1.CreateOptions{}) + framework.ExpectNoError(err) + ginkgo.By("creating a snapshot with that snapshot content") + r.Vs = getPreProvisionedSnapshot(snapName, pvcNamespace, snapcontentName) + r.Vs, err = dc.Resource(SnapshotGVR).Namespace(r.Vs.GetNamespace()).Create(context.TODO(), r.Vs, metav1.CreateOptions{}) + framework.ExpectNoError(err) + + err = WaitForSnapshotReady(dc, r.Vs.GetNamespace(), r.Vs.GetName(), framework.Poll, framework.SnapshotCreateTimeout) + framework.ExpectNoError(err) + + ginkgo.By("getting the snapshot and snapshot content") + r.Vs, err = dc.Resource(SnapshotGVR).Namespace(r.Vs.GetNamespace()).Get(context.TODO(), r.Vs.GetName(), metav1.GetOptions{}) + framework.ExpectNoError(err) + + r.Vscontent, err = dc.Resource(SnapshotContentGVR).Get(context.TODO(), r.Vscontent.GetName(), metav1.GetOptions{}) + framework.ExpectNoError(err) } return &r } @@ -445,8 +508,10 @@ func (sr *SnapshotResource) CleanupResource() error { err = nil } framework.ExpectNoError(err) + err = utils.WaitForGVRDeletion(dc, SnapshotContentGVR, boundVsContent.GetName(), framework.Poll, framework.SnapshotDeleteTimeout) framework.ExpectNoError(err) + case apierrors.IsNotFound(err): // the volume snapshot is not bound to snapshot content yet err = dc.Resource(SnapshotGVR).Namespace(sr.Vs.GetNamespace()).Delete(context.TODO(), sr.Vs.GetName(), metav1.DeleteOptions{}) @@ -454,7 +519,8 @@ func (sr *SnapshotResource) CleanupResource() error { err = nil } framework.ExpectNoError(err) - err = utils.WaitForGVRDeletion(dc, SnapshotGVR, sr.Vs.GetName(), framework.Poll, framework.SnapshotDeleteTimeout) + + err = utils.WaitForNamespacedGVRDeletion(dc, SnapshotGVR, sr.Vs.GetName(), sr.Vs.GetNamespace(), framework.Poll, framework.SnapshotDeleteTimeout) framework.ExpectNoError(err) default: cleanupErrs = append(cleanupErrs, err) @@ -466,7 +532,7 @@ func (sr *SnapshotResource) CleanupResource() error { } } if sr.Vscontent != nil { - framework.Logf("deleting snapshot content %q/%q", sr.Vscontent.GetNamespace(), sr.Vscontent.GetName()) + framework.Logf("deleting snapshot content %q", sr.Vscontent.GetName()) sr.Vscontent, err = dc.Resource(SnapshotContentGVR).Get(context.TODO(), sr.Vscontent.GetName(), metav1.GetOptions{}) switch { @@ -479,7 +545,7 @@ func (sr *SnapshotResource) CleanupResource() error { sr.Vscontent, err = dc.Resource(SnapshotContentGVR).Update(context.TODO(), sr.Vscontent, metav1.UpdateOptions{}) framework.ExpectNoError(err) } - err = dc.Resource(SnapshotContentGVR).Namespace(sr.Vscontent.GetNamespace()).Delete(context.TODO(), sr.Vscontent.GetName(), metav1.DeleteOptions{}) + err = dc.Resource(SnapshotContentGVR).Delete(context.TODO(), sr.Vscontent.GetName(), metav1.DeleteOptions{}) if apierrors.IsNotFound(err) { err = nil } @@ -494,9 +560,9 @@ func (sr *SnapshotResource) CleanupResource() error { } } if sr.Vsclass != nil { - framework.Logf("deleting snapshot class %q/%q", sr.Vsclass.GetNamespace(), sr.Vsclass.GetName()) + framework.Logf("deleting snapshot class %q", sr.Vsclass.GetName()) // typically this snapshot class has already been deleted - err = dc.Resource(SnapshotClassGVR).Namespace(sr.Vsclass.GetNamespace()).Delete(context.TODO(), sr.Vsclass.GetName(), metav1.DeleteOptions{}) + err = dc.Resource(SnapshotClassGVR).Delete(context.TODO(), sr.Vsclass.GetName(), metav1.DeleteOptions{}) if err != nil && !apierrors.IsNotFound(err) { framework.Failf("Error deleting snapshot class %q. Error: %v", sr.Vsclass.GetName(), err) } diff --git a/test/e2e/storage/testsuites/snapshottable_stress.go b/test/e2e/storage/testsuites/snapshottable_stress.go new file mode 100644 index 0000000000000..3de43fefe8975 --- /dev/null +++ b/test/e2e/storage/testsuites/snapshottable_stress.go @@ -0,0 +1,289 @@ +/* +Copyright 2020 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. +*/ + +// This suite tests volume snapshots under stress conditions. + +package testsuites + +import ( + "context" + "sync" + + "github.com/onsi/ginkgo" + + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + errors "k8s.io/apimachinery/pkg/util/errors" + clientset "k8s.io/client-go/kubernetes" + "k8s.io/kubernetes/test/e2e/framework" + e2epod "k8s.io/kubernetes/test/e2e/framework/pod" + e2epv "k8s.io/kubernetes/test/e2e/framework/pv" + e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" + e2evolume "k8s.io/kubernetes/test/e2e/framework/volume" + "k8s.io/kubernetes/test/e2e/storage/testpatterns" +) + +type snapshottableStressTestSuite struct { + tsInfo TestSuiteInfo +} + +type snapshottableStressTest struct { + config *PerTestConfig + testOptions VolumeSnapshotStressTestOptions + driverCleanup func() + + pods []*v1.Pod + volumes []*VolumeResource + snapshots []*SnapshotResource + // Because we are appending snapshot resources in parallel goroutines. + snapshotsMutex sync.Mutex + + // Stop and wait for any async routines. + ctx context.Context + wg sync.WaitGroup + cancel context.CancelFunc +} + +var _ TestSuite = &snapshottableStressTestSuite{} + +// InitSnapshottableStressTestSuite returns snapshottableStressTestSuite that implements TestSuite interface +func InitSnapshottableStressTestSuite() TestSuite { + return &snapshottableStressTestSuite{ + tsInfo: TestSuiteInfo{ + Name: "snapshottable-stress", + TestPatterns: []testpatterns.TestPattern{ + testpatterns.DynamicSnapshotDelete, + testpatterns.DynamicSnapshotRetain, + }, + SupportedSizeRange: e2evolume.SizeRange{ + Min: "1Mi", + }, + FeatureTag: "[Feature:VolumeSnapshotDataSource]", + }, + } +} + +func (t *snapshottableStressTestSuite) GetTestSuiteInfo() TestSuiteInfo { + return t.tsInfo +} + +func (t *snapshottableStressTestSuite) SkipRedundantSuite(driver TestDriver, pattern testpatterns.TestPattern) { +} + +func (t *snapshottableStressTestSuite) DefineTests(driver TestDriver, pattern testpatterns.TestPattern) { + var ( + driverInfo *DriverInfo + snapshottableDriver SnapshottableTestDriver + cs clientset.Interface + stressTest *snapshottableStressTest + ) + + // Check preconditions before setting up namespace via framework below. + ginkgo.BeforeEach(func() { + driverInfo = driver.GetDriverInfo() + if driverInfo.VolumeSnapshotStressTestOptions == nil { + e2eskipper.Skipf("Driver %s doesn't specify snapshot stress test options -- skipping", driverInfo.Name) + } + if driverInfo.VolumeSnapshotStressTestOptions.NumPods <= 0 { + framework.Failf("NumPods in snapshot stress test options must be a positive integer, received: %d", driverInfo.VolumeSnapshotStressTestOptions.NumPods) + } + if driverInfo.VolumeSnapshotStressTestOptions.NumSnapshots <= 0 { + framework.Failf("NumSnapshots in snapshot stress test options must be a positive integer, received: %d", driverInfo.VolumeSnapshotStressTestOptions.NumSnapshots) + } + + // Because we're initializing snapshottableDriver, both vars must exist. + ok := false + + snapshottableDriver, ok = driver.(SnapshottableTestDriver) + if !driverInfo.Capabilities[CapSnapshotDataSource] || !ok { + e2eskipper.Skipf("Driver %q doesn't implement SnapshottableTestDriver - skipping", driverInfo.Name) + } + + _, ok = driver.(DynamicPVTestDriver) + if !ok { + e2eskipper.Skipf("Driver %s doesn't implement DynamicPVTestDriver -- skipping", driverInfo.Name) + } + }) + + // This intentionally comes after checking the preconditions because it + // registers its own BeforeEach which creates the namespace. Beware that it + // also registers an AfterEach which renders f unusable. Any code using + // f must run inside an It or Context callback. + f := framework.NewDefaultFramework("snapshottable-stress") + + init := func() { + cs = f.ClientSet + config, driverCleanup := driver.PrepareTest(f) + ctx, cancel := context.WithCancel(context.Background()) + + stressTest = &snapshottableStressTest{ + config: config, + driverCleanup: driverCleanup, + volumes: []*VolumeResource{}, + snapshots: []*SnapshotResource{}, + pods: []*v1.Pod{}, + testOptions: *driverInfo.VolumeSnapshotStressTestOptions, + ctx: ctx, + cancel: cancel, + } + } + + createPodsAndVolumes := func() { + for i := 0; i < stressTest.testOptions.NumPods; i++ { + framework.Logf("Creating resources for pod %d/%d", i, stressTest.testOptions.NumPods-1) + + volume := CreateVolumeResource(driver, stressTest.config, pattern, t.GetTestSuiteInfo().SupportedSizeRange) + stressTest.volumes = append(stressTest.volumes, volume) + + podConfig := e2epod.Config{ + NS: f.Namespace.Name, + PVCs: []*v1.PersistentVolumeClaim{volume.Pvc}, + SeLinuxLabel: e2epv.SELinuxLabel, + } + pod, err := e2epod.MakeSecPod(&podConfig) + framework.ExpectNoError(err) + stressTest.pods = append(stressTest.pods, pod) + + } + + var wg sync.WaitGroup + for i, pod := range stressTest.pods { + wg.Add(1) + + go func(i int, pod *v1.Pod) { + defer ginkgo.GinkgoRecover() + defer wg.Done() + + if _, err := cs.CoreV1().Pods(pod.Namespace).Create(context.TODO(), pod, metav1.CreateOptions{}); err != nil { + stressTest.cancel() + framework.Failf("Failed to create pod-%d [%+v]. Error: %v", i, pod, err) + } + }(i, pod) + } + wg.Wait() + + for i, pod := range stressTest.pods { + if err := e2epod.WaitForPodRunningInNamespace(cs, pod); err != nil { + stressTest.cancel() + framework.Failf("Failed to wait for pod-%d [%+v] turn into running status. Error: %v", i, pod, err) + } + } + } + + cleanup := func() { + framework.Logf("Stopping and waiting for all test routines to finish") + stressTest.cancel() + stressTest.wg.Wait() + + var ( + errs []error + mu sync.Mutex + wg sync.WaitGroup + ) + + for i, snapshot := range stressTest.snapshots { + wg.Add(1) + + go func(i int, snapshot *SnapshotResource) { + defer ginkgo.GinkgoRecover() + defer wg.Done() + + framework.Logf("Deleting snapshot %s/%s", snapshot.Vs.GetNamespace(), snapshot.Vs.GetName()) + err := snapshot.CleanupResource() + mu.Lock() + defer mu.Unlock() + errs = append(errs, err) + }(i, snapshot) + } + wg.Wait() + + for i, pod := range stressTest.pods { + wg.Add(1) + + go func(i int, pod *v1.Pod) { + defer ginkgo.GinkgoRecover() + defer wg.Done() + + framework.Logf("Deleting pod %s", pod.Name) + err := e2epod.DeletePodWithWait(cs, pod) + mu.Lock() + defer mu.Unlock() + errs = append(errs, err) + }(i, pod) + } + wg.Wait() + + for i, volume := range stressTest.volumes { + wg.Add(1) + + go func(i int, volume *VolumeResource) { + defer ginkgo.GinkgoRecover() + defer wg.Done() + + framework.Logf("Deleting volume %s", volume.Pvc.GetName()) + err := volume.CleanupResource() + mu.Lock() + defer mu.Unlock() + errs = append(errs, err) + }(i, volume) + } + wg.Wait() + + errs = append(errs, tryFunc(stressTest.driverCleanup)) + + framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resources") + } + + ginkgo.BeforeEach(func() { + init() + createPodsAndVolumes() + }) + + // See #96177, this is necessary for cleaning up resources when tests are interrupted. + f.AddAfterEach("cleanup", func(f *framework.Framework, failed bool) { + cleanup() + }) + + ginkgo.It("should support snapshotting of many volumes repeatedly [Slow] [Serial]", func() { + // Repeatedly create and delete snapshots of each volume. + for i := 0; i < stressTest.testOptions.NumPods; i++ { + for j := 0; j < stressTest.testOptions.NumSnapshots; j++ { + stressTest.wg.Add(1) + + go func(podIndex, snapshotIndex int) { + defer ginkgo.GinkgoRecover() + defer stressTest.wg.Done() + + pod := stressTest.pods[podIndex] + volume := stressTest.volumes[podIndex] + + select { + case <-stressTest.ctx.Done(): + return + default: + framework.Logf("Pod-%d [%s], Iteration %d/%d", podIndex, pod.Name, snapshotIndex, stressTest.testOptions.NumSnapshots-1) + snapshot := CreateSnapshotResource(snapshottableDriver, stressTest.config, pattern, volume.Pvc.GetName(), volume.Pvc.GetNamespace()) + stressTest.snapshotsMutex.Lock() + defer stressTest.snapshotsMutex.Unlock() + stressTest.snapshots = append(stressTest.snapshots, snapshot) + } + }(i, j) + } + } + + stressTest.wg.Wait() + }) +} diff --git a/test/e2e/storage/testsuites/stress.go b/test/e2e/storage/testsuites/stress.go deleted file mode 100644 index 39437f983da15..0000000000000 --- a/test/e2e/storage/testsuites/stress.go +++ /dev/null @@ -1,198 +0,0 @@ -/* -Copyright 2020 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. -*/ - -// This suite tests volumes under stress conditions - -package testsuites - -import ( - "context" - "sync" - - "github.com/onsi/ginkgo" - - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - errors "k8s.io/apimachinery/pkg/util/errors" - clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/test/e2e/framework" - e2epod "k8s.io/kubernetes/test/e2e/framework/pod" - e2epv "k8s.io/kubernetes/test/e2e/framework/pv" - e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" - "k8s.io/kubernetes/test/e2e/storage/testpatterns" -) - -type stressTestSuite struct { - tsInfo TestSuiteInfo -} - -type stressTest struct { - config *PerTestConfig - driverCleanup func() - - migrationCheck *migrationOpCheck - - resources []*VolumeResource - pods []*v1.Pod - // stop and wait for any async routines - wg sync.WaitGroup - stopChs []chan struct{} - - testOptions StressTestOptions -} - -var _ TestSuite = &stressTestSuite{} - -// InitStressTestSuite returns stressTestSuite that implements TestSuite interface -func InitStressTestSuite() TestSuite { - return &stressTestSuite{ - tsInfo: TestSuiteInfo{ - Name: "stress", - TestPatterns: []testpatterns.TestPattern{ - testpatterns.DefaultFsDynamicPV, - testpatterns.BlockVolModeDynamicPV, - }, - }, - } -} - -func (t *stressTestSuite) GetTestSuiteInfo() TestSuiteInfo { - return t.tsInfo -} - -func (t *stressTestSuite) SkipRedundantSuite(driver TestDriver, pattern testpatterns.TestPattern) { -} - -func (t *stressTestSuite) DefineTests(driver TestDriver, pattern testpatterns.TestPattern) { - var ( - dInfo = driver.GetDriverInfo() - cs clientset.Interface - ) - - ginkgo.BeforeEach(func() { - // Check preconditions. - if dInfo.StressTestOptions == nil { - e2eskipper.Skipf("Driver %s doesn't specify stress test options -- skipping", dInfo.Name) - } - - if _, ok := driver.(DynamicPVTestDriver); !ok { - e2eskipper.Skipf("Driver %s doesn't implement DynamicPVTestDriver -- skipping", dInfo.Name) - } - - if !driver.GetDriverInfo().Capabilities[CapBlock] && pattern.VolMode == v1.PersistentVolumeBlock { - e2eskipper.Skipf("Driver %q does not support block volume mode - skipping", dInfo.Name) - } - }) - - // This intentionally comes after checking the preconditions because it - // registers its own BeforeEach which creates the namespace. Beware that it - // also registers an AfterEach which renders f unusable. Any code using - // f must run inside an It or Context callback. - f := framework.NewDefaultFramework("stress") - - init := func() *stressTest { - cs = f.ClientSet - l := &stressTest{} - - // Now do the more expensive test initialization. - l.config, l.driverCleanup = driver.PrepareTest(f) - l.migrationCheck = newMigrationOpCheck(f.ClientSet, dInfo.InTreePluginName) - l.resources = []*VolumeResource{} - l.pods = []*v1.Pod{} - l.stopChs = []chan struct{}{} - l.testOptions = *dInfo.StressTestOptions - - return l - } - - cleanup := func(l *stressTest) { - var errs []error - - framework.Logf("Stopping and waiting for all test routines to finish") - for _, stopCh := range l.stopChs { - close(stopCh) - } - l.wg.Wait() - - for _, pod := range l.pods { - framework.Logf("Deleting pod %v", pod.Name) - err := e2epod.DeletePodWithWait(cs, pod) - errs = append(errs, err) - } - - for _, resource := range l.resources { - errs = append(errs, resource.CleanupResource()) - } - - errs = append(errs, tryFunc(l.driverCleanup)) - framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource") - l.migrationCheck.validateMigrationVolumeOpCounts() - } - - ginkgo.It("multiple pods should access different volumes repeatedly [Slow] [Serial]", func() { - l := init() - defer func() { - cleanup(l) - }() - - for i := 0; i < l.testOptions.NumPods; i++ { - framework.Logf("Creating resources for pod %v/%v", i, l.testOptions.NumPods-1) - r := CreateVolumeResource(driver, l.config, pattern, t.GetTestSuiteInfo().SupportedSizeRange) - l.resources = append(l.resources, r) - podConfig := e2epod.Config{ - NS: f.Namespace.Name, - PVCs: []*v1.PersistentVolumeClaim{r.Pvc}, - SeLinuxLabel: e2epv.SELinuxLabel, - } - pod, err := e2epod.MakeSecPod(&podConfig) - framework.ExpectNoError(err) - - l.pods = append(l.pods, pod) - l.stopChs = append(l.stopChs, make(chan struct{})) - } - - // Restart pod repeatedly - for i := 0; i < l.testOptions.NumPods; i++ { - podIndex := i - l.wg.Add(1) - go func() { - defer ginkgo.GinkgoRecover() - defer l.wg.Done() - for j := 0; j < l.testOptions.NumRestarts; j++ { - select { - case <-l.stopChs[podIndex]: - return - default: - pod := l.pods[podIndex] - framework.Logf("Pod %v, Iteration %v/%v", podIndex, j, l.testOptions.NumRestarts-1) - _, err := cs.CoreV1().Pods(pod.Namespace).Create(context.TODO(), pod, metav1.CreateOptions{}) - framework.ExpectNoError(err) - - err = e2epod.WaitForPodRunningInNamespace(cs, pod) - framework.ExpectNoError(err) - - // TODO: write data per pod and validate it everytime - - err = e2epod.DeletePodWithWait(f.ClientSet, pod) - framework.ExpectNoError(err) - } - } - }() - } - - l.wg.Wait() - }) -} diff --git a/test/e2e/storage/testsuites/subpath.go b/test/e2e/storage/testsuites/subpath.go index 4f493bc0ad08d..ab80c6e3eda1c 100644 --- a/test/e2e/storage/testsuites/subpath.go +++ b/test/e2e/storage/testsuites/subpath.go @@ -441,7 +441,7 @@ func (s *subPathTestSuite) DefineTests(driver TestDriver, pattern testpatterns.T defer cleanup() // Change volume container to busybox so we can exec later - l.pod.Spec.Containers[1].Image = e2evolume.GetTestImage(imageutils.GetE2EImage(imageutils.BusyBox)) + l.pod.Spec.Containers[1].Image = e2evolume.GetDefaultTestImage() l.pod.Spec.Containers[1].Command = e2evolume.GenerateScriptCmd("sleep 100000") l.pod.Spec.Containers[1].Args = nil @@ -508,6 +508,28 @@ func SubpathTestPod(f *framework.Framework, subpath, volumeType string, source * probeVolumeName = "liveness-probe-volume" seLinuxOptions = &v1.SELinuxOptions{Level: "s0:c0,c1"} ) + + volumeMount := v1.VolumeMount{Name: volumeName, MountPath: volumePath} + volumeSubpathMount := v1.VolumeMount{Name: volumeName, MountPath: volumePath, SubPath: subpath} + probeMount := v1.VolumeMount{Name: probeVolumeName, MountPath: probeVolumePath} + + initSubpathContainer := e2epod.NewAgnhostContainer( + fmt.Sprintf("test-init-subpath-%s", suffix), + []v1.VolumeMount{volumeSubpathMount, probeMount}, nil, "mounttest") + initSubpathContainer.SecurityContext = e2evolume.GenerateSecurityContext(privilegedSecurityContext) + initVolumeContainer := e2epod.NewAgnhostContainer( + fmt.Sprintf("test-init-volume-%s", suffix), + []v1.VolumeMount{volumeMount, probeMount}, nil, "mounttest") + initVolumeContainer.SecurityContext = e2evolume.GenerateSecurityContext(privilegedSecurityContext) + subpathContainer := e2epod.NewAgnhostContainer( + fmt.Sprintf("test-container-subpath-%s", suffix), + []v1.VolumeMount{volumeSubpathMount, probeMount}, nil, "mounttest") + subpathContainer.SecurityContext = e2evolume.GenerateSecurityContext(privilegedSecurityContext) + volumeContainer := e2epod.NewAgnhostContainer( + fmt.Sprintf("test-container-volume-%s", suffix), + []v1.VolumeMount{volumeMount, probeMount}, nil, "mounttest") + volumeContainer.SecurityContext = e2evolume.GenerateSecurityContext(privilegedSecurityContext) + return &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: fmt.Sprintf("pod-subpath-test-%s", suffix), @@ -516,88 +538,17 @@ func SubpathTestPod(f *framework.Framework, subpath, volumeType string, source * Spec: v1.PodSpec{ InitContainers: []v1.Container{ { - Name: fmt.Sprintf("init-volume-%s", suffix), - Image: e2evolume.GetTestImage(imageutils.GetE2EImage(imageutils.BusyBox)), - VolumeMounts: []v1.VolumeMount{ - { - Name: volumeName, - MountPath: volumePath, - }, - { - Name: probeVolumeName, - MountPath: probeVolumePath, - }, - }, - SecurityContext: e2evolume.GenerateSecurityContext(privilegedSecurityContext), - }, - { - Name: fmt.Sprintf("test-init-subpath-%s", suffix), - Image: mountImage, - Args: []string{"mounttest"}, - VolumeMounts: []v1.VolumeMount{ - { - Name: volumeName, - MountPath: volumePath, - SubPath: subpath, - }, - { - Name: probeVolumeName, - MountPath: probeVolumePath, - }, - }, - SecurityContext: e2evolume.GenerateSecurityContext(privilegedSecurityContext), - }, - { - Name: fmt.Sprintf("test-init-volume-%s", suffix), - Image: mountImage, - Args: []string{"mounttest"}, - VolumeMounts: []v1.VolumeMount{ - { - Name: volumeName, - MountPath: volumePath, - }, - { - Name: probeVolumeName, - MountPath: probeVolumePath, - }, - }, + Name: fmt.Sprintf("init-volume-%s", suffix), + Image: e2evolume.GetDefaultTestImage(), + VolumeMounts: []v1.VolumeMount{volumeMount, probeMount}, SecurityContext: e2evolume.GenerateSecurityContext(privilegedSecurityContext), }, + initSubpathContainer, + initVolumeContainer, }, Containers: []v1.Container{ - { - Name: fmt.Sprintf("test-container-subpath-%s", suffix), - Image: mountImage, - Args: []string{"mounttest"}, - VolumeMounts: []v1.VolumeMount{ - { - Name: volumeName, - MountPath: volumePath, - SubPath: subpath, - }, - { - Name: probeVolumeName, - MountPath: probeVolumePath, - }, - }, - SecurityContext: e2evolume.GenerateSecurityContext(privilegedSecurityContext), - }, - { - Name: fmt.Sprintf("test-container-volume-%s", suffix), - Image: mountImage, - Args: []string{"mounttest"}, - VolumeMounts: []v1.VolumeMount{ - { - Name: volumeName, - MountPath: volumePath, - }, - { - Name: probeVolumeName, - MountPath: probeVolumePath, - }, - }, - SecurityContext: e2evolume.GenerateSecurityContext(privilegedSecurityContext), - }, + subpathContainer, + volumeContainer, }, RestartPolicy: v1.RestartPolicyNever, TerminationGracePeriodSeconds: &gracePeriod, @@ -657,7 +608,7 @@ func volumeFormatPod(f *framework.Framework, volumeSource *v1.VolumeSource) *v1. Containers: []v1.Container{ { Name: fmt.Sprintf("init-volume-%s", f.Namespace.Name), - Image: e2evolume.GetTestImage(imageutils.GetE2EImage(imageutils.BusyBox)), + Image: e2evolume.GetDefaultTestImage(), Command: e2evolume.GenerateScriptCmd("echo nothing"), VolumeMounts: []v1.VolumeMount{ { @@ -686,8 +637,14 @@ func setWriteCommand(file string, container *v1.Container) { container.Args = []string{ "mounttest", fmt.Sprintf("--new_file_0644=%v", file), - fmt.Sprintf("--file_mode=%v", file), } + // See issue https://github.com/kubernetes/kubernetes/issues/94237 about file_mode + // not working well on Windows + // TODO: remove this check after issue is resolved + if !framework.NodeOSDistroIs("windows") { + container.Args = append(container.Args, fmt.Sprintf("--file_mode=%v", file)) + } + } func addSubpathVolumeContainer(container *v1.Container, volumeMount v1.VolumeMount) { @@ -830,10 +787,10 @@ func (h *podContainerRestartHooks) FixLivenessProbe(pod *v1.Pod, probeFilePath s func testPodContainerRestartWithHooks(f *framework.Framework, pod *v1.Pod, hooks *podContainerRestartHooks) { pod.Spec.RestartPolicy = v1.RestartPolicyOnFailure - pod.Spec.Containers[0].Image = e2evolume.GetTestImage(imageutils.GetE2EImage(imageutils.BusyBox)) + pod.Spec.Containers[0].Image = e2evolume.GetDefaultTestImage() pod.Spec.Containers[0].Command = e2evolume.GenerateScriptCmd("sleep 100000") pod.Spec.Containers[0].Args = nil - pod.Spec.Containers[1].Image = e2evolume.GetTestImage(imageutils.GetE2EImage(imageutils.BusyBox)) + pod.Spec.Containers[1].Image = e2evolume.GetDefaultTestImage() pod.Spec.Containers[1].Command = e2evolume.GenerateScriptCmd("sleep 100000") pod.Spec.Containers[1].Args = nil hooks.AddLivenessProbe(pod, probeFilePath) @@ -855,7 +812,7 @@ func testPodContainerRestartWithHooks(f *framework.Framework, pod *v1.Pod, hooks // Check that container has restarted ginkgo.By("Waiting for container to restart") restarts := int32(0) - err = wait.PollImmediate(10*time.Second, 2*time.Minute, func() (bool, error) { + err = wait.PollImmediate(10*time.Second, framework.PodStartTimeout, func() (bool, error) { pod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(context.TODO(), pod.Name, metav1.GetOptions{}) if err != nil { return false, err @@ -882,7 +839,7 @@ func testPodContainerRestartWithHooks(f *framework.Framework, pod *v1.Pod, hooks ginkgo.By("Waiting for container to stop restarting") stableCount := int(0) stableThreshold := int(time.Minute / framework.Poll) - err = wait.PollImmediate(framework.Poll, 2*time.Minute, func() (bool, error) { + err = wait.PollImmediate(framework.Poll, framework.PodStartTimeout, func() (bool, error) { pod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Get(context.TODO(), pod.Name, metav1.GetOptions{}) if err != nil { return false, err @@ -1004,10 +961,10 @@ func testSubpathReconstruction(f *framework.Framework, hostExec utils.HostExec, } // Change to busybox - pod.Spec.Containers[0].Image = e2evolume.GetTestImage(imageutils.GetE2EImage(imageutils.BusyBox)) + pod.Spec.Containers[0].Image = e2evolume.GetDefaultTestImage() pod.Spec.Containers[0].Command = e2evolume.GenerateScriptCmd("sleep 100000") pod.Spec.Containers[0].Args = nil - pod.Spec.Containers[1].Image = e2evolume.GetTestImage(imageutils.GetE2EImage(imageutils.BusyBox)) + pod.Spec.Containers[1].Image = e2evolume.GetDefaultTestImage() pod.Spec.Containers[1].Command = e2evolume.GenerateScriptCmd("sleep 100000") pod.Spec.Containers[1].Args = nil // If grace period is too short, then there is not enough time for the volume diff --git a/test/e2e/storage/testsuites/testdriver.go b/test/e2e/storage/testsuites/testdriver.go index 6373f2554d45d..f1f70d6218a71 100644 --- a/test/e2e/storage/testsuites/testdriver.go +++ b/test/e2e/storage/testsuites/testdriver.go @@ -189,7 +189,10 @@ type DriverInfo struct { // Example: multi-zonal disk requires at least 2 allowed topologies. NumAllowedTopologies int // [Optional] Scale parameters for stress tests. + // TODO(#96241): Rename this field to reflect the tests that consume it. StressTestOptions *StressTestOptions + // [Optional] Scale parameters for volume snapshot stress tests. + VolumeSnapshotStressTestOptions *VolumeSnapshotStressTestOptions } // StressTestOptions contains parameters used for stress tests. @@ -201,6 +204,15 @@ type StressTestOptions struct { NumRestarts int } +// VolumeSnapshotStressTestOptions contains parameters used for volume snapshot stress tests. +type VolumeSnapshotStressTestOptions struct { + // Number of pods to create in the test. This may also create + // up to 1 volume per pod. + NumPods int + // Number of snapshots to create for each volume. + NumSnapshots int +} + // PerTestConfig represents parameters that control test execution. // One instance gets allocated for each test and is then passed // via pointer to functions involved in the test. diff --git a/test/e2e/storage/testsuites/topology.go b/test/e2e/storage/testsuites/topology.go index e394aa40e691e..b2005685f7612 100644 --- a/test/e2e/storage/testsuites/topology.go +++ b/test/e2e/storage/testsuites/topology.go @@ -34,6 +34,7 @@ import ( e2epod "k8s.io/kubernetes/test/e2e/framework/pod" e2epv "k8s.io/kubernetes/test/e2e/framework/pv" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" + e2evolume "k8s.io/kubernetes/test/e2e/framework/volume" "k8s.io/kubernetes/test/e2e/storage/testpatterns" ) @@ -335,8 +336,9 @@ func (t *topologyTestSuite) createResources(cs clientset.Interface, l *topologyT podConfig := e2epod.Config{ NS: l.config.Framework.Namespace.Name, PVCs: []*v1.PersistentVolumeClaim{l.resource.Pvc}, - SeLinuxLabel: e2epv.SELinuxLabel, NodeSelection: e2epod.NodeSelection{Affinity: affinity}, + SeLinuxLabel: e2evolume.GetLinuxLabel(), + ImageID: e2evolume.GetDefaultTestImageID(), } l.pod, err = e2epod.MakeSecPod(&podConfig) framework.ExpectNoError(err) diff --git a/test/e2e/storage/testsuites/volume_expand.go b/test/e2e/storage/testsuites/volume_expand.go index c77540ea4aa47..d5fabc80fe087 100644 --- a/test/e2e/storage/testsuites/volume_expand.go +++ b/test/e2e/storage/testsuites/volume_expand.go @@ -32,7 +32,6 @@ import ( clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/test/e2e/framework" e2epod "k8s.io/kubernetes/test/e2e/framework/pod" - e2epv "k8s.io/kubernetes/test/e2e/framework/pv" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" e2evolume "k8s.io/kubernetes/test/e2e/framework/volume" "k8s.io/kubernetes/test/e2e/storage/testpatterns" @@ -42,12 +41,6 @@ const ( resizePollInterval = 2 * time.Second // total time to wait for cloudprovider or file system resize to finish totalResizeWaitPeriod = 10 * time.Minute - - // resizedPodStartupTimeout defines time we should wait for pod that uses offline - // resized volume to startup. This time is higher than default PodStartTimeout because - // typically time to detach and then attach a volume is amortized in this time duration. - resizedPodStartupTimeout = 10 * time.Minute - // time to wait for PVC conditions to sync pvcConditionSyncPeriod = 2 * time.Minute ) @@ -68,6 +61,8 @@ func InitVolumeExpandTestSuite() TestSuite { testpatterns.BlockVolModeDynamicPV, testpatterns.DefaultFsDynamicPVAllowExpansion, testpatterns.BlockVolModeDynamicPVAllowExpansion, + testpatterns.NtfsDynamicPV, + testpatterns.NtfsDynamicPVAllowExpansion, }, SupportedSizeRange: e2evolume.SizeRange{ Min: "1Mi", @@ -174,8 +169,9 @@ func (v *volumeExpandTestSuite) DefineTests(driver TestDriver, pattern testpatte podConfig := e2epod.Config{ NS: f.Namespace.Name, PVCs: []*v1.PersistentVolumeClaim{l.resource.Pvc}, - SeLinuxLabel: e2epv.SELinuxLabel, + SeLinuxLabel: e2evolume.GetLinuxLabel(), NodeSelection: l.config.ClientNodeSelection, + ImageID: e2evolume.GetDefaultTestImageID(), } l.pod, err = e2epod.CreateSecPodWithNodeSelection(f.ClientSet, &podConfig, framework.PodStartTimeout) defer func() { @@ -217,10 +213,11 @@ func (v *volumeExpandTestSuite) DefineTests(driver TestDriver, pattern testpatte podConfig = e2epod.Config{ NS: f.Namespace.Name, PVCs: []*v1.PersistentVolumeClaim{l.resource.Pvc}, - SeLinuxLabel: e2epv.SELinuxLabel, + SeLinuxLabel: e2evolume.GetLinuxLabel(), NodeSelection: l.config.ClientNodeSelection, + ImageID: e2evolume.GetDefaultTestImageID(), } - l.pod2, err = e2epod.CreateSecPodWithNodeSelection(f.ClientSet, &podConfig, resizedPodStartupTimeout) + l.pod2, err = e2epod.CreateSecPodWithNodeSelection(f.ClientSet, &podConfig, framework.PodStartTimeout) defer func() { err = e2epod.DeletePodWithWait(f.ClientSet, l.pod2) framework.ExpectNoError(err, "while cleaning up pod before exiting resizing test") @@ -244,8 +241,9 @@ func (v *volumeExpandTestSuite) DefineTests(driver TestDriver, pattern testpatte podConfig := e2epod.Config{ NS: f.Namespace.Name, PVCs: []*v1.PersistentVolumeClaim{l.resource.Pvc}, - SeLinuxLabel: e2epv.SELinuxLabel, + SeLinuxLabel: e2evolume.GetLinuxLabel(), NodeSelection: l.config.ClientNodeSelection, + ImageID: e2evolume.GetDefaultTestImageID(), } l.pod, err = e2epod.CreateSecPodWithNodeSelection(f.ClientSet, &podConfig, framework.PodStartTimeout) defer func() { diff --git a/test/e2e/storage/testsuites/volume_io.go b/test/e2e/storage/testsuites/volume_io.go index d3df462cca2a0..48ea56a2afbbe 100644 --- a/test/e2e/storage/testsuites/volume_io.go +++ b/test/e2e/storage/testsuites/volume_io.go @@ -141,7 +141,7 @@ func (t *volumeIOTestSuite) DefineTests(driver TestDriver, pattern testpatterns. l.migrationCheck.validateMigrationVolumeOpCounts() } - ginkgo.It("should write files of various sizes, verify size, validate content [Slow]", func() { + ginkgo.It("should write files of various sizes, verify size, validate content [Slow][LinuxOnly]", func() { init() defer cleanup() @@ -197,7 +197,7 @@ func makePodSpec(config e2evolume.TestConfig, initCmd string, volsrc v1.VolumeSo InitContainers: []v1.Container{ { Name: config.Prefix + "-io-init", - Image: framework.BusyBoxImage, + Image: e2evolume.GetDefaultTestImage(), Command: []string{ "/bin/sh", "-c", @@ -214,7 +214,7 @@ func makePodSpec(config e2evolume.TestConfig, initCmd string, volsrc v1.VolumeSo Containers: []v1.Container{ { Name: config.Prefix + "-io-client", - Image: framework.BusyBoxImage, + Image: e2evolume.GetDefaultTestImage(), Command: []string{ "/bin/sh", "-c", @@ -249,17 +249,19 @@ func writeToFile(f *framework.Framework, pod *v1.Pod, fpath, ddInput string, fsi ginkgo.By(fmt.Sprintf("writing %d bytes to test file %s", fsize, fpath)) loopCnt := fsize / testpatterns.MinFileSize writeCmd := fmt.Sprintf("i=0; while [ $i -lt %d ]; do dd if=%s bs=%d >>%s 2>/dev/null; let i+=1; done", loopCnt, ddInput, testpatterns.MinFileSize, fpath) - _, err := utils.PodExec(f, pod, writeCmd) - + stdout, stderr, err := utils.PodExec(f, pod, writeCmd) + if err != nil { + return fmt.Errorf("error writing to volume using %q: %s\nstdout: %s\nstderr: %s", writeCmd, err, stdout, stderr) + } return err } // Verify that the test file is the expected size and contains the expected content. func verifyFile(f *framework.Framework, pod *v1.Pod, fpath string, expectSize int64, ddInput string) error { ginkgo.By("verifying file size") - rtnstr, err := utils.PodExec(f, pod, fmt.Sprintf("stat -c %%s %s", fpath)) + rtnstr, stderr, err := utils.PodExec(f, pod, fmt.Sprintf("stat -c %%s %s", fpath)) if err != nil || rtnstr == "" { - return fmt.Errorf("unable to get file size via `stat %s`: %v", fpath, err) + return fmt.Errorf("unable to get file size via `stat %s`: %v\nstdout: %s\nstderr: %s", fpath, err, rtnstr, stderr) } size, err := strconv.Atoi(strings.TrimSuffix(rtnstr, "\n")) if err != nil { @@ -270,9 +272,9 @@ func verifyFile(f *framework.Framework, pod *v1.Pod, fpath string, expectSize in } ginkgo.By("verifying file hash") - rtnstr, err = utils.PodExec(f, pod, fmt.Sprintf("md5sum %s | cut -d' ' -f1", fpath)) + rtnstr, stderr, err = utils.PodExec(f, pod, fmt.Sprintf("md5sum %s | cut -d' ' -f1", fpath)) if err != nil { - return fmt.Errorf("unable to test file hash via `md5sum %s`: %v", fpath, err) + return fmt.Errorf("unable to test file hash via `md5sum %s`: %v\nstdout: %s\nstderr: %s", fpath, err, rtnstr, stderr) } actualHash := strings.TrimSuffix(rtnstr, "\n") expectedHash, ok := md5hashes[expectSize] @@ -291,10 +293,10 @@ func verifyFile(f *framework.Framework, pod *v1.Pod, fpath string, expectSize in // Delete `fpath` to save some disk space on host. Delete errors are logged but ignored. func deleteFile(f *framework.Framework, pod *v1.Pod, fpath string) { ginkgo.By(fmt.Sprintf("deleting test file %s...", fpath)) - _, err := utils.PodExec(f, pod, fmt.Sprintf("rm -f %s", fpath)) + stdout, stderr, err := utils.PodExec(f, pod, fmt.Sprintf("rm -f %s", fpath)) if err != nil { // keep going, the test dir will be deleted when the volume is unmounted - framework.Logf("unable to delete test file %s: %v\nerror ignored, continuing test", fpath, err) + framework.Logf("unable to delete test file %s: %v\nerror ignored, continuing test\nstdout: %s\nstderr: %s", fpath, err, stdout, stderr) } } diff --git a/test/e2e/storage/testsuites/volume_stress.go b/test/e2e/storage/testsuites/volume_stress.go new file mode 100644 index 0000000000000..c75225b275366 --- /dev/null +++ b/test/e2e/storage/testsuites/volume_stress.go @@ -0,0 +1,217 @@ +/* +Copyright 2020 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. +*/ + +// This suite tests volumes under stress conditions + +package testsuites + +import ( + "context" + "sync" + + "github.com/onsi/ginkgo" + + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + errors "k8s.io/apimachinery/pkg/util/errors" + clientset "k8s.io/client-go/kubernetes" + "k8s.io/kubernetes/test/e2e/framework" + e2epod "k8s.io/kubernetes/test/e2e/framework/pod" + e2epv "k8s.io/kubernetes/test/e2e/framework/pv" + e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" + "k8s.io/kubernetes/test/e2e/storage/testpatterns" +) + +type volumeStressTestSuite struct { + tsInfo TestSuiteInfo +} + +type volumeStressTest struct { + config *PerTestConfig + driverCleanup func() + + migrationCheck *migrationOpCheck + + resources []*VolumeResource + pods []*v1.Pod + // stop and wait for any async routines + wg sync.WaitGroup + ctx context.Context + cancel context.CancelFunc + + testOptions StressTestOptions +} + +var _ TestSuite = &volumeStressTestSuite{} + +// InitVolumeStressTestSuite returns volumeStressTestSuite that implements TestSuite interface +func InitVolumeStressTestSuite() TestSuite { + return &volumeStressTestSuite{ + tsInfo: TestSuiteInfo{ + Name: "volume-stress", + TestPatterns: []testpatterns.TestPattern{ + testpatterns.DefaultFsDynamicPV, + testpatterns.BlockVolModeDynamicPV, + }, + }, + } +} + +func (t *volumeStressTestSuite) GetTestSuiteInfo() TestSuiteInfo { + return t.tsInfo +} + +func (t *volumeStressTestSuite) SkipRedundantSuite(driver TestDriver, pattern testpatterns.TestPattern) { +} + +func (t *volumeStressTestSuite) DefineTests(driver TestDriver, pattern testpatterns.TestPattern) { + var ( + dInfo = driver.GetDriverInfo() + cs clientset.Interface + l *volumeStressTest + ) + + // Check preconditions before setting up namespace via framework below. + ginkgo.BeforeEach(func() { + if dInfo.StressTestOptions == nil { + e2eskipper.Skipf("Driver %s doesn't specify stress test options -- skipping", dInfo.Name) + } + if dInfo.StressTestOptions.NumPods <= 0 { + framework.Failf("NumPods in stress test options must be a positive integer, received: %d", dInfo.StressTestOptions.NumPods) + } + if dInfo.StressTestOptions.NumRestarts <= 0 { + framework.Failf("NumRestarts in stress test options must be a positive integer, received: %d", dInfo.StressTestOptions.NumRestarts) + } + + if _, ok := driver.(DynamicPVTestDriver); !ok { + e2eskipper.Skipf("Driver %s doesn't implement DynamicPVTestDriver -- skipping", dInfo.Name) + } + + if !driver.GetDriverInfo().Capabilities[CapBlock] && pattern.VolMode == v1.PersistentVolumeBlock { + e2eskipper.Skipf("Driver %q does not support block volume mode - skipping", dInfo.Name) + } + }) + + // This intentionally comes after checking the preconditions because it + // registers its own BeforeEach which creates the namespace. Beware that it + // also registers an AfterEach which renders f unusable. Any code using + // f must run inside an It or Context callback. + f := framework.NewDefaultFramework("volume-stress") + + init := func() { + cs = f.ClientSet + l = &volumeStressTest{} + + // Now do the more expensive test initialization. + l.config, l.driverCleanup = driver.PrepareTest(f) + l.migrationCheck = newMigrationOpCheck(f.ClientSet, dInfo.InTreePluginName) + l.resources = []*VolumeResource{} + l.pods = []*v1.Pod{} + l.testOptions = *dInfo.StressTestOptions + l.ctx, l.cancel = context.WithCancel(context.Background()) + } + + createPodsAndVolumes := func() { + for i := 0; i < l.testOptions.NumPods; i++ { + framework.Logf("Creating resources for pod %v/%v", i, l.testOptions.NumPods-1) + r := CreateVolumeResource(driver, l.config, pattern, t.GetTestSuiteInfo().SupportedSizeRange) + l.resources = append(l.resources, r) + podConfig := e2epod.Config{ + NS: f.Namespace.Name, + PVCs: []*v1.PersistentVolumeClaim{r.Pvc}, + SeLinuxLabel: e2epv.SELinuxLabel, + } + pod, err := e2epod.MakeSecPod(&podConfig) + framework.ExpectNoError(err) + + l.pods = append(l.pods, pod) + } + } + + cleanup := func() { + var errs []error + + framework.Logf("Stopping and waiting for all test routines to finish") + l.cancel() + l.wg.Wait() + + for _, pod := range l.pods { + framework.Logf("Deleting pod %v", pod.Name) + err := e2epod.DeletePodWithWait(cs, pod) + errs = append(errs, err) + } + + for _, resource := range l.resources { + errs = append(errs, resource.CleanupResource()) + } + + errs = append(errs, tryFunc(l.driverCleanup)) + framework.ExpectNoError(errors.NewAggregate(errs), "while cleaning up resource") + l.migrationCheck.validateMigrationVolumeOpCounts() + } + + ginkgo.BeforeEach(func() { + init() + createPodsAndVolumes() + }) + + // See #96177, this is necessary for cleaning up resources when tests are interrupted. + f.AddAfterEach("cleanup", func(f *framework.Framework, failed bool) { + cleanup() + }) + + ginkgo.It("multiple pods should access different volumes repeatedly [Slow] [Serial]", func() { + // Restart pod repeatedly + for i := 0; i < l.testOptions.NumPods; i++ { + podIndex := i + l.wg.Add(1) + go func() { + defer ginkgo.GinkgoRecover() + defer l.wg.Done() + for j := 0; j < l.testOptions.NumRestarts; j++ { + select { + case <-l.ctx.Done(): + return + default: + pod := l.pods[podIndex] + framework.Logf("Pod-%v [%v], Iteration %v/%v", podIndex, pod.Name, j, l.testOptions.NumRestarts-1) + _, err := cs.CoreV1().Pods(pod.Namespace).Create(context.TODO(), pod, metav1.CreateOptions{}) + if err != nil { + l.cancel() + framework.Failf("Failed to create pod-%v [%+v]. Error: %v", podIndex, pod, err) + } + + err = e2epod.WaitForPodRunningInNamespace(cs, pod) + if err != nil { + l.cancel() + framework.Failf("Failed to wait for pod-%v [%+v] turn into running status. Error: %v", podIndex, pod, err) + } + + // TODO: write data per pod and validate it everytime + + err = e2epod.DeletePodWithWait(f.ClientSet, pod) + if err != nil { + l.cancel() + framework.Failf("Failed to delete pod-%v [%+v]. Error: %v", podIndex, pod, err) + } + } + } + }() + } + + l.wg.Wait() + }) +} diff --git a/test/e2e/storage/testsuites/volumemode.go b/test/e2e/storage/testsuites/volumemode.go index 3e82ad7b6134a..1343335968b61 100644 --- a/test/e2e/storage/testsuites/volumemode.go +++ b/test/e2e/storage/testsuites/volumemode.go @@ -215,8 +215,9 @@ func (t *volumeModeTestSuite) DefineTests(driver TestDriver, pattern testpattern podConfig := e2epod.Config{ NS: l.ns.Name, PVCs: []*v1.PersistentVolumeClaim{l.Pvc}, - SeLinuxLabel: e2epv.SELinuxLabel, + SeLinuxLabel: e2evolume.GetLinuxLabel(), NodeSelection: l.config.ClientNodeSelection, + ImageID: e2evolume.GetDefaultTestImageID(), } pod, err := e2epod.MakeSecPod(&podConfig) framework.ExpectNoError(err, "Failed to create pod") @@ -250,7 +251,7 @@ func (t *volumeModeTestSuite) DefineTests(driver TestDriver, pattern testpattern case testpatterns.DynamicPV: if pattern.VolMode == v1.PersistentVolumeBlock && !isBlockSupported { - ginkgo.It("should fail in binding dynamic provisioned PV to PVC [Slow]", func() { + ginkgo.It("should fail in binding dynamic provisioned PV to PVC [Slow][LinuxOnly]", func() { manualInit() defer cleanup() @@ -300,7 +301,8 @@ func (t *volumeModeTestSuite) DefineTests(driver TestDriver, pattern testpattern podConfig := e2epod.Config{ NS: l.ns.Name, PVCs: []*v1.PersistentVolumeClaim{l.Pvc}, - SeLinuxLabel: e2epv.SELinuxLabel, + SeLinuxLabel: e2evolume.GetLinuxLabel(), + ImageID: e2evolume.GetDefaultTestImageID(), } pod, err := e2epod.MakeSecPod(&podConfig) framework.ExpectNoError(err) @@ -342,7 +344,7 @@ func (t *volumeModeTestSuite) DefineTests(driver TestDriver, pattern testpattern framework.ExpectEqual(p.Status.Phase, v1.PodPending, "Pod phase isn't pending") }) - ginkgo.It("should not mount / map unused volumes in a pod", func() { + ginkgo.It("should not mount / map unused volumes in a pod [LinuxOnly]", func() { if pattern.VolMode == v1.PersistentVolumeBlock { skipTestIfBlockNotSupported(driver) } @@ -356,7 +358,8 @@ func (t *volumeModeTestSuite) DefineTests(driver TestDriver, pattern testpattern podConfig := e2epod.Config{ NS: l.ns.Name, PVCs: []*v1.PersistentVolumeClaim{l.Pvc}, - SeLinuxLabel: e2epv.SELinuxLabel, + SeLinuxLabel: e2evolume.GetLinuxLabel(), + ImageID: e2evolume.GetDefaultTestImageID(), } pod, err := e2epod.MakeSecPod(&podConfig) framework.ExpectNoError(err) diff --git a/test/e2e/storage/testsuites/volumes.go b/test/e2e/storage/testsuites/volumes.go index cb8cccbd0d3f8..9599895583c64 100644 --- a/test/e2e/storage/testsuites/volumes.go +++ b/test/e2e/storage/testsuites/volumes.go @@ -227,7 +227,7 @@ func testScriptInPod( Containers: []v1.Container{ { Name: fmt.Sprintf("exec-container-%s", suffix), - Image: e2evolume.GetTestImage(imageutils.GetE2EImage(imageutils.Nginx)), + Image: e2evolume.GetTestImage(imageutils.Nginx), Command: command, VolumeMounts: []v1.VolumeMount{ { diff --git a/test/e2e/storage/utils/utils.go b/test/e2e/storage/utils/utils.go index 7ef722284e50b..16dd8c6aca06f 100644 --- a/test/e2e/storage/utils/utils.go +++ b/test/e2e/storage/utils/utils.go @@ -67,41 +67,45 @@ const ( ) // PodExec runs f.ExecCommandInContainerWithFullOutput to execute a shell cmd in target pod -func PodExec(f *framework.Framework, pod *v1.Pod, shExec string) (string, error) { - stdout, _, err := f.ExecCommandInContainerWithFullOutput(pod.Name, pod.Spec.Containers[0].Name, "/bin/sh", "-c", shExec) - return stdout, err +func PodExec(f *framework.Framework, pod *v1.Pod, shExec string) (string, string, error) { + if framework.NodeOSDistroIs("windows") { + return f.ExecCommandInContainerWithFullOutput(pod.Name, pod.Spec.Containers[0].Name, "powershell", "/c", shExec) + } + return f.ExecCommandInContainerWithFullOutput(pod.Name, pod.Spec.Containers[0].Name, "/bin/sh", "-c", shExec) + } // VerifyExecInPodSucceed verifies shell cmd in target pod succeed func VerifyExecInPodSucceed(f *framework.Framework, pod *v1.Pod, shExec string) { - _, err := PodExec(f, pod, shExec) + stdout, stderr, err := PodExec(f, pod, shExec) if err != nil { + if exiterr, ok := err.(uexec.CodeExitError); ok { exitCode := exiterr.ExitStatus() framework.ExpectNoError(err, - "%q should succeed, but failed with exit code %d and error message %q", - shExec, exitCode, exiterr) + "%q should succeed, but failed with exit code %d and error message %q\nstdout: %s\nstderr: %s", + shExec, exitCode, exiterr, stdout, stderr) } else { framework.ExpectNoError(err, - "%q should succeed, but failed with error message %q", - shExec, err) + "%q should succeed, but failed with error message %q\nstdout: %s\nstderr: %s", + shExec, err, stdout, stderr) } } } // VerifyExecInPodFail verifies shell cmd in target pod fail with certain exit code func VerifyExecInPodFail(f *framework.Framework, pod *v1.Pod, shExec string, exitCode int) { - _, err := PodExec(f, pod, shExec) + stdout, stderr, err := PodExec(f, pod, shExec) if err != nil { if exiterr, ok := err.(clientexec.ExitError); ok { actualExitCode := exiterr.ExitStatus() framework.ExpectEqual(actualExitCode, exitCode, - "%q should fail with exit code %d, but failed with exit code %d and error message %q", - shExec, exitCode, actualExitCode, exiterr) + "%q should fail with exit code %d, but failed with exit code %d and error message %q\nstdout: %s\nstderr: %s", + shExec, exitCode, actualExitCode, exiterr, stdout, stderr) } else { framework.ExpectNoError(err, - "%q should fail with exit code %d, but failed with error message %q", - shExec, exitCode, err) + "%q should fail with exit code %d, but failed with error message %q\nstdout: %s\nstderr: %s", + shExec, exitCode, err, stdout, stderr) } } framework.ExpectError(err, "%q should fail with exit code %d, but exit without error", shExec, exitCode) @@ -635,13 +639,19 @@ func CheckReadWriteToPath(f *framework.Framework, pod *v1.Pod, volMode v1.Persis // text -> file1 (write to file) VerifyExecInPodSucceed(f, pod, fmt.Sprintf("echo 'Hello world.' > %s/file1.txt", path)) // grep file1 (read from file and check contents) - VerifyExecInPodSucceed(f, pod, fmt.Sprintf("grep 'Hello world.' %s/file1.txt", path)) - + VerifyExecInPodSucceed(f, pod, readFile("Hello word.", path)) // Check that writing to directory as block volume fails VerifyExecInPodFail(f, pod, fmt.Sprintf("dd if=/dev/urandom of=%s bs=64 count=1", path), 1) } } +func readFile(content, path string) string { + if framework.NodeOSDistroIs("windows") { + return fmt.Sprintf("Select-String '%s' %s/file1.txt", content, path) + } + return fmt.Sprintf("grep 'Hello world.' %s/file1.txt", path) +} + // genBinDataFromSeed generate binData with random seed func genBinDataFromSeed(len int, seed int64) []byte { binData := make([]byte, len) @@ -748,7 +758,7 @@ func CreateDriverNamespace(f *framework.Framework) *v1.Namespace { return namespace } -// WaitForGVRDeletion waits until an object has been deleted +// WaitForGVRDeletion waits until a non-namespaced object has been deleted func WaitForGVRDeletion(c dynamic.Interface, gvr schema.GroupVersionResource, objectName string, poll, timeout time.Duration) error { framework.Logf("Waiting up to %v for %s %s to be deleted", timeout, gvr.Resource, objectName) @@ -758,7 +768,7 @@ func WaitForGVRDeletion(c dynamic.Interface, gvr schema.GroupVersionResource, ob framework.Logf("%s %v is not found and has been deleted", gvr.Resource, objectName) return true } else if err != nil { - framework.Logf("Get $s %v returned an error: %v", objectName, err.Error()) + framework.Logf("Get %s returned an error: %v", objectName, err.Error()) } else { framework.Logf("%s %v has been found and is not deleted", gvr.Resource, objectName) } @@ -771,6 +781,29 @@ func WaitForGVRDeletion(c dynamic.Interface, gvr schema.GroupVersionResource, ob return fmt.Errorf("%s %s is not deleted within %v", gvr.Resource, objectName, timeout) } +// WaitForNamespacedGVRDeletion waits until a namespaced object has been deleted +func WaitForNamespacedGVRDeletion(c dynamic.Interface, gvr schema.GroupVersionResource, ns, objectName string, poll, timeout time.Duration) error { + framework.Logf("Waiting up to %v for %s %s to be deleted", timeout, gvr.Resource, objectName) + + if successful := WaitUntil(poll, timeout, func() bool { + _, err := c.Resource(gvr).Namespace(ns).Get(context.TODO(), objectName, metav1.GetOptions{}) + if err != nil && apierrors.IsNotFound(err) { + framework.Logf("%s %s is not found in namespace %s and has been deleted", gvr.Resource, objectName, ns) + return true + } else if err != nil { + framework.Logf("Get %s in namespace %s returned an error: %v", objectName, ns, err.Error()) + } else { + framework.Logf("%s %s has been found in namespace %s and is not deleted", gvr.Resource, objectName, ns) + } + + return false + }); successful { + return nil + } + + return fmt.Errorf("%s %s in namespace %s is not deleted within %v", gvr.Resource, objectName, ns, timeout) +} + // WaitUntil runs checkDone until a timeout is reached func WaitUntil(poll, timeout time.Duration, checkDone func() bool) bool { for start := time.Now(); time.Since(start) < timeout; time.Sleep(poll) { diff --git a/test/e2e/upgrades/services.go b/test/e2e/upgrades/services.go index 1419450aad974..95c3f77f30d56 100644 --- a/test/e2e/upgrades/services.go +++ b/test/e2e/upgrades/services.go @@ -38,7 +38,7 @@ type ServiceUpgradeTest struct { // Name returns the tracking name of the test. func (ServiceUpgradeTest) Name() string { return "service-upgrade" } -func shouldTestPDBs() bool { return true } +func shouldTestPDBs() bool { return framework.ProviderIs("gce", "gke") } // Setup creates a service with a load balancer and makes sure it's reachable. func (t *ServiceUpgradeTest) Setup(f *framework.Framework) { diff --git a/test/e2e/viperconfig.go b/test/e2e/viperconfig.go index 8dc12999fb1f9..bb41c2aa026be 100644 --- a/test/e2e/viperconfig.go +++ b/test/e2e/viperconfig.go @@ -26,11 +26,6 @@ import ( "github.com/spf13/viper" ) -// ViperizeFlags is exported for use by the k8s-e2e.test binary used for testing openshift. -func ViperizeFlagsForKubeE2E(requiredConfig, optionalConfig string, flags *flag.FlagSet) error { - return viperizeFlags(requiredConfig, optionalConfig, flags) -} - // viperizeFlags checks whether a configuration file was specified, // reads it, and updates the configuration variables in the specified // flag set accordingly. Must be called after framework.HandleFlags() diff --git a/test/e2e/windows/dns.go b/test/e2e/windows/dns.go index 473b74b11f45a..bea90ec52774e 100644 --- a/test/e2e/windows/dns.go +++ b/test/e2e/windows/dns.go @@ -26,7 +26,6 @@ import ( "k8s.io/kubernetes/test/e2e/framework" e2epod "k8s.io/kubernetes/test/e2e/framework/pod" e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" - imageutils "k8s.io/kubernetes/test/utils/image" "github.com/onsi/ginkgo" ) @@ -45,7 +44,7 @@ var _ = SIGDescribe("DNS", func() { testSearchPath := "resolv.conf.local" ginkgo.By("Creating a pod with dnsPolicy=None and customized dnsConfig...") - testUtilsPod := generateDNSUtilsPod() + testUtilsPod := e2epod.NewAgnhostPod(f.Namespace.Name, "e2e-dns-utils", nil, nil, nil) testUtilsPod.Spec.DNSPolicy = v1.DNSNone testUtilsPod.Spec.DNSConfig = &v1.PodDNSConfig{ Nameservers: []string{testInjectedIP}, @@ -68,7 +67,7 @@ var _ = SIGDescribe("DNS", func() { Command: cmd, Namespace: f.Namespace.Name, PodName: testUtilsPod.Name, - ContainerName: "util", + ContainerName: "agnhost-container", CaptureStdout: true, CaptureStderr: true, }) @@ -90,23 +89,3 @@ var _ = SIGDescribe("DNS", func() { // TODO: Add more test cases for other DNSPolicies. }) }) - -func generateDNSUtilsPod() *v1.Pod { - return &v1.Pod{ - TypeMeta: metav1.TypeMeta{ - Kind: "Pod", - }, - ObjectMeta: metav1.ObjectMeta{ - GenerateName: "e2e-dns-utils-", - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: "util", - Image: imageutils.GetE2EImage(imageutils.Agnhost), - Command: []string{"sleep", "10000"}, - }, - }, - }, - } -} diff --git a/test/e2e/windows/security_context.go b/test/e2e/windows/security_context.go index 5586154ece2c0..ff100d7ba20d0 100644 --- a/test/e2e/windows/security_context.go +++ b/test/e2e/windows/security_context.go @@ -31,7 +31,7 @@ import ( const runAsUserNameContainerName = "run-as-username-container" -var _ = SIGDescribe("[Feature:Windows] SecurityContext", func() { +var _ = SIGDescribe("[Feature:Windows] SecurityContext RunAsUserName", func() { f := framework.NewDefaultFramework("windows-run-as-username") ginkgo.It("should be able create pods and run containers with a given username", func() { @@ -71,24 +71,6 @@ var _ = SIGDescribe("[Feature:Windows] SecurityContext", func() { f.TestContainerOutput("check overridden username", pod, 0, []string{"ContainerUser"}) f.TestContainerOutput("check pod SecurityContext username", pod, 1, []string{"ContainerAdministrator"}) }) - ginkgo.It("should ignore Linux Specific SecurityContext if set", func() { - ginkgo.By("Creating a pod with SELinux options") - - windowsPodWithSELinux := createTestPod(f, "mcr.microsoft.com/powershell:lts-nanoserver-1809", windowsOS) - windowsPodWithSELinux.Spec.Containers[0].Args = []string{"test-webserver-with-selinux"} - windowsPodWithSELinux.Spec.SecurityContext = &v1.PodSecurityContext{} - containerUserName := "ContainerAdministrator" - windowsPodWithSELinux.Spec.SecurityContext.SELinuxOptions = &v1.SELinuxOptions{Level: "s0:c24,c9"} - windowsPodWithSELinux.Spec.Containers[0].SecurityContext = &v1.SecurityContext{ - WindowsOptions: &v1.WindowsSecurityContextOptions{RunAsUserName: &containerUserName}} - windowsPodWithSELinux.Spec.Tolerations = []v1.Toleration{{Key: "os", Value: "Windows"}} - windowsPodWithSELinux, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(context.TODO(), - windowsPodWithSELinux, metav1.CreateOptions{}) - framework.ExpectNoError(err) - framework.Logf("Created pod %v", windowsPodWithSELinux) - framework.ExpectNoError(e2epod.WaitForPodNameRunningInNamespace(f.ClientSet, windowsPodWithSELinux.Name, - f.Namespace.Name), "failed to wait for pod %s to be running", windowsPodWithSELinux.Name) - }) }) func runAsUserNamePod(username *string) *v1.Pod { @@ -98,7 +80,6 @@ func runAsUserNamePod(username *string) *v1.Pod { Name: podName, }, Spec: v1.PodSpec{ - NodeSelector: map[string]string{"kubernetes.io/os": "windows"}, Containers: []v1.Container{ { Name: runAsUserNameContainerName, diff --git a/test/images/Makefile b/test/images/Makefile index 7b9981cb19e08..0f88c495de6a7 100644 --- a/test/images/Makefile +++ b/test/images/Makefile @@ -16,7 +16,7 @@ REGISTRY ?= gcr.io/kubernetes-e2e-test-images GOARM ?= 7 DOCKER_CERT_BASE_PATH ?= QEMUVERSION=v2.9.1 -GOLANG_VERSION=1.15.2 +GOLANG_VERSION=1.15.13 export ifndef WHAT diff --git a/test/images/sample-apiserver/Dockerfile b/test/images/sample-apiserver/Dockerfile index dbec210d46de9..648477362c0f4 100644 --- a/test/images/sample-apiserver/Dockerfile +++ b/test/images/sample-apiserver/Dockerfile @@ -13,7 +13,7 @@ # limitations under the License. ARG BASEIMAGE -FROM k8s.gcr.io/build-image/kube-cross:v1.15.2-1 as build_k8s_1_17_sample_apiserver +FROM k8s.gcr.io/build-image/kube-cross:v1.15.13-legacy-1 as build_k8s_1_17_sample_apiserver ENV GOPATH /go RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin diff --git a/test/integration/apiserver/apply/status_test.go b/test/integration/apiserver/apply/status_test.go index b23610db3925a..f31bd095effe3 100644 --- a/test/integration/apiserver/apply/status_test.go +++ b/test/integration/apiserver/apply/status_test.go @@ -59,15 +59,7 @@ var statusData = map[schema.GroupVersionResource]string{ gvr("certificates.k8s.io", "v1", "certificatesigningrequests"): `{"status": {"conditions": [{"type": "MyStatus", "status": "True"}]}}`, } -const statusDefault = `{"status": {"conditions": [{"type": "MyStatus", "status":"true"}]}}` - -// DO NOT ADD TO THIS LIST. -// This list is used to ignore known bugs. We shouldn't introduce new bugs. -var ignoreList = map[schema.GroupVersionResource]struct{}{ - // TODO(#89264): apiservices doesn't work because the openapi is not routed properly. - gvr("apiregistration.k8s.io", "v1beta1", "apiservices"): {}, - gvr("apiregistration.k8s.io", "v1", "apiservices"): {}, -} +const statusDefault = `{"status": {"conditions": [{"type": "MyStatus", "status":"True"}]}}` func gvr(g, v, r string) schema.GroupVersionResource { return schema.GroupVersionResource{Group: g, Version: v, Resource: r} @@ -139,9 +131,6 @@ func TestApplyStatus(t *testing.T) { t.Fatal(err) } t.Run(mapping.Resource.String(), func(t *testing.T) { - if _, ok := ignoreList[mapping.Resource]; ok { - t.Skip() - } status, ok := statusData[mapping.Resource] if !ok { status = statusDefault @@ -160,8 +149,17 @@ func TestApplyStatus(t *testing.T) { namespace = "" } name := newObj.GetName() + + // etcd test stub data doesn't contain apiVersion/kind (!), but apply requires it + newObj.SetGroupVersionKind(mapping.GroupVersionKind) + createData, err := json.Marshal(newObj.Object) + if err != nil { + t.Fatal(err) + } + rsc := dynamicClient.Resource(mapping.Resource).Namespace(namespace) - _, err := rsc.Create(context.TODO(), &newObj, metav1.CreateOptions{FieldManager: "create_test"}) + // apply to create + _, err = rsc.Patch(context.TODO(), name, types.ApplyPatchType, []byte(createData), metav1.PatchOptions{FieldManager: "create_test"}) if err != nil { t.Fatal(err) } diff --git a/test/integration/endpointslice/BUILD b/test/integration/endpointslice/BUILD index f926a511b6e84..faf311340e032 100644 --- a/test/integration/endpointslice/BUILD +++ b/test/integration/endpointslice/BUILD @@ -13,6 +13,7 @@ go_test( "//pkg/controller/endpointslicemirroring:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/api/discovery/v1beta1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//staging/src/k8s.io/client-go/informers:go_default_library", diff --git a/test/integration/endpointslice/endpointslicemirroring_test.go b/test/integration/endpointslice/endpointslicemirroring_test.go index 2f8816bd42148..4e51fdf60b392 100644 --- a/test/integration/endpointslice/endpointslicemirroring_test.go +++ b/test/integration/endpointslice/endpointslicemirroring_test.go @@ -19,11 +19,14 @@ package endpointslice import ( "context" "fmt" + "sort" "testing" "time" corev1 "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" discovery "k8s.io/api/discovery/v1beta1" + apiequality "k8s.io/apimachinery/pkg/api/equality" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/informers" @@ -228,3 +231,192 @@ func TestEndpointSliceMirroring(t *testing.T) { } } + +func TestEndpointSliceMirroringUpdates(t *testing.T) { + masterConfig := framework.NewIntegrationTestMasterConfig() + _, server, closeFn := framework.RunAMaster(masterConfig) + defer closeFn() + + config := restclient.Config{Host: server.URL} + client, err := clientset.NewForConfig(&config) + if err != nil { + t.Fatalf("Error creating clientset: %v", err) + } + + resyncPeriod := 12 * time.Hour + informers := informers.NewSharedInformerFactory(client, resyncPeriod) + + epsmController := endpointslicemirroring.NewController( + informers.Core().V1().Endpoints(), + informers.Discovery().V1beta1().EndpointSlices(), + informers.Core().V1().Services(), + int32(100), + client, + 1*time.Second) + + // Start informer and controllers + stopCh := make(chan struct{}) + defer close(stopCh) + informers.Start(stopCh) + go epsmController.Run(1, stopCh) + + testCases := []struct { + testName string + tweakEndpoint func(ep *corev1.Endpoints) + }{ + { + testName: "Update labels", + tweakEndpoint: func(ep *corev1.Endpoints) { + ep.Labels["foo"] = "bar" + }, + }, + { + testName: "Update annotations", + tweakEndpoint: func(ep *corev1.Endpoints) { + ep.Annotations["foo2"] = "bar2" + }, + }, + { + testName: "Update annotations but triggertime", + tweakEndpoint: func(ep *corev1.Endpoints) { + ep.Annotations["foo2"] = "bar2" + ep.Annotations[corev1.EndpointsLastChangeTriggerTime] = "date" + }, + }, + { + testName: "Update addresses", + tweakEndpoint: func(ep *corev1.Endpoints) { + ep.Subsets[0].Addresses = []v1.EndpointAddress{{IP: "1.2.3.4"}, {IP: "1.2.3.6"}} + }, + }, + } + + for i, tc := range testCases { + t.Run(tc.testName, func(t *testing.T) { + ns := framework.CreateTestingNamespace(fmt.Sprintf("test-endpointslice-mirroring-%d", i), server, t) + defer framework.DeleteTestingNamespace(ns, server, t) + + service := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: "test-123", + Namespace: ns.Name, + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{{ + Port: int32(80), + }}, + }, + } + + customEndpoints := &corev1.Endpoints{ + ObjectMeta: metav1.ObjectMeta{ + Name: "test-123", + Namespace: ns.Name, + Labels: map[string]string{}, + Annotations: map[string]string{}, + }, + Subsets: []corev1.EndpointSubset{{ + Ports: []corev1.EndpointPort{{ + Port: 80, + }}, + Addresses: []corev1.EndpointAddress{{ + IP: "10.0.0.1", + }}, + }}, + } + + _, err = client.CoreV1().Services(ns.Name).Create(context.TODO(), service, metav1.CreateOptions{}) + if err != nil { + t.Fatalf("Error creating service: %v", err) + } + + _, err = client.CoreV1().Endpoints(ns.Name).Create(context.TODO(), customEndpoints, metav1.CreateOptions{}) + if err != nil { + t.Fatalf("Error creating endpoints: %v", err) + } + + // update endpoint + tc.tweakEndpoint(customEndpoints) + _, err = client.CoreV1().Endpoints(ns.Name).Update(context.TODO(), customEndpoints, metav1.UpdateOptions{}) + if err != nil { + t.Fatalf("Error updating endpoints: %v", err) + } + + // verify the endpoint updates were mirrored + err = wait.PollImmediate(1*time.Second, wait.ForeverTestTimeout, func() (bool, error) { + lSelector := discovery.LabelServiceName + "=" + service.Name + esList, err := client.DiscoveryV1beta1().EndpointSlices(ns.Name).List(context.TODO(), metav1.ListOptions{LabelSelector: lSelector}) + if err != nil { + t.Logf("Error listing EndpointSlices: %v", err) + return false, err + } + + if len(esList.Items) == 0 { + t.Logf("Waiting for EndpointSlice to be created") + return false, nil + } + + for _, endpointSlice := range esList.Items { + if endpointSlice.Labels[discovery.LabelManagedBy] != "endpointslicemirroring-controller.k8s.io" { + return false, fmt.Errorf("Expected EndpointSlice to be managed by endpointslicemirroring-controller.k8s.io, got %s", endpointSlice.Labels[discovery.LabelManagedBy]) + } + + // compare addresses + epAddresses := []string{} + for _, address := range customEndpoints.Subsets[0].Addresses { + epAddresses = append(epAddresses, address.IP) + } + + sliceAddresses := []string{} + for _, sliceEndpoint := range endpointSlice.Endpoints { + sliceAddresses = append(sliceAddresses, sliceEndpoint.Addresses...) + } + + sort.Strings(epAddresses) + sort.Strings(sliceAddresses) + + if !apiequality.Semantic.DeepEqual(epAddresses, sliceAddresses) { + t.Logf("Expected EndpointSlice to have the same IP addresses, expected %v got %v", epAddresses, sliceAddresses) + return false, nil + } + + // check labels were mirrored + if !isSubset(customEndpoints.Labels, endpointSlice.Labels) { + t.Logf("Expected EndpointSlice to mirror labels, expected %v to be in received %v", customEndpoints.Labels, endpointSlice.Labels) + return false, nil + } + + // check annotations but endpoints.kubernetes.io/last-change-trigger-time were mirrored + annotations := map[string]string{} + for k, v := range customEndpoints.Annotations { + if k == corev1.EndpointsLastChangeTriggerTime { + continue + } + annotations[k] = v + } + if !apiequality.Semantic.DeepEqual(annotations, endpointSlice.Annotations) { + t.Logf("Expected EndpointSlice to mirror annotations, expected %v received %v", customEndpoints.Annotations, endpointSlice.Annotations) + return false, nil + } + } + return true, nil + }) + if err != nil { + t.Fatalf("Timed out waiting for conditions: %v", err) + } + }) + } +} + +// isSubset check if all the elements in a exist in b +func isSubset(a, b map[string]string) bool { + if len(a) > len(b) { + return false + } + for k, v1 := range a { + if v2, ok := b[k]; !ok || v1 != v2 { + return false + } + } + return true +} diff --git a/test/integration/etcd/data.go b/test/integration/etcd/data.go index c096ef7de62a1..d798e062bb78d 100644 --- a/test/integration/etcd/data.go +++ b/test/integration/etcd/data.go @@ -44,7 +44,7 @@ func GetEtcdStorageDataForNamespace(namespace string) map[schema.GroupVersionRes ExpectedEtcdPath: "/registry/configmaps/" + namespace + "/cm1", }, gvr("", "v1", "services"): { - Stub: `{"metadata": {"name": "service1"}, "spec": {"externalName": "service1name", "ports": [{"port": 10000, "targetPort": 11000}], "selector": {"test": "data"}}}`, + Stub: `{"metadata": {"name": "service1"}, "spec": {"externalName": "service1name", "ports": [{"port": 10000, "targetPort": 11000, "protocol":"TCP"}], "selector": {"test": "data"}}}`, ExpectedEtcdPath: "/registry/services/specs/" + namespace + "/service1", }, gvr("", "v1", "podtemplates"): { diff --git a/test/integration/framework/test_server.go b/test/integration/framework/test_server.go index ce6b24863e1c6..5dea71572fc81 100644 --- a/test/integration/framework/test_server.go +++ b/test/integration/framework/test_server.go @@ -114,7 +114,7 @@ func StartTestServer(t *testing.T, stopCh <-chan struct{}, setup TestServerSetup if err != nil { t.Fatal(err) } - kubeAPIServerConfig, _, _, _, err := app.CreateKubeAPIServerConfig(completedOptions, tunneler, proxyTransport, nil) + kubeAPIServerConfig, _, _, _, err := app.CreateKubeAPIServerConfig(completedOptions, tunneler, proxyTransport) if err != nil { t.Fatal(err) } diff --git a/test/integration/scheduler/scheduler_test.go b/test/integration/scheduler/scheduler_test.go index 4b15ffcc9ff12..0cc7e7f46bb03 100644 --- a/test/integration/scheduler/scheduler_test.go +++ b/test/integration/scheduler/scheduler_test.go @@ -91,6 +91,7 @@ func TestSchedulerCreationFromConfigMap(t *testing.T) { {Name: "NodeResourcesFit"}, {Name: "TaintToleration"}, }, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, "ScorePlugin": { {Name: "ImageLocality", Weight: 1}, }, @@ -128,6 +129,7 @@ func TestSchedulerCreationFromConfigMap(t *testing.T) { {Name: "PodTopologySpread"}, {Name: "InterPodAffinity"}, }, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, "PreScorePlugin": { {Name: "PodTopologySpread"}, {Name: "InterPodAffinity"}, @@ -163,7 +165,8 @@ func TestSchedulerCreationFromConfigMap(t *testing.T) { {Name: "NodeUnschedulable"}, {Name: "TaintToleration"}, }, - "BindPlugin": {{Name: "DefaultBinder"}}, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, + "BindPlugin": {{Name: "DefaultBinder"}}, }, }, { @@ -185,6 +188,7 @@ priorities: {Name: "NodeResourcesFit"}, {Name: "TaintToleration"}, }, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, "ScorePlugin": { {Name: "ImageLocality", Weight: 1}, }, @@ -221,6 +225,7 @@ kind: Policy {Name: "PodTopologySpread"}, {Name: "InterPodAffinity"}, }, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, "PreScorePlugin": { {Name: "PodTopologySpread"}, {Name: "InterPodAffinity"}, @@ -255,7 +260,8 @@ priorities: [] {Name: "NodeUnschedulable"}, {Name: "TaintToleration"}, }, - "BindPlugin": {{Name: "DefaultBinder"}}, + "PostFilterPlugin": {{Name: "DefaultPreemption"}}, + "BindPlugin": {{Name: "DefaultBinder"}}, }, }, } { diff --git a/test/kubemark/resources/hollow-node_template.yaml b/test/kubemark/resources/hollow-node_template.yaml index 5c2b87c60abae..8f2353a8415c4 100644 --- a/test/kubemark/resources/hollow-node_template.yaml +++ b/test/kubemark/resources/hollow-node_template.yaml @@ -106,7 +106,7 @@ spec: cpu: {{hollow_proxy_millicpu}}m memory: {{hollow_proxy_mem_Ki}}Ki - name: hollow-node-problem-detector - image: k8s.gcr.io/node-problem-detector:v0.8.0 + image: k8s.gcr.io/node-problem-detector/node-problem-detector:v0.8.5 env: - name: NODE_NAME valueFrom: diff --git a/test/typecheck/main.go b/test/typecheck/main.go index ecdc738204cdc..ffe5085b0d5af 100644 --- a/test/typecheck/main.go +++ b/test/typecheck/main.go @@ -73,9 +73,6 @@ var ( // Tools we use for maintaining the code base but not necessarily // ship as part of the release "hack/tools", - // Tooling specific to openshift that is not shipped as part - // of a release. - "openshift-hack", } ) diff --git a/test/utils/image/manifest.go b/test/utils/image/manifest.go index 9a1a0262c10ab..62d223ae5de75 100644 --- a/test/utils/image/manifest.go +++ b/test/utils/image/manifest.go @@ -212,10 +212,10 @@ func initImageConfigs() (map[int]Config, map[int]Config) { configs[APIServer] = Config{e2eRegistry, "sample-apiserver", "1.17"} configs[AppArmorLoader] = Config{e2eRegistry, "apparmor-loader", "1.0"} configs[BusyBox] = Config{dockerLibraryRegistry, "busybox", "1.29"} - configs[CheckMetadataConcealment] = Config{e2eRegistry, "metadata-concealment", "1.2"} + configs[CheckMetadataConcealment] = Config{promoterE2eRegistry, "metadata-concealment", "1.6"} configs[CudaVectorAdd] = Config{e2eRegistry, "cuda-vector-add", "1.0"} configs[CudaVectorAdd2] = Config{e2eRegistry, "cuda-vector-add", "2.0"} - configs[DebianIptables] = Config{buildImageRegistry, "debian-iptables", "v12.1.2"} + configs[DebianIptables] = Config{buildImageRegistry, "debian-iptables", "buster-v1.6.1"} configs[EchoServer] = Config{e2eRegistry, "echoserver", "2.2"} configs[Etcd] = Config{gcRegistry, "etcd", "3.4.13-0"} configs[GlusterDynamicProvisioner] = Config{dockerGluster, "glusterdynamic-provisioner", "v1.0"} diff --git a/vendor/BUILD b/vendor/BUILD new file mode 100644 index 0000000000000..430dad3586660 --- /dev/null +++ b/vendor/BUILD @@ -0,0 +1,534 @@ +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/bitbucket.org/bertimus9/systemstat:all-srcs", + "//vendor/cloud.google.com/go/compute/metadata:all-srcs", + "//vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute:all-srcs", + "//vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry:all-srcs", + "//vendor/github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2020-04-01/containerservice:all-srcs", + "//vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network:all-srcs", + "//vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2017-05-10/resources:all-srcs", + "//vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage:all-srcs", + "//vendor/github.com/Azure/azure-sdk-for-go/storage:all-srcs", + "//vendor/github.com/Azure/azure-sdk-for-go/version:all-srcs", + "//vendor/github.com/Azure/go-ansiterm:all-srcs", + "//vendor/github.com/Azure/go-autorest/autorest:all-srcs", + "//vendor/github.com/Azure/go-autorest/logger:all-srcs", + "//vendor/github.com/Azure/go-autorest/tracing:all-srcs", + "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud:all-srcs", + "//vendor/github.com/JeffAshton/win_pdh:all-srcs", + "//vendor/github.com/MakeNowJust/heredoc:all-srcs", + "//vendor/github.com/Microsoft/go-winio:all-srcs", + "//vendor/github.com/Microsoft/hcsshim:all-srcs", + "//vendor/github.com/NYTimes/gziphandler:all-srcs", + "//vendor/github.com/PuerkitoBio/purell:all-srcs", + "//vendor/github.com/PuerkitoBio/urlesc:all-srcs", + "//vendor/github.com/armon/circbuf:all-srcs", + "//vendor/github.com/asaskevich/govalidator:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/internal/ini:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/internal/sdkio:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/internal/sdkmath:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/internal/sdkrand:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/internal/sdkuri:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/internal/shareddefaults:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/internal/strings:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/private/protocol:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/service/autoscaling:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/service/ec2:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/service/ecr:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/service/elb:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/service/elbv2:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/service/kms:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/service/sts:all-srcs", + "//vendor/github.com/beorn7/perks/quantile:all-srcs", + "//vendor/github.com/blang/semver:all-srcs", + "//vendor/github.com/caddyserver/caddy/caddyfile:all-srcs", + "//vendor/github.com/cespare/xxhash/v2:all-srcs", + "//vendor/github.com/chai2010/gettext-go/gettext:all-srcs", + "//vendor/github.com/checkpoint-restore/go-criu/v4:all-srcs", + "//vendor/github.com/cilium/ebpf:all-srcs", + "//vendor/github.com/clusterhq/flocker-go:all-srcs", + "//vendor/github.com/container-storage-interface/spec/lib/go/csi:all-srcs", + "//vendor/github.com/containerd/cgroups/stats/v1:all-srcs", + "//vendor/github.com/containerd/console:all-srcs", + "//vendor/github.com/containerd/containerd/api/services/containers/v1:all-srcs", + "//vendor/github.com/containerd/containerd/api/services/tasks/v1:all-srcs", + "//vendor/github.com/containerd/containerd/api/services/version/v1:all-srcs", + "//vendor/github.com/containerd/containerd/api/types:all-srcs", + "//vendor/github.com/containerd/containerd/containers:all-srcs", + "//vendor/github.com/containerd/containerd/errdefs:all-srcs", + "//vendor/github.com/containerd/containerd/namespaces:all-srcs", + "//vendor/github.com/containerd/containerd/pkg/dialer:all-srcs", + "//vendor/github.com/containerd/ttrpc:all-srcs", + "//vendor/github.com/containernetworking/cni/libcni:all-srcs", + "//vendor/github.com/containernetworking/cni/pkg/invoke:all-srcs", + "//vendor/github.com/containernetworking/cni/pkg/types:all-srcs", + "//vendor/github.com/containernetworking/cni/pkg/utils:all-srcs", + "//vendor/github.com/containernetworking/cni/pkg/version:all-srcs", + "//vendor/github.com/coredns/corefile-migration/migration:all-srcs", + "//vendor/github.com/coreos/go-oidc:all-srcs", + "//vendor/github.com/coreos/go-semver/semver:all-srcs", + "//vendor/github.com/coreos/go-systemd/daemon:all-srcs", + "//vendor/github.com/coreos/go-systemd/journal:all-srcs", + "//vendor/github.com/coreos/go-systemd/util:all-srcs", + "//vendor/github.com/coreos/go-systemd/v22/dbus:all-srcs", + "//vendor/github.com/coreos/pkg/capnslog:all-srcs", + "//vendor/github.com/coreos/pkg/dlopen:all-srcs", + "//vendor/github.com/cpuguy83/go-md2man/v2/md2man:all-srcs", + "//vendor/github.com/cyphar/filepath-securejoin:all-srcs", + "//vendor/github.com/davecgh/go-spew/spew:all-srcs", + "//vendor/github.com/daviddengcn/go-colortext:all-srcs", + "//vendor/github.com/dgrijalva/jwt-go:all-srcs", + "//vendor/github.com/docker/distribution/digestset:all-srcs", + "//vendor/github.com/docker/distribution/reference:all-srcs", + "//vendor/github.com/docker/distribution/registry/api/errcode:all-srcs", + "//vendor/github.com/docker/docker/api:all-srcs", + "//vendor/github.com/docker/docker/client:all-srcs", + "//vendor/github.com/docker/docker/errdefs:all-srcs", + "//vendor/github.com/docker/docker/pkg/jsonmessage:all-srcs", + "//vendor/github.com/docker/docker/pkg/stdcopy:all-srcs", + "//vendor/github.com/docker/docker/pkg/term:all-srcs", + "//vendor/github.com/docker/go-connections/nat:all-srcs", + "//vendor/github.com/docker/go-connections/sockets:all-srcs", + "//vendor/github.com/docker/go-connections/tlsconfig:all-srcs", + "//vendor/github.com/docker/go-units:all-srcs", + "//vendor/github.com/docker/spdystream:all-srcs", + "//vendor/github.com/dustin/go-humanize:all-srcs", + "//vendor/github.com/elazarl/goproxy:all-srcs", + "//vendor/github.com/emicklei/go-restful:all-srcs", + "//vendor/github.com/euank/go-kmsg-parser/kmsgparser:all-srcs", + "//vendor/github.com/evanphx/json-patch:all-srcs", + "//vendor/github.com/exponent-io/jsonpath:all-srcs", + "//vendor/github.com/fatih/camelcase:all-srcs", + "//vendor/github.com/fsnotify/fsnotify:all-srcs", + "//vendor/github.com/ghodss/yaml:all-srcs", + "//vendor/github.com/go-bindata/go-bindata:all-srcs", + "//vendor/github.com/go-logr/logr:all-srcs", + "//vendor/github.com/go-openapi/analysis:all-srcs", + "//vendor/github.com/go-openapi/errors:all-srcs", + "//vendor/github.com/go-openapi/jsonpointer:all-srcs", + "//vendor/github.com/go-openapi/jsonreference:all-srcs", + "//vendor/github.com/go-openapi/loads:all-srcs", + "//vendor/github.com/go-openapi/runtime:all-srcs", + "//vendor/github.com/go-openapi/spec:all-srcs", + "//vendor/github.com/go-openapi/strfmt:all-srcs", + "//vendor/github.com/go-openapi/swag:all-srcs", + "//vendor/github.com/go-openapi/validate:all-srcs", + "//vendor/github.com/go-ozzo/ozzo-validation:all-srcs", + "//vendor/github.com/go-stack/stack:all-srcs", + "//vendor/github.com/godbus/dbus/v5:all-srcs", + "//vendor/github.com/gogo/protobuf/gogoproto:all-srcs", + "//vendor/github.com/gogo/protobuf/plugin/compare:all-srcs", + "//vendor/github.com/gogo/protobuf/plugin/defaultcheck:all-srcs", + "//vendor/github.com/gogo/protobuf/plugin/description:all-srcs", + "//vendor/github.com/gogo/protobuf/plugin/embedcheck:all-srcs", + "//vendor/github.com/gogo/protobuf/plugin/enumstringer:all-srcs", + "//vendor/github.com/gogo/protobuf/plugin/equal:all-srcs", + "//vendor/github.com/gogo/protobuf/plugin/face:all-srcs", + "//vendor/github.com/gogo/protobuf/plugin/gostring:all-srcs", + "//vendor/github.com/gogo/protobuf/plugin/marshalto:all-srcs", + "//vendor/github.com/gogo/protobuf/plugin/oneofcheck:all-srcs", + "//vendor/github.com/gogo/protobuf/plugin/populate:all-srcs", + "//vendor/github.com/gogo/protobuf/plugin/size:all-srcs", + "//vendor/github.com/gogo/protobuf/plugin/stringer:all-srcs", + "//vendor/github.com/gogo/protobuf/plugin/testgen:all-srcs", + "//vendor/github.com/gogo/protobuf/plugin/union:all-srcs", + "//vendor/github.com/gogo/protobuf/plugin/unmarshal:all-srcs", + "//vendor/github.com/gogo/protobuf/proto:all-srcs", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor:all-srcs", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:all-srcs", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc:all-srcs", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin:all-srcs", + "//vendor/github.com/gogo/protobuf/sortkeys:all-srcs", + "//vendor/github.com/gogo/protobuf/types:all-srcs", + "//vendor/github.com/gogo/protobuf/vanity:all-srcs", + "//vendor/github.com/golang/groupcache/lru:all-srcs", + "//vendor/github.com/golang/mock/gomock:all-srcs", + "//vendor/github.com/golang/protobuf/jsonpb:all-srcs", + "//vendor/github.com/golang/protobuf/proto:all-srcs", + "//vendor/github.com/golang/protobuf/protoc-gen-go/descriptor:all-srcs", + "//vendor/github.com/golang/protobuf/protoc-gen-go/generator:all-srcs", + "//vendor/github.com/golang/protobuf/protoc-gen-go/plugin:all-srcs", + "//vendor/github.com/golang/protobuf/ptypes:all-srcs", + "//vendor/github.com/google/btree:all-srcs", + "//vendor/github.com/google/cadvisor/accelerators:all-srcs", + "//vendor/github.com/google/cadvisor/cache/memory:all-srcs", + "//vendor/github.com/google/cadvisor/client/v2:all-srcs", + "//vendor/github.com/google/cadvisor/collector:all-srcs", + "//vendor/github.com/google/cadvisor/container:all-srcs", + "//vendor/github.com/google/cadvisor/devicemapper:all-srcs", + "//vendor/github.com/google/cadvisor/events:all-srcs", + "//vendor/github.com/google/cadvisor/fs:all-srcs", + "//vendor/github.com/google/cadvisor/info/v1:all-srcs", + "//vendor/github.com/google/cadvisor/info/v2:all-srcs", + "//vendor/github.com/google/cadvisor/machine:all-srcs", + "//vendor/github.com/google/cadvisor/manager:all-srcs", + "//vendor/github.com/google/cadvisor/metrics:all-srcs", + "//vendor/github.com/google/cadvisor/nvm:all-srcs", + "//vendor/github.com/google/cadvisor/perf:all-srcs", + "//vendor/github.com/google/cadvisor/resctrl:all-srcs", + "//vendor/github.com/google/cadvisor/stats:all-srcs", + "//vendor/github.com/google/cadvisor/storage:all-srcs", + "//vendor/github.com/google/cadvisor/summary:all-srcs", + "//vendor/github.com/google/cadvisor/utils:all-srcs", + "//vendor/github.com/google/cadvisor/version:all-srcs", + "//vendor/github.com/google/cadvisor/watcher:all-srcs", + "//vendor/github.com/google/cadvisor/zfs:all-srcs", + "//vendor/github.com/google/go-cmp/cmp:all-srcs", + "//vendor/github.com/google/gofuzz:all-srcs", + "//vendor/github.com/google/uuid:all-srcs", + "//vendor/github.com/googleapis/gax-go/v2:all-srcs", + "//vendor/github.com/googleapis/gnostic/compiler:all-srcs", + "//vendor/github.com/googleapis/gnostic/extensions:all-srcs", + "//vendor/github.com/googleapis/gnostic/openapiv2:all-srcs", + "//vendor/github.com/gophercloud/gophercloud:all-srcs", + "//vendor/github.com/gorilla/websocket:all-srcs", + "//vendor/github.com/gregjones/httpcache:all-srcs", + "//vendor/github.com/grpc-ecosystem/go-grpc-middleware:all-srcs", + "//vendor/github.com/grpc-ecosystem/go-grpc-prometheus:all-srcs", + "//vendor/github.com/grpc-ecosystem/grpc-gateway/internal:all-srcs", + "//vendor/github.com/grpc-ecosystem/grpc-gateway/runtime:all-srcs", + "//vendor/github.com/grpc-ecosystem/grpc-gateway/utilities:all-srcs", + "//vendor/github.com/hashicorp/golang-lru:all-srcs", + "//vendor/github.com/hashicorp/hcl:all-srcs", + "//vendor/github.com/heketi/heketi/client/api/go-client:all-srcs", + "//vendor/github.com/heketi/heketi/pkg/glusterfs/api:all-srcs", + "//vendor/github.com/heketi/heketi/pkg/utils:all-srcs", + "//vendor/github.com/hpcloud/tail:all-srcs", + "//vendor/github.com/imdario/mergo:all-srcs", + "//vendor/github.com/inconshreveable/mousetrap:all-srcs", + "//vendor/github.com/ishidawataru/sctp:all-srcs", + "//vendor/github.com/jmespath/go-jmespath:all-srcs", + "//vendor/github.com/jonboulle/clockwork:all-srcs", + "//vendor/github.com/json-iterator/go:all-srcs", + "//vendor/github.com/karrick/godirwalk:all-srcs", + "//vendor/github.com/konsorten/go-windows-terminal-sequences:all-srcs", + "//vendor/github.com/libopenstorage/openstorage/api:all-srcs", + "//vendor/github.com/libopenstorage/openstorage/pkg/parser:all-srcs", + "//vendor/github.com/libopenstorage/openstorage/pkg/units:all-srcs", + "//vendor/github.com/libopenstorage/openstorage/volume:all-srcs", + "//vendor/github.com/liggitt/tabwriter:all-srcs", + "//vendor/github.com/lithammer/dedent:all-srcs", + "//vendor/github.com/magiconair/properties:all-srcs", + "//vendor/github.com/mailru/easyjson/buffer:all-srcs", + "//vendor/github.com/mailru/easyjson/jlexer:all-srcs", + "//vendor/github.com/mailru/easyjson/jwriter:all-srcs", + "//vendor/github.com/matttproud/golang_protobuf_extensions/pbutil:all-srcs", + "//vendor/github.com/miekg/dns:all-srcs", + "//vendor/github.com/mindprince/gonvml:all-srcs", + "//vendor/github.com/mistifyio/go-zfs:all-srcs", + "//vendor/github.com/mitchellh/go-wordwrap:all-srcs", + "//vendor/github.com/mitchellh/mapstructure:all-srcs", + "//vendor/github.com/moby/ipvs:all-srcs", + "//vendor/github.com/moby/sys/mountinfo:all-srcs", + "//vendor/github.com/moby/term:all-srcs", + "//vendor/github.com/modern-go/concurrent:all-srcs", + "//vendor/github.com/modern-go/reflect2:all-srcs", + "//vendor/github.com/mohae/deepcopy:all-srcs", + "//vendor/github.com/morikuni/aec:all-srcs", + "//vendor/github.com/mrunalp/fileutils:all-srcs", + "//vendor/github.com/munnerz/goautoneg:all-srcs", + "//vendor/github.com/mvdan/xurls:all-srcs", + "//vendor/github.com/mxk/go-flowrate/flowrate:all-srcs", + "//vendor/github.com/onsi/ginkgo:all-srcs", + "//vendor/github.com/onsi/gomega:all-srcs", + "//vendor/github.com/opencontainers/go-digest:all-srcs", + "//vendor/github.com/opencontainers/image-spec/specs-go:all-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer:all-srcs", + "//vendor/github.com/opencontainers/runc/types:all-srcs", + "//vendor/github.com/opencontainers/runtime-spec/specs-go:all-srcs", + "//vendor/github.com/opencontainers/selinux/go-selinux:all-srcs", + "//vendor/github.com/opencontainers/selinux/pkg/pwalk:all-srcs", + "//vendor/github.com/pelletier/go-toml:all-srcs", + "//vendor/github.com/peterbourgon/diskv:all-srcs", + "//vendor/github.com/pkg/errors:all-srcs", + "//vendor/github.com/pmezard/go-difflib/difflib:all-srcs", + "//vendor/github.com/pquerna/cachecontrol:all-srcs", + "//vendor/github.com/prometheus/client_golang/prometheus:all-srcs", + "//vendor/github.com/prometheus/client_model/go:all-srcs", + "//vendor/github.com/prometheus/common/expfmt:all-srcs", + "//vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg:all-srcs", + "//vendor/github.com/prometheus/common/model:all-srcs", + "//vendor/github.com/prometheus/procfs:all-srcs", + "//vendor/github.com/quobyte/api:all-srcs", + "//vendor/github.com/robfig/cron:all-srcs", + "//vendor/github.com/rubiojr/go-vhd/vhd:all-srcs", + "//vendor/github.com/russross/blackfriday:all-srcs", + "//vendor/github.com/satori/go.uuid:all-srcs", + "//vendor/github.com/seccomp/libseccomp-golang:all-srcs", + "//vendor/github.com/shurcooL/sanitized_anchor_name:all-srcs", + "//vendor/github.com/sirupsen/logrus:all-srcs", + "//vendor/github.com/soheilhy/cmux:all-srcs", + "//vendor/github.com/spf13/afero:all-srcs", + "//vendor/github.com/spf13/cast:all-srcs", + "//vendor/github.com/spf13/cobra:all-srcs", + "//vendor/github.com/spf13/jwalterweatherman:all-srcs", + "//vendor/github.com/spf13/pflag:all-srcs", + "//vendor/github.com/spf13/viper:all-srcs", + "//vendor/github.com/storageos/go-api:all-srcs", + "//vendor/github.com/stretchr/objx:all-srcs", + "//vendor/github.com/stretchr/testify/assert:all-srcs", + "//vendor/github.com/stretchr/testify/mock:all-srcs", + "//vendor/github.com/stretchr/testify/require:all-srcs", + "//vendor/github.com/syndtr/gocapability/capability:all-srcs", + "//vendor/github.com/thecodeteam/goscaleio:all-srcs", + "//vendor/github.com/tmc/grpc-websocket-proxy/wsproxy:all-srcs", + "//vendor/github.com/vishvananda/netlink:all-srcs", + "//vendor/github.com/vishvananda/netns:all-srcs", + "//vendor/github.com/vmware/govmomi:all-srcs", + "//vendor/github.com/xiang90/probing:all-srcs", + "//vendor/go.etcd.io/bbolt:all-srcs", + "//vendor/go.etcd.io/etcd/auth:all-srcs", + "//vendor/go.etcd.io/etcd/client:all-srcs", + "//vendor/go.etcd.io/etcd/clientv3:all-srcs", + "//vendor/go.etcd.io/etcd/embed:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver:all-srcs", + "//vendor/go.etcd.io/etcd/integration:all-srcs", + "//vendor/go.etcd.io/etcd/lease:all-srcs", + "//vendor/go.etcd.io/etcd/mvcc:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/adt:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/contention:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/cpuutil:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/crc:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/debugutil:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/fileutil:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/flags:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/httputil:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/idutil:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/ioutil:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/logutil:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/netutil:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/pathutil:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/pbutil:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/runtime:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/schedule:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/srv:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/systemd:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/testutil:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/tlsutil:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/traceutil:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/transport:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/types:all-srcs", + "//vendor/go.etcd.io/etcd/pkg/wait:all-srcs", + "//vendor/go.etcd.io/etcd/proxy/grpcproxy:all-srcs", + "//vendor/go.etcd.io/etcd/raft:all-srcs", + "//vendor/go.etcd.io/etcd/version:all-srcs", + "//vendor/go.etcd.io/etcd/wal:all-srcs", + "//vendor/go.mongodb.org/mongo-driver/bson:all-srcs", + "//vendor/go.mongodb.org/mongo-driver/x/bsonx/bsoncore:all-srcs", + "//vendor/go.opencensus.io:all-srcs", + "//vendor/go.uber.org/atomic:all-srcs", + "//vendor/go.uber.org/multierr:all-srcs", + "//vendor/go.uber.org/zap:all-srcs", + "//vendor/golang.org/x/crypto/bcrypt:all-srcs", + "//vendor/golang.org/x/crypto/blowfish:all-srcs", + "//vendor/golang.org/x/crypto/chacha20:all-srcs", + "//vendor/golang.org/x/crypto/cryptobyte:all-srcs", + "//vendor/golang.org/x/crypto/curve25519:all-srcs", + "//vendor/golang.org/x/crypto/ed25519:all-srcs", + "//vendor/golang.org/x/crypto/internal/subtle:all-srcs", + "//vendor/golang.org/x/crypto/nacl/secretbox:all-srcs", + "//vendor/golang.org/x/crypto/pbkdf2:all-srcs", + "//vendor/golang.org/x/crypto/pkcs12:all-srcs", + "//vendor/golang.org/x/crypto/poly1305:all-srcs", + "//vendor/golang.org/x/crypto/salsa20/salsa:all-srcs", + "//vendor/golang.org/x/crypto/ssh:all-srcs", + "//vendor/golang.org/x/mod/module:all-srcs", + "//vendor/golang.org/x/mod/semver:all-srcs", + "//vendor/golang.org/x/net/bpf:all-srcs", + "//vendor/golang.org/x/net/context:all-srcs", + "//vendor/golang.org/x/net/html:all-srcs", + "//vendor/golang.org/x/net/http/httpguts:all-srcs", + "//vendor/golang.org/x/net/http2:all-srcs", + "//vendor/golang.org/x/net/idna:all-srcs", + "//vendor/golang.org/x/net/internal/iana:all-srcs", + "//vendor/golang.org/x/net/internal/socket:all-srcs", + "//vendor/golang.org/x/net/internal/socks:all-srcs", + "//vendor/golang.org/x/net/internal/timeseries:all-srcs", + "//vendor/golang.org/x/net/ipv4:all-srcs", + "//vendor/golang.org/x/net/ipv6:all-srcs", + "//vendor/golang.org/x/net/proxy:all-srcs", + "//vendor/golang.org/x/net/trace:all-srcs", + "//vendor/golang.org/x/net/websocket:all-srcs", + "//vendor/golang.org/x/oauth2:all-srcs", + "//vendor/golang.org/x/sync/singleflight:all-srcs", + "//vendor/golang.org/x/sys/cpu:all-srcs", + "//vendor/golang.org/x/sys/internal/unsafeheader:all-srcs", + "//vendor/golang.org/x/sys/unix:all-srcs", + "//vendor/golang.org/x/sys/windows:all-srcs", + "//vendor/golang.org/x/text/encoding:all-srcs", + "//vendor/golang.org/x/text/internal/language:all-srcs", + "//vendor/golang.org/x/text/internal/tag:all-srcs", + "//vendor/golang.org/x/text/internal/utf8internal:all-srcs", + "//vendor/golang.org/x/text/language:all-srcs", + "//vendor/golang.org/x/text/runes:all-srcs", + "//vendor/golang.org/x/text/secure/bidirule:all-srcs", + "//vendor/golang.org/x/text/transform:all-srcs", + "//vendor/golang.org/x/text/unicode/bidi:all-srcs", + "//vendor/golang.org/x/text/unicode/norm:all-srcs", + "//vendor/golang.org/x/text/width:all-srcs", + "//vendor/golang.org/x/time/rate:all-srcs", + "//vendor/golang.org/x/tools/benchmark/parse:all-srcs", + "//vendor/golang.org/x/tools/container/intsets:all-srcs", + "//vendor/golang.org/x/tools/go/ast/astutil:all-srcs", + "//vendor/golang.org/x/tools/go/gcexportdata:all-srcs", + "//vendor/golang.org/x/tools/go/internal/gcimporter:all-srcs", + "//vendor/golang.org/x/tools/go/internal/packagesdriver:all-srcs", + "//vendor/golang.org/x/tools/go/packages:all-srcs", + "//vendor/golang.org/x/tools/imports:all-srcs", + "//vendor/golang.org/x/tools/internal/event:all-srcs", + "//vendor/golang.org/x/tools/internal/fastwalk:all-srcs", + "//vendor/golang.org/x/tools/internal/gocommand:all-srcs", + "//vendor/golang.org/x/tools/internal/gopathwalk:all-srcs", + "//vendor/golang.org/x/tools/internal/imports:all-srcs", + "//vendor/golang.org/x/tools/internal/packagesinternal:all-srcs", + "//vendor/golang.org/x/tools/internal/typesinternal:all-srcs", + "//vendor/golang.org/x/xerrors:all-srcs", + "//vendor/gonum.org/v1/gonum/blas:all-srcs", + "//vendor/gonum.org/v1/gonum/floats:all-srcs", + "//vendor/gonum.org/v1/gonum/graph:all-srcs", + "//vendor/gonum.org/v1/gonum/internal/asm/c128:all-srcs", + "//vendor/gonum.org/v1/gonum/internal/asm/c64:all-srcs", + "//vendor/gonum.org/v1/gonum/internal/asm/f32:all-srcs", + "//vendor/gonum.org/v1/gonum/internal/asm/f64:all-srcs", + "//vendor/gonum.org/v1/gonum/internal/cmplx64:all-srcs", + "//vendor/gonum.org/v1/gonum/internal/math32:all-srcs", + "//vendor/gonum.org/v1/gonum/lapack:all-srcs", + "//vendor/gonum.org/v1/gonum/mat:all-srcs", + "//vendor/google.golang.org/api/compute/v0.alpha:all-srcs", + "//vendor/google.golang.org/api/compute/v0.beta:all-srcs", + "//vendor/google.golang.org/api/compute/v1:all-srcs", + "//vendor/google.golang.org/api/container/v1:all-srcs", + "//vendor/google.golang.org/api/googleapi:all-srcs", + "//vendor/google.golang.org/api/internal:all-srcs", + "//vendor/google.golang.org/api/logging/v2beta1:all-srcs", + "//vendor/google.golang.org/api/monitoring/v3:all-srcs", + "//vendor/google.golang.org/api/option:all-srcs", + "//vendor/google.golang.org/api/pubsub/v1:all-srcs", + "//vendor/google.golang.org/api/tpu/v1:all-srcs", + "//vendor/google.golang.org/api/transport/http:all-srcs", + "//vendor/google.golang.org/appengine:all-srcs", + "//vendor/google.golang.org/genproto/googleapis/api/httpbody:all-srcs", + "//vendor/google.golang.org/genproto/googleapis/rpc/status:all-srcs", + "//vendor/google.golang.org/genproto/protobuf/field_mask:all-srcs", + "//vendor/google.golang.org/grpc:all-srcs", + "//vendor/google.golang.org/protobuf/encoding/protojson:all-srcs", + "//vendor/google.golang.org/protobuf/encoding/prototext:all-srcs", + "//vendor/google.golang.org/protobuf/encoding/protowire:all-srcs", + "//vendor/google.golang.org/protobuf/internal/descfmt:all-srcs", + "//vendor/google.golang.org/protobuf/internal/descopts:all-srcs", + "//vendor/google.golang.org/protobuf/internal/detectknown:all-srcs", + "//vendor/google.golang.org/protobuf/internal/detrand:all-srcs", + "//vendor/google.golang.org/protobuf/internal/encoding/defval:all-srcs", + "//vendor/google.golang.org/protobuf/internal/encoding/json:all-srcs", + "//vendor/google.golang.org/protobuf/internal/encoding/messageset:all-srcs", + "//vendor/google.golang.org/protobuf/internal/encoding/tag:all-srcs", + "//vendor/google.golang.org/protobuf/internal/encoding/text:all-srcs", + "//vendor/google.golang.org/protobuf/internal/errors:all-srcs", + "//vendor/google.golang.org/protobuf/internal/fieldnum:all-srcs", + "//vendor/google.golang.org/protobuf/internal/fieldsort:all-srcs", + "//vendor/google.golang.org/protobuf/internal/filedesc:all-srcs", + "//vendor/google.golang.org/protobuf/internal/filetype:all-srcs", + "//vendor/google.golang.org/protobuf/internal/flags:all-srcs", + "//vendor/google.golang.org/protobuf/internal/genname:all-srcs", + "//vendor/google.golang.org/protobuf/internal/impl:all-srcs", + "//vendor/google.golang.org/protobuf/internal/mapsort:all-srcs", + "//vendor/google.golang.org/protobuf/internal/pragma:all-srcs", + "//vendor/google.golang.org/protobuf/internal/set:all-srcs", + "//vendor/google.golang.org/protobuf/internal/strs:all-srcs", + "//vendor/google.golang.org/protobuf/internal/version:all-srcs", + "//vendor/google.golang.org/protobuf/proto:all-srcs", + "//vendor/google.golang.org/protobuf/reflect/protoreflect:all-srcs", + "//vendor/google.golang.org/protobuf/reflect/protoregistry:all-srcs", + "//vendor/google.golang.org/protobuf/runtime/protoiface:all-srcs", + "//vendor/google.golang.org/protobuf/runtime/protoimpl:all-srcs", + "//vendor/google.golang.org/protobuf/types/descriptorpb:all-srcs", + "//vendor/google.golang.org/protobuf/types/known/anypb:all-srcs", + "//vendor/google.golang.org/protobuf/types/known/durationpb:all-srcs", + "//vendor/google.golang.org/protobuf/types/known/fieldmaskpb:all-srcs", + "//vendor/google.golang.org/protobuf/types/known/timestamppb:all-srcs", + "//vendor/google.golang.org/protobuf/types/known/wrapperspb:all-srcs", + "//vendor/google.golang.org/protobuf/types/pluginpb:all-srcs", + "//vendor/gopkg.in/fsnotify.v1:all-srcs", + "//vendor/gopkg.in/gcfg.v1:all-srcs", + "//vendor/gopkg.in/inf.v0:all-srcs", + "//vendor/gopkg.in/natefinch/lumberjack.v2:all-srcs", + "//vendor/gopkg.in/square/go-jose.v2:all-srcs", + "//vendor/gopkg.in/tomb.v1:all-srcs", + "//vendor/gopkg.in/warnings.v0:all-srcs", + "//vendor/gopkg.in/yaml.v2:all-srcs", + "//vendor/k8s.io/gengo/args:all-srcs", + "//vendor/k8s.io/gengo/examples/deepcopy-gen/generators:all-srcs", + "//vendor/k8s.io/gengo/examples/defaulter-gen/generators:all-srcs", + "//vendor/k8s.io/gengo/examples/import-boss/generators:all-srcs", + "//vendor/k8s.io/gengo/examples/set-gen/generators:all-srcs", + "//vendor/k8s.io/gengo/examples/set-gen/sets:all-srcs", + "//vendor/k8s.io/gengo/generator:all-srcs", + "//vendor/k8s.io/gengo/namer:all-srcs", + "//vendor/k8s.io/gengo/parser:all-srcs", + "//vendor/k8s.io/gengo/types:all-srcs", + "//vendor/k8s.io/heapster/metrics/api/v1/types:all-srcs", + "//vendor/k8s.io/klog/v2:all-srcs", + "//vendor/k8s.io/kube-openapi/cmd/openapi-gen:all-srcs", + "//vendor/k8s.io/kube-openapi/pkg/aggregator:all-srcs", + "//vendor/k8s.io/kube-openapi/pkg/builder:all-srcs", + "//vendor/k8s.io/kube-openapi/pkg/common:all-srcs", + "//vendor/k8s.io/kube-openapi/pkg/generators:all-srcs", + "//vendor/k8s.io/kube-openapi/pkg/handler:all-srcs", + "//vendor/k8s.io/kube-openapi/pkg/schemaconv:all-srcs", + "//vendor/k8s.io/kube-openapi/pkg/util:all-srcs", + "//vendor/k8s.io/system-validators/validators:all-srcs", + "//vendor/k8s.io/utils/buffer:all-srcs", + "//vendor/k8s.io/utils/clock:all-srcs", + "//vendor/k8s.io/utils/exec:all-srcs", + "//vendor/k8s.io/utils/inotify:all-srcs", + "//vendor/k8s.io/utils/integer:all-srcs", + "//vendor/k8s.io/utils/io:all-srcs", + "//vendor/k8s.io/utils/keymutex:all-srcs", + "//vendor/k8s.io/utils/mount:all-srcs", + "//vendor/k8s.io/utils/net:all-srcs", + "//vendor/k8s.io/utils/nsenter:all-srcs", + "//vendor/k8s.io/utils/path:all-srcs", + "//vendor/k8s.io/utils/pointer:all-srcs", + "//vendor/k8s.io/utils/strings:all-srcs", + "//vendor/k8s.io/utils/trace:all-srcs", + "//vendor/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/client:all-srcs", + "//vendor/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/proto/client:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/commands/build:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/constants:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/expansion:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/factory:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/fs:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/git:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/gvk:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/ifc:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/image:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/internal/error:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/loader:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/patch:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/resid:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/resmap:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/resource:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/target:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/transformers:all-srcs", + "//vendor/sigs.k8s.io/kustomize/pkg/types:all-srcs", + "//vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath:all-srcs", + "//vendor/sigs.k8s.io/structured-merge-diff/v4/merge:all-srcs", + "//vendor/sigs.k8s.io/structured-merge-diff/v4/schema:all-srcs", + "//vendor/sigs.k8s.io/structured-merge-diff/v4/typed:all-srcs", + "//vendor/sigs.k8s.io/structured-merge-diff/v4/value:all-srcs", + "//vendor/sigs.k8s.io/yaml:all-srcs", + "//vendor/vbom.ml/util/sortorder:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/OWNERS b/vendor/OWNERS index 32ac698b5e409..0f5d2f6734e50 100644 --- a/vendor/OWNERS +++ b/vendor/OWNERS @@ -1,4 +1,4 @@ -See the OWNERS docs at https://go.k8s.io/owners +# See the OWNERS docs at https://go.k8s.io/owners approvers: - dep-approvers diff --git a/vendor/bitbucket.org/bertimus9/systemstat/BUILD b/vendor/bitbucket.org/bertimus9/systemstat/BUILD new file mode 100644 index 0000000000000..ac59981d1f886 --- /dev/null +++ b/vendor/bitbucket.org/bertimus9/systemstat/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "systemstat.go", + "systemstat_ex.go", + "systemstat_linux.go", + "utils.go", + ], + importmap = "k8s.io/kubernetes/vendor/bitbucket.org/bertimus9/systemstat", + importpath = "bitbucket.org/bertimus9/systemstat", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/cloud.google.com/go/compute/metadata/BUILD b/vendor/cloud.google.com/go/compute/metadata/BUILD new file mode 100644 index 0000000000000..646d2c11ea6a5 --- /dev/null +++ b/vendor/cloud.google.com/go/compute/metadata/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["metadata.go"], + importmap = "k8s.io/kubernetes/vendor/cloud.google.com/go/compute/metadata", + importpath = "cloud.google.com/go/compute/metadata", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/BUILD new file mode 100644 index 0000000000000..3c70e22d3999e --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/BUILD @@ -0,0 +1,66 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "availabilitysets.go", + "client.go", + "containerservices.go", + "dedicatedhostgroups.go", + "dedicatedhosts.go", + "diskencryptionsets.go", + "disks.go", + "galleries.go", + "galleryapplications.go", + "galleryapplicationversions.go", + "galleryimages.go", + "galleryimageversions.go", + "images.go", + "loganalytics.go", + "models.go", + "operations.go", + "proximityplacementgroups.go", + "resourceskus.go", + "snapshots.go", + "sshpublickeys.go", + "usage.go", + "version.go", + "virtualmachineextensionimages.go", + "virtualmachineextensions.go", + "virtualmachineimages.go", + "virtualmachineruncommands.go", + "virtualmachines.go", + "virtualmachinescalesetextensions.go", + "virtualmachinescalesetrollingupgrades.go", + "virtualmachinescalesets.go", + "virtualmachinescalesetvmextensions.go", + "virtualmachinescalesetvms.go", + "virtualmachinesizes.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute", + importpath = "github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/Azure/azure-sdk-for-go/version:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/date:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/to:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/validation:go_default_library", + "//vendor/github.com/Azure/go-autorest/tracing:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry/BUILD new file mode 100644 index 0000000000000..d1ce5b6229cc8 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry/BUILD @@ -0,0 +1,42 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "models.go", + "operations.go", + "registries.go", + "replications.go", + "runs.go", + "tasks.go", + "version.go", + "webhooks.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry", + importpath = "github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/Azure/azure-sdk-for-go/version:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/date:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/to:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/validation:go_default_library", + "//vendor/github.com/Azure/go-autorest/tracing:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2020-04-01/containerservice/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2020-04-01/containerservice/BUILD new file mode 100644 index 0000000000000..af38c3f717af2 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2020-04-01/containerservice/BUILD @@ -0,0 +1,40 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "agentpools.go", + "client.go", + "containerservices.go", + "managedclusters.go", + "models.go", + "openshiftmanagedclusters.go", + "operations.go", + "version.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2020-04-01/containerservice", + importpath = "github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2020-04-01/containerservice", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/Azure/azure-sdk-for-go/version:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/to:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/validation:go_default_library", + "//vendor/github.com/Azure/go-autorest/tracing:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/BUILD new file mode 100644 index 0000000000000..73ba2e8acc778 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/BUILD @@ -0,0 +1,118 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "applicationgateways.go", + "applicationsecuritygroups.go", + "availabledelegations.go", + "availableendpointservices.go", + "availableprivateendpointtypes.go", + "availableresourcegroupdelegations.go", + "azurefirewallfqdntags.go", + "azurefirewalls.go", + "bastionhosts.go", + "bgpservicecommunities.go", + "client.go", + "connectionmonitors.go", + "ddoscustompolicies.go", + "ddosprotectionplans.go", + "defaultsecurityrules.go", + "expressroutecircuitauthorizations.go", + "expressroutecircuitconnections.go", + "expressroutecircuitpeerings.go", + "expressroutecircuits.go", + "expressrouteconnections.go", + "expressroutecrossconnectionpeerings.go", + "expressroutecrossconnections.go", + "expressroutegateways.go", + "expressroutelinks.go", + "expressrouteports.go", + "expressrouteportslocations.go", + "expressrouteserviceproviders.go", + "firewallpolicies.go", + "firewallpolicyrulegroups.go", + "hubvirtualnetworkconnections.go", + "inboundnatrules.go", + "interfaceipconfigurations.go", + "interfaceloadbalancers.go", + "interfacesgroup.go", + "interfacetapconfigurations.go", + "loadbalancerbackendaddresspools.go", + "loadbalancerfrontendipconfigurations.go", + "loadbalancerloadbalancingrules.go", + "loadbalancernetworkinterfaces.go", + "loadbalanceroutboundrules.go", + "loadbalancerprobes.go", + "loadbalancers.go", + "localnetworkgateways.go", + "models.go", + "natgateways.go", + "operations.go", + "p2svpngateways.go", + "p2svpnserverconfigurations.go", + "packetcaptures.go", + "peerexpressroutecircuitconnections.go", + "privateendpoints.go", + "privatelinkservices.go", + "profiles.go", + "publicipaddresses.go", + "publicipprefixes.go", + "resourcenavigationlinks.go", + "routefilterrules.go", + "routefilters.go", + "routes.go", + "routetables.go", + "securitygroups.go", + "securityrules.go", + "serviceassociationlinks.go", + "serviceendpointpolicies.go", + "serviceendpointpolicydefinitions.go", + "servicetags.go", + "subnets.go", + "usages.go", + "version.go", + "virtualhubs.go", + "virtualnetworkgatewayconnections.go", + "virtualnetworkgateways.go", + "virtualnetworkpeerings.go", + "virtualnetworks.go", + "virtualnetworktaps.go", + "virtualwans.go", + "vpnconnections.go", + "vpngateways.go", + "vpnlinkconnections.go", + "vpnsitelinkconnections.go", + "vpnsitelinks.go", + "vpnsites.go", + "vpnsitesconfiguration.go", + "watchers.go", + "webapplicationfirewallpolicies.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network", + importpath = "github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/Azure/azure-sdk-for-go/version:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/date:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/to:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/validation:go_default_library", + "//vendor/github.com/Azure/go-autorest/tracing:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2017-05-10/resources/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2017-05-10/resources/BUILD new file mode 100644 index 0000000000000..4583dad7cbf84 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2017-05-10/resources/BUILD @@ -0,0 +1,42 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "deploymentoperations.go", + "deployments.go", + "groups.go", + "models.go", + "providers.go", + "resources.go", + "tags.go", + "version.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2017-05-10/resources", + importpath = "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2017-05-10/resources", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/Azure/azure-sdk-for-go/version:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/date:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/to:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/validation:go_default_library", + "//vendor/github.com/Azure/go-autorest/tracing:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/BUILD new file mode 100644 index 0000000000000..dba3eb4d5913e --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/BUILD @@ -0,0 +1,53 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "accounts.go", + "blobcontainers.go", + "blobservices.go", + "client.go", + "encryptionscopes.go", + "fileservices.go", + "fileshares.go", + "managementpolicies.go", + "models.go", + "objectreplicationpolicies.go", + "operations.go", + "privateendpointconnections.go", + "privatelinkresources.go", + "queue.go", + "queueservices.go", + "skus.go", + "table.go", + "tableservices.go", + "usages.go", + "version.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage", + importpath = "github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/Azure/azure-sdk-for-go/version:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/date:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/to:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/validation:go_default_library", + "//vendor/github.com/Azure/go-autorest/tracing:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/storage/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/storage/BUILD new file mode 100644 index 0000000000000..ab0602d66eb98 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/storage/BUILD @@ -0,0 +1,58 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "appendblob.go", + "authorization.go", + "blob.go", + "blobsasuri.go", + "blobserviceclient.go", + "blockblob.go", + "client.go", + "commonsasuri.go", + "container.go", + "copyblob.go", + "directory.go", + "entity.go", + "file.go", + "fileserviceclient.go", + "leaseblob.go", + "message.go", + "odata.go", + "pageblob.go", + "queue.go", + "queuesasuri.go", + "queueserviceclient.go", + "share.go", + "storagepolicy.go", + "storageservice.go", + "table.go", + "table_batch.go", + "tableserviceclient.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/azure-sdk-for-go/storage", + importpath = "github.com/Azure/azure-sdk-for-go/storage", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/Azure/azure-sdk-for-go/version:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", + "//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library", + "//vendor/github.com/satori/go.uuid:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/version/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/version/BUILD new file mode 100644 index 0000000000000..74defa6111cf9 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/version/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["version.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/azure-sdk-for-go/version", + importpath = "github.com/Azure/azure-sdk-for-go/version", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/go-ansiterm/BUILD b/vendor/github.com/Azure/go-ansiterm/BUILD new file mode 100644 index 0000000000000..d4d03afe167e5 --- /dev/null +++ b/vendor/github.com/Azure/go-ansiterm/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "constants.go", + "context.go", + "csi_entry_state.go", + "csi_param_state.go", + "escape_intermediate_state.go", + "escape_state.go", + "event_handler.go", + "ground_state.go", + "osc_string_state.go", + "parser.go", + "parser_action_helpers.go", + "parser_actions.go", + "states.go", + "utilities.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/go-ansiterm", + importpath = "github.com/Azure/go-ansiterm", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/Azure/go-ansiterm/winterm:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/go-ansiterm/winterm/BUILD b/vendor/github.com/Azure/go-ansiterm/winterm/BUILD new file mode 100644 index 0000000000000..7864290b85a40 --- /dev/null +++ b/vendor/github.com/Azure/go-ansiterm/winterm/BUILD @@ -0,0 +1,38 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "ansi.go", + "api.go", + "attr_translation.go", + "cursor_helpers.go", + "erase_helpers.go", + "scroll_helper.go", + "utilities.go", + "win_event_handler.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/go-ansiterm/winterm", + importpath = "github.com/Azure/go-ansiterm/winterm", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/github.com/Azure/go-ansiterm:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/go-autorest/autorest/BUILD b/vendor/github.com/Azure/go-autorest/autorest/BUILD new file mode 100644 index 0000000000000..cbb14611ca1f7 --- /dev/null +++ b/vendor/github.com/Azure/go-autorest/autorest/BUILD @@ -0,0 +1,51 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "authorization.go", + "authorization_sas.go", + "authorization_storage.go", + "autorest.go", + "client.go", + "error.go", + "preparer.go", + "responder.go", + "retriablerequest.go", + "retriablerequest_1.7.go", + "retriablerequest_1.8.go", + "sender.go", + "utility.go", + "version.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/go-autorest/autorest", + importpath = "github.com/Azure/go-autorest/autorest", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/Azure/go-autorest/autorest/adal:go_default_library", + "//vendor/github.com/Azure/go-autorest/logger:go_default_library", + "//vendor/github.com/Azure/go-autorest/tracing:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/Azure/go-autorest/autorest/adal:all-srcs", + "//vendor/github.com/Azure/go-autorest/autorest/azure:all-srcs", + "//vendor/github.com/Azure/go-autorest/autorest/date:all-srcs", + "//vendor/github.com/Azure/go-autorest/autorest/mocks:all-srcs", + "//vendor/github.com/Azure/go-autorest/autorest/to:all-srcs", + "//vendor/github.com/Azure/go-autorest/autorest/validation:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/go-autorest/autorest/adal/BUILD b/vendor/github.com/Azure/go-autorest/autorest/adal/BUILD new file mode 100644 index 0000000000000..13898e5e642ce --- /dev/null +++ b/vendor/github.com/Azure/go-autorest/autorest/adal/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "config.go", + "devicetoken.go", + "persist.go", + "sender.go", + "token.go", + "version.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/go-autorest/autorest/adal", + importpath = "github.com/Azure/go-autorest/autorest/adal", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/Azure/go-autorest/autorest/date:go_default_library", + "//vendor/github.com/Azure/go-autorest/tracing:go_default_library", + "//vendor/github.com/dgrijalva/jwt-go:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/BUILD b/vendor/github.com/Azure/go-autorest/autorest/azure/BUILD new file mode 100644 index 0000000000000..12d1e06a0ee44 --- /dev/null +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "async.go", + "azure.go", + "environments.go", + "metadata_environment.go", + "rp.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/go-autorest/autorest/azure", + importpath = "github.com/Azure/go-autorest/autorest/azure", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", + "//vendor/github.com/Azure/go-autorest/tracing:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/go-autorest/autorest/date/BUILD b/vendor/github.com/Azure/go-autorest/autorest/date/BUILD new file mode 100644 index 0000000000000..19fce15d84f4b --- /dev/null +++ b/vendor/github.com/Azure/go-autorest/autorest/date/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "date.go", + "time.go", + "timerfc1123.go", + "unixtime.go", + "utility.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/go-autorest/autorest/date", + importpath = "github.com/Azure/go-autorest/autorest/date", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/go-autorest/autorest/mocks/BUILD b/vendor/github.com/Azure/go-autorest/autorest/mocks/BUILD new file mode 100644 index 0000000000000..701650a9313dc --- /dev/null +++ b/vendor/github.com/Azure/go-autorest/autorest/mocks/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "helpers.go", + "mocks.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/go-autorest/autorest/mocks", + importpath = "github.com/Azure/go-autorest/autorest/mocks", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/go-autorest/autorest/to/BUILD b/vendor/github.com/Azure/go-autorest/autorest/to/BUILD new file mode 100644 index 0000000000000..e435f0e4d67ee --- /dev/null +++ b/vendor/github.com/Azure/go-autorest/autorest/to/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["convert.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/go-autorest/autorest/to", + importpath = "github.com/Azure/go-autorest/autorest/to", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/go-autorest/autorest/validation/BUILD b/vendor/github.com/Azure/go-autorest/autorest/validation/BUILD new file mode 100644 index 0000000000000..411f4e8a24f79 --- /dev/null +++ b/vendor/github.com/Azure/go-autorest/autorest/validation/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "error.go", + "validation.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/go-autorest/autorest/validation", + importpath = "github.com/Azure/go-autorest/autorest/validation", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/go-autorest/logger/BUILD b/vendor/github.com/Azure/go-autorest/logger/BUILD new file mode 100644 index 0000000000000..d43bee7c193f6 --- /dev/null +++ b/vendor/github.com/Azure/go-autorest/logger/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["logger.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/go-autorest/logger", + importpath = "github.com/Azure/go-autorest/logger", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Azure/go-autorest/tracing/BUILD b/vendor/github.com/Azure/go-autorest/tracing/BUILD new file mode 100644 index 0000000000000..1040ed1474536 --- /dev/null +++ b/vendor/github.com/Azure/go-autorest/tracing/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["tracing.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/Azure/go-autorest/tracing", + importpath = "github.com/Azure/go-autorest/tracing", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/BUILD b/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/BUILD new file mode 100644 index 0000000000000..ebea024bfeb5d --- /dev/null +++ b/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/BUILD @@ -0,0 +1,48 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "constants.go", + "context.go", + "doc.go", + "gce_projects.go", + "gen.go", + "op.go", + "project.go", + "ratelimit.go", + "service.go", + "utils.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud", + importpath = "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter:go_default_library", + "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta:go_default_library", + "//vendor/google.golang.org/api/compute/v0.alpha:go_default_library", + "//vendor/google.golang.org/api/compute/v0.beta:go_default_library", + "//vendor/google.golang.org/api/compute/v1:go_default_library", + "//vendor/google.golang.org/api/googleapi:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter:all-srcs", + "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta:all-srcs", + "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter/BUILD b/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter/BUILD new file mode 100644 index 0000000000000..42f08ec975bd3 --- /dev/null +++ b/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["filter.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter", + importpath = "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter", + visibility = ["//visibility:public"], + deps = ["//vendor/k8s.io/klog/v2:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta/BUILD b/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta/BUILD new file mode 100644 index 0000000000000..6c72226191252 --- /dev/null +++ b/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "key.go", + "meta.go", + "method.go", + "service.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta", + importpath = "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta", + visibility = ["//visibility:public"], + deps = [ + "//vendor/google.golang.org/api/compute/v0.alpha:go_default_library", + "//vendor/google.golang.org/api/compute/v0.beta:go_default_library", + "//vendor/google.golang.org/api/compute/v1:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock/BUILD b/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock/BUILD new file mode 100644 index 0000000000000..2da95097b2c7c --- /dev/null +++ b/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["mock.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock", + importpath = "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud:go_default_library", + "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter:go_default_library", + "//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta:go_default_library", + "//vendor/google.golang.org/api/compute/v0.alpha:go_default_library", + "//vendor/google.golang.org/api/compute/v0.beta:go_default_library", + "//vendor/google.golang.org/api/compute/v1:go_default_library", + "//vendor/google.golang.org/api/googleapi:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/JeffAshton/win_pdh/BUILD b/vendor/github.com/JeffAshton/win_pdh/BUILD new file mode 100644 index 0000000000000..345333dd99374 --- /dev/null +++ b/vendor/github.com/JeffAshton/win_pdh/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["pdh.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/JeffAshton/win_pdh", + importpath = "github.com/JeffAshton/win_pdh", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/MakeNowJust/heredoc/BUILD b/vendor/github.com/MakeNowJust/heredoc/BUILD new file mode 100644 index 0000000000000..fa240b5a4fa03 --- /dev/null +++ b/vendor/github.com/MakeNowJust/heredoc/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["heredoc.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/MakeNowJust/heredoc", + importpath = "github.com/MakeNowJust/heredoc", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/go-winio/BUILD b/vendor/github.com/Microsoft/go-winio/BUILD new file mode 100644 index 0000000000000..d80d5ba304225 --- /dev/null +++ b/vendor/github.com/Microsoft/go-winio/BUILD @@ -0,0 +1,47 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "backup.go", + "ea.go", + "file.go", + "fileinfo.go", + "hvsock.go", + "pipe.go", + "privilege.go", + "reparse.go", + "sd.go", + "syscall.go", + "zsyscall_windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/go-winio", + importpath = "github.com/Microsoft/go-winio", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/Microsoft/go-winio/pkg/guid:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/golang.org/x/sys/windows:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/Microsoft/go-winio/pkg/guid:all-srcs", + "//vendor/github.com/Microsoft/go-winio/vhd:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/go-winio/pkg/guid/BUILD b/vendor/github.com/Microsoft/go-winio/pkg/guid/BUILD new file mode 100644 index 0000000000000..0ab1ff5a853a6 --- /dev/null +++ b/vendor/github.com/Microsoft/go-winio/pkg/guid/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["guid.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/go-winio/pkg/guid", + importpath = "github.com/Microsoft/go-winio/pkg/guid", + visibility = ["//visibility:public"], + deps = ["//vendor/golang.org/x/sys/windows:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/go-winio/vhd/BUILD b/vendor/github.com/Microsoft/go-winio/vhd/BUILD new file mode 100644 index 0000000000000..756a7870d18b2 --- /dev/null +++ b/vendor/github.com/Microsoft/go-winio/vhd/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "vhd.go", + "zvhd.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/go-winio/vhd", + importpath = "github.com/Microsoft/go-winio/vhd", + visibility = ["//visibility:public"], + deps = ["//vendor/golang.org/x/sys/windows:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/BUILD b/vendor/github.com/Microsoft/hcsshim/BUILD new file mode 100644 index 0000000000000..af6dd8c754a7f --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/BUILD @@ -0,0 +1,74 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "container.go", + "errors.go", + "hcsshim.go", + "hnsendpoint.go", + "hnsglobals.go", + "hnsnetwork.go", + "hnspolicy.go", + "hnspolicylist.go", + "hnssupport.go", + "interface.go", + "layer.go", + "process.go", + "zsyscall_windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim", + importpath = "github.com/Microsoft/hcsshim", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/Microsoft/go-winio/pkg/guid:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/hcs:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/hcserror:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/hns:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/mergemaps:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/schema1:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/wclayer:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/golang.org/x/sys/windows:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/Microsoft/hcsshim/hcn:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/cni:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/cow:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/hcs:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/hcserror:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/hns:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/interop:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/log:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/logfields:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/longpath:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/mergemaps:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/oc:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/regstate:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/runhcs:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/safefile:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/schema1:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/schema2:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/timeout:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/vmcompute:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/internal/wclayer:all-srcs", + "//vendor/github.com/Microsoft/hcsshim/osversion:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/hcn/BUILD b/vendor/github.com/Microsoft/hcsshim/hcn/BUILD new file mode 100644 index 0000000000000..fe3fa3781981c --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/hcn/BUILD @@ -0,0 +1,50 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "hcn.go", + "hcnendpoint.go", + "hcnerrors.go", + "hcnglobals.go", + "hcnloadbalancer.go", + "hcnnamespace.go", + "hcnnetwork.go", + "hcnpolicy.go", + "hcnroute.go", + "hcnsupport.go", + "zsyscall_windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/hcn", + importpath = "github.com/Microsoft/hcsshim/hcn", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/Microsoft/go-winio/pkg/guid:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/cni:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/hcs:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/hcserror:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/interop:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/regstate:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/runhcs:go_default_library", + "//vendor/github.com/sirupsen/logrus:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/golang.org/x/sys/windows:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/cni/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/cni/BUILD new file mode 100644 index 0000000000000..186789abca4af --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/cni/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["registry.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/cni", + importpath = "github.com/Microsoft/hcsshim/internal/cni", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], + deps = [ + "//vendor/github.com/Microsoft/go-winio/pkg/guid:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/regstate:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/cow/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/cow/BUILD new file mode 100644 index 0000000000000..e0887ad84bee6 --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/cow/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["cow.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/cow", + importpath = "github.com/Microsoft/hcsshim/internal/cow", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], + deps = [ + "//vendor/github.com/Microsoft/hcsshim/internal/schema1:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/schema2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/hcs/BUILD new file mode 100644 index 0000000000000..25cfffbde92ba --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/BUILD @@ -0,0 +1,50 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "callback.go", + "errors.go", + "process.go", + "service.go", + "syscall.go", + "system.go", + "utils.go", + "waithelper.go", + "zsyscall_windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/hcs", + importpath = "github.com/Microsoft/hcsshim/internal/hcs", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], + deps = [ + "//vendor/github.com/Microsoft/go-winio:go_default_library", + "//vendor/github.com/Microsoft/go-winio/vhd:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/cow:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/interop:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/log:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/logfields:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/oc:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/schema1:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/schema2:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/timeout:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/vmcompute:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/github.com/sirupsen/logrus:go_default_library", + "//vendor/go.opencensus.io/trace:go_default_library", + "//vendor/golang.org/x/sys/windows:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcserror/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/hcserror/BUILD new file mode 100644 index 0000000000000..5a622b05f774a --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/hcserror/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["hcserror.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/hcserror", + importpath = "github.com/Microsoft/hcsshim/internal/hcserror", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hns/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/hns/BUILD new file mode 100644 index 0000000000000..370561674c468 --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/hns/BUILD @@ -0,0 +1,44 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "hns.go", + "hnsendpoint.go", + "hnsfuncs.go", + "hnsglobals.go", + "hnsnetwork.go", + "hnspolicy.go", + "hnspolicylist.go", + "hnssupport.go", + "namespace.go", + "zsyscall_windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/hns", + importpath = "github.com/Microsoft/hcsshim/internal/hns", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], + deps = [ + "//vendor/github.com/Microsoft/hcsshim/internal/hcserror:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/interop:go_default_library", + "//vendor/github.com/sirupsen/logrus:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/golang.org/x/sys/windows:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/interop/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/interop/BUILD new file mode 100644 index 0000000000000..e591140d2c8e6 --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/interop/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "interop.go", + "zsyscall_windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/interop", + importpath = "github.com/Microsoft/hcsshim/internal/interop", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], + deps = select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/golang.org/x/sys/windows:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/log/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/log/BUILD new file mode 100644 index 0000000000000..266e768c01b37 --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/log/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["g.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/log", + importpath = "github.com/Microsoft/hcsshim/internal/log", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], + deps = [ + "//vendor/github.com/sirupsen/logrus:go_default_library", + "//vendor/go.opencensus.io/trace:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/logfields/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/logfields/BUILD new file mode 100644 index 0000000000000..f00a7a9f3fa37 --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/logfields/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["fields.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/logfields", + importpath = "github.com/Microsoft/hcsshim/internal/logfields", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/longpath/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/longpath/BUILD new file mode 100644 index 0000000000000..912f0defb0009 --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/longpath/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["longpath.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/longpath", + importpath = "github.com/Microsoft/hcsshim/internal/longpath", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/mergemaps/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/mergemaps/BUILD new file mode 100644 index 0000000000000..61c512d219ef2 --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/mergemaps/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["merge.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/mergemaps", + importpath = "github.com/Microsoft/hcsshim/internal/mergemaps", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/oc/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/oc/BUILD new file mode 100644 index 0000000000000..14614d875bf09 --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/oc/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "exporter.go", + "span.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/oc", + importpath = "github.com/Microsoft/hcsshim/internal/oc", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], + deps = [ + "//vendor/github.com/sirupsen/logrus:go_default_library", + "//vendor/go.opencensus.io/trace:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/regstate/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/regstate/BUILD new file mode 100644 index 0000000000000..26a04e50eeb51 --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/regstate/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "regstate.go", + "zsyscall_windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/regstate", + importpath = "github.com/Microsoft/hcsshim/internal/regstate", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], + deps = [ + "//vendor/golang.org/x/sys/windows/registry:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/golang.org/x/sys/windows:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/runhcs/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/runhcs/BUILD new file mode 100644 index 0000000000000..4138adc0c858b --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/runhcs/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "container.go", + "util.go", + "vm.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/runhcs", + importpath = "github.com/Microsoft/hcsshim/internal/runhcs", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], + deps = [ + "//vendor/github.com/Microsoft/go-winio:go_default_library", + "//vendor/github.com/Microsoft/go-winio/pkg/guid:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/safefile/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/safefile/BUILD new file mode 100644 index 0000000000000..b88e3a0433050 --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/safefile/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "safeopen.go", + "zsyscall_windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/safefile", + importpath = "github.com/Microsoft/hcsshim/internal/safefile", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], + deps = [ + "//vendor/github.com/Microsoft/go-winio:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/longpath:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/golang.org/x/sys/windows:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/schema1/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/schema1/BUILD new file mode 100644 index 0000000000000..36bfa879b8474 --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/schema1/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["schema1.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/schema1", + importpath = "github.com/Microsoft/hcsshim/internal/schema1", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], + deps = [ + "//vendor/github.com/Microsoft/go-winio/pkg/guid:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/schema2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/schema2/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/schema2/BUILD new file mode 100644 index 0000000000000..743c4da4f9eeb --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/schema2/BUILD @@ -0,0 +1,121 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "attachment.go", + "battery.go", + "cache_query_stats_response.go", + "chipset.go", + "close_handle.go", + "com_port.go", + "compute_system.go", + "configuration.go", + "console_size.go", + "container.go", + "container_credential_guard_add_instance_request.go", + "container_credential_guard_hv_socket_service_config.go", + "container_credential_guard_instance.go", + "container_credential_guard_modify_operation.go", + "container_credential_guard_operation_request.go", + "container_credential_guard_remove_instance_request.go", + "container_credential_guard_state.go", + "container_credential_guard_system_info.go", + "container_memory_information.go", + "device.go", + "devices.go", + "enhanced_mode_video.go", + "flexible_io_device.go", + "guest_connection.go", + "guest_connection_info.go", + "guest_crash_reporting.go", + "guest_os.go", + "guest_state.go", + "hosted_system.go", + "hv_socket.go", + "hv_socket_2.go", + "hv_socket_address.go", + "hv_socket_service_config.go", + "hv_socket_system_config.go", + "keyboard.go", + "layer.go", + "linux_kernel_direct.go", + "logical_processor.go", + "mapped_directory.go", + "mapped_pipe.go", + "memory.go", + "memory_2.go", + "memory_information_for_vm.go", + "memory_stats.go", + "modification_request.go", + "modify_setting_request.go", + "mouse.go", + "network_adapter.go", + "networking.go", + "pause_notification.go", + "pause_options.go", + "plan9.go", + "plan9_share.go", + "process_details.go", + "process_modify_request.go", + "process_parameters.go", + "process_status.go", + "processor.go", + "processor_2.go", + "processor_stats.go", + "processor_topology.go", + "properties.go", + "property_query.go", + "property_type.go", + "rdp_connection_options.go", + "registry_changes.go", + "registry_key.go", + "registry_value.go", + "restore_state.go", + "save_options.go", + "scsi.go", + "service_properties.go", + "shared_memory_configuration.go", + "shared_memory_region.go", + "shared_memory_region_info.go", + "silo_properties.go", + "statistics.go", + "storage.go", + "storage_qo_s.go", + "storage_stats.go", + "topology.go", + "uefi.go", + "uefi_boot_entry.go", + "version.go", + "video_monitor.go", + "virtual_machine.go", + "virtual_node_info.go", + "virtual_p_mem_controller.go", + "virtual_p_mem_device.go", + "virtual_pci_device.go", + "virtual_pci_function.go", + "virtual_smb.go", + "virtual_smb_share.go", + "virtual_smb_share_options.go", + "vm_memory.go", + "windows_crash_reporting.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/schema2", + importpath = "github.com/Microsoft/hcsshim/internal/schema2", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], + deps = ["//vendor/github.com/containerd/cgroups/stats/v1:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/timeout/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/timeout/BUILD new file mode 100644 index 0000000000000..f8b745544ee61 --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/timeout/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["timeout.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/timeout", + importpath = "github.com/Microsoft/hcsshim/internal/timeout", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/BUILD new file mode 100644 index 0000000000000..b3bb2a5713640 --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/BUILD @@ -0,0 +1,39 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "vmcompute.go", + "zsyscall_windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/vmcompute", + importpath = "github.com/Microsoft/hcsshim/internal/vmcompute", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], + deps = [ + "//vendor/github.com/Microsoft/hcsshim/internal/interop:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/log:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/logfields:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/oc:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/timeout:go_default_library", + "//vendor/go.opencensus.io/trace:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/golang.org/x/sys/windows:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/BUILD b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/BUILD new file mode 100644 index 0000000000000..27e82f931294d --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/BUILD @@ -0,0 +1,64 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "activatelayer.go", + "baselayer.go", + "createlayer.go", + "createscratchlayer.go", + "deactivatelayer.go", + "destroylayer.go", + "expandscratchsize.go", + "exportlayer.go", + "getlayermountpath.go", + "getsharedbaseimages.go", + "grantvmaccess.go", + "importlayer.go", + "layerexists.go", + "layerid.go", + "layerutils.go", + "legacy.go", + "nametoguid.go", + "preparelayer.go", + "processimage.go", + "unpreparelayer.go", + "wclayer.go", + "zsyscall_windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/internal/wclayer", + importpath = "github.com/Microsoft/hcsshim/internal/wclayer", + visibility = ["//vendor/github.com/Microsoft/hcsshim:__subpackages__"], + deps = [ + "//vendor/github.com/Microsoft/go-winio:go_default_library", + "//vendor/github.com/Microsoft/go-winio/pkg/guid:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/hcserror:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/interop:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/log:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/longpath:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/oc:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/internal/safefile:go_default_library", + "//vendor/github.com/Microsoft/hcsshim/osversion:go_default_library", + "//vendor/github.com/sirupsen/logrus:go_default_library", + "//vendor/go.opencensus.io/trace:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/golang.org/x/sys/windows:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/hcsshim/osversion/BUILD b/vendor/github.com/Microsoft/hcsshim/osversion/BUILD new file mode 100644 index 0000000000000..a48de72eb965d --- /dev/null +++ b/vendor/github.com/Microsoft/hcsshim/osversion/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "osversion_windows.go", + "windowsbuilds.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/Microsoft/hcsshim/osversion", + importpath = "github.com/Microsoft/hcsshim/osversion", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/golang.org/x/sys/windows:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/NYTimes/gziphandler/BUILD b/vendor/github.com/NYTimes/gziphandler/BUILD new file mode 100644 index 0000000000000..bf10161eed351 --- /dev/null +++ b/vendor/github.com/NYTimes/gziphandler/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "gzip.go", + "gzip_go18.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/NYTimes/gziphandler", + importpath = "github.com/NYTimes/gziphandler", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/PuerkitoBio/purell/BUILD b/vendor/github.com/PuerkitoBio/purell/BUILD new file mode 100644 index 0000000000000..d6c2cb111adf3 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/purell/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["purell.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/PuerkitoBio/purell", + importpath = "github.com/PuerkitoBio/purell", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/PuerkitoBio/urlesc:go_default_library", + "//vendor/golang.org/x/net/idna:go_default_library", + "//vendor/golang.org/x/text/unicode/norm:go_default_library", + "//vendor/golang.org/x/text/width:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/PuerkitoBio/urlesc/BUILD b/vendor/github.com/PuerkitoBio/urlesc/BUILD new file mode 100644 index 0000000000000..70e9ba4af62e6 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/urlesc/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["urlesc.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/PuerkitoBio/urlesc", + importpath = "github.com/PuerkitoBio/urlesc", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/armon/circbuf/BUILD b/vendor/github.com/armon/circbuf/BUILD new file mode 100644 index 0000000000000..7834f001c7b7c --- /dev/null +++ b/vendor/github.com/armon/circbuf/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["circbuf.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/armon/circbuf", + importpath = "github.com/armon/circbuf", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/asaskevich/govalidator/BUILD b/vendor/github.com/asaskevich/govalidator/BUILD new file mode 100644 index 0000000000000..23a1ef7ac5c92 --- /dev/null +++ b/vendor/github.com/asaskevich/govalidator/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "arrays.go", + "converter.go", + "error.go", + "numerics.go", + "patterns.go", + "types.go", + "utils.go", + "validator.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/asaskevich/govalidator", + importpath = "github.com/asaskevich/govalidator", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/BUILD new file mode 100644 index 0000000000000..0f3f2653695f6 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/BUILD @@ -0,0 +1,59 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "config.go", + "context_1_5.go", + "context_1_9.go", + "context_background_1_5.go", + "context_background_1_7.go", + "context_sleep.go", + "convert_types.go", + "doc.go", + "errors.go", + "jsonvalue.go", + "logger.go", + "types.go", + "url.go", + "url_1_7.go", + "version.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws", + importpath = "github.com/aws/aws-sdk-go/aws", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/endpoints:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/internal/sdkio:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws/awsutil:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws/client:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws/corehandlers:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws/csm:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws/defaults:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws/ec2metadata:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws/endpoints:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws/request:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws/session:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws/signer/v4:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awserr/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/awserr/BUILD new file mode 100644 index 0000000000000..07cef4441b2e2 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/awserr/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "error.go", + "types.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws/awserr", + importpath = "github.com/aws/aws-sdk-go/aws/awserr", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/awsutil/BUILD new file mode 100644 index 0000000000000..187a5c2d6af11 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/awsutil/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "copy.go", + "equal.go", + "path_value.go", + "prettify.go", + "string_value.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws/awsutil", + importpath = "github.com/aws/aws-sdk-go/aws/awsutil", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/jmespath/go-jmespath:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/client/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/client/BUILD new file mode 100644 index 0000000000000..ec41fb0b29fef --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/client/BUILD @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "default_retryer.go", + "logger.go", + "no_op_retryer.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws/client", + importpath = "github.com/aws/aws-sdk-go/aws/client", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client/metadata:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/internal/sdkrand:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws/client/metadata:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/client/metadata/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/client/metadata/BUILD new file mode 100644 index 0000000000000..2f14a482c6976 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/client/metadata/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["client_info.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws/client/metadata", + importpath = "github.com/aws/aws-sdk-go/aws/client/metadata", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/BUILD new file mode 100644 index 0000000000000..483654bb63c35 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "handlers.go", + "param_validator.go", + "user_agent.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws/corehandlers", + importpath = "github.com/aws/aws-sdk-go/aws/corehandlers", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/credentials/BUILD new file mode 100644 index 0000000000000..b627ce37a2a96 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/BUILD @@ -0,0 +1,40 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "chain_provider.go", + "credentials.go", + "env_provider.go", + "shared_credentials_provider.go", + "static_provider.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws/credentials", + importpath = "github.com/aws/aws-sdk-go/aws/credentials", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/internal/ini:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/internal/shareddefaults:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/BUILD new file mode 100644 index 0000000000000..05f47d12fb4b8 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["ec2_role_provider.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds", + importpath = "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/ec2metadata:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/internal/sdkuri:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/BUILD new file mode 100644 index 0000000000000..af7666c1e20d4 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["provider.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds", + importpath = "github.com/aws/aws-sdk-go/aws/credentials/endpointcreds", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client/metadata:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/BUILD new file mode 100644 index 0000000000000..6c31f05f52fa8 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["provider.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds", + importpath = "github.com/aws/aws-sdk-go/aws/credentials/processcreds", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/internal/sdkio:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/BUILD new file mode 100644 index 0000000000000..cfa4dbd68915f --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "assume_role_provider.go", + "web_identity_provider.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds", + importpath = "github.com/aws/aws-sdk-go/aws/credentials/stscreds", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/internal/sdkrand:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/service/sts:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/service/sts/stsiface:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/csm/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/csm/BUILD new file mode 100644 index 0000000000000..c7123a6bf0a4a --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/csm/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "enable.go", + "metric.go", + "metric_chan.go", + "metric_exception.go", + "reporter.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws/csm", + importpath = "github.com/aws/aws-sdk-go/aws/csm", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/defaults/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/defaults/BUILD new file mode 100644 index 0000000000000..21072b1e53c3b --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/defaults/BUILD @@ -0,0 +1,38 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "defaults.go", + "shared_config.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws/defaults", + importpath = "github.com/aws/aws-sdk-go/aws/defaults", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/corehandlers:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/ec2metadata:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/endpoints:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/internal/shareddefaults:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/BUILD new file mode 100644 index 0000000000000..3c70477b984a2 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/BUILD @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "api.go", + "service.go", + "token_provider.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata", + importpath = "github.com/aws/aws-sdk-go/aws/ec2metadata", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client/metadata:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/corehandlers:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/internal/sdkuri:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/BUILD new file mode 100644 index 0000000000000..3dd7d18072182 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "decode.go", + "defaults.go", + "dep_service_ids.go", + "doc.go", + "endpoints.go", + "legacy_regions.go", + "v3model.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws/endpoints", + importpath = "github.com/aws/aws-sdk-go/aws/endpoints", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/request/BUILD new file mode 100644 index 0000000000000..6b167e0638ede --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/request/BUILD @@ -0,0 +1,45 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "connection_reset_error.go", + "handlers.go", + "http_request.go", + "offset_reader.go", + "request.go", + "request_1_7.go", + "request_1_8.go", + "request_context.go", + "request_context_1_6.go", + "request_pagination.go", + "retryer.go", + "timeout_read_closer.go", + "validation.go", + "waiter.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws/request", + importpath = "github.com/aws/aws-sdk-go/aws/request", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awsutil:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client/metadata:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/internal/sdkio:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/session/BUILD new file mode 100644 index 0000000000000..70c3481af43a3 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/session/BUILD @@ -0,0 +1,47 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "cabundle_transport.go", + "cabundle_transport_1_5.go", + "cabundle_transport_1_6.go", + "credentials.go", + "doc.go", + "env_config.go", + "session.go", + "shared_config.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws/session", + importpath = "github.com/aws/aws-sdk-go/aws/session", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/corehandlers:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/csm:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/defaults:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/endpoints:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/internal/ini:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/internal/shareddefaults:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/BUILD new file mode 100644 index 0000000000000..1166534047319 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/BUILD @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "header_rules.go", + "options.go", + "stream.go", + "uri_path.go", + "v4.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/aws/signer/v4", + importpath = "github.com/aws/aws-sdk-go/aws/signer/v4", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/internal/sdkio:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/internal/strings:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/rest:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/BUILD b/vendor/github.com/aws/aws-sdk-go/internal/ini/BUILD new file mode 100644 index 0000000000000..f710f9fcaf3ad --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/BUILD @@ -0,0 +1,47 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "ast.go", + "comma_token.go", + "comment_token.go", + "doc.go", + "empty_token.go", + "expression.go", + "ini.go", + "ini_lexer.go", + "ini_parser.go", + "literal_tokens.go", + "newline_token.go", + "number_helper.go", + "op_tokens.go", + "parse_error.go", + "parse_stack.go", + "sep_tokens.go", + "skipper.go", + "statement.go", + "value_util.go", + "visitor.go", + "walker.go", + "ws_token.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/internal/ini", + importpath = "github.com/aws/aws-sdk-go/internal/ini", + visibility = ["//vendor/github.com/aws/aws-sdk-go:__subpackages__"], + deps = ["//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sdkio/BUILD b/vendor/github.com/aws/aws-sdk-go/internal/sdkio/BUILD new file mode 100644 index 0000000000000..76f62d877e3c0 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/internal/sdkio/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "byte.go", + "io_go1.6.go", + "io_go1.7.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/internal/sdkio", + importpath = "github.com/aws/aws-sdk-go/internal/sdkio", + visibility = ["//vendor/github.com/aws/aws-sdk-go:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sdkmath/BUILD b/vendor/github.com/aws/aws-sdk-go/internal/sdkmath/BUILD new file mode 100644 index 0000000000000..60e8c3caeeedb --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/internal/sdkmath/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "floor.go", + "floor_go1.9.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/internal/sdkmath", + importpath = "github.com/aws/aws-sdk-go/internal/sdkmath", + visibility = ["//vendor/github.com/aws/aws-sdk-go:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sdkrand/BUILD b/vendor/github.com/aws/aws-sdk-go/internal/sdkrand/BUILD new file mode 100644 index 0000000000000..b537f70538a21 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/internal/sdkrand/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "locked_source.go", + "read.go", + "read_1_5.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/internal/sdkrand", + importpath = "github.com/aws/aws-sdk-go/internal/sdkrand", + visibility = ["//vendor/github.com/aws/aws-sdk-go:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sdkuri/BUILD b/vendor/github.com/aws/aws-sdk-go/internal/sdkuri/BUILD new file mode 100644 index 0000000000000..9f6a667c16066 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/internal/sdkuri/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["path.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/internal/sdkuri", + importpath = "github.com/aws/aws-sdk-go/internal/sdkuri", + visibility = ["//vendor/github.com/aws/aws-sdk-go:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/BUILD b/vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/BUILD new file mode 100644 index 0000000000000..86f88123733f2 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "ecs_container.go", + "shared_config.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/internal/shareddefaults", + importpath = "github.com/aws/aws-sdk-go/internal/shareddefaults", + visibility = ["//vendor/github.com/aws/aws-sdk-go:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/internal/strings/BUILD b/vendor/github.com/aws/aws-sdk-go/internal/strings/BUILD new file mode 100644 index 0000000000000..6a516155daa02 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/internal/strings/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["strings.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/internal/strings", + importpath = "github.com/aws/aws-sdk-go/internal/strings", + visibility = ["//vendor/github.com/aws/aws-sdk-go:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/BUILD new file mode 100644 index 0000000000000..ccf3cb073b76b --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/BUILD @@ -0,0 +1,48 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "host.go", + "host_prefix.go", + "idempotency.go", + "jsonvalue.go", + "payload.go", + "protocol.go", + "timestamp.go", + "unmarshal.go", + "unmarshal_error.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/private/protocol", + importpath = "github.com/aws/aws-sdk-go/private/protocol", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client/metadata:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/internal/sdkmath:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/query:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/rest:all-srcs", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/BUILD new file mode 100644 index 0000000000000..5475e4eac1c12 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "build.go", + "unmarshal.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query", + importpath = "github.com/aws/aws-sdk-go/private/protocol/ec2query", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/BUILD new file mode 100644 index 0000000000000..d6aff0bd75591 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "build.go", + "unmarshal.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil", + importpath = "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/BUILD new file mode 100644 index 0000000000000..0010f3e60cf19 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "jsonrpc.go", + "unmarshal_error.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc", + importpath = "github.com/aws/aws-sdk-go/private/protocol/jsonrpc", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/rest:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/BUILD new file mode 100644 index 0000000000000..f638f561376b9 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/BUILD @@ -0,0 +1,36 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "build.go", + "unmarshal.go", + "unmarshal_error.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/private/protocol/query", + importpath = "github.com/aws/aws-sdk-go/private/protocol/query", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/BUILD new file mode 100644 index 0000000000000..114bf02f53579 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["queryutil.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil", + importpath = "github.com/aws/aws-sdk-go/private/protocol/query/queryutil", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/aws/aws-sdk-go/private/protocol:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/BUILD new file mode 100644 index 0000000000000..9187f4ccf5969 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "build.go", + "payload.go", + "unmarshal.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/private/protocol/rest", + importpath = "github.com/aws/aws-sdk-go/private/protocol/rest", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/internal/strings:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/BUILD new file mode 100644 index 0000000000000..1d3f3ab0ba379 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "build.go", + "sort.go", + "unmarshal.go", + "xml_to_struct.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil", + importpath = "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/autoscaling/BUILD b/vendor/github.com/aws/aws-sdk-go/service/autoscaling/BUILD new file mode 100644 index 0000000000000..f6fedbc2008d3 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/autoscaling/BUILD @@ -0,0 +1,39 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "api.go", + "doc.go", + "errors.go", + "service.go", + "waiters.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/service/autoscaling", + importpath = "github.com/aws/aws-sdk-go/service/autoscaling", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awsutil:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client/metadata:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/signer/v4:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/query:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/BUILD b/vendor/github.com/aws/aws-sdk-go/service/ec2/BUILD new file mode 100644 index 0000000000000..ffe2f2c22676f --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "api.go", + "customizations.go", + "doc.go", + "errors.go", + "service.go", + "waiters.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/service/ec2", + importpath = "github.com/aws/aws-sdk-go/service/ec2", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awsutil:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client/metadata:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/endpoints:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/signer/v4:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/ecr/BUILD b/vendor/github.com/aws/aws-sdk-go/service/ecr/BUILD new file mode 100644 index 0000000000000..0438f92e6eb2d --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/ecr/BUILD @@ -0,0 +1,39 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "api.go", + "doc.go", + "errors.go", + "service.go", + "waiters.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/service/ecr", + importpath = "github.com/aws/aws-sdk-go/service/ecr", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awsutil:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client/metadata:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/signer/v4:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/elb/BUILD b/vendor/github.com/aws/aws-sdk-go/service/elb/BUILD new file mode 100644 index 0000000000000..a8cf5c02c2609 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/elb/BUILD @@ -0,0 +1,39 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "api.go", + "doc.go", + "errors.go", + "service.go", + "waiters.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/service/elb", + importpath = "github.com/aws/aws-sdk-go/service/elb", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awsutil:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client/metadata:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/signer/v4:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/query:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/elbv2/BUILD b/vendor/github.com/aws/aws-sdk-go/service/elbv2/BUILD new file mode 100644 index 0000000000000..05778dec14ed0 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/elbv2/BUILD @@ -0,0 +1,39 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "api.go", + "doc.go", + "errors.go", + "service.go", + "waiters.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/service/elbv2", + importpath = "github.com/aws/aws-sdk-go/service/elbv2", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awsutil:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client/metadata:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/signer/v4:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/query:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/kms/BUILD b/vendor/github.com/aws/aws-sdk-go/service/kms/BUILD new file mode 100644 index 0000000000000..2da091781eff4 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/kms/BUILD @@ -0,0 +1,38 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "api.go", + "doc.go", + "errors.go", + "service.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/service/kms", + importpath = "github.com/aws/aws-sdk-go/service/kms", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awsutil:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client/metadata:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/signer/v4:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/BUILD b/vendor/github.com/aws/aws-sdk-go/service/sts/BUILD new file mode 100644 index 0000000000000..3f9b213ccdbaf --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/sts/BUILD @@ -0,0 +1,42 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "api.go", + "customizations.go", + "doc.go", + "errors.go", + "service.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/service/sts", + importpath = "github.com/aws/aws-sdk-go/service/sts", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/awsutil:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/client/metadata:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/credentials:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/signer/v4:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/private/protocol/query:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/aws/aws-sdk-go/service/sts/stsiface:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/stsiface/BUILD b/vendor/github.com/aws/aws-sdk-go/service/sts/stsiface/BUILD new file mode 100644 index 0000000000000..b343717896ca6 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/sts/stsiface/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["interface.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/aws/aws-sdk-go/service/sts/stsiface", + importpath = "github.com/aws/aws-sdk-go/service/sts/stsiface", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/service/sts:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/beorn7/perks/quantile/BUILD b/vendor/github.com/beorn7/perks/quantile/BUILD new file mode 100644 index 0000000000000..645d5721b8ad6 --- /dev/null +++ b/vendor/github.com/beorn7/perks/quantile/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["stream.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/beorn7/perks/quantile", + importpath = "github.com/beorn7/perks/quantile", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/blang/semver/BUILD b/vendor/github.com/blang/semver/BUILD new file mode 100644 index 0000000000000..bac884eadb5c4 --- /dev/null +++ b/vendor/github.com/blang/semver/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "json.go", + "range.go", + "semver.go", + "sort.go", + "sql.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/blang/semver", + importpath = "github.com/blang/semver", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/caddyserver/caddy/caddyfile/BUILD b/vendor/github.com/caddyserver/caddy/caddyfile/BUILD new file mode 100644 index 0000000000000..8621c62fdea75 --- /dev/null +++ b/vendor/github.com/caddyserver/caddy/caddyfile/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "dispenser.go", + "json.go", + "lexer.go", + "parse.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/caddyserver/caddy/caddyfile", + importpath = "github.com/caddyserver/caddy/caddyfile", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/cespare/xxhash/v2/BUILD b/vendor/github.com/cespare/xxhash/v2/BUILD new file mode 100644 index 0000000000000..c5e9dff8f773d --- /dev/null +++ b/vendor/github.com/cespare/xxhash/v2/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "xxhash.go", + "xxhash_amd64.go", + "xxhash_amd64.s", + "xxhash_other.go", + "xxhash_unsafe.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/cespare/xxhash/v2", + importpath = "github.com/cespare/xxhash/v2", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/chai2010/gettext-go/gettext/BUILD b/vendor/github.com/chai2010/gettext-go/gettext/BUILD new file mode 100644 index 0000000000000..ada30d83d7d69 --- /dev/null +++ b/vendor/github.com/chai2010/gettext-go/gettext/BUILD @@ -0,0 +1,42 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "caller.go", + "doc.go", + "domain.go", + "domain_helper.go", + "fs.go", + "gettext.go", + "local.go", + "tr.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/chai2010/gettext-go/gettext", + importpath = "github.com/chai2010/gettext-go/gettext", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/chai2010/gettext-go/gettext/mo:go_default_library", + "//vendor/github.com/chai2010/gettext-go/gettext/plural:go_default_library", + "//vendor/github.com/chai2010/gettext-go/gettext/po:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/chai2010/gettext-go/gettext/mo:all-srcs", + "//vendor/github.com/chai2010/gettext-go/gettext/plural:all-srcs", + "//vendor/github.com/chai2010/gettext-go/gettext/po:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/chai2010/gettext-go/gettext/mo/BUILD b/vendor/github.com/chai2010/gettext-go/gettext/mo/BUILD new file mode 100644 index 0000000000000..d07e85cb53263 --- /dev/null +++ b/vendor/github.com/chai2010/gettext-go/gettext/mo/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "encoder.go", + "file.go", + "header.go", + "message.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/chai2010/gettext-go/gettext/mo", + importpath = "github.com/chai2010/gettext-go/gettext/mo", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/chai2010/gettext-go/gettext/plural/BUILD b/vendor/github.com/chai2010/gettext-go/gettext/plural/BUILD new file mode 100644 index 0000000000000..abc4d8f651a6d --- /dev/null +++ b/vendor/github.com/chai2010/gettext-go/gettext/plural/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "formula.go", + "table.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/chai2010/gettext-go/gettext/plural", + importpath = "github.com/chai2010/gettext-go/gettext/plural", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/chai2010/gettext-go/gettext/po/BUILD b/vendor/github.com/chai2010/gettext-go/gettext/po/BUILD new file mode 100644 index 0000000000000..1abd31c22f342 --- /dev/null +++ b/vendor/github.com/chai2010/gettext-go/gettext/po/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "comment.go", + "doc.go", + "file.go", + "header.go", + "line_reader.go", + "message.go", + "re.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/chai2010/gettext-go/gettext/po", + importpath = "github.com/chai2010/gettext-go/gettext/po", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/checkpoint-restore/go-criu/v4/BUILD b/vendor/github.com/checkpoint-restore/go-criu/v4/BUILD new file mode 100644 index 0000000000000..0f51ef68091e4 --- /dev/null +++ b/vendor/github.com/checkpoint-restore/go-criu/v4/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "main.go", + "notify.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/checkpoint-restore/go-criu/v4", + importpath = "github.com/checkpoint-restore/go-criu/v4", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/checkpoint-restore/go-criu/v4/rpc:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/checkpoint-restore/go-criu/v4/rpc:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/checkpoint-restore/go-criu/v4/rpc/BUILD b/vendor/github.com/checkpoint-restore/go-criu/v4/rpc/BUILD new file mode 100644 index 0000000000000..e6e2cb302b2c6 --- /dev/null +++ b/vendor/github.com/checkpoint-restore/go-criu/v4/rpc/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["rpc.pb.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/checkpoint-restore/go-criu/v4/rpc", + importpath = "github.com/checkpoint-restore/go-criu/v4/rpc", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/cilium/ebpf/BUILD b/vendor/github.com/cilium/ebpf/BUILD new file mode 100644 index 0000000000000..bc8c774c3b31b --- /dev/null +++ b/vendor/github.com/cilium/ebpf/BUILD @@ -0,0 +1,45 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "abi.go", + "collection.go", + "doc.go", + "elf_reader.go", + "linker.go", + "map.go", + "marshalers.go", + "prog.go", + "syscalls.go", + "types.go", + "types_string.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/cilium/ebpf", + importpath = "github.com/cilium/ebpf", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/cilium/ebpf/asm:go_default_library", + "//vendor/github.com/cilium/ebpf/internal:go_default_library", + "//vendor/github.com/cilium/ebpf/internal/btf:go_default_library", + "//vendor/github.com/cilium/ebpf/internal/unix:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/cilium/ebpf/asm:all-srcs", + "//vendor/github.com/cilium/ebpf/internal:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/cilium/ebpf/asm/BUILD b/vendor/github.com/cilium/ebpf/asm/BUILD new file mode 100644 index 0000000000000..826f0a873d3f2 --- /dev/null +++ b/vendor/github.com/cilium/ebpf/asm/BUILD @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "alu.go", + "alu_string.go", + "doc.go", + "func.go", + "func_string.go", + "instruction.go", + "jump.go", + "jump_string.go", + "load_store.go", + "load_store_string.go", + "opcode.go", + "opcode_string.go", + "register.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/cilium/ebpf/asm", + importpath = "github.com/cilium/ebpf/asm", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/cilium/ebpf/internal/BUILD b/vendor/github.com/cilium/ebpf/internal/BUILD new file mode 100644 index 0000000000000..5eacb314fe225 --- /dev/null +++ b/vendor/github.com/cilium/ebpf/internal/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "cpu.go", + "endian.go", + "errors.go", + "fd.go", + "feature.go", + "io.go", + "ptr.go", + "ptr_32_be.go", + "ptr_32_le.go", + "ptr_64.go", + "syscall.go", + "syscall_string.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/cilium/ebpf/internal", + importpath = "github.com/cilium/ebpf/internal", + visibility = ["//vendor/github.com/cilium/ebpf:__subpackages__"], + deps = ["//vendor/github.com/cilium/ebpf/internal/unix:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/cilium/ebpf/internal/btf:all-srcs", + "//vendor/github.com/cilium/ebpf/internal/unix:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/cilium/ebpf/internal/btf/BUILD b/vendor/github.com/cilium/ebpf/internal/btf/BUILD new file mode 100644 index 0000000000000..b25e83c0f4608 --- /dev/null +++ b/vendor/github.com/cilium/ebpf/internal/btf/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "btf.go", + "btf_types.go", + "doc.go", + "ext_info.go", + "strings.go", + "types.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/cilium/ebpf/internal/btf", + importpath = "github.com/cilium/ebpf/internal/btf", + visibility = ["//vendor/github.com/cilium/ebpf:__subpackages__"], + deps = [ + "//vendor/github.com/cilium/ebpf/asm:go_default_library", + "//vendor/github.com/cilium/ebpf/internal:go_default_library", + "//vendor/github.com/cilium/ebpf/internal/unix:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/cilium/ebpf/internal/unix/BUILD b/vendor/github.com/cilium/ebpf/internal/unix/BUILD new file mode 100644 index 0000000000000..e71282448f09a --- /dev/null +++ b/vendor/github.com/cilium/ebpf/internal/unix/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "types_linux.go", + "types_other.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/cilium/ebpf/internal/unix", + importpath = "github.com/cilium/ebpf/internal/unix", + visibility = ["//vendor/github.com/cilium/ebpf:__subpackages__"], + deps = select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/clusterhq/flocker-go/BUILD b/vendor/github.com/clusterhq/flocker-go/BUILD new file mode 100644 index 0000000000000..de2fc9bc51be9 --- /dev/null +++ b/vendor/github.com/clusterhq/flocker-go/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "doc.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/clusterhq/flocker-go", + importpath = "github.com/clusterhq/flocker-go", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/container-storage-interface/spec/lib/go/csi/BUILD b/vendor/github.com/container-storage-interface/spec/lib/go/csi/BUILD new file mode 100644 index 0000000000000..f680e6f4a9076 --- /dev/null +++ b/vendor/github.com/container-storage-interface/spec/lib/go/csi/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["csi.pb.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/container-storage-interface/spec/lib/go/csi", + importpath = "github.com/container-storage-interface/spec/lib/go/csi", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/golang/protobuf/protoc-gen-go/descriptor:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes/timestamp:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes/wrappers:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + "//vendor/google.golang.org/grpc/codes:go_default_library", + "//vendor/google.golang.org/grpc/status:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containerd/cgroups/stats/v1/BUILD b/vendor/github.com/containerd/cgroups/stats/v1/BUILD new file mode 100644 index 0000000000000..ec3e8d89f60fb --- /dev/null +++ b/vendor/github.com/containerd/cgroups/stats/v1/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "metrics.pb.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/containerd/cgroups/stats/v1", + importpath = "github.com/containerd/cgroups/stats/v1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containerd/console/BUILD b/vendor/github.com/containerd/console/BUILD new file mode 100644 index 0000000000000..637a3ac02d558 --- /dev/null +++ b/vendor/github.com/containerd/console/BUILD @@ -0,0 +1,65 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "console.go", + "console_linux.go", + "console_unix.go", + "console_windows.go", + "tc_darwin.go", + "tc_freebsd.go", + "tc_linux.go", + "tc_openbsd_cgo.go", + "tc_openbsd_nocgo.go", + "tc_solaris_cgo.go", + "tc_solaris_nocgo.go", + "tc_unix.go", + ], + cgo = True, + importmap = "k8s.io/kubernetes/vendor/github.com/containerd/console", + importpath = "github.com/containerd/console", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:ios": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:openbsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/golang.org/x/sys/windows:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containerd/containerd/api/services/containers/v1/BUILD b/vendor/github.com/containerd/containerd/api/services/containers/v1/BUILD new file mode 100644 index 0000000000000..4b37541c996e0 --- /dev/null +++ b/vendor/github.com/containerd/containerd/api/services/containers/v1/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["containers.pb.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/containerd/containerd/api/services/containers/v1", + importpath = "github.com/containerd/containerd/api/services/containers/v1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", + "//vendor/github.com/gogo/protobuf/types:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containerd/containerd/api/services/tasks/v1/BUILD b/vendor/github.com/containerd/containerd/api/services/tasks/v1/BUILD new file mode 100644 index 0000000000000..fdb83c566c6a5 --- /dev/null +++ b/vendor/github.com/containerd/containerd/api/services/tasks/v1/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["tasks.pb.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/containerd/containerd/api/services/tasks/v1", + importpath = "github.com/containerd/containerd/api/services/tasks/v1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/containerd/containerd/api/types:go_default_library", + "//vendor/github.com/containerd/containerd/api/types/task:go_default_library", + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/types:go_default_library", + "//vendor/github.com/opencontainers/go-digest:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containerd/containerd/api/services/version/v1/BUILD b/vendor/github.com/containerd/containerd/api/services/version/v1/BUILD new file mode 100644 index 0000000000000..4036da1f84750 --- /dev/null +++ b/vendor/github.com/containerd/containerd/api/services/version/v1/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["version.pb.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/containerd/containerd/api/services/version/v1", + importpath = "github.com/containerd/containerd/api/services/version/v1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/types:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containerd/containerd/api/types/BUILD b/vendor/github.com/containerd/containerd/api/types/BUILD new file mode 100644 index 0000000000000..35e1a8d187476 --- /dev/null +++ b/vendor/github.com/containerd/containerd/api/types/BUILD @@ -0,0 +1,38 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "descriptor.pb.go", + "doc.go", + "metrics.pb.go", + "mount.pb.go", + "platform.pb.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/containerd/containerd/api/types", + importpath = "github.com/containerd/containerd/api/types", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", + "//vendor/github.com/gogo/protobuf/types:go_default_library", + "//vendor/github.com/opencontainers/go-digest:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/containerd/containerd/api/types/task:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containerd/containerd/api/types/task/BUILD b/vendor/github.com/containerd/containerd/api/types/task/BUILD new file mode 100644 index 0000000000000..242dd5e03e192 --- /dev/null +++ b/vendor/github.com/containerd/containerd/api/types/task/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["task.pb.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/containerd/containerd/api/types/task", + importpath = "github.com/containerd/containerd/api/types/task", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containerd/containerd/containers/BUILD b/vendor/github.com/containerd/containerd/containers/BUILD new file mode 100644 index 0000000000000..6ddc8f628ce9b --- /dev/null +++ b/vendor/github.com/containerd/containerd/containers/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["containers.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/containerd/containerd/containers", + importpath = "github.com/containerd/containerd/containers", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/gogo/protobuf/types:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containerd/containerd/errdefs/BUILD b/vendor/github.com/containerd/containerd/errdefs/BUILD new file mode 100644 index 0000000000000..66bdd1c159037 --- /dev/null +++ b/vendor/github.com/containerd/containerd/errdefs/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "errors.go", + "grpc.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/containerd/containerd/errdefs", + importpath = "github.com/containerd/containerd/errdefs", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/google.golang.org/grpc/codes:go_default_library", + "//vendor/google.golang.org/grpc/status:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containerd/containerd/namespaces/BUILD b/vendor/github.com/containerd/containerd/namespaces/BUILD new file mode 100644 index 0000000000000..075b7a15f1511 --- /dev/null +++ b/vendor/github.com/containerd/containerd/namespaces/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "context.go", + "grpc.go", + "store.go", + "ttrpc.go", + "validate.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/containerd/containerd/namespaces", + importpath = "github.com/containerd/containerd/namespaces", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/containerd/containerd/errdefs:go_default_library", + "//vendor/github.com/containerd/ttrpc:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/google.golang.org/grpc/metadata:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containerd/containerd/pkg/dialer/BUILD b/vendor/github.com/containerd/containerd/pkg/dialer/BUILD new file mode 100644 index 0000000000000..53e359521d03c --- /dev/null +++ b/vendor/github.com/containerd/containerd/pkg/dialer/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "dialer.go", + "dialer_unix.go", + "dialer_windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/containerd/containerd/pkg/dialer", + importpath = "github.com/containerd/containerd/pkg/dialer", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/pkg/errors:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/github.com/Microsoft/go-winio:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containerd/ttrpc/BUILD b/vendor/github.com/containerd/ttrpc/BUILD new file mode 100644 index 0000000000000..46dafa40dc4b0 --- /dev/null +++ b/vendor/github.com/containerd/ttrpc/BUILD @@ -0,0 +1,51 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "channel.go", + "client.go", + "codec.go", + "config.go", + "handshake.go", + "interceptor.go", + "metadata.go", + "server.go", + "services.go", + "types.go", + "unixcreds_linux.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/containerd/ttrpc", + importpath = "github.com/containerd/ttrpc", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/github.com/sirupsen/logrus:go_default_library", + "//vendor/google.golang.org/genproto/googleapis/rpc/status:go_default_library", + "//vendor/google.golang.org/grpc/codes:go_default_library", + "//vendor/google.golang.org/grpc/status:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containernetworking/cni/libcni/BUILD b/vendor/github.com/containernetworking/cni/libcni/BUILD new file mode 100644 index 0000000000000..3eff91af15979 --- /dev/null +++ b/vendor/github.com/containernetworking/cni/libcni/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "api.go", + "conf.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/containernetworking/cni/libcni", + importpath = "github.com/containernetworking/cni/libcni", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/containernetworking/cni/pkg/invoke:go_default_library", + "//vendor/github.com/containernetworking/cni/pkg/types:go_default_library", + "//vendor/github.com/containernetworking/cni/pkg/utils:go_default_library", + "//vendor/github.com/containernetworking/cni/pkg/version:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containernetworking/cni/pkg/invoke/BUILD b/vendor/github.com/containernetworking/cni/pkg/invoke/BUILD new file mode 100644 index 0000000000000..5f8e394f8bc86 --- /dev/null +++ b/vendor/github.com/containernetworking/cni/pkg/invoke/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "args.go", + "delegate.go", + "exec.go", + "find.go", + "os_unix.go", + "os_windows.go", + "raw_exec.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/containernetworking/cni/pkg/invoke", + importpath = "github.com/containernetworking/cni/pkg/invoke", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/containernetworking/cni/pkg/types:go_default_library", + "//vendor/github.com/containernetworking/cni/pkg/version:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containernetworking/cni/pkg/types/020/BUILD b/vendor/github.com/containernetworking/cni/pkg/types/020/BUILD new file mode 100644 index 0000000000000..ff80d2b073f2d --- /dev/null +++ b/vendor/github.com/containernetworking/cni/pkg/types/020/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["types.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/containernetworking/cni/pkg/types/020", + importpath = "github.com/containernetworking/cni/pkg/types/020", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/containernetworking/cni/pkg/types:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containernetworking/cni/pkg/types/BUILD b/vendor/github.com/containernetworking/cni/pkg/types/BUILD new file mode 100644 index 0000000000000..7f0214ac435ab --- /dev/null +++ b/vendor/github.com/containernetworking/cni/pkg/types/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "args.go", + "types.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/containernetworking/cni/pkg/types", + importpath = "github.com/containernetworking/cni/pkg/types", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/containernetworking/cni/pkg/types/020:all-srcs", + "//vendor/github.com/containernetworking/cni/pkg/types/current:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containernetworking/cni/pkg/types/current/BUILD b/vendor/github.com/containernetworking/cni/pkg/types/current/BUILD new file mode 100644 index 0000000000000..9d8caea53cad7 --- /dev/null +++ b/vendor/github.com/containernetworking/cni/pkg/types/current/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["types.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/containernetworking/cni/pkg/types/current", + importpath = "github.com/containernetworking/cni/pkg/types/current", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/containernetworking/cni/pkg/types:go_default_library", + "//vendor/github.com/containernetworking/cni/pkg/types/020:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containernetworking/cni/pkg/utils/BUILD b/vendor/github.com/containernetworking/cni/pkg/utils/BUILD new file mode 100644 index 0000000000000..ae7d377b01925 --- /dev/null +++ b/vendor/github.com/containernetworking/cni/pkg/utils/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["utils.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/containernetworking/cni/pkg/utils", + importpath = "github.com/containernetworking/cni/pkg/utils", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/containernetworking/cni/pkg/types:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/containernetworking/cni/pkg/version/BUILD b/vendor/github.com/containernetworking/cni/pkg/version/BUILD new file mode 100644 index 0000000000000..7d5af179ebf8b --- /dev/null +++ b/vendor/github.com/containernetworking/cni/pkg/version/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "conf.go", + "plugin.go", + "reconcile.go", + "version.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/containernetworking/cni/pkg/version", + importpath = "github.com/containernetworking/cni/pkg/version", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/containernetworking/cni/pkg/types:go_default_library", + "//vendor/github.com/containernetworking/cni/pkg/types/020:go_default_library", + "//vendor/github.com/containernetworking/cni/pkg/types/current:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/coredns/corefile-migration/migration/BUILD b/vendor/github.com/coredns/corefile-migration/migration/BUILD new file mode 100644 index 0000000000000..85e758950792d --- /dev/null +++ b/vendor/github.com/coredns/corefile-migration/migration/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "migrate.go", + "notice.go", + "plugins.go", + "versions.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/coredns/corefile-migration/migration", + importpath = "github.com/coredns/corefile-migration/migration", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/coredns/corefile-migration/migration/corefile:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/coredns/corefile-migration/migration/corefile:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/coredns/corefile-migration/migration/corefile/BUILD b/vendor/github.com/coredns/corefile-migration/migration/corefile/BUILD new file mode 100644 index 0000000000000..5f424b6f9ad03 --- /dev/null +++ b/vendor/github.com/coredns/corefile-migration/migration/corefile/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["corefile.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/coredns/corefile-migration/migration/corefile", + importpath = "github.com/coredns/corefile-migration/migration/corefile", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/caddyserver/caddy/caddyfile:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/coreos/go-oidc/BUILD b/vendor/github.com/coreos/go-oidc/BUILD new file mode 100644 index 0000000000000..101c1145419c0 --- /dev/null +++ b/vendor/github.com/coreos/go-oidc/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "jose.go", + "jwks.go", + "oidc.go", + "verify.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/coreos/go-oidc", + importpath = "github.com/coreos/go-oidc", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/pquerna/cachecontrol:go_default_library", + "//vendor/golang.org/x/oauth2:go_default_library", + "//vendor/gopkg.in/square/go-jose.v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/coreos/go-semver/semver/BUILD b/vendor/github.com/coreos/go-semver/semver/BUILD new file mode 100644 index 0000000000000..954a98ac2ba81 --- /dev/null +++ b/vendor/github.com/coreos/go-semver/semver/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "semver.go", + "sort.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/coreos/go-semver/semver", + importpath = "github.com/coreos/go-semver/semver", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/coreos/go-systemd/daemon/BUILD b/vendor/github.com/coreos/go-systemd/daemon/BUILD new file mode 100644 index 0000000000000..cc00ac4aca616 --- /dev/null +++ b/vendor/github.com/coreos/go-systemd/daemon/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "sdnotify.go", + "watchdog.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/coreos/go-systemd/daemon", + importpath = "github.com/coreos/go-systemd/daemon", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/coreos/go-systemd/journal/BUILD b/vendor/github.com/coreos/go-systemd/journal/BUILD new file mode 100644 index 0000000000000..ec6fdd9069d6d --- /dev/null +++ b/vendor/github.com/coreos/go-systemd/journal/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["journal.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/coreos/go-systemd/journal", + importpath = "github.com/coreos/go-systemd/journal", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/coreos/go-systemd/util/BUILD b/vendor/github.com/coreos/go-systemd/util/BUILD new file mode 100644 index 0000000000000..0ae460234f2d3 --- /dev/null +++ b/vendor/github.com/coreos/go-systemd/util/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "util.go", + "util_cgo.go", + "util_stub.go", + ], + cgo = True, + importmap = "k8s.io/kubernetes/vendor/github.com/coreos/go-systemd/util", + importpath = "github.com/coreos/go-systemd/util", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/coreos/pkg/dlopen:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/coreos/go-systemd/v22/dbus/BUILD b/vendor/github.com/coreos/go-systemd/v22/dbus/BUILD new file mode 100644 index 0000000000000..1badc3846fb8d --- /dev/null +++ b/vendor/github.com/coreos/go-systemd/v22/dbus/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "dbus.go", + "methods.go", + "properties.go", + "set.go", + "subscription.go", + "subscription_set.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/coreos/go-systemd/v22/dbus", + importpath = "github.com/coreos/go-systemd/v22/dbus", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/godbus/dbus/v5:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/coreos/pkg/capnslog/BUILD b/vendor/github.com/coreos/pkg/capnslog/BUILD new file mode 100644 index 0000000000000..ccb1930ccb72a --- /dev/null +++ b/vendor/github.com/coreos/pkg/capnslog/BUILD @@ -0,0 +1,78 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "formatters.go", + "glog_formatter.go", + "init.go", + "init_windows.go", + "journald_formatter.go", + "log_hijack.go", + "logmap.go", + "pkg_logger.go", + "syslog_formatter.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/coreos/pkg/capnslog", + importpath = "github.com/coreos/pkg/capnslog", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:aix": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + ], + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + ], + "@io_bazel_rules_go//go/platform:dragonfly": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + ], + "@io_bazel_rules_go//go/platform:illumos": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + ], + "@io_bazel_rules_go//go/platform:ios": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + ], + "@io_bazel_rules_go//go/platform:js": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + ], + "@io_bazel_rules_go//go/platform:nacl": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + ], + "@io_bazel_rules_go//go/platform:netbsd": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + ], + "@io_bazel_rules_go//go/platform:openbsd": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + ], + "@io_bazel_rules_go//go/platform:plan9": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/coreos/pkg/dlopen/BUILD b/vendor/github.com/coreos/pkg/dlopen/BUILD new file mode 100644 index 0000000000000..b88ef091cc81e --- /dev/null +++ b/vendor/github.com/coreos/pkg/dlopen/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "dlopen.go", + "dlopen_example.go", + ], + cgo = True, + clinkopts = ["-ldl"], + importmap = "k8s.io/kubernetes/vendor/github.com/coreos/pkg/dlopen", + importpath = "github.com/coreos/pkg/dlopen", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/cpuguy83/go-md2man/v2/md2man/BUILD b/vendor/github.com/cpuguy83/go-md2man/v2/md2man/BUILD new file mode 100644 index 0000000000000..abe7e7e468982 --- /dev/null +++ b/vendor/github.com/cpuguy83/go-md2man/v2/md2man/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "md2man.go", + "roff.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/cpuguy83/go-md2man/v2/md2man", + importpath = "github.com/cpuguy83/go-md2man/v2/md2man", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/russross/blackfriday/v2:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/cyphar/filepath-securejoin/BUILD b/vendor/github.com/cyphar/filepath-securejoin/BUILD new file mode 100644 index 0000000000000..4268cd5c0fbbc --- /dev/null +++ b/vendor/github.com/cyphar/filepath-securejoin/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "join.go", + "vfs.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/cyphar/filepath-securejoin", + importpath = "github.com/cyphar/filepath-securejoin", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/pkg/errors:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/davecgh/go-spew/spew/BUILD b/vendor/github.com/davecgh/go-spew/spew/BUILD new file mode 100644 index 0000000000000..89d17c23d68c7 --- /dev/null +++ b/vendor/github.com/davecgh/go-spew/spew/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bypass.go", + "bypasssafe.go", + "common.go", + "config.go", + "doc.go", + "dump.go", + "format.go", + "spew.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/davecgh/go-spew/spew", + importpath = "github.com/davecgh/go-spew/spew", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/daviddengcn/go-colortext/BUILD b/vendor/github.com/daviddengcn/go-colortext/BUILD new file mode 100644 index 0000000000000..1baf6cb5776dd --- /dev/null +++ b/vendor/github.com/daviddengcn/go-colortext/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "ct.go", + "ct_ansi.go", + "ct_win.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/daviddengcn/go-colortext", + importpath = "github.com/daviddengcn/go-colortext", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/dgrijalva/jwt-go/BUILD b/vendor/github.com/dgrijalva/jwt-go/BUILD new file mode 100644 index 0000000000000..5cc911b259838 --- /dev/null +++ b/vendor/github.com/dgrijalva/jwt-go/BUILD @@ -0,0 +1,38 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "claims.go", + "doc.go", + "ecdsa.go", + "ecdsa_utils.go", + "errors.go", + "hmac.go", + "map_claims.go", + "none.go", + "parser.go", + "rsa.go", + "rsa_pss.go", + "rsa_utils.go", + "signing_method.go", + "token.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/dgrijalva/jwt-go", + importpath = "github.com/dgrijalva/jwt-go", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/distribution/digestset/BUILD b/vendor/github.com/docker/distribution/digestset/BUILD new file mode 100644 index 0000000000000..3e0ab8fa112b3 --- /dev/null +++ b/vendor/github.com/docker/distribution/digestset/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["set.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/distribution/digestset", + importpath = "github.com/docker/distribution/digestset", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/opencontainers/go-digest:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/distribution/reference/BUILD b/vendor/github.com/docker/distribution/reference/BUILD new file mode 100644 index 0000000000000..76fee6e161498 --- /dev/null +++ b/vendor/github.com/docker/distribution/reference/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "helpers.go", + "normalize.go", + "reference.go", + "regexp.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/distribution/reference", + importpath = "github.com/docker/distribution/reference", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/docker/distribution/digestset:go_default_library", + "//vendor/github.com/opencontainers/go-digest:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/distribution/registry/api/errcode/BUILD b/vendor/github.com/docker/distribution/registry/api/errcode/BUILD new file mode 100644 index 0000000000000..46519150ffc89 --- /dev/null +++ b/vendor/github.com/docker/distribution/registry/api/errcode/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "errors.go", + "handler.go", + "register.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/distribution/registry/api/errcode", + importpath = "github.com/docker/distribution/registry/api/errcode", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/api/BUILD b/vendor/github.com/docker/docker/api/BUILD new file mode 100644 index 0000000000000..54ae48a2e48dc --- /dev/null +++ b/vendor/github.com/docker/docker/api/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "common.go", + "common_unix.go", + "common_windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/api", + importpath = "github.com/docker/docker/api", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/docker/docker/api/types:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/api/types/BUILD b/vendor/github.com/docker/docker/api/types/BUILD new file mode 100644 index 0000000000000..5a35184c8269f --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/BUILD @@ -0,0 +1,69 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "auth.go", + "client.go", + "configs.go", + "error_response.go", + "graph_driver_data.go", + "id_response.go", + "image_delete_response_item.go", + "image_summary.go", + "plugin.go", + "plugin_device.go", + "plugin_env.go", + "plugin_interface_type.go", + "plugin_mount.go", + "plugin_responses.go", + "port.go", + "seccomp.go", + "service_update_response.go", + "stats.go", + "types.go", + "volume.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/api/types", + importpath = "github.com/docker/docker/api/types", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/docker/docker/api/types/container:go_default_library", + "//vendor/github.com/docker/docker/api/types/filters:go_default_library", + "//vendor/github.com/docker/docker/api/types/mount:go_default_library", + "//vendor/github.com/docker/docker/api/types/network:go_default_library", + "//vendor/github.com/docker/docker/api/types/registry:go_default_library", + "//vendor/github.com/docker/docker/api/types/swarm:go_default_library", + "//vendor/github.com/docker/go-connections/nat:go_default_library", + "//vendor/github.com/docker/go-units:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/docker/docker/api/types/blkiodev:all-srcs", + "//vendor/github.com/docker/docker/api/types/container:all-srcs", + "//vendor/github.com/docker/docker/api/types/events:all-srcs", + "//vendor/github.com/docker/docker/api/types/filters:all-srcs", + "//vendor/github.com/docker/docker/api/types/image:all-srcs", + "//vendor/github.com/docker/docker/api/types/mount:all-srcs", + "//vendor/github.com/docker/docker/api/types/network:all-srcs", + "//vendor/github.com/docker/docker/api/types/registry:all-srcs", + "//vendor/github.com/docker/docker/api/types/strslice:all-srcs", + "//vendor/github.com/docker/docker/api/types/swarm:all-srcs", + "//vendor/github.com/docker/docker/api/types/time:all-srcs", + "//vendor/github.com/docker/docker/api/types/versions:all-srcs", + "//vendor/github.com/docker/docker/api/types/volume:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/api/types/blkiodev/BUILD b/vendor/github.com/docker/docker/api/types/blkiodev/BUILD new file mode 100644 index 0000000000000..86a286dd3f1a1 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/blkiodev/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["blkio.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/api/types/blkiodev", + importpath = "github.com/docker/docker/api/types/blkiodev", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/api/types/container/BUILD b/vendor/github.com/docker/docker/api/types/container/BUILD new file mode 100644 index 0000000000000..917e5fd774904 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/container/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "config.go", + "container_changes.go", + "container_create.go", + "container_top.go", + "container_update.go", + "container_wait.go", + "host_config.go", + "hostconfig_unix.go", + "hostconfig_windows.go", + "waitcondition.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/api/types/container", + importpath = "github.com/docker/docker/api/types/container", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/docker/docker/api/types/blkiodev:go_default_library", + "//vendor/github.com/docker/docker/api/types/mount:go_default_library", + "//vendor/github.com/docker/docker/api/types/strslice:go_default_library", + "//vendor/github.com/docker/go-connections/nat:go_default_library", + "//vendor/github.com/docker/go-units:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/api/types/events/BUILD b/vendor/github.com/docker/docker/api/types/events/BUILD new file mode 100644 index 0000000000000..2e2c5bf9ddf77 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/events/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["events.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/api/types/events", + importpath = "github.com/docker/docker/api/types/events", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/api/types/filters/BUILD b/vendor/github.com/docker/docker/api/types/filters/BUILD new file mode 100644 index 0000000000000..5bf1db9c2044e --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/filters/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["parse.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/api/types/filters", + importpath = "github.com/docker/docker/api/types/filters", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/docker/docker/api/types/versions:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/api/types/image/BUILD b/vendor/github.com/docker/docker/api/types/image/BUILD new file mode 100644 index 0000000000000..1a385bd2d6b54 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/image/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["image_history.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/api/types/image", + importpath = "github.com/docker/docker/api/types/image", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/api/types/mount/BUILD b/vendor/github.com/docker/docker/api/types/mount/BUILD new file mode 100644 index 0000000000000..a299f301c241e --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/mount/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["mount.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/api/types/mount", + importpath = "github.com/docker/docker/api/types/mount", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/api/types/network/BUILD b/vendor/github.com/docker/docker/api/types/network/BUILD new file mode 100644 index 0000000000000..293850e1b48a7 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/network/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["network.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/api/types/network", + importpath = "github.com/docker/docker/api/types/network", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/docker/docker/api/types/filters:go_default_library", + "//vendor/github.com/docker/docker/errdefs:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/api/types/registry/BUILD b/vendor/github.com/docker/docker/api/types/registry/BUILD new file mode 100644 index 0000000000000..6e82898b0b561 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/registry/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "authenticate.go", + "registry.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/api/types/registry", + importpath = "github.com/docker/docker/api/types/registry", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/opencontainers/image-spec/specs-go/v1:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/api/types/strslice/BUILD b/vendor/github.com/docker/docker/api/types/strslice/BUILD new file mode 100644 index 0000000000000..265099fda231c --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/strslice/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["strslice.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/api/types/strslice", + importpath = "github.com/docker/docker/api/types/strslice", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/api/types/swarm/BUILD b/vendor/github.com/docker/docker/api/types/swarm/BUILD new file mode 100644 index 0000000000000..8f6b9868a937c --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/swarm/BUILD @@ -0,0 +1,43 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "common.go", + "config.go", + "container.go", + "network.go", + "node.go", + "runtime.go", + "secret.go", + "service.go", + "swarm.go", + "task.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/api/types/swarm", + importpath = "github.com/docker/docker/api/types/swarm", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/docker/docker/api/types/container:go_default_library", + "//vendor/github.com/docker/docker/api/types/mount:go_default_library", + "//vendor/github.com/docker/docker/api/types/network:go_default_library", + "//vendor/github.com/docker/docker/api/types/swarm/runtime:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/docker/docker/api/types/swarm/runtime:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/api/types/swarm/runtime/BUILD b/vendor/github.com/docker/docker/api/types/swarm/runtime/BUILD new file mode 100644 index 0000000000000..c0ce7e23e7cf9 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/swarm/runtime/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "gen.go", + "plugin.pb.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/api/types/swarm/runtime", + importpath = "github.com/docker/docker/api/types/swarm/runtime", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/gogo/protobuf/proto:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/api/types/time/BUILD b/vendor/github.com/docker/docker/api/types/time/BUILD new file mode 100644 index 0000000000000..253e5c2056218 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/time/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "duration_convert.go", + "timestamp.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/api/types/time", + importpath = "github.com/docker/docker/api/types/time", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/api/types/versions/BUILD b/vendor/github.com/docker/docker/api/types/versions/BUILD new file mode 100644 index 0000000000000..e964250c90da9 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/versions/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["compare.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/api/types/versions", + importpath = "github.com/docker/docker/api/types/versions", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/api/types/volume/BUILD b/vendor/github.com/docker/docker/api/types/volume/BUILD new file mode 100644 index 0000000000000..1d021e2ad5344 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/volume/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "volume_create.go", + "volume_list.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/api/types/volume", + importpath = "github.com/docker/docker/api/types/volume", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/docker/docker/api/types:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/client/BUILD b/vendor/github.com/docker/docker/client/BUILD new file mode 100644 index 0000000000000..86a55a9432a87 --- /dev/null +++ b/vendor/github.com/docker/docker/client/BUILD @@ -0,0 +1,159 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "build_cancel.go", + "build_prune.go", + "checkpoint_create.go", + "checkpoint_delete.go", + "checkpoint_list.go", + "client.go", + "client_deprecated.go", + "client_unix.go", + "client_windows.go", + "config_create.go", + "config_inspect.go", + "config_list.go", + "config_remove.go", + "config_update.go", + "container_attach.go", + "container_commit.go", + "container_copy.go", + "container_create.go", + "container_diff.go", + "container_exec.go", + "container_export.go", + "container_inspect.go", + "container_kill.go", + "container_list.go", + "container_logs.go", + "container_pause.go", + "container_prune.go", + "container_remove.go", + "container_rename.go", + "container_resize.go", + "container_restart.go", + "container_start.go", + "container_stats.go", + "container_stop.go", + "container_top.go", + "container_unpause.go", + "container_update.go", + "container_wait.go", + "disk_usage.go", + "distribution_inspect.go", + "errors.go", + "events.go", + "hijack.go", + "image_build.go", + "image_create.go", + "image_history.go", + "image_import.go", + "image_inspect.go", + "image_list.go", + "image_load.go", + "image_prune.go", + "image_pull.go", + "image_push.go", + "image_remove.go", + "image_save.go", + "image_search.go", + "image_tag.go", + "info.go", + "interface.go", + "interface_experimental.go", + "interface_stable.go", + "login.go", + "network_connect.go", + "network_create.go", + "network_disconnect.go", + "network_inspect.go", + "network_list.go", + "network_prune.go", + "network_remove.go", + "node_inspect.go", + "node_list.go", + "node_remove.go", + "node_update.go", + "options.go", + "ping.go", + "plugin_create.go", + "plugin_disable.go", + "plugin_enable.go", + "plugin_inspect.go", + "plugin_install.go", + "plugin_list.go", + "plugin_push.go", + "plugin_remove.go", + "plugin_set.go", + "plugin_upgrade.go", + "request.go", + "secret_create.go", + "secret_inspect.go", + "secret_list.go", + "secret_remove.go", + "secret_update.go", + "service_create.go", + "service_inspect.go", + "service_list.go", + "service_logs.go", + "service_remove.go", + "service_update.go", + "swarm_get_unlock_key.go", + "swarm_init.go", + "swarm_inspect.go", + "swarm_join.go", + "swarm_leave.go", + "swarm_unlock.go", + "swarm_update.go", + "task_inspect.go", + "task_list.go", + "task_logs.go", + "transport.go", + "utils.go", + "version.go", + "volume_create.go", + "volume_inspect.go", + "volume_list.go", + "volume_prune.go", + "volume_remove.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/client", + importpath = "github.com/docker/docker/client", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/docker/distribution/reference:go_default_library", + "//vendor/github.com/docker/docker/api:go_default_library", + "//vendor/github.com/docker/docker/api/types:go_default_library", + "//vendor/github.com/docker/docker/api/types/container:go_default_library", + "//vendor/github.com/docker/docker/api/types/events:go_default_library", + "//vendor/github.com/docker/docker/api/types/filters:go_default_library", + "//vendor/github.com/docker/docker/api/types/image:go_default_library", + "//vendor/github.com/docker/docker/api/types/network:go_default_library", + "//vendor/github.com/docker/docker/api/types/registry:go_default_library", + "//vendor/github.com/docker/docker/api/types/swarm:go_default_library", + "//vendor/github.com/docker/docker/api/types/time:go_default_library", + "//vendor/github.com/docker/docker/api/types/versions:go_default_library", + "//vendor/github.com/docker/docker/api/types/volume:go_default_library", + "//vendor/github.com/docker/docker/errdefs:go_default_library", + "//vendor/github.com/docker/go-connections/sockets:go_default_library", + "//vendor/github.com/docker/go-connections/tlsconfig:go_default_library", + "//vendor/github.com/opencontainers/go-digest:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/errdefs/BUILD b/vendor/github.com/docker/docker/errdefs/BUILD new file mode 100644 index 0000000000000..3d8b35a8a85bd --- /dev/null +++ b/vendor/github.com/docker/docker/errdefs/BUILD @@ -0,0 +1,36 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "defs.go", + "doc.go", + "helpers.go", + "http_helpers.go", + "is.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/errdefs", + importpath = "github.com/docker/docker/errdefs", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/containerd/containerd/errdefs:go_default_library", + "//vendor/github.com/docker/distribution/registry/api/errcode:go_default_library", + "//vendor/github.com/sirupsen/logrus:go_default_library", + "//vendor/google.golang.org/grpc/codes:go_default_library", + "//vendor/google.golang.org/grpc/status:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/pkg/jsonmessage/BUILD b/vendor/github.com/docker/docker/pkg/jsonmessage/BUILD new file mode 100644 index 0000000000000..707a1d24090c9 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/jsonmessage/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["jsonmessage.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/pkg/jsonmessage", + importpath = "github.com/docker/docker/pkg/jsonmessage", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/docker/docker/pkg/term:go_default_library", + "//vendor/github.com/docker/go-units:go_default_library", + "//vendor/github.com/morikuni/aec:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/pkg/stdcopy/BUILD b/vendor/github.com/docker/docker/pkg/stdcopy/BUILD new file mode 100644 index 0000000000000..d12c63eb29b84 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/stdcopy/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["stdcopy.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/pkg/stdcopy", + importpath = "github.com/docker/docker/pkg/stdcopy", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/pkg/term/BUILD b/vendor/github.com/docker/docker/pkg/term/BUILD new file mode 100644 index 0000000000000..54c7f55afad5f --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/term/BUILD @@ -0,0 +1,84 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "ascii.go", + "proxy.go", + "tc.go", + "term.go", + "term_windows.go", + "termios_bsd.go", + "termios_linux.go", + "winsize.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/pkg/term", + importpath = "github.com/docker/docker/pkg/term", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:aix": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:dragonfly": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:illumos": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:ios": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:js": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:nacl": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:netbsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:openbsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:plan9": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/github.com/Azure/go-ansiterm/winterm:go_default_library", + "//vendor/github.com/docker/docker/pkg/term/windows:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/docker/docker/pkg/term/windows:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/docker/pkg/term/windows/BUILD b/vendor/github.com/docker/docker/pkg/term/windows/BUILD new file mode 100644 index 0000000000000..41d5bb652ebe7 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/term/windows/BUILD @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "ansi_reader.go", + "ansi_writer.go", + "console.go", + "windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/docker/pkg/term/windows", + importpath = "github.com/docker/docker/pkg/term/windows", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/Azure/go-ansiterm:go_default_library", + "//vendor/github.com/sirupsen/logrus:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/github.com/Azure/go-ansiterm/winterm:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/go-connections/nat/BUILD b/vendor/github.com/docker/go-connections/nat/BUILD new file mode 100644 index 0000000000000..e35156fea56bd --- /dev/null +++ b/vendor/github.com/docker/go-connections/nat/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "nat.go", + "parse.go", + "sort.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/go-connections/nat", + importpath = "github.com/docker/go-connections/nat", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/go-connections/sockets/BUILD b/vendor/github.com/docker/go-connections/sockets/BUILD new file mode 100644 index 0000000000000..566439ca36e56 --- /dev/null +++ b/vendor/github.com/docker/go-connections/sockets/BUILD @@ -0,0 +1,39 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "inmem_socket.go", + "proxy.go", + "sockets.go", + "sockets_unix.go", + "sockets_windows.go", + "tcp_socket.go", + "unix_socket.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/go-connections/sockets", + importpath = "github.com/docker/go-connections/sockets", + visibility = ["//visibility:public"], + deps = [ + "//vendor/golang.org/x/net/proxy:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/github.com/Microsoft/go-winio:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/go-connections/tlsconfig/BUILD b/vendor/github.com/docker/go-connections/tlsconfig/BUILD new file mode 100644 index 0000000000000..937d6f965049b --- /dev/null +++ b/vendor/github.com/docker/go-connections/tlsconfig/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "certpool_go17.go", + "certpool_other.go", + "config.go", + "config_client_ciphers.go", + "config_legacy_client_ciphers.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/go-connections/tlsconfig", + importpath = "github.com/docker/go-connections/tlsconfig", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/pkg/errors:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/go-units/BUILD b/vendor/github.com/docker/go-units/BUILD new file mode 100644 index 0000000000000..7b61006532fa8 --- /dev/null +++ b/vendor/github.com/docker/go-units/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "duration.go", + "size.go", + "ulimit.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/go-units", + importpath = "github.com/docker/go-units", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/spdystream/BUILD b/vendor/github.com/docker/spdystream/BUILD new file mode 100644 index 0000000000000..9b5ad99c7fcee --- /dev/null +++ b/vendor/github.com/docker/spdystream/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "connection.go", + "handlers.go", + "priority.go", + "stream.go", + "utils.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/spdystream", + importpath = "github.com/docker/spdystream", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/docker/spdystream/spdy:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/docker/spdystream/spdy:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/docker/spdystream/spdy/BUILD b/vendor/github.com/docker/spdystream/spdy/BUILD new file mode 100644 index 0000000000000..fcf42c9ee2d47 --- /dev/null +++ b/vendor/github.com/docker/spdystream/spdy/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "dictionary.go", + "read.go", + "types.go", + "write.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/docker/spdystream/spdy", + importpath = "github.com/docker/spdystream/spdy", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/dustin/go-humanize/BUILD b/vendor/github.com/dustin/go-humanize/BUILD new file mode 100644 index 0000000000000..d39ac95515d90 --- /dev/null +++ b/vendor/github.com/dustin/go-humanize/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "big.go", + "bigbytes.go", + "bytes.go", + "comma.go", + "commaf.go", + "ftoa.go", + "humanize.go", + "number.go", + "ordinals.go", + "si.go", + "times.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/dustin/go-humanize", + importpath = "github.com/dustin/go-humanize", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/elazarl/goproxy/BUILD b/vendor/github.com/elazarl/goproxy/BUILD new file mode 100644 index 0000000000000..07287c386ae0f --- /dev/null +++ b/vendor/github.com/elazarl/goproxy/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "actions.go", + "certs.go", + "chunked.go", + "counterecryptor.go", + "ctx.go", + "dispatcher.go", + "doc.go", + "https.go", + "proxy.go", + "responses.go", + "signer.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/elazarl/goproxy", + importpath = "github.com/elazarl/goproxy", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/emicklei/go-restful/BUILD b/vendor/github.com/emicklei/go-restful/BUILD new file mode 100644 index 0000000000000..7e04eee526da6 --- /dev/null +++ b/vendor/github.com/emicklei/go-restful/BUILD @@ -0,0 +1,56 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "compress.go", + "compressor_cache.go", + "compressor_pools.go", + "compressors.go", + "constants.go", + "container.go", + "cors_filter.go", + "curly.go", + "curly_route.go", + "doc.go", + "entity_accessors.go", + "filter.go", + "json.go", + "jsr311.go", + "logger.go", + "mime.go", + "options_filter.go", + "parameter.go", + "path_expression.go", + "path_processor.go", + "request.go", + "response.go", + "route.go", + "route_builder.go", + "router.go", + "service_error.go", + "web_service.go", + "web_service_container.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/emicklei/go-restful", + importpath = "github.com/emicklei/go-restful", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/emicklei/go-restful/log:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/emicklei/go-restful/log:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/emicklei/go-restful/log/BUILD b/vendor/github.com/emicklei/go-restful/log/BUILD new file mode 100644 index 0000000000000..112f196316285 --- /dev/null +++ b/vendor/github.com/emicklei/go-restful/log/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["log.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/emicklei/go-restful/log", + importpath = "github.com/emicklei/go-restful/log", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/euank/go-kmsg-parser/kmsgparser/BUILD b/vendor/github.com/euank/go-kmsg-parser/kmsgparser/BUILD new file mode 100644 index 0000000000000..b2a54dde52678 --- /dev/null +++ b/vendor/github.com/euank/go-kmsg-parser/kmsgparser/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "kmsgparser.go", + "log.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/euank/go-kmsg-parser/kmsgparser", + importpath = "github.com/euank/go-kmsg-parser/kmsgparser", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/evanphx/json-patch/BUILD b/vendor/github.com/evanphx/json-patch/BUILD new file mode 100644 index 0000000000000..a1faebfa64d8c --- /dev/null +++ b/vendor/github.com/evanphx/json-patch/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "errors.go", + "merge.go", + "patch.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/evanphx/json-patch", + importpath = "github.com/evanphx/json-patch", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/pkg/errors:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/exponent-io/jsonpath/BUILD b/vendor/github.com/exponent-io/jsonpath/BUILD new file mode 100644 index 0000000000000..a19bf29e4b3b8 --- /dev/null +++ b/vendor/github.com/exponent-io/jsonpath/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "decoder.go", + "path.go", + "pathaction.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/exponent-io/jsonpath", + importpath = "github.com/exponent-io/jsonpath", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/fatih/camelcase/BUILD b/vendor/github.com/fatih/camelcase/BUILD new file mode 100644 index 0000000000000..bb20d35a290e0 --- /dev/null +++ b/vendor/github.com/fatih/camelcase/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["camelcase.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/fatih/camelcase", + importpath = "github.com/fatih/camelcase", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/fsnotify/fsnotify/BUILD b/vendor/github.com/fsnotify/fsnotify/BUILD new file mode 100644 index 0000000000000..9c51e325cd554 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/BUILD @@ -0,0 +1,59 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "fen.go", + "fsnotify.go", + "inotify.go", + "inotify_poller.go", + "kqueue.go", + "open_mode_bsd.go", + "open_mode_darwin.go", + "windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/fsnotify/fsnotify", + importpath = "github.com/fsnotify/fsnotify", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:dragonfly": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:ios": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:netbsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:openbsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/ghodss/yaml/BUILD b/vendor/github.com/ghodss/yaml/BUILD new file mode 100644 index 0000000000000..8a56ef2020825 --- /dev/null +++ b/vendor/github.com/ghodss/yaml/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "fields.go", + "yaml.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/ghodss/yaml", + importpath = "github.com/ghodss/yaml", + visibility = ["//visibility:public"], + deps = ["//vendor/gopkg.in/yaml.v2:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/go-bindata/go-bindata/BUILD b/vendor/github.com/go-bindata/go-bindata/BUILD new file mode 100644 index 0000000000000..5a618583866be --- /dev/null +++ b/vendor/github.com/go-bindata/go-bindata/BUILD @@ -0,0 +1,38 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "asset.go", + "bytewriter.go", + "config.go", + "convert.go", + "debug.go", + "doc.go", + "file.go", + "release.go", + "restore.go", + "stringwriter.go", + "toc.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/go-bindata/go-bindata", + importpath = "github.com/go-bindata/go-bindata", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/go-bindata/go-bindata/go-bindata:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/go-bindata/go-bindata/go-bindata/BUILD b/vendor/github.com/go-bindata/go-bindata/go-bindata/BUILD new file mode 100644 index 0000000000000..5ed33b4af48b5 --- /dev/null +++ b/vendor/github.com/go-bindata/go-bindata/go-bindata/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "AppendSliceValue.go", + "main.go", + "version.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/go-bindata/go-bindata/go-bindata", + importpath = "github.com/go-bindata/go-bindata/go-bindata", + visibility = ["//visibility:private"], + deps = ["//vendor/github.com/go-bindata/go-bindata:go_default_library"], +) + +go_binary( + name = "go-bindata", + embed = [":go_default_library"], + tags = ["manual"], + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/go-logr/logr/BUILD b/vendor/github.com/go-logr/logr/BUILD new file mode 100644 index 0000000000000..83b2778b49b64 --- /dev/null +++ b/vendor/github.com/go-logr/logr/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["logr.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/go-logr/logr", + importpath = "github.com/go-logr/logr", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/go-openapi/analysis/BUILD b/vendor/github.com/go-openapi/analysis/BUILD new file mode 100644 index 0000000000000..5ab9d7dce2f64 --- /dev/null +++ b/vendor/github.com/go-openapi/analysis/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "analyzer.go", + "debug.go", + "doc.go", + "fixer.go", + "flatten.go", + "mixin.go", + "schema.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/go-openapi/analysis", + importpath = "github.com/go-openapi/analysis", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/go-openapi/analysis/internal:go_default_library", + "//vendor/github.com/go-openapi/jsonpointer:go_default_library", + "//vendor/github.com/go-openapi/spec:go_default_library", + "//vendor/github.com/go-openapi/strfmt:go_default_library", + "//vendor/github.com/go-openapi/swag:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/go-openapi/analysis/internal:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/go-openapi/analysis/internal/BUILD b/vendor/github.com/go-openapi/analysis/internal/BUILD new file mode 100644 index 0000000000000..86adf9279f9d7 --- /dev/null +++ b/vendor/github.com/go-openapi/analysis/internal/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "post_go18.go", + "pre_go18.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/go-openapi/analysis/internal", + importpath = "github.com/go-openapi/analysis/internal", + visibility = ["//vendor/github.com/go-openapi/analysis:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/go-openapi/errors/BUILD b/vendor/github.com/go-openapi/errors/BUILD new file mode 100644 index 0000000000000..75ad75d400ac5 --- /dev/null +++ b/vendor/github.com/go-openapi/errors/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "api.go", + "auth.go", + "doc.go", + "headers.go", + "middleware.go", + "parsing.go", + "schema.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/go-openapi/errors", + importpath = "github.com/go-openapi/errors", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/go-openapi/jsonpointer/BUILD b/vendor/github.com/go-openapi/jsonpointer/BUILD new file mode 100644 index 0000000000000..bb6b7249c4546 --- /dev/null +++ b/vendor/github.com/go-openapi/jsonpointer/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["pointer.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/go-openapi/jsonpointer", + importpath = "github.com/go-openapi/jsonpointer", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/go-openapi/swag:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/go-openapi/jsonreference/BUILD b/vendor/github.com/go-openapi/jsonreference/BUILD new file mode 100644 index 0000000000000..c354bfa976f0c --- /dev/null +++ b/vendor/github.com/go-openapi/jsonreference/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["reference.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/go-openapi/jsonreference", + importpath = "github.com/go-openapi/jsonreference", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/PuerkitoBio/purell:go_default_library", + "//vendor/github.com/go-openapi/jsonpointer:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/go-openapi/loads/BUILD b/vendor/github.com/go-openapi/loads/BUILD new file mode 100644 index 0000000000000..bc0dccaa9275e --- /dev/null +++ b/vendor/github.com/go-openapi/loads/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "spec.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/go-openapi/loads", + importpath = "github.com/go-openapi/loads", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/go-openapi/analysis:go_default_library", + "//vendor/github.com/go-openapi/spec:go_default_library", + "//vendor/github.com/go-openapi/swag:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/go-openapi/runtime/BUILD b/vendor/github.com/go-openapi/runtime/BUILD new file mode 100644 index 0000000000000..44f522a0731d3 --- /dev/null +++ b/vendor/github.com/go-openapi/runtime/BUILD @@ -0,0 +1,46 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bytestream.go", + "client_auth_info.go", + "client_operation.go", + "client_request.go", + "client_response.go", + "constants.go", + "csv.go", + "discard.go", + "file.go", + "headers.go", + "interfaces.go", + "json.go", + "request.go", + "statuses.go", + "text.go", + "values.go", + "xml.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/go-openapi/runtime", + importpath = "github.com/go-openapi/runtime", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/go-openapi/errors:go_default_library", + "//vendor/github.com/go-openapi/strfmt:go_default_library", + "//vendor/github.com/go-openapi/swag:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/go-openapi/spec/BUILD b/vendor/github.com/go-openapi/spec/BUILD new file mode 100644 index 0000000000000..fac96e66561be --- /dev/null +++ b/vendor/github.com/go-openapi/spec/BUILD @@ -0,0 +1,55 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bindata.go", + "cache.go", + "contact_info.go", + "debug.go", + "expander.go", + "external_docs.go", + "header.go", + "info.go", + "items.go", + "license.go", + "normalizer.go", + "operation.go", + "parameter.go", + "path_item.go", + "paths.go", + "ref.go", + "response.go", + "responses.go", + "schema.go", + "schema_loader.go", + "security_scheme.go", + "spec.go", + "swagger.go", + "tag.go", + "unused.go", + "xml_object.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/go-openapi/spec", + importpath = "github.com/go-openapi/spec", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/go-openapi/jsonpointer:go_default_library", + "//vendor/github.com/go-openapi/jsonreference:go_default_library", + "//vendor/github.com/go-openapi/swag:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/go-openapi/strfmt/BUILD b/vendor/github.com/go-openapi/strfmt/BUILD new file mode 100644 index 0000000000000..93d4f3ed52a48 --- /dev/null +++ b/vendor/github.com/go-openapi/strfmt/BUILD @@ -0,0 +1,39 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bson.go", + "date.go", + "default.go", + "doc.go", + "duration.go", + "format.go", + "time.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/go-openapi/strfmt", + importpath = "github.com/go-openapi/strfmt", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/asaskevich/govalidator:go_default_library", + "//vendor/github.com/go-openapi/errors:go_default_library", + "//vendor/github.com/mitchellh/mapstructure:go_default_library", + "//vendor/go.mongodb.org/mongo-driver/bson:go_default_library", + "//vendor/go.mongodb.org/mongo-driver/bson/bsontype:go_default_library", + "//vendor/go.mongodb.org/mongo-driver/bson/primitive:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/go-openapi/swag/BUILD b/vendor/github.com/go-openapi/swag/BUILD new file mode 100644 index 0000000000000..11a44b94f111a --- /dev/null +++ b/vendor/github.com/go-openapi/swag/BUILD @@ -0,0 +1,44 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "convert.go", + "convert_types.go", + "doc.go", + "json.go", + "loading.go", + "name_lexem.go", + "net.go", + "path.go", + "post_go18.go", + "post_go19.go", + "pre_go18.go", + "pre_go19.go", + "split.go", + "util.go", + "yaml.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/go-openapi/swag", + importpath = "github.com/go-openapi/swag", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/mailru/easyjson/jlexer:go_default_library", + "//vendor/github.com/mailru/easyjson/jwriter:go_default_library", + "//vendor/gopkg.in/yaml.v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/go-openapi/validate/BUILD b/vendor/github.com/go-openapi/validate/BUILD new file mode 100644 index 0000000000000..e758a67c6b1b8 --- /dev/null +++ b/vendor/github.com/go-openapi/validate/BUILD @@ -0,0 +1,54 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "debug.go", + "default_validator.go", + "doc.go", + "example_validator.go", + "formats.go", + "helpers.go", + "object_validator.go", + "options.go", + "result.go", + "rexp.go", + "schema.go", + "schema_messages.go", + "schema_option.go", + "schema_props.go", + "slice_validator.go", + "spec.go", + "spec_messages.go", + "type.go", + "validator.go", + "values.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/go-openapi/validate", + importpath = "github.com/go-openapi/validate", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/go-openapi/analysis:go_default_library", + "//vendor/github.com/go-openapi/errors:go_default_library", + "//vendor/github.com/go-openapi/jsonpointer:go_default_library", + "//vendor/github.com/go-openapi/loads:go_default_library", + "//vendor/github.com/go-openapi/runtime:go_default_library", + "//vendor/github.com/go-openapi/spec:go_default_library", + "//vendor/github.com/go-openapi/strfmt:go_default_library", + "//vendor/github.com/go-openapi/swag:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/go-ozzo/ozzo-validation/BUILD b/vendor/github.com/go-ozzo/ozzo-validation/BUILD new file mode 100644 index 0000000000000..96ca75ad1839f --- /dev/null +++ b/vendor/github.com/go-ozzo/ozzo-validation/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "date.go", + "error.go", + "in.go", + "length.go", + "match.go", + "minmax.go", + "multipleof.go", + "not_in.go", + "not_nil.go", + "required.go", + "string.go", + "struct.go", + "util.go", + "validation.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/go-ozzo/ozzo-validation", + importpath = "github.com/go-ozzo/ozzo-validation", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/go-ozzo/ozzo-validation/is:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/go-ozzo/ozzo-validation/is/BUILD b/vendor/github.com/go-ozzo/ozzo-validation/is/BUILD new file mode 100644 index 0000000000000..95b6767cce576 --- /dev/null +++ b/vendor/github.com/go-ozzo/ozzo-validation/is/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["rules.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/go-ozzo/ozzo-validation/is", + importpath = "github.com/go-ozzo/ozzo-validation/is", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/asaskevich/govalidator:go_default_library", + "//vendor/github.com/go-ozzo/ozzo-validation:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/go-stack/stack/BUILD b/vendor/github.com/go-stack/stack/BUILD new file mode 100644 index 0000000000000..4746a090b3424 --- /dev/null +++ b/vendor/github.com/go-stack/stack/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["stack.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/go-stack/stack", + importpath = "github.com/go-stack/stack", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/godbus/dbus/v5/BUILD b/vendor/github.com/godbus/dbus/v5/BUILD new file mode 100644 index 0000000000000..d974a0b202d7c --- /dev/null +++ b/vendor/github.com/godbus/dbus/v5/BUILD @@ -0,0 +1,60 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "auth.go", + "auth_anonymous.go", + "auth_external.go", + "auth_sha1.go", + "call.go", + "conn.go", + "conn_darwin.go", + "conn_other.go", + "conn_unix.go", + "conn_windows.go", + "dbus.go", + "decoder.go", + "default_handler.go", + "doc.go", + "encoder.go", + "export.go", + "homedir.go", + "homedir_dynamic.go", + "match.go", + "message.go", + "object.go", + "server_interfaces.go", + "sig.go", + "transport_darwin.go", + "transport_generic.go", + "transport_nonce_tcp.go", + "transport_tcp.go", + "transport_unix.go", + "transport_unixcred_dragonfly.go", + "transport_unixcred_freebsd.go", + "transport_unixcred_linux.go", + "transport_unixcred_openbsd.go", + "variant.go", + "variant_lexer.go", + "variant_parser.go", + ], + cgo = True, + importmap = "k8s.io/kubernetes/vendor/github.com/godbus/dbus/v5", + importpath = "github.com/godbus/dbus/v5", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/gogoproto/BUILD b/vendor/github.com/gogo/protobuf/gogoproto/BUILD new file mode 100644 index 0000000000000..2487c5e64c6e3 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/gogoproto/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "gogo.pb.go", + "helper.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/gogoproto", + importpath = "github.com/gogo/protobuf/gogoproto", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/plugin/compare/BUILD b/vendor/github.com/gogo/protobuf/plugin/compare/BUILD new file mode 100644 index 0000000000000..e9574261c1de1 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/plugin/compare/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "compare.go", + "comparetest.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/plugin/compare", + importpath = "github.com/gogo/protobuf/plugin/compare", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/testgen:go_default_library", + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + "//vendor/github.com/gogo/protobuf/vanity:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/plugin/defaultcheck/BUILD b/vendor/github.com/gogo/protobuf/plugin/defaultcheck/BUILD new file mode 100644 index 0000000000000..e7f20bfd5854e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/plugin/defaultcheck/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["defaultcheck.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/plugin/defaultcheck", + importpath = "github.com/gogo/protobuf/plugin/defaultcheck", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/plugin/description/BUILD b/vendor/github.com/gogo/protobuf/plugin/description/BUILD new file mode 100644 index 0000000000000..07a105d9ea34c --- /dev/null +++ b/vendor/github.com/gogo/protobuf/plugin/description/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "description.go", + "descriptiontest.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/plugin/description", + importpath = "github.com/gogo/protobuf/plugin/description", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/testgen:go_default_library", + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/plugin/embedcheck/BUILD b/vendor/github.com/gogo/protobuf/plugin/embedcheck/BUILD new file mode 100644 index 0000000000000..30df3a5e27067 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/plugin/embedcheck/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["embedcheck.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/plugin/embedcheck", + importpath = "github.com/gogo/protobuf/plugin/embedcheck", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/plugin/enumstringer/BUILD b/vendor/github.com/gogo/protobuf/plugin/enumstringer/BUILD new file mode 100644 index 0000000000000..4a7c629bdaa4c --- /dev/null +++ b/vendor/github.com/gogo/protobuf/plugin/enumstringer/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["enumstringer.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/plugin/enumstringer", + importpath = "github.com/gogo/protobuf/plugin/enumstringer", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/plugin/equal/BUILD b/vendor/github.com/gogo/protobuf/plugin/equal/BUILD new file mode 100644 index 0000000000000..185c2a71ab229 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/plugin/equal/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "equal.go", + "equaltest.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/plugin/equal", + importpath = "github.com/gogo/protobuf/plugin/equal", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/testgen:go_default_library", + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + "//vendor/github.com/gogo/protobuf/vanity:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/plugin/face/BUILD b/vendor/github.com/gogo/protobuf/plugin/face/BUILD new file mode 100644 index 0000000000000..bd3f24c26f13c --- /dev/null +++ b/vendor/github.com/gogo/protobuf/plugin/face/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "face.go", + "facetest.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/plugin/face", + importpath = "github.com/gogo/protobuf/plugin/face", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/testgen:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/plugin/gostring/BUILD b/vendor/github.com/gogo/protobuf/plugin/gostring/BUILD new file mode 100644 index 0000000000000..e49b1016a69d5 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/plugin/gostring/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "gostring.go", + "gostringtest.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/plugin/gostring", + importpath = "github.com/gogo/protobuf/plugin/gostring", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/testgen:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/plugin/marshalto/BUILD b/vendor/github.com/gogo/protobuf/plugin/marshalto/BUILD new file mode 100644 index 0000000000000..768ebdfa651a1 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/plugin/marshalto/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["marshalto.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/plugin/marshalto", + importpath = "github.com/gogo/protobuf/plugin/marshalto", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + "//vendor/github.com/gogo/protobuf/vanity:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/plugin/oneofcheck/BUILD b/vendor/github.com/gogo/protobuf/plugin/oneofcheck/BUILD new file mode 100644 index 0000000000000..7418128fd5ae6 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/plugin/oneofcheck/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["oneofcheck.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/plugin/oneofcheck", + importpath = "github.com/gogo/protobuf/plugin/oneofcheck", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/plugin/populate/BUILD b/vendor/github.com/gogo/protobuf/plugin/populate/BUILD new file mode 100644 index 0000000000000..5f6e4f23d3cc9 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/plugin/populate/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["populate.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/plugin/populate", + importpath = "github.com/gogo/protobuf/plugin/populate", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + "//vendor/github.com/gogo/protobuf/vanity:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/plugin/size/BUILD b/vendor/github.com/gogo/protobuf/plugin/size/BUILD new file mode 100644 index 0000000000000..d42a7d7d3a1d5 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/plugin/size/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "size.go", + "sizetest.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/plugin/size", + importpath = "github.com/gogo/protobuf/plugin/size", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/testgen:go_default_library", + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + "//vendor/github.com/gogo/protobuf/vanity:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/plugin/stringer/BUILD b/vendor/github.com/gogo/protobuf/plugin/stringer/BUILD new file mode 100644 index 0000000000000..a4c075690c783 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/plugin/stringer/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "stringer.go", + "stringertest.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/plugin/stringer", + importpath = "github.com/gogo/protobuf/plugin/stringer", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/testgen:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/plugin/testgen/BUILD b/vendor/github.com/gogo/protobuf/plugin/testgen/BUILD new file mode 100644 index 0000000000000..dd86d504646e4 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/plugin/testgen/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["testgen.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/plugin/testgen", + importpath = "github.com/gogo/protobuf/plugin/testgen", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/plugin/union/BUILD b/vendor/github.com/gogo/protobuf/plugin/union/BUILD new file mode 100644 index 0000000000000..b00af8639f21e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/plugin/union/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "union.go", + "uniontest.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/plugin/union", + importpath = "github.com/gogo/protobuf/plugin/union", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/testgen:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/plugin/unmarshal/BUILD b/vendor/github.com/gogo/protobuf/plugin/unmarshal/BUILD new file mode 100644 index 0000000000000..0e000f4a605d6 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/plugin/unmarshal/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["unmarshal.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/plugin/unmarshal", + importpath = "github.com/gogo/protobuf/plugin/unmarshal", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go b/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go index 9a2374b563f37..fae67de4fd9b3 100644 --- a/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go +++ b/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go @@ -844,7 +844,7 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip p.P(`return err`) p.Out() p.P(`}`) - p.P(`if skippy < 0 {`) + p.P(`if (skippy < 0) || (iNdEx + skippy) < 0 {`) p.In() p.P(`return ErrInvalidLength`, p.localName) p.Out() @@ -1484,12 +1484,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { p.P(`return err`) p.Out() p.P(`}`) - p.P(`if skippy < 0 {`) - p.In() - p.P(`return ErrInvalidLength`, p.localName) - p.Out() - p.P(`}`) - p.P(`if (iNdEx + skippy) < 0 {`) + p.P(`if (skippy < 0) || (iNdEx + skippy) < 0 {`) p.In() p.P(`return ErrInvalidLength`, p.localName) p.Out() @@ -1512,12 +1507,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) { p.P(`return err`) p.Out() p.P(`}`) - p.P(`if skippy < 0 {`) - p.In() - p.P(`return ErrInvalidLength`, p.localName) - p.Out() - p.P(`}`) - p.P(`if (iNdEx + skippy) < 0 {`) + p.P(`if (skippy < 0) || (iNdEx + skippy) < 0 {`) p.In() p.P(`return ErrInvalidLength`, p.localName) p.Out() diff --git a/vendor/github.com/gogo/protobuf/proto/BUILD b/vendor/github.com/gogo/protobuf/proto/BUILD new file mode 100644 index 0000000000000..7e9d39a24c8e2 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/proto/BUILD @@ -0,0 +1,58 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "clone.go", + "custom_gogo.go", + "decode.go", + "deprecated.go", + "discard.go", + "duration.go", + "duration_gogo.go", + "encode.go", + "encode_gogo.go", + "equal.go", + "extensions.go", + "extensions_gogo.go", + "lib.go", + "lib_gogo.go", + "message_set.go", + "pointer_reflect.go", + "pointer_reflect_gogo.go", + "pointer_unsafe.go", + "pointer_unsafe_gogo.go", + "properties.go", + "properties_gogo.go", + "skip_gogo.go", + "table_marshal.go", + "table_marshal_gogo.go", + "table_merge.go", + "table_unmarshal.go", + "table_unmarshal_gogo.go", + "text.go", + "text_gogo.go", + "text_parser.go", + "timestamp.go", + "timestamp_gogo.go", + "wrappers.go", + "wrappers_gogo.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/proto", + importpath = "github.com/gogo/protobuf/proto", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/proto/text_parser.go b/vendor/github.com/gogo/protobuf/proto/text_parser.go index 1ce0be2fa9bee..f85c0cc81a768 100644 --- a/vendor/github.com/gogo/protobuf/proto/text_parser.go +++ b/vendor/github.com/gogo/protobuf/proto/text_parser.go @@ -318,7 +318,7 @@ func unescape(s string) (ch string, tail string, err error) { if i > utf8.MaxRune { return "", "", fmt.Errorf(`\%c%s is not a valid Unicode code point`, r, ss) } - return string(i), s, nil + return string(rune(i)), s, nil } return "", "", fmt.Errorf(`unknown escape \%c`, r) } diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/BUILD b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/BUILD new file mode 100644 index 0000000000000..924f248da73de --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "descriptor.go", + "descriptor.pb.go", + "descriptor_gostring.gen.go", + "helper.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor", + importpath = "github.com/gogo/protobuf/protoc-gen-gogo/descriptor", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/gogo/protobuf/proto:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/BUILD b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/BUILD new file mode 100644 index 0000000000000..f4066a24c5216 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/BUILD @@ -0,0 +1,36 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "generator.go", + "helper.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator", + importpath = "github.com/gogo/protobuf/protoc-gen-gogo/generator", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/internal/remap:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/internal/remap:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/internal/remap/BUILD b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/internal/remap/BUILD new file mode 100644 index 0000000000000..25d629b68a5fc --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/internal/remap/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["remap.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/internal/remap", + importpath = "github.com/gogo/protobuf/protoc-gen-gogo/generator/internal/remap", + visibility = ["//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/BUILD b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/BUILD new file mode 100644 index 0000000000000..b31609c3b0bfc --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["grpc.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc", + importpath = "github.com/gogo/protobuf/protoc-gen-gogo/grpc", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/BUILD b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/BUILD new file mode 100644 index 0000000000000..7bf1fb04600e8 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["plugin.pb.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin", + importpath = "github.com/gogo/protobuf/protoc-gen-gogo/plugin", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/sortkeys/BUILD b/vendor/github.com/gogo/protobuf/sortkeys/BUILD new file mode 100644 index 0000000000000..1ae954ed83305 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/sortkeys/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["sortkeys.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/sortkeys", + importpath = "github.com/gogo/protobuf/sortkeys", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/types/BUILD b/vendor/github.com/gogo/protobuf/types/BUILD new file mode 100644 index 0000000000000..371d62d8e6c06 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/types/BUILD @@ -0,0 +1,46 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "any.go", + "any.pb.go", + "api.pb.go", + "doc.go", + "duration.go", + "duration.pb.go", + "duration_gogo.go", + "empty.pb.go", + "field_mask.pb.go", + "protosize.go", + "source_context.pb.go", + "struct.pb.go", + "timestamp.go", + "timestamp.pb.go", + "timestamp_gogo.go", + "type.pb.go", + "wrappers.pb.go", + "wrappers_gogo.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/types", + importpath = "github.com/gogo/protobuf/types", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/types/any.pb.go b/vendor/github.com/gogo/protobuf/types/any.pb.go index 98e269d5439e3..e3d4d9490f5e3 100644 --- a/vendor/github.com/gogo/protobuf/types/any.pb.go +++ b/vendor/github.com/gogo/protobuf/types/any.pb.go @@ -592,10 +592,7 @@ func (m *Any) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthAny - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthAny } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/api.pb.go b/vendor/github.com/gogo/protobuf/types/api.pb.go index 58bf4b53b326a..83e8869206fe2 100644 --- a/vendor/github.com/gogo/protobuf/types/api.pb.go +++ b/vendor/github.com/gogo/protobuf/types/api.pb.go @@ -1677,10 +1677,7 @@ func (m *Api) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -1920,10 +1917,7 @@ func (m *Method) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { @@ -2038,10 +2032,7 @@ func (m *Mixin) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthApi } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/duration.pb.go b/vendor/github.com/gogo/protobuf/types/duration.pb.go index 3959f0669098d..4deafcb1ce957 100644 --- a/vendor/github.com/gogo/protobuf/types/duration.pb.go +++ b/vendor/github.com/gogo/protobuf/types/duration.pb.go @@ -415,10 +415,7 @@ func (m *Duration) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthDuration - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthDuration } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/empty.pb.go b/vendor/github.com/gogo/protobuf/types/empty.pb.go index 17e3aa5583946..9e94748b3a33b 100644 --- a/vendor/github.com/gogo/protobuf/types/empty.pb.go +++ b/vendor/github.com/gogo/protobuf/types/empty.pb.go @@ -360,10 +360,7 @@ func (m *Empty) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthEmpty - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthEmpty } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/field_mask.pb.go b/vendor/github.com/gogo/protobuf/types/field_mask.pb.go index 7226b57f7353a..6ae346d92527c 100644 --- a/vendor/github.com/gogo/protobuf/types/field_mask.pb.go +++ b/vendor/github.com/gogo/protobuf/types/field_mask.pb.go @@ -636,10 +636,7 @@ func (m *FieldMask) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthFieldMask - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthFieldMask } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/source_context.pb.go b/vendor/github.com/gogo/protobuf/types/source_context.pb.go index 61045ce10d5dc..8e6ce71b275eb 100644 --- a/vendor/github.com/gogo/protobuf/types/source_context.pb.go +++ b/vendor/github.com/gogo/protobuf/types/source_context.pb.go @@ -422,10 +422,7 @@ func (m *SourceContext) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthSourceContext - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthSourceContext } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/struct.pb.go b/vendor/github.com/gogo/protobuf/types/struct.pb.go index cea553eef6014..c0457312e67f5 100644 --- a/vendor/github.com/gogo/protobuf/types/struct.pb.go +++ b/vendor/github.com/gogo/protobuf/types/struct.pb.go @@ -1862,7 +1862,7 @@ func (m *Struct) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthStruct } if (iNdEx + skippy) > postIndex { @@ -1879,10 +1879,7 @@ func (m *Struct) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthStruct - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthStruct } if (iNdEx + skippy) > l { @@ -2087,10 +2084,7 @@ func (m *Value) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthStruct - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthStruct } if (iNdEx + skippy) > l { @@ -2175,10 +2169,7 @@ func (m *ListValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthStruct - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthStruct } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/timestamp.pb.go b/vendor/github.com/gogo/protobuf/types/timestamp.pb.go index b818752670c8a..45db7b3bb1c8a 100644 --- a/vendor/github.com/gogo/protobuf/types/timestamp.pb.go +++ b/vendor/github.com/gogo/protobuf/types/timestamp.pb.go @@ -437,10 +437,7 @@ func (m *Timestamp) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTimestamp - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTimestamp } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/type.pb.go b/vendor/github.com/gogo/protobuf/types/type.pb.go index 13b7ec02f79aa..791427bb228aa 100644 --- a/vendor/github.com/gogo/protobuf/types/type.pb.go +++ b/vendor/github.com/gogo/protobuf/types/type.pb.go @@ -2483,10 +2483,7 @@ func (m *Type) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthType - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthType } if (iNdEx + skippy) > l { @@ -2795,10 +2792,7 @@ func (m *Field) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthType - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthType } if (iNdEx + skippy) > l { @@ -3004,10 +2998,7 @@ func (m *Enum) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthType - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthType } if (iNdEx + skippy) > l { @@ -3143,10 +3134,7 @@ func (m *EnumValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthType - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthType } if (iNdEx + skippy) > l { @@ -3265,10 +3253,7 @@ func (m *Option) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthType - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthType } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/types/wrappers.pb.go b/vendor/github.com/gogo/protobuf/types/wrappers.pb.go index 8f1edb57d309a..8d415420a74d8 100644 --- a/vendor/github.com/gogo/protobuf/types/wrappers.pb.go +++ b/vendor/github.com/gogo/protobuf/types/wrappers.pb.go @@ -2020,10 +2020,7 @@ func (m *DoubleValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { @@ -2085,10 +2082,7 @@ func (m *FloatValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { @@ -2158,10 +2152,7 @@ func (m *Int64Value) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { @@ -2231,10 +2222,7 @@ func (m *UInt64Value) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { @@ -2304,10 +2292,7 @@ func (m *Int32Value) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { @@ -2377,10 +2362,7 @@ func (m *UInt32Value) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { @@ -2451,10 +2433,7 @@ func (m *BoolValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { @@ -2537,10 +2516,7 @@ func (m *StringValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { @@ -2625,10 +2601,7 @@ func (m *BytesValue) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthWrappers - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthWrappers } if (iNdEx + skippy) > l { diff --git a/vendor/github.com/gogo/protobuf/vanity/BUILD b/vendor/github.com/gogo/protobuf/vanity/BUILD new file mode 100644 index 0000000000000..a7cd66deb10f5 --- /dev/null +++ b/vendor/github.com/gogo/protobuf/vanity/BUILD @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "enum.go", + "field.go", + "file.go", + "foreach.go", + "msg.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/vanity", + importpath = "github.com/gogo/protobuf/vanity", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/gogo/protobuf/vanity/command:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gogo/protobuf/vanity/command/BUILD b/vendor/github.com/gogo/protobuf/vanity/command/BUILD new file mode 100644 index 0000000000000..e073a0c68188e --- /dev/null +++ b/vendor/github.com/gogo/protobuf/vanity/command/BUILD @@ -0,0 +1,45 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["command.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/gogo/protobuf/vanity/command", + importpath = "github.com/gogo/protobuf/vanity/command", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/plugin/compare:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/defaultcheck:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/description:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/embedcheck:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/enumstringer:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/equal:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/face:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/gostring:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/marshalto:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/oneofcheck:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/populate:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/size:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/stringer:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/testgen:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/union:go_default_library", + "//vendor/github.com/gogo/protobuf/plugin/unmarshal:go_default_library", + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc:go_default_library", + "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/golang/groupcache/lru/BUILD b/vendor/github.com/golang/groupcache/lru/BUILD new file mode 100644 index 0000000000000..021d745749738 --- /dev/null +++ b/vendor/github.com/golang/groupcache/lru/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["lru.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/golang/groupcache/lru", + importpath = "github.com/golang/groupcache/lru", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/golang/mock/gomock/BUILD b/vendor/github.com/golang/mock/gomock/BUILD new file mode 100644 index 0000000000000..7cd2f5ecb43cf --- /dev/null +++ b/vendor/github.com/golang/mock/gomock/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "call.go", + "callset.go", + "controller.go", + "matchers.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/golang/mock/gomock", + importpath = "github.com/golang/mock/gomock", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/golang/protobuf/jsonpb/BUILD b/vendor/github.com/golang/protobuf/jsonpb/BUILD new file mode 100644 index 0000000000000..9f78b38f5c538 --- /dev/null +++ b/vendor/github.com/golang/protobuf/jsonpb/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "decode.go", + "encode.go", + "json.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/golang/protobuf/jsonpb", + importpath = "github.com/golang/protobuf/jsonpb", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/google.golang.org/protobuf/encoding/protojson:go_default_library", + "//vendor/google.golang.org/protobuf/proto:go_default_library", + "//vendor/google.golang.org/protobuf/reflect/protoreflect:go_default_library", + "//vendor/google.golang.org/protobuf/reflect/protoregistry:go_default_library", + "//vendor/google.golang.org/protobuf/runtime/protoimpl:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/golang/protobuf/proto/BUILD b/vendor/github.com/golang/protobuf/proto/BUILD new file mode 100644 index 0000000000000..c89303dd3297d --- /dev/null +++ b/vendor/github.com/golang/protobuf/proto/BUILD @@ -0,0 +1,45 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "buffer.go", + "defaults.go", + "deprecated.go", + "discard.go", + "extensions.go", + "properties.go", + "proto.go", + "registry.go", + "text_decode.go", + "text_encode.go", + "wire.go", + "wrappers.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/golang/protobuf/proto", + importpath = "github.com/golang/protobuf/proto", + visibility = ["//visibility:public"], + deps = [ + "//vendor/google.golang.org/protobuf/encoding/prototext:go_default_library", + "//vendor/google.golang.org/protobuf/encoding/protowire:go_default_library", + "//vendor/google.golang.org/protobuf/proto:go_default_library", + "//vendor/google.golang.org/protobuf/reflect/protoreflect:go_default_library", + "//vendor/google.golang.org/protobuf/reflect/protoregistry:go_default_library", + "//vendor/google.golang.org/protobuf/runtime/protoiface:go_default_library", + "//vendor/google.golang.org/protobuf/runtime/protoimpl:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/BUILD b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/BUILD new file mode 100644 index 0000000000000..d3171a3d166e8 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["descriptor.pb.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor", + importpath = "github.com/golang/protobuf/protoc-gen-go/descriptor", + visibility = ["//visibility:public"], + deps = [ + "//vendor/google.golang.org/protobuf/reflect/protoreflect:go_default_library", + "//vendor/google.golang.org/protobuf/runtime/protoimpl:go_default_library", + "//vendor/google.golang.org/protobuf/types/descriptorpb:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/generator/BUILD b/vendor/github.com/golang/protobuf/protoc-gen-go/generator/BUILD new file mode 100644 index 0000000000000..2cba78f1c6560 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/generator/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["generator.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/golang/protobuf/protoc-gen-go/generator", + importpath = "github.com/golang/protobuf/protoc-gen-go/generator", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/golang/protobuf/protoc-gen-go/descriptor:go_default_library", + "//vendor/github.com/golang/protobuf/protoc-gen-go/generator/internal/remap:go_default_library", + "//vendor/github.com/golang/protobuf/protoc-gen-go/plugin:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/golang/protobuf/protoc-gen-go/generator/internal/remap:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/generator/internal/remap/BUILD b/vendor/github.com/golang/protobuf/protoc-gen-go/generator/internal/remap/BUILD new file mode 100644 index 0000000000000..17242727be6f1 --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/generator/internal/remap/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["remap.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/golang/protobuf/protoc-gen-go/generator/internal/remap", + importpath = "github.com/golang/protobuf/protoc-gen-go/generator/internal/remap", + visibility = ["//vendor/github.com/golang/protobuf/protoc-gen-go/generator:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/golang/protobuf/protoc-gen-go/plugin/BUILD b/vendor/github.com/golang/protobuf/protoc-gen-go/plugin/BUILD new file mode 100644 index 0000000000000..01fc7d321a89a --- /dev/null +++ b/vendor/github.com/golang/protobuf/protoc-gen-go/plugin/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["plugin.pb.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/golang/protobuf/protoc-gen-go/plugin", + importpath = "github.com/golang/protobuf/protoc-gen-go/plugin", + visibility = ["//visibility:public"], + deps = [ + "//vendor/google.golang.org/protobuf/reflect/protoreflect:go_default_library", + "//vendor/google.golang.org/protobuf/runtime/protoimpl:go_default_library", + "//vendor/google.golang.org/protobuf/types/pluginpb:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/golang/protobuf/ptypes/BUILD b/vendor/github.com/golang/protobuf/ptypes/BUILD new file mode 100644 index 0000000000000..5d05549c51ad0 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/BUILD @@ -0,0 +1,42 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "any.go", + "doc.go", + "duration.go", + "timestamp.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/golang/protobuf/ptypes", + importpath = "github.com/golang/protobuf/ptypes", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes/any:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes/duration:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes/timestamp:go_default_library", + "//vendor/google.golang.org/protobuf/reflect/protoreflect:go_default_library", + "//vendor/google.golang.org/protobuf/reflect/protoregistry:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/golang/protobuf/ptypes/any:all-srcs", + "//vendor/github.com/golang/protobuf/ptypes/duration:all-srcs", + "//vendor/github.com/golang/protobuf/ptypes/timestamp:all-srcs", + "//vendor/github.com/golang/protobuf/ptypes/wrappers:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/golang/protobuf/ptypes/any/BUILD b/vendor/github.com/golang/protobuf/ptypes/any/BUILD new file mode 100644 index 0000000000000..3fde20720e018 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/any/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["any.pb.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/golang/protobuf/ptypes/any", + importpath = "github.com/golang/protobuf/ptypes/any", + visibility = ["//visibility:public"], + deps = [ + "//vendor/google.golang.org/protobuf/reflect/protoreflect:go_default_library", + "//vendor/google.golang.org/protobuf/runtime/protoimpl:go_default_library", + "//vendor/google.golang.org/protobuf/types/known/anypb:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/golang/protobuf/ptypes/duration/BUILD b/vendor/github.com/golang/protobuf/ptypes/duration/BUILD new file mode 100644 index 0000000000000..f795f29400d4b --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/duration/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["duration.pb.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/golang/protobuf/ptypes/duration", + importpath = "github.com/golang/protobuf/ptypes/duration", + visibility = ["//visibility:public"], + deps = [ + "//vendor/google.golang.org/protobuf/reflect/protoreflect:go_default_library", + "//vendor/google.golang.org/protobuf/runtime/protoimpl:go_default_library", + "//vendor/google.golang.org/protobuf/types/known/durationpb:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp/BUILD b/vendor/github.com/golang/protobuf/ptypes/timestamp/BUILD new file mode 100644 index 0000000000000..a43bffa584e67 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/timestamp/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["timestamp.pb.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/golang/protobuf/ptypes/timestamp", + importpath = "github.com/golang/protobuf/ptypes/timestamp", + visibility = ["//visibility:public"], + deps = [ + "//vendor/google.golang.org/protobuf/reflect/protoreflect:go_default_library", + "//vendor/google.golang.org/protobuf/runtime/protoimpl:go_default_library", + "//vendor/google.golang.org/protobuf/types/known/timestamppb:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/golang/protobuf/ptypes/wrappers/BUILD b/vendor/github.com/golang/protobuf/ptypes/wrappers/BUILD new file mode 100644 index 0000000000000..96dbd888c5d71 --- /dev/null +++ b/vendor/github.com/golang/protobuf/ptypes/wrappers/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["wrappers.pb.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/golang/protobuf/ptypes/wrappers", + importpath = "github.com/golang/protobuf/ptypes/wrappers", + visibility = ["//visibility:public"], + deps = [ + "//vendor/google.golang.org/protobuf/reflect/protoreflect:go_default_library", + "//vendor/google.golang.org/protobuf/runtime/protoimpl:go_default_library", + "//vendor/google.golang.org/protobuf/types/known/wrapperspb:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/btree/BUILD b/vendor/github.com/google/btree/BUILD new file mode 100644 index 0000000000000..22d764332d8c7 --- /dev/null +++ b/vendor/github.com/google/btree/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["btree.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/btree", + importpath = "github.com/google/btree", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/accelerators/BUILD b/vendor/github.com/google/cadvisor/accelerators/BUILD new file mode 100644 index 0000000000000..42422e4be7a5b --- /dev/null +++ b/vendor/github.com/google/cadvisor/accelerators/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["nvidia.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/accelerators", + importpath = "github.com/google/cadvisor/accelerators", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/container:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/stats:go_default_library", + "//vendor/github.com/mindprince/gonvml:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/accelerators/nvidia.go b/vendor/github.com/google/cadvisor/accelerators/nvidia.go index 08d5108f3876e..1c51b5deaed2e 100644 --- a/vendor/github.com/google/cadvisor/accelerators/nvidia.go +++ b/vendor/github.com/google/cadvisor/accelerators/nvidia.go @@ -58,9 +58,7 @@ func NewNvidiaManager(includedMetrics container.MetricSet) stats.Manager { manager := &nvidiaManager{} err := manager.setup() if err != nil { - klog.Warningf("NVIDIA GPU metrics will not be available: %s", err) - manager.Destroy() - return &stats.NoopManager{} + klog.V(2).Infof("NVIDIA setup failed: %s", err) } return manager } diff --git a/vendor/github.com/google/cadvisor/cache/memory/BUILD b/vendor/github.com/google/cadvisor/cache/memory/BUILD new file mode 100644 index 0000000000000..0213fc7757cc6 --- /dev/null +++ b/vendor/github.com/google/cadvisor/cache/memory/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["memory.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/cache/memory", + importpath = "github.com/google/cadvisor/cache/memory", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/storage:go_default_library", + "//vendor/github.com/google/cadvisor/utils:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/client/v2/BUILD b/vendor/github.com/google/cadvisor/client/v2/BUILD new file mode 100644 index 0000000000000..4f094064d2626 --- /dev/null +++ b/vendor/github.com/google/cadvisor/client/v2/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["client.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/client/v2", + importpath = "github.com/google/cadvisor/client/v2", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/info/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/collector/BUILD b/vendor/github.com/google/cadvisor/collector/BUILD new file mode 100644 index 0000000000000..ab109e6e910aa --- /dev/null +++ b/vendor/github.com/google/cadvisor/collector/BUILD @@ -0,0 +1,38 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "collector_manager.go", + "config.go", + "fakes.go", + "generic_collector.go", + "prometheus_collector.go", + "types.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/collector", + importpath = "github.com/google/cadvisor/collector", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/container:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/prometheus/client_model/go:go_default_library", + "//vendor/github.com/prometheus/common/expfmt:go_default_library", + "//vendor/github.com/prometheus/common/model:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/container/BUILD b/vendor/github.com/google/cadvisor/container/BUILD new file mode 100644 index 0000000000000..5326335b994ac --- /dev/null +++ b/vendor/github.com/google/cadvisor/container/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "container.go", + "factory.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/container", + importpath = "github.com/google/cadvisor/container", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/fs:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/watcher:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/google/cadvisor/container/common:all-srcs", + "//vendor/github.com/google/cadvisor/container/containerd:all-srcs", + "//vendor/github.com/google/cadvisor/container/crio:all-srcs", + "//vendor/github.com/google/cadvisor/container/docker:all-srcs", + "//vendor/github.com/google/cadvisor/container/libcontainer:all-srcs", + "//vendor/github.com/google/cadvisor/container/raw:all-srcs", + "//vendor/github.com/google/cadvisor/container/systemd:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/container/common/BUILD b/vendor/github.com/google/cadvisor/container/common/BUILD new file mode 100644 index 0000000000000..d369e25da07a6 --- /dev/null +++ b/vendor/github.com/google/cadvisor/container/common/BUILD @@ -0,0 +1,39 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "container_hints.go", + "fsHandler.go", + "helpers.go", + "inotify_watcher.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/container/common", + importpath = "github.com/google/cadvisor/container/common", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/container:go_default_library", + "//vendor/github.com/google/cadvisor/fs:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/utils:go_default_library", + "//vendor/github.com/karrick/godirwalk:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + "//vendor/k8s.io/utils/inotify:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/container/containerd/BUILD b/vendor/github.com/google/cadvisor/container/containerd/BUILD new file mode 100644 index 0000000000000..e0549d28734ad --- /dev/null +++ b/vendor/github.com/google/cadvisor/container/containerd/BUILD @@ -0,0 +1,53 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "factory.go", + "grpc.go", + "handler.go", + "plugin.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/container/containerd", + importpath = "github.com/google/cadvisor/container/containerd", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/containerd/containerd/api/services/containers/v1:go_default_library", + "//vendor/github.com/containerd/containerd/api/services/tasks/v1:go_default_library", + "//vendor/github.com/containerd/containerd/api/services/version/v1:go_default_library", + "//vendor/github.com/containerd/containerd/containers:go_default_library", + "//vendor/github.com/containerd/containerd/errdefs:go_default_library", + "//vendor/github.com/containerd/containerd/namespaces:go_default_library", + "//vendor/github.com/containerd/containerd/pkg/dialer:go_default_library", + "//vendor/github.com/gogo/protobuf/types:go_default_library", + "//vendor/github.com/google/cadvisor/container:go_default_library", + "//vendor/github.com/google/cadvisor/container/common:go_default_library", + "//vendor/github.com/google/cadvisor/container/libcontainer:go_default_library", + "//vendor/github.com/google/cadvisor/fs:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/watcher:go_default_library", + "//vendor/github.com/opencontainers/runtime-spec/specs-go:go_default_library", + "//vendor/golang.org/x/net/context:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + "//vendor/google.golang.org/grpc/backoff:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/google/cadvisor/container/containerd/install:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/container/containerd/client.go b/vendor/github.com/google/cadvisor/container/containerd/client.go index 986476385f81e..47eaffad7bd27 100644 --- a/vendor/github.com/google/cadvisor/container/containerd/client.go +++ b/vendor/github.com/google/cadvisor/container/containerd/client.go @@ -65,11 +65,10 @@ func Client(address, namespace string) (ContainerdClient, error) { tryConn.Close() connParams := grpc.ConnectParams{ - Backoff: backoff.Config{ - BaseDelay: baseBackoffDelay, - MaxDelay: maxBackoffDelay, - }, + Backoff: backoff.DefaultConfig, } + connParams.Backoff.BaseDelay = baseBackoffDelay + connParams.Backoff.MaxDelay = maxBackoffDelay gopts := []grpc.DialOption{ grpc.WithInsecure(), grpc.WithContextDialer(dialer.ContextDialer), diff --git a/vendor/github.com/google/cadvisor/container/containerd/install/BUILD b/vendor/github.com/google/cadvisor/container/containerd/install/BUILD new file mode 100644 index 0000000000000..1d9e61b290739 --- /dev/null +++ b/vendor/github.com/google/cadvisor/container/containerd/install/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["install.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/container/containerd/install", + importpath = "github.com/google/cadvisor/container/containerd/install", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/container:go_default_library", + "//vendor/github.com/google/cadvisor/container/containerd:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/container/crio/BUILD b/vendor/github.com/google/cadvisor/container/crio/BUILD new file mode 100644 index 0000000000000..a269e7cdcb40a --- /dev/null +++ b/vendor/github.com/google/cadvisor/container/crio/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "factory.go", + "handler.go", + "plugin.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/container/crio", + importpath = "github.com/google/cadvisor/container/crio", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/container:go_default_library", + "//vendor/github.com/google/cadvisor/container/common:go_default_library", + "//vendor/github.com/google/cadvisor/container/libcontainer:go_default_library", + "//vendor/github.com/google/cadvisor/fs:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/watcher:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/google/cadvisor/container/crio/install:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/container/crio/install/BUILD b/vendor/github.com/google/cadvisor/container/crio/install/BUILD new file mode 100644 index 0000000000000..133f69dfe495c --- /dev/null +++ b/vendor/github.com/google/cadvisor/container/crio/install/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["install.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/container/crio/install", + importpath = "github.com/google/cadvisor/container/crio/install", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/container:go_default_library", + "//vendor/github.com/google/cadvisor/container/crio:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/container/docker/BUILD b/vendor/github.com/google/cadvisor/container/docker/BUILD new file mode 100644 index 0000000000000..702fcac1333a6 --- /dev/null +++ b/vendor/github.com/google/cadvisor/container/docker/BUILD @@ -0,0 +1,52 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "docker.go", + "factory.go", + "handler.go", + "plugin.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/container/docker", + importpath = "github.com/google/cadvisor/container/docker", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/blang/semver:go_default_library", + "//vendor/github.com/docker/docker/api/types:go_default_library", + "//vendor/github.com/docker/docker/api/types/container:go_default_library", + "//vendor/github.com/docker/docker/client:go_default_library", + "//vendor/github.com/docker/go-connections/tlsconfig:go_default_library", + "//vendor/github.com/google/cadvisor/container:go_default_library", + "//vendor/github.com/google/cadvisor/container/common:go_default_library", + "//vendor/github.com/google/cadvisor/container/docker/utils:go_default_library", + "//vendor/github.com/google/cadvisor/container/libcontainer:go_default_library", + "//vendor/github.com/google/cadvisor/devicemapper:go_default_library", + "//vendor/github.com/google/cadvisor/fs:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/machine:go_default_library", + "//vendor/github.com/google/cadvisor/watcher:go_default_library", + "//vendor/github.com/google/cadvisor/zfs:go_default_library", + "//vendor/golang.org/x/net/context:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/google/cadvisor/container/docker/install:all-srcs", + "//vendor/github.com/google/cadvisor/container/docker/utils:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/container/docker/client.go b/vendor/github.com/google/cadvisor/container/docker/client.go index 44207c4f1f847..295e647cd740c 100644 --- a/vendor/github.com/google/cadvisor/container/docker/client.go +++ b/vendor/github.com/google/cadvisor/container/docker/client.go @@ -52,11 +52,10 @@ func Client() (*dclient.Client, error) { TLSClientConfig: tlsc, } } - dockerClient, dockerClientErr = dclient.NewClient(*ArgDockerEndpoint, - "", - client, - nil) - + dockerClient, dockerClientErr = dclient.NewClientWithOpts( + dclient.WithHost(*ArgDockerEndpoint), + dclient.WithHTTPClient(client), + dclient.WithAPIVersionNegotiation()) }) return dockerClient, dockerClientErr } diff --git a/vendor/github.com/google/cadvisor/container/docker/install/BUILD b/vendor/github.com/google/cadvisor/container/docker/install/BUILD new file mode 100644 index 0000000000000..c3db922954fc4 --- /dev/null +++ b/vendor/github.com/google/cadvisor/container/docker/install/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["install.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/container/docker/install", + importpath = "github.com/google/cadvisor/container/docker/install", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/container:go_default_library", + "//vendor/github.com/google/cadvisor/container/docker:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/container/docker/utils/BUILD b/vendor/github.com/google/cadvisor/container/docker/utils/BUILD new file mode 100644 index 0000000000000..f49d680c57645 --- /dev/null +++ b/vendor/github.com/google/cadvisor/container/docker/utils/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["docker.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/container/docker/utils", + importpath = "github.com/google/cadvisor/container/docker/utils", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/docker/docker/api/types:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/container/libcontainer/BUILD b/vendor/github.com/google/cadvisor/container/libcontainer/BUILD new file mode 100644 index 0000000000000..d5dacb64197bb --- /dev/null +++ b/vendor/github.com/google/cadvisor/container/libcontainer/BUILD @@ -0,0 +1,36 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "handler.go", + "helpers.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/container/libcontainer", + importpath = "github.com/google/cadvisor/container/libcontainer", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/container:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs2:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/container/libcontainer/handler.go b/vendor/github.com/google/cadvisor/container/libcontainer/handler.go index 436379b7624cd..4c18bd3bf017d 100644 --- a/vendor/github.com/google/cadvisor/container/libcontainer/handler.go +++ b/vendor/github.com/google/cadvisor/container/libcontainer/handler.go @@ -29,14 +29,13 @@ import ( "strings" "time" - "github.com/google/cadvisor/container" - info "github.com/google/cadvisor/info/v1" - "golang.org/x/sys/unix" - "github.com/opencontainers/runc/libcontainer" "github.com/opencontainers/runc/libcontainer/cgroups" - fs2 "github.com/opencontainers/runc/libcontainer/cgroups/fs2" + "github.com/opencontainers/runc/libcontainer/cgroups/fs2" "k8s.io/klog/v2" + + "github.com/google/cadvisor/container" + info "github.com/google/cadvisor/info/v1" ) var ( @@ -758,16 +757,6 @@ func (h *Handler) GetProcesses() ([]int, error) { return pids, nil } -func minUint32(x, y uint32) uint32 { - if x < y { - return x - } - return y -} - -// var to allow unit tests to stub it out -var numCpusFunc = getNumberOnlineCPUs - // Convert libcontainer stats to info.ContainerStats. func setCPUStats(s *cgroups.Stats, ret *info.ContainerStats, withPerCPU bool) { ret.Cpu.Usage.User = s.CpuStats.CpuUsage.UsageInUsermode @@ -785,37 +774,7 @@ func setCPUStats(s *cgroups.Stats, ret *info.ContainerStats, withPerCPU bool) { // cpuacct subsystem. return } - - numPossible := uint32(len(s.CpuStats.CpuUsage.PercpuUsage)) - // Note that as of https://patchwork.kernel.org/patch/8607101/ (kernel v4.7), - // the percpu usage information includes extra zero values for all additional - // possible CPUs. This is to allow statistic collection after CPU-hotplug. - // We intentionally ignore these extra zeroes. - numActual, err := numCpusFunc() - if err != nil { - klog.Errorf("unable to determine number of actual cpus; defaulting to maximum possible number: errno %v", err) - numActual = numPossible - } - if numActual > numPossible { - // The real number of cores should never be greater than the number of - // datapoints reported in cpu usage. - klog.Errorf("PercpuUsage had %v cpus, but the actual number is %v; ignoring extra CPUs", numPossible, numActual) - } - numActual = minUint32(numPossible, numActual) - ret.Cpu.Usage.PerCpu = make([]uint64, numActual) - - for i := uint32(0); i < numActual; i++ { - ret.Cpu.Usage.PerCpu[i] = s.CpuStats.CpuUsage.PercpuUsage[i] - } - -} - -func getNumberOnlineCPUs() (uint32, error) { - var availableCPUs unix.CPUSet - if err := unix.SchedGetaffinity(0, &availableCPUs); err != nil { - return 0, err - } - return uint32(availableCPUs.Count()), nil + ret.Cpu.Usage.PerCpu = s.CpuStats.CpuUsage.PercpuUsage } func setDiskIoStats(s *cgroups.Stats, ret *info.ContainerStats) { diff --git a/vendor/github.com/google/cadvisor/container/raw/BUILD b/vendor/github.com/google/cadvisor/container/raw/BUILD new file mode 100644 index 0000000000000..77a56358cd975 --- /dev/null +++ b/vendor/github.com/google/cadvisor/container/raw/BUILD @@ -0,0 +1,38 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "factory.go", + "handler.go", + "watcher.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/container/raw", + importpath = "github.com/google/cadvisor/container/raw", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/container:go_default_library", + "//vendor/github.com/google/cadvisor/container/common:go_default_library", + "//vendor/github.com/google/cadvisor/container/libcontainer:go_default_library", + "//vendor/github.com/google/cadvisor/fs:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/machine:go_default_library", + "//vendor/github.com/google/cadvisor/watcher:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + "//vendor/k8s.io/utils/inotify:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/container/systemd/BUILD b/vendor/github.com/google/cadvisor/container/systemd/BUILD new file mode 100644 index 0000000000000..d56fbe800c36d --- /dev/null +++ b/vendor/github.com/google/cadvisor/container/systemd/BUILD @@ -0,0 +1,36 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "factory.go", + "plugin.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/container/systemd", + importpath = "github.com/google/cadvisor/container/systemd", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/container:go_default_library", + "//vendor/github.com/google/cadvisor/fs:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/watcher:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/google/cadvisor/container/systemd/install:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/container/systemd/install/BUILD b/vendor/github.com/google/cadvisor/container/systemd/install/BUILD new file mode 100644 index 0000000000000..f21896f66be6d --- /dev/null +++ b/vendor/github.com/google/cadvisor/container/systemd/install/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["install.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/container/systemd/install", + importpath = "github.com/google/cadvisor/container/systemd/install", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/container:go_default_library", + "//vendor/github.com/google/cadvisor/container/systemd:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/devicemapper/BUILD b/vendor/github.com/google/cadvisor/devicemapper/BUILD new file mode 100644 index 0000000000000..37e44c0039895 --- /dev/null +++ b/vendor/github.com/google/cadvisor/devicemapper/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "dmsetup_client.go", + "doc.go", + "thin_ls_client.go", + "thin_pool_watcher.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/devicemapper", + importpath = "github.com/google/cadvisor/devicemapper", + visibility = ["//visibility:public"], + deps = ["//vendor/k8s.io/klog/v2:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/events/BUILD b/vendor/github.com/google/cadvisor/events/BUILD new file mode 100644 index 0000000000000..7a4f73189f878 --- /dev/null +++ b/vendor/github.com/google/cadvisor/events/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["handler.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/events", + importpath = "github.com/google/cadvisor/events", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/utils:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/fs/BUILD b/vendor/github.com/google/cadvisor/fs/BUILD new file mode 100644 index 0000000000000..8ea46d4ecc056 --- /dev/null +++ b/vendor/github.com/google/cadvisor/fs/BUILD @@ -0,0 +1,43 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "fs.go", + "types.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/fs", + importpath = "github.com/google/cadvisor/fs", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/google/cadvisor/devicemapper:go_default_library", + "//vendor/github.com/google/cadvisor/utils:go_default_library", + "//vendor/github.com/mistifyio/go-zfs:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + "//vendor/k8s.io/utils/mount:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/google/cadvisor/devicemapper:go_default_library", + "//vendor/github.com/google/cadvisor/utils:go_default_library", + "//vendor/github.com/mistifyio/go-zfs:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + "//vendor/k8s.io/utils/mount:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/fs/fs.go b/vendor/github.com/google/cadvisor/fs/fs.go index cb45c33c93322..fd2772f99837d 100644 --- a/vendor/github.com/google/cadvisor/fs/fs.go +++ b/vendor/github.com/google/cadvisor/fs/fs.go @@ -527,22 +527,7 @@ func (i *RealFsInfo) GetDeviceInfoByFsUUID(uuid string) (*DeviceInfo, error) { return &DeviceInfo{deviceName, p.major, p.minor}, nil } -func (i *RealFsInfo) GetDirFsDevice(dir string) (*DeviceInfo, error) { - buf := new(syscall.Stat_t) - err := syscall.Stat(dir, buf) - if err != nil { - return nil, fmt.Errorf("stat failed on %s with error: %s", dir, err) - } - - // The type Dev in Stat_t is 32bit on mips. - major := major(uint64(buf.Dev)) // nolint: unconvert - minor := minor(uint64(buf.Dev)) // nolint: unconvert - for device, partition := range i.partitions { - if partition.major == major && partition.minor == minor { - return &DeviceInfo{device, major, minor}, nil - } - } - +func (i *RealFsInfo) mountInfoFromDir(dir string) (*mount.MountInfo, bool) { mount, found := i.mounts[dir] // try the parent dir if not found until we reach the root dir // this is an issue on btrfs systems where the directory is not @@ -551,6 +536,7 @@ func (i *RealFsInfo) GetDirFsDevice(dir string) (*DeviceInfo, error) { pathdir, _ := filepath.Split(dir) // break when we reach root if pathdir == "/" { + mount, found = i.mounts["/"] break } // trim "/" from the new parent path otherwise the next possible @@ -558,9 +544,28 @@ func (i *RealFsInfo) GetDirFsDevice(dir string) (*DeviceInfo, error) { dir = strings.TrimSuffix(pathdir, "/") mount, found = i.mounts[dir] } + return &mount, found +} + +func (i *RealFsInfo) GetDirFsDevice(dir string) (*DeviceInfo, error) { + buf := new(syscall.Stat_t) + err := syscall.Stat(dir, buf) + if err != nil { + return nil, fmt.Errorf("stat failed on %s with error: %s", dir, err) + } + + // The type Dev in Stat_t is 32bit on mips. + major := major(uint64(buf.Dev)) // nolint: unconvert + minor := minor(uint64(buf.Dev)) // nolint: unconvert + for device, partition := range i.partitions { + if partition.major == major && partition.minor == minor { + return &DeviceInfo{device, major, minor}, nil + } + } + mount, found := i.mountInfoFromDir(dir) if found && mount.FsType == "btrfs" && mount.Major == 0 && strings.HasPrefix(mount.Source, "/dev/") { - major, minor, err := getBtrfsMajorMinorIds(&mount) + major, minor, err := getBtrfsMajorMinorIds(mount) if err != nil { klog.Warningf("%s", err) } else { diff --git a/vendor/github.com/google/cadvisor/info/v1/BUILD b/vendor/github.com/google/cadvisor/info/v1/BUILD new file mode 100644 index 0000000000000..63113198a547d --- /dev/null +++ b/vendor/github.com/google/cadvisor/info/v1/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "container.go", + "docker.go", + "machine.go", + "metric.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/info/v1", + importpath = "github.com/google/cadvisor/info/v1", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/info/v2/BUILD b/vendor/github.com/google/cadvisor/info/v2/BUILD new file mode 100644 index 0000000000000..d1153420c24b7 --- /dev/null +++ b/vendor/github.com/google/cadvisor/info/v2/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "container.go", + "conversion.go", + "machine.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/info/v2", + importpath = "github.com/google/cadvisor/info/v2", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/machine/BUILD b/vendor/github.com/google/cadvisor/machine/BUILD new file mode 100644 index 0000000000000..49108bded593e --- /dev/null +++ b/vendor/github.com/google/cadvisor/machine/BUILD @@ -0,0 +1,44 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "info.go", + "machine.go", + "operatingsystem_unix.go", + "operatingsystem_windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/machine", + importpath = "github.com/google/cadvisor/machine", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/fs:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/nvm:go_default_library", + "//vendor/github.com/google/cadvisor/utils:go_default_library", + "//vendor/github.com/google/cadvisor/utils/cloudinfo:go_default_library", + "//vendor/github.com/google/cadvisor/utils/sysfs:go_default_library", + "//vendor/github.com/google/cadvisor/utils/sysinfo:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/golang.org/x/sys/windows/registry:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/manager/BUILD b/vendor/github.com/google/cadvisor/manager/BUILD new file mode 100644 index 0000000000000..13a6403671d0d --- /dev/null +++ b/vendor/github.com/google/cadvisor/manager/BUILD @@ -0,0 +1,55 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "container.go", + "manager.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/manager", + importpath = "github.com/google/cadvisor/manager", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/docker/go-units:go_default_library", + "//vendor/github.com/google/cadvisor/accelerators:go_default_library", + "//vendor/github.com/google/cadvisor/cache/memory:go_default_library", + "//vendor/github.com/google/cadvisor/collector:go_default_library", + "//vendor/github.com/google/cadvisor/container:go_default_library", + "//vendor/github.com/google/cadvisor/container/docker:go_default_library", + "//vendor/github.com/google/cadvisor/container/raw:go_default_library", + "//vendor/github.com/google/cadvisor/events:go_default_library", + "//vendor/github.com/google/cadvisor/fs:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/info/v2:go_default_library", + "//vendor/github.com/google/cadvisor/machine:go_default_library", + "//vendor/github.com/google/cadvisor/nvm:go_default_library", + "//vendor/github.com/google/cadvisor/perf:go_default_library", + "//vendor/github.com/google/cadvisor/resctrl:go_default_library", + "//vendor/github.com/google/cadvisor/stats:go_default_library", + "//vendor/github.com/google/cadvisor/summary:go_default_library", + "//vendor/github.com/google/cadvisor/utils/cpuload:go_default_library", + "//vendor/github.com/google/cadvisor/utils/oomparser:go_default_library", + "//vendor/github.com/google/cadvisor/utils/sysfs:go_default_library", + "//vendor/github.com/google/cadvisor/version:go_default_library", + "//vendor/github.com/google/cadvisor/watcher:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs2:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/intelrdt:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + "//vendor/k8s.io/utils/clock:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/metrics/BUILD b/vendor/github.com/google/cadvisor/metrics/BUILD new file mode 100644 index 0000000000000..e99ef41143e9f --- /dev/null +++ b/vendor/github.com/google/cadvisor/metrics/BUILD @@ -0,0 +1,36 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "metrics.go", + "prometheus.go", + "prometheus_fake.go", + "prometheus_machine.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/metrics", + importpath = "github.com/google/cadvisor/metrics", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/container:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/info/v2:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + "//vendor/k8s.io/utils/clock:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/nvm/BUILD b/vendor/github.com/google/cadvisor/nvm/BUILD new file mode 100644 index 0000000000000..37940f400d7cf --- /dev/null +++ b/vendor/github.com/google/cadvisor/nvm/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["machine_no_libipmctl.go"], + cgo = True, + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/nvm", + importpath = "github.com/google/cadvisor/nvm", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/perf/BUILD b/vendor/github.com/google/cadvisor/perf/BUILD new file mode 100644 index 0000000000000..a3217bc8048e6 --- /dev/null +++ b/vendor/github.com/google/cadvisor/perf/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "collector_no_libpfm.go", + "config.go", + "manager_no_libpfm.go", + ], + cgo = True, + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/perf", + importpath = "github.com/google/cadvisor/perf", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/stats:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/resctrl/BUILD b/vendor/github.com/google/cadvisor/resctrl/BUILD new file mode 100644 index 0000000000000..1279e2ee93be2 --- /dev/null +++ b/vendor/github.com/google/cadvisor/resctrl/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "collector.go", + "manager.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/resctrl", + importpath = "github.com/google/cadvisor/resctrl", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/stats:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/intelrdt:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/stats:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/intelrdt:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/stats/BUILD b/vendor/github.com/google/cadvisor/stats/BUILD new file mode 100644 index 0000000000000..41be5d3c6fdc9 --- /dev/null +++ b/vendor/github.com/google/cadvisor/stats/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "noop.go", + "types.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/stats", + importpath = "github.com/google/cadvisor/stats", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/storage/BUILD b/vendor/github.com/google/cadvisor/storage/BUILD new file mode 100644 index 0000000000000..9095b36b95b92 --- /dev/null +++ b/vendor/github.com/google/cadvisor/storage/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "common_flags.go", + "storage.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/storage", + importpath = "github.com/google/cadvisor/storage", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/google/cadvisor/info/v1:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/summary/BUILD b/vendor/github.com/google/cadvisor/summary/BUILD new file mode 100644 index 0000000000000..8ecfc8669c242 --- /dev/null +++ b/vendor/github.com/google/cadvisor/summary/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "buffer.go", + "percentiles.go", + "summary.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/summary", + importpath = "github.com/google/cadvisor/summary", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/info/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/utils/BUILD b/vendor/github.com/google/cadvisor/utils/BUILD new file mode 100644 index 0000000000000..bf03361cd10e7 --- /dev/null +++ b/vendor/github.com/google/cadvisor/utils/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "path.go", + "timed_store.go", + "utils.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/utils", + importpath = "github.com/google/cadvisor/utils", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/google/cadvisor/utils/cloudinfo:all-srcs", + "//vendor/github.com/google/cadvisor/utils/cpuload:all-srcs", + "//vendor/github.com/google/cadvisor/utils/oomparser:all-srcs", + "//vendor/github.com/google/cadvisor/utils/sysfs:all-srcs", + "//vendor/github.com/google/cadvisor/utils/sysinfo:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/utils/cloudinfo/BUILD b/vendor/github.com/google/cadvisor/utils/cloudinfo/BUILD new file mode 100644 index 0000000000000..c6f3fa9f69c8b --- /dev/null +++ b/vendor/github.com/google/cadvisor/utils/cloudinfo/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["cloudinfo.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/utils/cloudinfo", + importpath = "github.com/google/cadvisor/utils/cloudinfo", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/google/cadvisor/utils/cloudinfo/aws:all-srcs", + "//vendor/github.com/google/cadvisor/utils/cloudinfo/azure:all-srcs", + "//vendor/github.com/google/cadvisor/utils/cloudinfo/gce:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/utils/cloudinfo/aws/BUILD b/vendor/github.com/google/cadvisor/utils/cloudinfo/aws/BUILD new file mode 100644 index 0000000000000..7820dd54673f3 --- /dev/null +++ b/vendor/github.com/google/cadvisor/utils/cloudinfo/aws/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["aws.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/utils/cloudinfo/aws", + importpath = "github.com/google/cadvisor/utils/cloudinfo/aws", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/ec2metadata:go_default_library", + "//vendor/github.com/aws/aws-sdk-go/aws/session:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/utils/cloudinfo:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/utils/cloudinfo/azure/BUILD b/vendor/github.com/google/cadvisor/utils/cloudinfo/azure/BUILD new file mode 100644 index 0000000000000..7fd7703344006 --- /dev/null +++ b/vendor/github.com/google/cadvisor/utils/cloudinfo/azure/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["azure.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/utils/cloudinfo/azure", + importpath = "github.com/google/cadvisor/utils/cloudinfo/azure", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/utils/cloudinfo:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/utils/cloudinfo/gce/BUILD b/vendor/github.com/google/cadvisor/utils/cloudinfo/gce/BUILD new file mode 100644 index 0000000000000..649b123e71081 --- /dev/null +++ b/vendor/github.com/google/cadvisor/utils/cloudinfo/gce/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["gce.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/utils/cloudinfo/gce", + importpath = "github.com/google/cadvisor/utils/cloudinfo/gce", + visibility = ["//visibility:public"], + deps = [ + "//vendor/cloud.google.com/go/compute/metadata:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/utils/cloudinfo:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/utils/cpuload/BUILD b/vendor/github.com/google/cadvisor/utils/cpuload/BUILD new file mode 100644 index 0000000000000..bad9bd6ac3513 --- /dev/null +++ b/vendor/github.com/google/cadvisor/utils/cpuload/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["cpuload.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/utils/cpuload", + importpath = "github.com/google/cadvisor/utils/cpuload", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/utils/cpuload/netlink:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/google/cadvisor/utils/cpuload/netlink:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD b/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD new file mode 100644 index 0000000000000..fa0687cd14dc8 --- /dev/null +++ b/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "conn.go", + "netlink.go", + "reader.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/utils/cpuload/netlink", + importpath = "github.com/google/cadvisor/utils/cpuload/netlink", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/utils/oomparser/BUILD b/vendor/github.com/google/cadvisor/utils/oomparser/BUILD new file mode 100644 index 0000000000000..ae75d0257f41e --- /dev/null +++ b/vendor/github.com/google/cadvisor/utils/oomparser/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["oomparser.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/utils/oomparser", + importpath = "github.com/google/cadvisor/utils/oomparser", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/euank/go-kmsg-parser/kmsgparser:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/utils/sysfs/BUILD b/vendor/github.com/google/cadvisor/utils/sysfs/BUILD new file mode 100644 index 0000000000000..947d004d5d787 --- /dev/null +++ b/vendor/github.com/google/cadvisor/utils/sysfs/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["sysfs.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/utils/sysfs", + importpath = "github.com/google/cadvisor/utils/sysfs", + visibility = ["//visibility:public"], + deps = ["//vendor/k8s.io/klog/v2:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/utils/sysinfo/BUILD b/vendor/github.com/google/cadvisor/utils/sysinfo/BUILD new file mode 100644 index 0000000000000..97c816157f180 --- /dev/null +++ b/vendor/github.com/google/cadvisor/utils/sysinfo/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["sysinfo.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/utils/sysinfo", + importpath = "github.com/google/cadvisor/utils/sysinfo", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/utils/sysfs:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/utils/sysinfo/sysinfo.go b/vendor/github.com/google/cadvisor/utils/sysinfo/sysinfo.go index 9ef62b858001c..eade34195e55d 100644 --- a/vendor/github.com/google/cadvisor/utils/sysinfo/sysinfo.go +++ b/vendor/github.com/google/cadvisor/utils/sysinfo/sysinfo.go @@ -383,7 +383,7 @@ func getCoresInfo(sysFs sysfs.SysFs, cpuDirs []string) ([]info.Core, error) { for _, cpuDir := range cpuDirs { cpuID, err := getMatchedInt(cpuDirRegExp, cpuDir) if err != nil { - return nil, fmt.Errorf("Unexpected format of CPU directory, cpuDirRegExp %s, cpuDir: %s", cpuDirRegExp, cpuDir) + return nil, fmt.Errorf("unexpected format of CPU directory, cpuDirRegExp %s, cpuDir: %s", cpuDirRegExp, cpuDir) } if !sysFs.IsCPUOnline(cpuDir) { continue @@ -401,9 +401,22 @@ func getCoresInfo(sysFs sysfs.SysFs, cpuDirs []string) ([]info.Core, error) { return nil, err } + rawPhysicalPackageID, err := sysFs.GetCPUPhysicalPackageID(cpuDir) + if os.IsNotExist(err) { + klog.Warningf("Cannot read physical package id for %s, physical_package_id file does not exist, err: %s", cpuDir, err) + continue + } else if err != nil { + return nil, err + } + + physicalPackageID, err := strconv.Atoi(rawPhysicalPackageID) + if err != nil { + return nil, err + } + coreIDx := -1 for id, core := range cores { - if core.Id == physicalID { + if core.Id == physicalID && core.SocketID == physicalPackageID { coreIDx = id } } @@ -414,25 +427,14 @@ func getCoresInfo(sysFs sysfs.SysFs, cpuDirs []string) ([]info.Core, error) { desiredCore := &cores[coreIDx] desiredCore.Id = physicalID + desiredCore.SocketID = physicalPackageID + if len(desiredCore.Threads) == 0 { desiredCore.Threads = []int{cpuID} } else { desiredCore.Threads = append(desiredCore.Threads, cpuID) } - rawPhysicalPackageID, err := sysFs.GetCPUPhysicalPackageID(cpuDir) - if os.IsNotExist(err) { - klog.Warningf("Cannot read physical package id for %s, physical_package_id file does not exist, err: %s", cpuDir, err) - continue - } else if err != nil { - return nil, err - } - - physicalPackageID, err := strconv.Atoi(rawPhysicalPackageID) - if err != nil { - return nil, err - } - desiredCore.SocketID = physicalPackageID } return cores, nil } diff --git a/vendor/github.com/google/cadvisor/version/BUILD b/vendor/github.com/google/cadvisor/version/BUILD new file mode 100644 index 0000000000000..fc7930a4f5d7c --- /dev/null +++ b/vendor/github.com/google/cadvisor/version/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["version.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/version", + importpath = "github.com/google/cadvisor/version", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/watcher/BUILD b/vendor/github.com/google/cadvisor/watcher/BUILD new file mode 100644 index 0000000000000..bb427e91076d3 --- /dev/null +++ b/vendor/github.com/google/cadvisor/watcher/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["watcher.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/watcher", + importpath = "github.com/google/cadvisor/watcher", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/zfs/BUILD b/vendor/github.com/google/cadvisor/zfs/BUILD new file mode 100644 index 0000000000000..3f0a3ae5867d5 --- /dev/null +++ b/vendor/github.com/google/cadvisor/zfs/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["watcher.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/cadvisor/zfs", + importpath = "github.com/google/cadvisor/zfs", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/mistifyio/go-zfs:go_default_library", + "//vendor/k8s.io/klog/v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/go-cmp/cmp/BUILD b/vendor/github.com/google/go-cmp/cmp/BUILD new file mode 100644 index 0000000000000..000ea8cde17cc --- /dev/null +++ b/vendor/github.com/google/go-cmp/cmp/BUILD @@ -0,0 +1,47 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "compare.go", + "export_unsafe.go", + "options.go", + "path.go", + "report.go", + "report_compare.go", + "report_reflect.go", + "report_slices.go", + "report_text.go", + "report_value.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/go-cmp/cmp", + importpath = "github.com/google/go-cmp/cmp", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/go-cmp/cmp/internal/diff:go_default_library", + "//vendor/github.com/google/go-cmp/cmp/internal/flags:go_default_library", + "//vendor/github.com/google/go-cmp/cmp/internal/function:go_default_library", + "//vendor/github.com/google/go-cmp/cmp/internal/value:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/google/go-cmp/cmp/cmpopts:all-srcs", + "//vendor/github.com/google/go-cmp/cmp/internal/diff:all-srcs", + "//vendor/github.com/google/go-cmp/cmp/internal/flags:all-srcs", + "//vendor/github.com/google/go-cmp/cmp/internal/function:all-srcs", + "//vendor/github.com/google/go-cmp/cmp/internal/value:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/go-cmp/cmp/cmpopts/BUILD b/vendor/github.com/google/go-cmp/cmp/cmpopts/BUILD new file mode 100644 index 0000000000000..94cb303eb308f --- /dev/null +++ b/vendor/github.com/google/go-cmp/cmp/cmpopts/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "equate.go", + "ignore.go", + "sort.go", + "struct_filter.go", + "xform.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/go-cmp/cmp/cmpopts", + importpath = "github.com/google/go-cmp/cmp/cmpopts", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/go-cmp/cmp:go_default_library", + "//vendor/github.com/google/go-cmp/cmp/internal/function:go_default_library", + "//vendor/golang.org/x/xerrors:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/go-cmp/cmp/internal/diff/BUILD b/vendor/github.com/google/go-cmp/cmp/internal/diff/BUILD new file mode 100644 index 0000000000000..57276db7160c4 --- /dev/null +++ b/vendor/github.com/google/go-cmp/cmp/internal/diff/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "debug_disable.go", + "diff.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/go-cmp/cmp/internal/diff", + importpath = "github.com/google/go-cmp/cmp/internal/diff", + visibility = ["//vendor/github.com/google/go-cmp/cmp:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/go-cmp/cmp/internal/flags/BUILD b/vendor/github.com/google/go-cmp/cmp/internal/flags/BUILD new file mode 100644 index 0000000000000..f447972d22570 --- /dev/null +++ b/vendor/github.com/google/go-cmp/cmp/internal/flags/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "flags.go", + "toolchain_legacy.go", + "toolchain_recent.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/go-cmp/cmp/internal/flags", + importpath = "github.com/google/go-cmp/cmp/internal/flags", + visibility = ["//vendor/github.com/google/go-cmp/cmp:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/go-cmp/cmp/internal/function/BUILD b/vendor/github.com/google/go-cmp/cmp/internal/function/BUILD new file mode 100644 index 0000000000000..c82060c602508 --- /dev/null +++ b/vendor/github.com/google/go-cmp/cmp/internal/function/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["func.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/google/go-cmp/cmp/internal/function", + importpath = "github.com/google/go-cmp/cmp/internal/function", + visibility = ["//vendor/github.com/google/go-cmp/cmp:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/go-cmp/cmp/internal/value/BUILD b/vendor/github.com/google/go-cmp/cmp/internal/value/BUILD new file mode 100644 index 0000000000000..5ff7cbf2cad5a --- /dev/null +++ b/vendor/github.com/google/go-cmp/cmp/internal/value/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "pointer_unsafe.go", + "sort.go", + "zero.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/go-cmp/cmp/internal/value", + importpath = "github.com/google/go-cmp/cmp/internal/value", + visibility = ["//vendor/github.com/google/go-cmp/cmp:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/gofuzz/BUILD b/vendor/github.com/google/gofuzz/BUILD new file mode 100644 index 0000000000000..ba405489dd838 --- /dev/null +++ b/vendor/github.com/google/gofuzz/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "fuzz.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/gofuzz", + importpath = "github.com/google/gofuzz", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/uuid/BUILD b/vendor/github.com/google/uuid/BUILD new file mode 100644 index 0000000000000..e842c5ce23863 --- /dev/null +++ b/vendor/github.com/google/uuid/BUILD @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "dce.go", + "doc.go", + "hash.go", + "marshal.go", + "node.go", + "node_js.go", + "node_net.go", + "sql.go", + "time.go", + "util.go", + "uuid.go", + "version1.go", + "version4.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/google/uuid", + importpath = "github.com/google/uuid", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/googleapis/gax-go/v2/BUILD b/vendor/github.com/googleapis/gax-go/v2/BUILD new file mode 100644 index 0000000000000..ccbb6ff101414 --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/v2/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "call_option.go", + "gax.go", + "header.go", + "invoke.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/googleapis/gax-go/v2", + importpath = "github.com/googleapis/gax-go/v2", + visibility = ["//visibility:public"], + deps = [ + "//vendor/google.golang.org/grpc:go_default_library", + "//vendor/google.golang.org/grpc/codes:go_default_library", + "//vendor/google.golang.org/grpc/status:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/googleapis/gnostic/compiler/BUILD b/vendor/github.com/googleapis/gnostic/compiler/BUILD new file mode 100644 index 0000000000000..472cf7b2f64b5 --- /dev/null +++ b/vendor/github.com/googleapis/gnostic/compiler/BUILD @@ -0,0 +1,36 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "context.go", + "error.go", + "extension-handler.go", + "helpers.go", + "main.go", + "reader.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/googleapis/gnostic/compiler", + importpath = "github.com/googleapis/gnostic/compiler", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes/any:go_default_library", + "//vendor/github.com/googleapis/gnostic/extensions:go_default_library", + "//vendor/gopkg.in/yaml.v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/googleapis/gnostic/extensions/BUILD b/vendor/github.com/googleapis/gnostic/extensions/BUILD new file mode 100644 index 0000000000000..78c213f92f668 --- /dev/null +++ b/vendor/github.com/googleapis/gnostic/extensions/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "extension.pb.go", + "extensions.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/googleapis/gnostic/extensions", + importpath = "github.com/googleapis/gnostic/extensions", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes/any:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/googleapis/gnostic/openapiv2/BUILD b/vendor/github.com/googleapis/gnostic/openapiv2/BUILD new file mode 100644 index 0000000000000..e9b0c065d3f7c --- /dev/null +++ b/vendor/github.com/googleapis/gnostic/openapiv2/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "OpenAPIv2.go", + "OpenAPIv2.pb.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/googleapis/gnostic/openapiv2", + importpath = "github.com/googleapis/gnostic/openapiv2", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes/any:go_default_library", + "//vendor/github.com/googleapis/gnostic/compiler:go_default_library", + "//vendor/gopkg.in/yaml.v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/BUILD b/vendor/github.com/gophercloud/gophercloud/BUILD new file mode 100644 index 0000000000000..194ce2ab7d30e --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/BUILD @@ -0,0 +1,38 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "auth_options.go", + "auth_result.go", + "doc.go", + "endpoint_search.go", + "errors.go", + "params.go", + "provider_client.go", + "results.go", + "service_client.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud", + importpath = "github.com/gophercloud/gophercloud", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/pagination:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/BUILD new file mode 100644 index 0000000000000..ab3a4d0c3dd51 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/BUILD @@ -0,0 +1,55 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "auth_env.go", + "client.go", + "doc.go", + "endpoint_location.go", + "errors.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack", + importpath = "github.com/gophercloud/gophercloud/openstack", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tokens:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/tokens:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/openstack/utils:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/volumeactions:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/common/extensions:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/attachinterfaces:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/flavors:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/images:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/servers:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tenants:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tokens:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/tokens:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/networks:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/utils:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/volumeactions/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/volumeactions/BUILD new file mode 100644 index 0000000000000..f3c4347c76bad --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/volumeactions/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/volumeactions", + importpath = "github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/volumeactions", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/gophercloud/gophercloud:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes/BUILD new file mode 100644 index 0000000000000..ad27471362d22 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes", + importpath = "github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes/BUILD new file mode 100644 index 0000000000000..f974b784a7fab --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes", + importpath = "github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes/BUILD new file mode 100644 index 0000000000000..c581762c8b3fb --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes", + importpath = "github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/common/extensions/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/common/extensions/BUILD new file mode 100644 index 0000000000000..d327186b48c0d --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/common/extensions/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/common/extensions", + importpath = "github.com/gophercloud/gophercloud/openstack/common/extensions", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/attachinterfaces/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/attachinterfaces/BUILD new file mode 100644 index 0000000000000..c3c04ed256e31 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/attachinterfaces/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/attachinterfaces", + importpath = "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/attachinterfaces", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD new file mode 100644 index 0000000000000..c88cc6bd054bd --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach", + importpath = "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/flavors/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/flavors/BUILD new file mode 100644 index 0000000000000..14111d48b7eb8 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/flavors/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/flavors", + importpath = "github.com/gophercloud/gophercloud/openstack/compute/v2/flavors", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/images/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/images/BUILD new file mode 100644 index 0000000000000..fa3577b674258 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/images/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/images", + importpath = "github.com/gophercloud/gophercloud/openstack/compute/v2/images", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/servers/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/servers/BUILD new file mode 100644 index 0000000000000..b2becc09816b6 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/servers/BUILD @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "errors.go", + "microversions.go", + "requests.go", + "results.go", + "urls.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/servers", + importpath = "github.com/gophercloud/gophercloud/openstack/compute/v2/servers", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/flavors:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/images:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tenants/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tenants/BUILD new file mode 100644 index 0000000000000..60b32812fa4b7 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tenants/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tenants", + importpath = "github.com/gophercloud/gophercloud/openstack/identity/v2/tenants", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tokens/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tokens/BUILD new file mode 100644 index 0000000000000..f9e258c5828bb --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tokens/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tokens", + importpath = "github.com/gophercloud/gophercloud/openstack/identity/v2/tokens", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tenants:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts/BUILD new file mode 100644 index 0000000000000..0b2669f8b6da6 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts", + importpath = "github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/tokens:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/tokens/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/tokens/BUILD new file mode 100644 index 0000000000000..95d1d1e25878b --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/tokens/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/tokens", + importpath = "github.com/gophercloud/gophercloud/openstack/identity/v3/tokens", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/gophercloud/gophercloud:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/BUILD new file mode 100644 index 0000000000000..fbdc351b89ab2 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/BUILD @@ -0,0 +1,40 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["delegate.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions", + importpath = "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/openstack/common/extensions:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/external:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/l7policies:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups:all-srcs", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/external/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/external/BUILD new file mode 100644 index 0000000000000..3f9a188103a1a --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/external/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/external", + importpath = "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/external", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/networks:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips/BUILD new file mode 100644 index 0000000000000..b40320a8e78d7 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips", + importpath = "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers/BUILD new file mode 100644 index 0000000000000..ca6c847ad4d91 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers", + importpath = "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/l7policies/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/l7policies/BUILD new file mode 100644 index 0000000000000..6f361a91211f8 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/l7policies/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/l7policies", + importpath = "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/l7policies", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners/BUILD new file mode 100644 index 0000000000000..9ba1b22a93be8 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners", + importpath = "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/l7policies:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers/BUILD new file mode 100644 index 0000000000000..407685f313e19 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers", + importpath = "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors/BUILD new file mode 100644 index 0000000000000..39f3bd9a67121 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors", + importpath = "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools/BUILD new file mode 100644 index 0000000000000..f5514ec301181 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools", + importpath = "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups/BUILD new file mode 100644 index 0000000000000..1068c1dc6a53c --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups", + importpath = "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules/BUILD new file mode 100644 index 0000000000000..b1080fee86e5a --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules", + importpath = "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/networks/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/networks/BUILD new file mode 100644 index 0000000000000..2f60272be0af1 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/networks/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/networks", + importpath = "github.com/gophercloud/gophercloud/openstack/networking/v2/networks", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports/BUILD new file mode 100644 index 0000000000000..6cf3f7b70724f --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "requests.go", + "results.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports", + importpath = "github.com/gophercloud/gophercloud/openstack/networking/v2/ports", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gophercloud/gophercloud:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/utils/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/utils/BUILD new file mode 100644 index 0000000000000..e8866231e2f83 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/openstack/utils/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "base_endpoint.go", + "choose_version.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/openstack/utils", + importpath = "github.com/gophercloud/gophercloud/openstack/utils", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/gophercloud/gophercloud:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gophercloud/gophercloud/pagination/BUILD b/vendor/github.com/gophercloud/gophercloud/pagination/BUILD new file mode 100644 index 0000000000000..2f48299fd7824 --- /dev/null +++ b/vendor/github.com/gophercloud/gophercloud/pagination/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "http.go", + "linked.go", + "marker.go", + "pager.go", + "pkg.go", + "single.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gophercloud/gophercloud/pagination", + importpath = "github.com/gophercloud/gophercloud/pagination", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/gophercloud/gophercloud:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gorilla/websocket/BUILD b/vendor/github.com/gorilla/websocket/BUILD new file mode 100644 index 0000000000000..87ff1e562f41d --- /dev/null +++ b/vendor/github.com/gorilla/websocket/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "client_clone.go", + "client_clone_legacy.go", + "compression.go", + "conn.go", + "conn_write.go", + "conn_write_legacy.go", + "doc.go", + "json.go", + "mask.go", + "prepared.go", + "proxy.go", + "server.go", + "trace.go", + "trace_17.go", + "util.go", + "x_net_proxy.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/gorilla/websocket", + importpath = "github.com/gorilla/websocket", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gregjones/httpcache/BUILD b/vendor/github.com/gregjones/httpcache/BUILD new file mode 100644 index 0000000000000..4cd475a86a38a --- /dev/null +++ b/vendor/github.com/gregjones/httpcache/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["httpcache.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/gregjones/httpcache", + importpath = "github.com/gregjones/httpcache", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/gregjones/httpcache/diskcache:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/gregjones/httpcache/diskcache/BUILD b/vendor/github.com/gregjones/httpcache/diskcache/BUILD new file mode 100644 index 0000000000000..24e4174fb423a --- /dev/null +++ b/vendor/github.com/gregjones/httpcache/diskcache/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["diskcache.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/gregjones/httpcache/diskcache", + importpath = "github.com/gregjones/httpcache/diskcache", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/peterbourgon/diskv:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/grpc-ecosystem/go-grpc-middleware/BUILD b/vendor/github.com/grpc-ecosystem/go-grpc-middleware/BUILD new file mode 100644 index 0000000000000..74846068d97eb --- /dev/null +++ b/vendor/github.com/grpc-ecosystem/go-grpc-middleware/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "chain.go", + "doc.go", + "wrappers.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/grpc-ecosystem/go-grpc-middleware", + importpath = "github.com/grpc-ecosystem/go-grpc-middleware", + visibility = ["//visibility:public"], + deps = [ + "//vendor/golang.org/x/net/context:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/BUILD b/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/BUILD new file mode 100644 index 0000000000000..543abafbca666 --- /dev/null +++ b/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/BUILD @@ -0,0 +1,39 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "client_metrics.go", + "client_reporter.go", + "metric_options.go", + "server.go", + "server_metrics.go", + "server_reporter.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/grpc-ecosystem/go-grpc-prometheus", + importpath = "github.com/grpc-ecosystem/go-grpc-prometheus", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/golang.org/x/net/context:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + "//vendor/google.golang.org/grpc/codes:go_default_library", + "//vendor/google.golang.org/grpc/status:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/internal/BUILD b/vendor/github.com/grpc-ecosystem/grpc-gateway/internal/BUILD new file mode 100644 index 0000000000000..2497fd6bbf4aa --- /dev/null +++ b/vendor/github.com/grpc-ecosystem/grpc-gateway/internal/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["stream_chunk.pb.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/grpc-ecosystem/grpc-gateway/internal", + importpath = "github.com/grpc-ecosystem/grpc-gateway/internal", + visibility = ["//vendor/github.com/grpc-ecosystem/grpc-gateway:__subpackages__"], + deps = [ + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes/any:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/internal/BUILD.bazel b/vendor/github.com/grpc-ecosystem/grpc-gateway/internal/BUILD.bazel deleted file mode 100644 index 76cafe6ec7f7c..0000000000000 --- a/vendor/github.com/grpc-ecosystem/grpc-gateway/internal/BUILD.bazel +++ /dev/null @@ -1,22 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") -load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") - -package(default_visibility = ["//visibility:public"]) - -proto_library( - name = "internal_proto", - srcs = ["stream_chunk.proto"], - deps = ["@com_google_protobuf//:any_proto"], -) - -go_proto_library( - name = "internal_go_proto", - importpath = "github.com/grpc-ecosystem/grpc-gateway/internal", - proto = ":internal_proto", -) - -go_library( - name = "go_default_library", - embed = [":internal_go_proto"], - importpath = "github.com/grpc-ecosystem/grpc-gateway/internal", -) diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD b/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD new file mode 100644 index 0000000000000..901d239a3ce01 --- /dev/null +++ b/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD @@ -0,0 +1,58 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "context.go", + "convert.go", + "doc.go", + "errors.go", + "fieldmask.go", + "handler.go", + "marshal_httpbodyproto.go", + "marshal_json.go", + "marshal_jsonpb.go", + "marshal_proto.go", + "marshaler.go", + "marshaler_registry.go", + "mux.go", + "pattern.go", + "proto2_convert.go", + "proto_errors.go", + "query.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime", + importpath = "github.com/grpc-ecosystem/grpc-gateway/runtime", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/protobuf/jsonpb:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/golang/protobuf/protoc-gen-go/generator:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes/any:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes/duration:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes/timestamp:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes/wrappers:go_default_library", + "//vendor/github.com/grpc-ecosystem/grpc-gateway/internal:go_default_library", + "//vendor/github.com/grpc-ecosystem/grpc-gateway/utilities:go_default_library", + "//vendor/google.golang.org/genproto/googleapis/api/httpbody:go_default_library", + "//vendor/google.golang.org/genproto/protobuf/field_mask:go_default_library", + "//vendor/google.golang.org/grpc/codes:go_default_library", + "//vendor/google.golang.org/grpc/grpclog:go_default_library", + "//vendor/google.golang.org/grpc/metadata:go_default_library", + "//vendor/google.golang.org/grpc/status:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD.bazel b/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD.bazel deleted file mode 100644 index 20862228ef872..0000000000000 --- a/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD.bazel +++ /dev/null @@ -1,84 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") - -package(default_visibility = ["//visibility:public"]) - -go_library( - name = "go_default_library", - srcs = [ - "context.go", - "convert.go", - "doc.go", - "errors.go", - "fieldmask.go", - "handler.go", - "marshal_httpbodyproto.go", - "marshal_json.go", - "marshal_jsonpb.go", - "marshal_proto.go", - "marshaler.go", - "marshaler_registry.go", - "mux.go", - "pattern.go", - "proto2_convert.go", - "proto_errors.go", - "query.go", - ], - importpath = "github.com/grpc-ecosystem/grpc-gateway/runtime", - deps = [ - "//internal:go_default_library", - "//utilities:go_default_library", - "@com_github_golang_protobuf//jsonpb:go_default_library_gen", - "@com_github_golang_protobuf//proto:go_default_library", - "@com_github_golang_protobuf//protoc-gen-go/generator:go_default_library_gen", - "@go_googleapis//google/api:httpbody_go_proto", - "@io_bazel_rules_go//proto/wkt:any_go_proto", - "@io_bazel_rules_go//proto/wkt:duration_go_proto", - "@io_bazel_rules_go//proto/wkt:field_mask_go_proto", - "@io_bazel_rules_go//proto/wkt:timestamp_go_proto", - "@io_bazel_rules_go//proto/wkt:wrappers_go_proto", - "@org_golang_google_grpc//codes:go_default_library", - "@org_golang_google_grpc//grpclog:go_default_library", - "@org_golang_google_grpc//metadata:go_default_library", - "@org_golang_google_grpc//status:go_default_library", - ], -) - -go_test( - name = "go_default_test", - size = "small", - srcs = [ - "context_test.go", - "errors_test.go", - "fieldmask_test.go", - "handler_test.go", - "marshal_httpbodyproto_test.go", - "marshal_json_test.go", - "marshal_jsonpb_test.go", - "marshal_proto_test.go", - "marshaler_registry_test.go", - "mux_test.go", - "pattern_test.go", - "query_test.go", - ], - embed = [":go_default_library"], - deps = [ - "//examples/proto/examplepb:go_default_library", - "//internal:go_default_library", - "//utilities:go_default_library", - "@com_github_golang_protobuf//jsonpb:go_default_library_gen", - "@com_github_golang_protobuf//proto:go_default_library", - "@com_github_golang_protobuf//ptypes:go_default_library_gen", - "@go_googleapis//google/api:httpbody_go_proto", - "@go_googleapis//google/rpc:errdetails_go_proto", - "@io_bazel_rules_go//proto/wkt:duration_go_proto", - "@io_bazel_rules_go//proto/wkt:empty_go_proto", - "@io_bazel_rules_go//proto/wkt:field_mask_go_proto", - "@io_bazel_rules_go//proto/wkt:struct_go_proto", - "@io_bazel_rules_go//proto/wkt:timestamp_go_proto", - "@io_bazel_rules_go//proto/wkt:wrappers_go_proto", - "@org_golang_google_grpc//:go_default_library", - "@org_golang_google_grpc//codes:go_default_library", - "@org_golang_google_grpc//metadata:go_default_library", - "@org_golang_google_grpc//status:go_default_library", - ], -) diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD b/vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD new file mode 100644 index 0000000000000..09838aaad3c68 --- /dev/null +++ b/vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "pattern.go", + "readerfactory.go", + "trie.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/grpc-ecosystem/grpc-gateway/utilities", + importpath = "github.com/grpc-ecosystem/grpc-gateway/utilities", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD.bazel b/vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD.bazel deleted file mode 100644 index 7109d79323187..0000000000000 --- a/vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD.bazel +++ /dev/null @@ -1,21 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") - -package(default_visibility = ["//visibility:public"]) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "pattern.go", - "readerfactory.go", - "trie.go", - ], - importpath = "github.com/grpc-ecosystem/grpc-gateway/utilities", -) - -go_test( - name = "go_default_test", - size = "small", - srcs = ["trie_test.go"], - embed = [":go_default_library"], -) diff --git a/vendor/github.com/hashicorp/golang-lru/BUILD b/vendor/github.com/hashicorp/golang-lru/BUILD new file mode 100644 index 0000000000000..49f66d173d33b --- /dev/null +++ b/vendor/github.com/hashicorp/golang-lru/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "2q.go", + "arc.go", + "doc.go", + "lru.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/hashicorp/golang-lru", + importpath = "github.com/hashicorp/golang-lru", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/hashicorp/golang-lru/simplelru:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/hashicorp/golang-lru/simplelru:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/hashicorp/golang-lru/simplelru/BUILD b/vendor/github.com/hashicorp/golang-lru/simplelru/BUILD new file mode 100644 index 0000000000000..da03dcec7bf17 --- /dev/null +++ b/vendor/github.com/hashicorp/golang-lru/simplelru/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "lru.go", + "lru_interface.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/hashicorp/golang-lru/simplelru", + importpath = "github.com/hashicorp/golang-lru/simplelru", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/hashicorp/hcl/BUILD b/vendor/github.com/hashicorp/hcl/BUILD new file mode 100644 index 0000000000000..95763ac75aaf1 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/BUILD @@ -0,0 +1,45 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "decoder.go", + "hcl.go", + "lex.go", + "parse.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/hashicorp/hcl", + importpath = "github.com/hashicorp/hcl", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/hashicorp/hcl/hcl/ast:go_default_library", + "//vendor/github.com/hashicorp/hcl/hcl/parser:go_default_library", + "//vendor/github.com/hashicorp/hcl/hcl/token:go_default_library", + "//vendor/github.com/hashicorp/hcl/json/parser:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/hashicorp/hcl/hcl/ast:all-srcs", + "//vendor/github.com/hashicorp/hcl/hcl/parser:all-srcs", + "//vendor/github.com/hashicorp/hcl/hcl/printer:all-srcs", + "//vendor/github.com/hashicorp/hcl/hcl/scanner:all-srcs", + "//vendor/github.com/hashicorp/hcl/hcl/strconv:all-srcs", + "//vendor/github.com/hashicorp/hcl/hcl/token:all-srcs", + "//vendor/github.com/hashicorp/hcl/json/parser:all-srcs", + "//vendor/github.com/hashicorp/hcl/json/scanner:all-srcs", + "//vendor/github.com/hashicorp/hcl/json/token:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/hashicorp/hcl/hcl/ast/BUILD b/vendor/github.com/hashicorp/hcl/hcl/ast/BUILD new file mode 100644 index 0000000000000..691ee86dc570a --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/hcl/ast/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "ast.go", + "walk.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/hashicorp/hcl/hcl/ast", + importpath = "github.com/hashicorp/hcl/hcl/ast", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/hashicorp/hcl/hcl/token:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/hashicorp/hcl/hcl/parser/BUILD b/vendor/github.com/hashicorp/hcl/hcl/parser/BUILD new file mode 100644 index 0000000000000..73d4dad6cfaf9 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/hcl/parser/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "error.go", + "parser.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/hashicorp/hcl/hcl/parser", + importpath = "github.com/hashicorp/hcl/hcl/parser", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/hashicorp/hcl/hcl/ast:go_default_library", + "//vendor/github.com/hashicorp/hcl/hcl/scanner:go_default_library", + "//vendor/github.com/hashicorp/hcl/hcl/token:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/hashicorp/hcl/hcl/printer/BUILD b/vendor/github.com/hashicorp/hcl/hcl/printer/BUILD new file mode 100644 index 0000000000000..9123ba78e1fe6 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/hcl/printer/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "nodes.go", + "printer.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/hashicorp/hcl/hcl/printer", + importpath = "github.com/hashicorp/hcl/hcl/printer", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/hashicorp/hcl/hcl/ast:go_default_library", + "//vendor/github.com/hashicorp/hcl/hcl/parser:go_default_library", + "//vendor/github.com/hashicorp/hcl/hcl/token:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/hashicorp/hcl/hcl/scanner/BUILD b/vendor/github.com/hashicorp/hcl/hcl/scanner/BUILD new file mode 100644 index 0000000000000..dddff2552cc10 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/hcl/scanner/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["scanner.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/hashicorp/hcl/hcl/scanner", + importpath = "github.com/hashicorp/hcl/hcl/scanner", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/hashicorp/hcl/hcl/token:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/hashicorp/hcl/hcl/strconv/BUILD b/vendor/github.com/hashicorp/hcl/hcl/strconv/BUILD new file mode 100644 index 0000000000000..6c23016911aa1 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/hcl/strconv/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["quote.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/hashicorp/hcl/hcl/strconv", + importpath = "github.com/hashicorp/hcl/hcl/strconv", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/hashicorp/hcl/hcl/token/BUILD b/vendor/github.com/hashicorp/hcl/hcl/token/BUILD new file mode 100644 index 0000000000000..1daab674b17bf --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/hcl/token/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "position.go", + "token.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/hashicorp/hcl/hcl/token", + importpath = "github.com/hashicorp/hcl/hcl/token", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/hashicorp/hcl/hcl/strconv:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/hashicorp/hcl/json/parser/BUILD b/vendor/github.com/hashicorp/hcl/json/parser/BUILD new file mode 100644 index 0000000000000..ef8648c5b5750 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/json/parser/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "flatten.go", + "parser.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/hashicorp/hcl/json/parser", + importpath = "github.com/hashicorp/hcl/json/parser", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/hashicorp/hcl/hcl/ast:go_default_library", + "//vendor/github.com/hashicorp/hcl/hcl/token:go_default_library", + "//vendor/github.com/hashicorp/hcl/json/scanner:go_default_library", + "//vendor/github.com/hashicorp/hcl/json/token:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/hashicorp/hcl/json/scanner/BUILD b/vendor/github.com/hashicorp/hcl/json/scanner/BUILD new file mode 100644 index 0000000000000..4e0722e66fac2 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/json/scanner/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["scanner.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/hashicorp/hcl/json/scanner", + importpath = "github.com/hashicorp/hcl/json/scanner", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/hashicorp/hcl/json/token:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/hashicorp/hcl/json/token/BUILD b/vendor/github.com/hashicorp/hcl/json/token/BUILD new file mode 100644 index 0000000000000..abb186e92d83e --- /dev/null +++ b/vendor/github.com/hashicorp/hcl/json/token/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "position.go", + "token.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/hashicorp/hcl/json/token", + importpath = "github.com/hashicorp/hcl/json/token", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/hashicorp/hcl/hcl/token:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/heketi/heketi/client/api/go-client/BUILD b/vendor/github.com/heketi/heketi/client/api/go-client/BUILD new file mode 100644 index 0000000000000..3eb068052acc7 --- /dev/null +++ b/vendor/github.com/heketi/heketi/client/api/go-client/BUILD @@ -0,0 +1,42 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "admin.go", + "backup.go", + "block_volume.go", + "client.go", + "cluster.go", + "db.go", + "device.go", + "logging.go", + "node.go", + "operations.go", + "state.go", + "topology.go", + "volume.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/heketi/heketi/client/api/go-client", + importpath = "github.com/heketi/heketi/client/api/go-client", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/dgrijalva/jwt-go:go_default_library", + "//vendor/github.com/heketi/heketi/pkg/glusterfs/api:go_default_library", + "//vendor/github.com/heketi/heketi/pkg/utils:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/heketi/heketi/pkg/glusterfs/api/BUILD b/vendor/github.com/heketi/heketi/pkg/glusterfs/api/BUILD new file mode 100644 index 0000000000000..53936fa0ad9e9 --- /dev/null +++ b/vendor/github.com/heketi/heketi/pkg/glusterfs/api/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["types.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/heketi/heketi/pkg/glusterfs/api", + importpath = "github.com/heketi/heketi/pkg/glusterfs/api", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/go-ozzo/ozzo-validation:go_default_library", + "//vendor/github.com/go-ozzo/ozzo-validation/is:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/heketi/heketi/pkg/utils/BUILD b/vendor/github.com/heketi/heketi/pkg/utils/BUILD new file mode 100644 index 0000000000000..bb83291af8a68 --- /dev/null +++ b/vendor/github.com/heketi/heketi/pkg/utils/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bodystring.go", + "jsonutils.go", + "statusgroup.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/heketi/heketi/pkg/utils", + importpath = "github.com/heketi/heketi/pkg/utils", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/hpcloud/tail/BUILD b/vendor/github.com/hpcloud/tail/BUILD new file mode 100644 index 0000000000000..b6bddba86b6be --- /dev/null +++ b/vendor/github.com/hpcloud/tail/BUILD @@ -0,0 +1,44 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "tail.go", + "tail_posix.go", + "tail_windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/hpcloud/tail", + importpath = "github.com/hpcloud/tail", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/hpcloud/tail/ratelimiter:go_default_library", + "//vendor/github.com/hpcloud/tail/util:go_default_library", + "//vendor/github.com/hpcloud/tail/watch:go_default_library", + "//vendor/gopkg.in/tomb.v1:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/github.com/hpcloud/tail/winfile:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/hpcloud/tail/ratelimiter:all-srcs", + "//vendor/github.com/hpcloud/tail/util:all-srcs", + "//vendor/github.com/hpcloud/tail/watch:all-srcs", + "//vendor/github.com/hpcloud/tail/winfile:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/hpcloud/tail/ratelimiter/BUILD b/vendor/github.com/hpcloud/tail/ratelimiter/BUILD new file mode 100644 index 0000000000000..b563182cbab44 --- /dev/null +++ b/vendor/github.com/hpcloud/tail/ratelimiter/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "leakybucket.go", + "memory.go", + "storage.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/hpcloud/tail/ratelimiter", + importpath = "github.com/hpcloud/tail/ratelimiter", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/hpcloud/tail/util/BUILD b/vendor/github.com/hpcloud/tail/util/BUILD new file mode 100644 index 0000000000000..8d6ed42c75b38 --- /dev/null +++ b/vendor/github.com/hpcloud/tail/util/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["util.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/hpcloud/tail/util", + importpath = "github.com/hpcloud/tail/util", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/hpcloud/tail/watch/BUILD b/vendor/github.com/hpcloud/tail/watch/BUILD new file mode 100644 index 0000000000000..922a5b6044010 --- /dev/null +++ b/vendor/github.com/hpcloud/tail/watch/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "filechanges.go", + "inotify.go", + "inotify_tracker.go", + "polling.go", + "watch.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/hpcloud/tail/watch", + importpath = "github.com/hpcloud/tail/watch", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/hpcloud/tail/util:go_default_library", + "//vendor/gopkg.in/fsnotify.v1:go_default_library", + "//vendor/gopkg.in/tomb.v1:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/hpcloud/tail/winfile/BUILD b/vendor/github.com/hpcloud/tail/winfile/BUILD new file mode 100644 index 0000000000000..b7aedb1c7e019 --- /dev/null +++ b/vendor/github.com/hpcloud/tail/winfile/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["winfile.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/hpcloud/tail/winfile", + importpath = "github.com/hpcloud/tail/winfile", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/imdario/mergo/BUILD b/vendor/github.com/imdario/mergo/BUILD new file mode 100644 index 0000000000000..03e1026b2d0df --- /dev/null +++ b/vendor/github.com/imdario/mergo/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "map.go", + "merge.go", + "mergo.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/imdario/mergo", + importpath = "github.com/imdario/mergo", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/inconshreveable/mousetrap/BUILD b/vendor/github.com/inconshreveable/mousetrap/BUILD new file mode 100644 index 0000000000000..7add0bb0b3959 --- /dev/null +++ b/vendor/github.com/inconshreveable/mousetrap/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "trap_others.go", + "trap_windows.go", + "trap_windows_1.4.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/inconshreveable/mousetrap", + importpath = "github.com/inconshreveable/mousetrap", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/ishidawataru/sctp/BUILD b/vendor/github.com/ishidawataru/sctp/BUILD new file mode 100644 index 0000000000000..72c28d7ff7242 --- /dev/null +++ b/vendor/github.com/ishidawataru/sctp/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "ipsock_linux.go", + "sctp.go", + "sctp_linux.go", + "sctp_unsupported.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/ishidawataru/sctp", + importpath = "github.com/ishidawataru/sctp", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/jmespath/go-jmespath/BUILD b/vendor/github.com/jmespath/go-jmespath/BUILD new file mode 100644 index 0000000000000..6edd2b5d95500 --- /dev/null +++ b/vendor/github.com/jmespath/go-jmespath/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "api.go", + "astnodetype_string.go", + "functions.go", + "interpreter.go", + "lexer.go", + "parser.go", + "toktype_string.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/jmespath/go-jmespath", + importpath = "github.com/jmespath/go-jmespath", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/jonboulle/clockwork/BUILD b/vendor/github.com/jonboulle/clockwork/BUILD new file mode 100644 index 0000000000000..fefa95a5b1dcc --- /dev/null +++ b/vendor/github.com/jonboulle/clockwork/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["clockwork.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/jonboulle/clockwork", + importpath = "github.com/jonboulle/clockwork", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/json-iterator/go/BUILD b/vendor/github.com/json-iterator/go/BUILD new file mode 100644 index 0000000000000..1bb22c432d145 --- /dev/null +++ b/vendor/github.com/json-iterator/go/BUILD @@ -0,0 +1,70 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "adapter.go", + "any.go", + "any_array.go", + "any_bool.go", + "any_float.go", + "any_int32.go", + "any_int64.go", + "any_invalid.go", + "any_nil.go", + "any_number.go", + "any_object.go", + "any_str.go", + "any_uint32.go", + "any_uint64.go", + "config.go", + "iter.go", + "iter_array.go", + "iter_float.go", + "iter_int.go", + "iter_object.go", + "iter_skip.go", + "iter_skip_strict.go", + "iter_str.go", + "jsoniter.go", + "pool.go", + "reflect.go", + "reflect_array.go", + "reflect_dynamic.go", + "reflect_extension.go", + "reflect_json_number.go", + "reflect_json_raw_message.go", + "reflect_map.go", + "reflect_marshaler.go", + "reflect_native.go", + "reflect_optional.go", + "reflect_slice.go", + "reflect_struct_decoder.go", + "reflect_struct_encoder.go", + "stream.go", + "stream_float.go", + "stream_int.go", + "stream_str.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/json-iterator/go", + importpath = "github.com/json-iterator/go", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/modern-go/concurrent:go_default_library", + "//vendor/github.com/modern-go/reflect2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/karrick/godirwalk/BUILD b/vendor/github.com/karrick/godirwalk/BUILD new file mode 100644 index 0000000000000..d126c13c86776 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "dirent.go", + "doc.go", + "readdir.go", + "readdir_unix.go", + "readdir_windows.go", + "walk.go", + "withFileno.go", + "withIno.go", + "withNamlen.go", + "withoutNamlen.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/karrick/godirwalk", + importpath = "github.com/karrick/godirwalk", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/pkg/errors:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/konsorten/go-windows-terminal-sequences/BUILD b/vendor/github.com/konsorten/go-windows-terminal-sequences/BUILD new file mode 100644 index 0000000000000..c5ed6513d1cd5 --- /dev/null +++ b/vendor/github.com/konsorten/go-windows-terminal-sequences/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "sequences.go", + "sequences_dummy.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/konsorten/go-windows-terminal-sequences", + importpath = "github.com/konsorten/go-windows-terminal-sequences", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/libopenstorage/openstorage/api/BUILD b/vendor/github.com/libopenstorage/openstorage/api/BUILD new file mode 100644 index 0000000000000..286206632247f --- /dev/null +++ b/vendor/github.com/libopenstorage/openstorage/api/BUILD @@ -0,0 +1,36 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "api.go", + "api.pb.go", + "status.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/libopenstorage/openstorage/api", + importpath = "github.com/libopenstorage/openstorage/api", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes/timestamp:go_default_library", + "//vendor/github.com/mohae/deepcopy:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/libopenstorage/openstorage/api/client:all-srcs", + "//vendor/github.com/libopenstorage/openstorage/api/spec:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/libopenstorage/openstorage/api/client/BUILD b/vendor/github.com/libopenstorage/openstorage/api/client/BUILD new file mode 100644 index 0000000000000..9e433cd6e2080 --- /dev/null +++ b/vendor/github.com/libopenstorage/openstorage/api/client/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "request.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/libopenstorage/openstorage/api/client", + importpath = "github.com/libopenstorage/openstorage/api/client", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/libopenstorage/openstorage/api/client/volume:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/libopenstorage/openstorage/api/client/volume/BUILD b/vendor/github.com/libopenstorage/openstorage/api/client/volume/BUILD new file mode 100644 index 0000000000000..799ea2cc668b1 --- /dev/null +++ b/vendor/github.com/libopenstorage/openstorage/api/client/volume/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "volume.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/libopenstorage/openstorage/api/client/volume", + importpath = "github.com/libopenstorage/openstorage/api/client/volume", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/libopenstorage/openstorage/api:go_default_library", + "//vendor/github.com/libopenstorage/openstorage/api/client:go_default_library", + "//vendor/github.com/libopenstorage/openstorage/volume:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/libopenstorage/openstorage/api/spec/BUILD b/vendor/github.com/libopenstorage/openstorage/api/spec/BUILD new file mode 100644 index 0000000000000..f34f8d7b0d9c7 --- /dev/null +++ b/vendor/github.com/libopenstorage/openstorage/api/spec/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["spec_handler.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/libopenstorage/openstorage/api/spec", + importpath = "github.com/libopenstorage/openstorage/api/spec", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/libopenstorage/openstorage/api:go_default_library", + "//vendor/github.com/libopenstorage/openstorage/pkg/parser:go_default_library", + "//vendor/github.com/libopenstorage/openstorage/pkg/units:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/libopenstorage/openstorage/pkg/parser/BUILD b/vendor/github.com/libopenstorage/openstorage/pkg/parser/BUILD new file mode 100644 index 0000000000000..56fdcf876bf2e --- /dev/null +++ b/vendor/github.com/libopenstorage/openstorage/pkg/parser/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["labels.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/libopenstorage/openstorage/pkg/parser", + importpath = "github.com/libopenstorage/openstorage/pkg/parser", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/libopenstorage/openstorage/pkg/units/BUILD b/vendor/github.com/libopenstorage/openstorage/pkg/units/BUILD new file mode 100644 index 0000000000000..7689c47a8b280 --- /dev/null +++ b/vendor/github.com/libopenstorage/openstorage/pkg/units/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["units.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/libopenstorage/openstorage/pkg/units", + importpath = "github.com/libopenstorage/openstorage/pkg/units", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/libopenstorage/openstorage/volume/BUILD b/vendor/github.com/libopenstorage/openstorage/volume/BUILD new file mode 100644 index 0000000000000..151005e934500 --- /dev/null +++ b/vendor/github.com/libopenstorage/openstorage/volume/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "volume.go", + "volume_driver_registry.go", + "volume_not_supported.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/libopenstorage/openstorage/volume", + importpath = "github.com/libopenstorage/openstorage/volume", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/libopenstorage/openstorage/api:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/liggitt/tabwriter/BUILD b/vendor/github.com/liggitt/tabwriter/BUILD new file mode 100644 index 0000000000000..73e6abf0420a2 --- /dev/null +++ b/vendor/github.com/liggitt/tabwriter/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["tabwriter.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/liggitt/tabwriter", + importpath = "github.com/liggitt/tabwriter", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/lithammer/dedent/BUILD b/vendor/github.com/lithammer/dedent/BUILD new file mode 100644 index 0000000000000..dc71f001713fb --- /dev/null +++ b/vendor/github.com/lithammer/dedent/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["dedent.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/lithammer/dedent", + importpath = "github.com/lithammer/dedent", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/magiconair/properties/BUILD b/vendor/github.com/magiconair/properties/BUILD new file mode 100644 index 0000000000000..bd88d28e05a56 --- /dev/null +++ b/vendor/github.com/magiconair/properties/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "decode.go", + "doc.go", + "integrate.go", + "lex.go", + "load.go", + "parser.go", + "properties.go", + "rangecheck.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/magiconair/properties", + importpath = "github.com/magiconair/properties", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/mailru/easyjson/buffer/BUILD b/vendor/github.com/mailru/easyjson/buffer/BUILD new file mode 100644 index 0000000000000..8cb6e9ab1a8d5 --- /dev/null +++ b/vendor/github.com/mailru/easyjson/buffer/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["pool.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/mailru/easyjson/buffer", + importpath = "github.com/mailru/easyjson/buffer", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/mailru/easyjson/jlexer/BUILD b/vendor/github.com/mailru/easyjson/jlexer/BUILD new file mode 100644 index 0000000000000..bbe5efd94b31d --- /dev/null +++ b/vendor/github.com/mailru/easyjson/jlexer/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bytestostr.go", + "error.go", + "lexer.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/mailru/easyjson/jlexer", + importpath = "github.com/mailru/easyjson/jlexer", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/mailru/easyjson/jwriter/BUILD b/vendor/github.com/mailru/easyjson/jwriter/BUILD new file mode 100644 index 0000000000000..4e734da853d73 --- /dev/null +++ b/vendor/github.com/mailru/easyjson/jwriter/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["writer.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/mailru/easyjson/jwriter", + importpath = "github.com/mailru/easyjson/jwriter", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/mailru/easyjson/buffer:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/BUILD b/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/BUILD new file mode 100644 index 0000000000000..e9196f54def54 --- /dev/null +++ b/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "decode.go", + "doc.go", + "encode.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil", + importpath = "github.com/matttproud/golang_protobuf_extensions/pbutil", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/miekg/dns/BUILD b/vendor/github.com/miekg/dns/BUILD new file mode 100644 index 0000000000000..082c05e7dd24a --- /dev/null +++ b/vendor/github.com/miekg/dns/BUILD @@ -0,0 +1,136 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "acceptfunc.go", + "client.go", + "clientconfig.go", + "dane.go", + "defaults.go", + "dns.go", + "dnssec.go", + "dnssec_keygen.go", + "dnssec_keyscan.go", + "dnssec_privkey.go", + "doc.go", + "duplicate.go", + "edns.go", + "format.go", + "generate.go", + "labels.go", + "listen_go111.go", + "listen_go_not111.go", + "msg.go", + "msg_helpers.go", + "nsecx.go", + "privaterr.go", + "reverse.go", + "sanitize.go", + "scan.go", + "scan_rr.go", + "serve_mux.go", + "server.go", + "sig0.go", + "singleinflight.go", + "smimea.go", + "tlsa.go", + "tsig.go", + "types.go", + "udp.go", + "udp_windows.go", + "update.go", + "version.go", + "xfr.go", + "zduplicate.go", + "zmsg.go", + "ztypes.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/miekg/dns", + importpath = "github.com/miekg/dns", + visibility = ["//visibility:public"], + deps = [ + "//vendor/golang.org/x/crypto/ed25519:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:aix": [ + "//vendor/golang.org/x/net/ipv4:go_default_library", + "//vendor/golang.org/x/net/ipv6:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/golang.org/x/net/ipv4:go_default_library", + "//vendor/golang.org/x/net/ipv6:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "//vendor/golang.org/x/net/ipv4:go_default_library", + "//vendor/golang.org/x/net/ipv6:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:dragonfly": [ + "//vendor/golang.org/x/net/ipv4:go_default_library", + "//vendor/golang.org/x/net/ipv6:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "//vendor/golang.org/x/net/ipv4:go_default_library", + "//vendor/golang.org/x/net/ipv6:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:illumos": [ + "//vendor/golang.org/x/net/ipv4:go_default_library", + "//vendor/golang.org/x/net/ipv6:go_default_library", + ], + "@io_bazel_rules_go//go/platform:ios": [ + "//vendor/golang.org/x/net/ipv4:go_default_library", + "//vendor/golang.org/x/net/ipv6:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:js": [ + "//vendor/golang.org/x/net/ipv4:go_default_library", + "//vendor/golang.org/x/net/ipv6:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/golang.org/x/net/ipv4:go_default_library", + "//vendor/golang.org/x/net/ipv6:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:nacl": [ + "//vendor/golang.org/x/net/ipv4:go_default_library", + "//vendor/golang.org/x/net/ipv6:go_default_library", + ], + "@io_bazel_rules_go//go/platform:netbsd": [ + "//vendor/golang.org/x/net/ipv4:go_default_library", + "//vendor/golang.org/x/net/ipv6:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:openbsd": [ + "//vendor/golang.org/x/net/ipv4:go_default_library", + "//vendor/golang.org/x/net/ipv6:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:plan9": [ + "//vendor/golang.org/x/net/ipv4:go_default_library", + "//vendor/golang.org/x/net/ipv6:go_default_library", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "//vendor/golang.org/x/net/ipv4:go_default_library", + "//vendor/golang.org/x/net/ipv6:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/mindprince/gonvml/BUILD b/vendor/github.com/mindprince/gonvml/BUILD new file mode 100644 index 0000000000000..0ee8c9235c82a --- /dev/null +++ b/vendor/github.com/mindprince/gonvml/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bindings.go", + "bindings_nocgo.go", + "nvml.h", + ], + cgo = True, + clinkopts = ["-ldl"], + importmap = "k8s.io/kubernetes/vendor/github.com/mindprince/gonvml", + importpath = "github.com/mindprince/gonvml", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/mistifyio/go-zfs/BUILD b/vendor/github.com/mistifyio/go-zfs/BUILD new file mode 100644 index 0000000000000..03376510fb8b7 --- /dev/null +++ b/vendor/github.com/mistifyio/go-zfs/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "error.go", + "utils.go", + "utils_notsolaris.go", + "utils_solaris.go", + "zfs.go", + "zpool.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/mistifyio/go-zfs", + importpath = "github.com/mistifyio/go-zfs", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/google/uuid:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/mitchellh/go-wordwrap/BUILD b/vendor/github.com/mitchellh/go-wordwrap/BUILD new file mode 100644 index 0000000000000..3fc1135e6685e --- /dev/null +++ b/vendor/github.com/mitchellh/go-wordwrap/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["wordwrap.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/mitchellh/go-wordwrap", + importpath = "github.com/mitchellh/go-wordwrap", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/mitchellh/mapstructure/BUILD b/vendor/github.com/mitchellh/mapstructure/BUILD new file mode 100644 index 0000000000000..6e84c36986270 --- /dev/null +++ b/vendor/github.com/mitchellh/mapstructure/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "decode_hooks.go", + "error.go", + "mapstructure.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/mitchellh/mapstructure", + importpath = "github.com/mitchellh/mapstructure", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/moby/ipvs/BUILD b/vendor/github.com/moby/ipvs/BUILD new file mode 100644 index 0000000000000..aa2852f1747e6 --- /dev/null +++ b/vendor/github.com/moby/ipvs/BUILD @@ -0,0 +1,43 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "constants.go", + "doc.go", + "ipvs.go", + "netlink.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/moby/ipvs", + importpath = "github.com/moby/ipvs", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/sirupsen/logrus:go_default_library", + "//vendor/github.com/vishvananda/netlink/nl:go_default_library", + "//vendor/github.com/vishvananda/netns:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/sirupsen/logrus:go_default_library", + "//vendor/github.com/vishvananda/netlink/nl:go_default_library", + "//vendor/github.com/vishvananda/netns:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/moby/sys/mountinfo/BUILD b/vendor/github.com/moby/sys/mountinfo/BUILD new file mode 100644 index 0000000000000..4ff7ffc06e856 --- /dev/null +++ b/vendor/github.com/moby/sys/mountinfo/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "mountinfo.go", + "mountinfo_filters.go", + "mountinfo_freebsd.go", + "mountinfo_linux.go", + "mountinfo_unsupported.go", + "mountinfo_windows.go", + ], + cgo = True, + importmap = "k8s.io/kubernetes/vendor/github.com/moby/sys/mountinfo", + importpath = "github.com/moby/sys/mountinfo", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/moby/term/BUILD b/vendor/github.com/moby/term/BUILD new file mode 100644 index 0000000000000..ee10cde993b3f --- /dev/null +++ b/vendor/github.com/moby/term/BUILD @@ -0,0 +1,84 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "ascii.go", + "proxy.go", + "tc.go", + "term.go", + "term_windows.go", + "termios_bsd.go", + "termios_linux.go", + "winsize.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/moby/term", + importpath = "github.com/moby/term", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:aix": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:dragonfly": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:illumos": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:ios": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:js": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:nacl": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:netbsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:openbsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:plan9": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/github.com/Azure/go-ansiterm/winterm:go_default_library", + "//vendor/github.com/moby/term/windows:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/moby/term/windows:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/moby/term/windows/BUILD b/vendor/github.com/moby/term/windows/BUILD new file mode 100644 index 0000000000000..62bbcb4a66493 --- /dev/null +++ b/vendor/github.com/moby/term/windows/BUILD @@ -0,0 +1,36 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "ansi_reader.go", + "ansi_writer.go", + "console.go", + "windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/moby/term/windows", + importpath = "github.com/moby/term/windows", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/github.com/Azure/go-ansiterm:go_default_library", + "//vendor/github.com/Azure/go-ansiterm/winterm:go_default_library", + "//vendor/github.com/sirupsen/logrus:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/modern-go/concurrent/BUILD b/vendor/github.com/modern-go/concurrent/BUILD new file mode 100644 index 0000000000000..d06bd58534825 --- /dev/null +++ b/vendor/github.com/modern-go/concurrent/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "executor.go", + "go_above_19.go", + "go_below_19.go", + "log.go", + "unbounded_executor.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/modern-go/concurrent", + importpath = "github.com/modern-go/concurrent", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/modern-go/reflect2/BUILD b/vendor/github.com/modern-go/reflect2/BUILD new file mode 100644 index 0000000000000..5625b84cd7f55 --- /dev/null +++ b/vendor/github.com/modern-go/reflect2/BUILD @@ -0,0 +1,56 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "go_above_17.go", + "go_above_19.go", + "go_below_17.go", + "go_below_19.go", + "reflect2.go", + "reflect2_amd64.s", + "reflect2_kind.go", + "relfect2_386.s", + "relfect2_amd64p32.s", + "relfect2_arm.s", + "relfect2_arm64.s", + "relfect2_mips64x.s", + "relfect2_mipsx.s", + "relfect2_ppc64x.s", + "relfect2_s390x.s", + "safe_field.go", + "safe_map.go", + "safe_slice.go", + "safe_struct.go", + "safe_type.go", + "type_map.go", + "unsafe_array.go", + "unsafe_eface.go", + "unsafe_field.go", + "unsafe_iface.go", + "unsafe_link.go", + "unsafe_map.go", + "unsafe_ptr.go", + "unsafe_slice.go", + "unsafe_struct.go", + "unsafe_type.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/modern-go/reflect2", + importpath = "github.com/modern-go/reflect2", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/modern-go/concurrent:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/mohae/deepcopy/BUILD b/vendor/github.com/mohae/deepcopy/BUILD new file mode 100644 index 0000000000000..2fcfa1c6c98e0 --- /dev/null +++ b/vendor/github.com/mohae/deepcopy/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["deepcopy.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/mohae/deepcopy", + importpath = "github.com/mohae/deepcopy", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/morikuni/aec/BUILD b/vendor/github.com/morikuni/aec/BUILD new file mode 100644 index 0000000000000..7ced26436e95e --- /dev/null +++ b/vendor/github.com/morikuni/aec/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "aec.go", + "ansi.go", + "builder.go", + "sgr.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/morikuni/aec", + importpath = "github.com/morikuni/aec", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/mrunalp/fileutils/BUILD b/vendor/github.com/mrunalp/fileutils/BUILD new file mode 100644 index 0000000000000..8a4772965b26f --- /dev/null +++ b/vendor/github.com/mrunalp/fileutils/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "fileutils.go", + "idtools.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/mrunalp/fileutils", + importpath = "github.com/mrunalp/fileutils", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/munnerz/goautoneg/BUILD b/vendor/github.com/munnerz/goautoneg/BUILD new file mode 100644 index 0000000000000..fd31c6c004468 --- /dev/null +++ b/vendor/github.com/munnerz/goautoneg/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["autoneg.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/munnerz/goautoneg", + importpath = "github.com/munnerz/goautoneg", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/mvdan/xurls/BUILD b/vendor/github.com/mvdan/xurls/BUILD new file mode 100644 index 0000000000000..9d132a7e8a405 --- /dev/null +++ b/vendor/github.com/mvdan/xurls/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "regex.go", + "schemes.go", + "tlds.go", + "tlds_pseudo.go", + "xurls.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/mvdan/xurls", + importpath = "github.com/mvdan/xurls", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/mxk/go-flowrate/flowrate/BUILD b/vendor/github.com/mxk/go-flowrate/flowrate/BUILD new file mode 100644 index 0000000000000..9a3863787dc1f --- /dev/null +++ b/vendor/github.com/mxk/go-flowrate/flowrate/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "flowrate.go", + "io.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/mxk/go-flowrate/flowrate", + importpath = "github.com/mxk/go-flowrate/flowrate", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/.travis.yml b/vendor/github.com/onsi/ginkgo/.travis.yml index 72e8ccf0be98d..b454d643cbc41 100644 --- a/vendor/github.com/onsi/ginkgo/.travis.yml +++ b/vendor/github.com/onsi/ginkgo/.travis.yml @@ -1,10 +1,12 @@ language: go go: - - 1.10.x - - 1.11.x - 1.12.x + - 1.13.x - tip +# allow internal package imports, necessary for forked repositories +go_import_path: github.com/onsi/ginkgo + install: - go get -v -t ./... - go get golang.org/x/tools/cmd/cover diff --git a/vendor/github.com/onsi/ginkgo/BUILD b/vendor/github.com/onsi/ginkgo/BUILD new file mode 100644 index 0000000000000..d9269eac4951c --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/BUILD @@ -0,0 +1,53 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["ginkgo_dsl.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo", + importpath = "github.com/onsi/ginkgo", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/onsi/ginkgo/config:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/codelocation:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/failer:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/remote:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/suite:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/testingtproxy:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/writer:go_default_library", + "//vendor/github.com/onsi/ginkgo/reporters:go_default_library", + "//vendor/github.com/onsi/ginkgo/reporters/stenographer:go_default_library", + "//vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable:go_default_library", + "//vendor/github.com/onsi/ginkgo/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/onsi/ginkgo/config:all-srcs", + "//vendor/github.com/onsi/ginkgo/ginkgo:all-srcs", + "//vendor/github.com/onsi/ginkgo/internal/codelocation:all-srcs", + "//vendor/github.com/onsi/ginkgo/internal/containernode:all-srcs", + "//vendor/github.com/onsi/ginkgo/internal/failer:all-srcs", + "//vendor/github.com/onsi/ginkgo/internal/leafnodes:all-srcs", + "//vendor/github.com/onsi/ginkgo/internal/remote:all-srcs", + "//vendor/github.com/onsi/ginkgo/internal/spec:all-srcs", + "//vendor/github.com/onsi/ginkgo/internal/spec_iterator:all-srcs", + "//vendor/github.com/onsi/ginkgo/internal/specrunner:all-srcs", + "//vendor/github.com/onsi/ginkgo/internal/suite:all-srcs", + "//vendor/github.com/onsi/ginkgo/internal/testingtproxy:all-srcs", + "//vendor/github.com/onsi/ginkgo/internal/writer:all-srcs", + "//vendor/github.com/onsi/ginkgo/reporters:all-srcs", + "//vendor/github.com/onsi/ginkgo/types:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/CHANGELOG.md b/vendor/github.com/onsi/ginkgo/CHANGELOG.md index 4920406aeb820..96f03ad7c2b08 100644 --- a/vendor/github.com/onsi/ginkgo/CHANGELOG.md +++ b/vendor/github.com/onsi/ginkgo/CHANGELOG.md @@ -1,3 +1,51 @@ +## 1.11.0 + +### Features +- Add syscall for riscv64 architecture [f66e896] +- teamcity reporter: output location of test failure as well as test definition (#626) [9869142] +- teamcity reporter: output newline after every service message (#625) [3cfa02d] +- Add support for go module when running `generate` command (#578) [9c89e3f] + +## 1.10.3 + +### Fixes +- Set go_import_path in travis.yml to allow internal packages in forks (#607) [3b721db] +- Add integration test [d90e0dc] +- Fix coverage files combining [e5dde8c] +- A new CLI option: -ginkgo.reportFile (#601) [034fd25] + +## 1.10.2 + +### Fixes +- speed up table entry generateIt() (#609) [5049dc5] +- Fix. Write errors to stderr instead of stdout (#610) [7bb3091] + +## 1.10.1 + +### Fixes +- stack backtrace: fix skipping (#600) [2a4c0bd] + +## 1.10.0 + +### Fixes +- stack backtrace: fix alignment and skipping [66915d6] +- fix typo in documentation [8f97b93] + +## 1.9.0 + +### Features +- Option to print output into report, when tests have passed [0545415] + +### Fixes +- Fixed typos in comments [0ecbc58] +- gofmt code [a7f8bfb] +- Simplify code [7454d00] +- Simplify concatenation, incrementation and function assignment [4825557] +- Avoid unnecessary conversions [9d9403c] +- JUnit: include more detailed information about panic [19cca4b] +- Print help to stdout when the user asks for help [4cb7441] + + ## 1.8.0 ### New Features diff --git a/vendor/github.com/onsi/ginkgo/config/BUILD b/vendor/github.com/onsi/ginkgo/config/BUILD new file mode 100644 index 0000000000000..146c8ec1c920a --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/config/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["config.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/config", + importpath = "github.com/onsi/ginkgo/config", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/config/config.go b/vendor/github.com/onsi/ginkgo/config/config.go index dab2a24708cb8..14c82ec3a7101 100644 --- a/vendor/github.com/onsi/ginkgo/config/config.go +++ b/vendor/github.com/onsi/ginkgo/config/config.go @@ -20,7 +20,7 @@ import ( "fmt" ) -const VERSION = "1.8.0" +const VERSION = "1.11.0" type GinkgoConfigType struct { RandomSeed int64 @@ -52,13 +52,15 @@ type DefaultReporterConfigType struct { Succinct bool Verbose bool FullTrace bool + ReportPassed bool + ReportFile string } var DefaultReporterConfig = DefaultReporterConfigType{} func processPrefix(prefix string) string { if prefix != "" { - prefix = prefix + "." + prefix += "." } return prefix } @@ -98,6 +100,9 @@ func Flags(flagSet *flag.FlagSet, prefix string, includeParallelFlags bool) { flagSet.BoolVar(&(DefaultReporterConfig.Verbose), prefix+"v", false, "If set, default reporter print out all specs as they begin.") flagSet.BoolVar(&(DefaultReporterConfig.Succinct), prefix+"succinct", false, "If set, default reporter prints out a very succinct report") flagSet.BoolVar(&(DefaultReporterConfig.FullTrace), prefix+"trace", false, "If set, default reporter prints out the full stack trace when a failure occurs") + flagSet.BoolVar(&(DefaultReporterConfig.ReportPassed), prefix+"reportPassed", false, "If set, default reporter prints out captured output of passed tests.") + flagSet.StringVar(&(DefaultReporterConfig.ReportFile), prefix+"reportFile", "", "Override the default reporter output file path.") + } func BuildFlagArgs(prefix string, ginkgo GinkgoConfigType, reporter DefaultReporterConfigType) []string { @@ -196,5 +201,13 @@ func BuildFlagArgs(prefix string, ginkgo GinkgoConfigType, reporter DefaultRepor result = append(result, fmt.Sprintf("--%strace", prefix)) } + if reporter.ReportPassed { + result = append(result, fmt.Sprintf("--%sreportPassed", prefix)) + } + + if reporter.ReportFile != "" { + result = append(result, fmt.Sprintf("--%sreportFile=%s", prefix, reporter.ReportFile)) + } + return result } diff --git a/vendor/github.com/onsi/ginkgo/extension.go b/vendor/github.com/onsi/ginkgo/extension.go deleted file mode 100644 index fd188ce1fb361..0000000000000 --- a/vendor/github.com/onsi/ginkgo/extension.go +++ /dev/null @@ -1,19 +0,0 @@ -package ginkgo - -import ( - "github.com/onsi/ginkgo/internal/suite" - "github.com/onsi/ginkgo/internal/writer" - "github.com/onsi/ginkgo/types" -) - -func GlobalSuite() *suite.Suite { - return globalSuite -} - -func GinkgoWriterType() *writer.Writer { - return GinkgoWriter.(*writer.Writer) -} - -func WalkTests(fn func(name, parentName string, node types.TestNode)) { - globalSuite.WalkTests(fn) -} diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/BUILD new file mode 100644 index 0000000000000..6d5c4eeee04cc --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/ginkgo/BUILD @@ -0,0 +1,64 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bootstrap_command.go", + "build_command.go", + "convert_command.go", + "generate_command.go", + "help_command.go", + "main.go", + "nodot_command.go", + "notifications.go", + "run_command.go", + "run_watch_and_build_command_flags.go", + "suite_runner.go", + "unfocus_command.go", + "version_command.go", + "watch_command.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/ginkgo", + importpath = "github.com/onsi/ginkgo/ginkgo", + visibility = ["//visibility:private"], + deps = [ + "//vendor/github.com/onsi/ginkgo/config:go_default_library", + "//vendor/github.com/onsi/ginkgo/ginkgo/convert:go_default_library", + "//vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler:go_default_library", + "//vendor/github.com/onsi/ginkgo/ginkgo/nodot:go_default_library", + "//vendor/github.com/onsi/ginkgo/ginkgo/testrunner:go_default_library", + "//vendor/github.com/onsi/ginkgo/ginkgo/testsuite:go_default_library", + "//vendor/github.com/onsi/ginkgo/ginkgo/watch:go_default_library", + "//vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable:go_default_library", + "//vendor/github.com/onsi/ginkgo/types:go_default_library", + ], +) + +go_binary( + name = "ginkgo", + embed = [":go_default_library"], + tags = ["manual"], + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/onsi/ginkgo/ginkgo/convert:all-srcs", + "//vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler:all-srcs", + "//vendor/github.com/onsi/ginkgo/ginkgo/nodot:all-srcs", + "//vendor/github.com/onsi/ginkgo/ginkgo/testrunner:all-srcs", + "//vendor/github.com/onsi/ginkgo/ginkgo/testsuite:all-srcs", + "//vendor/github.com/onsi/ginkgo/ginkgo/watch:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/bootstrap_command.go b/vendor/github.com/onsi/ginkgo/ginkgo/bootstrap_command.go index fea4d4d4e6c63..93150d1a4c8e9 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/bootstrap_command.go +++ b/vendor/github.com/onsi/ginkgo/ginkgo/bootstrap_command.go @@ -131,10 +131,7 @@ func determinePackageName(name string, internal bool) string { func fileExists(path string) bool { _, err := os.Stat(path) - if err == nil { - return true - } - return false + return err == nil } func generateBootstrap(agouti, noDot, internal bool, customBootstrapFile string) { diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/convert/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/convert/BUILD new file mode 100644 index 0000000000000..37dc4ff5137e6 --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/ginkgo/convert/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "ginkgo_ast_nodes.go", + "import.go", + "package_rewriter.go", + "test_finder.go", + "testfile_rewriter.go", + "testing_t_rewriter.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/ginkgo/convert", + importpath = "github.com/onsi/ginkgo/ginkgo/convert", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/convert/import.go b/vendor/github.com/onsi/ginkgo/ginkgo/convert/import.go index e226196f72e27..06c6ec94c90b7 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/convert/import.go +++ b/vendor/github.com/onsi/ginkgo/ginkgo/convert/import.go @@ -1,7 +1,6 @@ package convert import ( - "errors" "fmt" "go/ast" ) @@ -24,7 +23,7 @@ func importsForRootNode(rootNode *ast.File) (imports *ast.GenDecl, err error) { } } - err = errors.New(fmt.Sprintf("Could not find imports for root node:\n\t%#v\n", rootNode)) + err = fmt.Errorf("Could not find imports for root node:\n\t%#v\n", rootNode) return } diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/convert/package_rewriter.go b/vendor/github.com/onsi/ginkgo/ginkgo/convert/package_rewriter.go index ed09c460d4c32..5e00d5618be63 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/convert/package_rewriter.go +++ b/vendor/github.com/onsi/ginkgo/ginkgo/convert/package_rewriter.go @@ -24,7 +24,6 @@ func RewritePackage(packageName string) { for _, filename := range findTestsInPackage(pkg) { rewriteTestsInFile(filename) } - return } /* diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/convert/testfile_rewriter.go b/vendor/github.com/onsi/ginkgo/ginkgo/convert/testfile_rewriter.go index 4b001a7dbb54a..d415050ef3366 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/convert/testfile_rewriter.go +++ b/vendor/github.com/onsi/ginkgo/ginkgo/convert/testfile_rewriter.go @@ -61,7 +61,6 @@ func rewriteTestsInFile(pathToFile string) { } ioutil.WriteFile(pathToFile, buffer.Bytes(), fileInfo.Mode()) - return } /* @@ -88,7 +87,6 @@ func rewriteTestFuncAsItStatement(testFunc *ast.FuncDecl, rootNode *ast.File, de // remove the old test func from the root node's declarations rootNode.Decls = append(rootNode.Decls[:funcIndex], rootNode.Decls[funcIndex+1:]...) - return } /* diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/generate_command.go b/vendor/github.com/onsi/ginkgo/ginkgo/generate_command.go index ad044303b3a56..c0a39237e856e 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/generate_command.go +++ b/vendor/github.com/onsi/ginkgo/ginkgo/generate_command.go @@ -1,10 +1,12 @@ package main import ( + "bytes" "flag" "fmt" "os" "path/filepath" + "strconv" "strings" "text/template" ) @@ -158,11 +160,90 @@ func formatSubject(name string) string { return name } +// moduleName returns module name from go.mod from given module root directory +func moduleName(modRoot string) string { + modFile, err := os.Open(filepath.Join(modRoot, "go.mod")) + if err != nil { + return "" + } + + mod := make([]byte, 128) + _, err = modFile.Read(mod) + if err != nil { + return "" + } + + slashSlash := []byte("//") + moduleStr := []byte("module") + + for len(mod) > 0 { + line := mod + mod = nil + if i := bytes.IndexByte(line, '\n'); i >= 0 { + line, mod = line[:i], line[i+1:] + } + if i := bytes.Index(line, slashSlash); i >= 0 { + line = line[:i] + } + line = bytes.TrimSpace(line) + if !bytes.HasPrefix(line, moduleStr) { + continue + } + line = line[len(moduleStr):] + n := len(line) + line = bytes.TrimSpace(line) + if len(line) == n || len(line) == 0 { + continue + } + + if line[0] == '"' || line[0] == '`' { + p, err := strconv.Unquote(string(line)) + if err != nil { + return "" // malformed quoted string or multiline module path + } + return p + } + + return string(line) + } + + return "" // missing module path +} + +func findModuleRoot(dir string) (root string) { + dir = filepath.Clean(dir) + + // Look for enclosing go.mod. + for { + if fi, err := os.Stat(filepath.Join(dir, "go.mod")); err == nil && !fi.IsDir() { + return dir + } + d := filepath.Dir(dir) + if d == dir { + break + } + dir = d + } + return "" +} + func getPackageImportPath() string { workingDir, err := os.Getwd() if err != nil { panic(err.Error()) } + + // Try go.mod file first + modRoot := findModuleRoot(workingDir) + if modRoot != "" { + modName := moduleName(modRoot) + if modName != "" { + cd := strings.Replace(workingDir, modRoot, "", -1) + return modName + cd + } + } + + // Fallback to GOPATH structure sep := string(filepath.Separator) paths := strings.Split(workingDir, sep+"src"+sep) if len(paths) == 1 { diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/BUILD new file mode 100644 index 0000000000000..33f21a9c096da --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "interrupt_handler.go", + "sigquit_swallower_unix.go", + "sigquit_swallower_windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler", + importpath = "github.com/onsi/ginkgo/ginkgo/interrupthandler", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/interrupt_handler.go b/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/interrupt_handler.go index c15db0b02ad87..ec456bf29223a 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/interrupt_handler.go +++ b/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/interrupt_handler.go @@ -16,7 +16,7 @@ type InterruptHandler struct { func NewInterruptHandler() *InterruptHandler { h := &InterruptHandler{ lock: &sync.Mutex{}, - C: make(chan bool, 0), + C: make(chan bool), } go h.handleInterrupt() diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/main.go b/vendor/github.com/onsi/ginkgo/ginkgo/main.go index 4a1aeef4f571b..0741ba8c993d6 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/main.go +++ b/vendor/github.com/onsi/ginkgo/ginkgo/main.go @@ -153,6 +153,7 @@ func (c *Command) Matches(name string) bool { } func (c *Command) Run(args []string, additionalArgs []string) { + c.FlagSet.Usage = usage c.FlagSet.Parse(args) c.Command(c.FlagSet.Args(), additionalArgs) } @@ -215,20 +216,21 @@ func commandMatching(name string) (*Command, bool) { } func usage() { - fmt.Fprintf(os.Stderr, "Ginkgo Version %s\n\n", config.VERSION) + fmt.Printf("Ginkgo Version %s\n\n", config.VERSION) usageForCommand(DefaultCommand, false) for _, command := range Commands { - fmt.Fprintf(os.Stderr, "\n") + fmt.Printf("\n") usageForCommand(command, false) } } func usageForCommand(command *Command, longForm bool) { - fmt.Fprintf(os.Stderr, "%s\n%s\n", command.UsageCommand, strings.Repeat("-", len(command.UsageCommand))) - fmt.Fprintf(os.Stderr, "%s\n", strings.Join(command.Usage, "\n")) + fmt.Printf("%s\n%s\n", command.UsageCommand, strings.Repeat("-", len(command.UsageCommand))) + fmt.Printf("%s\n", strings.Join(command.Usage, "\n")) if command.SuppressFlagDocumentation && !longForm { - fmt.Fprintf(os.Stderr, "%s\n", strings.Join(command.FlagDocSubstitute, "\n ")) + fmt.Printf("%s\n", strings.Join(command.FlagDocSubstitute, "\n ")) } else { + command.FlagSet.SetOutput(os.Stdout) command.FlagSet.PrintDefaults() } } diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/nodot/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/nodot/BUILD new file mode 100644 index 0000000000000..6d67672cd749d --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/ginkgo/nodot/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["nodot.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/ginkgo/nodot", + importpath = "github.com/onsi/ginkgo/ginkgo/nodot", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/run_command.go b/vendor/github.com/onsi/ginkgo/ginkgo/run_command.go index 569b6a29ca757..1d06e08fd4544 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/run_command.go +++ b/vendor/github.com/onsi/ginkgo/ginkgo/run_command.go @@ -5,6 +5,7 @@ import ( "fmt" "math/rand" "os" + "regexp" "strings" "time" @@ -163,17 +164,27 @@ func (r *SpecRunner) combineCoverprofiles(runners []*testrunner.TestRunner) erro fmt.Println("path is " + path) - combined, err := os.OpenFile(filepath.Join(path, r.getCoverprofile()), - os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0666) + combined, err := os.OpenFile( + filepath.Join(path, r.getCoverprofile()), + os.O_WRONLY|os.O_CREATE, + 0666, + ) if err != nil { fmt.Printf("Unable to create combined profile, %v\n", err) return nil // non-fatal error } - for _, runner := range runners { + modeRegex := regexp.MustCompile(`^mode: .*\n`) + for index, runner := range runners { contents, err := ioutil.ReadFile(runner.CoverageFile) + // remove the cover mode line from every file + // except the first one + if index > 0 { + contents = modeRegex.ReplaceAll(contents, []byte{}) + } + if err != nil { fmt.Printf("Unable to read coverage file %s to combine, %v\n", runner.CoverageFile, err) return nil // non-fatal error diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/suite_runner.go b/vendor/github.com/onsi/ginkgo/ginkgo/suite_runner.go index ce6c94602f2ab..ab746d7e953da 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/suite_runner.go +++ b/vendor/github.com/onsi/ginkgo/ginkgo/suite_runner.go @@ -41,7 +41,7 @@ func (r *SuiteRunner) compileInParallel(runners []*testrunner.TestRunner, numCom //an array of channels - the nth runner's compilation output is sent to the nth channel in this array //we read from these channels in order to ensure we run the suites in order orderedCompilationOutputs := []chan compilationOutput{} - for _ = range runners { + for range runners { orderedCompilationOutputs = append(orderedCompilationOutputs, make(chan compilationOutput, 1)) } diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/testrunner/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/testrunner/BUILD new file mode 100644 index 0000000000000..41b2eabaf9ec5 --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/ginkgo/testrunner/BUILD @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "build_args.go", + "build_args_old.go", + "log_writer.go", + "run_result.go", + "test_runner.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/ginkgo/testrunner", + importpath = "github.com/onsi/ginkgo/ginkgo/testrunner", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/onsi/ginkgo/config:go_default_library", + "//vendor/github.com/onsi/ginkgo/ginkgo/testsuite:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/remote:go_default_library", + "//vendor/github.com/onsi/ginkgo/reporters/stenographer:go_default_library", + "//vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable:go_default_library", + "//vendor/github.com/onsi/ginkgo/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/testrunner/test_runner.go b/vendor/github.com/onsi/ginkgo/ginkgo/testrunner/test_runner.go index dccb39518027a..80670d24a0d2f 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/testrunner/test_runner.go +++ b/vendor/github.com/onsi/ginkgo/ginkgo/testrunner/test_runner.go @@ -156,7 +156,7 @@ func (t *TestRunner) CompileTo(path string) error { fmt.Println(string(output)) } - if fileExists(path) == false { + if !fileExists(path) { compiledFile := t.Suite.PackageName + ".test" if fileExists(compiledFile) { // seems like we are on an old go version that does not support the -o flag on go test @@ -182,7 +182,7 @@ func (t *TestRunner) CompileTo(path string) error { func fileExists(path string) bool { _, err := os.Stat(path) - return err == nil || os.IsNotExist(err) == false + return err == nil || !os.IsNotExist(err) } // copyFile copies the contents of the file named src to the file named @@ -523,7 +523,7 @@ func (t *TestRunner) combineCoverprofiles() { lines := map[string]int{} lineOrder := []string{} for i, coverProfile := range profiles { - for _, line := range strings.Split(string(coverProfile), "\n")[1:] { + for _, line := range strings.Split(coverProfile, "\n")[1:] { if len(line) == 0 { continue } diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/testsuite/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/testsuite/BUILD new file mode 100644 index 0000000000000..c029480c07839 --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/ginkgo/testsuite/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "test_suite.go", + "vendor_check_go15.go", + "vendor_check_go16.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/ginkgo/testsuite", + importpath = "github.com/onsi/ginkgo/ginkgo/testsuite", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/watch/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/watch/BUILD new file mode 100644 index 0000000000000..7ed2be4a0e486 --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/ginkgo/watch/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "delta.go", + "delta_tracker.go", + "dependencies.go", + "package_hash.go", + "package_hashes.go", + "suite.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/ginkgo/watch", + importpath = "github.com/onsi/ginkgo/ginkgo/watch", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/onsi/ginkgo/ginkgo/testsuite:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/watch/dependencies.go b/vendor/github.com/onsi/ginkgo/ginkgo/watch/dependencies.go index 82c25face30f4..b7f756777e4ff 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/watch/dependencies.go +++ b/vendor/github.com/onsi/ginkgo/ginkgo/watch/dependencies.go @@ -77,7 +77,7 @@ func (d Dependencies) resolveAndAdd(deps []string, depth int) { if err != nil { continue } - if pkg.Goroot == false && !ginkgoAndGomegaFilter.Match([]byte(pkg.Dir)) { + if !pkg.Goroot && !ginkgoAndGomegaFilter.Match([]byte(pkg.Dir)) { d.addDepIfNotPresent(pkg.Dir, depth) } } diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/watch/package_hash.go b/vendor/github.com/onsi/ginkgo/ginkgo/watch/package_hash.go index 7e1e4192ddaf1..67e2c1c329d05 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/watch/package_hash.go +++ b/vendor/github.com/onsi/ginkgo/ginkgo/watch/package_hash.go @@ -36,7 +36,7 @@ func (p *PackageHash) CheckForChanges() bool { codeHash, codeModifiedTime, testHash, testModifiedTime, deleted := p.computeHashes() if deleted { - if p.Deleted == false { + if !p.Deleted { t := time.Now() p.CodeModifiedTime = t p.TestModifiedTime = t diff --git a/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go b/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go index b732937cdfa3c..3cbf89a35c732 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go +++ b/vendor/github.com/onsi/ginkgo/ginkgo_dsl.go @@ -199,6 +199,11 @@ type Benchmarker interface { // ginkgo bootstrap func RunSpecs(t GinkgoTestingT, description string) bool { specReporters := []Reporter{buildDefaultReporter()} + if config.DefaultReporterConfig.ReportFile != "" { + reportFile := config.DefaultReporterConfig.ReportFile + specReporters[0] = reporters.NewJUnitReporter(reportFile) + return RunSpecsWithDefaultAndCustomReporters(t, description, specReporters) + } return RunSpecsWithCustomReporters(t, description, specReporters) } @@ -258,7 +263,7 @@ func Fail(message string, callerSkip ...int) { skip = callerSkip[0] } - globalFailer.Fail(message, codelocation.NewWithStack(skip+1)) + globalFailer.Fail(message, codelocation.New(skip+1)) panic(GINKGO_PANIC) } @@ -275,7 +280,7 @@ func Fail(message string, callerSkip ...int) { func GinkgoRecover() { e := recover() if e != nil { - globalFailer.Panic(codelocation.NewWithStack(1), e) + globalFailer.Panic(codelocation.New(1), e) } } @@ -283,7 +288,7 @@ func GinkgoRecover() { //BeforeEach, AfterEach, JustBeforeEach, It, and Measurement blocks. // //In addition you can nest Describe, Context and When blocks. Describe, Context and When blocks are functionally -//equivalent. The difference is purely semantic -- you typical Describe the behavior of an object +//equivalent. The difference is purely semantic -- you typically Describe the behavior of an object //or method and, within that Describe, outline a number of Contexts and Whens. func Describe(text string, body func()) bool { globalSuite.PushContainerNode(text, body, types.FlagTypeNone, codelocation.New(1)) @@ -499,7 +504,7 @@ func AfterSuite(body interface{}, timeout ...float64) bool { //until that node is done before running. // //SynchronizedBeforeSuite accomplishes this by taking *two* function arguments. The first is only run on parallel node #1. The second is -//run on all nodes, but *only* after the first function completes succesfully. Ginkgo also makes it possible to send data from the first function (on Node 1) +//run on all nodes, but *only* after the first function completes successfully. Ginkgo also makes it possible to send data from the first function (on Node 1) //to the second function (on all the other nodes). // //The functions have the following signatures. The first function (which only runs on node 1) has the signature: diff --git a/vendor/github.com/onsi/ginkgo/internal/codelocation/BUILD b/vendor/github.com/onsi/ginkgo/internal/codelocation/BUILD new file mode 100644 index 0000000000000..43f65174f6071 --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/internal/codelocation/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["code_location.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/codelocation", + importpath = "github.com/onsi/ginkgo/internal/codelocation", + visibility = ["//vendor/github.com/onsi/ginkgo:__subpackages__"], + deps = ["//vendor/github.com/onsi/ginkgo/types:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/internal/codelocation/code_location.go b/vendor/github.com/onsi/ginkgo/internal/codelocation/code_location.go index 9a98e3fe78315..aa89d6cba8aa4 100644 --- a/vendor/github.com/onsi/ginkgo/internal/codelocation/code_location.go +++ b/vendor/github.com/onsi/ginkgo/internal/codelocation/code_location.go @@ -11,24 +11,35 @@ import ( func New(skip int) types.CodeLocation { _, file, line, _ := runtime.Caller(skip + 1) - return types.CodeLocation{FileName: file, LineNumber: line} -} - -func NewWithStack(skip int) types.CodeLocation { - _, file, line, _ := runtime.Caller(skip + 1) - stackTrace := PruneStack(string(debug.Stack()), skip) + stackTrace := PruneStack(string(debug.Stack()), skip+1) return types.CodeLocation{FileName: file, LineNumber: line, FullStackTrace: stackTrace} } +// PruneStack removes references to functions that are internal to Ginkgo +// and the Go runtime from a stack string and a certain number of stack entries +// at the beginning of the stack. The stack string has the format +// as returned by runtime/debug.Stack. The leading goroutine information is +// optional and always removed if present. Beware that runtime/debug.Stack +// adds itself as first entry, so typically skip must be >= 1 to remove that +// entry. func PruneStack(fullStackTrace string, skip int) string { stack := strings.Split(fullStackTrace, "\n") + // Ensure that the even entries are the method names and the + // the odd entries the source code information. + if len(stack) > 0 && strings.HasPrefix(stack[0], "goroutine ") { + // Ignore "goroutine 29 [running]:" line. + stack = stack[1:] + } + // The "+1" is for skipping over the initial entry, which is + // runtime/debug.Stack() itself. if len(stack) > 2*(skip+1) { stack = stack[2*(skip+1):] } prunedStack := []string{} re := regexp.MustCompile(`\/ginkgo\/|\/pkg\/testing\/|\/pkg\/runtime\/`) for i := 0; i < len(stack)/2; i++ { - if !re.Match([]byte(stack[i*2])) { + // We filter out based on the source code file name. + if !re.Match([]byte(stack[i*2+1])) { prunedStack = append(prunedStack, stack[i*2]) prunedStack = append(prunedStack, stack[i*2+1]) } diff --git a/vendor/github.com/onsi/ginkgo/internal/containernode/BUILD b/vendor/github.com/onsi/ginkgo/internal/containernode/BUILD new file mode 100644 index 0000000000000..e0169254722ba --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/internal/containernode/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["container_node.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/containernode", + importpath = "github.com/onsi/ginkgo/internal/containernode", + visibility = ["//vendor/github.com/onsi/ginkgo:__subpackages__"], + deps = [ + "//vendor/github.com/onsi/ginkgo/internal/leafnodes:go_default_library", + "//vendor/github.com/onsi/ginkgo/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/internal/failer/BUILD b/vendor/github.com/onsi/ginkgo/internal/failer/BUILD new file mode 100644 index 0000000000000..34cff9ec6feaa --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/internal/failer/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["failer.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/failer", + importpath = "github.com/onsi/ginkgo/internal/failer", + visibility = ["//vendor/github.com/onsi/ginkgo:__subpackages__"], + deps = ["//vendor/github.com/onsi/ginkgo/types:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/internal/leafnodes/BUILD b/vendor/github.com/onsi/ginkgo/internal/leafnodes/BUILD new file mode 100644 index 0000000000000..0723027633581 --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/internal/leafnodes/BUILD @@ -0,0 +1,38 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "benchmarker.go", + "interfaces.go", + "it_node.go", + "measure_node.go", + "runner.go", + "setup_nodes.go", + "suite_nodes.go", + "synchronized_after_suite_node.go", + "synchronized_before_suite_node.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/leafnodes", + importpath = "github.com/onsi/ginkgo/internal/leafnodes", + visibility = ["//vendor/github.com/onsi/ginkgo:__subpackages__"], + deps = [ + "//vendor/github.com/onsi/ginkgo/internal/codelocation:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/failer:go_default_library", + "//vendor/github.com/onsi/ginkgo/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/internal/leafnodes/benchmarker.go b/vendor/github.com/onsi/ginkgo/internal/leafnodes/benchmarker.go index d6d54234c2fe1..393901e11c3fe 100644 --- a/vendor/github.com/onsi/ginkgo/internal/leafnodes/benchmarker.go +++ b/vendor/github.com/onsi/ginkgo/internal/leafnodes/benchmarker.go @@ -17,7 +17,7 @@ type benchmarker struct { func newBenchmarker() *benchmarker { return &benchmarker{ - measurements: make(map[string]*types.SpecMeasurement, 0), + measurements: make(map[string]*types.SpecMeasurement), } } diff --git a/vendor/github.com/onsi/ginkgo/internal/leafnodes/it_node_extension.go b/vendor/github.com/onsi/ginkgo/internal/leafnodes/it_node_extension.go deleted file mode 100644 index 54747c556739e..0000000000000 --- a/vendor/github.com/onsi/ginkgo/internal/leafnodes/it_node_extension.go +++ /dev/null @@ -1,13 +0,0 @@ -package leafnodes - -import ( - "github.com/onsi/ginkgo/types" -) - -func (node *ItNode) SetText(text string) { - node.text = text -} - -func (node *ItNode) SetFlag(flag types.FlagType) { - node.flag = flag -} diff --git a/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go b/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go index 5b9390528217f..16cb66c3e4923 100644 --- a/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go +++ b/vendor/github.com/onsi/ginkgo/internal/leafnodes/runner.go @@ -73,7 +73,7 @@ func (r *runner) runAsync() (outcome types.SpecState, failure types.SpecFailure) defer func() { if e := recover(); e != nil || !finished { - r.failer.Panic(codelocation.NewWithStack(2), e) + r.failer.Panic(codelocation.New(2), e) select { case <-done: break @@ -104,7 +104,7 @@ func (r *runner) runSync() (outcome types.SpecState, failure types.SpecFailure) defer func() { if e := recover(); e != nil || !finished { - r.failer.Panic(codelocation.NewWithStack(2), e) + r.failer.Panic(codelocation.New(2), e) } failure, outcome = r.failer.Drain(r.nodeType, r.componentIndex, r.codeLocation) diff --git a/vendor/github.com/onsi/ginkgo/internal/remote/BUILD b/vendor/github.com/onsi/ginkgo/internal/remote/BUILD new file mode 100644 index 0000000000000..5def2fce22dcb --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/internal/remote/BUILD @@ -0,0 +1,72 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "aggregator.go", + "forwarding_reporter.go", + "output_interceptor.go", + "output_interceptor_unix.go", + "output_interceptor_win.go", + "server.go", + "syscall_dup_linux_arm64.go", + "syscall_dup_linux_riscv64.go", + "syscall_dup_solaris.go", + "syscall_dup_unix.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/remote", + importpath = "github.com/onsi/ginkgo/internal/remote", + visibility = ["//vendor/github.com/onsi/ginkgo:__subpackages__"], + deps = [ + "//vendor/github.com/onsi/ginkgo/config:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/spec_iterator:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/writer:go_default_library", + "//vendor/github.com/onsi/ginkgo/reporters:go_default_library", + "//vendor/github.com/onsi/ginkgo/reporters/stenographer:go_default_library", + "//vendor/github.com/onsi/ginkgo/types:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/hpcloud/tail:go_default_library", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "//vendor/github.com/hpcloud/tail:go_default_library", + ], + "@io_bazel_rules_go//go/platform:dragonfly": [ + "//vendor/github.com/hpcloud/tail:go_default_library", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "//vendor/github.com/hpcloud/tail:go_default_library", + ], + "@io_bazel_rules_go//go/platform:ios": [ + "//vendor/github.com/hpcloud/tail:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/hpcloud/tail:go_default_library", + ], + "@io_bazel_rules_go//go/platform:netbsd": [ + "//vendor/github.com/hpcloud/tail:go_default_library", + ], + "@io_bazel_rules_go//go/platform:openbsd": [ + "//vendor/github.com/hpcloud/tail:go_default_library", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "//vendor/github.com/hpcloud/tail:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/internal/remote/aggregator.go b/vendor/github.com/onsi/ginkgo/internal/remote/aggregator.go index 6b54afe014204..f9ab3006758be 100644 --- a/vendor/github.com/onsi/ginkgo/internal/remote/aggregator.go +++ b/vendor/github.com/onsi/ginkgo/internal/remote/aggregator.go @@ -54,11 +54,11 @@ func NewAggregator(nodeCount int, result chan bool, config config.DefaultReporte config: config, stenographer: stenographer, - suiteBeginnings: make(chan configAndSuite, 0), - beforeSuites: make(chan *types.SetupSummary, 0), - afterSuites: make(chan *types.SetupSummary, 0), - specCompletions: make(chan *types.SpecSummary, 0), - suiteEndings: make(chan *types.SuiteSummary, 0), + suiteBeginnings: make(chan configAndSuite), + beforeSuites: make(chan *types.SetupSummary), + afterSuites: make(chan *types.SetupSummary), + specCompletions: make(chan *types.SpecSummary), + suiteEndings: make(chan *types.SuiteSummary), } go aggregator.mux() @@ -227,7 +227,7 @@ func (aggregator *Aggregator) registerSuiteEnding(suite *types.SuiteSummary) (fi aggregatedSuiteSummary.SuiteSucceeded = true for _, suiteSummary := range aggregator.aggregatedSuiteEndings { - if suiteSummary.SuiteSucceeded == false { + if !suiteSummary.SuiteSucceeded { aggregatedSuiteSummary.SuiteSucceeded = false } diff --git a/vendor/github.com/onsi/ginkgo/internal/remote/server.go b/vendor/github.com/onsi/ginkgo/internal/remote/server.go index 367c54daff7fb..93e9dac057de0 100644 --- a/vendor/github.com/onsi/ginkgo/internal/remote/server.go +++ b/vendor/github.com/onsi/ginkgo/internal/remote/server.go @@ -213,7 +213,7 @@ func (server *Server) handleCounter(writer http.ResponseWriter, request *http.Re c := spec_iterator.Counter{} server.lock.Lock() c.Index = server.counter - server.counter = server.counter + 1 + server.counter++ server.lock.Unlock() json.NewEncoder(writer).Encode(c) diff --git a/vendor/github.com/onsi/ginkgo/internal/remote/syscall_dup_linux_riscv64.go b/vendor/github.com/onsi/ginkgo/internal/remote/syscall_dup_linux_riscv64.go new file mode 100644 index 0000000000000..0d40f0a541bf4 --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/internal/remote/syscall_dup_linux_riscv64.go @@ -0,0 +1,11 @@ +// +build linux,riscv64 + +package remote + +import "syscall" + +// linux_riscv64 doesn't have syscall.Dup2 which ginkgo uses, so +// use the nearly identical syscall.Dup3 instead +func syscallDup(oldfd int, newfd int) (err error) { + return syscall.Dup3(oldfd, newfd, 0) +} diff --git a/vendor/github.com/onsi/ginkgo/internal/remote/syscall_dup_unix.go b/vendor/github.com/onsi/ginkgo/internal/remote/syscall_dup_unix.go index ef6255960071a..981aa74664c5a 100644 --- a/vendor/github.com/onsi/ginkgo/internal/remote/syscall_dup_unix.go +++ b/vendor/github.com/onsi/ginkgo/internal/remote/syscall_dup_unix.go @@ -1,4 +1,5 @@ // +build !linux !arm64 +// +build !linux !riscv64 // +build !windows // +build !solaris diff --git a/vendor/github.com/onsi/ginkgo/internal/spec/BUILD b/vendor/github.com/onsi/ginkgo/internal/spec/BUILD new file mode 100644 index 0000000000000..db1f44af3b999 --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/internal/spec/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "spec.go", + "specs.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/spec", + importpath = "github.com/onsi/ginkgo/internal/spec", + visibility = ["//vendor/github.com/onsi/ginkgo:__subpackages__"], + deps = [ + "//vendor/github.com/onsi/ginkgo/internal/containernode:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/leafnodes:go_default_library", + "//vendor/github.com/onsi/ginkgo/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/internal/spec/spec.go b/vendor/github.com/onsi/ginkgo/internal/spec/spec.go index 7fd68ee8e0355..6eef40a0e0c23 100644 --- a/vendor/github.com/onsi/ginkgo/internal/spec/spec.go +++ b/vendor/github.com/onsi/ginkgo/internal/spec/spec.go @@ -107,11 +107,11 @@ func (spec *Spec) Summary(suiteID string) *types.SpecSummary { NumberOfSamples: spec.subject.Samples(), ComponentTexts: componentTexts, ComponentCodeLocations: componentCodeLocations, - State: spec.getState(), - RunTime: runTime, - Failure: spec.failure, - Measurements: spec.measurementsReport(), - SuiteID: suiteID, + State: spec.getState(), + RunTime: runTime, + Failure: spec.failure, + Measurements: spec.measurementsReport(), + SuiteID: suiteID, } } diff --git a/vendor/github.com/onsi/ginkgo/internal/spec/specs.go b/vendor/github.com/onsi/ginkgo/internal/spec/specs.go index 27c0d1d6cd0f4..8a20071375fef 100644 --- a/vendor/github.com/onsi/ginkgo/internal/spec/specs.go +++ b/vendor/github.com/onsi/ginkgo/internal/spec/specs.go @@ -107,11 +107,11 @@ func (e *Specs) applyRegExpFocusAndSkip(description string, focusString string, toMatch := e.toMatch(description, i) if focusFilter != nil { - matchesFocus = focusFilter.Match([]byte(toMatch)) + matchesFocus = focusFilter.Match(toMatch) } if skipFilter != nil { - matchesSkip = skipFilter.Match([]byte(toMatch)) + matchesSkip = skipFilter.Match(toMatch) } if !matchesFocus || matchesSkip { diff --git a/vendor/github.com/onsi/ginkgo/internal/spec_iterator/BUILD b/vendor/github.com/onsi/ginkgo/internal/spec_iterator/BUILD new file mode 100644 index 0000000000000..8e9764da1fd55 --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/internal/spec_iterator/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "index_computer.go", + "parallel_spec_iterator.go", + "serial_spec_iterator.go", + "sharded_parallel_spec_iterator.go", + "spec_iterator.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/spec_iterator", + importpath = "github.com/onsi/ginkgo/internal/spec_iterator", + visibility = ["//vendor/github.com/onsi/ginkgo:__subpackages__"], + deps = ["//vendor/github.com/onsi/ginkgo/internal/spec:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/internal/specrunner/BUILD b/vendor/github.com/onsi/ginkgo/internal/specrunner/BUILD new file mode 100644 index 0000000000000..508bbe3e74fb8 --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/internal/specrunner/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "random_id.go", + "spec_runner.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/specrunner", + importpath = "github.com/onsi/ginkgo/internal/specrunner", + visibility = ["//vendor/github.com/onsi/ginkgo:__subpackages__"], + deps = [ + "//vendor/github.com/onsi/ginkgo/config:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/leafnodes:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/spec:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/spec_iterator:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/writer:go_default_library", + "//vendor/github.com/onsi/ginkgo/reporters:go_default_library", + "//vendor/github.com/onsi/ginkgo/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go b/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go index 2c683cb8b9495..c9a0a60d84cd8 100644 --- a/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go +++ b/vendor/github.com/onsi/ginkgo/internal/specrunner/spec_runner.go @@ -300,7 +300,7 @@ func (runner *SpecRunner) reportSpecWillRun(summary *types.SpecSummary) { } func (runner *SpecRunner) reportSpecDidComplete(summary *types.SpecSummary, failed bool) { - if failed && len(summary.CapturedOutput) == 0 { + if len(summary.CapturedOutput) == 0 { summary.CapturedOutput = string(runner.writer.Bytes()) } for i := len(runner.reporters) - 1; i >= 1; i-- { diff --git a/vendor/github.com/onsi/ginkgo/internal/suite/BUILD b/vendor/github.com/onsi/ginkgo/internal/suite/BUILD new file mode 100644 index 0000000000000..c56d610e0d175 --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/internal/suite/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["suite.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/suite", + importpath = "github.com/onsi/ginkgo/internal/suite", + visibility = ["//vendor/github.com/onsi/ginkgo:__subpackages__"], + deps = [ + "//vendor/github.com/onsi/ginkgo/config:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/containernode:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/failer:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/leafnodes:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/spec:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/spec_iterator:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/specrunner:go_default_library", + "//vendor/github.com/onsi/ginkgo/internal/writer:go_default_library", + "//vendor/github.com/onsi/ginkgo/reporters:go_default_library", + "//vendor/github.com/onsi/ginkgo/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/internal/suite/suite_extension.go b/vendor/github.com/onsi/ginkgo/internal/suite/suite_extension.go deleted file mode 100644 index df4964620d162..0000000000000 --- a/vendor/github.com/onsi/ginkgo/internal/suite/suite_extension.go +++ /dev/null @@ -1,52 +0,0 @@ -package suite - -import ( - "math/rand" - - "github.com/onsi/ginkgo/config" - "github.com/onsi/ginkgo/internal/containernode" - "github.com/onsi/ginkgo/internal/leafnodes" - "github.com/onsi/ginkgo/internal/spec" - "github.com/onsi/ginkgo/internal/spec_iterator" - "github.com/onsi/ginkgo/types" -) - -func (suite *Suite) Iterator(config config.GinkgoConfigType) spec_iterator.SpecIterator { - specsSlice := []*spec.Spec{} - for _, collatedNodes := range suite.topLevelContainer.Collate() { - specsSlice = append(specsSlice, spec.New(collatedNodes.Subject, collatedNodes.Containers, config.EmitSpecProgress)) - } - - specs := spec.NewSpecs(specsSlice) - - if config.RandomizeAllSpecs { - specs.Shuffle(rand.New(rand.NewSource(config.RandomSeed))) - } - - if config.SkipMeasurements { - specs.SkipMeasurements() - } - return spec_iterator.NewSerialIterator(specs.Specs()) -} - -func (suite *Suite) WalkTests(fn func(testName, parentName string, test types.TestNode)) { - suite.topLevelContainer.BackPropagateProgrammaticFocus() - for _, collatedNodes := range suite.topLevelContainer.Collate() { - itNode, ok := collatedNodes.Subject.(*leafnodes.ItNode) - if !ok { - continue - } - fn(collatedNodes.Subject.Text(), containerName(collatedNodes.Containers), itNode) - } -} - -func containerName(containers []*containernode.ContainerNode) string { - var parent string - for i, container := range containers { - if i > 0 { - parent += " " - } - parent += container.Text() - } - return parent -} diff --git a/vendor/github.com/onsi/ginkgo/internal/testingtproxy/BUILD b/vendor/github.com/onsi/ginkgo/internal/testingtproxy/BUILD new file mode 100644 index 0000000000000..6a2982e8ed61c --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/internal/testingtproxy/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["testing_t_proxy.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/testingtproxy", + importpath = "github.com/onsi/ginkgo/internal/testingtproxy", + visibility = ["//vendor/github.com/onsi/ginkgo:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/internal/writer/BUILD b/vendor/github.com/onsi/ginkgo/internal/writer/BUILD new file mode 100644 index 0000000000000..cf71e1a6bb42c --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/internal/writer/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "fake_writer.go", + "writer.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/writer", + importpath = "github.com/onsi/ginkgo/internal/writer", + visibility = ["//vendor/github.com/onsi/ginkgo:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/reporters/BUILD b/vendor/github.com/onsi/ginkgo/reporters/BUILD new file mode 100644 index 0000000000000..7998adffe0b4e --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/reporters/BUILD @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "default_reporter.go", + "fake_reporter.go", + "junit_reporter.go", + "reporter.go", + "teamcity_reporter.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/reporters", + importpath = "github.com/onsi/ginkgo/reporters", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/onsi/ginkgo/config:go_default_library", + "//vendor/github.com/onsi/ginkgo/reporters/stenographer:go_default_library", + "//vendor/github.com/onsi/ginkgo/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/onsi/ginkgo/reporters/stenographer:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/reporters/default_reporter.go b/vendor/github.com/onsi/ginkgo/reporters/default_reporter.go index ac58dd5f7a3a7..c76283b46e9bf 100644 --- a/vendor/github.com/onsi/ginkgo/reporters/default_reporter.go +++ b/vendor/github.com/onsi/ginkgo/reporters/default_reporter.go @@ -62,6 +62,9 @@ func (reporter *DefaultReporter) SpecDidComplete(specSummary *types.SpecSummary) reporter.stenographer.AnnounceSuccesfulSlowSpec(specSummary, reporter.config.Succinct) } else { reporter.stenographer.AnnounceSuccesfulSpec(specSummary) + if reporter.config.ReportPassed { + reporter.stenographer.AnnounceCapturedOutput(specSummary.CapturedOutput) + } } case types.SpecStatePending: reporter.stenographer.AnnouncePendingSpec(specSummary, reporter.config.NoisyPendings && !reporter.config.Succinct) diff --git a/vendor/github.com/onsi/ginkgo/reporters/junit_reporter.go b/vendor/github.com/onsi/ginkgo/reporters/junit_reporter.go index 2c9f3c79299f3..d76e2fe77d95b 100644 --- a/vendor/github.com/onsi/ginkgo/reporters/junit_reporter.go +++ b/vendor/github.com/onsi/ginkgo/reporters/junit_reporter.go @@ -13,6 +13,7 @@ import ( "fmt" "math" "os" + "path/filepath" "strings" "github.com/onsi/ginkgo/config" @@ -32,12 +33,17 @@ type JUnitTestSuite struct { type JUnitTestCase struct { Name string `xml:"name,attr"` ClassName string `xml:"classname,attr"` + PassedMessage *JUnitPassedMessage `xml:"passed,omitempty"` FailureMessage *JUnitFailureMessage `xml:"failure,omitempty"` Skipped *JUnitSkipped `xml:"skipped,omitempty"` Time float64 `xml:"time,attr"` SystemOut string `xml:"system-out,omitempty"` } +type JUnitPassedMessage struct { + Message string `xml:",chardata"` +} + type JUnitFailureMessage struct { Type string `xml:"type,attr"` Message string `xml:",chardata"` @@ -48,9 +54,10 @@ type JUnitSkipped struct { } type JUnitReporter struct { - suite JUnitTestSuite - filename string - testSuiteName string + suite JUnitTestSuite + filename string + testSuiteName string + ReporterConfig config.DefaultReporterConfigType } //NewJUnitReporter creates a new JUnit XML reporter. The XML will be stored in the passed in filename. @@ -60,12 +67,13 @@ func NewJUnitReporter(filename string) *JUnitReporter { } } -func (reporter *JUnitReporter) SpecSuiteWillBegin(config config.GinkgoConfigType, summary *types.SuiteSummary) { +func (reporter *JUnitReporter) SpecSuiteWillBegin(ginkgoConfig config.GinkgoConfigType, summary *types.SuiteSummary) { reporter.suite = JUnitTestSuite{ Name: summary.SuiteDescription, TestCases: []JUnitTestCase{}, } reporter.testSuiteName = summary.SuiteDescription + reporter.ReporterConfig = config.DefaultReporterConfig } func (reporter *JUnitReporter) SpecWillRun(specSummary *types.SpecSummary) { @@ -105,11 +113,21 @@ func (reporter *JUnitReporter) SpecDidComplete(specSummary *types.SpecSummary) { Name: strings.Join(specSummary.ComponentTexts[1:], " "), ClassName: reporter.testSuiteName, } + if reporter.ReporterConfig.ReportPassed && specSummary.State == types.SpecStatePassed { + testCase.PassedMessage = &JUnitPassedMessage{ + Message: specSummary.CapturedOutput, + } + } if specSummary.State == types.SpecStateFailed || specSummary.State == types.SpecStateTimedOut || specSummary.State == types.SpecStatePanicked { testCase.FailureMessage = &JUnitFailureMessage{ Type: reporter.failureTypeForState(specSummary.State), Message: failureMessage(specSummary.Failure), } + if specSummary.State == types.SpecStatePanicked { + testCase.FailureMessage.Message += fmt.Sprintf("\n\nPanic: %s\n\nFull stack:\n%s", + specSummary.Failure.ForwardedPanic, + specSummary.Failure.Location.FullStackTrace) + } testCase.SystemOut = specSummary.CapturedOutput } if specSummary.State == types.SpecStateSkipped || specSummary.State == types.SpecStatePending { @@ -124,17 +142,29 @@ func (reporter *JUnitReporter) SpecSuiteDidEnd(summary *types.SuiteSummary) { reporter.suite.Time = math.Trunc(summary.RunTime.Seconds()*1000) / 1000 reporter.suite.Failures = summary.NumberOfFailedSpecs reporter.suite.Errors = 0 - file, err := os.Create(reporter.filename) + if reporter.ReporterConfig.ReportFile != "" { + reporter.filename = reporter.ReporterConfig.ReportFile + fmt.Printf("\nJUnit path was configured: %s\n", reporter.filename) + } + filePath, _ := filepath.Abs(reporter.filename) + dirPath := filepath.Dir(filePath) + err := os.MkdirAll(dirPath, os.ModePerm) if err != nil { - fmt.Printf("Failed to create JUnit report file: %s\n\t%s", reporter.filename, err.Error()) + fmt.Printf("\nFailed to create JUnit directory: %s\n\t%s", filePath, err.Error()) + } + file, err := os.Create(filePath) + if err != nil { + fmt.Fprintf(os.Stderr, "Failed to create JUnit report file: %s\n\t%s", filePath, err.Error()) } defer file.Close() file.WriteString(xml.Header) encoder := xml.NewEncoder(file) encoder.Indent(" ", " ") err = encoder.Encode(reporter.suite) - if err != nil { - fmt.Printf("Failed to generate JUnit report\n\t%s", err.Error()) + if err == nil { + fmt.Fprintf(os.Stdout, "\nJUnit report was created: %s\n", filePath) + } else { + fmt.Fprintf(os.Stderr,"\nFailed to generate JUnit report data:\n\t%s", err.Error()) } } diff --git a/vendor/github.com/onsi/ginkgo/reporters/stenographer/BUILD b/vendor/github.com/onsi/ginkgo/reporters/stenographer/BUILD new file mode 100644 index 0000000000000..5b9430385274d --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/reporters/stenographer/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "console_logging.go", + "fake_stenographer.go", + "stenographer.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/reporters/stenographer", + importpath = "github.com/onsi/ginkgo/reporters/stenographer", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/onsi/ginkgo/types:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable:all-srcs", + "//vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable/BUILD b/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable/BUILD new file mode 100644 index 0000000000000..f38a9ad208560 --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "colorable_others.go", + "colorable_windows.go", + "noncolorable.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable", + importpath = "github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/BUILD b/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/BUILD new file mode 100644 index 0000000000000..86fb1a1007cc8 --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "isatty_bsd.go", + "isatty_linux.go", + "isatty_solaris.go", + "isatty_windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty", + importpath = "github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:solaris": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/reporters/teamcity_reporter.go b/vendor/github.com/onsi/ginkgo/reporters/teamcity_reporter.go index 36ee2a60057b9..84fd8aff87898 100644 --- a/vendor/github.com/onsi/ginkgo/reporters/teamcity_reporter.go +++ b/vendor/github.com/onsi/ginkgo/reporters/teamcity_reporter.go @@ -22,8 +22,9 @@ const ( ) type TeamCityReporter struct { - writer io.Writer - testSuiteName string + writer io.Writer + testSuiteName string + ReporterConfig config.DefaultReporterConfigType } func NewTeamCityReporter(writer io.Writer) *TeamCityReporter { @@ -34,7 +35,7 @@ func NewTeamCityReporter(writer io.Writer) *TeamCityReporter { func (reporter *TeamCityReporter) SpecSuiteWillBegin(config config.GinkgoConfigType, summary *types.SuiteSummary) { reporter.testSuiteName = escape(summary.SuiteDescription) - fmt.Fprintf(reporter.writer, "%s[testSuiteStarted name='%s']", messageId, reporter.testSuiteName) + fmt.Fprintf(reporter.writer, "%s[testSuiteStarted name='%s']\n", messageId, reporter.testSuiteName) } func (reporter *TeamCityReporter) BeforeSuiteDidRun(setupSummary *types.SetupSummary) { @@ -48,38 +49,50 @@ func (reporter *TeamCityReporter) AfterSuiteDidRun(setupSummary *types.SetupSumm func (reporter *TeamCityReporter) handleSetupSummary(name string, setupSummary *types.SetupSummary) { if setupSummary.State != types.SpecStatePassed { testName := escape(name) - fmt.Fprintf(reporter.writer, "%s[testStarted name='%s']", messageId, testName) - message := escape(setupSummary.Failure.ComponentCodeLocation.String()) - details := escape(setupSummary.Failure.Message) - fmt.Fprintf(reporter.writer, "%s[testFailed name='%s' message='%s' details='%s']", messageId, testName, message, details) + fmt.Fprintf(reporter.writer, "%s[testStarted name='%s']\n", messageId, testName) + message := reporter.failureMessage(setupSummary.Failure) + details := reporter.failureDetails(setupSummary.Failure) + fmt.Fprintf(reporter.writer, "%s[testFailed name='%s' message='%s' details='%s']\n", messageId, testName, message, details) durationInMilliseconds := setupSummary.RunTime.Seconds() * 1000 - fmt.Fprintf(reporter.writer, "%s[testFinished name='%s' duration='%v']", messageId, testName, durationInMilliseconds) + fmt.Fprintf(reporter.writer, "%s[testFinished name='%s' duration='%v']\n", messageId, testName, durationInMilliseconds) } } func (reporter *TeamCityReporter) SpecWillRun(specSummary *types.SpecSummary) { testName := escape(strings.Join(specSummary.ComponentTexts[1:], " ")) - fmt.Fprintf(reporter.writer, "%s[testStarted name='%s']", messageId, testName) + fmt.Fprintf(reporter.writer, "%s[testStarted name='%s']\n", messageId, testName) } func (reporter *TeamCityReporter) SpecDidComplete(specSummary *types.SpecSummary) { testName := escape(strings.Join(specSummary.ComponentTexts[1:], " ")) + if reporter.ReporterConfig.ReportPassed && specSummary.State == types.SpecStatePassed { + details := escape(specSummary.CapturedOutput) + fmt.Fprintf(reporter.writer, "%s[testPassed name='%s' details='%s']\n", messageId, testName, details) + } if specSummary.State == types.SpecStateFailed || specSummary.State == types.SpecStateTimedOut || specSummary.State == types.SpecStatePanicked { - message := escape(specSummary.Failure.ComponentCodeLocation.String()) - details := escape(specSummary.Failure.Message) - fmt.Fprintf(reporter.writer, "%s[testFailed name='%s' message='%s' details='%s']", messageId, testName, message, details) + message := reporter.failureMessage(specSummary.Failure) + details := reporter.failureDetails(specSummary.Failure) + fmt.Fprintf(reporter.writer, "%s[testFailed name='%s' message='%s' details='%s']\n", messageId, testName, message, details) } if specSummary.State == types.SpecStateSkipped || specSummary.State == types.SpecStatePending { - fmt.Fprintf(reporter.writer, "%s[testIgnored name='%s']", messageId, testName) + fmt.Fprintf(reporter.writer, "%s[testIgnored name='%s']\n", messageId, testName) } durationInMilliseconds := specSummary.RunTime.Seconds() * 1000 - fmt.Fprintf(reporter.writer, "%s[testFinished name='%s' duration='%v']", messageId, testName, durationInMilliseconds) + fmt.Fprintf(reporter.writer, "%s[testFinished name='%s' duration='%v']\n", messageId, testName, durationInMilliseconds) } func (reporter *TeamCityReporter) SpecSuiteDidEnd(summary *types.SuiteSummary) { - fmt.Fprintf(reporter.writer, "%s[testSuiteFinished name='%s']", messageId, reporter.testSuiteName) + fmt.Fprintf(reporter.writer, "%s[testSuiteFinished name='%s']\n", messageId, reporter.testSuiteName) +} + +func (reporter *TeamCityReporter) failureMessage(failure types.SpecFailure) string { + return escape(failure.ComponentCodeLocation.String()) +} + +func (reporter *TeamCityReporter) failureDetails(failure types.SpecFailure) string { + return escape(fmt.Sprintf("%s\n%s", failure.Message, failure.Location.String())) } func escape(output string) string { diff --git a/vendor/github.com/onsi/ginkgo/types/BUILD b/vendor/github.com/onsi/ginkgo/types/BUILD new file mode 100644 index 0000000000000..5fd8517de93c5 --- /dev/null +++ b/vendor/github.com/onsi/ginkgo/types/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "code_location.go", + "synchronization.go", + "types.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/types", + importpath = "github.com/onsi/ginkgo/types", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/ginkgo/types/types.go b/vendor/github.com/onsi/ginkgo/types/types.go index 0e89521be9a0f..c143e02d84581 100644 --- a/vendor/github.com/onsi/ginkgo/types/types.go +++ b/vendor/github.com/onsi/ginkgo/types/types.go @@ -12,12 +12,12 @@ SuiteSummary represents the a summary of the test suite and is passed to both Reporter.SpecSuiteWillBegin Reporter.SpecSuiteDidEnd -this is unfortunate as these two methods should receive different objects. When running in parallel +this is unfortunate as these two methods should receive different objects. When running in parallel each node does not deterministically know how many specs it will end up running. Unfortunately making such a change would break backward compatibility. -Until Ginkgo 2.0 comes out we will continue to reuse this struct but populate unkown fields +Until Ginkgo 2.0 comes out we will continue to reuse this struct but populate unknown fields with -1. */ type SuiteSummary struct { diff --git a/vendor/github.com/onsi/ginkgo/types/types_extension.go b/vendor/github.com/onsi/ginkgo/types/types_extension.go deleted file mode 100644 index 2b61ba70a55ad..0000000000000 --- a/vendor/github.com/onsi/ginkgo/types/types_extension.go +++ /dev/null @@ -1,11 +0,0 @@ -package types - -type TestNode interface { - Type() SpecComponentType - CodeLocation() CodeLocation - - Text() string - SetText(text string) - Flag() FlagType - SetFlag(flag FlagType) -} diff --git a/vendor/github.com/onsi/gomega/BUILD b/vendor/github.com/onsi/gomega/BUILD new file mode 100644 index 0000000000000..0d63cdf65b501 --- /dev/null +++ b/vendor/github.com/onsi/gomega/BUILD @@ -0,0 +1,43 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "gomega_dsl.go", + "matchers.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/gomega", + importpath = "github.com/onsi/gomega", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/onsi/gomega/internal/assertion:go_default_library", + "//vendor/github.com/onsi/gomega/internal/asyncassertion:go_default_library", + "//vendor/github.com/onsi/gomega/internal/testingtsupport:go_default_library", + "//vendor/github.com/onsi/gomega/matchers:go_default_library", + "//vendor/github.com/onsi/gomega/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/onsi/gomega/format:all-srcs", + "//vendor/github.com/onsi/gomega/gstruct:all-srcs", + "//vendor/github.com/onsi/gomega/internal/assertion:all-srcs", + "//vendor/github.com/onsi/gomega/internal/asyncassertion:all-srcs", + "//vendor/github.com/onsi/gomega/internal/oraclematcher:all-srcs", + "//vendor/github.com/onsi/gomega/internal/testingtsupport:all-srcs", + "//vendor/github.com/onsi/gomega/matchers:all-srcs", + "//vendor/github.com/onsi/gomega/types:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/gomega/format/BUILD b/vendor/github.com/onsi/gomega/format/BUILD new file mode 100644 index 0000000000000..1cea891924cf3 --- /dev/null +++ b/vendor/github.com/onsi/gomega/format/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["format.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/gomega/format", + importpath = "github.com/onsi/gomega/format", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/gomega/gstruct/BUILD b/vendor/github.com/onsi/gomega/gstruct/BUILD new file mode 100644 index 0000000000000..2ed07c523f2e7 --- /dev/null +++ b/vendor/github.com/onsi/gomega/gstruct/BUILD @@ -0,0 +1,38 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "elements.go", + "fields.go", + "ignore.go", + "keys.go", + "pointer.go", + "types.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/gomega/gstruct", + importpath = "github.com/onsi/gomega/gstruct", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/onsi/gomega/format:go_default_library", + "//vendor/github.com/onsi/gomega/gstruct/errors:go_default_library", + "//vendor/github.com/onsi/gomega/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/onsi/gomega/gstruct/errors:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/gomega/gstruct/errors/BUILD b/vendor/github.com/onsi/gomega/gstruct/errors/BUILD new file mode 100644 index 0000000000000..0a1fd6a59653e --- /dev/null +++ b/vendor/github.com/onsi/gomega/gstruct/errors/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["nested_types.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/gomega/gstruct/errors", + importpath = "github.com/onsi/gomega/gstruct/errors", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/onsi/gomega/types:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/gomega/internal/assertion/BUILD b/vendor/github.com/onsi/gomega/internal/assertion/BUILD new file mode 100644 index 0000000000000..cf530c2a2902c --- /dev/null +++ b/vendor/github.com/onsi/gomega/internal/assertion/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["assertion.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/gomega/internal/assertion", + importpath = "github.com/onsi/gomega/internal/assertion", + visibility = ["//vendor/github.com/onsi/gomega:__subpackages__"], + deps = ["//vendor/github.com/onsi/gomega/types:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/gomega/internal/asyncassertion/BUILD b/vendor/github.com/onsi/gomega/internal/asyncassertion/BUILD new file mode 100644 index 0000000000000..a6a52cd313663 --- /dev/null +++ b/vendor/github.com/onsi/gomega/internal/asyncassertion/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["async_assertion.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/gomega/internal/asyncassertion", + importpath = "github.com/onsi/gomega/internal/asyncassertion", + visibility = ["//vendor/github.com/onsi/gomega:__subpackages__"], + deps = [ + "//vendor/github.com/onsi/gomega/internal/oraclematcher:go_default_library", + "//vendor/github.com/onsi/gomega/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/gomega/internal/oraclematcher/BUILD b/vendor/github.com/onsi/gomega/internal/oraclematcher/BUILD new file mode 100644 index 0000000000000..461e210119551 --- /dev/null +++ b/vendor/github.com/onsi/gomega/internal/oraclematcher/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["oracle_matcher.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/gomega/internal/oraclematcher", + importpath = "github.com/onsi/gomega/internal/oraclematcher", + visibility = ["//vendor/github.com/onsi/gomega:__subpackages__"], + deps = ["//vendor/github.com/onsi/gomega/types:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/gomega/internal/testingtsupport/BUILD b/vendor/github.com/onsi/gomega/internal/testingtsupport/BUILD new file mode 100644 index 0000000000000..2946e380dd5d4 --- /dev/null +++ b/vendor/github.com/onsi/gomega/internal/testingtsupport/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["testing_t_support.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/gomega/internal/testingtsupport", + importpath = "github.com/onsi/gomega/internal/testingtsupport", + visibility = ["//vendor/github.com/onsi/gomega:__subpackages__"], + deps = ["//vendor/github.com/onsi/gomega/types:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/gomega/matchers/BUILD b/vendor/github.com/onsi/gomega/matchers/BUILD new file mode 100644 index 0000000000000..295333c9c1b41 --- /dev/null +++ b/vendor/github.com/onsi/gomega/matchers/BUILD @@ -0,0 +1,80 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "and.go", + "assignable_to_type_of_matcher.go", + "attributes_slice.go", + "be_a_directory.go", + "be_a_regular_file.go", + "be_an_existing_file.go", + "be_closed_matcher.go", + "be_element_of_matcher.go", + "be_empty_matcher.go", + "be_equivalent_to_matcher.go", + "be_false_matcher.go", + "be_identical_to.go", + "be_nil_matcher.go", + "be_numerically_matcher.go", + "be_sent_matcher.go", + "be_temporally_matcher.go", + "be_true_matcher.go", + "be_zero_matcher.go", + "consist_of.go", + "contain_element_matcher.go", + "contain_substring_matcher.go", + "equal_matcher.go", + "have_cap_matcher.go", + "have_key_matcher.go", + "have_key_with_value_matcher.go", + "have_len_matcher.go", + "have_occurred_matcher.go", + "have_prefix_matcher.go", + "have_suffix_matcher.go", + "match_error_matcher.go", + "match_json_matcher.go", + "match_regexp_matcher.go", + "match_xml_matcher.go", + "match_yaml_matcher.go", + "not.go", + "or.go", + "panic_matcher.go", + "receive_matcher.go", + "semi_structured_data_support.go", + "succeed_matcher.go", + "type_support.go", + "with_transform.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/gomega/matchers", + importpath = "github.com/onsi/gomega/matchers", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/onsi/gomega/format:go_default_library", + "//vendor/github.com/onsi/gomega/internal/oraclematcher:go_default_library", + "//vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph:go_default_library", + "//vendor/github.com/onsi/gomega/types:go_default_library", + "//vendor/golang.org/x/net/html/charset:go_default_library", + "//vendor/gopkg.in/yaml.v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph:all-srcs", + "//vendor/github.com/onsi/gomega/matchers/support/goraph/edge:all-srcs", + "//vendor/github.com/onsi/gomega/matchers/support/goraph/node:all-srcs", + "//vendor/github.com/onsi/gomega/matchers/support/goraph/util:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/BUILD b/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/BUILD new file mode 100644 index 0000000000000..2632b30457740 --- /dev/null +++ b/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bipartitegraph.go", + "bipartitegraphmatching.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph", + importpath = "github.com/onsi/gomega/matchers/support/goraph/bipartitegraph", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/onsi/gomega/matchers/support/goraph/edge:go_default_library", + "//vendor/github.com/onsi/gomega/matchers/support/goraph/node:go_default_library", + "//vendor/github.com/onsi/gomega/matchers/support/goraph/util:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/gomega/matchers/support/goraph/edge/BUILD b/vendor/github.com/onsi/gomega/matchers/support/goraph/edge/BUILD new file mode 100644 index 0000000000000..b126990d6cf94 --- /dev/null +++ b/vendor/github.com/onsi/gomega/matchers/support/goraph/edge/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["edge.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/gomega/matchers/support/goraph/edge", + importpath = "github.com/onsi/gomega/matchers/support/goraph/edge", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/onsi/gomega/matchers/support/goraph/node:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/gomega/matchers/support/goraph/node/BUILD b/vendor/github.com/onsi/gomega/matchers/support/goraph/node/BUILD new file mode 100644 index 0000000000000..b2605a393fb05 --- /dev/null +++ b/vendor/github.com/onsi/gomega/matchers/support/goraph/node/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["node.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/gomega/matchers/support/goraph/node", + importpath = "github.com/onsi/gomega/matchers/support/goraph/node", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/gomega/matchers/support/goraph/util/BUILD b/vendor/github.com/onsi/gomega/matchers/support/goraph/util/BUILD new file mode 100644 index 0000000000000..f4e9fd6de78b5 --- /dev/null +++ b/vendor/github.com/onsi/gomega/matchers/support/goraph/util/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["util.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/gomega/matchers/support/goraph/util", + importpath = "github.com/onsi/gomega/matchers/support/goraph/util", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/onsi/gomega/types/BUILD b/vendor/github.com/onsi/gomega/types/BUILD new file mode 100644 index 0000000000000..215068b070aae --- /dev/null +++ b/vendor/github.com/onsi/gomega/types/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["types.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/onsi/gomega/types", + importpath = "github.com/onsi/gomega/types", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/go-digest/BUILD b/vendor/github.com/opencontainers/go-digest/BUILD new file mode 100644 index 0000000000000..ab13d2f4701d0 --- /dev/null +++ b/vendor/github.com/opencontainers/go-digest/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "algorithm.go", + "digest.go", + "digester.go", + "doc.go", + "verifiers.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/go-digest", + importpath = "github.com/opencontainers/go-digest", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/image-spec/specs-go/BUILD b/vendor/github.com/opencontainers/image-spec/specs-go/BUILD new file mode 100644 index 0000000000000..fbc6d3979cdfd --- /dev/null +++ b/vendor/github.com/opencontainers/image-spec/specs-go/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "version.go", + "versioned.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/image-spec/specs-go", + importpath = "github.com/opencontainers/image-spec/specs-go", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/opencontainers/image-spec/specs-go/v1:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/image-spec/specs-go/v1/BUILD b/vendor/github.com/opencontainers/image-spec/specs-go/v1/BUILD new file mode 100644 index 0000000000000..ea1b2f024b77c --- /dev/null +++ b/vendor/github.com/opencontainers/image-spec/specs-go/v1/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "annotations.go", + "config.go", + "descriptor.go", + "index.go", + "layout.go", + "manifest.go", + "mediatype.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/image-spec/specs-go/v1", + importpath = "github.com/opencontainers/image-spec/specs-go/v1", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/opencontainers/go-digest:go_default_library", + "//vendor/github.com/opencontainers/image-spec/specs-go:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/BUILD new file mode 100644 index 0000000000000..6760948c84348 --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/BUILD @@ -0,0 +1,128 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "capabilities_linux.go", + "console_linux.go", + "container.go", + "container_linux.go", + "criu_opts_linux.go", + "error.go", + "factory.go", + "factory_linux.go", + "generic_error.go", + "init_linux.go", + "message_linux.go", + "network_linux.go", + "notify_linux.go", + "notify_linux_v2.go", + "process.go", + "process_linux.go", + "restored_process.go", + "rootfs_linux.go", + "setns_init_linux.go", + "standard_init_linux.go", + "state_linux.go", + "stats_linux.go", + "sync.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer", + importpath = "github.com/opencontainers/runc/libcontainer", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/stacktrace:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/utils:go_default_library", + "//vendor/github.com/opencontainers/runtime-spec/specs-go:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/checkpoint-restore/go-criu/v4:go_default_library", + "//vendor/github.com/checkpoint-restore/go-criu/v4/rpc:go_default_library", + "//vendor/github.com/containerd/console:go_default_library", + "//vendor/github.com/cyphar/filepath-securejoin:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/moby/sys/mountinfo:go_default_library", + "//vendor/github.com/mrunalp/fileutils:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/apparmor:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs2:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/configs/validate:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/intelrdt:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/keys:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/logs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/seccomp:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/system:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + "//vendor/github.com/opencontainers/runc/types:go_default_library", + "//vendor/github.com/opencontainers/selinux/go-selinux:go_default_library", + "//vendor/github.com/opencontainers/selinux/go-selinux/label:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/github.com/sirupsen/logrus:go_default_library", + "//vendor/github.com/syndtr/gocapability/capability:go_default_library", + "//vendor/github.com/vishvananda/netlink:go_default_library", + "//vendor/github.com/vishvananda/netlink/nl:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/checkpoint-restore/go-criu/v4:go_default_library", + "//vendor/github.com/checkpoint-restore/go-criu/v4/rpc:go_default_library", + "//vendor/github.com/containerd/console:go_default_library", + "//vendor/github.com/cyphar/filepath-securejoin:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/moby/sys/mountinfo:go_default_library", + "//vendor/github.com/mrunalp/fileutils:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/apparmor:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs2:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/configs/validate:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/intelrdt:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/keys:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/logs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/seccomp:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/system:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + "//vendor/github.com/opencontainers/runc/types:go_default_library", + "//vendor/github.com/opencontainers/selinux/go-selinux:go_default_library", + "//vendor/github.com/opencontainers/selinux/go-selinux/label:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/github.com/sirupsen/logrus:go_default_library", + "//vendor/github.com/syndtr/gocapability/capability:go_default_library", + "//vendor/github.com/vishvananda/netlink:go_default_library", + "//vendor/github.com/vishvananda/netlink/nl:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/apparmor:all-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:all-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/configs:all-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/intelrdt:all-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/keys:all-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/logs:all-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/seccomp:all-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/stacktrace:all-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/system:all-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/user:all-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/utils:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/apparmor/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/apparmor/BUILD new file mode 100644 index 0000000000000..5f001703ccae4 --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/apparmor/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["apparmor_disabled.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/apparmor", + importpath = "github.com/opencontainers/runc/libcontainer/apparmor", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/BUILD new file mode 100644 index 0000000000000..009ac65785d2d --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/BUILD @@ -0,0 +1,50 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "cgroups.go", + "cgroups_unsupported.go", + "stats.go", + "utils.go", + "v1_utils.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/cgroups", + importpath = "github.com/opencontainers/runc/libcontainer/cgroups", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/docker/go-units:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/docker/go-units:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/devices:all-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/ebpf:all-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:all-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs2:all-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fscommon:all-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/devices/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/devices/BUILD new file mode 100644 index 0000000000000..1713bebd7a386 --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/devices/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["devices_emulator.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/cgroups/devices", + importpath = "github.com/opencontainers/runc/libcontainer/cgroups/devices", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/ebpf/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/ebpf/BUILD new file mode 100644 index 0000000000000..1d1baf67c3cc6 --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/ebpf/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["ebpf.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/cgroups/ebpf", + importpath = "github.com/opencontainers/runc/libcontainer/cgroups/ebpf", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/cilium/ebpf:go_default_library", + "//vendor/github.com/cilium/ebpf/asm:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/ebpf/devicefilter:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/ebpf/devicefilter/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/ebpf/devicefilter/BUILD new file mode 100644 index 0000000000000..7f4340fc06300 --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/ebpf/devicefilter/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["devicefilter.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/cgroups/ebpf/devicefilter", + importpath = "github.com/opencontainers/runc/libcontainer/cgroups/ebpf/devicefilter", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/cilium/ebpf/asm:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs/BUILD new file mode 100644 index 0000000000000..847daec7bd802 --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs/BUILD @@ -0,0 +1,65 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "blkio.go", + "cpu.go", + "cpuacct.go", + "cpuset.go", + "devices.go", + "freezer.go", + "fs.go", + "hugetlb.go", + "kmem.go", + "memory.go", + "name.go", + "net_cls.go", + "net_prio.go", + "perf_event.go", + "pids.go", + "unsupported.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs", + importpath = "github.com/opencontainers/runc/libcontainer/cgroups/fs", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/moby/sys/mountinfo:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/devices:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fscommon:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/system:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/utils:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/moby/sys/mountinfo:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/devices:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fscommon:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/system:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/utils:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs2/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs2/BUILD new file mode 100644 index 0000000000000..19e1ae221000c --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs2/BUILD @@ -0,0 +1,56 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "cpu.go", + "cpuset.go", + "create.go", + "defaultpath.go", + "devices.go", + "freezer.go", + "fs2.go", + "hugetlb.go", + "io.go", + "memory.go", + "pids.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs2", + importpath = "github.com/opencontainers/runc/libcontainer/cgroups/fs2", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/utils:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/ebpf:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/ebpf/devicefilter:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fscommon:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/ebpf:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/ebpf/devicefilter:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fscommon:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fscommon/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fscommon/BUILD new file mode 100644 index 0000000000000..f117ec77fd986 --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fscommon/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "fscommon.go", + "utils.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fscommon", + importpath = "github.com/opencontainers/runc/libcontainer/cgroups/fscommon", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/cyphar/filepath-securejoin:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/github.com/sirupsen/logrus:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/cyphar/filepath-securejoin:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/github.com/sirupsen/logrus:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd/BUILD new file mode 100644 index 0000000000000..e74b5c0f8fae7 --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd/BUILD @@ -0,0 +1,92 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "common.go", + "unsupported.go", + "user.go", + "v1.go", + "v2.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd", + importpath = "github.com/opencontainers/runc/libcontainer/cgroups/systemd", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/go-systemd/v22/dbus:go_default_library", + "//vendor/github.com/godbus/dbus/v5:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/devices:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/github.com/sirupsen/logrus:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:aix": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + ], + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/cyphar/filepath-securejoin:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs2:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/system:go_default_library", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + ], + "@io_bazel_rules_go//go/platform:dragonfly": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + ], + "@io_bazel_rules_go//go/platform:illumos": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + ], + "@io_bazel_rules_go//go/platform:ios": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + ], + "@io_bazel_rules_go//go/platform:js": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/cyphar/filepath-securejoin:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs2:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/system:go_default_library", + ], + "@io_bazel_rules_go//go/platform:nacl": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + ], + "@io_bazel_rules_go//go/platform:netbsd": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + ], + "@io_bazel_rules_go//go/platform:openbsd": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + ], + "@io_bazel_rules_go//go/platform:plan9": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + ], + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/configs/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/configs/BUILD new file mode 100644 index 0000000000000..1a4bfe81089d5 --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/configs/BUILD @@ -0,0 +1,57 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "blkio_device.go", + "cgroup_linux.go", + "cgroup_unsupported.go", + "config.go", + "config_linux.go", + "device.go", + "hugepage_limit.go", + "intelrdt.go", + "interface_priority_map.go", + "mount.go", + "namespaces.go", + "namespaces_linux.go", + "namespaces_syscall.go", + "namespaces_syscall_unsupported.go", + "namespaces_unsupported.go", + "network.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/configs", + importpath = "github.com/opencontainers/runc/libcontainer/configs", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/opencontainers/runtime-spec/specs-go:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/github.com/sirupsen/logrus:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/coreos/go-systemd/v22/dbus:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/coreos/go-systemd/v22/dbus:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/opencontainers/runc/libcontainer/configs/validate:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/configs/validate/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/configs/validate/BUILD new file mode 100644 index 0000000000000..50c2a1cf198ad --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/configs/validate/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "rootless.go", + "validator.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/configs/validate", + importpath = "github.com/opencontainers/runc/libcontainer/configs/validate", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/intelrdt:go_default_library", + "//vendor/github.com/opencontainers/selinux/go-selinux:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/intelrdt/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/intelrdt/BUILD new file mode 100644 index 0000000000000..9de34a167d0ad --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/intelrdt/BUILD @@ -0,0 +1,40 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "cmt.go", + "intelrdt.go", + "mbm.go", + "monitoring.go", + "stats.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/intelrdt", + importpath = "github.com/opencontainers/runc/libcontainer/intelrdt", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/sirupsen/logrus:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/keys/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/keys/BUILD new file mode 100644 index 0000000000000..0a234be70119b --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/keys/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["keyctl.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/keys", + importpath = "github.com/opencontainers/runc/libcontainer/keys", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/logs/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/logs/BUILD new file mode 100644 index 0000000000000..f45b37b9c06ef --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/logs/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["logs.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/logs", + importpath = "github.com/opencontainers/runc/libcontainer/logs", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/sirupsen/logrus:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/seccomp/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/seccomp/BUILD new file mode 100644 index 0000000000000..3ed24ba69752f --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/seccomp/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "config.go", + "seccomp_unsupported.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/seccomp", + importpath = "github.com/opencontainers/runc/libcontainer/seccomp", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/stacktrace/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/stacktrace/BUILD new file mode 100644 index 0000000000000..bf17cdbeb72be --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/stacktrace/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "capture.go", + "frame.go", + "stacktrace.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/stacktrace", + importpath = "github.com/opencontainers/runc/libcontainer/stacktrace", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD new file mode 100644 index 0000000000000..e3b9757cc1e0c --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD @@ -0,0 +1,128 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "linux.go", + "proc.go", + "syscall_linux_32.go", + "syscall_linux_64.go", + "unsupported.go", + "xattrs_linux.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/system", + importpath = "github.com/opencontainers/runc/libcontainer/system", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:aix": [ + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + ], + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + ], + "@io_bazel_rules_go//go/platform:dragonfly": [ + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + ], + "@io_bazel_rules_go//go/platform:illumos": [ + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + ], + "@io_bazel_rules_go//go/platform:ios": [ + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + ], + "@io_bazel_rules_go//go/platform:js": [ + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + ], + "@io_bazel_rules_go//go/platform:nacl": [ + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + ], + "@io_bazel_rules_go//go/platform:netbsd": [ + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + ], + "@io_bazel_rules_go//go/platform:openbsd": [ + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + ], + "@io_bazel_rules_go//go/platform:plan9": [ + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + ], + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + ], + "//conditions:default": [], + }) + select({ + "@io_bazel_rules_go//go/platform:android_386": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:android_amd64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:android_arm": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:android_arm64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux_386": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux_arm": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux_arm64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux_mips": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux_mips64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux_mips64le": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux_mipsle": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux_ppc64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux_ppc64le": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux_riscv64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux_s390x": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/user/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/user/BUILD new file mode 100644 index 0000000000000..07f3192ddadf6 --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/user/BUILD @@ -0,0 +1,58 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "lookup.go", + "lookup_unix.go", + "lookup_windows.go", + "user.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/user", + importpath = "github.com/opencontainers/runc/libcontainer/user", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:dragonfly": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:ios": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:netbsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:openbsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/utils/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/utils/BUILD new file mode 100644 index 0000000000000..855129eec783a --- /dev/null +++ b/vendor/github.com/opencontainers/runc/libcontainer/utils/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "cmsg.go", + "utils.go", + "utils_unix.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/libcontainer/utils", + importpath = "github.com/opencontainers/runc/libcontainer/utils", + visibility = ["//visibility:public"], + deps = ["//vendor/golang.org/x/sys/unix:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/types/BUILD b/vendor/github.com/opencontainers/runc/types/BUILD new file mode 100644 index 0000000000000..25d37bd663da8 --- /dev/null +++ b/vendor/github.com/opencontainers/runc/types/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["events.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runc/types", + importpath = "github.com/opencontainers/runc/types", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/opencontainers/runc/libcontainer/intelrdt:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runtime-spec/specs-go/BUILD b/vendor/github.com/opencontainers/runtime-spec/specs-go/BUILD new file mode 100644 index 0000000000000..eaac5302fd105 --- /dev/null +++ b/vendor/github.com/opencontainers/runtime-spec/specs-go/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "config.go", + "state.go", + "version.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/runtime-spec/specs-go", + importpath = "github.com/opencontainers/runtime-spec/specs-go", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/selinux/go-selinux/BUILD b/vendor/github.com/opencontainers/selinux/go-selinux/BUILD new file mode 100644 index 0000000000000..ccd01b3541984 --- /dev/null +++ b/vendor/github.com/opencontainers/selinux/go-selinux/BUILD @@ -0,0 +1,43 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "selinux_linux.go", + "selinux_stub.go", + "xattrs.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/selinux/go-selinux", + importpath = "github.com/opencontainers/selinux/go-selinux", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/opencontainers/selinux/pkg/pwalk:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/opencontainers/selinux/pkg/pwalk:go_default_library", + "//vendor/github.com/pkg/errors:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/opencontainers/selinux/go-selinux/label:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/selinux/go-selinux/label/BUILD b/vendor/github.com/opencontainers/selinux/go-selinux/label/BUILD new file mode 100644 index 0000000000000..f877062a10818 --- /dev/null +++ b/vendor/github.com/opencontainers/selinux/go-selinux/label/BUILD @@ -0,0 +1,38 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "label.go", + "label_selinux.go", + "label_stub.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/selinux/go-selinux/label", + importpath = "github.com/opencontainers/selinux/go-selinux/label", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/opencontainers/selinux/go-selinux:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/pkg/errors:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/pkg/errors:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/selinux/pkg/pwalk/BUILD b/vendor/github.com/opencontainers/selinux/pkg/pwalk/BUILD new file mode 100644 index 0000000000000..c38f4087d5cd1 --- /dev/null +++ b/vendor/github.com/opencontainers/selinux/pkg/pwalk/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["pwalk.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/opencontainers/selinux/pkg/pwalk", + importpath = "github.com/opencontainers/selinux/pkg/pwalk", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/pkg/errors:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/openshift/api/LICENSE b/vendor/github.com/openshift/api/LICENSE deleted file mode 100644 index 5c389317ecc6d..0000000000000 --- a/vendor/github.com/openshift/api/LICENSE +++ /dev/null @@ -1,191 +0,0 @@ - - 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 - - Copyright 2020 Red Hat, Inc. - - 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/vendor/github.com/openshift/api/apps/v1/consts.go b/vendor/github.com/openshift/api/apps/v1/consts.go deleted file mode 100644 index 212578bccfb1b..0000000000000 --- a/vendor/github.com/openshift/api/apps/v1/consts.go +++ /dev/null @@ -1,108 +0,0 @@ -package v1 - -const ( - // DeploymentStatusReasonAnnotation represents the reason for deployment being in a given state - // Used for specifying the reason for cancellation or failure of a deployment - // This is on replication controller set by deployer controller. - DeploymentStatusReasonAnnotation = "openshift.io/deployment.status-reason" - - // DeploymentPodAnnotation is an annotation on a deployment (a ReplicationController). The - // annotation value is the name of the deployer Pod which will act upon the ReplicationController - // to implement the deployment behavior. - // This is set on replication controller by deployer controller. - DeploymentPodAnnotation = "openshift.io/deployer-pod.name" - - // DeploymentConfigAnnotation is an annotation name used to correlate a deployment with the - // DeploymentConfig on which the deployment is based. - // This is set on replication controller pod template by deployer controller. - DeploymentConfigAnnotation = "openshift.io/deployment-config.name" - - // DeploymentCancelledAnnotation indicates that the deployment has been cancelled - // The annotation value does not matter and its mere presence indicates cancellation. - // This is set on replication controller by deployment config controller or oc rollout cancel command. - DeploymentCancelledAnnotation = "openshift.io/deployment.cancelled" - - // DeploymentEncodedConfigAnnotation is an annotation name used to retrieve specific encoded - // DeploymentConfig on which a given deployment is based. - // This is set on replication controller by deployer controller. - DeploymentEncodedConfigAnnotation = "openshift.io/encoded-deployment-config" - - // DeploymentVersionAnnotation is an annotation on a deployment (a ReplicationController). The - // annotation value is the LatestVersion value of the DeploymentConfig which was the basis for - // the deployment. - // This is set on replication controller pod template by deployment config controller. - DeploymentVersionAnnotation = "openshift.io/deployment-config.latest-version" - - // DeployerPodForDeploymentLabel is a label which groups pods related to a - // deployment. The value is a deployment name. The deployer pod and hook pods - // created by the internal strategies will have this label. Custom - // strategies can apply this label to any pods they create, enabling - // platform-provided cancellation and garbage collection support. - // This is set on deployer pod by deployer controller. - DeployerPodForDeploymentLabel = "openshift.io/deployer-pod-for.name" - - // DeploymentStatusAnnotation is an annotation name used to retrieve the DeploymentPhase of - // a deployment. - // This is set on replication controller by deployer controller. - DeploymentStatusAnnotation = "openshift.io/deployment.phase" -) - -type DeploymentConditionReason string - -var ( - // ReplicationControllerUpdatedReason is added in a deployment config when one of its replication - // controllers is updated as part of the rollout process. - ReplicationControllerUpdatedReason DeploymentConditionReason = "ReplicationControllerUpdated" - - // ReplicationControllerCreateError is added in a deployment config when it cannot create a new replication - // controller. - ReplicationControllerCreateErrorReason DeploymentConditionReason = "ReplicationControllerCreateError" - - // ReplicationControllerCreatedReason is added in a deployment config when it creates a new replication - // controller. - NewReplicationControllerCreatedReason DeploymentConditionReason = "NewReplicationControllerCreated" - - // NewReplicationControllerAvailableReason is added in a deployment config when its newest replication controller is made - // available ie. the number of new pods that have passed readiness checks and run for at least - // minReadySeconds is at least the minimum available pods that need to run for the deployment config. - NewReplicationControllerAvailableReason DeploymentConditionReason = "NewReplicationControllerAvailable" - - // ProgressDeadlineExceededReason is added in a deployment config when its newest replication controller fails to show - // any progress within the given deadline (progressDeadlineSeconds). - ProgressDeadlineExceededReason DeploymentConditionReason = "ProgressDeadlineExceeded" - - // DeploymentConfigPausedReason is added in a deployment config when it is paused. Lack of progress shouldn't be - // estimated once a deployment config is paused. - DeploymentConfigPausedReason DeploymentConditionReason = "DeploymentConfigPaused" - - // DeploymentConfigResumedReason is added in a deployment config when it is resumed. Useful for not failing accidentally - // deployment configs that paused amidst a rollout. - DeploymentConfigResumedReason DeploymentConditionReason = "DeploymentConfigResumed" - - // RolloutCancelledReason is added in a deployment config when its newest rollout was - // interrupted by cancellation. - RolloutCancelledReason DeploymentConditionReason = "RolloutCancelled" -) - -// DeploymentStatus describes the possible states a deployment can be in. -type DeploymentStatus string - -var ( - - // DeploymentStatusNew means the deployment has been accepted but not yet acted upon. - DeploymentStatusNew DeploymentStatus = "New" - - // DeploymentStatusPending means the deployment been handed over to a deployment strategy, - // but the strategy has not yet declared the deployment to be running. - DeploymentStatusPending DeploymentStatus = "Pending" - - // DeploymentStatusRunning means the deployment strategy has reported the deployment as - // being in-progress. - DeploymentStatusRunning DeploymentStatus = "Running" - - // DeploymentStatusComplete means the deployment finished without an error. - DeploymentStatusComplete DeploymentStatus = "Complete" - - // DeploymentStatusFailed means the deployment finished with an error. - DeploymentStatusFailed DeploymentStatus = "Failed" -) diff --git a/vendor/github.com/openshift/api/apps/v1/deprecated_consts.go b/vendor/github.com/openshift/api/apps/v1/deprecated_consts.go deleted file mode 100644 index 31969786c4d1b..0000000000000 --- a/vendor/github.com/openshift/api/apps/v1/deprecated_consts.go +++ /dev/null @@ -1,38 +0,0 @@ -package v1 - -// This file contains consts that are not shared between components and set just internally. -// They will likely be removed in (near) future. - -const ( - // DeployerPodCreatedAtAnnotation is an annotation on a deployment that - // records the time in RFC3339 format of when the deployer pod for this particular - // deployment was created. - // This is set by deployer controller, but not consumed by any command or internally. - // DEPRECATED: will be removed soon - DeployerPodCreatedAtAnnotation = "openshift.io/deployer-pod.created-at" - - // DeployerPodStartedAtAnnotation is an annotation on a deployment that - // records the time in RFC3339 format of when the deployer pod for this particular - // deployment was started. - // This is set by deployer controller, but not consumed by any command or internally. - // DEPRECATED: will be removed soon - DeployerPodStartedAtAnnotation = "openshift.io/deployer-pod.started-at" - - // DeployerPodCompletedAtAnnotation is an annotation on deployment that records - // the time in RFC3339 format of when the deployer pod finished. - // This is set by deployer controller, but not consumed by any command or internally. - // DEPRECATED: will be removed soon - DeployerPodCompletedAtAnnotation = "openshift.io/deployer-pod.completed-at" - - // DesiredReplicasAnnotation represents the desired number of replicas for a - // new deployment. - // This is set by deployer controller, but not consumed by any command or internally. - // DEPRECATED: will be removed soon - DesiredReplicasAnnotation = "kubectl.kubernetes.io/desired-replicas" - - // DeploymentAnnotation is an annotation on a deployer Pod. The annotation value is the name - // of the deployment (a ReplicationController) on which the deployer Pod acts. - // This is set by deployer controller and consumed internally and in oc adm top command. - // DEPRECATED: will be removed soon - DeploymentAnnotation = "openshift.io/deployment.name" -) diff --git a/vendor/github.com/openshift/api/apps/v1/doc.go b/vendor/github.com/openshift/api/apps/v1/doc.go deleted file mode 100644 index edd16297b5459..0000000000000 --- a/vendor/github.com/openshift/api/apps/v1/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=github.com/openshift/origin/pkg/apps/apis/apps -// +k8s:defaulter-gen=TypeMeta -// +k8s:openapi-gen=true - -// +groupName=apps.openshift.io -// Package v1 is the v1 version of the API. -package v1 diff --git a/vendor/github.com/openshift/api/apps/v1/generated.pb.go b/vendor/github.com/openshift/api/apps/v1/generated.pb.go deleted file mode 100644 index d5401270061ff..0000000000000 --- a/vendor/github.com/openshift/api/apps/v1/generated.pb.go +++ /dev/null @@ -1,7530 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: github.com/openshift/api/apps/v1/generated.proto - -package v1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - k8s_io_api_core_v1 "k8s.io/api/core/v1" - v1 "k8s.io/api/core/v1" - v11 "k8s.io/apimachinery/pkg/apis/meta/v1" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" - - intstr "k8s.io/apimachinery/pkg/util/intstr" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *CustomDeploymentStrategyParams) Reset() { *m = CustomDeploymentStrategyParams{} } -func (*CustomDeploymentStrategyParams) ProtoMessage() {} -func (*CustomDeploymentStrategyParams) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{0} -} -func (m *CustomDeploymentStrategyParams) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *CustomDeploymentStrategyParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *CustomDeploymentStrategyParams) XXX_Merge(src proto.Message) { - xxx_messageInfo_CustomDeploymentStrategyParams.Merge(m, src) -} -func (m *CustomDeploymentStrategyParams) XXX_Size() int { - return m.Size() -} -func (m *CustomDeploymentStrategyParams) XXX_DiscardUnknown() { - xxx_messageInfo_CustomDeploymentStrategyParams.DiscardUnknown(m) -} - -var xxx_messageInfo_CustomDeploymentStrategyParams proto.InternalMessageInfo - -func (m *DeploymentCause) Reset() { *m = DeploymentCause{} } -func (*DeploymentCause) ProtoMessage() {} -func (*DeploymentCause) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{1} -} -func (m *DeploymentCause) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DeploymentCause) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DeploymentCause) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeploymentCause.Merge(m, src) -} -func (m *DeploymentCause) XXX_Size() int { - return m.Size() -} -func (m *DeploymentCause) XXX_DiscardUnknown() { - xxx_messageInfo_DeploymentCause.DiscardUnknown(m) -} - -var xxx_messageInfo_DeploymentCause proto.InternalMessageInfo - -func (m *DeploymentCauseImageTrigger) Reset() { *m = DeploymentCauseImageTrigger{} } -func (*DeploymentCauseImageTrigger) ProtoMessage() {} -func (*DeploymentCauseImageTrigger) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{2} -} -func (m *DeploymentCauseImageTrigger) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DeploymentCauseImageTrigger) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DeploymentCauseImageTrigger) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeploymentCauseImageTrigger.Merge(m, src) -} -func (m *DeploymentCauseImageTrigger) XXX_Size() int { - return m.Size() -} -func (m *DeploymentCauseImageTrigger) XXX_DiscardUnknown() { - xxx_messageInfo_DeploymentCauseImageTrigger.DiscardUnknown(m) -} - -var xxx_messageInfo_DeploymentCauseImageTrigger proto.InternalMessageInfo - -func (m *DeploymentCondition) Reset() { *m = DeploymentCondition{} } -func (*DeploymentCondition) ProtoMessage() {} -func (*DeploymentCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{3} -} -func (m *DeploymentCondition) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DeploymentCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DeploymentCondition) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeploymentCondition.Merge(m, src) -} -func (m *DeploymentCondition) XXX_Size() int { - return m.Size() -} -func (m *DeploymentCondition) XXX_DiscardUnknown() { - xxx_messageInfo_DeploymentCondition.DiscardUnknown(m) -} - -var xxx_messageInfo_DeploymentCondition proto.InternalMessageInfo - -func (m *DeploymentConfig) Reset() { *m = DeploymentConfig{} } -func (*DeploymentConfig) ProtoMessage() {} -func (*DeploymentConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{4} -} -func (m *DeploymentConfig) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DeploymentConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DeploymentConfig) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeploymentConfig.Merge(m, src) -} -func (m *DeploymentConfig) XXX_Size() int { - return m.Size() -} -func (m *DeploymentConfig) XXX_DiscardUnknown() { - xxx_messageInfo_DeploymentConfig.DiscardUnknown(m) -} - -var xxx_messageInfo_DeploymentConfig proto.InternalMessageInfo - -func (m *DeploymentConfigList) Reset() { *m = DeploymentConfigList{} } -func (*DeploymentConfigList) ProtoMessage() {} -func (*DeploymentConfigList) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{5} -} -func (m *DeploymentConfigList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DeploymentConfigList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DeploymentConfigList) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeploymentConfigList.Merge(m, src) -} -func (m *DeploymentConfigList) XXX_Size() int { - return m.Size() -} -func (m *DeploymentConfigList) XXX_DiscardUnknown() { - xxx_messageInfo_DeploymentConfigList.DiscardUnknown(m) -} - -var xxx_messageInfo_DeploymentConfigList proto.InternalMessageInfo - -func (m *DeploymentConfigRollback) Reset() { *m = DeploymentConfigRollback{} } -func (*DeploymentConfigRollback) ProtoMessage() {} -func (*DeploymentConfigRollback) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{6} -} -func (m *DeploymentConfigRollback) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DeploymentConfigRollback) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DeploymentConfigRollback) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeploymentConfigRollback.Merge(m, src) -} -func (m *DeploymentConfigRollback) XXX_Size() int { - return m.Size() -} -func (m *DeploymentConfigRollback) XXX_DiscardUnknown() { - xxx_messageInfo_DeploymentConfigRollback.DiscardUnknown(m) -} - -var xxx_messageInfo_DeploymentConfigRollback proto.InternalMessageInfo - -func (m *DeploymentConfigRollbackSpec) Reset() { *m = DeploymentConfigRollbackSpec{} } -func (*DeploymentConfigRollbackSpec) ProtoMessage() {} -func (*DeploymentConfigRollbackSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{7} -} -func (m *DeploymentConfigRollbackSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DeploymentConfigRollbackSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DeploymentConfigRollbackSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeploymentConfigRollbackSpec.Merge(m, src) -} -func (m *DeploymentConfigRollbackSpec) XXX_Size() int { - return m.Size() -} -func (m *DeploymentConfigRollbackSpec) XXX_DiscardUnknown() { - xxx_messageInfo_DeploymentConfigRollbackSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_DeploymentConfigRollbackSpec proto.InternalMessageInfo - -func (m *DeploymentConfigSpec) Reset() { *m = DeploymentConfigSpec{} } -func (*DeploymentConfigSpec) ProtoMessage() {} -func (*DeploymentConfigSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{8} -} -func (m *DeploymentConfigSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DeploymentConfigSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DeploymentConfigSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeploymentConfigSpec.Merge(m, src) -} -func (m *DeploymentConfigSpec) XXX_Size() int { - return m.Size() -} -func (m *DeploymentConfigSpec) XXX_DiscardUnknown() { - xxx_messageInfo_DeploymentConfigSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_DeploymentConfigSpec proto.InternalMessageInfo - -func (m *DeploymentConfigStatus) Reset() { *m = DeploymentConfigStatus{} } -func (*DeploymentConfigStatus) ProtoMessage() {} -func (*DeploymentConfigStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{9} -} -func (m *DeploymentConfigStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DeploymentConfigStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DeploymentConfigStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeploymentConfigStatus.Merge(m, src) -} -func (m *DeploymentConfigStatus) XXX_Size() int { - return m.Size() -} -func (m *DeploymentConfigStatus) XXX_DiscardUnknown() { - xxx_messageInfo_DeploymentConfigStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_DeploymentConfigStatus proto.InternalMessageInfo - -func (m *DeploymentDetails) Reset() { *m = DeploymentDetails{} } -func (*DeploymentDetails) ProtoMessage() {} -func (*DeploymentDetails) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{10} -} -func (m *DeploymentDetails) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DeploymentDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DeploymentDetails) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeploymentDetails.Merge(m, src) -} -func (m *DeploymentDetails) XXX_Size() int { - return m.Size() -} -func (m *DeploymentDetails) XXX_DiscardUnknown() { - xxx_messageInfo_DeploymentDetails.DiscardUnknown(m) -} - -var xxx_messageInfo_DeploymentDetails proto.InternalMessageInfo - -func (m *DeploymentLog) Reset() { *m = DeploymentLog{} } -func (*DeploymentLog) ProtoMessage() {} -func (*DeploymentLog) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{11} -} -func (m *DeploymentLog) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DeploymentLog) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DeploymentLog) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeploymentLog.Merge(m, src) -} -func (m *DeploymentLog) XXX_Size() int { - return m.Size() -} -func (m *DeploymentLog) XXX_DiscardUnknown() { - xxx_messageInfo_DeploymentLog.DiscardUnknown(m) -} - -var xxx_messageInfo_DeploymentLog proto.InternalMessageInfo - -func (m *DeploymentLogOptions) Reset() { *m = DeploymentLogOptions{} } -func (*DeploymentLogOptions) ProtoMessage() {} -func (*DeploymentLogOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{12} -} -func (m *DeploymentLogOptions) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DeploymentLogOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DeploymentLogOptions) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeploymentLogOptions.Merge(m, src) -} -func (m *DeploymentLogOptions) XXX_Size() int { - return m.Size() -} -func (m *DeploymentLogOptions) XXX_DiscardUnknown() { - xxx_messageInfo_DeploymentLogOptions.DiscardUnknown(m) -} - -var xxx_messageInfo_DeploymentLogOptions proto.InternalMessageInfo - -func (m *DeploymentRequest) Reset() { *m = DeploymentRequest{} } -func (*DeploymentRequest) ProtoMessage() {} -func (*DeploymentRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{13} -} -func (m *DeploymentRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DeploymentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DeploymentRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeploymentRequest.Merge(m, src) -} -func (m *DeploymentRequest) XXX_Size() int { - return m.Size() -} -func (m *DeploymentRequest) XXX_DiscardUnknown() { - xxx_messageInfo_DeploymentRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_DeploymentRequest proto.InternalMessageInfo - -func (m *DeploymentStrategy) Reset() { *m = DeploymentStrategy{} } -func (*DeploymentStrategy) ProtoMessage() {} -func (*DeploymentStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{14} -} -func (m *DeploymentStrategy) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DeploymentStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DeploymentStrategy) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeploymentStrategy.Merge(m, src) -} -func (m *DeploymentStrategy) XXX_Size() int { - return m.Size() -} -func (m *DeploymentStrategy) XXX_DiscardUnknown() { - xxx_messageInfo_DeploymentStrategy.DiscardUnknown(m) -} - -var xxx_messageInfo_DeploymentStrategy proto.InternalMessageInfo - -func (m *DeploymentTriggerImageChangeParams) Reset() { *m = DeploymentTriggerImageChangeParams{} } -func (*DeploymentTriggerImageChangeParams) ProtoMessage() {} -func (*DeploymentTriggerImageChangeParams) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{15} -} -func (m *DeploymentTriggerImageChangeParams) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DeploymentTriggerImageChangeParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DeploymentTriggerImageChangeParams) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeploymentTriggerImageChangeParams.Merge(m, src) -} -func (m *DeploymentTriggerImageChangeParams) XXX_Size() int { - return m.Size() -} -func (m *DeploymentTriggerImageChangeParams) XXX_DiscardUnknown() { - xxx_messageInfo_DeploymentTriggerImageChangeParams.DiscardUnknown(m) -} - -var xxx_messageInfo_DeploymentTriggerImageChangeParams proto.InternalMessageInfo - -func (m *DeploymentTriggerPolicies) Reset() { *m = DeploymentTriggerPolicies{} } -func (*DeploymentTriggerPolicies) ProtoMessage() {} -func (*DeploymentTriggerPolicies) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{16} -} -func (m *DeploymentTriggerPolicies) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DeploymentTriggerPolicies) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DeploymentTriggerPolicies) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeploymentTriggerPolicies.Merge(m, src) -} -func (m *DeploymentTriggerPolicies) XXX_Size() int { - return m.Size() -} -func (m *DeploymentTriggerPolicies) XXX_DiscardUnknown() { - xxx_messageInfo_DeploymentTriggerPolicies.DiscardUnknown(m) -} - -var xxx_messageInfo_DeploymentTriggerPolicies proto.InternalMessageInfo - -func (m *DeploymentTriggerPolicy) Reset() { *m = DeploymentTriggerPolicy{} } -func (*DeploymentTriggerPolicy) ProtoMessage() {} -func (*DeploymentTriggerPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{17} -} -func (m *DeploymentTriggerPolicy) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DeploymentTriggerPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DeploymentTriggerPolicy) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeploymentTriggerPolicy.Merge(m, src) -} -func (m *DeploymentTriggerPolicy) XXX_Size() int { - return m.Size() -} -func (m *DeploymentTriggerPolicy) XXX_DiscardUnknown() { - xxx_messageInfo_DeploymentTriggerPolicy.DiscardUnknown(m) -} - -var xxx_messageInfo_DeploymentTriggerPolicy proto.InternalMessageInfo - -func (m *ExecNewPodHook) Reset() { *m = ExecNewPodHook{} } -func (*ExecNewPodHook) ProtoMessage() {} -func (*ExecNewPodHook) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{18} -} -func (m *ExecNewPodHook) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ExecNewPodHook) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ExecNewPodHook) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExecNewPodHook.Merge(m, src) -} -func (m *ExecNewPodHook) XXX_Size() int { - return m.Size() -} -func (m *ExecNewPodHook) XXX_DiscardUnknown() { - xxx_messageInfo_ExecNewPodHook.DiscardUnknown(m) -} - -var xxx_messageInfo_ExecNewPodHook proto.InternalMessageInfo - -func (m *LifecycleHook) Reset() { *m = LifecycleHook{} } -func (*LifecycleHook) ProtoMessage() {} -func (*LifecycleHook) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{19} -} -func (m *LifecycleHook) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *LifecycleHook) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *LifecycleHook) XXX_Merge(src proto.Message) { - xxx_messageInfo_LifecycleHook.Merge(m, src) -} -func (m *LifecycleHook) XXX_Size() int { - return m.Size() -} -func (m *LifecycleHook) XXX_DiscardUnknown() { - xxx_messageInfo_LifecycleHook.DiscardUnknown(m) -} - -var xxx_messageInfo_LifecycleHook proto.InternalMessageInfo - -func (m *RecreateDeploymentStrategyParams) Reset() { *m = RecreateDeploymentStrategyParams{} } -func (*RecreateDeploymentStrategyParams) ProtoMessage() {} -func (*RecreateDeploymentStrategyParams) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{20} -} -func (m *RecreateDeploymentStrategyParams) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RecreateDeploymentStrategyParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RecreateDeploymentStrategyParams) XXX_Merge(src proto.Message) { - xxx_messageInfo_RecreateDeploymentStrategyParams.Merge(m, src) -} -func (m *RecreateDeploymentStrategyParams) XXX_Size() int { - return m.Size() -} -func (m *RecreateDeploymentStrategyParams) XXX_DiscardUnknown() { - xxx_messageInfo_RecreateDeploymentStrategyParams.DiscardUnknown(m) -} - -var xxx_messageInfo_RecreateDeploymentStrategyParams proto.InternalMessageInfo - -func (m *RollingDeploymentStrategyParams) Reset() { *m = RollingDeploymentStrategyParams{} } -func (*RollingDeploymentStrategyParams) ProtoMessage() {} -func (*RollingDeploymentStrategyParams) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{21} -} -func (m *RollingDeploymentStrategyParams) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RollingDeploymentStrategyParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RollingDeploymentStrategyParams) XXX_Merge(src proto.Message) { - xxx_messageInfo_RollingDeploymentStrategyParams.Merge(m, src) -} -func (m *RollingDeploymentStrategyParams) XXX_Size() int { - return m.Size() -} -func (m *RollingDeploymentStrategyParams) XXX_DiscardUnknown() { - xxx_messageInfo_RollingDeploymentStrategyParams.DiscardUnknown(m) -} - -var xxx_messageInfo_RollingDeploymentStrategyParams proto.InternalMessageInfo - -func (m *TagImageHook) Reset() { *m = TagImageHook{} } -func (*TagImageHook) ProtoMessage() {} -func (*TagImageHook) Descriptor() ([]byte, []int) { - return fileDescriptor_8f1b1bee37da74c1, []int{22} -} -func (m *TagImageHook) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TagImageHook) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *TagImageHook) XXX_Merge(src proto.Message) { - xxx_messageInfo_TagImageHook.Merge(m, src) -} -func (m *TagImageHook) XXX_Size() int { - return m.Size() -} -func (m *TagImageHook) XXX_DiscardUnknown() { - xxx_messageInfo_TagImageHook.DiscardUnknown(m) -} - -var xxx_messageInfo_TagImageHook proto.InternalMessageInfo - -func init() { - proto.RegisterType((*CustomDeploymentStrategyParams)(nil), "github.com.openshift.api.apps.v1.CustomDeploymentStrategyParams") - proto.RegisterType((*DeploymentCause)(nil), "github.com.openshift.api.apps.v1.DeploymentCause") - proto.RegisterType((*DeploymentCauseImageTrigger)(nil), "github.com.openshift.api.apps.v1.DeploymentCauseImageTrigger") - proto.RegisterType((*DeploymentCondition)(nil), "github.com.openshift.api.apps.v1.DeploymentCondition") - proto.RegisterType((*DeploymentConfig)(nil), "github.com.openshift.api.apps.v1.DeploymentConfig") - proto.RegisterType((*DeploymentConfigList)(nil), "github.com.openshift.api.apps.v1.DeploymentConfigList") - proto.RegisterType((*DeploymentConfigRollback)(nil), "github.com.openshift.api.apps.v1.DeploymentConfigRollback") - proto.RegisterMapType((map[string]string)(nil), "github.com.openshift.api.apps.v1.DeploymentConfigRollback.UpdatedAnnotationsEntry") - proto.RegisterType((*DeploymentConfigRollbackSpec)(nil), "github.com.openshift.api.apps.v1.DeploymentConfigRollbackSpec") - proto.RegisterType((*DeploymentConfigSpec)(nil), "github.com.openshift.api.apps.v1.DeploymentConfigSpec") - proto.RegisterMapType((map[string]string)(nil), "github.com.openshift.api.apps.v1.DeploymentConfigSpec.SelectorEntry") - proto.RegisterType((*DeploymentConfigStatus)(nil), "github.com.openshift.api.apps.v1.DeploymentConfigStatus") - proto.RegisterType((*DeploymentDetails)(nil), "github.com.openshift.api.apps.v1.DeploymentDetails") - proto.RegisterType((*DeploymentLog)(nil), "github.com.openshift.api.apps.v1.DeploymentLog") - proto.RegisterType((*DeploymentLogOptions)(nil), "github.com.openshift.api.apps.v1.DeploymentLogOptions") - proto.RegisterType((*DeploymentRequest)(nil), "github.com.openshift.api.apps.v1.DeploymentRequest") - proto.RegisterType((*DeploymentStrategy)(nil), "github.com.openshift.api.apps.v1.DeploymentStrategy") - proto.RegisterMapType((map[string]string)(nil), "github.com.openshift.api.apps.v1.DeploymentStrategy.AnnotationsEntry") - proto.RegisterMapType((map[string]string)(nil), "github.com.openshift.api.apps.v1.DeploymentStrategy.LabelsEntry") - proto.RegisterType((*DeploymentTriggerImageChangeParams)(nil), "github.com.openshift.api.apps.v1.DeploymentTriggerImageChangeParams") - proto.RegisterType((*DeploymentTriggerPolicies)(nil), "github.com.openshift.api.apps.v1.DeploymentTriggerPolicies") - proto.RegisterType((*DeploymentTriggerPolicy)(nil), "github.com.openshift.api.apps.v1.DeploymentTriggerPolicy") - proto.RegisterType((*ExecNewPodHook)(nil), "github.com.openshift.api.apps.v1.ExecNewPodHook") - proto.RegisterType((*LifecycleHook)(nil), "github.com.openshift.api.apps.v1.LifecycleHook") - proto.RegisterType((*RecreateDeploymentStrategyParams)(nil), "github.com.openshift.api.apps.v1.RecreateDeploymentStrategyParams") - proto.RegisterType((*RollingDeploymentStrategyParams)(nil), "github.com.openshift.api.apps.v1.RollingDeploymentStrategyParams") - proto.RegisterType((*TagImageHook)(nil), "github.com.openshift.api.apps.v1.TagImageHook") -} - -func init() { - proto.RegisterFile("github.com/openshift/api/apps/v1/generated.proto", fileDescriptor_8f1b1bee37da74c1) -} - -var fileDescriptor_8f1b1bee37da74c1 = []byte{ - // 2520 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x59, 0xcd, 0x6f, 0x5b, 0x59, - 0x15, 0xcf, 0x8b, 0xed, 0xc4, 0x3e, 0xf9, 0x6a, 0x6e, 0xfa, 0xe1, 0xc9, 0xa0, 0x38, 0xf2, 0x68, - 0x86, 0x00, 0x83, 0x3d, 0xcd, 0x94, 0xd1, 0xb4, 0xd5, 0x0c, 0xc4, 0x69, 0x3a, 0x93, 0xca, 0x69, - 0xc3, 0x4d, 0xda, 0xd2, 0x0a, 0x41, 0x6f, 0x9e, 0x6f, 0x9c, 0x3b, 0x79, 0xef, 0x5d, 0xf3, 0xde, - 0xb5, 0x5b, 0x23, 0x84, 0x66, 0x03, 0x12, 0xd2, 0x2c, 0x58, 0xc2, 0x06, 0xb1, 0x60, 0x0b, 0x62, - 0xc1, 0x1e, 0xb1, 0x40, 0xea, 0x02, 0xa4, 0x91, 0x90, 0x60, 0x84, 0x50, 0x34, 0x0d, 0x3b, 0xfe, - 0x84, 0xae, 0xd0, 0xfd, 0x78, 0x5f, 0xfe, 0x68, 0xe2, 0xb4, 0x3b, 0xbf, 0xf3, 0xf1, 0x3b, 0xe7, - 0x9e, 0x7b, 0xce, 0xb9, 0xe7, 0x5e, 0xc3, 0x3b, 0x4d, 0x26, 0x0e, 0xda, 0x7b, 0x15, 0x9b, 0xbb, - 0x55, 0xde, 0xa2, 0x5e, 0x70, 0xc0, 0xf6, 0x45, 0x95, 0xb4, 0x58, 0x95, 0xb4, 0x5a, 0x41, 0xb5, - 0x73, 0xb9, 0xda, 0xa4, 0x1e, 0xf5, 0x89, 0xa0, 0x8d, 0x4a, 0xcb, 0xe7, 0x82, 0xa3, 0xe5, 0x58, - 0xa3, 0x12, 0x69, 0x54, 0x48, 0x8b, 0x55, 0xa4, 0x46, 0xa5, 0x73, 0x79, 0xf1, 0x9b, 0x09, 0xcc, - 0x26, 0x6f, 0xf2, 0xaa, 0x52, 0xdc, 0x6b, 0xef, 0xab, 0x2f, 0xf5, 0xa1, 0x7e, 0x69, 0xc0, 0xc5, - 0xf2, 0xe1, 0xfb, 0x41, 0x85, 0x71, 0x65, 0xd4, 0xe6, 0x3e, 0x1d, 0x60, 0x74, 0xf1, 0x4a, 0x2c, - 0xe3, 0x12, 0xfb, 0x80, 0x79, 0xd4, 0xef, 0x56, 0x5b, 0x87, 0x4d, 0x49, 0x08, 0xaa, 0x2e, 0x15, - 0x64, 0x90, 0xd6, 0x7b, 0xc3, 0xb4, 0xfc, 0xb6, 0x27, 0x98, 0x4b, 0xab, 0x81, 0x7d, 0x40, 0x5d, - 0xd2, 0xa7, 0xf7, 0xee, 0x30, 0xbd, 0xb6, 0x60, 0x4e, 0x95, 0x79, 0x22, 0x10, 0x7e, 0xaf, 0x52, - 0xf9, 0xcf, 0x16, 0x2c, 0xad, 0xb7, 0x03, 0xc1, 0xdd, 0x1b, 0xb4, 0xe5, 0xf0, 0xae, 0x4b, 0x3d, - 0xb1, 0x23, 0xa4, 0x44, 0xb3, 0xbb, 0x4d, 0x7c, 0xe2, 0x06, 0xe8, 0x0d, 0xc8, 0x31, 0x97, 0x34, - 0x69, 0xd1, 0x5a, 0xb6, 0x56, 0x0a, 0xb5, 0x99, 0xa7, 0x47, 0xa5, 0xb1, 0xe3, 0xa3, 0x52, 0x6e, - 0x53, 0x12, 0xb1, 0xe6, 0xa1, 0xef, 0xc2, 0x14, 0xf5, 0x3a, 0xcc, 0xe7, 0x9e, 0x44, 0x28, 0x8e, - 0x2f, 0x67, 0x56, 0xa6, 0x56, 0x17, 0x2b, 0xda, 0x25, 0x15, 0x67, 0x19, 0xa4, 0x4a, 0xe7, 0x72, - 0x65, 0xc3, 0xeb, 0xdc, 0x23, 0x7e, 0x6d, 0xc1, 0xc0, 0x4c, 0x6d, 0xc4, 0x6a, 0x38, 0x89, 0x81, - 0xde, 0x84, 0x49, 0x9b, 0xbb, 0x2e, 0xf1, 0x1a, 0xc5, 0xcc, 0x72, 0x66, 0xa5, 0x50, 0x9b, 0x3a, - 0x3e, 0x2a, 0x4d, 0xae, 0x6b, 0x12, 0x0e, 0x79, 0xe5, 0xbf, 0x58, 0x30, 0x17, 0xfb, 0xbe, 0x4e, - 0xda, 0x01, 0x45, 0x57, 0x21, 0x2b, 0xba, 0xad, 0xd0, 0xe3, 0x37, 0x8d, 0xa9, 0xec, 0x6e, 0xb7, - 0x45, 0x9f, 0x1f, 0x95, 0x2e, 0xc4, 0xe2, 0xbb, 0x3e, 0x6b, 0x36, 0xa9, 0x2f, 0x19, 0x58, 0xa9, - 0xa0, 0x00, 0xa6, 0xd5, 0x8a, 0x0c, 0xa7, 0x38, 0xbe, 0x6c, 0xad, 0x4c, 0xad, 0x7e, 0x50, 0x39, - 0x29, 0x7f, 0x2a, 0x3d, 0x3e, 0x6c, 0x26, 0x40, 0x6a, 0xe7, 0x8e, 0x8f, 0x4a, 0xd3, 0x49, 0x0a, - 0x4e, 0x19, 0x29, 0x37, 0xe0, 0xf5, 0x17, 0xa8, 0xa3, 0x0d, 0xc8, 0xee, 0xfb, 0xdc, 0x55, 0xcb, - 0x99, 0x5a, 0x7d, 0x63, 0x50, 0x54, 0xef, 0xec, 0x7d, 0x42, 0x6d, 0x81, 0xe9, 0x3e, 0xf5, 0xa9, - 0x67, 0xd3, 0xda, 0x74, 0xb8, 0xe6, 0x9b, 0x3e, 0x77, 0xb1, 0x52, 0x2f, 0xff, 0x2b, 0x03, 0x0b, - 0x09, 0x33, 0xdc, 0x6b, 0x30, 0xc1, 0xb8, 0x87, 0xae, 0xa7, 0xa2, 0xf5, 0xd5, 0x9e, 0x68, 0x5d, - 0x1a, 0xa0, 0x92, 0x88, 0x57, 0x1d, 0x26, 0x02, 0x41, 0x44, 0x3b, 0x50, 0x91, 0x2a, 0xd4, 0xae, - 0x18, 0xf5, 0x89, 0x1d, 0x45, 0x7d, 0x7e, 0x54, 0x1a, 0x50, 0x29, 0x95, 0x08, 0x49, 0x4b, 0x61, - 0x83, 0x81, 0x3e, 0x81, 0x59, 0x87, 0x04, 0xe2, 0x6e, 0xab, 0x41, 0x04, 0xdd, 0x65, 0x2e, 0x2d, - 0x4e, 0xa8, 0x35, 0x7f, 0x3d, 0xb1, 0xe6, 0x28, 0xb9, 0x2b, 0xad, 0xc3, 0xa6, 0x24, 0x04, 0x15, - 0x59, 0x4a, 0x32, 0x0a, 0x52, 0xa3, 0x76, 0xd1, 0x78, 0x30, 0x5b, 0x4f, 0x21, 0xe1, 0x1e, 0x64, - 0xd4, 0x01, 0x24, 0x29, 0xbb, 0x3e, 0xf1, 0x02, 0xbd, 0x2a, 0x69, 0x2f, 0x33, 0xb2, 0xbd, 0x45, - 0x63, 0x0f, 0xd5, 0xfb, 0xd0, 0xf0, 0x00, 0x0b, 0xe8, 0x2d, 0x98, 0xf0, 0x29, 0x09, 0xb8, 0x57, - 0xcc, 0xaa, 0x88, 0xcd, 0x86, 0x11, 0xc3, 0x8a, 0x8a, 0x0d, 0x17, 0x7d, 0x0d, 0x26, 0x5d, 0x1a, - 0x04, 0xb2, 0xf2, 0x72, 0x4a, 0x70, 0xce, 0x08, 0x4e, 0x6e, 0x69, 0x32, 0x0e, 0xf9, 0xe5, 0x3f, - 0x8e, 0xc3, 0xb9, 0xd4, 0x36, 0xed, 0xb3, 0x26, 0x7a, 0x04, 0x79, 0xe9, 0x67, 0x83, 0x08, 0x62, - 0x32, 0xe7, 0x9d, 0xd3, 0xad, 0x4a, 0xe7, 0xd2, 0x16, 0x15, 0xa4, 0x86, 0x8c, 0x49, 0x88, 0x69, - 0x38, 0x42, 0x45, 0xdf, 0x83, 0x6c, 0xd0, 0xa2, 0xb6, 0xa9, 0x91, 0xf7, 0x46, 0xaa, 0x11, 0xe5, - 0xe3, 0x4e, 0x8b, 0xda, 0x71, 0xaa, 0xca, 0x2f, 0xac, 0x10, 0xd1, 0xa3, 0x28, 0xab, 0xf4, 0x7e, - 0xbc, 0x7f, 0x06, 0x6c, 0xa5, 0x1f, 0x47, 0x37, 0x9d, 0x69, 0xe5, 0xbf, 0x5b, 0x70, 0xbe, 0x57, - 0xa5, 0xce, 0x02, 0x81, 0xbe, 0xdf, 0x17, 0xb6, 0xca, 0xe9, 0xc2, 0x26, 0xb5, 0x55, 0xd0, 0xce, - 0x19, 0x93, 0xf9, 0x90, 0x92, 0x08, 0xd9, 0x7d, 0xc8, 0x31, 0x41, 0xdd, 0xc0, 0x74, 0xc8, 0xd5, - 0xd1, 0xd7, 0x95, 0x68, 0xc0, 0x12, 0x08, 0x6b, 0xbc, 0xf2, 0xcf, 0x33, 0x50, 0xec, 0x15, 0xc5, - 0xdc, 0x71, 0xf6, 0x88, 0x7d, 0x88, 0x96, 0x21, 0xeb, 0x11, 0x37, 0xac, 0xf0, 0x28, 0xe0, 0xb7, - 0x89, 0x4b, 0xb1, 0xe2, 0xa0, 0xdf, 0x58, 0x80, 0xda, 0xaa, 0x36, 0x1a, 0x6b, 0x9e, 0xc7, 0x05, - 0x91, 0xe9, 0x1a, 0x7a, 0x89, 0x47, 0xf7, 0x32, 0x34, 0x5d, 0xb9, 0xdb, 0x07, 0xba, 0xe1, 0x09, - 0xbf, 0x1b, 0x57, 0x4d, 0xbf, 0x00, 0x1e, 0xe0, 0x09, 0x7a, 0x64, 0x72, 0x4d, 0xe7, 0xc3, 0x87, - 0x67, 0xf7, 0x68, 0x58, 0xce, 0x2d, 0x6e, 0xc0, 0xa5, 0x21, 0xce, 0xa2, 0x73, 0x90, 0x39, 0xa4, - 0x5d, 0x1d, 0x3e, 0x2c, 0x7f, 0xa2, 0xf3, 0x90, 0xeb, 0x10, 0xa7, 0x4d, 0x75, 0xd7, 0xc3, 0xfa, - 0xe3, 0xda, 0xf8, 0xfb, 0x56, 0xf9, 0x4f, 0x19, 0xf8, 0xca, 0x8b, 0x6c, 0xbf, 0xa2, 0x6e, 0x8e, - 0xde, 0x86, 0xbc, 0x4f, 0x3b, 0x2c, 0x60, 0xdc, 0x53, 0x4e, 0x64, 0xe2, 0xbc, 0xc3, 0x86, 0x8e, - 0x23, 0x09, 0xb4, 0x06, 0x73, 0xcc, 0xb3, 0x9d, 0x76, 0x23, 0x3c, 0x54, 0x74, 0x65, 0xe5, 0x6b, - 0x97, 0x8c, 0xd2, 0xdc, 0x66, 0x9a, 0x8d, 0x7b, 0xe5, 0x93, 0x10, 0xd4, 0x6d, 0x39, 0x44, 0x50, - 0xd5, 0xc0, 0x06, 0x40, 0x18, 0x36, 0xee, 0x95, 0x47, 0xf7, 0xe0, 0xa2, 0x21, 0x61, 0xda, 0x72, - 0x98, 0xad, 0x62, 0x2c, 0x2b, 0x44, 0x75, 0xb8, 0x7c, 0x6d, 0xc9, 0x20, 0x5d, 0xdc, 0x1c, 0x28, - 0x85, 0x87, 0x68, 0x27, 0x5c, 0x0b, 0x67, 0x17, 0x75, 0x6e, 0xf4, 0xbb, 0x16, 0xb2, 0x71, 0xaf, - 0x7c, 0xf9, 0x7f, 0xb9, 0xfe, 0x7e, 0xa0, 0xb6, 0x6b, 0x0f, 0xf2, 0x41, 0x08, 0xaa, 0xb7, 0xec, - 0xca, 0x28, 0xc9, 0x17, 0x1a, 0x88, 0x77, 0x27, 0xf2, 0x21, 0xc2, 0x95, 0xfe, 0xbb, 0xcc, 0xc3, - 0x94, 0x34, 0xba, 0x3b, 0xd4, 0xe6, 0x5e, 0x23, 0x28, 0x16, 0x96, 0xad, 0x95, 0x5c, 0xec, 0xff, - 0x56, 0x9a, 0x8d, 0x7b, 0xe5, 0x11, 0x85, 0xbc, 0x08, 0x77, 0x56, 0xf7, 0xe3, 0xeb, 0xa3, 0xb8, - 0x69, 0x76, 0x79, 0x9b, 0x3b, 0xcc, 0x66, 0x34, 0xa8, 0x4d, 0x4b, 0x4f, 0xa3, 0x5c, 0x88, 0xa0, - 0x75, 0xd6, 0xa9, 0xe0, 0xeb, 0x04, 0xca, 0x25, 0xb3, 0x4e, 0xd3, 0x71, 0x24, 0x81, 0xea, 0x70, - 0x3e, 0xcc, 0xc0, 0x8f, 0x59, 0x20, 0xb8, 0xdf, 0xad, 0x33, 0x97, 0x09, 0x95, 0x37, 0xb9, 0x5a, - 0xf1, 0xf8, 0xa8, 0x74, 0x1e, 0x0f, 0xe0, 0xe3, 0x81, 0x5a, 0xb2, 0x8b, 0x09, 0x1a, 0x08, 0x93, - 0x2b, 0x51, 0x4d, 0xec, 0xd2, 0x40, 0x60, 0xc5, 0x91, 0x47, 0x6b, 0x4b, 0x4e, 0x4f, 0x0d, 0xb3, - 0xfd, 0x51, 0xf3, 0xdf, 0x56, 0x54, 0x6c, 0xb8, 0xc8, 0x87, 0x7c, 0x40, 0x1d, 0x6a, 0x0b, 0xee, - 0x17, 0x27, 0x55, 0x8b, 0xbb, 0x71, 0xb6, 0xc3, 0xab, 0xb2, 0x63, 0x60, 0x74, 0x53, 0x8b, 0xf7, - 0xd8, 0x90, 0x71, 0x64, 0x07, 0x6d, 0x41, 0x5e, 0x84, 0x75, 0x93, 0x1f, 0x5e, 0xfa, 0xdb, 0xbc, - 0x11, 0x96, 0x8b, 0xee, 0x54, 0x6a, 0x23, 0xc2, 0x8a, 0x8a, 0x20, 0x16, 0xaf, 0xc3, 0x4c, 0xca, - 0xf6, 0x48, 0x3d, 0xea, 0x0f, 0x39, 0xb8, 0x38, 0xf8, 0xbc, 0x44, 0xd7, 0x61, 0x46, 0xe2, 0x07, - 0xe2, 0x1e, 0xf5, 0x55, 0x6f, 0xb1, 0x54, 0x6f, 0xb9, 0x60, 0x56, 0x36, 0x53, 0x4f, 0x32, 0x71, - 0x5a, 0x16, 0xdd, 0x02, 0xc4, 0xf7, 0x02, 0xea, 0x77, 0x68, 0xe3, 0x23, 0x7d, 0xd1, 0x88, 0xbb, - 0x53, 0xd4, 0xf0, 0xef, 0xf4, 0x49, 0xe0, 0x01, 0x5a, 0x23, 0x66, 0xda, 0x1a, 0xcc, 0x99, 0x43, - 0x23, 0x64, 0x9a, 0x24, 0x8b, 0x2a, 0xe8, 0x6e, 0x9a, 0x8d, 0x7b, 0xe5, 0xd1, 0x47, 0x30, 0x4f, - 0x3a, 0x84, 0x39, 0x64, 0xcf, 0xa1, 0x11, 0x48, 0x4e, 0x81, 0xbc, 0x66, 0x40, 0xe6, 0xd7, 0x7a, - 0x05, 0x70, 0xbf, 0x0e, 0xda, 0x82, 0x85, 0xb6, 0xd7, 0x0f, 0x35, 0xa1, 0xa0, 0x5e, 0x37, 0x50, - 0x0b, 0x77, 0xfb, 0x45, 0xf0, 0x20, 0x3d, 0xf4, 0x10, 0x26, 0x1b, 0x54, 0x10, 0xe6, 0x04, 0xc5, - 0x49, 0x95, 0x37, 0xef, 0x8e, 0x92, 0xab, 0x37, 0xb4, 0xaa, 0xbe, 0x3c, 0x99, 0x0f, 0x1c, 0x02, - 0x22, 0x06, 0x60, 0x87, 0xa3, 0x78, 0x50, 0xcc, 0xab, 0x52, 0xf8, 0xd6, 0x88, 0xa5, 0xa0, 0xb5, - 0xe3, 0x51, 0x31, 0x22, 0x05, 0x38, 0x01, 0x2e, 0x13, 0xcb, 0x97, 0x0d, 0x2b, 0x8a, 0x87, 0xee, - 0x70, 0x51, 0x62, 0xe1, 0x24, 0x13, 0xa7, 0x65, 0xcb, 0xbf, 0xb6, 0x60, 0xbe, 0x6f, 0x4d, 0xc9, - 0x09, 0xd9, 0x7a, 0xf1, 0x84, 0x8c, 0x1e, 0xc0, 0x84, 0x2d, 0x6b, 0x3f, 0x1c, 0x69, 0x2e, 0x8f, - 0x7c, 0xa1, 0x8b, 0x9b, 0x89, 0xfa, 0x0c, 0xb0, 0x01, 0x2c, 0xcf, 0xc1, 0x4c, 0x2c, 0x5a, 0xe7, - 0xcd, 0xf2, 0x67, 0xd9, 0xe4, 0x51, 0x52, 0xe7, 0xcd, 0x3b, 0x2d, 0x1d, 0x82, 0x2a, 0x14, 0x6c, - 0xee, 0x09, 0x22, 0x07, 0x48, 0xe3, 0xf1, 0xbc, 0x01, 0x2d, 0xac, 0x87, 0x0c, 0x1c, 0xcb, 0xc8, - 0x7e, 0xb6, 0xcf, 0x1d, 0x87, 0x3f, 0x56, 0x35, 0x94, 0xe8, 0x67, 0x37, 0x15, 0x15, 0x1b, 0xae, - 0xac, 0x95, 0x96, 0x6c, 0x99, 0xbc, 0x1d, 0x1e, 0xeb, 0x51, 0xad, 0x6c, 0x1b, 0x3a, 0x8e, 0x24, - 0xd0, 0x15, 0x98, 0x0e, 0x98, 0x67, 0xd3, 0xf0, 0xa8, 0xc9, 0xea, 0xe9, 0x41, 0xde, 0x51, 0x77, - 0x12, 0x74, 0x9c, 0x92, 0x42, 0xf7, 0xa1, 0xa0, 0xbe, 0xd5, 0x2d, 0x29, 0x37, 0xf2, 0x2d, 0x69, - 0x46, 0x2e, 0x72, 0x27, 0x04, 0xc0, 0x31, 0x16, 0x5a, 0x05, 0x10, 0xcc, 0xa5, 0x81, 0x20, 0x6e, - 0x2b, 0x30, 0x8d, 0x3b, 0x4a, 0xa6, 0xdd, 0x88, 0x83, 0x13, 0x52, 0xe8, 0x1b, 0x50, 0x90, 0x29, - 0x50, 0x67, 0x1e, 0xd5, 0x55, 0x91, 0xd1, 0x06, 0x76, 0x43, 0x22, 0x8e, 0xf9, 0xa8, 0x02, 0xe0, - 0xc8, 0x03, 0xa4, 0xd6, 0x15, 0x34, 0x50, 0xbd, 0x37, 0x53, 0x9b, 0x95, 0xe0, 0xf5, 0x88, 0x8a, - 0x13, 0x12, 0x32, 0xea, 0x1e, 0x7f, 0x4c, 0x98, 0x50, 0x29, 0x9a, 0x88, 0xfa, 0x6d, 0x7e, 0x9f, - 0x30, 0x81, 0x0d, 0x17, 0xbd, 0x09, 0x93, 0x1d, 0xd3, 0x24, 0x41, 0x81, 0xaa, 0x1a, 0x0b, 0x5b, - 0x63, 0xc8, 0x2b, 0xff, 0x3b, 0x95, 0xbb, 0x98, 0xfe, 0xa8, 0x2d, 0x8f, 0xaa, 0x93, 0x47, 0xf2, - 0xb7, 0x60, 0x42, 0x77, 0xd7, 0xde, 0xcd, 0xd7, 0x2d, 0x18, 0x1b, 0x2e, 0x7a, 0x03, 0x72, 0xfb, - 0xdc, 0xb7, 0xa9, 0xd9, 0xf9, 0xe8, 0x7a, 0x70, 0x53, 0x12, 0xb1, 0xe6, 0xa1, 0x7b, 0x30, 0x47, - 0x9f, 0xa4, 0xe7, 0xbf, 0xac, 0x7a, 0x54, 0x79, 0x5b, 0xf6, 0xc6, 0x8d, 0x34, 0x6b, 0xf8, 0x1b, - 0x49, 0x2f, 0x48, 0xf9, 0x1f, 0x93, 0x80, 0xfa, 0x87, 0x1d, 0x74, 0x2d, 0xf5, 0xa4, 0xf0, 0x56, - 0xcf, 0x93, 0xc2, 0xc5, 0x7e, 0x8d, 0xc4, 0x8b, 0x42, 0x07, 0xa6, 0x6d, 0xf5, 0x22, 0xa5, 0xdf, - 0x9f, 0xcc, 0x34, 0xf3, 0x9d, 0x93, 0x0b, 0xf6, 0xc5, 0xef, 0x58, 0x3a, 0xc1, 0xd7, 0x13, 0xc8, - 0x38, 0x65, 0x07, 0xfd, 0x14, 0x66, 0x7d, 0x6a, 0xfb, 0x94, 0x08, 0x6a, 0x2c, 0xeb, 0xbb, 0x46, - 0xed, 0x64, 0xcb, 0xd8, 0xe8, 0x0d, 0xb5, 0x8d, 0x8e, 0x8f, 0x4a, 0xb3, 0x38, 0x85, 0x8e, 0x7b, - 0xac, 0xa1, 0x1f, 0xc3, 0x8c, 0xcf, 0x1d, 0x87, 0x79, 0x4d, 0x63, 0x3e, 0xab, 0xcc, 0xaf, 0x9d, - 0xc2, 0xbc, 0x56, 0x1b, 0x6a, 0x7d, 0x5e, 0xf5, 0xd7, 0x24, 0x36, 0x4e, 0x9b, 0x42, 0x0f, 0xa0, - 0xe0, 0xd3, 0x80, 0xb7, 0x7d, 0x9b, 0x06, 0xa6, 0xb8, 0x57, 0x06, 0x4d, 0x27, 0xd8, 0x08, 0xc9, - 0x2c, 0x66, 0x3e, 0x95, 0xb6, 0x82, 0xb8, 0x87, 0x85, 0xdc, 0x00, 0xc7, 0x68, 0xe8, 0x40, 0xa6, - 0xf1, 0x1e, 0x75, 0x64, 0x69, 0x67, 0x4e, 0xb7, 0x91, 0xfd, 0x0b, 0xa9, 0xd4, 0x15, 0x84, 0x9e, - 0xb2, 0x12, 0x85, 0x20, 0x89, 0xd8, 0xe0, 0xa3, 0x9f, 0xc0, 0x14, 0x49, 0xdc, 0x5d, 0xf5, 0x60, - 0xb7, 0x71, 0x26, 0x73, 0x7d, 0xd7, 0xd5, 0xe8, 0xb9, 0x32, 0x79, 0x4f, 0x4d, 0x9a, 0x43, 0x77, - 0xe0, 0x02, 0xb1, 0x05, 0xeb, 0xd0, 0x1b, 0x94, 0x34, 0x1c, 0xe6, 0x45, 0xed, 0x55, 0x37, 0x9c, - 0xd7, 0x8e, 0x8f, 0x4a, 0x17, 0xd6, 0x06, 0x09, 0xe0, 0xc1, 0x7a, 0x8b, 0x57, 0x61, 0x2a, 0xb1, - 0xea, 0x51, 0xe6, 0xbb, 0xc5, 0x0f, 0xe1, 0xdc, 0x4b, 0xdd, 0x61, 0x7f, 0x37, 0x0e, 0xe5, 0xbe, - 0x06, 0xa0, 0x9e, 0x24, 0xd7, 0x0f, 0x88, 0xd7, 0x0c, 0x33, 0xb6, 0x0a, 0x05, 0xd2, 0x16, 0xdc, - 0x25, 0x82, 0xd9, 0x0a, 0x38, 0x1f, 0xe7, 0xc2, 0x5a, 0xc8, 0xc0, 0xb1, 0x0c, 0xba, 0x06, 0xb3, - 0xd1, 0xe1, 0x26, 0x3b, 0x9d, 0x3e, 0x8d, 0x0b, 0xba, 0x3c, 0xd6, 0x53, 0x1c, 0xdc, 0x23, 0x19, - 0x5d, 0x9b, 0x33, 0x2f, 0x77, 0x6d, 0xbe, 0x15, 0xbe, 0xfa, 0xa9, 0x35, 0xd1, 0x86, 0x5a, 0x95, - 0x79, 0x89, 0xeb, 0x79, 0xc9, 0x4b, 0x4a, 0xe0, 0x01, 0x5a, 0xe5, 0x9f, 0x59, 0xf0, 0xda, 0xd0, - 0x2b, 0x14, 0xfa, 0x41, 0xf8, 0xd4, 0x63, 0xa9, 0x44, 0xbc, 0x7a, 0xd6, 0xeb, 0x58, 0x77, 0xf0, - 0x8b, 0xcf, 0xb5, 0xfc, 0xaf, 0x7e, 0x5b, 0x1a, 0xfb, 0xf4, 0x3f, 0xcb, 0x63, 0xe5, 0x2f, 0x2d, - 0xb8, 0x34, 0x44, 0xf7, 0x65, 0x9e, 0xc2, 0x7f, 0x61, 0xc1, 0x3c, 0xeb, 0xdd, 0x74, 0xd3, 0x8e, - 0x6f, 0x9c, 0x61, 0x35, 0x7d, 0x09, 0x54, 0xbb, 0x20, 0x67, 0xea, 0x3e, 0x32, 0xee, 0xb7, 0x5a, - 0xfe, 0xa7, 0x05, 0xb3, 0x1b, 0x4f, 0xa8, 0x7d, 0x9b, 0x3e, 0xde, 0xe6, 0x8d, 0x8f, 0x39, 0x3f, - 0x4c, 0xfe, 0x3f, 0x60, 0x0d, 0xff, 0x7f, 0x00, 0x5d, 0x85, 0x0c, 0xf5, 0x3a, 0xa7, 0xf8, 0x47, - 0x62, 0xca, 0xc4, 0x26, 0xb3, 0xe1, 0x75, 0xb0, 0xd4, 0x91, 0x23, 0x6b, 0x2a, 0x09, 0x55, 0xee, - 0x15, 0xe2, 0x91, 0x35, 0x95, 0xb1, 0x38, 0x2d, 0xab, 0xa6, 0x03, 0xee, 0xb4, 0x65, 0x92, 0x67, - 0x63, 0xf7, 0xee, 0x69, 0x12, 0x0e, 0x79, 0xe5, 0xdf, 0x8f, 0xc3, 0x4c, 0x9d, 0xed, 0x53, 0xbb, - 0x6b, 0x3b, 0x54, 0xad, 0xeb, 0x01, 0xcc, 0xec, 0x13, 0xe6, 0xb4, 0x7d, 0xaa, 0xb7, 0xd0, 0x6c, - 0xdd, 0xbb, 0xa1, 0xd5, 0x9b, 0x49, 0xe6, 0xf3, 0xa3, 0xd2, 0x62, 0x4a, 0x3d, 0xc5, 0xc5, 0x69, - 0x24, 0xf4, 0x08, 0x80, 0x46, 0x41, 0x34, 0x3b, 0xf9, 0xce, 0xc9, 0x3b, 0x99, 0x0e, 0xbc, 0x9e, - 0x9d, 0x62, 0x1a, 0x4e, 0x60, 0xa2, 0x1f, 0xca, 0xc1, 0xac, 0xa9, 0xb6, 0x34, 0x50, 0x7f, 0xdb, - 0x4c, 0xad, 0x56, 0x4e, 0x36, 0xb0, 0x6b, 0x54, 0x14, 0x7c, 0xd4, 0x42, 0x42, 0xaa, 0x1a, 0xe6, - 0xcc, 0xcf, 0xf2, 0x5f, 0xc7, 0x61, 0xf9, 0xa4, 0xe3, 0x56, 0xf6, 0x19, 0x39, 0x2c, 0xf2, 0xb6, - 0x08, 0x9b, 0xb0, 0xbe, 0xc5, 0xaa, 0x3e, 0xb3, 0x9b, 0xe2, 0xe0, 0x1e, 0x49, 0x74, 0x0b, 0x32, - 0x2d, 0x9f, 0x9a, 0xe0, 0x54, 0x4f, 0xf6, 0x3d, 0x15, 0xfd, 0xda, 0xa4, 0x4c, 0xa0, 0x6d, 0x9f, - 0x62, 0x09, 0x22, 0xb1, 0x5c, 0xd6, 0x30, 0x2d, 0xeb, 0x6c, 0x58, 0x5b, 0xac, 0x81, 0x25, 0x08, - 0xda, 0x82, 0x6c, 0x8b, 0x07, 0xc2, 0x4c, 0x05, 0x23, 0x83, 0xe5, 0x65, 0xd5, 0x6f, 0xf3, 0x40, - 0x60, 0x05, 0x53, 0xfe, 0x5b, 0x16, 0x4a, 0x27, 0xcc, 0x0d, 0x68, 0x13, 0x16, 0xf4, 0x25, 0x79, - 0x9b, 0xfa, 0x8c, 0x37, 0xd2, 0xb1, 0xbc, 0xa4, 0x2e, 0xb1, 0xfd, 0x6c, 0x3c, 0x48, 0x07, 0x7d, - 0x00, 0x73, 0xcc, 0x13, 0xd4, 0xef, 0x10, 0x27, 0x84, 0xd1, 0xcf, 0x02, 0x0b, 0xfa, 0x75, 0x2e, - 0xc5, 0xc2, 0xbd, 0xb2, 0x03, 0x36, 0x34, 0x73, 0xea, 0x0d, 0x75, 0x60, 0xd6, 0x25, 0x4f, 0x12, - 0xd7, 0x6d, 0x13, 0xc2, 0xe1, 0xff, 0x86, 0xb4, 0x05, 0x73, 0x2a, 0xfa, 0x0f, 0xd3, 0xca, 0xa6, - 0x27, 0xee, 0xf8, 0x3b, 0xc2, 0x67, 0x5e, 0x53, 0x5b, 0xdb, 0x4a, 0x61, 0xe1, 0x1e, 0x6c, 0xf4, - 0x10, 0xf2, 0x2e, 0x79, 0xb2, 0xd3, 0xf6, 0x9b, 0xe1, 0x2d, 0x69, 0x74, 0x3b, 0xea, 0xcd, 0x67, - 0xcb, 0xa0, 0xe0, 0x08, 0x2f, 0x4c, 0xcd, 0xc9, 0x57, 0x91, 0x9a, 0x61, 0x3a, 0xe5, 0x5f, 0x4d, - 0x3a, 0x7d, 0x66, 0xc1, 0x74, 0xb2, 0x8a, 0xfb, 0x7b, 0xa7, 0x35, 0x42, 0xef, 0xfc, 0x36, 0x8c, - 0x0b, 0x6e, 0x4a, 0xf0, 0x54, 0x27, 0x3d, 0x18, 0xd8, 0xf1, 0x5d, 0x8e, 0xc7, 0x05, 0xaf, 0xad, - 0x3c, 0x7d, 0xb6, 0x34, 0xf6, 0xf9, 0xb3, 0xa5, 0xb1, 0x2f, 0x9e, 0x2d, 0x8d, 0x7d, 0x7a, 0xbc, - 0x64, 0x3d, 0x3d, 0x5e, 0xb2, 0x3e, 0x3f, 0x5e, 0xb2, 0xbe, 0x38, 0x5e, 0xb2, 0xbe, 0x3c, 0x5e, - 0xb2, 0x7e, 0xf9, 0xdf, 0xa5, 0xb1, 0x87, 0xe3, 0x9d, 0xcb, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, - 0x19, 0x34, 0x0f, 0xd6, 0x4b, 0x20, 0x00, 0x00, -} - -func (m *CustomDeploymentStrategyParams) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *CustomDeploymentStrategyParams) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *CustomDeploymentStrategyParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Command) > 0 { - for iNdEx := len(m.Command) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Command[iNdEx]) - copy(dAtA[i:], m.Command[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Command[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - if len(m.Environment) > 0 { - for iNdEx := len(m.Environment) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Environment[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - i -= len(m.Image) - copy(dAtA[i:], m.Image) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Image))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *DeploymentCause) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentCause) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DeploymentCause) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.ImageTrigger != nil { - { - size, err := m.ImageTrigger.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *DeploymentCauseImageTrigger) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentCauseImageTrigger) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DeploymentCauseImageTrigger) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.From.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *DeploymentCondition) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentCondition) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DeploymentCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - i -= len(m.Message) - copy(dAtA[i:], m.Message) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i-- - dAtA[i] = 0x2a - i -= len(m.Reason) - copy(dAtA[i:], m.Reason) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) - i-- - dAtA[i] = 0x22 - { - size, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - i -= len(m.Status) - copy(dAtA[i:], m.Status) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) - i-- - dAtA[i] = 0x12 - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *DeploymentConfig) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentConfig) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DeploymentConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *DeploymentConfigList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentConfigList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DeploymentConfigList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *DeploymentConfigRollback) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentConfigRollback) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DeploymentConfigRollback) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - if len(m.UpdatedAnnotations) > 0 { - keysForUpdatedAnnotations := make([]string, 0, len(m.UpdatedAnnotations)) - for k := range m.UpdatedAnnotations { - keysForUpdatedAnnotations = append(keysForUpdatedAnnotations, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForUpdatedAnnotations) - for iNdEx := len(keysForUpdatedAnnotations) - 1; iNdEx >= 0; iNdEx-- { - v := m.UpdatedAnnotations[string(keysForUpdatedAnnotations[iNdEx])] - baseI := i - i -= len(v) - copy(dAtA[i:], v) - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i-- - dAtA[i] = 0x12 - i -= len(keysForUpdatedAnnotations[iNdEx]) - copy(dAtA[i:], keysForUpdatedAnnotations[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForUpdatedAnnotations[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0x12 - } - } - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *DeploymentConfigRollbackSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentConfigRollbackSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DeploymentConfigRollbackSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i-- - if m.IncludeStrategy { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x30 - i-- - if m.IncludeReplicationMeta { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x28 - i-- - if m.IncludeTemplate { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x20 - i-- - if m.IncludeTriggers { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x18 - i = encodeVarintGenerated(dAtA, i, uint64(m.Revision)) - i-- - dAtA[i] = 0x10 - { - size, err := m.From.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *DeploymentConfigSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentConfigSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DeploymentConfigSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) - i-- - dAtA[i] = 0x48 - if m.Template != nil { - { - size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x42 - } - if len(m.Selector) > 0 { - keysForSelector := make([]string, 0, len(m.Selector)) - for k := range m.Selector { - keysForSelector = append(keysForSelector, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForSelector) - for iNdEx := len(keysForSelector) - 1; iNdEx >= 0; iNdEx-- { - v := m.Selector[string(keysForSelector[iNdEx])] - baseI := i - i -= len(v) - copy(dAtA[i:], v) - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i-- - dAtA[i] = 0x12 - i -= len(keysForSelector[iNdEx]) - copy(dAtA[i:], keysForSelector[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForSelector[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0x3a - } - } - i-- - if m.Paused { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x30 - i-- - if m.Test { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x28 - if m.RevisionHistoryLimit != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit)) - i-- - dAtA[i] = 0x20 - } - i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) - i-- - dAtA[i] = 0x18 - if m.Triggers != nil { - { - size, err := m.Triggers.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - { - size, err := m.Strategy.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *DeploymentConfigStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentConfigStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DeploymentConfigStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas)) - i-- - dAtA[i] = 0x48 - if len(m.Conditions) > 0 { - for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x42 - } - } - if m.Details != nil { - { - size, err := m.Details.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x3a - } - i = encodeVarintGenerated(dAtA, i, uint64(m.UnavailableReplicas)) - i-- - dAtA[i] = 0x30 - i = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas)) - i-- - dAtA[i] = 0x28 - i = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas)) - i-- - dAtA[i] = 0x20 - i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) - i-- - dAtA[i] = 0x18 - i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) - i-- - dAtA[i] = 0x10 - i = encodeVarintGenerated(dAtA, i, uint64(m.LatestVersion)) - i-- - dAtA[i] = 0x8 - return len(dAtA) - i, nil -} - -func (m *DeploymentDetails) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentDetails) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DeploymentDetails) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Causes) > 0 { - for iNdEx := len(m.Causes) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Causes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - i -= len(m.Message) - copy(dAtA[i:], m.Message) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *DeploymentLog) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentLog) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DeploymentLog) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - -func (m *DeploymentLogOptions) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentLogOptions) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DeploymentLogOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Version != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.Version)) - i-- - dAtA[i] = 0x50 - } - i-- - if m.NoWait { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x48 - if m.LimitBytes != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.LimitBytes)) - i-- - dAtA[i] = 0x40 - } - if m.TailLines != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.TailLines)) - i-- - dAtA[i] = 0x38 - } - i-- - if m.Timestamps { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x30 - if m.SinceTime != nil { - { - size, err := m.SinceTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - } - if m.SinceSeconds != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.SinceSeconds)) - i-- - dAtA[i] = 0x20 - } - i-- - if m.Previous { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x18 - i-- - if m.Follow { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x10 - i -= len(m.Container) - copy(dAtA[i:], m.Container) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Container))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *DeploymentRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DeploymentRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.ExcludeTriggers) > 0 { - for iNdEx := len(m.ExcludeTriggers) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.ExcludeTriggers[iNdEx]) - copy(dAtA[i:], m.ExcludeTriggers[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ExcludeTriggers[iNdEx]))) - i-- - dAtA[i] = 0x22 - } - } - i-- - if m.Force { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x18 - i-- - if m.Latest { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x10 - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *DeploymentStrategy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentStrategy) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DeploymentStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.ActiveDeadlineSeconds != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.ActiveDeadlineSeconds)) - i-- - dAtA[i] = 0x40 - } - if len(m.Annotations) > 0 { - keysForAnnotations := make([]string, 0, len(m.Annotations)) - for k := range m.Annotations { - keysForAnnotations = append(keysForAnnotations, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) - for iNdEx := len(keysForAnnotations) - 1; iNdEx >= 0; iNdEx-- { - v := m.Annotations[string(keysForAnnotations[iNdEx])] - baseI := i - i -= len(v) - copy(dAtA[i:], v) - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i-- - dAtA[i] = 0x12 - i -= len(keysForAnnotations[iNdEx]) - copy(dAtA[i:], keysForAnnotations[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForAnnotations[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0x3a - } - } - if len(m.Labels) > 0 { - keysForLabels := make([]string, 0, len(m.Labels)) - for k := range m.Labels { - keysForLabels = append(keysForLabels, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForLabels) - for iNdEx := len(keysForLabels) - 1; iNdEx >= 0; iNdEx-- { - v := m.Labels[string(keysForLabels[iNdEx])] - baseI := i - i -= len(v) - copy(dAtA[i:], v) - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i-- - dAtA[i] = 0x12 - i -= len(keysForLabels[iNdEx]) - copy(dAtA[i:], keysForLabels[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForLabels[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0x32 - } - } - { - size, err := m.Resources.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - if m.RollingParams != nil { - { - size, err := m.RollingParams.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if m.RecreateParams != nil { - { - size, err := m.RecreateParams.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.CustomParams != nil { - { - size, err := m.CustomParams.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *DeploymentTriggerImageChangeParams) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentTriggerImageChangeParams) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DeploymentTriggerImageChangeParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.LastTriggeredImage) - copy(dAtA[i:], m.LastTriggeredImage) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.LastTriggeredImage))) - i-- - dAtA[i] = 0x22 - { - size, err := m.From.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - if len(m.ContainerNames) > 0 { - for iNdEx := len(m.ContainerNames) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.ContainerNames[iNdEx]) - copy(dAtA[i:], m.ContainerNames[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ContainerNames[iNdEx]))) - i-- - dAtA[i] = 0x12 - } - } - i-- - if m.Automatic { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x8 - return len(dAtA) - i, nil -} - -func (m DeploymentTriggerPolicies) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m DeploymentTriggerPolicies) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m DeploymentTriggerPolicies) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m) > 0 { - for iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *DeploymentTriggerPolicy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentTriggerPolicy) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DeploymentTriggerPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.ImageChangeParams != nil { - { - size, err := m.ImageChangeParams.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ExecNewPodHook) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ExecNewPodHook) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ExecNewPodHook) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Volumes) > 0 { - for iNdEx := len(m.Volumes) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Volumes[iNdEx]) - copy(dAtA[i:], m.Volumes[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Volumes[iNdEx]))) - i-- - dAtA[i] = 0x22 - } - } - i -= len(m.ContainerName) - copy(dAtA[i:], m.ContainerName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ContainerName))) - i-- - dAtA[i] = 0x1a - if len(m.Env) > 0 { - for iNdEx := len(m.Env) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Env[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - if len(m.Command) > 0 { - for iNdEx := len(m.Command) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Command[iNdEx]) - copy(dAtA[i:], m.Command[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Command[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *LifecycleHook) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *LifecycleHook) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *LifecycleHook) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.TagImages) > 0 { - for iNdEx := len(m.TagImages) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.TagImages[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - if m.ExecNewPod != nil { - { - size, err := m.ExecNewPod.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - i -= len(m.FailurePolicy) - copy(dAtA[i:], m.FailurePolicy) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.FailurePolicy))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RecreateDeploymentStrategyParams) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RecreateDeploymentStrategyParams) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RecreateDeploymentStrategyParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Post != nil { - { - size, err := m.Post.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if m.Mid != nil { - { - size, err := m.Mid.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.Pre != nil { - { - size, err := m.Pre.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.TimeoutSeconds != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.TimeoutSeconds)) - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *RollingDeploymentStrategyParams) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RollingDeploymentStrategyParams) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RollingDeploymentStrategyParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Post != nil { - { - size, err := m.Post.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x42 - } - if m.Pre != nil { - { - size, err := m.Pre.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x3a - } - if m.MaxSurge != nil { - { - size, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - } - if m.MaxUnavailable != nil { - { - size, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if m.TimeoutSeconds != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.TimeoutSeconds)) - i-- - dAtA[i] = 0x18 - } - if m.IntervalSeconds != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.IntervalSeconds)) - i-- - dAtA[i] = 0x10 - } - if m.UpdatePeriodSeconds != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.UpdatePeriodSeconds)) - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *TagImageHook) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *TagImageHook) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TagImageHook) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.To.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - i -= len(m.ContainerName) - copy(dAtA[i:], m.ContainerName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ContainerName))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *CustomDeploymentStrategyParams) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Image) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Environment) > 0 { - for _, e := range m.Environment { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.Command) > 0 { - for _, s := range m.Command { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *DeploymentCause) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - if m.ImageTrigger != nil { - l = m.ImageTrigger.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *DeploymentCauseImageTrigger) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.From.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *DeploymentCondition) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Status) - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastTransitionTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Reason) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastUpdateTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *DeploymentConfig) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *DeploymentConfigList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *DeploymentConfigRollback) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.UpdatedAnnotations) > 0 { - for k, v := range m.UpdatedAnnotations { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *DeploymentConfigRollbackSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.From.Size() - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.Revision)) - n += 2 - n += 2 - n += 2 - n += 2 - return n -} - -func (m *DeploymentConfigSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Strategy.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.Triggers != nil { - l = m.Triggers.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - n += 1 + sovGenerated(uint64(m.Replicas)) - if m.RevisionHistoryLimit != nil { - n += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit)) - } - n += 2 - n += 2 - if len(m.Selector) > 0 { - for k, v := range m.Selector { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - if m.Template != nil { - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - n += 1 + sovGenerated(uint64(m.MinReadySeconds)) - return n -} - -func (m *DeploymentConfigStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - n += 1 + sovGenerated(uint64(m.LatestVersion)) - n += 1 + sovGenerated(uint64(m.ObservedGeneration)) - n += 1 + sovGenerated(uint64(m.Replicas)) - n += 1 + sovGenerated(uint64(m.UpdatedReplicas)) - n += 1 + sovGenerated(uint64(m.AvailableReplicas)) - n += 1 + sovGenerated(uint64(m.UnavailableReplicas)) - if m.Details != nil { - l = m.Details.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - n += 1 + sovGenerated(uint64(m.ReadyReplicas)) - return n -} - -func (m *DeploymentDetails) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Causes) > 0 { - for _, e := range m.Causes { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *DeploymentLog) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - -func (m *DeploymentLogOptions) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Container) - n += 1 + l + sovGenerated(uint64(l)) - n += 2 - n += 2 - if m.SinceSeconds != nil { - n += 1 + sovGenerated(uint64(*m.SinceSeconds)) - } - if m.SinceTime != nil { - l = m.SinceTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - n += 2 - if m.TailLines != nil { - n += 1 + sovGenerated(uint64(*m.TailLines)) - } - if m.LimitBytes != nil { - n += 1 + sovGenerated(uint64(*m.LimitBytes)) - } - n += 2 - if m.Version != nil { - n += 1 + sovGenerated(uint64(*m.Version)) - } - return n -} - -func (m *DeploymentRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - n += 2 - n += 2 - if len(m.ExcludeTriggers) > 0 { - for _, s := range m.ExcludeTriggers { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *DeploymentStrategy) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - if m.CustomParams != nil { - l = m.CustomParams.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.RecreateParams != nil { - l = m.RecreateParams.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.RollingParams != nil { - l = m.RollingParams.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - l = m.Resources.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Labels) > 0 { - for k, v := range m.Labels { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - if len(m.Annotations) > 0 { - for k, v := range m.Annotations { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - if m.ActiveDeadlineSeconds != nil { - n += 1 + sovGenerated(uint64(*m.ActiveDeadlineSeconds)) - } - return n -} - -func (m *DeploymentTriggerImageChangeParams) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - n += 2 - if len(m.ContainerNames) > 0 { - for _, s := range m.ContainerNames { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = m.From.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.LastTriggeredImage) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m DeploymentTriggerPolicies) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m) > 0 { - for _, e := range m { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *DeploymentTriggerPolicy) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - if m.ImageChangeParams != nil { - l = m.ImageChangeParams.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *ExecNewPodHook) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Command) > 0 { - for _, s := range m.Command { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.Env) > 0 { - for _, e := range m.Env { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.ContainerName) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Volumes) > 0 { - for _, s := range m.Volumes { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *LifecycleHook) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.FailurePolicy) - n += 1 + l + sovGenerated(uint64(l)) - if m.ExecNewPod != nil { - l = m.ExecNewPod.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.TagImages) > 0 { - for _, e := range m.TagImages { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *RecreateDeploymentStrategyParams) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.TimeoutSeconds != nil { - n += 1 + sovGenerated(uint64(*m.TimeoutSeconds)) - } - if m.Pre != nil { - l = m.Pre.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.Mid != nil { - l = m.Mid.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.Post != nil { - l = m.Post.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *RollingDeploymentStrategyParams) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.UpdatePeriodSeconds != nil { - n += 1 + sovGenerated(uint64(*m.UpdatePeriodSeconds)) - } - if m.IntervalSeconds != nil { - n += 1 + sovGenerated(uint64(*m.IntervalSeconds)) - } - if m.TimeoutSeconds != nil { - n += 1 + sovGenerated(uint64(*m.TimeoutSeconds)) - } - if m.MaxUnavailable != nil { - l = m.MaxUnavailable.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.MaxSurge != nil { - l = m.MaxSurge.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.Pre != nil { - l = m.Pre.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.Post != nil { - l = m.Post.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *TagImageHook) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.ContainerName) - n += 1 + l + sovGenerated(uint64(l)) - l = m.To.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *CustomDeploymentStrategyParams) String() string { - if this == nil { - return "nil" - } - repeatedStringForEnvironment := "[]EnvVar{" - for _, f := range this.Environment { - repeatedStringForEnvironment += fmt.Sprintf("%v", f) + "," - } - repeatedStringForEnvironment += "}" - s := strings.Join([]string{`&CustomDeploymentStrategyParams{`, - `Image:` + fmt.Sprintf("%v", this.Image) + `,`, - `Environment:` + repeatedStringForEnvironment + `,`, - `Command:` + fmt.Sprintf("%v", this.Command) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentCause) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeploymentCause{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `ImageTrigger:` + strings.Replace(this.ImageTrigger.String(), "DeploymentCauseImageTrigger", "DeploymentCauseImageTrigger", 1) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentCauseImageTrigger) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeploymentCauseImageTrigger{`, - `From:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.From), "ObjectReference", "v1.ObjectReference", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentCondition) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeploymentCondition{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Status:` + fmt.Sprintf("%v", this.Status) + `,`, - `LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastTransitionTime), "Time", "v11.Time", 1), `&`, ``, 1) + `,`, - `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastUpdateTime), "Time", "v11.Time", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentConfig) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeploymentConfig{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "DeploymentConfigSpec", "DeploymentConfigSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "DeploymentConfigStatus", "DeploymentConfigStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentConfigList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]DeploymentConfig{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "DeploymentConfig", "DeploymentConfig", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&DeploymentConfigList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentConfigRollback) String() string { - if this == nil { - return "nil" - } - keysForUpdatedAnnotations := make([]string, 0, len(this.UpdatedAnnotations)) - for k := range this.UpdatedAnnotations { - keysForUpdatedAnnotations = append(keysForUpdatedAnnotations, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForUpdatedAnnotations) - mapStringForUpdatedAnnotations := "map[string]string{" - for _, k := range keysForUpdatedAnnotations { - mapStringForUpdatedAnnotations += fmt.Sprintf("%v: %v,", k, this.UpdatedAnnotations[k]) - } - mapStringForUpdatedAnnotations += "}" - s := strings.Join([]string{`&DeploymentConfigRollback{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `UpdatedAnnotations:` + mapStringForUpdatedAnnotations + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "DeploymentConfigRollbackSpec", "DeploymentConfigRollbackSpec", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentConfigRollbackSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeploymentConfigRollbackSpec{`, - `From:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.From), "ObjectReference", "v1.ObjectReference", 1), `&`, ``, 1) + `,`, - `Revision:` + fmt.Sprintf("%v", this.Revision) + `,`, - `IncludeTriggers:` + fmt.Sprintf("%v", this.IncludeTriggers) + `,`, - `IncludeTemplate:` + fmt.Sprintf("%v", this.IncludeTemplate) + `,`, - `IncludeReplicationMeta:` + fmt.Sprintf("%v", this.IncludeReplicationMeta) + `,`, - `IncludeStrategy:` + fmt.Sprintf("%v", this.IncludeStrategy) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentConfigSpec) String() string { - if this == nil { - return "nil" - } - keysForSelector := make([]string, 0, len(this.Selector)) - for k := range this.Selector { - keysForSelector = append(keysForSelector, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForSelector) - mapStringForSelector := "map[string]string{" - for _, k := range keysForSelector { - mapStringForSelector += fmt.Sprintf("%v: %v,", k, this.Selector[k]) - } - mapStringForSelector += "}" - s := strings.Join([]string{`&DeploymentConfigSpec{`, - `Strategy:` + strings.Replace(strings.Replace(this.Strategy.String(), "DeploymentStrategy", "DeploymentStrategy", 1), `&`, ``, 1) + `,`, - `Triggers:` + strings.Replace(fmt.Sprintf("%v", this.Triggers), "DeploymentTriggerPolicies", "DeploymentTriggerPolicies", 1) + `,`, - `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, - `RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`, - `Test:` + fmt.Sprintf("%v", this.Test) + `,`, - `Paused:` + fmt.Sprintf("%v", this.Paused) + `,`, - `Selector:` + mapStringForSelector + `,`, - `Template:` + strings.Replace(fmt.Sprintf("%v", this.Template), "PodTemplateSpec", "v1.PodTemplateSpec", 1) + `,`, - `MinReadySeconds:` + fmt.Sprintf("%v", this.MinReadySeconds) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentConfigStatus) String() string { - if this == nil { - return "nil" - } - repeatedStringForConditions := "[]DeploymentCondition{" - for _, f := range this.Conditions { - repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "DeploymentCondition", "DeploymentCondition", 1), `&`, ``, 1) + "," - } - repeatedStringForConditions += "}" - s := strings.Join([]string{`&DeploymentConfigStatus{`, - `LatestVersion:` + fmt.Sprintf("%v", this.LatestVersion) + `,`, - `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, - `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, - `UpdatedReplicas:` + fmt.Sprintf("%v", this.UpdatedReplicas) + `,`, - `AvailableReplicas:` + fmt.Sprintf("%v", this.AvailableReplicas) + `,`, - `UnavailableReplicas:` + fmt.Sprintf("%v", this.UnavailableReplicas) + `,`, - `Details:` + strings.Replace(this.Details.String(), "DeploymentDetails", "DeploymentDetails", 1) + `,`, - `Conditions:` + repeatedStringForConditions + `,`, - `ReadyReplicas:` + fmt.Sprintf("%v", this.ReadyReplicas) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentDetails) String() string { - if this == nil { - return "nil" - } - repeatedStringForCauses := "[]DeploymentCause{" - for _, f := range this.Causes { - repeatedStringForCauses += strings.Replace(strings.Replace(f.String(), "DeploymentCause", "DeploymentCause", 1), `&`, ``, 1) + "," - } - repeatedStringForCauses += "}" - s := strings.Join([]string{`&DeploymentDetails{`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `Causes:` + repeatedStringForCauses + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentLog) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeploymentLog{`, - `}`, - }, "") - return s -} -func (this *DeploymentLogOptions) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeploymentLogOptions{`, - `Container:` + fmt.Sprintf("%v", this.Container) + `,`, - `Follow:` + fmt.Sprintf("%v", this.Follow) + `,`, - `Previous:` + fmt.Sprintf("%v", this.Previous) + `,`, - `SinceSeconds:` + valueToStringGenerated(this.SinceSeconds) + `,`, - `SinceTime:` + strings.Replace(fmt.Sprintf("%v", this.SinceTime), "Time", "v11.Time", 1) + `,`, - `Timestamps:` + fmt.Sprintf("%v", this.Timestamps) + `,`, - `TailLines:` + valueToStringGenerated(this.TailLines) + `,`, - `LimitBytes:` + valueToStringGenerated(this.LimitBytes) + `,`, - `NoWait:` + fmt.Sprintf("%v", this.NoWait) + `,`, - `Version:` + valueToStringGenerated(this.Version) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentRequest) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeploymentRequest{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `Latest:` + fmt.Sprintf("%v", this.Latest) + `,`, - `Force:` + fmt.Sprintf("%v", this.Force) + `,`, - `ExcludeTriggers:` + fmt.Sprintf("%v", this.ExcludeTriggers) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentStrategy) String() string { - if this == nil { - return "nil" - } - keysForLabels := make([]string, 0, len(this.Labels)) - for k := range this.Labels { - keysForLabels = append(keysForLabels, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForLabels) - mapStringForLabels := "map[string]string{" - for _, k := range keysForLabels { - mapStringForLabels += fmt.Sprintf("%v: %v,", k, this.Labels[k]) - } - mapStringForLabels += "}" - keysForAnnotations := make([]string, 0, len(this.Annotations)) - for k := range this.Annotations { - keysForAnnotations = append(keysForAnnotations, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) - mapStringForAnnotations := "map[string]string{" - for _, k := range keysForAnnotations { - mapStringForAnnotations += fmt.Sprintf("%v: %v,", k, this.Annotations[k]) - } - mapStringForAnnotations += "}" - s := strings.Join([]string{`&DeploymentStrategy{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `CustomParams:` + strings.Replace(this.CustomParams.String(), "CustomDeploymentStrategyParams", "CustomDeploymentStrategyParams", 1) + `,`, - `RecreateParams:` + strings.Replace(this.RecreateParams.String(), "RecreateDeploymentStrategyParams", "RecreateDeploymentStrategyParams", 1) + `,`, - `RollingParams:` + strings.Replace(this.RollingParams.String(), "RollingDeploymentStrategyParams", "RollingDeploymentStrategyParams", 1) + `,`, - `Resources:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Resources), "ResourceRequirements", "v1.ResourceRequirements", 1), `&`, ``, 1) + `,`, - `Labels:` + mapStringForLabels + `,`, - `Annotations:` + mapStringForAnnotations + `,`, - `ActiveDeadlineSeconds:` + valueToStringGenerated(this.ActiveDeadlineSeconds) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentTriggerImageChangeParams) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeploymentTriggerImageChangeParams{`, - `Automatic:` + fmt.Sprintf("%v", this.Automatic) + `,`, - `ContainerNames:` + fmt.Sprintf("%v", this.ContainerNames) + `,`, - `From:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.From), "ObjectReference", "v1.ObjectReference", 1), `&`, ``, 1) + `,`, - `LastTriggeredImage:` + fmt.Sprintf("%v", this.LastTriggeredImage) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentTriggerPolicy) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeploymentTriggerPolicy{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `ImageChangeParams:` + strings.Replace(this.ImageChangeParams.String(), "DeploymentTriggerImageChangeParams", "DeploymentTriggerImageChangeParams", 1) + `,`, - `}`, - }, "") - return s -} -func (this *ExecNewPodHook) String() string { - if this == nil { - return "nil" - } - repeatedStringForEnv := "[]EnvVar{" - for _, f := range this.Env { - repeatedStringForEnv += fmt.Sprintf("%v", f) + "," - } - repeatedStringForEnv += "}" - s := strings.Join([]string{`&ExecNewPodHook{`, - `Command:` + fmt.Sprintf("%v", this.Command) + `,`, - `Env:` + repeatedStringForEnv + `,`, - `ContainerName:` + fmt.Sprintf("%v", this.ContainerName) + `,`, - `Volumes:` + fmt.Sprintf("%v", this.Volumes) + `,`, - `}`, - }, "") - return s -} -func (this *LifecycleHook) String() string { - if this == nil { - return "nil" - } - repeatedStringForTagImages := "[]TagImageHook{" - for _, f := range this.TagImages { - repeatedStringForTagImages += strings.Replace(strings.Replace(f.String(), "TagImageHook", "TagImageHook", 1), `&`, ``, 1) + "," - } - repeatedStringForTagImages += "}" - s := strings.Join([]string{`&LifecycleHook{`, - `FailurePolicy:` + fmt.Sprintf("%v", this.FailurePolicy) + `,`, - `ExecNewPod:` + strings.Replace(this.ExecNewPod.String(), "ExecNewPodHook", "ExecNewPodHook", 1) + `,`, - `TagImages:` + repeatedStringForTagImages + `,`, - `}`, - }, "") - return s -} -func (this *RecreateDeploymentStrategyParams) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&RecreateDeploymentStrategyParams{`, - `TimeoutSeconds:` + valueToStringGenerated(this.TimeoutSeconds) + `,`, - `Pre:` + strings.Replace(this.Pre.String(), "LifecycleHook", "LifecycleHook", 1) + `,`, - `Mid:` + strings.Replace(this.Mid.String(), "LifecycleHook", "LifecycleHook", 1) + `,`, - `Post:` + strings.Replace(this.Post.String(), "LifecycleHook", "LifecycleHook", 1) + `,`, - `}`, - }, "") - return s -} -func (this *RollingDeploymentStrategyParams) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&RollingDeploymentStrategyParams{`, - `UpdatePeriodSeconds:` + valueToStringGenerated(this.UpdatePeriodSeconds) + `,`, - `IntervalSeconds:` + valueToStringGenerated(this.IntervalSeconds) + `,`, - `TimeoutSeconds:` + valueToStringGenerated(this.TimeoutSeconds) + `,`, - `MaxUnavailable:` + strings.Replace(fmt.Sprintf("%v", this.MaxUnavailable), "IntOrString", "intstr.IntOrString", 1) + `,`, - `MaxSurge:` + strings.Replace(fmt.Sprintf("%v", this.MaxSurge), "IntOrString", "intstr.IntOrString", 1) + `,`, - `Pre:` + strings.Replace(this.Pre.String(), "LifecycleHook", "LifecycleHook", 1) + `,`, - `Post:` + strings.Replace(this.Post.String(), "LifecycleHook", "LifecycleHook", 1) + `,`, - `}`, - }, "") - return s -} -func (this *TagImageHook) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TagImageHook{`, - `ContainerName:` + fmt.Sprintf("%v", this.ContainerName) + `,`, - `To:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.To), "ObjectReference", "v1.ObjectReference", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *CustomDeploymentStrategyParams) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CustomDeploymentStrategyParams: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomDeploymentStrategyParams: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Image", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Image = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Environment", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Environment = append(m.Environment, v1.EnvVar{}) - if err := m.Environment[len(m.Environment)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Command", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Command = append(m.Command, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentCause) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentCause: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentCause: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = DeploymentTriggerType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ImageTrigger", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.ImageTrigger == nil { - m.ImageTrigger = &DeploymentCauseImageTrigger{} - } - if err := m.ImageTrigger.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentCauseImageTrigger) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentCauseImageTrigger: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentCauseImageTrigger: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field From", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.From.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentCondition) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentCondition: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentCondition: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = DeploymentConditionType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Reason = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentConfig) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentConfig: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentConfig: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentConfigList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentConfigList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentConfigList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, DeploymentConfig{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentConfigRollback) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentConfigRollback: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentConfigRollback: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdatedAnnotations", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.UpdatedAnnotations == nil { - m.UpdatedAnnotations = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.UpdatedAnnotations[mapkey] = mapvalue - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentConfigRollbackSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentConfigRollbackSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentConfigRollbackSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field From", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.From.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType) - } - m.Revision = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Revision |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IncludeTriggers", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.IncludeTriggers = bool(v != 0) - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IncludeTemplate", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.IncludeTemplate = bool(v != 0) - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IncludeReplicationMeta", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.IncludeReplicationMeta = bool(v != 0) - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IncludeStrategy", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.IncludeStrategy = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentConfigSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentConfigSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentConfigSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Strategy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Strategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Triggers", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Triggers == nil { - m.Triggers = DeploymentTriggerPolicies{} - } - if err := m.Triggers.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) - } - m.Replicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Replicas |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RevisionHistoryLimit", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.RevisionHistoryLimit = &v - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Test", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Test = bool(v != 0) - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Paused", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Paused = bool(v != 0) - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Selector == nil { - m.Selector = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.Selector[mapkey] = mapvalue - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Template == nil { - m.Template = &v1.PodTemplateSpec{} - } - if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 9: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MinReadySeconds", wireType) - } - m.MinReadySeconds = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.MinReadySeconds |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentConfigStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentConfigStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentConfigStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field LatestVersion", wireType) - } - m.LatestVersion = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.LatestVersion |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) - } - m.ObservedGeneration = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ObservedGeneration |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) - } - m.Replicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Replicas |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdatedReplicas", wireType) - } - m.UpdatedReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.UpdatedReplicas |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AvailableReplicas", wireType) - } - m.AvailableReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.AvailableReplicas |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field UnavailableReplicas", wireType) - } - m.UnavailableReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.UnavailableReplicas |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Details", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Details == nil { - m.Details = &DeploymentDetails{} - } - if err := m.Details.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Conditions = append(m.Conditions, DeploymentCondition{}) - if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 9: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ReadyReplicas", wireType) - } - m.ReadyReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ReadyReplicas |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentDetails) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentDetails: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentDetails: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Causes", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Causes = append(m.Causes, DeploymentCause{}) - if err := m.Causes[len(m.Causes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentLog) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentLog: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentLog: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentLogOptions) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentLogOptions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentLogOptions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Container", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Container = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Follow", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Follow = bool(v != 0) - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Previous", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Previous = bool(v != 0) - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field SinceSeconds", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.SinceSeconds = &v - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SinceTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.SinceTime == nil { - m.SinceTime = &v11.Time{} - } - if err := m.SinceTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamps", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Timestamps = bool(v != 0) - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TailLines", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.TailLines = &v - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field LimitBytes", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.LimitBytes = &v - case 9: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NoWait", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.NoWait = bool(v != 0) - case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Version = &v - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Latest", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Latest = bool(v != 0) - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Force", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Force = bool(v != 0) - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ExcludeTriggers", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ExcludeTriggers = append(m.ExcludeTriggers, DeploymentTriggerType(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentStrategy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentStrategy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentStrategy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = DeploymentStrategyType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CustomParams", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.CustomParams == nil { - m.CustomParams = &CustomDeploymentStrategyParams{} - } - if err := m.CustomParams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RecreateParams", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.RecreateParams == nil { - m.RecreateParams = &RecreateDeploymentStrategyParams{} - } - if err := m.RecreateParams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RollingParams", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.RollingParams == nil { - m.RollingParams = &RollingDeploymentStrategyParams{} - } - if err := m.RollingParams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Labels", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Labels == nil { - m.Labels = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.Labels[mapkey] = mapvalue - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Annotations == nil { - m.Annotations = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.Annotations[mapkey] = mapvalue - iNdEx = postIndex - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ActiveDeadlineSeconds", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.ActiveDeadlineSeconds = &v - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentTriggerImageChangeParams) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentTriggerImageChangeParams: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentTriggerImageChangeParams: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Automatic", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Automatic = bool(v != 0) - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ContainerNames", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ContainerNames = append(m.ContainerNames, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field From", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.From.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastTriggeredImage", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.LastTriggeredImage = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentTriggerPolicies) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentTriggerPolicies: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentTriggerPolicies: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - *m = append(*m, DeploymentTriggerPolicy{}) - if err := (*m)[len(*m)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentTriggerPolicy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentTriggerPolicy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentTriggerPolicy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = DeploymentTriggerType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ImageChangeParams", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.ImageChangeParams == nil { - m.ImageChangeParams = &DeploymentTriggerImageChangeParams{} - } - if err := m.ImageChangeParams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ExecNewPodHook) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ExecNewPodHook: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ExecNewPodHook: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Command", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Command = append(m.Command, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Env", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Env = append(m.Env, v1.EnvVar{}) - if err := m.Env[len(m.Env)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ContainerName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ContainerName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Volumes", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Volumes = append(m.Volumes, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *LifecycleHook) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: LifecycleHook: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: LifecycleHook: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FailurePolicy", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FailurePolicy = LifecycleHookFailurePolicy(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ExecNewPod", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.ExecNewPod == nil { - m.ExecNewPod = &ExecNewPodHook{} - } - if err := m.ExecNewPod.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TagImages", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.TagImages = append(m.TagImages, TagImageHook{}) - if err := m.TagImages[len(m.TagImages)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RecreateDeploymentStrategyParams) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RecreateDeploymentStrategyParams: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RecreateDeploymentStrategyParams: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TimeoutSeconds", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.TimeoutSeconds = &v - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Pre", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Pre == nil { - m.Pre = &LifecycleHook{} - } - if err := m.Pre.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Mid", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Mid == nil { - m.Mid = &LifecycleHook{} - } - if err := m.Mid.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Post", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Post == nil { - m.Post = &LifecycleHook{} - } - if err := m.Post.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RollingDeploymentStrategyParams) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RollingDeploymentStrategyParams: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RollingDeploymentStrategyParams: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdatePeriodSeconds", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.UpdatePeriodSeconds = &v - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IntervalSeconds", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.IntervalSeconds = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TimeoutSeconds", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.TimeoutSeconds = &v - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MaxUnavailable", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.MaxUnavailable == nil { - m.MaxUnavailable = &intstr.IntOrString{} - } - if err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MaxSurge", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.MaxSurge == nil { - m.MaxSurge = &intstr.IntOrString{} - } - if err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Pre", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Pre == nil { - m.Pre = &LifecycleHook{} - } - if err := m.Pre.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Post", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Post == nil { - m.Post = &LifecycleHook{} - } - if err := m.Post.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TagImageHook) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TagImageHook: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TagImageHook: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ContainerName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ContainerName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field To", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.To.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/vendor/github.com/openshift/api/apps/v1/generated.proto b/vendor/github.com/openshift/api/apps/v1/generated.proto deleted file mode 100644 index d15f20c0d4f0c..0000000000000 --- a/vendor/github.com/openshift/api/apps/v1/generated.proto +++ /dev/null @@ -1,466 +0,0 @@ - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = 'proto2'; - -package github.com.openshift.api.apps.v1; - -import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v1"; - -// CustomDeploymentStrategyParams are the input to the Custom deployment strategy. -message CustomDeploymentStrategyParams { - // Image specifies a container image which can carry out a deployment. - optional string image = 1; - - // Environment holds the environment which will be given to the container for Image. - repeated k8s.io.api.core.v1.EnvVar environment = 2; - - // Command is optional and overrides CMD in the container Image. - repeated string command = 3; -} - -// DeploymentCause captures information about a particular cause of a deployment. -message DeploymentCause { - // Type of the trigger that resulted in the creation of a new deployment - optional string type = 1; - - // ImageTrigger contains the image trigger details, if this trigger was fired based on an image change - optional DeploymentCauseImageTrigger imageTrigger = 2; -} - -// DeploymentCauseImageTrigger represents details about the cause of a deployment originating -// from an image change trigger -message DeploymentCauseImageTrigger { - // From is a reference to the changed object which triggered a deployment. The field may have - // the kinds DockerImage, ImageStreamTag, or ImageStreamImage. - optional k8s.io.api.core.v1.ObjectReference from = 1; -} - -// DeploymentCondition describes the state of a deployment config at a certain point. -message DeploymentCondition { - // Type of deployment condition. - optional string type = 1; - - // Status of the condition, one of True, False, Unknown. - optional string status = 2; - - // The last time this condition was updated. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 6; - - // The last time the condition transitioned from one status to another. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; - - // The reason for the condition's last transition. - optional string reason = 4; - - // A human readable message indicating details about the transition. - optional string message = 5; -} - -// Deployment Configs define the template for a pod and manages deploying new images or configuration changes. -// A single deployment configuration is usually analogous to a single micro-service. Can support many different -// deployment patterns, including full restart, customizable rolling updates, and fully custom behaviors, as -// well as pre- and post- deployment hooks. Each individual deployment is represented as a replication controller. -// -// A deployment is "triggered" when its configuration is changed or a tag in an Image Stream is changed. -// Triggers can be disabled to allow manual control over a deployment. The "strategy" determines how the deployment -// is carried out and may be changed at any time. The `latestVersion` field is updated when a new deployment -// is triggered by any means. -message DeploymentConfig { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Spec represents a desired deployment state and how to deploy to it. - optional DeploymentConfigSpec spec = 2; - - // Status represents the current deployment state. - // +optional - optional DeploymentConfigStatus status = 3; -} - -// DeploymentConfigList is a collection of deployment configs. -message DeploymentConfigList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is a list of deployment configs - repeated DeploymentConfig items = 2; -} - -// DeploymentConfigRollback provides the input to rollback generation. -message DeploymentConfigRollback { - // Name of the deployment config that will be rolled back. - optional string name = 1; - - // UpdatedAnnotations is a set of new annotations that will be added in the deployment config. - map updatedAnnotations = 2; - - // Spec defines the options to rollback generation. - optional DeploymentConfigRollbackSpec spec = 3; -} - -// DeploymentConfigRollbackSpec represents the options for rollback generation. -message DeploymentConfigRollbackSpec { - // From points to a ReplicationController which is a deployment. - optional k8s.io.api.core.v1.ObjectReference from = 1; - - // Revision to rollback to. If set to 0, rollback to the last revision. - optional int64 revision = 2; - - // IncludeTriggers specifies whether to include config Triggers. - optional bool includeTriggers = 3; - - // IncludeTemplate specifies whether to include the PodTemplateSpec. - optional bool includeTemplate = 4; - - // IncludeReplicationMeta specifies whether to include the replica count and selector. - optional bool includeReplicationMeta = 5; - - // IncludeStrategy specifies whether to include the deployment Strategy. - optional bool includeStrategy = 6; -} - -// DeploymentConfigSpec represents the desired state of the deployment. -message DeploymentConfigSpec { - // Strategy describes how a deployment is executed. - // +optional - optional DeploymentStrategy strategy = 1; - - // MinReadySeconds is the minimum number of seconds for which a newly created pod should - // be ready without any of its container crashing, for it to be considered available. - // Defaults to 0 (pod will be considered available as soon as it is ready) - optional int32 minReadySeconds = 9; - - // Triggers determine how updates to a DeploymentConfig result in new deployments. If no triggers - // are defined, a new deployment can only occur as a result of an explicit client update to the - // DeploymentConfig with a new LatestVersion. If null, defaults to having a config change trigger. - // +optional - optional DeploymentTriggerPolicies triggers = 2; - - // Replicas is the number of desired replicas. - // +optional - optional int32 replicas = 3; - - // RevisionHistoryLimit is the number of old ReplicationControllers to retain to allow for rollbacks. - // This field is a pointer to allow for differentiation between an explicit zero and not specified. - // Defaults to 10. (This only applies to DeploymentConfigs created via the new group API resource, not the legacy resource.) - optional int32 revisionHistoryLimit = 4; - - // Test ensures that this deployment config will have zero replicas except while a deployment is running. This allows the - // deployment config to be used as a continuous deployment test - triggering on images, running the deployment, and then succeeding - // or failing. Post strategy hooks and After actions can be used to integrate successful deployment with an action. - // +optional - optional bool test = 5; - - // Paused indicates that the deployment config is paused resulting in no new deployments on template - // changes or changes in the template caused by other triggers. - optional bool paused = 6; - - // Selector is a label query over pods that should match the Replicas count. - map selector = 7; - - // Template is the object that describes the pod that will be created if - // insufficient replicas are detected. - optional k8s.io.api.core.v1.PodTemplateSpec template = 8; -} - -// DeploymentConfigStatus represents the current deployment state. -message DeploymentConfigStatus { - // LatestVersion is used to determine whether the current deployment associated with a deployment - // config is out of sync. - optional int64 latestVersion = 1; - - // ObservedGeneration is the most recent generation observed by the deployment config controller. - optional int64 observedGeneration = 2; - - // Replicas is the total number of pods targeted by this deployment config. - optional int32 replicas = 3; - - // UpdatedReplicas is the total number of non-terminated pods targeted by this deployment config - // that have the desired template spec. - optional int32 updatedReplicas = 4; - - // AvailableReplicas is the total number of available pods targeted by this deployment config. - optional int32 availableReplicas = 5; - - // UnavailableReplicas is the total number of unavailable pods targeted by this deployment config. - optional int32 unavailableReplicas = 6; - - // Details are the reasons for the update to this deployment config. - // This could be based on a change made by the user or caused by an automatic trigger - optional DeploymentDetails details = 7; - - // Conditions represents the latest available observations of a deployment config's current state. - // +patchMergeKey=type - // +patchStrategy=merge - repeated DeploymentCondition conditions = 8; - - // Total number of ready pods targeted by this deployment. - optional int32 readyReplicas = 9; -} - -// DeploymentDetails captures information about the causes of a deployment. -message DeploymentDetails { - // Message is the user specified change message, if this deployment was triggered manually by the user - optional string message = 1; - - // Causes are extended data associated with all the causes for creating a new deployment - repeated DeploymentCause causes = 2; -} - -// DeploymentLog represents the logs for a deployment -message DeploymentLog { -} - -// DeploymentLogOptions is the REST options for a deployment log -message DeploymentLogOptions { - // The container for which to stream logs. Defaults to only container if there is one container in the pod. - optional string container = 1; - - // Follow if true indicates that the build log should be streamed until - // the build terminates. - optional bool follow = 2; - - // Return previous deployment logs. Defaults to false. - optional bool previous = 3; - - // A relative time in seconds before the current time from which to show logs. If this value - // precedes the time a pod was started, only logs since the pod start will be returned. - // If this value is in the future, no logs will be returned. - // Only one of sinceSeconds or sinceTime may be specified. - optional int64 sinceSeconds = 4; - - // An RFC3339 timestamp from which to show logs. If this value - // precedes the time a pod was started, only logs since the pod start will be returned. - // If this value is in the future, no logs will be returned. - // Only one of sinceSeconds or sinceTime may be specified. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5; - - // If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line - // of log output. Defaults to false. - optional bool timestamps = 6; - - // If set, the number of lines from the end of the logs to show. If not specified, - // logs are shown from the creation of the container or sinceSeconds or sinceTime - optional int64 tailLines = 7; - - // If set, the number of bytes to read from the server before terminating the - // log output. This may not display a complete final line of logging, and may return - // slightly more or slightly less than the specified limit. - optional int64 limitBytes = 8; - - // NoWait if true causes the call to return immediately even if the deployment - // is not available yet. Otherwise the server will wait until the deployment has started. - // TODO: Fix the tag to 'noWait' in v2 - optional bool nowait = 9; - - // Version of the deployment for which to view logs. - optional int64 version = 10; -} - -// DeploymentRequest is a request to a deployment config for a new deployment. -message DeploymentRequest { - // Name of the deployment config for requesting a new deployment. - optional string name = 1; - - // Latest will update the deployment config with the latest state from all triggers. - optional bool latest = 2; - - // Force will try to force a new deployment to run. If the deployment config is paused, - // then setting this to true will return an Invalid error. - optional bool force = 3; - - // ExcludeTriggers instructs the instantiator to avoid processing the specified triggers. - // This field overrides the triggers from latest and allows clients to control specific - // logic. This field is ignored if not specified. - repeated string excludeTriggers = 4; -} - -// DeploymentStrategy describes how to perform a deployment. -message DeploymentStrategy { - // Type is the name of a deployment strategy. - optional string type = 1; - - // CustomParams are the input to the Custom deployment strategy, and may also - // be specified for the Recreate and Rolling strategies to customize the execution - // process that runs the deployment. - optional CustomDeploymentStrategyParams customParams = 2; - - // RecreateParams are the input to the Recreate deployment strategy. - optional RecreateDeploymentStrategyParams recreateParams = 3; - - // RollingParams are the input to the Rolling deployment strategy. - optional RollingDeploymentStrategyParams rollingParams = 4; - - // Resources contains resource requirements to execute the deployment and any hooks. - optional k8s.io.api.core.v1.ResourceRequirements resources = 5; - - // Labels is a set of key, value pairs added to custom deployer and lifecycle pre/post hook pods. - map labels = 6; - - // Annotations is a set of key, value pairs added to custom deployer and lifecycle pre/post hook pods. - map annotations = 7; - - // ActiveDeadlineSeconds is the duration in seconds that the deployer pods for this deployment - // config may be active on a node before the system actively tries to terminate them. - optional int64 activeDeadlineSeconds = 8; -} - -// DeploymentTriggerImageChangeParams represents the parameters to the ImageChange trigger. -message DeploymentTriggerImageChangeParams { - // Automatic means that the detection of a new tag value should result in an image update - // inside the pod template. - optional bool automatic = 1; - - // ContainerNames is used to restrict tag updates to the specified set of container names in a pod. - // If multiple triggers point to the same containers, the resulting behavior is undefined. Future - // API versions will make this a validation error. If ContainerNames does not point to a valid container, - // the trigger will be ignored. Future API versions will make this a validation error. - repeated string containerNames = 2; - - // From is a reference to an image stream tag to watch for changes. From.Name is the only - // required subfield - if From.Namespace is blank, the namespace of the current deployment - // trigger will be used. - optional k8s.io.api.core.v1.ObjectReference from = 3; - - // LastTriggeredImage is the last image to be triggered. - optional string lastTriggeredImage = 4; -} - -// DeploymentTriggerPolicies is a list of policies where nil values and different from empty arrays. -// +protobuf.nullable=true -// +protobuf.options.(gogoproto.goproto_stringer)=false -message DeploymentTriggerPolicies { - // items, if empty, will result in an empty slice - - repeated DeploymentTriggerPolicy items = 1; -} - -// DeploymentTriggerPolicy describes a policy for a single trigger that results in a new deployment. -message DeploymentTriggerPolicy { - // Type of the trigger - optional string type = 1; - - // ImageChangeParams represents the parameters for the ImageChange trigger. - optional DeploymentTriggerImageChangeParams imageChangeParams = 2; -} - -// ExecNewPodHook is a hook implementation which runs a command in a new pod -// based on the specified container which is assumed to be part of the -// deployment template. -message ExecNewPodHook { - // Command is the action command and its arguments. - repeated string command = 1; - - // Env is a set of environment variables to supply to the hook pod's container. - repeated k8s.io.api.core.v1.EnvVar env = 2; - - // ContainerName is the name of a container in the deployment pod template - // whose container image will be used for the hook pod's container. - optional string containerName = 3; - - // Volumes is a list of named volumes from the pod template which should be - // copied to the hook pod. Volumes names not found in pod spec are ignored. - // An empty list means no volumes will be copied. - repeated string volumes = 4; -} - -// LifecycleHook defines a specific deployment lifecycle action. Only one type of action may be specified at any time. -message LifecycleHook { - // FailurePolicy specifies what action to take if the hook fails. - optional string failurePolicy = 1; - - // ExecNewPod specifies the options for a lifecycle hook backed by a pod. - optional ExecNewPodHook execNewPod = 2; - - // TagImages instructs the deployer to tag the current image referenced under a container onto an image stream tag. - repeated TagImageHook tagImages = 3; -} - -// RecreateDeploymentStrategyParams are the input to the Recreate deployment -// strategy. -message RecreateDeploymentStrategyParams { - // TimeoutSeconds is the time to wait for updates before giving up. If the - // value is nil, a default will be used. - optional int64 timeoutSeconds = 1; - - // Pre is a lifecycle hook which is executed before the strategy manipulates - // the deployment. All LifecycleHookFailurePolicy values are supported. - optional LifecycleHook pre = 2; - - // Mid is a lifecycle hook which is executed while the deployment is scaled down to zero before the first new - // pod is created. All LifecycleHookFailurePolicy values are supported. - optional LifecycleHook mid = 3; - - // Post is a lifecycle hook which is executed after the strategy has - // finished all deployment logic. All LifecycleHookFailurePolicy values are supported. - optional LifecycleHook post = 4; -} - -// RollingDeploymentStrategyParams are the input to the Rolling deployment -// strategy. -message RollingDeploymentStrategyParams { - // UpdatePeriodSeconds is the time to wait between individual pod updates. - // If the value is nil, a default will be used. - optional int64 updatePeriodSeconds = 1; - - // IntervalSeconds is the time to wait between polling deployment status - // after update. If the value is nil, a default will be used. - optional int64 intervalSeconds = 2; - - // TimeoutSeconds is the time to wait for updates before giving up. If the - // value is nil, a default will be used. - optional int64 timeoutSeconds = 3; - - // MaxUnavailable is the maximum number of pods that can be unavailable - // during the update. Value can be an absolute number (ex: 5) or a - // percentage of total pods at the start of update (ex: 10%). Absolute - // number is calculated from percentage by rounding down. - // - // This cannot be 0 if MaxSurge is 0. By default, 25% is used. - // - // Example: when this is set to 30%, the old RC can be scaled down by 30% - // immediately when the rolling update starts. Once new pods are ready, old - // RC can be scaled down further, followed by scaling up the new RC, - // ensuring that at least 70% of original number of pods are available at - // all times during the update. - optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 4; - - // MaxSurge is the maximum number of pods that can be scheduled above the - // original number of pods. Value can be an absolute number (ex: 5) or a - // percentage of total pods at the start of the update (ex: 10%). Absolute - // number is calculated from percentage by rounding up. - // - // This cannot be 0 if MaxUnavailable is 0. By default, 25% is used. - // - // Example: when this is set to 30%, the new RC can be scaled up by 30% - // immediately when the rolling update starts. Once old pods have been - // killed, new RC can be scaled up further, ensuring that total number of - // pods running at any time during the update is atmost 130% of original - // pods. - optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 5; - - // Pre is a lifecycle hook which is executed before the deployment process - // begins. All LifecycleHookFailurePolicy values are supported. - optional LifecycleHook pre = 7; - - // Post is a lifecycle hook which is executed after the strategy has - // finished all deployment logic. All LifecycleHookFailurePolicy values - // are supported. - optional LifecycleHook post = 8; -} - -// TagImageHook is a request to tag the image in a particular container onto an ImageStreamTag. -message TagImageHook { - // ContainerName is the name of a container in the deployment config whose image value will be used as the source of the tag. If there is only a single - // container this value will be defaulted to the name of that container. - optional string containerName = 1; - - // To is the target ImageStreamTag to set the container's image onto. - optional k8s.io.api.core.v1.ObjectReference to = 2; -} - diff --git a/vendor/github.com/openshift/api/apps/v1/legacy.go b/vendor/github.com/openshift/api/apps/v1/legacy.go deleted file mode 100644 index c8fa0ed999f39..0000000000000 --- a/vendor/github.com/openshift/api/apps/v1/legacy.go +++ /dev/null @@ -1,28 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - extensionsv1beta1 "k8s.io/api/extensions/v1beta1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - legacyGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} - legacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, corev1.AddToScheme, extensionsv1beta1.AddToScheme) - DeprecatedInstallWithoutGroup = legacySchemeBuilder.AddToScheme -) - -func addLegacyKnownTypes(scheme *runtime.Scheme) error { - types := []runtime.Object{ - &DeploymentConfig{}, - &DeploymentConfigList{}, - &DeploymentConfigRollback{}, - &DeploymentRequest{}, - &DeploymentLog{}, - &DeploymentLogOptions{}, - &extensionsv1beta1.Scale{}, - } - scheme.AddKnownTypes(legacyGroupVersion, types...) - return nil -} diff --git a/vendor/github.com/openshift/api/apps/v1/register.go b/vendor/github.com/openshift/api/apps/v1/register.go deleted file mode 100644 index 0c1e47e6d46ef..0000000000000 --- a/vendor/github.com/openshift/api/apps/v1/register.go +++ /dev/null @@ -1,45 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - extensionsv1beta1 "k8s.io/api/extensions/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - GroupName = "apps.openshift.io" - GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, corev1.AddToScheme, extensionsv1beta1.AddToScheme) - // Install is a function which adds this version to a scheme - Install = schemeBuilder.AddToScheme - - // SchemeGroupVersion generated code relies on this name - // Deprecated - SchemeGroupVersion = GroupVersion - // AddToScheme exists solely to keep the old generators creating valid code - // DEPRECATED - AddToScheme = schemeBuilder.AddToScheme -) - -// Resource generated code relies on this being here, but it logically belongs to the group -// DEPRECATED -func Resource(resource string) schema.GroupResource { - return schema.GroupResource{Group: GroupName, Resource: resource} -} - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &DeploymentConfig{}, - &DeploymentConfigList{}, - &DeploymentConfigRollback{}, - &DeploymentRequest{}, - &DeploymentLog{}, - &DeploymentLogOptions{}, - &extensionsv1beta1.Scale{}, - ) - metav1.AddToGroupVersion(scheme, GroupVersion) - return nil -} diff --git a/vendor/github.com/openshift/api/apps/v1/types.go b/vendor/github.com/openshift/api/apps/v1/types.go deleted file mode 100644 index ed147807d08d3..0000000000000 --- a/vendor/github.com/openshift/api/apps/v1/types.go +++ /dev/null @@ -1,493 +0,0 @@ -package v1 - -import ( - "fmt" - - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" -) - -// +genclient -// +genclient:method=Instantiate,verb=create,subresource=instantiate,input=DeploymentRequest -// +genclient:method=Rollback,verb=create,subresource=rollback,input=DeploymentConfigRollback -// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/extensions/v1beta1.Scale -// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/extensions/v1beta1.Scale,result=k8s.io/api/extensions/v1beta1.Scale -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Deployment Configs define the template for a pod and manages deploying new images or configuration changes. -// A single deployment configuration is usually analogous to a single micro-service. Can support many different -// deployment patterns, including full restart, customizable rolling updates, and fully custom behaviors, as -// well as pre- and post- deployment hooks. Each individual deployment is represented as a replication controller. -// -// A deployment is "triggered" when its configuration is changed or a tag in an Image Stream is changed. -// Triggers can be disabled to allow manual control over a deployment. The "strategy" determines how the deployment -// is carried out and may be changed at any time. The `latestVersion` field is updated when a new deployment -// is triggered by any means. -type DeploymentConfig struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Spec represents a desired deployment state and how to deploy to it. - Spec DeploymentConfigSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` - - // Status represents the current deployment state. - // +optional - Status DeploymentConfigStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` -} - -// DeploymentConfigSpec represents the desired state of the deployment. -type DeploymentConfigSpec struct { - // Strategy describes how a deployment is executed. - // +optional - Strategy DeploymentStrategy `json:"strategy" protobuf:"bytes,1,opt,name=strategy"` - - // MinReadySeconds is the minimum number of seconds for which a newly created pod should - // be ready without any of its container crashing, for it to be considered available. - // Defaults to 0 (pod will be considered available as soon as it is ready) - MinReadySeconds int32 `json:"minReadySeconds,omitempty" protobuf:"varint,9,opt,name=minReadySeconds"` - - // Triggers determine how updates to a DeploymentConfig result in new deployments. If no triggers - // are defined, a new deployment can only occur as a result of an explicit client update to the - // DeploymentConfig with a new LatestVersion. If null, defaults to having a config change trigger. - // +optional - Triggers DeploymentTriggerPolicies `json:"triggers" protobuf:"bytes,2,rep,name=triggers"` - - // Replicas is the number of desired replicas. - // +optional - Replicas int32 `json:"replicas" protobuf:"varint,3,opt,name=replicas"` - - // RevisionHistoryLimit is the number of old ReplicationControllers to retain to allow for rollbacks. - // This field is a pointer to allow for differentiation between an explicit zero and not specified. - // Defaults to 10. (This only applies to DeploymentConfigs created via the new group API resource, not the legacy resource.) - RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty" protobuf:"varint,4,opt,name=revisionHistoryLimit"` - - // Test ensures that this deployment config will have zero replicas except while a deployment is running. This allows the - // deployment config to be used as a continuous deployment test - triggering on images, running the deployment, and then succeeding - // or failing. Post strategy hooks and After actions can be used to integrate successful deployment with an action. - // +optional - Test bool `json:"test" protobuf:"varint,5,opt,name=test"` - - // Paused indicates that the deployment config is paused resulting in no new deployments on template - // changes or changes in the template caused by other triggers. - Paused bool `json:"paused,omitempty" protobuf:"varint,6,opt,name=paused"` - - // Selector is a label query over pods that should match the Replicas count. - Selector map[string]string `json:"selector,omitempty" protobuf:"bytes,7,rep,name=selector"` - - // Template is the object that describes the pod that will be created if - // insufficient replicas are detected. - Template *corev1.PodTemplateSpec `json:"template,omitempty" protobuf:"bytes,8,opt,name=template"` -} - -// DeploymentStrategy describes how to perform a deployment. -type DeploymentStrategy struct { - // Type is the name of a deployment strategy. - Type DeploymentStrategyType `json:"type,omitempty" protobuf:"bytes,1,opt,name=type,casttype=DeploymentStrategyType"` - - // CustomParams are the input to the Custom deployment strategy, and may also - // be specified for the Recreate and Rolling strategies to customize the execution - // process that runs the deployment. - CustomParams *CustomDeploymentStrategyParams `json:"customParams,omitempty" protobuf:"bytes,2,opt,name=customParams"` - // RecreateParams are the input to the Recreate deployment strategy. - RecreateParams *RecreateDeploymentStrategyParams `json:"recreateParams,omitempty" protobuf:"bytes,3,opt,name=recreateParams"` - // RollingParams are the input to the Rolling deployment strategy. - RollingParams *RollingDeploymentStrategyParams `json:"rollingParams,omitempty" protobuf:"bytes,4,opt,name=rollingParams"` - - // Resources contains resource requirements to execute the deployment and any hooks. - Resources corev1.ResourceRequirements `json:"resources,omitempty" protobuf:"bytes,5,opt,name=resources"` - // Labels is a set of key, value pairs added to custom deployer and lifecycle pre/post hook pods. - Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,6,rep,name=labels"` - // Annotations is a set of key, value pairs added to custom deployer and lifecycle pre/post hook pods. - Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,7,rep,name=annotations"` - - // ActiveDeadlineSeconds is the duration in seconds that the deployer pods for this deployment - // config may be active on a node before the system actively tries to terminate them. - ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty" protobuf:"varint,8,opt,name=activeDeadlineSeconds"` -} - -// DeploymentStrategyType refers to a specific DeploymentStrategy implementation. -type DeploymentStrategyType string - -const ( - // DeploymentStrategyTypeRecreate is a simple strategy suitable as a default. - DeploymentStrategyTypeRecreate DeploymentStrategyType = "Recreate" - // DeploymentStrategyTypeCustom is a user defined strategy. - DeploymentStrategyTypeCustom DeploymentStrategyType = "Custom" - // DeploymentStrategyTypeRolling uses the Kubernetes RollingUpdater. - DeploymentStrategyTypeRolling DeploymentStrategyType = "Rolling" -) - -// CustomDeploymentStrategyParams are the input to the Custom deployment strategy. -type CustomDeploymentStrategyParams struct { - // Image specifies a container image which can carry out a deployment. - Image string `json:"image,omitempty" protobuf:"bytes,1,opt,name=image"` - // Environment holds the environment which will be given to the container for Image. - Environment []corev1.EnvVar `json:"environment,omitempty" protobuf:"bytes,2,rep,name=environment"` - // Command is optional and overrides CMD in the container Image. - Command []string `json:"command,omitempty" protobuf:"bytes,3,rep,name=command"` -} - -// RecreateDeploymentStrategyParams are the input to the Recreate deployment -// strategy. -type RecreateDeploymentStrategyParams struct { - // TimeoutSeconds is the time to wait for updates before giving up. If the - // value is nil, a default will be used. - TimeoutSeconds *int64 `json:"timeoutSeconds,omitempty" protobuf:"varint,1,opt,name=timeoutSeconds"` - // Pre is a lifecycle hook which is executed before the strategy manipulates - // the deployment. All LifecycleHookFailurePolicy values are supported. - Pre *LifecycleHook `json:"pre,omitempty" protobuf:"bytes,2,opt,name=pre"` - // Mid is a lifecycle hook which is executed while the deployment is scaled down to zero before the first new - // pod is created. All LifecycleHookFailurePolicy values are supported. - Mid *LifecycleHook `json:"mid,omitempty" protobuf:"bytes,3,opt,name=mid"` - // Post is a lifecycle hook which is executed after the strategy has - // finished all deployment logic. All LifecycleHookFailurePolicy values are supported. - Post *LifecycleHook `json:"post,omitempty" protobuf:"bytes,4,opt,name=post"` -} - -// RollingDeploymentStrategyParams are the input to the Rolling deployment -// strategy. -type RollingDeploymentStrategyParams struct { - // UpdatePeriodSeconds is the time to wait between individual pod updates. - // If the value is nil, a default will be used. - UpdatePeriodSeconds *int64 `json:"updatePeriodSeconds,omitempty" protobuf:"varint,1,opt,name=updatePeriodSeconds"` - // IntervalSeconds is the time to wait between polling deployment status - // after update. If the value is nil, a default will be used. - IntervalSeconds *int64 `json:"intervalSeconds,omitempty" protobuf:"varint,2,opt,name=intervalSeconds"` - // TimeoutSeconds is the time to wait for updates before giving up. If the - // value is nil, a default will be used. - TimeoutSeconds *int64 `json:"timeoutSeconds,omitempty" protobuf:"varint,3,opt,name=timeoutSeconds"` - // MaxUnavailable is the maximum number of pods that can be unavailable - // during the update. Value can be an absolute number (ex: 5) or a - // percentage of total pods at the start of update (ex: 10%). Absolute - // number is calculated from percentage by rounding down. - // - // This cannot be 0 if MaxSurge is 0. By default, 25% is used. - // - // Example: when this is set to 30%, the old RC can be scaled down by 30% - // immediately when the rolling update starts. Once new pods are ready, old - // RC can be scaled down further, followed by scaling up the new RC, - // ensuring that at least 70% of original number of pods are available at - // all times during the update. - MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty" protobuf:"bytes,4,opt,name=maxUnavailable"` - // MaxSurge is the maximum number of pods that can be scheduled above the - // original number of pods. Value can be an absolute number (ex: 5) or a - // percentage of total pods at the start of the update (ex: 10%). Absolute - // number is calculated from percentage by rounding up. - // - // This cannot be 0 if MaxUnavailable is 0. By default, 25% is used. - // - // Example: when this is set to 30%, the new RC can be scaled up by 30% - // immediately when the rolling update starts. Once old pods have been - // killed, new RC can be scaled up further, ensuring that total number of - // pods running at any time during the update is atmost 130% of original - // pods. - MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty" protobuf:"bytes,5,opt,name=maxSurge"` - // Pre is a lifecycle hook which is executed before the deployment process - // begins. All LifecycleHookFailurePolicy values are supported. - Pre *LifecycleHook `json:"pre,omitempty" protobuf:"bytes,7,opt,name=pre"` - // Post is a lifecycle hook which is executed after the strategy has - // finished all deployment logic. All LifecycleHookFailurePolicy values - // are supported. - Post *LifecycleHook `json:"post,omitempty" protobuf:"bytes,8,opt,name=post"` -} - -// LifecycleHook defines a specific deployment lifecycle action. Only one type of action may be specified at any time. -type LifecycleHook struct { - // FailurePolicy specifies what action to take if the hook fails. - FailurePolicy LifecycleHookFailurePolicy `json:"failurePolicy" protobuf:"bytes,1,opt,name=failurePolicy,casttype=LifecycleHookFailurePolicy"` - - // ExecNewPod specifies the options for a lifecycle hook backed by a pod. - ExecNewPod *ExecNewPodHook `json:"execNewPod,omitempty" protobuf:"bytes,2,opt,name=execNewPod"` - - // TagImages instructs the deployer to tag the current image referenced under a container onto an image stream tag. - TagImages []TagImageHook `json:"tagImages,omitempty" protobuf:"bytes,3,rep,name=tagImages"` -} - -// LifecycleHookFailurePolicy describes possibles actions to take if a hook fails. -type LifecycleHookFailurePolicy string - -const ( - // LifecycleHookFailurePolicyRetry means retry the hook until it succeeds. - LifecycleHookFailurePolicyRetry LifecycleHookFailurePolicy = "Retry" - // LifecycleHookFailurePolicyAbort means abort the deployment. - LifecycleHookFailurePolicyAbort LifecycleHookFailurePolicy = "Abort" - // LifecycleHookFailurePolicyIgnore means ignore failure and continue the deployment. - LifecycleHookFailurePolicyIgnore LifecycleHookFailurePolicy = "Ignore" -) - -// ExecNewPodHook is a hook implementation which runs a command in a new pod -// based on the specified container which is assumed to be part of the -// deployment template. -type ExecNewPodHook struct { - // Command is the action command and its arguments. - Command []string `json:"command" protobuf:"bytes,1,rep,name=command"` - // Env is a set of environment variables to supply to the hook pod's container. - Env []corev1.EnvVar `json:"env,omitempty" protobuf:"bytes,2,rep,name=env"` - // ContainerName is the name of a container in the deployment pod template - // whose container image will be used for the hook pod's container. - ContainerName string `json:"containerName" protobuf:"bytes,3,opt,name=containerName"` - // Volumes is a list of named volumes from the pod template which should be - // copied to the hook pod. Volumes names not found in pod spec are ignored. - // An empty list means no volumes will be copied. - Volumes []string `json:"volumes,omitempty" protobuf:"bytes,4,rep,name=volumes"` -} - -// TagImageHook is a request to tag the image in a particular container onto an ImageStreamTag. -type TagImageHook struct { - // ContainerName is the name of a container in the deployment config whose image value will be used as the source of the tag. If there is only a single - // container this value will be defaulted to the name of that container. - ContainerName string `json:"containerName" protobuf:"bytes,1,opt,name=containerName"` - // To is the target ImageStreamTag to set the container's image onto. - To corev1.ObjectReference `json:"to" protobuf:"bytes,2,opt,name=to"` -} - -// DeploymentTriggerPolicies is a list of policies where nil values and different from empty arrays. -// +protobuf.nullable=true -// +protobuf.options.(gogoproto.goproto_stringer)=false -type DeploymentTriggerPolicies []DeploymentTriggerPolicy - -func (t DeploymentTriggerPolicies) String() string { - return fmt.Sprintf("%v", []DeploymentTriggerPolicy(t)) -} - -// DeploymentTriggerPolicy describes a policy for a single trigger that results in a new deployment. -type DeploymentTriggerPolicy struct { - // Type of the trigger - Type DeploymentTriggerType `json:"type,omitempty" protobuf:"bytes,1,opt,name=type,casttype=DeploymentTriggerType"` - // ImageChangeParams represents the parameters for the ImageChange trigger. - ImageChangeParams *DeploymentTriggerImageChangeParams `json:"imageChangeParams,omitempty" protobuf:"bytes,2,opt,name=imageChangeParams"` -} - -// DeploymentTriggerType refers to a specific DeploymentTriggerPolicy implementation. -type DeploymentTriggerType string - -const ( - // DeploymentTriggerOnImageChange will create new deployments in response to updated tags from - // a container image repository. - DeploymentTriggerOnImageChange DeploymentTriggerType = "ImageChange" - // DeploymentTriggerOnConfigChange will create new deployments in response to changes to - // the ControllerTemplate of a DeploymentConfig. - DeploymentTriggerOnConfigChange DeploymentTriggerType = "ConfigChange" -) - -// DeploymentTriggerImageChangeParams represents the parameters to the ImageChange trigger. -type DeploymentTriggerImageChangeParams struct { - // Automatic means that the detection of a new tag value should result in an image update - // inside the pod template. - Automatic bool `json:"automatic,omitempty" protobuf:"varint,1,opt,name=automatic"` - // ContainerNames is used to restrict tag updates to the specified set of container names in a pod. - // If multiple triggers point to the same containers, the resulting behavior is undefined. Future - // API versions will make this a validation error. If ContainerNames does not point to a valid container, - // the trigger will be ignored. Future API versions will make this a validation error. - ContainerNames []string `json:"containerNames,omitempty" protobuf:"bytes,2,rep,name=containerNames"` - // From is a reference to an image stream tag to watch for changes. From.Name is the only - // required subfield - if From.Namespace is blank, the namespace of the current deployment - // trigger will be used. - From corev1.ObjectReference `json:"from" protobuf:"bytes,3,opt,name=from"` - // LastTriggeredImage is the last image to be triggered. - LastTriggeredImage string `json:"lastTriggeredImage,omitempty" protobuf:"bytes,4,opt,name=lastTriggeredImage"` -} - -// DeploymentConfigStatus represents the current deployment state. -type DeploymentConfigStatus struct { - // LatestVersion is used to determine whether the current deployment associated with a deployment - // config is out of sync. - LatestVersion int64 `json:"latestVersion" protobuf:"varint,1,opt,name=latestVersion"` - // ObservedGeneration is the most recent generation observed by the deployment config controller. - ObservedGeneration int64 `json:"observedGeneration" protobuf:"varint,2,opt,name=observedGeneration"` - // Replicas is the total number of pods targeted by this deployment config. - Replicas int32 `json:"replicas" protobuf:"varint,3,opt,name=replicas"` - // UpdatedReplicas is the total number of non-terminated pods targeted by this deployment config - // that have the desired template spec. - UpdatedReplicas int32 `json:"updatedReplicas" protobuf:"varint,4,opt,name=updatedReplicas"` - // AvailableReplicas is the total number of available pods targeted by this deployment config. - AvailableReplicas int32 `json:"availableReplicas" protobuf:"varint,5,opt,name=availableReplicas"` - // UnavailableReplicas is the total number of unavailable pods targeted by this deployment config. - UnavailableReplicas int32 `json:"unavailableReplicas" protobuf:"varint,6,opt,name=unavailableReplicas"` - // Details are the reasons for the update to this deployment config. - // This could be based on a change made by the user or caused by an automatic trigger - Details *DeploymentDetails `json:"details,omitempty" protobuf:"bytes,7,opt,name=details"` - // Conditions represents the latest available observations of a deployment config's current state. - // +patchMergeKey=type - // +patchStrategy=merge - Conditions []DeploymentCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,8,rep,name=conditions"` - // Total number of ready pods targeted by this deployment. - ReadyReplicas int32 `json:"readyReplicas,omitempty" protobuf:"varint,9,opt,name=readyReplicas"` -} - -// DeploymentDetails captures information about the causes of a deployment. -type DeploymentDetails struct { - // Message is the user specified change message, if this deployment was triggered manually by the user - Message string `json:"message,omitempty" protobuf:"bytes,1,opt,name=message"` - // Causes are extended data associated with all the causes for creating a new deployment - Causes []DeploymentCause `json:"causes" protobuf:"bytes,2,rep,name=causes"` -} - -// DeploymentCause captures information about a particular cause of a deployment. -type DeploymentCause struct { - // Type of the trigger that resulted in the creation of a new deployment - Type DeploymentTriggerType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=DeploymentTriggerType"` - // ImageTrigger contains the image trigger details, if this trigger was fired based on an image change - ImageTrigger *DeploymentCauseImageTrigger `json:"imageTrigger,omitempty" protobuf:"bytes,2,opt,name=imageTrigger"` -} - -// DeploymentCauseImageTrigger represents details about the cause of a deployment originating -// from an image change trigger -type DeploymentCauseImageTrigger struct { - // From is a reference to the changed object which triggered a deployment. The field may have - // the kinds DockerImage, ImageStreamTag, or ImageStreamImage. - From corev1.ObjectReference `json:"from" protobuf:"bytes,1,opt,name=from"` -} - -type DeploymentConditionType string - -// These are valid conditions of a DeploymentConfig. -const ( - // DeploymentAvailable means the DeploymentConfig is available, ie. at least the minimum available - // replicas required (dc.spec.replicas in case the DeploymentConfig is of Recreate type, - // dc.spec.replicas - dc.spec.strategy.rollingParams.maxUnavailable in case it's Rolling) are up and - // running for at least dc.spec.minReadySeconds. - DeploymentAvailable DeploymentConditionType = "Available" - // DeploymentProgressing is: - // * True: the DeploymentConfig has been successfully deployed or is amidst getting deployed. - // The two different states can be determined by looking at the Reason of the Condition. - // For example, a complete DC will have {Status: True, Reason: NewReplicationControllerAvailable} - // and a DC in the middle of a rollout {Status: True, Reason: ReplicationControllerUpdated}. - // TODO: Represent a successfully deployed DC by using something else for Status like Unknown? - // * False: the DeploymentConfig has failed to deploy its latest version. - // - // This condition is purely informational and depends on the dc.spec.strategy.*params.timeoutSeconds - // field, which is responsible for the time in seconds to wait for a rollout before deciding that - // no progress can be made, thus the rollout is aborted. - // - // Progress for a DeploymentConfig is considered when new pods scale up or old pods scale down. - DeploymentProgressing DeploymentConditionType = "Progressing" - // DeploymentReplicaFailure is added in a deployment config when one of its pods - // fails to be created or deleted. - DeploymentReplicaFailure DeploymentConditionType = "ReplicaFailure" -) - -// DeploymentCondition describes the state of a deployment config at a certain point. -type DeploymentCondition struct { - // Type of deployment condition. - Type DeploymentConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=DeploymentConditionType"` - // Status of the condition, one of True, False, Unknown. - Status corev1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/kubernetes/pkg/api/v1.ConditionStatus"` - // The last time this condition was updated. - LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty" protobuf:"bytes,6,opt,name=lastUpdateTime"` - // The last time the condition transitioned from one status to another. - LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` - // The reason for the condition's last transition. - Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` - // A human readable message indicating details about the transition. - Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// DeploymentConfigList is a collection of deployment configs. -type DeploymentConfigList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is a list of deployment configs - Items []DeploymentConfig `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// DeploymentConfigRollback provides the input to rollback generation. -type DeploymentConfigRollback struct { - metav1.TypeMeta `json:",inline"` - // Name of the deployment config that will be rolled back. - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - // UpdatedAnnotations is a set of new annotations that will be added in the deployment config. - UpdatedAnnotations map[string]string `json:"updatedAnnotations,omitempty" protobuf:"bytes,2,rep,name=updatedAnnotations"` - // Spec defines the options to rollback generation. - Spec DeploymentConfigRollbackSpec `json:"spec" protobuf:"bytes,3,opt,name=spec"` -} - -// DeploymentConfigRollbackSpec represents the options for rollback generation. -type DeploymentConfigRollbackSpec struct { - // From points to a ReplicationController which is a deployment. - From corev1.ObjectReference `json:"from" protobuf:"bytes,1,opt,name=from"` - // Revision to rollback to. If set to 0, rollback to the last revision. - Revision int64 `json:"revision,omitempty" protobuf:"varint,2,opt,name=revision"` - // IncludeTriggers specifies whether to include config Triggers. - IncludeTriggers bool `json:"includeTriggers" protobuf:"varint,3,opt,name=includeTriggers"` - // IncludeTemplate specifies whether to include the PodTemplateSpec. - IncludeTemplate bool `json:"includeTemplate" protobuf:"varint,4,opt,name=includeTemplate"` - // IncludeReplicationMeta specifies whether to include the replica count and selector. - IncludeReplicationMeta bool `json:"includeReplicationMeta" protobuf:"varint,5,opt,name=includeReplicationMeta"` - // IncludeStrategy specifies whether to include the deployment Strategy. - IncludeStrategy bool `json:"includeStrategy" protobuf:"varint,6,opt,name=includeStrategy"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// DeploymentRequest is a request to a deployment config for a new deployment. -type DeploymentRequest struct { - metav1.TypeMeta `json:",inline"` - // Name of the deployment config for requesting a new deployment. - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - // Latest will update the deployment config with the latest state from all triggers. - Latest bool `json:"latest" protobuf:"varint,2,opt,name=latest"` - // Force will try to force a new deployment to run. If the deployment config is paused, - // then setting this to true will return an Invalid error. - Force bool `json:"force" protobuf:"varint,3,opt,name=force"` - // ExcludeTriggers instructs the instantiator to avoid processing the specified triggers. - // This field overrides the triggers from latest and allows clients to control specific - // logic. This field is ignored if not specified. - ExcludeTriggers []DeploymentTriggerType `json:"excludeTriggers,omitempty" protobuf:"bytes,4,rep,name=excludeTriggers,casttype=DeploymentTriggerType"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// DeploymentLog represents the logs for a deployment -type DeploymentLog struct { - metav1.TypeMeta `json:",inline"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// DeploymentLogOptions is the REST options for a deployment log -type DeploymentLogOptions struct { - metav1.TypeMeta `json:",inline"` - - // The container for which to stream logs. Defaults to only container if there is one container in the pod. - Container string `json:"container,omitempty" protobuf:"bytes,1,opt,name=container"` - // Follow if true indicates that the build log should be streamed until - // the build terminates. - Follow bool `json:"follow,omitempty" protobuf:"varint,2,opt,name=follow"` - // Return previous deployment logs. Defaults to false. - Previous bool `json:"previous,omitempty" protobuf:"varint,3,opt,name=previous"` - // A relative time in seconds before the current time from which to show logs. If this value - // precedes the time a pod was started, only logs since the pod start will be returned. - // If this value is in the future, no logs will be returned. - // Only one of sinceSeconds or sinceTime may be specified. - SinceSeconds *int64 `json:"sinceSeconds,omitempty" protobuf:"varint,4,opt,name=sinceSeconds"` - // An RFC3339 timestamp from which to show logs. If this value - // precedes the time a pod was started, only logs since the pod start will be returned. - // If this value is in the future, no logs will be returned. - // Only one of sinceSeconds or sinceTime may be specified. - SinceTime *metav1.Time `json:"sinceTime,omitempty" protobuf:"bytes,5,opt,name=sinceTime"` - // If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line - // of log output. Defaults to false. - Timestamps bool `json:"timestamps,omitempty" protobuf:"varint,6,opt,name=timestamps"` - // If set, the number of lines from the end of the logs to show. If not specified, - // logs are shown from the creation of the container or sinceSeconds or sinceTime - TailLines *int64 `json:"tailLines,omitempty" protobuf:"varint,7,opt,name=tailLines"` - // If set, the number of bytes to read from the server before terminating the - // log output. This may not display a complete final line of logging, and may return - // slightly more or slightly less than the specified limit. - LimitBytes *int64 `json:"limitBytes,omitempty" protobuf:"varint,8,opt,name=limitBytes"` - - // NoWait if true causes the call to return immediately even if the deployment - // is not available yet. Otherwise the server will wait until the deployment has started. - // TODO: Fix the tag to 'noWait' in v2 - NoWait bool `json:"nowait,omitempty" protobuf:"varint,9,opt,name=nowait"` - - // Version of the deployment for which to view logs. - Version *int64 `json:"version,omitempty" protobuf:"varint,10,opt,name=version"` -} diff --git a/vendor/github.com/openshift/api/apps/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/apps/v1/zz_generated.deepcopy.go deleted file mode 100644 index f6ab2fd48d3c0..0000000000000 --- a/vendor/github.com/openshift/api/apps/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,681 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - corev1 "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 *CustomDeploymentStrategyParams) DeepCopyInto(out *CustomDeploymentStrategyParams) { - *out = *in - if in.Environment != nil { - in, out := &in.Environment, &out.Environment - *out = make([]corev1.EnvVar, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Command != nil { - in, out := &in.Command, &out.Command - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomDeploymentStrategyParams. -func (in *CustomDeploymentStrategyParams) DeepCopy() *CustomDeploymentStrategyParams { - if in == nil { - return nil - } - out := new(CustomDeploymentStrategyParams) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeploymentCause) DeepCopyInto(out *DeploymentCause) { - *out = *in - if in.ImageTrigger != nil { - in, out := &in.ImageTrigger, &out.ImageTrigger - *out = new(DeploymentCauseImageTrigger) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentCause. -func (in *DeploymentCause) DeepCopy() *DeploymentCause { - if in == nil { - return nil - } - out := new(DeploymentCause) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeploymentCauseImageTrigger) DeepCopyInto(out *DeploymentCauseImageTrigger) { - *out = *in - out.From = in.From - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentCauseImageTrigger. -func (in *DeploymentCauseImageTrigger) DeepCopy() *DeploymentCauseImageTrigger { - if in == nil { - return nil - } - out := new(DeploymentCauseImageTrigger) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeploymentCondition) DeepCopyInto(out *DeploymentCondition) { - *out = *in - in.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime) - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentCondition. -func (in *DeploymentCondition) DeepCopy() *DeploymentCondition { - if in == nil { - return nil - } - out := new(DeploymentCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeploymentConfig) DeepCopyInto(out *DeploymentConfig) { - *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 DeploymentConfig. -func (in *DeploymentConfig) DeepCopy() *DeploymentConfig { - if in == nil { - return nil - } - out := new(DeploymentConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DeploymentConfig) 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 *DeploymentConfigList) DeepCopyInto(out *DeploymentConfigList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]DeploymentConfig, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentConfigList. -func (in *DeploymentConfigList) DeepCopy() *DeploymentConfigList { - if in == nil { - return nil - } - out := new(DeploymentConfigList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DeploymentConfigList) 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 *DeploymentConfigRollback) DeepCopyInto(out *DeploymentConfigRollback) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.UpdatedAnnotations != nil { - in, out := &in.UpdatedAnnotations, &out.UpdatedAnnotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - out.Spec = in.Spec - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentConfigRollback. -func (in *DeploymentConfigRollback) DeepCopy() *DeploymentConfigRollback { - if in == nil { - return nil - } - out := new(DeploymentConfigRollback) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DeploymentConfigRollback) 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 *DeploymentConfigRollbackSpec) DeepCopyInto(out *DeploymentConfigRollbackSpec) { - *out = *in - out.From = in.From - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentConfigRollbackSpec. -func (in *DeploymentConfigRollbackSpec) DeepCopy() *DeploymentConfigRollbackSpec { - if in == nil { - return nil - } - out := new(DeploymentConfigRollbackSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeploymentConfigSpec) DeepCopyInto(out *DeploymentConfigSpec) { - *out = *in - in.Strategy.DeepCopyInto(&out.Strategy) - if in.Triggers != nil { - in, out := &in.Triggers, &out.Triggers - *out = make(DeploymentTriggerPolicies, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.RevisionHistoryLimit != nil { - in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit - *out = new(int32) - **out = **in - } - if in.Selector != nil { - in, out := &in.Selector, &out.Selector - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Template != nil { - in, out := &in.Template, &out.Template - *out = new(corev1.PodTemplateSpec) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentConfigSpec. -func (in *DeploymentConfigSpec) DeepCopy() *DeploymentConfigSpec { - if in == nil { - return nil - } - out := new(DeploymentConfigSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeploymentConfigStatus) DeepCopyInto(out *DeploymentConfigStatus) { - *out = *in - if in.Details != nil { - in, out := &in.Details, &out.Details - *out = new(DeploymentDetails) - (*in).DeepCopyInto(*out) - } - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]DeploymentCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentConfigStatus. -func (in *DeploymentConfigStatus) DeepCopy() *DeploymentConfigStatus { - if in == nil { - return nil - } - out := new(DeploymentConfigStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeploymentDetails) DeepCopyInto(out *DeploymentDetails) { - *out = *in - if in.Causes != nil { - in, out := &in.Causes, &out.Causes - *out = make([]DeploymentCause, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentDetails. -func (in *DeploymentDetails) DeepCopy() *DeploymentDetails { - if in == nil { - return nil - } - out := new(DeploymentDetails) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeploymentLog) DeepCopyInto(out *DeploymentLog) { - *out = *in - out.TypeMeta = in.TypeMeta - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentLog. -func (in *DeploymentLog) DeepCopy() *DeploymentLog { - if in == nil { - return nil - } - out := new(DeploymentLog) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DeploymentLog) 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 *DeploymentLogOptions) DeepCopyInto(out *DeploymentLogOptions) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.SinceSeconds != nil { - in, out := &in.SinceSeconds, &out.SinceSeconds - *out = new(int64) - **out = **in - } - if in.SinceTime != nil { - in, out := &in.SinceTime, &out.SinceTime - *out = (*in).DeepCopy() - } - if in.TailLines != nil { - in, out := &in.TailLines, &out.TailLines - *out = new(int64) - **out = **in - } - if in.LimitBytes != nil { - in, out := &in.LimitBytes, &out.LimitBytes - *out = new(int64) - **out = **in - } - if in.Version != nil { - in, out := &in.Version, &out.Version - *out = new(int64) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentLogOptions. -func (in *DeploymentLogOptions) DeepCopy() *DeploymentLogOptions { - if in == nil { - return nil - } - out := new(DeploymentLogOptions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DeploymentLogOptions) 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 *DeploymentRequest) DeepCopyInto(out *DeploymentRequest) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.ExcludeTriggers != nil { - in, out := &in.ExcludeTriggers, &out.ExcludeTriggers - *out = make([]DeploymentTriggerType, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentRequest. -func (in *DeploymentRequest) DeepCopy() *DeploymentRequest { - if in == nil { - return nil - } - out := new(DeploymentRequest) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DeploymentRequest) 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 *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy) { - *out = *in - if in.CustomParams != nil { - in, out := &in.CustomParams, &out.CustomParams - *out = new(CustomDeploymentStrategyParams) - (*in).DeepCopyInto(*out) - } - if in.RecreateParams != nil { - in, out := &in.RecreateParams, &out.RecreateParams - *out = new(RecreateDeploymentStrategyParams) - (*in).DeepCopyInto(*out) - } - if in.RollingParams != nil { - in, out := &in.RollingParams, &out.RollingParams - *out = new(RollingDeploymentStrategyParams) - (*in).DeepCopyInto(*out) - } - in.Resources.DeepCopyInto(&out.Resources) - if in.Labels != nil { - in, out := &in.Labels, &out.Labels - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Annotations != nil { - in, out := &in.Annotations, &out.Annotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.ActiveDeadlineSeconds != nil { - in, out := &in.ActiveDeadlineSeconds, &out.ActiveDeadlineSeconds - *out = new(int64) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStrategy. -func (in *DeploymentStrategy) DeepCopy() *DeploymentStrategy { - if in == nil { - return nil - } - out := new(DeploymentStrategy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeploymentTriggerImageChangeParams) DeepCopyInto(out *DeploymentTriggerImageChangeParams) { - *out = *in - if in.ContainerNames != nil { - in, out := &in.ContainerNames, &out.ContainerNames - *out = make([]string, len(*in)) - copy(*out, *in) - } - out.From = in.From - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentTriggerImageChangeParams. -func (in *DeploymentTriggerImageChangeParams) DeepCopy() *DeploymentTriggerImageChangeParams { - if in == nil { - return nil - } - out := new(DeploymentTriggerImageChangeParams) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in DeploymentTriggerPolicies) DeepCopyInto(out *DeploymentTriggerPolicies) { - { - in := &in - *out = make(DeploymentTriggerPolicies, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentTriggerPolicies. -func (in DeploymentTriggerPolicies) DeepCopy() DeploymentTriggerPolicies { - if in == nil { - return nil - } - out := new(DeploymentTriggerPolicies) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeploymentTriggerPolicy) DeepCopyInto(out *DeploymentTriggerPolicy) { - *out = *in - if in.ImageChangeParams != nil { - in, out := &in.ImageChangeParams, &out.ImageChangeParams - *out = new(DeploymentTriggerImageChangeParams) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentTriggerPolicy. -func (in *DeploymentTriggerPolicy) DeepCopy() *DeploymentTriggerPolicy { - if in == nil { - return nil - } - out := new(DeploymentTriggerPolicy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ExecNewPodHook) DeepCopyInto(out *ExecNewPodHook) { - *out = *in - if in.Command != nil { - in, out := &in.Command, &out.Command - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]corev1.EnvVar, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Volumes != nil { - in, out := &in.Volumes, &out.Volumes - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecNewPodHook. -func (in *ExecNewPodHook) DeepCopy() *ExecNewPodHook { - if in == nil { - return nil - } - out := new(ExecNewPodHook) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LifecycleHook) DeepCopyInto(out *LifecycleHook) { - *out = *in - if in.ExecNewPod != nil { - in, out := &in.ExecNewPod, &out.ExecNewPod - *out = new(ExecNewPodHook) - (*in).DeepCopyInto(*out) - } - if in.TagImages != nil { - in, out := &in.TagImages, &out.TagImages - *out = make([]TagImageHook, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifecycleHook. -func (in *LifecycleHook) DeepCopy() *LifecycleHook { - if in == nil { - return nil - } - out := new(LifecycleHook) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RecreateDeploymentStrategyParams) DeepCopyInto(out *RecreateDeploymentStrategyParams) { - *out = *in - if in.TimeoutSeconds != nil { - in, out := &in.TimeoutSeconds, &out.TimeoutSeconds - *out = new(int64) - **out = **in - } - if in.Pre != nil { - in, out := &in.Pre, &out.Pre - *out = new(LifecycleHook) - (*in).DeepCopyInto(*out) - } - if in.Mid != nil { - in, out := &in.Mid, &out.Mid - *out = new(LifecycleHook) - (*in).DeepCopyInto(*out) - } - if in.Post != nil { - in, out := &in.Post, &out.Post - *out = new(LifecycleHook) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecreateDeploymentStrategyParams. -func (in *RecreateDeploymentStrategyParams) DeepCopy() *RecreateDeploymentStrategyParams { - if in == nil { - return nil - } - out := new(RecreateDeploymentStrategyParams) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RollingDeploymentStrategyParams) DeepCopyInto(out *RollingDeploymentStrategyParams) { - *out = *in - if in.UpdatePeriodSeconds != nil { - in, out := &in.UpdatePeriodSeconds, &out.UpdatePeriodSeconds - *out = new(int64) - **out = **in - } - if in.IntervalSeconds != nil { - in, out := &in.IntervalSeconds, &out.IntervalSeconds - *out = new(int64) - **out = **in - } - if in.TimeoutSeconds != nil { - in, out := &in.TimeoutSeconds, &out.TimeoutSeconds - *out = new(int64) - **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 - } - if in.Pre != nil { - in, out := &in.Pre, &out.Pre - *out = new(LifecycleHook) - (*in).DeepCopyInto(*out) - } - if in.Post != nil { - in, out := &in.Post, &out.Post - *out = new(LifecycleHook) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingDeploymentStrategyParams. -func (in *RollingDeploymentStrategyParams) DeepCopy() *RollingDeploymentStrategyParams { - if in == nil { - return nil - } - out := new(RollingDeploymentStrategyParams) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TagImageHook) DeepCopyInto(out *TagImageHook) { - *out = *in - out.To = in.To - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TagImageHook. -func (in *TagImageHook) DeepCopy() *TagImageHook { - if in == nil { - return nil - } - out := new(TagImageHook) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/github.com/openshift/api/apps/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/apps/v1/zz_generated.swagger_doc_generated.go deleted file mode 100644 index 9e3a07e8f969b..0000000000000 --- a/vendor/github.com/openshift/api/apps/v1/zz_generated.swagger_doc_generated.go +++ /dev/null @@ -1,282 +0,0 @@ -package v1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE -var map_CustomDeploymentStrategyParams = map[string]string{ - "": "CustomDeploymentStrategyParams are the input to the Custom deployment strategy.", - "image": "Image specifies a container image which can carry out a deployment.", - "environment": "Environment holds the environment which will be given to the container for Image.", - "command": "Command is optional and overrides CMD in the container Image.", -} - -func (CustomDeploymentStrategyParams) SwaggerDoc() map[string]string { - return map_CustomDeploymentStrategyParams -} - -var map_DeploymentCause = map[string]string{ - "": "DeploymentCause captures information about a particular cause of a deployment.", - "type": "Type of the trigger that resulted in the creation of a new deployment", - "imageTrigger": "ImageTrigger contains the image trigger details, if this trigger was fired based on an image change", -} - -func (DeploymentCause) SwaggerDoc() map[string]string { - return map_DeploymentCause -} - -var map_DeploymentCauseImageTrigger = map[string]string{ - "": "DeploymentCauseImageTrigger represents details about the cause of a deployment originating from an image change trigger", - "from": "From is a reference to the changed object which triggered a deployment. The field may have the kinds DockerImage, ImageStreamTag, or ImageStreamImage.", -} - -func (DeploymentCauseImageTrigger) SwaggerDoc() map[string]string { - return map_DeploymentCauseImageTrigger -} - -var map_DeploymentCondition = map[string]string{ - "": "DeploymentCondition describes the state of a deployment config at a certain point.", - "type": "Type of deployment condition.", - "status": "Status of the condition, one of True, False, Unknown.", - "lastUpdateTime": "The last time this condition was updated.", - "lastTransitionTime": "The last time the condition transitioned from one status to another.", - "reason": "The reason for the condition's last transition.", - "message": "A human readable message indicating details about the transition.", -} - -func (DeploymentCondition) SwaggerDoc() map[string]string { - return map_DeploymentCondition -} - -var map_DeploymentConfig = map[string]string{ - "": "Deployment Configs define the template for a pod and manages deploying new images or configuration changes. A single deployment configuration is usually analogous to a single micro-service. Can support many different deployment patterns, including full restart, customizable rolling updates, and fully custom behaviors, as well as pre- and post- deployment hooks. Each individual deployment is represented as a replication controller.\n\nA deployment is \"triggered\" when its configuration is changed or a tag in an Image Stream is changed. Triggers can be disabled to allow manual control over a deployment. The \"strategy\" determines how the deployment is carried out and may be changed at any time. The `latestVersion` field is updated when a new deployment is triggered by any means.", - "spec": "Spec represents a desired deployment state and how to deploy to it.", - "status": "Status represents the current deployment state.", -} - -func (DeploymentConfig) SwaggerDoc() map[string]string { - return map_DeploymentConfig -} - -var map_DeploymentConfigList = map[string]string{ - "": "DeploymentConfigList is a collection of deployment configs.", - "items": "Items is a list of deployment configs", -} - -func (DeploymentConfigList) SwaggerDoc() map[string]string { - return map_DeploymentConfigList -} - -var map_DeploymentConfigRollback = map[string]string{ - "": "DeploymentConfigRollback provides the input to rollback generation.", - "name": "Name of the deployment config that will be rolled back.", - "updatedAnnotations": "UpdatedAnnotations is a set of new annotations that will be added in the deployment config.", - "spec": "Spec defines the options to rollback generation.", -} - -func (DeploymentConfigRollback) SwaggerDoc() map[string]string { - return map_DeploymentConfigRollback -} - -var map_DeploymentConfigRollbackSpec = map[string]string{ - "": "DeploymentConfigRollbackSpec represents the options for rollback generation.", - "from": "From points to a ReplicationController which is a deployment.", - "revision": "Revision to rollback to. If set to 0, rollback to the last revision.", - "includeTriggers": "IncludeTriggers specifies whether to include config Triggers.", - "includeTemplate": "IncludeTemplate specifies whether to include the PodTemplateSpec.", - "includeReplicationMeta": "IncludeReplicationMeta specifies whether to include the replica count and selector.", - "includeStrategy": "IncludeStrategy specifies whether to include the deployment Strategy.", -} - -func (DeploymentConfigRollbackSpec) SwaggerDoc() map[string]string { - return map_DeploymentConfigRollbackSpec -} - -var map_DeploymentConfigSpec = map[string]string{ - "": "DeploymentConfigSpec represents the desired state of the deployment.", - "strategy": "Strategy describes how a deployment is executed.", - "minReadySeconds": "MinReadySeconds is the minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "triggers": "Triggers determine how updates to a DeploymentConfig result in new deployments. If no triggers are defined, a new deployment can only occur as a result of an explicit client update to the DeploymentConfig with a new LatestVersion. If null, defaults to having a config change trigger.", - "replicas": "Replicas is the number of desired replicas.", - "revisionHistoryLimit": "RevisionHistoryLimit is the number of old ReplicationControllers to retain to allow for rollbacks. This field is a pointer to allow for differentiation between an explicit zero and not specified. Defaults to 10. (This only applies to DeploymentConfigs created via the new group API resource, not the legacy resource.)", - "test": "Test ensures that this deployment config will have zero replicas except while a deployment is running. This allows the deployment config to be used as a continuous deployment test - triggering on images, running the deployment, and then succeeding or failing. Post strategy hooks and After actions can be used to integrate successful deployment with an action.", - "paused": "Paused indicates that the deployment config is paused resulting in no new deployments on template changes or changes in the template caused by other triggers.", - "selector": "Selector is a label query over pods that should match the Replicas count.", - "template": "Template is the object that describes the pod that will be created if insufficient replicas are detected.", -} - -func (DeploymentConfigSpec) SwaggerDoc() map[string]string { - return map_DeploymentConfigSpec -} - -var map_DeploymentConfigStatus = map[string]string{ - "": "DeploymentConfigStatus represents the current deployment state.", - "latestVersion": "LatestVersion is used to determine whether the current deployment associated with a deployment config is out of sync.", - "observedGeneration": "ObservedGeneration is the most recent generation observed by the deployment config controller.", - "replicas": "Replicas is the total number of pods targeted by this deployment config.", - "updatedReplicas": "UpdatedReplicas is the total number of non-terminated pods targeted by this deployment config that have the desired template spec.", - "availableReplicas": "AvailableReplicas is the total number of available pods targeted by this deployment config.", - "unavailableReplicas": "UnavailableReplicas is the total number of unavailable pods targeted by this deployment config.", - "details": "Details are the reasons for the update to this deployment config. This could be based on a change made by the user or caused by an automatic trigger", - "conditions": "Conditions represents the latest available observations of a deployment config's current state.", - "readyReplicas": "Total number of ready pods targeted by this deployment.", -} - -func (DeploymentConfigStatus) SwaggerDoc() map[string]string { - return map_DeploymentConfigStatus -} - -var map_DeploymentDetails = map[string]string{ - "": "DeploymentDetails captures information about the causes of a deployment.", - "message": "Message is the user specified change message, if this deployment was triggered manually by the user", - "causes": "Causes are extended data associated with all the causes for creating a new deployment", -} - -func (DeploymentDetails) SwaggerDoc() map[string]string { - return map_DeploymentDetails -} - -var map_DeploymentLog = map[string]string{ - "": "DeploymentLog represents the logs for a deployment", -} - -func (DeploymentLog) SwaggerDoc() map[string]string { - return map_DeploymentLog -} - -var map_DeploymentLogOptions = map[string]string{ - "": "DeploymentLogOptions is the REST options for a deployment log", - "container": "The container for which to stream logs. Defaults to only container if there is one container in the pod.", - "follow": "Follow if true indicates that the build log should be streamed until the build terminates.", - "previous": "Return previous deployment logs. Defaults to false.", - "sinceSeconds": "A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.", - "sinceTime": "An RFC3339 timestamp from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.", - "timestamps": "If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.", - "tailLines": "If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime", - "limitBytes": "If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.", - "nowait": "NoWait if true causes the call to return immediately even if the deployment is not available yet. Otherwise the server will wait until the deployment has started.", - "version": "Version of the deployment for which to view logs.", -} - -func (DeploymentLogOptions) SwaggerDoc() map[string]string { - return map_DeploymentLogOptions -} - -var map_DeploymentRequest = map[string]string{ - "": "DeploymentRequest is a request to a deployment config for a new deployment.", - "name": "Name of the deployment config for requesting a new deployment.", - "latest": "Latest will update the deployment config with the latest state from all triggers.", - "force": "Force will try to force a new deployment to run. If the deployment config is paused, then setting this to true will return an Invalid error.", - "excludeTriggers": "ExcludeTriggers instructs the instantiator to avoid processing the specified triggers. This field overrides the triggers from latest and allows clients to control specific logic. This field is ignored if not specified.", -} - -func (DeploymentRequest) SwaggerDoc() map[string]string { - return map_DeploymentRequest -} - -var map_DeploymentStrategy = map[string]string{ - "": "DeploymentStrategy describes how to perform a deployment.", - "type": "Type is the name of a deployment strategy.", - "customParams": "CustomParams are the input to the Custom deployment strategy, and may also be specified for the Recreate and Rolling strategies to customize the execution process that runs the deployment.", - "recreateParams": "RecreateParams are the input to the Recreate deployment strategy.", - "rollingParams": "RollingParams are the input to the Rolling deployment strategy.", - "resources": "Resources contains resource requirements to execute the deployment and any hooks.", - "labels": "Labels is a set of key, value pairs added to custom deployer and lifecycle pre/post hook pods.", - "annotations": "Annotations is a set of key, value pairs added to custom deployer and lifecycle pre/post hook pods.", - "activeDeadlineSeconds": "ActiveDeadlineSeconds is the duration in seconds that the deployer pods for this deployment config may be active on a node before the system actively tries to terminate them.", -} - -func (DeploymentStrategy) SwaggerDoc() map[string]string { - return map_DeploymentStrategy -} - -var map_DeploymentTriggerImageChangeParams = map[string]string{ - "": "DeploymentTriggerImageChangeParams represents the parameters to the ImageChange trigger.", - "automatic": "Automatic means that the detection of a new tag value should result in an image update inside the pod template.", - "containerNames": "ContainerNames is used to restrict tag updates to the specified set of container names in a pod. If multiple triggers point to the same containers, the resulting behavior is undefined. Future API versions will make this a validation error. If ContainerNames does not point to a valid container, the trigger will be ignored. Future API versions will make this a validation error.", - "from": "From is a reference to an image stream tag to watch for changes. From.Name is the only required subfield - if From.Namespace is blank, the namespace of the current deployment trigger will be used.", - "lastTriggeredImage": "LastTriggeredImage is the last image to be triggered.", -} - -func (DeploymentTriggerImageChangeParams) SwaggerDoc() map[string]string { - return map_DeploymentTriggerImageChangeParams -} - -var map_DeploymentTriggerPolicy = map[string]string{ - "": "DeploymentTriggerPolicy describes a policy for a single trigger that results in a new deployment.", - "type": "Type of the trigger", - "imageChangeParams": "ImageChangeParams represents the parameters for the ImageChange trigger.", -} - -func (DeploymentTriggerPolicy) SwaggerDoc() map[string]string { - return map_DeploymentTriggerPolicy -} - -var map_ExecNewPodHook = map[string]string{ - "": "ExecNewPodHook is a hook implementation which runs a command in a new pod based on the specified container which is assumed to be part of the deployment template.", - "command": "Command is the action command and its arguments.", - "env": "Env is a set of environment variables to supply to the hook pod's container.", - "containerName": "ContainerName is the name of a container in the deployment pod template whose container image will be used for the hook pod's container.", - "volumes": "Volumes is a list of named volumes from the pod template which should be copied to the hook pod. Volumes names not found in pod spec are ignored. An empty list means no volumes will be copied.", -} - -func (ExecNewPodHook) SwaggerDoc() map[string]string { - return map_ExecNewPodHook -} - -var map_LifecycleHook = map[string]string{ - "": "LifecycleHook defines a specific deployment lifecycle action. Only one type of action may be specified at any time.", - "failurePolicy": "FailurePolicy specifies what action to take if the hook fails.", - "execNewPod": "ExecNewPod specifies the options for a lifecycle hook backed by a pod.", - "tagImages": "TagImages instructs the deployer to tag the current image referenced under a container onto an image stream tag.", -} - -func (LifecycleHook) SwaggerDoc() map[string]string { - return map_LifecycleHook -} - -var map_RecreateDeploymentStrategyParams = map[string]string{ - "": "RecreateDeploymentStrategyParams are the input to the Recreate deployment strategy.", - "timeoutSeconds": "TimeoutSeconds is the time to wait for updates before giving up. If the value is nil, a default will be used.", - "pre": "Pre is a lifecycle hook which is executed before the strategy manipulates the deployment. All LifecycleHookFailurePolicy values are supported.", - "mid": "Mid is a lifecycle hook which is executed while the deployment is scaled down to zero before the first new pod is created. All LifecycleHookFailurePolicy values are supported.", - "post": "Post is a lifecycle hook which is executed after the strategy has finished all deployment logic. All LifecycleHookFailurePolicy values are supported.", -} - -func (RecreateDeploymentStrategyParams) SwaggerDoc() map[string]string { - return map_RecreateDeploymentStrategyParams -} - -var map_RollingDeploymentStrategyParams = map[string]string{ - "": "RollingDeploymentStrategyParams are the input to the Rolling deployment strategy.", - "updatePeriodSeconds": "UpdatePeriodSeconds is the time to wait between individual pod updates. If the value is nil, a default will be used.", - "intervalSeconds": "IntervalSeconds is the time to wait between polling deployment status after update. If the value is nil, a default will be used.", - "timeoutSeconds": "TimeoutSeconds is the time to wait for updates before giving up. If the value is nil, a default will be used.", - "maxUnavailable": "MaxUnavailable is the maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total pods at the start of update (ex: 10%). Absolute number is calculated from percentage by rounding down.\n\nThis cannot be 0 if MaxSurge is 0. By default, 25% is used.\n\nExample: when this is set to 30%, the old RC can be scaled down by 30% immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that at least 70% of original number of pods are available at all times during the update.", - "maxSurge": "MaxSurge is the maximum number of pods that can be scheduled above the original number of pods. Value can be an absolute number (ex: 5) or a percentage of total pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up.\n\nThis cannot be 0 if MaxUnavailable is 0. By default, 25% is used.\n\nExample: when this is set to 30%, the new RC can be scaled up by 30% immediately when the rolling update starts. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of original pods.", - "pre": "Pre is a lifecycle hook which is executed before the deployment process begins. All LifecycleHookFailurePolicy values are supported.", - "post": "Post is a lifecycle hook which is executed after the strategy has finished all deployment logic. All LifecycleHookFailurePolicy values are supported.", -} - -func (RollingDeploymentStrategyParams) SwaggerDoc() map[string]string { - return map_RollingDeploymentStrategyParams -} - -var map_TagImageHook = map[string]string{ - "": "TagImageHook is a request to tag the image in a particular container onto an ImageStreamTag.", - "containerName": "ContainerName is the name of a container in the deployment config whose image value will be used as the source of the tag. If there is only a single container this value will be defaulted to the name of that container.", - "to": "To is the target ImageStreamTag to set the container's image onto.", -} - -func (TagImageHook) SwaggerDoc() map[string]string { - return map_TagImageHook -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/github.com/openshift/api/authorization/v1/0000_03_authorization-openshift_01_rolebindingrestriction.crd.yaml b/vendor/github.com/openshift/api/authorization/v1/0000_03_authorization-openshift_01_rolebindingrestriction.crd.yaml deleted file mode 100644 index 5fbc03c98b146..0000000000000 --- a/vendor/github.com/openshift/api/authorization/v1/0000_03_authorization-openshift_01_rolebindingrestriction.crd.yaml +++ /dev/null @@ -1,207 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: rolebindingrestrictions.authorization.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - group: authorization.openshift.io - names: - kind: RoleBindingRestriction - listKind: RoleBindingRestrictionList - plural: rolebindingrestrictions - singular: rolebindingrestriction - scope: Namespaced - preserveUnknownFields: false - versions: - - name: v1 - served: true - storage: true - "validation": - "openAPIV3Schema": - description: RoleBindingRestriction is an object that can be matched against - a subject (user, group, or service account) to determine whether rolebindings - on that subject are allowed in the namespace to which the RoleBindingRestriction - belongs. If any one of those RoleBindingRestriction objects matches a subject, - rolebindings on that subject in the namespace are allowed. - type: object - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: Spec defines the matcher. - type: object - properties: - grouprestriction: - description: GroupRestriction matches against group subjects. - type: object - properties: - groups: - description: Groups is a list of groups used to match against an - individual user's groups. If the user is a member of one of the - whitelisted groups, the user is allowed to be bound to a role. - type: array - items: - type: string - nullable: true - labels: - description: Selectors specifies a list of label selectors over - group labels. - type: array - items: - description: A label selector is a label query over a set of resources. - The result of matchLabels and matchExpressions are ANDed. An - empty label selector matches all objects. A null label selector - matches no objects. - type: object - properties: - matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. - type: array - items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that relates - the key and values. - type: object - required: - - key - - operator - properties: - key: - description: key is the label key that the selector - applies to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, NotIn, - Exists and DoesNotExist. - type: string - values: - description: values is an array of string values. If - the operator is In or NotIn, the values array must - be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced - during a strategic merge patch. - type: array - items: - type: string - matchLabels: - description: matchLabels is a map of {key,value} pairs. A - single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is "key", - the operator is "In", and the values array contains only - "value". The requirements are ANDed. - type: object - additionalProperties: - type: string - nullable: true - nullable: true - serviceaccountrestriction: - description: ServiceAccountRestriction matches against service-account - subjects. - type: object - properties: - namespaces: - description: Namespaces specifies a list of literal namespace names. - type: array - items: - type: string - serviceaccounts: - description: ServiceAccounts specifies a list of literal service-account - names. - type: array - items: - description: ServiceAccountReference specifies a service account - and namespace by their names. - type: object - properties: - name: - description: Name is the name of the service account. - type: string - namespace: - description: Namespace is the namespace of the service account. Service - accounts from inside the whitelisted namespaces are allowed - to be bound to roles. If Namespace is empty, then the namespace - of the RoleBindingRestriction in which the ServiceAccountReference - is embedded is used. - type: string - nullable: true - userrestriction: - description: UserRestriction matches against user subjects. - type: object - properties: - groups: - description: Groups specifies a list of literal group names. - type: array - items: - type: string - nullable: true - labels: - description: Selectors specifies a list of label selectors over - user labels. - type: array - items: - description: A label selector is a label query over a set of resources. - The result of matchLabels and matchExpressions are ANDed. An - empty label selector matches all objects. A null label selector - matches no objects. - type: object - properties: - matchExpressions: - description: matchExpressions is a list of label selector - requirements. The requirements are ANDed. - type: array - items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that relates - the key and values. - type: object - required: - - key - - operator - properties: - key: - description: key is the label key that the selector - applies to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, NotIn, - Exists and DoesNotExist. - type: string - values: - description: values is an array of string values. If - the operator is In or NotIn, the values array must - be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced - during a strategic merge patch. - type: array - items: - type: string - matchLabels: - description: matchLabels is a map of {key,value} pairs. A - single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field is "key", - the operator is "In", and the values array contains only - "value". The requirements are ANDed. - type: object - additionalProperties: - type: string - nullable: true - users: - description: Users specifies a list of literal user names. - type: array - items: - type: string - nullable: true diff --git a/vendor/github.com/openshift/api/authorization/v1/codec.go b/vendor/github.com/openshift/api/authorization/v1/codec.go deleted file mode 100644 index 61f1f9f514666..0000000000000 --- a/vendor/github.com/openshift/api/authorization/v1/codec.go +++ /dev/null @@ -1,139 +0,0 @@ -package v1 - -import ( - "github.com/openshift/api/pkg/serialization" - runtime "k8s.io/apimachinery/pkg/runtime" -) - -var _ runtime.NestedObjectDecoder = &PolicyRule{} -var _ runtime.NestedObjectEncoder = &PolicyRule{} - -func (c *PolicyRule) DecodeNestedObjects(d runtime.Decoder) error { - // decoding failures result in a runtime.Unknown object being created in Object and passed - // to conversion - serialization.DecodeNestedRawExtensionOrUnknown(d, &c.AttributeRestrictions) - return nil -} -func (c *PolicyRule) EncodeNestedObjects(e runtime.Encoder) error { - return serialization.EncodeNestedRawExtension(e, &c.AttributeRestrictions) -} - -var _ runtime.NestedObjectDecoder = &SelfSubjectRulesReview{} -var _ runtime.NestedObjectEncoder = &SelfSubjectRulesReview{} - -func (c *SelfSubjectRulesReview) DecodeNestedObjects(d runtime.Decoder) error { - // decoding failures result in a runtime.Unknown object being created in Object and passed - // to conversion - for i := range c.Status.Rules { - c.Status.Rules[i].DecodeNestedObjects(d) - } - return nil -} -func (c *SelfSubjectRulesReview) EncodeNestedObjects(e runtime.Encoder) error { - for i := range c.Status.Rules { - if err := c.Status.Rules[i].EncodeNestedObjects(e); err != nil { - return err - } - } - return nil -} - -var _ runtime.NestedObjectDecoder = &SubjectRulesReview{} -var _ runtime.NestedObjectEncoder = &SubjectRulesReview{} - -func (c *SubjectRulesReview) DecodeNestedObjects(d runtime.Decoder) error { - // decoding failures result in a runtime.Unknown object being created in Object and passed - // to conversion - for i := range c.Status.Rules { - c.Status.Rules[i].DecodeNestedObjects(d) - } - return nil -} -func (c *SubjectRulesReview) EncodeNestedObjects(e runtime.Encoder) error { - for i := range c.Status.Rules { - if err := c.Status.Rules[i].EncodeNestedObjects(e); err != nil { - return err - } - } - return nil -} - -var _ runtime.NestedObjectDecoder = &ClusterRole{} -var _ runtime.NestedObjectEncoder = &ClusterRole{} - -func (c *ClusterRole) DecodeNestedObjects(d runtime.Decoder) error { - // decoding failures result in a runtime.Unknown object being created in Object and passed - // to conversion - for i := range c.Rules { - c.Rules[i].DecodeNestedObjects(d) - } - return nil -} -func (c *ClusterRole) EncodeNestedObjects(e runtime.Encoder) error { - for i := range c.Rules { - if err := c.Rules[i].EncodeNestedObjects(e); err != nil { - return err - } - } - return nil -} - -var _ runtime.NestedObjectDecoder = &Role{} -var _ runtime.NestedObjectEncoder = &Role{} - -func (c *Role) DecodeNestedObjects(d runtime.Decoder) error { - // decoding failures result in a runtime.Unknown object being created in Object and passed - // to conversion - for i := range c.Rules { - c.Rules[i].DecodeNestedObjects(d) - } - return nil -} -func (c *Role) EncodeNestedObjects(e runtime.Encoder) error { - for i := range c.Rules { - if err := c.Rules[i].EncodeNestedObjects(e); err != nil { - return err - } - } - return nil -} - -var _ runtime.NestedObjectDecoder = &ClusterRoleList{} -var _ runtime.NestedObjectEncoder = &ClusterRoleList{} - -func (c *ClusterRoleList) DecodeNestedObjects(d runtime.Decoder) error { - // decoding failures result in a runtime.Unknown object being created in Object and passed - // to conversion - for i := range c.Items { - c.Items[i].DecodeNestedObjects(d) - } - return nil -} -func (c *ClusterRoleList) EncodeNestedObjects(e runtime.Encoder) error { - for i := range c.Items { - if err := c.Items[i].EncodeNestedObjects(e); err != nil { - return err - } - } - return nil -} - -var _ runtime.NestedObjectDecoder = &RoleList{} -var _ runtime.NestedObjectEncoder = &RoleList{} - -func (c *RoleList) DecodeNestedObjects(d runtime.Decoder) error { - // decoding failures result in a runtime.Unknown object being created in Object and passed - // to conversion - for i := range c.Items { - c.Items[i].DecodeNestedObjects(d) - } - return nil -} -func (c *RoleList) EncodeNestedObjects(e runtime.Encoder) error { - for i := range c.Items { - if err := c.Items[i].EncodeNestedObjects(e); err != nil { - return err - } - } - return nil -} diff --git a/vendor/github.com/openshift/api/authorization/v1/doc.go b/vendor/github.com/openshift/api/authorization/v1/doc.go deleted file mode 100644 index a66741dce6b5d..0000000000000 --- a/vendor/github.com/openshift/api/authorization/v1/doc.go +++ /dev/null @@ -1,9 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=github.com/openshift/origin/pkg/authorization/apis/authorization -// +k8s:defaulter-gen=TypeMeta -// +k8s:openapi-gen=true - -// +kubebuilder:validation:Optional -// +groupName=authorization.openshift.io -// Package v1 is the v1 version of the API. -package v1 diff --git a/vendor/github.com/openshift/api/authorization/v1/generated.pb.go b/vendor/github.com/openshift/api/authorization/v1/generated.pb.go deleted file mode 100644 index d8c343a092ab9..0000000000000 --- a/vendor/github.com/openshift/api/authorization/v1/generated.pb.go +++ /dev/null @@ -1,8917 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: github.com/openshift/api/authorization/v1/generated.proto - -package v1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - v12 "k8s.io/api/core/v1" - v11 "k8s.io/api/rbac/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *Action) Reset() { *m = Action{} } -func (*Action) ProtoMessage() {} -func (*Action) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{0} -} -func (m *Action) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Action) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *Action) XXX_Merge(src proto.Message) { - xxx_messageInfo_Action.Merge(m, src) -} -func (m *Action) XXX_Size() int { - return m.Size() -} -func (m *Action) XXX_DiscardUnknown() { - xxx_messageInfo_Action.DiscardUnknown(m) -} - -var xxx_messageInfo_Action proto.InternalMessageInfo - -func (m *ClusterRole) Reset() { *m = ClusterRole{} } -func (*ClusterRole) ProtoMessage() {} -func (*ClusterRole) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{1} -} -func (m *ClusterRole) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterRole) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ClusterRole) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterRole.Merge(m, src) -} -func (m *ClusterRole) XXX_Size() int { - return m.Size() -} -func (m *ClusterRole) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterRole.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterRole proto.InternalMessageInfo - -func (m *ClusterRoleBinding) Reset() { *m = ClusterRoleBinding{} } -func (*ClusterRoleBinding) ProtoMessage() {} -func (*ClusterRoleBinding) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{2} -} -func (m *ClusterRoleBinding) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterRoleBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ClusterRoleBinding) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterRoleBinding.Merge(m, src) -} -func (m *ClusterRoleBinding) XXX_Size() int { - return m.Size() -} -func (m *ClusterRoleBinding) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterRoleBinding.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterRoleBinding proto.InternalMessageInfo - -func (m *ClusterRoleBindingList) Reset() { *m = ClusterRoleBindingList{} } -func (*ClusterRoleBindingList) ProtoMessage() {} -func (*ClusterRoleBindingList) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{3} -} -func (m *ClusterRoleBindingList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterRoleBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ClusterRoleBindingList) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterRoleBindingList.Merge(m, src) -} -func (m *ClusterRoleBindingList) XXX_Size() int { - return m.Size() -} -func (m *ClusterRoleBindingList) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterRoleBindingList.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterRoleBindingList proto.InternalMessageInfo - -func (m *ClusterRoleList) Reset() { *m = ClusterRoleList{} } -func (*ClusterRoleList) ProtoMessage() {} -func (*ClusterRoleList) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{4} -} -func (m *ClusterRoleList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterRoleList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ClusterRoleList) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterRoleList.Merge(m, src) -} -func (m *ClusterRoleList) XXX_Size() int { - return m.Size() -} -func (m *ClusterRoleList) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterRoleList.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterRoleList proto.InternalMessageInfo - -func (m *GroupRestriction) Reset() { *m = GroupRestriction{} } -func (*GroupRestriction) ProtoMessage() {} -func (*GroupRestriction) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{5} -} -func (m *GroupRestriction) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *GroupRestriction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *GroupRestriction) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupRestriction.Merge(m, src) -} -func (m *GroupRestriction) XXX_Size() int { - return m.Size() -} -func (m *GroupRestriction) XXX_DiscardUnknown() { - xxx_messageInfo_GroupRestriction.DiscardUnknown(m) -} - -var xxx_messageInfo_GroupRestriction proto.InternalMessageInfo - -func (m *IsPersonalSubjectAccessReview) Reset() { *m = IsPersonalSubjectAccessReview{} } -func (*IsPersonalSubjectAccessReview) ProtoMessage() {} -func (*IsPersonalSubjectAccessReview) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{6} -} -func (m *IsPersonalSubjectAccessReview) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *IsPersonalSubjectAccessReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *IsPersonalSubjectAccessReview) XXX_Merge(src proto.Message) { - xxx_messageInfo_IsPersonalSubjectAccessReview.Merge(m, src) -} -func (m *IsPersonalSubjectAccessReview) XXX_Size() int { - return m.Size() -} -func (m *IsPersonalSubjectAccessReview) XXX_DiscardUnknown() { - xxx_messageInfo_IsPersonalSubjectAccessReview.DiscardUnknown(m) -} - -var xxx_messageInfo_IsPersonalSubjectAccessReview proto.InternalMessageInfo - -func (m *LocalResourceAccessReview) Reset() { *m = LocalResourceAccessReview{} } -func (*LocalResourceAccessReview) ProtoMessage() {} -func (*LocalResourceAccessReview) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{7} -} -func (m *LocalResourceAccessReview) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *LocalResourceAccessReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *LocalResourceAccessReview) XXX_Merge(src proto.Message) { - xxx_messageInfo_LocalResourceAccessReview.Merge(m, src) -} -func (m *LocalResourceAccessReview) XXX_Size() int { - return m.Size() -} -func (m *LocalResourceAccessReview) XXX_DiscardUnknown() { - xxx_messageInfo_LocalResourceAccessReview.DiscardUnknown(m) -} - -var xxx_messageInfo_LocalResourceAccessReview proto.InternalMessageInfo - -func (m *LocalSubjectAccessReview) Reset() { *m = LocalSubjectAccessReview{} } -func (*LocalSubjectAccessReview) ProtoMessage() {} -func (*LocalSubjectAccessReview) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{8} -} -func (m *LocalSubjectAccessReview) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *LocalSubjectAccessReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *LocalSubjectAccessReview) XXX_Merge(src proto.Message) { - xxx_messageInfo_LocalSubjectAccessReview.Merge(m, src) -} -func (m *LocalSubjectAccessReview) XXX_Size() int { - return m.Size() -} -func (m *LocalSubjectAccessReview) XXX_DiscardUnknown() { - xxx_messageInfo_LocalSubjectAccessReview.DiscardUnknown(m) -} - -var xxx_messageInfo_LocalSubjectAccessReview proto.InternalMessageInfo - -func (m *NamedClusterRole) Reset() { *m = NamedClusterRole{} } -func (*NamedClusterRole) ProtoMessage() {} -func (*NamedClusterRole) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{9} -} -func (m *NamedClusterRole) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *NamedClusterRole) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *NamedClusterRole) XXX_Merge(src proto.Message) { - xxx_messageInfo_NamedClusterRole.Merge(m, src) -} -func (m *NamedClusterRole) XXX_Size() int { - return m.Size() -} -func (m *NamedClusterRole) XXX_DiscardUnknown() { - xxx_messageInfo_NamedClusterRole.DiscardUnknown(m) -} - -var xxx_messageInfo_NamedClusterRole proto.InternalMessageInfo - -func (m *NamedClusterRoleBinding) Reset() { *m = NamedClusterRoleBinding{} } -func (*NamedClusterRoleBinding) ProtoMessage() {} -func (*NamedClusterRoleBinding) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{10} -} -func (m *NamedClusterRoleBinding) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *NamedClusterRoleBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *NamedClusterRoleBinding) XXX_Merge(src proto.Message) { - xxx_messageInfo_NamedClusterRoleBinding.Merge(m, src) -} -func (m *NamedClusterRoleBinding) XXX_Size() int { - return m.Size() -} -func (m *NamedClusterRoleBinding) XXX_DiscardUnknown() { - xxx_messageInfo_NamedClusterRoleBinding.DiscardUnknown(m) -} - -var xxx_messageInfo_NamedClusterRoleBinding proto.InternalMessageInfo - -func (m *NamedRole) Reset() { *m = NamedRole{} } -func (*NamedRole) ProtoMessage() {} -func (*NamedRole) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{11} -} -func (m *NamedRole) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *NamedRole) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *NamedRole) XXX_Merge(src proto.Message) { - xxx_messageInfo_NamedRole.Merge(m, src) -} -func (m *NamedRole) XXX_Size() int { - return m.Size() -} -func (m *NamedRole) XXX_DiscardUnknown() { - xxx_messageInfo_NamedRole.DiscardUnknown(m) -} - -var xxx_messageInfo_NamedRole proto.InternalMessageInfo - -func (m *NamedRoleBinding) Reset() { *m = NamedRoleBinding{} } -func (*NamedRoleBinding) ProtoMessage() {} -func (*NamedRoleBinding) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{12} -} -func (m *NamedRoleBinding) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *NamedRoleBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *NamedRoleBinding) XXX_Merge(src proto.Message) { - xxx_messageInfo_NamedRoleBinding.Merge(m, src) -} -func (m *NamedRoleBinding) XXX_Size() int { - return m.Size() -} -func (m *NamedRoleBinding) XXX_DiscardUnknown() { - xxx_messageInfo_NamedRoleBinding.DiscardUnknown(m) -} - -var xxx_messageInfo_NamedRoleBinding proto.InternalMessageInfo - -func (m *OptionalNames) Reset() { *m = OptionalNames{} } -func (*OptionalNames) ProtoMessage() {} -func (*OptionalNames) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{13} -} -func (m *OptionalNames) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OptionalNames) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *OptionalNames) XXX_Merge(src proto.Message) { - xxx_messageInfo_OptionalNames.Merge(m, src) -} -func (m *OptionalNames) XXX_Size() int { - return m.Size() -} -func (m *OptionalNames) XXX_DiscardUnknown() { - xxx_messageInfo_OptionalNames.DiscardUnknown(m) -} - -var xxx_messageInfo_OptionalNames proto.InternalMessageInfo - -func (m *OptionalScopes) Reset() { *m = OptionalScopes{} } -func (*OptionalScopes) ProtoMessage() {} -func (*OptionalScopes) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{14} -} -func (m *OptionalScopes) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OptionalScopes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *OptionalScopes) XXX_Merge(src proto.Message) { - xxx_messageInfo_OptionalScopes.Merge(m, src) -} -func (m *OptionalScopes) XXX_Size() int { - return m.Size() -} -func (m *OptionalScopes) XXX_DiscardUnknown() { - xxx_messageInfo_OptionalScopes.DiscardUnknown(m) -} - -var xxx_messageInfo_OptionalScopes proto.InternalMessageInfo - -func (m *PolicyRule) Reset() { *m = PolicyRule{} } -func (*PolicyRule) ProtoMessage() {} -func (*PolicyRule) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{15} -} -func (m *PolicyRule) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *PolicyRule) XXX_Merge(src proto.Message) { - xxx_messageInfo_PolicyRule.Merge(m, src) -} -func (m *PolicyRule) XXX_Size() int { - return m.Size() -} -func (m *PolicyRule) XXX_DiscardUnknown() { - xxx_messageInfo_PolicyRule.DiscardUnknown(m) -} - -var xxx_messageInfo_PolicyRule proto.InternalMessageInfo - -func (m *ResourceAccessReview) Reset() { *m = ResourceAccessReview{} } -func (*ResourceAccessReview) ProtoMessage() {} -func (*ResourceAccessReview) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{16} -} -func (m *ResourceAccessReview) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ResourceAccessReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ResourceAccessReview) XXX_Merge(src proto.Message) { - xxx_messageInfo_ResourceAccessReview.Merge(m, src) -} -func (m *ResourceAccessReview) XXX_Size() int { - return m.Size() -} -func (m *ResourceAccessReview) XXX_DiscardUnknown() { - xxx_messageInfo_ResourceAccessReview.DiscardUnknown(m) -} - -var xxx_messageInfo_ResourceAccessReview proto.InternalMessageInfo - -func (m *ResourceAccessReviewResponse) Reset() { *m = ResourceAccessReviewResponse{} } -func (*ResourceAccessReviewResponse) ProtoMessage() {} -func (*ResourceAccessReviewResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{17} -} -func (m *ResourceAccessReviewResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ResourceAccessReviewResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ResourceAccessReviewResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ResourceAccessReviewResponse.Merge(m, src) -} -func (m *ResourceAccessReviewResponse) XXX_Size() int { - return m.Size() -} -func (m *ResourceAccessReviewResponse) XXX_DiscardUnknown() { - xxx_messageInfo_ResourceAccessReviewResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_ResourceAccessReviewResponse proto.InternalMessageInfo - -func (m *Role) Reset() { *m = Role{} } -func (*Role) ProtoMessage() {} -func (*Role) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{18} -} -func (m *Role) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Role) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *Role) XXX_Merge(src proto.Message) { - xxx_messageInfo_Role.Merge(m, src) -} -func (m *Role) XXX_Size() int { - return m.Size() -} -func (m *Role) XXX_DiscardUnknown() { - xxx_messageInfo_Role.DiscardUnknown(m) -} - -var xxx_messageInfo_Role proto.InternalMessageInfo - -func (m *RoleBinding) Reset() { *m = RoleBinding{} } -func (*RoleBinding) ProtoMessage() {} -func (*RoleBinding) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{19} -} -func (m *RoleBinding) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RoleBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RoleBinding) XXX_Merge(src proto.Message) { - xxx_messageInfo_RoleBinding.Merge(m, src) -} -func (m *RoleBinding) XXX_Size() int { - return m.Size() -} -func (m *RoleBinding) XXX_DiscardUnknown() { - xxx_messageInfo_RoleBinding.DiscardUnknown(m) -} - -var xxx_messageInfo_RoleBinding proto.InternalMessageInfo - -func (m *RoleBindingList) Reset() { *m = RoleBindingList{} } -func (*RoleBindingList) ProtoMessage() {} -func (*RoleBindingList) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{20} -} -func (m *RoleBindingList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RoleBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RoleBindingList) XXX_Merge(src proto.Message) { - xxx_messageInfo_RoleBindingList.Merge(m, src) -} -func (m *RoleBindingList) XXX_Size() int { - return m.Size() -} -func (m *RoleBindingList) XXX_DiscardUnknown() { - xxx_messageInfo_RoleBindingList.DiscardUnknown(m) -} - -var xxx_messageInfo_RoleBindingList proto.InternalMessageInfo - -func (m *RoleBindingRestriction) Reset() { *m = RoleBindingRestriction{} } -func (*RoleBindingRestriction) ProtoMessage() {} -func (*RoleBindingRestriction) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{21} -} -func (m *RoleBindingRestriction) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RoleBindingRestriction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RoleBindingRestriction) XXX_Merge(src proto.Message) { - xxx_messageInfo_RoleBindingRestriction.Merge(m, src) -} -func (m *RoleBindingRestriction) XXX_Size() int { - return m.Size() -} -func (m *RoleBindingRestriction) XXX_DiscardUnknown() { - xxx_messageInfo_RoleBindingRestriction.DiscardUnknown(m) -} - -var xxx_messageInfo_RoleBindingRestriction proto.InternalMessageInfo - -func (m *RoleBindingRestrictionList) Reset() { *m = RoleBindingRestrictionList{} } -func (*RoleBindingRestrictionList) ProtoMessage() {} -func (*RoleBindingRestrictionList) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{22} -} -func (m *RoleBindingRestrictionList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RoleBindingRestrictionList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RoleBindingRestrictionList) XXX_Merge(src proto.Message) { - xxx_messageInfo_RoleBindingRestrictionList.Merge(m, src) -} -func (m *RoleBindingRestrictionList) XXX_Size() int { - return m.Size() -} -func (m *RoleBindingRestrictionList) XXX_DiscardUnknown() { - xxx_messageInfo_RoleBindingRestrictionList.DiscardUnknown(m) -} - -var xxx_messageInfo_RoleBindingRestrictionList proto.InternalMessageInfo - -func (m *RoleBindingRestrictionSpec) Reset() { *m = RoleBindingRestrictionSpec{} } -func (*RoleBindingRestrictionSpec) ProtoMessage() {} -func (*RoleBindingRestrictionSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{23} -} -func (m *RoleBindingRestrictionSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RoleBindingRestrictionSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RoleBindingRestrictionSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_RoleBindingRestrictionSpec.Merge(m, src) -} -func (m *RoleBindingRestrictionSpec) XXX_Size() int { - return m.Size() -} -func (m *RoleBindingRestrictionSpec) XXX_DiscardUnknown() { - xxx_messageInfo_RoleBindingRestrictionSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_RoleBindingRestrictionSpec proto.InternalMessageInfo - -func (m *RoleList) Reset() { *m = RoleList{} } -func (*RoleList) ProtoMessage() {} -func (*RoleList) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{24} -} -func (m *RoleList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RoleList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RoleList) XXX_Merge(src proto.Message) { - xxx_messageInfo_RoleList.Merge(m, src) -} -func (m *RoleList) XXX_Size() int { - return m.Size() -} -func (m *RoleList) XXX_DiscardUnknown() { - xxx_messageInfo_RoleList.DiscardUnknown(m) -} - -var xxx_messageInfo_RoleList proto.InternalMessageInfo - -func (m *SelfSubjectRulesReview) Reset() { *m = SelfSubjectRulesReview{} } -func (*SelfSubjectRulesReview) ProtoMessage() {} -func (*SelfSubjectRulesReview) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{25} -} -func (m *SelfSubjectRulesReview) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SelfSubjectRulesReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SelfSubjectRulesReview) XXX_Merge(src proto.Message) { - xxx_messageInfo_SelfSubjectRulesReview.Merge(m, src) -} -func (m *SelfSubjectRulesReview) XXX_Size() int { - return m.Size() -} -func (m *SelfSubjectRulesReview) XXX_DiscardUnknown() { - xxx_messageInfo_SelfSubjectRulesReview.DiscardUnknown(m) -} - -var xxx_messageInfo_SelfSubjectRulesReview proto.InternalMessageInfo - -func (m *SelfSubjectRulesReviewSpec) Reset() { *m = SelfSubjectRulesReviewSpec{} } -func (*SelfSubjectRulesReviewSpec) ProtoMessage() {} -func (*SelfSubjectRulesReviewSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{26} -} -func (m *SelfSubjectRulesReviewSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SelfSubjectRulesReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SelfSubjectRulesReviewSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_SelfSubjectRulesReviewSpec.Merge(m, src) -} -func (m *SelfSubjectRulesReviewSpec) XXX_Size() int { - return m.Size() -} -func (m *SelfSubjectRulesReviewSpec) XXX_DiscardUnknown() { - xxx_messageInfo_SelfSubjectRulesReviewSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_SelfSubjectRulesReviewSpec proto.InternalMessageInfo - -func (m *ServiceAccountReference) Reset() { *m = ServiceAccountReference{} } -func (*ServiceAccountReference) ProtoMessage() {} -func (*ServiceAccountReference) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{27} -} -func (m *ServiceAccountReference) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ServiceAccountReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ServiceAccountReference) XXX_Merge(src proto.Message) { - xxx_messageInfo_ServiceAccountReference.Merge(m, src) -} -func (m *ServiceAccountReference) XXX_Size() int { - return m.Size() -} -func (m *ServiceAccountReference) XXX_DiscardUnknown() { - xxx_messageInfo_ServiceAccountReference.DiscardUnknown(m) -} - -var xxx_messageInfo_ServiceAccountReference proto.InternalMessageInfo - -func (m *ServiceAccountRestriction) Reset() { *m = ServiceAccountRestriction{} } -func (*ServiceAccountRestriction) ProtoMessage() {} -func (*ServiceAccountRestriction) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{28} -} -func (m *ServiceAccountRestriction) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ServiceAccountRestriction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ServiceAccountRestriction) XXX_Merge(src proto.Message) { - xxx_messageInfo_ServiceAccountRestriction.Merge(m, src) -} -func (m *ServiceAccountRestriction) XXX_Size() int { - return m.Size() -} -func (m *ServiceAccountRestriction) XXX_DiscardUnknown() { - xxx_messageInfo_ServiceAccountRestriction.DiscardUnknown(m) -} - -var xxx_messageInfo_ServiceAccountRestriction proto.InternalMessageInfo - -func (m *SubjectAccessReview) Reset() { *m = SubjectAccessReview{} } -func (*SubjectAccessReview) ProtoMessage() {} -func (*SubjectAccessReview) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{29} -} -func (m *SubjectAccessReview) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SubjectAccessReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SubjectAccessReview) XXX_Merge(src proto.Message) { - xxx_messageInfo_SubjectAccessReview.Merge(m, src) -} -func (m *SubjectAccessReview) XXX_Size() int { - return m.Size() -} -func (m *SubjectAccessReview) XXX_DiscardUnknown() { - xxx_messageInfo_SubjectAccessReview.DiscardUnknown(m) -} - -var xxx_messageInfo_SubjectAccessReview proto.InternalMessageInfo - -func (m *SubjectAccessReviewResponse) Reset() { *m = SubjectAccessReviewResponse{} } -func (*SubjectAccessReviewResponse) ProtoMessage() {} -func (*SubjectAccessReviewResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{30} -} -func (m *SubjectAccessReviewResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SubjectAccessReviewResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SubjectAccessReviewResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_SubjectAccessReviewResponse.Merge(m, src) -} -func (m *SubjectAccessReviewResponse) XXX_Size() int { - return m.Size() -} -func (m *SubjectAccessReviewResponse) XXX_DiscardUnknown() { - xxx_messageInfo_SubjectAccessReviewResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_SubjectAccessReviewResponse proto.InternalMessageInfo - -func (m *SubjectRulesReview) Reset() { *m = SubjectRulesReview{} } -func (*SubjectRulesReview) ProtoMessage() {} -func (*SubjectRulesReview) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{31} -} -func (m *SubjectRulesReview) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SubjectRulesReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SubjectRulesReview) XXX_Merge(src proto.Message) { - xxx_messageInfo_SubjectRulesReview.Merge(m, src) -} -func (m *SubjectRulesReview) XXX_Size() int { - return m.Size() -} -func (m *SubjectRulesReview) XXX_DiscardUnknown() { - xxx_messageInfo_SubjectRulesReview.DiscardUnknown(m) -} - -var xxx_messageInfo_SubjectRulesReview proto.InternalMessageInfo - -func (m *SubjectRulesReviewSpec) Reset() { *m = SubjectRulesReviewSpec{} } -func (*SubjectRulesReviewSpec) ProtoMessage() {} -func (*SubjectRulesReviewSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{32} -} -func (m *SubjectRulesReviewSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SubjectRulesReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SubjectRulesReviewSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_SubjectRulesReviewSpec.Merge(m, src) -} -func (m *SubjectRulesReviewSpec) XXX_Size() int { - return m.Size() -} -func (m *SubjectRulesReviewSpec) XXX_DiscardUnknown() { - xxx_messageInfo_SubjectRulesReviewSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_SubjectRulesReviewSpec proto.InternalMessageInfo - -func (m *SubjectRulesReviewStatus) Reset() { *m = SubjectRulesReviewStatus{} } -func (*SubjectRulesReviewStatus) ProtoMessage() {} -func (*SubjectRulesReviewStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{33} -} -func (m *SubjectRulesReviewStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SubjectRulesReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SubjectRulesReviewStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_SubjectRulesReviewStatus.Merge(m, src) -} -func (m *SubjectRulesReviewStatus) XXX_Size() int { - return m.Size() -} -func (m *SubjectRulesReviewStatus) XXX_DiscardUnknown() { - xxx_messageInfo_SubjectRulesReviewStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_SubjectRulesReviewStatus proto.InternalMessageInfo - -func (m *UserRestriction) Reset() { *m = UserRestriction{} } -func (*UserRestriction) ProtoMessage() {} -func (*UserRestriction) Descriptor() ([]byte, []int) { - return fileDescriptor_39b89822f939ca46, []int{34} -} -func (m *UserRestriction) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *UserRestriction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *UserRestriction) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserRestriction.Merge(m, src) -} -func (m *UserRestriction) XXX_Size() int { - return m.Size() -} -func (m *UserRestriction) XXX_DiscardUnknown() { - xxx_messageInfo_UserRestriction.DiscardUnknown(m) -} - -var xxx_messageInfo_UserRestriction proto.InternalMessageInfo - -func init() { - proto.RegisterType((*Action)(nil), "github.com.openshift.api.authorization.v1.Action") - proto.RegisterType((*ClusterRole)(nil), "github.com.openshift.api.authorization.v1.ClusterRole") - proto.RegisterType((*ClusterRoleBinding)(nil), "github.com.openshift.api.authorization.v1.ClusterRoleBinding") - proto.RegisterType((*ClusterRoleBindingList)(nil), "github.com.openshift.api.authorization.v1.ClusterRoleBindingList") - proto.RegisterType((*ClusterRoleList)(nil), "github.com.openshift.api.authorization.v1.ClusterRoleList") - proto.RegisterType((*GroupRestriction)(nil), "github.com.openshift.api.authorization.v1.GroupRestriction") - proto.RegisterType((*IsPersonalSubjectAccessReview)(nil), "github.com.openshift.api.authorization.v1.IsPersonalSubjectAccessReview") - proto.RegisterType((*LocalResourceAccessReview)(nil), "github.com.openshift.api.authorization.v1.LocalResourceAccessReview") - proto.RegisterType((*LocalSubjectAccessReview)(nil), "github.com.openshift.api.authorization.v1.LocalSubjectAccessReview") - proto.RegisterType((*NamedClusterRole)(nil), "github.com.openshift.api.authorization.v1.NamedClusterRole") - proto.RegisterType((*NamedClusterRoleBinding)(nil), "github.com.openshift.api.authorization.v1.NamedClusterRoleBinding") - proto.RegisterType((*NamedRole)(nil), "github.com.openshift.api.authorization.v1.NamedRole") - proto.RegisterType((*NamedRoleBinding)(nil), "github.com.openshift.api.authorization.v1.NamedRoleBinding") - proto.RegisterType((*OptionalNames)(nil), "github.com.openshift.api.authorization.v1.OptionalNames") - proto.RegisterType((*OptionalScopes)(nil), "github.com.openshift.api.authorization.v1.OptionalScopes") - proto.RegisterType((*PolicyRule)(nil), "github.com.openshift.api.authorization.v1.PolicyRule") - proto.RegisterType((*ResourceAccessReview)(nil), "github.com.openshift.api.authorization.v1.ResourceAccessReview") - proto.RegisterType((*ResourceAccessReviewResponse)(nil), "github.com.openshift.api.authorization.v1.ResourceAccessReviewResponse") - proto.RegisterType((*Role)(nil), "github.com.openshift.api.authorization.v1.Role") - proto.RegisterType((*RoleBinding)(nil), "github.com.openshift.api.authorization.v1.RoleBinding") - proto.RegisterType((*RoleBindingList)(nil), "github.com.openshift.api.authorization.v1.RoleBindingList") - proto.RegisterType((*RoleBindingRestriction)(nil), "github.com.openshift.api.authorization.v1.RoleBindingRestriction") - proto.RegisterType((*RoleBindingRestrictionList)(nil), "github.com.openshift.api.authorization.v1.RoleBindingRestrictionList") - proto.RegisterType((*RoleBindingRestrictionSpec)(nil), "github.com.openshift.api.authorization.v1.RoleBindingRestrictionSpec") - proto.RegisterType((*RoleList)(nil), "github.com.openshift.api.authorization.v1.RoleList") - proto.RegisterType((*SelfSubjectRulesReview)(nil), "github.com.openshift.api.authorization.v1.SelfSubjectRulesReview") - proto.RegisterType((*SelfSubjectRulesReviewSpec)(nil), "github.com.openshift.api.authorization.v1.SelfSubjectRulesReviewSpec") - proto.RegisterType((*ServiceAccountReference)(nil), "github.com.openshift.api.authorization.v1.ServiceAccountReference") - proto.RegisterType((*ServiceAccountRestriction)(nil), "github.com.openshift.api.authorization.v1.ServiceAccountRestriction") - proto.RegisterType((*SubjectAccessReview)(nil), "github.com.openshift.api.authorization.v1.SubjectAccessReview") - proto.RegisterType((*SubjectAccessReviewResponse)(nil), "github.com.openshift.api.authorization.v1.SubjectAccessReviewResponse") - proto.RegisterType((*SubjectRulesReview)(nil), "github.com.openshift.api.authorization.v1.SubjectRulesReview") - proto.RegisterType((*SubjectRulesReviewSpec)(nil), "github.com.openshift.api.authorization.v1.SubjectRulesReviewSpec") - proto.RegisterType((*SubjectRulesReviewStatus)(nil), "github.com.openshift.api.authorization.v1.SubjectRulesReviewStatus") - proto.RegisterType((*UserRestriction)(nil), "github.com.openshift.api.authorization.v1.UserRestriction") -} - -func init() { - proto.RegisterFile("github.com/openshift/api/authorization/v1/generated.proto", fileDescriptor_39b89822f939ca46) -} - -var fileDescriptor_39b89822f939ca46 = []byte{ - // 1821 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x19, 0xcd, 0x6f, 0x1b, 0x59, - 0x3d, 0xcf, 0x76, 0x1c, 0xfb, 0xe7, 0x26, 0xce, 0xbe, 0x66, 0xdb, 0x69, 0xa0, 0xb6, 0x35, 0x20, - 0xc8, 0x0a, 0x76, 0x4c, 0x02, 0x94, 0xb6, 0x2b, 0xb4, 0xb2, 0xbb, 0x51, 0x15, 0xa9, 0xb4, 0xd9, - 0x17, 0x76, 0xb5, 0x5a, 0x3e, 0xc4, 0x78, 0xf2, 0x62, 0x0f, 0x19, 0xcf, 0x58, 0xf3, 0xc6, 0x2e, - 0x05, 0x21, 0x15, 0x24, 0x0e, 0x5c, 0xd0, 0x5e, 0x40, 0x1c, 0x41, 0xfc, 0x01, 0x88, 0x0b, 0x12, - 0x48, 0x70, 0xe2, 0xd0, 0x03, 0x87, 0x95, 0xb8, 0x54, 0x08, 0x19, 0xea, 0x22, 0x0e, 0x1c, 0xf8, - 0x1b, 0xd0, 0x7b, 0xf3, 0xc6, 0xf3, 0xe1, 0xb1, 0xe2, 0x49, 0x9a, 0x08, 0x56, 0xbd, 0x79, 0xde, - 0xef, 0xfb, 0xf3, 0xfd, 0x7e, 0xcf, 0x70, 0xab, 0x6b, 0x7a, 0xbd, 0x61, 0x47, 0x33, 0x9c, 0x7e, - 0xd3, 0x19, 0x50, 0x9b, 0xf5, 0xcc, 0x23, 0xaf, 0xa9, 0x0f, 0xcc, 0xa6, 0x3e, 0xf4, 0x7a, 0x8e, - 0x6b, 0x7e, 0x57, 0xf7, 0x4c, 0xc7, 0x6e, 0x8e, 0xb6, 0x9b, 0x5d, 0x6a, 0x53, 0x57, 0xf7, 0xe8, - 0xa1, 0x36, 0x70, 0x1d, 0xcf, 0xc1, 0xaf, 0x85, 0xa4, 0xda, 0x94, 0x54, 0xd3, 0x07, 0xa6, 0x16, - 0x23, 0xd5, 0x46, 0xdb, 0x9b, 0xaf, 0x47, 0xa4, 0x74, 0x9d, 0xae, 0xd3, 0x14, 0x1c, 0x3a, 0xc3, - 0x23, 0xf1, 0x25, 0x3e, 0xc4, 0x2f, 0x9f, 0xf3, 0xa6, 0x7a, 0x7c, 0x93, 0x69, 0xa6, 0x23, 0xd4, - 0x30, 0x1c, 0x97, 0xa6, 0x48, 0x8f, 0xe1, 0xb8, 0x1d, 0xdd, 0x48, 0xc3, 0xf9, 0x42, 0x88, 0xd3, - 0xd7, 0x8d, 0x9e, 0x69, 0x53, 0xf7, 0x51, 0x73, 0x70, 0xdc, 0xe5, 0x07, 0xac, 0xd9, 0xa7, 0x9e, - 0x9e, 0x46, 0xd5, 0x9c, 0x47, 0xe5, 0x0e, 0x6d, 0xcf, 0xec, 0xd3, 0x19, 0x82, 0x1b, 0x27, 0x11, - 0x30, 0xa3, 0x47, 0xfb, 0x7a, 0x92, 0x4e, 0xfd, 0x41, 0x01, 0x8a, 0x2d, 0x83, 0xfb, 0x08, 0x37, - 0xa1, 0x6c, 0xeb, 0x7d, 0xca, 0x06, 0xba, 0x41, 0x15, 0xd4, 0x40, 0x5b, 0xe5, 0xf6, 0x2b, 0x4f, - 0xc6, 0xf5, 0xa5, 0xc9, 0xb8, 0x5e, 0xbe, 0x1f, 0x00, 0x48, 0x88, 0x83, 0x1b, 0x50, 0x18, 0x51, - 0xb7, 0xa3, 0xe4, 0x04, 0xee, 0x25, 0x89, 0x5b, 0x78, 0x97, 0xba, 0x1d, 0x22, 0x20, 0xf8, 0x16, - 0xac, 0xbb, 0x94, 0x39, 0x43, 0xd7, 0xa0, 0xad, 0xfd, 0xbd, 0xbb, 0xae, 0x33, 0x1c, 0x28, 0x79, - 0x81, 0xbd, 0x2a, 0xb1, 0x97, 0xc5, 0x21, 0x99, 0x41, 0xc3, 0x6f, 0x02, 0x8e, 0x9c, 0xbd, 0x4b, - 0x5d, 0x66, 0x3a, 0xb6, 0x52, 0x10, 0xc4, 0x55, 0x49, 0xbc, 0x22, 0x8f, 0x49, 0x0a, 0x2a, 0xfe, - 0x2c, 0x94, 0x82, 0x53, 0x65, 0x59, 0x90, 0xad, 0x4b, 0xb2, 0x12, 0x91, 0xe7, 0x64, 0x8a, 0x81, - 0x6f, 0xc2, 0xa5, 0xe0, 0x37, 0xb7, 0x55, 0x29, 0x0a, 0x8a, 0x0d, 0x49, 0x71, 0x89, 0x44, 0x60, - 0x24, 0x86, 0xc9, 0xbd, 0x30, 0xd0, 0xbd, 0x9e, 0x52, 0x8a, 0x7b, 0x61, 0x5f, 0xf7, 0x7a, 0x44, - 0x40, 0xf0, 0x5b, 0xb0, 0x6e, 0xb2, 0xfb, 0x8e, 0x1d, 0x30, 0x79, 0x87, 0xdc, 0x53, 0xca, 0x0d, - 0xb4, 0x55, 0x6a, 0x2b, 0x12, 0x7b, 0x7d, 0x2f, 0x01, 0x27, 0x33, 0x14, 0xf8, 0x3d, 0x58, 0x31, - 0x1c, 0xdb, 0xa3, 0xb6, 0xa7, 0xac, 0x34, 0xd0, 0x56, 0x65, 0xe7, 0x75, 0xcd, 0x8f, 0xb9, 0x16, - 0x8d, 0xb9, 0x36, 0x38, 0xee, 0x6a, 0x32, 0xe6, 0x1a, 0xd1, 0x1f, 0xee, 0x7e, 0xc7, 0xa3, 0x36, - 0xf7, 0x47, 0xe8, 0xb4, 0x3b, 0x3e, 0x17, 0x12, 0xb0, 0x53, 0x7f, 0x9d, 0x83, 0xca, 0x1d, 0x6b, - 0xc8, 0x3c, 0xea, 0x12, 0xc7, 0xa2, 0xf8, 0x5b, 0x50, 0xe2, 0x79, 0x79, 0xa8, 0x7b, 0xba, 0xc8, - 0x83, 0xca, 0xce, 0xe7, 0xe6, 0x8a, 0xe2, 0x59, 0xac, 0x71, 0x6c, 0x6d, 0xb4, 0xad, 0x3d, 0xe8, - 0x7c, 0x9b, 0x1a, 0xde, 0x57, 0xa8, 0xa7, 0xb7, 0xb1, 0x94, 0x06, 0xe1, 0x19, 0x99, 0x72, 0xc5, - 0xef, 0xc3, 0xb2, 0x3b, 0xb4, 0x28, 0x53, 0x72, 0x8d, 0xfc, 0x56, 0x65, 0xe7, 0x8b, 0xda, 0xc2, - 0x65, 0xac, 0xed, 0x3b, 0x96, 0x69, 0x3c, 0x22, 0x43, 0x8b, 0x86, 0x39, 0xc4, 0xbf, 0x18, 0xf1, - 0x59, 0xe2, 0x0e, 0x54, 0xf5, 0x6e, 0xd7, 0xa5, 0x5d, 0x41, 0xc2, 0x41, 0x22, 0xe5, 0x2a, 0x3b, - 0x9f, 0x88, 0x18, 0xa1, 0xf1, 0x72, 0xe5, 0xec, 0x5a, 0x71, 0xd4, 0xf6, 0xe5, 0xc9, 0xb8, 0x5e, - 0x4d, 0x1c, 0x92, 0x24, 0x43, 0xf5, 0xdf, 0x79, 0xc0, 0x11, 0x8f, 0xb5, 0x4d, 0xfb, 0xd0, 0xb4, - 0xbb, 0x17, 0xe0, 0x38, 0x0a, 0xe5, 0x21, 0xa3, 0xae, 0x28, 0x47, 0x51, 0x77, 0x95, 0x9d, 0x9b, - 0x19, 0x9c, 0xf7, 0x60, 0xc0, 0x7f, 0xe9, 0x96, 0xa0, 0x6f, 0xaf, 0xf2, 0xca, 0x7e, 0x27, 0x60, - 0x47, 0x42, 0xce, 0xb8, 0x07, 0xd0, 0xe5, 0x55, 0xe8, 0xcb, 0xc9, 0x9f, 0x51, 0xce, 0x1a, 0x37, - 0xe7, 0xee, 0x94, 0x1f, 0x89, 0xf0, 0xc6, 0x6f, 0x43, 0x89, 0x0d, 0x85, 0xa5, 0x4c, 0x29, 0x88, - 0x64, 0x88, 0x85, 0x89, 0x77, 0xde, 0xd0, 0x41, 0x84, 0x1e, 0x51, 0x97, 0xda, 0x06, 0x0d, 0x4b, - 0xf9, 0x40, 0x12, 0x93, 0x29, 0x1b, 0x7c, 0x1f, 0x56, 0x5c, 0xc7, 0xa2, 0x84, 0x1e, 0x89, 0xba, - 0x5f, 0x90, 0xe3, 0xb4, 0x3c, 0x88, 0x4f, 0x4b, 0x02, 0x26, 0xea, 0x5f, 0x11, 0x5c, 0x99, 0x0d, - 0xf6, 0x3d, 0x93, 0x79, 0xf8, 0xeb, 0x33, 0x01, 0xd7, 0x16, 0x0b, 0x38, 0xa7, 0x16, 0xe1, 0x9e, - 0x1a, 0x12, 0x9c, 0x44, 0x82, 0xdd, 0x81, 0x65, 0xd3, 0xa3, 0xfd, 0xa0, 0x4a, 0xbe, 0x9c, 0x21, - 0x00, 0xb3, 0xfa, 0x86, 0xd5, 0xb2, 0xc7, 0x79, 0x12, 0x9f, 0xb5, 0xfa, 0x67, 0x04, 0xd5, 0x08, - 0xf2, 0x05, 0x58, 0xf5, 0xb5, 0xb8, 0x55, 0x37, 0x4e, 0x69, 0x55, 0xba, 0x39, 0x3f, 0x43, 0xb0, - 0xee, 0xdf, 0x28, 0x94, 0x79, 0xae, 0xe9, 0x5f, 0x6c, 0x2a, 0x14, 0x45, 0xc6, 0x31, 0x05, 0x35, - 0xf2, 0x5b, 0xe5, 0x36, 0x4c, 0xc6, 0xf5, 0xa2, 0xc0, 0x62, 0x44, 0x42, 0xf0, 0x37, 0xa1, 0x68, - 0xe9, 0x1d, 0x6a, 0x05, 0x6a, 0x7d, 0x7e, 0x41, 0x8b, 0x39, 0xcd, 0x01, 0xb5, 0xa8, 0xe1, 0x39, - 0x6e, 0x78, 0x5d, 0x06, 0x27, 0x8c, 0x48, 0xae, 0x6a, 0x1d, 0xae, 0xef, 0xb1, 0x7d, 0xea, 0x32, - 0x5e, 0x16, 0x32, 0x69, 0x5b, 0x86, 0x41, 0x19, 0x23, 0x74, 0x64, 0xd2, 0x87, 0xaa, 0x05, 0xd7, - 0xee, 0x39, 0x86, 0x6e, 0x05, 0x2d, 0x3f, 0x0a, 0xc4, 0x0f, 0x82, 0x4b, 0x5a, 0xc6, 0x63, 0x3b, - 0x83, 0xd3, 0x7c, 0xc2, 0x76, 0x81, 0xeb, 0x46, 0x8a, 0xba, 0xf8, 0x52, 0x7f, 0x9a, 0x03, 0x45, - 0x88, 0x4b, 0x51, 0xe5, 0x85, 0x4b, 0xe3, 0x57, 0x24, 0xef, 0x2d, 0xc9, 0x41, 0x81, 0xb7, 0x1e, - 0x22, 0x20, 0xf8, 0xd3, 0xd3, 0x10, 0xe5, 0x45, 0x88, 0xaa, 0x93, 0x71, 0xbd, 0xe2, 0x87, 0xe8, - 0xc0, 0x32, 0x0d, 0x3a, 0x8d, 0xd3, 0x37, 0xa0, 0xc8, 0x0c, 0x67, 0x40, 0x99, 0x18, 0x05, 0x2a, - 0x3b, 0xb7, 0x4e, 0xd1, 0x95, 0x0e, 0x04, 0x03, 0x3f, 0x0d, 0xfc, 0xdf, 0x44, 0x32, 0x55, 0x7f, - 0x82, 0x60, 0x9d, 0x37, 0xa6, 0xc3, 0xe8, 0x7d, 0xd8, 0x80, 0x02, 0x1f, 0x7a, 0xe4, 0x4c, 0x34, - 0x55, 0x5f, 0xcc, 0x02, 0x02, 0x82, 0xdf, 0x83, 0x02, 0xef, 0x16, 0xb2, 0x23, 0x9f, 0x36, 0xa5, - 0xa7, 0x9c, 0x45, 0x0b, 0x12, 0x1c, 0xd5, 0xdf, 0x20, 0xb8, 0x9a, 0x54, 0x28, 0xb8, 0x6e, 0x4e, - 0xd6, 0xcb, 0x83, 0x8a, 0x1b, 0x12, 0x48, 0xf5, 0xce, 0xd8, 0x47, 0x2e, 0x4b, 0x39, 0x95, 0xc8, - 0x21, 0x89, 0x8a, 0x51, 0x1f, 0x23, 0x10, 0x03, 0xe3, 0xe1, 0x82, 0xde, 0x7b, 0x3b, 0xe6, 0xbd, - 0x66, 0x06, 0xf5, 0xe6, 0xba, 0xed, 0x57, 0x41, 0x1c, 0xb3, 0xf9, 0xab, 0x9f, 0xe6, 0xaf, 0x1b, - 0x59, 0x15, 0x5a, 0xd8, 0x51, 0xb7, 0x61, 0x35, 0x76, 0x53, 0xe2, 0x7a, 0xd0, 0x1b, 0xfd, 0x46, - 0x55, 0x4e, 0xf6, 0xb7, 0xdb, 0xa5, 0x9f, 0xff, 0xa2, 0xbe, 0xf4, 0xf8, 0x6f, 0x8d, 0x25, 0xf5, - 0x0d, 0x58, 0x8b, 0xe7, 0x73, 0x16, 0xe2, 0x1f, 0xe7, 0x01, 0xc2, 0x41, 0x8a, 0x53, 0xf2, 0x71, - 0x3d, 0x46, 0xc9, 0xa7, 0x78, 0x46, 0xfc, 0x73, 0xfc, 0x43, 0x04, 0xaf, 0xea, 0x9e, 0xe7, 0x9a, - 0x9d, 0xa1, 0x47, 0x23, 0xad, 0x35, 0x98, 0x41, 0x32, 0x8e, 0xa2, 0xd7, 0xa5, 0x67, 0x5e, 0x6d, - 0xa5, 0xf1, 0x24, 0xe9, 0xa2, 0xf0, 0x67, 0xa0, 0xac, 0x0f, 0xcc, 0xbb, 0xd1, 0x36, 0x21, 0x26, - 0x98, 0x60, 0x65, 0x60, 0x24, 0x84, 0x73, 0xe4, 0x60, 0x4a, 0xf7, 0x07, 0x0b, 0x89, 0x1c, 0xb4, - 0x57, 0x46, 0x42, 0x38, 0xfe, 0x12, 0xac, 0x46, 0x47, 0x7a, 0xa6, 0x2c, 0x0b, 0x82, 0x57, 0x26, - 0xe3, 0xfa, 0x6a, 0x74, 0xf2, 0x67, 0x24, 0x8e, 0x87, 0xdb, 0x50, 0xb5, 0x63, 0x53, 0x3a, 0x53, - 0x8a, 0x82, 0x54, 0x99, 0x8c, 0xeb, 0x1b, 0xf1, 0x01, 0x5e, 0x36, 0xb2, 0x24, 0x81, 0xda, 0x85, - 0x8d, 0x8b, 0xe9, 0xf9, 0x7f, 0x47, 0xf0, 0xf1, 0x34, 0x49, 0x84, 0xb2, 0x81, 0x63, 0x33, 0x9a, - 0x7d, 0x01, 0xfc, 0x24, 0x2c, 0xf3, 0xee, 0xed, 0xdf, 0x99, 0x65, 0x7f, 0xce, 0xe3, 0x4d, 0x5d, - 0x9a, 0xea, 0x03, 0x17, 0xef, 0xed, 0x6f, 0xc2, 0x1a, 0x1d, 0xe9, 0xd6, 0x90, 0x6b, 0xbb, 0xeb, - 0xba, 0x8e, 0x2b, 0xd7, 0xbd, 0xab, 0x52, 0x89, 0xea, 0x2e, 0x87, 0xea, 0x53, 0x30, 0x49, 0xa0, - 0xab, 0x7f, 0x42, 0x50, 0xf8, 0xff, 0xdf, 0x60, 0xd4, 0xe7, 0x79, 0xa8, 0xbc, 0x5c, 0x2b, 0x3e, - 0xea, 0x6b, 0x05, 0x9f, 0xbc, 0x2f, 0x76, 0x9f, 0x38, 0xc3, 0xe4, 0x7d, 0xf2, 0x22, 0xf1, 0x1c, - 0xc1, 0x95, 0xe8, 0x45, 0x17, 0x99, 0xbf, 0xcf, 0x3f, 0x7f, 0xbb, 0x50, 0x60, 0x03, 0x6a, 0xc8, - 0xd4, 0xdd, 0x3d, 0x9d, 0x61, 0x11, 0x95, 0x0f, 0x06, 0xd4, 0x08, 0x07, 0x04, 0xfe, 0x45, 0x84, - 0x00, 0x75, 0x82, 0x60, 0x33, 0x9d, 0xe4, 0x02, 0xe2, 0x77, 0x14, 0x8f, 0x5f, 0xeb, 0xcc, 0x66, - 0xce, 0x09, 0xe5, 0xef, 0xf3, 0xf3, 0x8c, 0xe4, 0x9e, 0xc0, 0x8f, 0xa0, 0xca, 0x4b, 0xda, 0x0d, - 0x8f, 0xa5, 0xad, 0xb7, 0x33, 0x28, 0x24, 0x66, 0xff, 0x88, 0x26, 0xe2, 0xdd, 0x25, 0x71, 0x48, - 0x92, 0x72, 0xf0, 0xf7, 0x61, 0x5d, 0x14, 0x79, 0x54, 0xb6, 0x1f, 0xf3, 0x37, 0x32, 0xc8, 0x4e, - 0x2e, 0x88, 0xed, 0x8d, 0xc9, 0xb8, 0x3e, 0xb3, 0x36, 0x92, 0x19, 0x51, 0xf8, 0x97, 0x08, 0xae, - 0x31, 0xea, 0x8e, 0x4c, 0x83, 0xea, 0x86, 0xe1, 0x0c, 0x6d, 0x2f, 0xaa, 0x88, 0xdf, 0xcf, 0xde, - 0xca, 0xa0, 0xc8, 0x81, 0xcf, 0xab, 0xe5, 0xf3, 0x8a, 0x6a, 0x74, 0x7d, 0x32, 0xae, 0x5f, 0x9b, - 0x0b, 0x26, 0xf3, 0xb5, 0x50, 0xff, 0x88, 0xa0, 0x74, 0x41, 0x9b, 0xfc, 0x57, 0xe3, 0xf9, 0x98, - 0x79, 0x70, 0x4f, 0xcf, 0xbe, 0xff, 0x20, 0xb8, 0x72, 0x40, 0xad, 0x23, 0xd9, 0x82, 0xfd, 0x9b, - 0xd1, 0x1f, 0x89, 0x82, 0x32, 0x47, 0x99, 0xcb, 0x3c, 0x9d, 0xe1, 0xbc, 0x32, 0xc7, 0xc7, 0x50, - 0x64, 0x9e, 0xee, 0x0d, 0x83, 0xcb, 0xf0, 0x4e, 0x16, 0x51, 0xb3, 0x62, 0x04, 0xab, 0xf6, 0x9a, - 0x14, 0x54, 0xf4, 0xbf, 0x89, 0x14, 0xa1, 0x7e, 0x0f, 0x36, 0xe7, 0xab, 0x17, 0x59, 0x78, 0xd1, - 0x79, 0x2c, 0xbc, 0x16, 0x5c, 0x4d, 0xa6, 0x99, 0xbc, 0xba, 0x16, 0x58, 0x97, 0x62, 0x03, 0x63, - 0xee, 0xe4, 0x81, 0x51, 0xfd, 0x0b, 0x82, 0xf9, 0x59, 0x8d, 0x7f, 0x84, 0xa0, 0x1a, 0x4f, 0x6c, - 0x7f, 0x23, 0xa9, 0xec, 0xb4, 0xcf, 0x50, 0x54, 0xc1, 0x4d, 0x3c, 0x9d, 0x22, 0xe3, 0x08, 0x8c, - 0x24, 0x65, 0x62, 0x0d, 0x60, 0xaa, 0x72, 0x6c, 0xb6, 0x9d, 0xda, 0xc4, 0x48, 0x04, 0x43, 0xfd, - 0x20, 0x07, 0x97, 0x5f, 0xbe, 0xa3, 0xc4, 0xd2, 0xea, 0x9f, 0x08, 0x3e, 0x96, 0xe2, 0x92, 0xd3, - 0xaf, 0x1a, 0xaf, 0xc1, 0x8a, 0x6e, 0x59, 0xce, 0x43, 0x7a, 0x28, 0xac, 0x2f, 0x85, 0x83, 0x55, - 0xcb, 0x3f, 0x26, 0x01, 0x1c, 0x7f, 0x0a, 0x8a, 0x2e, 0xd5, 0x99, 0xec, 0xc8, 0xe5, 0xb0, 0xee, - 0x88, 0x38, 0x25, 0x12, 0x8a, 0x5b, 0x50, 0xa5, 0xf1, 0x85, 0xe2, 0xa4, 0x7d, 0x23, 0x89, 0xaf, - 0xfe, 0x0b, 0x01, 0x4e, 0xe9, 0x53, 0x46, 0xac, 0x4f, 0xb5, 0xce, 0xd6, 0x3c, 0xfe, 0x27, 0x7a, - 0xd4, 0x1f, 0x78, 0x53, 0x4e, 0x6f, 0x50, 0x41, 0x52, 0xa2, 0xb9, 0x49, 0x19, 0xbe, 0xbf, 0xe6, - 0xe6, 0xbe, 0xbf, 0x86, 0xf9, 0x98, 0x3f, 0x8f, 0x7c, 0xfc, 0x1d, 0x02, 0x65, 0x9e, 0xd1, 0xe1, - 0x2e, 0x87, 0x5e, 0xfc, 0xbf, 0x51, 0x29, 0x49, 0x96, 0xcb, 0x98, 0x64, 0xbf, 0x45, 0x90, 0x9c, - 0x8c, 0x70, 0x3d, 0xd8, 0xbc, 0x23, 0x2f, 0x36, 0x62, 0xf3, 0x0e, 0x96, 0xee, 0x45, 0x7c, 0x1e, - 0xbe, 0x79, 0xe7, 0xcf, 0xe3, 0xcd, 0xbb, 0xbd, 0xf5, 0xe4, 0x59, 0x6d, 0xe9, 0xc3, 0x67, 0xb5, - 0xa5, 0xa7, 0xcf, 0x6a, 0x4b, 0x8f, 0x27, 0x35, 0xf4, 0x64, 0x52, 0x43, 0x1f, 0x4e, 0x6a, 0xe8, - 0xe9, 0xa4, 0x86, 0xfe, 0x31, 0xa9, 0xa1, 0x0f, 0x9e, 0xd7, 0x96, 0xde, 0xcf, 0x8d, 0xb6, 0xff, - 0x1b, 0x00, 0x00, 0xff, 0xff, 0x39, 0xa6, 0xdb, 0xa1, 0x02, 0x20, 0x00, 0x00, -} - -func (m *Action) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Action) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Action) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i-- - if m.IsNonResourceURL { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x48 - i -= len(m.Path) - copy(dAtA[i:], m.Path) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Path))) - i-- - dAtA[i] = 0x42 - { - size, err := m.Content.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x3a - i -= len(m.ResourceName) - copy(dAtA[i:], m.ResourceName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceName))) - i-- - dAtA[i] = 0x32 - i -= len(m.Resource) - copy(dAtA[i:], m.Resource) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource))) - i-- - dAtA[i] = 0x2a - i -= len(m.Version) - copy(dAtA[i:], m.Version) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Version))) - i-- - dAtA[i] = 0x22 - i -= len(m.Group) - copy(dAtA[i:], m.Group) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Group))) - i-- - dAtA[i] = 0x1a - i -= len(m.Verb) - copy(dAtA[i:], m.Verb) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Verb))) - i-- - dAtA[i] = 0x12 - i -= len(m.Namespace) - copy(dAtA[i:], m.Namespace) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ClusterRole) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterRole) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ClusterRole) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.AggregationRule != nil { - { - size, err := m.AggregationRule.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if len(m.Rules) > 0 { - for iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ClusterRoleBinding) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterRoleBinding) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ClusterRoleBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.RoleRef.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - if len(m.Subjects) > 0 { - for iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - } - if m.GroupNames != nil { - { - size, err := m.GroupNames.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.UserNames != nil { - { - size, err := m.UserNames.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ClusterRoleBindingList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterRoleBindingList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ClusterRoleBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ClusterRoleList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterRoleList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ClusterRoleList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *GroupRestriction) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *GroupRestriction) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *GroupRestriction) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Selectors) > 0 { - for iNdEx := len(m.Selectors) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Selectors[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - if len(m.Groups) > 0 { - for iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Groups[iNdEx]) - copy(dAtA[i:], m.Groups[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *IsPersonalSubjectAccessReview) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *IsPersonalSubjectAccessReview) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *IsPersonalSubjectAccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - -func (m *LocalResourceAccessReview) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *LocalResourceAccessReview) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *LocalResourceAccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Action.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *LocalSubjectAccessReview) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *LocalSubjectAccessReview) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *LocalSubjectAccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Scopes != nil { - { - size, err := m.Scopes.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if len(m.GroupsSlice) > 0 { - for iNdEx := len(m.GroupsSlice) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.GroupsSlice[iNdEx]) - copy(dAtA[i:], m.GroupsSlice[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.GroupsSlice[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - i -= len(m.User) - copy(dAtA[i:], m.User) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.User))) - i-- - dAtA[i] = 0x12 - { - size, err := m.Action.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *NamedClusterRole) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *NamedClusterRole) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *NamedClusterRole) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Role.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *NamedClusterRoleBinding) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *NamedClusterRoleBinding) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *NamedClusterRoleBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.RoleBinding.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *NamedRole) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *NamedRole) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *NamedRole) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Role.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *NamedRoleBinding) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *NamedRoleBinding) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *NamedRoleBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.RoleBinding.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m OptionalNames) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m OptionalNames) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m OptionalNames) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m) > 0 { - for iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m[iNdEx]) - copy(dAtA[i:], m[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m OptionalScopes) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m OptionalScopes) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m OptionalScopes) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m) > 0 { - for iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m[iNdEx]) - copy(dAtA[i:], m[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *PolicyRule) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PolicyRule) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.NonResourceURLsSlice) > 0 { - for iNdEx := len(m.NonResourceURLsSlice) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.NonResourceURLsSlice[iNdEx]) - copy(dAtA[i:], m.NonResourceURLsSlice[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLsSlice[iNdEx]))) - i-- - dAtA[i] = 0x32 - } - } - if len(m.ResourceNames) > 0 { - for iNdEx := len(m.ResourceNames) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.ResourceNames[iNdEx]) - copy(dAtA[i:], m.ResourceNames[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceNames[iNdEx]))) - i-- - dAtA[i] = 0x2a - } - } - if len(m.Resources) > 0 { - for iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Resources[iNdEx]) - copy(dAtA[i:], m.Resources[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx]))) - i-- - dAtA[i] = 0x22 - } - } - if len(m.APIGroups) > 0 { - for iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.APIGroups[iNdEx]) - copy(dAtA[i:], m.APIGroups[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - { - size, err := m.AttributeRestrictions.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - if len(m.Verbs) > 0 { - for iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Verbs[iNdEx]) - copy(dAtA[i:], m.Verbs[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *ResourceAccessReview) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ResourceAccessReview) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ResourceAccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Action.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ResourceAccessReviewResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ResourceAccessReviewResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ResourceAccessReviewResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.EvaluationError) - copy(dAtA[i:], m.EvaluationError) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.EvaluationError))) - i-- - dAtA[i] = 0x22 - if len(m.GroupsSlice) > 0 { - for iNdEx := len(m.GroupsSlice) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.GroupsSlice[iNdEx]) - copy(dAtA[i:], m.GroupsSlice[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.GroupsSlice[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - if len(m.UsersSlice) > 0 { - for iNdEx := len(m.UsersSlice) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.UsersSlice[iNdEx]) - copy(dAtA[i:], m.UsersSlice[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.UsersSlice[iNdEx]))) - i-- - dAtA[i] = 0x12 - } - } - i -= len(m.Namespace) - copy(dAtA[i:], m.Namespace) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *Role) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Role) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Role) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Rules) > 0 { - for iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RoleBinding) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RoleBinding) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RoleBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.RoleRef.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - if len(m.Subjects) > 0 { - for iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - } - if m.GroupNames != nil { - { - size, err := m.GroupNames.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.UserNames != nil { - { - size, err := m.UserNames.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RoleBindingList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RoleBindingList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RoleBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RoleBindingRestriction) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RoleBindingRestriction) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RoleBindingRestriction) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RoleBindingRestrictionList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RoleBindingRestrictionList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RoleBindingRestrictionList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RoleBindingRestrictionSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RoleBindingRestrictionSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RoleBindingRestrictionSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.ServiceAccountRestriction != nil { - { - size, err := m.ServiceAccountRestriction.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.GroupRestriction != nil { - { - size, err := m.GroupRestriction.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.UserRestriction != nil { - { - size, err := m.UserRestriction.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *RoleList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RoleList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RoleList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SelfSubjectRulesReview) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SelfSubjectRulesReview) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SelfSubjectRulesReview) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SelfSubjectRulesReviewSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SelfSubjectRulesReviewSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SelfSubjectRulesReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Scopes != nil { - { - size, err := m.Scopes.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *ServiceAccountReference) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ServiceAccountReference) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ServiceAccountReference) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Namespace) - copy(dAtA[i:], m.Namespace) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace))) - i-- - dAtA[i] = 0x12 - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ServiceAccountRestriction) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ServiceAccountRestriction) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ServiceAccountRestriction) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Namespaces) > 0 { - for iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Namespaces[iNdEx]) - copy(dAtA[i:], m.Namespaces[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespaces[iNdEx]))) - i-- - dAtA[i] = 0x12 - } - } - if len(m.ServiceAccounts) > 0 { - for iNdEx := len(m.ServiceAccounts) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.ServiceAccounts[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *SubjectAccessReview) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SubjectAccessReview) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SubjectAccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Scopes != nil { - { - size, err := m.Scopes.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if len(m.GroupsSlice) > 0 { - for iNdEx := len(m.GroupsSlice) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.GroupsSlice[iNdEx]) - copy(dAtA[i:], m.GroupsSlice[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.GroupsSlice[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - i -= len(m.User) - copy(dAtA[i:], m.User) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.User))) - i-- - dAtA[i] = 0x12 - { - size, err := m.Action.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SubjectAccessReviewResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SubjectAccessReviewResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SubjectAccessReviewResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.EvaluationError) - copy(dAtA[i:], m.EvaluationError) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.EvaluationError))) - i-- - dAtA[i] = 0x22 - i -= len(m.Reason) - copy(dAtA[i:], m.Reason) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) - i-- - dAtA[i] = 0x1a - i-- - if m.Allowed { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x10 - i -= len(m.Namespace) - copy(dAtA[i:], m.Namespace) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SubjectRulesReview) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SubjectRulesReview) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SubjectRulesReview) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SubjectRulesReviewSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SubjectRulesReviewSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SubjectRulesReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Scopes != nil { - { - size, err := m.Scopes.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if len(m.Groups) > 0 { - for iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Groups[iNdEx]) - copy(dAtA[i:], m.Groups[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx]))) - i-- - dAtA[i] = 0x12 - } - } - i -= len(m.User) - copy(dAtA[i:], m.User) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.User))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SubjectRulesReviewStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SubjectRulesReviewStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SubjectRulesReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.EvaluationError) - copy(dAtA[i:], m.EvaluationError) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.EvaluationError))) - i-- - dAtA[i] = 0x12 - if len(m.Rules) > 0 { - for iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *UserRestriction) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *UserRestriction) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *UserRestriction) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Selectors) > 0 { - for iNdEx := len(m.Selectors) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Selectors[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - if len(m.Groups) > 0 { - for iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Groups[iNdEx]) - copy(dAtA[i:], m.Groups[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx]))) - i-- - dAtA[i] = 0x12 - } - } - if len(m.Users) > 0 { - for iNdEx := len(m.Users) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Users[iNdEx]) - copy(dAtA[i:], m.Users[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Users[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *Action) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Namespace) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Verb) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Group) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Version) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Resource) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.ResourceName) - n += 1 + l + sovGenerated(uint64(l)) - l = m.Content.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Path) - n += 1 + l + sovGenerated(uint64(l)) - n += 2 - return n -} - -func (m *ClusterRole) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Rules) > 0 { - for _, e := range m.Rules { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if m.AggregationRule != nil { - l = m.AggregationRule.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *ClusterRoleBinding) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.UserNames != nil { - l = m.UserNames.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.GroupNames != nil { - l = m.GroupNames.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.Subjects) > 0 { - for _, e := range m.Subjects { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = m.RoleRef.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ClusterRoleBindingList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ClusterRoleList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *GroupRestriction) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Groups) > 0 { - for _, s := range m.Groups { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.Selectors) > 0 { - for _, e := range m.Selectors { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *IsPersonalSubjectAccessReview) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - -func (m *LocalResourceAccessReview) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Action.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *LocalSubjectAccessReview) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Action.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.User) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.GroupsSlice) > 0 { - for _, s := range m.GroupsSlice { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if m.Scopes != nil { - l = m.Scopes.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *NamedClusterRole) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = m.Role.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *NamedClusterRoleBinding) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = m.RoleBinding.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *NamedRole) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = m.Role.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *NamedRoleBinding) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = m.RoleBinding.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m OptionalNames) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m) > 0 { - for _, s := range m { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m OptionalScopes) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m) > 0 { - for _, s := range m { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *PolicyRule) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Verbs) > 0 { - for _, s := range m.Verbs { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = m.AttributeRestrictions.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.APIGroups) > 0 { - for _, s := range m.APIGroups { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.Resources) > 0 { - for _, s := range m.Resources { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.ResourceNames) > 0 { - for _, s := range m.ResourceNames { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.NonResourceURLsSlice) > 0 { - for _, s := range m.NonResourceURLsSlice { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ResourceAccessReview) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Action.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ResourceAccessReviewResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Namespace) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.UsersSlice) > 0 { - for _, s := range m.UsersSlice { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.GroupsSlice) > 0 { - for _, s := range m.GroupsSlice { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.EvaluationError) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *Role) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Rules) > 0 { - for _, e := range m.Rules { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *RoleBinding) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.UserNames != nil { - l = m.UserNames.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.GroupNames != nil { - l = m.GroupNames.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.Subjects) > 0 { - for _, e := range m.Subjects { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = m.RoleRef.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *RoleBindingList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *RoleBindingRestriction) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *RoleBindingRestrictionList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *RoleBindingRestrictionSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.UserRestriction != nil { - l = m.UserRestriction.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.GroupRestriction != nil { - l = m.GroupRestriction.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.ServiceAccountRestriction != nil { - l = m.ServiceAccountRestriction.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *RoleList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *SelfSubjectRulesReview) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *SelfSubjectRulesReviewSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Scopes != nil { - l = m.Scopes.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *ServiceAccountReference) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Namespace) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ServiceAccountRestriction) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.ServiceAccounts) > 0 { - for _, e := range m.ServiceAccounts { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.Namespaces) > 0 { - for _, s := range m.Namespaces { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *SubjectAccessReview) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Action.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.User) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.GroupsSlice) > 0 { - for _, s := range m.GroupsSlice { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if m.Scopes != nil { - l = m.Scopes.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *SubjectAccessReviewResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Namespace) - n += 1 + l + sovGenerated(uint64(l)) - n += 2 - l = len(m.Reason) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.EvaluationError) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *SubjectRulesReview) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *SubjectRulesReviewSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.User) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Groups) > 0 { - for _, s := range m.Groups { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if m.Scopes != nil { - l = m.Scopes.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *SubjectRulesReviewStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Rules) > 0 { - for _, e := range m.Rules { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.EvaluationError) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *UserRestriction) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Users) > 0 { - for _, s := range m.Users { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.Groups) > 0 { - for _, s := range m.Groups { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.Selectors) > 0 { - for _, e := range m.Selectors { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Action) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Action{`, - `Namespace:` + fmt.Sprintf("%v", this.Namespace) + `,`, - `Verb:` + fmt.Sprintf("%v", this.Verb) + `,`, - `Group:` + fmt.Sprintf("%v", this.Group) + `,`, - `Version:` + fmt.Sprintf("%v", this.Version) + `,`, - `Resource:` + fmt.Sprintf("%v", this.Resource) + `,`, - `ResourceName:` + fmt.Sprintf("%v", this.ResourceName) + `,`, - `Content:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Content), "RawExtension", "runtime.RawExtension", 1), `&`, ``, 1) + `,`, - `Path:` + fmt.Sprintf("%v", this.Path) + `,`, - `IsNonResourceURL:` + fmt.Sprintf("%v", this.IsNonResourceURL) + `,`, - `}`, - }, "") - return s -} -func (this *ClusterRole) String() string { - if this == nil { - return "nil" - } - repeatedStringForRules := "[]PolicyRule{" - for _, f := range this.Rules { - repeatedStringForRules += strings.Replace(strings.Replace(f.String(), "PolicyRule", "PolicyRule", 1), `&`, ``, 1) + "," - } - repeatedStringForRules += "}" - s := strings.Join([]string{`&ClusterRole{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Rules:` + repeatedStringForRules + `,`, - `AggregationRule:` + strings.Replace(fmt.Sprintf("%v", this.AggregationRule), "AggregationRule", "v11.AggregationRule", 1) + `,`, - `}`, - }, "") - return s -} -func (this *ClusterRoleBinding) String() string { - if this == nil { - return "nil" - } - repeatedStringForSubjects := "[]ObjectReference{" - for _, f := range this.Subjects { - repeatedStringForSubjects += fmt.Sprintf("%v", f) + "," - } - repeatedStringForSubjects += "}" - s := strings.Join([]string{`&ClusterRoleBinding{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `UserNames:` + strings.Replace(fmt.Sprintf("%v", this.UserNames), "OptionalNames", "OptionalNames", 1) + `,`, - `GroupNames:` + strings.Replace(fmt.Sprintf("%v", this.GroupNames), "OptionalNames", "OptionalNames", 1) + `,`, - `Subjects:` + repeatedStringForSubjects + `,`, - `RoleRef:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.RoleRef), "ObjectReference", "v12.ObjectReference", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ClusterRoleBindingList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]ClusterRoleBinding{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "ClusterRoleBinding", "ClusterRoleBinding", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&ClusterRoleBindingList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *ClusterRoleList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]ClusterRole{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "ClusterRole", "ClusterRole", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&ClusterRoleList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *GroupRestriction) String() string { - if this == nil { - return "nil" - } - repeatedStringForSelectors := "[]LabelSelector{" - for _, f := range this.Selectors { - repeatedStringForSelectors += fmt.Sprintf("%v", f) + "," - } - repeatedStringForSelectors += "}" - s := strings.Join([]string{`&GroupRestriction{`, - `Groups:` + fmt.Sprintf("%v", this.Groups) + `,`, - `Selectors:` + repeatedStringForSelectors + `,`, - `}`, - }, "") - return s -} -func (this *IsPersonalSubjectAccessReview) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&IsPersonalSubjectAccessReview{`, - `}`, - }, "") - return s -} -func (this *LocalResourceAccessReview) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&LocalResourceAccessReview{`, - `Action:` + strings.Replace(strings.Replace(this.Action.String(), "Action", "Action", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *LocalSubjectAccessReview) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&LocalSubjectAccessReview{`, - `Action:` + strings.Replace(strings.Replace(this.Action.String(), "Action", "Action", 1), `&`, ``, 1) + `,`, - `User:` + fmt.Sprintf("%v", this.User) + `,`, - `GroupsSlice:` + fmt.Sprintf("%v", this.GroupsSlice) + `,`, - `Scopes:` + strings.Replace(fmt.Sprintf("%v", this.Scopes), "OptionalScopes", "OptionalScopes", 1) + `,`, - `}`, - }, "") - return s -} -func (this *NamedClusterRole) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NamedClusterRole{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `Role:` + strings.Replace(strings.Replace(this.Role.String(), "ClusterRole", "ClusterRole", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *NamedClusterRoleBinding) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NamedClusterRoleBinding{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `RoleBinding:` + strings.Replace(strings.Replace(this.RoleBinding.String(), "ClusterRoleBinding", "ClusterRoleBinding", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *NamedRole) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NamedRole{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `Role:` + strings.Replace(strings.Replace(this.Role.String(), "Role", "Role", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *NamedRoleBinding) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NamedRoleBinding{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `RoleBinding:` + strings.Replace(strings.Replace(this.RoleBinding.String(), "RoleBinding", "RoleBinding", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *PolicyRule) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&PolicyRule{`, - `Verbs:` + fmt.Sprintf("%v", this.Verbs) + `,`, - `AttributeRestrictions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.AttributeRestrictions), "RawExtension", "runtime.RawExtension", 1), `&`, ``, 1) + `,`, - `APIGroups:` + fmt.Sprintf("%v", this.APIGroups) + `,`, - `Resources:` + fmt.Sprintf("%v", this.Resources) + `,`, - `ResourceNames:` + fmt.Sprintf("%v", this.ResourceNames) + `,`, - `NonResourceURLsSlice:` + fmt.Sprintf("%v", this.NonResourceURLsSlice) + `,`, - `}`, - }, "") - return s -} -func (this *ResourceAccessReview) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ResourceAccessReview{`, - `Action:` + strings.Replace(strings.Replace(this.Action.String(), "Action", "Action", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ResourceAccessReviewResponse) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ResourceAccessReviewResponse{`, - `Namespace:` + fmt.Sprintf("%v", this.Namespace) + `,`, - `UsersSlice:` + fmt.Sprintf("%v", this.UsersSlice) + `,`, - `GroupsSlice:` + fmt.Sprintf("%v", this.GroupsSlice) + `,`, - `EvaluationError:` + fmt.Sprintf("%v", this.EvaluationError) + `,`, - `}`, - }, "") - return s -} -func (this *Role) String() string { - if this == nil { - return "nil" - } - repeatedStringForRules := "[]PolicyRule{" - for _, f := range this.Rules { - repeatedStringForRules += strings.Replace(strings.Replace(f.String(), "PolicyRule", "PolicyRule", 1), `&`, ``, 1) + "," - } - repeatedStringForRules += "}" - s := strings.Join([]string{`&Role{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Rules:` + repeatedStringForRules + `,`, - `}`, - }, "") - return s -} -func (this *RoleBinding) String() string { - if this == nil { - return "nil" - } - repeatedStringForSubjects := "[]ObjectReference{" - for _, f := range this.Subjects { - repeatedStringForSubjects += fmt.Sprintf("%v", f) + "," - } - repeatedStringForSubjects += "}" - s := strings.Join([]string{`&RoleBinding{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `UserNames:` + strings.Replace(fmt.Sprintf("%v", this.UserNames), "OptionalNames", "OptionalNames", 1) + `,`, - `GroupNames:` + strings.Replace(fmt.Sprintf("%v", this.GroupNames), "OptionalNames", "OptionalNames", 1) + `,`, - `Subjects:` + repeatedStringForSubjects + `,`, - `RoleRef:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.RoleRef), "ObjectReference", "v12.ObjectReference", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *RoleBindingList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]RoleBinding{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "RoleBinding", "RoleBinding", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&RoleBindingList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *RoleBindingRestriction) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&RoleBindingRestriction{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "RoleBindingRestrictionSpec", "RoleBindingRestrictionSpec", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *RoleBindingRestrictionList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]RoleBindingRestriction{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "RoleBindingRestriction", "RoleBindingRestriction", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&RoleBindingRestrictionList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *RoleBindingRestrictionSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&RoleBindingRestrictionSpec{`, - `UserRestriction:` + strings.Replace(this.UserRestriction.String(), "UserRestriction", "UserRestriction", 1) + `,`, - `GroupRestriction:` + strings.Replace(this.GroupRestriction.String(), "GroupRestriction", "GroupRestriction", 1) + `,`, - `ServiceAccountRestriction:` + strings.Replace(this.ServiceAccountRestriction.String(), "ServiceAccountRestriction", "ServiceAccountRestriction", 1) + `,`, - `}`, - }, "") - return s -} -func (this *RoleList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]Role{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Role", "Role", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&RoleList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *SelfSubjectRulesReview) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SelfSubjectRulesReview{`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "SelfSubjectRulesReviewSpec", "SelfSubjectRulesReviewSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "SubjectRulesReviewStatus", "SubjectRulesReviewStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *SelfSubjectRulesReviewSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SelfSubjectRulesReviewSpec{`, - `Scopes:` + strings.Replace(fmt.Sprintf("%v", this.Scopes), "OptionalScopes", "OptionalScopes", 1) + `,`, - `}`, - }, "") - return s -} -func (this *ServiceAccountReference) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ServiceAccountReference{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `Namespace:` + fmt.Sprintf("%v", this.Namespace) + `,`, - `}`, - }, "") - return s -} -func (this *ServiceAccountRestriction) String() string { - if this == nil { - return "nil" - } - repeatedStringForServiceAccounts := "[]ServiceAccountReference{" - for _, f := range this.ServiceAccounts { - repeatedStringForServiceAccounts += strings.Replace(strings.Replace(f.String(), "ServiceAccountReference", "ServiceAccountReference", 1), `&`, ``, 1) + "," - } - repeatedStringForServiceAccounts += "}" - s := strings.Join([]string{`&ServiceAccountRestriction{`, - `ServiceAccounts:` + repeatedStringForServiceAccounts + `,`, - `Namespaces:` + fmt.Sprintf("%v", this.Namespaces) + `,`, - `}`, - }, "") - return s -} -func (this *SubjectAccessReview) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SubjectAccessReview{`, - `Action:` + strings.Replace(strings.Replace(this.Action.String(), "Action", "Action", 1), `&`, ``, 1) + `,`, - `User:` + fmt.Sprintf("%v", this.User) + `,`, - `GroupsSlice:` + fmt.Sprintf("%v", this.GroupsSlice) + `,`, - `Scopes:` + strings.Replace(fmt.Sprintf("%v", this.Scopes), "OptionalScopes", "OptionalScopes", 1) + `,`, - `}`, - }, "") - return s -} -func (this *SubjectAccessReviewResponse) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SubjectAccessReviewResponse{`, - `Namespace:` + fmt.Sprintf("%v", this.Namespace) + `,`, - `Allowed:` + fmt.Sprintf("%v", this.Allowed) + `,`, - `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, - `EvaluationError:` + fmt.Sprintf("%v", this.EvaluationError) + `,`, - `}`, - }, "") - return s -} -func (this *SubjectRulesReview) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SubjectRulesReview{`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "SubjectRulesReviewSpec", "SubjectRulesReviewSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "SubjectRulesReviewStatus", "SubjectRulesReviewStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *SubjectRulesReviewSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SubjectRulesReviewSpec{`, - `User:` + fmt.Sprintf("%v", this.User) + `,`, - `Groups:` + fmt.Sprintf("%v", this.Groups) + `,`, - `Scopes:` + strings.Replace(fmt.Sprintf("%v", this.Scopes), "OptionalScopes", "OptionalScopes", 1) + `,`, - `}`, - }, "") - return s -} -func (this *SubjectRulesReviewStatus) String() string { - if this == nil { - return "nil" - } - repeatedStringForRules := "[]PolicyRule{" - for _, f := range this.Rules { - repeatedStringForRules += strings.Replace(strings.Replace(f.String(), "PolicyRule", "PolicyRule", 1), `&`, ``, 1) + "," - } - repeatedStringForRules += "}" - s := strings.Join([]string{`&SubjectRulesReviewStatus{`, - `Rules:` + repeatedStringForRules + `,`, - `EvaluationError:` + fmt.Sprintf("%v", this.EvaluationError) + `,`, - `}`, - }, "") - return s -} -func (this *UserRestriction) String() string { - if this == nil { - return "nil" - } - repeatedStringForSelectors := "[]LabelSelector{" - for _, f := range this.Selectors { - repeatedStringForSelectors += fmt.Sprintf("%v", f) + "," - } - repeatedStringForSelectors += "}" - s := strings.Join([]string{`&UserRestriction{`, - `Users:` + fmt.Sprintf("%v", this.Users) + `,`, - `Groups:` + fmt.Sprintf("%v", this.Groups) + `,`, - `Selectors:` + repeatedStringForSelectors + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Action) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Action: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Action: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Namespace = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Verb", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Verb = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Group", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Group = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Version = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Resource", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Resource = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ResourceName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ResourceName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Content", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Content.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Path = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 9: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IsNonResourceURL", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.IsNonResourceURL = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ClusterRole) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterRole: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterRole: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Rules = append(m.Rules, PolicyRule{}) - if err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AggregationRule", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.AggregationRule == nil { - m.AggregationRule = &v11.AggregationRule{} - } - if err := m.AggregationRule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ClusterRoleBinding) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterRoleBinding: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterRoleBinding: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UserNames", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.UserNames == nil { - m.UserNames = OptionalNames{} - } - if err := m.UserNames.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GroupNames", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.GroupNames == nil { - m.GroupNames = OptionalNames{} - } - if err := m.GroupNames.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Subjects", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Subjects = append(m.Subjects, v12.ObjectReference{}) - if err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RoleRef", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.RoleRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ClusterRoleBindingList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterRoleBindingList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterRoleBindingList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, ClusterRoleBinding{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ClusterRoleList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterRoleList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterRoleList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, ClusterRole{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GroupRestriction) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GroupRestriction: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GroupRestriction: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Groups", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Selectors", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Selectors = append(m.Selectors, v1.LabelSelector{}) - if err := m.Selectors[len(m.Selectors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *IsPersonalSubjectAccessReview) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: IsPersonalSubjectAccessReview: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: IsPersonalSubjectAccessReview: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *LocalResourceAccessReview) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: LocalResourceAccessReview: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: LocalResourceAccessReview: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Action", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Action.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *LocalSubjectAccessReview) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: LocalSubjectAccessReview: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: LocalSubjectAccessReview: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Action", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Action.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field User", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.User = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GroupsSlice", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.GroupsSlice = append(m.GroupsSlice, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Scopes", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Scopes == nil { - m.Scopes = OptionalScopes{} - } - if err := m.Scopes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NamedClusterRole) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: NamedClusterRole: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NamedClusterRole: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Role.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NamedClusterRoleBinding) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: NamedClusterRoleBinding: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NamedClusterRoleBinding: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RoleBinding", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.RoleBinding.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NamedRole) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: NamedRole: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NamedRole: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Role.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NamedRoleBinding) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: NamedRoleBinding: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NamedRoleBinding: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RoleBinding", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.RoleBinding.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OptionalNames) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: OptionalNames: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OptionalNames: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - *m = append(*m, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OptionalScopes) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: OptionalScopes: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OptionalScopes: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - *m = append(*m, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PolicyRule) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PolicyRule: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PolicyRule: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Verbs", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AttributeRestrictions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.AttributeRestrictions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field APIGroups", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ResourceNames", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ResourceNames = append(m.ResourceNames, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NonResourceURLsSlice", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NonResourceURLsSlice = append(m.NonResourceURLsSlice, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ResourceAccessReview) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ResourceAccessReview: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ResourceAccessReview: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Action", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Action.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ResourceAccessReviewResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ResourceAccessReviewResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ResourceAccessReviewResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Namespace = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UsersSlice", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.UsersSlice = append(m.UsersSlice, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GroupsSlice", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.GroupsSlice = append(m.GroupsSlice, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EvaluationError", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.EvaluationError = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Role) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Role: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Role: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Rules = append(m.Rules, PolicyRule{}) - if err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RoleBinding) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RoleBinding: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RoleBinding: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UserNames", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.UserNames == nil { - m.UserNames = OptionalNames{} - } - if err := m.UserNames.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GroupNames", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.GroupNames == nil { - m.GroupNames = OptionalNames{} - } - if err := m.GroupNames.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Subjects", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Subjects = append(m.Subjects, v12.ObjectReference{}) - if err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RoleRef", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.RoleRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RoleBindingList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RoleBindingList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RoleBindingList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, RoleBinding{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RoleBindingRestriction) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RoleBindingRestriction: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RoleBindingRestriction: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RoleBindingRestrictionList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RoleBindingRestrictionList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RoleBindingRestrictionList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, RoleBindingRestriction{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RoleBindingRestrictionSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RoleBindingRestrictionSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RoleBindingRestrictionSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UserRestriction", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.UserRestriction == nil { - m.UserRestriction = &UserRestriction{} - } - if err := m.UserRestriction.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GroupRestriction", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.GroupRestriction == nil { - m.GroupRestriction = &GroupRestriction{} - } - if err := m.GroupRestriction.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServiceAccountRestriction", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.ServiceAccountRestriction == nil { - m.ServiceAccountRestriction = &ServiceAccountRestriction{} - } - if err := m.ServiceAccountRestriction.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RoleList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RoleList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RoleList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, Role{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SelfSubjectRulesReview) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SelfSubjectRulesReview: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SelfSubjectRulesReview: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SelfSubjectRulesReviewSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SelfSubjectRulesReviewSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SelfSubjectRulesReviewSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Scopes", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Scopes == nil { - m.Scopes = OptionalScopes{} - } - if err := m.Scopes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ServiceAccountReference) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ServiceAccountReference: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ServiceAccountReference: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Namespace = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ServiceAccountRestriction) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ServiceAccountRestriction: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ServiceAccountRestriction: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServiceAccounts", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ServiceAccounts = append(m.ServiceAccounts, ServiceAccountReference{}) - if err := m.ServiceAccounts[len(m.ServiceAccounts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespaces", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Namespaces = append(m.Namespaces, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SubjectAccessReview) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SubjectAccessReview: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SubjectAccessReview: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Action", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Action.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field User", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.User = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GroupsSlice", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.GroupsSlice = append(m.GroupsSlice, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Scopes", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Scopes == nil { - m.Scopes = OptionalScopes{} - } - if err := m.Scopes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SubjectAccessReviewResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SubjectAccessReviewResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SubjectAccessReviewResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Namespace = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Allowed", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Allowed = bool(v != 0) - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Reason = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EvaluationError", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.EvaluationError = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SubjectRulesReview) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SubjectRulesReview: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SubjectRulesReview: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SubjectRulesReviewSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SubjectRulesReviewSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SubjectRulesReviewSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field User", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.User = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Groups", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Scopes", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Scopes == nil { - m.Scopes = OptionalScopes{} - } - if err := m.Scopes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SubjectRulesReviewStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SubjectRulesReviewStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SubjectRulesReviewStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Rules = append(m.Rules, PolicyRule{}) - if err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EvaluationError", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.EvaluationError = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *UserRestriction) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: UserRestriction: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: UserRestriction: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Users", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Users = append(m.Users, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Groups", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Selectors", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Selectors = append(m.Selectors, v1.LabelSelector{}) - if err := m.Selectors[len(m.Selectors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/vendor/github.com/openshift/api/authorization/v1/generated.proto b/vendor/github.com/openshift/api/authorization/v1/generated.proto deleted file mode 100644 index 6bce7d558e823..0000000000000 --- a/vendor/github.com/openshift/api/authorization/v1/generated.proto +++ /dev/null @@ -1,480 +0,0 @@ - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = 'proto2'; - -package github.com.openshift.api.authorization.v1; - -import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/api/rbac/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v1"; - -// Action describes a request to the API server -message Action { - // Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces - optional string namespace = 1; - - // Verb is one of: get, list, watch, create, update, delete - optional string verb = 2; - - // Group is the API group of the resource - // Serialized as resourceAPIGroup to avoid confusion with the 'groups' field when inlined - optional string resourceAPIGroup = 3; - - // Version is the API version of the resource - // Serialized as resourceAPIVersion to avoid confusion with TypeMeta.apiVersion and ObjectMeta.resourceVersion when inlined - optional string resourceAPIVersion = 4; - - // Resource is one of the existing resource types - optional string resource = 5; - - // ResourceName is the name of the resource being requested for a "get" or deleted for a "delete" - optional string resourceName = 6; - - // Path is the path of a non resource URL - optional string path = 8; - - // IsNonResourceURL is true if this is a request for a non-resource URL (outside of the resource hierarchy) - optional bool isNonResourceURL = 9; - - // Content is the actual content of the request for create and update - // +kubebuilder:pruning:PreserveUnknownFields - optional k8s.io.apimachinery.pkg.runtime.RawExtension content = 7; -} - -// ClusterRole is a logical grouping of PolicyRules that can be referenced as a unit by ClusterRoleBindings. -message ClusterRole { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Rules holds all the PolicyRules for this ClusterRole - repeated PolicyRule rules = 2; - - // AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. - // If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be - // stomped by the controller. - optional k8s.io.api.rbac.v1.AggregationRule aggregationRule = 3; -} - -// ClusterRoleBinding references a ClusterRole, but not contain it. It can reference any ClusterRole in the same namespace or in the global namespace. -// It adds who information via (Users and Groups) OR Subjects and namespace information by which namespace it exists in. -// ClusterRoleBindings in a given namespace only have effect in that namespace (excepting the master namespace which has power in all namespaces). -message ClusterRoleBinding { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // UserNames holds all the usernames directly bound to the role. - // This field should only be specified when supporting legacy clients and servers. - // See Subjects for further details. - // +k8s:conversion-gen=false - // +optional - optional OptionalNames userNames = 2; - - // GroupNames holds all the groups directly bound to the role. - // This field should only be specified when supporting legacy clients and servers. - // See Subjects for further details. - // +k8s:conversion-gen=false - // +optional - optional OptionalNames groupNames = 3; - - // Subjects hold object references to authorize with this rule. - // This field is ignored if UserNames or GroupNames are specified to support legacy clients and servers. - // Thus newer clients that do not need to support backwards compatibility should send - // only fully qualified Subjects and should omit the UserNames and GroupNames fields. - // Clients that need to support backwards compatibility can use this field to build the UserNames and GroupNames. - repeated k8s.io.api.core.v1.ObjectReference subjects = 4; - - // RoleRef can only reference the current namespace and the global namespace. - // If the ClusterRoleRef cannot be resolved, the Authorizer must return an error. - // Since Policy is a singleton, this is sufficient knowledge to locate a role. - optional k8s.io.api.core.v1.ObjectReference roleRef = 5; -} - -// ClusterRoleBindingList is a collection of ClusterRoleBindings -message ClusterRoleBindingList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is a list of ClusterRoleBindings - repeated ClusterRoleBinding items = 2; -} - -// ClusterRoleList is a collection of ClusterRoles -message ClusterRoleList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is a list of ClusterRoles - repeated ClusterRole items = 2; -} - -// GroupRestriction matches a group either by a string match on the group name -// or a label selector applied to group labels. -message GroupRestriction { - // Groups is a list of groups used to match against an individual user's - // groups. If the user is a member of one of the whitelisted groups, the user - // is allowed to be bound to a role. - // +nullable - repeated string groups = 1; - - // Selectors specifies a list of label selectors over group labels. - // +nullable - repeated k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labels = 2; -} - -// IsPersonalSubjectAccessReview is a marker for PolicyRule.AttributeRestrictions that denotes that subjectaccessreviews on self should be allowed -message IsPersonalSubjectAccessReview { -} - -// LocalResourceAccessReview is a means to request a list of which users and groups are authorized to perform the action specified by spec in a particular namespace -message LocalResourceAccessReview { - // Action describes the action being tested. The Namespace element is FORCED to the current namespace. - optional Action Action = 1; -} - -// LocalSubjectAccessReview is an object for requesting information about whether a user or group can perform an action in a particular namespace -message LocalSubjectAccessReview { - // Action describes the action being tested. The Namespace element is FORCED to the current namespace. - optional Action Action = 1; - - // User is optional. If both User and Groups are empty, the current authenticated user is used. - optional string user = 2; - - // Groups is optional. Groups is the list of groups to which the User belongs. - // +k8s:conversion-gen=false - repeated string groups = 3; - - // Scopes to use for the evaluation. Empty means "use the unscoped (full) permissions of the user/groups". - // Nil for a self-SAR, means "use the scopes on this request". - // Nil for a regular SAR, means the same as empty. - // +k8s:conversion-gen=false - optional OptionalScopes scopes = 4; -} - -// NamedClusterRole relates a name with a cluster role -message NamedClusterRole { - // Name is the name of the cluster role - optional string name = 1; - - // Role is the cluster role being named - optional ClusterRole role = 2; -} - -// NamedClusterRoleBinding relates a name with a cluster role binding -message NamedClusterRoleBinding { - // Name is the name of the cluster role binding - optional string name = 1; - - // RoleBinding is the cluster role binding being named - optional ClusterRoleBinding roleBinding = 2; -} - -// NamedRole relates a Role with a name -message NamedRole { - // Name is the name of the role - optional string name = 1; - - // Role is the role being named - optional Role role = 2; -} - -// NamedRoleBinding relates a role binding with a name -message NamedRoleBinding { - // Name is the name of the role binding - optional string name = 1; - - // RoleBinding is the role binding being named - optional RoleBinding roleBinding = 2; -} - -// OptionalNames is an array that may also be left nil to distinguish between set and unset. -// +protobuf.nullable=true -// +protobuf.options.(gogoproto.goproto_stringer)=false -message OptionalNames { - // items, if empty, will result in an empty slice - - repeated string items = 1; -} - -// OptionalScopes is an array that may also be left nil to distinguish between set and unset. -// +protobuf.nullable=true -// +protobuf.options.(gogoproto.goproto_stringer)=false -message OptionalScopes { - // items, if empty, will result in an empty slice - - repeated string items = 1; -} - -// PolicyRule holds information that describes a policy rule, but does not contain information -// about who the rule applies to or which namespace the rule applies to. -message PolicyRule { - // Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds. - repeated string verbs = 1; - - // AttributeRestrictions will vary depending on what the Authorizer/AuthorizationAttributeBuilder pair supports. - // If the Authorizer does not recognize how to handle the AttributeRestrictions, the Authorizer should report an error. - // +kubebuilder:pruning:PreserveUnknownFields - optional k8s.io.apimachinery.pkg.runtime.RawExtension attributeRestrictions = 2; - - // APIGroups is the name of the APIGroup that contains the resources. If this field is empty, then both kubernetes and origin API groups are assumed. - // That means that if an action is requested against one of the enumerated resources in either the kubernetes or the origin API group, the request - // will be allowed - // +optional - // +nullable - repeated string apiGroups = 3; - - // Resources is a list of resources this rule applies to. ResourceAll represents all resources. - repeated string resources = 4; - - // ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. - repeated string resourceNames = 5; - - // NonResourceURLsSlice is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path - // This name is intentionally different than the internal type so that the DefaultConvert works nicely and because the ordering may be different. - repeated string nonResourceURLs = 6; -} - -// ResourceAccessReview is a means to request a list of which users and groups are authorized to perform the -// action specified by spec -message ResourceAccessReview { - // Action describes the action being tested. - optional Action Action = 1; -} - -// ResourceAccessReviewResponse describes who can perform the action -message ResourceAccessReviewResponse { - // Namespace is the namespace used for the access review - optional string namespace = 1; - - // UsersSlice is the list of users who can perform the action - // +k8s:conversion-gen=false - repeated string users = 2; - - // GroupsSlice is the list of groups who can perform the action - // +k8s:conversion-gen=false - repeated string groups = 3; - - // EvaluationError is an indication that some error occurred during resolution, but partial results can still be returned. - // It is entirely possible to get an error and be able to continue determine authorization status in spite of it. This is - // most common when a bound role is missing, but enough roles are still present and bound to reason about the request. - optional string evalutionError = 4; -} - -// Role is a logical grouping of PolicyRules that can be referenced as a unit by RoleBindings. -message Role { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Rules holds all the PolicyRules for this Role - repeated PolicyRule rules = 2; -} - -// RoleBinding references a Role, but not contain it. It can reference any Role in the same namespace or in the global namespace. -// It adds who information via (Users and Groups) OR Subjects and namespace information by which namespace it exists in. -// RoleBindings in a given namespace only have effect in that namespace (excepting the master namespace which has power in all namespaces). -message RoleBinding { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // UserNames holds all the usernames directly bound to the role. - // This field should only be specified when supporting legacy clients and servers. - // See Subjects for further details. - // +k8s:conversion-gen=false - // +optional - optional OptionalNames userNames = 2; - - // GroupNames holds all the groups directly bound to the role. - // This field should only be specified when supporting legacy clients and servers. - // See Subjects for further details. - // +k8s:conversion-gen=false - // +optional - optional OptionalNames groupNames = 3; - - // Subjects hold object references to authorize with this rule. - // This field is ignored if UserNames or GroupNames are specified to support legacy clients and servers. - // Thus newer clients that do not need to support backwards compatibility should send - // only fully qualified Subjects and should omit the UserNames and GroupNames fields. - // Clients that need to support backwards compatibility can use this field to build the UserNames and GroupNames. - repeated k8s.io.api.core.v1.ObjectReference subjects = 4; - - // RoleRef can only reference the current namespace and the global namespace. - // If the RoleRef cannot be resolved, the Authorizer must return an error. - // Since Policy is a singleton, this is sufficient knowledge to locate a role. - optional k8s.io.api.core.v1.ObjectReference roleRef = 5; -} - -// RoleBindingList is a collection of RoleBindings -message RoleBindingList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is a list of RoleBindings - repeated RoleBinding items = 2; -} - -// RoleBindingRestriction is an object that can be matched against a subject -// (user, group, or service account) to determine whether rolebindings on that -// subject are allowed in the namespace to which the RoleBindingRestriction -// belongs. If any one of those RoleBindingRestriction objects matches -// a subject, rolebindings on that subject in the namespace are allowed. -message RoleBindingRestriction { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Spec defines the matcher. - optional RoleBindingRestrictionSpec spec = 2; -} - -// RoleBindingRestrictionList is a collection of RoleBindingRestriction objects. -message RoleBindingRestrictionList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is a list of RoleBindingRestriction objects. - repeated RoleBindingRestriction items = 2; -} - -// RoleBindingRestrictionSpec defines a rolebinding restriction. Exactly one -// field must be non-nil. -message RoleBindingRestrictionSpec { - // UserRestriction matches against user subjects. - // +nullable - optional UserRestriction userrestriction = 1; - - // GroupRestriction matches against group subjects. - // +nullable - optional GroupRestriction grouprestriction = 2; - - // ServiceAccountRestriction matches against service-account subjects. - // +nullable - optional ServiceAccountRestriction serviceaccountrestriction = 3; -} - -// RoleList is a collection of Roles -message RoleList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is a list of Roles - repeated Role items = 2; -} - -// SelfSubjectRulesReview is a resource you can create to determine which actions you can perform in a namespace -message SelfSubjectRulesReview { - // Spec adds information about how to conduct the check - optional SelfSubjectRulesReviewSpec spec = 1; - - // Status is completed by the server to tell which permissions you have - optional SubjectRulesReviewStatus status = 2; -} - -// SelfSubjectRulesReviewSpec adds information about how to conduct the check -message SelfSubjectRulesReviewSpec { - // Scopes to use for the evaluation. Empty means "use the unscoped (full) permissions of the user/groups". - // Nil means "use the scopes on this request". - // +k8s:conversion-gen=false - optional OptionalScopes scopes = 1; -} - -// ServiceAccountReference specifies a service account and namespace by their -// names. -message ServiceAccountReference { - // Name is the name of the service account. - optional string name = 1; - - // Namespace is the namespace of the service account. Service accounts from - // inside the whitelisted namespaces are allowed to be bound to roles. If - // Namespace is empty, then the namespace of the RoleBindingRestriction in - // which the ServiceAccountReference is embedded is used. - optional string namespace = 2; -} - -// ServiceAccountRestriction matches a service account by a string match on -// either the service-account name or the name of the service account's -// namespace. -message ServiceAccountRestriction { - // ServiceAccounts specifies a list of literal service-account names. - repeated ServiceAccountReference serviceaccounts = 1; - - // Namespaces specifies a list of literal namespace names. - repeated string namespaces = 2; -} - -// SubjectAccessReview is an object for requesting information about whether a user or group can perform an action -message SubjectAccessReview { - // Action describes the action being tested. - optional Action Action = 1; - - // User is optional. If both User and Groups are empty, the current authenticated user is used. - optional string user = 2; - - // GroupsSlice is optional. Groups is the list of groups to which the User belongs. - // +k8s:conversion-gen=false - repeated string groups = 3; - - // Scopes to use for the evaluation. Empty means "use the unscoped (full) permissions of the user/groups". - // Nil for a self-SAR, means "use the scopes on this request". - // Nil for a regular SAR, means the same as empty. - // +k8s:conversion-gen=false - optional OptionalScopes scopes = 4; -} - -// SubjectAccessReviewResponse describes whether or not a user or group can perform an action -message SubjectAccessReviewResponse { - // Namespace is the namespace used for the access review - optional string namespace = 1; - - // Allowed is required. True if the action would be allowed, false otherwise. - optional bool allowed = 2; - - // Reason is optional. It indicates why a request was allowed or denied. - optional string reason = 3; - - // EvaluationError is an indication that some error occurred during the authorization check. - // It is entirely possible to get an error and be able to continue determine authorization status in spite of it. This is - // most common when a bound role is missing, but enough roles are still present and bound to reason about the request. - optional string evaluationError = 4; -} - -// SubjectRulesReview is a resource you can create to determine which actions another user can perform in a namespace -message SubjectRulesReview { - // Spec adds information about how to conduct the check - optional SubjectRulesReviewSpec spec = 1; - - // Status is completed by the server to tell which permissions you have - optional SubjectRulesReviewStatus status = 2; -} - -// SubjectRulesReviewSpec adds information about how to conduct the check -message SubjectRulesReviewSpec { - // User is optional. At least one of User and Groups must be specified. - optional string user = 1; - - // Groups is optional. Groups is the list of groups to which the User belongs. At least one of User and Groups must be specified. - repeated string groups = 2; - - // Scopes to use for the evaluation. Empty means "use the unscoped (full) permissions of the user/groups". - optional OptionalScopes scopes = 3; -} - -// SubjectRulesReviewStatus is contains the result of a rules check -message SubjectRulesReviewStatus { - // Rules is the list of rules (no particular sort) that are allowed for the subject - repeated PolicyRule rules = 1; - - // EvaluationError can appear in combination with Rules. It means some error happened during evaluation - // that may have prevented additional rules from being populated. - optional string evaluationError = 2; -} - -// UserRestriction matches a user either by a string match on the user name, -// a string match on the name of a group to which the user belongs, or a label -// selector applied to the user labels. -message UserRestriction { - // Users specifies a list of literal user names. - repeated string users = 1; - - // Groups specifies a list of literal group names. - // +nullable - repeated string groups = 2; - - // Selectors specifies a list of label selectors over user labels. - // +nullable - repeated k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labels = 3; -} - diff --git a/vendor/github.com/openshift/api/authorization/v1/legacy.go b/vendor/github.com/openshift/api/authorization/v1/legacy.go deleted file mode 100644 index f437a242ea8cb..0000000000000 --- a/vendor/github.com/openshift/api/authorization/v1/legacy.go +++ /dev/null @@ -1,43 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - rbacv1 "k8s.io/api/rbac/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - legacyGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} - legacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, corev1.AddToScheme, rbacv1.AddToScheme) - DeprecatedInstallWithoutGroup = legacySchemeBuilder.AddToScheme -) - -func addLegacyKnownTypes(scheme *runtime.Scheme) error { - types := []runtime.Object{ - &Role{}, - &RoleBinding{}, - &RoleBindingList{}, - &RoleList{}, - - &SelfSubjectRulesReview{}, - &SubjectRulesReview{}, - &ResourceAccessReview{}, - &SubjectAccessReview{}, - &LocalResourceAccessReview{}, - &LocalSubjectAccessReview{}, - &ResourceAccessReviewResponse{}, - &SubjectAccessReviewResponse{}, - &IsPersonalSubjectAccessReview{}, - - &ClusterRole{}, - &ClusterRoleBinding{}, - &ClusterRoleBindingList{}, - &ClusterRoleList{}, - - &RoleBindingRestriction{}, - &RoleBindingRestrictionList{}, - } - scheme.AddKnownTypes(legacyGroupVersion, types...) - return nil -} diff --git a/vendor/github.com/openshift/api/authorization/v1/register.go b/vendor/github.com/openshift/api/authorization/v1/register.go deleted file mode 100644 index f1e12477b6516..0000000000000 --- a/vendor/github.com/openshift/api/authorization/v1/register.go +++ /dev/null @@ -1,60 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - rbacv1 "k8s.io/api/rbac/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - GroupName = "authorization.openshift.io" - GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, corev1.AddToScheme, rbacv1.AddToScheme) - // Install is a function which adds this version to a scheme - Install = schemeBuilder.AddToScheme - - // SchemeGroupVersion generated code relies on this name - // Deprecated - SchemeGroupVersion = GroupVersion - // AddToScheme exists solely to keep the old generators creating valid code - // DEPRECATED - AddToScheme = schemeBuilder.AddToScheme -) - -// Resource generated code relies on this being here, but it logically belongs to the group -// DEPRECATED -func Resource(resource string) schema.GroupResource { - return schema.GroupResource{Group: GroupName, Resource: resource} -} - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &Role{}, - &RoleBinding{}, - &RoleBindingList{}, - &RoleList{}, - - &SelfSubjectRulesReview{}, - &SubjectRulesReview{}, - &ResourceAccessReview{}, - &SubjectAccessReview{}, - &LocalResourceAccessReview{}, - &LocalSubjectAccessReview{}, - &ResourceAccessReviewResponse{}, - &SubjectAccessReviewResponse{}, - &IsPersonalSubjectAccessReview{}, - - &ClusterRole{}, - &ClusterRoleBinding{}, - &ClusterRoleBindingList{}, - &ClusterRoleList{}, - - &RoleBindingRestriction{}, - &RoleBindingRestrictionList{}, - ) - metav1.AddToGroupVersion(scheme, GroupVersion) - return nil -} diff --git a/vendor/github.com/openshift/api/authorization/v1/types.go b/vendor/github.com/openshift/api/authorization/v1/types.go deleted file mode 100644 index 355d2f3120da6..0000000000000 --- a/vendor/github.com/openshift/api/authorization/v1/types.go +++ /dev/null @@ -1,545 +0,0 @@ -package v1 - -import ( - "fmt" - - corev1 "k8s.io/api/core/v1" - rbacv1 "k8s.io/api/rbac/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - kruntime "k8s.io/apimachinery/pkg/runtime" -) - -// Authorization is calculated against -// 1. all deny RoleBinding PolicyRules in the master namespace - short circuit on match -// 2. all allow RoleBinding PolicyRules in the master namespace - short circuit on match -// 3. all deny RoleBinding PolicyRules in the namespace - short circuit on match -// 4. all allow RoleBinding PolicyRules in the namespace - short circuit on match -// 5. deny by default - -const ( - // GroupKind is string representation of kind used in role binding subjects that represents the "group". - GroupKind = "Group" - // UserKind is string representation of kind used in role binding subjects that represents the "user". - UserKind = "User" - - ScopesKey = "scopes.authorization.openshift.io" -) - -// PolicyRule holds information that describes a policy rule, but does not contain information -// about who the rule applies to or which namespace the rule applies to. -type PolicyRule struct { - // Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds. - Verbs []string `json:"verbs" protobuf:"bytes,1,rep,name=verbs"` - // AttributeRestrictions will vary depending on what the Authorizer/AuthorizationAttributeBuilder pair supports. - // If the Authorizer does not recognize how to handle the AttributeRestrictions, the Authorizer should report an error. - // +kubebuilder:pruning:PreserveUnknownFields - AttributeRestrictions kruntime.RawExtension `json:"attributeRestrictions,omitempty" protobuf:"bytes,2,opt,name=attributeRestrictions"` - // APIGroups is the name of the APIGroup that contains the resources. If this field is empty, then both kubernetes and origin API groups are assumed. - // That means that if an action is requested against one of the enumerated resources in either the kubernetes or the origin API group, the request - // will be allowed - // +optional - // +nullable - APIGroups []string `json:"apiGroups,omitempty" protobuf:"bytes,3,rep,name=apiGroups"` - // Resources is a list of resources this rule applies to. ResourceAll represents all resources. - Resources []string `json:"resources" protobuf:"bytes,4,rep,name=resources"` - // ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. - ResourceNames []string `json:"resourceNames,omitempty" protobuf:"bytes,5,rep,name=resourceNames"` - // NonResourceURLsSlice is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path - // This name is intentionally different than the internal type so that the DefaultConvert works nicely and because the ordering may be different. - NonResourceURLsSlice []string `json:"nonResourceURLs,omitempty" protobuf:"bytes,6,rep,name=nonResourceURLs"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// IsPersonalSubjectAccessReview is a marker for PolicyRule.AttributeRestrictions that denotes that subjectaccessreviews on self should be allowed -type IsPersonalSubjectAccessReview struct { - metav1.TypeMeta `json:",inline"` -} - -// +genclient -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Role is a logical grouping of PolicyRules that can be referenced as a unit by RoleBindings. -type Role struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Rules holds all the PolicyRules for this Role - Rules []PolicyRule `json:"rules" protobuf:"bytes,2,rep,name=rules"` -} - -// OptionalNames is an array that may also be left nil to distinguish between set and unset. -// +protobuf.nullable=true -// +protobuf.options.(gogoproto.goproto_stringer)=false -type OptionalNames []string - -func (t OptionalNames) String() string { - return fmt.Sprintf("%v", []string(t)) -} - -// +genclient -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// RoleBinding references a Role, but not contain it. It can reference any Role in the same namespace or in the global namespace. -// It adds who information via (Users and Groups) OR Subjects and namespace information by which namespace it exists in. -// RoleBindings in a given namespace only have effect in that namespace (excepting the master namespace which has power in all namespaces). -type RoleBinding struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // UserNames holds all the usernames directly bound to the role. - // This field should only be specified when supporting legacy clients and servers. - // See Subjects for further details. - // +k8s:conversion-gen=false - // +optional - UserNames OptionalNames `json:"userNames" protobuf:"bytes,2,rep,name=userNames"` - // GroupNames holds all the groups directly bound to the role. - // This field should only be specified when supporting legacy clients and servers. - // See Subjects for further details. - // +k8s:conversion-gen=false - // +optional - GroupNames OptionalNames `json:"groupNames" protobuf:"bytes,3,rep,name=groupNames"` - // Subjects hold object references to authorize with this rule. - // This field is ignored if UserNames or GroupNames are specified to support legacy clients and servers. - // Thus newer clients that do not need to support backwards compatibility should send - // only fully qualified Subjects and should omit the UserNames and GroupNames fields. - // Clients that need to support backwards compatibility can use this field to build the UserNames and GroupNames. - Subjects []corev1.ObjectReference `json:"subjects" protobuf:"bytes,4,rep,name=subjects"` - - // RoleRef can only reference the current namespace and the global namespace. - // If the RoleRef cannot be resolved, the Authorizer must return an error. - // Since Policy is a singleton, this is sufficient knowledge to locate a role. - RoleRef corev1.ObjectReference `json:"roleRef" protobuf:"bytes,5,opt,name=roleRef"` -} - -// NamedRole relates a Role with a name -type NamedRole struct { - // Name is the name of the role - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - // Role is the role being named - Role Role `json:"role" protobuf:"bytes,2,opt,name=role"` -} - -// NamedRoleBinding relates a role binding with a name -type NamedRoleBinding struct { - // Name is the name of the role binding - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - // RoleBinding is the role binding being named - RoleBinding RoleBinding `json:"roleBinding" protobuf:"bytes,2,opt,name=roleBinding"` -} - -// +genclient -// +genclient:onlyVerbs=create -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// SelfSubjectRulesReview is a resource you can create to determine which actions you can perform in a namespace -type SelfSubjectRulesReview struct { - metav1.TypeMeta `json:",inline"` - - // Spec adds information about how to conduct the check - Spec SelfSubjectRulesReviewSpec `json:"spec" protobuf:"bytes,1,opt,name=spec"` - - // Status is completed by the server to tell which permissions you have - Status SubjectRulesReviewStatus `json:"status,omitempty" protobuf:"bytes,2,opt,name=status"` -} - -// SelfSubjectRulesReviewSpec adds information about how to conduct the check -type SelfSubjectRulesReviewSpec struct { - // Scopes to use for the evaluation. Empty means "use the unscoped (full) permissions of the user/groups". - // Nil means "use the scopes on this request". - // +k8s:conversion-gen=false - Scopes OptionalScopes `json:"scopes" protobuf:"bytes,1,rep,name=scopes"` -} - -// +genclient -// +genclient:onlyVerbs=create -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// SubjectRulesReview is a resource you can create to determine which actions another user can perform in a namespace -type SubjectRulesReview struct { - metav1.TypeMeta `json:",inline"` - - // Spec adds information about how to conduct the check - Spec SubjectRulesReviewSpec `json:"spec" protobuf:"bytes,1,opt,name=spec"` - - // Status is completed by the server to tell which permissions you have - Status SubjectRulesReviewStatus `json:"status,omitempty" protobuf:"bytes,2,opt,name=status"` -} - -// SubjectRulesReviewSpec adds information about how to conduct the check -type SubjectRulesReviewSpec struct { - // User is optional. At least one of User and Groups must be specified. - User string `json:"user" protobuf:"bytes,1,opt,name=user"` - // Groups is optional. Groups is the list of groups to which the User belongs. At least one of User and Groups must be specified. - Groups []string `json:"groups" protobuf:"bytes,2,rep,name=groups"` - // Scopes to use for the evaluation. Empty means "use the unscoped (full) permissions of the user/groups". - Scopes OptionalScopes `json:"scopes" protobuf:"bytes,3,opt,name=scopes"` -} - -// SubjectRulesReviewStatus is contains the result of a rules check -type SubjectRulesReviewStatus struct { - // Rules is the list of rules (no particular sort) that are allowed for the subject - Rules []PolicyRule `json:"rules" protobuf:"bytes,1,rep,name=rules"` - // EvaluationError can appear in combination with Rules. It means some error happened during evaluation - // that may have prevented additional rules from being populated. - EvaluationError string `json:"evaluationError,omitempty" protobuf:"bytes,2,opt,name=evaluationError"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ResourceAccessReviewResponse describes who can perform the action -type ResourceAccessReviewResponse struct { - metav1.TypeMeta `json:",inline"` - - // Namespace is the namespace used for the access review - Namespace string `json:"namespace,omitempty" protobuf:"bytes,1,opt,name=namespace"` - // UsersSlice is the list of users who can perform the action - // +k8s:conversion-gen=false - UsersSlice []string `json:"users" protobuf:"bytes,2,rep,name=users"` - // GroupsSlice is the list of groups who can perform the action - // +k8s:conversion-gen=false - GroupsSlice []string `json:"groups" protobuf:"bytes,3,rep,name=groups"` - - // EvaluationError is an indication that some error occurred during resolution, but partial results can still be returned. - // It is entirely possible to get an error and be able to continue determine authorization status in spite of it. This is - // most common when a bound role is missing, but enough roles are still present and bound to reason about the request. - EvaluationError string `json:"evalutionError" protobuf:"bytes,4,opt,name=evalutionError"` -} - -// +genclient -// +genclient:nonNamespaced -// +genclient:skipVerbs=get,list,create,update,patch,delete,deleteCollection,watch -// +genclient:method=Create,verb=create,result=ResourceAccessReviewResponse -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ResourceAccessReview is a means to request a list of which users and groups are authorized to perform the -// action specified by spec -type ResourceAccessReview struct { - metav1.TypeMeta `json:",inline"` - - // Action describes the action being tested. - Action `json:",inline" protobuf:"bytes,1,opt,name=Action"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// SubjectAccessReviewResponse describes whether or not a user or group can perform an action -type SubjectAccessReviewResponse struct { - metav1.TypeMeta `json:",inline"` - - // Namespace is the namespace used for the access review - Namespace string `json:"namespace,omitempty" protobuf:"bytes,1,opt,name=namespace"` - // Allowed is required. True if the action would be allowed, false otherwise. - Allowed bool `json:"allowed" protobuf:"varint,2,opt,name=allowed"` - // Reason is optional. It indicates why a request was allowed or denied. - Reason string `json:"reason,omitempty" protobuf:"bytes,3,opt,name=reason"` - // EvaluationError is an indication that some error occurred during the authorization check. - // It is entirely possible to get an error and be able to continue determine authorization status in spite of it. This is - // most common when a bound role is missing, but enough roles are still present and bound to reason about the request. - EvaluationError string `json:"evaluationError,omitempty" protobuf:"bytes,4,opt,name=evaluationError"` -} - -// OptionalScopes is an array that may also be left nil to distinguish between set and unset. -// +protobuf.nullable=true -// +protobuf.options.(gogoproto.goproto_stringer)=false -type OptionalScopes []string - -func (t OptionalScopes) String() string { - return fmt.Sprintf("%v", []string(t)) -} - -// +genclient -// +genclient:nonNamespaced -// +genclient:skipVerbs=get,list,create,update,patch,delete,deleteCollection,watch -// +genclient:method=Create,verb=create,result=SubjectAccessReviewResponse -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// SubjectAccessReview is an object for requesting information about whether a user or group can perform an action -type SubjectAccessReview struct { - metav1.TypeMeta `json:",inline"` - - // Action describes the action being tested. - Action `json:",inline" protobuf:"bytes,1,opt,name=Action"` - // User is optional. If both User and Groups are empty, the current authenticated user is used. - User string `json:"user" protobuf:"bytes,2,opt,name=user"` - // GroupsSlice is optional. Groups is the list of groups to which the User belongs. - // +k8s:conversion-gen=false - GroupsSlice []string `json:"groups" protobuf:"bytes,3,rep,name=groups"` - // Scopes to use for the evaluation. Empty means "use the unscoped (full) permissions of the user/groups". - // Nil for a self-SAR, means "use the scopes on this request". - // Nil for a regular SAR, means the same as empty. - // +k8s:conversion-gen=false - Scopes OptionalScopes `json:"scopes" protobuf:"bytes,4,rep,name=scopes"` -} - -// +genclient -// +genclient:skipVerbs=get,list,create,update,patch,delete,deleteCollection,watch -// +genclient:method=Create,verb=create,result=ResourceAccessReviewResponse -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// LocalResourceAccessReview is a means to request a list of which users and groups are authorized to perform the action specified by spec in a particular namespace -type LocalResourceAccessReview struct { - metav1.TypeMeta `json:",inline"` - - // Action describes the action being tested. The Namespace element is FORCED to the current namespace. - Action `json:",inline" protobuf:"bytes,1,opt,name=Action"` -} - -// +genclient -// +genclient:skipVerbs=get,list,create,update,patch,delete,deleteCollection,watch -// +genclient:method=Create,verb=create,result=SubjectAccessReviewResponse -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// LocalSubjectAccessReview is an object for requesting information about whether a user or group can perform an action in a particular namespace -type LocalSubjectAccessReview struct { - metav1.TypeMeta `json:",inline"` - - // Action describes the action being tested. The Namespace element is FORCED to the current namespace. - Action `json:",inline" protobuf:"bytes,1,opt,name=Action"` - // User is optional. If both User and Groups are empty, the current authenticated user is used. - User string `json:"user" protobuf:"bytes,2,opt,name=user"` - // Groups is optional. Groups is the list of groups to which the User belongs. - // +k8s:conversion-gen=false - GroupsSlice []string `json:"groups" protobuf:"bytes,3,rep,name=groups"` - // Scopes to use for the evaluation. Empty means "use the unscoped (full) permissions of the user/groups". - // Nil for a self-SAR, means "use the scopes on this request". - // Nil for a regular SAR, means the same as empty. - // +k8s:conversion-gen=false - Scopes OptionalScopes `json:"scopes" protobuf:"bytes,4,rep,name=scopes"` -} - -// Action describes a request to the API server -type Action struct { - // Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces - Namespace string `json:"namespace" protobuf:"bytes,1,opt,name=namespace"` - // Verb is one of: get, list, watch, create, update, delete - Verb string `json:"verb" protobuf:"bytes,2,opt,name=verb"` - // Group is the API group of the resource - // Serialized as resourceAPIGroup to avoid confusion with the 'groups' field when inlined - Group string `json:"resourceAPIGroup" protobuf:"bytes,3,opt,name=resourceAPIGroup"` - // Version is the API version of the resource - // Serialized as resourceAPIVersion to avoid confusion with TypeMeta.apiVersion and ObjectMeta.resourceVersion when inlined - Version string `json:"resourceAPIVersion" protobuf:"bytes,4,opt,name=resourceAPIVersion"` - // Resource is one of the existing resource types - Resource string `json:"resource" protobuf:"bytes,5,opt,name=resource"` - // ResourceName is the name of the resource being requested for a "get" or deleted for a "delete" - ResourceName string `json:"resourceName" protobuf:"bytes,6,opt,name=resourceName"` - // Path is the path of a non resource URL - Path string `json:"path" protobuf:"bytes,8,opt,name=path"` - // IsNonResourceURL is true if this is a request for a non-resource URL (outside of the resource hierarchy) - IsNonResourceURL bool `json:"isNonResourceURL" protobuf:"varint,9,opt,name=isNonResourceURL"` - // Content is the actual content of the request for create and update - // +kubebuilder:pruning:PreserveUnknownFields - Content kruntime.RawExtension `json:"content,omitempty" protobuf:"bytes,7,opt,name=content"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// RoleBindingList is a collection of RoleBindings -type RoleBindingList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is a list of RoleBindings - Items []RoleBinding `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// RoleList is a collection of Roles -type RoleList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is a list of Roles - Items []Role `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ClusterRole is a logical grouping of PolicyRules that can be referenced as a unit by ClusterRoleBindings. -type ClusterRole struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Rules holds all the PolicyRules for this ClusterRole - Rules []PolicyRule `json:"rules" protobuf:"bytes,2,rep,name=rules"` - - // AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. - // If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be - // stomped by the controller. - AggregationRule *rbacv1.AggregationRule `json:"aggregationRule,omitempty" protobuf:"bytes,3,opt,name=aggregationRule"` -} - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ClusterRoleBinding references a ClusterRole, but not contain it. It can reference any ClusterRole in the same namespace or in the global namespace. -// It adds who information via (Users and Groups) OR Subjects and namespace information by which namespace it exists in. -// ClusterRoleBindings in a given namespace only have effect in that namespace (excepting the master namespace which has power in all namespaces). -type ClusterRoleBinding struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // UserNames holds all the usernames directly bound to the role. - // This field should only be specified when supporting legacy clients and servers. - // See Subjects for further details. - // +k8s:conversion-gen=false - // +optional - UserNames OptionalNames `json:"userNames" protobuf:"bytes,2,rep,name=userNames"` - // GroupNames holds all the groups directly bound to the role. - // This field should only be specified when supporting legacy clients and servers. - // See Subjects for further details. - // +k8s:conversion-gen=false - // +optional - GroupNames OptionalNames `json:"groupNames" protobuf:"bytes,3,rep,name=groupNames"` - // Subjects hold object references to authorize with this rule. - // This field is ignored if UserNames or GroupNames are specified to support legacy clients and servers. - // Thus newer clients that do not need to support backwards compatibility should send - // only fully qualified Subjects and should omit the UserNames and GroupNames fields. - // Clients that need to support backwards compatibility can use this field to build the UserNames and GroupNames. - Subjects []corev1.ObjectReference `json:"subjects" protobuf:"bytes,4,rep,name=subjects"` - - // RoleRef can only reference the current namespace and the global namespace. - // If the ClusterRoleRef cannot be resolved, the Authorizer must return an error. - // Since Policy is a singleton, this is sufficient knowledge to locate a role. - RoleRef corev1.ObjectReference `json:"roleRef" protobuf:"bytes,5,opt,name=roleRef"` -} - -// NamedClusterRole relates a name with a cluster role -type NamedClusterRole struct { - // Name is the name of the cluster role - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - // Role is the cluster role being named - Role ClusterRole `json:"role" protobuf:"bytes,2,opt,name=role"` -} - -// NamedClusterRoleBinding relates a name with a cluster role binding -type NamedClusterRoleBinding struct { - // Name is the name of the cluster role binding - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - // RoleBinding is the cluster role binding being named - RoleBinding ClusterRoleBinding `json:"roleBinding" protobuf:"bytes,2,opt,name=roleBinding"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ClusterRoleBindingList is a collection of ClusterRoleBindings -type ClusterRoleBindingList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is a list of ClusterRoleBindings - Items []ClusterRoleBinding `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ClusterRoleList is a collection of ClusterRoles -type ClusterRoleList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is a list of ClusterRoles - Items []ClusterRole `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +genclient -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// RoleBindingRestriction is an object that can be matched against a subject -// (user, group, or service account) to determine whether rolebindings on that -// subject are allowed in the namespace to which the RoleBindingRestriction -// belongs. If any one of those RoleBindingRestriction objects matches -// a subject, rolebindings on that subject in the namespace are allowed. -type RoleBindingRestriction struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` - - // Spec defines the matcher. - Spec RoleBindingRestrictionSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` -} - -// RoleBindingRestrictionSpec defines a rolebinding restriction. Exactly one -// field must be non-nil. -type RoleBindingRestrictionSpec struct { - // UserRestriction matches against user subjects. - // +nullable - UserRestriction *UserRestriction `json:"userrestriction" protobuf:"bytes,1,opt,name=userrestriction"` - - // GroupRestriction matches against group subjects. - // +nullable - GroupRestriction *GroupRestriction `json:"grouprestriction" protobuf:"bytes,2,opt,name=grouprestriction"` - - // ServiceAccountRestriction matches against service-account subjects. - // +nullable - ServiceAccountRestriction *ServiceAccountRestriction `json:"serviceaccountrestriction" protobuf:"bytes,3,opt,name=serviceaccountrestriction"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// RoleBindingRestrictionList is a collection of RoleBindingRestriction objects. -type RoleBindingRestrictionList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is a list of RoleBindingRestriction objects. - Items []RoleBindingRestriction `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// UserRestriction matches a user either by a string match on the user name, -// a string match on the name of a group to which the user belongs, or a label -// selector applied to the user labels. -type UserRestriction struct { - // Users specifies a list of literal user names. - Users []string `json:"users" protobuf:"bytes,1,rep,name=users"` - - // Groups specifies a list of literal group names. - // +nullable - Groups []string `json:"groups" protobuf:"bytes,2,rep,name=groups"` - - // Selectors specifies a list of label selectors over user labels. - // +nullable - Selectors []metav1.LabelSelector `json:"labels" protobuf:"bytes,3,rep,name=labels"` -} - -// GroupRestriction matches a group either by a string match on the group name -// or a label selector applied to group labels. -type GroupRestriction struct { - // Groups is a list of groups used to match against an individual user's - // groups. If the user is a member of one of the whitelisted groups, the user - // is allowed to be bound to a role. - // +nullable - Groups []string `json:"groups" protobuf:"bytes,1,rep,name=groups"` - - // Selectors specifies a list of label selectors over group labels. - // +nullable - Selectors []metav1.LabelSelector `json:"labels" protobuf:"bytes,2,rep,name=labels"` -} - -// ServiceAccountRestriction matches a service account by a string match on -// either the service-account name or the name of the service account's -// namespace. -type ServiceAccountRestriction struct { - // ServiceAccounts specifies a list of literal service-account names. - ServiceAccounts []ServiceAccountReference `json:"serviceaccounts" protobuf:"bytes,1,rep,name=serviceaccounts"` - - // Namespaces specifies a list of literal namespace names. - Namespaces []string `json:"namespaces" protobuf:"bytes,2,rep,name=namespaces"` -} - -// ServiceAccountReference specifies a service account and namespace by their -// names. -type ServiceAccountReference struct { - // Name is the name of the service account. - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - - // Namespace is the namespace of the service account. Service accounts from - // inside the whitelisted namespaces are allowed to be bound to roles. If - // Namespace is empty, then the namespace of the RoleBindingRestriction in - // which the ServiceAccountReference is embedded is used. - Namespace string `json:"namespace" protobuf:"bytes,2,opt,name=namespace"` -} diff --git a/vendor/github.com/openshift/api/authorization/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/authorization/v1/zz_generated.deepcopy.go deleted file mode 100644 index 16cbd2e4fb45c..0000000000000 --- a/vendor/github.com/openshift/api/authorization/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,993 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - rbacv1 "k8s.io/api/rbac/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/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 *Action) DeepCopyInto(out *Action) { - *out = *in - in.Content.DeepCopyInto(&out.Content) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Action. -func (in *Action) DeepCopy() *Action { - if in == nil { - return nil - } - out := new(Action) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterRole) DeepCopyInto(out *ClusterRole) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Rules != nil { - in, out := &in.Rules, &out.Rules - *out = make([]PolicyRule, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.AggregationRule != nil { - in, out := &in.AggregationRule, &out.AggregationRule - *out = new(rbacv1.AggregationRule) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRole. -func (in *ClusterRole) DeepCopy() *ClusterRole { - if in == nil { - return nil - } - out := new(ClusterRole) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterRole) 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 *ClusterRoleBinding) DeepCopyInto(out *ClusterRoleBinding) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.UserNames != nil { - in, out := &in.UserNames, &out.UserNames - *out = make(OptionalNames, len(*in)) - copy(*out, *in) - } - if in.GroupNames != nil { - in, out := &in.GroupNames, &out.GroupNames - *out = make(OptionalNames, len(*in)) - copy(*out, *in) - } - if in.Subjects != nil { - in, out := &in.Subjects, &out.Subjects - *out = make([]corev1.ObjectReference, len(*in)) - copy(*out, *in) - } - out.RoleRef = in.RoleRef - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleBinding. -func (in *ClusterRoleBinding) DeepCopy() *ClusterRoleBinding { - if in == nil { - return nil - } - out := new(ClusterRoleBinding) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterRoleBinding) 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 *ClusterRoleBindingList) DeepCopyInto(out *ClusterRoleBindingList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ClusterRoleBinding, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleBindingList. -func (in *ClusterRoleBindingList) DeepCopy() *ClusterRoleBindingList { - if in == nil { - return nil - } - out := new(ClusterRoleBindingList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterRoleBindingList) 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 *ClusterRoleList) DeepCopyInto(out *ClusterRoleList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ClusterRole, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleList. -func (in *ClusterRoleList) DeepCopy() *ClusterRoleList { - if in == nil { - return nil - } - out := new(ClusterRoleList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterRoleList) 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 *GroupRestriction) DeepCopyInto(out *GroupRestriction) { - *out = *in - if in.Groups != nil { - in, out := &in.Groups, &out.Groups - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Selectors != nil { - in, out := &in.Selectors, &out.Selectors - *out = make([]metav1.LabelSelector, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupRestriction. -func (in *GroupRestriction) DeepCopy() *GroupRestriction { - if in == nil { - return nil - } - out := new(GroupRestriction) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IsPersonalSubjectAccessReview) DeepCopyInto(out *IsPersonalSubjectAccessReview) { - *out = *in - out.TypeMeta = in.TypeMeta - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IsPersonalSubjectAccessReview. -func (in *IsPersonalSubjectAccessReview) DeepCopy() *IsPersonalSubjectAccessReview { - if in == nil { - return nil - } - out := new(IsPersonalSubjectAccessReview) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *IsPersonalSubjectAccessReview) 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 *LocalResourceAccessReview) DeepCopyInto(out *LocalResourceAccessReview) { - *out = *in - out.TypeMeta = in.TypeMeta - in.Action.DeepCopyInto(&out.Action) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalResourceAccessReview. -func (in *LocalResourceAccessReview) DeepCopy() *LocalResourceAccessReview { - if in == nil { - return nil - } - out := new(LocalResourceAccessReview) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *LocalResourceAccessReview) 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 *LocalSubjectAccessReview) DeepCopyInto(out *LocalSubjectAccessReview) { - *out = *in - out.TypeMeta = in.TypeMeta - in.Action.DeepCopyInto(&out.Action) - if in.GroupsSlice != nil { - in, out := &in.GroupsSlice, &out.GroupsSlice - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Scopes != nil { - in, out := &in.Scopes, &out.Scopes - *out = make(OptionalScopes, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalSubjectAccessReview. -func (in *LocalSubjectAccessReview) DeepCopy() *LocalSubjectAccessReview { - if in == nil { - return nil - } - out := new(LocalSubjectAccessReview) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *LocalSubjectAccessReview) 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 *NamedClusterRole) DeepCopyInto(out *NamedClusterRole) { - *out = *in - in.Role.DeepCopyInto(&out.Role) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedClusterRole. -func (in *NamedClusterRole) DeepCopy() *NamedClusterRole { - if in == nil { - return nil - } - out := new(NamedClusterRole) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *NamedClusterRoleBinding) DeepCopyInto(out *NamedClusterRoleBinding) { - *out = *in - in.RoleBinding.DeepCopyInto(&out.RoleBinding) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedClusterRoleBinding. -func (in *NamedClusterRoleBinding) DeepCopy() *NamedClusterRoleBinding { - if in == nil { - return nil - } - out := new(NamedClusterRoleBinding) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *NamedRole) DeepCopyInto(out *NamedRole) { - *out = *in - in.Role.DeepCopyInto(&out.Role) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedRole. -func (in *NamedRole) DeepCopy() *NamedRole { - if in == nil { - return nil - } - out := new(NamedRole) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *NamedRoleBinding) DeepCopyInto(out *NamedRoleBinding) { - *out = *in - in.RoleBinding.DeepCopyInto(&out.RoleBinding) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedRoleBinding. -func (in *NamedRoleBinding) DeepCopy() *NamedRoleBinding { - if in == nil { - return nil - } - out := new(NamedRoleBinding) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in OptionalNames) DeepCopyInto(out *OptionalNames) { - { - in := &in - *out = make(OptionalNames, len(*in)) - copy(*out, *in) - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OptionalNames. -func (in OptionalNames) DeepCopy() OptionalNames { - if in == nil { - return nil - } - out := new(OptionalNames) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in OptionalScopes) DeepCopyInto(out *OptionalScopes) { - { - in := &in - *out = make(OptionalScopes, len(*in)) - copy(*out, *in) - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OptionalScopes. -func (in OptionalScopes) DeepCopy() OptionalScopes { - if in == nil { - return nil - } - out := new(OptionalScopes) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PolicyRule) DeepCopyInto(out *PolicyRule) { - *out = *in - if in.Verbs != nil { - in, out := &in.Verbs, &out.Verbs - *out = make([]string, len(*in)) - copy(*out, *in) - } - in.AttributeRestrictions.DeepCopyInto(&out.AttributeRestrictions) - if in.APIGroups != nil { - in, out := &in.APIGroups, &out.APIGroups - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Resources != nil { - in, out := &in.Resources, &out.Resources - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.ResourceNames != nil { - in, out := &in.ResourceNames, &out.ResourceNames - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.NonResourceURLsSlice != nil { - in, out := &in.NonResourceURLsSlice, &out.NonResourceURLsSlice - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRule. -func (in *PolicyRule) DeepCopy() *PolicyRule { - if in == nil { - return nil - } - out := new(PolicyRule) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceAccessReview) DeepCopyInto(out *ResourceAccessReview) { - *out = *in - out.TypeMeta = in.TypeMeta - in.Action.DeepCopyInto(&out.Action) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceAccessReview. -func (in *ResourceAccessReview) DeepCopy() *ResourceAccessReview { - if in == nil { - return nil - } - out := new(ResourceAccessReview) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ResourceAccessReview) 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 *ResourceAccessReviewResponse) DeepCopyInto(out *ResourceAccessReviewResponse) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.UsersSlice != nil { - in, out := &in.UsersSlice, &out.UsersSlice - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.GroupsSlice != nil { - in, out := &in.GroupsSlice, &out.GroupsSlice - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceAccessReviewResponse. -func (in *ResourceAccessReviewResponse) DeepCopy() *ResourceAccessReviewResponse { - if in == nil { - return nil - } - out := new(ResourceAccessReviewResponse) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ResourceAccessReviewResponse) 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 *Role) DeepCopyInto(out *Role) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Rules != nil { - in, out := &in.Rules, &out.Rules - *out = make([]PolicyRule, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Role. -func (in *Role) DeepCopy() *Role { - if in == nil { - return nil - } - out := new(Role) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Role) 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 *RoleBinding) DeepCopyInto(out *RoleBinding) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.UserNames != nil { - in, out := &in.UserNames, &out.UserNames - *out = make(OptionalNames, len(*in)) - copy(*out, *in) - } - if in.GroupNames != nil { - in, out := &in.GroupNames, &out.GroupNames - *out = make(OptionalNames, len(*in)) - copy(*out, *in) - } - if in.Subjects != nil { - in, out := &in.Subjects, &out.Subjects - *out = make([]corev1.ObjectReference, len(*in)) - copy(*out, *in) - } - out.RoleRef = in.RoleRef - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBinding. -func (in *RoleBinding) DeepCopy() *RoleBinding { - if in == nil { - return nil - } - out := new(RoleBinding) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *RoleBinding) 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 *RoleBindingList) DeepCopyInto(out *RoleBindingList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]RoleBinding, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBindingList. -func (in *RoleBindingList) DeepCopy() *RoleBindingList { - if in == nil { - return nil - } - out := new(RoleBindingList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *RoleBindingList) 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 *RoleBindingRestriction) DeepCopyInto(out *RoleBindingRestriction) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBindingRestriction. -func (in *RoleBindingRestriction) DeepCopy() *RoleBindingRestriction { - if in == nil { - return nil - } - out := new(RoleBindingRestriction) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *RoleBindingRestriction) 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 *RoleBindingRestrictionList) DeepCopyInto(out *RoleBindingRestrictionList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]RoleBindingRestriction, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBindingRestrictionList. -func (in *RoleBindingRestrictionList) DeepCopy() *RoleBindingRestrictionList { - if in == nil { - return nil - } - out := new(RoleBindingRestrictionList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *RoleBindingRestrictionList) 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 *RoleBindingRestrictionSpec) DeepCopyInto(out *RoleBindingRestrictionSpec) { - *out = *in - if in.UserRestriction != nil { - in, out := &in.UserRestriction, &out.UserRestriction - *out = new(UserRestriction) - (*in).DeepCopyInto(*out) - } - if in.GroupRestriction != nil { - in, out := &in.GroupRestriction, &out.GroupRestriction - *out = new(GroupRestriction) - (*in).DeepCopyInto(*out) - } - if in.ServiceAccountRestriction != nil { - in, out := &in.ServiceAccountRestriction, &out.ServiceAccountRestriction - *out = new(ServiceAccountRestriction) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBindingRestrictionSpec. -func (in *RoleBindingRestrictionSpec) DeepCopy() *RoleBindingRestrictionSpec { - if in == nil { - return nil - } - out := new(RoleBindingRestrictionSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RoleList) DeepCopyInto(out *RoleList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Role, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleList. -func (in *RoleList) DeepCopy() *RoleList { - if in == nil { - return nil - } - out := new(RoleList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *RoleList) 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 *SelfSubjectRulesReview) DeepCopyInto(out *SelfSubjectRulesReview) { - *out = *in - out.TypeMeta = in.TypeMeta - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectRulesReview. -func (in *SelfSubjectRulesReview) DeepCopy() *SelfSubjectRulesReview { - if in == nil { - return nil - } - out := new(SelfSubjectRulesReview) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *SelfSubjectRulesReview) 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 *SelfSubjectRulesReviewSpec) DeepCopyInto(out *SelfSubjectRulesReviewSpec) { - *out = *in - if in.Scopes != nil { - in, out := &in.Scopes, &out.Scopes - *out = make(OptionalScopes, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectRulesReviewSpec. -func (in *SelfSubjectRulesReviewSpec) DeepCopy() *SelfSubjectRulesReviewSpec { - if in == nil { - return nil - } - out := new(SelfSubjectRulesReviewSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ServiceAccountReference) DeepCopyInto(out *ServiceAccountReference) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountReference. -func (in *ServiceAccountReference) DeepCopy() *ServiceAccountReference { - if in == nil { - return nil - } - out := new(ServiceAccountReference) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ServiceAccountRestriction) DeepCopyInto(out *ServiceAccountRestriction) { - *out = *in - if in.ServiceAccounts != nil { - in, out := &in.ServiceAccounts, &out.ServiceAccounts - *out = make([]ServiceAccountReference, len(*in)) - copy(*out, *in) - } - if in.Namespaces != nil { - in, out := &in.Namespaces, &out.Namespaces - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountRestriction. -func (in *ServiceAccountRestriction) DeepCopy() *ServiceAccountRestriction { - if in == nil { - return nil - } - out := new(ServiceAccountRestriction) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SubjectAccessReview) DeepCopyInto(out *SubjectAccessReview) { - *out = *in - out.TypeMeta = in.TypeMeta - in.Action.DeepCopyInto(&out.Action) - if in.GroupsSlice != nil { - in, out := &in.GroupsSlice, &out.GroupsSlice - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Scopes != nil { - in, out := &in.Scopes, &out.Scopes - *out = make(OptionalScopes, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectAccessReview. -func (in *SubjectAccessReview) DeepCopy() *SubjectAccessReview { - if in == nil { - return nil - } - out := new(SubjectAccessReview) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *SubjectAccessReview) 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 *SubjectAccessReviewResponse) DeepCopyInto(out *SubjectAccessReviewResponse) { - *out = *in - out.TypeMeta = in.TypeMeta - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectAccessReviewResponse. -func (in *SubjectAccessReviewResponse) DeepCopy() *SubjectAccessReviewResponse { - if in == nil { - return nil - } - out := new(SubjectAccessReviewResponse) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *SubjectAccessReviewResponse) 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 *SubjectRulesReview) DeepCopyInto(out *SubjectRulesReview) { - *out = *in - out.TypeMeta = in.TypeMeta - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectRulesReview. -func (in *SubjectRulesReview) DeepCopy() *SubjectRulesReview { - if in == nil { - return nil - } - out := new(SubjectRulesReview) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *SubjectRulesReview) 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 *SubjectRulesReviewSpec) DeepCopyInto(out *SubjectRulesReviewSpec) { - *out = *in - if in.Groups != nil { - in, out := &in.Groups, &out.Groups - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Scopes != nil { - in, out := &in.Scopes, &out.Scopes - *out = make(OptionalScopes, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectRulesReviewSpec. -func (in *SubjectRulesReviewSpec) DeepCopy() *SubjectRulesReviewSpec { - if in == nil { - return nil - } - out := new(SubjectRulesReviewSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SubjectRulesReviewStatus) DeepCopyInto(out *SubjectRulesReviewStatus) { - *out = *in - if in.Rules != nil { - in, out := &in.Rules, &out.Rules - *out = make([]PolicyRule, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectRulesReviewStatus. -func (in *SubjectRulesReviewStatus) DeepCopy() *SubjectRulesReviewStatus { - if in == nil { - return nil - } - out := new(SubjectRulesReviewStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *UserRestriction) DeepCopyInto(out *UserRestriction) { - *out = *in - if in.Users != nil { - in, out := &in.Users, &out.Users - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Groups != nil { - in, out := &in.Groups, &out.Groups - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Selectors != nil { - in, out := &in.Selectors, &out.Selectors - *out = make([]metav1.LabelSelector, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserRestriction. -func (in *UserRestriction) DeepCopy() *UserRestriction { - if in == nil { - return nil - } - out := new(UserRestriction) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/github.com/openshift/api/authorization/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/authorization/v1/zz_generated.swagger_doc_generated.go deleted file mode 100644 index 8bce982f19966..0000000000000 --- a/vendor/github.com/openshift/api/authorization/v1/zz_generated.swagger_doc_generated.go +++ /dev/null @@ -1,354 +0,0 @@ -package v1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE -var map_Action = map[string]string{ - "": "Action describes a request to the API server", - "namespace": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces", - "verb": "Verb is one of: get, list, watch, create, update, delete", - "resourceAPIGroup": "Group is the API group of the resource Serialized as resourceAPIGroup to avoid confusion with the 'groups' field when inlined", - "resourceAPIVersion": "Version is the API version of the resource Serialized as resourceAPIVersion to avoid confusion with TypeMeta.apiVersion and ObjectMeta.resourceVersion when inlined", - "resource": "Resource is one of the existing resource types", - "resourceName": "ResourceName is the name of the resource being requested for a \"get\" or deleted for a \"delete\"", - "path": "Path is the path of a non resource URL", - "isNonResourceURL": "IsNonResourceURL is true if this is a request for a non-resource URL (outside of the resource hierarchy)", - "content": "Content is the actual content of the request for create and update", -} - -func (Action) SwaggerDoc() map[string]string { - return map_Action -} - -var map_ClusterRole = map[string]string{ - "": "ClusterRole is a logical grouping of PolicyRules that can be referenced as a unit by ClusterRoleBindings.", - "rules": "Rules holds all the PolicyRules for this ClusterRole", - "aggregationRule": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.", -} - -func (ClusterRole) SwaggerDoc() map[string]string { - return map_ClusterRole -} - -var map_ClusterRoleBinding = map[string]string{ - "": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference any ClusterRole in the same namespace or in the global namespace. It adds who information via (Users and Groups) OR Subjects and namespace information by which namespace it exists in. ClusterRoleBindings in a given namespace only have effect in that namespace (excepting the master namespace which has power in all namespaces).", - "userNames": "UserNames holds all the usernames directly bound to the role. This field should only be specified when supporting legacy clients and servers. See Subjects for further details.", - "groupNames": "GroupNames holds all the groups directly bound to the role. This field should only be specified when supporting legacy clients and servers. See Subjects for further details.", - "subjects": "Subjects hold object references to authorize with this rule. This field is ignored if UserNames or GroupNames are specified to support legacy clients and servers. Thus newer clients that do not need to support backwards compatibility should send only fully qualified Subjects and should omit the UserNames and GroupNames fields. Clients that need to support backwards compatibility can use this field to build the UserNames and GroupNames.", - "roleRef": "RoleRef can only reference the current namespace and the global namespace. If the ClusterRoleRef cannot be resolved, the Authorizer must return an error. Since Policy is a singleton, this is sufficient knowledge to locate a role.", -} - -func (ClusterRoleBinding) SwaggerDoc() map[string]string { - return map_ClusterRoleBinding -} - -var map_ClusterRoleBindingList = map[string]string{ - "": "ClusterRoleBindingList is a collection of ClusterRoleBindings", - "items": "Items is a list of ClusterRoleBindings", -} - -func (ClusterRoleBindingList) SwaggerDoc() map[string]string { - return map_ClusterRoleBindingList -} - -var map_ClusterRoleList = map[string]string{ - "": "ClusterRoleList is a collection of ClusterRoles", - "items": "Items is a list of ClusterRoles", -} - -func (ClusterRoleList) SwaggerDoc() map[string]string { - return map_ClusterRoleList -} - -var map_GroupRestriction = map[string]string{ - "": "GroupRestriction matches a group either by a string match on the group name or a label selector applied to group labels.", - "groups": "Groups is a list of groups used to match against an individual user's groups. If the user is a member of one of the whitelisted groups, the user is allowed to be bound to a role.", - "labels": "Selectors specifies a list of label selectors over group labels.", -} - -func (GroupRestriction) SwaggerDoc() map[string]string { - return map_GroupRestriction -} - -var map_IsPersonalSubjectAccessReview = map[string]string{ - "": "IsPersonalSubjectAccessReview is a marker for PolicyRule.AttributeRestrictions that denotes that subjectaccessreviews on self should be allowed", -} - -func (IsPersonalSubjectAccessReview) SwaggerDoc() map[string]string { - return map_IsPersonalSubjectAccessReview -} - -var map_LocalResourceAccessReview = map[string]string{ - "": "LocalResourceAccessReview is a means to request a list of which users and groups are authorized to perform the action specified by spec in a particular namespace", -} - -func (LocalResourceAccessReview) SwaggerDoc() map[string]string { - return map_LocalResourceAccessReview -} - -var map_LocalSubjectAccessReview = map[string]string{ - "": "LocalSubjectAccessReview is an object for requesting information about whether a user or group can perform an action in a particular namespace", - "user": "User is optional. If both User and Groups are empty, the current authenticated user is used.", - "groups": "Groups is optional. Groups is the list of groups to which the User belongs.", - "scopes": "Scopes to use for the evaluation. Empty means \"use the unscoped (full) permissions of the user/groups\". Nil for a self-SAR, means \"use the scopes on this request\". Nil for a regular SAR, means the same as empty.", -} - -func (LocalSubjectAccessReview) SwaggerDoc() map[string]string { - return map_LocalSubjectAccessReview -} - -var map_NamedClusterRole = map[string]string{ - "": "NamedClusterRole relates a name with a cluster role", - "name": "Name is the name of the cluster role", - "role": "Role is the cluster role being named", -} - -func (NamedClusterRole) SwaggerDoc() map[string]string { - return map_NamedClusterRole -} - -var map_NamedClusterRoleBinding = map[string]string{ - "": "NamedClusterRoleBinding relates a name with a cluster role binding", - "name": "Name is the name of the cluster role binding", - "roleBinding": "RoleBinding is the cluster role binding being named", -} - -func (NamedClusterRoleBinding) SwaggerDoc() map[string]string { - return map_NamedClusterRoleBinding -} - -var map_NamedRole = map[string]string{ - "": "NamedRole relates a Role with a name", - "name": "Name is the name of the role", - "role": "Role is the role being named", -} - -func (NamedRole) SwaggerDoc() map[string]string { - return map_NamedRole -} - -var map_NamedRoleBinding = map[string]string{ - "": "NamedRoleBinding relates a role binding with a name", - "name": "Name is the name of the role binding", - "roleBinding": "RoleBinding is the role binding being named", -} - -func (NamedRoleBinding) SwaggerDoc() map[string]string { - return map_NamedRoleBinding -} - -var map_PolicyRule = map[string]string{ - "": "PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.", - "verbs": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", - "attributeRestrictions": "AttributeRestrictions will vary depending on what the Authorizer/AuthorizationAttributeBuilder pair supports. If the Authorizer does not recognize how to handle the AttributeRestrictions, the Authorizer should report an error.", - "apiGroups": "APIGroups is the name of the APIGroup that contains the resources. If this field is empty, then both kubernetes and origin API groups are assumed. That means that if an action is requested against one of the enumerated resources in either the kubernetes or the origin API group, the request will be allowed", - "resources": "Resources is a list of resources this rule applies to. ResourceAll represents all resources.", - "resourceNames": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", - "nonResourceURLs": "NonResourceURLsSlice is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path This name is intentionally different than the internal type so that the DefaultConvert works nicely and because the ordering may be different.", -} - -func (PolicyRule) SwaggerDoc() map[string]string { - return map_PolicyRule -} - -var map_ResourceAccessReview = map[string]string{ - "": "ResourceAccessReview is a means to request a list of which users and groups are authorized to perform the action specified by spec", -} - -func (ResourceAccessReview) SwaggerDoc() map[string]string { - return map_ResourceAccessReview -} - -var map_ResourceAccessReviewResponse = map[string]string{ - "": "ResourceAccessReviewResponse describes who can perform the action", - "namespace": "Namespace is the namespace used for the access review", - "users": "UsersSlice is the list of users who can perform the action", - "groups": "GroupsSlice is the list of groups who can perform the action", - "evalutionError": "EvaluationError is an indication that some error occurred during resolution, but partial results can still be returned. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. This is most common when a bound role is missing, but enough roles are still present and bound to reason about the request.", -} - -func (ResourceAccessReviewResponse) SwaggerDoc() map[string]string { - return map_ResourceAccessReviewResponse -} - -var map_Role = map[string]string{ - "": "Role is a logical grouping of PolicyRules that can be referenced as a unit by RoleBindings.", - "rules": "Rules holds all the PolicyRules for this Role", -} - -func (Role) SwaggerDoc() map[string]string { - return map_Role -} - -var map_RoleBinding = map[string]string{ - "": "RoleBinding references a Role, but not contain it. It can reference any Role in the same namespace or in the global namespace. It adds who information via (Users and Groups) OR Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace (excepting the master namespace which has power in all namespaces).", - "userNames": "UserNames holds all the usernames directly bound to the role. This field should only be specified when supporting legacy clients and servers. See Subjects for further details.", - "groupNames": "GroupNames holds all the groups directly bound to the role. This field should only be specified when supporting legacy clients and servers. See Subjects for further details.", - "subjects": "Subjects hold object references to authorize with this rule. This field is ignored if UserNames or GroupNames are specified to support legacy clients and servers. Thus newer clients that do not need to support backwards compatibility should send only fully qualified Subjects and should omit the UserNames and GroupNames fields. Clients that need to support backwards compatibility can use this field to build the UserNames and GroupNames.", - "roleRef": "RoleRef can only reference the current namespace and the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. Since Policy is a singleton, this is sufficient knowledge to locate a role.", -} - -func (RoleBinding) SwaggerDoc() map[string]string { - return map_RoleBinding -} - -var map_RoleBindingList = map[string]string{ - "": "RoleBindingList is a collection of RoleBindings", - "items": "Items is a list of RoleBindings", -} - -func (RoleBindingList) SwaggerDoc() map[string]string { - return map_RoleBindingList -} - -var map_RoleBindingRestriction = map[string]string{ - "": "RoleBindingRestriction is an object that can be matched against a subject (user, group, or service account) to determine whether rolebindings on that subject are allowed in the namespace to which the RoleBindingRestriction belongs. If any one of those RoleBindingRestriction objects matches a subject, rolebindings on that subject in the namespace are allowed.", - "spec": "Spec defines the matcher.", -} - -func (RoleBindingRestriction) SwaggerDoc() map[string]string { - return map_RoleBindingRestriction -} - -var map_RoleBindingRestrictionList = map[string]string{ - "": "RoleBindingRestrictionList is a collection of RoleBindingRestriction objects.", - "items": "Items is a list of RoleBindingRestriction objects.", -} - -func (RoleBindingRestrictionList) SwaggerDoc() map[string]string { - return map_RoleBindingRestrictionList -} - -var map_RoleBindingRestrictionSpec = map[string]string{ - "": "RoleBindingRestrictionSpec defines a rolebinding restriction. Exactly one field must be non-nil.", - "userrestriction": "UserRestriction matches against user subjects.", - "grouprestriction": "GroupRestriction matches against group subjects.", - "serviceaccountrestriction": "ServiceAccountRestriction matches against service-account subjects.", -} - -func (RoleBindingRestrictionSpec) SwaggerDoc() map[string]string { - return map_RoleBindingRestrictionSpec -} - -var map_RoleList = map[string]string{ - "": "RoleList is a collection of Roles", - "items": "Items is a list of Roles", -} - -func (RoleList) SwaggerDoc() map[string]string { - return map_RoleList -} - -var map_SelfSubjectRulesReview = map[string]string{ - "": "SelfSubjectRulesReview is a resource you can create to determine which actions you can perform in a namespace", - "spec": "Spec adds information about how to conduct the check", - "status": "Status is completed by the server to tell which permissions you have", -} - -func (SelfSubjectRulesReview) SwaggerDoc() map[string]string { - return map_SelfSubjectRulesReview -} - -var map_SelfSubjectRulesReviewSpec = map[string]string{ - "": "SelfSubjectRulesReviewSpec adds information about how to conduct the check", - "scopes": "Scopes to use for the evaluation. Empty means \"use the unscoped (full) permissions of the user/groups\". Nil means \"use the scopes on this request\".", -} - -func (SelfSubjectRulesReviewSpec) SwaggerDoc() map[string]string { - return map_SelfSubjectRulesReviewSpec -} - -var map_ServiceAccountReference = map[string]string{ - "": "ServiceAccountReference specifies a service account and namespace by their names.", - "name": "Name is the name of the service account.", - "namespace": "Namespace is the namespace of the service account. Service accounts from inside the whitelisted namespaces are allowed to be bound to roles. If Namespace is empty, then the namespace of the RoleBindingRestriction in which the ServiceAccountReference is embedded is used.", -} - -func (ServiceAccountReference) SwaggerDoc() map[string]string { - return map_ServiceAccountReference -} - -var map_ServiceAccountRestriction = map[string]string{ - "": "ServiceAccountRestriction matches a service account by a string match on either the service-account name or the name of the service account's namespace.", - "serviceaccounts": "ServiceAccounts specifies a list of literal service-account names.", - "namespaces": "Namespaces specifies a list of literal namespace names.", -} - -func (ServiceAccountRestriction) SwaggerDoc() map[string]string { - return map_ServiceAccountRestriction -} - -var map_SubjectAccessReview = map[string]string{ - "": "SubjectAccessReview is an object for requesting information about whether a user or group can perform an action", - "user": "User is optional. If both User and Groups are empty, the current authenticated user is used.", - "groups": "GroupsSlice is optional. Groups is the list of groups to which the User belongs.", - "scopes": "Scopes to use for the evaluation. Empty means \"use the unscoped (full) permissions of the user/groups\". Nil for a self-SAR, means \"use the scopes on this request\". Nil for a regular SAR, means the same as empty.", -} - -func (SubjectAccessReview) SwaggerDoc() map[string]string { - return map_SubjectAccessReview -} - -var map_SubjectAccessReviewResponse = map[string]string{ - "": "SubjectAccessReviewResponse describes whether or not a user or group can perform an action", - "namespace": "Namespace is the namespace used for the access review", - "allowed": "Allowed is required. True if the action would be allowed, false otherwise.", - "reason": "Reason is optional. It indicates why a request was allowed or denied.", - "evaluationError": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. This is most common when a bound role is missing, but enough roles are still present and bound to reason about the request.", -} - -func (SubjectAccessReviewResponse) SwaggerDoc() map[string]string { - return map_SubjectAccessReviewResponse -} - -var map_SubjectRulesReview = map[string]string{ - "": "SubjectRulesReview is a resource you can create to determine which actions another user can perform in a namespace", - "spec": "Spec adds information about how to conduct the check", - "status": "Status is completed by the server to tell which permissions you have", -} - -func (SubjectRulesReview) SwaggerDoc() map[string]string { - return map_SubjectRulesReview -} - -var map_SubjectRulesReviewSpec = map[string]string{ - "": "SubjectRulesReviewSpec adds information about how to conduct the check", - "user": "User is optional. At least one of User and Groups must be specified.", - "groups": "Groups is optional. Groups is the list of groups to which the User belongs. At least one of User and Groups must be specified.", - "scopes": "Scopes to use for the evaluation. Empty means \"use the unscoped (full) permissions of the user/groups\".", -} - -func (SubjectRulesReviewSpec) SwaggerDoc() map[string]string { - return map_SubjectRulesReviewSpec -} - -var map_SubjectRulesReviewStatus = map[string]string{ - "": "SubjectRulesReviewStatus is contains the result of a rules check", - "rules": "Rules is the list of rules (no particular sort) that are allowed for the subject", - "evaluationError": "EvaluationError can appear in combination with Rules. It means some error happened during evaluation that may have prevented additional rules from being populated.", -} - -func (SubjectRulesReviewStatus) SwaggerDoc() map[string]string { - return map_SubjectRulesReviewStatus -} - -var map_UserRestriction = map[string]string{ - "": "UserRestriction matches a user either by a string match on the user name, a string match on the name of a group to which the user belongs, or a label selector applied to the user labels.", - "users": "Users specifies a list of literal user names.", - "groups": "Groups specifies a list of literal group names.", - "labels": "Selectors specifies a list of label selectors over user labels.", -} - -func (UserRestriction) SwaggerDoc() map[string]string { - return map_UserRestriction -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/github.com/openshift/api/build/v1/consts.go b/vendor/github.com/openshift/api/build/v1/consts.go deleted file mode 100644 index 19c480764f8e6..0000000000000 --- a/vendor/github.com/openshift/api/build/v1/consts.go +++ /dev/null @@ -1,200 +0,0 @@ -package v1 - -// annotations -const ( - // BuildAnnotation is an annotation that identifies a Pod as being for a Build - BuildAnnotation = "openshift.io/build.name" - - // BuildConfigAnnotation is an annotation that identifies the BuildConfig that a Build was created from - BuildConfigAnnotation = "openshift.io/build-config.name" - - // BuildCloneAnnotation is an annotation whose value is the name of the build this build was cloned from - BuildCloneAnnotation = "openshift.io/build.clone-of" - - // BuildNumberAnnotation is an annotation whose value is the sequential number for this Build - BuildNumberAnnotation = "openshift.io/build.number" - - // BuildPodNameAnnotation is an annotation whose value is the name of the pod running this build - BuildPodNameAnnotation = "openshift.io/build.pod-name" - - // BuildJenkinsStatusJSONAnnotation is an annotation holding the Jenkins status information - BuildJenkinsStatusJSONAnnotation = "openshift.io/jenkins-status-json" - - // BuildJenkinsLogURLAnnotation is an annotation holding a link to the raw Jenkins build console log - BuildJenkinsLogURLAnnotation = "openshift.io/jenkins-log-url" - - // BuildJenkinsConsoleLogURLAnnotation is an annotation holding a link to the Jenkins build console log (including Jenkins chrome wrappering) - BuildJenkinsConsoleLogURLAnnotation = "openshift.io/jenkins-console-log-url" - - // BuildJenkinsBlueOceanLogURLAnnotation is an annotation holding a link to the Jenkins build console log via the Jenkins BlueOcean UI Plugin - BuildJenkinsBlueOceanLogURLAnnotation = "openshift.io/jenkins-blueocean-log-url" - - // BuildJenkinsBuildURIAnnotation is an annotation holding a link to the Jenkins build - BuildJenkinsBuildURIAnnotation = "openshift.io/jenkins-build-uri" - - // BuildSourceSecretMatchURIAnnotationPrefix is a prefix for annotations on a Secret which indicate a source URI against which the Secret can be used - BuildSourceSecretMatchURIAnnotationPrefix = "build.openshift.io/source-secret-match-uri-" - - // BuildConfigPausedAnnotation is an annotation that marks a BuildConfig as paused. - // New Builds cannot be instantiated from a paused BuildConfig. - BuildConfigPausedAnnotation = "openshift.io/build-config.paused" -) - -// labels -const ( - // BuildConfigLabel is the key of a Build label whose value is the ID of a BuildConfig - // on which the Build is based. NOTE: The value for this label may not contain the entire - // BuildConfig name because it will be truncated to maximum label length. - BuildConfigLabel = "openshift.io/build-config.name" - - // BuildLabel is the key of a Pod label whose value is the Name of a Build which is run. - // NOTE: The value for this label may not contain the entire Build name because it will be - // truncated to maximum label length. - BuildLabel = "openshift.io/build.name" - - // BuildRunPolicyLabel represents the start policy used to to start the build. - BuildRunPolicyLabel = "openshift.io/build.start-policy" - - // BuildConfigLabelDeprecated was used as BuildConfigLabel before adding namespaces. - // We keep it for backward compatibility. - BuildConfigLabelDeprecated = "buildconfig" -) - -const ( - // StatusReasonError is a generic reason for a build error condition. - StatusReasonError StatusReason = "Error" - - // StatusReasonCannotCreateBuildPodSpec is an error condition when the build - // strategy cannot create a build pod spec. - StatusReasonCannotCreateBuildPodSpec StatusReason = "CannotCreateBuildPodSpec" - - // StatusReasonCannotCreateBuildPod is an error condition when a build pod - // cannot be created. - StatusReasonCannotCreateBuildPod StatusReason = "CannotCreateBuildPod" - - // StatusReasonInvalidOutputReference is an error condition when the build - // output is an invalid reference. - StatusReasonInvalidOutputReference StatusReason = "InvalidOutputReference" - - // StatusReasonInvalidImageReference is an error condition when the build - // references an invalid image. - StatusReasonInvalidImageReference StatusReason = "InvalidImageReference" - - // StatusReasonCancelBuildFailed is an error condition when cancelling a build - // fails. - StatusReasonCancelBuildFailed StatusReason = "CancelBuildFailed" - - // StatusReasonBuildPodDeleted is an error condition when the build pod is - // deleted before build completion. - StatusReasonBuildPodDeleted StatusReason = "BuildPodDeleted" - - // StatusReasonExceededRetryTimeout is an error condition when the build has - // not completed and retrying the build times out. - StatusReasonExceededRetryTimeout StatusReason = "ExceededRetryTimeout" - - // StatusReasonMissingPushSecret indicates that the build is missing required - // secret for pushing the output image. - // The build will stay in the pending state until the secret is created, or the build times out. - StatusReasonMissingPushSecret StatusReason = "MissingPushSecret" - - // StatusReasonPostCommitHookFailed indicates the post-commit hook failed. - StatusReasonPostCommitHookFailed StatusReason = "PostCommitHookFailed" - - // StatusReasonPushImageToRegistryFailed indicates that an image failed to be - // pushed to the registry. - StatusReasonPushImageToRegistryFailed StatusReason = "PushImageToRegistryFailed" - - // StatusReasonPullBuilderImageFailed indicates that we failed to pull the - // builder image. - StatusReasonPullBuilderImageFailed StatusReason = "PullBuilderImageFailed" - - // StatusReasonFetchSourceFailed indicates that fetching the source of the - // build has failed. - StatusReasonFetchSourceFailed StatusReason = "FetchSourceFailed" - - // StatusReasonFetchImageContentFailed indicates that the fetching of an image and extracting - // its contents for inclusion in the build has failed. - StatusReasonFetchImageContentFailed StatusReason = "FetchImageContentFailed" - - // StatusReasonManageDockerfileFailed indicates that the set up of the Dockerfile for the build - // has failed. - StatusReasonManageDockerfileFailed StatusReason = "ManageDockerfileFailed" - - // StatusReasonInvalidContextDirectory indicates that the supplied - // contextDir does not exist - StatusReasonInvalidContextDirectory StatusReason = "InvalidContextDirectory" - - // StatusReasonCancelledBuild indicates that the build was cancelled by the - // user. - StatusReasonCancelledBuild StatusReason = "CancelledBuild" - - // StatusReasonDockerBuildFailed indicates that the container image build strategy has - // failed. - StatusReasonDockerBuildFailed StatusReason = "DockerBuildFailed" - - // StatusReasonBuildPodExists indicates that the build tried to create a - // build pod but one was already present. - StatusReasonBuildPodExists StatusReason = "BuildPodExists" - - // StatusReasonNoBuildContainerStatus indicates that the build failed because the - // the build pod has no container statuses. - StatusReasonNoBuildContainerStatus StatusReason = "NoBuildContainerStatus" - - // StatusReasonFailedContainer indicates that the pod for the build has at least - // one container with a non-zero exit status. - StatusReasonFailedContainer StatusReason = "FailedContainer" - - // StatusReasonUnresolvableEnvironmentVariable indicates that an error occurred processing - // the supplied options for environment variables in the build strategy environment - StatusReasonUnresolvableEnvironmentVariable StatusReason = "UnresolvableEnvironmentVariable" - - // StatusReasonGenericBuildFailed is the reason associated with a broad - // range of build failures. - StatusReasonGenericBuildFailed StatusReason = "GenericBuildFailed" - - // StatusReasonOutOfMemoryKilled indicates that the build pod was killed for its memory consumption - StatusReasonOutOfMemoryKilled StatusReason = "OutOfMemoryKilled" - - // StatusReasonCannotRetrieveServiceAccount is the reason associated with a failure - // to look up the service account associated with the BuildConfig. - StatusReasonCannotRetrieveServiceAccount StatusReason = "CannotRetrieveServiceAccount" - - // StatusReasonBuildPodEvicted is the reason a build fails due to the build pod being evicted - // from its node - StatusReasonBuildPodEvicted StatusReason = "BuildPodEvicted" -) - -// env vars -// WhitelistEnvVarNames is a list of special env vars allows s2i containers -var WhitelistEnvVarNames = []string{"BUILD_LOGLEVEL", "GIT_SSL_NO_VERIFY", "HTTP_PROXY", "HTTPS_PROXY", "LANG", "NO_PROXY"} - -// env vars -const ( - - // CustomBuildStrategyBaseImageKey is the environment variable that indicates the base image to be used when - // performing a custom build, if needed. - CustomBuildStrategyBaseImageKey = "OPENSHIFT_CUSTOM_BUILD_BASE_IMAGE" - - // AllowedUIDs is an environment variable that contains ranges of UIDs that are allowed in - // Source builder images - AllowedUIDs = "ALLOWED_UIDS" - // DropCapabilities is an environment variable that contains a list of capabilities to drop when - // executing a Source build - DropCapabilities = "DROP_CAPS" -) - -// keys inside of secrets and configmaps -const ( - // WebHookSecretKey is the key used to identify the value containing the webhook invocation - // secret within a secret referenced by a webhook trigger. - WebHookSecretKey = "WebHookSecretKey" - - // RegistryConfKey is the ConfigMap key for the build pod's registry configuration file. - RegistryConfKey = "registries.conf" - - // SignaturePolicyKey is the ConfigMap key for the build pod's image signature policy file. - SignaturePolicyKey = "policy.json" - - // ServiceCAKey is the ConfigMap key for the service signing certificate authority mounted into build pods. - ServiceCAKey = "service-ca.crt" -) diff --git a/vendor/github.com/openshift/api/build/v1/doc.go b/vendor/github.com/openshift/api/build/v1/doc.go deleted file mode 100644 index 9bc16f64b2359..0000000000000 --- a/vendor/github.com/openshift/api/build/v1/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=github.com/openshift/origin/pkg/build/apis/build -// +k8s:defaulter-gen=TypeMeta -// +k8s:openapi-gen=true - -// +groupName=build.openshift.io -// Package v1 is the v1 version of the API. -package v1 diff --git a/vendor/github.com/openshift/api/build/v1/generated.pb.go b/vendor/github.com/openshift/api/build/v1/generated.pb.go deleted file mode 100644 index 59d48e5938e92..0000000000000 --- a/vendor/github.com/openshift/api/build/v1/generated.pb.go +++ /dev/null @@ -1,16279 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: github.com/openshift/api/build/v1/generated.proto - -package v1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - k8s_io_api_core_v1 "k8s.io/api/core/v1" - v11 "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" - time "time" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf -var _ = time.Kitchen - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *BinaryBuildRequestOptions) Reset() { *m = BinaryBuildRequestOptions{} } -func (*BinaryBuildRequestOptions) ProtoMessage() {} -func (*BinaryBuildRequestOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{0} -} -func (m *BinaryBuildRequestOptions) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BinaryBuildRequestOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BinaryBuildRequestOptions) XXX_Merge(src proto.Message) { - xxx_messageInfo_BinaryBuildRequestOptions.Merge(m, src) -} -func (m *BinaryBuildRequestOptions) XXX_Size() int { - return m.Size() -} -func (m *BinaryBuildRequestOptions) XXX_DiscardUnknown() { - xxx_messageInfo_BinaryBuildRequestOptions.DiscardUnknown(m) -} - -var xxx_messageInfo_BinaryBuildRequestOptions proto.InternalMessageInfo - -func (m *BinaryBuildSource) Reset() { *m = BinaryBuildSource{} } -func (*BinaryBuildSource) ProtoMessage() {} -func (*BinaryBuildSource) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{1} -} -func (m *BinaryBuildSource) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BinaryBuildSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BinaryBuildSource) XXX_Merge(src proto.Message) { - xxx_messageInfo_BinaryBuildSource.Merge(m, src) -} -func (m *BinaryBuildSource) XXX_Size() int { - return m.Size() -} -func (m *BinaryBuildSource) XXX_DiscardUnknown() { - xxx_messageInfo_BinaryBuildSource.DiscardUnknown(m) -} - -var xxx_messageInfo_BinaryBuildSource proto.InternalMessageInfo - -func (m *BitbucketWebHookCause) Reset() { *m = BitbucketWebHookCause{} } -func (*BitbucketWebHookCause) ProtoMessage() {} -func (*BitbucketWebHookCause) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{2} -} -func (m *BitbucketWebHookCause) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BitbucketWebHookCause) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BitbucketWebHookCause) XXX_Merge(src proto.Message) { - xxx_messageInfo_BitbucketWebHookCause.Merge(m, src) -} -func (m *BitbucketWebHookCause) XXX_Size() int { - return m.Size() -} -func (m *BitbucketWebHookCause) XXX_DiscardUnknown() { - xxx_messageInfo_BitbucketWebHookCause.DiscardUnknown(m) -} - -var xxx_messageInfo_BitbucketWebHookCause proto.InternalMessageInfo - -func (m *Build) Reset() { *m = Build{} } -func (*Build) ProtoMessage() {} -func (*Build) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{3} -} -func (m *Build) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Build) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *Build) XXX_Merge(src proto.Message) { - xxx_messageInfo_Build.Merge(m, src) -} -func (m *Build) XXX_Size() int { - return m.Size() -} -func (m *Build) XXX_DiscardUnknown() { - xxx_messageInfo_Build.DiscardUnknown(m) -} - -var xxx_messageInfo_Build proto.InternalMessageInfo - -func (m *BuildCondition) Reset() { *m = BuildCondition{} } -func (*BuildCondition) ProtoMessage() {} -func (*BuildCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{4} -} -func (m *BuildCondition) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildCondition) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildCondition.Merge(m, src) -} -func (m *BuildCondition) XXX_Size() int { - return m.Size() -} -func (m *BuildCondition) XXX_DiscardUnknown() { - xxx_messageInfo_BuildCondition.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildCondition proto.InternalMessageInfo - -func (m *BuildConfig) Reset() { *m = BuildConfig{} } -func (*BuildConfig) ProtoMessage() {} -func (*BuildConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{5} -} -func (m *BuildConfig) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildConfig) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildConfig.Merge(m, src) -} -func (m *BuildConfig) XXX_Size() int { - return m.Size() -} -func (m *BuildConfig) XXX_DiscardUnknown() { - xxx_messageInfo_BuildConfig.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildConfig proto.InternalMessageInfo - -func (m *BuildConfigList) Reset() { *m = BuildConfigList{} } -func (*BuildConfigList) ProtoMessage() {} -func (*BuildConfigList) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{6} -} -func (m *BuildConfigList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildConfigList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildConfigList) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildConfigList.Merge(m, src) -} -func (m *BuildConfigList) XXX_Size() int { - return m.Size() -} -func (m *BuildConfigList) XXX_DiscardUnknown() { - xxx_messageInfo_BuildConfigList.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildConfigList proto.InternalMessageInfo - -func (m *BuildConfigSpec) Reset() { *m = BuildConfigSpec{} } -func (*BuildConfigSpec) ProtoMessage() {} -func (*BuildConfigSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{7} -} -func (m *BuildConfigSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildConfigSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildConfigSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildConfigSpec.Merge(m, src) -} -func (m *BuildConfigSpec) XXX_Size() int { - return m.Size() -} -func (m *BuildConfigSpec) XXX_DiscardUnknown() { - xxx_messageInfo_BuildConfigSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildConfigSpec proto.InternalMessageInfo - -func (m *BuildConfigStatus) Reset() { *m = BuildConfigStatus{} } -func (*BuildConfigStatus) ProtoMessage() {} -func (*BuildConfigStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{8} -} -func (m *BuildConfigStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildConfigStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildConfigStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildConfigStatus.Merge(m, src) -} -func (m *BuildConfigStatus) XXX_Size() int { - return m.Size() -} -func (m *BuildConfigStatus) XXX_DiscardUnknown() { - xxx_messageInfo_BuildConfigStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildConfigStatus proto.InternalMessageInfo - -func (m *BuildList) Reset() { *m = BuildList{} } -func (*BuildList) ProtoMessage() {} -func (*BuildList) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{9} -} -func (m *BuildList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildList) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildList.Merge(m, src) -} -func (m *BuildList) XXX_Size() int { - return m.Size() -} -func (m *BuildList) XXX_DiscardUnknown() { - xxx_messageInfo_BuildList.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildList proto.InternalMessageInfo - -func (m *BuildLog) Reset() { *m = BuildLog{} } -func (*BuildLog) ProtoMessage() {} -func (*BuildLog) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{10} -} -func (m *BuildLog) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildLog) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildLog) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildLog.Merge(m, src) -} -func (m *BuildLog) XXX_Size() int { - return m.Size() -} -func (m *BuildLog) XXX_DiscardUnknown() { - xxx_messageInfo_BuildLog.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildLog proto.InternalMessageInfo - -func (m *BuildLogOptions) Reset() { *m = BuildLogOptions{} } -func (*BuildLogOptions) ProtoMessage() {} -func (*BuildLogOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{11} -} -func (m *BuildLogOptions) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildLogOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildLogOptions) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildLogOptions.Merge(m, src) -} -func (m *BuildLogOptions) XXX_Size() int { - return m.Size() -} -func (m *BuildLogOptions) XXX_DiscardUnknown() { - xxx_messageInfo_BuildLogOptions.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildLogOptions proto.InternalMessageInfo - -func (m *BuildOutput) Reset() { *m = BuildOutput{} } -func (*BuildOutput) ProtoMessage() {} -func (*BuildOutput) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{12} -} -func (m *BuildOutput) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildOutput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildOutput) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildOutput.Merge(m, src) -} -func (m *BuildOutput) XXX_Size() int { - return m.Size() -} -func (m *BuildOutput) XXX_DiscardUnknown() { - xxx_messageInfo_BuildOutput.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildOutput proto.InternalMessageInfo - -func (m *BuildPostCommitSpec) Reset() { *m = BuildPostCommitSpec{} } -func (*BuildPostCommitSpec) ProtoMessage() {} -func (*BuildPostCommitSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{13} -} -func (m *BuildPostCommitSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildPostCommitSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildPostCommitSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildPostCommitSpec.Merge(m, src) -} -func (m *BuildPostCommitSpec) XXX_Size() int { - return m.Size() -} -func (m *BuildPostCommitSpec) XXX_DiscardUnknown() { - xxx_messageInfo_BuildPostCommitSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildPostCommitSpec proto.InternalMessageInfo - -func (m *BuildRequest) Reset() { *m = BuildRequest{} } -func (*BuildRequest) ProtoMessage() {} -func (*BuildRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{14} -} -func (m *BuildRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildRequest.Merge(m, src) -} -func (m *BuildRequest) XXX_Size() int { - return m.Size() -} -func (m *BuildRequest) XXX_DiscardUnknown() { - xxx_messageInfo_BuildRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildRequest proto.InternalMessageInfo - -func (m *BuildSource) Reset() { *m = BuildSource{} } -func (*BuildSource) ProtoMessage() {} -func (*BuildSource) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{15} -} -func (m *BuildSource) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildSource) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildSource.Merge(m, src) -} -func (m *BuildSource) XXX_Size() int { - return m.Size() -} -func (m *BuildSource) XXX_DiscardUnknown() { - xxx_messageInfo_BuildSource.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildSource proto.InternalMessageInfo - -func (m *BuildSpec) Reset() { *m = BuildSpec{} } -func (*BuildSpec) ProtoMessage() {} -func (*BuildSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{16} -} -func (m *BuildSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildSpec.Merge(m, src) -} -func (m *BuildSpec) XXX_Size() int { - return m.Size() -} -func (m *BuildSpec) XXX_DiscardUnknown() { - xxx_messageInfo_BuildSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildSpec proto.InternalMessageInfo - -func (m *BuildStatus) Reset() { *m = BuildStatus{} } -func (*BuildStatus) ProtoMessage() {} -func (*BuildStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{17} -} -func (m *BuildStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildStatus.Merge(m, src) -} -func (m *BuildStatus) XXX_Size() int { - return m.Size() -} -func (m *BuildStatus) XXX_DiscardUnknown() { - xxx_messageInfo_BuildStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildStatus proto.InternalMessageInfo - -func (m *BuildStatusOutput) Reset() { *m = BuildStatusOutput{} } -func (*BuildStatusOutput) ProtoMessage() {} -func (*BuildStatusOutput) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{18} -} -func (m *BuildStatusOutput) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildStatusOutput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildStatusOutput) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildStatusOutput.Merge(m, src) -} -func (m *BuildStatusOutput) XXX_Size() int { - return m.Size() -} -func (m *BuildStatusOutput) XXX_DiscardUnknown() { - xxx_messageInfo_BuildStatusOutput.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildStatusOutput proto.InternalMessageInfo - -func (m *BuildStatusOutputTo) Reset() { *m = BuildStatusOutputTo{} } -func (*BuildStatusOutputTo) ProtoMessage() {} -func (*BuildStatusOutputTo) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{19} -} -func (m *BuildStatusOutputTo) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildStatusOutputTo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildStatusOutputTo) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildStatusOutputTo.Merge(m, src) -} -func (m *BuildStatusOutputTo) XXX_Size() int { - return m.Size() -} -func (m *BuildStatusOutputTo) XXX_DiscardUnknown() { - xxx_messageInfo_BuildStatusOutputTo.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildStatusOutputTo proto.InternalMessageInfo - -func (m *BuildStrategy) Reset() { *m = BuildStrategy{} } -func (*BuildStrategy) ProtoMessage() {} -func (*BuildStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{20} -} -func (m *BuildStrategy) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildStrategy) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildStrategy.Merge(m, src) -} -func (m *BuildStrategy) XXX_Size() int { - return m.Size() -} -func (m *BuildStrategy) XXX_DiscardUnknown() { - xxx_messageInfo_BuildStrategy.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildStrategy proto.InternalMessageInfo - -func (m *BuildTriggerCause) Reset() { *m = BuildTriggerCause{} } -func (*BuildTriggerCause) ProtoMessage() {} -func (*BuildTriggerCause) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{21} -} -func (m *BuildTriggerCause) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildTriggerCause) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildTriggerCause) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildTriggerCause.Merge(m, src) -} -func (m *BuildTriggerCause) XXX_Size() int { - return m.Size() -} -func (m *BuildTriggerCause) XXX_DiscardUnknown() { - xxx_messageInfo_BuildTriggerCause.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildTriggerCause proto.InternalMessageInfo - -func (m *BuildTriggerPolicy) Reset() { *m = BuildTriggerPolicy{} } -func (*BuildTriggerPolicy) ProtoMessage() {} -func (*BuildTriggerPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{22} -} -func (m *BuildTriggerPolicy) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BuildTriggerPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BuildTriggerPolicy) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildTriggerPolicy.Merge(m, src) -} -func (m *BuildTriggerPolicy) XXX_Size() int { - return m.Size() -} -func (m *BuildTriggerPolicy) XXX_DiscardUnknown() { - xxx_messageInfo_BuildTriggerPolicy.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildTriggerPolicy proto.InternalMessageInfo - -func (m *CommonSpec) Reset() { *m = CommonSpec{} } -func (*CommonSpec) ProtoMessage() {} -func (*CommonSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{23} -} -func (m *CommonSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *CommonSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *CommonSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_CommonSpec.Merge(m, src) -} -func (m *CommonSpec) XXX_Size() int { - return m.Size() -} -func (m *CommonSpec) XXX_DiscardUnknown() { - xxx_messageInfo_CommonSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_CommonSpec proto.InternalMessageInfo - -func (m *CommonWebHookCause) Reset() { *m = CommonWebHookCause{} } -func (*CommonWebHookCause) ProtoMessage() {} -func (*CommonWebHookCause) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{24} -} -func (m *CommonWebHookCause) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *CommonWebHookCause) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *CommonWebHookCause) XXX_Merge(src proto.Message) { - xxx_messageInfo_CommonWebHookCause.Merge(m, src) -} -func (m *CommonWebHookCause) XXX_Size() int { - return m.Size() -} -func (m *CommonWebHookCause) XXX_DiscardUnknown() { - xxx_messageInfo_CommonWebHookCause.DiscardUnknown(m) -} - -var xxx_messageInfo_CommonWebHookCause proto.InternalMessageInfo - -func (m *ConfigMapBuildSource) Reset() { *m = ConfigMapBuildSource{} } -func (*ConfigMapBuildSource) ProtoMessage() {} -func (*ConfigMapBuildSource) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{25} -} -func (m *ConfigMapBuildSource) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ConfigMapBuildSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ConfigMapBuildSource) XXX_Merge(src proto.Message) { - xxx_messageInfo_ConfigMapBuildSource.Merge(m, src) -} -func (m *ConfigMapBuildSource) XXX_Size() int { - return m.Size() -} -func (m *ConfigMapBuildSource) XXX_DiscardUnknown() { - xxx_messageInfo_ConfigMapBuildSource.DiscardUnknown(m) -} - -var xxx_messageInfo_ConfigMapBuildSource proto.InternalMessageInfo - -func (m *CustomBuildStrategy) Reset() { *m = CustomBuildStrategy{} } -func (*CustomBuildStrategy) ProtoMessage() {} -func (*CustomBuildStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{26} -} -func (m *CustomBuildStrategy) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *CustomBuildStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *CustomBuildStrategy) XXX_Merge(src proto.Message) { - xxx_messageInfo_CustomBuildStrategy.Merge(m, src) -} -func (m *CustomBuildStrategy) XXX_Size() int { - return m.Size() -} -func (m *CustomBuildStrategy) XXX_DiscardUnknown() { - xxx_messageInfo_CustomBuildStrategy.DiscardUnknown(m) -} - -var xxx_messageInfo_CustomBuildStrategy proto.InternalMessageInfo - -func (m *DockerBuildStrategy) Reset() { *m = DockerBuildStrategy{} } -func (*DockerBuildStrategy) ProtoMessage() {} -func (*DockerBuildStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{27} -} -func (m *DockerBuildStrategy) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DockerBuildStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DockerBuildStrategy) XXX_Merge(src proto.Message) { - xxx_messageInfo_DockerBuildStrategy.Merge(m, src) -} -func (m *DockerBuildStrategy) XXX_Size() int { - return m.Size() -} -func (m *DockerBuildStrategy) XXX_DiscardUnknown() { - xxx_messageInfo_DockerBuildStrategy.DiscardUnknown(m) -} - -var xxx_messageInfo_DockerBuildStrategy proto.InternalMessageInfo - -func (m *DockerStrategyOptions) Reset() { *m = DockerStrategyOptions{} } -func (*DockerStrategyOptions) ProtoMessage() {} -func (*DockerStrategyOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{28} -} -func (m *DockerStrategyOptions) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DockerStrategyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DockerStrategyOptions) XXX_Merge(src proto.Message) { - xxx_messageInfo_DockerStrategyOptions.Merge(m, src) -} -func (m *DockerStrategyOptions) XXX_Size() int { - return m.Size() -} -func (m *DockerStrategyOptions) XXX_DiscardUnknown() { - xxx_messageInfo_DockerStrategyOptions.DiscardUnknown(m) -} - -var xxx_messageInfo_DockerStrategyOptions proto.InternalMessageInfo - -func (m *GenericWebHookCause) Reset() { *m = GenericWebHookCause{} } -func (*GenericWebHookCause) ProtoMessage() {} -func (*GenericWebHookCause) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{29} -} -func (m *GenericWebHookCause) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *GenericWebHookCause) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *GenericWebHookCause) XXX_Merge(src proto.Message) { - xxx_messageInfo_GenericWebHookCause.Merge(m, src) -} -func (m *GenericWebHookCause) XXX_Size() int { - return m.Size() -} -func (m *GenericWebHookCause) XXX_DiscardUnknown() { - xxx_messageInfo_GenericWebHookCause.DiscardUnknown(m) -} - -var xxx_messageInfo_GenericWebHookCause proto.InternalMessageInfo - -func (m *GenericWebHookEvent) Reset() { *m = GenericWebHookEvent{} } -func (*GenericWebHookEvent) ProtoMessage() {} -func (*GenericWebHookEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{30} -} -func (m *GenericWebHookEvent) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *GenericWebHookEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *GenericWebHookEvent) XXX_Merge(src proto.Message) { - xxx_messageInfo_GenericWebHookEvent.Merge(m, src) -} -func (m *GenericWebHookEvent) XXX_Size() int { - return m.Size() -} -func (m *GenericWebHookEvent) XXX_DiscardUnknown() { - xxx_messageInfo_GenericWebHookEvent.DiscardUnknown(m) -} - -var xxx_messageInfo_GenericWebHookEvent proto.InternalMessageInfo - -func (m *GitBuildSource) Reset() { *m = GitBuildSource{} } -func (*GitBuildSource) ProtoMessage() {} -func (*GitBuildSource) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{31} -} -func (m *GitBuildSource) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *GitBuildSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *GitBuildSource) XXX_Merge(src proto.Message) { - xxx_messageInfo_GitBuildSource.Merge(m, src) -} -func (m *GitBuildSource) XXX_Size() int { - return m.Size() -} -func (m *GitBuildSource) XXX_DiscardUnknown() { - xxx_messageInfo_GitBuildSource.DiscardUnknown(m) -} - -var xxx_messageInfo_GitBuildSource proto.InternalMessageInfo - -func (m *GitHubWebHookCause) Reset() { *m = GitHubWebHookCause{} } -func (*GitHubWebHookCause) ProtoMessage() {} -func (*GitHubWebHookCause) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{32} -} -func (m *GitHubWebHookCause) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *GitHubWebHookCause) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *GitHubWebHookCause) XXX_Merge(src proto.Message) { - xxx_messageInfo_GitHubWebHookCause.Merge(m, src) -} -func (m *GitHubWebHookCause) XXX_Size() int { - return m.Size() -} -func (m *GitHubWebHookCause) XXX_DiscardUnknown() { - xxx_messageInfo_GitHubWebHookCause.DiscardUnknown(m) -} - -var xxx_messageInfo_GitHubWebHookCause proto.InternalMessageInfo - -func (m *GitInfo) Reset() { *m = GitInfo{} } -func (*GitInfo) ProtoMessage() {} -func (*GitInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{33} -} -func (m *GitInfo) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *GitInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *GitInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GitInfo.Merge(m, src) -} -func (m *GitInfo) XXX_Size() int { - return m.Size() -} -func (m *GitInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GitInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_GitInfo proto.InternalMessageInfo - -func (m *GitLabWebHookCause) Reset() { *m = GitLabWebHookCause{} } -func (*GitLabWebHookCause) ProtoMessage() {} -func (*GitLabWebHookCause) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{34} -} -func (m *GitLabWebHookCause) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *GitLabWebHookCause) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *GitLabWebHookCause) XXX_Merge(src proto.Message) { - xxx_messageInfo_GitLabWebHookCause.Merge(m, src) -} -func (m *GitLabWebHookCause) XXX_Size() int { - return m.Size() -} -func (m *GitLabWebHookCause) XXX_DiscardUnknown() { - xxx_messageInfo_GitLabWebHookCause.DiscardUnknown(m) -} - -var xxx_messageInfo_GitLabWebHookCause proto.InternalMessageInfo - -func (m *GitRefInfo) Reset() { *m = GitRefInfo{} } -func (*GitRefInfo) ProtoMessage() {} -func (*GitRefInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{35} -} -func (m *GitRefInfo) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *GitRefInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *GitRefInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GitRefInfo.Merge(m, src) -} -func (m *GitRefInfo) XXX_Size() int { - return m.Size() -} -func (m *GitRefInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GitRefInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_GitRefInfo proto.InternalMessageInfo - -func (m *GitSourceRevision) Reset() { *m = GitSourceRevision{} } -func (*GitSourceRevision) ProtoMessage() {} -func (*GitSourceRevision) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{36} -} -func (m *GitSourceRevision) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *GitSourceRevision) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *GitSourceRevision) XXX_Merge(src proto.Message) { - xxx_messageInfo_GitSourceRevision.Merge(m, src) -} -func (m *GitSourceRevision) XXX_Size() int { - return m.Size() -} -func (m *GitSourceRevision) XXX_DiscardUnknown() { - xxx_messageInfo_GitSourceRevision.DiscardUnknown(m) -} - -var xxx_messageInfo_GitSourceRevision proto.InternalMessageInfo - -func (m *ImageChangeCause) Reset() { *m = ImageChangeCause{} } -func (*ImageChangeCause) ProtoMessage() {} -func (*ImageChangeCause) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{37} -} -func (m *ImageChangeCause) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageChangeCause) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageChangeCause) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageChangeCause.Merge(m, src) -} -func (m *ImageChangeCause) XXX_Size() int { - return m.Size() -} -func (m *ImageChangeCause) XXX_DiscardUnknown() { - xxx_messageInfo_ImageChangeCause.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageChangeCause proto.InternalMessageInfo - -func (m *ImageChangeTrigger) Reset() { *m = ImageChangeTrigger{} } -func (*ImageChangeTrigger) ProtoMessage() {} -func (*ImageChangeTrigger) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{38} -} -func (m *ImageChangeTrigger) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageChangeTrigger) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageChangeTrigger) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageChangeTrigger.Merge(m, src) -} -func (m *ImageChangeTrigger) XXX_Size() int { - return m.Size() -} -func (m *ImageChangeTrigger) XXX_DiscardUnknown() { - xxx_messageInfo_ImageChangeTrigger.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageChangeTrigger proto.InternalMessageInfo - -func (m *ImageLabel) Reset() { *m = ImageLabel{} } -func (*ImageLabel) ProtoMessage() {} -func (*ImageLabel) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{39} -} -func (m *ImageLabel) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageLabel) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageLabel) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageLabel.Merge(m, src) -} -func (m *ImageLabel) XXX_Size() int { - return m.Size() -} -func (m *ImageLabel) XXX_DiscardUnknown() { - xxx_messageInfo_ImageLabel.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageLabel proto.InternalMessageInfo - -func (m *ImageSource) Reset() { *m = ImageSource{} } -func (*ImageSource) ProtoMessage() {} -func (*ImageSource) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{40} -} -func (m *ImageSource) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageSource) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageSource.Merge(m, src) -} -func (m *ImageSource) XXX_Size() int { - return m.Size() -} -func (m *ImageSource) XXX_DiscardUnknown() { - xxx_messageInfo_ImageSource.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageSource proto.InternalMessageInfo - -func (m *ImageSourcePath) Reset() { *m = ImageSourcePath{} } -func (*ImageSourcePath) ProtoMessage() {} -func (*ImageSourcePath) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{41} -} -func (m *ImageSourcePath) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageSourcePath) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageSourcePath) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageSourcePath.Merge(m, src) -} -func (m *ImageSourcePath) XXX_Size() int { - return m.Size() -} -func (m *ImageSourcePath) XXX_DiscardUnknown() { - xxx_messageInfo_ImageSourcePath.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageSourcePath proto.InternalMessageInfo - -func (m *JenkinsPipelineBuildStrategy) Reset() { *m = JenkinsPipelineBuildStrategy{} } -func (*JenkinsPipelineBuildStrategy) ProtoMessage() {} -func (*JenkinsPipelineBuildStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{42} -} -func (m *JenkinsPipelineBuildStrategy) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *JenkinsPipelineBuildStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *JenkinsPipelineBuildStrategy) XXX_Merge(src proto.Message) { - xxx_messageInfo_JenkinsPipelineBuildStrategy.Merge(m, src) -} -func (m *JenkinsPipelineBuildStrategy) XXX_Size() int { - return m.Size() -} -func (m *JenkinsPipelineBuildStrategy) XXX_DiscardUnknown() { - xxx_messageInfo_JenkinsPipelineBuildStrategy.DiscardUnknown(m) -} - -var xxx_messageInfo_JenkinsPipelineBuildStrategy proto.InternalMessageInfo - -func (m *OptionalNodeSelector) Reset() { *m = OptionalNodeSelector{} } -func (*OptionalNodeSelector) ProtoMessage() {} -func (*OptionalNodeSelector) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{43} -} -func (m *OptionalNodeSelector) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OptionalNodeSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *OptionalNodeSelector) XXX_Merge(src proto.Message) { - xxx_messageInfo_OptionalNodeSelector.Merge(m, src) -} -func (m *OptionalNodeSelector) XXX_Size() int { - return m.Size() -} -func (m *OptionalNodeSelector) XXX_DiscardUnknown() { - xxx_messageInfo_OptionalNodeSelector.DiscardUnknown(m) -} - -var xxx_messageInfo_OptionalNodeSelector proto.InternalMessageInfo - -func (m *ProxyConfig) Reset() { *m = ProxyConfig{} } -func (*ProxyConfig) ProtoMessage() {} -func (*ProxyConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{44} -} -func (m *ProxyConfig) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ProxyConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ProxyConfig) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProxyConfig.Merge(m, src) -} -func (m *ProxyConfig) XXX_Size() int { - return m.Size() -} -func (m *ProxyConfig) XXX_DiscardUnknown() { - xxx_messageInfo_ProxyConfig.DiscardUnknown(m) -} - -var xxx_messageInfo_ProxyConfig proto.InternalMessageInfo - -func (m *SecretBuildSource) Reset() { *m = SecretBuildSource{} } -func (*SecretBuildSource) ProtoMessage() {} -func (*SecretBuildSource) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{45} -} -func (m *SecretBuildSource) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SecretBuildSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SecretBuildSource) XXX_Merge(src proto.Message) { - xxx_messageInfo_SecretBuildSource.Merge(m, src) -} -func (m *SecretBuildSource) XXX_Size() int { - return m.Size() -} -func (m *SecretBuildSource) XXX_DiscardUnknown() { - xxx_messageInfo_SecretBuildSource.DiscardUnknown(m) -} - -var xxx_messageInfo_SecretBuildSource proto.InternalMessageInfo - -func (m *SecretLocalReference) Reset() { *m = SecretLocalReference{} } -func (*SecretLocalReference) ProtoMessage() {} -func (*SecretLocalReference) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{46} -} -func (m *SecretLocalReference) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SecretLocalReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SecretLocalReference) XXX_Merge(src proto.Message) { - xxx_messageInfo_SecretLocalReference.Merge(m, src) -} -func (m *SecretLocalReference) XXX_Size() int { - return m.Size() -} -func (m *SecretLocalReference) XXX_DiscardUnknown() { - xxx_messageInfo_SecretLocalReference.DiscardUnknown(m) -} - -var xxx_messageInfo_SecretLocalReference proto.InternalMessageInfo - -func (m *SecretSpec) Reset() { *m = SecretSpec{} } -func (*SecretSpec) ProtoMessage() {} -func (*SecretSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{47} -} -func (m *SecretSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SecretSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SecretSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_SecretSpec.Merge(m, src) -} -func (m *SecretSpec) XXX_Size() int { - return m.Size() -} -func (m *SecretSpec) XXX_DiscardUnknown() { - xxx_messageInfo_SecretSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_SecretSpec proto.InternalMessageInfo - -func (m *SourceBuildStrategy) Reset() { *m = SourceBuildStrategy{} } -func (*SourceBuildStrategy) ProtoMessage() {} -func (*SourceBuildStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{48} -} -func (m *SourceBuildStrategy) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SourceBuildStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SourceBuildStrategy) XXX_Merge(src proto.Message) { - xxx_messageInfo_SourceBuildStrategy.Merge(m, src) -} -func (m *SourceBuildStrategy) XXX_Size() int { - return m.Size() -} -func (m *SourceBuildStrategy) XXX_DiscardUnknown() { - xxx_messageInfo_SourceBuildStrategy.DiscardUnknown(m) -} - -var xxx_messageInfo_SourceBuildStrategy proto.InternalMessageInfo - -func (m *SourceControlUser) Reset() { *m = SourceControlUser{} } -func (*SourceControlUser) ProtoMessage() {} -func (*SourceControlUser) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{49} -} -func (m *SourceControlUser) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SourceControlUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SourceControlUser) XXX_Merge(src proto.Message) { - xxx_messageInfo_SourceControlUser.Merge(m, src) -} -func (m *SourceControlUser) XXX_Size() int { - return m.Size() -} -func (m *SourceControlUser) XXX_DiscardUnknown() { - xxx_messageInfo_SourceControlUser.DiscardUnknown(m) -} - -var xxx_messageInfo_SourceControlUser proto.InternalMessageInfo - -func (m *SourceRevision) Reset() { *m = SourceRevision{} } -func (*SourceRevision) ProtoMessage() {} -func (*SourceRevision) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{50} -} -func (m *SourceRevision) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SourceRevision) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SourceRevision) XXX_Merge(src proto.Message) { - xxx_messageInfo_SourceRevision.Merge(m, src) -} -func (m *SourceRevision) XXX_Size() int { - return m.Size() -} -func (m *SourceRevision) XXX_DiscardUnknown() { - xxx_messageInfo_SourceRevision.DiscardUnknown(m) -} - -var xxx_messageInfo_SourceRevision proto.InternalMessageInfo - -func (m *SourceStrategyOptions) Reset() { *m = SourceStrategyOptions{} } -func (*SourceStrategyOptions) ProtoMessage() {} -func (*SourceStrategyOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{51} -} -func (m *SourceStrategyOptions) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SourceStrategyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SourceStrategyOptions) XXX_Merge(src proto.Message) { - xxx_messageInfo_SourceStrategyOptions.Merge(m, src) -} -func (m *SourceStrategyOptions) XXX_Size() int { - return m.Size() -} -func (m *SourceStrategyOptions) XXX_DiscardUnknown() { - xxx_messageInfo_SourceStrategyOptions.DiscardUnknown(m) -} - -var xxx_messageInfo_SourceStrategyOptions proto.InternalMessageInfo - -func (m *StageInfo) Reset() { *m = StageInfo{} } -func (*StageInfo) ProtoMessage() {} -func (*StageInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{52} -} -func (m *StageInfo) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *StageInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *StageInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_StageInfo.Merge(m, src) -} -func (m *StageInfo) XXX_Size() int { - return m.Size() -} -func (m *StageInfo) XXX_DiscardUnknown() { - xxx_messageInfo_StageInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_StageInfo proto.InternalMessageInfo - -func (m *StepInfo) Reset() { *m = StepInfo{} } -func (*StepInfo) ProtoMessage() {} -func (*StepInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{53} -} -func (m *StepInfo) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *StepInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *StepInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_StepInfo.Merge(m, src) -} -func (m *StepInfo) XXX_Size() int { - return m.Size() -} -func (m *StepInfo) XXX_DiscardUnknown() { - xxx_messageInfo_StepInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_StepInfo proto.InternalMessageInfo - -func (m *WebHookTrigger) Reset() { *m = WebHookTrigger{} } -func (*WebHookTrigger) ProtoMessage() {} -func (*WebHookTrigger) Descriptor() ([]byte, []int) { - return fileDescriptor_2ba579f6f004cb75, []int{54} -} -func (m *WebHookTrigger) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *WebHookTrigger) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *WebHookTrigger) XXX_Merge(src proto.Message) { - xxx_messageInfo_WebHookTrigger.Merge(m, src) -} -func (m *WebHookTrigger) XXX_Size() int { - return m.Size() -} -func (m *WebHookTrigger) XXX_DiscardUnknown() { - xxx_messageInfo_WebHookTrigger.DiscardUnknown(m) -} - -var xxx_messageInfo_WebHookTrigger proto.InternalMessageInfo - -func init() { - proto.RegisterType((*BinaryBuildRequestOptions)(nil), "github.com.openshift.api.build.v1.BinaryBuildRequestOptions") - proto.RegisterType((*BinaryBuildSource)(nil), "github.com.openshift.api.build.v1.BinaryBuildSource") - proto.RegisterType((*BitbucketWebHookCause)(nil), "github.com.openshift.api.build.v1.BitbucketWebHookCause") - proto.RegisterType((*Build)(nil), "github.com.openshift.api.build.v1.Build") - proto.RegisterType((*BuildCondition)(nil), "github.com.openshift.api.build.v1.BuildCondition") - proto.RegisterType((*BuildConfig)(nil), "github.com.openshift.api.build.v1.BuildConfig") - proto.RegisterType((*BuildConfigList)(nil), "github.com.openshift.api.build.v1.BuildConfigList") - proto.RegisterType((*BuildConfigSpec)(nil), "github.com.openshift.api.build.v1.BuildConfigSpec") - proto.RegisterType((*BuildConfigStatus)(nil), "github.com.openshift.api.build.v1.BuildConfigStatus") - proto.RegisterType((*BuildList)(nil), "github.com.openshift.api.build.v1.BuildList") - proto.RegisterType((*BuildLog)(nil), "github.com.openshift.api.build.v1.BuildLog") - proto.RegisterType((*BuildLogOptions)(nil), "github.com.openshift.api.build.v1.BuildLogOptions") - proto.RegisterType((*BuildOutput)(nil), "github.com.openshift.api.build.v1.BuildOutput") - proto.RegisterType((*BuildPostCommitSpec)(nil), "github.com.openshift.api.build.v1.BuildPostCommitSpec") - proto.RegisterType((*BuildRequest)(nil), "github.com.openshift.api.build.v1.BuildRequest") - proto.RegisterType((*BuildSource)(nil), "github.com.openshift.api.build.v1.BuildSource") - proto.RegisterType((*BuildSpec)(nil), "github.com.openshift.api.build.v1.BuildSpec") - proto.RegisterType((*BuildStatus)(nil), "github.com.openshift.api.build.v1.BuildStatus") - proto.RegisterType((*BuildStatusOutput)(nil), "github.com.openshift.api.build.v1.BuildStatusOutput") - proto.RegisterType((*BuildStatusOutputTo)(nil), "github.com.openshift.api.build.v1.BuildStatusOutputTo") - proto.RegisterType((*BuildStrategy)(nil), "github.com.openshift.api.build.v1.BuildStrategy") - proto.RegisterType((*BuildTriggerCause)(nil), "github.com.openshift.api.build.v1.BuildTriggerCause") - proto.RegisterType((*BuildTriggerPolicy)(nil), "github.com.openshift.api.build.v1.BuildTriggerPolicy") - proto.RegisterType((*CommonSpec)(nil), "github.com.openshift.api.build.v1.CommonSpec") - proto.RegisterType((*CommonWebHookCause)(nil), "github.com.openshift.api.build.v1.CommonWebHookCause") - proto.RegisterType((*ConfigMapBuildSource)(nil), "github.com.openshift.api.build.v1.ConfigMapBuildSource") - proto.RegisterType((*CustomBuildStrategy)(nil), "github.com.openshift.api.build.v1.CustomBuildStrategy") - proto.RegisterType((*DockerBuildStrategy)(nil), "github.com.openshift.api.build.v1.DockerBuildStrategy") - proto.RegisterType((*DockerStrategyOptions)(nil), "github.com.openshift.api.build.v1.DockerStrategyOptions") - proto.RegisterType((*GenericWebHookCause)(nil), "github.com.openshift.api.build.v1.GenericWebHookCause") - proto.RegisterType((*GenericWebHookEvent)(nil), "github.com.openshift.api.build.v1.GenericWebHookEvent") - proto.RegisterType((*GitBuildSource)(nil), "github.com.openshift.api.build.v1.GitBuildSource") - proto.RegisterType((*GitHubWebHookCause)(nil), "github.com.openshift.api.build.v1.GitHubWebHookCause") - proto.RegisterType((*GitInfo)(nil), "github.com.openshift.api.build.v1.GitInfo") - proto.RegisterType((*GitLabWebHookCause)(nil), "github.com.openshift.api.build.v1.GitLabWebHookCause") - proto.RegisterType((*GitRefInfo)(nil), "github.com.openshift.api.build.v1.GitRefInfo") - proto.RegisterType((*GitSourceRevision)(nil), "github.com.openshift.api.build.v1.GitSourceRevision") - proto.RegisterType((*ImageChangeCause)(nil), "github.com.openshift.api.build.v1.ImageChangeCause") - proto.RegisterType((*ImageChangeTrigger)(nil), "github.com.openshift.api.build.v1.ImageChangeTrigger") - proto.RegisterType((*ImageLabel)(nil), "github.com.openshift.api.build.v1.ImageLabel") - proto.RegisterType((*ImageSource)(nil), "github.com.openshift.api.build.v1.ImageSource") - proto.RegisterType((*ImageSourcePath)(nil), "github.com.openshift.api.build.v1.ImageSourcePath") - proto.RegisterType((*JenkinsPipelineBuildStrategy)(nil), "github.com.openshift.api.build.v1.JenkinsPipelineBuildStrategy") - proto.RegisterType((*OptionalNodeSelector)(nil), "github.com.openshift.api.build.v1.OptionalNodeSelector") - proto.RegisterMapType((map[string]string)(nil), "github.com.openshift.api.build.v1.OptionalNodeSelector.ItemsEntry") - proto.RegisterType((*ProxyConfig)(nil), "github.com.openshift.api.build.v1.ProxyConfig") - proto.RegisterType((*SecretBuildSource)(nil), "github.com.openshift.api.build.v1.SecretBuildSource") - proto.RegisterType((*SecretLocalReference)(nil), "github.com.openshift.api.build.v1.SecretLocalReference") - proto.RegisterType((*SecretSpec)(nil), "github.com.openshift.api.build.v1.SecretSpec") - proto.RegisterType((*SourceBuildStrategy)(nil), "github.com.openshift.api.build.v1.SourceBuildStrategy") - proto.RegisterType((*SourceControlUser)(nil), "github.com.openshift.api.build.v1.SourceControlUser") - proto.RegisterType((*SourceRevision)(nil), "github.com.openshift.api.build.v1.SourceRevision") - proto.RegisterType((*SourceStrategyOptions)(nil), "github.com.openshift.api.build.v1.SourceStrategyOptions") - proto.RegisterType((*StageInfo)(nil), "github.com.openshift.api.build.v1.StageInfo") - proto.RegisterType((*StepInfo)(nil), "github.com.openshift.api.build.v1.StepInfo") - proto.RegisterType((*WebHookTrigger)(nil), "github.com.openshift.api.build.v1.WebHookTrigger") -} - -func init() { - proto.RegisterFile("github.com/openshift/api/build/v1/generated.proto", fileDescriptor_2ba579f6f004cb75) -} - -var fileDescriptor_2ba579f6f004cb75 = []byte{ - // 4087 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5b, 0x4d, 0x6c, 0x1c, 0xc9, - 0x75, 0x56, 0xcf, 0x0c, 0xc9, 0x99, 0x37, 0x14, 0x45, 0x16, 0xa5, 0xd5, 0x48, 0x96, 0x39, 0xda, - 0xde, 0xec, 0x42, 0x9b, 0xdd, 0x1d, 0x9a, 0xb2, 0xa4, 0xc8, 0x36, 0xe2, 0x80, 0x43, 0x52, 0x5a, - 0xca, 0x23, 0x89, 0xa8, 0xe1, 0x6a, 0x37, 0x5e, 0xc1, 0x49, 0xb3, 0xa7, 0x66, 0xd8, 0xcb, 0x99, - 0xee, 0xde, 0xae, 0x1e, 0xee, 0xd2, 0x40, 0x80, 0x45, 0x00, 0x23, 0xb0, 0x7d, 0x89, 0x2f, 0x46, - 0x92, 0x4b, 0x12, 0x04, 0x39, 0xe5, 0x94, 0x43, 0x00, 0x03, 0xbe, 0x04, 0x88, 0x0f, 0x7b, 0x70, - 0x00, 0x07, 0xc9, 0x61, 0x81, 0x18, 0x83, 0xec, 0xe4, 0x90, 0x5b, 0x80, 0x5c, 0x75, 0x08, 0x82, - 0xfa, 0xe9, 0xee, 0xaa, 0x9e, 0x26, 0xd5, 0x43, 0xc9, 0xca, 0x26, 0xbe, 0x71, 0xde, 0xcf, 0xf7, - 0xaa, 0xab, 0x5e, 0xbd, 0x7a, 0xef, 0x55, 0x11, 0xd6, 0x7a, 0x4e, 0xb8, 0x3f, 0xdc, 0x6b, 0xd8, - 0xde, 0x60, 0xd5, 0xf3, 0x89, 0x4b, 0xf7, 0x9d, 0x6e, 0xb8, 0x6a, 0xf9, 0xce, 0xea, 0xde, 0xd0, - 0xe9, 0x77, 0x56, 0x0f, 0xd7, 0x56, 0x7b, 0xc4, 0x25, 0x81, 0x15, 0x92, 0x4e, 0xc3, 0x0f, 0xbc, - 0xd0, 0x43, 0x2f, 0x27, 0x2a, 0x8d, 0x58, 0xa5, 0x61, 0xf9, 0x4e, 0x83, 0xab, 0x34, 0x0e, 0xd7, - 0x2e, 0xbf, 0xa5, 0xa0, 0xf6, 0xbc, 0x9e, 0xb7, 0xca, 0x35, 0xf7, 0x86, 0x5d, 0xfe, 0x8b, 0xff, - 0xe0, 0x7f, 0x09, 0xc4, 0xcb, 0xe6, 0xc1, 0x6d, 0xda, 0x70, 0x3c, 0x6e, 0xd6, 0xf6, 0x02, 0x92, - 0x61, 0xf5, 0xf2, 0x8d, 0x44, 0x66, 0x60, 0xd9, 0xfb, 0x8e, 0x4b, 0x82, 0xa3, 0x55, 0xff, 0xa0, - 0xc7, 0x08, 0x74, 0x75, 0x40, 0x42, 0x2b, 0x4b, 0xeb, 0xd6, 0x71, 0x5a, 0xc1, 0xd0, 0x0d, 0x9d, - 0x01, 0x59, 0xa5, 0xf6, 0x3e, 0x19, 0x58, 0x69, 0x3d, 0xf3, 0xef, 0x4b, 0x70, 0xa9, 0xe9, 0xb8, - 0x56, 0x70, 0xd4, 0x64, 0xdf, 0x84, 0xc9, 0x87, 0x43, 0x42, 0xc3, 0x87, 0x7e, 0xe8, 0x78, 0x2e, - 0x45, 0xbf, 0x0f, 0x65, 0x66, 0xb0, 0x63, 0x85, 0x56, 0xcd, 0xb8, 0x6a, 0x5c, 0xab, 0x5e, 0xff, - 0x4a, 0x43, 0x18, 0x6a, 0xa8, 0x86, 0x1a, 0xfe, 0x41, 0x8f, 0x11, 0x68, 0x83, 0x49, 0x37, 0x0e, - 0xd7, 0x1a, 0x0f, 0xf7, 0x3e, 0x20, 0x76, 0x78, 0x9f, 0x84, 0x56, 0x13, 0x7d, 0x3a, 0xaa, 0x9f, - 0x19, 0x8f, 0xea, 0x90, 0xd0, 0x70, 0x8c, 0x8a, 0x5e, 0x83, 0x59, 0x8b, 0xde, 0x71, 0xfa, 0xa4, - 0x56, 0xb8, 0x6a, 0x5c, 0xab, 0x34, 0x17, 0xa4, 0xf4, 0xec, 0x3a, 0xa7, 0x62, 0xc9, 0x45, 0xb7, - 0x60, 0x21, 0x20, 0x87, 0x0e, 0x75, 0x3c, 0x77, 0xc3, 0x1b, 0x0c, 0x9c, 0xb0, 0x56, 0xd4, 0xe5, - 0x05, 0x15, 0xa7, 0xa4, 0xd0, 0xd7, 0xe0, 0x5c, 0x44, 0xb9, 0x4f, 0x28, 0xb5, 0x7a, 0xa4, 0x56, - 0xe2, 0x8a, 0xe7, 0xa4, 0xe2, 0x9c, 0x24, 0xe3, 0xb4, 0x1c, 0x6a, 0x02, 0x8a, 0x48, 0xeb, 0xc3, - 0x70, 0xdf, 0x0b, 0x1e, 0x58, 0x03, 0x52, 0x9b, 0xe1, 0xda, 0xf1, 0x47, 0x25, 0x1c, 0x9c, 0x21, - 0x8d, 0xb6, 0x60, 0x59, 0xa7, 0x6e, 0x0d, 0x2c, 0xa7, 0x5f, 0x9b, 0xe5, 0x20, 0xcb, 0x12, 0xa4, - 0xaa, 0xb0, 0x70, 0x96, 0x3c, 0xfa, 0x16, 0x5c, 0xd0, 0xbf, 0x2b, 0x24, 0x62, 0x34, 0x73, 0x1c, - 0xe8, 0x82, 0x04, 0x3a, 0xab, 0x31, 0x71, 0xb6, 0x0e, 0x7a, 0x00, 0x2f, 0x4d, 0x30, 0xc4, 0xb0, - 0xca, 0x1c, 0xed, 0x25, 0x89, 0xb6, 0xa0, 0x73, 0xf1, 0x31, 0x5a, 0xe6, 0x37, 0x60, 0x49, 0xf1, - 0xa0, 0xb6, 0x37, 0x0c, 0x6c, 0xa2, 0xac, 0xab, 0x71, 0xd2, 0xba, 0x9a, 0x3f, 0x30, 0xe0, 0x42, - 0xd3, 0x09, 0xf7, 0x86, 0xf6, 0x01, 0x09, 0xdf, 0x25, 0x7b, 0x6f, 0x7b, 0xde, 0xc1, 0x86, 0x35, - 0xa4, 0x04, 0x7d, 0x08, 0x60, 0x7b, 0x83, 0x81, 0xe7, 0xb6, 0x7d, 0x62, 0x4b, 0xef, 0xbb, 0xd9, - 0x78, 0xea, 0x96, 0x6c, 0x6c, 0x70, 0x25, 0x15, 0xaa, 0x79, 0x59, 0x1a, 0x47, 0x93, 0x3c, 0xac, - 0x18, 0x31, 0x7f, 0x54, 0x80, 0x19, 0xfe, 0x11, 0x2f, 0xc0, 0xf1, 0x1f, 0x40, 0x89, 0xb2, 0x0f, - 0x2b, 0x70, 0xf4, 0x37, 0x73, 0x7c, 0x98, 0x98, 0x5e, 0x9f, 0xd8, 0xcd, 0x79, 0x89, 0x5c, 0x62, - 0xbf, 0x30, 0xc7, 0x41, 0x8f, 0x60, 0x96, 0x86, 0x56, 0x38, 0xa4, 0x7c, 0x63, 0x54, 0xaf, 0x37, - 0x72, 0x23, 0x72, 0xad, 0x64, 0x81, 0xc4, 0x6f, 0x2c, 0xd1, 0xcc, 0x7f, 0x2c, 0xc2, 0x02, 0x97, - 0xdb, 0xf0, 0xdc, 0x8e, 0xc3, 0xc2, 0x02, 0xba, 0x05, 0xa5, 0xf0, 0xc8, 0x8f, 0x56, 0xd6, 0x8c, - 0x06, 0xb3, 0x7b, 0xe4, 0x93, 0x27, 0xa3, 0x3a, 0xd2, 0xa5, 0x19, 0x15, 0x73, 0x79, 0xd4, 0x8a, - 0x87, 0x28, 0xf6, 0xfa, 0x0d, 0xdd, 0xe4, 0x93, 0x51, 0x3d, 0x23, 0x3e, 0x36, 0x62, 0x24, 0x7d, - 0x60, 0xe8, 0x03, 0x58, 0xe8, 0x5b, 0x34, 0x7c, 0xc7, 0xef, 0x58, 0x21, 0xd9, 0x75, 0x06, 0x84, - 0xef, 0xaa, 0xea, 0xf5, 0xdf, 0xcc, 0xb7, 0x50, 0x4c, 0x23, 0x71, 0xf5, 0x96, 0x86, 0x84, 0x53, - 0xc8, 0xe8, 0x10, 0x10, 0xa3, 0xec, 0x06, 0x96, 0x4b, 0xc5, 0x57, 0x31, 0x7b, 0xc5, 0xa9, 0xed, - 0xc5, 0x8e, 0xd8, 0x9a, 0x40, 0xc3, 0x19, 0x16, 0xd8, 0x2e, 0x0a, 0x88, 0x45, 0x3d, 0x57, 0x06, - 0xad, 0x78, 0x91, 0x30, 0xa7, 0x62, 0xc9, 0x45, 0xaf, 0xc3, 0xdc, 0x40, 0x46, 0xb7, 0x99, 0xec, - 0xe8, 0x16, 0xf1, 0xcd, 0xbf, 0x2a, 0x40, 0x35, 0x5a, 0xa1, 0xae, 0xd3, 0x7b, 0x01, 0x9e, 0xbe, - 0xab, 0x79, 0xfa, 0xf5, 0xbc, 0x7e, 0x29, 0xc6, 0x77, 0xac, 0xbf, 0x3f, 0x4e, 0xf9, 0xfb, 0x8d, - 0x29, 0x71, 0x4f, 0xf6, 0xfa, 0x9f, 0x19, 0x70, 0x4e, 0x91, 0x6e, 0x39, 0x34, 0x44, 0x8f, 0x27, - 0x66, 0xaa, 0x91, 0x6f, 0xa6, 0x98, 0x36, 0x9f, 0xa7, 0x45, 0x69, 0xad, 0x1c, 0x51, 0x94, 0x59, - 0x6a, 0xc3, 0x8c, 0x13, 0x92, 0x01, 0xdb, 0x1b, 0xc5, 0x69, 0xb6, 0xaf, 0x18, 0x60, 0xf3, 0xac, - 0x84, 0x9e, 0xd9, 0x66, 0x20, 0x58, 0x60, 0x99, 0xbf, 0x2c, 0x6a, 0x9f, 0xc1, 0xa6, 0x0f, 0xd9, - 0x50, 0x0e, 0x03, 0xa7, 0xd7, 0x23, 0x01, 0xad, 0x19, 0xdc, 0xd6, 0xcd, 0xbc, 0xb6, 0x76, 0x85, - 0xde, 0x8e, 0xd7, 0x77, 0xec, 0xa3, 0xe4, 0x6b, 0x24, 0x99, 0xe2, 0x18, 0x18, 0xad, 0x43, 0x25, - 0x18, 0xba, 0x42, 0x50, 0xee, 0xf6, 0x57, 0xa4, 0x78, 0x05, 0x47, 0x8c, 0x27, 0xa3, 0xba, 0x08, - 0x2d, 0x31, 0x05, 0x27, 0x5a, 0xc8, 0xd2, 0xe2, 0xbf, 0x58, 0xe4, 0xb7, 0x72, 0xc7, 0x7f, 0xee, - 0x37, 0xb1, 0x5f, 0x26, 0x34, 0x35, 0xde, 0xa3, 0x0e, 0x5c, 0xa1, 0x43, 0xdb, 0x26, 0x94, 0x76, - 0x87, 0x7d, 0x3e, 0x12, 0xfa, 0xb6, 0x43, 0x43, 0x2f, 0x38, 0x6a, 0x39, 0x2c, 0xc5, 0x60, 0x9b, - 0x6e, 0xa6, 0x79, 0x75, 0x3c, 0xaa, 0x5f, 0x69, 0x9f, 0x20, 0x87, 0x4f, 0x44, 0x41, 0xef, 0x41, - 0xad, 0x6b, 0x39, 0x7d, 0xd2, 0xc9, 0xb0, 0x30, 0xc3, 0x2d, 0x5c, 0x19, 0x8f, 0xea, 0xb5, 0x3b, - 0xc7, 0xc8, 0xe0, 0x63, 0xb5, 0xcd, 0x7b, 0xb0, 0x34, 0xe1, 0xd2, 0xe8, 0x26, 0x54, 0x59, 0x24, - 0x79, 0x44, 0x02, 0x76, 0x56, 0x73, 0x4f, 0x2d, 0x26, 0xa9, 0x46, 0x2b, 0x61, 0x61, 0x55, 0xce, - 0xfc, 0x89, 0x01, 0x15, 0x0e, 0xf6, 0x02, 0x7c, 0xfd, 0xbe, 0xee, 0xeb, 0xd7, 0xf2, 0xfa, 0xdf, - 0x31, 0x5e, 0x0e, 0x50, 0x16, 0x23, 0xf7, 0x7a, 0xe6, 0x7f, 0x95, 0xa4, 0xc7, 0xb7, 0xbc, 0x5e, - 0x94, 0xc5, 0xae, 0x42, 0xc5, 0xf6, 0xdc, 0xd0, 0x62, 0x43, 0x96, 0x87, 0xd6, 0x52, 0xe4, 0x8c, - 0x1b, 0x11, 0x03, 0x27, 0x32, 0x2c, 0xec, 0x76, 0xbd, 0x7e, 0xdf, 0xfb, 0x88, 0xbb, 0x6e, 0x39, - 0x89, 0x12, 0x77, 0x38, 0x15, 0x4b, 0x2e, 0x7a, 0x13, 0xca, 0x3e, 0x4b, 0x8a, 0x3c, 0x19, 0x85, - 0xca, 0xc9, 0x57, 0xef, 0x48, 0x3a, 0x8e, 0x25, 0xd0, 0x0d, 0x98, 0xa7, 0x8e, 0x6b, 0x93, 0x36, - 0xb1, 0x3d, 0xb7, 0x43, 0xb9, 0x77, 0x15, 0x9b, 0x8b, 0xe3, 0x51, 0x7d, 0xbe, 0xad, 0xd0, 0xb1, - 0x26, 0x85, 0xde, 0x85, 0x0a, 0xff, 0xcd, 0x4f, 0x9c, 0x99, 0xa9, 0x4f, 0x9c, 0xb3, 0xec, 0x23, - 0xdb, 0x11, 0x00, 0x4e, 0xb0, 0xd0, 0x75, 0x00, 0x56, 0x18, 0xd0, 0xd0, 0x1a, 0xf8, 0x94, 0x9f, - 0x9d, 0xe5, 0x64, 0xc3, 0xec, 0xc6, 0x1c, 0xac, 0x48, 0xa1, 0x37, 0xa0, 0x12, 0x5a, 0x4e, 0xbf, - 0xe5, 0xb8, 0x84, 0xf2, 0xdc, 0xb3, 0x28, 0x0c, 0xec, 0x46, 0x44, 0x9c, 0xf0, 0x51, 0x03, 0xa0, - 0xcf, 0xdc, 0xb4, 0x79, 0x14, 0x12, 0xca, 0x73, 0xcb, 0x62, 0x73, 0x81, 0x81, 0xb7, 0x62, 0x2a, - 0x56, 0x24, 0xd8, 0xac, 0xbb, 0xde, 0x47, 0x96, 0x13, 0xd6, 0x2a, 0xfa, 0xac, 0x3f, 0xf0, 0xde, - 0xb5, 0x9c, 0x10, 0x4b, 0x2e, 0x7a, 0x15, 0xe6, 0x0e, 0xa5, 0x73, 0x03, 0x07, 0xad, 0xb2, 0x83, - 0x2e, 0x72, 0xea, 0x88, 0x87, 0xf6, 0xe1, 0x8a, 0xe3, 0x52, 0x62, 0x0f, 0x03, 0xd2, 0x3e, 0x70, - 0xfc, 0xdd, 0x56, 0xfb, 0x11, 0x09, 0x9c, 0xee, 0x51, 0xd3, 0xb2, 0x0f, 0x88, 0xdb, 0xa9, 0x55, - 0xb9, 0x91, 0xdf, 0x90, 0x46, 0xae, 0x6c, 0x9f, 0x20, 0x8b, 0x4f, 0x44, 0x32, 0x7f, 0x10, 0x1d, - 0xa9, 0x0f, 0x87, 0xa1, 0x3f, 0x0c, 0xd1, 0x37, 0xa0, 0x10, 0x7a, 0x72, 0xdb, 0xbc, 0xa2, 0xac, - 0x55, 0x83, 0xa5, 0x34, 0xc9, 0xd1, 0x89, 0x49, 0x97, 0x04, 0xc4, 0xb5, 0x49, 0x73, 0x76, 0x3c, - 0xaa, 0x17, 0x76, 0x3d, 0x5c, 0x08, 0x3d, 0xf4, 0x1e, 0x80, 0x3f, 0xa4, 0xfb, 0x6d, 0x62, 0x07, - 0x24, 0x94, 0x67, 0xe6, 0xb5, 0x2c, 0x90, 0x96, 0x67, 0x5b, 0xfd, 0x34, 0x12, 0x9f, 0xdf, 0x9d, - 0x58, 0x1f, 0x2b, 0x58, 0xa8, 0x03, 0x55, 0x67, 0x60, 0xf5, 0x48, 0xcb, 0xda, 0x23, 0x7d, 0xe6, - 0xb0, 0xc5, 0x9c, 0x11, 0x75, 0x3b, 0xd6, 0x4a, 0xe2, 0x48, 0x42, 0xa3, 0x58, 0x85, 0x35, 0xff, - 0xd0, 0x80, 0x65, 0x3e, 0x19, 0x3b, 0x1e, 0x0d, 0x45, 0xa5, 0xc0, 0x63, 0xed, 0xab, 0x30, 0xc7, - 0x22, 0xaf, 0xe5, 0x76, 0xf8, 0xa9, 0x53, 0x11, 0xab, 0xb6, 0x21, 0x48, 0x38, 0xe2, 0xa1, 0x2b, - 0x50, 0xb2, 0x82, 0x9e, 0x88, 0x0c, 0x95, 0x66, 0x99, 0x1d, 0xfa, 0xeb, 0x41, 0x8f, 0x62, 0x4e, - 0x65, 0x2e, 0x42, 0xed, 0xc0, 0xf1, 0x27, 0xaa, 0xbf, 0x36, 0xa7, 0x62, 0xc9, 0x35, 0x7f, 0x36, - 0x07, 0xf3, 0x6a, 0x3d, 0xfb, 0x02, 0xb2, 0x9c, 0xf7, 0xa1, 0x1c, 0xd5, 0x47, 0x72, 0xd5, 0xd6, - 0x72, 0x4c, 0xad, 0xa8, 0x96, 0xb0, 0x54, 0x6c, 0xce, 0xb3, 0xd0, 0x11, 0xfd, 0xc2, 0x31, 0x20, - 0x22, 0xb0, 0x28, 0x8f, 0x56, 0xd2, 0x69, 0x1e, 0xf1, 0xb9, 0x97, 0x27, 0x62, 0x2e, 0xff, 0x3a, - 0x3f, 0x1e, 0xd5, 0x17, 0x77, 0x53, 0x00, 0x78, 0x02, 0x12, 0xad, 0x43, 0xa9, 0x1b, 0x78, 0x03, - 0x1e, 0x99, 0x72, 0x42, 0xf3, 0x15, 0xba, 0x13, 0x78, 0x03, 0xcc, 0x55, 0xd1, 0x7b, 0x30, 0xbb, - 0xc7, 0x8b, 0x41, 0x19, 0xab, 0x72, 0xa5, 0x65, 0xe9, 0xea, 0xb1, 0x09, 0x6c, 0x4d, 0x05, 0x19, - 0x4b, 0x3c, 0xb4, 0xa6, 0x9f, 0x6b, 0xb3, 0x7c, 0xeb, 0x9f, 0x3b, 0xe9, 0x4c, 0x43, 0x5f, 0x83, - 0x22, 0x71, 0x0f, 0x6b, 0x73, 0xdc, 0xd3, 0x2f, 0x67, 0x7d, 0xce, 0x96, 0x7b, 0xf8, 0xc8, 0x0a, - 0x9a, 0x55, 0xb9, 0xb4, 0xc5, 0x2d, 0xf7, 0x10, 0x33, 0x1d, 0x74, 0x00, 0x55, 0x65, 0x7a, 0x6a, - 0x65, 0x0e, 0x71, 0x63, 0xca, 0x44, 0x49, 0x54, 0x9f, 0xf1, 0x9e, 0x51, 0x56, 0x00, 0xab, 0xe8, - 0xe8, 0xfb, 0x06, 0x5c, 0xe8, 0x78, 0xf6, 0x01, 0x09, 0xda, 0x61, 0x60, 0x85, 0xa4, 0x77, 0x24, - 0x8f, 0x2e, 0x1e, 0x09, 0xab, 0xd7, 0x6f, 0xe7, 0xb0, 0xbb, 0x99, 0xa5, 0xdf, 0xbc, 0x34, 0x1e, - 0xd5, 0x2f, 0x64, 0xb2, 0x70, 0xb6, 0x45, 0x3e, 0x16, 0xca, 0x57, 0x21, 0x3d, 0x16, 0xc8, 0x3d, - 0x96, 0x76, 0x96, 0xbe, 0x18, 0x4b, 0x26, 0x0b, 0x67, 0x5b, 0x34, 0xff, 0x65, 0x46, 0x06, 0x56, - 0xd9, 0x54, 0xf8, 0xaa, 0x56, 0x78, 0xd6, 0x53, 0x85, 0xe7, 0x39, 0x45, 0x54, 0xa9, 0x3a, 0x13, - 0x8f, 0x2c, 0x3c, 0x67, 0x8f, 0x6c, 0x00, 0x88, 0x39, 0xec, 0x3a, 0x7d, 0x12, 0x45, 0x24, 0x16, - 0x20, 0x36, 0x63, 0x2a, 0x56, 0x24, 0x50, 0x0b, 0x8a, 0x3d, 0x99, 0x55, 0xe6, 0x8b, 0x0e, 0x77, - 0x9d, 0x50, 0x1d, 0xc3, 0x1c, 0xf3, 0xd0, 0xbb, 0x4e, 0x88, 0x19, 0x0c, 0x2b, 0xf8, 0x79, 0xdc, - 0xa5, 0xb5, 0x99, 0xdc, 0x15, 0x03, 0xdf, 0xe6, 0x12, 0x2d, 0x8e, 0x9d, 0x9c, 0x48, 0xb1, 0x44, - 0x63, 0x79, 0x01, 0xcb, 0x84, 0xc8, 0xc7, 0xe1, 0xa6, 0x13, 0xc8, 0x4e, 0x95, 0x92, 0x48, 0x47, - 0x1c, 0xac, 0x48, 0xa1, 0xef, 0xc0, 0xbc, 0x5c, 0x41, 0x71, 0x6c, 0xcd, 0x4d, 0x79, 0x6c, 0x89, - 0x24, 0x48, 0x41, 0xc0, 0x1a, 0x1e, 0xfa, 0x3d, 0x98, 0xa3, 0xfc, 0x2f, 0x3a, 0xc5, 0x4e, 0x14, - 0xba, 0xea, 0x04, 0xc6, 0x55, 0xb1, 0x60, 0x51, 0x1c, 0xa1, 0xa2, 0x03, 0xfe, 0xd1, 0x5d, 0xa7, - 0x77, 0xdf, 0xf2, 0xd9, 0xae, 0x63, 0x36, 0x7e, 0x2b, 0x57, 0xb1, 0x21, 0x95, 0x54, 0x33, 0xea, - 0x6c, 0x49, 0x48, 0xac, 0xc0, 0x9b, 0xff, 0x1a, 0xa5, 0xda, 0xfc, 0x60, 0xb4, 0x32, 0xfa, 0x5c, - 0xcf, 0xb9, 0xce, 0x49, 0x05, 0xb3, 0xc2, 0xaf, 0x32, 0x98, 0x99, 0xff, 0x39, 0x17, 0x6d, 0x5a, - 0x51, 0x8f, 0xac, 0xc1, 0x8c, 0xbf, 0x6f, 0xd1, 0x68, 0xd7, 0x7e, 0x29, 0x4a, 0xe1, 0x77, 0x18, - 0xf1, 0xc9, 0xa8, 0x0e, 0x22, 0x5b, 0x60, 0xbf, 0xb0, 0x90, 0xe4, 0x09, 0xbb, 0xe5, 0xda, 0xa4, - 0xdf, 0x27, 0x1d, 0x99, 0x82, 0x27, 0x09, 0x7b, 0xc4, 0xc0, 0x89, 0x0c, 0xba, 0x15, 0xf7, 0x49, - 0xc4, 0x2e, 0x5c, 0xd1, 0xfb, 0x24, 0x4f, 0x98, 0x77, 0x89, 0x02, 0xff, 0xd8, 0xbe, 0x49, 0xe9, - 0xe4, 0xbe, 0x09, 0xea, 0xc2, 0x02, 0x0d, 0xad, 0x20, 0x8c, 0x33, 0xe3, 0x53, 0x24, 0xe3, 0x68, - 0x3c, 0xaa, 0x2f, 0xb4, 0x35, 0x14, 0x9c, 0x42, 0x45, 0x43, 0x58, 0xb6, 0xbd, 0x81, 0xdf, 0x27, - 0x51, 0x13, 0x48, 0x18, 0x9b, 0xbe, 0xb7, 0x75, 0x71, 0x3c, 0xaa, 0x2f, 0x6f, 0x4c, 0x42, 0xe1, - 0x2c, 0x7c, 0xf4, 0xdb, 0x50, 0xee, 0x0c, 0x03, 0x8b, 0x11, 0x65, 0x62, 0xff, 0x72, 0x54, 0xca, - 0x6c, 0x4a, 0xfa, 0x93, 0x51, 0xfd, 0x2c, 0xab, 0x05, 0x1a, 0x11, 0x01, 0xc7, 0x2a, 0x68, 0x0f, - 0x2e, 0x7b, 0x3c, 0xf9, 0x15, 0xa1, 0x4f, 0x24, 0x18, 0xd1, 0xf6, 0x96, 0x7d, 0xe5, 0xa8, 0x51, - 0x78, 0xf9, 0xe1, 0xb1, 0x92, 0xf8, 0x04, 0x14, 0x74, 0x17, 0x66, 0xc5, 0x26, 0x92, 0xa7, 0x62, - 0xae, 0xfc, 0x04, 0xc4, 0xdd, 0x00, 0x53, 0xc3, 0x52, 0x1d, 0x3d, 0x86, 0x59, 0x61, 0x46, 0x1e, - 0x69, 0x37, 0xa6, 0x6b, 0x95, 0x8a, 0xe1, 0x27, 0xf1, 0x53, 0xfc, 0xc6, 0x12, 0x13, 0xed, 0xf2, - 0xc6, 0x14, 0x8b, 0xcb, 0x55, 0xbe, 0xcf, 0xf2, 0xb4, 0x76, 0xdb, 0x4c, 0x61, 0xdb, 0xed, 0x7a, - 0x5a, 0x43, 0x8a, 0x47, 0x65, 0x81, 0xc5, 0xa2, 0x72, 0xdf, 0xeb, 0xb5, 0x5d, 0xc7, 0xf7, 0x49, - 0x58, 0x9b, 0xd7, 0xa3, 0x72, 0x2b, 0xe6, 0x60, 0x45, 0x0a, 0x11, 0x1e, 0xd4, 0x44, 0xf3, 0x94, - 0xd6, 0xce, 0xf2, 0xd1, 0xac, 0x4d, 0xd1, 0x57, 0x12, 0x9a, 0x5a, 0x38, 0x93, 0x60, 0x58, 0x01, - 0x36, 0x6d, 0xd9, 0x85, 0x50, 0x67, 0x07, 0x3d, 0x50, 0x6a, 0xa0, 0x5b, 0xa7, 0x99, 0xdf, 0x5d, - 0x4f, 0x2d, 0x8b, 0xcc, 0x96, 0xac, 0x2a, 0x74, 0x11, 0x74, 0x53, 0xd6, 0x34, 0x9b, 0x4e, 0x8f, - 0xd0, 0x50, 0x86, 0x18, 0xbd, 0x48, 0x11, 0x2c, 0xac, 0xca, 0x99, 0x3f, 0x2d, 0xc1, 0x59, 0x09, - 0x27, 0x32, 0x0e, 0x74, 0x53, 0x4b, 0x2d, 0x5e, 0x4e, 0xa5, 0x16, 0x4b, 0x9a, 0xb0, 0x92, 0x5c, - 0x04, 0xb0, 0xa0, 0xa7, 0x51, 0x32, 0xc9, 0xb8, 0x95, 0x3b, 0x63, 0xd3, 0x90, 0x45, 0x84, 0xd0, - 0xf3, 0x35, 0x9c, 0xb2, 0xc0, 0x6c, 0xea, 0xe9, 0x92, 0x2c, 0x05, 0x6e, 0xe5, 0xce, 0xcc, 0x32, - 0x6c, 0xea, 0x79, 0x19, 0x4e, 0x59, 0x60, 0x36, 0xed, 0x21, 0x0d, 0xbd, 0x41, 0x6c, 0xb3, 0x94, - 0xdb, 0xe6, 0x06, 0x57, 0xcc, 0xb0, 0xb9, 0xa1, 0x21, 0xe2, 0x94, 0x05, 0xf4, 0x63, 0x03, 0x2e, - 0x7e, 0x40, 0xdc, 0x03, 0xc7, 0xa5, 0x3b, 0x8e, 0x4f, 0xfa, 0x8e, 0x9b, 0x7c, 0xb1, 0x88, 0xbd, - 0xbf, 0x93, 0xc3, 0xfa, 0x3d, 0x1d, 0x41, 0x1f, 0xc6, 0x97, 0xc6, 0xa3, 0xfa, 0xc5, 0x7b, 0xd9, - 0x36, 0xf0, 0x71, 0xc6, 0xcd, 0xef, 0xcd, 0x48, 0x8f, 0x57, 0x4f, 0x46, 0xf5, 0x2c, 0x31, 0x9e, - 0x72, 0x96, 0x04, 0xb0, 0xc0, 0xef, 0x61, 0x1d, 0x5b, 0x5e, 0x45, 0x4d, 0xe1, 0x35, 0x77, 0x35, - 0x45, 0x71, 0x28, 0xf3, 0xd9, 0xd4, 0x19, 0x38, 0x65, 0x01, 0xb9, 0x70, 0x56, 0x80, 0x47, 0x26, - 0x8b, 0xb9, 0x6f, 0xd4, 0xee, 0x3a, 0xe1, 0xdb, 0xb1, 0x9e, 0xb0, 0xb8, 0x34, 0x1e, 0xd5, 0xcf, - 0x6a, 0x74, 0xac, 0xc3, 0xa3, 0x21, 0x2c, 0xf2, 0x1d, 0xb7, 0xb1, 0x6f, 0xb9, 0x3d, 0x31, 0xed, - 0xd2, 0x67, 0xbe, 0x9a, 0x37, 0x51, 0x15, 0xaa, 0xc2, 0x20, 0x2f, 0x61, 0xb7, 0x53, 0x80, 0x78, - 0xc2, 0x84, 0xfc, 0xcc, 0xbe, 0x15, 0x7f, 0xe6, 0xcc, 0x34, 0x9f, 0xd9, 0xb2, 0xb2, 0x3f, 0x33, - 0xa1, 0x63, 0x1d, 0x1e, 0x7d, 0x17, 0x16, 0xf7, 0x52, 0xd7, 0x97, 0xf2, 0xac, 0xbe, 0x9d, 0xab, - 0xce, 0xc8, 0xb8, 0xf9, 0x14, 0xdf, 0x9a, 0x66, 0xe1, 0x09, 0x3b, 0xe6, 0x4f, 0x4a, 0x80, 0x26, - 0xfb, 0xf2, 0xe8, 0x86, 0x16, 0xca, 0xae, 0xa6, 0x42, 0xd9, 0xa2, 0xaa, 0xa1, 0x44, 0xb2, 0xc7, - 0x30, 0x2b, 0xc6, 0x3b, 0x45, 0xf7, 0x42, 0x0e, 0x44, 0x82, 0x65, 0x39, 0x85, 0xc4, 0x64, 0x09, - 0xbc, 0xf4, 0x47, 0xe9, 0x77, 0xa7, 0x80, 0xcf, 0xf2, 0xf2, 0x08, 0x15, 0xed, 0xcb, 0x83, 0x40, - 0xf8, 0x82, 0xf4, 0xb4, 0x9b, 0xd3, 0x79, 0x5a, 0x64, 0xe8, 0x5c, 0x7c, 0x76, 0x08, 0x3a, 0x56, - 0xa1, 0xe5, 0x44, 0xf5, 0xad, 0x3d, 0xe9, 0x5a, 0xcf, 0x30, 0x51, 0x8a, 0x5b, 0x49, 0x4c, 0x44, - 0xa0, 0x12, 0xaf, 0xb3, 0x74, 0xa4, 0x53, 0x18, 0xc8, 0xf6, 0xa0, 0x04, 0xd9, 0xfc, 0xf9, 0x2c, - 0x28, 0xc5, 0x02, 0xfa, 0x26, 0x2c, 0x50, 0x12, 0x1c, 0x3a, 0x36, 0x59, 0xb7, 0x6d, 0x6f, 0xe8, - 0x46, 0x27, 0x69, 0x7c, 0x3f, 0xda, 0xd6, 0xb8, 0x38, 0x25, 0xcd, 0x2f, 0x9f, 0xf9, 0x81, 0x21, - 0x9d, 0x27, 0xff, 0xe5, 0x73, 0xaa, 0x16, 0x95, 0xfd, 0x30, 0x89, 0xa6, 0x35, 0xd5, 0x8a, 0xcf, - 0xbb, 0xa9, 0xf6, 0x1d, 0x28, 0x53, 0xfd, 0x34, 0xfb, 0x4a, 0xfe, 0x44, 0x45, 0x1e, 0x20, 0x71, - 0xbf, 0x3f, 0x3e, 0x35, 0x62, 0x4c, 0x36, 0x29, 0x32, 0xcd, 0x9c, 0x99, 0x6e, 0x52, 0x9e, 0x92, - 0x60, 0xfe, 0x2e, 0x54, 0x02, 0x22, 0x26, 0x88, 0x4a, 0x17, 0xc9, 0xac, 0xb4, 0xb1, 0x14, 0xc2, - 0xe4, 0xc3, 0xa1, 0x13, 0x90, 0x01, 0x71, 0x43, 0x9a, 0xd4, 0x51, 0x11, 0x97, 0xe2, 0x04, 0x0d, - 0x7d, 0x00, 0xe0, 0xc7, 0x6d, 0x5b, 0x59, 0xc5, 0xe7, 0xce, 0xde, 0xf4, 0x86, 0x6f, 0x92, 0x36, - 0x26, 0x74, 0xac, 0xa0, 0xa3, 0xf7, 0xe1, 0x52, 0x52, 0x88, 0x6c, 0x12, 0xab, 0xc3, 0xcf, 0x58, - 0x79, 0x37, 0x22, 0x6e, 0x0b, 0xbe, 0x3c, 0x1e, 0xd5, 0x2f, 0x6d, 0x1c, 0x27, 0x84, 0x8f, 0xd7, - 0x47, 0x03, 0x98, 0x77, 0xbd, 0x0e, 0x69, 0x93, 0x3e, 0xb1, 0x43, 0x2f, 0x90, 0x15, 0x43, 0x9e, - 0x8a, 0x5e, 0xf4, 0x9e, 0xac, 0xfe, 0x03, 0x45, 0x5d, 0xf4, 0x27, 0x54, 0x0a, 0xd6, 0xe0, 0xcd, - 0x3f, 0x35, 0x20, 0xe3, 0x6d, 0x89, 0xe6, 0xbe, 0xc6, 0xf3, 0x76, 0xdf, 0xd7, 0x60, 0x96, 0x26, - 0x97, 0x04, 0x6a, 0x2f, 0x5c, 0x74, 0x50, 0x24, 0xd7, 0xfc, 0x5b, 0x03, 0xce, 0x67, 0xb5, 0x29, - 0x98, 0x1f, 0xc5, 0x4d, 0x09, 0x39, 0xbc, 0xfc, 0x1d, 0x1b, 0xf5, 0x02, 0x4d, 0x40, 0xe0, 0x04, - 0x8d, 0xc5, 0x93, 0x0e, 0xa1, 0xa1, 0xe3, 0xf2, 0xea, 0x70, 0xd3, 0x09, 0xe4, 0x18, 0xe3, 0x78, - 0xb2, 0xa9, 0x71, 0x71, 0x4a, 0xda, 0xfc, 0x61, 0x09, 0x96, 0x33, 0xd2, 0x46, 0xb4, 0x25, 0x1b, - 0xd4, 0x53, 0xdc, 0xad, 0xc4, 0x6f, 0x07, 0xb4, 0x26, 0x35, 0xf8, 0xc3, 0x7e, 0xff, 0xd9, 0xee, - 0x58, 0x22, 0x7d, 0xac, 0x60, 0x45, 0x1d, 0xe7, 0xe2, 0x29, 0x3a, 0xce, 0xf7, 0x00, 0x91, 0x8f, - 0x7d, 0x8f, 0x12, 0x99, 0xfe, 0x7b, 0xfc, 0x08, 0x28, 0xf1, 0xee, 0x47, 0xfc, 0x6e, 0x64, 0x6b, - 0x42, 0x02, 0x67, 0x68, 0xa1, 0x55, 0xa8, 0x74, 0xbd, 0xc0, 0x26, 0x6c, 0x94, 0x3c, 0xfa, 0x28, - 0x0d, 0x94, 0x3b, 0x11, 0x03, 0x27, 0x32, 0xe8, 0xbd, 0xa4, 0xc1, 0x36, 0x9b, 0xfb, 0x5e, 0x48, - 0x7c, 0x33, 0xdf, 0xec, 0xc7, 0x77, 0xd6, 0xd6, 0xe1, 0x1c, 0x57, 0x58, 0xdf, 0xd9, 0x8e, 0x5a, - 0xf7, 0xe2, 0xd1, 0xda, 0x45, 0xa9, 0x22, 0xda, 0xb6, 0x09, 0x1b, 0xa7, 0xe5, 0xcd, 0x4f, 0x4b, - 0xb0, 0x9c, 0x51, 0x2c, 0xc5, 0xd7, 0x15, 0xc6, 0xb3, 0x5c, 0x57, 0xfc, 0xaa, 0x3c, 0xe1, 0x75, - 0x98, 0x73, 0xbd, 0x0d, 0xcb, 0xde, 0x27, 0xf2, 0x6a, 0x38, 0x9e, 0xa2, 0x07, 0x82, 0x8c, 0x23, - 0x7e, 0xe4, 0x34, 0xa5, 0x53, 0x38, 0xcd, 0xd4, 0x0b, 0xfd, 0xcd, 0xa8, 0x60, 0xed, 0x3a, 0x7d, - 0xb2, 0x63, 0x85, 0xfb, 0xb2, 0xc3, 0x9b, 0xec, 0x4c, 0x8d, 0x8b, 0x53, 0xd2, 0xe8, 0x5b, 0x50, - 0x11, 0xcb, 0x13, 0xf4, 0x68, 0x8e, 0x8b, 0x95, 0x78, 0x30, 0xcd, 0x48, 0x09, 0x27, 0xfa, 0xc8, - 0x87, 0x8b, 0x3c, 0xb3, 0x62, 0x31, 0x77, 0xe0, 0x7c, 0x97, 0x6f, 0x7f, 0xf9, 0x66, 0x44, 0xb4, - 0x8c, 0x6e, 0xb1, 0xfa, 0x6c, 0x3b, 0x5b, 0xe4, 0xc9, 0xf1, 0x2c, 0x7c, 0x1c, 0xac, 0xf9, 0x43, - 0x03, 0xb2, 0xaf, 0x43, 0xf4, 0x0f, 0x33, 0x9e, 0xf1, 0xc3, 0x5e, 0x4d, 0x16, 0x5f, 0xb4, 0x2f, - 0xab, 0x59, 0x0b, 0x6f, 0xfe, 0x99, 0x01, 0xcb, 0x19, 0xf5, 0xdc, 0x17, 0xe3, 0xdc, 0xf8, 0xac, - 0x90, 0x1e, 0xdc, 0xd6, 0x21, 0x71, 0xc3, 0xd3, 0x5d, 0xc2, 0x6c, 0x89, 0xab, 0x8f, 0x82, 0xec, - 0x62, 0xe6, 0x2a, 0xc6, 0x78, 0x3f, 0x4c, 0xbf, 0xf3, 0x78, 0x86, 0xf0, 0x7a, 0xfc, 0x1d, 0x5b, - 0xe9, 0x45, 0xdf, 0xb1, 0x99, 0x7f, 0x67, 0xc0, 0x82, 0x7e, 0xb7, 0x83, 0xbe, 0x0c, 0xc5, 0x61, - 0xe0, 0xc8, 0x49, 0x8d, 0x47, 0xff, 0x0e, 0xde, 0xc6, 0x8c, 0xce, 0xd8, 0x01, 0xe9, 0xca, 0x15, - 0x8b, 0xd9, 0x98, 0x74, 0x31, 0xa3, 0x23, 0x02, 0x55, 0x3f, 0xf0, 0x3e, 0x3e, 0x12, 0x87, 0xf1, - 0x14, 0x2f, 0x40, 0x77, 0x12, 0xad, 0xa4, 0x6d, 0xa6, 0x10, 0xb1, 0x8a, 0xcb, 0xd3, 0x9c, 0xc9, - 0x66, 0xc0, 0x17, 0xc3, 0x5d, 0x7f, 0x5e, 0x80, 0x39, 0xe9, 0x34, 0xe8, 0x43, 0x58, 0xe8, 0x69, - 0xd3, 0x3b, 0xc5, 0xb0, 0x52, 0x77, 0x6e, 0x71, 0x5c, 0xd4, 0xe9, 0x38, 0x65, 0x00, 0xfd, 0x01, - 0x2c, 0xf5, 0x9c, 0x50, 0xff, 0xa6, 0x29, 0x2e, 0x1c, 0xef, 0xa6, 0x75, 0x9b, 0x97, 0xa4, 0xe1, - 0xa5, 0x09, 0x16, 0x9e, 0xb4, 0x84, 0x1e, 0x42, 0x29, 0x20, 0xdd, 0x69, 0x1e, 0x75, 0xb0, 0x3d, - 0x45, 0xba, 0x7c, 0x8f, 0xc5, 0x29, 0x12, 0x26, 0x5d, 0x8a, 0x39, 0x90, 0xf9, 0x47, 0x62, 0xa9, - 0x53, 0x0d, 0x91, 0xff, 0x8d, 0x47, 0xd9, 0xff, 0x6d, 0x00, 0x24, 0x83, 0xfd, 0xf5, 0x5b, 0x5b, - 0xf3, 0x6f, 0x0a, 0x30, 0x29, 0xc8, 0xf6, 0x85, 0x2d, 0xca, 0x34, 0x23, 0xf3, 0x1f, 0x21, 0x24, - 0x17, 0x3d, 0x86, 0x59, 0x8b, 0xff, 0x27, 0xc1, 0x14, 0x23, 0x16, 0xa6, 0x36, 0x3c, 0x37, 0x0c, - 0xbc, 0xfe, 0x3b, 0x94, 0x04, 0xca, 0xf3, 0x7d, 0x8e, 0x85, 0x25, 0x26, 0x22, 0xac, 0x86, 0x90, - 0xff, 0x0d, 0x30, 0xc5, 0x43, 0xdc, 0x49, 0x03, 0x4a, 0x3d, 0x21, 0xe1, 0x70, 0x82, 0x3c, 0xc5, - 0x3d, 0x9d, 0xf9, 0x7d, 0x03, 0x16, 0xd3, 0xdd, 0x43, 0xa6, 0xcf, 0x33, 0x82, 0xed, 0xcd, 0x74, - 0x6f, 0x76, 0x5b, 0x90, 0x71, 0xc4, 0x47, 0xf7, 0x60, 0x8e, 0x65, 0x86, 0x58, 0x46, 0xdb, 0x9c, - 0x79, 0x25, 0x3f, 0xdf, 0xef, 0x08, 0x3d, 0x1c, 0x01, 0x98, 0xff, 0x64, 0x00, 0x9a, 0xec, 0x2f, - 0xa1, 0x1d, 0x38, 0x2f, 0xde, 0x7a, 0xcb, 0x4b, 0xd3, 0x6d, 0x6d, 0x68, 0x57, 0xe4, 0xd0, 0xce, - 0xb7, 0x32, 0x64, 0x70, 0xa6, 0x66, 0x9c, 0x09, 0x17, 0x4e, 0x9f, 0x09, 0xbf, 0x06, 0xb3, 0x3e, - 0x9b, 0xab, 0x8e, 0x4c, 0x57, 0xe3, 0x15, 0xdf, 0xe1, 0x54, 0x2c, 0xb9, 0x66, 0x1b, 0x20, 0x79, - 0xfb, 0x85, 0xae, 0x42, 0xc9, 0xb5, 0x06, 0x51, 0x32, 0x10, 0x07, 0x12, 0xfe, 0xef, 0x27, 0x9c, - 0x83, 0x5e, 0x81, 0x99, 0x43, 0xab, 0x3f, 0x8c, 0xfe, 0xbf, 0x27, 0x7e, 0xc1, 0xf9, 0x88, 0x11, - 0xb1, 0xe0, 0x99, 0x7f, 0x5e, 0x80, 0xaa, 0xf2, 0x36, 0xe1, 0x79, 0xd5, 0x79, 0x2f, 0x41, 0xc1, - 0xa2, 0x3c, 0xaf, 0xae, 0x88, 0xcb, 0xa4, 0x75, 0x8a, 0x0b, 0x16, 0x45, 0xef, 0xc2, 0x8c, 0x6f, - 0x85, 0xfb, 0xd1, 0xfb, 0xd3, 0xeb, 0xd3, 0xbd, 0x9c, 0x60, 0x79, 0x70, 0xf2, 0x1d, 0xec, 0x17, - 0xc5, 0x02, 0x2f, 0x55, 0x4e, 0x14, 0x9f, 0x5f, 0x39, 0x61, 0x7e, 0xcf, 0x80, 0x73, 0xa9, 0x31, - 0xa0, 0xeb, 0x00, 0x34, 0xfe, 0x25, 0x97, 0x20, 0xee, 0xba, 0x24, 0x72, 0x58, 0x91, 0x7a, 0xe6, - 0xca, 0xfc, 0x9f, 0x0d, 0xb8, 0x72, 0xd2, 0x95, 0x0a, 0xab, 0xf7, 0xe4, 0xbd, 0x49, 0x5c, 0x61, - 0x18, 0x7a, 0xbd, 0x77, 0x4f, 0x67, 0xe3, 0xb4, 0x3c, 0xba, 0x09, 0x55, 0x85, 0x24, 0x07, 0x18, - 0x67, 0x27, 0x8a, 0x3a, 0x56, 0xe5, 0x9e, 0x21, 0x39, 0x34, 0xff, 0xc1, 0x80, 0xf3, 0x59, 0x8d, - 0x1f, 0xd4, 0x8b, 0x5e, 0x2a, 0x8b, 0x8a, 0xa0, 0x79, 0xca, 0x06, 0x52, 0x83, 0xbf, 0x57, 0xde, - 0x72, 0xc3, 0xe0, 0x28, 0xfb, 0x0d, 0xf3, 0xe5, 0xdb, 0x00, 0x89, 0x0c, 0x5a, 0x84, 0xe2, 0x01, - 0x39, 0x12, 0x13, 0x87, 0xd9, 0x9f, 0xe8, 0xbc, 0xb6, 0x8d, 0xe4, 0xbe, 0xf9, 0x7a, 0xe1, 0xb6, - 0xf1, 0xf5, 0xf2, 0x9f, 0xfc, 0x45, 0xfd, 0xcc, 0x27, 0xbf, 0xbc, 0x7a, 0xc6, 0xfc, 0x91, 0x01, - 0x6a, 0xee, 0x86, 0xde, 0x80, 0xca, 0x7e, 0x18, 0xfa, 0x9c, 0x24, 0x1f, 0x46, 0xf0, 0xd7, 0xba, - 0x6f, 0xef, 0xee, 0xee, 0x70, 0x22, 0x4e, 0xf8, 0xa8, 0x01, 0xc0, 0x7e, 0x50, 0x21, 0x5d, 0x4a, - 0x1e, 0x33, 0x31, 0xe9, 0xb6, 0x10, 0x57, 0x24, 0x44, 0x89, 0x23, 0x84, 0xc5, 0xbf, 0x9c, 0xc8, - 0x12, 0x47, 0x48, 0x46, 0x3c, 0xf3, 0xaf, 0x0d, 0x58, 0x9a, 0x78, 0x88, 0x83, 0x76, 0xe2, 0xa4, - 0x6e, 0xda, 0xbe, 0xd3, 0x31, 0xe9, 0xdf, 0x33, 0xfb, 0xf5, 0x6d, 0x38, 0x2f, 0x10, 0xb9, 0xd5, - 0xe4, 0xd1, 0xc1, 0x53, 0x03, 0x9c, 0xf9, 0x97, 0x06, 0x40, 0xd2, 0x09, 0x41, 0x7b, 0x30, 0x2f, - 0x86, 0xa4, 0x65, 0x27, 0xf9, 0x3f, 0xf0, 0xbc, 0x34, 0x31, 0xdf, 0x56, 0x50, 0xb0, 0x86, 0xc9, - 0xaa, 0xfe, 0x81, 0x37, 0x74, 0x43, 0xbe, 0xbb, 0x0a, 0xfa, 0x83, 0xf6, 0xfb, 0x11, 0x03, 0x27, - 0x32, 0xe6, 0x27, 0x45, 0x58, 0xce, 0xb8, 0xfa, 0xfd, 0x7f, 0xdd, 0x4f, 0x7b, 0x1d, 0xe6, 0xc4, - 0x6b, 0x60, 0x9a, 0xce, 0x19, 0xc4, 0x63, 0x61, 0x8a, 0x23, 0x3e, 0x5a, 0x83, 0xaa, 0xe3, 0xda, - 0xa2, 0x45, 0x6e, 0x45, 0x7d, 0x14, 0x71, 0x0b, 0x94, 0x90, 0xb1, 0x2a, 0xa3, 0x37, 0x5e, 0x66, - 0x9f, 0xde, 0x78, 0x31, 0xbf, 0x0d, 0x4b, 0x13, 0x59, 0x4f, 0xbe, 0xe3, 0x93, 0xf0, 0xff, 0xcd, - 0x4c, 0x1d, 0x9f, 0xe2, 0x5f, 0x32, 0x05, 0xcf, 0xfc, 0xb1, 0x01, 0x0b, 0xa9, 0xf4, 0xf0, 0x54, - 0x55, 0xfa, 0x43, 0xb5, 0x4a, 0x3f, 0x5d, 0x6a, 0xab, 0xd5, 0xeb, 0xe6, 0x3d, 0xc8, 0x7e, 0xf0, - 0x99, 0x9e, 0x71, 0xe3, 0xe9, 0x33, 0x6e, 0xfe, 0xb4, 0x00, 0x95, 0xf8, 0x9d, 0x0c, 0x7a, 0x4b, - 0x9b, 0xb9, 0x4b, 0xea, 0xcc, 0x3d, 0x19, 0xd5, 0x85, 0xa0, 0x32, 0x8d, 0xef, 0x43, 0x25, 0x7e, - 0x67, 0x15, 0x77, 0x21, 0xf2, 0xbf, 0xa5, 0x8a, 0x97, 0x36, 0x7e, 0xbc, 0x85, 0x13, 0x3c, 0x96, - 0xcf, 0x45, 0x0f, 0xa1, 0xee, 0x3b, 0xfd, 0xbe, 0x43, 0xe5, 0x25, 0x46, 0x91, 0x5f, 0x62, 0xc4, - 0xf9, 0xdc, 0x66, 0x86, 0x0c, 0xce, 0xd4, 0x44, 0x3b, 0x30, 0x43, 0x43, 0xe2, 0x53, 0xd9, 0x13, - 0x7c, 0x23, 0xd7, 0x13, 0x22, 0xe2, 0xf3, 0x6a, 0x2e, 0x76, 0x11, 0x46, 0xa1, 0x58, 0x00, 0x99, - 0xff, 0x61, 0x40, 0x39, 0x12, 0x41, 0x6f, 0x6a, 0x93, 0x57, 0x4b, 0x4d, 0x1e, 0x97, 0xfb, 0x3f, - 0x3b, 0x77, 0xe6, 0xc8, 0x80, 0x05, 0xfd, 0x3a, 0x54, 0xe9, 0x21, 0x18, 0x27, 0xf5, 0x10, 0xd0, - 0x9b, 0x50, 0xb6, 0xfa, 0x7d, 0xef, 0xa3, 0x2d, 0xf7, 0x50, 0xf6, 0xed, 0xe2, 0xfb, 0xbd, 0x75, - 0x49, 0xc7, 0xb1, 0x04, 0x3a, 0x84, 0x73, 0x42, 0x2f, 0x79, 0xe8, 0x56, 0xcc, 0x7d, 0xcd, 0x94, - 0x75, 0xd8, 0x34, 0x97, 0x59, 0x7a, 0xd4, 0xd6, 0x31, 0x71, 0xda, 0x48, 0xf3, 0xda, 0xa7, 0x9f, - 0xaf, 0x9c, 0xf9, 0xc5, 0xe7, 0x2b, 0x67, 0x3e, 0xfb, 0x7c, 0xe5, 0xcc, 0x27, 0xe3, 0x15, 0xe3, - 0xd3, 0xf1, 0x8a, 0xf1, 0x8b, 0xf1, 0x8a, 0xf1, 0xd9, 0x78, 0xc5, 0xf8, 0xb7, 0xf1, 0x8a, 0xf1, - 0xc7, 0xff, 0xbe, 0x72, 0xe6, 0xdb, 0x85, 0xc3, 0xb5, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x2b, - 0xec, 0xd9, 0xf8, 0xf4, 0x40, 0x00, 0x00, -} - -func (m *BinaryBuildRequestOptions) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BinaryBuildRequestOptions) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BinaryBuildRequestOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.CommitterEmail) - copy(dAtA[i:], m.CommitterEmail) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.CommitterEmail))) - i-- - dAtA[i] = 0x42 - i -= len(m.CommitterName) - copy(dAtA[i:], m.CommitterName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.CommitterName))) - i-- - dAtA[i] = 0x3a - i -= len(m.AuthorEmail) - copy(dAtA[i:], m.AuthorEmail) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.AuthorEmail))) - i-- - dAtA[i] = 0x32 - i -= len(m.AuthorName) - copy(dAtA[i:], m.AuthorName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.AuthorName))) - i-- - dAtA[i] = 0x2a - i -= len(m.Message) - copy(dAtA[i:], m.Message) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i-- - dAtA[i] = 0x22 - i -= len(m.Commit) - copy(dAtA[i:], m.Commit) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Commit))) - i-- - dAtA[i] = 0x1a - i -= len(m.AsFile) - copy(dAtA[i:], m.AsFile) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.AsFile))) - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *BinaryBuildSource) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BinaryBuildSource) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BinaryBuildSource) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.AsFile) - copy(dAtA[i:], m.AsFile) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.AsFile))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *BitbucketWebHookCause) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BitbucketWebHookCause) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BitbucketWebHookCause) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.CommonWebHookCause.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *Build) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Build) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Build) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *BuildCondition) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildCondition) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - i -= len(m.Message) - copy(dAtA[i:], m.Message) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i-- - dAtA[i] = 0x2a - i -= len(m.Reason) - copy(dAtA[i:], m.Reason) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) - i-- - dAtA[i] = 0x22 - { - size, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - i -= len(m.Status) - copy(dAtA[i:], m.Status) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) - i-- - dAtA[i] = 0x12 - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *BuildConfig) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildConfig) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *BuildConfigList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildConfigList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildConfigList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *BuildConfigSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildConfigSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildConfigSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.FailedBuildsHistoryLimit != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.FailedBuildsHistoryLimit)) - i-- - dAtA[i] = 0x28 - } - if m.SuccessfulBuildsHistoryLimit != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.SuccessfulBuildsHistoryLimit)) - i-- - dAtA[i] = 0x20 - } - { - size, err := m.CommonSpec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - i -= len(m.RunPolicy) - copy(dAtA[i:], m.RunPolicy) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.RunPolicy))) - i-- - dAtA[i] = 0x12 - if len(m.Triggers) > 0 { - for iNdEx := len(m.Triggers) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Triggers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *BuildConfigStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildConfigStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildConfigStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i = encodeVarintGenerated(dAtA, i, uint64(m.LastVersion)) - i-- - dAtA[i] = 0x8 - return len(dAtA) - i, nil -} - -func (m *BuildList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *BuildLog) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildLog) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildLog) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - -func (m *BuildLogOptions) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildLogOptions) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildLogOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i-- - if m.InsecureSkipTLSVerifyBackend { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x58 - if m.Version != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.Version)) - i-- - dAtA[i] = 0x50 - } - i-- - if m.NoWait { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x48 - if m.LimitBytes != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.LimitBytes)) - i-- - dAtA[i] = 0x40 - } - if m.TailLines != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.TailLines)) - i-- - dAtA[i] = 0x38 - } - i-- - if m.Timestamps { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x30 - if m.SinceTime != nil { - { - size, err := m.SinceTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - } - if m.SinceSeconds != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.SinceSeconds)) - i-- - dAtA[i] = 0x20 - } - i-- - if m.Previous { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x18 - i-- - if m.Follow { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x10 - i -= len(m.Container) - copy(dAtA[i:], m.Container) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Container))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *BuildOutput) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildOutput) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildOutput) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.ImageLabels) > 0 { - for iNdEx := len(m.ImageLabels) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.ImageLabels[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - if m.PushSecret != nil { - { - size, err := m.PushSecret.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.To != nil { - { - size, err := m.To.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *BuildPostCommitSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildPostCommitSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildPostCommitSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Script) - copy(dAtA[i:], m.Script) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Script))) - i-- - dAtA[i] = 0x1a - if len(m.Args) > 0 { - for iNdEx := len(m.Args) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Args[iNdEx]) - copy(dAtA[i:], m.Args[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Args[iNdEx]))) - i-- - dAtA[i] = 0x12 - } - } - if len(m.Command) > 0 { - for iNdEx := len(m.Command) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Command[iNdEx]) - copy(dAtA[i:], m.Command[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Command[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *BuildRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.SourceStrategyOptions != nil { - { - size, err := m.SourceStrategyOptions.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x52 - } - if m.DockerStrategyOptions != nil { - { - size, err := m.DockerStrategyOptions.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x4a - } - if len(m.TriggeredBy) > 0 { - for iNdEx := len(m.TriggeredBy) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.TriggeredBy[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x42 - } - } - if len(m.Env) > 0 { - for iNdEx := len(m.Env) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Env[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x3a - } - } - if m.LastVersion != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.LastVersion)) - i-- - dAtA[i] = 0x30 - } - if m.Binary != nil { - { - size, err := m.Binary.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - } - if m.From != nil { - { - size, err := m.From.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if m.TriggeredByImage != nil { - { - size, err := m.TriggeredByImage.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.Revision != nil { - { - size, err := m.Revision.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *BuildSource) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildSource) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildSource) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.ConfigMaps) > 0 { - for iNdEx := len(m.ConfigMaps) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.ConfigMaps[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x4a - } - } - if len(m.Secrets) > 0 { - for iNdEx := len(m.Secrets) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Secrets[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x42 - } - } - if m.SourceSecret != nil { - { - size, err := m.SourceSecret.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x3a - } - i -= len(m.ContextDir) - copy(dAtA[i:], m.ContextDir) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ContextDir))) - i-- - dAtA[i] = 0x32 - if len(m.Images) > 0 { - for iNdEx := len(m.Images) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Images[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - } - } - if m.Git != nil { - { - size, err := m.Git.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if m.Dockerfile != nil { - i -= len(*m.Dockerfile) - copy(dAtA[i:], *m.Dockerfile) - i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Dockerfile))) - i-- - dAtA[i] = 0x1a - } - if m.Binary != nil { - { - size, err := m.Binary.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *BuildSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.TriggeredBy) > 0 { - for iNdEx := len(m.TriggeredBy) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.TriggeredBy[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.CommonSpec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *BuildStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Conditions) > 0 { - for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x6a - } - } - i -= len(m.LogSnippet) - copy(dAtA[i:], m.LogSnippet) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.LogSnippet))) - i-- - dAtA[i] = 0x62 - if len(m.Stages) > 0 { - for iNdEx := len(m.Stages) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Stages[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x5a - } - } - { - size, err := m.Output.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x52 - if m.Config != nil { - { - size, err := m.Config.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x4a - } - i -= len(m.OutputDockerImageReference) - copy(dAtA[i:], m.OutputDockerImageReference) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.OutputDockerImageReference))) - i-- - dAtA[i] = 0x42 - i = encodeVarintGenerated(dAtA, i, uint64(m.Duration)) - i-- - dAtA[i] = 0x38 - if m.CompletionTimestamp != nil { - { - size, err := m.CompletionTimestamp.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - } - if m.StartTimestamp != nil { - { - size, err := m.StartTimestamp.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - } - i -= len(m.Message) - copy(dAtA[i:], m.Message) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i-- - dAtA[i] = 0x22 - i -= len(m.Reason) - copy(dAtA[i:], m.Reason) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) - i-- - dAtA[i] = 0x1a - i-- - if m.Cancelled { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x10 - i -= len(m.Phase) - copy(dAtA[i:], m.Phase) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *BuildStatusOutput) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildStatusOutput) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildStatusOutput) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.To != nil { - { - size, err := m.To.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *BuildStatusOutputTo) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildStatusOutputTo) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildStatusOutputTo) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.ImageDigest) - copy(dAtA[i:], m.ImageDigest) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ImageDigest))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *BuildStrategy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildStrategy) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.JenkinsPipelineStrategy != nil { - { - size, err := m.JenkinsPipelineStrategy.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - } - if m.CustomStrategy != nil { - { - size, err := m.CustomStrategy.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if m.SourceStrategy != nil { - { - size, err := m.SourceStrategy.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.DockerStrategy != nil { - { - size, err := m.DockerStrategy.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *BuildTriggerCause) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildTriggerCause) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildTriggerCause) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.BitbucketWebHook != nil { - { - size, err := m.BitbucketWebHook.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - } - if m.GitLabWebHook != nil { - { - size, err := m.GitLabWebHook.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - } - if m.ImageChangeBuild != nil { - { - size, err := m.ImageChangeBuild.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if m.GitHubWebHook != nil { - { - size, err := m.GitHubWebHook.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.GenericWebHook != nil { - { - size, err := m.GenericWebHook.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - i -= len(m.Message) - copy(dAtA[i:], m.Message) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *BuildTriggerPolicy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BuildTriggerPolicy) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BuildTriggerPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.BitbucketWebHook != nil { - { - size, err := m.BitbucketWebHook.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - } - if m.GitLabWebHook != nil { - { - size, err := m.GitLabWebHook.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - } - if m.ImageChange != nil { - { - size, err := m.ImageChange.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if m.GenericWebHook != nil { - { - size, err := m.GenericWebHook.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.GitHubWebHook != nil { - { - size, err := m.GitHubWebHook.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *CommonSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *CommonSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *CommonSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.NodeSelector != nil { - { - size, err := m.NodeSelector.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x4a - } - if m.CompletionDeadlineSeconds != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.CompletionDeadlineSeconds)) - i-- - dAtA[i] = 0x40 - } - { - size, err := m.PostCommit.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x3a - { - size, err := m.Resources.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - { - size, err := m.Output.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - { - size, err := m.Strategy.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - if m.Revision != nil { - { - size, err := m.Revision.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - { - size, err := m.Source.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - i -= len(m.ServiceAccount) - copy(dAtA[i:], m.ServiceAccount) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceAccount))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *CommonWebHookCause) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *CommonWebHookCause) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *CommonWebHookCause) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Secret) - copy(dAtA[i:], m.Secret) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Secret))) - i-- - dAtA[i] = 0x12 - if m.Revision != nil { - { - size, err := m.Revision.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *ConfigMapBuildSource) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ConfigMapBuildSource) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ConfigMapBuildSource) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.DestinationDir) - copy(dAtA[i:], m.DestinationDir) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DestinationDir))) - i-- - dAtA[i] = 0x12 - { - size, err := m.ConfigMap.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *CustomBuildStrategy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *CustomBuildStrategy) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *CustomBuildStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.BuildAPIVersion) - copy(dAtA[i:], m.BuildAPIVersion) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.BuildAPIVersion))) - i-- - dAtA[i] = 0x3a - if len(m.Secrets) > 0 { - for iNdEx := len(m.Secrets) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Secrets[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - } - } - i-- - if m.ForcePull { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x28 - i-- - if m.ExposeDockerSocket { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x20 - if len(m.Env) > 0 { - for iNdEx := len(m.Env) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Env[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - if m.PullSecret != nil { - { - size, err := m.PullSecret.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - { - size, err := m.From.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *DockerBuildStrategy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DockerBuildStrategy) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DockerBuildStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.ImageOptimizationPolicy != nil { - i -= len(*m.ImageOptimizationPolicy) - copy(dAtA[i:], *m.ImageOptimizationPolicy) - i = encodeVarintGenerated(dAtA, i, uint64(len(*m.ImageOptimizationPolicy))) - i-- - dAtA[i] = 0x42 - } - if len(m.BuildArgs) > 0 { - for iNdEx := len(m.BuildArgs) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.BuildArgs[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x3a - } - } - i -= len(m.DockerfilePath) - copy(dAtA[i:], m.DockerfilePath) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DockerfilePath))) - i-- - dAtA[i] = 0x32 - i-- - if m.ForcePull { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x28 - if len(m.Env) > 0 { - for iNdEx := len(m.Env) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Env[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - } - i-- - if m.NoCache { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x18 - if m.PullSecret != nil { - { - size, err := m.PullSecret.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.From != nil { - { - size, err := m.From.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *DockerStrategyOptions) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DockerStrategyOptions) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DockerStrategyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.NoCache != nil { - i-- - if *m.NoCache { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x10 - } - if len(m.BuildArgs) > 0 { - for iNdEx := len(m.BuildArgs) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.BuildArgs[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *GenericWebHookCause) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *GenericWebHookCause) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *GenericWebHookCause) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Secret) - copy(dAtA[i:], m.Secret) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Secret))) - i-- - dAtA[i] = 0x12 - if m.Revision != nil { - { - size, err := m.Revision.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *GenericWebHookEvent) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *GenericWebHookEvent) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *GenericWebHookEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.DockerStrategyOptions != nil { - { - size, err := m.DockerStrategyOptions.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if len(m.Env) > 0 { - for iNdEx := len(m.Env) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Env[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - if m.Git != nil { - { - size, err := m.Git.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *GitBuildSource) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *GitBuildSource) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *GitBuildSource) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.ProxyConfig.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - i -= len(m.Ref) - copy(dAtA[i:], m.Ref) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Ref))) - i-- - dAtA[i] = 0x12 - i -= len(m.URI) - copy(dAtA[i:], m.URI) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.URI))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *GitHubWebHookCause) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *GitHubWebHookCause) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *GitHubWebHookCause) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Secret) - copy(dAtA[i:], m.Secret) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Secret))) - i-- - dAtA[i] = 0x12 - if m.Revision != nil { - { - size, err := m.Revision.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *GitInfo) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *GitInfo) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *GitInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Refs) > 0 { - for iNdEx := len(m.Refs) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Refs[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - { - size, err := m.GitSourceRevision.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.GitBuildSource.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *GitLabWebHookCause) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *GitLabWebHookCause) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *GitLabWebHookCause) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.CommonWebHookCause.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *GitRefInfo) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *GitRefInfo) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *GitRefInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.GitSourceRevision.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.GitBuildSource.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *GitSourceRevision) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *GitSourceRevision) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *GitSourceRevision) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Message) - copy(dAtA[i:], m.Message) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i-- - dAtA[i] = 0x22 - { - size, err := m.Committer.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size, err := m.Author.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - i -= len(m.Commit) - copy(dAtA[i:], m.Commit) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Commit))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageChangeCause) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageChangeCause) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageChangeCause) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.FromRef != nil { - { - size, err := m.FromRef.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - i -= len(m.ImageID) - copy(dAtA[i:], m.ImageID) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ImageID))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageChangeTrigger) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageChangeTrigger) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageChangeTrigger) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i-- - if m.Paused { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x18 - if m.From != nil { - { - size, err := m.From.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - i -= len(m.LastTriggeredImageID) - copy(dAtA[i:], m.LastTriggeredImageID) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.LastTriggeredImageID))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageLabel) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageLabel) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageLabel) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Value) - copy(dAtA[i:], m.Value) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Value))) - i-- - dAtA[i] = 0x12 - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageSource) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageSource) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageSource) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.As) > 0 { - for iNdEx := len(m.As) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.As[iNdEx]) - copy(dAtA[i:], m.As[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.As[iNdEx]))) - i-- - dAtA[i] = 0x22 - } - } - if m.PullSecret != nil { - { - size, err := m.PullSecret.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if len(m.Paths) > 0 { - for iNdEx := len(m.Paths) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Paths[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.From.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageSourcePath) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageSourcePath) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageSourcePath) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.DestinationDir) - copy(dAtA[i:], m.DestinationDir) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DestinationDir))) - i-- - dAtA[i] = 0x12 - i -= len(m.SourcePath) - copy(dAtA[i:], m.SourcePath) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.SourcePath))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *JenkinsPipelineBuildStrategy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *JenkinsPipelineBuildStrategy) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *JenkinsPipelineBuildStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Env) > 0 { - for iNdEx := len(m.Env) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Env[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - i -= len(m.Jenkinsfile) - copy(dAtA[i:], m.Jenkinsfile) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Jenkinsfile))) - i-- - dAtA[i] = 0x12 - i -= len(m.JenkinsfilePath) - copy(dAtA[i:], m.JenkinsfilePath) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.JenkinsfilePath))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m OptionalNodeSelector) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m OptionalNodeSelector) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m OptionalNodeSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m) > 0 { - keysForItems := make([]string, 0, len(m)) - for k := range m { - keysForItems = append(keysForItems, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForItems) - for iNdEx := len(keysForItems) - 1; iNdEx >= 0; iNdEx-- { - v := m[string(keysForItems[iNdEx])] - baseI := i - i -= len(v) - copy(dAtA[i:], v) - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i-- - dAtA[i] = 0x12 - i -= len(keysForItems[iNdEx]) - copy(dAtA[i:], keysForItems[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForItems[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *ProxyConfig) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ProxyConfig) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ProxyConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.NoProxy != nil { - i -= len(*m.NoProxy) - copy(dAtA[i:], *m.NoProxy) - i = encodeVarintGenerated(dAtA, i, uint64(len(*m.NoProxy))) - i-- - dAtA[i] = 0x2a - } - if m.HTTPSProxy != nil { - i -= len(*m.HTTPSProxy) - copy(dAtA[i:], *m.HTTPSProxy) - i = encodeVarintGenerated(dAtA, i, uint64(len(*m.HTTPSProxy))) - i-- - dAtA[i] = 0x22 - } - if m.HTTPProxy != nil { - i -= len(*m.HTTPProxy) - copy(dAtA[i:], *m.HTTPProxy) - i = encodeVarintGenerated(dAtA, i, uint64(len(*m.HTTPProxy))) - i-- - dAtA[i] = 0x1a - } - return len(dAtA) - i, nil -} - -func (m *SecretBuildSource) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SecretBuildSource) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SecretBuildSource) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.DestinationDir) - copy(dAtA[i:], m.DestinationDir) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DestinationDir))) - i-- - dAtA[i] = 0x12 - { - size, err := m.Secret.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SecretLocalReference) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SecretLocalReference) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SecretLocalReference) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SecretSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SecretSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SecretSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.MountPath) - copy(dAtA[i:], m.MountPath) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.MountPath))) - i-- - dAtA[i] = 0x12 - { - size, err := m.SecretSource.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SourceBuildStrategy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SourceBuildStrategy) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SourceBuildStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i-- - if m.ForcePull { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x30 - if m.Incremental != nil { - i-- - if *m.Incremental { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x28 - } - i -= len(m.Scripts) - copy(dAtA[i:], m.Scripts) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Scripts))) - i-- - dAtA[i] = 0x22 - if len(m.Env) > 0 { - for iNdEx := len(m.Env) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Env[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - if m.PullSecret != nil { - { - size, err := m.PullSecret.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - { - size, err := m.From.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SourceControlUser) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SourceControlUser) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SourceControlUser) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Email) - copy(dAtA[i:], m.Email) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Email))) - i-- - dAtA[i] = 0x12 - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SourceRevision) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SourceRevision) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SourceRevision) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Git != nil { - { - size, err := m.Git.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SourceStrategyOptions) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SourceStrategyOptions) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SourceStrategyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Incremental != nil { - i-- - if *m.Incremental { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *StageInfo) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *StageInfo) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *StageInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Steps) > 0 { - for iNdEx := len(m.Steps) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Steps[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - } - i = encodeVarintGenerated(dAtA, i, uint64(m.DurationMilliseconds)) - i-- - dAtA[i] = 0x18 - { - size, err := m.StartTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *StepInfo) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *StepInfo) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *StepInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i = encodeVarintGenerated(dAtA, i, uint64(m.DurationMilliseconds)) - i-- - dAtA[i] = 0x18 - { - size, err := m.StartTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *WebHookTrigger) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *WebHookTrigger) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *WebHookTrigger) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.SecretReference != nil { - { - size, err := m.SecretReference.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - i-- - if m.AllowEnv { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x10 - i -= len(m.Secret) - copy(dAtA[i:], m.Secret) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Secret))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *BinaryBuildRequestOptions) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.AsFile) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Commit) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.AuthorName) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.AuthorEmail) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.CommitterName) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.CommitterEmail) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *BinaryBuildSource) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.AsFile) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *BitbucketWebHookCause) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.CommonWebHookCause.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *Build) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *BuildCondition) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Status) - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastTransitionTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Reason) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastUpdateTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *BuildConfig) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *BuildConfigList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *BuildConfigSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Triggers) > 0 { - for _, e := range m.Triggers { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.RunPolicy) - n += 1 + l + sovGenerated(uint64(l)) - l = m.CommonSpec.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.SuccessfulBuildsHistoryLimit != nil { - n += 1 + sovGenerated(uint64(*m.SuccessfulBuildsHistoryLimit)) - } - if m.FailedBuildsHistoryLimit != nil { - n += 1 + sovGenerated(uint64(*m.FailedBuildsHistoryLimit)) - } - return n -} - -func (m *BuildConfigStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - n += 1 + sovGenerated(uint64(m.LastVersion)) - return n -} - -func (m *BuildList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *BuildLog) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - -func (m *BuildLogOptions) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Container) - n += 1 + l + sovGenerated(uint64(l)) - n += 2 - n += 2 - if m.SinceSeconds != nil { - n += 1 + sovGenerated(uint64(*m.SinceSeconds)) - } - if m.SinceTime != nil { - l = m.SinceTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - n += 2 - if m.TailLines != nil { - n += 1 + sovGenerated(uint64(*m.TailLines)) - } - if m.LimitBytes != nil { - n += 1 + sovGenerated(uint64(*m.LimitBytes)) - } - n += 2 - if m.Version != nil { - n += 1 + sovGenerated(uint64(*m.Version)) - } - n += 2 - return n -} - -func (m *BuildOutput) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.To != nil { - l = m.To.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.PushSecret != nil { - l = m.PushSecret.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.ImageLabels) > 0 { - for _, e := range m.ImageLabels { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *BuildPostCommitSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Command) > 0 { - for _, s := range m.Command { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.Args) > 0 { - for _, s := range m.Args { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.Script) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *BuildRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.Revision != nil { - l = m.Revision.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.TriggeredByImage != nil { - l = m.TriggeredByImage.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.From != nil { - l = m.From.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.Binary != nil { - l = m.Binary.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.LastVersion != nil { - n += 1 + sovGenerated(uint64(*m.LastVersion)) - } - if len(m.Env) > 0 { - for _, e := range m.Env { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.TriggeredBy) > 0 { - for _, e := range m.TriggeredBy { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if m.DockerStrategyOptions != nil { - l = m.DockerStrategyOptions.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.SourceStrategyOptions != nil { - l = m.SourceStrategyOptions.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *BuildSource) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - if m.Binary != nil { - l = m.Binary.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.Dockerfile != nil { - l = len(*m.Dockerfile) - n += 1 + l + sovGenerated(uint64(l)) - } - if m.Git != nil { - l = m.Git.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.Images) > 0 { - for _, e := range m.Images { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.ContextDir) - n += 1 + l + sovGenerated(uint64(l)) - if m.SourceSecret != nil { - l = m.SourceSecret.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.Secrets) > 0 { - for _, e := range m.Secrets { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.ConfigMaps) > 0 { - for _, e := range m.ConfigMaps { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *BuildSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.CommonSpec.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.TriggeredBy) > 0 { - for _, e := range m.TriggeredBy { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *BuildStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Phase) - n += 1 + l + sovGenerated(uint64(l)) - n += 2 - l = len(m.Reason) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - if m.StartTimestamp != nil { - l = m.StartTimestamp.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.CompletionTimestamp != nil { - l = m.CompletionTimestamp.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - n += 1 + sovGenerated(uint64(m.Duration)) - l = len(m.OutputDockerImageReference) - n += 1 + l + sovGenerated(uint64(l)) - if m.Config != nil { - l = m.Config.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - l = m.Output.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Stages) > 0 { - for _, e := range m.Stages { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.LogSnippet) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *BuildStatusOutput) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.To != nil { - l = m.To.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *BuildStatusOutputTo) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.ImageDigest) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *BuildStrategy) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - if m.DockerStrategy != nil { - l = m.DockerStrategy.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.SourceStrategy != nil { - l = m.SourceStrategy.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.CustomStrategy != nil { - l = m.CustomStrategy.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.JenkinsPipelineStrategy != nil { - l = m.JenkinsPipelineStrategy.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *BuildTriggerCause) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - if m.GenericWebHook != nil { - l = m.GenericWebHook.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.GitHubWebHook != nil { - l = m.GitHubWebHook.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.ImageChangeBuild != nil { - l = m.ImageChangeBuild.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.GitLabWebHook != nil { - l = m.GitLabWebHook.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.BitbucketWebHook != nil { - l = m.BitbucketWebHook.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *BuildTriggerPolicy) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - if m.GitHubWebHook != nil { - l = m.GitHubWebHook.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.GenericWebHook != nil { - l = m.GenericWebHook.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.ImageChange != nil { - l = m.ImageChange.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.GitLabWebHook != nil { - l = m.GitLabWebHook.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.BitbucketWebHook != nil { - l = m.BitbucketWebHook.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *CommonSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.ServiceAccount) - n += 1 + l + sovGenerated(uint64(l)) - l = m.Source.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.Revision != nil { - l = m.Revision.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - l = m.Strategy.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Output.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Resources.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.PostCommit.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.CompletionDeadlineSeconds != nil { - n += 1 + sovGenerated(uint64(*m.CompletionDeadlineSeconds)) - } - if m.NodeSelector != nil { - l = m.NodeSelector.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *CommonWebHookCause) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Revision != nil { - l = m.Revision.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - l = len(m.Secret) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ConfigMapBuildSource) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ConfigMap.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.DestinationDir) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *CustomBuildStrategy) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.From.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.PullSecret != nil { - l = m.PullSecret.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.Env) > 0 { - for _, e := range m.Env { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - n += 2 - n += 2 - if len(m.Secrets) > 0 { - for _, e := range m.Secrets { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.BuildAPIVersion) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *DockerBuildStrategy) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.From != nil { - l = m.From.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.PullSecret != nil { - l = m.PullSecret.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - n += 2 - if len(m.Env) > 0 { - for _, e := range m.Env { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - n += 2 - l = len(m.DockerfilePath) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.BuildArgs) > 0 { - for _, e := range m.BuildArgs { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if m.ImageOptimizationPolicy != nil { - l = len(*m.ImageOptimizationPolicy) - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *DockerStrategyOptions) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.BuildArgs) > 0 { - for _, e := range m.BuildArgs { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if m.NoCache != nil { - n += 2 - } - return n -} - -func (m *GenericWebHookCause) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Revision != nil { - l = m.Revision.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - l = len(m.Secret) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *GenericWebHookEvent) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - if m.Git != nil { - l = m.Git.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.Env) > 0 { - for _, e := range m.Env { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if m.DockerStrategyOptions != nil { - l = m.DockerStrategyOptions.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *GitBuildSource) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.URI) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Ref) - n += 1 + l + sovGenerated(uint64(l)) - l = m.ProxyConfig.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *GitHubWebHookCause) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Revision != nil { - l = m.Revision.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - l = len(m.Secret) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *GitInfo) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.GitBuildSource.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.GitSourceRevision.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Refs) > 0 { - for _, e := range m.Refs { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *GitLabWebHookCause) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.CommonWebHookCause.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *GitRefInfo) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.GitBuildSource.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.GitSourceRevision.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *GitSourceRevision) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Commit) - n += 1 + l + sovGenerated(uint64(l)) - l = m.Author.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Committer.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ImageChangeCause) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.ImageID) - n += 1 + l + sovGenerated(uint64(l)) - if m.FromRef != nil { - l = m.FromRef.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *ImageChangeTrigger) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.LastTriggeredImageID) - n += 1 + l + sovGenerated(uint64(l)) - if m.From != nil { - l = m.From.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - n += 2 - return n -} - -func (m *ImageLabel) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Value) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ImageSource) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.From.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Paths) > 0 { - for _, e := range m.Paths { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if m.PullSecret != nil { - l = m.PullSecret.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.As) > 0 { - for _, s := range m.As { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ImageSourcePath) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.SourcePath) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.DestinationDir) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *JenkinsPipelineBuildStrategy) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.JenkinsfilePath) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Jenkinsfile) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Env) > 0 { - for _, e := range m.Env { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m OptionalNodeSelector) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m) > 0 { - for k, v := range m { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - return n -} - -func (m *ProxyConfig) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.HTTPProxy != nil { - l = len(*m.HTTPProxy) - n += 1 + l + sovGenerated(uint64(l)) - } - if m.HTTPSProxy != nil { - l = len(*m.HTTPSProxy) - n += 1 + l + sovGenerated(uint64(l)) - } - if m.NoProxy != nil { - l = len(*m.NoProxy) - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *SecretBuildSource) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Secret.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.DestinationDir) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *SecretLocalReference) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *SecretSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.SecretSource.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.MountPath) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *SourceBuildStrategy) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.From.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.PullSecret != nil { - l = m.PullSecret.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.Env) > 0 { - for _, e := range m.Env { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.Scripts) - n += 1 + l + sovGenerated(uint64(l)) - if m.Incremental != nil { - n += 2 - } - n += 2 - return n -} - -func (m *SourceControlUser) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Email) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *SourceRevision) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - if m.Git != nil { - l = m.Git.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *SourceStrategyOptions) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Incremental != nil { - n += 2 - } - return n -} - -func (m *StageInfo) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = m.StartTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.DurationMilliseconds)) - if len(m.Steps) > 0 { - for _, e := range m.Steps { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *StepInfo) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = m.StartTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.DurationMilliseconds)) - return n -} - -func (m *WebHookTrigger) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Secret) - n += 1 + l + sovGenerated(uint64(l)) - n += 2 - if m.SecretReference != nil { - l = m.SecretReference.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *BinaryBuildRequestOptions) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&BinaryBuildRequestOptions{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `AsFile:` + fmt.Sprintf("%v", this.AsFile) + `,`, - `Commit:` + fmt.Sprintf("%v", this.Commit) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `AuthorName:` + fmt.Sprintf("%v", this.AuthorName) + `,`, - `AuthorEmail:` + fmt.Sprintf("%v", this.AuthorEmail) + `,`, - `CommitterName:` + fmt.Sprintf("%v", this.CommitterName) + `,`, - `CommitterEmail:` + fmt.Sprintf("%v", this.CommitterEmail) + `,`, - `}`, - }, "") - return s -} -func (this *BinaryBuildSource) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&BinaryBuildSource{`, - `AsFile:` + fmt.Sprintf("%v", this.AsFile) + `,`, - `}`, - }, "") - return s -} -func (this *BitbucketWebHookCause) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&BitbucketWebHookCause{`, - `CommonWebHookCause:` + strings.Replace(strings.Replace(this.CommonWebHookCause.String(), "CommonWebHookCause", "CommonWebHookCause", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *Build) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Build{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "BuildSpec", "BuildSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "BuildStatus", "BuildStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *BuildCondition) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&BuildCondition{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Status:` + fmt.Sprintf("%v", this.Status) + `,`, - `LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastTransitionTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, - `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastUpdateTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *BuildConfig) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&BuildConfig{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "BuildConfigSpec", "BuildConfigSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "BuildConfigStatus", "BuildConfigStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *BuildConfigList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]BuildConfig{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "BuildConfig", "BuildConfig", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&BuildConfigList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *BuildConfigSpec) String() string { - if this == nil { - return "nil" - } - repeatedStringForTriggers := "[]BuildTriggerPolicy{" - for _, f := range this.Triggers { - repeatedStringForTriggers += strings.Replace(strings.Replace(f.String(), "BuildTriggerPolicy", "BuildTriggerPolicy", 1), `&`, ``, 1) + "," - } - repeatedStringForTriggers += "}" - s := strings.Join([]string{`&BuildConfigSpec{`, - `Triggers:` + repeatedStringForTriggers + `,`, - `RunPolicy:` + fmt.Sprintf("%v", this.RunPolicy) + `,`, - `CommonSpec:` + strings.Replace(strings.Replace(this.CommonSpec.String(), "CommonSpec", "CommonSpec", 1), `&`, ``, 1) + `,`, - `SuccessfulBuildsHistoryLimit:` + valueToStringGenerated(this.SuccessfulBuildsHistoryLimit) + `,`, - `FailedBuildsHistoryLimit:` + valueToStringGenerated(this.FailedBuildsHistoryLimit) + `,`, - `}`, - }, "") - return s -} -func (this *BuildConfigStatus) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&BuildConfigStatus{`, - `LastVersion:` + fmt.Sprintf("%v", this.LastVersion) + `,`, - `}`, - }, "") - return s -} -func (this *BuildList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]Build{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Build", "Build", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&BuildList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *BuildLog) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&BuildLog{`, - `}`, - }, "") - return s -} -func (this *BuildLogOptions) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&BuildLogOptions{`, - `Container:` + fmt.Sprintf("%v", this.Container) + `,`, - `Follow:` + fmt.Sprintf("%v", this.Follow) + `,`, - `Previous:` + fmt.Sprintf("%v", this.Previous) + `,`, - `SinceSeconds:` + valueToStringGenerated(this.SinceSeconds) + `,`, - `SinceTime:` + strings.Replace(fmt.Sprintf("%v", this.SinceTime), "Time", "v1.Time", 1) + `,`, - `Timestamps:` + fmt.Sprintf("%v", this.Timestamps) + `,`, - `TailLines:` + valueToStringGenerated(this.TailLines) + `,`, - `LimitBytes:` + valueToStringGenerated(this.LimitBytes) + `,`, - `NoWait:` + fmt.Sprintf("%v", this.NoWait) + `,`, - `Version:` + valueToStringGenerated(this.Version) + `,`, - `InsecureSkipTLSVerifyBackend:` + fmt.Sprintf("%v", this.InsecureSkipTLSVerifyBackend) + `,`, - `}`, - }, "") - return s -} -func (this *BuildOutput) String() string { - if this == nil { - return "nil" - } - repeatedStringForImageLabels := "[]ImageLabel{" - for _, f := range this.ImageLabels { - repeatedStringForImageLabels += strings.Replace(strings.Replace(f.String(), "ImageLabel", "ImageLabel", 1), `&`, ``, 1) + "," - } - repeatedStringForImageLabels += "}" - s := strings.Join([]string{`&BuildOutput{`, - `To:` + strings.Replace(fmt.Sprintf("%v", this.To), "ObjectReference", "v11.ObjectReference", 1) + `,`, - `PushSecret:` + strings.Replace(fmt.Sprintf("%v", this.PushSecret), "LocalObjectReference", "v11.LocalObjectReference", 1) + `,`, - `ImageLabels:` + repeatedStringForImageLabels + `,`, - `}`, - }, "") - return s -} -func (this *BuildPostCommitSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&BuildPostCommitSpec{`, - `Command:` + fmt.Sprintf("%v", this.Command) + `,`, - `Args:` + fmt.Sprintf("%v", this.Args) + `,`, - `Script:` + fmt.Sprintf("%v", this.Script) + `,`, - `}`, - }, "") - return s -} -func (this *BuildRequest) String() string { - if this == nil { - return "nil" - } - repeatedStringForEnv := "[]EnvVar{" - for _, f := range this.Env { - repeatedStringForEnv += fmt.Sprintf("%v", f) + "," - } - repeatedStringForEnv += "}" - repeatedStringForTriggeredBy := "[]BuildTriggerCause{" - for _, f := range this.TriggeredBy { - repeatedStringForTriggeredBy += strings.Replace(strings.Replace(f.String(), "BuildTriggerCause", "BuildTriggerCause", 1), `&`, ``, 1) + "," - } - repeatedStringForTriggeredBy += "}" - s := strings.Join([]string{`&BuildRequest{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Revision:` + strings.Replace(this.Revision.String(), "SourceRevision", "SourceRevision", 1) + `,`, - `TriggeredByImage:` + strings.Replace(fmt.Sprintf("%v", this.TriggeredByImage), "ObjectReference", "v11.ObjectReference", 1) + `,`, - `From:` + strings.Replace(fmt.Sprintf("%v", this.From), "ObjectReference", "v11.ObjectReference", 1) + `,`, - `Binary:` + strings.Replace(this.Binary.String(), "BinaryBuildSource", "BinaryBuildSource", 1) + `,`, - `LastVersion:` + valueToStringGenerated(this.LastVersion) + `,`, - `Env:` + repeatedStringForEnv + `,`, - `TriggeredBy:` + repeatedStringForTriggeredBy + `,`, - `DockerStrategyOptions:` + strings.Replace(this.DockerStrategyOptions.String(), "DockerStrategyOptions", "DockerStrategyOptions", 1) + `,`, - `SourceStrategyOptions:` + strings.Replace(this.SourceStrategyOptions.String(), "SourceStrategyOptions", "SourceStrategyOptions", 1) + `,`, - `}`, - }, "") - return s -} -func (this *BuildSource) String() string { - if this == nil { - return "nil" - } - repeatedStringForImages := "[]ImageSource{" - for _, f := range this.Images { - repeatedStringForImages += strings.Replace(strings.Replace(f.String(), "ImageSource", "ImageSource", 1), `&`, ``, 1) + "," - } - repeatedStringForImages += "}" - repeatedStringForSecrets := "[]SecretBuildSource{" - for _, f := range this.Secrets { - repeatedStringForSecrets += strings.Replace(strings.Replace(f.String(), "SecretBuildSource", "SecretBuildSource", 1), `&`, ``, 1) + "," - } - repeatedStringForSecrets += "}" - repeatedStringForConfigMaps := "[]ConfigMapBuildSource{" - for _, f := range this.ConfigMaps { - repeatedStringForConfigMaps += strings.Replace(strings.Replace(f.String(), "ConfigMapBuildSource", "ConfigMapBuildSource", 1), `&`, ``, 1) + "," - } - repeatedStringForConfigMaps += "}" - s := strings.Join([]string{`&BuildSource{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Binary:` + strings.Replace(this.Binary.String(), "BinaryBuildSource", "BinaryBuildSource", 1) + `,`, - `Dockerfile:` + valueToStringGenerated(this.Dockerfile) + `,`, - `Git:` + strings.Replace(this.Git.String(), "GitBuildSource", "GitBuildSource", 1) + `,`, - `Images:` + repeatedStringForImages + `,`, - `ContextDir:` + fmt.Sprintf("%v", this.ContextDir) + `,`, - `SourceSecret:` + strings.Replace(fmt.Sprintf("%v", this.SourceSecret), "LocalObjectReference", "v11.LocalObjectReference", 1) + `,`, - `Secrets:` + repeatedStringForSecrets + `,`, - `ConfigMaps:` + repeatedStringForConfigMaps + `,`, - `}`, - }, "") - return s -} -func (this *BuildSpec) String() string { - if this == nil { - return "nil" - } - repeatedStringForTriggeredBy := "[]BuildTriggerCause{" - for _, f := range this.TriggeredBy { - repeatedStringForTriggeredBy += strings.Replace(strings.Replace(f.String(), "BuildTriggerCause", "BuildTriggerCause", 1), `&`, ``, 1) + "," - } - repeatedStringForTriggeredBy += "}" - s := strings.Join([]string{`&BuildSpec{`, - `CommonSpec:` + strings.Replace(strings.Replace(this.CommonSpec.String(), "CommonSpec", "CommonSpec", 1), `&`, ``, 1) + `,`, - `TriggeredBy:` + repeatedStringForTriggeredBy + `,`, - `}`, - }, "") - return s -} -func (this *BuildStatus) String() string { - if this == nil { - return "nil" - } - repeatedStringForStages := "[]StageInfo{" - for _, f := range this.Stages { - repeatedStringForStages += strings.Replace(strings.Replace(f.String(), "StageInfo", "StageInfo", 1), `&`, ``, 1) + "," - } - repeatedStringForStages += "}" - repeatedStringForConditions := "[]BuildCondition{" - for _, f := range this.Conditions { - repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "BuildCondition", "BuildCondition", 1), `&`, ``, 1) + "," - } - repeatedStringForConditions += "}" - s := strings.Join([]string{`&BuildStatus{`, - `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, - `Cancelled:` + fmt.Sprintf("%v", this.Cancelled) + `,`, - `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `StartTimestamp:` + strings.Replace(fmt.Sprintf("%v", this.StartTimestamp), "Time", "v1.Time", 1) + `,`, - `CompletionTimestamp:` + strings.Replace(fmt.Sprintf("%v", this.CompletionTimestamp), "Time", "v1.Time", 1) + `,`, - `Duration:` + fmt.Sprintf("%v", this.Duration) + `,`, - `OutputDockerImageReference:` + fmt.Sprintf("%v", this.OutputDockerImageReference) + `,`, - `Config:` + strings.Replace(fmt.Sprintf("%v", this.Config), "ObjectReference", "v11.ObjectReference", 1) + `,`, - `Output:` + strings.Replace(strings.Replace(this.Output.String(), "BuildStatusOutput", "BuildStatusOutput", 1), `&`, ``, 1) + `,`, - `Stages:` + repeatedStringForStages + `,`, - `LogSnippet:` + fmt.Sprintf("%v", this.LogSnippet) + `,`, - `Conditions:` + repeatedStringForConditions + `,`, - `}`, - }, "") - return s -} -func (this *BuildStatusOutput) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&BuildStatusOutput{`, - `To:` + strings.Replace(this.To.String(), "BuildStatusOutputTo", "BuildStatusOutputTo", 1) + `,`, - `}`, - }, "") - return s -} -func (this *BuildStatusOutputTo) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&BuildStatusOutputTo{`, - `ImageDigest:` + fmt.Sprintf("%v", this.ImageDigest) + `,`, - `}`, - }, "") - return s -} -func (this *BuildStrategy) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&BuildStrategy{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `DockerStrategy:` + strings.Replace(this.DockerStrategy.String(), "DockerBuildStrategy", "DockerBuildStrategy", 1) + `,`, - `SourceStrategy:` + strings.Replace(this.SourceStrategy.String(), "SourceBuildStrategy", "SourceBuildStrategy", 1) + `,`, - `CustomStrategy:` + strings.Replace(this.CustomStrategy.String(), "CustomBuildStrategy", "CustomBuildStrategy", 1) + `,`, - `JenkinsPipelineStrategy:` + strings.Replace(this.JenkinsPipelineStrategy.String(), "JenkinsPipelineBuildStrategy", "JenkinsPipelineBuildStrategy", 1) + `,`, - `}`, - }, "") - return s -} -func (this *BuildTriggerCause) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&BuildTriggerCause{`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `GenericWebHook:` + strings.Replace(this.GenericWebHook.String(), "GenericWebHookCause", "GenericWebHookCause", 1) + `,`, - `GitHubWebHook:` + strings.Replace(this.GitHubWebHook.String(), "GitHubWebHookCause", "GitHubWebHookCause", 1) + `,`, - `ImageChangeBuild:` + strings.Replace(this.ImageChangeBuild.String(), "ImageChangeCause", "ImageChangeCause", 1) + `,`, - `GitLabWebHook:` + strings.Replace(this.GitLabWebHook.String(), "GitLabWebHookCause", "GitLabWebHookCause", 1) + `,`, - `BitbucketWebHook:` + strings.Replace(this.BitbucketWebHook.String(), "BitbucketWebHookCause", "BitbucketWebHookCause", 1) + `,`, - `}`, - }, "") - return s -} -func (this *BuildTriggerPolicy) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&BuildTriggerPolicy{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `GitHubWebHook:` + strings.Replace(this.GitHubWebHook.String(), "WebHookTrigger", "WebHookTrigger", 1) + `,`, - `GenericWebHook:` + strings.Replace(this.GenericWebHook.String(), "WebHookTrigger", "WebHookTrigger", 1) + `,`, - `ImageChange:` + strings.Replace(this.ImageChange.String(), "ImageChangeTrigger", "ImageChangeTrigger", 1) + `,`, - `GitLabWebHook:` + strings.Replace(this.GitLabWebHook.String(), "WebHookTrigger", "WebHookTrigger", 1) + `,`, - `BitbucketWebHook:` + strings.Replace(this.BitbucketWebHook.String(), "WebHookTrigger", "WebHookTrigger", 1) + `,`, - `}`, - }, "") - return s -} -func (this *CommonSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CommonSpec{`, - `ServiceAccount:` + fmt.Sprintf("%v", this.ServiceAccount) + `,`, - `Source:` + strings.Replace(strings.Replace(this.Source.String(), "BuildSource", "BuildSource", 1), `&`, ``, 1) + `,`, - `Revision:` + strings.Replace(this.Revision.String(), "SourceRevision", "SourceRevision", 1) + `,`, - `Strategy:` + strings.Replace(strings.Replace(this.Strategy.String(), "BuildStrategy", "BuildStrategy", 1), `&`, ``, 1) + `,`, - `Output:` + strings.Replace(strings.Replace(this.Output.String(), "BuildOutput", "BuildOutput", 1), `&`, ``, 1) + `,`, - `Resources:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Resources), "ResourceRequirements", "v11.ResourceRequirements", 1), `&`, ``, 1) + `,`, - `PostCommit:` + strings.Replace(strings.Replace(this.PostCommit.String(), "BuildPostCommitSpec", "BuildPostCommitSpec", 1), `&`, ``, 1) + `,`, - `CompletionDeadlineSeconds:` + valueToStringGenerated(this.CompletionDeadlineSeconds) + `,`, - `NodeSelector:` + strings.Replace(fmt.Sprintf("%v", this.NodeSelector), "OptionalNodeSelector", "OptionalNodeSelector", 1) + `,`, - `}`, - }, "") - return s -} -func (this *CommonWebHookCause) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CommonWebHookCause{`, - `Revision:` + strings.Replace(this.Revision.String(), "SourceRevision", "SourceRevision", 1) + `,`, - `Secret:` + fmt.Sprintf("%v", this.Secret) + `,`, - `}`, - }, "") - return s -} -func (this *ConfigMapBuildSource) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ConfigMapBuildSource{`, - `ConfigMap:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ConfigMap), "LocalObjectReference", "v11.LocalObjectReference", 1), `&`, ``, 1) + `,`, - `DestinationDir:` + fmt.Sprintf("%v", this.DestinationDir) + `,`, - `}`, - }, "") - return s -} -func (this *CustomBuildStrategy) String() string { - if this == nil { - return "nil" - } - repeatedStringForEnv := "[]EnvVar{" - for _, f := range this.Env { - repeatedStringForEnv += fmt.Sprintf("%v", f) + "," - } - repeatedStringForEnv += "}" - repeatedStringForSecrets := "[]SecretSpec{" - for _, f := range this.Secrets { - repeatedStringForSecrets += strings.Replace(strings.Replace(f.String(), "SecretSpec", "SecretSpec", 1), `&`, ``, 1) + "," - } - repeatedStringForSecrets += "}" - s := strings.Join([]string{`&CustomBuildStrategy{`, - `From:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.From), "ObjectReference", "v11.ObjectReference", 1), `&`, ``, 1) + `,`, - `PullSecret:` + strings.Replace(fmt.Sprintf("%v", this.PullSecret), "LocalObjectReference", "v11.LocalObjectReference", 1) + `,`, - `Env:` + repeatedStringForEnv + `,`, - `ExposeDockerSocket:` + fmt.Sprintf("%v", this.ExposeDockerSocket) + `,`, - `ForcePull:` + fmt.Sprintf("%v", this.ForcePull) + `,`, - `Secrets:` + repeatedStringForSecrets + `,`, - `BuildAPIVersion:` + fmt.Sprintf("%v", this.BuildAPIVersion) + `,`, - `}`, - }, "") - return s -} -func (this *DockerBuildStrategy) String() string { - if this == nil { - return "nil" - } - repeatedStringForEnv := "[]EnvVar{" - for _, f := range this.Env { - repeatedStringForEnv += fmt.Sprintf("%v", f) + "," - } - repeatedStringForEnv += "}" - repeatedStringForBuildArgs := "[]EnvVar{" - for _, f := range this.BuildArgs { - repeatedStringForBuildArgs += fmt.Sprintf("%v", f) + "," - } - repeatedStringForBuildArgs += "}" - s := strings.Join([]string{`&DockerBuildStrategy{`, - `From:` + strings.Replace(fmt.Sprintf("%v", this.From), "ObjectReference", "v11.ObjectReference", 1) + `,`, - `PullSecret:` + strings.Replace(fmt.Sprintf("%v", this.PullSecret), "LocalObjectReference", "v11.LocalObjectReference", 1) + `,`, - `NoCache:` + fmt.Sprintf("%v", this.NoCache) + `,`, - `Env:` + repeatedStringForEnv + `,`, - `ForcePull:` + fmt.Sprintf("%v", this.ForcePull) + `,`, - `DockerfilePath:` + fmt.Sprintf("%v", this.DockerfilePath) + `,`, - `BuildArgs:` + repeatedStringForBuildArgs + `,`, - `ImageOptimizationPolicy:` + valueToStringGenerated(this.ImageOptimizationPolicy) + `,`, - `}`, - }, "") - return s -} -func (this *DockerStrategyOptions) String() string { - if this == nil { - return "nil" - } - repeatedStringForBuildArgs := "[]EnvVar{" - for _, f := range this.BuildArgs { - repeatedStringForBuildArgs += fmt.Sprintf("%v", f) + "," - } - repeatedStringForBuildArgs += "}" - s := strings.Join([]string{`&DockerStrategyOptions{`, - `BuildArgs:` + repeatedStringForBuildArgs + `,`, - `NoCache:` + valueToStringGenerated(this.NoCache) + `,`, - `}`, - }, "") - return s -} -func (this *GenericWebHookCause) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&GenericWebHookCause{`, - `Revision:` + strings.Replace(this.Revision.String(), "SourceRevision", "SourceRevision", 1) + `,`, - `Secret:` + fmt.Sprintf("%v", this.Secret) + `,`, - `}`, - }, "") - return s -} -func (this *GenericWebHookEvent) String() string { - if this == nil { - return "nil" - } - repeatedStringForEnv := "[]EnvVar{" - for _, f := range this.Env { - repeatedStringForEnv += fmt.Sprintf("%v", f) + "," - } - repeatedStringForEnv += "}" - s := strings.Join([]string{`&GenericWebHookEvent{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Git:` + strings.Replace(this.Git.String(), "GitInfo", "GitInfo", 1) + `,`, - `Env:` + repeatedStringForEnv + `,`, - `DockerStrategyOptions:` + strings.Replace(this.DockerStrategyOptions.String(), "DockerStrategyOptions", "DockerStrategyOptions", 1) + `,`, - `}`, - }, "") - return s -} -func (this *GitBuildSource) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&GitBuildSource{`, - `URI:` + fmt.Sprintf("%v", this.URI) + `,`, - `Ref:` + fmt.Sprintf("%v", this.Ref) + `,`, - `ProxyConfig:` + strings.Replace(strings.Replace(this.ProxyConfig.String(), "ProxyConfig", "ProxyConfig", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *GitHubWebHookCause) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&GitHubWebHookCause{`, - `Revision:` + strings.Replace(this.Revision.String(), "SourceRevision", "SourceRevision", 1) + `,`, - `Secret:` + fmt.Sprintf("%v", this.Secret) + `,`, - `}`, - }, "") - return s -} -func (this *GitInfo) String() string { - if this == nil { - return "nil" - } - repeatedStringForRefs := "[]GitRefInfo{" - for _, f := range this.Refs { - repeatedStringForRefs += strings.Replace(strings.Replace(f.String(), "GitRefInfo", "GitRefInfo", 1), `&`, ``, 1) + "," - } - repeatedStringForRefs += "}" - s := strings.Join([]string{`&GitInfo{`, - `GitBuildSource:` + strings.Replace(strings.Replace(this.GitBuildSource.String(), "GitBuildSource", "GitBuildSource", 1), `&`, ``, 1) + `,`, - `GitSourceRevision:` + strings.Replace(strings.Replace(this.GitSourceRevision.String(), "GitSourceRevision", "GitSourceRevision", 1), `&`, ``, 1) + `,`, - `Refs:` + repeatedStringForRefs + `,`, - `}`, - }, "") - return s -} -func (this *GitLabWebHookCause) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&GitLabWebHookCause{`, - `CommonWebHookCause:` + strings.Replace(strings.Replace(this.CommonWebHookCause.String(), "CommonWebHookCause", "CommonWebHookCause", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *GitRefInfo) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&GitRefInfo{`, - `GitBuildSource:` + strings.Replace(strings.Replace(this.GitBuildSource.String(), "GitBuildSource", "GitBuildSource", 1), `&`, ``, 1) + `,`, - `GitSourceRevision:` + strings.Replace(strings.Replace(this.GitSourceRevision.String(), "GitSourceRevision", "GitSourceRevision", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *GitSourceRevision) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&GitSourceRevision{`, - `Commit:` + fmt.Sprintf("%v", this.Commit) + `,`, - `Author:` + strings.Replace(strings.Replace(this.Author.String(), "SourceControlUser", "SourceControlUser", 1), `&`, ``, 1) + `,`, - `Committer:` + strings.Replace(strings.Replace(this.Committer.String(), "SourceControlUser", "SourceControlUser", 1), `&`, ``, 1) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `}`, - }, "") - return s -} -func (this *ImageChangeCause) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ImageChangeCause{`, - `ImageID:` + fmt.Sprintf("%v", this.ImageID) + `,`, - `FromRef:` + strings.Replace(fmt.Sprintf("%v", this.FromRef), "ObjectReference", "v11.ObjectReference", 1) + `,`, - `}`, - }, "") - return s -} -func (this *ImageChangeTrigger) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ImageChangeTrigger{`, - `LastTriggeredImageID:` + fmt.Sprintf("%v", this.LastTriggeredImageID) + `,`, - `From:` + strings.Replace(fmt.Sprintf("%v", this.From), "ObjectReference", "v11.ObjectReference", 1) + `,`, - `Paused:` + fmt.Sprintf("%v", this.Paused) + `,`, - `}`, - }, "") - return s -} -func (this *ImageLabel) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ImageLabel{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `Value:` + fmt.Sprintf("%v", this.Value) + `,`, - `}`, - }, "") - return s -} -func (this *ImageSource) String() string { - if this == nil { - return "nil" - } - repeatedStringForPaths := "[]ImageSourcePath{" - for _, f := range this.Paths { - repeatedStringForPaths += strings.Replace(strings.Replace(f.String(), "ImageSourcePath", "ImageSourcePath", 1), `&`, ``, 1) + "," - } - repeatedStringForPaths += "}" - s := strings.Join([]string{`&ImageSource{`, - `From:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.From), "ObjectReference", "v11.ObjectReference", 1), `&`, ``, 1) + `,`, - `Paths:` + repeatedStringForPaths + `,`, - `PullSecret:` + strings.Replace(fmt.Sprintf("%v", this.PullSecret), "LocalObjectReference", "v11.LocalObjectReference", 1) + `,`, - `As:` + fmt.Sprintf("%v", this.As) + `,`, - `}`, - }, "") - return s -} -func (this *ImageSourcePath) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ImageSourcePath{`, - `SourcePath:` + fmt.Sprintf("%v", this.SourcePath) + `,`, - `DestinationDir:` + fmt.Sprintf("%v", this.DestinationDir) + `,`, - `}`, - }, "") - return s -} -func (this *JenkinsPipelineBuildStrategy) String() string { - if this == nil { - return "nil" - } - repeatedStringForEnv := "[]EnvVar{" - for _, f := range this.Env { - repeatedStringForEnv += fmt.Sprintf("%v", f) + "," - } - repeatedStringForEnv += "}" - s := strings.Join([]string{`&JenkinsPipelineBuildStrategy{`, - `JenkinsfilePath:` + fmt.Sprintf("%v", this.JenkinsfilePath) + `,`, - `Jenkinsfile:` + fmt.Sprintf("%v", this.Jenkinsfile) + `,`, - `Env:` + repeatedStringForEnv + `,`, - `}`, - }, "") - return s -} -func (this *ProxyConfig) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ProxyConfig{`, - `HTTPProxy:` + valueToStringGenerated(this.HTTPProxy) + `,`, - `HTTPSProxy:` + valueToStringGenerated(this.HTTPSProxy) + `,`, - `NoProxy:` + valueToStringGenerated(this.NoProxy) + `,`, - `}`, - }, "") - return s -} -func (this *SecretBuildSource) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SecretBuildSource{`, - `Secret:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Secret), "LocalObjectReference", "v11.LocalObjectReference", 1), `&`, ``, 1) + `,`, - `DestinationDir:` + fmt.Sprintf("%v", this.DestinationDir) + `,`, - `}`, - }, "") - return s -} -func (this *SecretLocalReference) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SecretLocalReference{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `}`, - }, "") - return s -} -func (this *SecretSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SecretSpec{`, - `SecretSource:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.SecretSource), "LocalObjectReference", "v11.LocalObjectReference", 1), `&`, ``, 1) + `,`, - `MountPath:` + fmt.Sprintf("%v", this.MountPath) + `,`, - `}`, - }, "") - return s -} -func (this *SourceBuildStrategy) String() string { - if this == nil { - return "nil" - } - repeatedStringForEnv := "[]EnvVar{" - for _, f := range this.Env { - repeatedStringForEnv += fmt.Sprintf("%v", f) + "," - } - repeatedStringForEnv += "}" - s := strings.Join([]string{`&SourceBuildStrategy{`, - `From:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.From), "ObjectReference", "v11.ObjectReference", 1), `&`, ``, 1) + `,`, - `PullSecret:` + strings.Replace(fmt.Sprintf("%v", this.PullSecret), "LocalObjectReference", "v11.LocalObjectReference", 1) + `,`, - `Env:` + repeatedStringForEnv + `,`, - `Scripts:` + fmt.Sprintf("%v", this.Scripts) + `,`, - `Incremental:` + valueToStringGenerated(this.Incremental) + `,`, - `ForcePull:` + fmt.Sprintf("%v", this.ForcePull) + `,`, - `}`, - }, "") - return s -} -func (this *SourceControlUser) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SourceControlUser{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `Email:` + fmt.Sprintf("%v", this.Email) + `,`, - `}`, - }, "") - return s -} -func (this *SourceRevision) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SourceRevision{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Git:` + strings.Replace(this.Git.String(), "GitSourceRevision", "GitSourceRevision", 1) + `,`, - `}`, - }, "") - return s -} -func (this *SourceStrategyOptions) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SourceStrategyOptions{`, - `Incremental:` + valueToStringGenerated(this.Incremental) + `,`, - `}`, - }, "") - return s -} -func (this *StageInfo) String() string { - if this == nil { - return "nil" - } - repeatedStringForSteps := "[]StepInfo{" - for _, f := range this.Steps { - repeatedStringForSteps += strings.Replace(strings.Replace(f.String(), "StepInfo", "StepInfo", 1), `&`, ``, 1) + "," - } - repeatedStringForSteps += "}" - s := strings.Join([]string{`&StageInfo{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `StartTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.StartTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, - `DurationMilliseconds:` + fmt.Sprintf("%v", this.DurationMilliseconds) + `,`, - `Steps:` + repeatedStringForSteps + `,`, - `}`, - }, "") - return s -} -func (this *StepInfo) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&StepInfo{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `StartTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.StartTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, - `DurationMilliseconds:` + fmt.Sprintf("%v", this.DurationMilliseconds) + `,`, - `}`, - }, "") - return s -} -func (this *WebHookTrigger) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&WebHookTrigger{`, - `Secret:` + fmt.Sprintf("%v", this.Secret) + `,`, - `AllowEnv:` + fmt.Sprintf("%v", this.AllowEnv) + `,`, - `SecretReference:` + strings.Replace(this.SecretReference.String(), "SecretLocalReference", "SecretLocalReference", 1) + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *BinaryBuildRequestOptions) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BinaryBuildRequestOptions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BinaryBuildRequestOptions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AsFile", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AsFile = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Commit", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Commit = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AuthorName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AuthorName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AuthorEmail", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AuthorEmail = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CommitterName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.CommitterName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CommitterEmail", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.CommitterEmail = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BinaryBuildSource) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BinaryBuildSource: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BinaryBuildSource: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AsFile", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AsFile = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BitbucketWebHookCause) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BitbucketWebHookCause: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BitbucketWebHookCause: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CommonWebHookCause", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.CommonWebHookCause.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Build) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Build: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Build: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildCondition) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildCondition: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildCondition: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = BuildConditionType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Reason = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildConfig) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildConfig: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildConfig: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildConfigList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildConfigList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildConfigList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, BuildConfig{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildConfigSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildConfigSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildConfigSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Triggers", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Triggers = append(m.Triggers, BuildTriggerPolicy{}) - if err := m.Triggers[len(m.Triggers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunPolicy", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RunPolicy = BuildRunPolicy(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CommonSpec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.CommonSpec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field SuccessfulBuildsHistoryLimit", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.SuccessfulBuildsHistoryLimit = &v - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FailedBuildsHistoryLimit", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.FailedBuildsHistoryLimit = &v - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildConfigStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildConfigStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildConfigStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field LastVersion", wireType) - } - m.LastVersion = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.LastVersion |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, Build{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildLog) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildLog: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildLog: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildLogOptions) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildLogOptions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildLogOptions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Container", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Container = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Follow", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Follow = bool(v != 0) - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Previous", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Previous = bool(v != 0) - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field SinceSeconds", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.SinceSeconds = &v - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SinceTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.SinceTime == nil { - m.SinceTime = &v1.Time{} - } - if err := m.SinceTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Timestamps", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Timestamps = bool(v != 0) - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TailLines", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.TailLines = &v - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field LimitBytes", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.LimitBytes = &v - case 9: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NoWait", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.NoWait = bool(v != 0) - case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Version = &v - case 11: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field InsecureSkipTLSVerifyBackend", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.InsecureSkipTLSVerifyBackend = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildOutput) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildOutput: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildOutput: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field To", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.To == nil { - m.To = &v11.ObjectReference{} - } - if err := m.To.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PushSecret", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.PushSecret == nil { - m.PushSecret = &v11.LocalObjectReference{} - } - if err := m.PushSecret.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ImageLabels", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ImageLabels = append(m.ImageLabels, ImageLabel{}) - if err := m.ImageLabels[len(m.ImageLabels)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildPostCommitSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildPostCommitSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildPostCommitSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Command", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Command = append(m.Command, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Args", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Args = append(m.Args, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Script", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Script = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Revision == nil { - m.Revision = &SourceRevision{} - } - if err := m.Revision.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TriggeredByImage", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.TriggeredByImage == nil { - m.TriggeredByImage = &v11.ObjectReference{} - } - if err := m.TriggeredByImage.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field From", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.From == nil { - m.From = &v11.ObjectReference{} - } - if err := m.From.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Binary", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Binary == nil { - m.Binary = &BinaryBuildSource{} - } - if err := m.Binary.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field LastVersion", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.LastVersion = &v - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Env", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Env = append(m.Env, v11.EnvVar{}) - if err := m.Env[len(m.Env)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TriggeredBy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.TriggeredBy = append(m.TriggeredBy, BuildTriggerCause{}) - if err := m.TriggeredBy[len(m.TriggeredBy)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DockerStrategyOptions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.DockerStrategyOptions == nil { - m.DockerStrategyOptions = &DockerStrategyOptions{} - } - if err := m.DockerStrategyOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SourceStrategyOptions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.SourceStrategyOptions == nil { - m.SourceStrategyOptions = &SourceStrategyOptions{} - } - if err := m.SourceStrategyOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildSource) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildSource: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildSource: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = BuildSourceType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Binary", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Binary == nil { - m.Binary = &BinaryBuildSource{} - } - if err := m.Binary.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Dockerfile", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Dockerfile = &s - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Git", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Git == nil { - m.Git = &GitBuildSource{} - } - if err := m.Git.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Images", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Images = append(m.Images, ImageSource{}) - if err := m.Images[len(m.Images)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ContextDir", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ContextDir = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SourceSecret", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.SourceSecret == nil { - m.SourceSecret = &v11.LocalObjectReference{} - } - if err := m.SourceSecret.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Secrets", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Secrets = append(m.Secrets, SecretBuildSource{}) - if err := m.Secrets[len(m.Secrets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ConfigMaps", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ConfigMaps = append(m.ConfigMaps, ConfigMapBuildSource{}) - if err := m.ConfigMaps[len(m.ConfigMaps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CommonSpec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.CommonSpec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TriggeredBy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.TriggeredBy = append(m.TriggeredBy, BuildTriggerCause{}) - if err := m.TriggeredBy[len(m.TriggeredBy)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Phase = BuildPhase(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Cancelled", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Cancelled = bool(v != 0) - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Reason = StatusReason(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartTimestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.StartTimestamp == nil { - m.StartTimestamp = &v1.Time{} - } - if err := m.StartTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CompletionTimestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.CompletionTimestamp == nil { - m.CompletionTimestamp = &v1.Time{} - } - if err := m.CompletionTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) - } - m.Duration = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Duration |= time.Duration(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OutputDockerImageReference", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.OutputDockerImageReference = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Config == nil { - m.Config = &v11.ObjectReference{} - } - if err := m.Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Output", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Output.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Stages", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Stages = append(m.Stages, StageInfo{}) - if err := m.Stages[len(m.Stages)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LogSnippet", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.LogSnippet = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Conditions = append(m.Conditions, BuildCondition{}) - if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildStatusOutput) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildStatusOutput: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildStatusOutput: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field To", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.To == nil { - m.To = &BuildStatusOutputTo{} - } - if err := m.To.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildStatusOutputTo) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildStatusOutputTo: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildStatusOutputTo: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ImageDigest", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ImageDigest = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildStrategy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildStrategy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildStrategy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = BuildStrategyType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DockerStrategy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.DockerStrategy == nil { - m.DockerStrategy = &DockerBuildStrategy{} - } - if err := m.DockerStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SourceStrategy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.SourceStrategy == nil { - m.SourceStrategy = &SourceBuildStrategy{} - } - if err := m.SourceStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CustomStrategy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.CustomStrategy == nil { - m.CustomStrategy = &CustomBuildStrategy{} - } - if err := m.CustomStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JenkinsPipelineStrategy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.JenkinsPipelineStrategy == nil { - m.JenkinsPipelineStrategy = &JenkinsPipelineBuildStrategy{} - } - if err := m.JenkinsPipelineStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildTriggerCause) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildTriggerCause: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildTriggerCause: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GenericWebHook", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.GenericWebHook == nil { - m.GenericWebHook = &GenericWebHookCause{} - } - if err := m.GenericWebHook.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GitHubWebHook", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.GitHubWebHook == nil { - m.GitHubWebHook = &GitHubWebHookCause{} - } - if err := m.GitHubWebHook.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ImageChangeBuild", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.ImageChangeBuild == nil { - m.ImageChangeBuild = &ImageChangeCause{} - } - if err := m.ImageChangeBuild.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GitLabWebHook", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.GitLabWebHook == nil { - m.GitLabWebHook = &GitLabWebHookCause{} - } - if err := m.GitLabWebHook.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BitbucketWebHook", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.BitbucketWebHook == nil { - m.BitbucketWebHook = &BitbucketWebHookCause{} - } - if err := m.BitbucketWebHook.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BuildTriggerPolicy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BuildTriggerPolicy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BuildTriggerPolicy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = BuildTriggerType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GitHubWebHook", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.GitHubWebHook == nil { - m.GitHubWebHook = &WebHookTrigger{} - } - if err := m.GitHubWebHook.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GenericWebHook", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.GenericWebHook == nil { - m.GenericWebHook = &WebHookTrigger{} - } - if err := m.GenericWebHook.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ImageChange", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.ImageChange == nil { - m.ImageChange = &ImageChangeTrigger{} - } - if err := m.ImageChange.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GitLabWebHook", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.GitLabWebHook == nil { - m.GitLabWebHook = &WebHookTrigger{} - } - if err := m.GitLabWebHook.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BitbucketWebHook", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.BitbucketWebHook == nil { - m.BitbucketWebHook = &WebHookTrigger{} - } - if err := m.BitbucketWebHook.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CommonSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CommonSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CommonSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServiceAccount", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ServiceAccount = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Revision == nil { - m.Revision = &SourceRevision{} - } - if err := m.Revision.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Strategy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Strategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Output", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Output.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PostCommit", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.PostCommit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CompletionDeadlineSeconds", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.CompletionDeadlineSeconds = &v - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NodeSelector", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.NodeSelector == nil { - m.NodeSelector = OptionalNodeSelector{} - } - if err := m.NodeSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CommonWebHookCause) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CommonWebHookCause: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CommonWebHookCause: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Revision == nil { - m.Revision = &SourceRevision{} - } - if err := m.Revision.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Secret", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Secret = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ConfigMapBuildSource) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ConfigMapBuildSource: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ConfigMapBuildSource: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ConfigMap", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ConfigMap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DestinationDir", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DestinationDir = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomBuildStrategy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CustomBuildStrategy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomBuildStrategy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field From", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.From.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PullSecret", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.PullSecret == nil { - m.PullSecret = &v11.LocalObjectReference{} - } - if err := m.PullSecret.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Env", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Env = append(m.Env, v11.EnvVar{}) - if err := m.Env[len(m.Env)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ExposeDockerSocket", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.ExposeDockerSocket = bool(v != 0) - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ForcePull", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.ForcePull = bool(v != 0) - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Secrets", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Secrets = append(m.Secrets, SecretSpec{}) - if err := m.Secrets[len(m.Secrets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BuildAPIVersion", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.BuildAPIVersion = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DockerBuildStrategy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DockerBuildStrategy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DockerBuildStrategy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field From", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.From == nil { - m.From = &v11.ObjectReference{} - } - if err := m.From.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PullSecret", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.PullSecret == nil { - m.PullSecret = &v11.LocalObjectReference{} - } - if err := m.PullSecret.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NoCache", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.NoCache = bool(v != 0) - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Env", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Env = append(m.Env, v11.EnvVar{}) - if err := m.Env[len(m.Env)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ForcePull", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.ForcePull = bool(v != 0) - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DockerfilePath", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DockerfilePath = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BuildArgs", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.BuildArgs = append(m.BuildArgs, v11.EnvVar{}) - if err := m.BuildArgs[len(m.BuildArgs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ImageOptimizationPolicy", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := ImageOptimizationPolicy(dAtA[iNdEx:postIndex]) - m.ImageOptimizationPolicy = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DockerStrategyOptions) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DockerStrategyOptions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DockerStrategyOptions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BuildArgs", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.BuildArgs = append(m.BuildArgs, v11.EnvVar{}) - if err := m.BuildArgs[len(m.BuildArgs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NoCache", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.NoCache = &b - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GenericWebHookCause) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GenericWebHookCause: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GenericWebHookCause: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Revision == nil { - m.Revision = &SourceRevision{} - } - if err := m.Revision.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Secret", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Secret = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GenericWebHookEvent) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GenericWebHookEvent: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GenericWebHookEvent: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = BuildSourceType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Git", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Git == nil { - m.Git = &GitInfo{} - } - if err := m.Git.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Env", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Env = append(m.Env, v11.EnvVar{}) - if err := m.Env[len(m.Env)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DockerStrategyOptions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.DockerStrategyOptions == nil { - m.DockerStrategyOptions = &DockerStrategyOptions{} - } - if err := m.DockerStrategyOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GitBuildSource) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GitBuildSource: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GitBuildSource: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field URI", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.URI = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Ref", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Ref = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ProxyConfig", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ProxyConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GitHubWebHookCause) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GitHubWebHookCause: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GitHubWebHookCause: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Revision == nil { - m.Revision = &SourceRevision{} - } - if err := m.Revision.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Secret", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Secret = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GitInfo) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GitInfo: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GitInfo: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GitBuildSource", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.GitBuildSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GitSourceRevision", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.GitSourceRevision.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Refs", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Refs = append(m.Refs, GitRefInfo{}) - if err := m.Refs[len(m.Refs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GitLabWebHookCause) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GitLabWebHookCause: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GitLabWebHookCause: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CommonWebHookCause", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.CommonWebHookCause.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GitRefInfo) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GitRefInfo: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GitRefInfo: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GitBuildSource", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.GitBuildSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GitSourceRevision", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.GitSourceRevision.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GitSourceRevision) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GitSourceRevision: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GitSourceRevision: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Commit", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Commit = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Author", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Author.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Committer", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Committer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageChangeCause) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageChangeCause: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageChangeCause: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ImageID", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ImageID = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FromRef", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.FromRef == nil { - m.FromRef = &v11.ObjectReference{} - } - if err := m.FromRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageChangeTrigger) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageChangeTrigger: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageChangeTrigger: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastTriggeredImageID", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.LastTriggeredImageID = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field From", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.From == nil { - m.From = &v11.ObjectReference{} - } - if err := m.From.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Paused", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Paused = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageLabel) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageLabel: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageLabel: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Value = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageSource) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageSource: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageSource: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field From", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.From.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Paths", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Paths = append(m.Paths, ImageSourcePath{}) - if err := m.Paths[len(m.Paths)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PullSecret", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.PullSecret == nil { - m.PullSecret = &v11.LocalObjectReference{} - } - if err := m.PullSecret.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field As", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.As = append(m.As, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageSourcePath) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageSourcePath: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageSourcePath: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SourcePath", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.SourcePath = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DestinationDir", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DestinationDir = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *JenkinsPipelineBuildStrategy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: JenkinsPipelineBuildStrategy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: JenkinsPipelineBuildStrategy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field JenkinsfilePath", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.JenkinsfilePath = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Jenkinsfile", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Jenkinsfile = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Env", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Env = append(m.Env, v11.EnvVar{}) - if err := m.Env[len(m.Env)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OptionalNodeSelector) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: OptionalNodeSelector: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OptionalNodeSelector: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if *m == nil { - *m = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - (*m)[mapkey] = mapvalue - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ProxyConfig) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ProxyConfig: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ProxyConfig: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field HTTPProxy", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.HTTPProxy = &s - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field HTTPSProxy", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.HTTPSProxy = &s - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NoProxy", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.NoProxy = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SecretBuildSource) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SecretBuildSource: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SecretBuildSource: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Secret", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Secret.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DestinationDir", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DestinationDir = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SecretLocalReference) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SecretLocalReference: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SecretLocalReference: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SecretSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SecretSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SecretSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SecretSource", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.SecretSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MountPath", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MountPath = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SourceBuildStrategy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SourceBuildStrategy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SourceBuildStrategy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field From", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.From.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PullSecret", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.PullSecret == nil { - m.PullSecret = &v11.LocalObjectReference{} - } - if err := m.PullSecret.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Env", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Env = append(m.Env, v11.EnvVar{}) - if err := m.Env[len(m.Env)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Scripts", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Scripts = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Incremental", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Incremental = &b - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ForcePull", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.ForcePull = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SourceControlUser) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SourceControlUser: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SourceControlUser: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Email", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Email = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SourceRevision) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SourceRevision: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SourceRevision: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = BuildSourceType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Git", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Git == nil { - m.Git = &GitSourceRevision{} - } - if err := m.Git.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SourceStrategyOptions) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SourceStrategyOptions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SourceStrategyOptions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Incremental", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.Incremental = &b - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *StageInfo) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: StageInfo: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: StageInfo: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = StageName(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.StartTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field DurationMilliseconds", wireType) - } - m.DurationMilliseconds = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.DurationMilliseconds |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Steps", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Steps = append(m.Steps, StepInfo{}) - if err := m.Steps[len(m.Steps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *StepInfo) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: StepInfo: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: StepInfo: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = StepName(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.StartTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field DurationMilliseconds", wireType) - } - m.DurationMilliseconds = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.DurationMilliseconds |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *WebHookTrigger) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: WebHookTrigger: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: WebHookTrigger: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Secret", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Secret = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AllowEnv", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.AllowEnv = bool(v != 0) - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SecretReference", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.SecretReference == nil { - m.SecretReference = &SecretLocalReference{} - } - if err := m.SecretReference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/vendor/github.com/openshift/api/build/v1/generated.proto b/vendor/github.com/openshift/api/build/v1/generated.proto deleted file mode 100644 index 52910663fd94c..0000000000000 --- a/vendor/github.com/openshift/api/build/v1/generated.proto +++ /dev/null @@ -1,1058 +0,0 @@ - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = 'proto2'; - -package github.com.openshift.api.build.v1; - -import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v1"; - -// BinaryBuildRequestOptions are the options required to fully speficy a binary build request -message BinaryBuildRequestOptions { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // asFile determines if the binary should be created as a file within the source rather than extracted as an archive - optional string asFile = 2; - - // revision.commit is the value identifying a specific commit - optional string revisionCommit = 3; - - // revision.message is the description of a specific commit - optional string revisionMessage = 4; - - // revision.authorName of the source control user - optional string revisionAuthorName = 5; - - // revision.authorEmail of the source control user - optional string revisionAuthorEmail = 6; - - // revision.committerName of the source control user - optional string revisionCommitterName = 7; - - // revision.committerEmail of the source control user - optional string revisionCommitterEmail = 8; -} - -// BinaryBuildSource describes a binary file to be used for the Docker and Source build strategies, -// where the file will be extracted and used as the build source. -message BinaryBuildSource { - // asFile indicates that the provided binary input should be considered a single file - // within the build input. For example, specifying "webapp.war" would place the provided - // binary as `/webapp.war` for the builder. If left empty, the Docker and Source build - // strategies assume this file is a zip, tar, or tar.gz file and extract it as the source. - // The custom strategy receives this binary as standard input. This filename may not - // contain slashes or be '..' or '.'. - optional string asFile = 1; -} - -// BitbucketWebHookCause has information about a Bitbucket webhook that triggered a -// build. -message BitbucketWebHookCause { - optional CommonWebHookCause commonSpec = 1; -} - -// Build encapsulates the inputs needed to produce a new deployable image, as well as -// the status of the execution and a reference to the Pod which executed the build. -message Build { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // spec is all the inputs used to execute the build. - optional BuildSpec spec = 2; - - // status is the current status of the build. - // +optional - optional BuildStatus status = 3; -} - -// BuildCondition describes the state of a build at a certain point. -message BuildCondition { - // Type of build condition. - optional string type = 1; - - // Status of the condition, one of True, False, Unknown. - optional string status = 2; - - // The last time this condition was updated. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 6; - - // The last time the condition transitioned from one status to another. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; - - // The reason for the condition's last transition. - optional string reason = 4; - - // A human readable message indicating details about the transition. - optional string message = 5; -} - -// Build configurations define a build process for new container images. There are three types of builds possible - a container image build using a Dockerfile, a Source-to-Image build that uses a specially prepared base image that accepts source code that it can make runnable, and a custom build that can run // arbitrary container images as a base and accept the build parameters. Builds run on the cluster and on completion are pushed to the container image registry specified in the "output" section. A build can be triggered via a webhook, when the base image changes, or when a user manually requests a new build be // created. -// -// Each build created by a build configuration is numbered and refers back to its parent configuration. Multiple builds can be triggered at once. Builds that do not have "output" set can be used to test code or run a verification build. -message BuildConfig { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // spec holds all the input necessary to produce a new build, and the conditions when - // to trigger them. - optional BuildConfigSpec spec = 2; - - // status holds any relevant information about a build config - // +optional - optional BuildConfigStatus status = 3; -} - -// BuildConfigList is a collection of BuildConfigs. -message BuildConfigList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // items is a list of build configs - repeated BuildConfig items = 2; -} - -// BuildConfigSpec describes when and how builds are created -message BuildConfigSpec { - // triggers determine how new Builds can be launched from a BuildConfig. If - // no triggers are defined, a new build can only occur as a result of an - // explicit client build creation. - // +optional - repeated BuildTriggerPolicy triggers = 1; - - // RunPolicy describes how the new build created from this build - // configuration will be scheduled for execution. - // This is optional, if not specified we default to "Serial". - optional string runPolicy = 2; - - // CommonSpec is the desired build specification - optional CommonSpec commonSpec = 3; - - // successfulBuildsHistoryLimit is the number of old successful builds to retain. - // When a BuildConfig is created, the 5 most recent successful builds are retained unless this value is set. - // If removed after the BuildConfig has been created, all successful builds are retained. - optional int32 successfulBuildsHistoryLimit = 4; - - // failedBuildsHistoryLimit is the number of old failed builds to retain. - // When a BuildConfig is created, the 5 most recent failed builds are retained unless this value is set. - // If removed after the BuildConfig has been created, all failed builds are retained. - optional int32 failedBuildsHistoryLimit = 5; -} - -// BuildConfigStatus contains current state of the build config object. -message BuildConfigStatus { - // lastVersion is used to inform about number of last triggered build. - optional int64 lastVersion = 1; -} - -// BuildList is a collection of Builds. -message BuildList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // items is a list of builds - repeated Build items = 2; -} - -// BuildLog is the (unused) resource associated with the build log redirector -message BuildLog { -} - -// BuildLogOptions is the REST options for a build log -message BuildLogOptions { - // cointainer for which to stream logs. Defaults to only container if there is one container in the pod. - optional string container = 1; - - // follow if true indicates that the build log should be streamed until - // the build terminates. - optional bool follow = 2; - - // previous returns previous build logs. Defaults to false. - optional bool previous = 3; - - // sinceSeconds is a relative time in seconds before the current time from which to show logs. If this value - // precedes the time a pod was started, only logs since the pod start will be returned. - // If this value is in the future, no logs will be returned. - // Only one of sinceSeconds or sinceTime may be specified. - optional int64 sinceSeconds = 4; - - // sinceTime is an RFC3339 timestamp from which to show logs. If this value - // precedes the time a pod was started, only logs since the pod start will be returned. - // If this value is in the future, no logs will be returned. - // Only one of sinceSeconds or sinceTime may be specified. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5; - - // timestamps, If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line - // of log output. Defaults to false. - optional bool timestamps = 6; - - // tailLines, If set, is the number of lines from the end of the logs to show. If not specified, - // logs are shown from the creation of the container or sinceSeconds or sinceTime - optional int64 tailLines = 7; - - // limitBytes, If set, is the number of bytes to read from the server before terminating the - // log output. This may not display a complete final line of logging, and may return - // slightly more or slightly less than the specified limit. - optional int64 limitBytes = 8; - - // noWait if true causes the call to return immediately even if the build - // is not available yet. Otherwise the server will wait until the build has started. - // TODO: Fix the tag to 'noWait' in v2 - optional bool nowait = 9; - - // version of the build for which to view logs. - optional int64 version = 10; - - // insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the - // serving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver - // and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real - // kubelet. If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the - // connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept - // the actual log data coming from the real kubelet). - // +optional - optional bool insecureSkipTLSVerifyBackend = 11; -} - -// BuildOutput is input to a build strategy and describes the container image that the strategy -// should produce. -message BuildOutput { - // to defines an optional location to push the output of this build to. - // Kind must be one of 'ImageStreamTag' or 'DockerImage'. - // This value will be used to look up a container image repository to push to. - // In the case of an ImageStreamTag, the ImageStreamTag will be looked for in the namespace of - // the build unless Namespace is specified. - optional k8s.io.api.core.v1.ObjectReference to = 1; - - // PushSecret is the name of a Secret that would be used for setting - // up the authentication for executing the Docker push to authentication - // enabled Docker Registry (or Docker Hub). - optional k8s.io.api.core.v1.LocalObjectReference pushSecret = 2; - - // imageLabels define a list of labels that are applied to the resulting image. If there - // are multiple labels with the same name then the last one in the list is used. - repeated ImageLabel imageLabels = 3; -} - -// A BuildPostCommitSpec holds a build post commit hook specification. The hook -// executes a command in a temporary container running the build output image, -// immediately after the last layer of the image is committed and before the -// image is pushed to a registry. The command is executed with the current -// working directory ($PWD) set to the image's WORKDIR. -// -// The build will be marked as failed if the hook execution fails. It will fail -// if the script or command return a non-zero exit code, or if there is any -// other error related to starting the temporary container. -// -// There are five different ways to configure the hook. As an example, all forms -// below are equivalent and will execute `rake test --verbose`. -// -// 1. Shell script: -// -// "postCommit": { -// "script": "rake test --verbose", -// } -// -// The above is a convenient form which is equivalent to: -// -// "postCommit": { -// "command": ["/bin/sh", "-ic"], -// "args": ["rake test --verbose"] -// } -// -// 2. A command as the image entrypoint: -// -// "postCommit": { -// "commit": ["rake", "test", "--verbose"] -// } -// -// Command overrides the image entrypoint in the exec form, as documented in -// Docker: https://docs.docker.com/engine/reference/builder/#entrypoint. -// -// 3. Pass arguments to the default entrypoint: -// -// "postCommit": { -// "args": ["rake", "test", "--verbose"] -// } -// -// This form is only useful if the image entrypoint can handle arguments. -// -// 4. Shell script with arguments: -// -// "postCommit": { -// "script": "rake test $1", -// "args": ["--verbose"] -// } -// -// This form is useful if you need to pass arguments that would otherwise be -// hard to quote properly in the shell script. In the script, $0 will be -// "/bin/sh" and $1, $2, etc, are the positional arguments from Args. -// -// 5. Command with arguments: -// -// "postCommit": { -// "command": ["rake", "test"], -// "args": ["--verbose"] -// } -// -// This form is equivalent to appending the arguments to the Command slice. -// -// It is invalid to provide both Script and Command simultaneously. If none of -// the fields are specified, the hook is not executed. -message BuildPostCommitSpec { - // command is the command to run. It may not be specified with Script. - // This might be needed if the image doesn't have `/bin/sh`, or if you - // do not want to use a shell. In all other cases, using Script might be - // more convenient. - repeated string command = 1; - - // args is a list of arguments that are provided to either Command, - // Script or the container image's default entrypoint. The arguments are - // placed immediately after the command to be run. - repeated string args = 2; - - // script is a shell script to be run with `/bin/sh -ic`. It may not be - // specified with Command. Use Script when a shell script is appropriate - // to execute the post build hook, for example for running unit tests - // with `rake test`. If you need control over the image entrypoint, or - // if the image does not have `/bin/sh`, use Command and/or Args. - // The `-i` flag is needed to support CentOS and RHEL images that use - // Software Collections (SCL), in order to have the appropriate - // collections enabled in the shell. E.g., in the Ruby image, this is - // necessary to make `ruby`, `bundle` and other binaries available in - // the PATH. - optional string script = 3; -} - -// BuildRequest is the resource used to pass parameters to build generator -message BuildRequest { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // revision is the information from the source for a specific repo snapshot. - optional SourceRevision revision = 2; - - // triggeredByImage is the Image that triggered this build. - optional k8s.io.api.core.v1.ObjectReference triggeredByImage = 3; - - // from is the reference to the ImageStreamTag that triggered the build. - optional k8s.io.api.core.v1.ObjectReference from = 4; - - // binary indicates a request to build from a binary provided to the builder - optional BinaryBuildSource binary = 5; - - // lastVersion (optional) is the LastVersion of the BuildConfig that was used - // to generate the build. If the BuildConfig in the generator doesn't match, a build will - // not be generated. - optional int64 lastVersion = 6; - - // env contains additional environment variables you want to pass into a builder container. - repeated k8s.io.api.core.v1.EnvVar env = 7; - - // triggeredBy describes which triggers started the most recent update to the - // build configuration and contains information about those triggers. - repeated BuildTriggerCause triggeredBy = 8; - - // DockerStrategyOptions contains additional docker-strategy specific options for the build - optional DockerStrategyOptions dockerStrategyOptions = 9; - - // SourceStrategyOptions contains additional source-strategy specific options for the build - optional SourceStrategyOptions sourceStrategyOptions = 10; -} - -// BuildSource is the SCM used for the build. -message BuildSource { - // type of build input to accept - // +k8s:conversion-gen=false - optional string type = 1; - - // binary builds accept a binary as their input. The binary is generally assumed to be a tar, - // gzipped tar, or zip file depending on the strategy. For container image builds, this is the build - // context and an optional Dockerfile may be specified to override any Dockerfile in the - // build context. For Source builds, this is assumed to be an archive as described above. For - // Source and container image builds, if binary.asFile is set the build will receive a directory with - // a single file. contextDir may be used when an archive is provided. Custom builds will - // receive this binary as input on STDIN. - optional BinaryBuildSource binary = 2; - - // dockerfile is the raw contents of a Dockerfile which should be built. When this option is - // specified, the FROM may be modified based on your strategy base image and additional ENV - // stanzas from your strategy environment will be added after the FROM, but before the rest - // of your Dockerfile stanzas. The Dockerfile source type may be used with other options like - // git - in those cases the Git repo will have any innate Dockerfile replaced in the context - // dir. - optional string dockerfile = 3; - - // git contains optional information about git build source - optional GitBuildSource git = 4; - - // images describes a set of images to be used to provide source for the build - repeated ImageSource images = 5; - - // contextDir specifies the sub-directory where the source code for the application exists. - // This allows to have buildable sources in directory other than root of - // repository. - optional string contextDir = 6; - - // sourceSecret is the name of a Secret that would be used for setting - // up the authentication for cloning private repository. - // The secret contains valid credentials for remote repository, where the - // data's key represent the authentication method to be used and value is - // the base64 encoded credentials. Supported auth methods are: ssh-privatekey. - optional k8s.io.api.core.v1.LocalObjectReference sourceSecret = 7; - - // secrets represents a list of secrets and their destinations that will - // be used only for the build. - repeated SecretBuildSource secrets = 8; - - // configMaps represents a list of configMaps and their destinations that will - // be used for the build. - repeated ConfigMapBuildSource configMaps = 9; -} - -// BuildSpec has the information to represent a build and also additional -// information about a build -message BuildSpec { - // CommonSpec is the information that represents a build - optional CommonSpec commonSpec = 1; - - // triggeredBy describes which triggers started the most recent update to the - // build configuration and contains information about those triggers. - repeated BuildTriggerCause triggeredBy = 2; -} - -// BuildStatus contains the status of a build -message BuildStatus { - // phase is the point in the build lifecycle. Possible values are - // "New", "Pending", "Running", "Complete", "Failed", "Error", and "Cancelled". - optional string phase = 1; - - // cancelled describes if a cancel event was triggered for the build. - optional bool cancelled = 2; - - // reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI. - optional string reason = 3; - - // message is a human-readable message indicating details about why the build has this status. - optional string message = 4; - - // startTimestamp is a timestamp representing the server time when this Build started - // running in a Pod. - // It is represented in RFC3339 form and is in UTC. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time startTimestamp = 5; - - // completionTimestamp is a timestamp representing the server time when this Build was - // finished, whether that build failed or succeeded. It reflects the time at which - // the Pod running the Build terminated. - // It is represented in RFC3339 form and is in UTC. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time completionTimestamp = 6; - - // duration contains time.Duration object describing build time. - optional int64 duration = 7; - - // outputDockerImageReference contains a reference to the container image that - // will be built by this build. Its value is computed from - // Build.Spec.Output.To, and should include the registry address, so that - // it can be used to push and pull the image. - optional string outputDockerImageReference = 8; - - // config is an ObjectReference to the BuildConfig this Build is based on. - optional k8s.io.api.core.v1.ObjectReference config = 9; - - // output describes the container image the build has produced. - optional BuildStatusOutput output = 10; - - // stages contains details about each stage that occurs during the build - // including start time, duration (in milliseconds), and the steps that - // occured within each stage. - repeated StageInfo stages = 11; - - // logSnippet is the last few lines of the build log. This value is only set for builds that failed. - optional string logSnippet = 12; - - // Conditions represents the latest available observations of a build's current state. - // +patchMergeKey=type - // +patchStrategy=merge - repeated BuildCondition conditions = 13; -} - -// BuildStatusOutput contains the status of the built image. -message BuildStatusOutput { - // to describes the status of the built image being pushed to a registry. - optional BuildStatusOutputTo to = 1; -} - -// BuildStatusOutputTo describes the status of the built image with regards to -// image registry to which it was supposed to be pushed. -message BuildStatusOutputTo { - // imageDigest is the digest of the built container image. The digest uniquely - // identifies the image in the registry to which it was pushed. - // - // Please note that this field may not always be set even if the push - // completes successfully - e.g. when the registry returns no digest or - // returns it in a format that the builder doesn't understand. - optional string imageDigest = 1; -} - -// BuildStrategy contains the details of how to perform a build. -message BuildStrategy { - // type is the kind of build strategy. - // +k8s:conversion-gen=false - optional string type = 1; - - // dockerStrategy holds the parameters to the container image build strategy. - optional DockerBuildStrategy dockerStrategy = 2; - - // sourceStrategy holds the parameters to the Source build strategy. - optional SourceBuildStrategy sourceStrategy = 3; - - // customStrategy holds the parameters to the Custom build strategy - optional CustomBuildStrategy customStrategy = 4; - - // JenkinsPipelineStrategy holds the parameters to the Jenkins Pipeline build strategy. - // Deprecated: use OpenShift Pipelines - optional JenkinsPipelineBuildStrategy jenkinsPipelineStrategy = 5; -} - -// BuildTriggerCause holds information about a triggered build. It is used for -// displaying build trigger data for each build and build configuration in oc -// describe. It is also used to describe which triggers led to the most recent -// update in the build configuration. -message BuildTriggerCause { - // message is used to store a human readable message for why the build was - // triggered. E.g.: "Manually triggered by user", "Configuration change",etc. - optional string message = 1; - - // genericWebHook holds data about a builds generic webhook trigger. - optional GenericWebHookCause genericWebHook = 2; - - // gitHubWebHook represents data for a GitHub webhook that fired a - // specific build. - optional GitHubWebHookCause githubWebHook = 3; - - // imageChangeBuild stores information about an imagechange event - // that triggered a new build. - optional ImageChangeCause imageChangeBuild = 4; - - // GitLabWebHook represents data for a GitLab webhook that fired a specific - // build. - optional GitLabWebHookCause gitlabWebHook = 5; - - // BitbucketWebHook represents data for a Bitbucket webhook that fired a - // specific build. - optional BitbucketWebHookCause bitbucketWebHook = 6; -} - -// BuildTriggerPolicy describes a policy for a single trigger that results in a new Build. -message BuildTriggerPolicy { - // type is the type of build trigger - optional string type = 1; - - // github contains the parameters for a GitHub webhook type of trigger - optional WebHookTrigger github = 2; - - // generic contains the parameters for a Generic webhook type of trigger - optional WebHookTrigger generic = 3; - - // imageChange contains parameters for an ImageChange type of trigger - optional ImageChangeTrigger imageChange = 4; - - // GitLabWebHook contains the parameters for a GitLab webhook type of trigger - optional WebHookTrigger gitlab = 5; - - // BitbucketWebHook contains the parameters for a Bitbucket webhook type of - // trigger - optional WebHookTrigger bitbucket = 6; -} - -// CommonSpec encapsulates all the inputs necessary to represent a build. -message CommonSpec { - // serviceAccount is the name of the ServiceAccount to use to run the pod - // created by this build. - // The pod will be allowed to use secrets referenced by the ServiceAccount - optional string serviceAccount = 1; - - // source describes the SCM in use. - optional BuildSource source = 2; - - // revision is the information from the source for a specific repo snapshot. - // This is optional. - optional SourceRevision revision = 3; - - // strategy defines how to perform a build. - optional BuildStrategy strategy = 4; - - // output describes the container image the Strategy should produce. - optional BuildOutput output = 5; - - // resources computes resource requirements to execute the build. - optional k8s.io.api.core.v1.ResourceRequirements resources = 6; - - // postCommit is a build hook executed after the build output image is - // committed, before it is pushed to a registry. - optional BuildPostCommitSpec postCommit = 7; - - // completionDeadlineSeconds is an optional duration in seconds, counted from - // the time when a build pod gets scheduled in the system, that the build may - // be active on a node before the system actively tries to terminate the - // build; value must be positive integer - optional int64 completionDeadlineSeconds = 8; - - // nodeSelector is a selector which must be true for the build pod to fit on a node - // If nil, it can be overridden by default build nodeselector values for the cluster. - // If set to an empty map or a map with any values, default build nodeselector values - // are ignored. - // +optional - optional OptionalNodeSelector nodeSelector = 9; -} - -// CommonWebHookCause factors out the identical format of these webhook -// causes into struct so we can share it in the specific causes; it is too late for -// GitHub and Generic but we can leverage this pattern with GitLab and Bitbucket. -message CommonWebHookCause { - // Revision is the git source revision information of the trigger. - optional SourceRevision revision = 1; - - // Secret is the obfuscated webhook secret that triggered a build. - optional string secret = 2; -} - -// ConfigMapBuildSource describes a configmap and its destination directory that will be -// used only at the build time. The content of the configmap referenced here will -// be copied into the destination directory instead of mounting. -message ConfigMapBuildSource { - // configMap is a reference to an existing configmap that you want to use in your - // build. - optional k8s.io.api.core.v1.LocalObjectReference configMap = 1; - - // destinationDir is the directory where the files from the configmap should be - // available for the build time. - // For the Source build strategy, these will be injected into a container - // where the assemble script runs. - // For the container image build strategy, these will be copied into the build - // directory, where the Dockerfile is located, so users can ADD or COPY them - // during container image build. - optional string destinationDir = 2; -} - -// CustomBuildStrategy defines input parameters specific to Custom build. -message CustomBuildStrategy { - // from is reference to an DockerImage, ImageStreamTag, or ImageStreamImage from which - // the container image should be pulled - optional k8s.io.api.core.v1.ObjectReference from = 1; - - // pullSecret is the name of a Secret that would be used for setting up - // the authentication for pulling the container images from the private Docker - // registries - optional k8s.io.api.core.v1.LocalObjectReference pullSecret = 2; - - // env contains additional environment variables you want to pass into a builder container. - repeated k8s.io.api.core.v1.EnvVar env = 3; - - // exposeDockerSocket will allow running Docker commands (and build container images) from - // inside the container. - // TODO: Allow admins to enforce 'false' for this option - optional bool exposeDockerSocket = 4; - - // forcePull describes if the controller should configure the build pod to always pull the images - // for the builder or only pull if it is not present locally - optional bool forcePull = 5; - - // secrets is a list of additional secrets that will be included in the build pod - repeated SecretSpec secrets = 6; - - // buildAPIVersion is the requested API version for the Build object serialized and passed to the custom builder - optional string buildAPIVersion = 7; -} - -// DockerBuildStrategy defines input parameters specific to container image build. -message DockerBuildStrategy { - // from is a reference to an DockerImage, ImageStreamTag, or ImageStreamImage which overrides - // the FROM image in the Dockerfile for the build. If the Dockerfile uses multi-stage builds, - // this will replace the image in the last FROM directive of the file. - optional k8s.io.api.core.v1.ObjectReference from = 1; - - // pullSecret is the name of a Secret that would be used for setting up - // the authentication for pulling the container images from the private Docker - // registries - optional k8s.io.api.core.v1.LocalObjectReference pullSecret = 2; - - // noCache if set to true indicates that the container image build must be executed with the - // --no-cache=true flag - optional bool noCache = 3; - - // env contains additional environment variables you want to pass into a builder container. - repeated k8s.io.api.core.v1.EnvVar env = 4; - - // forcePull describes if the builder should pull the images from registry prior to building. - optional bool forcePull = 5; - - // dockerfilePath is the path of the Dockerfile that will be used to build the container image, - // relative to the root of the context (contextDir). - // Defaults to `Dockerfile` if unset. - optional string dockerfilePath = 6; - - // buildArgs contains build arguments that will be resolved in the Dockerfile. See - // https://docs.docker.com/engine/reference/builder/#/arg for more details. - repeated k8s.io.api.core.v1.EnvVar buildArgs = 7; - - // imageOptimizationPolicy describes what optimizations the system can use when building images - // to reduce the final size or time spent building the image. The default policy is 'None' which - // means the final build image will be equivalent to an image created by the container image build API. - // The experimental policy 'SkipLayers' will avoid commiting new layers in between each - // image step, and will fail if the Dockerfile cannot provide compatibility with the 'None' - // policy. An additional experimental policy 'SkipLayersAndWarn' is the same as - // 'SkipLayers' but simply warns if compatibility cannot be preserved. - optional string imageOptimizationPolicy = 8; -} - -// DockerStrategyOptions contains extra strategy options for container image builds -message DockerStrategyOptions { - // Args contains any build arguments that are to be passed to Docker. See - // https://docs.docker.com/engine/reference/builder/#/arg for more details - repeated k8s.io.api.core.v1.EnvVar buildArgs = 1; - - // noCache overrides the docker-strategy noCache option in the build config - optional bool noCache = 2; -} - -// GenericWebHookCause holds information about a generic WebHook that -// triggered a build. -message GenericWebHookCause { - // revision is an optional field that stores the git source revision - // information of the generic webhook trigger when it is available. - optional SourceRevision revision = 1; - - // secret is the obfuscated webhook secret that triggered a build. - optional string secret = 2; -} - -// GenericWebHookEvent is the payload expected for a generic webhook post -message GenericWebHookEvent { - // type is the type of source repository - // +k8s:conversion-gen=false - optional string type = 1; - - // git is the git information if the Type is BuildSourceGit - optional GitInfo git = 2; - - // env contains additional environment variables you want to pass into a builder container. - // ValueFrom is not supported. - repeated k8s.io.api.core.v1.EnvVar env = 3; - - // DockerStrategyOptions contains additional docker-strategy specific options for the build - optional DockerStrategyOptions dockerStrategyOptions = 4; -} - -// GitBuildSource defines the parameters of a Git SCM -message GitBuildSource { - // uri points to the source that will be built. The structure of the source - // will depend on the type of build to run - optional string uri = 1; - - // ref is the branch/tag/ref to build. - optional string ref = 2; - - // proxyConfig defines the proxies to use for the git clone operation. Values - // not set here are inherited from cluster-wide build git proxy settings. - optional ProxyConfig proxyConfig = 3; -} - -// GitHubWebHookCause has information about a GitHub webhook that triggered a -// build. -message GitHubWebHookCause { - // revision is the git revision information of the trigger. - optional SourceRevision revision = 1; - - // secret is the obfuscated webhook secret that triggered a build. - optional string secret = 2; -} - -// GitInfo is the aggregated git information for a generic webhook post -message GitInfo { - optional GitBuildSource gitBuildSource = 1; - - optional GitSourceRevision gitSourceRevision = 2; - - // Refs is a list of GitRefs for the provided repo - generally sent - // when used from a post-receive hook. This field is optional and is - // used when sending multiple refs - repeated GitRefInfo refs = 3; -} - -// GitLabWebHookCause has information about a GitLab webhook that triggered a -// build. -message GitLabWebHookCause { - optional CommonWebHookCause commonSpec = 1; -} - -// GitRefInfo is a single ref -message GitRefInfo { - optional GitBuildSource gitBuildSource = 1; - - optional GitSourceRevision gitSourceRevision = 2; -} - -// GitSourceRevision is the commit information from a git source for a build -message GitSourceRevision { - // commit is the commit hash identifying a specific commit - optional string commit = 1; - - // author is the author of a specific commit - optional SourceControlUser author = 2; - - // committer is the committer of a specific commit - optional SourceControlUser committer = 3; - - // message is the description of a specific commit - optional string message = 4; -} - -// ImageChangeCause contains information about the image that triggered a -// build -message ImageChangeCause { - // imageID is the ID of the image that triggered a a new build. - optional string imageID = 1; - - // fromRef contains detailed information about an image that triggered a - // build. - optional k8s.io.api.core.v1.ObjectReference fromRef = 2; -} - -// ImageChangeTrigger allows builds to be triggered when an ImageStream changes -message ImageChangeTrigger { - // lastTriggeredImageID is used internally by the ImageChangeController to save last - // used image ID for build - optional string lastTriggeredImageID = 1; - - // from is a reference to an ImageStreamTag that will trigger a build when updated - // It is optional. If no From is specified, the From image from the build strategy - // will be used. Only one ImageChangeTrigger with an empty From reference is allowed in - // a build configuration. - optional k8s.io.api.core.v1.ObjectReference from = 2; - - // paused is true if this trigger is temporarily disabled. Optional. - optional bool paused = 3; -} - -// ImageLabel represents a label applied to the resulting image. -message ImageLabel { - // name defines the name of the label. It must have non-zero length. - optional string name = 1; - - // value defines the literal value of the label. - optional string value = 2; -} - -// ImageSource is used to describe build source that will be extracted from an image or used during a -// multi stage build. A reference of type ImageStreamTag, ImageStreamImage or DockerImage may be used. -// A pull secret can be specified to pull the image from an external registry or override the default -// service account secret if pulling from the internal registry. Image sources can either be used to -// extract content from an image and place it into the build context along with the repository source, -// or used directly during a multi-stage container image build to allow content to be copied without overwriting -// the contents of the repository source (see the 'paths' and 'as' fields). -message ImageSource { - // from is a reference to an ImageStreamTag, ImageStreamImage, or DockerImage to - // copy source from. - optional k8s.io.api.core.v1.ObjectReference from = 1; - - // A list of image names that this source will be used in place of during a multi-stage container image - // build. For instance, a Dockerfile that uses "COPY --from=nginx:latest" will first check for an image - // source that has "nginx:latest" in this field before attempting to pull directly. If the Dockerfile - // does not reference an image source it is ignored. This field and paths may both be set, in which case - // the contents will be used twice. - // +optional - repeated string as = 4; - - // paths is a list of source and destination paths to copy from the image. This content will be copied - // into the build context prior to starting the build. If no paths are set, the build context will - // not be altered. - // +optional - repeated ImageSourcePath paths = 2; - - // pullSecret is a reference to a secret to be used to pull the image from a registry - // If the image is pulled from the OpenShift registry, this field does not need to be set. - optional k8s.io.api.core.v1.LocalObjectReference pullSecret = 3; -} - -// ImageSourcePath describes a path to be copied from a source image and its destination within the build directory. -message ImageSourcePath { - // sourcePath is the absolute path of the file or directory inside the image to - // copy to the build directory. If the source path ends in /. then the content of - // the directory will be copied, but the directory itself will not be created at the - // destination. - optional string sourcePath = 1; - - // destinationDir is the relative directory within the build directory - // where files copied from the image are placed. - optional string destinationDir = 2; -} - -// JenkinsPipelineBuildStrategy holds parameters specific to a Jenkins Pipeline build. -// Deprecated: use OpenShift Pipelines -message JenkinsPipelineBuildStrategy { - // JenkinsfilePath is the optional path of the Jenkinsfile that will be used to configure the pipeline - // relative to the root of the context (contextDir). If both JenkinsfilePath & Jenkinsfile are - // both not specified, this defaults to Jenkinsfile in the root of the specified contextDir. - optional string jenkinsfilePath = 1; - - // Jenkinsfile defines the optional raw contents of a Jenkinsfile which defines a Jenkins pipeline build. - optional string jenkinsfile = 2; - - // env contains additional environment variables you want to pass into a build pipeline. - repeated k8s.io.api.core.v1.EnvVar env = 3; -} - -// OptionalNodeSelector is a map that may also be left nil to distinguish between set and unset. -// +protobuf.nullable=true -// +protobuf.options.(gogoproto.goproto_stringer)=false -message OptionalNodeSelector { - // items, if empty, will result in an empty map - - map items = 1; -} - -// ProxyConfig defines what proxies to use for an operation -message ProxyConfig { - // httpProxy is a proxy used to reach the git repository over http - optional string httpProxy = 3; - - // httpsProxy is a proxy used to reach the git repository over https - optional string httpsProxy = 4; - - // noProxy is the list of domains for which the proxy should not be used - optional string noProxy = 5; -} - -// SecretBuildSource describes a secret and its destination directory that will be -// used only at the build time. The content of the secret referenced here will -// be copied into the destination directory instead of mounting. -message SecretBuildSource { - // secret is a reference to an existing secret that you want to use in your - // build. - optional k8s.io.api.core.v1.LocalObjectReference secret = 1; - - // destinationDir is the directory where the files from the secret should be - // available for the build time. - // For the Source build strategy, these will be injected into a container - // where the assemble script runs. Later, when the script finishes, all files - // injected will be truncated to zero length. - // For the container image build strategy, these will be copied into the build - // directory, where the Dockerfile is located, so users can ADD or COPY them - // during container image build. - optional string destinationDir = 2; -} - -// SecretLocalReference contains information that points to the local secret being used -message SecretLocalReference { - // Name is the name of the resource in the same namespace being referenced - optional string name = 1; -} - -// SecretSpec specifies a secret to be included in a build pod and its corresponding mount point -message SecretSpec { - // secretSource is a reference to the secret - optional k8s.io.api.core.v1.LocalObjectReference secretSource = 1; - - // mountPath is the path at which to mount the secret - optional string mountPath = 2; -} - -// SourceBuildStrategy defines input parameters specific to an Source build. -message SourceBuildStrategy { - // from is reference to an DockerImage, ImageStreamTag, or ImageStreamImage from which - // the container image should be pulled - optional k8s.io.api.core.v1.ObjectReference from = 1; - - // pullSecret is the name of a Secret that would be used for setting up - // the authentication for pulling the container images from the private Docker - // registries - optional k8s.io.api.core.v1.LocalObjectReference pullSecret = 2; - - // env contains additional environment variables you want to pass into a builder container. - repeated k8s.io.api.core.v1.EnvVar env = 3; - - // scripts is the location of Source scripts - optional string scripts = 4; - - // incremental flag forces the Source build to do incremental builds if true. - optional bool incremental = 5; - - // forcePull describes if the builder should pull the images from registry prior to building. - optional bool forcePull = 6; -} - -// SourceControlUser defines the identity of a user of source control -message SourceControlUser { - // name of the source control user - optional string name = 1; - - // email of the source control user - optional string email = 2; -} - -// SourceRevision is the revision or commit information from the source for the build -message SourceRevision { - // type of the build source, may be one of 'Source', 'Dockerfile', 'Binary', or 'Images' - // +k8s:conversion-gen=false - optional string type = 1; - - // Git contains information about git-based build source - optional GitSourceRevision git = 2; -} - -// SourceStrategyOptions contains extra strategy options for Source builds -message SourceStrategyOptions { - // incremental overrides the source-strategy incremental option in the build config - optional bool incremental = 1; -} - -// StageInfo contains details about a build stage. -message StageInfo { - // name is a unique identifier for each build stage that occurs. - optional string name = 1; - - // startTime is a timestamp representing the server time when this Stage started. - // It is represented in RFC3339 form and is in UTC. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 2; - - // durationMilliseconds identifies how long the stage took - // to complete in milliseconds. - // Note: the duration of a stage can exceed the sum of the duration of the steps within - // the stage as not all actions are accounted for in explicit build steps. - optional int64 durationMilliseconds = 3; - - // steps contains details about each step that occurs during a build stage - // including start time and duration in milliseconds. - repeated StepInfo steps = 4; -} - -// StepInfo contains details about a build step. -message StepInfo { - // name is a unique identifier for each build step. - optional string name = 1; - - // startTime is a timestamp representing the server time when this Step started. - // it is represented in RFC3339 form and is in UTC. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 2; - - // durationMilliseconds identifies how long the step took - // to complete in milliseconds. - optional int64 durationMilliseconds = 3; -} - -// WebHookTrigger is a trigger that gets invoked using a webhook type of post -message WebHookTrigger { - // secret used to validate requests. - // Deprecated: use SecretReference instead. - optional string secret = 1; - - // allowEnv determines whether the webhook can set environment variables; can only - // be set to true for GenericWebHook. - optional bool allowEnv = 2; - - // secretReference is a reference to a secret in the same namespace, - // containing the value to be validated when the webhook is invoked. - // The secret being referenced must contain a key named "WebHookSecretKey", the value - // of which will be checked against the value supplied in the webhook invocation. - optional SecretLocalReference secretReference = 3; -} - diff --git a/vendor/github.com/openshift/api/build/v1/legacy.go b/vendor/github.com/openshift/api/build/v1/legacy.go deleted file mode 100644 index a74627d2cda08..0000000000000 --- a/vendor/github.com/openshift/api/build/v1/legacy.go +++ /dev/null @@ -1,28 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - legacyGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} - legacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, corev1.AddToScheme) - DeprecatedInstallWithoutGroup = legacySchemeBuilder.AddToScheme -) - -func addLegacyKnownTypes(scheme *runtime.Scheme) error { - types := []runtime.Object{ - &Build{}, - &BuildList{}, - &BuildConfig{}, - &BuildConfigList{}, - &BuildLog{}, - &BuildRequest{}, - &BuildLogOptions{}, - &BinaryBuildRequestOptions{}, - } - scheme.AddKnownTypes(legacyGroupVersion, types...) - return nil -} diff --git a/vendor/github.com/openshift/api/build/v1/register.go b/vendor/github.com/openshift/api/build/v1/register.go deleted file mode 100644 index 16f68ea8cd6d8..0000000000000 --- a/vendor/github.com/openshift/api/build/v1/register.go +++ /dev/null @@ -1,47 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - GroupName = "build.openshift.io" - GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, corev1.AddToScheme) - // Install is a function which adds this version to a scheme - Install = schemeBuilder.AddToScheme - - // SchemeGroupVersion generated code relies on this name - // Deprecated - SchemeGroupVersion = GroupVersion - // AddToScheme exists solely to keep the old generators creating valid code - // DEPRECATED - AddToScheme = schemeBuilder.AddToScheme -) - -// Resource generated code relies on this being here, but it logically belongs to the group -// DEPRECATED -func Resource(resource string) schema.GroupResource { - return schema.GroupResource{Group: GroupName, Resource: resource} -} - -// addKnownTypes adds types to API group -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &Build{}, - &BuildList{}, - &BuildConfig{}, - &BuildConfigList{}, - &BuildLog{}, - &BuildRequest{}, - &BuildLogOptions{}, - &BinaryBuildRequestOptions{}, - // This is needed for webhooks - &corev1.PodProxyOptions{}, - ) - metav1.AddToGroupVersion(scheme, GroupVersion) - return nil -} diff --git a/vendor/github.com/openshift/api/build/v1/types.go b/vendor/github.com/openshift/api/build/v1/types.go deleted file mode 100644 index 3c9d088f7ee28..0000000000000 --- a/vendor/github.com/openshift/api/build/v1/types.go +++ /dev/null @@ -1,1268 +0,0 @@ -package v1 - -import ( - "fmt" - "time" - - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +genclient -// +genclient:method=UpdateDetails,verb=update,subresource=details -// +genclient:method=Clone,verb=create,subresource=clone,input=BuildRequest -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Build encapsulates the inputs needed to produce a new deployable image, as well as -// the status of the execution and a reference to the Pod which executed the build. -type Build struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // spec is all the inputs used to execute the build. - Spec BuildSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` - - // status is the current status of the build. - // +optional - Status BuildStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` -} - -// BuildSpec has the information to represent a build and also additional -// information about a build -type BuildSpec struct { - // CommonSpec is the information that represents a build - CommonSpec `json:",inline" protobuf:"bytes,1,opt,name=commonSpec"` - - // triggeredBy describes which triggers started the most recent update to the - // build configuration and contains information about those triggers. - TriggeredBy []BuildTriggerCause `json:"triggeredBy,omitempty" protobuf:"bytes,2,rep,name=triggeredBy"` -} - -// OptionalNodeSelector is a map that may also be left nil to distinguish between set and unset. -// +protobuf.nullable=true -// +protobuf.options.(gogoproto.goproto_stringer)=false -type OptionalNodeSelector map[string]string - -func (t OptionalNodeSelector) String() string { - return fmt.Sprintf("%v", map[string]string(t)) -} - -// CommonSpec encapsulates all the inputs necessary to represent a build. -type CommonSpec struct { - // serviceAccount is the name of the ServiceAccount to use to run the pod - // created by this build. - // The pod will be allowed to use secrets referenced by the ServiceAccount - ServiceAccount string `json:"serviceAccount,omitempty" protobuf:"bytes,1,opt,name=serviceAccount"` - - // source describes the SCM in use. - Source BuildSource `json:"source,omitempty" protobuf:"bytes,2,opt,name=source"` - - // revision is the information from the source for a specific repo snapshot. - // This is optional. - Revision *SourceRevision `json:"revision,omitempty" protobuf:"bytes,3,opt,name=revision"` - - // strategy defines how to perform a build. - Strategy BuildStrategy `json:"strategy" protobuf:"bytes,4,opt,name=strategy"` - - // output describes the container image the Strategy should produce. - Output BuildOutput `json:"output,omitempty" protobuf:"bytes,5,opt,name=output"` - - // resources computes resource requirements to execute the build. - Resources corev1.ResourceRequirements `json:"resources,omitempty" protobuf:"bytes,6,opt,name=resources"` - - // postCommit is a build hook executed after the build output image is - // committed, before it is pushed to a registry. - PostCommit BuildPostCommitSpec `json:"postCommit,omitempty" protobuf:"bytes,7,opt,name=postCommit"` - - // completionDeadlineSeconds is an optional duration in seconds, counted from - // the time when a build pod gets scheduled in the system, that the build may - // be active on a node before the system actively tries to terminate the - // build; value must be positive integer - CompletionDeadlineSeconds *int64 `json:"completionDeadlineSeconds,omitempty" protobuf:"varint,8,opt,name=completionDeadlineSeconds"` - - // nodeSelector is a selector which must be true for the build pod to fit on a node - // If nil, it can be overridden by default build nodeselector values for the cluster. - // If set to an empty map or a map with any values, default build nodeselector values - // are ignored. - // +optional - NodeSelector OptionalNodeSelector `json:"nodeSelector" protobuf:"bytes,9,name=nodeSelector"` -} - -// BuildTriggerCause holds information about a triggered build. It is used for -// displaying build trigger data for each build and build configuration in oc -// describe. It is also used to describe which triggers led to the most recent -// update in the build configuration. -type BuildTriggerCause struct { - // message is used to store a human readable message for why the build was - // triggered. E.g.: "Manually triggered by user", "Configuration change",etc. - Message string `json:"message,omitempty" protobuf:"bytes,1,opt,name=message"` - - // genericWebHook holds data about a builds generic webhook trigger. - GenericWebHook *GenericWebHookCause `json:"genericWebHook,omitempty" protobuf:"bytes,2,opt,name=genericWebHook"` - - // gitHubWebHook represents data for a GitHub webhook that fired a - //specific build. - GitHubWebHook *GitHubWebHookCause `json:"githubWebHook,omitempty" protobuf:"bytes,3,opt,name=githubWebHook"` - - // imageChangeBuild stores information about an imagechange event - // that triggered a new build. - ImageChangeBuild *ImageChangeCause `json:"imageChangeBuild,omitempty" protobuf:"bytes,4,opt,name=imageChangeBuild"` - - // GitLabWebHook represents data for a GitLab webhook that fired a specific - // build. - GitLabWebHook *GitLabWebHookCause `json:"gitlabWebHook,omitempty" protobuf:"bytes,5,opt,name=gitlabWebHook"` - - // BitbucketWebHook represents data for a Bitbucket webhook that fired a - // specific build. - BitbucketWebHook *BitbucketWebHookCause `json:"bitbucketWebHook,omitempty" protobuf:"bytes,6,opt,name=bitbucketWebHook"` -} - -// GenericWebHookCause holds information about a generic WebHook that -// triggered a build. -type GenericWebHookCause struct { - // revision is an optional field that stores the git source revision - // information of the generic webhook trigger when it is available. - Revision *SourceRevision `json:"revision,omitempty" protobuf:"bytes,1,opt,name=revision"` - - // secret is the obfuscated webhook secret that triggered a build. - Secret string `json:"secret,omitempty" protobuf:"bytes,2,opt,name=secret"` -} - -// GitHubWebHookCause has information about a GitHub webhook that triggered a -// build. -type GitHubWebHookCause struct { - // revision is the git revision information of the trigger. - Revision *SourceRevision `json:"revision,omitempty" protobuf:"bytes,1,opt,name=revision"` - - // secret is the obfuscated webhook secret that triggered a build. - Secret string `json:"secret,omitempty" protobuf:"bytes,2,opt,name=secret"` -} - -// CommonWebHookCause factors out the identical format of these webhook -// causes into struct so we can share it in the specific causes; it is too late for -// GitHub and Generic but we can leverage this pattern with GitLab and Bitbucket. -type CommonWebHookCause struct { - // Revision is the git source revision information of the trigger. - Revision *SourceRevision `json:"revision,omitempty" protobuf:"bytes,1,opt,name=revision"` - - // Secret is the obfuscated webhook secret that triggered a build. - Secret string `json:"secret,omitempty" protobuf:"bytes,2,opt,name=secret"` -} - -// GitLabWebHookCause has information about a GitLab webhook that triggered a -// build. -type GitLabWebHookCause struct { - CommonWebHookCause `json:",inline" protobuf:"bytes,1,opt,name=commonSpec"` -} - -// BitbucketWebHookCause has information about a Bitbucket webhook that triggered a -// build. -type BitbucketWebHookCause struct { - CommonWebHookCause `json:",inline" protobuf:"bytes,1,opt,name=commonSpec"` -} - -// ImageChangeCause contains information about the image that triggered a -// build -type ImageChangeCause struct { - // imageID is the ID of the image that triggered a a new build. - ImageID string `json:"imageID,omitempty" protobuf:"bytes,1,opt,name=imageID"` - - // fromRef contains detailed information about an image that triggered a - // build. - FromRef *corev1.ObjectReference `json:"fromRef,omitempty" protobuf:"bytes,2,opt,name=fromRef"` -} - -// BuildStatus contains the status of a build -type BuildStatus struct { - // phase is the point in the build lifecycle. Possible values are - // "New", "Pending", "Running", "Complete", "Failed", "Error", and "Cancelled". - Phase BuildPhase `json:"phase" protobuf:"bytes,1,opt,name=phase,casttype=BuildPhase"` - - // cancelled describes if a cancel event was triggered for the build. - Cancelled bool `json:"cancelled,omitempty" protobuf:"varint,2,opt,name=cancelled"` - - // reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI. - Reason StatusReason `json:"reason,omitempty" protobuf:"bytes,3,opt,name=reason,casttype=StatusReason"` - - // message is a human-readable message indicating details about why the build has this status. - Message string `json:"message,omitempty" protobuf:"bytes,4,opt,name=message"` - - // startTimestamp is a timestamp representing the server time when this Build started - // running in a Pod. - // It is represented in RFC3339 form and is in UTC. - StartTimestamp *metav1.Time `json:"startTimestamp,omitempty" protobuf:"bytes,5,opt,name=startTimestamp"` - - // completionTimestamp is a timestamp representing the server time when this Build was - // finished, whether that build failed or succeeded. It reflects the time at which - // the Pod running the Build terminated. - // It is represented in RFC3339 form and is in UTC. - CompletionTimestamp *metav1.Time `json:"completionTimestamp,omitempty" protobuf:"bytes,6,opt,name=completionTimestamp"` - - // duration contains time.Duration object describing build time. - Duration time.Duration `json:"duration,omitempty" protobuf:"varint,7,opt,name=duration,casttype=time.Duration"` - - // outputDockerImageReference contains a reference to the container image that - // will be built by this build. Its value is computed from - // Build.Spec.Output.To, and should include the registry address, so that - // it can be used to push and pull the image. - OutputDockerImageReference string `json:"outputDockerImageReference,omitempty" protobuf:"bytes,8,opt,name=outputDockerImageReference"` - - // config is an ObjectReference to the BuildConfig this Build is based on. - Config *corev1.ObjectReference `json:"config,omitempty" protobuf:"bytes,9,opt,name=config"` - - // output describes the container image the build has produced. - Output BuildStatusOutput `json:"output,omitempty" protobuf:"bytes,10,opt,name=output"` - - // stages contains details about each stage that occurs during the build - // including start time, duration (in milliseconds), and the steps that - // occured within each stage. - Stages []StageInfo `json:"stages,omitempty" protobuf:"bytes,11,opt,name=stages"` - - // logSnippet is the last few lines of the build log. This value is only set for builds that failed. - LogSnippet string `json:"logSnippet,omitempty" protobuf:"bytes,12,opt,name=logSnippet"` - - // Conditions represents the latest available observations of a build's current state. - // +patchMergeKey=type - // +patchStrategy=merge - Conditions []BuildCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,13,rep,name=conditions"` -} - -// StageInfo contains details about a build stage. -type StageInfo struct { - // name is a unique identifier for each build stage that occurs. - Name StageName `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` - - // startTime is a timestamp representing the server time when this Stage started. - // It is represented in RFC3339 form and is in UTC. - StartTime metav1.Time `json:"startTime,omitempty" protobuf:"bytes,2,opt,name=startTime"` - - // durationMilliseconds identifies how long the stage took - // to complete in milliseconds. - // Note: the duration of a stage can exceed the sum of the duration of the steps within - // the stage as not all actions are accounted for in explicit build steps. - DurationMilliseconds int64 `json:"durationMilliseconds,omitempty" protobuf:"varint,3,opt,name=durationMilliseconds"` - - // steps contains details about each step that occurs during a build stage - // including start time and duration in milliseconds. - Steps []StepInfo `json:"steps,omitempty" protobuf:"bytes,4,opt,name=steps"` -} - -// StageName is the unique identifier for each build stage. -type StageName string - -// Valid values for StageName -const ( - // StageFetchInputs fetches any inputs such as source code. - StageFetchInputs StageName = "FetchInputs" - - // StagePullImages pulls any images that are needed such as - // base images or input images. - StagePullImages StageName = "PullImages" - - // StageBuild performs the steps necessary to build the image. - StageBuild StageName = "Build" - - // StagePostCommit executes any post commit steps. - StagePostCommit StageName = "PostCommit" - - // StagePushImage pushes the image to the node. - StagePushImage StageName = "PushImage" -) - -// StepInfo contains details about a build step. -type StepInfo struct { - // name is a unique identifier for each build step. - Name StepName `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` - - // startTime is a timestamp representing the server time when this Step started. - // it is represented in RFC3339 form and is in UTC. - StartTime metav1.Time `json:"startTime,omitempty" protobuf:"bytes,2,opt,name=startTime"` - - // durationMilliseconds identifies how long the step took - // to complete in milliseconds. - DurationMilliseconds int64 `json:"durationMilliseconds,omitempty" protobuf:"varint,3,opt,name=durationMilliseconds"` -} - -// StepName is a unique identifier for each build step. -type StepName string - -// Valid values for StepName -const ( - // StepExecPostCommitHook executes the buildconfigs post commit hook. - StepExecPostCommitHook StepName = "RunPostCommitHook" - - // StepFetchGitSource fetches source code for the build. - StepFetchGitSource StepName = "FetchGitSource" - - // StepPullBaseImage pulls a base image for the build. - StepPullBaseImage StepName = "PullBaseImage" - - // StepPullInputImage pulls an input image for the build. - StepPullInputImage StepName = "PullInputImage" - - // StepPushImage pushes an image to the registry. - StepPushImage StepName = "PushImage" - - // StepPushDockerImage pushes a container image to the registry. - StepPushDockerImage StepName = "PushDockerImage" - - //StepDockerBuild performs the container image build - StepDockerBuild StepName = "DockerBuild" -) - -// BuildPhase represents the status of a build at a point in time. -type BuildPhase string - -// Valid values for BuildPhase. -const ( - // BuildPhaseNew is automatically assigned to a newly created build. - BuildPhaseNew BuildPhase = "New" - - // BuildPhasePending indicates that a pod name has been assigned and a build is - // about to start running. - BuildPhasePending BuildPhase = "Pending" - - // BuildPhaseRunning indicates that a pod has been created and a build is running. - BuildPhaseRunning BuildPhase = "Running" - - // BuildPhaseComplete indicates that a build has been successful. - BuildPhaseComplete BuildPhase = "Complete" - - // BuildPhaseFailed indicates that a build has executed and failed. - BuildPhaseFailed BuildPhase = "Failed" - - // BuildPhaseError indicates that an error prevented the build from executing. - BuildPhaseError BuildPhase = "Error" - - // BuildPhaseCancelled indicates that a running/pending build was stopped from executing. - BuildPhaseCancelled BuildPhase = "Cancelled" -) - -type BuildConditionType string - -// BuildCondition describes the state of a build at a certain point. -type BuildCondition struct { - // Type of build condition. - Type BuildConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=BuildConditionType"` - // Status of the condition, one of True, False, Unknown. - Status corev1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/kubernetes/pkg/api/v1.ConditionStatus"` - // The last time this condition was updated. - LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty" protobuf:"bytes,6,opt,name=lastUpdateTime"` - // The last time the condition transitioned from one status to another. - LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` - // The reason for the condition's last transition. - Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` - // A human readable message indicating details about the transition. - Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` -} - -// StatusReason is a brief CamelCase string that describes a temporary or -// permanent build error condition, meant for machine parsing and tidy display -// in the CLI. -type StatusReason string - -// BuildStatusOutput contains the status of the built image. -type BuildStatusOutput struct { - // to describes the status of the built image being pushed to a registry. - To *BuildStatusOutputTo `json:"to,omitempty" protobuf:"bytes,1,opt,name=to"` -} - -// BuildStatusOutputTo describes the status of the built image with regards to -// image registry to which it was supposed to be pushed. -type BuildStatusOutputTo struct { - // imageDigest is the digest of the built container image. The digest uniquely - // identifies the image in the registry to which it was pushed. - // - // Please note that this field may not always be set even if the push - // completes successfully - e.g. when the registry returns no digest or - // returns it in a format that the builder doesn't understand. - ImageDigest string `json:"imageDigest,omitempty" protobuf:"bytes,1,opt,name=imageDigest"` -} - -// BuildSourceType is the type of SCM used. -type BuildSourceType string - -// Valid values for BuildSourceType. -const ( - //BuildSourceGit instructs a build to use a Git source control repository as the build input. - BuildSourceGit BuildSourceType = "Git" - // BuildSourceDockerfile uses a Dockerfile as the start of a build - BuildSourceDockerfile BuildSourceType = "Dockerfile" - // BuildSourceBinary indicates the build will accept a Binary file as input. - BuildSourceBinary BuildSourceType = "Binary" - // BuildSourceImage indicates the build will accept an image as input - BuildSourceImage BuildSourceType = "Image" - // BuildSourceNone indicates the build has no predefined input (only valid for Source and Custom Strategies) - BuildSourceNone BuildSourceType = "None" -) - -// BuildSource is the SCM used for the build. -type BuildSource struct { - // type of build input to accept - // +k8s:conversion-gen=false - Type BuildSourceType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=BuildSourceType"` - - // binary builds accept a binary as their input. The binary is generally assumed to be a tar, - // gzipped tar, or zip file depending on the strategy. For container image builds, this is the build - // context and an optional Dockerfile may be specified to override any Dockerfile in the - // build context. For Source builds, this is assumed to be an archive as described above. For - // Source and container image builds, if binary.asFile is set the build will receive a directory with - // a single file. contextDir may be used when an archive is provided. Custom builds will - // receive this binary as input on STDIN. - Binary *BinaryBuildSource `json:"binary,omitempty" protobuf:"bytes,2,opt,name=binary"` - - // dockerfile is the raw contents of a Dockerfile which should be built. When this option is - // specified, the FROM may be modified based on your strategy base image and additional ENV - // stanzas from your strategy environment will be added after the FROM, but before the rest - // of your Dockerfile stanzas. The Dockerfile source type may be used with other options like - // git - in those cases the Git repo will have any innate Dockerfile replaced in the context - // dir. - Dockerfile *string `json:"dockerfile,omitempty" protobuf:"bytes,3,opt,name=dockerfile"` - - // git contains optional information about git build source - Git *GitBuildSource `json:"git,omitempty" protobuf:"bytes,4,opt,name=git"` - - // images describes a set of images to be used to provide source for the build - Images []ImageSource `json:"images,omitempty" protobuf:"bytes,5,rep,name=images"` - - // contextDir specifies the sub-directory where the source code for the application exists. - // This allows to have buildable sources in directory other than root of - // repository. - ContextDir string `json:"contextDir,omitempty" protobuf:"bytes,6,opt,name=contextDir"` - - // sourceSecret is the name of a Secret that would be used for setting - // up the authentication for cloning private repository. - // The secret contains valid credentials for remote repository, where the - // data's key represent the authentication method to be used and value is - // the base64 encoded credentials. Supported auth methods are: ssh-privatekey. - SourceSecret *corev1.LocalObjectReference `json:"sourceSecret,omitempty" protobuf:"bytes,7,opt,name=sourceSecret"` - - // secrets represents a list of secrets and their destinations that will - // be used only for the build. - Secrets []SecretBuildSource `json:"secrets,omitempty" protobuf:"bytes,8,rep,name=secrets"` - - // configMaps represents a list of configMaps and their destinations that will - // be used for the build. - ConfigMaps []ConfigMapBuildSource `json:"configMaps,omitempty" protobuf:"bytes,9,rep,name=configMaps"` -} - -// ImageSource is used to describe build source that will be extracted from an image or used during a -// multi stage build. A reference of type ImageStreamTag, ImageStreamImage or DockerImage may be used. -// A pull secret can be specified to pull the image from an external registry or override the default -// service account secret if pulling from the internal registry. Image sources can either be used to -// extract content from an image and place it into the build context along with the repository source, -// or used directly during a multi-stage container image build to allow content to be copied without overwriting -// the contents of the repository source (see the 'paths' and 'as' fields). -type ImageSource struct { - // from is a reference to an ImageStreamTag, ImageStreamImage, or DockerImage to - // copy source from. - From corev1.ObjectReference `json:"from" protobuf:"bytes,1,opt,name=from"` - - // A list of image names that this source will be used in place of during a multi-stage container image - // build. For instance, a Dockerfile that uses "COPY --from=nginx:latest" will first check for an image - // source that has "nginx:latest" in this field before attempting to pull directly. If the Dockerfile - // does not reference an image source it is ignored. This field and paths may both be set, in which case - // the contents will be used twice. - // +optional - As []string `json:"as,omitempty" protobuf:"bytes,4,rep,name=as"` - - // paths is a list of source and destination paths to copy from the image. This content will be copied - // into the build context prior to starting the build. If no paths are set, the build context will - // not be altered. - // +optional - Paths []ImageSourcePath `json:"paths,omitempty" protobuf:"bytes,2,rep,name=paths"` - - // pullSecret is a reference to a secret to be used to pull the image from a registry - // If the image is pulled from the OpenShift registry, this field does not need to be set. - PullSecret *corev1.LocalObjectReference `json:"pullSecret,omitempty" protobuf:"bytes,3,opt,name=pullSecret"` -} - -// ImageSourcePath describes a path to be copied from a source image and its destination within the build directory. -type ImageSourcePath struct { - // sourcePath is the absolute path of the file or directory inside the image to - // copy to the build directory. If the source path ends in /. then the content of - // the directory will be copied, but the directory itself will not be created at the - // destination. - SourcePath string `json:"sourcePath" protobuf:"bytes,1,opt,name=sourcePath"` - - // destinationDir is the relative directory within the build directory - // where files copied from the image are placed. - DestinationDir string `json:"destinationDir" protobuf:"bytes,2,opt,name=destinationDir"` -} - -// SecretBuildSource describes a secret and its destination directory that will be -// used only at the build time. The content of the secret referenced here will -// be copied into the destination directory instead of mounting. -type SecretBuildSource struct { - // secret is a reference to an existing secret that you want to use in your - // build. - Secret corev1.LocalObjectReference `json:"secret" protobuf:"bytes,1,opt,name=secret"` - - // destinationDir is the directory where the files from the secret should be - // available for the build time. - // For the Source build strategy, these will be injected into a container - // where the assemble script runs. Later, when the script finishes, all files - // injected will be truncated to zero length. - // For the container image build strategy, these will be copied into the build - // directory, where the Dockerfile is located, so users can ADD or COPY them - // during container image build. - DestinationDir string `json:"destinationDir,omitempty" protobuf:"bytes,2,opt,name=destinationDir"` -} - -// ConfigMapBuildSource describes a configmap and its destination directory that will be -// used only at the build time. The content of the configmap referenced here will -// be copied into the destination directory instead of mounting. -type ConfigMapBuildSource struct { - // configMap is a reference to an existing configmap that you want to use in your - // build. - ConfigMap corev1.LocalObjectReference `json:"configMap" protobuf:"bytes,1,opt,name=configMap"` - - // destinationDir is the directory where the files from the configmap should be - // available for the build time. - // For the Source build strategy, these will be injected into a container - // where the assemble script runs. - // For the container image build strategy, these will be copied into the build - // directory, where the Dockerfile is located, so users can ADD or COPY them - // during container image build. - DestinationDir string `json:"destinationDir,omitempty" protobuf:"bytes,2,opt,name=destinationDir"` -} - -// BinaryBuildSource describes a binary file to be used for the Docker and Source build strategies, -// where the file will be extracted and used as the build source. -type BinaryBuildSource struct { - // asFile indicates that the provided binary input should be considered a single file - // within the build input. For example, specifying "webapp.war" would place the provided - // binary as `/webapp.war` for the builder. If left empty, the Docker and Source build - // strategies assume this file is a zip, tar, or tar.gz file and extract it as the source. - // The custom strategy receives this binary as standard input. This filename may not - // contain slashes or be '..' or '.'. - AsFile string `json:"asFile,omitempty" protobuf:"bytes,1,opt,name=asFile"` -} - -// SourceRevision is the revision or commit information from the source for the build -type SourceRevision struct { - // type of the build source, may be one of 'Source', 'Dockerfile', 'Binary', or 'Images' - // +k8s:conversion-gen=false - Type BuildSourceType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=BuildSourceType"` - - // Git contains information about git-based build source - Git *GitSourceRevision `json:"git,omitempty" protobuf:"bytes,2,opt,name=git"` -} - -// GitSourceRevision is the commit information from a git source for a build -type GitSourceRevision struct { - // commit is the commit hash identifying a specific commit - Commit string `json:"commit,omitempty" protobuf:"bytes,1,opt,name=commit"` - - // author is the author of a specific commit - Author SourceControlUser `json:"author,omitempty" protobuf:"bytes,2,opt,name=author"` - - // committer is the committer of a specific commit - Committer SourceControlUser `json:"committer,omitempty" protobuf:"bytes,3,opt,name=committer"` - - // message is the description of a specific commit - Message string `json:"message,omitempty" protobuf:"bytes,4,opt,name=message"` -} - -// ProxyConfig defines what proxies to use for an operation -type ProxyConfig struct { - // httpProxy is a proxy used to reach the git repository over http - HTTPProxy *string `json:"httpProxy,omitempty" protobuf:"bytes,3,opt,name=httpProxy"` - - // httpsProxy is a proxy used to reach the git repository over https - HTTPSProxy *string `json:"httpsProxy,omitempty" protobuf:"bytes,4,opt,name=httpsProxy"` - - // noProxy is the list of domains for which the proxy should not be used - NoProxy *string `json:"noProxy,omitempty" protobuf:"bytes,5,opt,name=noProxy"` -} - -// GitBuildSource defines the parameters of a Git SCM -type GitBuildSource struct { - // uri points to the source that will be built. The structure of the source - // will depend on the type of build to run - URI string `json:"uri" protobuf:"bytes,1,opt,name=uri"` - - // ref is the branch/tag/ref to build. - Ref string `json:"ref,omitempty" protobuf:"bytes,2,opt,name=ref"` - - // proxyConfig defines the proxies to use for the git clone operation. Values - // not set here are inherited from cluster-wide build git proxy settings. - ProxyConfig `json:",inline" protobuf:"bytes,3,opt,name=proxyConfig"` -} - -// SourceControlUser defines the identity of a user of source control -type SourceControlUser struct { - // name of the source control user - Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` - - // email of the source control user - Email string `json:"email,omitempty" protobuf:"bytes,2,opt,name=email"` -} - -// BuildStrategy contains the details of how to perform a build. -type BuildStrategy struct { - // type is the kind of build strategy. - // +k8s:conversion-gen=false - Type BuildStrategyType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=BuildStrategyType"` - - // dockerStrategy holds the parameters to the container image build strategy. - DockerStrategy *DockerBuildStrategy `json:"dockerStrategy,omitempty" protobuf:"bytes,2,opt,name=dockerStrategy"` - - // sourceStrategy holds the parameters to the Source build strategy. - SourceStrategy *SourceBuildStrategy `json:"sourceStrategy,omitempty" protobuf:"bytes,3,opt,name=sourceStrategy"` - - // customStrategy holds the parameters to the Custom build strategy - CustomStrategy *CustomBuildStrategy `json:"customStrategy,omitempty" protobuf:"bytes,4,opt,name=customStrategy"` - - // JenkinsPipelineStrategy holds the parameters to the Jenkins Pipeline build strategy. - // Deprecated: use OpenShift Pipelines - JenkinsPipelineStrategy *JenkinsPipelineBuildStrategy `json:"jenkinsPipelineStrategy,omitempty" protobuf:"bytes,5,opt,name=jenkinsPipelineStrategy"` -} - -// BuildStrategyType describes a particular way of performing a build. -type BuildStrategyType string - -// Valid values for BuildStrategyType. -const ( - // DockerBuildStrategyType performs builds using a Dockerfile. - DockerBuildStrategyType BuildStrategyType = "Docker" - - // SourceBuildStrategyType performs builds build using Source To Images with a Git repository - // and a builder image. - SourceBuildStrategyType BuildStrategyType = "Source" - - // CustomBuildStrategyType performs builds using custom builder container image. - CustomBuildStrategyType BuildStrategyType = "Custom" - - // JenkinsPipelineBuildStrategyType indicates the build will run via Jenkine Pipeline. - JenkinsPipelineBuildStrategyType BuildStrategyType = "JenkinsPipeline" -) - -// CustomBuildStrategy defines input parameters specific to Custom build. -type CustomBuildStrategy struct { - // from is reference to an DockerImage, ImageStreamTag, or ImageStreamImage from which - // the container image should be pulled - From corev1.ObjectReference `json:"from" protobuf:"bytes,1,opt,name=from"` - - // pullSecret is the name of a Secret that would be used for setting up - // the authentication for pulling the container images from the private Docker - // registries - PullSecret *corev1.LocalObjectReference `json:"pullSecret,omitempty" protobuf:"bytes,2,opt,name=pullSecret"` - - // env contains additional environment variables you want to pass into a builder container. - Env []corev1.EnvVar `json:"env,omitempty" protobuf:"bytes,3,rep,name=env"` - - // exposeDockerSocket will allow running Docker commands (and build container images) from - // inside the container. - // TODO: Allow admins to enforce 'false' for this option - ExposeDockerSocket bool `json:"exposeDockerSocket,omitempty" protobuf:"varint,4,opt,name=exposeDockerSocket"` - - // forcePull describes if the controller should configure the build pod to always pull the images - // for the builder or only pull if it is not present locally - ForcePull bool `json:"forcePull,omitempty" protobuf:"varint,5,opt,name=forcePull"` - - // secrets is a list of additional secrets that will be included in the build pod - Secrets []SecretSpec `json:"secrets,omitempty" protobuf:"bytes,6,rep,name=secrets"` - - // buildAPIVersion is the requested API version for the Build object serialized and passed to the custom builder - BuildAPIVersion string `json:"buildAPIVersion,omitempty" protobuf:"bytes,7,opt,name=buildAPIVersion"` -} - -// ImageOptimizationPolicy describes what optimizations the builder can perform when building images. -type ImageOptimizationPolicy string - -const ( - // ImageOptimizationNone will generate a canonical container image as produced by the - // `container image build` command. - ImageOptimizationNone ImageOptimizationPolicy = "None" - - // ImageOptimizationSkipLayers is an experimental policy and will avoid creating - // unique layers for each dockerfile line, resulting in smaller images and saving time - // during creation. Some Dockerfile syntax is not fully supported - content added to - // a VOLUME by an earlier layer may have incorrect uid, gid, and filesystem permissions. - // If an unsupported setting is detected, the build will fail. - ImageOptimizationSkipLayers ImageOptimizationPolicy = "SkipLayers" - - // ImageOptimizationSkipLayersAndWarn is the same as SkipLayers, but will only - // warn to the build output instead of failing when unsupported syntax is detected. This - // policy is experimental. - ImageOptimizationSkipLayersAndWarn ImageOptimizationPolicy = "SkipLayersAndWarn" -) - -// DockerBuildStrategy defines input parameters specific to container image build. -type DockerBuildStrategy struct { - // from is a reference to an DockerImage, ImageStreamTag, or ImageStreamImage which overrides - // the FROM image in the Dockerfile for the build. If the Dockerfile uses multi-stage builds, - // this will replace the image in the last FROM directive of the file. - From *corev1.ObjectReference `json:"from,omitempty" protobuf:"bytes,1,opt,name=from"` - - // pullSecret is the name of a Secret that would be used for setting up - // the authentication for pulling the container images from the private Docker - // registries - PullSecret *corev1.LocalObjectReference `json:"pullSecret,omitempty" protobuf:"bytes,2,opt,name=pullSecret"` - - // noCache if set to true indicates that the container image build must be executed with the - // --no-cache=true flag - NoCache bool `json:"noCache,omitempty" protobuf:"varint,3,opt,name=noCache"` - - // env contains additional environment variables you want to pass into a builder container. - Env []corev1.EnvVar `json:"env,omitempty" protobuf:"bytes,4,rep,name=env"` - - // forcePull describes if the builder should pull the images from registry prior to building. - ForcePull bool `json:"forcePull,omitempty" protobuf:"varint,5,opt,name=forcePull"` - - // dockerfilePath is the path of the Dockerfile that will be used to build the container image, - // relative to the root of the context (contextDir). - // Defaults to `Dockerfile` if unset. - DockerfilePath string `json:"dockerfilePath,omitempty" protobuf:"bytes,6,opt,name=dockerfilePath"` - - // buildArgs contains build arguments that will be resolved in the Dockerfile. See - // https://docs.docker.com/engine/reference/builder/#/arg for more details. - BuildArgs []corev1.EnvVar `json:"buildArgs,omitempty" protobuf:"bytes,7,rep,name=buildArgs"` - - // imageOptimizationPolicy describes what optimizations the system can use when building images - // to reduce the final size or time spent building the image. The default policy is 'None' which - // means the final build image will be equivalent to an image created by the container image build API. - // The experimental policy 'SkipLayers' will avoid commiting new layers in between each - // image step, and will fail if the Dockerfile cannot provide compatibility with the 'None' - // policy. An additional experimental policy 'SkipLayersAndWarn' is the same as - // 'SkipLayers' but simply warns if compatibility cannot be preserved. - ImageOptimizationPolicy *ImageOptimizationPolicy `json:"imageOptimizationPolicy,omitempty" protobuf:"bytes,8,opt,name=imageOptimizationPolicy,casttype=ImageOptimizationPolicy"` -} - -// SourceBuildStrategy defines input parameters specific to an Source build. -type SourceBuildStrategy struct { - // from is reference to an DockerImage, ImageStreamTag, or ImageStreamImage from which - // the container image should be pulled - From corev1.ObjectReference `json:"from" protobuf:"bytes,1,opt,name=from"` - - // pullSecret is the name of a Secret that would be used for setting up - // the authentication for pulling the container images from the private Docker - // registries - PullSecret *corev1.LocalObjectReference `json:"pullSecret,omitempty" protobuf:"bytes,2,opt,name=pullSecret"` - - // env contains additional environment variables you want to pass into a builder container. - Env []corev1.EnvVar `json:"env,omitempty" protobuf:"bytes,3,rep,name=env"` - - // scripts is the location of Source scripts - Scripts string `json:"scripts,omitempty" protobuf:"bytes,4,opt,name=scripts"` - - // incremental flag forces the Source build to do incremental builds if true. - Incremental *bool `json:"incremental,omitempty" protobuf:"varint,5,opt,name=incremental"` - - // forcePull describes if the builder should pull the images from registry prior to building. - ForcePull bool `json:"forcePull,omitempty" protobuf:"varint,6,opt,name=forcePull"` - - // deprecated json field, do not reuse: runtimeImage - // +k8s:protobuf-deprecated=runtimeImage,7 - - // deprecated json field, do not reuse: runtimeArtifacts - // +k8s:protobuf-deprecated=runtimeArtifacts,8 - -} - -// JenkinsPipelineBuildStrategy holds parameters specific to a Jenkins Pipeline build. -// Deprecated: use OpenShift Pipelines -type JenkinsPipelineBuildStrategy struct { - // JenkinsfilePath is the optional path of the Jenkinsfile that will be used to configure the pipeline - // relative to the root of the context (contextDir). If both JenkinsfilePath & Jenkinsfile are - // both not specified, this defaults to Jenkinsfile in the root of the specified contextDir. - JenkinsfilePath string `json:"jenkinsfilePath,omitempty" protobuf:"bytes,1,opt,name=jenkinsfilePath"` - - // Jenkinsfile defines the optional raw contents of a Jenkinsfile which defines a Jenkins pipeline build. - Jenkinsfile string `json:"jenkinsfile,omitempty" protobuf:"bytes,2,opt,name=jenkinsfile"` - - // env contains additional environment variables you want to pass into a build pipeline. - Env []corev1.EnvVar `json:"env,omitempty" protobuf:"bytes,3,rep,name=env"` -} - -// A BuildPostCommitSpec holds a build post commit hook specification. The hook -// executes a command in a temporary container running the build output image, -// immediately after the last layer of the image is committed and before the -// image is pushed to a registry. The command is executed with the current -// working directory ($PWD) set to the image's WORKDIR. -// -// The build will be marked as failed if the hook execution fails. It will fail -// if the script or command return a non-zero exit code, or if there is any -// other error related to starting the temporary container. -// -// There are five different ways to configure the hook. As an example, all forms -// below are equivalent and will execute `rake test --verbose`. -// -// 1. Shell script: -// -// "postCommit": { -// "script": "rake test --verbose", -// } -// -// The above is a convenient form which is equivalent to: -// -// "postCommit": { -// "command": ["/bin/sh", "-ic"], -// "args": ["rake test --verbose"] -// } -// -// 2. A command as the image entrypoint: -// -// "postCommit": { -// "commit": ["rake", "test", "--verbose"] -// } -// -// Command overrides the image entrypoint in the exec form, as documented in -// Docker: https://docs.docker.com/engine/reference/builder/#entrypoint. -// -// 3. Pass arguments to the default entrypoint: -// -// "postCommit": { -// "args": ["rake", "test", "--verbose"] -// } -// -// This form is only useful if the image entrypoint can handle arguments. -// -// 4. Shell script with arguments: -// -// "postCommit": { -// "script": "rake test $1", -// "args": ["--verbose"] -// } -// -// This form is useful if you need to pass arguments that would otherwise be -// hard to quote properly in the shell script. In the script, $0 will be -// "/bin/sh" and $1, $2, etc, are the positional arguments from Args. -// -// 5. Command with arguments: -// -// "postCommit": { -// "command": ["rake", "test"], -// "args": ["--verbose"] -// } -// -// This form is equivalent to appending the arguments to the Command slice. -// -// It is invalid to provide both Script and Command simultaneously. If none of -// the fields are specified, the hook is not executed. -type BuildPostCommitSpec struct { - // command is the command to run. It may not be specified with Script. - // This might be needed if the image doesn't have `/bin/sh`, or if you - // do not want to use a shell. In all other cases, using Script might be - // more convenient. - Command []string `json:"command,omitempty" protobuf:"bytes,1,rep,name=command"` - // args is a list of arguments that are provided to either Command, - // Script or the container image's default entrypoint. The arguments are - // placed immediately after the command to be run. - Args []string `json:"args,omitempty" protobuf:"bytes,2,rep,name=args"` - // script is a shell script to be run with `/bin/sh -ic`. It may not be - // specified with Command. Use Script when a shell script is appropriate - // to execute the post build hook, for example for running unit tests - // with `rake test`. If you need control over the image entrypoint, or - // if the image does not have `/bin/sh`, use Command and/or Args. - // The `-i` flag is needed to support CentOS and RHEL images that use - // Software Collections (SCL), in order to have the appropriate - // collections enabled in the shell. E.g., in the Ruby image, this is - // necessary to make `ruby`, `bundle` and other binaries available in - // the PATH. - Script string `json:"script,omitempty" protobuf:"bytes,3,opt,name=script"` -} - -// BuildOutput is input to a build strategy and describes the container image that the strategy -// should produce. -type BuildOutput struct { - // to defines an optional location to push the output of this build to. - // Kind must be one of 'ImageStreamTag' or 'DockerImage'. - // This value will be used to look up a container image repository to push to. - // In the case of an ImageStreamTag, the ImageStreamTag will be looked for in the namespace of - // the build unless Namespace is specified. - To *corev1.ObjectReference `json:"to,omitempty" protobuf:"bytes,1,opt,name=to"` - - // PushSecret is the name of a Secret that would be used for setting - // up the authentication for executing the Docker push to authentication - // enabled Docker Registry (or Docker Hub). - PushSecret *corev1.LocalObjectReference `json:"pushSecret,omitempty" protobuf:"bytes,2,opt,name=pushSecret"` - - // imageLabels define a list of labels that are applied to the resulting image. If there - // are multiple labels with the same name then the last one in the list is used. - ImageLabels []ImageLabel `json:"imageLabels,omitempty" protobuf:"bytes,3,rep,name=imageLabels"` -} - -// ImageLabel represents a label applied to the resulting image. -type ImageLabel struct { - // name defines the name of the label. It must have non-zero length. - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - - // value defines the literal value of the label. - Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` -} - -// +genclient -// +genclient:method=Instantiate,verb=create,subresource=instantiate,input=BuildRequest,result=Build -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Build configurations define a build process for new container images. There are three types of builds possible - a container image build using a Dockerfile, a Source-to-Image build that uses a specially prepared base image that accepts source code that it can make runnable, and a custom build that can run // arbitrary container images as a base and accept the build parameters. Builds run on the cluster and on completion are pushed to the container image registry specified in the "output" section. A build can be triggered via a webhook, when the base image changes, or when a user manually requests a new build be // created. -// -// Each build created by a build configuration is numbered and refers back to its parent configuration. Multiple builds can be triggered at once. Builds that do not have "output" set can be used to test code or run a verification build. -type BuildConfig struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // spec holds all the input necessary to produce a new build, and the conditions when - // to trigger them. - Spec BuildConfigSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` - // status holds any relevant information about a build config - // +optional - Status BuildConfigStatus `json:"status" protobuf:"bytes,3,opt,name=status"` -} - -// BuildConfigSpec describes when and how builds are created -type BuildConfigSpec struct { - - //triggers determine how new Builds can be launched from a BuildConfig. If - //no triggers are defined, a new build can only occur as a result of an - //explicit client build creation. - // +optional - Triggers []BuildTriggerPolicy `json:"triggers,omitempty" protobuf:"bytes,1,rep,name=triggers"` - - // RunPolicy describes how the new build created from this build - // configuration will be scheduled for execution. - // This is optional, if not specified we default to "Serial". - RunPolicy BuildRunPolicy `json:"runPolicy,omitempty" protobuf:"bytes,2,opt,name=runPolicy,casttype=BuildRunPolicy"` - - // CommonSpec is the desired build specification - CommonSpec `json:",inline" protobuf:"bytes,3,opt,name=commonSpec"` - - // successfulBuildsHistoryLimit is the number of old successful builds to retain. - // When a BuildConfig is created, the 5 most recent successful builds are retained unless this value is set. - // If removed after the BuildConfig has been created, all successful builds are retained. - SuccessfulBuildsHistoryLimit *int32 `json:"successfulBuildsHistoryLimit,omitempty" protobuf:"varint,4,opt,name=successfulBuildsHistoryLimit"` - - // failedBuildsHistoryLimit is the number of old failed builds to retain. - // When a BuildConfig is created, the 5 most recent failed builds are retained unless this value is set. - // If removed after the BuildConfig has been created, all failed builds are retained. - FailedBuildsHistoryLimit *int32 `json:"failedBuildsHistoryLimit,omitempty" protobuf:"varint,5,opt,name=failedBuildsHistoryLimit"` -} - -// BuildRunPolicy defines the behaviour of how the new builds are executed -// from the existing build configuration. -type BuildRunPolicy string - -const ( - // BuildRunPolicyParallel schedules new builds immediately after they are - // created. Builds will be executed in parallel. - BuildRunPolicyParallel BuildRunPolicy = "Parallel" - - // BuildRunPolicySerial schedules new builds to execute in a sequence as - // they are created. Every build gets queued up and will execute when the - // previous build completes. This is the default policy. - BuildRunPolicySerial BuildRunPolicy = "Serial" - - // BuildRunPolicySerialLatestOnly schedules only the latest build to execute, - // cancelling all the previously queued build. - BuildRunPolicySerialLatestOnly BuildRunPolicy = "SerialLatestOnly" -) - -// BuildConfigStatus contains current state of the build config object. -type BuildConfigStatus struct { - // lastVersion is used to inform about number of last triggered build. - LastVersion int64 `json:"lastVersion" protobuf:"varint,1,opt,name=lastVersion"` -} - -// SecretLocalReference contains information that points to the local secret being used -type SecretLocalReference struct { - // Name is the name of the resource in the same namespace being referenced - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` -} - -// WebHookTrigger is a trigger that gets invoked using a webhook type of post -type WebHookTrigger struct { - // secret used to validate requests. - // Deprecated: use SecretReference instead. - Secret string `json:"secret,omitempty" protobuf:"bytes,1,opt,name=secret"` - - // allowEnv determines whether the webhook can set environment variables; can only - // be set to true for GenericWebHook. - AllowEnv bool `json:"allowEnv,omitempty" protobuf:"varint,2,opt,name=allowEnv"` - - // secretReference is a reference to a secret in the same namespace, - // containing the value to be validated when the webhook is invoked. - // The secret being referenced must contain a key named "WebHookSecretKey", the value - // of which will be checked against the value supplied in the webhook invocation. - SecretReference *SecretLocalReference `json:"secretReference,omitempty" protobuf:"bytes,3,opt,name=secretReference"` -} - -// ImageChangeTrigger allows builds to be triggered when an ImageStream changes -type ImageChangeTrigger struct { - // lastTriggeredImageID is used internally by the ImageChangeController to save last - // used image ID for build - LastTriggeredImageID string `json:"lastTriggeredImageID,omitempty" protobuf:"bytes,1,opt,name=lastTriggeredImageID"` - - // from is a reference to an ImageStreamTag that will trigger a build when updated - // It is optional. If no From is specified, the From image from the build strategy - // will be used. Only one ImageChangeTrigger with an empty From reference is allowed in - // a build configuration. - From *corev1.ObjectReference `json:"from,omitempty" protobuf:"bytes,2,opt,name=from"` - - // paused is true if this trigger is temporarily disabled. Optional. - Paused bool `json:"paused,omitempty" protobuf:"varint,3,opt,name=paused"` -} - -// BuildTriggerPolicy describes a policy for a single trigger that results in a new Build. -type BuildTriggerPolicy struct { - // type is the type of build trigger - Type BuildTriggerType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=BuildTriggerType"` - - // github contains the parameters for a GitHub webhook type of trigger - GitHubWebHook *WebHookTrigger `json:"github,omitempty" protobuf:"bytes,2,opt,name=github"` - - // generic contains the parameters for a Generic webhook type of trigger - GenericWebHook *WebHookTrigger `json:"generic,omitempty" protobuf:"bytes,3,opt,name=generic"` - - // imageChange contains parameters for an ImageChange type of trigger - ImageChange *ImageChangeTrigger `json:"imageChange,omitempty" protobuf:"bytes,4,opt,name=imageChange"` - - // GitLabWebHook contains the parameters for a GitLab webhook type of trigger - GitLabWebHook *WebHookTrigger `json:"gitlab,omitempty" protobuf:"bytes,5,opt,name=gitlab"` - - // BitbucketWebHook contains the parameters for a Bitbucket webhook type of - // trigger - BitbucketWebHook *WebHookTrigger `json:"bitbucket,omitempty" protobuf:"bytes,6,opt,name=bitbucket"` -} - -// BuildTriggerType refers to a specific BuildTriggerPolicy implementation. -type BuildTriggerType string - -const ( - // GitHubWebHookBuildTriggerType represents a trigger that launches builds on - // GitHub webhook invocations - GitHubWebHookBuildTriggerType BuildTriggerType = "GitHub" - GitHubWebHookBuildTriggerTypeDeprecated BuildTriggerType = "github" - - // GenericWebHookBuildTriggerType represents a trigger that launches builds on - // generic webhook invocations - GenericWebHookBuildTriggerType BuildTriggerType = "Generic" - GenericWebHookBuildTriggerTypeDeprecated BuildTriggerType = "generic" - - // GitLabWebHookBuildTriggerType represents a trigger that launches builds on - // GitLab webhook invocations - GitLabWebHookBuildTriggerType BuildTriggerType = "GitLab" - - // BitbucketWebHookBuildTriggerType represents a trigger that launches builds on - // Bitbucket webhook invocations - BitbucketWebHookBuildTriggerType BuildTriggerType = "Bitbucket" - - // ImageChangeBuildTriggerType represents a trigger that launches builds on - // availability of a new version of an image - ImageChangeBuildTriggerType BuildTriggerType = "ImageChange" - ImageChangeBuildTriggerTypeDeprecated BuildTriggerType = "imageChange" - - // ConfigChangeBuildTriggerType will trigger a build on an initial build config creation - // WARNING: In the future the behavior will change to trigger a build on any config change - ConfigChangeBuildTriggerType BuildTriggerType = "ConfigChange" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// BuildList is a collection of Builds. -type BuildList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // items is a list of builds - Items []Build `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// BuildConfigList is a collection of BuildConfigs. -type BuildConfigList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // items is a list of build configs - Items []BuildConfig `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// GenericWebHookEvent is the payload expected for a generic webhook post -type GenericWebHookEvent struct { - // type is the type of source repository - // +k8s:conversion-gen=false - Type BuildSourceType `json:"type,omitempty" protobuf:"bytes,1,opt,name=type,casttype=BuildSourceType"` - - // git is the git information if the Type is BuildSourceGit - Git *GitInfo `json:"git,omitempty" protobuf:"bytes,2,opt,name=git"` - - // env contains additional environment variables you want to pass into a builder container. - // ValueFrom is not supported. - Env []corev1.EnvVar `json:"env,omitempty" protobuf:"bytes,3,rep,name=env"` - - // DockerStrategyOptions contains additional docker-strategy specific options for the build - DockerStrategyOptions *DockerStrategyOptions `json:"dockerStrategyOptions,omitempty" protobuf:"bytes,4,opt,name=dockerStrategyOptions"` -} - -// GitInfo is the aggregated git information for a generic webhook post -type GitInfo struct { - GitBuildSource `json:",inline" protobuf:"bytes,1,opt,name=gitBuildSource"` - GitSourceRevision `json:",inline" protobuf:"bytes,2,opt,name=gitSourceRevision"` - - // Refs is a list of GitRefs for the provided repo - generally sent - // when used from a post-receive hook. This field is optional and is - // used when sending multiple refs - Refs []GitRefInfo `json:"refs" protobuf:"bytes,3,rep,name=refs"` -} - -// GitRefInfo is a single ref -type GitRefInfo struct { - GitBuildSource `json:",inline" protobuf:"bytes,1,opt,name=gitBuildSource"` - GitSourceRevision `json:",inline" protobuf:"bytes,2,opt,name=gitSourceRevision"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// BuildLog is the (unused) resource associated with the build log redirector -type BuildLog struct { - metav1.TypeMeta `json:",inline"` -} - -// DockerStrategyOptions contains extra strategy options for container image builds -type DockerStrategyOptions struct { - // Args contains any build arguments that are to be passed to Docker. See - // https://docs.docker.com/engine/reference/builder/#/arg for more details - BuildArgs []corev1.EnvVar `json:"buildArgs,omitempty" protobuf:"bytes,1,rep,name=buildArgs"` - - // noCache overrides the docker-strategy noCache option in the build config - NoCache *bool `json:"noCache,omitempty" protobuf:"varint,2,opt,name=noCache"` -} - -// SourceStrategyOptions contains extra strategy options for Source builds -type SourceStrategyOptions struct { - // incremental overrides the source-strategy incremental option in the build config - Incremental *bool `json:"incremental,omitempty" protobuf:"varint,1,opt,name=incremental"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// BuildRequest is the resource used to pass parameters to build generator -type BuildRequest struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // revision is the information from the source for a specific repo snapshot. - Revision *SourceRevision `json:"revision,omitempty" protobuf:"bytes,2,opt,name=revision"` - - // triggeredByImage is the Image that triggered this build. - TriggeredByImage *corev1.ObjectReference `json:"triggeredByImage,omitempty" protobuf:"bytes,3,opt,name=triggeredByImage"` - - // from is the reference to the ImageStreamTag that triggered the build. - From *corev1.ObjectReference `json:"from,omitempty" protobuf:"bytes,4,opt,name=from"` - - // binary indicates a request to build from a binary provided to the builder - Binary *BinaryBuildSource `json:"binary,omitempty" protobuf:"bytes,5,opt,name=binary"` - - // lastVersion (optional) is the LastVersion of the BuildConfig that was used - // to generate the build. If the BuildConfig in the generator doesn't match, a build will - // not be generated. - LastVersion *int64 `json:"lastVersion,omitempty" protobuf:"varint,6,opt,name=lastVersion"` - - // env contains additional environment variables you want to pass into a builder container. - Env []corev1.EnvVar `json:"env,omitempty" protobuf:"bytes,7,rep,name=env"` - - // triggeredBy describes which triggers started the most recent update to the - // build configuration and contains information about those triggers. - TriggeredBy []BuildTriggerCause `json:"triggeredBy,omitempty" protobuf:"bytes,8,rep,name=triggeredBy"` - - // DockerStrategyOptions contains additional docker-strategy specific options for the build - DockerStrategyOptions *DockerStrategyOptions `json:"dockerStrategyOptions,omitempty" protobuf:"bytes,9,opt,name=dockerStrategyOptions"` - - // SourceStrategyOptions contains additional source-strategy specific options for the build - SourceStrategyOptions *SourceStrategyOptions `json:"sourceStrategyOptions,omitempty" protobuf:"bytes,10,opt,name=sourceStrategyOptions"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// BinaryBuildRequestOptions are the options required to fully speficy a binary build request -type BinaryBuildRequestOptions struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // asFile determines if the binary should be created as a file within the source rather than extracted as an archive - AsFile string `json:"asFile,omitempty" protobuf:"bytes,2,opt,name=asFile"` - - // TODO: Improve map[string][]string conversion so we can handled nested objects - - // revision.commit is the value identifying a specific commit - Commit string `json:"revision.commit,omitempty" protobuf:"bytes,3,opt,name=revisionCommit"` - - // revision.message is the description of a specific commit - Message string `json:"revision.message,omitempty" protobuf:"bytes,4,opt,name=revisionMessage"` - - // revision.authorName of the source control user - AuthorName string `json:"revision.authorName,omitempty" protobuf:"bytes,5,opt,name=revisionAuthorName"` - - // revision.authorEmail of the source control user - AuthorEmail string `json:"revision.authorEmail,omitempty" protobuf:"bytes,6,opt,name=revisionAuthorEmail"` - - // revision.committerName of the source control user - CommitterName string `json:"revision.committerName,omitempty" protobuf:"bytes,7,opt,name=revisionCommitterName"` - - // revision.committerEmail of the source control user - CommitterEmail string `json:"revision.committerEmail,omitempty" protobuf:"bytes,8,opt,name=revisionCommitterEmail"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// BuildLogOptions is the REST options for a build log -type BuildLogOptions struct { - metav1.TypeMeta `json:",inline"` - - // cointainer for which to stream logs. Defaults to only container if there is one container in the pod. - Container string `json:"container,omitempty" protobuf:"bytes,1,opt,name=container"` - // follow if true indicates that the build log should be streamed until - // the build terminates. - Follow bool `json:"follow,omitempty" protobuf:"varint,2,opt,name=follow"` - // previous returns previous build logs. Defaults to false. - Previous bool `json:"previous,omitempty" protobuf:"varint,3,opt,name=previous"` - // sinceSeconds is a relative time in seconds before the current time from which to show logs. If this value - // precedes the time a pod was started, only logs since the pod start will be returned. - // If this value is in the future, no logs will be returned. - // Only one of sinceSeconds or sinceTime may be specified. - SinceSeconds *int64 `json:"sinceSeconds,omitempty" protobuf:"varint,4,opt,name=sinceSeconds"` - // sinceTime is an RFC3339 timestamp from which to show logs. If this value - // precedes the time a pod was started, only logs since the pod start will be returned. - // If this value is in the future, no logs will be returned. - // Only one of sinceSeconds or sinceTime may be specified. - SinceTime *metav1.Time `json:"sinceTime,omitempty" protobuf:"bytes,5,opt,name=sinceTime"` - // timestamps, If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line - // of log output. Defaults to false. - Timestamps bool `json:"timestamps,omitempty" protobuf:"varint,6,opt,name=timestamps"` - // tailLines, If set, is the number of lines from the end of the logs to show. If not specified, - // logs are shown from the creation of the container or sinceSeconds or sinceTime - TailLines *int64 `json:"tailLines,omitempty" protobuf:"varint,7,opt,name=tailLines"` - // limitBytes, If set, is the number of bytes to read from the server before terminating the - // log output. This may not display a complete final line of logging, and may return - // slightly more or slightly less than the specified limit. - LimitBytes *int64 `json:"limitBytes,omitempty" protobuf:"varint,8,opt,name=limitBytes"` - - // noWait if true causes the call to return immediately even if the build - // is not available yet. Otherwise the server will wait until the build has started. - // TODO: Fix the tag to 'noWait' in v2 - NoWait bool `json:"nowait,omitempty" protobuf:"varint,9,opt,name=nowait"` - - // version of the build for which to view logs. - Version *int64 `json:"version,omitempty" protobuf:"varint,10,opt,name=version"` - - // insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the - // serving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver - // and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real - // kubelet. If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the - // connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept - // the actual log data coming from the real kubelet). - // +optional - InsecureSkipTLSVerifyBackend bool `json:"insecureSkipTLSVerifyBackend,omitempty" protobuf:"varint,11,opt,name=insecureSkipTLSVerifyBackend"` -} - -// SecretSpec specifies a secret to be included in a build pod and its corresponding mount point -type SecretSpec struct { - // secretSource is a reference to the secret - SecretSource corev1.LocalObjectReference `json:"secretSource" protobuf:"bytes,1,opt,name=secretSource"` - - // mountPath is the path at which to mount the secret - MountPath string `json:"mountPath" protobuf:"bytes,2,opt,name=mountPath"` -} diff --git a/vendor/github.com/openshift/api/build/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/build/v1/zz_generated.deepcopy.go deleted file mode 100644 index d7e48fae269e2..0000000000000 --- a/vendor/github.com/openshift/api/build/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,1480 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - corev1 "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 *BinaryBuildRequestOptions) DeepCopyInto(out *BinaryBuildRequestOptions) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BinaryBuildRequestOptions. -func (in *BinaryBuildRequestOptions) DeepCopy() *BinaryBuildRequestOptions { - if in == nil { - return nil - } - out := new(BinaryBuildRequestOptions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *BinaryBuildRequestOptions) 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 *BinaryBuildSource) DeepCopyInto(out *BinaryBuildSource) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BinaryBuildSource. -func (in *BinaryBuildSource) DeepCopy() *BinaryBuildSource { - if in == nil { - return nil - } - out := new(BinaryBuildSource) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BitbucketWebHookCause) DeepCopyInto(out *BitbucketWebHookCause) { - *out = *in - in.CommonWebHookCause.DeepCopyInto(&out.CommonWebHookCause) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BitbucketWebHookCause. -func (in *BitbucketWebHookCause) DeepCopy() *BitbucketWebHookCause { - if in == nil { - return nil - } - out := new(BitbucketWebHookCause) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Build) DeepCopyInto(out *Build) { - *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 Build. -func (in *Build) DeepCopy() *Build { - if in == nil { - return nil - } - out := new(Build) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Build) 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 *BuildCondition) DeepCopyInto(out *BuildCondition) { - *out = *in - in.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime) - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildCondition. -func (in *BuildCondition) DeepCopy() *BuildCondition { - if in == nil { - return nil - } - out := new(BuildCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BuildConfig) DeepCopyInto(out *BuildConfig) { - *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 BuildConfig. -func (in *BuildConfig) DeepCopy() *BuildConfig { - if in == nil { - return nil - } - out := new(BuildConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *BuildConfig) 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 *BuildConfigList) DeepCopyInto(out *BuildConfigList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]BuildConfig, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildConfigList. -func (in *BuildConfigList) DeepCopy() *BuildConfigList { - if in == nil { - return nil - } - out := new(BuildConfigList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *BuildConfigList) 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 *BuildConfigSpec) DeepCopyInto(out *BuildConfigSpec) { - *out = *in - if in.Triggers != nil { - in, out := &in.Triggers, &out.Triggers - *out = make([]BuildTriggerPolicy, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - in.CommonSpec.DeepCopyInto(&out.CommonSpec) - if in.SuccessfulBuildsHistoryLimit != nil { - in, out := &in.SuccessfulBuildsHistoryLimit, &out.SuccessfulBuildsHistoryLimit - *out = new(int32) - **out = **in - } - if in.FailedBuildsHistoryLimit != nil { - in, out := &in.FailedBuildsHistoryLimit, &out.FailedBuildsHistoryLimit - *out = new(int32) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildConfigSpec. -func (in *BuildConfigSpec) DeepCopy() *BuildConfigSpec { - if in == nil { - return nil - } - out := new(BuildConfigSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BuildConfigStatus) DeepCopyInto(out *BuildConfigStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildConfigStatus. -func (in *BuildConfigStatus) DeepCopy() *BuildConfigStatus { - if in == nil { - return nil - } - out := new(BuildConfigStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BuildList) DeepCopyInto(out *BuildList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Build, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildList. -func (in *BuildList) DeepCopy() *BuildList { - if in == nil { - return nil - } - out := new(BuildList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *BuildList) 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 *BuildLog) DeepCopyInto(out *BuildLog) { - *out = *in - out.TypeMeta = in.TypeMeta - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildLog. -func (in *BuildLog) DeepCopy() *BuildLog { - if in == nil { - return nil - } - out := new(BuildLog) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *BuildLog) 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 *BuildLogOptions) DeepCopyInto(out *BuildLogOptions) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.SinceSeconds != nil { - in, out := &in.SinceSeconds, &out.SinceSeconds - *out = new(int64) - **out = **in - } - if in.SinceTime != nil { - in, out := &in.SinceTime, &out.SinceTime - *out = (*in).DeepCopy() - } - if in.TailLines != nil { - in, out := &in.TailLines, &out.TailLines - *out = new(int64) - **out = **in - } - if in.LimitBytes != nil { - in, out := &in.LimitBytes, &out.LimitBytes - *out = new(int64) - **out = **in - } - if in.Version != nil { - in, out := &in.Version, &out.Version - *out = new(int64) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildLogOptions. -func (in *BuildLogOptions) DeepCopy() *BuildLogOptions { - if in == nil { - return nil - } - out := new(BuildLogOptions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *BuildLogOptions) 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 *BuildOutput) DeepCopyInto(out *BuildOutput) { - *out = *in - if in.To != nil { - in, out := &in.To, &out.To - *out = new(corev1.ObjectReference) - **out = **in - } - if in.PushSecret != nil { - in, out := &in.PushSecret, &out.PushSecret - *out = new(corev1.LocalObjectReference) - **out = **in - } - if in.ImageLabels != nil { - in, out := &in.ImageLabels, &out.ImageLabels - *out = make([]ImageLabel, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildOutput. -func (in *BuildOutput) DeepCopy() *BuildOutput { - if in == nil { - return nil - } - out := new(BuildOutput) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BuildPostCommitSpec) DeepCopyInto(out *BuildPostCommitSpec) { - *out = *in - if in.Command != nil { - in, out := &in.Command, &out.Command - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Args != nil { - in, out := &in.Args, &out.Args - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildPostCommitSpec. -func (in *BuildPostCommitSpec) DeepCopy() *BuildPostCommitSpec { - if in == nil { - return nil - } - out := new(BuildPostCommitSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BuildRequest) DeepCopyInto(out *BuildRequest) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Revision != nil { - in, out := &in.Revision, &out.Revision - *out = new(SourceRevision) - (*in).DeepCopyInto(*out) - } - if in.TriggeredByImage != nil { - in, out := &in.TriggeredByImage, &out.TriggeredByImage - *out = new(corev1.ObjectReference) - **out = **in - } - if in.From != nil { - in, out := &in.From, &out.From - *out = new(corev1.ObjectReference) - **out = **in - } - if in.Binary != nil { - in, out := &in.Binary, &out.Binary - *out = new(BinaryBuildSource) - **out = **in - } - if in.LastVersion != nil { - in, out := &in.LastVersion, &out.LastVersion - *out = new(int64) - **out = **in - } - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]corev1.EnvVar, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.TriggeredBy != nil { - in, out := &in.TriggeredBy, &out.TriggeredBy - *out = make([]BuildTriggerCause, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.DockerStrategyOptions != nil { - in, out := &in.DockerStrategyOptions, &out.DockerStrategyOptions - *out = new(DockerStrategyOptions) - (*in).DeepCopyInto(*out) - } - if in.SourceStrategyOptions != nil { - in, out := &in.SourceStrategyOptions, &out.SourceStrategyOptions - *out = new(SourceStrategyOptions) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildRequest. -func (in *BuildRequest) DeepCopy() *BuildRequest { - if in == nil { - return nil - } - out := new(BuildRequest) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *BuildRequest) 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 *BuildSource) DeepCopyInto(out *BuildSource) { - *out = *in - if in.Binary != nil { - in, out := &in.Binary, &out.Binary - *out = new(BinaryBuildSource) - **out = **in - } - if in.Dockerfile != nil { - in, out := &in.Dockerfile, &out.Dockerfile - *out = new(string) - **out = **in - } - if in.Git != nil { - in, out := &in.Git, &out.Git - *out = new(GitBuildSource) - (*in).DeepCopyInto(*out) - } - if in.Images != nil { - in, out := &in.Images, &out.Images - *out = make([]ImageSource, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.SourceSecret != nil { - in, out := &in.SourceSecret, &out.SourceSecret - *out = new(corev1.LocalObjectReference) - **out = **in - } - if in.Secrets != nil { - in, out := &in.Secrets, &out.Secrets - *out = make([]SecretBuildSource, len(*in)) - copy(*out, *in) - } - if in.ConfigMaps != nil { - in, out := &in.ConfigMaps, &out.ConfigMaps - *out = make([]ConfigMapBuildSource, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildSource. -func (in *BuildSource) DeepCopy() *BuildSource { - if in == nil { - return nil - } - out := new(BuildSource) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BuildSpec) DeepCopyInto(out *BuildSpec) { - *out = *in - in.CommonSpec.DeepCopyInto(&out.CommonSpec) - if in.TriggeredBy != nil { - in, out := &in.TriggeredBy, &out.TriggeredBy - *out = make([]BuildTriggerCause, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildSpec. -func (in *BuildSpec) DeepCopy() *BuildSpec { - if in == nil { - return nil - } - out := new(BuildSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BuildStatus) DeepCopyInto(out *BuildStatus) { - *out = *in - if in.StartTimestamp != nil { - in, out := &in.StartTimestamp, &out.StartTimestamp - *out = (*in).DeepCopy() - } - if in.CompletionTimestamp != nil { - in, out := &in.CompletionTimestamp, &out.CompletionTimestamp - *out = (*in).DeepCopy() - } - if in.Config != nil { - in, out := &in.Config, &out.Config - *out = new(corev1.ObjectReference) - **out = **in - } - in.Output.DeepCopyInto(&out.Output) - if in.Stages != nil { - in, out := &in.Stages, &out.Stages - *out = make([]StageInfo, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]BuildCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildStatus. -func (in *BuildStatus) DeepCopy() *BuildStatus { - if in == nil { - return nil - } - out := new(BuildStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BuildStatusOutput) DeepCopyInto(out *BuildStatusOutput) { - *out = *in - if in.To != nil { - in, out := &in.To, &out.To - *out = new(BuildStatusOutputTo) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildStatusOutput. -func (in *BuildStatusOutput) DeepCopy() *BuildStatusOutput { - if in == nil { - return nil - } - out := new(BuildStatusOutput) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BuildStatusOutputTo) DeepCopyInto(out *BuildStatusOutputTo) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildStatusOutputTo. -func (in *BuildStatusOutputTo) DeepCopy() *BuildStatusOutputTo { - if in == nil { - return nil - } - out := new(BuildStatusOutputTo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BuildStrategy) DeepCopyInto(out *BuildStrategy) { - *out = *in - if in.DockerStrategy != nil { - in, out := &in.DockerStrategy, &out.DockerStrategy - *out = new(DockerBuildStrategy) - (*in).DeepCopyInto(*out) - } - if in.SourceStrategy != nil { - in, out := &in.SourceStrategy, &out.SourceStrategy - *out = new(SourceBuildStrategy) - (*in).DeepCopyInto(*out) - } - if in.CustomStrategy != nil { - in, out := &in.CustomStrategy, &out.CustomStrategy - *out = new(CustomBuildStrategy) - (*in).DeepCopyInto(*out) - } - if in.JenkinsPipelineStrategy != nil { - in, out := &in.JenkinsPipelineStrategy, &out.JenkinsPipelineStrategy - *out = new(JenkinsPipelineBuildStrategy) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildStrategy. -func (in *BuildStrategy) DeepCopy() *BuildStrategy { - if in == nil { - return nil - } - out := new(BuildStrategy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BuildTriggerCause) DeepCopyInto(out *BuildTriggerCause) { - *out = *in - if in.GenericWebHook != nil { - in, out := &in.GenericWebHook, &out.GenericWebHook - *out = new(GenericWebHookCause) - (*in).DeepCopyInto(*out) - } - if in.GitHubWebHook != nil { - in, out := &in.GitHubWebHook, &out.GitHubWebHook - *out = new(GitHubWebHookCause) - (*in).DeepCopyInto(*out) - } - if in.ImageChangeBuild != nil { - in, out := &in.ImageChangeBuild, &out.ImageChangeBuild - *out = new(ImageChangeCause) - (*in).DeepCopyInto(*out) - } - if in.GitLabWebHook != nil { - in, out := &in.GitLabWebHook, &out.GitLabWebHook - *out = new(GitLabWebHookCause) - (*in).DeepCopyInto(*out) - } - if in.BitbucketWebHook != nil { - in, out := &in.BitbucketWebHook, &out.BitbucketWebHook - *out = new(BitbucketWebHookCause) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildTriggerCause. -func (in *BuildTriggerCause) DeepCopy() *BuildTriggerCause { - if in == nil { - return nil - } - out := new(BuildTriggerCause) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BuildTriggerPolicy) DeepCopyInto(out *BuildTriggerPolicy) { - *out = *in - if in.GitHubWebHook != nil { - in, out := &in.GitHubWebHook, &out.GitHubWebHook - *out = new(WebHookTrigger) - (*in).DeepCopyInto(*out) - } - if in.GenericWebHook != nil { - in, out := &in.GenericWebHook, &out.GenericWebHook - *out = new(WebHookTrigger) - (*in).DeepCopyInto(*out) - } - if in.ImageChange != nil { - in, out := &in.ImageChange, &out.ImageChange - *out = new(ImageChangeTrigger) - (*in).DeepCopyInto(*out) - } - if in.GitLabWebHook != nil { - in, out := &in.GitLabWebHook, &out.GitLabWebHook - *out = new(WebHookTrigger) - (*in).DeepCopyInto(*out) - } - if in.BitbucketWebHook != nil { - in, out := &in.BitbucketWebHook, &out.BitbucketWebHook - *out = new(WebHookTrigger) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildTriggerPolicy. -func (in *BuildTriggerPolicy) DeepCopy() *BuildTriggerPolicy { - if in == nil { - return nil - } - out := new(BuildTriggerPolicy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CommonSpec) DeepCopyInto(out *CommonSpec) { - *out = *in - in.Source.DeepCopyInto(&out.Source) - if in.Revision != nil { - in, out := &in.Revision, &out.Revision - *out = new(SourceRevision) - (*in).DeepCopyInto(*out) - } - in.Strategy.DeepCopyInto(&out.Strategy) - in.Output.DeepCopyInto(&out.Output) - in.Resources.DeepCopyInto(&out.Resources) - in.PostCommit.DeepCopyInto(&out.PostCommit) - if in.CompletionDeadlineSeconds != nil { - in, out := &in.CompletionDeadlineSeconds, &out.CompletionDeadlineSeconds - *out = new(int64) - **out = **in - } - if in.NodeSelector != nil { - in, out := &in.NodeSelector, &out.NodeSelector - *out = make(OptionalNodeSelector, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonSpec. -func (in *CommonSpec) DeepCopy() *CommonSpec { - if in == nil { - return nil - } - out := new(CommonSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CommonWebHookCause) DeepCopyInto(out *CommonWebHookCause) { - *out = *in - if in.Revision != nil { - in, out := &in.Revision, &out.Revision - *out = new(SourceRevision) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonWebHookCause. -func (in *CommonWebHookCause) DeepCopy() *CommonWebHookCause { - if in == nil { - return nil - } - out := new(CommonWebHookCause) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConfigMapBuildSource) DeepCopyInto(out *ConfigMapBuildSource) { - *out = *in - out.ConfigMap = in.ConfigMap - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapBuildSource. -func (in *ConfigMapBuildSource) DeepCopy() *ConfigMapBuildSource { - if in == nil { - return nil - } - out := new(ConfigMapBuildSource) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CustomBuildStrategy) DeepCopyInto(out *CustomBuildStrategy) { - *out = *in - out.From = in.From - if in.PullSecret != nil { - in, out := &in.PullSecret, &out.PullSecret - *out = new(corev1.LocalObjectReference) - **out = **in - } - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]corev1.EnvVar, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Secrets != nil { - in, out := &in.Secrets, &out.Secrets - *out = make([]SecretSpec, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomBuildStrategy. -func (in *CustomBuildStrategy) DeepCopy() *CustomBuildStrategy { - if in == nil { - return nil - } - out := new(CustomBuildStrategy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DockerBuildStrategy) DeepCopyInto(out *DockerBuildStrategy) { - *out = *in - if in.From != nil { - in, out := &in.From, &out.From - *out = new(corev1.ObjectReference) - **out = **in - } - if in.PullSecret != nil { - in, out := &in.PullSecret, &out.PullSecret - *out = new(corev1.LocalObjectReference) - **out = **in - } - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]corev1.EnvVar, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.BuildArgs != nil { - in, out := &in.BuildArgs, &out.BuildArgs - *out = make([]corev1.EnvVar, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.ImageOptimizationPolicy != nil { - in, out := &in.ImageOptimizationPolicy, &out.ImageOptimizationPolicy - *out = new(ImageOptimizationPolicy) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DockerBuildStrategy. -func (in *DockerBuildStrategy) DeepCopy() *DockerBuildStrategy { - if in == nil { - return nil - } - out := new(DockerBuildStrategy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DockerStrategyOptions) DeepCopyInto(out *DockerStrategyOptions) { - *out = *in - if in.BuildArgs != nil { - in, out := &in.BuildArgs, &out.BuildArgs - *out = make([]corev1.EnvVar, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.NoCache != nil { - in, out := &in.NoCache, &out.NoCache - *out = new(bool) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DockerStrategyOptions. -func (in *DockerStrategyOptions) DeepCopy() *DockerStrategyOptions { - if in == nil { - return nil - } - out := new(DockerStrategyOptions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GenericWebHookCause) DeepCopyInto(out *GenericWebHookCause) { - *out = *in - if in.Revision != nil { - in, out := &in.Revision, &out.Revision - *out = new(SourceRevision) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GenericWebHookCause. -func (in *GenericWebHookCause) DeepCopy() *GenericWebHookCause { - if in == nil { - return nil - } - out := new(GenericWebHookCause) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GenericWebHookEvent) DeepCopyInto(out *GenericWebHookEvent) { - *out = *in - if in.Git != nil { - in, out := &in.Git, &out.Git - *out = new(GitInfo) - (*in).DeepCopyInto(*out) - } - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]corev1.EnvVar, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.DockerStrategyOptions != nil { - in, out := &in.DockerStrategyOptions, &out.DockerStrategyOptions - *out = new(DockerStrategyOptions) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GenericWebHookEvent. -func (in *GenericWebHookEvent) DeepCopy() *GenericWebHookEvent { - if in == nil { - return nil - } - out := new(GenericWebHookEvent) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GitBuildSource) DeepCopyInto(out *GitBuildSource) { - *out = *in - in.ProxyConfig.DeepCopyInto(&out.ProxyConfig) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitBuildSource. -func (in *GitBuildSource) DeepCopy() *GitBuildSource { - if in == nil { - return nil - } - out := new(GitBuildSource) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GitHubWebHookCause) DeepCopyInto(out *GitHubWebHookCause) { - *out = *in - if in.Revision != nil { - in, out := &in.Revision, &out.Revision - *out = new(SourceRevision) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHubWebHookCause. -func (in *GitHubWebHookCause) DeepCopy() *GitHubWebHookCause { - if in == nil { - return nil - } - out := new(GitHubWebHookCause) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GitInfo) DeepCopyInto(out *GitInfo) { - *out = *in - in.GitBuildSource.DeepCopyInto(&out.GitBuildSource) - out.GitSourceRevision = in.GitSourceRevision - if in.Refs != nil { - in, out := &in.Refs, &out.Refs - *out = make([]GitRefInfo, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitInfo. -func (in *GitInfo) DeepCopy() *GitInfo { - if in == nil { - return nil - } - out := new(GitInfo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GitLabWebHookCause) DeepCopyInto(out *GitLabWebHookCause) { - *out = *in - in.CommonWebHookCause.DeepCopyInto(&out.CommonWebHookCause) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitLabWebHookCause. -func (in *GitLabWebHookCause) DeepCopy() *GitLabWebHookCause { - if in == nil { - return nil - } - out := new(GitLabWebHookCause) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GitRefInfo) DeepCopyInto(out *GitRefInfo) { - *out = *in - in.GitBuildSource.DeepCopyInto(&out.GitBuildSource) - out.GitSourceRevision = in.GitSourceRevision - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRefInfo. -func (in *GitRefInfo) DeepCopy() *GitRefInfo { - if in == nil { - return nil - } - out := new(GitRefInfo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GitSourceRevision) DeepCopyInto(out *GitSourceRevision) { - *out = *in - out.Author = in.Author - out.Committer = in.Committer - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitSourceRevision. -func (in *GitSourceRevision) DeepCopy() *GitSourceRevision { - if in == nil { - return nil - } - out := new(GitSourceRevision) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageChangeCause) DeepCopyInto(out *ImageChangeCause) { - *out = *in - if in.FromRef != nil { - in, out := &in.FromRef, &out.FromRef - *out = new(corev1.ObjectReference) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageChangeCause. -func (in *ImageChangeCause) DeepCopy() *ImageChangeCause { - if in == nil { - return nil - } - out := new(ImageChangeCause) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageChangeTrigger) DeepCopyInto(out *ImageChangeTrigger) { - *out = *in - if in.From != nil { - in, out := &in.From, &out.From - *out = new(corev1.ObjectReference) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageChangeTrigger. -func (in *ImageChangeTrigger) DeepCopy() *ImageChangeTrigger { - if in == nil { - return nil - } - out := new(ImageChangeTrigger) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageLabel) DeepCopyInto(out *ImageLabel) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageLabel. -func (in *ImageLabel) DeepCopy() *ImageLabel { - if in == nil { - return nil - } - out := new(ImageLabel) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageSource) DeepCopyInto(out *ImageSource) { - *out = *in - out.From = in.From - if in.As != nil { - in, out := &in.As, &out.As - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Paths != nil { - in, out := &in.Paths, &out.Paths - *out = make([]ImageSourcePath, len(*in)) - copy(*out, *in) - } - if in.PullSecret != nil { - in, out := &in.PullSecret, &out.PullSecret - *out = new(corev1.LocalObjectReference) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSource. -func (in *ImageSource) DeepCopy() *ImageSource { - if in == nil { - return nil - } - out := new(ImageSource) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageSourcePath) DeepCopyInto(out *ImageSourcePath) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSourcePath. -func (in *ImageSourcePath) DeepCopy() *ImageSourcePath { - if in == nil { - return nil - } - out := new(ImageSourcePath) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *JenkinsPipelineBuildStrategy) DeepCopyInto(out *JenkinsPipelineBuildStrategy) { - *out = *in - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]corev1.EnvVar, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsPipelineBuildStrategy. -func (in *JenkinsPipelineBuildStrategy) DeepCopy() *JenkinsPipelineBuildStrategy { - if in == nil { - return nil - } - out := new(JenkinsPipelineBuildStrategy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in OptionalNodeSelector) DeepCopyInto(out *OptionalNodeSelector) { - { - in := &in - *out = make(OptionalNodeSelector, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OptionalNodeSelector. -func (in OptionalNodeSelector) DeepCopy() OptionalNodeSelector { - if in == nil { - return nil - } - out := new(OptionalNodeSelector) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProxyConfig) DeepCopyInto(out *ProxyConfig) { - *out = *in - if in.HTTPProxy != nil { - in, out := &in.HTTPProxy, &out.HTTPProxy - *out = new(string) - **out = **in - } - if in.HTTPSProxy != nil { - in, out := &in.HTTPSProxy, &out.HTTPSProxy - *out = new(string) - **out = **in - } - if in.NoProxy != nil { - in, out := &in.NoProxy, &out.NoProxy - *out = new(string) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyConfig. -func (in *ProxyConfig) DeepCopy() *ProxyConfig { - if in == nil { - return nil - } - out := new(ProxyConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SecretBuildSource) DeepCopyInto(out *SecretBuildSource) { - *out = *in - out.Secret = in.Secret - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretBuildSource. -func (in *SecretBuildSource) DeepCopy() *SecretBuildSource { - if in == nil { - return nil - } - out := new(SecretBuildSource) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SecretLocalReference) DeepCopyInto(out *SecretLocalReference) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretLocalReference. -func (in *SecretLocalReference) DeepCopy() *SecretLocalReference { - if in == nil { - return nil - } - out := new(SecretLocalReference) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SecretSpec) DeepCopyInto(out *SecretSpec) { - *out = *in - out.SecretSource = in.SecretSource - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretSpec. -func (in *SecretSpec) DeepCopy() *SecretSpec { - if in == nil { - return nil - } - out := new(SecretSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SourceBuildStrategy) DeepCopyInto(out *SourceBuildStrategy) { - *out = *in - out.From = in.From - if in.PullSecret != nil { - in, out := &in.PullSecret, &out.PullSecret - *out = new(corev1.LocalObjectReference) - **out = **in - } - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]corev1.EnvVar, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Incremental != nil { - in, out := &in.Incremental, &out.Incremental - *out = new(bool) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SourceBuildStrategy. -func (in *SourceBuildStrategy) DeepCopy() *SourceBuildStrategy { - if in == nil { - return nil - } - out := new(SourceBuildStrategy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SourceControlUser) DeepCopyInto(out *SourceControlUser) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SourceControlUser. -func (in *SourceControlUser) DeepCopy() *SourceControlUser { - if in == nil { - return nil - } - out := new(SourceControlUser) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SourceRevision) DeepCopyInto(out *SourceRevision) { - *out = *in - if in.Git != nil { - in, out := &in.Git, &out.Git - *out = new(GitSourceRevision) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SourceRevision. -func (in *SourceRevision) DeepCopy() *SourceRevision { - if in == nil { - return nil - } - out := new(SourceRevision) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SourceStrategyOptions) DeepCopyInto(out *SourceStrategyOptions) { - *out = *in - if in.Incremental != nil { - in, out := &in.Incremental, &out.Incremental - *out = new(bool) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SourceStrategyOptions. -func (in *SourceStrategyOptions) DeepCopy() *SourceStrategyOptions { - if in == nil { - return nil - } - out := new(SourceStrategyOptions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StageInfo) DeepCopyInto(out *StageInfo) { - *out = *in - in.StartTime.DeepCopyInto(&out.StartTime) - if in.Steps != nil { - in, out := &in.Steps, &out.Steps - *out = make([]StepInfo, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StageInfo. -func (in *StageInfo) DeepCopy() *StageInfo { - if in == nil { - return nil - } - out := new(StageInfo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StepInfo) DeepCopyInto(out *StepInfo) { - *out = *in - in.StartTime.DeepCopyInto(&out.StartTime) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StepInfo. -func (in *StepInfo) DeepCopy() *StepInfo { - if in == nil { - return nil - } - out := new(StepInfo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WebHookTrigger) DeepCopyInto(out *WebHookTrigger) { - *out = *in - if in.SecretReference != nil { - in, out := &in.SecretReference, &out.SecretReference - *out = new(SecretLocalReference) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebHookTrigger. -func (in *WebHookTrigger) DeepCopy() *WebHookTrigger { - if in == nil { - return nil - } - out := new(WebHookTrigger) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/github.com/openshift/api/build/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/build/v1/zz_generated.swagger_doc_generated.go deleted file mode 100644 index f54e07222b5ce..0000000000000 --- a/vendor/github.com/openshift/api/build/v1/zz_generated.swagger_doc_generated.go +++ /dev/null @@ -1,629 +0,0 @@ -package v1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE -var map_BinaryBuildRequestOptions = map[string]string{ - "": "BinaryBuildRequestOptions are the options required to fully speficy a binary build request", - "asFile": "asFile determines if the binary should be created as a file within the source rather than extracted as an archive", - "revision.commit": "revision.commit is the value identifying a specific commit", - "revision.message": "revision.message is the description of a specific commit", - "revision.authorName": "revision.authorName of the source control user", - "revision.authorEmail": "revision.authorEmail of the source control user", - "revision.committerName": "revision.committerName of the source control user", - "revision.committerEmail": "revision.committerEmail of the source control user", -} - -func (BinaryBuildRequestOptions) SwaggerDoc() map[string]string { - return map_BinaryBuildRequestOptions -} - -var map_BinaryBuildSource = map[string]string{ - "": "BinaryBuildSource describes a binary file to be used for the Docker and Source build strategies, where the file will be extracted and used as the build source.", - "asFile": "asFile indicates that the provided binary input should be considered a single file within the build input. For example, specifying \"webapp.war\" would place the provided binary as `/webapp.war` for the builder. If left empty, the Docker and Source build strategies assume this file is a zip, tar, or tar.gz file and extract it as the source. The custom strategy receives this binary as standard input. This filename may not contain slashes or be '..' or '.'.", -} - -func (BinaryBuildSource) SwaggerDoc() map[string]string { - return map_BinaryBuildSource -} - -var map_BitbucketWebHookCause = map[string]string{ - "": "BitbucketWebHookCause has information about a Bitbucket webhook that triggered a build.", -} - -func (BitbucketWebHookCause) SwaggerDoc() map[string]string { - return map_BitbucketWebHookCause -} - -var map_Build = map[string]string{ - "": "Build encapsulates the inputs needed to produce a new deployable image, as well as the status of the execution and a reference to the Pod which executed the build.", - "spec": "spec is all the inputs used to execute the build.", - "status": "status is the current status of the build.", -} - -func (Build) SwaggerDoc() map[string]string { - return map_Build -} - -var map_BuildCondition = map[string]string{ - "": "BuildCondition describes the state of a build at a certain point.", - "type": "Type of build condition.", - "status": "Status of the condition, one of True, False, Unknown.", - "lastUpdateTime": "The last time this condition was updated.", - "lastTransitionTime": "The last time the condition transitioned from one status to another.", - "reason": "The reason for the condition's last transition.", - "message": "A human readable message indicating details about the transition.", -} - -func (BuildCondition) SwaggerDoc() map[string]string { - return map_BuildCondition -} - -var map_BuildConfig = map[string]string{ - "": "Build configurations define a build process for new container images. There are three types of builds possible - a container image build using a Dockerfile, a Source-to-Image build that uses a specially prepared base image that accepts source code that it can make runnable, and a custom build that can run // arbitrary container images as a base and accept the build parameters. Builds run on the cluster and on completion are pushed to the container image registry specified in the \"output\" section. A build can be triggered via a webhook, when the base image changes, or when a user manually requests a new build be // created.\n\nEach build created by a build configuration is numbered and refers back to its parent configuration. Multiple builds can be triggered at once. Builds that do not have \"output\" set can be used to test code or run a verification build.", - "spec": "spec holds all the input necessary to produce a new build, and the conditions when to trigger them.", - "status": "status holds any relevant information about a build config", -} - -func (BuildConfig) SwaggerDoc() map[string]string { - return map_BuildConfig -} - -var map_BuildConfigList = map[string]string{ - "": "BuildConfigList is a collection of BuildConfigs.", - "items": "items is a list of build configs", -} - -func (BuildConfigList) SwaggerDoc() map[string]string { - return map_BuildConfigList -} - -var map_BuildConfigSpec = map[string]string{ - "": "BuildConfigSpec describes when and how builds are created", - "triggers": "triggers determine how new Builds can be launched from a BuildConfig. If no triggers are defined, a new build can only occur as a result of an explicit client build creation.", - "runPolicy": "RunPolicy describes how the new build created from this build configuration will be scheduled for execution. This is optional, if not specified we default to \"Serial\".", - "successfulBuildsHistoryLimit": "successfulBuildsHistoryLimit is the number of old successful builds to retain. When a BuildConfig is created, the 5 most recent successful builds are retained unless this value is set. If removed after the BuildConfig has been created, all successful builds are retained.", - "failedBuildsHistoryLimit": "failedBuildsHistoryLimit is the number of old failed builds to retain. When a BuildConfig is created, the 5 most recent failed builds are retained unless this value is set. If removed after the BuildConfig has been created, all failed builds are retained.", -} - -func (BuildConfigSpec) SwaggerDoc() map[string]string { - return map_BuildConfigSpec -} - -var map_BuildConfigStatus = map[string]string{ - "": "BuildConfigStatus contains current state of the build config object.", - "lastVersion": "lastVersion is used to inform about number of last triggered build.", -} - -func (BuildConfigStatus) SwaggerDoc() map[string]string { - return map_BuildConfigStatus -} - -var map_BuildList = map[string]string{ - "": "BuildList is a collection of Builds.", - "items": "items is a list of builds", -} - -func (BuildList) SwaggerDoc() map[string]string { - return map_BuildList -} - -var map_BuildLog = map[string]string{ - "": "BuildLog is the (unused) resource associated with the build log redirector", -} - -func (BuildLog) SwaggerDoc() map[string]string { - return map_BuildLog -} - -var map_BuildLogOptions = map[string]string{ - "": "BuildLogOptions is the REST options for a build log", - "container": "cointainer for which to stream logs. Defaults to only container if there is one container in the pod.", - "follow": "follow if true indicates that the build log should be streamed until the build terminates.", - "previous": "previous returns previous build logs. Defaults to false.", - "sinceSeconds": "sinceSeconds is a relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.", - "sinceTime": "sinceTime is an RFC3339 timestamp from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.", - "timestamps": "timestamps, If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.", - "tailLines": "tailLines, If set, is the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime", - "limitBytes": "limitBytes, If set, is the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.", - "nowait": "noWait if true causes the call to return immediately even if the build is not available yet. Otherwise the server will wait until the build has started.", - "version": "version of the build for which to view logs.", - "insecureSkipTLSVerifyBackend": "insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the serving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real kubelet. If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept the actual log data coming from the real kubelet).", -} - -func (BuildLogOptions) SwaggerDoc() map[string]string { - return map_BuildLogOptions -} - -var map_BuildOutput = map[string]string{ - "": "BuildOutput is input to a build strategy and describes the container image that the strategy should produce.", - "to": "to defines an optional location to push the output of this build to. Kind must be one of 'ImageStreamTag' or 'DockerImage'. This value will be used to look up a container image repository to push to. In the case of an ImageStreamTag, the ImageStreamTag will be looked for in the namespace of the build unless Namespace is specified.", - "pushSecret": "PushSecret is the name of a Secret that would be used for setting up the authentication for executing the Docker push to authentication enabled Docker Registry (or Docker Hub).", - "imageLabels": "imageLabels define a list of labels that are applied to the resulting image. If there are multiple labels with the same name then the last one in the list is used.", -} - -func (BuildOutput) SwaggerDoc() map[string]string { - return map_BuildOutput -} - -var map_BuildPostCommitSpec = map[string]string{ - "": "A BuildPostCommitSpec holds a build post commit hook specification. The hook executes a command in a temporary container running the build output image, immediately after the last layer of the image is committed and before the image is pushed to a registry. The command is executed with the current working directory ($PWD) set to the image's WORKDIR.\n\nThe build will be marked as failed if the hook execution fails. It will fail if the script or command return a non-zero exit code, or if there is any other error related to starting the temporary container.\n\nThere are five different ways to configure the hook. As an example, all forms below are equivalent and will execute `rake test --verbose`.\n\n1. Shell script:\n\n \"postCommit\": {\n \"script\": \"rake test --verbose\",\n }\n\n The above is a convenient form which is equivalent to:\n\n \"postCommit\": {\n \"command\": [\"/bin/sh\", \"-ic\"],\n \"args\": [\"rake test --verbose\"]\n }\n\n2. A command as the image entrypoint:\n\n \"postCommit\": {\n \"commit\": [\"rake\", \"test\", \"--verbose\"]\n }\n\n Command overrides the image entrypoint in the exec form, as documented in\n Docker: https://docs.docker.com/engine/reference/builder/#entrypoint.\n\n3. Pass arguments to the default entrypoint:\n\n \"postCommit\": {\n\t\t \"args\": [\"rake\", \"test\", \"--verbose\"]\n\t }\n\n This form is only useful if the image entrypoint can handle arguments.\n\n4. Shell script with arguments:\n\n \"postCommit\": {\n \"script\": \"rake test $1\",\n \"args\": [\"--verbose\"]\n }\n\n This form is useful if you need to pass arguments that would otherwise be\n hard to quote properly in the shell script. In the script, $0 will be\n \"/bin/sh\" and $1, $2, etc, are the positional arguments from Args.\n\n5. Command with arguments:\n\n \"postCommit\": {\n \"command\": [\"rake\", \"test\"],\n \"args\": [\"--verbose\"]\n }\n\n This form is equivalent to appending the arguments to the Command slice.\n\nIt is invalid to provide both Script and Command simultaneously. If none of the fields are specified, the hook is not executed.", - "command": "command is the command to run. It may not be specified with Script. This might be needed if the image doesn't have `/bin/sh`, or if you do not want to use a shell. In all other cases, using Script might be more convenient.", - "args": "args is a list of arguments that are provided to either Command, Script or the container image's default entrypoint. The arguments are placed immediately after the command to be run.", - "script": "script is a shell script to be run with `/bin/sh -ic`. It may not be specified with Command. Use Script when a shell script is appropriate to execute the post build hook, for example for running unit tests with `rake test`. If you need control over the image entrypoint, or if the image does not have `/bin/sh`, use Command and/or Args. The `-i` flag is needed to support CentOS and RHEL images that use Software Collections (SCL), in order to have the appropriate collections enabled in the shell. E.g., in the Ruby image, this is necessary to make `ruby`, `bundle` and other binaries available in the PATH.", -} - -func (BuildPostCommitSpec) SwaggerDoc() map[string]string { - return map_BuildPostCommitSpec -} - -var map_BuildRequest = map[string]string{ - "": "BuildRequest is the resource used to pass parameters to build generator", - "revision": "revision is the information from the source for a specific repo snapshot.", - "triggeredByImage": "triggeredByImage is the Image that triggered this build.", - "from": "from is the reference to the ImageStreamTag that triggered the build.", - "binary": "binary indicates a request to build from a binary provided to the builder", - "lastVersion": "lastVersion (optional) is the LastVersion of the BuildConfig that was used to generate the build. If the BuildConfig in the generator doesn't match, a build will not be generated.", - "env": "env contains additional environment variables you want to pass into a builder container.", - "triggeredBy": "triggeredBy describes which triggers started the most recent update to the build configuration and contains information about those triggers.", - "dockerStrategyOptions": "DockerStrategyOptions contains additional docker-strategy specific options for the build", - "sourceStrategyOptions": "SourceStrategyOptions contains additional source-strategy specific options for the build", -} - -func (BuildRequest) SwaggerDoc() map[string]string { - return map_BuildRequest -} - -var map_BuildSource = map[string]string{ - "": "BuildSource is the SCM used for the build.", - "type": "type of build input to accept", - "binary": "binary builds accept a binary as their input. The binary is generally assumed to be a tar, gzipped tar, or zip file depending on the strategy. For container image builds, this is the build context and an optional Dockerfile may be specified to override any Dockerfile in the build context. For Source builds, this is assumed to be an archive as described above. For Source and container image builds, if binary.asFile is set the build will receive a directory with a single file. contextDir may be used when an archive is provided. Custom builds will receive this binary as input on STDIN.", - "dockerfile": "dockerfile is the raw contents of a Dockerfile which should be built. When this option is specified, the FROM may be modified based on your strategy base image and additional ENV stanzas from your strategy environment will be added after the FROM, but before the rest of your Dockerfile stanzas. The Dockerfile source type may be used with other options like git - in those cases the Git repo will have any innate Dockerfile replaced in the context dir.", - "git": "git contains optional information about git build source", - "images": "images describes a set of images to be used to provide source for the build", - "contextDir": "contextDir specifies the sub-directory where the source code for the application exists. This allows to have buildable sources in directory other than root of repository.", - "sourceSecret": "sourceSecret is the name of a Secret that would be used for setting up the authentication for cloning private repository. The secret contains valid credentials for remote repository, where the data's key represent the authentication method to be used and value is the base64 encoded credentials. Supported auth methods are: ssh-privatekey.", - "secrets": "secrets represents a list of secrets and their destinations that will be used only for the build.", - "configMaps": "configMaps represents a list of configMaps and their destinations that will be used for the build.", -} - -func (BuildSource) SwaggerDoc() map[string]string { - return map_BuildSource -} - -var map_BuildSpec = map[string]string{ - "": "BuildSpec has the information to represent a build and also additional information about a build", - "triggeredBy": "triggeredBy describes which triggers started the most recent update to the build configuration and contains information about those triggers.", -} - -func (BuildSpec) SwaggerDoc() map[string]string { - return map_BuildSpec -} - -var map_BuildStatus = map[string]string{ - "": "BuildStatus contains the status of a build", - "phase": "phase is the point in the build lifecycle. Possible values are \"New\", \"Pending\", \"Running\", \"Complete\", \"Failed\", \"Error\", and \"Cancelled\".", - "cancelled": "cancelled describes if a cancel event was triggered for the build.", - "reason": "reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.", - "message": "message is a human-readable message indicating details about why the build has this status.", - "startTimestamp": "startTimestamp is a timestamp representing the server time when this Build started running in a Pod. It is represented in RFC3339 form and is in UTC.", - "completionTimestamp": "completionTimestamp is a timestamp representing the server time when this Build was finished, whether that build failed or succeeded. It reflects the time at which the Pod running the Build terminated. It is represented in RFC3339 form and is in UTC.", - "duration": "duration contains time.Duration object describing build time.", - "outputDockerImageReference": "outputDockerImageReference contains a reference to the container image that will be built by this build. Its value is computed from Build.Spec.Output.To, and should include the registry address, so that it can be used to push and pull the image.", - "config": "config is an ObjectReference to the BuildConfig this Build is based on.", - "output": "output describes the container image the build has produced.", - "stages": "stages contains details about each stage that occurs during the build including start time, duration (in milliseconds), and the steps that occured within each stage.", - "logSnippet": "logSnippet is the last few lines of the build log. This value is only set for builds that failed.", - "conditions": "Conditions represents the latest available observations of a build's current state.", -} - -func (BuildStatus) SwaggerDoc() map[string]string { - return map_BuildStatus -} - -var map_BuildStatusOutput = map[string]string{ - "": "BuildStatusOutput contains the status of the built image.", - "to": "to describes the status of the built image being pushed to a registry.", -} - -func (BuildStatusOutput) SwaggerDoc() map[string]string { - return map_BuildStatusOutput -} - -var map_BuildStatusOutputTo = map[string]string{ - "": "BuildStatusOutputTo describes the status of the built image with regards to image registry to which it was supposed to be pushed.", - "imageDigest": "imageDigest is the digest of the built container image. The digest uniquely identifies the image in the registry to which it was pushed.\n\nPlease note that this field may not always be set even if the push completes successfully - e.g. when the registry returns no digest or returns it in a format that the builder doesn't understand.", -} - -func (BuildStatusOutputTo) SwaggerDoc() map[string]string { - return map_BuildStatusOutputTo -} - -var map_BuildStrategy = map[string]string{ - "": "BuildStrategy contains the details of how to perform a build.", - "type": "type is the kind of build strategy.", - "dockerStrategy": "dockerStrategy holds the parameters to the container image build strategy.", - "sourceStrategy": "sourceStrategy holds the parameters to the Source build strategy.", - "customStrategy": "customStrategy holds the parameters to the Custom build strategy", - "jenkinsPipelineStrategy": "JenkinsPipelineStrategy holds the parameters to the Jenkins Pipeline build strategy. Deprecated: use OpenShift Pipelines", -} - -func (BuildStrategy) SwaggerDoc() map[string]string { - return map_BuildStrategy -} - -var map_BuildTriggerCause = map[string]string{ - "": "BuildTriggerCause holds information about a triggered build. It is used for displaying build trigger data for each build and build configuration in oc describe. It is also used to describe which triggers led to the most recent update in the build configuration.", - "message": "message is used to store a human readable message for why the build was triggered. E.g.: \"Manually triggered by user\", \"Configuration change\",etc.", - "genericWebHook": "genericWebHook holds data about a builds generic webhook trigger.", - "githubWebHook": "gitHubWebHook represents data for a GitHub webhook that fired a specific build.", - "imageChangeBuild": "imageChangeBuild stores information about an imagechange event that triggered a new build.", - "gitlabWebHook": "GitLabWebHook represents data for a GitLab webhook that fired a specific build.", - "bitbucketWebHook": "BitbucketWebHook represents data for a Bitbucket webhook that fired a specific build.", -} - -func (BuildTriggerCause) SwaggerDoc() map[string]string { - return map_BuildTriggerCause -} - -var map_BuildTriggerPolicy = map[string]string{ - "": "BuildTriggerPolicy describes a policy for a single trigger that results in a new Build.", - "type": "type is the type of build trigger", - "github": "github contains the parameters for a GitHub webhook type of trigger", - "generic": "generic contains the parameters for a Generic webhook type of trigger", - "imageChange": "imageChange contains parameters for an ImageChange type of trigger", - "gitlab": "GitLabWebHook contains the parameters for a GitLab webhook type of trigger", - "bitbucket": "BitbucketWebHook contains the parameters for a Bitbucket webhook type of trigger", -} - -func (BuildTriggerPolicy) SwaggerDoc() map[string]string { - return map_BuildTriggerPolicy -} - -var map_CommonSpec = map[string]string{ - "": "CommonSpec encapsulates all the inputs necessary to represent a build.", - "serviceAccount": "serviceAccount is the name of the ServiceAccount to use to run the pod created by this build. The pod will be allowed to use secrets referenced by the ServiceAccount", - "source": "source describes the SCM in use.", - "revision": "revision is the information from the source for a specific repo snapshot. This is optional.", - "strategy": "strategy defines how to perform a build.", - "output": "output describes the container image the Strategy should produce.", - "resources": "resources computes resource requirements to execute the build.", - "postCommit": "postCommit is a build hook executed after the build output image is committed, before it is pushed to a registry.", - "completionDeadlineSeconds": "completionDeadlineSeconds is an optional duration in seconds, counted from the time when a build pod gets scheduled in the system, that the build may be active on a node before the system actively tries to terminate the build; value must be positive integer", - "nodeSelector": "nodeSelector is a selector which must be true for the build pod to fit on a node If nil, it can be overridden by default build nodeselector values for the cluster. If set to an empty map or a map with any values, default build nodeselector values are ignored.", -} - -func (CommonSpec) SwaggerDoc() map[string]string { - return map_CommonSpec -} - -var map_CommonWebHookCause = map[string]string{ - "": "CommonWebHookCause factors out the identical format of these webhook causes into struct so we can share it in the specific causes; it is too late for GitHub and Generic but we can leverage this pattern with GitLab and Bitbucket.", - "revision": "Revision is the git source revision information of the trigger.", - "secret": "Secret is the obfuscated webhook secret that triggered a build.", -} - -func (CommonWebHookCause) SwaggerDoc() map[string]string { - return map_CommonWebHookCause -} - -var map_ConfigMapBuildSource = map[string]string{ - "": "ConfigMapBuildSource describes a configmap and its destination directory that will be used only at the build time. The content of the configmap referenced here will be copied into the destination directory instead of mounting.", - "configMap": "configMap is a reference to an existing configmap that you want to use in your build.", - "destinationDir": "destinationDir is the directory where the files from the configmap should be available for the build time. For the Source build strategy, these will be injected into a container where the assemble script runs. For the container image build strategy, these will be copied into the build directory, where the Dockerfile is located, so users can ADD or COPY them during container image build.", -} - -func (ConfigMapBuildSource) SwaggerDoc() map[string]string { - return map_ConfigMapBuildSource -} - -var map_CustomBuildStrategy = map[string]string{ - "": "CustomBuildStrategy defines input parameters specific to Custom build.", - "from": "from is reference to an DockerImage, ImageStreamTag, or ImageStreamImage from which the container image should be pulled", - "pullSecret": "pullSecret is the name of a Secret that would be used for setting up the authentication for pulling the container images from the private Docker registries", - "env": "env contains additional environment variables you want to pass into a builder container.", - "exposeDockerSocket": "exposeDockerSocket will allow running Docker commands (and build container images) from inside the container.", - "forcePull": "forcePull describes if the controller should configure the build pod to always pull the images for the builder or only pull if it is not present locally", - "secrets": "secrets is a list of additional secrets that will be included in the build pod", - "buildAPIVersion": "buildAPIVersion is the requested API version for the Build object serialized and passed to the custom builder", -} - -func (CustomBuildStrategy) SwaggerDoc() map[string]string { - return map_CustomBuildStrategy -} - -var map_DockerBuildStrategy = map[string]string{ - "": "DockerBuildStrategy defines input parameters specific to container image build.", - "from": "from is a reference to an DockerImage, ImageStreamTag, or ImageStreamImage which overrides the FROM image in the Dockerfile for the build. If the Dockerfile uses multi-stage builds, this will replace the image in the last FROM directive of the file.", - "pullSecret": "pullSecret is the name of a Secret that would be used for setting up the authentication for pulling the container images from the private Docker registries", - "noCache": "noCache if set to true indicates that the container image build must be executed with the --no-cache=true flag", - "env": "env contains additional environment variables you want to pass into a builder container.", - "forcePull": "forcePull describes if the builder should pull the images from registry prior to building.", - "dockerfilePath": "dockerfilePath is the path of the Dockerfile that will be used to build the container image, relative to the root of the context (contextDir). Defaults to `Dockerfile` if unset.", - "buildArgs": "buildArgs contains build arguments that will be resolved in the Dockerfile. See https://docs.docker.com/engine/reference/builder/#/arg for more details.", - "imageOptimizationPolicy": "imageOptimizationPolicy describes what optimizations the system can use when building images to reduce the final size or time spent building the image. The default policy is 'None' which means the final build image will be equivalent to an image created by the container image build API. The experimental policy 'SkipLayers' will avoid commiting new layers in between each image step, and will fail if the Dockerfile cannot provide compatibility with the 'None' policy. An additional experimental policy 'SkipLayersAndWarn' is the same as 'SkipLayers' but simply warns if compatibility cannot be preserved.", -} - -func (DockerBuildStrategy) SwaggerDoc() map[string]string { - return map_DockerBuildStrategy -} - -var map_DockerStrategyOptions = map[string]string{ - "": "DockerStrategyOptions contains extra strategy options for container image builds", - "buildArgs": "Args contains any build arguments that are to be passed to Docker. See https://docs.docker.com/engine/reference/builder/#/arg for more details", - "noCache": "noCache overrides the docker-strategy noCache option in the build config", -} - -func (DockerStrategyOptions) SwaggerDoc() map[string]string { - return map_DockerStrategyOptions -} - -var map_GenericWebHookCause = map[string]string{ - "": "GenericWebHookCause holds information about a generic WebHook that triggered a build.", - "revision": "revision is an optional field that stores the git source revision information of the generic webhook trigger when it is available.", - "secret": "secret is the obfuscated webhook secret that triggered a build.", -} - -func (GenericWebHookCause) SwaggerDoc() map[string]string { - return map_GenericWebHookCause -} - -var map_GenericWebHookEvent = map[string]string{ - "": "GenericWebHookEvent is the payload expected for a generic webhook post", - "type": "type is the type of source repository", - "git": "git is the git information if the Type is BuildSourceGit", - "env": "env contains additional environment variables you want to pass into a builder container. ValueFrom is not supported.", - "dockerStrategyOptions": "DockerStrategyOptions contains additional docker-strategy specific options for the build", -} - -func (GenericWebHookEvent) SwaggerDoc() map[string]string { - return map_GenericWebHookEvent -} - -var map_GitBuildSource = map[string]string{ - "": "GitBuildSource defines the parameters of a Git SCM", - "uri": "uri points to the source that will be built. The structure of the source will depend on the type of build to run", - "ref": "ref is the branch/tag/ref to build.", -} - -func (GitBuildSource) SwaggerDoc() map[string]string { - return map_GitBuildSource -} - -var map_GitHubWebHookCause = map[string]string{ - "": "GitHubWebHookCause has information about a GitHub webhook that triggered a build.", - "revision": "revision is the git revision information of the trigger.", - "secret": "secret is the obfuscated webhook secret that triggered a build.", -} - -func (GitHubWebHookCause) SwaggerDoc() map[string]string { - return map_GitHubWebHookCause -} - -var map_GitInfo = map[string]string{ - "": "GitInfo is the aggregated git information for a generic webhook post", - "refs": "Refs is a list of GitRefs for the provided repo - generally sent when used from a post-receive hook. This field is optional and is used when sending multiple refs", -} - -func (GitInfo) SwaggerDoc() map[string]string { - return map_GitInfo -} - -var map_GitLabWebHookCause = map[string]string{ - "": "GitLabWebHookCause has information about a GitLab webhook that triggered a build.", -} - -func (GitLabWebHookCause) SwaggerDoc() map[string]string { - return map_GitLabWebHookCause -} - -var map_GitRefInfo = map[string]string{ - "": "GitRefInfo is a single ref", -} - -func (GitRefInfo) SwaggerDoc() map[string]string { - return map_GitRefInfo -} - -var map_GitSourceRevision = map[string]string{ - "": "GitSourceRevision is the commit information from a git source for a build", - "commit": "commit is the commit hash identifying a specific commit", - "author": "author is the author of a specific commit", - "committer": "committer is the committer of a specific commit", - "message": "message is the description of a specific commit", -} - -func (GitSourceRevision) SwaggerDoc() map[string]string { - return map_GitSourceRevision -} - -var map_ImageChangeCause = map[string]string{ - "": "ImageChangeCause contains information about the image that triggered a build", - "imageID": "imageID is the ID of the image that triggered a a new build.", - "fromRef": "fromRef contains detailed information about an image that triggered a build.", -} - -func (ImageChangeCause) SwaggerDoc() map[string]string { - return map_ImageChangeCause -} - -var map_ImageChangeTrigger = map[string]string{ - "": "ImageChangeTrigger allows builds to be triggered when an ImageStream changes", - "lastTriggeredImageID": "lastTriggeredImageID is used internally by the ImageChangeController to save last used image ID for build", - "from": "from is a reference to an ImageStreamTag that will trigger a build when updated It is optional. If no From is specified, the From image from the build strategy will be used. Only one ImageChangeTrigger with an empty From reference is allowed in a build configuration.", - "paused": "paused is true if this trigger is temporarily disabled. Optional.", -} - -func (ImageChangeTrigger) SwaggerDoc() map[string]string { - return map_ImageChangeTrigger -} - -var map_ImageLabel = map[string]string{ - "": "ImageLabel represents a label applied to the resulting image.", - "name": "name defines the name of the label. It must have non-zero length.", - "value": "value defines the literal value of the label.", -} - -func (ImageLabel) SwaggerDoc() map[string]string { - return map_ImageLabel -} - -var map_ImageSource = map[string]string{ - "": "ImageSource is used to describe build source that will be extracted from an image or used during a multi stage build. A reference of type ImageStreamTag, ImageStreamImage or DockerImage may be used. A pull secret can be specified to pull the image from an external registry or override the default service account secret if pulling from the internal registry. Image sources can either be used to extract content from an image and place it into the build context along with the repository source, or used directly during a multi-stage container image build to allow content to be copied without overwriting the contents of the repository source (see the 'paths' and 'as' fields).", - "from": "from is a reference to an ImageStreamTag, ImageStreamImage, or DockerImage to copy source from.", - "as": "A list of image names that this source will be used in place of during a multi-stage container image build. For instance, a Dockerfile that uses \"COPY --from=nginx:latest\" will first check for an image source that has \"nginx:latest\" in this field before attempting to pull directly. If the Dockerfile does not reference an image source it is ignored. This field and paths may both be set, in which case the contents will be used twice.", - "paths": "paths is a list of source and destination paths to copy from the image. This content will be copied into the build context prior to starting the build. If no paths are set, the build context will not be altered.", - "pullSecret": "pullSecret is a reference to a secret to be used to pull the image from a registry If the image is pulled from the OpenShift registry, this field does not need to be set.", -} - -func (ImageSource) SwaggerDoc() map[string]string { - return map_ImageSource -} - -var map_ImageSourcePath = map[string]string{ - "": "ImageSourcePath describes a path to be copied from a source image and its destination within the build directory.", - "sourcePath": "sourcePath is the absolute path of the file or directory inside the image to copy to the build directory. If the source path ends in /. then the content of the directory will be copied, but the directory itself will not be created at the destination.", - "destinationDir": "destinationDir is the relative directory within the build directory where files copied from the image are placed.", -} - -func (ImageSourcePath) SwaggerDoc() map[string]string { - return map_ImageSourcePath -} - -var map_JenkinsPipelineBuildStrategy = map[string]string{ - "": "JenkinsPipelineBuildStrategy holds parameters specific to a Jenkins Pipeline build. Deprecated: use OpenShift Pipelines", - "jenkinsfilePath": "JenkinsfilePath is the optional path of the Jenkinsfile that will be used to configure the pipeline relative to the root of the context (contextDir). If both JenkinsfilePath & Jenkinsfile are both not specified, this defaults to Jenkinsfile in the root of the specified contextDir.", - "jenkinsfile": "Jenkinsfile defines the optional raw contents of a Jenkinsfile which defines a Jenkins pipeline build.", - "env": "env contains additional environment variables you want to pass into a build pipeline.", -} - -func (JenkinsPipelineBuildStrategy) SwaggerDoc() map[string]string { - return map_JenkinsPipelineBuildStrategy -} - -var map_ProxyConfig = map[string]string{ - "": "ProxyConfig defines what proxies to use for an operation", - "httpProxy": "httpProxy is a proxy used to reach the git repository over http", - "httpsProxy": "httpsProxy is a proxy used to reach the git repository over https", - "noProxy": "noProxy is the list of domains for which the proxy should not be used", -} - -func (ProxyConfig) SwaggerDoc() map[string]string { - return map_ProxyConfig -} - -var map_SecretBuildSource = map[string]string{ - "": "SecretBuildSource describes a secret and its destination directory that will be used only at the build time. The content of the secret referenced here will be copied into the destination directory instead of mounting.", - "secret": "secret is a reference to an existing secret that you want to use in your build.", - "destinationDir": "destinationDir is the directory where the files from the secret should be available for the build time. For the Source build strategy, these will be injected into a container where the assemble script runs. Later, when the script finishes, all files injected will be truncated to zero length. For the container image build strategy, these will be copied into the build directory, where the Dockerfile is located, so users can ADD or COPY them during container image build.", -} - -func (SecretBuildSource) SwaggerDoc() map[string]string { - return map_SecretBuildSource -} - -var map_SecretLocalReference = map[string]string{ - "": "SecretLocalReference contains information that points to the local secret being used", - "name": "Name is the name of the resource in the same namespace being referenced", -} - -func (SecretLocalReference) SwaggerDoc() map[string]string { - return map_SecretLocalReference -} - -var map_SecretSpec = map[string]string{ - "": "SecretSpec specifies a secret to be included in a build pod and its corresponding mount point", - "secretSource": "secretSource is a reference to the secret", - "mountPath": "mountPath is the path at which to mount the secret", -} - -func (SecretSpec) SwaggerDoc() map[string]string { - return map_SecretSpec -} - -var map_SourceBuildStrategy = map[string]string{ - "": "SourceBuildStrategy defines input parameters specific to an Source build.", - "from": "from is reference to an DockerImage, ImageStreamTag, or ImageStreamImage from which the container image should be pulled", - "pullSecret": "pullSecret is the name of a Secret that would be used for setting up the authentication for pulling the container images from the private Docker registries", - "env": "env contains additional environment variables you want to pass into a builder container.", - "scripts": "scripts is the location of Source scripts", - "incremental": "incremental flag forces the Source build to do incremental builds if true.", - "forcePull": "forcePull describes if the builder should pull the images from registry prior to building.", -} - -func (SourceBuildStrategy) SwaggerDoc() map[string]string { - return map_SourceBuildStrategy -} - -var map_SourceControlUser = map[string]string{ - "": "SourceControlUser defines the identity of a user of source control", - "name": "name of the source control user", - "email": "email of the source control user", -} - -func (SourceControlUser) SwaggerDoc() map[string]string { - return map_SourceControlUser -} - -var map_SourceRevision = map[string]string{ - "": "SourceRevision is the revision or commit information from the source for the build", - "type": "type of the build source, may be one of 'Source', 'Dockerfile', 'Binary', or 'Images'", - "git": "Git contains information about git-based build source", -} - -func (SourceRevision) SwaggerDoc() map[string]string { - return map_SourceRevision -} - -var map_SourceStrategyOptions = map[string]string{ - "": "SourceStrategyOptions contains extra strategy options for Source builds", - "incremental": "incremental overrides the source-strategy incremental option in the build config", -} - -func (SourceStrategyOptions) SwaggerDoc() map[string]string { - return map_SourceStrategyOptions -} - -var map_StageInfo = map[string]string{ - "": "StageInfo contains details about a build stage.", - "name": "name is a unique identifier for each build stage that occurs.", - "startTime": "startTime is a timestamp representing the server time when this Stage started. It is represented in RFC3339 form and is in UTC.", - "durationMilliseconds": "durationMilliseconds identifies how long the stage took to complete in milliseconds. Note: the duration of a stage can exceed the sum of the duration of the steps within the stage as not all actions are accounted for in explicit build steps.", - "steps": "steps contains details about each step that occurs during a build stage including start time and duration in milliseconds.", -} - -func (StageInfo) SwaggerDoc() map[string]string { - return map_StageInfo -} - -var map_StepInfo = map[string]string{ - "": "StepInfo contains details about a build step.", - "name": "name is a unique identifier for each build step.", - "startTime": "startTime is a timestamp representing the server time when this Step started. it is represented in RFC3339 form and is in UTC.", - "durationMilliseconds": "durationMilliseconds identifies how long the step took to complete in milliseconds.", -} - -func (StepInfo) SwaggerDoc() map[string]string { - return map_StepInfo -} - -var map_WebHookTrigger = map[string]string{ - "": "WebHookTrigger is a trigger that gets invoked using a webhook type of post", - "secret": "secret used to validate requests. Deprecated: use SecretReference instead.", - "allowEnv": "allowEnv determines whether the webhook can set environment variables; can only be set to true for GenericWebHook.", - "secretReference": "secretReference is a reference to a secret in the same namespace, containing the value to be validated when the webhook is invoked. The secret being referenced must contain a key named \"WebHookSecretKey\", the value of which will be checked against the value supplied in the webhook invocation.", -} - -func (WebHookTrigger) SwaggerDoc() map[string]string { - return map_WebHookTrigger -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/github.com/openshift/api/config/v1/0000_00_cluster-version-operator_01_clusteroperator.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_00_cluster-version-operator_01_clusteroperator.crd.yaml deleted file mode 100644 index f7767a124248a..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/0000_00_cluster-version-operator_01_clusteroperator.crd.yaml +++ /dev/null @@ -1,166 +0,0 @@ -kind: CustomResourceDefinition -apiVersion: apiextensions.k8s.io/v1beta1 -metadata: - name: clusteroperators.config.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - additionalPrinterColumns: - - JSONPath: .status.versions[?(@.name=="operator")].version - description: The version the operator is at. - name: Version - type: string - - JSONPath: .status.conditions[?(@.type=="Available")].status - description: Whether the operator is running and stable. - name: Available - type: string - - JSONPath: .status.conditions[?(@.type=="Progressing")].status - description: Whether the operator is processing changes. - name: Progressing - type: string - - JSONPath: .status.conditions[?(@.type=="Degraded")].status - description: Whether the operator is degraded. - name: Degraded - type: string - - JSONPath: .status.conditions[?(@.type=="Available")].lastTransitionTime - description: The time the operator's Available status last changed. - name: Since - type: date - group: config.openshift.io - names: - kind: ClusterOperator - listKind: ClusterOperatorList - plural: clusteroperators - singular: clusteroperator - shortNames: - - co - preserveUnknownFields: false - scope: Cluster - subresources: - status: {} - version: v1 - versions: - - name: v1 - served: true - storage: true - validation: - openAPIV3Schema: - description: ClusterOperator is the Custom Resource object which holds the current - state of an operator. This object is used by operators to convey their state - to the rest of the cluster. - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: spec holds configuration that could apply to any operator. - type: object - status: - description: status holds the information about the state of an operator. It - is consistent with status information across the Kubernetes ecosystem. - type: object - properties: - conditions: - description: conditions describes the state of the operator's managed - and monitored components. - type: array - items: - description: ClusterOperatorStatusCondition represents the state of - the operator's managed and monitored components. - type: object - required: - - lastTransitionTime - - status - - type - properties: - lastTransitionTime: - description: lastTransitionTime is the time of the last update - to the current status property. - type: string - format: date-time - message: - description: message provides additional information about the - current condition. This is only to be consumed by humans. - type: string - reason: - description: reason is the CamelCase reason for the condition's - current status. - type: string - status: - description: status of the condition, one of True, False, Unknown. - type: string - type: - description: type specifies the aspect reported by this condition. - type: string - extension: - description: extension contains any additional status information specific - to the operator which owns this status object. - type: object - nullable: true - x-kubernetes-preserve-unknown-fields: true - relatedObjects: - description: 'relatedObjects is a list of objects that are "interesting" - or related to this operator. Common uses are: 1. the detailed resource - driving the operator 2. operator namespaces 3. operand namespaces' - type: array - items: - description: ObjectReference contains enough information to let you - inspect or modify the referred object. - type: object - required: - - group - - name - - resource - properties: - group: - description: group of the referent. - type: string - name: - description: name of the referent. - type: string - namespace: - description: namespace of the referent. - type: string - resource: - description: resource of the referent. - type: string - versions: - description: versions is a slice of operator and operand version tuples. Operators - which manage multiple operands will have multiple operand entries - in the array. Available operators must report the version of the - operator itself with the name "operator". An operator reports a new - "operator" version when it has rolled out the new version to all of - its operands. - type: array - items: - type: object - required: - - name - - version - properties: - name: - description: name is the name of the particular operand this version - is for. It usually matches container images, not operators. - type: string - version: - description: version indicates which version of a particular operand - is currently being managed. It must always match the Available - operand. If 1.0.0 is Available, then this must indicate 1.0.0 - even if the operator is trying to rollout 1.1.0 - type: string - versions: - - name: v1 - served: true - storage: true diff --git a/vendor/github.com/openshift/api/config/v1/0000_00_cluster-version-operator_01_clusterversion.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_00_cluster-version-operator_01_clusterversion.crd.yaml deleted file mode 100644 index b5dc54376d9b2..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/0000_00_cluster-version-operator_01_clusterversion.crd.yaml +++ /dev/null @@ -1,332 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: clusterversions.config.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - group: config.openshift.io - versions: - - name: v1 - served: true - storage: true - scope: Cluster - subresources: - status: {} - names: - plural: clusterversions - singular: clusterversion - kind: ClusterVersion - preserveUnknownFields: false - additionalPrinterColumns: - - name: Version - type: string - JSONPath: .status.history[?(@.state=="Completed")].version - - name: Available - type: string - JSONPath: .status.conditions[?(@.type=="Available")].status - - name: Progressing - type: string - JSONPath: .status.conditions[?(@.type=="Progressing")].status - - name: Since - type: date - JSONPath: .status.conditions[?(@.type=="Progressing")].lastTransitionTime - - name: Status - type: string - JSONPath: .status.conditions[?(@.type=="Progressing")].message - validation: - openAPIV3Schema: - description: ClusterVersion is the configuration for the ClusterVersionOperator. - This is where parameters related to automatic updates can be set. - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: spec is the desired state of the cluster version - the operator - will work to ensure that the desired version is applied to the cluster. - type: object - required: - - clusterID - properties: - channel: - description: channel is an identifier for explicitly requesting that - a non-default set of updates be applied to this cluster. The default - channel will be contain stable updates that are appropriate for production - clusters. - type: string - clusterID: - description: clusterID uniquely identifies this cluster. This is expected - to be an RFC4122 UUID value (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - in hexadecimal values). This is a required field. - type: string - desiredUpdate: - description: "desiredUpdate is an optional field that indicates the - desired value of the cluster version. Setting this value will trigger - an upgrade (if the current version does not match the desired version). - The set of recommended update values is listed as part of available - updates in status, and setting values outside that range may cause - the upgrade to fail. You may specify the version field without setting - image if an update exists with that version in the availableUpdates - or history. \n If an upgrade fails the operator will halt and report - status about the failing component. Setting the desired update value - back to the previous version will cause a rollback to be attempted. - Not all rollbacks will succeed." - type: object - properties: - force: - description: "force allows an administrator to update to an image - that has failed verification, does not appear in the availableUpdates - list, or otherwise would be blocked by normal protections on update. - This option should only be used when the authenticity of the provided - image has been verified out of band because the provided image - will run with full administrative access to the cluster. Do not - use this flag with images that comes from unknown or potentially - malicious sources. \n This flag does not override other forms - of consistency checking that are required before a new update - is deployed." - type: boolean - image: - description: image is a container image location that contains the - update. When this field is part of spec, image is optional if - version is specified and the availableUpdates field contains a - matching version. - type: string - version: - description: version is a semantic versioning identifying the update - version. When this field is part of spec, version is optional - if image is specified. - type: string - overrides: - description: overrides is list of overides for components that are managed - by cluster version operator. Marking a component unmanaged will prevent - the operator from creating or updating the object. - type: array - items: - description: ComponentOverride allows overriding cluster version operator's - behavior for a component. - type: object - required: - - group - - kind - - name - - namespace - - unmanaged - properties: - group: - description: group identifies the API group that the kind is in. - type: string - kind: - description: kind indentifies which object to override. - type: string - name: - description: name is the component's name. - type: string - namespace: - description: namespace is the component's namespace. If the resource - is cluster scoped, the namespace should be empty. - type: string - unmanaged: - description: 'unmanaged controls if cluster version operator should - stop managing the resources in this cluster. Default: false' - type: boolean - upstream: - description: upstream may be used to specify the preferred update server. - By default it will use the appropriate update server for the cluster - and region. - type: string - status: - description: status contains information about the available updates and - any in-progress updates. - type: object - required: - - availableUpdates - - desired - - observedGeneration - - versionHash - properties: - availableUpdates: - description: availableUpdates contains the list of updates that are - appropriate for this cluster. This list may be empty if no updates - are recommended, if the update service is unavailable, or if an invalid - channel has been specified. - type: array - items: - description: Release represents an OpenShift release image and associated - metadata. - type: object - properties: - channels: - description: channels is the set of Cincinnati channels to which - the release currently belongs. - type: array - items: - type: string - image: - description: image is a container image location that contains - the update. When this field is part of spec, image is optional - if version is specified and the availableUpdates field contains - a matching version. - type: string - url: - description: url contains information about this release. This - URL is set by the 'url' metadata property on a release or the - metadata returned by the update API and should be displayed - as a link in user interfaces. The URL field may not be set for - test or nightly releases. - type: string - version: - description: version is a semantic versioning identifying the - update version. When this field is part of spec, version is - optional if image is specified. - type: string - nullable: true - conditions: - description: conditions provides information about the cluster version. - The condition "Available" is set to true if the desiredUpdate has - been reached. The condition "Progressing" is set to true if an update - is being applied. The condition "Degraded" is set to true if an update - is currently blocked by a temporary or permanent error. Conditions - are only valid for the current desiredUpdate when metadata.generation - is equal to status.generation. - type: array - items: - description: ClusterOperatorStatusCondition represents the state of - the operator's managed and monitored components. - type: object - required: - - lastTransitionTime - - status - - type - properties: - lastTransitionTime: - description: lastTransitionTime is the time of the last update - to the current status property. - type: string - format: date-time - message: - description: message provides additional information about the - current condition. This is only to be consumed by humans. - type: string - reason: - description: reason is the CamelCase reason for the condition's - current status. - type: string - status: - description: status of the condition, one of True, False, Unknown. - type: string - type: - description: type specifies the aspect reported by this condition. - type: string - desired: - description: desired is the version that the cluster is reconciling - towards. If the cluster is not yet fully initialized desired will - be set with the information available, which may be an image or a - tag. - type: object - properties: - channels: - description: channels is the set of Cincinnati channels to which - the release currently belongs. - type: array - items: - type: string - image: - description: image is a container image location that contains the - update. When this field is part of spec, image is optional if - version is specified and the availableUpdates field contains a - matching version. - type: string - url: - description: url contains information about this release. This URL - is set by the 'url' metadata property on a release or the metadata - returned by the update API and should be displayed as a link in - user interfaces. The URL field may not be set for test or nightly - releases. - type: string - version: - description: version is a semantic versioning identifying the update - version. When this field is part of spec, version is optional - if image is specified. - type: string - history: - description: history contains a list of the most recent versions applied - to the cluster. This value may be empty during cluster startup, and - then will be updated when a new update is being applied. The newest - update is first in the list and it is ordered by recency. Updates - in the history have state Completed if the rollout completed - if - an update was failing or halfway applied the state will be Partial. - Only a limited amount of update history is preserved. - type: array - items: - description: UpdateHistory is a single attempted update to the cluster. - type: object - required: - - completionTime - - image - - startedTime - - state - - verified - properties: - completionTime: - description: completionTime, if set, is when the update was fully - applied. The update that is currently being applied will have - a null completion time. Completion time will always be set for - entries that are not the current update (usually to the started - time of the next update). - type: string - format: date-time - nullable: true - image: - description: image is a container image location that contains - the update. This value is always populated. - type: string - startedTime: - description: startedTime is the time at which the update was started. - type: string - format: date-time - state: - description: state reflects whether the update was fully applied. - The Partial state indicates the update is not fully applied, - while the Completed state indicates the update was successfully - rolled out at least once (all parts of the update successfully - applied). - type: string - verified: - description: verified indicates whether the provided update was - properly verified before it was installed. If this is false - the cluster may not be trusted. - type: boolean - version: - description: version is a semantic versioning identifying the - update version. If the requested image does not define a version, - or if a failure occurs retrieving the image, this value may - be empty. - type: string - observedGeneration: - description: observedGeneration reports which version of the spec is - being synced. If this value is not equal to metadata.generation, then - the desired and conditions fields may represent a previous version. - type: integer - format: int64 - versionHash: - description: versionHash is a fingerprint of the content that the cluster - will be updated with. It is used by the operator to avoid unnecessary - work and is for internal use only. - type: string - versions: - - name: v1 - served: true - storage: true diff --git a/vendor/github.com/openshift/api/config/v1/0000_03_config-operator_01_operatorhub.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_03_config-operator_01_operatorhub.crd.yaml deleted file mode 100644 index 19994f42c52fe..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/0000_03_config-operator_01_operatorhub.crd.yaml +++ /dev/null @@ -1,103 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: operatorhubs.config.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - group: config.openshift.io - names: - kind: OperatorHub - listKind: OperatorHubList - plural: operatorhubs - singular: operatorhub - scope: Cluster - preserveUnknownFields: false - subresources: - status: {} - version: v1 - versions: - - name: v1 - served: true - storage: true - "validation": - "openAPIV3Schema": - description: OperatorHub is the Schema for the operatorhubs API. It can be used - to change the state of the default hub sources for OperatorHub on the cluster - from enabled to disabled and vice versa. - type: object - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: OperatorHubSpec defines the desired state of OperatorHub - type: object - properties: - disableAllDefaultSources: - description: disableAllDefaultSources allows you to disable all the - default hub sources. If this is true, a specific entry in sources - can be used to enable a default source. If this is false, a specific - entry in sources can be used to disable or enable a default source. - type: boolean - sources: - description: sources is the list of default hub sources and their configuration. - If the list is empty, it implies that the default hub sources are - enabled on the cluster unless disableAllDefaultSources is true. If - disableAllDefaultSources is true and sources is not empty, the configuration - present in sources will take precedence. The list of default hub sources - and their current state will always be reflected in the status block. - type: array - items: - description: HubSource is used to specify the hub source and its configuration - type: object - properties: - disabled: - description: disabled is used to disable a default hub source - on cluster - type: boolean - name: - description: name is the name of one of the default hub sources - type: string - maxLength: 253 - minLength: 1 - status: - description: OperatorHubStatus defines the observed state of OperatorHub. - The current state of the default hub sources will always be reflected - here. - type: object - properties: - sources: - description: sources encapsulates the result of applying the configuration - for each hub source - type: array - items: - description: HubSourceStatus is used to reflect the current state - of applying the configuration to a default source - type: object - properties: - disabled: - description: disabled is used to disable a default hub source - on cluster - type: boolean - message: - description: message provides more information regarding failures - type: string - name: - description: name is the name of one of the default hub sources - type: string - maxLength: 253 - minLength: 1 - status: - description: status indicates success or failure in applying the - configuration - type: string diff --git a/vendor/github.com/openshift/api/config/v1/0000_03_config-operator_01_proxy.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_03_config-operator_01_proxy.crd.yaml deleted file mode 100644 index b6fb1c48ce7ed..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/0000_03_config-operator_01_proxy.crd.yaml +++ /dev/null @@ -1,102 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: proxies.config.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - group: config.openshift.io - scope: Cluster - preserveUnknownFields: false - versions: - - name: v1 - served: true - storage: true - names: - kind: Proxy - listKind: ProxyList - plural: proxies - singular: proxy - subresources: - status: {} - "validation": - "openAPIV3Schema": - description: Proxy holds cluster-wide information on how to configure default - proxies for the cluster. The canonical name is `cluster` - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: Spec holds user-settable values for the proxy configuration - type: object - properties: - httpProxy: - description: httpProxy is the URL of the proxy for HTTP requests. Empty - means unset and will not result in an env var. - type: string - httpsProxy: - description: httpsProxy is the URL of the proxy for HTTPS requests. Empty - means unset and will not result in an env var. - type: string - noProxy: - description: noProxy is a comma-separated list of hostnames and/or CIDRs - for which the proxy should not be used. Empty means unset and will - not result in an env var. - type: string - readinessEndpoints: - description: readinessEndpoints is a list of endpoints used to verify - readiness of the proxy. - type: array - items: - type: string - trustedCA: - description: "trustedCA is a reference to a ConfigMap containing a CA - certificate bundle. The trustedCA field should only be consumed by - a proxy validator. The validator is responsible for reading the certificate - bundle from the required key \"ca-bundle.crt\", merging it with the - system default trust bundle, and writing the merged trust bundle to - a ConfigMap named \"trusted-ca-bundle\" in the \"openshift-config-managed\" - namespace. Clients that expect to make proxy connections must use - the trusted-ca-bundle for all HTTPS requests to the proxy, and may - use the trusted-ca-bundle for non-proxy HTTPS requests as well. \n - The namespace for the ConfigMap referenced by trustedCA is \"openshift-config\". - Here is an example ConfigMap (in yaml): \n apiVersion: v1 kind: ConfigMap - metadata: name: user-ca-bundle namespace: openshift-config data: - \ ca-bundle.crt: | -----BEGIN CERTIFICATE----- Custom - CA certificate bundle. -----END CERTIFICATE-----" - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced config - map - type: string - status: - description: status holds observed values from the cluster. They may not - be overridden. - type: object - properties: - httpProxy: - description: httpProxy is the URL of the proxy for HTTP requests. - type: string - httpsProxy: - description: httpsProxy is the URL of the proxy for HTTPS requests. - type: string - noProxy: - description: noProxy is a comma-separated list of hostnames and/or CIDRs - for which the proxy should not be used. - type: string diff --git a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_apiserver.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_apiserver.crd.yaml deleted file mode 100644 index 468ad078dae2b..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_apiserver.crd.yaml +++ /dev/null @@ -1,258 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - name: apiservers.config.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - group: config.openshift.io - scope: Cluster - names: - kind: APIServer - singular: apiserver - plural: apiservers - listKind: APIServerList - versions: - - name: v1 - served: true - storage: true - subresources: - status: {} - schema: - "openAPIV3Schema": - description: APIServer holds configuration (like serving certificates, client - CA and CORS domains) shared by all API servers in the system, among them - especially kube-apiserver and openshift-apiserver. The canonical name of - an instance is 'cluster'. - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: spec holds user settable values for configuration - type: object - properties: - additionalCORSAllowedOrigins: - description: additionalCORSAllowedOrigins lists additional, user-defined - regular expressions describing hosts for which the API server allows - access using the CORS headers. This may be needed to access the - API and the integrated OAuth server from JavaScript applications. - The values are regular expressions that correspond to the Golang - regular expression language. - type: array - items: - type: string - audit: - description: audit specifies the settings for audit configuration - to be applied to all OpenShift-provided API servers in the cluster. - type: object - default: - profile: Default - properties: - profile: - description: "profile specifies the name of the desired audit - policy configuration to be deployed to all OpenShift-provided - API servers in the cluster. \n The following profiles are provided: - - Default: the existing default policy. - WriteRequestBodies: - like 'Default', but logs request and response HTTP payloads - for write requests (create, update, patch). - AllRequestBodies: - like 'WriteRequestBodies', but also logs request and response - HTTP payloads for read requests (get, list). \n If unset, the - 'Default' profile is used as the default." - type: string - default: Default - enum: - - Default - - WriteRequestBodies - - AllRequestBodies - clientCA: - description: 'clientCA references a ConfigMap containing a certificate - bundle for the signers that will be recognized for incoming client - certificates in addition to the operator managed signers. If this - is empty, then only operator managed signers are valid. You usually - only have to set this if you have your own PKI you wish to honor - client certificates from. The ConfigMap must exist in the openshift-config - namespace and contain the following required fields: - ConfigMap.Data["ca-bundle.crt"] - - CA bundle.' - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced config - map - type: string - encryption: - description: encryption allows the configuration of encryption of - resources at the datastore layer. - type: object - properties: - type: - description: "type defines what encryption type should be used - to encrypt resources at the datastore layer. When this field - is unset (i.e. when it is set to the empty string), identity - is implied. The behavior of unset can and will change over time. - \ Even if encryption is enabled by default, the meaning of unset - may change to a different encryption type based on changes in - best practices. \n When encryption is enabled, all sensitive - resources shipped with the platform are encrypted. This list - of sensitive resources can and will change over time. The current - authoritative list is: \n 1. secrets 2. configmaps 3. - routes.route.openshift.io 4. oauthaccesstokens.oauth.openshift.io - \ 5. oauthauthorizetokens.oauth.openshift.io" - type: string - enum: - - "" - - identity - - aescbc - servingCerts: - description: servingCert is the TLS cert info for serving secure traffic. - If not specified, operator managed certificates will be used for - serving secure traffic. - type: object - properties: - namedCertificates: - description: namedCertificates references secrets containing the - TLS cert info for serving secure traffic to specific hostnames. - If no named certificates are provided, or no named certificates - match the server name as understood by a client, the defaultServingCertificate - will be used. - type: array - items: - description: APIServerNamedServingCert maps a server DNS name, - as understood by a client, to a certificate. - type: object - properties: - names: - description: names is a optional list of explicit DNS names - (leading wildcards allowed) that should use this certificate - to serve secure traffic. If no names are provided, the - implicit names will be extracted from the certificates. - Exact names trump over wildcard names. Explicit names - defined here trump over extracted implicit names. - type: array - items: - type: string - servingCertificate: - description: 'servingCertificate references a kubernetes.io/tls - type secret containing the TLS cert info for serving secure - traffic. The secret must exist in the openshift-config - namespace and contain the following required fields: - - Secret.Data["tls.key"] - TLS private key. - Secret.Data["tls.crt"] - - TLS certificate.' - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - secret - type: string - tlsSecurityProfile: - description: "tlsSecurityProfile specifies settings for TLS connections - for externally exposed servers. \n If unset, a default (which may - change between releases) is chosen. Note that only Old and Intermediate - profiles are currently supported, and the maximum available MinTLSVersions - is VersionTLS12." - type: object - properties: - custom: - description: "custom is a user-defined TLS security profile. Be - extremely careful using a custom profile as invalid configurations - can be catastrophic. An example custom profile looks like this: - \n ciphers: - ECDHE-ECDSA-CHACHA20-POLY1305 - ECDHE-RSA-CHACHA20-POLY1305 - \ - ECDHE-RSA-AES128-GCM-SHA256 - ECDHE-ECDSA-AES128-GCM-SHA256 - \ minTLSVersion: TLSv1.1" - type: object - properties: - ciphers: - description: "ciphers is used to specify the cipher algorithms - that are negotiated during the TLS handshake. Operators - may remove entries their operands do not support. For example, - to use DES-CBC3-SHA (yaml): \n ciphers: - DES-CBC3-SHA" - type: array - items: - type: string - minTLSVersion: - description: "minTLSVersion is used to specify the minimal - version of the TLS protocol that is negotiated during the - TLS handshake. For example, to use TLS versions 1.1, 1.2 - and 1.3 (yaml): \n minTLSVersion: TLSv1.1 \n NOTE: currently - the highest minTLSVersion allowed is VersionTLS12" - type: string - enum: - - VersionTLS10 - - VersionTLS11 - - VersionTLS12 - - VersionTLS13 - nullable: true - intermediate: - description: "intermediate is a TLS security profile based on: - \n https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28recommended.29 - \n and looks like this (yaml): \n ciphers: - TLS_AES_128_GCM_SHA256 - \ - TLS_AES_256_GCM_SHA384 - TLS_CHACHA20_POLY1305_SHA256 - \ - ECDHE-ECDSA-AES128-GCM-SHA256 - ECDHE-RSA-AES128-GCM-SHA256 - \ - ECDHE-ECDSA-AES256-GCM-SHA384 - ECDHE-RSA-AES256-GCM-SHA384 - \ - ECDHE-ECDSA-CHACHA20-POLY1305 - ECDHE-RSA-CHACHA20-POLY1305 - \ - DHE-RSA-AES128-GCM-SHA256 - DHE-RSA-AES256-GCM-SHA384 - \ minTLSVersion: TLSv1.2" - type: object - nullable: true - modern: - description: "modern is a TLS security profile based on: \n https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility - \n and looks like this (yaml): \n ciphers: - TLS_AES_128_GCM_SHA256 - \ - TLS_AES_256_GCM_SHA384 - TLS_CHACHA20_POLY1305_SHA256 - \ minTLSVersion: TLSv1.3 \n NOTE: Currently unsupported." - type: object - nullable: true - old: - description: "old is a TLS security profile based on: \n https://wiki.mozilla.org/Security/Server_Side_TLS#Old_backward_compatibility - \n and looks like this (yaml): \n ciphers: - TLS_AES_128_GCM_SHA256 - \ - TLS_AES_256_GCM_SHA384 - TLS_CHACHA20_POLY1305_SHA256 - \ - ECDHE-ECDSA-AES128-GCM-SHA256 - ECDHE-RSA-AES128-GCM-SHA256 - \ - ECDHE-ECDSA-AES256-GCM-SHA384 - ECDHE-RSA-AES256-GCM-SHA384 - \ - ECDHE-ECDSA-CHACHA20-POLY1305 - ECDHE-RSA-CHACHA20-POLY1305 - \ - DHE-RSA-AES128-GCM-SHA256 - DHE-RSA-AES256-GCM-SHA384 - \ - DHE-RSA-CHACHA20-POLY1305 - ECDHE-ECDSA-AES128-SHA256 - \ - ECDHE-RSA-AES128-SHA256 - ECDHE-ECDSA-AES128-SHA - \ - ECDHE-RSA-AES128-SHA - ECDHE-ECDSA-AES256-SHA384 - \ - ECDHE-RSA-AES256-SHA384 - ECDHE-ECDSA-AES256-SHA - \ - ECDHE-RSA-AES256-SHA - DHE-RSA-AES128-SHA256 - - DHE-RSA-AES256-SHA256 - AES128-GCM-SHA256 - AES256-GCM-SHA384 - \ - AES128-SHA256 - AES256-SHA256 - AES128-SHA - - AES256-SHA - DES-CBC3-SHA minTLSVersion: TLSv1.0" - type: object - nullable: true - type: - description: "type is one of Old, Intermediate, Modern or Custom. - Custom provides the ability to specify individual TLS security - profile parameters. Old, Intermediate and Modern are TLS security - profiles based on: \n https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations - \n The profiles are intent based, so they may change over time - as new ciphers are developed and existing ciphers are found - to be insecure. Depending on precisely which ciphers are available - to a process, the list may be reduced. \n Note that the Modern - profile is currently not supported because it is not yet well - adopted by common software libraries." - type: string - enum: - - Old - - Intermediate - - Modern - - Custom - status: - description: status holds observed values from the cluster. They may not - be overridden. - type: object diff --git a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_authentication.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_authentication.crd.yaml deleted file mode 100644 index c6de0ac13ab77..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_authentication.crd.yaml +++ /dev/null @@ -1,153 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: authentications.config.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - group: config.openshift.io - names: - kind: Authentication - listKind: AuthenticationList - plural: authentications - singular: authentication - scope: Cluster - preserveUnknownFields: false - subresources: - status: {} - versions: - - name: v1 - served: true - storage: true - "validation": - "openAPIV3Schema": - description: Authentication specifies cluster-wide settings for authentication - (like OAuth and webhook token authenticators). The canonical name of an instance - is `cluster`. - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: spec holds user settable values for configuration - type: object - properties: - oauthMetadata: - description: 'oauthMetadata contains the discovery endpoint data for - OAuth 2.0 Authorization Server Metadata for an external OAuth server. - This discovery document can be viewed from its served location: oc - get --raw ''/.well-known/oauth-authorization-server'' For further - details, see the IETF Draft: https://tools.ietf.org/html/draft-ietf-oauth-discovery-04#section-2 - If oauthMetadata.name is non-empty, this value has precedence over - any metadata reference stored in status. The key "oauthMetadata" is - used to locate the data. If specified and the config map or expected - key is not found, no metadata is served. If the specified metadata - is not valid, no metadata is served. The namespace for this config - map is openshift-config.' - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced config - map - type: string - serviceAccountIssuer: - description: serviceAccountIssuer is the identifier of the bound service - account token issuer. The default is https://kubernetes.default.svc - type: string - type: - description: type identifies the cluster managed, user facing authentication - mode in use. Specifically, it manages the component that responds - to login attempts. The default is IntegratedOAuth. - type: string - webhookTokenAuthenticator: - description: webhookTokenAuthenticator configures a remote token reviewer. - These remote authentication webhooks can be used to verify bearer - tokens via the tokenreviews.authentication.k8s.io REST API. This is - required to honor bearer tokens that are provisioned by an external - authentication service. - type: object - required: - - kubeConfig - properties: - kubeConfig: - description: "kubeConfig references a secret that contains kube - config file data which describes how to access the remote webhook - service. The namespace for the referenced secret is openshift-config. - \n For further details, see: \n https://kubernetes.io/docs/reference/access-authn-authz/authentication/#webhook-token-authentication - \n The key \"kubeConfig\" is used to locate the data. If the secret - or expected key is not found, the webhook is not honored. If the - specified kube config data is not valid, the webhook is not honored." - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced secret - type: string - webhookTokenAuthenticators: - description: webhookTokenAuthenticators is DEPRECATED, setting it has - no effect. - type: array - items: - description: deprecatedWebhookTokenAuthenticator holds the necessary - configuration options for a remote token authenticator. It's the - same as WebhookTokenAuthenticator but it's missing the 'required' - validation on KubeConfig field. - type: object - properties: - kubeConfig: - description: 'kubeConfig contains kube config file data which - describes how to access the remote webhook service. For further - details, see: https://kubernetes.io/docs/reference/access-authn-authz/authentication/#webhook-token-authentication - The key "kubeConfig" is used to locate the data. If the secret - or expected key is not found, the webhook is not honored. If - the specified kube config data is not valid, the webhook is - not honored. The namespace for this secret is determined by - the point of use.' - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced secret - type: string - status: - description: status holds observed values from the cluster. They may not - be overridden. - type: object - properties: - integratedOAuthMetadata: - description: 'integratedOAuthMetadata contains the discovery endpoint - data for OAuth 2.0 Authorization Server Metadata for the in-cluster - integrated OAuth server. This discovery document can be viewed from - its served location: oc get --raw ''/.well-known/oauth-authorization-server'' - For further details, see the IETF Draft: https://tools.ietf.org/html/draft-ietf-oauth-discovery-04#section-2 - This contains the observed value based on cluster state. An explicitly - set value in spec.oauthMetadata has precedence over this field. This - field has no meaning if authentication spec.type is not set to IntegratedOAuth. - The key "oauthMetadata" is used to locate the data. If the config - map or expected key is not found, no metadata is served. If the specified - metadata is not valid, no metadata is served. The namespace for this - config map is openshift-config-managed.' - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced config - map - type: string diff --git a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_build.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_build.crd.yaml deleted file mode 100644 index 9bd6113608e5d..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_build.crd.yaml +++ /dev/null @@ -1,390 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: builds.config.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - group: config.openshift.io - scope: Cluster - preserveUnknownFields: false - names: - kind: Build - singular: build - plural: builds - listKind: BuildList - versions: - - name: v1 - served: true - storage: true - subresources: - status: {} - "validation": - "openAPIV3Schema": - description: "Build configures the behavior of OpenShift builds for the entire - cluster. This includes default settings that can be overridden in BuildConfig - objects, and overrides which are applied to all builds. \n The canonical name - is \"cluster\"" - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: Spec holds user-settable values for the build controller configuration - type: object - properties: - additionalTrustedCA: - description: "AdditionalTrustedCA is a reference to a ConfigMap containing - additional CAs that should be trusted for image pushes and pulls during - builds. The namespace for this config map is openshift-config. \n - DEPRECATED: Additional CAs for image pull and push should be set on - image.config.openshift.io/cluster instead." - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced config - map - type: string - buildDefaults: - description: BuildDefaults controls the default information for Builds - type: object - properties: - defaultProxy: - description: "DefaultProxy contains the default proxy settings for - all build operations, including image pull/push and source download. - \n Values can be overrode by setting the `HTTP_PROXY`, `HTTPS_PROXY`, - and `NO_PROXY` environment variables in the build config's strategy." - type: object - properties: - httpProxy: - description: httpProxy is the URL of the proxy for HTTP requests. Empty - means unset and will not result in an env var. - type: string - httpsProxy: - description: httpsProxy is the URL of the proxy for HTTPS requests. Empty - means unset and will not result in an env var. - type: string - noProxy: - description: noProxy is a comma-separated list of hostnames - and/or CIDRs for which the proxy should not be used. Empty - means unset and will not result in an env var. - type: string - readinessEndpoints: - description: readinessEndpoints is a list of endpoints used - to verify readiness of the proxy. - type: array - items: - type: string - trustedCA: - description: "trustedCA is a reference to a ConfigMap containing - a CA certificate bundle. The trustedCA field should only be - consumed by a proxy validator. The validator is responsible - for reading the certificate bundle from the required key \"ca-bundle.crt\", - merging it with the system default trust bundle, and writing - the merged trust bundle to a ConfigMap named \"trusted-ca-bundle\" - in the \"openshift-config-managed\" namespace. Clients that - expect to make proxy connections must use the trusted-ca-bundle - for all HTTPS requests to the proxy, and may use the trusted-ca-bundle - for non-proxy HTTPS requests as well. \n The namespace for - the ConfigMap referenced by trustedCA is \"openshift-config\". - Here is an example ConfigMap (in yaml): \n apiVersion: v1 - kind: ConfigMap metadata: name: user-ca-bundle namespace: - openshift-config data: ca-bundle.crt: | -----BEGIN - CERTIFICATE----- Custom CA certificate bundle. -----END - CERTIFICATE-----" - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - config map - type: string - env: - description: Env is a set of default environment variables that - will be applied to the build if the specified variables do not - exist on the build - type: array - items: - description: EnvVar represents an environment variable present - in a Container. - type: object - required: - - name - properties: - name: - description: Name of the environment variable. Must be a C_IDENTIFIER. - type: string - value: - description: 'Variable references $(VAR_NAME) are expanded - using the previous defined environment variables in the - container and any service environment variables. If a variable - cannot be resolved, the reference in the input string will - be unchanged. The $(VAR_NAME) syntax can be escaped with - a double $$, ie: $$(VAR_NAME). Escaped references will never - be expanded, regardless of whether the variable exists or - not. Defaults to "".' - type: string - valueFrom: - description: Source for the environment variable's value. - Cannot be used if value is not empty. - type: object - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - type: object - required: - - key - properties: - key: - description: The key to select. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - fieldRef: - description: 'Selects a field of the pod: supports metadata.name, - metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, - status.podIP, status.podIPs.' - type: object - required: - - fieldPath - properties: - apiVersion: - description: Version of the schema the FieldPath is - written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the specified - API version. - type: string - resourceFieldRef: - description: 'Selects a resource of the container: only - resources limits and requests (limits.cpu, limits.memory, - limits.ephemeral-storage, requests.cpu, requests.memory - and requests.ephemeral-storage) are currently supported.' - type: object - required: - - resource - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - description: Specifies the output format of the exposed - resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - type: object - required: - - key - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, - uid?' - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - gitProxy: - description: "GitProxy contains the proxy settings for git operations - only. If set, this will override any Proxy settings for all git - commands, such as git clone. \n Values that are not set here will - be inherited from DefaultProxy." - type: object - properties: - httpProxy: - description: httpProxy is the URL of the proxy for HTTP requests. Empty - means unset and will not result in an env var. - type: string - httpsProxy: - description: httpsProxy is the URL of the proxy for HTTPS requests. Empty - means unset and will not result in an env var. - type: string - noProxy: - description: noProxy is a comma-separated list of hostnames - and/or CIDRs for which the proxy should not be used. Empty - means unset and will not result in an env var. - type: string - readinessEndpoints: - description: readinessEndpoints is a list of endpoints used - to verify readiness of the proxy. - type: array - items: - type: string - trustedCA: - description: "trustedCA is a reference to a ConfigMap containing - a CA certificate bundle. The trustedCA field should only be - consumed by a proxy validator. The validator is responsible - for reading the certificate bundle from the required key \"ca-bundle.crt\", - merging it with the system default trust bundle, and writing - the merged trust bundle to a ConfigMap named \"trusted-ca-bundle\" - in the \"openshift-config-managed\" namespace. Clients that - expect to make proxy connections must use the trusted-ca-bundle - for all HTTPS requests to the proxy, and may use the trusted-ca-bundle - for non-proxy HTTPS requests as well. \n The namespace for - the ConfigMap referenced by trustedCA is \"openshift-config\". - Here is an example ConfigMap (in yaml): \n apiVersion: v1 - kind: ConfigMap metadata: name: user-ca-bundle namespace: - openshift-config data: ca-bundle.crt: | -----BEGIN - CERTIFICATE----- Custom CA certificate bundle. -----END - CERTIFICATE-----" - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - config map - type: string - imageLabels: - description: ImageLabels is a list of docker labels that are applied - to the resulting image. User can override a default label by providing - a label with the same name in their Build/BuildConfig. - type: array - items: - type: object - properties: - name: - description: Name defines the name of the label. It must have - non-zero length. - type: string - value: - description: Value defines the literal value of the label. - type: string - resources: - description: Resources defines resource requirements to execute - the build. - type: object - properties: - limits: - description: 'Limits describes the maximum amount of compute - resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - additionalProperties: - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - requests: - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' - type: object - additionalProperties: - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - buildOverrides: - description: BuildOverrides controls override settings for builds - type: object - properties: - forcePull: - description: ForcePull overrides, if set, the equivalent value in - the builds, i.e. false disables force pull for all builds, true - enables force pull for all builds, independently of what each - build specifies itself - type: boolean - imageLabels: - description: ImageLabels is a list of docker labels that are applied - to the resulting image. If user provided a label in their Build/BuildConfig - with the same name as one in this list, the user's label will - be overwritten. - type: array - items: - type: object - properties: - name: - description: Name defines the name of the label. It must have - non-zero length. - type: string - value: - description: Value defines the literal value of the label. - type: string - nodeSelector: - description: NodeSelector is a selector which must be true for the - build pod to fit on a node - type: object - additionalProperties: - type: string - tolerations: - description: Tolerations is a list of Tolerations that will override - any existing tolerations set on a build pod. - type: array - items: - description: The pod this Toleration is attached to tolerates - any taint that matches the triple using the - matching operator . - type: object - properties: - effect: - description: Effect indicates the taint effect to match. Empty - means match all taint effects. When specified, allowed values - are NoSchedule, PreferNoSchedule and NoExecute. - type: string - key: - description: Key is the taint key that the toleration applies - to. Empty means match all taint keys. If the key is empty, - operator must be Exists; this combination means to match - all values and all keys. - type: string - operator: - description: Operator represents a key's relationship to the - value. Valid operators are Exists and Equal. Defaults to - Equal. Exists is equivalent to wildcard for value, so that - a pod can tolerate all taints of a particular category. - type: string - tolerationSeconds: - description: TolerationSeconds represents the period of time - the toleration (which must be of effect NoExecute, otherwise - this field is ignored) tolerates the taint. By default, - it is not set, which means tolerate the taint forever (do - not evict). Zero and negative values will be treated as - 0 (evict immediately) by the system. - type: integer - format: int64 - value: - description: Value is the taint value the toleration matches - to. If the operator is Exists, the value should be empty, - otherwise just a regular string. - type: string diff --git a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_console.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_console.crd.yaml deleted file mode 100644 index 4234d732ec537..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_console.crd.yaml +++ /dev/null @@ -1,72 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: consoles.config.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - scope: Cluster - preserveUnknownFields: false - group: config.openshift.io - names: - kind: Console - listKind: ConsoleList - plural: consoles - singular: console - subresources: - status: {} - versions: - - name: v1 - served: true - storage: true - "validation": - "openAPIV3Schema": - description: Console holds cluster-wide configuration for the web console, including - the logout URL, and reports the public URL of the console. The canonical name - is `cluster`. - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: spec holds user settable values for configuration - type: object - properties: - authentication: - description: ConsoleAuthentication defines a list of optional configuration - for console authentication. - type: object - properties: - logoutRedirect: - description: 'An optional, absolute URL to redirect web browsers - to after logging out of the console. If not specified, it will - redirect to the default login page. This is required when using - an identity provider that supports single sign-on (SSO) such as: - - OpenID (Keycloak, Azure) - RequestHeader (GSSAPI, SSPI, SAML) - - OAuth (GitHub, GitLab, Google) Logging out of the console will - destroy the user''s token. The logoutRedirect provides the user - the option to perform single logout (SLO) through the identity - provider to destroy their single sign-on session.' - type: string - pattern: ^$|^((https):\/\/?)[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|\/?))$ - status: - description: status holds observed values from the cluster. They may not - be overridden. - type: object - properties: - consoleURL: - description: The URL for the console. This will be derived from the - host for the route that is created for the console. - type: string diff --git a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_dns.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_dns.crd.yaml deleted file mode 100644 index e864cae7a1259..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_dns.crd.yaml +++ /dev/null @@ -1,102 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: dnses.config.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - group: config.openshift.io - names: - kind: DNS - listKind: DNSList - plural: dnses - singular: dns - scope: Cluster - preserveUnknownFields: false - versions: - - name: v1 - served: true - storage: true - subresources: - status: {} - "validation": - "openAPIV3Schema": - description: DNS holds cluster-wide information about DNS. The canonical name - is `cluster` - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: spec holds user settable values for configuration - type: object - properties: - baseDomain: - description: "baseDomain is the base domain of the cluster. All managed - DNS records will be sub-domains of this base. \n For example, given - the base domain `openshift.example.com`, an API server DNS record - may be created for `cluster-api.openshift.example.com`. \n Once set, - this field cannot be changed." - type: string - privateZone: - description: "privateZone is the location where all the DNS records - that are only available internally to the cluster exist. \n If this - field is nil, no private records should be created. \n Once set, this - field cannot be changed." - type: object - properties: - id: - description: "id is the identifier that can be used to find the - DNS hosted zone. \n on AWS zone can be fetched using `ID` as id - in [1] on Azure zone can be fetched using `ID` as a pre-determined - name in [2], on GCP zone can be fetched using `ID` as a pre-determined - name in [3]. \n [1]: https://docs.aws.amazon.com/cli/latest/reference/route53/get-hosted-zone.html#options - [2]: https://docs.microsoft.com/en-us/cli/azure/network/dns/zone?view=azure-cli-latest#az-network-dns-zone-show - [3]: https://cloud.google.com/dns/docs/reference/v1/managedZones/get" - type: string - tags: - description: "tags can be used to query the DNS hosted zone. \n - on AWS, resourcegroupstaggingapi [1] can be used to fetch a zone - using `Tags` as tag-filters, \n [1]: https://docs.aws.amazon.com/cli/latest/reference/resourcegroupstaggingapi/get-resources.html#options" - type: object - additionalProperties: - type: string - publicZone: - description: "publicZone is the location where all the DNS records that - are publicly accessible to the internet exist. \n If this field is - nil, no public records should be created. \n Once set, this field - cannot be changed." - type: object - properties: - id: - description: "id is the identifier that can be used to find the - DNS hosted zone. \n on AWS zone can be fetched using `ID` as id - in [1] on Azure zone can be fetched using `ID` as a pre-determined - name in [2], on GCP zone can be fetched using `ID` as a pre-determined - name in [3]. \n [1]: https://docs.aws.amazon.com/cli/latest/reference/route53/get-hosted-zone.html#options - [2]: https://docs.microsoft.com/en-us/cli/azure/network/dns/zone?view=azure-cli-latest#az-network-dns-zone-show - [3]: https://cloud.google.com/dns/docs/reference/v1/managedZones/get" - type: string - tags: - description: "tags can be used to query the DNS hosted zone. \n - on AWS, resourcegroupstaggingapi [1] can be used to fetch a zone - using `Tags` as tag-filters, \n [1]: https://docs.aws.amazon.com/cli/latest/reference/resourcegroupstaggingapi/get-resources.html#options" - type: object - additionalProperties: - type: string - status: - description: status holds observed values from the cluster. They may not - be overridden. - type: object diff --git a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_featuregate.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_featuregate.crd.yaml deleted file mode 100644 index ec458de32004d..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_featuregate.crd.yaml +++ /dev/null @@ -1,78 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: featuregates.config.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - group: config.openshift.io - version: v1 - scope: Cluster - preserveUnknownFields: false - names: - kind: FeatureGate - singular: featuregate - plural: featuregates - listKind: FeatureGateList - versions: - - name: v1 - served: true - storage: true - subresources: - status: {} - "validation": - "openAPIV3Schema": - description: Feature holds cluster-wide information about feature gates. The - canonical name is `cluster` - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: spec holds user settable values for configuration - type: object - properties: - customNoUpgrade: - description: customNoUpgrade allows the enabling or disabling of any - feature. Turning this feature set on IS NOT SUPPORTED, CANNOT BE UNDONE, - and PREVENTS UPGRADES. Because of its nature, this setting cannot - be validated. If you have any typos or accidentally apply invalid - combinations your cluster may fail in an unrecoverable way. featureSet - must equal "CustomNoUpgrade" must be set to use this field. - type: object - properties: - disabled: - description: disabled is a list of all feature gates that you want - to force off - type: array - items: - type: string - enabled: - description: enabled is a list of all feature gates that you want - to force on - type: array - items: - type: string - nullable: true - featureSet: - description: featureSet changes the list of features in the cluster. The - default is empty. Be very careful adjusting this setting. Turning - on or off features may cause irreversible changes in your cluster - which cannot be undone. - type: string - status: - description: status holds observed values from the cluster. They may not - be overridden. - type: object diff --git a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_image.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_image.crd.yaml deleted file mode 100644 index 858681c9d864f..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_image.crd.yaml +++ /dev/null @@ -1,146 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: images.config.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - group: config.openshift.io - scope: Cluster - preserveUnknownFields: false - names: - kind: Image - singular: image - plural: images - listKind: ImageList - versions: - - name: v1 - served: true - storage: true - subresources: - status: {} - "validation": - "openAPIV3Schema": - description: Image governs policies related to imagestream imports and runtime - configuration for external registries. It allows cluster admins to configure - which registries OpenShift is allowed to import images from, extra CA trust - bundles for external registries, and policies to block or allow registry hostnames. - When exposing OpenShift's image registry to the public, this also lets cluster - admins specify the external hostname. - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: spec holds user settable values for configuration - type: object - properties: - additionalTrustedCA: - description: additionalTrustedCA is a reference to a ConfigMap containing - additional CAs that should be trusted during imagestream import, pod - image pull, build image pull, and imageregistry pullthrough. The namespace - for this config map is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced config - map - type: string - allowedRegistriesForImport: - description: allowedRegistriesForImport limits the container image registries - that normal users may import images from. Set this list to the registries - that you trust to contain valid Docker images and that you want applications - to be able to import from. Users with permission to create Images - or ImageStreamMappings via the API are not affected by this policy - - typically only administrators or system integrations will have those - permissions. - type: array - items: - description: RegistryLocation contains a location of the registry - specified by the registry domain name. The domain name might include - wildcards, like '*' or '??'. - type: object - properties: - domainName: - description: domainName specifies a domain name for the registry - In case the registry use non-standard (80 or 443) port, the - port should be included in the domain name as well. - type: string - insecure: - description: insecure indicates whether the registry is secure - (https) or insecure (http) By default (if not specified) the - registry is assumed as secure. - type: boolean - externalRegistryHostnames: - description: externalRegistryHostnames provides the hostnames for the - default external image registry. The external hostname should be set - only when the image registry is exposed externally. The first value - is used in 'publicDockerImageRepository' field in ImageStreams. The - value must be in "hostname[:port]" format. - type: array - items: - type: string - registrySources: - description: registrySources contains configuration that determines - how the container runtime should treat individual registries when - accessing images for builds+pods. (e.g. whether or not to allow insecure - access). It does not contain configuration for the internal cluster - registry. - type: object - properties: - allowedRegistries: - description: "allowedRegistries are the only registries permitted - for image pull and push actions. All other registries are denied. - \n Only one of BlockedRegistries or AllowedRegistries may be set." - type: array - items: - type: string - blockedRegistries: - description: "blockedRegistries cannot be used for image pull and - push actions. All other registries are permitted. \n Only one - of BlockedRegistries or AllowedRegistries may be set." - type: array - items: - type: string - insecureRegistries: - description: insecureRegistries are registries which do not have - a valid TLS certificates or only support HTTP connections. - type: array - items: - type: string - status: - description: status holds observed values from the cluster. They may not - be overridden. - type: object - properties: - externalRegistryHostnames: - description: externalRegistryHostnames provides the hostnames for the - default external image registry. The external hostname should be set - only when the image registry is exposed externally. The first value - is used in 'publicDockerImageRepository' field in ImageStreams. The - value must be in "hostname[:port]" format. - type: array - items: - type: string - internalRegistryHostname: - description: internalRegistryHostname sets the hostname for the default - internal image registry. The value must be in "hostname[:port]" format. - This value is set by the image registry operator which controls the - internal registry hostname. For backward compatibility, users can - still use OPENSHIFT_DEFAULT_REGISTRY environment variable but this - setting overrides the environment variable. - type: string diff --git a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_infrastructure.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_infrastructure.crd.yaml deleted file mode 100644 index 7287300e4e164..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_infrastructure.crd.yaml +++ /dev/null @@ -1,414 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: infrastructures.config.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - group: config.openshift.io - names: - kind: Infrastructure - listKind: InfrastructureList - plural: infrastructures - singular: infrastructure - scope: Cluster - preserveUnknownFields: false - subresources: - status: {} - versions: - - name: v1 - served: true - storage: true - "validation": - "openAPIV3Schema": - description: Infrastructure holds cluster-wide information about Infrastructure. The - canonical name is `cluster` - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: spec holds user settable values for configuration - type: object - properties: - cloudConfig: - description: "cloudConfig is a reference to a ConfigMap containing the - cloud provider configuration file. This configuration file is used - to configure the Kubernetes cloud provider integration when using - the built-in cloud provider integration or the external cloud controller - manager. The namespace for this config map is openshift-config. \n - cloudConfig should only be consumed by the kube_cloud_config controller. - The controller is responsible for using the user configuration in - the spec for various platforms and combining that with the user provided - ConfigMap in this field to create a stitched kube cloud config. The - controller generates a ConfigMap `kube-cloud-config` in `openshift-config-managed` - namespace with the kube cloud config is stored in `cloud.conf` key. - All the clients are expected to use the generated ConfigMap only." - type: object - properties: - key: - description: Key allows pointing to a specific key/value inside - of the configmap. This is useful for logical file references. - type: string - name: - type: string - platformSpec: - description: platformSpec holds desired information specific to the - underlying infrastructure provider. - type: object - properties: - aws: - description: AWS contains settings specific to the Amazon Web Services - infrastructure provider. - type: object - properties: - serviceEndpoints: - description: serviceEndpoints list contains custom endpoints - which will override default service endpoint of AWS Services. - There must be only one ServiceEndpoint for a service. - type: array - items: - description: AWSServiceEndpoint store the configuration of - a custom url to override existing defaults of AWS Services. - type: object - properties: - name: - description: name is the name of the AWS service. The - list of all the service names can be found at https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html - This must be provided and cannot be empty. - type: string - pattern: ^[a-z0-9-]+$ - url: - description: url is fully qualified URI with scheme https, - that overrides the default generated endpoint for a - client. This must be provided and cannot be empty. - type: string - pattern: ^https:// - azure: - description: Azure contains settings specific to the Azure infrastructure - provider. - type: object - baremetal: - description: BareMetal contains settings specific to the BareMetal - platform. - type: object - gcp: - description: GCP contains settings specific to the Google Cloud - Platform infrastructure provider. - type: object - ibmcloud: - description: IBMCloud contains settings specific to the IBMCloud - infrastructure provider. - type: object - openstack: - description: OpenStack contains settings specific to the OpenStack - infrastructure provider. - type: object - ovirt: - description: Ovirt contains settings specific to the oVirt infrastructure - provider. - type: object - type: - description: type is the underlying infrastructure provider for - the cluster. This value controls whether infrastructure automation - such as service load balancers, dynamic volume provisioning, machine - creation and deletion, and other integrations are enabled. If - None, no infrastructure automation is enabled. Allowed values - are "AWS", "Azure", "BareMetal", "GCP", "Libvirt", "OpenStack", - "VSphere", "oVirt", and "None". Individual components may not - support all platforms, and must handle unrecognized platforms - as None if they do not support that platform. - type: string - enum: - - "" - - AWS - - Azure - - BareMetal - - GCP - - Libvirt - - OpenStack - - None - - VSphere - - oVirt - - IBMCloud - vsphere: - description: VSphere contains settings specific to the VSphere infrastructure - provider. - type: object - status: - description: status holds observed values from the cluster. They may not - be overridden. - type: object - properties: - apiServerInternalURI: - description: apiServerInternalURL is a valid URI with scheme 'https', - address and optionally a port (defaulting to 443). apiServerInternalURL - can be used by components like kubelets, to contact the Kubernetes - API server using the infrastructure provider rather than Kubernetes - networking. - type: string - apiServerURL: - description: apiServerURL is a valid URI with scheme 'https', address - and optionally a port (defaulting to 443). apiServerURL can be used - by components like the web console to tell users where to find the - Kubernetes API. - type: string - etcdDiscoveryDomain: - description: 'etcdDiscoveryDomain is the domain used to fetch the SRV - records for discovering etcd servers and clients. For more info: https://github.com/etcd-io/etcd/blob/329be66e8b3f9e2e6af83c123ff89297e49ebd15/Documentation/op-guide/clustering.md#dns-discovery' - type: string - infrastructureName: - description: infrastructureName uniquely identifies a cluster with a - human friendly name. Once set it should not be changed. Must be of - max length 27 and must have only alphanumeric or hyphen characters. - type: string - platform: - description: "platform is the underlying infrastructure provider for - the cluster. \n Deprecated: Use platformStatus.type instead." - type: string - enum: - - "" - - AWS - - Azure - - BareMetal - - GCP - - Libvirt - - OpenStack - - None - - VSphere - - oVirt - - IBMCloud - platformStatus: - description: platformStatus holds status information specific to the - underlying infrastructure provider. - type: object - properties: - aws: - description: AWS contains settings specific to the Amazon Web Services - infrastructure provider. - type: object - properties: - region: - description: region holds the default AWS region for new AWS - resources created by the cluster. - type: string - serviceEndpoints: - description: ServiceEndpoints list contains custom endpoints - which will override default service endpoint of AWS Services. - There must be only one ServiceEndpoint for a service. - type: array - items: - description: AWSServiceEndpoint store the configuration of - a custom url to override existing defaults of AWS Services. - type: object - properties: - name: - description: name is the name of the AWS service. The - list of all the service names can be found at https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html - This must be provided and cannot be empty. - type: string - pattern: ^[a-z0-9-]+$ - url: - description: url is fully qualified URI with scheme https, - that overrides the default generated endpoint for a - client. This must be provided and cannot be empty. - type: string - pattern: ^https:// - azure: - description: Azure contains settings specific to the Azure infrastructure - provider. - type: object - properties: - cloudName: - description: cloudName is the name of the Azure cloud environment - which can be used to configure the Azure SDK with the appropriate - Azure API endpoints. If empty, the value is equal to `AzurePublicCloud`. - type: string - enum: - - "" - - AzurePublicCloud - - AzureUSGovernmentCloud - - AzureChinaCloud - - AzureGermanCloud - networkResourceGroupName: - description: networkResourceGroupName is the Resource Group - for network resources like the Virtual Network and Subnets - used by the cluster. If empty, the value is same as ResourceGroupName. - type: string - resourceGroupName: - description: resourceGroupName is the Resource Group for new - Azure resources created for the cluster. - type: string - baremetal: - description: BareMetal contains settings specific to the BareMetal - platform. - type: object - properties: - apiServerInternalIP: - description: apiServerInternalIP is an IP address to contact - the Kubernetes API server that can be used by components inside - the cluster, like kubelets using the infrastructure rather - than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI - points to. It is the IP for a self-hosted load balancer in - front of the API servers. - type: string - ingressIP: - description: ingressIP is an external IP which routes to the - default ingress controller. The IP is a suitable target of - a wildcard DNS record used to resolve default route host names. - type: string - nodeDNSIP: - description: nodeDNSIP is the IP address for the internal DNS - used by the nodes. Unlike the one managed by the DNS operator, - `NodeDNSIP` provides name resolution for the nodes themselves. - There is no DNS-as-a-service for BareMetal deployments. In - order to minimize necessary changes to the datacenter DNS, - a DNS service is hosted as a static pod to serve those hostnames - to the nodes in the cluster. - type: string - gcp: - description: GCP contains settings specific to the Google Cloud - Platform infrastructure provider. - type: object - properties: - projectID: - description: resourceGroupName is the Project ID for new GCP - resources created for the cluster. - type: string - region: - description: region holds the region for new GCP resources created - for the cluster. - type: string - ibmcloud: - description: IBMCloud contains settings specific to the IBMCloud - infrastructure provider. - type: object - properties: - location: - description: Location is where the cluster has been deployed - type: string - providerType: - description: ProviderType indicates the type of cluster that - was created - type: string - resourceGroupName: - description: ResourceGroupName is the Resource Group for new - IBMCloud resources created for the cluster. - type: string - openstack: - description: OpenStack contains settings specific to the OpenStack - infrastructure provider. - type: object - properties: - apiServerInternalIP: - description: apiServerInternalIP is an IP address to contact - the Kubernetes API server that can be used by components inside - the cluster, like kubelets using the infrastructure rather - than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI - points to. It is the IP for a self-hosted load balancer in - front of the API servers. - type: string - cloudName: - description: cloudName is the name of the desired OpenStack - cloud in the client configuration file (`clouds.yaml`). - type: string - ingressIP: - description: ingressIP is an external IP which routes to the - default ingress controller. The IP is a suitable target of - a wildcard DNS record used to resolve default route host names. - type: string - nodeDNSIP: - description: nodeDNSIP is the IP address for the internal DNS - used by the nodes. Unlike the one managed by the DNS operator, - `NodeDNSIP` provides name resolution for the nodes themselves. - There is no DNS-as-a-service for OpenStack deployments. In - order to minimize necessary changes to the datacenter DNS, - a DNS service is hosted as a static pod to serve those hostnames - to the nodes in the cluster. - type: string - ovirt: - description: Ovirt contains settings specific to the oVirt infrastructure - provider. - type: object - properties: - apiServerInternalIP: - description: apiServerInternalIP is an IP address to contact - the Kubernetes API server that can be used by components inside - the cluster, like kubelets using the infrastructure rather - than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI - points to. It is the IP for a self-hosted load balancer in - front of the API servers. - type: string - ingressIP: - description: ingressIP is an external IP which routes to the - default ingress controller. The IP is a suitable target of - a wildcard DNS record used to resolve default route host names. - type: string - nodeDNSIP: - description: 'deprecated: as of 4.6, this field is no longer - set or honored. It will be removed in a future release.' - type: string - type: - description: "type is the underlying infrastructure provider for - the cluster. This value controls whether infrastructure automation - such as service load balancers, dynamic volume provisioning, machine - creation and deletion, and other integrations are enabled. If - None, no infrastructure automation is enabled. Allowed values - are \"AWS\", \"Azure\", \"BareMetal\", \"GCP\", \"Libvirt\", \"OpenStack\", - \"VSphere\", \"oVirt\", and \"None\". Individual components may - not support all platforms, and must handle unrecognized platforms - as None if they do not support that platform. \n This value will - be synced with to the `status.platform` and `status.platformStatus.type`. - Currently this value cannot be changed once set." - type: string - enum: - - "" - - AWS - - Azure - - BareMetal - - GCP - - Libvirt - - OpenStack - - None - - VSphere - - oVirt - - IBMCloud - vsphere: - description: VSphere contains settings specific to the VSphere infrastructure - provider. - type: object - properties: - apiServerInternalIP: - description: apiServerInternalIP is an IP address to contact - the Kubernetes API server that can be used by components inside - the cluster, like kubelets using the infrastructure rather - than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI - points to. It is the IP for a self-hosted load balancer in - front of the API servers. - type: string - ingressIP: - description: ingressIP is an external IP which routes to the - default ingress controller. The IP is a suitable target of - a wildcard DNS record used to resolve default route host names. - type: string - nodeDNSIP: - description: nodeDNSIP is the IP address for the internal DNS - used by the nodes. Unlike the one managed by the DNS operator, - `NodeDNSIP` provides name resolution for the nodes themselves. - There is no DNS-as-a-service for vSphere deployments. In order - to minimize necessary changes to the datacenter DNS, a DNS - service is hosted as a static pod to serve those hostnames - to the nodes in the cluster. - type: string diff --git a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_ingress.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_ingress.crd.yaml deleted file mode 100644 index bd7cdad40ddb0..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_ingress.crd.yaml +++ /dev/null @@ -1,57 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: ingresses.config.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - group: config.openshift.io - names: - kind: Ingress - listKind: IngressList - plural: ingresses - singular: ingress - scope: Cluster - preserveUnknownFields: false - versions: - - name: v1 - served: true - storage: true - subresources: - status: {} - "validation": - "openAPIV3Schema": - description: Ingress holds cluster-wide information about ingress, including - the default ingress domain used for routes. The canonical name is `cluster`. - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: spec holds user settable values for configuration - type: object - properties: - domain: - description: "domain is used to generate a default host name for a route - when the route's host name is empty. The generated host name will - follow this pattern: \"..\". - \n It is also used as the default wildcard domain suffix for ingress. - The default ingresscontroller domain will follow this pattern: \"*.\". - \n Once set, changing domain is not currently supported." - type: string - status: - description: status holds observed values from the cluster. They may not - be overridden. - type: object diff --git a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_network.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_network.crd.yaml deleted file mode 100644 index 5b029401b093e..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_network.crd.yaml +++ /dev/null @@ -1,153 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: networks.config.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - group: config.openshift.io - names: - kind: Network - listKind: NetworkList - plural: networks - singular: network - scope: Cluster - preserveUnknownFields: false - versions: - - name: v1 - served: true - storage: true - "validation": - "openAPIV3Schema": - description: 'Network holds cluster-wide information about Network. The canonical - name is `cluster`. It is used to configure the desired network configuration, - such as: IP address pools for services/pod IPs, network plugin, etc. Please - view network.spec for an explanation on what applies when configuring this - resource.' - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: spec holds user settable values for configuration. As a general - rule, this SHOULD NOT be read directly. Instead, you should consume the - NetworkStatus, as it indicates the currently deployed configuration. Currently, - most spec fields are immutable after installation. Please view the individual - ones for further details on each. - type: object - properties: - clusterNetwork: - description: IP address pool to use for pod IPs. This field is immutable - after installation. - type: array - items: - description: ClusterNetworkEntry is a contiguous block of IP addresses - from which pod IPs are allocated. - type: object - properties: - cidr: - description: The complete block for pod IPs. - type: string - hostPrefix: - description: The size (prefix) of block to allocate to each node. - If this field is not used by the plugin, it can be left unset. - type: integer - format: int32 - minimum: 0 - externalIP: - description: externalIP defines configuration for controllers that affect - Service.ExternalIP. If nil, then ExternalIP is not allowed to be set. - type: object - properties: - autoAssignCIDRs: - description: autoAssignCIDRs is a list of CIDRs from which to automatically - assign Service.ExternalIP. These are assigned when the service - is of type LoadBalancer. In general, this is only useful for bare-metal - clusters. In Openshift 3.x, this was misleadingly called "IngressIPs". - Automatically assigned External IPs are not affected by any ExternalIPPolicy - rules. Currently, only one entry may be provided. - type: array - items: - type: string - policy: - description: policy is a set of restrictions applied to the ExternalIP - field. If nil or empty, then ExternalIP is not allowed to be set. - type: object - properties: - allowedCIDRs: - description: allowedCIDRs is the list of allowed CIDRs. - type: array - items: - type: string - rejectedCIDRs: - description: rejectedCIDRs is the list of disallowed CIDRs. - These take precedence over allowedCIDRs. - type: array - items: - type: string - networkType: - description: 'NetworkType is the plugin that is to be deployed (e.g. - OpenShiftSDN). This should match a value that the cluster-network-operator - understands, or else no networking will be installed. Currently supported - values are: - OpenShiftSDN This field is immutable after installation.' - type: string - serviceNetwork: - description: IP address pool for services. Currently, we only support - a single entry here. This field is immutable after installation. - type: array - items: - type: string - serviceNodePortRange: - description: The port range allowed for Services of type NodePort. If - not specified, the default of 30000-32767 will be used. Such Services - without a NodePort specified will have one automatically allocated - from this range. This parameter can be updated after the cluster is - installed. - type: string - pattern: ^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])-([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$ - status: - description: status holds observed values from the cluster. They may not - be overridden. - type: object - properties: - clusterNetwork: - description: IP address pool to use for pod IPs. - type: array - items: - description: ClusterNetworkEntry is a contiguous block of IP addresses - from which pod IPs are allocated. - type: object - properties: - cidr: - description: The complete block for pod IPs. - type: string - hostPrefix: - description: The size (prefix) of block to allocate to each node. - If this field is not used by the plugin, it can be left unset. - type: integer - format: int32 - minimum: 0 - clusterNetworkMTU: - description: ClusterNetworkMTU is the MTU for inter-pod networking. - type: integer - networkType: - description: NetworkType is the plugin that is deployed (e.g. OpenShiftSDN). - type: string - serviceNetwork: - description: IP address pool for services. Currently, we only support - a single entry here. - type: array - items: - type: string diff --git a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_oauth.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_oauth.crd.yaml deleted file mode 100644 index 35388d9c998c7..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_oauth.crd.yaml +++ /dev/null @@ -1,667 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: oauths.config.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - group: config.openshift.io - names: - kind: OAuth - listKind: OAuthList - plural: oauths - singular: oauth - scope: Cluster - preserveUnknownFields: false - subresources: - status: {} - versions: - - name: v1 - served: true - storage: true - "validation": - "openAPIV3Schema": - description: OAuth holds cluster-wide information about OAuth. The canonical - name is `cluster`. It is used to configure the integrated OAuth server. This - configuration is only honored when the top level Authentication config has - type set to IntegratedOAuth. - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: spec holds user settable values for configuration - type: object - properties: - identityProviders: - description: identityProviders is an ordered list of ways for a user - to identify themselves. When this list is empty, no identities are - provisioned for users. - type: array - items: - description: IdentityProvider provides identities for users authenticating - using credentials - type: object - properties: - basicAuth: - description: basicAuth contains configuration options for the - BasicAuth IdP - type: object - properties: - ca: - description: ca is an optional reference to a config map by - name containing the PEM-encoded CA bundle. It is used as - a trust anchor to validate the TLS certificate presented - by the remote server. The key "ca.crt" is used to locate - the data. If specified and the config map or expected key - is not found, the identity provider is not honored. If the - specified ca data is not valid, the identity provider is - not honored. If empty, the default system roots are used. - The namespace for this config map is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - config map - type: string - tlsClientCert: - description: tlsClientCert is an optional reference to a secret - by name that contains the PEM-encoded TLS client certificate - to present when connecting to the server. The key "tls.crt" - is used to locate the data. If specified and the secret - or expected key is not found, the identity provider is not - honored. If the specified certificate data is not valid, - the identity provider is not honored. The namespace for - this secret is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - secret - type: string - tlsClientKey: - description: tlsClientKey is an optional reference to a secret - by name that contains the PEM-encoded TLS private key for - the client certificate referenced in tlsClientCert. The - key "tls.key" is used to locate the data. If specified and - the secret or expected key is not found, the identity provider - is not honored. If the specified certificate data is not - valid, the identity provider is not honored. The namespace - for this secret is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - secret - type: string - url: - description: url is the remote URL to connect to - type: string - github: - description: github enables user authentication using GitHub credentials - type: object - properties: - ca: - description: ca is an optional reference to a config map by - name containing the PEM-encoded CA bundle. It is used as - a trust anchor to validate the TLS certificate presented - by the remote server. The key "ca.crt" is used to locate - the data. If specified and the config map or expected key - is not found, the identity provider is not honored. If the - specified ca data is not valid, the identity provider is - not honored. If empty, the default system roots are used. - This can only be configured when hostname is set to a non-empty - value. The namespace for this config map is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - config map - type: string - clientID: - description: clientID is the oauth client ID - type: string - clientSecret: - description: clientSecret is a required reference to the secret - by name containing the oauth client secret. The key "clientSecret" - is used to locate the data. If the secret or expected key - is not found, the identity provider is not honored. The - namespace for this secret is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - secret - type: string - hostname: - description: hostname is the optional domain (e.g. "mycompany.com") - for use with a hosted instance of GitHub Enterprise. It - must match the GitHub Enterprise settings value configured - at /setup/settings#hostname. - type: string - organizations: - description: organizations optionally restricts which organizations - are allowed to log in - type: array - items: - type: string - teams: - description: teams optionally restricts which teams are allowed - to log in. Format is /. - type: array - items: - type: string - gitlab: - description: gitlab enables user authentication using GitLab credentials - type: object - properties: - ca: - description: ca is an optional reference to a config map by - name containing the PEM-encoded CA bundle. It is used as - a trust anchor to validate the TLS certificate presented - by the remote server. The key "ca.crt" is used to locate - the data. If specified and the config map or expected key - is not found, the identity provider is not honored. If the - specified ca data is not valid, the identity provider is - not honored. If empty, the default system roots are used. - The namespace for this config map is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - config map - type: string - clientID: - description: clientID is the oauth client ID - type: string - clientSecret: - description: clientSecret is a required reference to the secret - by name containing the oauth client secret. The key "clientSecret" - is used to locate the data. If the secret or expected key - is not found, the identity provider is not honored. The - namespace for this secret is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - secret - type: string - url: - description: url is the oauth server base URL - type: string - google: - description: google enables user authentication using Google credentials - type: object - properties: - clientID: - description: clientID is the oauth client ID - type: string - clientSecret: - description: clientSecret is a required reference to the secret - by name containing the oauth client secret. The key "clientSecret" - is used to locate the data. If the secret or expected key - is not found, the identity provider is not honored. The - namespace for this secret is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - secret - type: string - hostedDomain: - description: hostedDomain is the optional Google App domain - (e.g. "mycompany.com") to restrict logins to - type: string - htpasswd: - description: htpasswd enables user authentication using an HTPasswd - file to validate credentials - type: object - properties: - fileData: - description: fileData is a required reference to a secret - by name containing the data to use as the htpasswd file. - The key "htpasswd" is used to locate the data. If the secret - or expected key is not found, the identity provider is not - honored. If the specified htpasswd data is not valid, the - identity provider is not honored. The namespace for this - secret is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - secret - type: string - keystone: - description: keystone enables user authentication using keystone - password credentials - type: object - properties: - ca: - description: ca is an optional reference to a config map by - name containing the PEM-encoded CA bundle. It is used as - a trust anchor to validate the TLS certificate presented - by the remote server. The key "ca.crt" is used to locate - the data. If specified and the config map or expected key - is not found, the identity provider is not honored. If the - specified ca data is not valid, the identity provider is - not honored. If empty, the default system roots are used. - The namespace for this config map is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - config map - type: string - domainName: - description: domainName is required for keystone v3 - type: string - tlsClientCert: - description: tlsClientCert is an optional reference to a secret - by name that contains the PEM-encoded TLS client certificate - to present when connecting to the server. The key "tls.crt" - is used to locate the data. If specified and the secret - or expected key is not found, the identity provider is not - honored. If the specified certificate data is not valid, - the identity provider is not honored. The namespace for - this secret is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - secret - type: string - tlsClientKey: - description: tlsClientKey is an optional reference to a secret - by name that contains the PEM-encoded TLS private key for - the client certificate referenced in tlsClientCert. The - key "tls.key" is used to locate the data. If specified and - the secret or expected key is not found, the identity provider - is not honored. If the specified certificate data is not - valid, the identity provider is not honored. The namespace - for this secret is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - secret - type: string - url: - description: url is the remote URL to connect to - type: string - ldap: - description: ldap enables user authentication using LDAP credentials - type: object - properties: - attributes: - description: attributes maps LDAP attributes to identities - type: object - properties: - email: - description: email is the list of attributes whose values - should be used as the email address. Optional. If unspecified, - no email is set for the identity - type: array - items: - type: string - id: - description: id is the list of attributes whose values - should be used as the user ID. Required. First non-empty - attribute is used. At least one attribute is required. - If none of the listed attribute have a value, authentication - fails. LDAP standard identity attribute is "dn" - type: array - items: - type: string - name: - description: name is the list of attributes whose values - should be used as the display name. Optional. If unspecified, - no display name is set for the identity LDAP standard - display name attribute is "cn" - type: array - items: - type: string - preferredUsername: - description: preferredUsername is the list of attributes - whose values should be used as the preferred username. - LDAP standard login attribute is "uid" - type: array - items: - type: string - bindDN: - description: bindDN is an optional DN to bind with during - the search phase. - type: string - bindPassword: - description: bindPassword is an optional reference to a secret - by name containing a password to bind with during the search - phase. The key "bindPassword" is used to locate the data. - If specified and the secret or expected key is not found, - the identity provider is not honored. The namespace for - this secret is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - secret - type: string - ca: - description: ca is an optional reference to a config map by - name containing the PEM-encoded CA bundle. It is used as - a trust anchor to validate the TLS certificate presented - by the remote server. The key "ca.crt" is used to locate - the data. If specified and the config map or expected key - is not found, the identity provider is not honored. If the - specified ca data is not valid, the identity provider is - not honored. If empty, the default system roots are used. - The namespace for this config map is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - config map - type: string - insecure: - description: 'insecure, if true, indicates the connection - should not use TLS WARNING: Should not be set to `true` - with the URL scheme "ldaps://" as "ldaps://" URLs always attempt - to connect using TLS, even when `insecure` is set to `true` - When `true`, "ldap://" URLS connect insecurely. When `false`, - "ldap://" URLs are upgraded to a TLS connection using StartTLS - as specified in https://tools.ietf.org/html/rfc2830.' - type: boolean - url: - description: 'url is an RFC 2255 URL which specifies the LDAP - search parameters to use. The syntax of the URL is: ldap://host:port/basedn?attribute?scope?filter' - type: string - mappingMethod: - description: mappingMethod determines how identities from this - provider are mapped to users Defaults to "claim" - type: string - name: - description: 'name is used to qualify the identities returned - by this provider. - It MUST be unique and not shared by any - other identity provider used - It MUST be a valid path segment: - name cannot equal "." or ".." or contain "/" or "%" or ":" Ref: - https://godoc.org/github.com/openshift/origin/pkg/user/apis/user/validation#ValidateIdentityProviderName' - type: string - openID: - description: openID enables user authentication using OpenID credentials - type: object - properties: - ca: - description: ca is an optional reference to a config map by - name containing the PEM-encoded CA bundle. It is used as - a trust anchor to validate the TLS certificate presented - by the remote server. The key "ca.crt" is used to locate - the data. If specified and the config map or expected key - is not found, the identity provider is not honored. If the - specified ca data is not valid, the identity provider is - not honored. If empty, the default system roots are used. - The namespace for this config map is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - config map - type: string - claims: - description: claims mappings - type: object - properties: - email: - description: email is the list of claims whose values - should be used as the email address. Optional. If unspecified, - no email is set for the identity - type: array - items: - type: string - name: - description: name is the list of claims whose values should - be used as the display name. Optional. If unspecified, - no display name is set for the identity - type: array - items: - type: string - preferredUsername: - description: preferredUsername is the list of claims whose - values should be used as the preferred username. If - unspecified, the preferred username is determined from - the value of the sub claim - type: array - items: - type: string - clientID: - description: clientID is the oauth client ID - type: string - clientSecret: - description: clientSecret is a required reference to the secret - by name containing the oauth client secret. The key "clientSecret" - is used to locate the data. If the secret or expected key - is not found, the identity provider is not honored. The - namespace for this secret is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - secret - type: string - extraAuthorizeParameters: - description: extraAuthorizeParameters are any custom parameters - to add to the authorize request. - type: object - additionalProperties: - type: string - extraScopes: - description: extraScopes are any scopes to request in addition - to the standard "openid" scope. - type: array - items: - type: string - issuer: - description: issuer is the URL that the OpenID Provider asserts - as its Issuer Identifier. It must use the https scheme with - no query or fragment component. - type: string - requestHeader: - description: requestHeader enables user authentication using request - header credentials - type: object - properties: - ca: - description: ca is a required reference to a config map by - name containing the PEM-encoded CA bundle. It is used as - a trust anchor to validate the TLS certificate presented - by the remote server. Specifically, it allows verification - of incoming requests to prevent header spoofing. The key - "ca.crt" is used to locate the data. If the config map or - expected key is not found, the identity provider is not - honored. If the specified ca data is not valid, the identity - provider is not honored. The namespace for this config map - is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced - config map - type: string - challengeURL: - description: challengeURL is a URL to redirect unauthenticated - /authorize requests to Unauthenticated requests from OAuth - clients which expect WWW-Authenticate challenges will be - redirected here. ${url} is replaced with the current URL, - escaped to be safe in a query parameter https://www.example.com/sso-login?then=${url} - ${query} is replaced with the current query string https://www.example.com/auth-proxy/oauth/authorize?${query} - Required when challenge is set to true. - type: string - clientCommonNames: - description: clientCommonNames is an optional list of common - names to require a match from. If empty, any client certificate - validated against the clientCA bundle is considered authoritative. - type: array - items: - type: string - emailHeaders: - description: emailHeaders is the set of headers to check for - the email address - type: array - items: - type: string - headers: - description: headers is the set of headers to check for identity - information - type: array - items: - type: string - loginURL: - description: loginURL is a URL to redirect unauthenticated - /authorize requests to Unauthenticated requests from OAuth - clients which expect interactive logins will be redirected - here ${url} is replaced with the current URL, escaped to - be safe in a query parameter https://www.example.com/sso-login?then=${url} - ${query} is replaced with the current query string https://www.example.com/auth-proxy/oauth/authorize?${query} - Required when login is set to true. - type: string - nameHeaders: - description: nameHeaders is the set of headers to check for - the display name - type: array - items: - type: string - preferredUsernameHeaders: - description: preferredUsernameHeaders is the set of headers - to check for the preferred username - type: array - items: - type: string - type: - description: type identifies the identity provider type for this - entry. - type: string - templates: - description: templates allow you to customize pages like the login page. - type: object - properties: - error: - description: error is the name of a secret that specifies a go template - to use to render error pages during the authentication or grant - flow. The key "errors.html" is used to locate the template data. - If specified and the secret or expected key is not found, the - default error page is used. If the specified template is not valid, - the default error page is used. If unspecified, the default error - page is used. The namespace for this secret is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced secret - type: string - login: - description: login is the name of a secret that specifies a go template - to use to render the login page. The key "login.html" is used - to locate the template data. If specified and the secret or expected - key is not found, the default login page is used. If the specified - template is not valid, the default login page is used. If unspecified, - the default login page is used. The namespace for this secret - is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced secret - type: string - providerSelection: - description: providerSelection is the name of a secret that specifies - a go template to use to render the provider selection page. The - key "providers.html" is used to locate the template data. If specified - and the secret or expected key is not found, the default provider - selection page is used. If the specified template is not valid, - the default provider selection page is used. If unspecified, the - default provider selection page is used. The namespace for this - secret is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced secret - type: string - tokenConfig: - description: tokenConfig contains options for authorization and access - tokens - type: object - properties: - accessTokenInactivityTimeout: - description: accessTokenInactivityTimeout defines the token inactivity - timeout for tokens granted by any client. The value represents - the maximum amount of time that can occur between consecutive - uses of the token. Tokens become invalid if they are not used - within this temporal window. The user will need to acquire a new - token to regain access once a token times out. Takes valid time - duration string such as "5m", "1.5h" or "2h45m". The minimum allowed - value for duration is 300s (5 minutes). If the timeout is configured - per client, then that value takes precedence. If the timeout value - is not specified and the client does not override the value, then - tokens are valid until their lifetime. - type: string - accessTokenInactivityTimeoutSeconds: - description: 'accessTokenInactivityTimeoutSeconds - DEPRECATED: - setting this field has no effect.' - type: integer - format: int32 - accessTokenMaxAgeSeconds: - description: accessTokenMaxAgeSeconds defines the maximum age of - access tokens - type: integer - format: int32 - status: - description: status holds observed values from the cluster. They may not - be overridden. - type: object diff --git a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_project.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_project.crd.yaml deleted file mode 100644 index 37541aaed4a0d..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_project.crd.yaml +++ /dev/null @@ -1,65 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: projects.config.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - group: config.openshift.io - scope: Cluster - preserveUnknownFields: false - versions: - - name: v1 - served: true - storage: true - names: - kind: Project - listKind: ProjectList - plural: projects - singular: project - subresources: - status: {} - "validation": - "openAPIV3Schema": - description: Project holds cluster-wide information about Project. The canonical - name is `cluster` - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: spec holds user settable values for configuration - type: object - properties: - projectRequestMessage: - description: projectRequestMessage is the string presented to a user - if they are unable to request a project via the projectrequest api - endpoint - type: string - projectRequestTemplate: - description: projectRequestTemplate is the template to use for creating - projects in response to projectrequest. This must point to a template - in 'openshift-config' namespace. It is optional. If it is not specified, - a default template is used. - type: object - properties: - name: - description: name is the metadata.name of the referenced project - request template - type: string - status: - description: status holds observed values from the cluster. They may not - be overridden. - type: object diff --git a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_scheduler.crd.yaml b/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_scheduler.crd.yaml deleted file mode 100644 index 9652bf1f0a705..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/0000_10_config-operator_01_scheduler.crd.yaml +++ /dev/null @@ -1,91 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: schedulers.config.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - group: config.openshift.io - scope: Cluster - preserveUnknownFields: false - names: - kind: Scheduler - singular: scheduler - plural: schedulers - listKind: SchedulerList - versions: - - name: v1 - served: true - storage: true - subresources: - status: {} - "validation": - "openAPIV3Schema": - description: Scheduler holds cluster-wide config information to run the Kubernetes - Scheduler and influence its placement decisions. The canonical name for this - config is `cluster`. - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: spec holds user settable values for configuration - type: object - properties: - defaultNodeSelector: - description: 'defaultNodeSelector helps set the cluster-wide default - node selector to restrict pod placement to specific nodes. This is - applied to the pods created in all namespaces and creates an intersection - with any existing nodeSelectors already set on a pod, additionally - constraining that pod''s selector. For example, defaultNodeSelector: - "type=user-node,region=east" would set nodeSelector field in pod spec - to "type=user-node,region=east" to all pods created in all namespaces. - Namespaces having project-wide node selectors won''t be impacted even - if this field is set. This adds an annotation section to the namespace. - For example, if a new namespace is created with node-selector=''type=user-node,region=east'', - the annotation openshift.io/node-selector: type=user-node,region=east - gets added to the project. When the openshift.io/node-selector annotation - is set on the project the value is used in preference to the value - we are setting for defaultNodeSelector field. For instance, openshift.io/node-selector: - "type=user-node,region=west" means that the default of "type=user-node,region=east" - set in defaultNodeSelector would not be applied.' - type: string - mastersSchedulable: - description: 'MastersSchedulable allows masters nodes to be schedulable. - When this flag is turned on, all the master nodes in the cluster will - be made schedulable, so that workload pods can run on them. The default - value for this field is false, meaning none of the master nodes are - schedulable. Important Note: Once the workload pods start running - on the master nodes, extreme care must be taken to ensure that cluster-critical - control plane components are not impacted. Please turn on this field - after doing due diligence.' - type: boolean - policy: - description: policy is a reference to a ConfigMap containing scheduler - policy which has user specified predicates and priorities. If this - ConfigMap is not available scheduler will default to use DefaultAlgorithmProvider. - The namespace for this configmap is openshift-config. - type: object - required: - - name - properties: - name: - description: name is the metadata.name of the referenced config - map - type: string - status: - description: status holds observed values from the cluster. They may not - be overridden. - type: object diff --git a/vendor/github.com/openshift/api/config/v1/doc.go b/vendor/github.com/openshift/api/config/v1/doc.go deleted file mode 100644 index 4ff5208f2c246..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:defaulter-gen=TypeMeta -// +k8s:openapi-gen=true - -// +kubebuilder:validation:Optional -// +groupName=config.openshift.io -// Package v1 is the v1 version of the API. -package v1 diff --git a/vendor/github.com/openshift/api/config/v1/register.go b/vendor/github.com/openshift/api/config/v1/register.go deleted file mode 100644 index 35eace3701c2b..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/register.go +++ /dev/null @@ -1,70 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - GroupName = "config.openshift.io" - GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - // Install is a function which adds this version to a scheme - Install = schemeBuilder.AddToScheme - - // SchemeGroupVersion generated code relies on this name - // Deprecated - SchemeGroupVersion = GroupVersion - // AddToScheme exists solely to keep the old generators creating valid code - // DEPRECATED - AddToScheme = schemeBuilder.AddToScheme -) - -// Resource generated code relies on this being here, but it logically belongs to the group -// DEPRECATED -func Resource(resource string) schema.GroupResource { - return schema.GroupResource{Group: GroupName, Resource: resource} -} - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &APIServer{}, - &APIServerList{}, - &Authentication{}, - &AuthenticationList{}, - &Build{}, - &BuildList{}, - &ClusterOperator{}, - &ClusterOperatorList{}, - &ClusterVersion{}, - &ClusterVersionList{}, - &Console{}, - &ConsoleList{}, - &DNS{}, - &DNSList{}, - &FeatureGate{}, - &FeatureGateList{}, - &Image{}, - &ImageList{}, - &Infrastructure{}, - &InfrastructureList{}, - &Ingress{}, - &IngressList{}, - &Network{}, - &NetworkList{}, - &OAuth{}, - &OAuthList{}, - &OperatorHub{}, - &OperatorHubList{}, - &Project{}, - &ProjectList{}, - &Proxy{}, - &ProxyList{}, - &Scheduler{}, - &SchedulerList{}, - ) - metav1.AddToGroupVersion(scheme, GroupVersion) - return nil -} diff --git a/vendor/github.com/openshift/api/config/v1/stringsource.go b/vendor/github.com/openshift/api/config/v1/stringsource.go deleted file mode 100644 index 6a5718c1db271..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/stringsource.go +++ /dev/null @@ -1,31 +0,0 @@ -package v1 - -import "encoding/json" - -// UnmarshalJSON implements the json.Unmarshaller interface. -// If the value is a string, it sets the Value field of the StringSource. -// Otherwise, it is unmarshaled into the StringSourceSpec struct -func (s *StringSource) UnmarshalJSON(value []byte) error { - // If we can unmarshal to a simple string, just set the value - var simpleValue string - if err := json.Unmarshal(value, &simpleValue); err == nil { - s.Value = simpleValue - return nil - } - - // Otherwise do the full struct unmarshal - return json.Unmarshal(value, &s.StringSourceSpec) -} - -// MarshalJSON implements the json.Marshaller interface. -// If the StringSource contains only a string Value (or is empty), it is marshaled as a JSON string. -// Otherwise, the StringSourceSpec struct is marshaled as a JSON object. -func (s *StringSource) MarshalJSON() ([]byte, error) { - // If we have only a cleartext value set, do a simple string marshal - if s.StringSourceSpec == (StringSourceSpec{Value: s.Value}) { - return json.Marshal(s.Value) - } - - // Otherwise do the full struct marshal of the externalized bits - return json.Marshal(s.StringSourceSpec) -} diff --git a/vendor/github.com/openshift/api/config/v1/types.go b/vendor/github.com/openshift/api/config/v1/types.go deleted file mode 100644 index 14274842365f5..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types.go +++ /dev/null @@ -1,312 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -// ConfigMapFileReference references a config map in a specific namespace. -// The namespace must be specified at the point of use. -type ConfigMapFileReference struct { - Name string `json:"name"` - // Key allows pointing to a specific key/value inside of the configmap. This is useful for logical file references. - Key string `json:"key,omitempty"` -} - -// ConfigMapNameReference references a config map in a specific namespace. -// The namespace must be specified at the point of use. -type ConfigMapNameReference struct { - // name is the metadata.name of the referenced config map - // +kubebuilder:validation:Required - // +required - Name string `json:"name"` -} - -// SecretNameReference references a secret in a specific namespace. -// The namespace must be specified at the point of use. -type SecretNameReference struct { - // name is the metadata.name of the referenced secret - // +kubebuilder:validation:Required - // +required - Name string `json:"name"` -} - -// HTTPServingInfo holds configuration for serving HTTP -type HTTPServingInfo struct { - // ServingInfo is the HTTP serving information - ServingInfo `json:",inline"` - // MaxRequestsInFlight is the number of concurrent requests allowed to the server. If zero, no limit. - MaxRequestsInFlight int64 `json:"maxRequestsInFlight"` - // RequestTimeoutSeconds is the number of seconds before requests are timed out. The default is 60 minutes, if - // -1 there is no limit on requests. - RequestTimeoutSeconds int64 `json:"requestTimeoutSeconds"` -} - -// ServingInfo holds information about serving web pages -type ServingInfo struct { - // BindAddress is the ip:port to serve on - BindAddress string `json:"bindAddress"` - // BindNetwork is the type of network to bind to - defaults to "tcp4", accepts "tcp", - // "tcp4", and "tcp6" - BindNetwork string `json:"bindNetwork"` - // CertInfo is the TLS cert info for serving secure traffic. - // this is anonymous so that we can inline it for serialization - CertInfo `json:",inline"` - // ClientCA is the certificate bundle for all the signers that you'll recognize for incoming client certificates - // +optional - ClientCA string `json:"clientCA,omitempty"` - // NamedCertificates is a list of certificates to use to secure requests to specific hostnames - NamedCertificates []NamedCertificate `json:"namedCertificates,omitempty"` - // MinTLSVersion is the minimum TLS version supported. - // Values must match version names from https://golang.org/pkg/crypto/tls/#pkg-constants - MinTLSVersion string `json:"minTLSVersion,omitempty"` - // CipherSuites contains an overridden list of ciphers for the server to support. - // Values must match cipher suite IDs from https://golang.org/pkg/crypto/tls/#pkg-constants - CipherSuites []string `json:"cipherSuites,omitempty"` -} - -// CertInfo relates a certificate with a private key -type CertInfo struct { - // CertFile is a file containing a PEM-encoded certificate - CertFile string `json:"certFile"` - // KeyFile is a file containing a PEM-encoded private key for the certificate specified by CertFile - KeyFile string `json:"keyFile"` -} - -// NamedCertificate specifies a certificate/key, and the names it should be served for -type NamedCertificate struct { - // Names is a list of DNS names this certificate should be used to secure - // A name can be a normal DNS name, or can contain leading wildcard segments. - Names []string `json:"names,omitempty"` - // CertInfo is the TLS cert info for serving secure traffic - CertInfo `json:",inline"` -} - -// LeaderElection provides information to elect a leader -type LeaderElection struct { - // disable allows leader election to be suspended while allowing a fully defaulted "normal" startup case. - Disable bool `json:"disable,omitempty"` - // namespace indicates which namespace the resource is in - Namespace string `json:"namespace,omitempty"` - // name indicates what name to use for the resource - Name string `json:"name,omitempty"` - - // leaseDuration is the duration that non-leader candidates will wait - // after observing a leadership renewal until attempting to acquire - // leadership of a led but unrenewed leader slot. This is effectively the - // maximum duration that a leader can be stopped before it is replaced - // by another candidate. This is only applicable if leader election is - // enabled. - // +nullable - LeaseDuration metav1.Duration `json:"leaseDuration"` - // renewDeadline is the interval between attempts by the acting master to - // renew a leadership slot before it stops leading. This must be less - // than or equal to the lease duration. This is only applicable if leader - // election is enabled. - // +nullable - RenewDeadline metav1.Duration `json:"renewDeadline"` - // retryPeriod is the duration the clients should wait between attempting - // acquisition and renewal of a leadership. This is only applicable if - // leader election is enabled. - // +nullable - RetryPeriod metav1.Duration `json:"retryPeriod"` -} - -// StringSource allows specifying a string inline, or externally via env var or file. -// When it contains only a string value, it marshals to a simple JSON string. -type StringSource struct { - // StringSourceSpec specifies the string value, or external location - StringSourceSpec `json:",inline"` -} - -// StringSourceSpec specifies a string value, or external location -type StringSourceSpec struct { - // Value specifies the cleartext value, or an encrypted value if keyFile is specified. - Value string `json:"value"` - - // Env specifies an envvar containing the cleartext value, or an encrypted value if the keyFile is specified. - Env string `json:"env"` - - // File references a file containing the cleartext value, or an encrypted value if a keyFile is specified. - File string `json:"file"` - - // KeyFile references a file containing the key to use to decrypt the value. - KeyFile string `json:"keyFile"` -} - -// RemoteConnectionInfo holds information necessary for establishing a remote connection -type RemoteConnectionInfo struct { - // URL is the remote URL to connect to - URL string `json:"url"` - // CA is the CA for verifying TLS connections - CA string `json:"ca"` - // CertInfo is the TLS client cert information to present - // this is anonymous so that we can inline it for serialization - CertInfo `json:",inline"` -} - -type AdmissionConfig struct { - PluginConfig map[string]AdmissionPluginConfig `json:"pluginConfig,omitempty"` - - // enabledPlugins is a list of admission plugins that must be on in addition to the default list. - // Some admission plugins are disabled by default, but certain configurations require them. This is fairly uncommon - // and can result in performance penalties and unexpected behavior. - EnabledAdmissionPlugins []string `json:"enabledPlugins,omitempty"` - - // disabledPlugins is a list of admission plugins that must be off. Putting something in this list - // is almost always a mistake and likely to result in cluster instability. - DisabledAdmissionPlugins []string `json:"disabledPlugins,omitempty"` -} - -// AdmissionPluginConfig holds the necessary configuration options for admission plugins -type AdmissionPluginConfig struct { - // Location is the path to a configuration file that contains the plugin's - // configuration - Location string `json:"location"` - - // Configuration is an embedded configuration object to be used as the plugin's - // configuration. If present, it will be used instead of the path to the configuration file. - // +nullable - // +kubebuilder:pruning:PreserveUnknownFields - Configuration runtime.RawExtension `json:"configuration"` -} - -type LogFormatType string - -type WebHookModeType string - -const ( - // LogFormatLegacy saves event in 1-line text format. - LogFormatLegacy LogFormatType = "legacy" - // LogFormatJson saves event in structured json format. - LogFormatJson LogFormatType = "json" - - // WebHookModeBatch indicates that the webhook should buffer audit events - // internally, sending batch updates either once a certain number of - // events have been received or a certain amount of time has passed. - WebHookModeBatch WebHookModeType = "batch" - // WebHookModeBlocking causes the webhook to block on every attempt to process - // a set of events. This causes requests to the API server to wait for a - // round trip to the external audit service before sending a response. - WebHookModeBlocking WebHookModeType = "blocking" -) - -// AuditConfig holds configuration for the audit capabilities -type AuditConfig struct { - // If this flag is set, audit log will be printed in the logs. - // The logs contains, method, user and a requested URL. - Enabled bool `json:"enabled"` - // All requests coming to the apiserver will be logged to this file. - AuditFilePath string `json:"auditFilePath"` - // Maximum number of days to retain old log files based on the timestamp encoded in their filename. - MaximumFileRetentionDays int32 `json:"maximumFileRetentionDays"` - // Maximum number of old log files to retain. - MaximumRetainedFiles int32 `json:"maximumRetainedFiles"` - // Maximum size in megabytes of the log file before it gets rotated. Defaults to 100MB. - MaximumFileSizeMegabytes int32 `json:"maximumFileSizeMegabytes"` - - // PolicyFile is a path to the file that defines the audit policy configuration. - PolicyFile string `json:"policyFile"` - // PolicyConfiguration is an embedded policy configuration object to be used - // as the audit policy configuration. If present, it will be used instead of - // the path to the policy file. - // +nullable - // +kubebuilder:pruning:PreserveUnknownFields - PolicyConfiguration runtime.RawExtension `json:"policyConfiguration"` - - // Format of saved audits (legacy or json). - LogFormat LogFormatType `json:"logFormat"` - - // Path to a .kubeconfig formatted file that defines the audit webhook configuration. - WebHookKubeConfig string `json:"webHookKubeConfig"` - // Strategy for sending audit events (block or batch). - WebHookMode WebHookModeType `json:"webHookMode"` -} - -// EtcdConnectionInfo holds information necessary for connecting to an etcd server -type EtcdConnectionInfo struct { - // URLs are the URLs for etcd - URLs []string `json:"urls,omitempty"` - // CA is a file containing trusted roots for the etcd server certificates - CA string `json:"ca"` - // CertInfo is the TLS client cert information for securing communication to etcd - // this is anonymous so that we can inline it for serialization - CertInfo `json:",inline"` -} - -type EtcdStorageConfig struct { - EtcdConnectionInfo `json:",inline"` - - // StoragePrefix is the path within etcd that the OpenShift resources will - // be rooted under. This value, if changed, will mean existing objects in etcd will - // no longer be located. - StoragePrefix string `json:"storagePrefix"` -} - -// GenericAPIServerConfig is an inline-able struct for aggregated apiservers that need to store data in etcd -type GenericAPIServerConfig struct { - // servingInfo describes how to start serving - ServingInfo HTTPServingInfo `json:"servingInfo"` - - // corsAllowedOrigins - CORSAllowedOrigins []string `json:"corsAllowedOrigins"` - - // auditConfig describes how to configure audit information - AuditConfig AuditConfig `json:"auditConfig"` - - // storageConfig contains information about how to use - StorageConfig EtcdStorageConfig `json:"storageConfig"` - - // admissionConfig holds information about how to configure admission. - AdmissionConfig AdmissionConfig `json:"admission"` - - KubeClientConfig KubeClientConfig `json:"kubeClientConfig"` -} - -type KubeClientConfig struct { - // kubeConfig is a .kubeconfig filename for going to the owning kube-apiserver. Empty uses an in-cluster-config - KubeConfig string `json:"kubeConfig"` - - // connectionOverrides specifies client overrides for system components to loop back to this master. - ConnectionOverrides ClientConnectionOverrides `json:"connectionOverrides"` -} - -type ClientConnectionOverrides struct { - // acceptContentTypes defines the Accept header sent by clients when connecting to a server, overriding the - // default value of 'application/json'. This field will control all connections to the server used by a particular - // client. - AcceptContentTypes string `json:"acceptContentTypes"` - // contentType is the content type used when sending data to the server from this client. - ContentType string `json:"contentType"` - - // qps controls the number of queries per second allowed for this connection. - QPS float32 `json:"qps"` - // burst allows extra queries to accumulate when a client is exceeding its rate. - Burst int32 `json:"burst"` -} - -// GenericControllerConfig provides information to configure a controller -type GenericControllerConfig struct { - // ServingInfo is the HTTP serving information for the controller's endpoints - ServingInfo HTTPServingInfo `json:"servingInfo"` - - // leaderElection provides information to elect a leader. Only override this if you have a specific need - LeaderElection LeaderElection `json:"leaderElection"` - - // authentication allows configuration of authentication for the endpoints - Authentication DelegatedAuthentication `json:"authentication"` - // authorization allows configuration of authentication for the endpoints - Authorization DelegatedAuthorization `json:"authorization"` -} - -// DelegatedAuthentication allows authentication to be disabled. -type DelegatedAuthentication struct { - // disabled indicates that authentication should be disabled. By default it will use delegated authentication. - Disabled bool `json:"disabled,omitempty"` -} - -// DelegatedAuthorization allows authorization to be disabled. -type DelegatedAuthorization struct { - // disabled indicates that authorization should be disabled. By default it will use delegated authorization. - Disabled bool `json:"disabled,omitempty"` -} diff --git a/vendor/github.com/openshift/api/config/v1/types_apiserver.go b/vendor/github.com/openshift/api/config/v1/types_apiserver.go deleted file mode 100644 index 42268db39b53b..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_apiserver.go +++ /dev/null @@ -1,158 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// APIServer holds configuration (like serving certificates, client CA and CORS domains) -// shared by all API servers in the system, among them especially kube-apiserver -// and openshift-apiserver. The canonical name of an instance is 'cluster'. -type APIServer struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - // spec holds user settable values for configuration - // +kubebuilder:validation:Required - // +required - Spec APIServerSpec `json:"spec"` - // status holds observed values from the cluster. They may not be overridden. - // +optional - Status APIServerStatus `json:"status"` -} - -type APIServerSpec struct { - // servingCert is the TLS cert info for serving secure traffic. If not specified, operator managed certificates - // will be used for serving secure traffic. - // +optional - ServingCerts APIServerServingCerts `json:"servingCerts"` - // clientCA references a ConfigMap containing a certificate bundle for the signers that will be recognized for - // incoming client certificates in addition to the operator managed signers. If this is empty, then only operator managed signers are valid. - // You usually only have to set this if you have your own PKI you wish to honor client certificates from. - // The ConfigMap must exist in the openshift-config namespace and contain the following required fields: - // - ConfigMap.Data["ca-bundle.crt"] - CA bundle. - // +optional - ClientCA ConfigMapNameReference `json:"clientCA"` - // additionalCORSAllowedOrigins lists additional, user-defined regular expressions describing hosts for which the - // API server allows access using the CORS headers. This may be needed to access the API and the integrated OAuth - // server from JavaScript applications. - // The values are regular expressions that correspond to the Golang regular expression language. - // +optional - AdditionalCORSAllowedOrigins []string `json:"additionalCORSAllowedOrigins,omitempty"` - // encryption allows the configuration of encryption of resources at the datastore layer. - // +optional - Encryption APIServerEncryption `json:"encryption"` - // tlsSecurityProfile specifies settings for TLS connections for externally exposed servers. - // - // If unset, a default (which may change between releases) is chosen. Note that only Old and - // Intermediate profiles are currently supported, and the maximum available MinTLSVersions - // is VersionTLS12. - // +optional - TLSSecurityProfile *TLSSecurityProfile `json:"tlsSecurityProfile,omitempty"` - // audit specifies the settings for audit configuration to be applied to all OpenShift-provided - // API servers in the cluster. - // +optional - // +kubebuilder:default={profile: Default} - Audit Audit `json:"audit"` -} - -// AuditProfileType defines the audit policy profile type. -// +kubebuilder:validation:Enum=Default;WriteRequestBodies;AllRequestBodies -type AuditProfileType string - -const ( - // "Default" is the existing default audit configuration policy. - AuditProfileDefaultType AuditProfileType = "Default" - - // "WriteRequestBodies" is similar to Default but it logs request and response - // HTTP payloads for write requests (create, update, patch) - WriteRequestBodiesAuditProfileType AuditProfileType = "WriteRequestBodies" - - // "AllRequestBodies" is similar to WriteRequestBodies, but also logs request - // and response HTTP payloads for read requests (get, list). - AllRequestBodiesAuditProfileType AuditProfileType = "AllRequestBodies" -) - -type Audit struct { - // profile specifies the name of the desired audit policy configuration to be deployed to - // all OpenShift-provided API servers in the cluster. - // - // The following profiles are provided: - // - Default: the existing default policy. - // - WriteRequestBodies: like 'Default', but logs request and response HTTP payloads for - // write requests (create, update, patch). - // - AllRequestBodies: like 'WriteRequestBodies', but also logs request and response - // HTTP payloads for read requests (get, list). - // - // If unset, the 'Default' profile is used as the default. - // +kubebuilder:default=Default - Profile AuditProfileType `json:"profile,omitempty"` -} - -type APIServerServingCerts struct { - // namedCertificates references secrets containing the TLS cert info for serving secure traffic to specific hostnames. - // If no named certificates are provided, or no named certificates match the server name as understood by a client, - // the defaultServingCertificate will be used. - // +optional - NamedCertificates []APIServerNamedServingCert `json:"namedCertificates,omitempty"` -} - -// APIServerNamedServingCert maps a server DNS name, as understood by a client, to a certificate. -type APIServerNamedServingCert struct { - // names is a optional list of explicit DNS names (leading wildcards allowed) that should use this certificate to - // serve secure traffic. If no names are provided, the implicit names will be extracted from the certificates. - // Exact names trump over wildcard names. Explicit names defined here trump over extracted implicit names. - // +optional - Names []string `json:"names,omitempty"` - // servingCertificate references a kubernetes.io/tls type secret containing the TLS cert info for serving secure traffic. - // The secret must exist in the openshift-config namespace and contain the following required fields: - // - Secret.Data["tls.key"] - TLS private key. - // - Secret.Data["tls.crt"] - TLS certificate. - ServingCertificate SecretNameReference `json:"servingCertificate"` -} - -type APIServerEncryption struct { - // type defines what encryption type should be used to encrypt resources at the datastore layer. - // When this field is unset (i.e. when it is set to the empty string), identity is implied. - // The behavior of unset can and will change over time. Even if encryption is enabled by default, - // the meaning of unset may change to a different encryption type based on changes in best practices. - // - // When encryption is enabled, all sensitive resources shipped with the platform are encrypted. - // This list of sensitive resources can and will change over time. The current authoritative list is: - // - // 1. secrets - // 2. configmaps - // 3. routes.route.openshift.io - // 4. oauthaccesstokens.oauth.openshift.io - // 5. oauthauthorizetokens.oauth.openshift.io - // - // +unionDiscriminator - // +optional - Type EncryptionType `json:"type,omitempty"` -} - -// +kubebuilder:validation:Enum="";identity;aescbc -type EncryptionType string - -const ( - // identity refers to a type where no encryption is performed at the datastore layer. - // Resources are written as-is without encryption. - EncryptionTypeIdentity EncryptionType = "identity" - - // aescbc refers to a type where AES-CBC with PKCS#7 padding and a 32-byte key - // is used to perform encryption at the datastore layer. - EncryptionTypeAESCBC EncryptionType = "aescbc" -) - -type APIServerStatus struct { -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type APIServerList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - Items []APIServer `json:"items"` -} diff --git a/vendor/github.com/openshift/api/config/v1/types_authentication.go b/vendor/github.com/openshift/api/config/v1/types_authentication.go deleted file mode 100644 index 131af5a0ca961..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_authentication.go +++ /dev/null @@ -1,145 +0,0 @@ -package v1 - -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Authentication specifies cluster-wide settings for authentication (like OAuth and -// webhook token authenticators). The canonical name of an instance is `cluster`. -type Authentication struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - // spec holds user settable values for configuration - // +kubebuilder:validation:Required - // +required - Spec AuthenticationSpec `json:"spec"` - // status holds observed values from the cluster. They may not be overridden. - // +optional - Status AuthenticationStatus `json:"status"` -} - -type AuthenticationSpec struct { - // type identifies the cluster managed, user facing authentication mode in use. - // Specifically, it manages the component that responds to login attempts. - // The default is IntegratedOAuth. - // +optional - Type AuthenticationType `json:"type"` - - // oauthMetadata contains the discovery endpoint data for OAuth 2.0 - // Authorization Server Metadata for an external OAuth server. - // This discovery document can be viewed from its served location: - // oc get --raw '/.well-known/oauth-authorization-server' - // For further details, see the IETF Draft: - // https://tools.ietf.org/html/draft-ietf-oauth-discovery-04#section-2 - // If oauthMetadata.name is non-empty, this value has precedence - // over any metadata reference stored in status. - // The key "oauthMetadata" is used to locate the data. - // If specified and the config map or expected key is not found, no metadata is served. - // If the specified metadata is not valid, no metadata is served. - // The namespace for this config map is openshift-config. - // +optional - OAuthMetadata ConfigMapNameReference `json:"oauthMetadata"` - - // webhookTokenAuthenticators is DEPRECATED, setting it has no effect. - WebhookTokenAuthenticators []DeprecatedWebhookTokenAuthenticator `json:"webhookTokenAuthenticators,omitempty"` - - // webhookTokenAuthenticator configures a remote token reviewer. - // These remote authentication webhooks can be used to verify bearer tokens - // via the tokenreviews.authentication.k8s.io REST API. This is required to - // honor bearer tokens that are provisioned by an external authentication service. - // +optional - WebhookTokenAuthenticator *WebhookTokenAuthenticator `json:"webhookTokenAuthenticator,omitempty"` - - // serviceAccountIssuer is the identifier of the bound service account token - // issuer. - // The default is https://kubernetes.default.svc - // +optional - ServiceAccountIssuer string `json:"serviceAccountIssuer"` -} - -type AuthenticationStatus struct { - // integratedOAuthMetadata contains the discovery endpoint data for OAuth 2.0 - // Authorization Server Metadata for the in-cluster integrated OAuth server. - // This discovery document can be viewed from its served location: - // oc get --raw '/.well-known/oauth-authorization-server' - // For further details, see the IETF Draft: - // https://tools.ietf.org/html/draft-ietf-oauth-discovery-04#section-2 - // This contains the observed value based on cluster state. - // An explicitly set value in spec.oauthMetadata has precedence over this field. - // This field has no meaning if authentication spec.type is not set to IntegratedOAuth. - // The key "oauthMetadata" is used to locate the data. - // If the config map or expected key is not found, no metadata is served. - // If the specified metadata is not valid, no metadata is served. - // The namespace for this config map is openshift-config-managed. - IntegratedOAuthMetadata ConfigMapNameReference `json:"integratedOAuthMetadata"` - - // TODO if we add support for an in-cluster operator managed Keycloak instance - // KeycloakOAuthMetadata ConfigMapNameReference `json:"keycloakOAuthMetadata"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type AuthenticationList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - - Items []Authentication `json:"items"` -} - -type AuthenticationType string - -const ( - // None means that no cluster managed authentication system is in place. - // Note that user login will only work if a manually configured system is in place and - // referenced in authentication spec via oauthMetadata and webhookTokenAuthenticators. - AuthenticationTypeNone AuthenticationType = "None" - - // IntegratedOAuth refers to the cluster managed OAuth server. - // It is configured via the top level OAuth config. - AuthenticationTypeIntegratedOAuth AuthenticationType = "IntegratedOAuth" - - // TODO if we add support for an in-cluster operator managed Keycloak instance - // AuthenticationTypeKeycloak AuthenticationType = "Keycloak" -) - -// deprecatedWebhookTokenAuthenticator holds the necessary configuration options for a remote token authenticator. -// It's the same as WebhookTokenAuthenticator but it's missing the 'required' validation on KubeConfig field. -type DeprecatedWebhookTokenAuthenticator struct { - // kubeConfig contains kube config file data which describes how to access the remote webhook service. - // For further details, see: - // https://kubernetes.io/docs/reference/access-authn-authz/authentication/#webhook-token-authentication - // The key "kubeConfig" is used to locate the data. - // If the secret or expected key is not found, the webhook is not honored. - // If the specified kube config data is not valid, the webhook is not honored. - // The namespace for this secret is determined by the point of use. - KubeConfig SecretNameReference `json:"kubeConfig"` -} - -// webhookTokenAuthenticator holds the necessary configuration options for a remote token authenticator -type WebhookTokenAuthenticator struct { - // kubeConfig references a secret that contains kube config file data which - // describes how to access the remote webhook service. - // The namespace for the referenced secret is openshift-config. - // - // For further details, see: - // - // https://kubernetes.io/docs/reference/access-authn-authz/authentication/#webhook-token-authentication - // - // The key "kubeConfig" is used to locate the data. - // If the secret or expected key is not found, the webhook is not honored. - // If the specified kube config data is not valid, the webhook is not honored. - // +kubebuilder:validation:Required - // +required - KubeConfig SecretNameReference `json:"kubeConfig"` -} - -const ( - // OAuthMetadataKey is the key for the oauth authorization server metadata - OAuthMetadataKey = "oauthMetadata" - - // KubeConfigKey is the key for the kube config file data in a secret - KubeConfigKey = "kubeConfig" -) diff --git a/vendor/github.com/openshift/api/config/v1/types_build.go b/vendor/github.com/openshift/api/config/v1/types_build.go deleted file mode 100644 index 16882e1caf0ba..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_build.go +++ /dev/null @@ -1,116 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Build configures the behavior of OpenShift builds for the entire cluster. -// This includes default settings that can be overridden in BuildConfig objects, and overrides which are applied to all builds. -// -// The canonical name is "cluster" -type Build struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - // Spec holds user-settable values for the build controller configuration - // +kubebuilder:validation:Required - // +required - Spec BuildSpec `json:"spec"` -} - -type BuildSpec struct { - // AdditionalTrustedCA is a reference to a ConfigMap containing additional CAs that - // should be trusted for image pushes and pulls during builds. - // The namespace for this config map is openshift-config. - // - // DEPRECATED: Additional CAs for image pull and push should be set on - // image.config.openshift.io/cluster instead. - // - // +optional - AdditionalTrustedCA ConfigMapNameReference `json:"additionalTrustedCA"` - // BuildDefaults controls the default information for Builds - // +optional - BuildDefaults BuildDefaults `json:"buildDefaults"` - // BuildOverrides controls override settings for builds - // +optional - BuildOverrides BuildOverrides `json:"buildOverrides"` -} - -type BuildDefaults struct { - // DefaultProxy contains the default proxy settings for all build operations, including image pull/push - // and source download. - // - // Values can be overrode by setting the `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY` environment variables - // in the build config's strategy. - // +optional - DefaultProxy *ProxySpec `json:"defaultProxy,omitempty"` - - // GitProxy contains the proxy settings for git operations only. If set, this will override - // any Proxy settings for all git commands, such as git clone. - // - // Values that are not set here will be inherited from DefaultProxy. - // +optional - GitProxy *ProxySpec `json:"gitProxy,omitempty"` - - // Env is a set of default environment variables that will be applied to the - // build if the specified variables do not exist on the build - // +optional - Env []corev1.EnvVar `json:"env,omitempty"` - - // ImageLabels is a list of docker labels that are applied to the resulting image. - // User can override a default label by providing a label with the same name in their - // Build/BuildConfig. - // +optional - ImageLabels []ImageLabel `json:"imageLabels,omitempty"` - - // Resources defines resource requirements to execute the build. - // +optional - Resources corev1.ResourceRequirements `json:"resources"` -} - -type ImageLabel struct { - // Name defines the name of the label. It must have non-zero length. - Name string `json:"name"` - - // Value defines the literal value of the label. - // +optional - Value string `json:"value,omitempty"` -} - -type BuildOverrides struct { - // ImageLabels is a list of docker labels that are applied to the resulting image. - // If user provided a label in their Build/BuildConfig with the same name as one in this - // list, the user's label will be overwritten. - // +optional - ImageLabels []ImageLabel `json:"imageLabels,omitempty"` - - // NodeSelector is a selector which must be true for the build pod to fit on a node - // +optional - NodeSelector map[string]string `json:"nodeSelector,omitempty"` - - // Tolerations is a list of Tolerations that will override any existing - // tolerations set on a build pod. - // +optional - Tolerations []corev1.Toleration `json:"tolerations,omitempty"` - - // ForcePull overrides, if set, the equivalent value in the builds, - // i.e. false disables force pull for all builds, - // true enables force pull for all builds, - // independently of what each build specifies itself - // +optional - ForcePull *bool `json:"forcePull,omitempty"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type BuildList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - - Items []Build `json:"items"` -} diff --git a/vendor/github.com/openshift/api/config/v1/types_cluster_operator.go b/vendor/github.com/openshift/api/config/v1/types_cluster_operator.go deleted file mode 100644 index 3681d0ff02b7d..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_cluster_operator.go +++ /dev/null @@ -1,184 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ClusterOperator is the Custom Resource object which holds the current state -// of an operator. This object is used by operators to convey their state to -// the rest of the cluster. -type ClusterOperator struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata"` - - // spec holds configuration that could apply to any operator. - // +kubebuilder:validation:Required - // +required - Spec ClusterOperatorSpec `json:"spec"` - - // status holds the information about the state of an operator. It is consistent with status information across - // the Kubernetes ecosystem. - // +optional - Status ClusterOperatorStatus `json:"status"` -} - -// ClusterOperatorSpec is empty for now, but you could imagine holding information like "pause". -type ClusterOperatorSpec struct { -} - -// ClusterOperatorStatus provides information about the status of the operator. -// +k8s:deepcopy-gen=true -type ClusterOperatorStatus struct { - // conditions describes the state of the operator's managed and monitored components. - // +patchMergeKey=type - // +patchStrategy=merge - // +optional - Conditions []ClusterOperatorStatusCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` - - // versions is a slice of operator and operand version tuples. Operators which manage multiple operands will have multiple - // operand entries in the array. Available operators must report the version of the operator itself with the name "operator". - // An operator reports a new "operator" version when it has rolled out the new version to all of its operands. - // +optional - Versions []OperandVersion `json:"versions,omitempty"` - - // relatedObjects is a list of objects that are "interesting" or related to this operator. Common uses are: - // 1. the detailed resource driving the operator - // 2. operator namespaces - // 3. operand namespaces - // +optional - RelatedObjects []ObjectReference `json:"relatedObjects,omitempty"` - - // extension contains any additional status information specific to the - // operator which owns this status object. - // +nullable - // +optional - // +kubebuilder:pruning:PreserveUnknownFields - Extension runtime.RawExtension `json:"extension"` -} - -type OperandVersion struct { - // name is the name of the particular operand this version is for. It usually matches container images, not operators. - // +kubebuilder:validation:Required - // +required - Name string `json:"name"` - - // version indicates which version of a particular operand is currently being managed. It must always match the Available - // operand. If 1.0.0 is Available, then this must indicate 1.0.0 even if the operator is trying to rollout - // 1.1.0 - // +kubebuilder:validation:Required - // +required - Version string `json:"version"` -} - -// ObjectReference contains enough information to let you inspect or modify the referred object. -type ObjectReference struct { - // group of the referent. - // +kubebuilder:validation:Required - // +required - Group string `json:"group"` - // resource of the referent. - // +kubebuilder:validation:Required - // +required - Resource string `json:"resource"` - // namespace of the referent. - // +optional - Namespace string `json:"namespace,omitempty"` - // name of the referent. - // +kubebuilder:validation:Required - // +required - Name string `json:"name"` -} - -type ConditionStatus string - -// These are valid condition statuses. "ConditionTrue" means a resource is in the condition. -// "ConditionFalse" means a resource is not in the condition. "ConditionUnknown" means kubernetes -// can't decide if a resource is in the condition or not. In the future, we could add other -// intermediate conditions, e.g. ConditionDegraded. -const ( - ConditionTrue ConditionStatus = "True" - ConditionFalse ConditionStatus = "False" - ConditionUnknown ConditionStatus = "Unknown" -) - -// ClusterOperatorStatusCondition represents the state of the operator's -// managed and monitored components. -// +k8s:deepcopy-gen=true -type ClusterOperatorStatusCondition struct { - // type specifies the aspect reported by this condition. - // +kubebuilder:validation:Required - // +required - Type ClusterStatusConditionType `json:"type"` - - // status of the condition, one of True, False, Unknown. - // +kubebuilder:validation:Required - // +required - Status ConditionStatus `json:"status"` - - // lastTransitionTime is the time of the last update to the current status property. - // +kubebuilder:validation:Required - // +required - LastTransitionTime metav1.Time `json:"lastTransitionTime"` - - // reason is the CamelCase reason for the condition's current status. - // +optional - Reason string `json:"reason,omitempty"` - - // message provides additional information about the current condition. - // This is only to be consumed by humans. - // +optional - Message string `json:"message,omitempty"` -} - -// ClusterStatusConditionType is an aspect of operator state. -type ClusterStatusConditionType string - -const ( - // Available indicates that the operand (eg: openshift-apiserver for the - // openshift-apiserver-operator), is functional and available in the cluster. - OperatorAvailable ClusterStatusConditionType = "Available" - - // Progressing indicates that the operator is actively rolling out new code, - // propagating config changes, or otherwise moving from one steady state to - // another. Operators should not report progressing when they are reconciling - // a previously known state. - OperatorProgressing ClusterStatusConditionType = "Progressing" - - // Degraded indicates that the operator's current state does not match its - // desired state over a period of time resulting in a lower quality of service. - // The period of time may vary by component, but a Degraded state represents - // persistent observation of a condition. As a result, a component should not - // oscillate in and out of Degraded state. A service may be Available even - // if its degraded. For example, your service may desire 3 running pods, but 1 - // pod is crash-looping. The service is Available but Degraded because it - // may have a lower quality of service. A component may be Progressing but - // not Degraded because the transition from one state to another does not - // persist over a long enough period to report Degraded. A service should not - // report Degraded during the course of a normal upgrade. A service may report - // Degraded in response to a persistent infrastructure failure that requires - // administrator intervention. For example, if a control plane host is unhealthy - // and must be replaced. An operator should report Degraded if unexpected - // errors occur over a period, but the expectation is that all unexpected errors - // are handled as operators mature. - OperatorDegraded ClusterStatusConditionType = "Degraded" - - // Upgradeable indicates whether the operator is in a state that is safe to upgrade. When status is `False` - // administrators should not upgrade their cluster and the message field should contain a human readable description - // of what the administrator should do to allow the operator to successfully update. A missing condition, True, - // and Unknown are all treated by the CVO as allowing an upgrade. - OperatorUpgradeable ClusterStatusConditionType = "Upgradeable" -) - -// ClusterOperatorList is a list of OperatorStatus resources. -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -type ClusterOperatorList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - - Items []ClusterOperator `json:"items"` -} diff --git a/vendor/github.com/openshift/api/config/v1/types_cluster_version.go b/vendor/github.com/openshift/api/config/v1/types_cluster_version.go deleted file mode 100644 index 58a65228da4e3..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_cluster_version.go +++ /dev/null @@ -1,294 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ClusterVersion is the configuration for the ClusterVersionOperator. This is where -// parameters related to automatic updates can be set. -type ClusterVersion struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - // spec is the desired state of the cluster version - the operator will work - // to ensure that the desired version is applied to the cluster. - // +kubebuilder:validation:Required - // +required - Spec ClusterVersionSpec `json:"spec"` - // status contains information about the available updates and any in-progress - // updates. - // +optional - Status ClusterVersionStatus `json:"status"` -} - -// ClusterVersionSpec is the desired version state of the cluster. It includes -// the version the cluster should be at, how the cluster is identified, and -// where the cluster should look for version updates. -// +k8s:deepcopy-gen=true -type ClusterVersionSpec struct { - // clusterID uniquely identifies this cluster. This is expected to be - // an RFC4122 UUID value (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx in - // hexadecimal values). This is a required field. - // +kubebuilder:validation:Required - // +required - ClusterID ClusterID `json:"clusterID"` - - // desiredUpdate is an optional field that indicates the desired value of - // the cluster version. Setting this value will trigger an upgrade (if - // the current version does not match the desired version). The set of - // recommended update values is listed as part of available updates in - // status, and setting values outside that range may cause the upgrade - // to fail. You may specify the version field without setting image if - // an update exists with that version in the availableUpdates or history. - // - // If an upgrade fails the operator will halt and report status - // about the failing component. Setting the desired update value back to - // the previous version will cause a rollback to be attempted. Not all - // rollbacks will succeed. - // - // +optional - DesiredUpdate *Update `json:"desiredUpdate,omitempty"` - - // upstream may be used to specify the preferred update server. By default - // it will use the appropriate update server for the cluster and region. - // - // +optional - Upstream URL `json:"upstream,omitempty"` - // channel is an identifier for explicitly requesting that a non-default - // set of updates be applied to this cluster. The default channel will be - // contain stable updates that are appropriate for production clusters. - // - // +optional - Channel string `json:"channel,omitempty"` - - // overrides is list of overides for components that are managed by - // cluster version operator. Marking a component unmanaged will prevent - // the operator from creating or updating the object. - // +optional - Overrides []ComponentOverride `json:"overrides,omitempty"` -} - -// ClusterVersionStatus reports the status of the cluster versioning, -// including any upgrades that are in progress. The current field will -// be set to whichever version the cluster is reconciling to, and the -// conditions array will report whether the update succeeded, is in -// progress, or is failing. -// +k8s:deepcopy-gen=true -type ClusterVersionStatus struct { - // desired is the version that the cluster is reconciling towards. - // If the cluster is not yet fully initialized desired will be set - // with the information available, which may be an image or a tag. - // +kubebuilder:validation:Required - // +required - Desired Release `json:"desired"` - - // history contains a list of the most recent versions applied to the cluster. - // This value may be empty during cluster startup, and then will be updated - // when a new update is being applied. The newest update is first in the - // list and it is ordered by recency. Updates in the history have state - // Completed if the rollout completed - if an update was failing or halfway - // applied the state will be Partial. Only a limited amount of update history - // is preserved. - // +optional - History []UpdateHistory `json:"history,omitempty"` - - // observedGeneration reports which version of the spec is being synced. - // If this value is not equal to metadata.generation, then the desired - // and conditions fields may represent a previous version. - // +kubebuilder:validation:Required - // +required - ObservedGeneration int64 `json:"observedGeneration"` - - // versionHash is a fingerprint of the content that the cluster will be - // updated with. It is used by the operator to avoid unnecessary work - // and is for internal use only. - // +kubebuilder:validation:Required - // +required - VersionHash string `json:"versionHash"` - - // conditions provides information about the cluster version. The condition - // "Available" is set to true if the desiredUpdate has been reached. The - // condition "Progressing" is set to true if an update is being applied. - // The condition "Degraded" is set to true if an update is currently blocked - // by a temporary or permanent error. Conditions are only valid for the - // current desiredUpdate when metadata.generation is equal to - // status.generation. - // +optional - Conditions []ClusterOperatorStatusCondition `json:"conditions,omitempty"` - - // availableUpdates contains the list of updates that are appropriate - // for this cluster. This list may be empty if no updates are recommended, - // if the update service is unavailable, or if an invalid channel has - // been specified. - // +nullable - // +kubebuilder:validation:Required - // +required - AvailableUpdates []Release `json:"availableUpdates"` -} - -// UpdateState is a constant representing whether an update was successfully -// applied to the cluster or not. -type UpdateState string - -const ( - // CompletedUpdate indicates an update was successfully applied - // to the cluster (all resource updates were successful). - CompletedUpdate UpdateState = "Completed" - // PartialUpdate indicates an update was never completely applied - // or is currently being applied. - PartialUpdate UpdateState = "Partial" -) - -// UpdateHistory is a single attempted update to the cluster. -type UpdateHistory struct { - // state reflects whether the update was fully applied. The Partial state - // indicates the update is not fully applied, while the Completed state - // indicates the update was successfully rolled out at least once (all - // parts of the update successfully applied). - // +kubebuilder:validation:Required - // +required - State UpdateState `json:"state"` - - // startedTime is the time at which the update was started. - // +kubebuilder:validation:Required - // +required - StartedTime metav1.Time `json:"startedTime"` - // completionTime, if set, is when the update was fully applied. The update - // that is currently being applied will have a null completion time. - // Completion time will always be set for entries that are not the current - // update (usually to the started time of the next update). - // +kubebuilder:validation:Required - // +required - // +nullable - CompletionTime *metav1.Time `json:"completionTime"` - - // version is a semantic versioning identifying the update version. If the - // requested image does not define a version, or if a failure occurs - // retrieving the image, this value may be empty. - // - // +optional - Version string `json:"version"` - // image is a container image location that contains the update. This value - // is always populated. - // +kubebuilder:validation:Required - // +required - Image string `json:"image"` - // verified indicates whether the provided update was properly verified - // before it was installed. If this is false the cluster may not be trusted. - // +kubebuilder:validation:Required - // +required - Verified bool `json:"verified"` -} - -// ClusterID is string RFC4122 uuid. -type ClusterID string - -// ComponentOverride allows overriding cluster version operator's behavior -// for a component. -// +k8s:deepcopy-gen=true -type ComponentOverride struct { - // kind indentifies which object to override. - // +kubebuilder:validation:Required - // +required - Kind string `json:"kind"` - // group identifies the API group that the kind is in. - // +kubebuilder:validation:Required - // +required - Group string `json:"group"` - - // namespace is the component's namespace. If the resource is cluster - // scoped, the namespace should be empty. - // +kubebuilder:validation:Required - // +required - Namespace string `json:"namespace"` - // name is the component's name. - // +kubebuilder:validation:Required - // +required - Name string `json:"name"` - - // unmanaged controls if cluster version operator should stop managing the - // resources in this cluster. - // Default: false - // +kubebuilder:validation:Required - // +required - Unmanaged bool `json:"unmanaged"` -} - -// URL is a thin wrapper around string that ensures the string is a valid URL. -type URL string - -// Update represents an administrator update request. -// +k8s:deepcopy-gen=true -type Update struct { - // version is a semantic versioning identifying the update version. When this - // field is part of spec, version is optional if image is specified. - // - // +optional - Version string `json:"version"` - // image is a container image location that contains the update. When this - // field is part of spec, image is optional if version is specified and the - // availableUpdates field contains a matching version. - // - // +optional - Image string `json:"image"` - // force allows an administrator to update to an image that has failed - // verification, does not appear in the availableUpdates list, or otherwise - // would be blocked by normal protections on update. This option should only - // be used when the authenticity of the provided image has been verified out - // of band because the provided image will run with full administrative access - // to the cluster. Do not use this flag with images that comes from unknown - // or potentially malicious sources. - // - // This flag does not override other forms of consistency checking that are - // required before a new update is deployed. - // - // +optional - Force bool `json:"force"` -} - -// Release represents an OpenShift release image and associated metadata. -// +k8s:deepcopy-gen=true -type Release struct { - // version is a semantic versioning identifying the update version. When this - // field is part of spec, version is optional if image is specified. - // +required - Version string `json:"version"` - - // image is a container image location that contains the update. When this - // field is part of spec, image is optional if version is specified and the - // availableUpdates field contains a matching version. - // +required - Image string `json:"image"` - - // url contains information about this release. This URL is set by - // the 'url' metadata property on a release or the metadata returned by - // the update API and should be displayed as a link in user - // interfaces. The URL field may not be set for test or nightly - // releases. - // +optional - URL URL `json:"url,omitempty"` - - // channels is the set of Cincinnati channels to which the release - // currently belongs. - // +optional - Channels []string `json:"channels,omitempty"` -} - -// RetrievedUpdates reports whether available updates have been retrieved from -// the upstream update server. The condition is Unknown before retrieval, False -// if the updates could not be retrieved or recently failed, or True if the -// availableUpdates field is accurate and recent. -const RetrievedUpdates ClusterStatusConditionType = "RetrievedUpdates" - -// ClusterVersionList is a list of ClusterVersion resources. -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -type ClusterVersionList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - - Items []ClusterVersion `json:"items"` -} diff --git a/vendor/github.com/openshift/api/config/v1/types_console.go b/vendor/github.com/openshift/api/config/v1/types_console.go deleted file mode 100644 index d64219300ddbd..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_console.go +++ /dev/null @@ -1,64 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Console holds cluster-wide configuration for the web console, including the -// logout URL, and reports the public URL of the console. The canonical name is -// `cluster`. -type Console struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - // spec holds user settable values for configuration - // +kubebuilder:validation:Required - // +required - Spec ConsoleSpec `json:"spec"` - // status holds observed values from the cluster. They may not be overridden. - // +optional - Status ConsoleStatus `json:"status"` -} - -// ConsoleSpec is the specification of the desired behavior of the Console. -type ConsoleSpec struct { - // +optional - Authentication ConsoleAuthentication `json:"authentication"` -} - -// ConsoleStatus defines the observed status of the Console. -type ConsoleStatus struct { - // The URL for the console. This will be derived from the host for the route that - // is created for the console. - ConsoleURL string `json:"consoleURL"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type ConsoleList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - - Items []Console `json:"items"` -} - -// ConsoleAuthentication defines a list of optional configuration for console authentication. -type ConsoleAuthentication struct { - // An optional, absolute URL to redirect web browsers to after logging out of - // the console. If not specified, it will redirect to the default login page. - // This is required when using an identity provider that supports single - // sign-on (SSO) such as: - // - OpenID (Keycloak, Azure) - // - RequestHeader (GSSAPI, SSPI, SAML) - // - OAuth (GitHub, GitLab, Google) - // Logging out of the console will destroy the user's token. The logoutRedirect - // provides the user the option to perform single logout (SLO) through the identity - // provider to destroy their single sign-on session. - // +optional - // +kubebuilder:validation:Pattern=`^$|^((https):\/\/?)[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|\/?))$` - LogoutRedirect string `json:"logoutRedirect,omitempty"` -} diff --git a/vendor/github.com/openshift/api/config/v1/types_dns.go b/vendor/github.com/openshift/api/config/v1/types_dns.go deleted file mode 100644 index 989ef99c3cded..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_dns.go +++ /dev/null @@ -1,87 +0,0 @@ -package v1 - -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// DNS holds cluster-wide information about DNS. The canonical name is `cluster` -type DNS struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - // spec holds user settable values for configuration - // +kubebuilder:validation:Required - // +required - Spec DNSSpec `json:"spec"` - // status holds observed values from the cluster. They may not be overridden. - // +optional - Status DNSStatus `json:"status"` -} - -type DNSSpec struct { - // baseDomain is the base domain of the cluster. All managed DNS records will - // be sub-domains of this base. - // - // For example, given the base domain `openshift.example.com`, an API server - // DNS record may be created for `cluster-api.openshift.example.com`. - // - // Once set, this field cannot be changed. - BaseDomain string `json:"baseDomain"` - // publicZone is the location where all the DNS records that are publicly accessible to - // the internet exist. - // - // If this field is nil, no public records should be created. - // - // Once set, this field cannot be changed. - // - // +optional - PublicZone *DNSZone `json:"publicZone,omitempty"` - // privateZone is the location where all the DNS records that are only available internally - // to the cluster exist. - // - // If this field is nil, no private records should be created. - // - // Once set, this field cannot be changed. - // - // +optional - PrivateZone *DNSZone `json:"privateZone,omitempty"` -} - -// DNSZone is used to define a DNS hosted zone. -// A zone can be identified by an ID or tags. -type DNSZone struct { - // id is the identifier that can be used to find the DNS hosted zone. - // - // on AWS zone can be fetched using `ID` as id in [1] - // on Azure zone can be fetched using `ID` as a pre-determined name in [2], - // on GCP zone can be fetched using `ID` as a pre-determined name in [3]. - // - // [1]: https://docs.aws.amazon.com/cli/latest/reference/route53/get-hosted-zone.html#options - // [2]: https://docs.microsoft.com/en-us/cli/azure/network/dns/zone?view=azure-cli-latest#az-network-dns-zone-show - // [3]: https://cloud.google.com/dns/docs/reference/v1/managedZones/get - // +optional - ID string `json:"id,omitempty"` - - // tags can be used to query the DNS hosted zone. - // - // on AWS, resourcegroupstaggingapi [1] can be used to fetch a zone using `Tags` as tag-filters, - // - // [1]: https://docs.aws.amazon.com/cli/latest/reference/resourcegroupstaggingapi/get-resources.html#options - // +optional - Tags map[string]string `json:"tags,omitempty"` -} - -type DNSStatus struct { - // dnsSuffix (service-ca amongst others) -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type DNSList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - - Items []DNS `json:"items"` -} diff --git a/vendor/github.com/openshift/api/config/v1/types_feature.go b/vendor/github.com/openshift/api/config/v1/types_feature.go deleted file mode 100644 index 7cb30c5d3404b..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_feature.go +++ /dev/null @@ -1,203 +0,0 @@ -package v1 - -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Feature holds cluster-wide information about feature gates. The canonical name is `cluster` -type FeatureGate struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - // spec holds user settable values for configuration - // +kubebuilder:validation:Required - // +required - Spec FeatureGateSpec `json:"spec"` - // status holds observed values from the cluster. They may not be overridden. - // +optional - Status FeatureGateStatus `json:"status"` -} - -type FeatureSet string - -var ( - // Default feature set that allows upgrades. - Default FeatureSet = "" - - // TechPreviewNoUpgrade turns on tech preview features that are not part of the normal supported platform. Turning - // this feature set on CANNOT BE UNDONE and PREVENTS UPGRADES. - TechPreviewNoUpgrade FeatureSet = "TechPreviewNoUpgrade" - - // CustomNoUpgrade allows the enabling or disabling of any feature. Turning this feature set on IS NOT SUPPORTED, CANNOT BE UNDONE, and PREVENTS UPGRADES. - // Because of its nature, this setting cannot be validated. If you have any typos or accidentally apply invalid combinations - // your cluster may fail in an unrecoverable way. - CustomNoUpgrade FeatureSet = "CustomNoUpgrade" - - // TopologyManager enables ToplogyManager support. Upgrades are enabled with this feature. - LatencySensitive FeatureSet = "LatencySensitive" - - // IPv6DualStackNoUpgrade enables dual-stack. Turning this feature set on IS NOT SUPPORTED, CANNOT BE UNDONE, and PREVENTS UPGRADES. - IPv6DualStackNoUpgrade FeatureSet = "IPv6DualStackNoUpgrade" -) - -type FeatureGateSpec struct { - FeatureGateSelection `json:",inline"` -} - -// +union -type FeatureGateSelection struct { - // featureSet changes the list of features in the cluster. The default is empty. Be very careful adjusting this setting. - // Turning on or off features may cause irreversible changes in your cluster which cannot be undone. - // +unionDiscriminator - // +optional - FeatureSet FeatureSet `json:"featureSet,omitempty"` - - // customNoUpgrade allows the enabling or disabling of any feature. Turning this feature set on IS NOT SUPPORTED, CANNOT BE UNDONE, and PREVENTS UPGRADES. - // Because of its nature, this setting cannot be validated. If you have any typos or accidentally apply invalid combinations - // your cluster may fail in an unrecoverable way. featureSet must equal "CustomNoUpgrade" must be set to use this field. - // +optional - // +nullable - CustomNoUpgrade *CustomFeatureGates `json:"customNoUpgrade,omitempty"` -} - -type CustomFeatureGates struct { - // enabled is a list of all feature gates that you want to force on - // +optional - Enabled []string `json:"enabled,omitempty"` - // disabled is a list of all feature gates that you want to force off - // +optional - Disabled []string `json:"disabled,omitempty"` -} - -type FeatureGateStatus struct { -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type FeatureGateList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - - Items []FeatureGate `json:"items"` -} - -type FeatureGateEnabledDisabled struct { - Enabled []string - Disabled []string -} - -// FeatureSets Contains a map of Feature names to Enabled/Disabled Feature. -// -// NOTE: The caller needs to make sure to check for the existence of the value -// using golang's existence field. A possible scenario is an upgrade where new -// FeatureSets are added and a controller has not been upgraded with a newer -// version of this file. In this upgrade scenario the map could return nil. -// -// example: -// if featureSet, ok := FeatureSets["SomeNewFeature"]; ok { } -// -// If you put an item in either of these lists, put your area and name on it so we can find owners. -var FeatureSets = map[FeatureSet]*FeatureGateEnabledDisabled{ - Default: defaultFeatures, - CustomNoUpgrade: { - Enabled: []string{}, - Disabled: []string{}, - }, - TechPreviewNoUpgrade: newDefaultFeatures().toFeatures(), - LatencySensitive: newDefaultFeatures(). - with( - "TopologyManager", // sig-pod, sjenning - ). - toFeatures(), - IPv6DualStackNoUpgrade: newDefaultFeatures(). - with( - "IPv6DualStack", // sig-network, danwinship - ). - toFeatures(), -} - -var defaultFeatures = &FeatureGateEnabledDisabled{ - Enabled: []string{ - "APIPriorityAndFairness", // sig-apimachinery, deads2k - "RotateKubeletServerCertificate", // sig-pod, sjenning - "SupportPodPidsLimit", // sig-pod, sjenning - "NodeDisruptionExclusion", // sig-scheduling, ccoleman - "ServiceNodeExclusion", // sig-scheduling, ccoleman - "SCTPSupport", // sig-network, ccallend - }, - Disabled: []string{ - "LegacyNodeRoleBehavior", // sig-scheduling, ccoleman - }, -} - -type featureSetBuilder struct { - forceOn []string - forceOff []string -} - -func newDefaultFeatures() *featureSetBuilder { - return &featureSetBuilder{} -} - -func (f *featureSetBuilder) with(forceOn ...string) *featureSetBuilder { - f.forceOn = append(f.forceOn, forceOn...) - return f -} - -func (f *featureSetBuilder) without(forceOff ...string) *featureSetBuilder { - f.forceOff = append(f.forceOff, forceOff...) - return f -} - -func (f *featureSetBuilder) isForcedOff(needle string) bool { - for _, forcedOff := range f.forceOff { - if needle == forcedOff { - return true - } - } - return false -} - -func (f *featureSetBuilder) isForcedOn(needle string) bool { - for _, forceOn := range f.forceOn { - if needle == forceOn { - return true - } - } - return false -} - -func (f *featureSetBuilder) toFeatures() *FeatureGateEnabledDisabled { - finalOn := []string{} - finalOff := []string{} - - // only add the default enabled features if they haven't been explicitly set off - for _, defaultOn := range defaultFeatures.Enabled { - if !f.isForcedOff(defaultOn) { - finalOn = append(finalOn, defaultOn) - } - } - for _, currOn := range f.forceOn { - if f.isForcedOff(currOn) { - panic("coding error, you can't have features both on and off") - } - finalOn = append(finalOn, currOn) - } - - // only add the default disabled features if they haven't been explicitly set on - for _, defaultOff := range defaultFeatures.Disabled { - if !f.isForcedOn(defaultOff) { - finalOff = append(finalOff, defaultOff) - } - } - for _, currOff := range f.forceOff { - finalOff = append(finalOff, currOff) - } - - return &FeatureGateEnabledDisabled{ - Enabled: finalOn, - Disabled: finalOff, - } -} diff --git a/vendor/github.com/openshift/api/config/v1/types_image.go b/vendor/github.com/openshift/api/config/v1/types_image.go deleted file mode 100644 index 63d3d1379bce1..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_image.go +++ /dev/null @@ -1,115 +0,0 @@ -package v1 - -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Image governs policies related to imagestream imports and runtime configuration -// for external registries. It allows cluster admins to configure which registries -// OpenShift is allowed to import images from, extra CA trust bundles for external -// registries, and policies to block or allow registry hostnames. -// When exposing OpenShift's image registry to the public, this also lets cluster -// admins specify the external hostname. -type Image struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - // spec holds user settable values for configuration - // +kubebuilder:validation:Required - // +required - Spec ImageSpec `json:"spec"` - // status holds observed values from the cluster. They may not be overridden. - // +optional - Status ImageStatus `json:"status"` -} - -type ImageSpec struct { - // allowedRegistriesForImport limits the container image registries that normal users may import - // images from. Set this list to the registries that you trust to contain valid Docker - // images and that you want applications to be able to import from. Users with - // permission to create Images or ImageStreamMappings via the API are not affected by - // this policy - typically only administrators or system integrations will have those - // permissions. - // +optional - AllowedRegistriesForImport []RegistryLocation `json:"allowedRegistriesForImport,omitempty"` - - // externalRegistryHostnames provides the hostnames for the default external image - // registry. The external hostname should be set only when the image registry - // is exposed externally. The first value is used in 'publicDockerImageRepository' - // field in ImageStreams. The value must be in "hostname[:port]" format. - // +optional - ExternalRegistryHostnames []string `json:"externalRegistryHostnames,omitempty"` - - // additionalTrustedCA is a reference to a ConfigMap containing additional CAs that - // should be trusted during imagestream import, pod image pull, build image pull, and - // imageregistry pullthrough. - // The namespace for this config map is openshift-config. - // +optional - AdditionalTrustedCA ConfigMapNameReference `json:"additionalTrustedCA"` - - // registrySources contains configuration that determines how the container runtime - // should treat individual registries when accessing images for builds+pods. (e.g. - // whether or not to allow insecure access). It does not contain configuration for the - // internal cluster registry. - // +optional - RegistrySources RegistrySources `json:"registrySources"` -} - -type ImageStatus struct { - - // internalRegistryHostname sets the hostname for the default internal image - // registry. The value must be in "hostname[:port]" format. - // This value is set by the image registry operator which controls the internal registry - // hostname. For backward compatibility, users can still use OPENSHIFT_DEFAULT_REGISTRY - // environment variable but this setting overrides the environment variable. - // +optional - InternalRegistryHostname string `json:"internalRegistryHostname,omitempty"` - - // externalRegistryHostnames provides the hostnames for the default external image - // registry. The external hostname should be set only when the image registry - // is exposed externally. The first value is used in 'publicDockerImageRepository' - // field in ImageStreams. The value must be in "hostname[:port]" format. - // +optional - ExternalRegistryHostnames []string `json:"externalRegistryHostnames,omitempty"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type ImageList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - - Items []Image `json:"items"` -} - -// RegistryLocation contains a location of the registry specified by the registry domain -// name. The domain name might include wildcards, like '*' or '??'. -type RegistryLocation struct { - // domainName specifies a domain name for the registry - // In case the registry use non-standard (80 or 443) port, the port should be included - // in the domain name as well. - DomainName string `json:"domainName"` - // insecure indicates whether the registry is secure (https) or insecure (http) - // By default (if not specified) the registry is assumed as secure. - // +optional - Insecure bool `json:"insecure,omitempty"` -} - -// RegistrySources holds cluster-wide information about how to handle the registries config. -type RegistrySources struct { - // insecureRegistries are registries which do not have a valid TLS certificates or only support HTTP connections. - // +optional - InsecureRegistries []string `json:"insecureRegistries,omitempty"` - // blockedRegistries cannot be used for image pull and push actions. All other registries are permitted. - // - // Only one of BlockedRegistries or AllowedRegistries may be set. - // +optional - BlockedRegistries []string `json:"blockedRegistries,omitempty"` - // allowedRegistries are the only registries permitted for image pull and push actions. All other registries are denied. - // - // Only one of BlockedRegistries or AllowedRegistries may be set. - // +optional - AllowedRegistries []string `json:"allowedRegistries,omitempty"` -} diff --git a/vendor/github.com/openshift/api/config/v1/types_infrastructure.go b/vendor/github.com/openshift/api/config/v1/types_infrastructure.go deleted file mode 100644 index 3c4bd788ff22d..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_infrastructure.go +++ /dev/null @@ -1,444 +0,0 @@ -package v1 - -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// +kubebuilder:subresource:status - -// Infrastructure holds cluster-wide information about Infrastructure. The canonical name is `cluster` -type Infrastructure struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - // spec holds user settable values for configuration - // +kubebuilder:validation:Required - // +required - Spec InfrastructureSpec `json:"spec"` - // status holds observed values from the cluster. They may not be overridden. - // +optional - Status InfrastructureStatus `json:"status"` -} - -// InfrastructureSpec contains settings that apply to the cluster infrastructure. -type InfrastructureSpec struct { - // cloudConfig is a reference to a ConfigMap containing the cloud provider configuration file. - // This configuration file is used to configure the Kubernetes cloud provider integration - // when using the built-in cloud provider integration or the external cloud controller manager. - // The namespace for this config map is openshift-config. - // - // cloudConfig should only be consumed by the kube_cloud_config controller. - // The controller is responsible for using the user configuration in the spec - // for various platforms and combining that with the user provided ConfigMap in this field - // to create a stitched kube cloud config. - // The controller generates a ConfigMap `kube-cloud-config` in `openshift-config-managed` namespace - // with the kube cloud config is stored in `cloud.conf` key. - // All the clients are expected to use the generated ConfigMap only. - // - // +optional - CloudConfig ConfigMapFileReference `json:"cloudConfig"` - - // platformSpec holds desired information specific to the underlying - // infrastructure provider. - PlatformSpec PlatformSpec `json:"platformSpec,omitempty"` -} - -// InfrastructureStatus describes the infrastructure the cluster is leveraging. -type InfrastructureStatus struct { - // infrastructureName uniquely identifies a cluster with a human friendly name. - // Once set it should not be changed. Must be of max length 27 and must have only - // alphanumeric or hyphen characters. - InfrastructureName string `json:"infrastructureName"` - - // platform is the underlying infrastructure provider for the cluster. - // - // Deprecated: Use platformStatus.type instead. - Platform PlatformType `json:"platform,omitempty"` - - // platformStatus holds status information specific to the underlying - // infrastructure provider. - // +optional - PlatformStatus *PlatformStatus `json:"platformStatus,omitempty"` - - // etcdDiscoveryDomain is the domain used to fetch the SRV records for discovering - // etcd servers and clients. - // For more info: https://github.com/etcd-io/etcd/blob/329be66e8b3f9e2e6af83c123ff89297e49ebd15/Documentation/op-guide/clustering.md#dns-discovery - EtcdDiscoveryDomain string `json:"etcdDiscoveryDomain"` - - // apiServerURL is a valid URI with scheme 'https', address and - // optionally a port (defaulting to 443). apiServerURL can be used by components like the web console - // to tell users where to find the Kubernetes API. - APIServerURL string `json:"apiServerURL"` - - // apiServerInternalURL is a valid URI with scheme 'https', - // address and optionally a port (defaulting to 443). apiServerInternalURL can be used by components - // like kubelets, to contact the Kubernetes API server using the - // infrastructure provider rather than Kubernetes networking. - APIServerInternalURL string `json:"apiServerInternalURI"` -} - -// PlatformType is a specific supported infrastructure provider. -// +kubebuilder:validation:Enum="";AWS;Azure;BareMetal;GCP;Libvirt;OpenStack;None;VSphere;oVirt;IBMCloud -type PlatformType string - -const ( - // AWSPlatformType represents Amazon Web Services infrastructure. - AWSPlatformType PlatformType = "AWS" - - // AzurePlatformType represents Microsoft Azure infrastructure. - AzurePlatformType PlatformType = "Azure" - - // BareMetalPlatformType represents managed bare metal infrastructure. - BareMetalPlatformType PlatformType = "BareMetal" - - // GCPPlatformType represents Google Cloud Platform infrastructure. - GCPPlatformType PlatformType = "GCP" - - // LibvirtPlatformType represents libvirt infrastructure. - LibvirtPlatformType PlatformType = "Libvirt" - - // OpenStackPlatformType represents OpenStack infrastructure. - OpenStackPlatformType PlatformType = "OpenStack" - - // NonePlatformType means there is no infrastructure provider. - NonePlatformType PlatformType = "None" - - // VSpherePlatformType represents VMWare vSphere infrastructure. - VSpherePlatformType PlatformType = "VSphere" - - // OvirtPlatformType represents oVirt/RHV infrastructure. - OvirtPlatformType PlatformType = "oVirt" - - // IBMCloudPlatformType represents IBM Cloud infrastructure. - IBMCloudPlatformType PlatformType = "IBMCloud" -) - -// IBMCloudProviderType is a specific supported IBM Cloud provider cluster type -type IBMCloudProviderType string - -const ( - // Classic means that the IBM Cloud cluster is using classic infrastructure - IBMCloudProviderTypeClassic IBMCloudProviderType = "Classic" - - // VPC means that the IBM Cloud cluster is using VPC infrastructure - IBMCloudProviderTypeVPC IBMCloudProviderType = "VPC" -) - -// PlatformSpec holds the desired state specific to the underlying infrastructure provider -// of the current cluster. Since these are used at spec-level for the underlying cluster, it -// is supposed that only one of the spec structs is set. -type PlatformSpec struct { - // type is the underlying infrastructure provider for the cluster. This - // value controls whether infrastructure automation such as service load - // balancers, dynamic volume provisioning, machine creation and deletion, and - // other integrations are enabled. If None, no infrastructure automation is - // enabled. Allowed values are "AWS", "Azure", "BareMetal", "GCP", "Libvirt", - // "OpenStack", "VSphere", "oVirt", and "None". Individual components may not support - // all platforms, and must handle unrecognized platforms as None if they do - // not support that platform. - // - // +unionDiscriminator - Type PlatformType `json:"type"` - - // AWS contains settings specific to the Amazon Web Services infrastructure provider. - // +optional - AWS *AWSPlatformSpec `json:"aws,omitempty"` - - // Azure contains settings specific to the Azure infrastructure provider. - // +optional - Azure *AzurePlatformSpec `json:"azure,omitempty"` - - // GCP contains settings specific to the Google Cloud Platform infrastructure provider. - // +optional - GCP *GCPPlatformSpec `json:"gcp,omitempty"` - - // BareMetal contains settings specific to the BareMetal platform. - // +optional - BareMetal *BareMetalPlatformSpec `json:"baremetal,omitempty"` - - // OpenStack contains settings specific to the OpenStack infrastructure provider. - // +optional - OpenStack *OpenStackPlatformSpec `json:"openstack,omitempty"` - - // Ovirt contains settings specific to the oVirt infrastructure provider. - // +optional - Ovirt *OvirtPlatformSpec `json:"ovirt,omitempty"` - - // VSphere contains settings specific to the VSphere infrastructure provider. - // +optional - VSphere *VSpherePlatformSpec `json:"vsphere,omitempty"` - - // IBMCloud contains settings specific to the IBMCloud infrastructure provider. - // +optional - IBMCloud *IBMCloudPlatformSpec `json:"ibmcloud,omitempty"` -} - -// PlatformStatus holds the current status specific to the underlying infrastructure provider -// of the current cluster. Since these are used at status-level for the underlying cluster, it -// is supposed that only one of the status structs is set. -type PlatformStatus struct { - // type is the underlying infrastructure provider for the cluster. This - // value controls whether infrastructure automation such as service load - // balancers, dynamic volume provisioning, machine creation and deletion, and - // other integrations are enabled. If None, no infrastructure automation is - // enabled. Allowed values are "AWS", "Azure", "BareMetal", "GCP", "Libvirt", - // "OpenStack", "VSphere", "oVirt", and "None". Individual components may not support - // all platforms, and must handle unrecognized platforms as None if they do - // not support that platform. - // - // This value will be synced with to the `status.platform` and `status.platformStatus.type`. - // Currently this value cannot be changed once set. - Type PlatformType `json:"type"` - - // AWS contains settings specific to the Amazon Web Services infrastructure provider. - // +optional - AWS *AWSPlatformStatus `json:"aws,omitempty"` - - // Azure contains settings specific to the Azure infrastructure provider. - // +optional - Azure *AzurePlatformStatus `json:"azure,omitempty"` - - // GCP contains settings specific to the Google Cloud Platform infrastructure provider. - // +optional - GCP *GCPPlatformStatus `json:"gcp,omitempty"` - - // BareMetal contains settings specific to the BareMetal platform. - // +optional - BareMetal *BareMetalPlatformStatus `json:"baremetal,omitempty"` - - // OpenStack contains settings specific to the OpenStack infrastructure provider. - // +optional - OpenStack *OpenStackPlatformStatus `json:"openstack,omitempty"` - - // Ovirt contains settings specific to the oVirt infrastructure provider. - // +optional - Ovirt *OvirtPlatformStatus `json:"ovirt,omitempty"` - - // VSphere contains settings specific to the VSphere infrastructure provider. - // +optional - VSphere *VSpherePlatformStatus `json:"vsphere,omitempty"` - - // IBMCloud contains settings specific to the IBMCloud infrastructure provider. - // +optional - IBMCloud *IBMCloudPlatformStatus `json:"ibmcloud,omitempty"` -} - -// AWSServiceEndpoint store the configuration of a custom url to -// override existing defaults of AWS Services. -type AWSServiceEndpoint struct { - // name is the name of the AWS service. - // The list of all the service names can be found at https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html - // This must be provided and cannot be empty. - // - // +kubebuilder:validation:Pattern=`^[a-z0-9-]+$` - Name string `json:"name"` - - // url is fully qualified URI with scheme https, that overrides the default generated - // endpoint for a client. - // This must be provided and cannot be empty. - // - // +kubebuilder:validation:Pattern=`^https://` - URL string `json:"url"` -} - -// AWSPlatformSpec holds the desired state of the Amazon Web Services infrastructure provider. -// This only includes fields that can be modified in the cluster. -type AWSPlatformSpec struct { - // serviceEndpoints list contains custom endpoints which will override default - // service endpoint of AWS Services. - // There must be only one ServiceEndpoint for a service. - // +optional - ServiceEndpoints []AWSServiceEndpoint `json:"serviceEndpoints,omitempty"` -} - -// AWSPlatformStatus holds the current status of the Amazon Web Services infrastructure provider. -type AWSPlatformStatus struct { - // region holds the default AWS region for new AWS resources created by the cluster. - Region string `json:"region"` - - // ServiceEndpoints list contains custom endpoints which will override default - // service endpoint of AWS Services. - // There must be only one ServiceEndpoint for a service. - // +optional - ServiceEndpoints []AWSServiceEndpoint `json:"serviceEndpoints,omitempty"` -} - -// AzurePlatformSpec holds the desired state of the Azure infrastructure provider. -// This only includes fields that can be modified in the cluster. -type AzurePlatformSpec struct{} - -// AzurePlatformStatus holds the current status of the Azure infrastructure provider. -type AzurePlatformStatus struct { - // resourceGroupName is the Resource Group for new Azure resources created for the cluster. - ResourceGroupName string `json:"resourceGroupName"` - - // networkResourceGroupName is the Resource Group for network resources like the Virtual Network and Subnets used by the cluster. - // If empty, the value is same as ResourceGroupName. - // +optional - NetworkResourceGroupName string `json:"networkResourceGroupName,omitempty"` - - // cloudName is the name of the Azure cloud environment which can be used to configure the Azure SDK - // with the appropriate Azure API endpoints. - // If empty, the value is equal to `AzurePublicCloud`. - // +optional - CloudName AzureCloudEnvironment `json:"cloudName,omitempty"` -} - -// AzureCloudEnvironment is the name of the Azure cloud environment -// +kubebuilder:validation:Enum="";AzurePublicCloud;AzureUSGovernmentCloud;AzureChinaCloud;AzureGermanCloud -type AzureCloudEnvironment string - -const ( - // AzurePublicCloud is the general-purpose, public Azure cloud environment. - AzurePublicCloud AzureCloudEnvironment = "AzurePublicCloud" - - // AzureUSGovernmentCloud is the Azure cloud environment for the US government. - AzureUSGovernmentCloud AzureCloudEnvironment = "AzureUSGovernmentCloud" - - // AzureChinaCloud is the Azure cloud environment used in China. - AzureChinaCloud AzureCloudEnvironment = "AzureChinaCloud" - - // AzureGermanCloud is the Azure cloud environment used in Germany. - AzureGermanCloud AzureCloudEnvironment = "AzureGermanCloud" -) - -// GCPPlatformSpec holds the desired state of the Google Cloud Platform infrastructure provider. -// This only includes fields that can be modified in the cluster. -type GCPPlatformSpec struct{} - -// GCPPlatformStatus holds the current status of the Google Cloud Platform infrastructure provider. -type GCPPlatformStatus struct { - // resourceGroupName is the Project ID for new GCP resources created for the cluster. - ProjectID string `json:"projectID"` - - // region holds the region for new GCP resources created for the cluster. - Region string `json:"region"` -} - -// BareMetalPlatformSpec holds the desired state of the BareMetal infrastructure provider. -// This only includes fields that can be modified in the cluster. -type BareMetalPlatformSpec struct{} - -// BareMetalPlatformStatus holds the current status of the BareMetal infrastructure provider. -// For more information about the network architecture used with the BareMetal platform type, see: -// https://github.com/openshift/installer/blob/master/docs/design/baremetal/networking-infrastructure.md -type BareMetalPlatformStatus struct { - // apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used - // by components inside the cluster, like kubelets using the infrastructure rather - // than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI - // points to. It is the IP for a self-hosted load balancer in front of the API servers. - APIServerInternalIP string `json:"apiServerInternalIP,omitempty"` - - // ingressIP is an external IP which routes to the default ingress controller. - // The IP is a suitable target of a wildcard DNS record used to resolve default route host names. - IngressIP string `json:"ingressIP,omitempty"` - - // nodeDNSIP is the IP address for the internal DNS used by the - // nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` - // provides name resolution for the nodes themselves. There is no DNS-as-a-service for - // BareMetal deployments. In order to minimize necessary changes to the - // datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames - // to the nodes in the cluster. - NodeDNSIP string `json:"nodeDNSIP,omitempty"` -} - -// OpenStackPlatformSpec holds the desired state of the OpenStack infrastructure provider. -// This only includes fields that can be modified in the cluster. -type OpenStackPlatformSpec struct{} - -// OpenStackPlatformStatus holds the current status of the OpenStack infrastructure provider. -type OpenStackPlatformStatus struct { - // apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used - // by components inside the cluster, like kubelets using the infrastructure rather - // than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI - // points to. It is the IP for a self-hosted load balancer in front of the API servers. - APIServerInternalIP string `json:"apiServerInternalIP,omitempty"` - - // cloudName is the name of the desired OpenStack cloud in the - // client configuration file (`clouds.yaml`). - CloudName string `json:"cloudName,omitempty"` - - // ingressIP is an external IP which routes to the default ingress controller. - // The IP is a suitable target of a wildcard DNS record used to resolve default route host names. - IngressIP string `json:"ingressIP,omitempty"` - - // nodeDNSIP is the IP address for the internal DNS used by the - // nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` - // provides name resolution for the nodes themselves. There is no DNS-as-a-service for - // OpenStack deployments. In order to minimize necessary changes to the - // datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames - // to the nodes in the cluster. - NodeDNSIP string `json:"nodeDNSIP,omitempty"` -} - -// OvirtPlatformSpec holds the desired state of the oVirt infrastructure provider. -// This only includes fields that can be modified in the cluster. -type OvirtPlatformSpec struct{} - -// OvirtPlatformStatus holds the current status of the oVirt infrastructure provider. -type OvirtPlatformStatus struct { - // apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used - // by components inside the cluster, like kubelets using the infrastructure rather - // than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI - // points to. It is the IP for a self-hosted load balancer in front of the API servers. - APIServerInternalIP string `json:"apiServerInternalIP,omitempty"` - - // ingressIP is an external IP which routes to the default ingress controller. - // The IP is a suitable target of a wildcard DNS record used to resolve default route host names. - IngressIP string `json:"ingressIP,omitempty"` - - // deprecated: as of 4.6, this field is no longer set or honored. It will be removed in a future release. - NodeDNSIP string `json:"nodeDNSIP,omitempty"` -} - -// VSpherePlatformSpec holds the desired state of the vSphere infrastructure provider. -// This only includes fields that can be modified in the cluster. -type VSpherePlatformSpec struct{} - -// VSpherePlatformStatus holds the current status of the vSphere infrastructure provider. -type VSpherePlatformStatus struct { - // apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used - // by components inside the cluster, like kubelets using the infrastructure rather - // than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI - // points to. It is the IP for a self-hosted load balancer in front of the API servers. - APIServerInternalIP string `json:"apiServerInternalIP,omitempty"` - - // ingressIP is an external IP which routes to the default ingress controller. - // The IP is a suitable target of a wildcard DNS record used to resolve default route host names. - IngressIP string `json:"ingressIP,omitempty"` - - // nodeDNSIP is the IP address for the internal DNS used by the - // nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` - // provides name resolution for the nodes themselves. There is no DNS-as-a-service for - // vSphere deployments. In order to minimize necessary changes to the - // datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames - // to the nodes in the cluster. - NodeDNSIP string `json:"nodeDNSIP,omitempty"` -} - -// IBMCloudPlatformSpec holds the desired state of the IBMCloud infrastructure provider. -// This only includes fields that can be modified in the cluster. -type IBMCloudPlatformSpec struct{} - -//IBMCloudPlatformStatus holds the current status of the IBMCloud infrastructure provider. -type IBMCloudPlatformStatus struct { - // Location is where the cluster has been deployed - Location string `json:"location,omitempty"` - - // ResourceGroupName is the Resource Group for new IBMCloud resources created for the cluster. - ResourceGroupName string `json:"resourceGroupName,omitempty"` - - // ProviderType indicates the type of cluster that was created - ProviderType IBMCloudProviderType `json:"providerType,omitempty"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// InfrastructureList is -type InfrastructureList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - - Items []Infrastructure `json:"items"` -} diff --git a/vendor/github.com/openshift/api/config/v1/types_ingress.go b/vendor/github.com/openshift/api/config/v1/types_ingress.go deleted file mode 100644 index 0216919ad8e96..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_ingress.go +++ /dev/null @@ -1,46 +0,0 @@ -package v1 - -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Ingress holds cluster-wide information about ingress, including the default ingress domain -// used for routes. The canonical name is `cluster`. -type Ingress struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - // spec holds user settable values for configuration - // +kubebuilder:validation:Required - // +required - Spec IngressSpec `json:"spec"` - // status holds observed values from the cluster. They may not be overridden. - // +optional - Status IngressStatus `json:"status"` -} - -type IngressSpec struct { - // domain is used to generate a default host name for a route when the - // route's host name is empty. The generated host name will follow this - // pattern: "..". - // - // It is also used as the default wildcard domain suffix for ingress. The - // default ingresscontroller domain will follow this pattern: "*.". - // - // Once set, changing domain is not currently supported. - Domain string `json:"domain"` -} - -type IngressStatus struct { -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type IngressList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - - Items []Ingress `json:"items"` -} diff --git a/vendor/github.com/openshift/api/config/v1/types_network.go b/vendor/github.com/openshift/api/config/v1/types_network.go deleted file mode 100644 index 257b54b08d7b5..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_network.go +++ /dev/null @@ -1,133 +0,0 @@ -package v1 - -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Network holds cluster-wide information about Network. The canonical name is `cluster`. It is used to configure the desired network configuration, such as: IP address pools for services/pod IPs, network plugin, etc. -// Please view network.spec for an explanation on what applies when configuring this resource. -type Network struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - // spec holds user settable values for configuration. - // As a general rule, this SHOULD NOT be read directly. Instead, you should - // consume the NetworkStatus, as it indicates the currently deployed configuration. - // Currently, most spec fields are immutable after installation. Please view the individual ones for further details on each. - // +kubebuilder:validation:Required - // +required - Spec NetworkSpec `json:"spec"` - // status holds observed values from the cluster. They may not be overridden. - // +optional - Status NetworkStatus `json:"status"` -} - -// NetworkSpec is the desired network configuration. -// As a general rule, this SHOULD NOT be read directly. Instead, you should -// consume the NetworkStatus, as it indicates the currently deployed configuration. -// Currently, most spec fields are immutable after installation. Please view the individual ones for further details on each. -type NetworkSpec struct { - // IP address pool to use for pod IPs. - // This field is immutable after installation. - ClusterNetwork []ClusterNetworkEntry `json:"clusterNetwork"` - - // IP address pool for services. - // Currently, we only support a single entry here. - // This field is immutable after installation. - ServiceNetwork []string `json:"serviceNetwork"` - - // NetworkType is the plugin that is to be deployed (e.g. OpenShiftSDN). - // This should match a value that the cluster-network-operator understands, - // or else no networking will be installed. - // Currently supported values are: - // - OpenShiftSDN - // This field is immutable after installation. - NetworkType string `json:"networkType"` - - // externalIP defines configuration for controllers that - // affect Service.ExternalIP. If nil, then ExternalIP is - // not allowed to be set. - // +optional - ExternalIP *ExternalIPConfig `json:"externalIP,omitempty"` - - // The port range allowed for Services of type NodePort. - // If not specified, the default of 30000-32767 will be used. - // Such Services without a NodePort specified will have one - // automatically allocated from this range. - // This parameter can be updated after the cluster is - // installed. - // +kubebuilder:validation:Pattern=`^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])-([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$` - ServiceNodePortRange string `json:"serviceNodePortRange,omitempty"` -} - -// NetworkStatus is the current network configuration. -type NetworkStatus struct { - // IP address pool to use for pod IPs. - ClusterNetwork []ClusterNetworkEntry `json:"clusterNetwork,omitempty"` - - // IP address pool for services. - // Currently, we only support a single entry here. - ServiceNetwork []string `json:"serviceNetwork,omitempty"` - - // NetworkType is the plugin that is deployed (e.g. OpenShiftSDN). - NetworkType string `json:"networkType,omitempty"` - - // ClusterNetworkMTU is the MTU for inter-pod networking. - ClusterNetworkMTU int `json:"clusterNetworkMTU,omitempty"` -} - -// ClusterNetworkEntry is a contiguous block of IP addresses from which pod IPs -// are allocated. -type ClusterNetworkEntry struct { - // The complete block for pod IPs. - CIDR string `json:"cidr"` - - // The size (prefix) of block to allocate to each node. If this - // field is not used by the plugin, it can be left unset. - // +kubebuilder:validation:Minimum=0 - // +optional - HostPrefix uint32 `json:"hostPrefix,omitempty"` -} - -// ExternalIPConfig specifies some IP blocks relevant for the ExternalIP field -// of a Service resource. -type ExternalIPConfig struct { - // policy is a set of restrictions applied to the ExternalIP field. - // If nil or empty, then ExternalIP is not allowed to be set. - // +optional - Policy *ExternalIPPolicy `json:"policy,omitempty"` - - // autoAssignCIDRs is a list of CIDRs from which to automatically assign - // Service.ExternalIP. These are assigned when the service is of type - // LoadBalancer. In general, this is only useful for bare-metal clusters. - // In Openshift 3.x, this was misleadingly called "IngressIPs". - // Automatically assigned External IPs are not affected by any - // ExternalIPPolicy rules. - // Currently, only one entry may be provided. - // +optional - AutoAssignCIDRs []string `json:"autoAssignCIDRs,omitempty"` -} - -// ExternalIPPolicy configures exactly which IPs are allowed for the ExternalIP -// field in a Service. If the zero struct is supplied, then none are permitted. -// The policy controller always allows automatically assigned external IPs. -type ExternalIPPolicy struct { - // allowedCIDRs is the list of allowed CIDRs. - AllowedCIDRs []string `json:"allowedCIDRs,omitempty"` - - // rejectedCIDRs is the list of disallowed CIDRs. These take precedence - // over allowedCIDRs. - // +optional - RejectedCIDRs []string `json:"rejectedCIDRs,omitempty"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type NetworkList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - - Items []Network `json:"items"` -} diff --git a/vendor/github.com/openshift/api/config/v1/types_oauth.go b/vendor/github.com/openshift/api/config/v1/types_oauth.go deleted file mode 100644 index fcbd191aa652f..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_oauth.go +++ /dev/null @@ -1,562 +0,0 @@ -package v1 - -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - -// OAuth Server and Identity Provider Config - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// OAuth holds cluster-wide information about OAuth. The canonical name is `cluster`. -// It is used to configure the integrated OAuth server. -// This configuration is only honored when the top level Authentication config has type set to IntegratedOAuth. -type OAuth struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata"` - // spec holds user settable values for configuration - // +kubebuilder:validation:Required - // +required - Spec OAuthSpec `json:"spec"` - // status holds observed values from the cluster. They may not be overridden. - // +optional - Status OAuthStatus `json:"status"` -} - -// OAuthSpec contains desired cluster auth configuration -type OAuthSpec struct { - // identityProviders is an ordered list of ways for a user to identify themselves. - // When this list is empty, no identities are provisioned for users. - // +optional - IdentityProviders []IdentityProvider `json:"identityProviders,omitempty"` - - // tokenConfig contains options for authorization and access tokens - TokenConfig TokenConfig `json:"tokenConfig"` - - // templates allow you to customize pages like the login page. - // +optional - Templates OAuthTemplates `json:"templates"` -} - -// OAuthStatus shows current known state of OAuth server in the cluster -type OAuthStatus struct { - // TODO Fill in with status of identityProviders and templates (and maybe tokenConfig) -} - -// TokenConfig holds the necessary configuration options for authorization and access tokens -type TokenConfig struct { - // accessTokenMaxAgeSeconds defines the maximum age of access tokens - AccessTokenMaxAgeSeconds int32 `json:"accessTokenMaxAgeSeconds,omitempty"` - - // accessTokenInactivityTimeoutSeconds - DEPRECATED: setting this field has no effect. - // +optional - AccessTokenInactivityTimeoutSeconds int32 `json:"accessTokenInactivityTimeoutSeconds,omitempty"` - - // accessTokenInactivityTimeout defines the token inactivity timeout - // for tokens granted by any client. - // The value represents the maximum amount of time that can occur between - // consecutive uses of the token. Tokens become invalid if they are not - // used within this temporal window. The user will need to acquire a new - // token to regain access once a token times out. Takes valid time - // duration string such as "5m", "1.5h" or "2h45m". The minimum allowed - // value for duration is 300s (5 minutes). If the timeout is configured - // per client, then that value takes precedence. If the timeout value is - // not specified and the client does not override the value, then tokens - // are valid until their lifetime. - // +optional - AccessTokenInactivityTimeout *metav1.Duration `json:"accessTokenInactivityTimeout,omitempty"` -} - -const ( - // LoginTemplateKey is the key of the login template in a secret - LoginTemplateKey = "login.html" - - // ProviderSelectionTemplateKey is the key for the provider selection template in a secret - ProviderSelectionTemplateKey = "providers.html" - - // ErrorsTemplateKey is the key for the errors template in a secret - ErrorsTemplateKey = "errors.html" - - // BindPasswordKey is the key for the LDAP bind password in a secret - BindPasswordKey = "bindPassword" - - // ClientSecretKey is the key for the oauth client secret data in a secret - ClientSecretKey = "clientSecret" - - // HTPasswdDataKey is the key for the htpasswd file data in a secret - HTPasswdDataKey = "htpasswd" -) - -// OAuthTemplates allow for customization of pages like the login page -type OAuthTemplates struct { - // login is the name of a secret that specifies a go template to use to render the login page. - // The key "login.html" is used to locate the template data. - // If specified and the secret or expected key is not found, the default login page is used. - // If the specified template is not valid, the default login page is used. - // If unspecified, the default login page is used. - // The namespace for this secret is openshift-config. - // +optional - Login SecretNameReference `json:"login"` - - // providerSelection is the name of a secret that specifies a go template to use to render - // the provider selection page. - // The key "providers.html" is used to locate the template data. - // If specified and the secret or expected key is not found, the default provider selection page is used. - // If the specified template is not valid, the default provider selection page is used. - // If unspecified, the default provider selection page is used. - // The namespace for this secret is openshift-config. - // +optional - ProviderSelection SecretNameReference `json:"providerSelection"` - - // error is the name of a secret that specifies a go template to use to render error pages - // during the authentication or grant flow. - // The key "errors.html" is used to locate the template data. - // If specified and the secret or expected key is not found, the default error page is used. - // If the specified template is not valid, the default error page is used. - // If unspecified, the default error page is used. - // The namespace for this secret is openshift-config. - // +optional - Error SecretNameReference `json:"error"` -} - -// IdentityProvider provides identities for users authenticating using credentials -type IdentityProvider struct { - // name is used to qualify the identities returned by this provider. - // - It MUST be unique and not shared by any other identity provider used - // - It MUST be a valid path segment: name cannot equal "." or ".." or contain "/" or "%" or ":" - // Ref: https://godoc.org/github.com/openshift/origin/pkg/user/apis/user/validation#ValidateIdentityProviderName - Name string `json:"name"` - - // mappingMethod determines how identities from this provider are mapped to users - // Defaults to "claim" - // +optional - MappingMethod MappingMethodType `json:"mappingMethod,omitempty"` - - IdentityProviderConfig `json:",inline"` -} - -// MappingMethodType specifies how new identities should be mapped to users when they log in -type MappingMethodType string - -const ( - // MappingMethodClaim provisions a user with the identity’s preferred user name. Fails if a user - // with that user name is already mapped to another identity. - // Default. - MappingMethodClaim MappingMethodType = "claim" - - // MappingMethodLookup looks up existing users already mapped to an identity but does not - // automatically provision users or identities. Requires identities and users be set up - // manually or using an external process. - MappingMethodLookup MappingMethodType = "lookup" - - // MappingMethodAdd provisions a user with the identity’s preferred user name. If a user with - // that user name already exists, the identity is mapped to the existing user, adding to any - // existing identity mappings for the user. - MappingMethodAdd MappingMethodType = "add" -) - -type IdentityProviderType string - -const ( - // IdentityProviderTypeBasicAuth provides identities for users authenticating with HTTP Basic Auth - IdentityProviderTypeBasicAuth IdentityProviderType = "BasicAuth" - - // IdentityProviderTypeGitHub provides identities for users authenticating using GitHub credentials - IdentityProviderTypeGitHub IdentityProviderType = "GitHub" - - // IdentityProviderTypeGitLab provides identities for users authenticating using GitLab credentials - IdentityProviderTypeGitLab IdentityProviderType = "GitLab" - - // IdentityProviderTypeGoogle provides identities for users authenticating using Google credentials - IdentityProviderTypeGoogle IdentityProviderType = "Google" - - // IdentityProviderTypeHTPasswd provides identities from an HTPasswd file - IdentityProviderTypeHTPasswd IdentityProviderType = "HTPasswd" - - // IdentityProviderTypeKeystone provides identitities for users authenticating using keystone password credentials - IdentityProviderTypeKeystone IdentityProviderType = "Keystone" - - // IdentityProviderTypeLDAP provides identities for users authenticating using LDAP credentials - IdentityProviderTypeLDAP IdentityProviderType = "LDAP" - - // IdentityProviderTypeOpenID provides identities for users authenticating using OpenID credentials - IdentityProviderTypeOpenID IdentityProviderType = "OpenID" - - // IdentityProviderTypeRequestHeader provides identities for users authenticating using request header credentials - IdentityProviderTypeRequestHeader IdentityProviderType = "RequestHeader" -) - -// IdentityProviderConfig contains configuration for using a specific identity provider -type IdentityProviderConfig struct { - // type identifies the identity provider type for this entry. - Type IdentityProviderType `json:"type"` - - // Provider-specific configuration - // The json tag MUST match the `Type` specified above, case-insensitively - // e.g. For `Type: "LDAP"`, the `ldap` configuration should be provided - - // basicAuth contains configuration options for the BasicAuth IdP - // +optional - BasicAuth *BasicAuthIdentityProvider `json:"basicAuth,omitempty"` - - // github enables user authentication using GitHub credentials - // +optional - GitHub *GitHubIdentityProvider `json:"github,omitempty"` - - // gitlab enables user authentication using GitLab credentials - // +optional - GitLab *GitLabIdentityProvider `json:"gitlab,omitempty"` - - // google enables user authentication using Google credentials - // +optional - Google *GoogleIdentityProvider `json:"google,omitempty"` - - // htpasswd enables user authentication using an HTPasswd file to validate credentials - // +optional - HTPasswd *HTPasswdIdentityProvider `json:"htpasswd,omitempty"` - - // keystone enables user authentication using keystone password credentials - // +optional - Keystone *KeystoneIdentityProvider `json:"keystone,omitempty"` - - // ldap enables user authentication using LDAP credentials - // +optional - LDAP *LDAPIdentityProvider `json:"ldap,omitempty"` - - // openID enables user authentication using OpenID credentials - // +optional - OpenID *OpenIDIdentityProvider `json:"openID,omitempty"` - - // requestHeader enables user authentication using request header credentials - // +optional - RequestHeader *RequestHeaderIdentityProvider `json:"requestHeader,omitempty"` -} - -// BasicAuthPasswordIdentityProvider provides identities for users authenticating using HTTP basic auth credentials -type BasicAuthIdentityProvider struct { - // OAuthRemoteConnectionInfo contains information about how to connect to the external basic auth server - OAuthRemoteConnectionInfo `json:",inline"` -} - -// OAuthRemoteConnectionInfo holds information necessary for establishing a remote connection -type OAuthRemoteConnectionInfo struct { - // url is the remote URL to connect to - URL string `json:"url"` - - // ca is an optional reference to a config map by name containing the PEM-encoded CA bundle. - // It is used as a trust anchor to validate the TLS certificate presented by the remote server. - // The key "ca.crt" is used to locate the data. - // If specified and the config map or expected key is not found, the identity provider is not honored. - // If the specified ca data is not valid, the identity provider is not honored. - // If empty, the default system roots are used. - // The namespace for this config map is openshift-config. - // +optional - CA ConfigMapNameReference `json:"ca"` - - // tlsClientCert is an optional reference to a secret by name that contains the - // PEM-encoded TLS client certificate to present when connecting to the server. - // The key "tls.crt" is used to locate the data. - // If specified and the secret or expected key is not found, the identity provider is not honored. - // If the specified certificate data is not valid, the identity provider is not honored. - // The namespace for this secret is openshift-config. - // +optional - TLSClientCert SecretNameReference `json:"tlsClientCert"` - - // tlsClientKey is an optional reference to a secret by name that contains the - // PEM-encoded TLS private key for the client certificate referenced in tlsClientCert. - // The key "tls.key" is used to locate the data. - // If specified and the secret or expected key is not found, the identity provider is not honored. - // If the specified certificate data is not valid, the identity provider is not honored. - // The namespace for this secret is openshift-config. - // +optional - TLSClientKey SecretNameReference `json:"tlsClientKey"` -} - -// HTPasswdPasswordIdentityProvider provides identities for users authenticating using htpasswd credentials -type HTPasswdIdentityProvider struct { - // fileData is a required reference to a secret by name containing the data to use as the htpasswd file. - // The key "htpasswd" is used to locate the data. - // If the secret or expected key is not found, the identity provider is not honored. - // If the specified htpasswd data is not valid, the identity provider is not honored. - // The namespace for this secret is openshift-config. - FileData SecretNameReference `json:"fileData"` -} - -// LDAPPasswordIdentityProvider provides identities for users authenticating using LDAP credentials -type LDAPIdentityProvider struct { - // url is an RFC 2255 URL which specifies the LDAP search parameters to use. - // The syntax of the URL is: - // ldap://host:port/basedn?attribute?scope?filter - URL string `json:"url"` - - // bindDN is an optional DN to bind with during the search phase. - // +optional - BindDN string `json:"bindDN"` - - // bindPassword is an optional reference to a secret by name - // containing a password to bind with during the search phase. - // The key "bindPassword" is used to locate the data. - // If specified and the secret or expected key is not found, the identity provider is not honored. - // The namespace for this secret is openshift-config. - // +optional - BindPassword SecretNameReference `json:"bindPassword"` - - // insecure, if true, indicates the connection should not use TLS - // WARNING: Should not be set to `true` with the URL scheme "ldaps://" as "ldaps://" URLs always - // attempt to connect using TLS, even when `insecure` is set to `true` - // When `true`, "ldap://" URLS connect insecurely. When `false`, "ldap://" URLs are upgraded to - // a TLS connection using StartTLS as specified in https://tools.ietf.org/html/rfc2830. - Insecure bool `json:"insecure"` - - // ca is an optional reference to a config map by name containing the PEM-encoded CA bundle. - // It is used as a trust anchor to validate the TLS certificate presented by the remote server. - // The key "ca.crt" is used to locate the data. - // If specified and the config map or expected key is not found, the identity provider is not honored. - // If the specified ca data is not valid, the identity provider is not honored. - // If empty, the default system roots are used. - // The namespace for this config map is openshift-config. - // +optional - CA ConfigMapNameReference `json:"ca"` - - // attributes maps LDAP attributes to identities - Attributes LDAPAttributeMapping `json:"attributes"` -} - -// LDAPAttributeMapping maps LDAP attributes to OpenShift identity fields -type LDAPAttributeMapping struct { - // id is the list of attributes whose values should be used as the user ID. Required. - // First non-empty attribute is used. At least one attribute is required. If none of the listed - // attribute have a value, authentication fails. - // LDAP standard identity attribute is "dn" - ID []string `json:"id"` - - // preferredUsername is the list of attributes whose values should be used as the preferred username. - // LDAP standard login attribute is "uid" - // +optional - PreferredUsername []string `json:"preferredUsername,omitempty"` - - // name is the list of attributes whose values should be used as the display name. Optional. - // If unspecified, no display name is set for the identity - // LDAP standard display name attribute is "cn" - // +optional - Name []string `json:"name,omitempty"` - - // email is the list of attributes whose values should be used as the email address. Optional. - // If unspecified, no email is set for the identity - // +optional - Email []string `json:"email,omitempty"` -} - -// KeystonePasswordIdentityProvider provides identities for users authenticating using keystone password credentials -type KeystoneIdentityProvider struct { - // OAuthRemoteConnectionInfo contains information about how to connect to the keystone server - OAuthRemoteConnectionInfo `json:",inline"` - - // domainName is required for keystone v3 - DomainName string `json:"domainName"` - - // TODO if we ever add support for 3.11 to 4.0 upgrades, add this configuration - // useUsernameIdentity indicates that users should be authenticated by username, not keystone ID - // DEPRECATED - only use this option for legacy systems to ensure backwards compatibility - // +optional - // UseUsernameIdentity bool `json:"useUsernameIdentity"` -} - -// RequestHeaderIdentityProvider provides identities for users authenticating using request header credentials -type RequestHeaderIdentityProvider struct { - // loginURL is a URL to redirect unauthenticated /authorize requests to - // Unauthenticated requests from OAuth clients which expect interactive logins will be redirected here - // ${url} is replaced with the current URL, escaped to be safe in a query parameter - // https://www.example.com/sso-login?then=${url} - // ${query} is replaced with the current query string - // https://www.example.com/auth-proxy/oauth/authorize?${query} - // Required when login is set to true. - LoginURL string `json:"loginURL"` - - // challengeURL is a URL to redirect unauthenticated /authorize requests to - // Unauthenticated requests from OAuth clients which expect WWW-Authenticate challenges will be - // redirected here. - // ${url} is replaced with the current URL, escaped to be safe in a query parameter - // https://www.example.com/sso-login?then=${url} - // ${query} is replaced with the current query string - // https://www.example.com/auth-proxy/oauth/authorize?${query} - // Required when challenge is set to true. - ChallengeURL string `json:"challengeURL"` - - // ca is a required reference to a config map by name containing the PEM-encoded CA bundle. - // It is used as a trust anchor to validate the TLS certificate presented by the remote server. - // Specifically, it allows verification of incoming requests to prevent header spoofing. - // The key "ca.crt" is used to locate the data. - // If the config map or expected key is not found, the identity provider is not honored. - // If the specified ca data is not valid, the identity provider is not honored. - // The namespace for this config map is openshift-config. - ClientCA ConfigMapNameReference `json:"ca"` - - // clientCommonNames is an optional list of common names to require a match from. If empty, any - // client certificate validated against the clientCA bundle is considered authoritative. - // +optional - ClientCommonNames []string `json:"clientCommonNames,omitempty"` - - // headers is the set of headers to check for identity information - Headers []string `json:"headers"` - - // preferredUsernameHeaders is the set of headers to check for the preferred username - PreferredUsernameHeaders []string `json:"preferredUsernameHeaders"` - - // nameHeaders is the set of headers to check for the display name - NameHeaders []string `json:"nameHeaders"` - - // emailHeaders is the set of headers to check for the email address - EmailHeaders []string `json:"emailHeaders"` -} - -// GitHubIdentityProvider provides identities for users authenticating using GitHub credentials -type GitHubIdentityProvider struct { - // clientID is the oauth client ID - ClientID string `json:"clientID"` - - // clientSecret is a required reference to the secret by name containing the oauth client secret. - // The key "clientSecret" is used to locate the data. - // If the secret or expected key is not found, the identity provider is not honored. - // The namespace for this secret is openshift-config. - ClientSecret SecretNameReference `json:"clientSecret"` - - // organizations optionally restricts which organizations are allowed to log in - // +optional - Organizations []string `json:"organizations,omitempty"` - - // teams optionally restricts which teams are allowed to log in. Format is /. - // +optional - Teams []string `json:"teams,omitempty"` - - // hostname is the optional domain (e.g. "mycompany.com") for use with a hosted instance of - // GitHub Enterprise. - // It must match the GitHub Enterprise settings value configured at /setup/settings#hostname. - // +optional - Hostname string `json:"hostname"` - - // ca is an optional reference to a config map by name containing the PEM-encoded CA bundle. - // It is used as a trust anchor to validate the TLS certificate presented by the remote server. - // The key "ca.crt" is used to locate the data. - // If specified and the config map or expected key is not found, the identity provider is not honored. - // If the specified ca data is not valid, the identity provider is not honored. - // If empty, the default system roots are used. - // This can only be configured when hostname is set to a non-empty value. - // The namespace for this config map is openshift-config. - // +optional - CA ConfigMapNameReference `json:"ca"` -} - -// GitLabIdentityProvider provides identities for users authenticating using GitLab credentials -type GitLabIdentityProvider struct { - // clientID is the oauth client ID - ClientID string `json:"clientID"` - - // clientSecret is a required reference to the secret by name containing the oauth client secret. - // The key "clientSecret" is used to locate the data. - // If the secret or expected key is not found, the identity provider is not honored. - // The namespace for this secret is openshift-config. - ClientSecret SecretNameReference `json:"clientSecret"` - - // url is the oauth server base URL - URL string `json:"url"` - - // ca is an optional reference to a config map by name containing the PEM-encoded CA bundle. - // It is used as a trust anchor to validate the TLS certificate presented by the remote server. - // The key "ca.crt" is used to locate the data. - // If specified and the config map or expected key is not found, the identity provider is not honored. - // If the specified ca data is not valid, the identity provider is not honored. - // If empty, the default system roots are used. - // The namespace for this config map is openshift-config. - // +optional - CA ConfigMapNameReference `json:"ca"` -} - -// GoogleIdentityProvider provides identities for users authenticating using Google credentials -type GoogleIdentityProvider struct { - // clientID is the oauth client ID - ClientID string `json:"clientID"` - - // clientSecret is a required reference to the secret by name containing the oauth client secret. - // The key "clientSecret" is used to locate the data. - // If the secret or expected key is not found, the identity provider is not honored. - // The namespace for this secret is openshift-config. - ClientSecret SecretNameReference `json:"clientSecret"` - - // hostedDomain is the optional Google App domain (e.g. "mycompany.com") to restrict logins to - // +optional - HostedDomain string `json:"hostedDomain"` -} - -// OpenIDIdentityProvider provides identities for users authenticating using OpenID credentials -type OpenIDIdentityProvider struct { - // clientID is the oauth client ID - ClientID string `json:"clientID"` - - // clientSecret is a required reference to the secret by name containing the oauth client secret. - // The key "clientSecret" is used to locate the data. - // If the secret or expected key is not found, the identity provider is not honored. - // The namespace for this secret is openshift-config. - ClientSecret SecretNameReference `json:"clientSecret"` - - // ca is an optional reference to a config map by name containing the PEM-encoded CA bundle. - // It is used as a trust anchor to validate the TLS certificate presented by the remote server. - // The key "ca.crt" is used to locate the data. - // If specified and the config map or expected key is not found, the identity provider is not honored. - // If the specified ca data is not valid, the identity provider is not honored. - // If empty, the default system roots are used. - // The namespace for this config map is openshift-config. - // +optional - CA ConfigMapNameReference `json:"ca"` - - // extraScopes are any scopes to request in addition to the standard "openid" scope. - // +optional - ExtraScopes []string `json:"extraScopes,omitempty"` - - // extraAuthorizeParameters are any custom parameters to add to the authorize request. - // +optional - ExtraAuthorizeParameters map[string]string `json:"extraAuthorizeParameters,omitempty"` - - // issuer is the URL that the OpenID Provider asserts as its Issuer Identifier. - // It must use the https scheme with no query or fragment component. - Issuer string `json:"issuer"` - - // claims mappings - Claims OpenIDClaims `json:"claims"` -} - -// UserIDClaim is the claim used to provide a stable identifier for OIDC identities. -// Per http://openid.net/specs/openid-connect-core-1_0.html#ClaimStability -// "The sub (subject) and iss (issuer) Claims, used together, are the only Claims that an RP can -// rely upon as a stable identifier for the End-User, since the sub Claim MUST be locally unique -// and never reassigned within the Issuer for a particular End-User, as described in Section 2. -// Therefore, the only guaranteed unique identifier for a given End-User is the combination of the -// iss Claim and the sub Claim." -const UserIDClaim = "sub" - -// OpenIDClaims contains a list of OpenID claims to use when authenticating with an OpenID identity provider -type OpenIDClaims struct { - // preferredUsername is the list of claims whose values should be used as the preferred username. - // If unspecified, the preferred username is determined from the value of the sub claim - // +optional - PreferredUsername []string `json:"preferredUsername,omitempty"` - - // name is the list of claims whose values should be used as the display name. Optional. - // If unspecified, no display name is set for the identity - // +optional - Name []string `json:"name,omitempty"` - - // email is the list of claims whose values should be used as the email address. Optional. - // If unspecified, no email is set for the identity - // +optional - Email []string `json:"email,omitempty"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type OAuthList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - - Items []OAuth `json:"items"` -} diff --git a/vendor/github.com/openshift/api/config/v1/types_operatorhub.go b/vendor/github.com/openshift/api/config/v1/types_operatorhub.go deleted file mode 100644 index 1b2b7f82e9e99..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_operatorhub.go +++ /dev/null @@ -1,79 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// OperatorHubSpec defines the desired state of OperatorHub -type OperatorHubSpec struct { - // disableAllDefaultSources allows you to disable all the default hub - // sources. If this is true, a specific entry in sources can be used to - // enable a default source. If this is false, a specific entry in - // sources can be used to disable or enable a default source. - // +optional - DisableAllDefaultSources bool `json:"disableAllDefaultSources,omitempty"` - // sources is the list of default hub sources and their configuration. - // If the list is empty, it implies that the default hub sources are - // enabled on the cluster unless disableAllDefaultSources is true. - // If disableAllDefaultSources is true and sources is not empty, - // the configuration present in sources will take precedence. The list of - // default hub sources and their current state will always be reflected in - // the status block. - // +optional - Sources []HubSource `json:"sources,omitempty"` -} - -// OperatorHubStatus defines the observed state of OperatorHub. The current -// state of the default hub sources will always be reflected here. -type OperatorHubStatus struct { - // sources encapsulates the result of applying the configuration for each - // hub source - Sources []HubSourceStatus `json:"sources,omitempty"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// OperatorHub is the Schema for the operatorhubs API. It can be used to change -// the state of the default hub sources for OperatorHub on the cluster from -// enabled to disabled and vice versa. -// +kubebuilder:subresource:status -// +genclient -// +genclient:nonNamespaced -type OperatorHub struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata"` - - Spec OperatorHubSpec `json:"spec"` - Status OperatorHubStatus `json:"status"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// OperatorHubList contains a list of OperatorHub -type OperatorHubList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - Items []OperatorHub `json:"items"` -} - -// HubSource is used to specify the hub source and its configuration -type HubSource struct { - // name is the name of one of the default hub sources - // +kubebuilder:validation:MaxLength=253 - // +kubebuilder:validation:MinLength=1 - // +kubebuilder:Required - Name string `json:"name"` - // disabled is used to disable a default hub source on cluster - // +kubebuilder:Required - Disabled bool `json:"disabled"` -} - -// HubSourceStatus is used to reflect the current state of applying the -// configuration to a default source -type HubSourceStatus struct { - HubSource `json:",omitempty"` - // status indicates success or failure in applying the configuration - Status string `json:"status,omitempty"` - // message provides more information regarding failures - Message string `json:"message,omitempty"` -} diff --git a/vendor/github.com/openshift/api/config/v1/types_project.go b/vendor/github.com/openshift/api/config/v1/types_project.go deleted file mode 100644 index 244ce3ef8fdbd..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_project.go +++ /dev/null @@ -1,54 +0,0 @@ -package v1 - -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Project holds cluster-wide information about Project. The canonical name is `cluster` -type Project struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - // spec holds user settable values for configuration - // +kubebuilder:validation:Required - // +required - Spec ProjectSpec `json:"spec"` - // status holds observed values from the cluster. They may not be overridden. - // +optional - Status ProjectStatus `json:"status"` -} - -// TemplateReference references a template in a specific namespace. -// The namespace must be specified at the point of use. -type TemplateReference struct { - // name is the metadata.name of the referenced project request template - Name string `json:"name"` -} - -// ProjectSpec holds the project creation configuration. -type ProjectSpec struct { - // projectRequestMessage is the string presented to a user if they are unable to request a project via the projectrequest api endpoint - // +optional - ProjectRequestMessage string `json:"projectRequestMessage"` - - // projectRequestTemplate is the template to use for creating projects in response to projectrequest. - // This must point to a template in 'openshift-config' namespace. It is optional. - // If it is not specified, a default template is used. - // - // +optional - ProjectRequestTemplate TemplateReference `json:"projectRequestTemplate"` -} - -type ProjectStatus struct { -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type ProjectList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - - Items []Project `json:"items"` -} diff --git a/vendor/github.com/openshift/api/config/v1/types_proxy.go b/vendor/github.com/openshift/api/config/v1/types_proxy.go deleted file mode 100644 index 211e501e08cbe..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_proxy.go +++ /dev/null @@ -1,94 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Proxy holds cluster-wide information on how to configure default proxies for the cluster. The canonical name is `cluster` -type Proxy struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - // Spec holds user-settable values for the proxy configuration - // +kubebuilder:validation:Required - // +required - Spec ProxySpec `json:"spec"` - // status holds observed values from the cluster. They may not be overridden. - // +optional - Status ProxyStatus `json:"status"` -} - -// ProxySpec contains cluster proxy creation configuration. -type ProxySpec struct { - // httpProxy is the URL of the proxy for HTTP requests. Empty means unset and will not result in an env var. - // +optional - HTTPProxy string `json:"httpProxy,omitempty"` - - // httpsProxy is the URL of the proxy for HTTPS requests. Empty means unset and will not result in an env var. - // +optional - HTTPSProxy string `json:"httpsProxy,omitempty"` - - // noProxy is a comma-separated list of hostnames and/or CIDRs for which the proxy should not be used. - // Empty means unset and will not result in an env var. - // +optional - NoProxy string `json:"noProxy,omitempty"` - - // readinessEndpoints is a list of endpoints used to verify readiness of the proxy. - // +optional - ReadinessEndpoints []string `json:"readinessEndpoints,omitempty"` - - // trustedCA is a reference to a ConfigMap containing a CA certificate bundle. - // The trustedCA field should only be consumed by a proxy validator. The - // validator is responsible for reading the certificate bundle from the required - // key "ca-bundle.crt", merging it with the system default trust bundle, - // and writing the merged trust bundle to a ConfigMap named "trusted-ca-bundle" - // in the "openshift-config-managed" namespace. Clients that expect to make - // proxy connections must use the trusted-ca-bundle for all HTTPS requests to - // the proxy, and may use the trusted-ca-bundle for non-proxy HTTPS requests as - // well. - // - // The namespace for the ConfigMap referenced by trustedCA is - // "openshift-config". Here is an example ConfigMap (in yaml): - // - // apiVersion: v1 - // kind: ConfigMap - // metadata: - // name: user-ca-bundle - // namespace: openshift-config - // data: - // ca-bundle.crt: | - // -----BEGIN CERTIFICATE----- - // Custom CA certificate bundle. - // -----END CERTIFICATE----- - // - // +optional - TrustedCA ConfigMapNameReference `json:"trustedCA,omitempty"` -} - -// ProxyStatus shows current known state of the cluster proxy. -type ProxyStatus struct { - // httpProxy is the URL of the proxy for HTTP requests. - // +optional - HTTPProxy string `json:"httpProxy,omitempty"` - - // httpsProxy is the URL of the proxy for HTTPS requests. - // +optional - HTTPSProxy string `json:"httpsProxy,omitempty"` - - // noProxy is a comma-separated list of hostnames and/or CIDRs for which the proxy should not be used. - // +optional - NoProxy string `json:"noProxy,omitempty"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type ProxyList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - - Items []Proxy `json:"items"` -} diff --git a/vendor/github.com/openshift/api/config/v1/types_scheduling.go b/vendor/github.com/openshift/api/config/v1/types_scheduling.go deleted file mode 100644 index c54bb49e981fc..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_scheduling.go +++ /dev/null @@ -1,75 +0,0 @@ -package v1 - -import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Scheduler holds cluster-wide config information to run the Kubernetes Scheduler -// and influence its placement decisions. The canonical name for this config is `cluster`. -type Scheduler struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - // spec holds user settable values for configuration - // +kubebuilder:validation:Required - // +required - Spec SchedulerSpec `json:"spec"` - // status holds observed values from the cluster. They may not be overridden. - // +optional - Status SchedulerStatus `json:"status"` -} - -type SchedulerSpec struct { - // policy is a reference to a ConfigMap containing scheduler policy which has - // user specified predicates and priorities. If this ConfigMap is not available - // scheduler will default to use DefaultAlgorithmProvider. - // The namespace for this configmap is openshift-config. - // +optional - Policy ConfigMapNameReference `json:"policy"` - // defaultNodeSelector helps set the cluster-wide default node selector to - // restrict pod placement to specific nodes. This is applied to the pods - // created in all namespaces and creates an intersection with any existing - // nodeSelectors already set on a pod, additionally constraining that pod's selector. - // For example, - // defaultNodeSelector: "type=user-node,region=east" would set nodeSelector - // field in pod spec to "type=user-node,region=east" to all pods created - // in all namespaces. Namespaces having project-wide node selectors won't be - // impacted even if this field is set. This adds an annotation section to - // the namespace. - // For example, if a new namespace is created with - // node-selector='type=user-node,region=east', - // the annotation openshift.io/node-selector: type=user-node,region=east - // gets added to the project. When the openshift.io/node-selector annotation - // is set on the project the value is used in preference to the value we are setting - // for defaultNodeSelector field. - // For instance, - // openshift.io/node-selector: "type=user-node,region=west" means - // that the default of "type=user-node,region=east" set in defaultNodeSelector - // would not be applied. - // +optional - DefaultNodeSelector string `json:"defaultNodeSelector,omitempty"` - // MastersSchedulable allows masters nodes to be schedulable. When this flag is - // turned on, all the master nodes in the cluster will be made schedulable, - // so that workload pods can run on them. The default value for this field is false, - // meaning none of the master nodes are schedulable. - // Important Note: Once the workload pods start running on the master nodes, - // extreme care must be taken to ensure that cluster-critical control plane components - // are not impacted. - // Please turn on this field after doing due diligence. - // +optional - MastersSchedulable bool `json:"mastersSchedulable"` -} - -type SchedulerStatus struct { -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type SchedulerList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - - Items []Scheduler `json:"items"` -} diff --git a/vendor/github.com/openshift/api/config/v1/types_tlssecurityprofile.go b/vendor/github.com/openshift/api/config/v1/types_tlssecurityprofile.go deleted file mode 100644 index 9dbacb9966814..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/types_tlssecurityprofile.go +++ /dev/null @@ -1,262 +0,0 @@ -package v1 - -// TLSSecurityProfile defines the schema for a TLS security profile. This object -// is used by operators to apply TLS security settings to operands. -// +union -type TLSSecurityProfile struct { - // type is one of Old, Intermediate, Modern or Custom. Custom provides - // the ability to specify individual TLS security profile parameters. - // Old, Intermediate and Modern are TLS security profiles based on: - // - // https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations - // - // The profiles are intent based, so they may change over time as new ciphers are developed and existing ciphers - // are found to be insecure. Depending on precisely which ciphers are available to a process, the list may be - // reduced. - // - // Note that the Modern profile is currently not supported because it is not - // yet well adopted by common software libraries. - // - // +unionDiscriminator - // +optional - Type TLSProfileType `json:"type"` - // old is a TLS security profile based on: - // - // https://wiki.mozilla.org/Security/Server_Side_TLS#Old_backward_compatibility - // - // and looks like this (yaml): - // - // ciphers: - // - TLS_AES_128_GCM_SHA256 - // - TLS_AES_256_GCM_SHA384 - // - TLS_CHACHA20_POLY1305_SHA256 - // - ECDHE-ECDSA-AES128-GCM-SHA256 - // - ECDHE-RSA-AES128-GCM-SHA256 - // - ECDHE-ECDSA-AES256-GCM-SHA384 - // - ECDHE-RSA-AES256-GCM-SHA384 - // - ECDHE-ECDSA-CHACHA20-POLY1305 - // - ECDHE-RSA-CHACHA20-POLY1305 - // - DHE-RSA-AES128-GCM-SHA256 - // - DHE-RSA-AES256-GCM-SHA384 - // - DHE-RSA-CHACHA20-POLY1305 - // - ECDHE-ECDSA-AES128-SHA256 - // - ECDHE-RSA-AES128-SHA256 - // - ECDHE-ECDSA-AES128-SHA - // - ECDHE-RSA-AES128-SHA - // - ECDHE-ECDSA-AES256-SHA384 - // - ECDHE-RSA-AES256-SHA384 - // - ECDHE-ECDSA-AES256-SHA - // - ECDHE-RSA-AES256-SHA - // - DHE-RSA-AES128-SHA256 - // - DHE-RSA-AES256-SHA256 - // - AES128-GCM-SHA256 - // - AES256-GCM-SHA384 - // - AES128-SHA256 - // - AES256-SHA256 - // - AES128-SHA - // - AES256-SHA - // - DES-CBC3-SHA - // minTLSVersion: TLSv1.0 - // - // +optional - // +nullable - Old *OldTLSProfile `json:"old,omitempty"` - // intermediate is a TLS security profile based on: - // - // https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28recommended.29 - // - // and looks like this (yaml): - // - // ciphers: - // - TLS_AES_128_GCM_SHA256 - // - TLS_AES_256_GCM_SHA384 - // - TLS_CHACHA20_POLY1305_SHA256 - // - ECDHE-ECDSA-AES128-GCM-SHA256 - // - ECDHE-RSA-AES128-GCM-SHA256 - // - ECDHE-ECDSA-AES256-GCM-SHA384 - // - ECDHE-RSA-AES256-GCM-SHA384 - // - ECDHE-ECDSA-CHACHA20-POLY1305 - // - ECDHE-RSA-CHACHA20-POLY1305 - // - DHE-RSA-AES128-GCM-SHA256 - // - DHE-RSA-AES256-GCM-SHA384 - // minTLSVersion: TLSv1.2 - // - // +optional - // +nullable - Intermediate *IntermediateTLSProfile `json:"intermediate,omitempty"` - // modern is a TLS security profile based on: - // - // https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility - // - // and looks like this (yaml): - // - // ciphers: - // - TLS_AES_128_GCM_SHA256 - // - TLS_AES_256_GCM_SHA384 - // - TLS_CHACHA20_POLY1305_SHA256 - // minTLSVersion: TLSv1.3 - // - // NOTE: Currently unsupported. - // - // +optional - // +nullable - Modern *ModernTLSProfile `json:"modern,omitempty"` - // custom is a user-defined TLS security profile. Be extremely careful using a custom - // profile as invalid configurations can be catastrophic. An example custom profile - // looks like this: - // - // ciphers: - // - ECDHE-ECDSA-CHACHA20-POLY1305 - // - ECDHE-RSA-CHACHA20-POLY1305 - // - ECDHE-RSA-AES128-GCM-SHA256 - // - ECDHE-ECDSA-AES128-GCM-SHA256 - // minTLSVersion: TLSv1.1 - // - // +optional - // +nullable - Custom *CustomTLSProfile `json:"custom,omitempty"` -} - -// OldTLSProfile is a TLS security profile based on: -// https://wiki.mozilla.org/Security/Server_Side_TLS#Old_backward_compatibility -type OldTLSProfile struct{} - -// IntermediateTLSProfile is a TLS security profile based on: -// https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29 -type IntermediateTLSProfile struct{} - -// ModernTLSProfile is a TLS security profile based on: -// https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility -type ModernTLSProfile struct{} - -// CustomTLSProfile is a user-defined TLS security profile. Be extremely careful -// using a custom TLS profile as invalid configurations can be catastrophic. -type CustomTLSProfile struct { - TLSProfileSpec `json:",inline"` -} - -// TLSProfileType defines a TLS security profile type. -// +kubebuilder:validation:Enum=Old;Intermediate;Modern;Custom -type TLSProfileType string - -const ( - // Old is a TLS security profile based on: - // https://wiki.mozilla.org/Security/Server_Side_TLS#Old_backward_compatibility - TLSProfileOldType TLSProfileType = "Old" - // Intermediate is a TLS security profile based on: - // https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29 - TLSProfileIntermediateType TLSProfileType = "Intermediate" - // Modern is a TLS security profile based on: - // https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility - TLSProfileModernType TLSProfileType = "Modern" - // Custom is a TLS security profile that allows for user-defined parameters. - TLSProfileCustomType TLSProfileType = "Custom" -) - -// TLSProfileSpec is the desired behavior of a TLSSecurityProfile. -type TLSProfileSpec struct { - // ciphers is used to specify the cipher algorithms that are negotiated - // during the TLS handshake. Operators may remove entries their operands - // do not support. For example, to use DES-CBC3-SHA (yaml): - // - // ciphers: - // - DES-CBC3-SHA - // - Ciphers []string `json:"ciphers"` - // minTLSVersion is used to specify the minimal version of the TLS protocol - // that is negotiated during the TLS handshake. For example, to use TLS - // versions 1.1, 1.2 and 1.3 (yaml): - // - // minTLSVersion: TLSv1.1 - // - // NOTE: currently the highest minTLSVersion allowed is VersionTLS12 - // - MinTLSVersion TLSProtocolVersion `json:"minTLSVersion"` -} - -// TLSProtocolVersion is a way to specify the protocol version used for TLS connections. -// Protocol versions are based on the following most common TLS configurations: -// -// https://ssl-config.mozilla.org/ -// -// Note that SSLv3.0 is not a supported protocol version due to well known -// vulnerabilities such as POODLE: https://en.wikipedia.org/wiki/POODLE -// +kubebuilder:validation:Enum=VersionTLS10;VersionTLS11;VersionTLS12;VersionTLS13 -type TLSProtocolVersion string - -const ( - // VersionTLSv10 is version 1.0 of the TLS security protocol. - VersionTLS10 TLSProtocolVersion = "VersionTLS10" - // VersionTLSv11 is version 1.1 of the TLS security protocol. - VersionTLS11 TLSProtocolVersion = "VersionTLS11" - // VersionTLSv12 is version 1.2 of the TLS security protocol. - VersionTLS12 TLSProtocolVersion = "VersionTLS12" - // VersionTLSv13 is version 1.3 of the TLS security protocol. - VersionTLS13 TLSProtocolVersion = "VersionTLS13" -) - -// TLSProfiles Contains a map of TLSProfileType names to TLSProfileSpec. -// -// NOTE: The caller needs to make sure to check that these constants are valid for their binary. Not all -// entries map to values for all binaries. In the case of ties, the kube-apiserver wins. Do not fail, -// just be sure to whitelist only and everything will be ok. -var TLSProfiles = map[TLSProfileType]*TLSProfileSpec{ - TLSProfileOldType: { - Ciphers: []string{ - "TLS_AES_128_GCM_SHA256", - "TLS_AES_256_GCM_SHA384", - "TLS_CHACHA20_POLY1305_SHA256", - "ECDHE-ECDSA-AES128-GCM-SHA256", - "ECDHE-RSA-AES128-GCM-SHA256", - "ECDHE-ECDSA-AES256-GCM-SHA384", - "ECDHE-RSA-AES256-GCM-SHA384", - "ECDHE-ECDSA-CHACHA20-POLY1305", - "ECDHE-RSA-CHACHA20-POLY1305", - "DHE-RSA-AES128-GCM-SHA256", - "DHE-RSA-AES256-GCM-SHA384", - "DHE-RSA-CHACHA20-POLY1305", - "ECDHE-ECDSA-AES128-SHA256", - "ECDHE-RSA-AES128-SHA256", - "ECDHE-ECDSA-AES128-SHA", - "ECDHE-RSA-AES128-SHA", - "ECDHE-ECDSA-AES256-SHA384", - "ECDHE-RSA-AES256-SHA384", - "ECDHE-ECDSA-AES256-SHA", - "ECDHE-RSA-AES256-SHA", - "DHE-RSA-AES128-SHA256", - "DHE-RSA-AES256-SHA256", - "AES128-GCM-SHA256", - "AES256-GCM-SHA384", - "AES128-SHA256", - "AES256-SHA256", - "AES128-SHA", - "AES256-SHA", - "DES-CBC3-SHA", - }, - MinTLSVersion: VersionTLS10, - }, - TLSProfileIntermediateType: { - Ciphers: []string{ - "TLS_AES_128_GCM_SHA256", - "TLS_AES_256_GCM_SHA384", - "TLS_CHACHA20_POLY1305_SHA256", - "ECDHE-ECDSA-AES128-GCM-SHA256", - "ECDHE-RSA-AES128-GCM-SHA256", - "ECDHE-ECDSA-AES256-GCM-SHA384", - "ECDHE-RSA-AES256-GCM-SHA384", - "ECDHE-ECDSA-CHACHA20-POLY1305", - "ECDHE-RSA-CHACHA20-POLY1305", - "DHE-RSA-AES128-GCM-SHA256", - "DHE-RSA-AES256-GCM-SHA384", - }, - MinTLSVersion: VersionTLS12, - }, - TLSProfileModernType: { - Ciphers: []string{ - "TLS_AES_128_GCM_SHA256", - "TLS_AES_256_GCM_SHA384", - "TLS_CHACHA20_POLY1305_SHA256", - }, - MinTLSVersion: VersionTLS13, - }, -} diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/config/v1/zz_generated.deepcopy.go deleted file mode 100644 index 7542490ef97f0..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,3691 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/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 *APIServer) DeepCopyInto(out *APIServer) { - *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 APIServer. -func (in *APIServer) DeepCopy() *APIServer { - if in == nil { - return nil - } - out := new(APIServer) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *APIServer) 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 *APIServerEncryption) DeepCopyInto(out *APIServerEncryption) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerEncryption. -func (in *APIServerEncryption) DeepCopy() *APIServerEncryption { - if in == nil { - return nil - } - out := new(APIServerEncryption) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *APIServerList) DeepCopyInto(out *APIServerList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]APIServer, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerList. -func (in *APIServerList) DeepCopy() *APIServerList { - if in == nil { - return nil - } - out := new(APIServerList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *APIServerList) 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 *APIServerNamedServingCert) DeepCopyInto(out *APIServerNamedServingCert) { - *out = *in - if in.Names != nil { - in, out := &in.Names, &out.Names - *out = make([]string, len(*in)) - copy(*out, *in) - } - out.ServingCertificate = in.ServingCertificate - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerNamedServingCert. -func (in *APIServerNamedServingCert) DeepCopy() *APIServerNamedServingCert { - if in == nil { - return nil - } - out := new(APIServerNamedServingCert) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *APIServerServingCerts) DeepCopyInto(out *APIServerServingCerts) { - *out = *in - if in.NamedCertificates != nil { - in, out := &in.NamedCertificates, &out.NamedCertificates - *out = make([]APIServerNamedServingCert, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerServingCerts. -func (in *APIServerServingCerts) DeepCopy() *APIServerServingCerts { - if in == nil { - return nil - } - out := new(APIServerServingCerts) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *APIServerSpec) DeepCopyInto(out *APIServerSpec) { - *out = *in - in.ServingCerts.DeepCopyInto(&out.ServingCerts) - out.ClientCA = in.ClientCA - if in.AdditionalCORSAllowedOrigins != nil { - in, out := &in.AdditionalCORSAllowedOrigins, &out.AdditionalCORSAllowedOrigins - *out = make([]string, len(*in)) - copy(*out, *in) - } - out.Encryption = in.Encryption - if in.TLSSecurityProfile != nil { - in, out := &in.TLSSecurityProfile, &out.TLSSecurityProfile - *out = new(TLSSecurityProfile) - (*in).DeepCopyInto(*out) - } - out.Audit = in.Audit - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerSpec. -func (in *APIServerSpec) DeepCopy() *APIServerSpec { - if in == nil { - return nil - } - out := new(APIServerSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *APIServerStatus) DeepCopyInto(out *APIServerStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerStatus. -func (in *APIServerStatus) DeepCopy() *APIServerStatus { - if in == nil { - return nil - } - out := new(APIServerStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AWSPlatformSpec) DeepCopyInto(out *AWSPlatformSpec) { - *out = *in - if in.ServiceEndpoints != nil { - in, out := &in.ServiceEndpoints, &out.ServiceEndpoints - *out = make([]AWSServiceEndpoint, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSPlatformSpec. -func (in *AWSPlatformSpec) DeepCopy() *AWSPlatformSpec { - if in == nil { - return nil - } - out := new(AWSPlatformSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AWSPlatformStatus) DeepCopyInto(out *AWSPlatformStatus) { - *out = *in - if in.ServiceEndpoints != nil { - in, out := &in.ServiceEndpoints, &out.ServiceEndpoints - *out = make([]AWSServiceEndpoint, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSPlatformStatus. -func (in *AWSPlatformStatus) DeepCopy() *AWSPlatformStatus { - if in == nil { - return nil - } - out := new(AWSPlatformStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AWSServiceEndpoint) DeepCopyInto(out *AWSServiceEndpoint) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSServiceEndpoint. -func (in *AWSServiceEndpoint) DeepCopy() *AWSServiceEndpoint { - if in == nil { - return nil - } - out := new(AWSServiceEndpoint) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AdmissionConfig) DeepCopyInto(out *AdmissionConfig) { - *out = *in - if in.PluginConfig != nil { - in, out := &in.PluginConfig, &out.PluginConfig - *out = make(map[string]AdmissionPluginConfig, len(*in)) - for key, val := range *in { - (*out)[key] = *val.DeepCopy() - } - } - if in.EnabledAdmissionPlugins != nil { - in, out := &in.EnabledAdmissionPlugins, &out.EnabledAdmissionPlugins - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.DisabledAdmissionPlugins != nil { - in, out := &in.DisabledAdmissionPlugins, &out.DisabledAdmissionPlugins - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdmissionConfig. -func (in *AdmissionConfig) DeepCopy() *AdmissionConfig { - if in == nil { - return nil - } - out := new(AdmissionConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AdmissionPluginConfig) DeepCopyInto(out *AdmissionPluginConfig) { - *out = *in - in.Configuration.DeepCopyInto(&out.Configuration) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdmissionPluginConfig. -func (in *AdmissionPluginConfig) DeepCopy() *AdmissionPluginConfig { - if in == nil { - return nil - } - out := new(AdmissionPluginConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Audit) DeepCopyInto(out *Audit) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Audit. -func (in *Audit) DeepCopy() *Audit { - if in == nil { - return nil - } - out := new(Audit) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AuditConfig) DeepCopyInto(out *AuditConfig) { - *out = *in - in.PolicyConfiguration.DeepCopyInto(&out.PolicyConfiguration) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuditConfig. -func (in *AuditConfig) DeepCopy() *AuditConfig { - if in == nil { - return nil - } - out := new(AuditConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Authentication) DeepCopyInto(out *Authentication) { - *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 Authentication. -func (in *Authentication) DeepCopy() *Authentication { - if in == nil { - return nil - } - out := new(Authentication) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Authentication) 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 *AuthenticationList) DeepCopyInto(out *AuthenticationList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Authentication, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthenticationList. -func (in *AuthenticationList) DeepCopy() *AuthenticationList { - if in == nil { - return nil - } - out := new(AuthenticationList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *AuthenticationList) 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 *AuthenticationSpec) DeepCopyInto(out *AuthenticationSpec) { - *out = *in - out.OAuthMetadata = in.OAuthMetadata - if in.WebhookTokenAuthenticators != nil { - in, out := &in.WebhookTokenAuthenticators, &out.WebhookTokenAuthenticators - *out = make([]DeprecatedWebhookTokenAuthenticator, len(*in)) - copy(*out, *in) - } - if in.WebhookTokenAuthenticator != nil { - in, out := &in.WebhookTokenAuthenticator, &out.WebhookTokenAuthenticator - *out = new(WebhookTokenAuthenticator) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthenticationSpec. -func (in *AuthenticationSpec) DeepCopy() *AuthenticationSpec { - if in == nil { - return nil - } - out := new(AuthenticationSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AuthenticationStatus) DeepCopyInto(out *AuthenticationStatus) { - *out = *in - out.IntegratedOAuthMetadata = in.IntegratedOAuthMetadata - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthenticationStatus. -func (in *AuthenticationStatus) DeepCopy() *AuthenticationStatus { - if in == nil { - return nil - } - out := new(AuthenticationStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AzurePlatformSpec) DeepCopyInto(out *AzurePlatformSpec) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzurePlatformSpec. -func (in *AzurePlatformSpec) DeepCopy() *AzurePlatformSpec { - if in == nil { - return nil - } - out := new(AzurePlatformSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AzurePlatformStatus) DeepCopyInto(out *AzurePlatformStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzurePlatformStatus. -func (in *AzurePlatformStatus) DeepCopy() *AzurePlatformStatus { - if in == nil { - return nil - } - out := new(AzurePlatformStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BareMetalPlatformSpec) DeepCopyInto(out *BareMetalPlatformSpec) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BareMetalPlatformSpec. -func (in *BareMetalPlatformSpec) DeepCopy() *BareMetalPlatformSpec { - if in == nil { - return nil - } - out := new(BareMetalPlatformSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BareMetalPlatformStatus) DeepCopyInto(out *BareMetalPlatformStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BareMetalPlatformStatus. -func (in *BareMetalPlatformStatus) DeepCopy() *BareMetalPlatformStatus { - if in == nil { - return nil - } - out := new(BareMetalPlatformStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BasicAuthIdentityProvider) DeepCopyInto(out *BasicAuthIdentityProvider) { - *out = *in - out.OAuthRemoteConnectionInfo = in.OAuthRemoteConnectionInfo - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BasicAuthIdentityProvider. -func (in *BasicAuthIdentityProvider) DeepCopy() *BasicAuthIdentityProvider { - if in == nil { - return nil - } - out := new(BasicAuthIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Build) DeepCopyInto(out *Build) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Build. -func (in *Build) DeepCopy() *Build { - if in == nil { - return nil - } - out := new(Build) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Build) 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 *BuildDefaults) DeepCopyInto(out *BuildDefaults) { - *out = *in - if in.DefaultProxy != nil { - in, out := &in.DefaultProxy, &out.DefaultProxy - *out = new(ProxySpec) - (*in).DeepCopyInto(*out) - } - if in.GitProxy != nil { - in, out := &in.GitProxy, &out.GitProxy - *out = new(ProxySpec) - (*in).DeepCopyInto(*out) - } - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]corev1.EnvVar, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.ImageLabels != nil { - in, out := &in.ImageLabels, &out.ImageLabels - *out = make([]ImageLabel, len(*in)) - copy(*out, *in) - } - in.Resources.DeepCopyInto(&out.Resources) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildDefaults. -func (in *BuildDefaults) DeepCopy() *BuildDefaults { - if in == nil { - return nil - } - out := new(BuildDefaults) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BuildList) DeepCopyInto(out *BuildList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Build, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildList. -func (in *BuildList) DeepCopy() *BuildList { - if in == nil { - return nil - } - out := new(BuildList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *BuildList) 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 *BuildOverrides) DeepCopyInto(out *BuildOverrides) { - *out = *in - if in.ImageLabels != nil { - in, out := &in.ImageLabels, &out.ImageLabels - *out = make([]ImageLabel, len(*in)) - copy(*out, *in) - } - if in.NodeSelector != nil { - in, out := &in.NodeSelector, &out.NodeSelector - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Tolerations != nil { - in, out := &in.Tolerations, &out.Tolerations - *out = make([]corev1.Toleration, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.ForcePull != nil { - in, out := &in.ForcePull, &out.ForcePull - *out = new(bool) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildOverrides. -func (in *BuildOverrides) DeepCopy() *BuildOverrides { - if in == nil { - return nil - } - out := new(BuildOverrides) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BuildSpec) DeepCopyInto(out *BuildSpec) { - *out = *in - out.AdditionalTrustedCA = in.AdditionalTrustedCA - in.BuildDefaults.DeepCopyInto(&out.BuildDefaults) - in.BuildOverrides.DeepCopyInto(&out.BuildOverrides) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildSpec. -func (in *BuildSpec) DeepCopy() *BuildSpec { - if in == nil { - return nil - } - out := new(BuildSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CertInfo) DeepCopyInto(out *CertInfo) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertInfo. -func (in *CertInfo) DeepCopy() *CertInfo { - if in == nil { - return nil - } - out := new(CertInfo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClientConnectionOverrides) DeepCopyInto(out *ClientConnectionOverrides) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientConnectionOverrides. -func (in *ClientConnectionOverrides) DeepCopy() *ClientConnectionOverrides { - if in == nil { - return nil - } - out := new(ClientConnectionOverrides) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterNetworkEntry) DeepCopyInto(out *ClusterNetworkEntry) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterNetworkEntry. -func (in *ClusterNetworkEntry) DeepCopy() *ClusterNetworkEntry { - if in == nil { - return nil - } - out := new(ClusterNetworkEntry) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterOperator) DeepCopyInto(out *ClusterOperator) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Spec = in.Spec - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterOperator. -func (in *ClusterOperator) DeepCopy() *ClusterOperator { - if in == nil { - return nil - } - out := new(ClusterOperator) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterOperator) 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 *ClusterOperatorList) DeepCopyInto(out *ClusterOperatorList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ClusterOperator, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterOperatorList. -func (in *ClusterOperatorList) DeepCopy() *ClusterOperatorList { - if in == nil { - return nil - } - out := new(ClusterOperatorList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterOperatorList) 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 *ClusterOperatorSpec) DeepCopyInto(out *ClusterOperatorSpec) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterOperatorSpec. -func (in *ClusterOperatorSpec) DeepCopy() *ClusterOperatorSpec { - if in == nil { - return nil - } - out := new(ClusterOperatorSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterOperatorStatus) DeepCopyInto(out *ClusterOperatorStatus) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]ClusterOperatorStatusCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Versions != nil { - in, out := &in.Versions, &out.Versions - *out = make([]OperandVersion, len(*in)) - copy(*out, *in) - } - if in.RelatedObjects != nil { - in, out := &in.RelatedObjects, &out.RelatedObjects - *out = make([]ObjectReference, len(*in)) - copy(*out, *in) - } - in.Extension.DeepCopyInto(&out.Extension) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterOperatorStatus. -func (in *ClusterOperatorStatus) DeepCopy() *ClusterOperatorStatus { - if in == nil { - return nil - } - out := new(ClusterOperatorStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterOperatorStatusCondition) DeepCopyInto(out *ClusterOperatorStatusCondition) { - *out = *in - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterOperatorStatusCondition. -func (in *ClusterOperatorStatusCondition) DeepCopy() *ClusterOperatorStatusCondition { - if in == nil { - return nil - } - out := new(ClusterOperatorStatusCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterVersion) DeepCopyInto(out *ClusterVersion) { - *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 ClusterVersion. -func (in *ClusterVersion) DeepCopy() *ClusterVersion { - if in == nil { - return nil - } - out := new(ClusterVersion) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterVersion) 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 *ClusterVersionList) DeepCopyInto(out *ClusterVersionList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ClusterVersion, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterVersionList. -func (in *ClusterVersionList) DeepCopy() *ClusterVersionList { - if in == nil { - return nil - } - out := new(ClusterVersionList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterVersionList) 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 *ClusterVersionSpec) DeepCopyInto(out *ClusterVersionSpec) { - *out = *in - if in.DesiredUpdate != nil { - in, out := &in.DesiredUpdate, &out.DesiredUpdate - *out = new(Update) - **out = **in - } - if in.Overrides != nil { - in, out := &in.Overrides, &out.Overrides - *out = make([]ComponentOverride, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterVersionSpec. -func (in *ClusterVersionSpec) DeepCopy() *ClusterVersionSpec { - if in == nil { - return nil - } - out := new(ClusterVersionSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterVersionStatus) DeepCopyInto(out *ClusterVersionStatus) { - *out = *in - in.Desired.DeepCopyInto(&out.Desired) - if in.History != nil { - in, out := &in.History, &out.History - *out = make([]UpdateHistory, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]ClusterOperatorStatusCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.AvailableUpdates != nil { - in, out := &in.AvailableUpdates, &out.AvailableUpdates - *out = make([]Release, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterVersionStatus. -func (in *ClusterVersionStatus) DeepCopy() *ClusterVersionStatus { - if in == nil { - return nil - } - out := new(ClusterVersionStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ComponentOverride) DeepCopyInto(out *ComponentOverride) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentOverride. -func (in *ComponentOverride) DeepCopy() *ComponentOverride { - if in == nil { - return nil - } - out := new(ComponentOverride) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConfigMapFileReference) DeepCopyInto(out *ConfigMapFileReference) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapFileReference. -func (in *ConfigMapFileReference) DeepCopy() *ConfigMapFileReference { - if in == nil { - return nil - } - out := new(ConfigMapFileReference) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConfigMapNameReference) DeepCopyInto(out *ConfigMapNameReference) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapNameReference. -func (in *ConfigMapNameReference) DeepCopy() *ConfigMapNameReference { - if in == nil { - return nil - } - out := new(ConfigMapNameReference) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Console) DeepCopyInto(out *Console) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Spec = in.Spec - out.Status = in.Status - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Console. -func (in *Console) DeepCopy() *Console { - if in == nil { - return nil - } - out := new(Console) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Console) 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 *ConsoleAuthentication) DeepCopyInto(out *ConsoleAuthentication) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConsoleAuthentication. -func (in *ConsoleAuthentication) DeepCopy() *ConsoleAuthentication { - if in == nil { - return nil - } - out := new(ConsoleAuthentication) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConsoleList) DeepCopyInto(out *ConsoleList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Console, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConsoleList. -func (in *ConsoleList) DeepCopy() *ConsoleList { - if in == nil { - return nil - } - out := new(ConsoleList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ConsoleList) 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 *ConsoleSpec) DeepCopyInto(out *ConsoleSpec) { - *out = *in - out.Authentication = in.Authentication - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConsoleSpec. -func (in *ConsoleSpec) DeepCopy() *ConsoleSpec { - if in == nil { - return nil - } - out := new(ConsoleSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConsoleStatus) DeepCopyInto(out *ConsoleStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConsoleStatus. -func (in *ConsoleStatus) DeepCopy() *ConsoleStatus { - if in == nil { - return nil - } - out := new(ConsoleStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CustomFeatureGates) DeepCopyInto(out *CustomFeatureGates) { - *out = *in - if in.Enabled != nil { - in, out := &in.Enabled, &out.Enabled - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Disabled != nil { - in, out := &in.Disabled, &out.Disabled - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomFeatureGates. -func (in *CustomFeatureGates) DeepCopy() *CustomFeatureGates { - if in == nil { - return nil - } - out := new(CustomFeatureGates) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CustomTLSProfile) DeepCopyInto(out *CustomTLSProfile) { - *out = *in - in.TLSProfileSpec.DeepCopyInto(&out.TLSProfileSpec) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomTLSProfile. -func (in *CustomTLSProfile) DeepCopy() *CustomTLSProfile { - if in == nil { - return nil - } - out := new(CustomTLSProfile) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DNS) DeepCopyInto(out *DNS) { - *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 DNS. -func (in *DNS) DeepCopy() *DNS { - if in == nil { - return nil - } - out := new(DNS) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DNS) 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 *DNSList) DeepCopyInto(out *DNSList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]DNS, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSList. -func (in *DNSList) DeepCopy() *DNSList { - if in == nil { - return nil - } - out := new(DNSList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DNSList) 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 *DNSSpec) DeepCopyInto(out *DNSSpec) { - *out = *in - if in.PublicZone != nil { - in, out := &in.PublicZone, &out.PublicZone - *out = new(DNSZone) - (*in).DeepCopyInto(*out) - } - if in.PrivateZone != nil { - in, out := &in.PrivateZone, &out.PrivateZone - *out = new(DNSZone) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSSpec. -func (in *DNSSpec) DeepCopy() *DNSSpec { - if in == nil { - return nil - } - out := new(DNSSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DNSStatus) DeepCopyInto(out *DNSStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSStatus. -func (in *DNSStatus) DeepCopy() *DNSStatus { - if in == nil { - return nil - } - out := new(DNSStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DNSZone) DeepCopyInto(out *DNSZone) { - *out = *in - if in.Tags != nil { - in, out := &in.Tags, &out.Tags - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSZone. -func (in *DNSZone) DeepCopy() *DNSZone { - if in == nil { - return nil - } - out := new(DNSZone) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DelegatedAuthentication) DeepCopyInto(out *DelegatedAuthentication) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DelegatedAuthentication. -func (in *DelegatedAuthentication) DeepCopy() *DelegatedAuthentication { - if in == nil { - return nil - } - out := new(DelegatedAuthentication) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DelegatedAuthorization) DeepCopyInto(out *DelegatedAuthorization) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DelegatedAuthorization. -func (in *DelegatedAuthorization) DeepCopy() *DelegatedAuthorization { - if in == nil { - return nil - } - out := new(DelegatedAuthorization) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeprecatedWebhookTokenAuthenticator) DeepCopyInto(out *DeprecatedWebhookTokenAuthenticator) { - *out = *in - out.KubeConfig = in.KubeConfig - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeprecatedWebhookTokenAuthenticator. -func (in *DeprecatedWebhookTokenAuthenticator) DeepCopy() *DeprecatedWebhookTokenAuthenticator { - if in == nil { - return nil - } - out := new(DeprecatedWebhookTokenAuthenticator) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *EtcdConnectionInfo) DeepCopyInto(out *EtcdConnectionInfo) { - *out = *in - if in.URLs != nil { - in, out := &in.URLs, &out.URLs - *out = make([]string, len(*in)) - copy(*out, *in) - } - out.CertInfo = in.CertInfo - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdConnectionInfo. -func (in *EtcdConnectionInfo) DeepCopy() *EtcdConnectionInfo { - if in == nil { - return nil - } - out := new(EtcdConnectionInfo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *EtcdStorageConfig) DeepCopyInto(out *EtcdStorageConfig) { - *out = *in - in.EtcdConnectionInfo.DeepCopyInto(&out.EtcdConnectionInfo) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdStorageConfig. -func (in *EtcdStorageConfig) DeepCopy() *EtcdStorageConfig { - if in == nil { - return nil - } - out := new(EtcdStorageConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ExternalIPConfig) DeepCopyInto(out *ExternalIPConfig) { - *out = *in - if in.Policy != nil { - in, out := &in.Policy, &out.Policy - *out = new(ExternalIPPolicy) - (*in).DeepCopyInto(*out) - } - if in.AutoAssignCIDRs != nil { - in, out := &in.AutoAssignCIDRs, &out.AutoAssignCIDRs - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalIPConfig. -func (in *ExternalIPConfig) DeepCopy() *ExternalIPConfig { - if in == nil { - return nil - } - out := new(ExternalIPConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ExternalIPPolicy) DeepCopyInto(out *ExternalIPPolicy) { - *out = *in - if in.AllowedCIDRs != nil { - in, out := &in.AllowedCIDRs, &out.AllowedCIDRs - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.RejectedCIDRs != nil { - in, out := &in.RejectedCIDRs, &out.RejectedCIDRs - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalIPPolicy. -func (in *ExternalIPPolicy) DeepCopy() *ExternalIPPolicy { - if in == nil { - return nil - } - out := new(ExternalIPPolicy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *FeatureGate) DeepCopyInto(out *FeatureGate) { - *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 FeatureGate. -func (in *FeatureGate) DeepCopy() *FeatureGate { - if in == nil { - return nil - } - out := new(FeatureGate) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *FeatureGate) 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 *FeatureGateEnabledDisabled) DeepCopyInto(out *FeatureGateEnabledDisabled) { - *out = *in - if in.Enabled != nil { - in, out := &in.Enabled, &out.Enabled - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Disabled != nil { - in, out := &in.Disabled, &out.Disabled - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureGateEnabledDisabled. -func (in *FeatureGateEnabledDisabled) DeepCopy() *FeatureGateEnabledDisabled { - if in == nil { - return nil - } - out := new(FeatureGateEnabledDisabled) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *FeatureGateList) DeepCopyInto(out *FeatureGateList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]FeatureGate, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureGateList. -func (in *FeatureGateList) DeepCopy() *FeatureGateList { - if in == nil { - return nil - } - out := new(FeatureGateList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *FeatureGateList) 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 *FeatureGateSelection) DeepCopyInto(out *FeatureGateSelection) { - *out = *in - if in.CustomNoUpgrade != nil { - in, out := &in.CustomNoUpgrade, &out.CustomNoUpgrade - *out = new(CustomFeatureGates) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureGateSelection. -func (in *FeatureGateSelection) DeepCopy() *FeatureGateSelection { - if in == nil { - return nil - } - out := new(FeatureGateSelection) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *FeatureGateSpec) DeepCopyInto(out *FeatureGateSpec) { - *out = *in - in.FeatureGateSelection.DeepCopyInto(&out.FeatureGateSelection) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureGateSpec. -func (in *FeatureGateSpec) DeepCopy() *FeatureGateSpec { - if in == nil { - return nil - } - out := new(FeatureGateSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *FeatureGateStatus) DeepCopyInto(out *FeatureGateStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureGateStatus. -func (in *FeatureGateStatus) DeepCopy() *FeatureGateStatus { - if in == nil { - return nil - } - out := new(FeatureGateStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GCPPlatformSpec) DeepCopyInto(out *GCPPlatformSpec) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPPlatformSpec. -func (in *GCPPlatformSpec) DeepCopy() *GCPPlatformSpec { - if in == nil { - return nil - } - out := new(GCPPlatformSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GCPPlatformStatus) DeepCopyInto(out *GCPPlatformStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCPPlatformStatus. -func (in *GCPPlatformStatus) DeepCopy() *GCPPlatformStatus { - if in == nil { - return nil - } - out := new(GCPPlatformStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GenericAPIServerConfig) DeepCopyInto(out *GenericAPIServerConfig) { - *out = *in - in.ServingInfo.DeepCopyInto(&out.ServingInfo) - if in.CORSAllowedOrigins != nil { - in, out := &in.CORSAllowedOrigins, &out.CORSAllowedOrigins - *out = make([]string, len(*in)) - copy(*out, *in) - } - in.AuditConfig.DeepCopyInto(&out.AuditConfig) - in.StorageConfig.DeepCopyInto(&out.StorageConfig) - in.AdmissionConfig.DeepCopyInto(&out.AdmissionConfig) - out.KubeClientConfig = in.KubeClientConfig - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GenericAPIServerConfig. -func (in *GenericAPIServerConfig) DeepCopy() *GenericAPIServerConfig { - if in == nil { - return nil - } - out := new(GenericAPIServerConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GenericControllerConfig) DeepCopyInto(out *GenericControllerConfig) { - *out = *in - in.ServingInfo.DeepCopyInto(&out.ServingInfo) - out.LeaderElection = in.LeaderElection - out.Authentication = in.Authentication - out.Authorization = in.Authorization - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GenericControllerConfig. -func (in *GenericControllerConfig) DeepCopy() *GenericControllerConfig { - if in == nil { - return nil - } - out := new(GenericControllerConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GitHubIdentityProvider) DeepCopyInto(out *GitHubIdentityProvider) { - *out = *in - out.ClientSecret = in.ClientSecret - if in.Organizations != nil { - in, out := &in.Organizations, &out.Organizations - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Teams != nil { - in, out := &in.Teams, &out.Teams - *out = make([]string, len(*in)) - copy(*out, *in) - } - out.CA = in.CA - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHubIdentityProvider. -func (in *GitHubIdentityProvider) DeepCopy() *GitHubIdentityProvider { - if in == nil { - return nil - } - out := new(GitHubIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GitLabIdentityProvider) DeepCopyInto(out *GitLabIdentityProvider) { - *out = *in - out.ClientSecret = in.ClientSecret - out.CA = in.CA - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitLabIdentityProvider. -func (in *GitLabIdentityProvider) DeepCopy() *GitLabIdentityProvider { - if in == nil { - return nil - } - out := new(GitLabIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GoogleIdentityProvider) DeepCopyInto(out *GoogleIdentityProvider) { - *out = *in - out.ClientSecret = in.ClientSecret - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GoogleIdentityProvider. -func (in *GoogleIdentityProvider) DeepCopy() *GoogleIdentityProvider { - if in == nil { - return nil - } - out := new(GoogleIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HTPasswdIdentityProvider) DeepCopyInto(out *HTPasswdIdentityProvider) { - *out = *in - out.FileData = in.FileData - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTPasswdIdentityProvider. -func (in *HTPasswdIdentityProvider) DeepCopy() *HTPasswdIdentityProvider { - if in == nil { - return nil - } - out := new(HTPasswdIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HTTPServingInfo) DeepCopyInto(out *HTTPServingInfo) { - *out = *in - in.ServingInfo.DeepCopyInto(&out.ServingInfo) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPServingInfo. -func (in *HTTPServingInfo) DeepCopy() *HTTPServingInfo { - if in == nil { - return nil - } - out := new(HTTPServingInfo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HubSource) DeepCopyInto(out *HubSource) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HubSource. -func (in *HubSource) DeepCopy() *HubSource { - if in == nil { - return nil - } - out := new(HubSource) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HubSourceStatus) DeepCopyInto(out *HubSourceStatus) { - *out = *in - out.HubSource = in.HubSource - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HubSourceStatus. -func (in *HubSourceStatus) DeepCopy() *HubSourceStatus { - if in == nil { - return nil - } - out := new(HubSourceStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IBMCloudPlatformSpec) DeepCopyInto(out *IBMCloudPlatformSpec) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMCloudPlatformSpec. -func (in *IBMCloudPlatformSpec) DeepCopy() *IBMCloudPlatformSpec { - if in == nil { - return nil - } - out := new(IBMCloudPlatformSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IBMCloudPlatformStatus) DeepCopyInto(out *IBMCloudPlatformStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMCloudPlatformStatus. -func (in *IBMCloudPlatformStatus) DeepCopy() *IBMCloudPlatformStatus { - if in == nil { - return nil - } - out := new(IBMCloudPlatformStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IdentityProvider) DeepCopyInto(out *IdentityProvider) { - *out = *in - in.IdentityProviderConfig.DeepCopyInto(&out.IdentityProviderConfig) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IdentityProvider. -func (in *IdentityProvider) DeepCopy() *IdentityProvider { - if in == nil { - return nil - } - out := new(IdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IdentityProviderConfig) DeepCopyInto(out *IdentityProviderConfig) { - *out = *in - if in.BasicAuth != nil { - in, out := &in.BasicAuth, &out.BasicAuth - *out = new(BasicAuthIdentityProvider) - **out = **in - } - if in.GitHub != nil { - in, out := &in.GitHub, &out.GitHub - *out = new(GitHubIdentityProvider) - (*in).DeepCopyInto(*out) - } - if in.GitLab != nil { - in, out := &in.GitLab, &out.GitLab - *out = new(GitLabIdentityProvider) - **out = **in - } - if in.Google != nil { - in, out := &in.Google, &out.Google - *out = new(GoogleIdentityProvider) - **out = **in - } - if in.HTPasswd != nil { - in, out := &in.HTPasswd, &out.HTPasswd - *out = new(HTPasswdIdentityProvider) - **out = **in - } - if in.Keystone != nil { - in, out := &in.Keystone, &out.Keystone - *out = new(KeystoneIdentityProvider) - **out = **in - } - if in.LDAP != nil { - in, out := &in.LDAP, &out.LDAP - *out = new(LDAPIdentityProvider) - (*in).DeepCopyInto(*out) - } - if in.OpenID != nil { - in, out := &in.OpenID, &out.OpenID - *out = new(OpenIDIdentityProvider) - (*in).DeepCopyInto(*out) - } - if in.RequestHeader != nil { - in, out := &in.RequestHeader, &out.RequestHeader - *out = new(RequestHeaderIdentityProvider) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IdentityProviderConfig. -func (in *IdentityProviderConfig) DeepCopy() *IdentityProviderConfig { - if in == nil { - return nil - } - out := new(IdentityProviderConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Image) DeepCopyInto(out *Image) { - *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 Image. -func (in *Image) DeepCopy() *Image { - if in == nil { - return nil - } - out := new(Image) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Image) 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 *ImageLabel) DeepCopyInto(out *ImageLabel) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageLabel. -func (in *ImageLabel) DeepCopy() *ImageLabel { - if in == nil { - return nil - } - out := new(ImageLabel) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageList) DeepCopyInto(out *ImageList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Image, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageList. -func (in *ImageList) DeepCopy() *ImageList { - if in == nil { - return nil - } - out := new(ImageList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ImageList) 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 *ImageSpec) DeepCopyInto(out *ImageSpec) { - *out = *in - if in.AllowedRegistriesForImport != nil { - in, out := &in.AllowedRegistriesForImport, &out.AllowedRegistriesForImport - *out = make([]RegistryLocation, len(*in)) - copy(*out, *in) - } - if in.ExternalRegistryHostnames != nil { - in, out := &in.ExternalRegistryHostnames, &out.ExternalRegistryHostnames - *out = make([]string, len(*in)) - copy(*out, *in) - } - out.AdditionalTrustedCA = in.AdditionalTrustedCA - in.RegistrySources.DeepCopyInto(&out.RegistrySources) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSpec. -func (in *ImageSpec) DeepCopy() *ImageSpec { - if in == nil { - return nil - } - out := new(ImageSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageStatus) DeepCopyInto(out *ImageStatus) { - *out = *in - if in.ExternalRegistryHostnames != nil { - in, out := &in.ExternalRegistryHostnames, &out.ExternalRegistryHostnames - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStatus. -func (in *ImageStatus) DeepCopy() *ImageStatus { - if in == nil { - return nil - } - out := new(ImageStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Infrastructure) DeepCopyInto(out *Infrastructure) { - *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 Infrastructure. -func (in *Infrastructure) DeepCopy() *Infrastructure { - if in == nil { - return nil - } - out := new(Infrastructure) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Infrastructure) 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 *InfrastructureList) DeepCopyInto(out *InfrastructureList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Infrastructure, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InfrastructureList. -func (in *InfrastructureList) DeepCopy() *InfrastructureList { - if in == nil { - return nil - } - out := new(InfrastructureList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *InfrastructureList) 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 *InfrastructureSpec) DeepCopyInto(out *InfrastructureSpec) { - *out = *in - out.CloudConfig = in.CloudConfig - in.PlatformSpec.DeepCopyInto(&out.PlatformSpec) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InfrastructureSpec. -func (in *InfrastructureSpec) DeepCopy() *InfrastructureSpec { - if in == nil { - return nil - } - out := new(InfrastructureSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *InfrastructureStatus) DeepCopyInto(out *InfrastructureStatus) { - *out = *in - if in.PlatformStatus != nil { - in, out := &in.PlatformStatus, &out.PlatformStatus - *out = new(PlatformStatus) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InfrastructureStatus. -func (in *InfrastructureStatus) DeepCopy() *InfrastructureStatus { - if in == nil { - return nil - } - out := new(InfrastructureStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Ingress) DeepCopyInto(out *Ingress) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Spec = in.Spec - out.Status = in.Status - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ingress. -func (in *Ingress) DeepCopy() *Ingress { - if in == nil { - return nil - } - out := new(Ingress) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Ingress) 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 *IngressList) DeepCopyInto(out *IngressList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Ingress, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressList. -func (in *IngressList) DeepCopy() *IngressList { - if in == nil { - return nil - } - out := new(IngressList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *IngressList) 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 *IngressSpec) DeepCopyInto(out *IngressSpec) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressSpec. -func (in *IngressSpec) DeepCopy() *IngressSpec { - if in == nil { - return nil - } - out := new(IngressSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IngressStatus) DeepCopyInto(out *IngressStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressStatus. -func (in *IngressStatus) DeepCopy() *IngressStatus { - if in == nil { - return nil - } - out := new(IngressStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IntermediateTLSProfile) DeepCopyInto(out *IntermediateTLSProfile) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IntermediateTLSProfile. -func (in *IntermediateTLSProfile) DeepCopy() *IntermediateTLSProfile { - if in == nil { - return nil - } - out := new(IntermediateTLSProfile) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KeystoneIdentityProvider) DeepCopyInto(out *KeystoneIdentityProvider) { - *out = *in - out.OAuthRemoteConnectionInfo = in.OAuthRemoteConnectionInfo - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeystoneIdentityProvider. -func (in *KeystoneIdentityProvider) DeepCopy() *KeystoneIdentityProvider { - if in == nil { - return nil - } - out := new(KeystoneIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KubeClientConfig) DeepCopyInto(out *KubeClientConfig) { - *out = *in - out.ConnectionOverrides = in.ConnectionOverrides - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeClientConfig. -func (in *KubeClientConfig) DeepCopy() *KubeClientConfig { - if in == nil { - return nil - } - out := new(KubeClientConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LDAPAttributeMapping) DeepCopyInto(out *LDAPAttributeMapping) { - *out = *in - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.PreferredUsername != nil { - in, out := &in.PreferredUsername, &out.PreferredUsername - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Email != nil { - in, out := &in.Email, &out.Email - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LDAPAttributeMapping. -func (in *LDAPAttributeMapping) DeepCopy() *LDAPAttributeMapping { - if in == nil { - return nil - } - out := new(LDAPAttributeMapping) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LDAPIdentityProvider) DeepCopyInto(out *LDAPIdentityProvider) { - *out = *in - out.BindPassword = in.BindPassword - out.CA = in.CA - in.Attributes.DeepCopyInto(&out.Attributes) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LDAPIdentityProvider. -func (in *LDAPIdentityProvider) DeepCopy() *LDAPIdentityProvider { - if in == nil { - return nil - } - out := new(LDAPIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LeaderElection) DeepCopyInto(out *LeaderElection) { - *out = *in - out.LeaseDuration = in.LeaseDuration - out.RenewDeadline = in.RenewDeadline - out.RetryPeriod = in.RetryPeriod - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaderElection. -func (in *LeaderElection) DeepCopy() *LeaderElection { - if in == nil { - return nil - } - out := new(LeaderElection) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ModernTLSProfile) DeepCopyInto(out *ModernTLSProfile) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModernTLSProfile. -func (in *ModernTLSProfile) DeepCopy() *ModernTLSProfile { - if in == nil { - return nil - } - out := new(ModernTLSProfile) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *NamedCertificate) DeepCopyInto(out *NamedCertificate) { - *out = *in - if in.Names != nil { - in, out := &in.Names, &out.Names - *out = make([]string, len(*in)) - copy(*out, *in) - } - out.CertInfo = in.CertInfo - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedCertificate. -func (in *NamedCertificate) DeepCopy() *NamedCertificate { - if in == nil { - return nil - } - out := new(NamedCertificate) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Network) DeepCopyInto(out *Network) { - *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 Network. -func (in *Network) DeepCopy() *Network { - if in == nil { - return nil - } - out := new(Network) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Network) 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 *NetworkList) DeepCopyInto(out *NetworkList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Network, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkList. -func (in *NetworkList) DeepCopy() *NetworkList { - if in == nil { - return nil - } - out := new(NetworkList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *NetworkList) 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 *NetworkSpec) DeepCopyInto(out *NetworkSpec) { - *out = *in - if in.ClusterNetwork != nil { - in, out := &in.ClusterNetwork, &out.ClusterNetwork - *out = make([]ClusterNetworkEntry, len(*in)) - copy(*out, *in) - } - if in.ServiceNetwork != nil { - in, out := &in.ServiceNetwork, &out.ServiceNetwork - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.ExternalIP != nil { - in, out := &in.ExternalIP, &out.ExternalIP - *out = new(ExternalIPConfig) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkSpec. -func (in *NetworkSpec) DeepCopy() *NetworkSpec { - if in == nil { - return nil - } - out := new(NetworkSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *NetworkStatus) DeepCopyInto(out *NetworkStatus) { - *out = *in - if in.ClusterNetwork != nil { - in, out := &in.ClusterNetwork, &out.ClusterNetwork - *out = make([]ClusterNetworkEntry, len(*in)) - copy(*out, *in) - } - if in.ServiceNetwork != nil { - in, out := &in.ServiceNetwork, &out.ServiceNetwork - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkStatus. -func (in *NetworkStatus) DeepCopy() *NetworkStatus { - if in == nil { - return nil - } - out := new(NetworkStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OAuth) DeepCopyInto(out *OAuth) { - *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 OAuth. -func (in *OAuth) DeepCopy() *OAuth { - if in == nil { - return nil - } - out := new(OAuth) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OAuth) 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 *OAuthList) DeepCopyInto(out *OAuthList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]OAuth, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthList. -func (in *OAuthList) DeepCopy() *OAuthList { - if in == nil { - return nil - } - out := new(OAuthList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OAuthList) 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 *OAuthRemoteConnectionInfo) DeepCopyInto(out *OAuthRemoteConnectionInfo) { - *out = *in - out.CA = in.CA - out.TLSClientCert = in.TLSClientCert - out.TLSClientKey = in.TLSClientKey - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthRemoteConnectionInfo. -func (in *OAuthRemoteConnectionInfo) DeepCopy() *OAuthRemoteConnectionInfo { - if in == nil { - return nil - } - out := new(OAuthRemoteConnectionInfo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OAuthSpec) DeepCopyInto(out *OAuthSpec) { - *out = *in - if in.IdentityProviders != nil { - in, out := &in.IdentityProviders, &out.IdentityProviders - *out = make([]IdentityProvider, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - in.TokenConfig.DeepCopyInto(&out.TokenConfig) - out.Templates = in.Templates - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthSpec. -func (in *OAuthSpec) DeepCopy() *OAuthSpec { - if in == nil { - return nil - } - out := new(OAuthSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OAuthStatus) DeepCopyInto(out *OAuthStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthStatus. -func (in *OAuthStatus) DeepCopy() *OAuthStatus { - if in == nil { - return nil - } - out := new(OAuthStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OAuthTemplates) DeepCopyInto(out *OAuthTemplates) { - *out = *in - out.Login = in.Login - out.ProviderSelection = in.ProviderSelection - out.Error = in.Error - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthTemplates. -func (in *OAuthTemplates) DeepCopy() *OAuthTemplates { - if in == nil { - return nil - } - out := new(OAuthTemplates) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ObjectReference) DeepCopyInto(out *ObjectReference) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectReference. -func (in *ObjectReference) DeepCopy() *ObjectReference { - if in == nil { - return nil - } - out := new(ObjectReference) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OldTLSProfile) DeepCopyInto(out *OldTLSProfile) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OldTLSProfile. -func (in *OldTLSProfile) DeepCopy() *OldTLSProfile { - if in == nil { - return nil - } - out := new(OldTLSProfile) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OpenIDClaims) DeepCopyInto(out *OpenIDClaims) { - *out = *in - if in.PreferredUsername != nil { - in, out := &in.PreferredUsername, &out.PreferredUsername - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Email != nil { - in, out := &in.Email, &out.Email - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenIDClaims. -func (in *OpenIDClaims) DeepCopy() *OpenIDClaims { - if in == nil { - return nil - } - out := new(OpenIDClaims) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OpenIDIdentityProvider) DeepCopyInto(out *OpenIDIdentityProvider) { - *out = *in - out.ClientSecret = in.ClientSecret - out.CA = in.CA - if in.ExtraScopes != nil { - in, out := &in.ExtraScopes, &out.ExtraScopes - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.ExtraAuthorizeParameters != nil { - in, out := &in.ExtraAuthorizeParameters, &out.ExtraAuthorizeParameters - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - in.Claims.DeepCopyInto(&out.Claims) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenIDIdentityProvider. -func (in *OpenIDIdentityProvider) DeepCopy() *OpenIDIdentityProvider { - if in == nil { - return nil - } - out := new(OpenIDIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OpenStackPlatformSpec) DeepCopyInto(out *OpenStackPlatformSpec) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackPlatformSpec. -func (in *OpenStackPlatformSpec) DeepCopy() *OpenStackPlatformSpec { - if in == nil { - return nil - } - out := new(OpenStackPlatformSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OpenStackPlatformStatus) DeepCopyInto(out *OpenStackPlatformStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenStackPlatformStatus. -func (in *OpenStackPlatformStatus) DeepCopy() *OpenStackPlatformStatus { - if in == nil { - return nil - } - out := new(OpenStackPlatformStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OperandVersion) DeepCopyInto(out *OperandVersion) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperandVersion. -func (in *OperandVersion) DeepCopy() *OperandVersion { - if in == nil { - return nil - } - out := new(OperandVersion) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OperatorHub) DeepCopyInto(out *OperatorHub) { - *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 OperatorHub. -func (in *OperatorHub) DeepCopy() *OperatorHub { - if in == nil { - return nil - } - out := new(OperatorHub) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OperatorHub) 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 *OperatorHubList) DeepCopyInto(out *OperatorHubList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]OperatorHub, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorHubList. -func (in *OperatorHubList) DeepCopy() *OperatorHubList { - if in == nil { - return nil - } - out := new(OperatorHubList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OperatorHubList) 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 *OperatorHubSpec) DeepCopyInto(out *OperatorHubSpec) { - *out = *in - if in.Sources != nil { - in, out := &in.Sources, &out.Sources - *out = make([]HubSource, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorHubSpec. -func (in *OperatorHubSpec) DeepCopy() *OperatorHubSpec { - if in == nil { - return nil - } - out := new(OperatorHubSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OperatorHubStatus) DeepCopyInto(out *OperatorHubStatus) { - *out = *in - if in.Sources != nil { - in, out := &in.Sources, &out.Sources - *out = make([]HubSourceStatus, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorHubStatus. -func (in *OperatorHubStatus) DeepCopy() *OperatorHubStatus { - if in == nil { - return nil - } - out := new(OperatorHubStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OvirtPlatformSpec) DeepCopyInto(out *OvirtPlatformSpec) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OvirtPlatformSpec. -func (in *OvirtPlatformSpec) DeepCopy() *OvirtPlatformSpec { - if in == nil { - return nil - } - out := new(OvirtPlatformSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OvirtPlatformStatus) DeepCopyInto(out *OvirtPlatformStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OvirtPlatformStatus. -func (in *OvirtPlatformStatus) DeepCopy() *OvirtPlatformStatus { - if in == nil { - return nil - } - out := new(OvirtPlatformStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PlatformSpec) DeepCopyInto(out *PlatformSpec) { - *out = *in - if in.AWS != nil { - in, out := &in.AWS, &out.AWS - *out = new(AWSPlatformSpec) - (*in).DeepCopyInto(*out) - } - if in.Azure != nil { - in, out := &in.Azure, &out.Azure - *out = new(AzurePlatformSpec) - **out = **in - } - if in.GCP != nil { - in, out := &in.GCP, &out.GCP - *out = new(GCPPlatformSpec) - **out = **in - } - if in.BareMetal != nil { - in, out := &in.BareMetal, &out.BareMetal - *out = new(BareMetalPlatformSpec) - **out = **in - } - if in.OpenStack != nil { - in, out := &in.OpenStack, &out.OpenStack - *out = new(OpenStackPlatformSpec) - **out = **in - } - if in.Ovirt != nil { - in, out := &in.Ovirt, &out.Ovirt - *out = new(OvirtPlatformSpec) - **out = **in - } - if in.VSphere != nil { - in, out := &in.VSphere, &out.VSphere - *out = new(VSpherePlatformSpec) - **out = **in - } - if in.IBMCloud != nil { - in, out := &in.IBMCloud, &out.IBMCloud - *out = new(IBMCloudPlatformSpec) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlatformSpec. -func (in *PlatformSpec) DeepCopy() *PlatformSpec { - if in == nil { - return nil - } - out := new(PlatformSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PlatformStatus) DeepCopyInto(out *PlatformStatus) { - *out = *in - if in.AWS != nil { - in, out := &in.AWS, &out.AWS - *out = new(AWSPlatformStatus) - (*in).DeepCopyInto(*out) - } - if in.Azure != nil { - in, out := &in.Azure, &out.Azure - *out = new(AzurePlatformStatus) - **out = **in - } - if in.GCP != nil { - in, out := &in.GCP, &out.GCP - *out = new(GCPPlatformStatus) - **out = **in - } - if in.BareMetal != nil { - in, out := &in.BareMetal, &out.BareMetal - *out = new(BareMetalPlatformStatus) - **out = **in - } - if in.OpenStack != nil { - in, out := &in.OpenStack, &out.OpenStack - *out = new(OpenStackPlatformStatus) - **out = **in - } - if in.Ovirt != nil { - in, out := &in.Ovirt, &out.Ovirt - *out = new(OvirtPlatformStatus) - **out = **in - } - if in.VSphere != nil { - in, out := &in.VSphere, &out.VSphere - *out = new(VSpherePlatformStatus) - **out = **in - } - if in.IBMCloud != nil { - in, out := &in.IBMCloud, &out.IBMCloud - *out = new(IBMCloudPlatformStatus) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlatformStatus. -func (in *PlatformStatus) DeepCopy() *PlatformStatus { - if in == nil { - return nil - } - out := new(PlatformStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Project) DeepCopyInto(out *Project) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Spec = in.Spec - out.Status = in.Status - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Project. -func (in *Project) DeepCopy() *Project { - if in == nil { - return nil - } - out := new(Project) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Project) 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 *ProjectList) DeepCopyInto(out *ProjectList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Project, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectList. -func (in *ProjectList) DeepCopy() *ProjectList { - if in == nil { - return nil - } - out := new(ProjectList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ProjectList) 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 *ProjectSpec) DeepCopyInto(out *ProjectSpec) { - *out = *in - out.ProjectRequestTemplate = in.ProjectRequestTemplate - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectSpec. -func (in *ProjectSpec) DeepCopy() *ProjectSpec { - if in == nil { - return nil - } - out := new(ProjectSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProjectStatus) DeepCopyInto(out *ProjectStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectStatus. -func (in *ProjectStatus) DeepCopy() *ProjectStatus { - if in == nil { - return nil - } - out := new(ProjectStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Proxy) DeepCopyInto(out *Proxy) { - *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 Proxy. -func (in *Proxy) DeepCopy() *Proxy { - if in == nil { - return nil - } - out := new(Proxy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Proxy) 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 *ProxyList) DeepCopyInto(out *ProxyList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Proxy, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyList. -func (in *ProxyList) DeepCopy() *ProxyList { - if in == nil { - return nil - } - out := new(ProxyList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ProxyList) 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 *ProxySpec) DeepCopyInto(out *ProxySpec) { - *out = *in - if in.ReadinessEndpoints != nil { - in, out := &in.ReadinessEndpoints, &out.ReadinessEndpoints - *out = make([]string, len(*in)) - copy(*out, *in) - } - out.TrustedCA = in.TrustedCA - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxySpec. -func (in *ProxySpec) DeepCopy() *ProxySpec { - if in == nil { - return nil - } - out := new(ProxySpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProxyStatus) DeepCopyInto(out *ProxyStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyStatus. -func (in *ProxyStatus) DeepCopy() *ProxyStatus { - if in == nil { - return nil - } - out := new(ProxyStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RegistryLocation) DeepCopyInto(out *RegistryLocation) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistryLocation. -func (in *RegistryLocation) DeepCopy() *RegistryLocation { - if in == nil { - return nil - } - out := new(RegistryLocation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RegistrySources) DeepCopyInto(out *RegistrySources) { - *out = *in - if in.InsecureRegistries != nil { - in, out := &in.InsecureRegistries, &out.InsecureRegistries - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.BlockedRegistries != nil { - in, out := &in.BlockedRegistries, &out.BlockedRegistries - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.AllowedRegistries != nil { - in, out := &in.AllowedRegistries, &out.AllowedRegistries - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistrySources. -func (in *RegistrySources) DeepCopy() *RegistrySources { - if in == nil { - return nil - } - out := new(RegistrySources) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Release) DeepCopyInto(out *Release) { - *out = *in - if in.Channels != nil { - in, out := &in.Channels, &out.Channels - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Release. -func (in *Release) DeepCopy() *Release { - if in == nil { - return nil - } - out := new(Release) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RemoteConnectionInfo) DeepCopyInto(out *RemoteConnectionInfo) { - *out = *in - out.CertInfo = in.CertInfo - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteConnectionInfo. -func (in *RemoteConnectionInfo) DeepCopy() *RemoteConnectionInfo { - if in == nil { - return nil - } - out := new(RemoteConnectionInfo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RequestHeaderIdentityProvider) DeepCopyInto(out *RequestHeaderIdentityProvider) { - *out = *in - out.ClientCA = in.ClientCA - if in.ClientCommonNames != nil { - in, out := &in.ClientCommonNames, &out.ClientCommonNames - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Headers != nil { - in, out := &in.Headers, &out.Headers - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.PreferredUsernameHeaders != nil { - in, out := &in.PreferredUsernameHeaders, &out.PreferredUsernameHeaders - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.NameHeaders != nil { - in, out := &in.NameHeaders, &out.NameHeaders - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.EmailHeaders != nil { - in, out := &in.EmailHeaders, &out.EmailHeaders - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestHeaderIdentityProvider. -func (in *RequestHeaderIdentityProvider) DeepCopy() *RequestHeaderIdentityProvider { - if in == nil { - return nil - } - out := new(RequestHeaderIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Scheduler) DeepCopyInto(out *Scheduler) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Spec = in.Spec - out.Status = in.Status - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scheduler. -func (in *Scheduler) DeepCopy() *Scheduler { - if in == nil { - return nil - } - out := new(Scheduler) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Scheduler) 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 *SchedulerList) DeepCopyInto(out *SchedulerList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Scheduler, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulerList. -func (in *SchedulerList) DeepCopy() *SchedulerList { - if in == nil { - return nil - } - out := new(SchedulerList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *SchedulerList) 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 *SchedulerSpec) DeepCopyInto(out *SchedulerSpec) { - *out = *in - out.Policy = in.Policy - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulerSpec. -func (in *SchedulerSpec) DeepCopy() *SchedulerSpec { - if in == nil { - return nil - } - out := new(SchedulerSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SchedulerStatus) DeepCopyInto(out *SchedulerStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchedulerStatus. -func (in *SchedulerStatus) DeepCopy() *SchedulerStatus { - if in == nil { - return nil - } - out := new(SchedulerStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SecretNameReference) DeepCopyInto(out *SecretNameReference) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretNameReference. -func (in *SecretNameReference) DeepCopy() *SecretNameReference { - if in == nil { - return nil - } - out := new(SecretNameReference) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ServingInfo) DeepCopyInto(out *ServingInfo) { - *out = *in - out.CertInfo = in.CertInfo - if in.NamedCertificates != nil { - in, out := &in.NamedCertificates, &out.NamedCertificates - *out = make([]NamedCertificate, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.CipherSuites != nil { - in, out := &in.CipherSuites, &out.CipherSuites - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServingInfo. -func (in *ServingInfo) DeepCopy() *ServingInfo { - if in == nil { - return nil - } - out := new(ServingInfo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StringSource) DeepCopyInto(out *StringSource) { - *out = *in - out.StringSourceSpec = in.StringSourceSpec - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StringSource. -func (in *StringSource) DeepCopy() *StringSource { - if in == nil { - return nil - } - out := new(StringSource) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StringSourceSpec) DeepCopyInto(out *StringSourceSpec) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StringSourceSpec. -func (in *StringSourceSpec) DeepCopy() *StringSourceSpec { - if in == nil { - return nil - } - out := new(StringSourceSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TLSProfileSpec) DeepCopyInto(out *TLSProfileSpec) { - *out = *in - if in.Ciphers != nil { - in, out := &in.Ciphers, &out.Ciphers - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSProfileSpec. -func (in *TLSProfileSpec) DeepCopy() *TLSProfileSpec { - if in == nil { - return nil - } - out := new(TLSProfileSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TLSSecurityProfile) DeepCopyInto(out *TLSSecurityProfile) { - *out = *in - if in.Old != nil { - in, out := &in.Old, &out.Old - *out = new(OldTLSProfile) - **out = **in - } - if in.Intermediate != nil { - in, out := &in.Intermediate, &out.Intermediate - *out = new(IntermediateTLSProfile) - **out = **in - } - if in.Modern != nil { - in, out := &in.Modern, &out.Modern - *out = new(ModernTLSProfile) - **out = **in - } - if in.Custom != nil { - in, out := &in.Custom, &out.Custom - *out = new(CustomTLSProfile) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSSecurityProfile. -func (in *TLSSecurityProfile) DeepCopy() *TLSSecurityProfile { - if in == nil { - return nil - } - out := new(TLSSecurityProfile) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TemplateReference) DeepCopyInto(out *TemplateReference) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateReference. -func (in *TemplateReference) DeepCopy() *TemplateReference { - if in == nil { - return nil - } - out := new(TemplateReference) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TokenConfig) DeepCopyInto(out *TokenConfig) { - *out = *in - if in.AccessTokenInactivityTimeout != nil { - in, out := &in.AccessTokenInactivityTimeout, &out.AccessTokenInactivityTimeout - *out = new(metav1.Duration) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenConfig. -func (in *TokenConfig) DeepCopy() *TokenConfig { - if in == nil { - return nil - } - out := new(TokenConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Update) DeepCopyInto(out *Update) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Update. -func (in *Update) DeepCopy() *Update { - if in == nil { - return nil - } - out := new(Update) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *UpdateHistory) DeepCopyInto(out *UpdateHistory) { - *out = *in - in.StartedTime.DeepCopyInto(&out.StartedTime) - if in.CompletionTime != nil { - in, out := &in.CompletionTime, &out.CompletionTime - *out = (*in).DeepCopy() - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpdateHistory. -func (in *UpdateHistory) DeepCopy() *UpdateHistory { - if in == nil { - return nil - } - out := new(UpdateHistory) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VSpherePlatformSpec) DeepCopyInto(out *VSpherePlatformSpec) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VSpherePlatformSpec. -func (in *VSpherePlatformSpec) DeepCopy() *VSpherePlatformSpec { - if in == nil { - return nil - } - out := new(VSpherePlatformSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VSpherePlatformStatus) DeepCopyInto(out *VSpherePlatformStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VSpherePlatformStatus. -func (in *VSpherePlatformStatus) DeepCopy() *VSpherePlatformStatus { - if in == nil { - return nil - } - out := new(VSpherePlatformStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WebhookTokenAuthenticator) DeepCopyInto(out *WebhookTokenAuthenticator) { - *out = *in - out.KubeConfig = in.KubeConfig - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhookTokenAuthenticator. -func (in *WebhookTokenAuthenticator) DeepCopy() *WebhookTokenAuthenticator { - if in == nil { - return nil - } - out := new(WebhookTokenAuthenticator) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go deleted file mode 100644 index 72d3bb2cfd6dc..0000000000000 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go +++ /dev/null @@ -1,1450 +0,0 @@ -package v1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE -var map_AdmissionConfig = map[string]string{ - "enabledPlugins": "enabledPlugins is a list of admission plugins that must be on in addition to the default list. Some admission plugins are disabled by default, but certain configurations require them. This is fairly uncommon and can result in performance penalties and unexpected behavior.", - "disabledPlugins": "disabledPlugins is a list of admission plugins that must be off. Putting something in this list is almost always a mistake and likely to result in cluster instability.", -} - -func (AdmissionConfig) SwaggerDoc() map[string]string { - return map_AdmissionConfig -} - -var map_AdmissionPluginConfig = map[string]string{ - "": "AdmissionPluginConfig holds the necessary configuration options for admission plugins", - "location": "Location is the path to a configuration file that contains the plugin's configuration", - "configuration": "Configuration is an embedded configuration object to be used as the plugin's configuration. If present, it will be used instead of the path to the configuration file.", -} - -func (AdmissionPluginConfig) SwaggerDoc() map[string]string { - return map_AdmissionPluginConfig -} - -var map_AuditConfig = map[string]string{ - "": "AuditConfig holds configuration for the audit capabilities", - "enabled": "If this flag is set, audit log will be printed in the logs. The logs contains, method, user and a requested URL.", - "auditFilePath": "All requests coming to the apiserver will be logged to this file.", - "maximumFileRetentionDays": "Maximum number of days to retain old log files based on the timestamp encoded in their filename.", - "maximumRetainedFiles": "Maximum number of old log files to retain.", - "maximumFileSizeMegabytes": "Maximum size in megabytes of the log file before it gets rotated. Defaults to 100MB.", - "policyFile": "PolicyFile is a path to the file that defines the audit policy configuration.", - "policyConfiguration": "PolicyConfiguration is an embedded policy configuration object to be used as the audit policy configuration. If present, it will be used instead of the path to the policy file.", - "logFormat": "Format of saved audits (legacy or json).", - "webHookKubeConfig": "Path to a .kubeconfig formatted file that defines the audit webhook configuration.", - "webHookMode": "Strategy for sending audit events (block or batch).", -} - -func (AuditConfig) SwaggerDoc() map[string]string { - return map_AuditConfig -} - -var map_CertInfo = map[string]string{ - "": "CertInfo relates a certificate with a private key", - "certFile": "CertFile is a file containing a PEM-encoded certificate", - "keyFile": "KeyFile is a file containing a PEM-encoded private key for the certificate specified by CertFile", -} - -func (CertInfo) SwaggerDoc() map[string]string { - return map_CertInfo -} - -var map_ClientConnectionOverrides = map[string]string{ - "acceptContentTypes": "acceptContentTypes defines the Accept header sent by clients when connecting to a server, overriding the default value of 'application/json'. This field will control all connections to the server used by a particular client.", - "contentType": "contentType is the content type used when sending data to the server from this client.", - "qps": "qps controls the number of queries per second allowed for this connection.", - "burst": "burst allows extra queries to accumulate when a client is exceeding its rate.", -} - -func (ClientConnectionOverrides) SwaggerDoc() map[string]string { - return map_ClientConnectionOverrides -} - -var map_ConfigMapFileReference = map[string]string{ - "": "ConfigMapFileReference references a config map in a specific namespace. The namespace must be specified at the point of use.", - "key": "Key allows pointing to a specific key/value inside of the configmap. This is useful for logical file references.", -} - -func (ConfigMapFileReference) SwaggerDoc() map[string]string { - return map_ConfigMapFileReference -} - -var map_ConfigMapNameReference = map[string]string{ - "": "ConfigMapNameReference references a config map in a specific namespace. The namespace must be specified at the point of use.", - "name": "name is the metadata.name of the referenced config map", -} - -func (ConfigMapNameReference) SwaggerDoc() map[string]string { - return map_ConfigMapNameReference -} - -var map_DelegatedAuthentication = map[string]string{ - "": "DelegatedAuthentication allows authentication to be disabled.", - "disabled": "disabled indicates that authentication should be disabled. By default it will use delegated authentication.", -} - -func (DelegatedAuthentication) SwaggerDoc() map[string]string { - return map_DelegatedAuthentication -} - -var map_DelegatedAuthorization = map[string]string{ - "": "DelegatedAuthorization allows authorization to be disabled.", - "disabled": "disabled indicates that authorization should be disabled. By default it will use delegated authorization.", -} - -func (DelegatedAuthorization) SwaggerDoc() map[string]string { - return map_DelegatedAuthorization -} - -var map_EtcdConnectionInfo = map[string]string{ - "": "EtcdConnectionInfo holds information necessary for connecting to an etcd server", - "urls": "URLs are the URLs for etcd", - "ca": "CA is a file containing trusted roots for the etcd server certificates", -} - -func (EtcdConnectionInfo) SwaggerDoc() map[string]string { - return map_EtcdConnectionInfo -} - -var map_EtcdStorageConfig = map[string]string{ - "storagePrefix": "StoragePrefix is the path within etcd that the OpenShift resources will be rooted under. This value, if changed, will mean existing objects in etcd will no longer be located.", -} - -func (EtcdStorageConfig) SwaggerDoc() map[string]string { - return map_EtcdStorageConfig -} - -var map_GenericAPIServerConfig = map[string]string{ - "": "GenericAPIServerConfig is an inline-able struct for aggregated apiservers that need to store data in etcd", - "servingInfo": "servingInfo describes how to start serving", - "corsAllowedOrigins": "corsAllowedOrigins", - "auditConfig": "auditConfig describes how to configure audit information", - "storageConfig": "storageConfig contains information about how to use", - "admission": "admissionConfig holds information about how to configure admission.", -} - -func (GenericAPIServerConfig) SwaggerDoc() map[string]string { - return map_GenericAPIServerConfig -} - -var map_GenericControllerConfig = map[string]string{ - "": "GenericControllerConfig provides information to configure a controller", - "servingInfo": "ServingInfo is the HTTP serving information for the controller's endpoints", - "leaderElection": "leaderElection provides information to elect a leader. Only override this if you have a specific need", - "authentication": "authentication allows configuration of authentication for the endpoints", - "authorization": "authorization allows configuration of authentication for the endpoints", -} - -func (GenericControllerConfig) SwaggerDoc() map[string]string { - return map_GenericControllerConfig -} - -var map_HTTPServingInfo = map[string]string{ - "": "HTTPServingInfo holds configuration for serving HTTP", - "maxRequestsInFlight": "MaxRequestsInFlight is the number of concurrent requests allowed to the server. If zero, no limit.", - "requestTimeoutSeconds": "RequestTimeoutSeconds is the number of seconds before requests are timed out. The default is 60 minutes, if -1 there is no limit on requests.", -} - -func (HTTPServingInfo) SwaggerDoc() map[string]string { - return map_HTTPServingInfo -} - -var map_KubeClientConfig = map[string]string{ - "kubeConfig": "kubeConfig is a .kubeconfig filename for going to the owning kube-apiserver. Empty uses an in-cluster-config", - "connectionOverrides": "connectionOverrides specifies client overrides for system components to loop back to this master.", -} - -func (KubeClientConfig) SwaggerDoc() map[string]string { - return map_KubeClientConfig -} - -var map_LeaderElection = map[string]string{ - "": "LeaderElection provides information to elect a leader", - "disable": "disable allows leader election to be suspended while allowing a fully defaulted \"normal\" startup case.", - "namespace": "namespace indicates which namespace the resource is in", - "name": "name indicates what name to use for the resource", - "leaseDuration": "leaseDuration is the duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. This is only applicable if leader election is enabled.", - "renewDeadline": "renewDeadline is the interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. This is only applicable if leader election is enabled.", - "retryPeriod": "retryPeriod is the duration the clients should wait between attempting acquisition and renewal of a leadership. This is only applicable if leader election is enabled.", -} - -func (LeaderElection) SwaggerDoc() map[string]string { - return map_LeaderElection -} - -var map_NamedCertificate = map[string]string{ - "": "NamedCertificate specifies a certificate/key, and the names it should be served for", - "names": "Names is a list of DNS names this certificate should be used to secure A name can be a normal DNS name, or can contain leading wildcard segments.", -} - -func (NamedCertificate) SwaggerDoc() map[string]string { - return map_NamedCertificate -} - -var map_RemoteConnectionInfo = map[string]string{ - "": "RemoteConnectionInfo holds information necessary for establishing a remote connection", - "url": "URL is the remote URL to connect to", - "ca": "CA is the CA for verifying TLS connections", -} - -func (RemoteConnectionInfo) SwaggerDoc() map[string]string { - return map_RemoteConnectionInfo -} - -var map_SecretNameReference = map[string]string{ - "": "SecretNameReference references a secret in a specific namespace. The namespace must be specified at the point of use.", - "name": "name is the metadata.name of the referenced secret", -} - -func (SecretNameReference) SwaggerDoc() map[string]string { - return map_SecretNameReference -} - -var map_ServingInfo = map[string]string{ - "": "ServingInfo holds information about serving web pages", - "bindAddress": "BindAddress is the ip:port to serve on", - "bindNetwork": "BindNetwork is the type of network to bind to - defaults to \"tcp4\", accepts \"tcp\", \"tcp4\", and \"tcp6\"", - "clientCA": "ClientCA is the certificate bundle for all the signers that you'll recognize for incoming client certificates", - "namedCertificates": "NamedCertificates is a list of certificates to use to secure requests to specific hostnames", - "minTLSVersion": "MinTLSVersion is the minimum TLS version supported. Values must match version names from https://golang.org/pkg/crypto/tls/#pkg-constants", - "cipherSuites": "CipherSuites contains an overridden list of ciphers for the server to support. Values must match cipher suite IDs from https://golang.org/pkg/crypto/tls/#pkg-constants", -} - -func (ServingInfo) SwaggerDoc() map[string]string { - return map_ServingInfo -} - -var map_StringSource = map[string]string{ - "": "StringSource allows specifying a string inline, or externally via env var or file. When it contains only a string value, it marshals to a simple JSON string.", -} - -func (StringSource) SwaggerDoc() map[string]string { - return map_StringSource -} - -var map_StringSourceSpec = map[string]string{ - "": "StringSourceSpec specifies a string value, or external location", - "value": "Value specifies the cleartext value, or an encrypted value if keyFile is specified.", - "env": "Env specifies an envvar containing the cleartext value, or an encrypted value if the keyFile is specified.", - "file": "File references a file containing the cleartext value, or an encrypted value if a keyFile is specified.", - "keyFile": "KeyFile references a file containing the key to use to decrypt the value.", -} - -func (StringSourceSpec) SwaggerDoc() map[string]string { - return map_StringSourceSpec -} - -var map_APIServer = map[string]string{ - "": "APIServer holds configuration (like serving certificates, client CA and CORS domains) shared by all API servers in the system, among them especially kube-apiserver and openshift-apiserver. The canonical name of an instance is 'cluster'.", - "spec": "spec holds user settable values for configuration", - "status": "status holds observed values from the cluster. They may not be overridden.", -} - -func (APIServer) SwaggerDoc() map[string]string { - return map_APIServer -} - -var map_APIServerEncryption = map[string]string{ - "type": "type defines what encryption type should be used to encrypt resources at the datastore layer. When this field is unset (i.e. when it is set to the empty string), identity is implied. The behavior of unset can and will change over time. Even if encryption is enabled by default, the meaning of unset may change to a different encryption type based on changes in best practices.\n\nWhen encryption is enabled, all sensitive resources shipped with the platform are encrypted. This list of sensitive resources can and will change over time. The current authoritative list is:\n\n 1. secrets\n 2. configmaps\n 3. routes.route.openshift.io\n 4. oauthaccesstokens.oauth.openshift.io\n 5. oauthauthorizetokens.oauth.openshift.io", -} - -func (APIServerEncryption) SwaggerDoc() map[string]string { - return map_APIServerEncryption -} - -var map_APIServerNamedServingCert = map[string]string{ - "": "APIServerNamedServingCert maps a server DNS name, as understood by a client, to a certificate.", - "names": "names is a optional list of explicit DNS names (leading wildcards allowed) that should use this certificate to serve secure traffic. If no names are provided, the implicit names will be extracted from the certificates. Exact names trump over wildcard names. Explicit names defined here trump over extracted implicit names.", - "servingCertificate": "servingCertificate references a kubernetes.io/tls type secret containing the TLS cert info for serving secure traffic. The secret must exist in the openshift-config namespace and contain the following required fields: - Secret.Data[\"tls.key\"] - TLS private key. - Secret.Data[\"tls.crt\"] - TLS certificate.", -} - -func (APIServerNamedServingCert) SwaggerDoc() map[string]string { - return map_APIServerNamedServingCert -} - -var map_APIServerServingCerts = map[string]string{ - "namedCertificates": "namedCertificates references secrets containing the TLS cert info for serving secure traffic to specific hostnames. If no named certificates are provided, or no named certificates match the server name as understood by a client, the defaultServingCertificate will be used.", -} - -func (APIServerServingCerts) SwaggerDoc() map[string]string { - return map_APIServerServingCerts -} - -var map_APIServerSpec = map[string]string{ - "servingCerts": "servingCert is the TLS cert info for serving secure traffic. If not specified, operator managed certificates will be used for serving secure traffic.", - "clientCA": "clientCA references a ConfigMap containing a certificate bundle for the signers that will be recognized for incoming client certificates in addition to the operator managed signers. If this is empty, then only operator managed signers are valid. You usually only have to set this if you have your own PKI you wish to honor client certificates from. The ConfigMap must exist in the openshift-config namespace and contain the following required fields: - ConfigMap.Data[\"ca-bundle.crt\"] - CA bundle.", - "additionalCORSAllowedOrigins": "additionalCORSAllowedOrigins lists additional, user-defined regular expressions describing hosts for which the API server allows access using the CORS headers. This may be needed to access the API and the integrated OAuth server from JavaScript applications. The values are regular expressions that correspond to the Golang regular expression language.", - "encryption": "encryption allows the configuration of encryption of resources at the datastore layer.", - "tlsSecurityProfile": "tlsSecurityProfile specifies settings for TLS connections for externally exposed servers.\n\nIf unset, a default (which may change between releases) is chosen. Note that only Old and Intermediate profiles are currently supported, and the maximum available MinTLSVersions is VersionTLS12.", - "audit": "audit specifies the settings for audit configuration to be applied to all OpenShift-provided API servers in the cluster.", -} - -func (APIServerSpec) SwaggerDoc() map[string]string { - return map_APIServerSpec -} - -var map_Audit = map[string]string{ - "profile": "profile specifies the name of the desired audit policy configuration to be deployed to all OpenShift-provided API servers in the cluster.\n\nThe following profiles are provided: - Default: the existing default policy. - WriteRequestBodies: like 'Default', but logs request and response HTTP payloads for write requests (create, update, patch). - AllRequestBodies: like 'WriteRequestBodies', but also logs request and response HTTP payloads for read requests (get, list).\n\nIf unset, the 'Default' profile is used as the default.", -} - -func (Audit) SwaggerDoc() map[string]string { - return map_Audit -} - -var map_Authentication = map[string]string{ - "": "Authentication specifies cluster-wide settings for authentication (like OAuth and webhook token authenticators). The canonical name of an instance is `cluster`.", - "spec": "spec holds user settable values for configuration", - "status": "status holds observed values from the cluster. They may not be overridden.", -} - -func (Authentication) SwaggerDoc() map[string]string { - return map_Authentication -} - -var map_AuthenticationSpec = map[string]string{ - "type": "type identifies the cluster managed, user facing authentication mode in use. Specifically, it manages the component that responds to login attempts. The default is IntegratedOAuth.", - "oauthMetadata": "oauthMetadata contains the discovery endpoint data for OAuth 2.0 Authorization Server Metadata for an external OAuth server. This discovery document can be viewed from its served location: oc get --raw '/.well-known/oauth-authorization-server' For further details, see the IETF Draft: https://tools.ietf.org/html/draft-ietf-oauth-discovery-04#section-2 If oauthMetadata.name is non-empty, this value has precedence over any metadata reference stored in status. The key \"oauthMetadata\" is used to locate the data. If specified and the config map or expected key is not found, no metadata is served. If the specified metadata is not valid, no metadata is served. The namespace for this config map is openshift-config.", - "webhookTokenAuthenticators": "webhookTokenAuthenticators is DEPRECATED, setting it has no effect.", - "webhookTokenAuthenticator": "webhookTokenAuthenticator configures a remote token reviewer. These remote authentication webhooks can be used to verify bearer tokens via the tokenreviews.authentication.k8s.io REST API. This is required to honor bearer tokens that are provisioned by an external authentication service.", - "serviceAccountIssuer": "serviceAccountIssuer is the identifier of the bound service account token issuer. The default is https://kubernetes.default.svc", -} - -func (AuthenticationSpec) SwaggerDoc() map[string]string { - return map_AuthenticationSpec -} - -var map_AuthenticationStatus = map[string]string{ - "integratedOAuthMetadata": "integratedOAuthMetadata contains the discovery endpoint data for OAuth 2.0 Authorization Server Metadata for the in-cluster integrated OAuth server. This discovery document can be viewed from its served location: oc get --raw '/.well-known/oauth-authorization-server' For further details, see the IETF Draft: https://tools.ietf.org/html/draft-ietf-oauth-discovery-04#section-2 This contains the observed value based on cluster state. An explicitly set value in spec.oauthMetadata has precedence over this field. This field has no meaning if authentication spec.type is not set to IntegratedOAuth. The key \"oauthMetadata\" is used to locate the data. If the config map or expected key is not found, no metadata is served. If the specified metadata is not valid, no metadata is served. The namespace for this config map is openshift-config-managed.", -} - -func (AuthenticationStatus) SwaggerDoc() map[string]string { - return map_AuthenticationStatus -} - -var map_DeprecatedWebhookTokenAuthenticator = map[string]string{ - "": "deprecatedWebhookTokenAuthenticator holds the necessary configuration options for a remote token authenticator. It's the same as WebhookTokenAuthenticator but it's missing the 'required' validation on KubeConfig field.", - "kubeConfig": "kubeConfig contains kube config file data which describes how to access the remote webhook service. For further details, see: https://kubernetes.io/docs/reference/access-authn-authz/authentication/#webhook-token-authentication The key \"kubeConfig\" is used to locate the data. If the secret or expected key is not found, the webhook is not honored. If the specified kube config data is not valid, the webhook is not honored. The namespace for this secret is determined by the point of use.", -} - -func (DeprecatedWebhookTokenAuthenticator) SwaggerDoc() map[string]string { - return map_DeprecatedWebhookTokenAuthenticator -} - -var map_WebhookTokenAuthenticator = map[string]string{ - "": "webhookTokenAuthenticator holds the necessary configuration options for a remote token authenticator", - "kubeConfig": "kubeConfig references a secret that contains kube config file data which describes how to access the remote webhook service. The namespace for the referenced secret is openshift-config.\n\nFor further details, see:\n\nhttps://kubernetes.io/docs/reference/access-authn-authz/authentication/#webhook-token-authentication\n\nThe key \"kubeConfig\" is used to locate the data. If the secret or expected key is not found, the webhook is not honored. If the specified kube config data is not valid, the webhook is not honored.", -} - -func (WebhookTokenAuthenticator) SwaggerDoc() map[string]string { - return map_WebhookTokenAuthenticator -} - -var map_Build = map[string]string{ - "": "Build configures the behavior of OpenShift builds for the entire cluster. This includes default settings that can be overridden in BuildConfig objects, and overrides which are applied to all builds.\n\nThe canonical name is \"cluster\"", - "spec": "Spec holds user-settable values for the build controller configuration", -} - -func (Build) SwaggerDoc() map[string]string { - return map_Build -} - -var map_BuildDefaults = map[string]string{ - "defaultProxy": "DefaultProxy contains the default proxy settings for all build operations, including image pull/push and source download.\n\nValues can be overrode by setting the `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY` environment variables in the build config's strategy.", - "gitProxy": "GitProxy contains the proxy settings for git operations only. If set, this will override any Proxy settings for all git commands, such as git clone.\n\nValues that are not set here will be inherited from DefaultProxy.", - "env": "Env is a set of default environment variables that will be applied to the build if the specified variables do not exist on the build", - "imageLabels": "ImageLabels is a list of docker labels that are applied to the resulting image. User can override a default label by providing a label with the same name in their Build/BuildConfig.", - "resources": "Resources defines resource requirements to execute the build.", -} - -func (BuildDefaults) SwaggerDoc() map[string]string { - return map_BuildDefaults -} - -var map_BuildOverrides = map[string]string{ - "imageLabels": "ImageLabels is a list of docker labels that are applied to the resulting image. If user provided a label in their Build/BuildConfig with the same name as one in this list, the user's label will be overwritten.", - "nodeSelector": "NodeSelector is a selector which must be true for the build pod to fit on a node", - "tolerations": "Tolerations is a list of Tolerations that will override any existing tolerations set on a build pod.", - "forcePull": "ForcePull overrides, if set, the equivalent value in the builds, i.e. false disables force pull for all builds, true enables force pull for all builds, independently of what each build specifies itself", -} - -func (BuildOverrides) SwaggerDoc() map[string]string { - return map_BuildOverrides -} - -var map_BuildSpec = map[string]string{ - "additionalTrustedCA": "AdditionalTrustedCA is a reference to a ConfigMap containing additional CAs that should be trusted for image pushes and pulls during builds. The namespace for this config map is openshift-config.\n\nDEPRECATED: Additional CAs for image pull and push should be set on image.config.openshift.io/cluster instead.", - "buildDefaults": "BuildDefaults controls the default information for Builds", - "buildOverrides": "BuildOverrides controls override settings for builds", -} - -func (BuildSpec) SwaggerDoc() map[string]string { - return map_BuildSpec -} - -var map_ImageLabel = map[string]string{ - "name": "Name defines the name of the label. It must have non-zero length.", - "value": "Value defines the literal value of the label.", -} - -func (ImageLabel) SwaggerDoc() map[string]string { - return map_ImageLabel -} - -var map_ClusterOperator = map[string]string{ - "": "ClusterOperator is the Custom Resource object which holds the current state of an operator. This object is used by operators to convey their state to the rest of the cluster.", - "spec": "spec holds configuration that could apply to any operator.", - "status": "status holds the information about the state of an operator. It is consistent with status information across the Kubernetes ecosystem.", -} - -func (ClusterOperator) SwaggerDoc() map[string]string { - return map_ClusterOperator -} - -var map_ClusterOperatorList = map[string]string{ - "": "ClusterOperatorList is a list of OperatorStatus resources.", -} - -func (ClusterOperatorList) SwaggerDoc() map[string]string { - return map_ClusterOperatorList -} - -var map_ClusterOperatorSpec = map[string]string{ - "": "ClusterOperatorSpec is empty for now, but you could imagine holding information like \"pause\".", -} - -func (ClusterOperatorSpec) SwaggerDoc() map[string]string { - return map_ClusterOperatorSpec -} - -var map_ClusterOperatorStatus = map[string]string{ - "": "ClusterOperatorStatus provides information about the status of the operator.", - "conditions": "conditions describes the state of the operator's managed and monitored components.", - "versions": "versions is a slice of operator and operand version tuples. Operators which manage multiple operands will have multiple operand entries in the array. Available operators must report the version of the operator itself with the name \"operator\". An operator reports a new \"operator\" version when it has rolled out the new version to all of its operands.", - "relatedObjects": "relatedObjects is a list of objects that are \"interesting\" or related to this operator. Common uses are: 1. the detailed resource driving the operator 2. operator namespaces 3. operand namespaces", - "extension": "extension contains any additional status information specific to the operator which owns this status object.", -} - -func (ClusterOperatorStatus) SwaggerDoc() map[string]string { - return map_ClusterOperatorStatus -} - -var map_ClusterOperatorStatusCondition = map[string]string{ - "": "ClusterOperatorStatusCondition represents the state of the operator's managed and monitored components.", - "type": "type specifies the aspect reported by this condition.", - "status": "status of the condition, one of True, False, Unknown.", - "lastTransitionTime": "lastTransitionTime is the time of the last update to the current status property.", - "reason": "reason is the CamelCase reason for the condition's current status.", - "message": "message provides additional information about the current condition. This is only to be consumed by humans.", -} - -func (ClusterOperatorStatusCondition) SwaggerDoc() map[string]string { - return map_ClusterOperatorStatusCondition -} - -var map_ObjectReference = map[string]string{ - "": "ObjectReference contains enough information to let you inspect or modify the referred object.", - "group": "group of the referent.", - "resource": "resource of the referent.", - "namespace": "namespace of the referent.", - "name": "name of the referent.", -} - -func (ObjectReference) SwaggerDoc() map[string]string { - return map_ObjectReference -} - -var map_OperandVersion = map[string]string{ - "name": "name is the name of the particular operand this version is for. It usually matches container images, not operators.", - "version": "version indicates which version of a particular operand is currently being managed. It must always match the Available operand. If 1.0.0 is Available, then this must indicate 1.0.0 even if the operator is trying to rollout 1.1.0", -} - -func (OperandVersion) SwaggerDoc() map[string]string { - return map_OperandVersion -} - -var map_ClusterVersion = map[string]string{ - "": "ClusterVersion is the configuration for the ClusterVersionOperator. This is where parameters related to automatic updates can be set.", - "spec": "spec is the desired state of the cluster version - the operator will work to ensure that the desired version is applied to the cluster.", - "status": "status contains information about the available updates and any in-progress updates.", -} - -func (ClusterVersion) SwaggerDoc() map[string]string { - return map_ClusterVersion -} - -var map_ClusterVersionList = map[string]string{ - "": "ClusterVersionList is a list of ClusterVersion resources.", -} - -func (ClusterVersionList) SwaggerDoc() map[string]string { - return map_ClusterVersionList -} - -var map_ClusterVersionSpec = map[string]string{ - "": "ClusterVersionSpec is the desired version state of the cluster. It includes the version the cluster should be at, how the cluster is identified, and where the cluster should look for version updates.", - "clusterID": "clusterID uniquely identifies this cluster. This is expected to be an RFC4122 UUID value (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx in hexadecimal values). This is a required field.", - "desiredUpdate": "desiredUpdate is an optional field that indicates the desired value of the cluster version. Setting this value will trigger an upgrade (if the current version does not match the desired version). The set of recommended update values is listed as part of available updates in status, and setting values outside that range may cause the upgrade to fail. You may specify the version field without setting image if an update exists with that version in the availableUpdates or history.\n\nIf an upgrade fails the operator will halt and report status about the failing component. Setting the desired update value back to the previous version will cause a rollback to be attempted. Not all rollbacks will succeed.", - "upstream": "upstream may be used to specify the preferred update server. By default it will use the appropriate update server for the cluster and region.", - "channel": "channel is an identifier for explicitly requesting that a non-default set of updates be applied to this cluster. The default channel will be contain stable updates that are appropriate for production clusters.", - "overrides": "overrides is list of overides for components that are managed by cluster version operator. Marking a component unmanaged will prevent the operator from creating or updating the object.", -} - -func (ClusterVersionSpec) SwaggerDoc() map[string]string { - return map_ClusterVersionSpec -} - -var map_ClusterVersionStatus = map[string]string{ - "": "ClusterVersionStatus reports the status of the cluster versioning, including any upgrades that are in progress. The current field will be set to whichever version the cluster is reconciling to, and the conditions array will report whether the update succeeded, is in progress, or is failing.", - "desired": "desired is the version that the cluster is reconciling towards. If the cluster is not yet fully initialized desired will be set with the information available, which may be an image or a tag.", - "history": "history contains a list of the most recent versions applied to the cluster. This value may be empty during cluster startup, and then will be updated when a new update is being applied. The newest update is first in the list and it is ordered by recency. Updates in the history have state Completed if the rollout completed - if an update was failing or halfway applied the state will be Partial. Only a limited amount of update history is preserved.", - "observedGeneration": "observedGeneration reports which version of the spec is being synced. If this value is not equal to metadata.generation, then the desired and conditions fields may represent a previous version.", - "versionHash": "versionHash is a fingerprint of the content that the cluster will be updated with. It is used by the operator to avoid unnecessary work and is for internal use only.", - "conditions": "conditions provides information about the cluster version. The condition \"Available\" is set to true if the desiredUpdate has been reached. The condition \"Progressing\" is set to true if an update is being applied. The condition \"Degraded\" is set to true if an update is currently blocked by a temporary or permanent error. Conditions are only valid for the current desiredUpdate when metadata.generation is equal to status.generation.", - "availableUpdates": "availableUpdates contains the list of updates that are appropriate for this cluster. This list may be empty if no updates are recommended, if the update service is unavailable, or if an invalid channel has been specified.", -} - -func (ClusterVersionStatus) SwaggerDoc() map[string]string { - return map_ClusterVersionStatus -} - -var map_ComponentOverride = map[string]string{ - "": "ComponentOverride allows overriding cluster version operator's behavior for a component.", - "kind": "kind indentifies which object to override.", - "group": "group identifies the API group that the kind is in.", - "namespace": "namespace is the component's namespace. If the resource is cluster scoped, the namespace should be empty.", - "name": "name is the component's name.", - "unmanaged": "unmanaged controls if cluster version operator should stop managing the resources in this cluster. Default: false", -} - -func (ComponentOverride) SwaggerDoc() map[string]string { - return map_ComponentOverride -} - -var map_Release = map[string]string{ - "": "Release represents an OpenShift release image and associated metadata.", - "version": "version is a semantic versioning identifying the update version. When this field is part of spec, version is optional if image is specified.", - "image": "image is a container image location that contains the update. When this field is part of spec, image is optional if version is specified and the availableUpdates field contains a matching version.", - "url": "url contains information about this release. This URL is set by the 'url' metadata property on a release or the metadata returned by the update API and should be displayed as a link in user interfaces. The URL field may not be set for test or nightly releases.", - "channels": "channels is the set of Cincinnati channels to which the release currently belongs.", -} - -func (Release) SwaggerDoc() map[string]string { - return map_Release -} - -var map_Update = map[string]string{ - "": "Update represents an administrator update request.", - "version": "version is a semantic versioning identifying the update version. When this field is part of spec, version is optional if image is specified.", - "image": "image is a container image location that contains the update. When this field is part of spec, image is optional if version is specified and the availableUpdates field contains a matching version.", - "force": "force allows an administrator to update to an image that has failed verification, does not appear in the availableUpdates list, or otherwise would be blocked by normal protections on update. This option should only be used when the authenticity of the provided image has been verified out of band because the provided image will run with full administrative access to the cluster. Do not use this flag with images that comes from unknown or potentially malicious sources.\n\nThis flag does not override other forms of consistency checking that are required before a new update is deployed.", -} - -func (Update) SwaggerDoc() map[string]string { - return map_Update -} - -var map_UpdateHistory = map[string]string{ - "": "UpdateHistory is a single attempted update to the cluster.", - "state": "state reflects whether the update was fully applied. The Partial state indicates the update is not fully applied, while the Completed state indicates the update was successfully rolled out at least once (all parts of the update successfully applied).", - "startedTime": "startedTime is the time at which the update was started.", - "completionTime": "completionTime, if set, is when the update was fully applied. The update that is currently being applied will have a null completion time. Completion time will always be set for entries that are not the current update (usually to the started time of the next update).", - "version": "version is a semantic versioning identifying the update version. If the requested image does not define a version, or if a failure occurs retrieving the image, this value may be empty.", - "image": "image is a container image location that contains the update. This value is always populated.", - "verified": "verified indicates whether the provided update was properly verified before it was installed. If this is false the cluster may not be trusted.", -} - -func (UpdateHistory) SwaggerDoc() map[string]string { - return map_UpdateHistory -} - -var map_Console = map[string]string{ - "": "Console holds cluster-wide configuration for the web console, including the logout URL, and reports the public URL of the console. The canonical name is `cluster`.", - "spec": "spec holds user settable values for configuration", - "status": "status holds observed values from the cluster. They may not be overridden.", -} - -func (Console) SwaggerDoc() map[string]string { - return map_Console -} - -var map_ConsoleAuthentication = map[string]string{ - "": "ConsoleAuthentication defines a list of optional configuration for console authentication.", - "logoutRedirect": "An optional, absolute URL to redirect web browsers to after logging out of the console. If not specified, it will redirect to the default login page. This is required when using an identity provider that supports single sign-on (SSO) such as: - OpenID (Keycloak, Azure) - RequestHeader (GSSAPI, SSPI, SAML) - OAuth (GitHub, GitLab, Google) Logging out of the console will destroy the user's token. The logoutRedirect provides the user the option to perform single logout (SLO) through the identity provider to destroy their single sign-on session.", -} - -func (ConsoleAuthentication) SwaggerDoc() map[string]string { - return map_ConsoleAuthentication -} - -var map_ConsoleSpec = map[string]string{ - "": "ConsoleSpec is the specification of the desired behavior of the Console.", -} - -func (ConsoleSpec) SwaggerDoc() map[string]string { - return map_ConsoleSpec -} - -var map_ConsoleStatus = map[string]string{ - "": "ConsoleStatus defines the observed status of the Console.", - "consoleURL": "The URL for the console. This will be derived from the host for the route that is created for the console.", -} - -func (ConsoleStatus) SwaggerDoc() map[string]string { - return map_ConsoleStatus -} - -var map_DNS = map[string]string{ - "": "DNS holds cluster-wide information about DNS. The canonical name is `cluster`", - "spec": "spec holds user settable values for configuration", - "status": "status holds observed values from the cluster. They may not be overridden.", -} - -func (DNS) SwaggerDoc() map[string]string { - return map_DNS -} - -var map_DNSSpec = map[string]string{ - "baseDomain": "baseDomain is the base domain of the cluster. All managed DNS records will be sub-domains of this base.\n\nFor example, given the base domain `openshift.example.com`, an API server DNS record may be created for `cluster-api.openshift.example.com`.\n\nOnce set, this field cannot be changed.", - "publicZone": "publicZone is the location where all the DNS records that are publicly accessible to the internet exist.\n\nIf this field is nil, no public records should be created.\n\nOnce set, this field cannot be changed.", - "privateZone": "privateZone is the location where all the DNS records that are only available internally to the cluster exist.\n\nIf this field is nil, no private records should be created.\n\nOnce set, this field cannot be changed.", -} - -func (DNSSpec) SwaggerDoc() map[string]string { - return map_DNSSpec -} - -var map_DNSZone = map[string]string{ - "": "DNSZone is used to define a DNS hosted zone. A zone can be identified by an ID or tags.", - "id": "id is the identifier that can be used to find the DNS hosted zone.\n\non AWS zone can be fetched using `ID` as id in [1] on Azure zone can be fetched using `ID` as a pre-determined name in [2], on GCP zone can be fetched using `ID` as a pre-determined name in [3].\n\n[1]: https://docs.aws.amazon.com/cli/latest/reference/route53/get-hosted-zone.html#options [2]: https://docs.microsoft.com/en-us/cli/azure/network/dns/zone?view=azure-cli-latest#az-network-dns-zone-show [3]: https://cloud.google.com/dns/docs/reference/v1/managedZones/get", - "tags": "tags can be used to query the DNS hosted zone.\n\non AWS, resourcegroupstaggingapi [1] can be used to fetch a zone using `Tags` as tag-filters,\n\n[1]: https://docs.aws.amazon.com/cli/latest/reference/resourcegroupstaggingapi/get-resources.html#options", -} - -func (DNSZone) SwaggerDoc() map[string]string { - return map_DNSZone -} - -var map_CustomFeatureGates = map[string]string{ - "enabled": "enabled is a list of all feature gates that you want to force on", - "disabled": "disabled is a list of all feature gates that you want to force off", -} - -func (CustomFeatureGates) SwaggerDoc() map[string]string { - return map_CustomFeatureGates -} - -var map_FeatureGate = map[string]string{ - "": "Feature holds cluster-wide information about feature gates. The canonical name is `cluster`", - "spec": "spec holds user settable values for configuration", - "status": "status holds observed values from the cluster. They may not be overridden.", -} - -func (FeatureGate) SwaggerDoc() map[string]string { - return map_FeatureGate -} - -var map_FeatureGateSelection = map[string]string{ - "featureSet": "featureSet changes the list of features in the cluster. The default is empty. Be very careful adjusting this setting. Turning on or off features may cause irreversible changes in your cluster which cannot be undone.", - "customNoUpgrade": "customNoUpgrade allows the enabling or disabling of any feature. Turning this feature set on IS NOT SUPPORTED, CANNOT BE UNDONE, and PREVENTS UPGRADES. Because of its nature, this setting cannot be validated. If you have any typos or accidentally apply invalid combinations your cluster may fail in an unrecoverable way. featureSet must equal \"CustomNoUpgrade\" must be set to use this field.", -} - -func (FeatureGateSelection) SwaggerDoc() map[string]string { - return map_FeatureGateSelection -} - -var map_Image = map[string]string{ - "": "Image governs policies related to imagestream imports and runtime configuration for external registries. It allows cluster admins to configure which registries OpenShift is allowed to import images from, extra CA trust bundles for external registries, and policies to block or allow registry hostnames. When exposing OpenShift's image registry to the public, this also lets cluster admins specify the external hostname.", - "spec": "spec holds user settable values for configuration", - "status": "status holds observed values from the cluster. They may not be overridden.", -} - -func (Image) SwaggerDoc() map[string]string { - return map_Image -} - -var map_ImageSpec = map[string]string{ - "allowedRegistriesForImport": "allowedRegistriesForImport limits the container image registries that normal users may import images from. Set this list to the registries that you trust to contain valid Docker images and that you want applications to be able to import from. Users with permission to create Images or ImageStreamMappings via the API are not affected by this policy - typically only administrators or system integrations will have those permissions.", - "externalRegistryHostnames": "externalRegistryHostnames provides the hostnames for the default external image registry. The external hostname should be set only when the image registry is exposed externally. The first value is used in 'publicDockerImageRepository' field in ImageStreams. The value must be in \"hostname[:port]\" format.", - "additionalTrustedCA": "additionalTrustedCA is a reference to a ConfigMap containing additional CAs that should be trusted during imagestream import, pod image pull, build image pull, and imageregistry pullthrough. The namespace for this config map is openshift-config.", - "registrySources": "registrySources contains configuration that determines how the container runtime should treat individual registries when accessing images for builds+pods. (e.g. whether or not to allow insecure access). It does not contain configuration for the internal cluster registry.", -} - -func (ImageSpec) SwaggerDoc() map[string]string { - return map_ImageSpec -} - -var map_ImageStatus = map[string]string{ - "internalRegistryHostname": "internalRegistryHostname sets the hostname for the default internal image registry. The value must be in \"hostname[:port]\" format. This value is set by the image registry operator which controls the internal registry hostname. For backward compatibility, users can still use OPENSHIFT_DEFAULT_REGISTRY environment variable but this setting overrides the environment variable.", - "externalRegistryHostnames": "externalRegistryHostnames provides the hostnames for the default external image registry. The external hostname should be set only when the image registry is exposed externally. The first value is used in 'publicDockerImageRepository' field in ImageStreams. The value must be in \"hostname[:port]\" format.", -} - -func (ImageStatus) SwaggerDoc() map[string]string { - return map_ImageStatus -} - -var map_RegistryLocation = map[string]string{ - "": "RegistryLocation contains a location of the registry specified by the registry domain name. The domain name might include wildcards, like '*' or '??'.", - "domainName": "domainName specifies a domain name for the registry In case the registry use non-standard (80 or 443) port, the port should be included in the domain name as well.", - "insecure": "insecure indicates whether the registry is secure (https) or insecure (http) By default (if not specified) the registry is assumed as secure.", -} - -func (RegistryLocation) SwaggerDoc() map[string]string { - return map_RegistryLocation -} - -var map_RegistrySources = map[string]string{ - "": "RegistrySources holds cluster-wide information about how to handle the registries config.", - "insecureRegistries": "insecureRegistries are registries which do not have a valid TLS certificates or only support HTTP connections.", - "blockedRegistries": "blockedRegistries cannot be used for image pull and push actions. All other registries are permitted.\n\nOnly one of BlockedRegistries or AllowedRegistries may be set.", - "allowedRegistries": "allowedRegistries are the only registries permitted for image pull and push actions. All other registries are denied.\n\nOnly one of BlockedRegistries or AllowedRegistries may be set.", -} - -func (RegistrySources) SwaggerDoc() map[string]string { - return map_RegistrySources -} - -var map_AWSPlatformSpec = map[string]string{ - "": "AWSPlatformSpec holds the desired state of the Amazon Web Services infrastructure provider. This only includes fields that can be modified in the cluster.", - "serviceEndpoints": "serviceEndpoints list contains custom endpoints which will override default service endpoint of AWS Services. There must be only one ServiceEndpoint for a service.", -} - -func (AWSPlatformSpec) SwaggerDoc() map[string]string { - return map_AWSPlatformSpec -} - -var map_AWSPlatformStatus = map[string]string{ - "": "AWSPlatformStatus holds the current status of the Amazon Web Services infrastructure provider.", - "region": "region holds the default AWS region for new AWS resources created by the cluster.", - "serviceEndpoints": "ServiceEndpoints list contains custom endpoints which will override default service endpoint of AWS Services. There must be only one ServiceEndpoint for a service.", -} - -func (AWSPlatformStatus) SwaggerDoc() map[string]string { - return map_AWSPlatformStatus -} - -var map_AWSServiceEndpoint = map[string]string{ - "": "AWSServiceEndpoint store the configuration of a custom url to override existing defaults of AWS Services.", - "name": "name is the name of the AWS service. The list of all the service names can be found at https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html This must be provided and cannot be empty.", - "url": "url is fully qualified URI with scheme https, that overrides the default generated endpoint for a client. This must be provided and cannot be empty.", -} - -func (AWSServiceEndpoint) SwaggerDoc() map[string]string { - return map_AWSServiceEndpoint -} - -var map_AzurePlatformSpec = map[string]string{ - "": "AzurePlatformSpec holds the desired state of the Azure infrastructure provider. This only includes fields that can be modified in the cluster.", -} - -func (AzurePlatformSpec) SwaggerDoc() map[string]string { - return map_AzurePlatformSpec -} - -var map_AzurePlatformStatus = map[string]string{ - "": "AzurePlatformStatus holds the current status of the Azure infrastructure provider.", - "resourceGroupName": "resourceGroupName is the Resource Group for new Azure resources created for the cluster.", - "networkResourceGroupName": "networkResourceGroupName is the Resource Group for network resources like the Virtual Network and Subnets used by the cluster. If empty, the value is same as ResourceGroupName.", - "cloudName": "cloudName is the name of the Azure cloud environment which can be used to configure the Azure SDK with the appropriate Azure API endpoints. If empty, the value is equal to `AzurePublicCloud`.", -} - -func (AzurePlatformStatus) SwaggerDoc() map[string]string { - return map_AzurePlatformStatus -} - -var map_BareMetalPlatformSpec = map[string]string{ - "": "BareMetalPlatformSpec holds the desired state of the BareMetal infrastructure provider. This only includes fields that can be modified in the cluster.", -} - -func (BareMetalPlatformSpec) SwaggerDoc() map[string]string { - return map_BareMetalPlatformSpec -} - -var map_BareMetalPlatformStatus = map[string]string{ - "": "BareMetalPlatformStatus holds the current status of the BareMetal infrastructure provider. For more information about the network architecture used with the BareMetal platform type, see: https://github.com/openshift/installer/blob/master/docs/design/baremetal/networking-infrastructure.md", - "apiServerInternalIP": "apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers.", - "ingressIP": "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names.", - "nodeDNSIP": "nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for BareMetal deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster.", -} - -func (BareMetalPlatformStatus) SwaggerDoc() map[string]string { - return map_BareMetalPlatformStatus -} - -var map_GCPPlatformSpec = map[string]string{ - "": "GCPPlatformSpec holds the desired state of the Google Cloud Platform infrastructure provider. This only includes fields that can be modified in the cluster.", -} - -func (GCPPlatformSpec) SwaggerDoc() map[string]string { - return map_GCPPlatformSpec -} - -var map_GCPPlatformStatus = map[string]string{ - "": "GCPPlatformStatus holds the current status of the Google Cloud Platform infrastructure provider.", - "projectID": "resourceGroupName is the Project ID for new GCP resources created for the cluster.", - "region": "region holds the region for new GCP resources created for the cluster.", -} - -func (GCPPlatformStatus) SwaggerDoc() map[string]string { - return map_GCPPlatformStatus -} - -var map_IBMCloudPlatformSpec = map[string]string{ - "": "IBMCloudPlatformSpec holds the desired state of the IBMCloud infrastructure provider. This only includes fields that can be modified in the cluster.", -} - -func (IBMCloudPlatformSpec) SwaggerDoc() map[string]string { - return map_IBMCloudPlatformSpec -} - -var map_IBMCloudPlatformStatus = map[string]string{ - "": "IBMCloudPlatformStatus holds the current status of the IBMCloud infrastructure provider.", - "location": "Location is where the cluster has been deployed", - "resourceGroupName": "ResourceGroupName is the Resource Group for new IBMCloud resources created for the cluster.", - "providerType": "ProviderType indicates the type of cluster that was created", -} - -func (IBMCloudPlatformStatus) SwaggerDoc() map[string]string { - return map_IBMCloudPlatformStatus -} - -var map_Infrastructure = map[string]string{ - "": "Infrastructure holds cluster-wide information about Infrastructure. The canonical name is `cluster`", - "spec": "spec holds user settable values for configuration", - "status": "status holds observed values from the cluster. They may not be overridden.", -} - -func (Infrastructure) SwaggerDoc() map[string]string { - return map_Infrastructure -} - -var map_InfrastructureList = map[string]string{ - "": "InfrastructureList is", -} - -func (InfrastructureList) SwaggerDoc() map[string]string { - return map_InfrastructureList -} - -var map_InfrastructureSpec = map[string]string{ - "": "InfrastructureSpec contains settings that apply to the cluster infrastructure.", - "cloudConfig": "cloudConfig is a reference to a ConfigMap containing the cloud provider configuration file. This configuration file is used to configure the Kubernetes cloud provider integration when using the built-in cloud provider integration or the external cloud controller manager. The namespace for this config map is openshift-config.\n\ncloudConfig should only be consumed by the kube_cloud_config controller. The controller is responsible for using the user configuration in the spec for various platforms and combining that with the user provided ConfigMap in this field to create a stitched kube cloud config. The controller generates a ConfigMap `kube-cloud-config` in `openshift-config-managed` namespace with the kube cloud config is stored in `cloud.conf` key. All the clients are expected to use the generated ConfigMap only.", - "platformSpec": "platformSpec holds desired information specific to the underlying infrastructure provider.", -} - -func (InfrastructureSpec) SwaggerDoc() map[string]string { - return map_InfrastructureSpec -} - -var map_InfrastructureStatus = map[string]string{ - "": "InfrastructureStatus describes the infrastructure the cluster is leveraging.", - "infrastructureName": "infrastructureName uniquely identifies a cluster with a human friendly name. Once set it should not be changed. Must be of max length 27 and must have only alphanumeric or hyphen characters.", - "platform": "platform is the underlying infrastructure provider for the cluster.\n\nDeprecated: Use platformStatus.type instead.", - "platformStatus": "platformStatus holds status information specific to the underlying infrastructure provider.", - "etcdDiscoveryDomain": "etcdDiscoveryDomain is the domain used to fetch the SRV records for discovering etcd servers and clients. For more info: https://github.com/etcd-io/etcd/blob/329be66e8b3f9e2e6af83c123ff89297e49ebd15/Documentation/op-guide/clustering.md#dns-discovery", - "apiServerURL": "apiServerURL is a valid URI with scheme 'https', address and optionally a port (defaulting to 443). apiServerURL can be used by components like the web console to tell users where to find the Kubernetes API.", - "apiServerInternalURI": "apiServerInternalURL is a valid URI with scheme 'https', address and optionally a port (defaulting to 443). apiServerInternalURL can be used by components like kubelets, to contact the Kubernetes API server using the infrastructure provider rather than Kubernetes networking.", -} - -func (InfrastructureStatus) SwaggerDoc() map[string]string { - return map_InfrastructureStatus -} - -var map_OpenStackPlatformSpec = map[string]string{ - "": "OpenStackPlatformSpec holds the desired state of the OpenStack infrastructure provider. This only includes fields that can be modified in the cluster.", -} - -func (OpenStackPlatformSpec) SwaggerDoc() map[string]string { - return map_OpenStackPlatformSpec -} - -var map_OpenStackPlatformStatus = map[string]string{ - "": "OpenStackPlatformStatus holds the current status of the OpenStack infrastructure provider.", - "apiServerInternalIP": "apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers.", - "cloudName": "cloudName is the name of the desired OpenStack cloud in the client configuration file (`clouds.yaml`).", - "ingressIP": "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names.", - "nodeDNSIP": "nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for OpenStack deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster.", -} - -func (OpenStackPlatformStatus) SwaggerDoc() map[string]string { - return map_OpenStackPlatformStatus -} - -var map_OvirtPlatformSpec = map[string]string{ - "": "OvirtPlatformSpec holds the desired state of the oVirt infrastructure provider. This only includes fields that can be modified in the cluster.", -} - -func (OvirtPlatformSpec) SwaggerDoc() map[string]string { - return map_OvirtPlatformSpec -} - -var map_OvirtPlatformStatus = map[string]string{ - "": "OvirtPlatformStatus holds the current status of the oVirt infrastructure provider.", - "apiServerInternalIP": "apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers.", - "ingressIP": "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names.", - "nodeDNSIP": "deprecated: as of 4.6, this field is no longer set or honored. It will be removed in a future release.", -} - -func (OvirtPlatformStatus) SwaggerDoc() map[string]string { - return map_OvirtPlatformStatus -} - -var map_PlatformSpec = map[string]string{ - "": "PlatformSpec holds the desired state specific to the underlying infrastructure provider of the current cluster. Since these are used at spec-level for the underlying cluster, it is supposed that only one of the spec structs is set.", - "type": "type is the underlying infrastructure provider for the cluster. This value controls whether infrastructure automation such as service load balancers, dynamic volume provisioning, machine creation and deletion, and other integrations are enabled. If None, no infrastructure automation is enabled. Allowed values are \"AWS\", \"Azure\", \"BareMetal\", \"GCP\", \"Libvirt\", \"OpenStack\", \"VSphere\", \"oVirt\", and \"None\". Individual components may not support all platforms, and must handle unrecognized platforms as None if they do not support that platform.", - "aws": "AWS contains settings specific to the Amazon Web Services infrastructure provider.", - "azure": "Azure contains settings specific to the Azure infrastructure provider.", - "gcp": "GCP contains settings specific to the Google Cloud Platform infrastructure provider.", - "baremetal": "BareMetal contains settings specific to the BareMetal platform.", - "openstack": "OpenStack contains settings specific to the OpenStack infrastructure provider.", - "ovirt": "Ovirt contains settings specific to the oVirt infrastructure provider.", - "vsphere": "VSphere contains settings specific to the VSphere infrastructure provider.", - "ibmcloud": "IBMCloud contains settings specific to the IBMCloud infrastructure provider.", -} - -func (PlatformSpec) SwaggerDoc() map[string]string { - return map_PlatformSpec -} - -var map_PlatformStatus = map[string]string{ - "": "PlatformStatus holds the current status specific to the underlying infrastructure provider of the current cluster. Since these are used at status-level for the underlying cluster, it is supposed that only one of the status structs is set.", - "type": "type is the underlying infrastructure provider for the cluster. This value controls whether infrastructure automation such as service load balancers, dynamic volume provisioning, machine creation and deletion, and other integrations are enabled. If None, no infrastructure automation is enabled. Allowed values are \"AWS\", \"Azure\", \"BareMetal\", \"GCP\", \"Libvirt\", \"OpenStack\", \"VSphere\", \"oVirt\", and \"None\". Individual components may not support all platforms, and must handle unrecognized platforms as None if they do not support that platform.\n\nThis value will be synced with to the `status.platform` and `status.platformStatus.type`. Currently this value cannot be changed once set.", - "aws": "AWS contains settings specific to the Amazon Web Services infrastructure provider.", - "azure": "Azure contains settings specific to the Azure infrastructure provider.", - "gcp": "GCP contains settings specific to the Google Cloud Platform infrastructure provider.", - "baremetal": "BareMetal contains settings specific to the BareMetal platform.", - "openstack": "OpenStack contains settings specific to the OpenStack infrastructure provider.", - "ovirt": "Ovirt contains settings specific to the oVirt infrastructure provider.", - "vsphere": "VSphere contains settings specific to the VSphere infrastructure provider.", - "ibmcloud": "IBMCloud contains settings specific to the IBMCloud infrastructure provider.", -} - -func (PlatformStatus) SwaggerDoc() map[string]string { - return map_PlatformStatus -} - -var map_VSpherePlatformSpec = map[string]string{ - "": "VSpherePlatformSpec holds the desired state of the vSphere infrastructure provider. This only includes fields that can be modified in the cluster.", -} - -func (VSpherePlatformSpec) SwaggerDoc() map[string]string { - return map_VSpherePlatformSpec -} - -var map_VSpherePlatformStatus = map[string]string{ - "": "VSpherePlatformStatus holds the current status of the vSphere infrastructure provider.", - "apiServerInternalIP": "apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers.", - "ingressIP": "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names.", - "nodeDNSIP": "nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for vSphere deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster.", -} - -func (VSpherePlatformStatus) SwaggerDoc() map[string]string { - return map_VSpherePlatformStatus -} - -var map_Ingress = map[string]string{ - "": "Ingress holds cluster-wide information about ingress, including the default ingress domain used for routes. The canonical name is `cluster`.", - "spec": "spec holds user settable values for configuration", - "status": "status holds observed values from the cluster. They may not be overridden.", -} - -func (Ingress) SwaggerDoc() map[string]string { - return map_Ingress -} - -var map_IngressSpec = map[string]string{ - "domain": "domain is used to generate a default host name for a route when the route's host name is empty. The generated host name will follow this pattern: \"..\".\n\nIt is also used as the default wildcard domain suffix for ingress. The default ingresscontroller domain will follow this pattern: \"*.\".\n\nOnce set, changing domain is not currently supported.", -} - -func (IngressSpec) SwaggerDoc() map[string]string { - return map_IngressSpec -} - -var map_ClusterNetworkEntry = map[string]string{ - "": "ClusterNetworkEntry is a contiguous block of IP addresses from which pod IPs are allocated.", - "cidr": "The complete block for pod IPs.", - "hostPrefix": "The size (prefix) of block to allocate to each node. If this field is not used by the plugin, it can be left unset.", -} - -func (ClusterNetworkEntry) SwaggerDoc() map[string]string { - return map_ClusterNetworkEntry -} - -var map_ExternalIPConfig = map[string]string{ - "": "ExternalIPConfig specifies some IP blocks relevant for the ExternalIP field of a Service resource.", - "policy": "policy is a set of restrictions applied to the ExternalIP field. If nil or empty, then ExternalIP is not allowed to be set.", - "autoAssignCIDRs": "autoAssignCIDRs is a list of CIDRs from which to automatically assign Service.ExternalIP. These are assigned when the service is of type LoadBalancer. In general, this is only useful for bare-metal clusters. In Openshift 3.x, this was misleadingly called \"IngressIPs\". Automatically assigned External IPs are not affected by any ExternalIPPolicy rules. Currently, only one entry may be provided.", -} - -func (ExternalIPConfig) SwaggerDoc() map[string]string { - return map_ExternalIPConfig -} - -var map_ExternalIPPolicy = map[string]string{ - "": "ExternalIPPolicy configures exactly which IPs are allowed for the ExternalIP field in a Service. If the zero struct is supplied, then none are permitted. The policy controller always allows automatically assigned external IPs.", - "allowedCIDRs": "allowedCIDRs is the list of allowed CIDRs.", - "rejectedCIDRs": "rejectedCIDRs is the list of disallowed CIDRs. These take precedence over allowedCIDRs.", -} - -func (ExternalIPPolicy) SwaggerDoc() map[string]string { - return map_ExternalIPPolicy -} - -var map_Network = map[string]string{ - "": "Network holds cluster-wide information about Network. The canonical name is `cluster`. It is used to configure the desired network configuration, such as: IP address pools for services/pod IPs, network plugin, etc. Please view network.spec for an explanation on what applies when configuring this resource.", - "spec": "spec holds user settable values for configuration. As a general rule, this SHOULD NOT be read directly. Instead, you should consume the NetworkStatus, as it indicates the currently deployed configuration. Currently, most spec fields are immutable after installation. Please view the individual ones for further details on each.", - "status": "status holds observed values from the cluster. They may not be overridden.", -} - -func (Network) SwaggerDoc() map[string]string { - return map_Network -} - -var map_NetworkSpec = map[string]string{ - "": "NetworkSpec is the desired network configuration. As a general rule, this SHOULD NOT be read directly. Instead, you should consume the NetworkStatus, as it indicates the currently deployed configuration. Currently, most spec fields are immutable after installation. Please view the individual ones for further details on each.", - "clusterNetwork": "IP address pool to use for pod IPs. This field is immutable after installation.", - "serviceNetwork": "IP address pool for services. Currently, we only support a single entry here. This field is immutable after installation.", - "networkType": "NetworkType is the plugin that is to be deployed (e.g. OpenShiftSDN). This should match a value that the cluster-network-operator understands, or else no networking will be installed. Currently supported values are: - OpenShiftSDN This field is immutable after installation.", - "externalIP": "externalIP defines configuration for controllers that affect Service.ExternalIP. If nil, then ExternalIP is not allowed to be set.", - "serviceNodePortRange": "The port range allowed for Services of type NodePort. If not specified, the default of 30000-32767 will be used. Such Services without a NodePort specified will have one automatically allocated from this range. This parameter can be updated after the cluster is installed.", -} - -func (NetworkSpec) SwaggerDoc() map[string]string { - return map_NetworkSpec -} - -var map_NetworkStatus = map[string]string{ - "": "NetworkStatus is the current network configuration.", - "clusterNetwork": "IP address pool to use for pod IPs.", - "serviceNetwork": "IP address pool for services. Currently, we only support a single entry here.", - "networkType": "NetworkType is the plugin that is deployed (e.g. OpenShiftSDN).", - "clusterNetworkMTU": "ClusterNetworkMTU is the MTU for inter-pod networking.", -} - -func (NetworkStatus) SwaggerDoc() map[string]string { - return map_NetworkStatus -} - -var map_BasicAuthIdentityProvider = map[string]string{ - "": "BasicAuthPasswordIdentityProvider provides identities for users authenticating using HTTP basic auth credentials", -} - -func (BasicAuthIdentityProvider) SwaggerDoc() map[string]string { - return map_BasicAuthIdentityProvider -} - -var map_GitHubIdentityProvider = map[string]string{ - "": "GitHubIdentityProvider provides identities for users authenticating using GitHub credentials", - "clientID": "clientID is the oauth client ID", - "clientSecret": "clientSecret is a required reference to the secret by name containing the oauth client secret. The key \"clientSecret\" is used to locate the data. If the secret or expected key is not found, the identity provider is not honored. The namespace for this secret is openshift-config.", - "organizations": "organizations optionally restricts which organizations are allowed to log in", - "teams": "teams optionally restricts which teams are allowed to log in. Format is /.", - "hostname": "hostname is the optional domain (e.g. \"mycompany.com\") for use with a hosted instance of GitHub Enterprise. It must match the GitHub Enterprise settings value configured at /setup/settings#hostname.", - "ca": "ca is an optional reference to a config map by name containing the PEM-encoded CA bundle. It is used as a trust anchor to validate the TLS certificate presented by the remote server. The key \"ca.crt\" is used to locate the data. If specified and the config map or expected key is not found, the identity provider is not honored. If the specified ca data is not valid, the identity provider is not honored. If empty, the default system roots are used. This can only be configured when hostname is set to a non-empty value. The namespace for this config map is openshift-config.", -} - -func (GitHubIdentityProvider) SwaggerDoc() map[string]string { - return map_GitHubIdentityProvider -} - -var map_GitLabIdentityProvider = map[string]string{ - "": "GitLabIdentityProvider provides identities for users authenticating using GitLab credentials", - "clientID": "clientID is the oauth client ID", - "clientSecret": "clientSecret is a required reference to the secret by name containing the oauth client secret. The key \"clientSecret\" is used to locate the data. If the secret or expected key is not found, the identity provider is not honored. The namespace for this secret is openshift-config.", - "url": "url is the oauth server base URL", - "ca": "ca is an optional reference to a config map by name containing the PEM-encoded CA bundle. It is used as a trust anchor to validate the TLS certificate presented by the remote server. The key \"ca.crt\" is used to locate the data. If specified and the config map or expected key is not found, the identity provider is not honored. If the specified ca data is not valid, the identity provider is not honored. If empty, the default system roots are used. The namespace for this config map is openshift-config.", -} - -func (GitLabIdentityProvider) SwaggerDoc() map[string]string { - return map_GitLabIdentityProvider -} - -var map_GoogleIdentityProvider = map[string]string{ - "": "GoogleIdentityProvider provides identities for users authenticating using Google credentials", - "clientID": "clientID is the oauth client ID", - "clientSecret": "clientSecret is a required reference to the secret by name containing the oauth client secret. The key \"clientSecret\" is used to locate the data. If the secret or expected key is not found, the identity provider is not honored. The namespace for this secret is openshift-config.", - "hostedDomain": "hostedDomain is the optional Google App domain (e.g. \"mycompany.com\") to restrict logins to", -} - -func (GoogleIdentityProvider) SwaggerDoc() map[string]string { - return map_GoogleIdentityProvider -} - -var map_HTPasswdIdentityProvider = map[string]string{ - "": "HTPasswdPasswordIdentityProvider provides identities for users authenticating using htpasswd credentials", - "fileData": "fileData is a required reference to a secret by name containing the data to use as the htpasswd file. The key \"htpasswd\" is used to locate the data. If the secret or expected key is not found, the identity provider is not honored. If the specified htpasswd data is not valid, the identity provider is not honored. The namespace for this secret is openshift-config.", -} - -func (HTPasswdIdentityProvider) SwaggerDoc() map[string]string { - return map_HTPasswdIdentityProvider -} - -var map_IdentityProvider = map[string]string{ - "": "IdentityProvider provides identities for users authenticating using credentials", - "name": "name is used to qualify the identities returned by this provider. - It MUST be unique and not shared by any other identity provider used - It MUST be a valid path segment: name cannot equal \".\" or \"..\" or contain \"/\" or \"%\" or \":\"\n Ref: https://godoc.org/github.com/openshift/origin/pkg/user/apis/user/validation#ValidateIdentityProviderName", - "mappingMethod": "mappingMethod determines how identities from this provider are mapped to users Defaults to \"claim\"", -} - -func (IdentityProvider) SwaggerDoc() map[string]string { - return map_IdentityProvider -} - -var map_IdentityProviderConfig = map[string]string{ - "": "IdentityProviderConfig contains configuration for using a specific identity provider", - "type": "type identifies the identity provider type for this entry.", - "basicAuth": "basicAuth contains configuration options for the BasicAuth IdP", - "github": "github enables user authentication using GitHub credentials", - "gitlab": "gitlab enables user authentication using GitLab credentials", - "google": "google enables user authentication using Google credentials", - "htpasswd": "htpasswd enables user authentication using an HTPasswd file to validate credentials", - "keystone": "keystone enables user authentication using keystone password credentials", - "ldap": "ldap enables user authentication using LDAP credentials", - "openID": "openID enables user authentication using OpenID credentials", - "requestHeader": "requestHeader enables user authentication using request header credentials", -} - -func (IdentityProviderConfig) SwaggerDoc() map[string]string { - return map_IdentityProviderConfig -} - -var map_KeystoneIdentityProvider = map[string]string{ - "": "KeystonePasswordIdentityProvider provides identities for users authenticating using keystone password credentials", - "domainName": "domainName is required for keystone v3", -} - -func (KeystoneIdentityProvider) SwaggerDoc() map[string]string { - return map_KeystoneIdentityProvider -} - -var map_LDAPAttributeMapping = map[string]string{ - "": "LDAPAttributeMapping maps LDAP attributes to OpenShift identity fields", - "id": "id is the list of attributes whose values should be used as the user ID. Required. First non-empty attribute is used. At least one attribute is required. If none of the listed attribute have a value, authentication fails. LDAP standard identity attribute is \"dn\"", - "preferredUsername": "preferredUsername is the list of attributes whose values should be used as the preferred username. LDAP standard login attribute is \"uid\"", - "name": "name is the list of attributes whose values should be used as the display name. Optional. If unspecified, no display name is set for the identity LDAP standard display name attribute is \"cn\"", - "email": "email is the list of attributes whose values should be used as the email address. Optional. If unspecified, no email is set for the identity", -} - -func (LDAPAttributeMapping) SwaggerDoc() map[string]string { - return map_LDAPAttributeMapping -} - -var map_LDAPIdentityProvider = map[string]string{ - "": "LDAPPasswordIdentityProvider provides identities for users authenticating using LDAP credentials", - "url": "url is an RFC 2255 URL which specifies the LDAP search parameters to use. The syntax of the URL is: ldap://host:port/basedn?attribute?scope?filter", - "bindDN": "bindDN is an optional DN to bind with during the search phase.", - "bindPassword": "bindPassword is an optional reference to a secret by name containing a password to bind with during the search phase. The key \"bindPassword\" is used to locate the data. If specified and the secret or expected key is not found, the identity provider is not honored. The namespace for this secret is openshift-config.", - "insecure": "insecure, if true, indicates the connection should not use TLS WARNING: Should not be set to `true` with the URL scheme \"ldaps://\" as \"ldaps://\" URLs always\n attempt to connect using TLS, even when `insecure` is set to `true`\nWhen `true`, \"ldap://\" URLS connect insecurely. When `false`, \"ldap://\" URLs are upgraded to a TLS connection using StartTLS as specified in https://tools.ietf.org/html/rfc2830.", - "ca": "ca is an optional reference to a config map by name containing the PEM-encoded CA bundle. It is used as a trust anchor to validate the TLS certificate presented by the remote server. The key \"ca.crt\" is used to locate the data. If specified and the config map or expected key is not found, the identity provider is not honored. If the specified ca data is not valid, the identity provider is not honored. If empty, the default system roots are used. The namespace for this config map is openshift-config.", - "attributes": "attributes maps LDAP attributes to identities", -} - -func (LDAPIdentityProvider) SwaggerDoc() map[string]string { - return map_LDAPIdentityProvider -} - -var map_OAuth = map[string]string{ - "": "OAuth holds cluster-wide information about OAuth. The canonical name is `cluster`. It is used to configure the integrated OAuth server. This configuration is only honored when the top level Authentication config has type set to IntegratedOAuth.", - "spec": "spec holds user settable values for configuration", - "status": "status holds observed values from the cluster. They may not be overridden.", -} - -func (OAuth) SwaggerDoc() map[string]string { - return map_OAuth -} - -var map_OAuthRemoteConnectionInfo = map[string]string{ - "": "OAuthRemoteConnectionInfo holds information necessary for establishing a remote connection", - "url": "url is the remote URL to connect to", - "ca": "ca is an optional reference to a config map by name containing the PEM-encoded CA bundle. It is used as a trust anchor to validate the TLS certificate presented by the remote server. The key \"ca.crt\" is used to locate the data. If specified and the config map or expected key is not found, the identity provider is not honored. If the specified ca data is not valid, the identity provider is not honored. If empty, the default system roots are used. The namespace for this config map is openshift-config.", - "tlsClientCert": "tlsClientCert is an optional reference to a secret by name that contains the PEM-encoded TLS client certificate to present when connecting to the server. The key \"tls.crt\" is used to locate the data. If specified and the secret or expected key is not found, the identity provider is not honored. If the specified certificate data is not valid, the identity provider is not honored. The namespace for this secret is openshift-config.", - "tlsClientKey": "tlsClientKey is an optional reference to a secret by name that contains the PEM-encoded TLS private key for the client certificate referenced in tlsClientCert. The key \"tls.key\" is used to locate the data. If specified and the secret or expected key is not found, the identity provider is not honored. If the specified certificate data is not valid, the identity provider is not honored. The namespace for this secret is openshift-config.", -} - -func (OAuthRemoteConnectionInfo) SwaggerDoc() map[string]string { - return map_OAuthRemoteConnectionInfo -} - -var map_OAuthSpec = map[string]string{ - "": "OAuthSpec contains desired cluster auth configuration", - "identityProviders": "identityProviders is an ordered list of ways for a user to identify themselves. When this list is empty, no identities are provisioned for users.", - "tokenConfig": "tokenConfig contains options for authorization and access tokens", - "templates": "templates allow you to customize pages like the login page.", -} - -func (OAuthSpec) SwaggerDoc() map[string]string { - return map_OAuthSpec -} - -var map_OAuthStatus = map[string]string{ - "": "OAuthStatus shows current known state of OAuth server in the cluster", -} - -func (OAuthStatus) SwaggerDoc() map[string]string { - return map_OAuthStatus -} - -var map_OAuthTemplates = map[string]string{ - "": "OAuthTemplates allow for customization of pages like the login page", - "login": "login is the name of a secret that specifies a go template to use to render the login page. The key \"login.html\" is used to locate the template data. If specified and the secret or expected key is not found, the default login page is used. If the specified template is not valid, the default login page is used. If unspecified, the default login page is used. The namespace for this secret is openshift-config.", - "providerSelection": "providerSelection is the name of a secret that specifies a go template to use to render the provider selection page. The key \"providers.html\" is used to locate the template data. If specified and the secret or expected key is not found, the default provider selection page is used. If the specified template is not valid, the default provider selection page is used. If unspecified, the default provider selection page is used. The namespace for this secret is openshift-config.", - "error": "error is the name of a secret that specifies a go template to use to render error pages during the authentication or grant flow. The key \"errors.html\" is used to locate the template data. If specified and the secret or expected key is not found, the default error page is used. If the specified template is not valid, the default error page is used. If unspecified, the default error page is used. The namespace for this secret is openshift-config.", -} - -func (OAuthTemplates) SwaggerDoc() map[string]string { - return map_OAuthTemplates -} - -var map_OpenIDClaims = map[string]string{ - "": "OpenIDClaims contains a list of OpenID claims to use when authenticating with an OpenID identity provider", - "preferredUsername": "preferredUsername is the list of claims whose values should be used as the preferred username. If unspecified, the preferred username is determined from the value of the sub claim", - "name": "name is the list of claims whose values should be used as the display name. Optional. If unspecified, no display name is set for the identity", - "email": "email is the list of claims whose values should be used as the email address. Optional. If unspecified, no email is set for the identity", -} - -func (OpenIDClaims) SwaggerDoc() map[string]string { - return map_OpenIDClaims -} - -var map_OpenIDIdentityProvider = map[string]string{ - "": "OpenIDIdentityProvider provides identities for users authenticating using OpenID credentials", - "clientID": "clientID is the oauth client ID", - "clientSecret": "clientSecret is a required reference to the secret by name containing the oauth client secret. The key \"clientSecret\" is used to locate the data. If the secret or expected key is not found, the identity provider is not honored. The namespace for this secret is openshift-config.", - "ca": "ca is an optional reference to a config map by name containing the PEM-encoded CA bundle. It is used as a trust anchor to validate the TLS certificate presented by the remote server. The key \"ca.crt\" is used to locate the data. If specified and the config map or expected key is not found, the identity provider is not honored. If the specified ca data is not valid, the identity provider is not honored. If empty, the default system roots are used. The namespace for this config map is openshift-config.", - "extraScopes": "extraScopes are any scopes to request in addition to the standard \"openid\" scope.", - "extraAuthorizeParameters": "extraAuthorizeParameters are any custom parameters to add to the authorize request.", - "issuer": "issuer is the URL that the OpenID Provider asserts as its Issuer Identifier. It must use the https scheme with no query or fragment component.", - "claims": "claims mappings", -} - -func (OpenIDIdentityProvider) SwaggerDoc() map[string]string { - return map_OpenIDIdentityProvider -} - -var map_RequestHeaderIdentityProvider = map[string]string{ - "": "RequestHeaderIdentityProvider provides identities for users authenticating using request header credentials", - "loginURL": "loginURL is a URL to redirect unauthenticated /authorize requests to Unauthenticated requests from OAuth clients which expect interactive logins will be redirected here ${url} is replaced with the current URL, escaped to be safe in a query parameter\n https://www.example.com/sso-login?then=${url}\n${query} is replaced with the current query string\n https://www.example.com/auth-proxy/oauth/authorize?${query}\nRequired when login is set to true.", - "challengeURL": "challengeURL is a URL to redirect unauthenticated /authorize requests to Unauthenticated requests from OAuth clients which expect WWW-Authenticate challenges will be redirected here. ${url} is replaced with the current URL, escaped to be safe in a query parameter\n https://www.example.com/sso-login?then=${url}\n${query} is replaced with the current query string\n https://www.example.com/auth-proxy/oauth/authorize?${query}\nRequired when challenge is set to true.", - "ca": "ca is a required reference to a config map by name containing the PEM-encoded CA bundle. It is used as a trust anchor to validate the TLS certificate presented by the remote server. Specifically, it allows verification of incoming requests to prevent header spoofing. The key \"ca.crt\" is used to locate the data. If the config map or expected key is not found, the identity provider is not honored. If the specified ca data is not valid, the identity provider is not honored. The namespace for this config map is openshift-config.", - "clientCommonNames": "clientCommonNames is an optional list of common names to require a match from. If empty, any client certificate validated against the clientCA bundle is considered authoritative.", - "headers": "headers is the set of headers to check for identity information", - "preferredUsernameHeaders": "preferredUsernameHeaders is the set of headers to check for the preferred username", - "nameHeaders": "nameHeaders is the set of headers to check for the display name", - "emailHeaders": "emailHeaders is the set of headers to check for the email address", -} - -func (RequestHeaderIdentityProvider) SwaggerDoc() map[string]string { - return map_RequestHeaderIdentityProvider -} - -var map_TokenConfig = map[string]string{ - "": "TokenConfig holds the necessary configuration options for authorization and access tokens", - "accessTokenMaxAgeSeconds": "accessTokenMaxAgeSeconds defines the maximum age of access tokens", - "accessTokenInactivityTimeoutSeconds": "accessTokenInactivityTimeoutSeconds - DEPRECATED: setting this field has no effect.", - "accessTokenInactivityTimeout": "accessTokenInactivityTimeout defines the token inactivity timeout for tokens granted by any client. The value represents the maximum amount of time that can occur between consecutive uses of the token. Tokens become invalid if they are not used within this temporal window. The user will need to acquire a new token to regain access once a token times out. Takes valid time duration string such as \"5m\", \"1.5h\" or \"2h45m\". The minimum allowed value for duration is 300s (5 minutes). If the timeout is configured per client, then that value takes precedence. If the timeout value is not specified and the client does not override the value, then tokens are valid until their lifetime.", -} - -func (TokenConfig) SwaggerDoc() map[string]string { - return map_TokenConfig -} - -var map_HubSource = map[string]string{ - "": "HubSource is used to specify the hub source and its configuration", - "name": "name is the name of one of the default hub sources", - "disabled": "disabled is used to disable a default hub source on cluster", -} - -func (HubSource) SwaggerDoc() map[string]string { - return map_HubSource -} - -var map_HubSourceStatus = map[string]string{ - "": "HubSourceStatus is used to reflect the current state of applying the configuration to a default source", - "status": "status indicates success or failure in applying the configuration", - "message": "message provides more information regarding failures", -} - -func (HubSourceStatus) SwaggerDoc() map[string]string { - return map_HubSourceStatus -} - -var map_OperatorHub = map[string]string{ - "": "OperatorHub is the Schema for the operatorhubs API. It can be used to change the state of the default hub sources for OperatorHub on the cluster from enabled to disabled and vice versa.", -} - -func (OperatorHub) SwaggerDoc() map[string]string { - return map_OperatorHub -} - -var map_OperatorHubList = map[string]string{ - "": "OperatorHubList contains a list of OperatorHub", -} - -func (OperatorHubList) SwaggerDoc() map[string]string { - return map_OperatorHubList -} - -var map_OperatorHubSpec = map[string]string{ - "": "OperatorHubSpec defines the desired state of OperatorHub", - "disableAllDefaultSources": "disableAllDefaultSources allows you to disable all the default hub sources. If this is true, a specific entry in sources can be used to enable a default source. If this is false, a specific entry in sources can be used to disable or enable a default source.", - "sources": "sources is the list of default hub sources and their configuration. If the list is empty, it implies that the default hub sources are enabled on the cluster unless disableAllDefaultSources is true. If disableAllDefaultSources is true and sources is not empty, the configuration present in sources will take precedence. The list of default hub sources and their current state will always be reflected in the status block.", -} - -func (OperatorHubSpec) SwaggerDoc() map[string]string { - return map_OperatorHubSpec -} - -var map_OperatorHubStatus = map[string]string{ - "": "OperatorHubStatus defines the observed state of OperatorHub. The current state of the default hub sources will always be reflected here.", - "sources": "sources encapsulates the result of applying the configuration for each hub source", -} - -func (OperatorHubStatus) SwaggerDoc() map[string]string { - return map_OperatorHubStatus -} - -var map_Project = map[string]string{ - "": "Project holds cluster-wide information about Project. The canonical name is `cluster`", - "spec": "spec holds user settable values for configuration", - "status": "status holds observed values from the cluster. They may not be overridden.", -} - -func (Project) SwaggerDoc() map[string]string { - return map_Project -} - -var map_ProjectSpec = map[string]string{ - "": "ProjectSpec holds the project creation configuration.", - "projectRequestMessage": "projectRequestMessage is the string presented to a user if they are unable to request a project via the projectrequest api endpoint", - "projectRequestTemplate": "projectRequestTemplate is the template to use for creating projects in response to projectrequest. This must point to a template in 'openshift-config' namespace. It is optional. If it is not specified, a default template is used.", -} - -func (ProjectSpec) SwaggerDoc() map[string]string { - return map_ProjectSpec -} - -var map_TemplateReference = map[string]string{ - "": "TemplateReference references a template in a specific namespace. The namespace must be specified at the point of use.", - "name": "name is the metadata.name of the referenced project request template", -} - -func (TemplateReference) SwaggerDoc() map[string]string { - return map_TemplateReference -} - -var map_Proxy = map[string]string{ - "": "Proxy holds cluster-wide information on how to configure default proxies for the cluster. The canonical name is `cluster`", - "spec": "Spec holds user-settable values for the proxy configuration", - "status": "status holds observed values from the cluster. They may not be overridden.", -} - -func (Proxy) SwaggerDoc() map[string]string { - return map_Proxy -} - -var map_ProxySpec = map[string]string{ - "": "ProxySpec contains cluster proxy creation configuration.", - "httpProxy": "httpProxy is the URL of the proxy for HTTP requests. Empty means unset and will not result in an env var.", - "httpsProxy": "httpsProxy is the URL of the proxy for HTTPS requests. Empty means unset and will not result in an env var.", - "noProxy": "noProxy is a comma-separated list of hostnames and/or CIDRs for which the proxy should not be used. Empty means unset and will not result in an env var.", - "readinessEndpoints": "readinessEndpoints is a list of endpoints used to verify readiness of the proxy.", - "trustedCA": "trustedCA is a reference to a ConfigMap containing a CA certificate bundle. The trustedCA field should only be consumed by a proxy validator. The validator is responsible for reading the certificate bundle from the required key \"ca-bundle.crt\", merging it with the system default trust bundle, and writing the merged trust bundle to a ConfigMap named \"trusted-ca-bundle\" in the \"openshift-config-managed\" namespace. Clients that expect to make proxy connections must use the trusted-ca-bundle for all HTTPS requests to the proxy, and may use the trusted-ca-bundle for non-proxy HTTPS requests as well.\n\nThe namespace for the ConfigMap referenced by trustedCA is \"openshift-config\". Here is an example ConfigMap (in yaml):\n\napiVersion: v1 kind: ConfigMap metadata:\n name: user-ca-bundle\n namespace: openshift-config\n data:\n ca-bundle.crt: |", -} - -func (ProxySpec) SwaggerDoc() map[string]string { - return map_ProxySpec -} - -var map_ProxyStatus = map[string]string{ - "": "ProxyStatus shows current known state of the cluster proxy.", - "httpProxy": "httpProxy is the URL of the proxy for HTTP requests.", - "httpsProxy": "httpsProxy is the URL of the proxy for HTTPS requests.", - "noProxy": "noProxy is a comma-separated list of hostnames and/or CIDRs for which the proxy should not be used.", -} - -func (ProxyStatus) SwaggerDoc() map[string]string { - return map_ProxyStatus -} - -var map_Scheduler = map[string]string{ - "": "Scheduler holds cluster-wide config information to run the Kubernetes Scheduler and influence its placement decisions. The canonical name for this config is `cluster`.", - "spec": "spec holds user settable values for configuration", - "status": "status holds observed values from the cluster. They may not be overridden.", -} - -func (Scheduler) SwaggerDoc() map[string]string { - return map_Scheduler -} - -var map_SchedulerSpec = map[string]string{ - "policy": "policy is a reference to a ConfigMap containing scheduler policy which has user specified predicates and priorities. If this ConfigMap is not available scheduler will default to use DefaultAlgorithmProvider. The namespace for this configmap is openshift-config.", - "defaultNodeSelector": "defaultNodeSelector helps set the cluster-wide default node selector to restrict pod placement to specific nodes. This is applied to the pods created in all namespaces and creates an intersection with any existing nodeSelectors already set on a pod, additionally constraining that pod's selector. For example, defaultNodeSelector: \"type=user-node,region=east\" would set nodeSelector field in pod spec to \"type=user-node,region=east\" to all pods created in all namespaces. Namespaces having project-wide node selectors won't be impacted even if this field is set. This adds an annotation section to the namespace. For example, if a new namespace is created with node-selector='type=user-node,region=east', the annotation openshift.io/node-selector: type=user-node,region=east gets added to the project. When the openshift.io/node-selector annotation is set on the project the value is used in preference to the value we are setting for defaultNodeSelector field. For instance, openshift.io/node-selector: \"type=user-node,region=west\" means that the default of \"type=user-node,region=east\" set in defaultNodeSelector would not be applied.", - "mastersSchedulable": "MastersSchedulable allows masters nodes to be schedulable. When this flag is turned on, all the master nodes in the cluster will be made schedulable, so that workload pods can run on them. The default value for this field is false, meaning none of the master nodes are schedulable. Important Note: Once the workload pods start running on the master nodes, extreme care must be taken to ensure that cluster-critical control plane components are not impacted. Please turn on this field after doing due diligence.", -} - -func (SchedulerSpec) SwaggerDoc() map[string]string { - return map_SchedulerSpec -} - -var map_CustomTLSProfile = map[string]string{ - "": "CustomTLSProfile is a user-defined TLS security profile. Be extremely careful using a custom TLS profile as invalid configurations can be catastrophic.", -} - -func (CustomTLSProfile) SwaggerDoc() map[string]string { - return map_CustomTLSProfile -} - -var map_IntermediateTLSProfile = map[string]string{ - "": "IntermediateTLSProfile is a TLS security profile based on: https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29", -} - -func (IntermediateTLSProfile) SwaggerDoc() map[string]string { - return map_IntermediateTLSProfile -} - -var map_ModernTLSProfile = map[string]string{ - "": "ModernTLSProfile is a TLS security profile based on: https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility", -} - -func (ModernTLSProfile) SwaggerDoc() map[string]string { - return map_ModernTLSProfile -} - -var map_OldTLSProfile = map[string]string{ - "": "OldTLSProfile is a TLS security profile based on: https://wiki.mozilla.org/Security/Server_Side_TLS#Old_backward_compatibility", -} - -func (OldTLSProfile) SwaggerDoc() map[string]string { - return map_OldTLSProfile -} - -var map_TLSProfileSpec = map[string]string{ - "": "TLSProfileSpec is the desired behavior of a TLSSecurityProfile.", - "ciphers": "ciphers is used to specify the cipher algorithms that are negotiated during the TLS handshake. Operators may remove entries their operands do not support. For example, to use DES-CBC3-SHA (yaml):\n\n ciphers:\n - DES-CBC3-SHA", - "minTLSVersion": "minTLSVersion is used to specify the minimal version of the TLS protocol that is negotiated during the TLS handshake. For example, to use TLS versions 1.1, 1.2 and 1.3 (yaml):\n\n minTLSVersion: TLSv1.1\n\nNOTE: currently the highest minTLSVersion allowed is VersionTLS12", -} - -func (TLSProfileSpec) SwaggerDoc() map[string]string { - return map_TLSProfileSpec -} - -var map_TLSSecurityProfile = map[string]string{ - "": "TLSSecurityProfile defines the schema for a TLS security profile. This object is used by operators to apply TLS security settings to operands.", - "type": "type is one of Old, Intermediate, Modern or Custom. Custom provides the ability to specify individual TLS security profile parameters. Old, Intermediate and Modern are TLS security profiles based on:\n\nhttps://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations\n\nThe profiles are intent based, so they may change over time as new ciphers are developed and existing ciphers are found to be insecure. Depending on precisely which ciphers are available to a process, the list may be reduced.\n\nNote that the Modern profile is currently not supported because it is not yet well adopted by common software libraries.", - "old": "old is a TLS security profile based on:\n\nhttps://wiki.mozilla.org/Security/Server_Side_TLS#Old_backward_compatibility\n\nand looks like this (yaml):\n\n ciphers:\n - TLS_AES_128_GCM_SHA256\n - TLS_AES_256_GCM_SHA384\n - TLS_CHACHA20_POLY1305_SHA256\n - ECDHE-ECDSA-AES128-GCM-SHA256\n - ECDHE-RSA-AES128-GCM-SHA256\n - ECDHE-ECDSA-AES256-GCM-SHA384\n - ECDHE-RSA-AES256-GCM-SHA384\n - ECDHE-ECDSA-CHACHA20-POLY1305\n - ECDHE-RSA-CHACHA20-POLY1305\n - DHE-RSA-AES128-GCM-SHA256\n - DHE-RSA-AES256-GCM-SHA384\n - DHE-RSA-CHACHA20-POLY1305\n - ECDHE-ECDSA-AES128-SHA256\n - ECDHE-RSA-AES128-SHA256\n - ECDHE-ECDSA-AES128-SHA\n - ECDHE-RSA-AES128-SHA\n - ECDHE-ECDSA-AES256-SHA384\n - ECDHE-RSA-AES256-SHA384\n - ECDHE-ECDSA-AES256-SHA\n - ECDHE-RSA-AES256-SHA\n - DHE-RSA-AES128-SHA256\n - DHE-RSA-AES256-SHA256\n - AES128-GCM-SHA256\n - AES256-GCM-SHA384\n - AES128-SHA256\n - AES256-SHA256\n - AES128-SHA\n - AES256-SHA\n - DES-CBC3-SHA\n minTLSVersion: TLSv1.0", - "intermediate": "intermediate is a TLS security profile based on:\n\nhttps://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28recommended.29\n\nand looks like this (yaml):\n\n ciphers:\n - TLS_AES_128_GCM_SHA256\n - TLS_AES_256_GCM_SHA384\n - TLS_CHACHA20_POLY1305_SHA256\n - ECDHE-ECDSA-AES128-GCM-SHA256\n - ECDHE-RSA-AES128-GCM-SHA256\n - ECDHE-ECDSA-AES256-GCM-SHA384\n - ECDHE-RSA-AES256-GCM-SHA384\n - ECDHE-ECDSA-CHACHA20-POLY1305\n - ECDHE-RSA-CHACHA20-POLY1305\n - DHE-RSA-AES128-GCM-SHA256\n - DHE-RSA-AES256-GCM-SHA384\n minTLSVersion: TLSv1.2", - "modern": "modern is a TLS security profile based on:\n\nhttps://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility\n\nand looks like this (yaml):\n\n ciphers:\n - TLS_AES_128_GCM_SHA256\n - TLS_AES_256_GCM_SHA384\n - TLS_CHACHA20_POLY1305_SHA256\n minTLSVersion: TLSv1.3\n\nNOTE: Currently unsupported.", - "custom": "custom is a user-defined TLS security profile. Be extremely careful using a custom profile as invalid configurations can be catastrophic. An example custom profile looks like this:\n\n ciphers:\n - ECDHE-ECDSA-CHACHA20-POLY1305\n - ECDHE-RSA-CHACHA20-POLY1305\n - ECDHE-RSA-AES128-GCM-SHA256\n - ECDHE-ECDSA-AES128-GCM-SHA256\n minTLSVersion: TLSv1.1", -} - -func (TLSSecurityProfile) SwaggerDoc() map[string]string { - return map_TLSSecurityProfile -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/github.com/openshift/api/image/docker10/doc.go b/vendor/github.com/openshift/api/image/docker10/doc.go deleted file mode 100644 index cc194d24db2ca..0000000000000 --- a/vendor/github.com/openshift/api/image/docker10/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// +k8s:deepcopy-gen=package,register - -// Package docker10 is the docker10 version of the API. -package docker10 diff --git a/vendor/github.com/openshift/api/image/docker10/dockertypes.go b/vendor/github.com/openshift/api/image/docker10/dockertypes.go deleted file mode 100644 index a985553db407d..0000000000000 --- a/vendor/github.com/openshift/api/image/docker10/dockertypes.go +++ /dev/null @@ -1,56 +0,0 @@ -package docker10 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// DockerImage is the type representing a container image and its various properties when -// retrieved from the Docker client API. -type DockerImage struct { - metav1.TypeMeta `json:",inline"` - - ID string `json:"Id"` - Parent string `json:"Parent,omitempty"` - Comment string `json:"Comment,omitempty"` - Created metav1.Time `json:"Created,omitempty"` - Container string `json:"Container,omitempty"` - ContainerConfig DockerConfig `json:"ContainerConfig,omitempty"` - DockerVersion string `json:"DockerVersion,omitempty"` - Author string `json:"Author,omitempty"` - Config *DockerConfig `json:"Config,omitempty"` - Architecture string `json:"Architecture,omitempty"` - Size int64 `json:"Size,omitempty"` -} - -// DockerConfig is the list of configuration options used when creating a container. -type DockerConfig struct { - Hostname string `json:"Hostname,omitempty"` - Domainname string `json:"Domainname,omitempty"` - User string `json:"User,omitempty"` - Memory int64 `json:"Memory,omitempty"` - MemorySwap int64 `json:"MemorySwap,omitempty"` - CPUShares int64 `json:"CpuShares,omitempty"` - CPUSet string `json:"Cpuset,omitempty"` - AttachStdin bool `json:"AttachStdin,omitempty"` - AttachStdout bool `json:"AttachStdout,omitempty"` - AttachStderr bool `json:"AttachStderr,omitempty"` - PortSpecs []string `json:"PortSpecs,omitempty"` - ExposedPorts map[string]struct{} `json:"ExposedPorts,omitempty"` - Tty bool `json:"Tty,omitempty"` - OpenStdin bool `json:"OpenStdin,omitempty"` - StdinOnce bool `json:"StdinOnce,omitempty"` - Env []string `json:"Env,omitempty"` - Cmd []string `json:"Cmd,omitempty"` - DNS []string `json:"Dns,omitempty"` // For Docker API v1.9 and below only - Image string `json:"Image,omitempty"` - Volumes map[string]struct{} `json:"Volumes,omitempty"` - VolumesFrom string `json:"VolumesFrom,omitempty"` - WorkingDir string `json:"WorkingDir,omitempty"` - Entrypoint []string `json:"Entrypoint,omitempty"` - NetworkDisabled bool `json:"NetworkDisabled,omitempty"` - SecurityOpts []string `json:"SecurityOpts,omitempty"` - OnBuild []string `json:"OnBuild,omitempty"` - Labels map[string]string `json:"Labels,omitempty"` -} diff --git a/vendor/github.com/openshift/api/image/docker10/register.go b/vendor/github.com/openshift/api/image/docker10/register.go deleted file mode 100644 index 31d616a06c0c9..0000000000000 --- a/vendor/github.com/openshift/api/image/docker10/register.go +++ /dev/null @@ -1,38 +0,0 @@ -package docker10 - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -const ( - GroupName = "image.openshift.io" - LegacyGroupName = "" -) - -// SchemeGroupVersion is group version used to register these objects -var ( - SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "1.0"} - LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: "1.0"} - - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) - - AddToScheme = SchemeBuilder.AddToScheme - AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme -) - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(SchemeGroupVersion, - &DockerImage{}, - ) - return nil -} - -func addLegacyKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(LegacySchemeGroupVersion, - &DockerImage{}, - ) - return nil -} diff --git a/vendor/github.com/openshift/api/image/docker10/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/image/docker10/zz_generated.deepcopy.go deleted file mode 100644 index b59f75ac21742..0000000000000 --- a/vendor/github.com/openshift/api/image/docker10/zz_generated.deepcopy.go +++ /dev/null @@ -1,113 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package docker10 - -import ( - 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 *DockerConfig) DeepCopyInto(out *DockerConfig) { - *out = *in - if in.PortSpecs != nil { - in, out := &in.PortSpecs, &out.PortSpecs - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.ExposedPorts != nil { - in, out := &in.ExposedPorts, &out.ExposedPorts - *out = make(map[string]struct{}, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Cmd != nil { - in, out := &in.Cmd, &out.Cmd - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.DNS != nil { - in, out := &in.DNS, &out.DNS - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Volumes != nil { - in, out := &in.Volumes, &out.Volumes - *out = make(map[string]struct{}, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Entrypoint != nil { - in, out := &in.Entrypoint, &out.Entrypoint - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.SecurityOpts != nil { - in, out := &in.SecurityOpts, &out.SecurityOpts - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.OnBuild != nil { - in, out := &in.OnBuild, &out.OnBuild - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Labels != nil { - in, out := &in.Labels, &out.Labels - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DockerConfig. -func (in *DockerConfig) DeepCopy() *DockerConfig { - if in == nil { - return nil - } - out := new(DockerConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DockerImage) DeepCopyInto(out *DockerImage) { - *out = *in - out.TypeMeta = in.TypeMeta - in.Created.DeepCopyInto(&out.Created) - in.ContainerConfig.DeepCopyInto(&out.ContainerConfig) - if in.Config != nil { - in, out := &in.Config, &out.Config - *out = new(DockerConfig) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DockerImage. -func (in *DockerImage) DeepCopy() *DockerImage { - if in == nil { - return nil - } - out := new(DockerImage) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DockerImage) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/vendor/github.com/openshift/api/image/dockerpre012/deepcopy.go b/vendor/github.com/openshift/api/image/dockerpre012/deepcopy.go deleted file mode 100644 index ddeb4403c4d9f..0000000000000 --- a/vendor/github.com/openshift/api/image/dockerpre012/deepcopy.go +++ /dev/null @@ -1,18 +0,0 @@ -package dockerpre012 - -// DeepCopyInto is manually built to copy the (probably bugged) time.Time -func (in *ImagePre012) DeepCopyInto(out *ImagePre012) { - *out = *in - out.Created = in.Created - in.ContainerConfig.DeepCopyInto(&out.ContainerConfig) - if in.Config != nil { - in, out := &in.Config, &out.Config - if *in == nil { - *out = nil - } else { - *out = new(Config) - (*in).DeepCopyInto(*out) - } - } - return -} diff --git a/vendor/github.com/openshift/api/image/dockerpre012/doc.go b/vendor/github.com/openshift/api/image/dockerpre012/doc.go deleted file mode 100644 index e4a56260f10b9..0000000000000 --- a/vendor/github.com/openshift/api/image/dockerpre012/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// +k8s:deepcopy-gen=package,register - -// Package dockerpre012 is the dockerpre012 version of the API. -package dockerpre012 diff --git a/vendor/github.com/openshift/api/image/dockerpre012/dockertypes.go b/vendor/github.com/openshift/api/image/dockerpre012/dockertypes.go deleted file mode 100644 index 685e0b68c5d90..0000000000000 --- a/vendor/github.com/openshift/api/image/dockerpre012/dockertypes.go +++ /dev/null @@ -1,136 +0,0 @@ -package dockerpre012 - -import ( - "time" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// DockerImage is for earlier versions of the Docker API (pre-012 to be specific). It is also the -// version of metadata that the container image registry uses to persist metadata. -type DockerImage struct { - metav1.TypeMeta `json:",inline"` - - ID string `json:"id"` - Parent string `json:"parent,omitempty"` - Comment string `json:"comment,omitempty"` - Created metav1.Time `json:"created"` - Container string `json:"container,omitempty"` - ContainerConfig DockerConfig `json:"container_config,omitempty"` - DockerVersion string `json:"docker_version,omitempty"` - Author string `json:"author,omitempty"` - Config *DockerConfig `json:"config,omitempty"` - Architecture string `json:"architecture,omitempty"` - Size int64 `json:"size,omitempty"` -} - -// DockerConfig is the list of configuration options used when creating a container. -type DockerConfig struct { - Hostname string `json:"Hostname,omitempty"` - Domainname string `json:"Domainname,omitempty"` - User string `json:"User,omitempty"` - Memory int64 `json:"Memory,omitempty"` - MemorySwap int64 `json:"MemorySwap,omitempty"` - CPUShares int64 `json:"CpuShares,omitempty"` - CPUSet string `json:"Cpuset,omitempty"` - AttachStdin bool `json:"AttachStdin,omitempty"` - AttachStdout bool `json:"AttachStdout,omitempty"` - AttachStderr bool `json:"AttachStderr,omitempty"` - PortSpecs []string `json:"PortSpecs,omitempty"` - ExposedPorts map[string]struct{} `json:"ExposedPorts,omitempty"` - Tty bool `json:"Tty,omitempty"` - OpenStdin bool `json:"OpenStdin,omitempty"` - StdinOnce bool `json:"StdinOnce,omitempty"` - Env []string `json:"Env,omitempty"` - Cmd []string `json:"Cmd,omitempty"` - DNS []string `json:"Dns,omitempty"` // For Docker API v1.9 and below only - Image string `json:"Image,omitempty"` - Volumes map[string]struct{} `json:"Volumes,omitempty"` - VolumesFrom string `json:"VolumesFrom,omitempty"` - WorkingDir string `json:"WorkingDir,omitempty"` - Entrypoint []string `json:"Entrypoint,omitempty"` - NetworkDisabled bool `json:"NetworkDisabled,omitempty"` - SecurityOpts []string `json:"SecurityOpts,omitempty"` - OnBuild []string `json:"OnBuild,omitempty"` - // This field is not supported in pre012 and will always be empty. - Labels map[string]string `json:"Labels,omitempty"` -} - -// ImagePre012 serves the same purpose as the Image type except that it is for -// earlier versions of the Docker API (pre-012 to be specific) -// Exists only for legacy conversion, copy of type from fsouza/go-dockerclient -type ImagePre012 struct { - ID string `json:"id"` - Parent string `json:"parent,omitempty"` - Comment string `json:"comment,omitempty"` - Created time.Time `json:"created"` - Container string `json:"container,omitempty"` - ContainerConfig Config `json:"container_config,omitempty"` - DockerVersion string `json:"docker_version,omitempty"` - Author string `json:"author,omitempty"` - Config *Config `json:"config,omitempty"` - Architecture string `json:"architecture,omitempty"` - Size int64 `json:"size,omitempty"` -} - -// Config is the list of configuration options used when creating a container. -// Config does not contain the options that are specific to starting a container on a -// given host. Those are contained in HostConfig -// Exists only for legacy conversion, copy of type from fsouza/go-dockerclient -type Config struct { - Hostname string `json:"Hostname,omitempty" yaml:"Hostname,omitempty"` - Domainname string `json:"Domainname,omitempty" yaml:"Domainname,omitempty"` - User string `json:"User,omitempty" yaml:"User,omitempty"` - Memory int64 `json:"Memory,omitempty" yaml:"Memory,omitempty"` - MemorySwap int64 `json:"MemorySwap,omitempty" yaml:"MemorySwap,omitempty"` - MemoryReservation int64 `json:"MemoryReservation,omitempty" yaml:"MemoryReservation,omitempty"` - KernelMemory int64 `json:"KernelMemory,omitempty" yaml:"KernelMemory,omitempty"` - PidsLimit int64 `json:"PidsLimit,omitempty" yaml:"PidsLimit,omitempty"` - CPUShares int64 `json:"CpuShares,omitempty" yaml:"CpuShares,omitempty"` - CPUSet string `json:"Cpuset,omitempty" yaml:"Cpuset,omitempty"` - AttachStdin bool `json:"AttachStdin,omitempty" yaml:"AttachStdin,omitempty"` - AttachStdout bool `json:"AttachStdout,omitempty" yaml:"AttachStdout,omitempty"` - AttachStderr bool `json:"AttachStderr,omitempty" yaml:"AttachStderr,omitempty"` - PortSpecs []string `json:"PortSpecs,omitempty" yaml:"PortSpecs,omitempty"` - ExposedPorts map[Port]struct{} `json:"ExposedPorts,omitempty" yaml:"ExposedPorts,omitempty"` - StopSignal string `json:"StopSignal,omitempty" yaml:"StopSignal,omitempty"` - Tty bool `json:"Tty,omitempty" yaml:"Tty,omitempty"` - OpenStdin bool `json:"OpenStdin,omitempty" yaml:"OpenStdin,omitempty"` - StdinOnce bool `json:"StdinOnce,omitempty" yaml:"StdinOnce,omitempty"` - Env []string `json:"Env,omitempty" yaml:"Env,omitempty"` - Cmd []string `json:"Cmd" yaml:"Cmd"` - DNS []string `json:"Dns,omitempty" yaml:"Dns,omitempty"` // For Docker API v1.9 and below only - Image string `json:"Image,omitempty" yaml:"Image,omitempty"` - Volumes map[string]struct{} `json:"Volumes,omitempty" yaml:"Volumes,omitempty"` - VolumeDriver string `json:"VolumeDriver,omitempty" yaml:"VolumeDriver,omitempty"` - VolumesFrom string `json:"VolumesFrom,omitempty" yaml:"VolumesFrom,omitempty"` - WorkingDir string `json:"WorkingDir,omitempty" yaml:"WorkingDir,omitempty"` - MacAddress string `json:"MacAddress,omitempty" yaml:"MacAddress,omitempty"` - Entrypoint []string `json:"Entrypoint" yaml:"Entrypoint"` - NetworkDisabled bool `json:"NetworkDisabled,omitempty" yaml:"NetworkDisabled,omitempty"` - SecurityOpts []string `json:"SecurityOpts,omitempty" yaml:"SecurityOpts,omitempty"` - OnBuild []string `json:"OnBuild,omitempty" yaml:"OnBuild,omitempty"` - Mounts []Mount `json:"Mounts,omitempty" yaml:"Mounts,omitempty"` - Labels map[string]string `json:"Labels,omitempty" yaml:"Labels,omitempty"` -} - -// Mount represents a mount point in the container. -// -// It has been added in the version 1.20 of the Docker API, available since -// Docker 1.8. -// Exists only for legacy conversion, copy of type from fsouza/go-dockerclient -type Mount struct { - Name string - Source string - Destination string - Driver string - Mode string - RW bool -} - -// Port represents the port number and the protocol, in the form -// /. For example: 80/tcp. -// Exists only for legacy conversion, copy of type from fsouza/go-dockerclient -type Port string diff --git a/vendor/github.com/openshift/api/image/dockerpre012/register.go b/vendor/github.com/openshift/api/image/dockerpre012/register.go deleted file mode 100644 index 469806dbe7447..0000000000000 --- a/vendor/github.com/openshift/api/image/dockerpre012/register.go +++ /dev/null @@ -1,37 +0,0 @@ -package dockerpre012 - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -const ( - GroupName = "image.openshift.io" - LegacyGroupName = "" -) - -var ( - SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "pre012"} - LegacySchemeGroupVersion = schema.GroupVersion{Group: LegacyGroupName, Version: "pre012"} - - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - AddToScheme = SchemeBuilder.AddToScheme - - LegacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) - AddToSchemeInCoreGroup = LegacySchemeBuilder.AddToScheme -) - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(SchemeGroupVersion, - &DockerImage{}, - ) - return nil -} - -func addLegacyKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(LegacySchemeGroupVersion, - &DockerImage{}, - ) - return nil -} diff --git a/vendor/github.com/openshift/api/image/dockerpre012/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/image/dockerpre012/zz_generated.deepcopy.go deleted file mode 100644 index d9042704ad8e0..0000000000000 --- a/vendor/github.com/openshift/api/image/dockerpre012/zz_generated.deepcopy.go +++ /dev/null @@ -1,216 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package dockerpre012 - -import ( - 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 *Config) DeepCopyInto(out *Config) { - *out = *in - if in.PortSpecs != nil { - in, out := &in.PortSpecs, &out.PortSpecs - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.ExposedPorts != nil { - in, out := &in.ExposedPorts, &out.ExposedPorts - *out = make(map[Port]struct{}, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Cmd != nil { - in, out := &in.Cmd, &out.Cmd - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.DNS != nil { - in, out := &in.DNS, &out.DNS - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Volumes != nil { - in, out := &in.Volumes, &out.Volumes - *out = make(map[string]struct{}, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Entrypoint != nil { - in, out := &in.Entrypoint, &out.Entrypoint - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.SecurityOpts != nil { - in, out := &in.SecurityOpts, &out.SecurityOpts - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.OnBuild != nil { - in, out := &in.OnBuild, &out.OnBuild - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Mounts != nil { - in, out := &in.Mounts, &out.Mounts - *out = make([]Mount, len(*in)) - copy(*out, *in) - } - if in.Labels != nil { - in, out := &in.Labels, &out.Labels - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Config. -func (in *Config) DeepCopy() *Config { - if in == nil { - return nil - } - out := new(Config) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DockerConfig) DeepCopyInto(out *DockerConfig) { - *out = *in - if in.PortSpecs != nil { - in, out := &in.PortSpecs, &out.PortSpecs - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.ExposedPorts != nil { - in, out := &in.ExposedPorts, &out.ExposedPorts - *out = make(map[string]struct{}, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Env != nil { - in, out := &in.Env, &out.Env - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Cmd != nil { - in, out := &in.Cmd, &out.Cmd - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.DNS != nil { - in, out := &in.DNS, &out.DNS - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Volumes != nil { - in, out := &in.Volumes, &out.Volumes - *out = make(map[string]struct{}, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Entrypoint != nil { - in, out := &in.Entrypoint, &out.Entrypoint - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.SecurityOpts != nil { - in, out := &in.SecurityOpts, &out.SecurityOpts - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.OnBuild != nil { - in, out := &in.OnBuild, &out.OnBuild - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Labels != nil { - in, out := &in.Labels, &out.Labels - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DockerConfig. -func (in *DockerConfig) DeepCopy() *DockerConfig { - if in == nil { - return nil - } - out := new(DockerConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DockerImage) DeepCopyInto(out *DockerImage) { - *out = *in - out.TypeMeta = in.TypeMeta - in.Created.DeepCopyInto(&out.Created) - in.ContainerConfig.DeepCopyInto(&out.ContainerConfig) - if in.Config != nil { - in, out := &in.Config, &out.Config - *out = new(DockerConfig) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DockerImage. -func (in *DockerImage) DeepCopy() *DockerImage { - if in == nil { - return nil - } - out := new(DockerImage) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DockerImage) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImagePre012. -func (in *ImagePre012) DeepCopy() *ImagePre012 { - if in == nil { - return nil - } - out := new(ImagePre012) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Mount) DeepCopyInto(out *Mount) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Mount. -func (in *Mount) DeepCopy() *Mount { - if in == nil { - return nil - } - out := new(Mount) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/github.com/openshift/api/image/v1/consts.go b/vendor/github.com/openshift/api/image/v1/consts.go deleted file mode 100644 index 11f57a44a3693..0000000000000 --- a/vendor/github.com/openshift/api/image/v1/consts.go +++ /dev/null @@ -1,69 +0,0 @@ -package v1 - -import corev1 "k8s.io/api/core/v1" - -const ( - // ManagedByOpenShiftAnnotation indicates that an image is managed by OpenShift's registry. - ManagedByOpenShiftAnnotation = "openshift.io/image.managed" - - // DockerImageRepositoryCheckAnnotation indicates that OpenShift has - // attempted to import tag and image information from an external Docker - // image repository. - DockerImageRepositoryCheckAnnotation = "openshift.io/image.dockerRepositoryCheck" - - // InsecureRepositoryAnnotation may be set true on an image stream to allow insecure access to pull content. - InsecureRepositoryAnnotation = "openshift.io/image.insecureRepository" - - // ExcludeImageSecretAnnotation indicates that a secret should not be returned by imagestream/secrets. - ExcludeImageSecretAnnotation = "openshift.io/image.excludeSecret" - - // DockerImageLayersOrderAnnotation describes layers order in the docker image. - DockerImageLayersOrderAnnotation = "image.openshift.io/dockerLayersOrder" - - // DockerImageLayersOrderAscending indicates that image layers are sorted in - // the order of their addition (from oldest to latest) - DockerImageLayersOrderAscending = "ascending" - - // DockerImageLayersOrderDescending indicates that layers are sorted in - // reversed order of their addition (from newest to oldest). - DockerImageLayersOrderDescending = "descending" - - // ImporterPreferArchAnnotation represents an architecture that should be - // selected if an image uses a manifest list and it should be - // downconverted. - ImporterPreferArchAnnotation = "importer.image.openshift.io/prefer-arch" - - // ImporterPreferOSAnnotation represents an operation system that should - // be selected if an image uses a manifest list and it should be - // downconverted. - ImporterPreferOSAnnotation = "importer.image.openshift.io/prefer-os" - - // ImageManifestBlobStoredAnnotation indicates that manifest and config blobs of image are stored in on - // storage of integrated Docker registry. - ImageManifestBlobStoredAnnotation = "image.openshift.io/manifestBlobStored" - - // DefaultImageTag is used when an image tag is needed and the configuration does not specify a tag to use. - DefaultImageTag = "latest" - - // ResourceImageStreams represents a number of image streams in a project. - ResourceImageStreams corev1.ResourceName = "openshift.io/imagestreams" - - // ResourceImageStreamImages represents a number of unique references to images in all image stream - // statuses of a project. - ResourceImageStreamImages corev1.ResourceName = "openshift.io/images" - - // ResourceImageStreamTags represents a number of unique references to images in all image stream specs - // of a project. - ResourceImageStreamTags corev1.ResourceName = "openshift.io/image-tags" - - // Limit that applies to images. Used with a max["storage"] LimitRangeItem to set - // the maximum size of an image. - LimitTypeImage corev1.LimitType = "openshift.io/Image" - - // Limit that applies to image streams. Used with a max[resource] LimitRangeItem to set the maximum number - // of resource. Where the resource is one of "openshift.io/images" and "openshift.io/image-tags". - LimitTypeImageStream corev1.LimitType = "openshift.io/ImageStream" - - // The supported type of image signature. - ImageSignatureTypeAtomicImageV1 string = "AtomicImageV1" -) diff --git a/vendor/github.com/openshift/api/image/v1/doc.go b/vendor/github.com/openshift/api/image/v1/doc.go deleted file mode 100644 index e57d45bbf9440..0000000000000 --- a/vendor/github.com/openshift/api/image/v1/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=github.com/openshift/origin/pkg/image/apis/image -// +k8s:defaulter-gen=TypeMeta -// +k8s:openapi-gen=true - -// +groupName=image.openshift.io -// Package v1 is the v1 version of the API. -package v1 diff --git a/vendor/github.com/openshift/api/image/v1/generated.pb.go b/vendor/github.com/openshift/api/image/v1/generated.pb.go deleted file mode 100644 index 1a6b9e69fe8c7..0000000000000 --- a/vendor/github.com/openshift/api/image/v1/generated.pb.go +++ /dev/null @@ -1,10890 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: github.com/openshift/api/image/v1/generated.proto - -package v1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - k8s_io_api_core_v1 "k8s.io/api/core/v1" - v11 "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *DockerImageReference) Reset() { *m = DockerImageReference{} } -func (*DockerImageReference) ProtoMessage() {} -func (*DockerImageReference) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{0} -} -func (m *DockerImageReference) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *DockerImageReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *DockerImageReference) XXX_Merge(src proto.Message) { - xxx_messageInfo_DockerImageReference.Merge(m, src) -} -func (m *DockerImageReference) XXX_Size() int { - return m.Size() -} -func (m *DockerImageReference) XXX_DiscardUnknown() { - xxx_messageInfo_DockerImageReference.DiscardUnknown(m) -} - -var xxx_messageInfo_DockerImageReference proto.InternalMessageInfo - -func (m *Image) Reset() { *m = Image{} } -func (*Image) ProtoMessage() {} -func (*Image) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{1} -} -func (m *Image) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Image) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *Image) XXX_Merge(src proto.Message) { - xxx_messageInfo_Image.Merge(m, src) -} -func (m *Image) XXX_Size() int { - return m.Size() -} -func (m *Image) XXX_DiscardUnknown() { - xxx_messageInfo_Image.DiscardUnknown(m) -} - -var xxx_messageInfo_Image proto.InternalMessageInfo - -func (m *ImageBlobReferences) Reset() { *m = ImageBlobReferences{} } -func (*ImageBlobReferences) ProtoMessage() {} -func (*ImageBlobReferences) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{2} -} -func (m *ImageBlobReferences) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageBlobReferences) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageBlobReferences) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageBlobReferences.Merge(m, src) -} -func (m *ImageBlobReferences) XXX_Size() int { - return m.Size() -} -func (m *ImageBlobReferences) XXX_DiscardUnknown() { - xxx_messageInfo_ImageBlobReferences.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageBlobReferences proto.InternalMessageInfo - -func (m *ImageImportSpec) Reset() { *m = ImageImportSpec{} } -func (*ImageImportSpec) ProtoMessage() {} -func (*ImageImportSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{3} -} -func (m *ImageImportSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageImportSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageImportSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageImportSpec.Merge(m, src) -} -func (m *ImageImportSpec) XXX_Size() int { - return m.Size() -} -func (m *ImageImportSpec) XXX_DiscardUnknown() { - xxx_messageInfo_ImageImportSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageImportSpec proto.InternalMessageInfo - -func (m *ImageImportStatus) Reset() { *m = ImageImportStatus{} } -func (*ImageImportStatus) ProtoMessage() {} -func (*ImageImportStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{4} -} -func (m *ImageImportStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageImportStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageImportStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageImportStatus.Merge(m, src) -} -func (m *ImageImportStatus) XXX_Size() int { - return m.Size() -} -func (m *ImageImportStatus) XXX_DiscardUnknown() { - xxx_messageInfo_ImageImportStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageImportStatus proto.InternalMessageInfo - -func (m *ImageLayer) Reset() { *m = ImageLayer{} } -func (*ImageLayer) ProtoMessage() {} -func (*ImageLayer) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{5} -} -func (m *ImageLayer) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageLayer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageLayer) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageLayer.Merge(m, src) -} -func (m *ImageLayer) XXX_Size() int { - return m.Size() -} -func (m *ImageLayer) XXX_DiscardUnknown() { - xxx_messageInfo_ImageLayer.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageLayer proto.InternalMessageInfo - -func (m *ImageLayerData) Reset() { *m = ImageLayerData{} } -func (*ImageLayerData) ProtoMessage() {} -func (*ImageLayerData) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{6} -} -func (m *ImageLayerData) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageLayerData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageLayerData) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageLayerData.Merge(m, src) -} -func (m *ImageLayerData) XXX_Size() int { - return m.Size() -} -func (m *ImageLayerData) XXX_DiscardUnknown() { - xxx_messageInfo_ImageLayerData.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageLayerData proto.InternalMessageInfo - -func (m *ImageList) Reset() { *m = ImageList{} } -func (*ImageList) ProtoMessage() {} -func (*ImageList) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{7} -} -func (m *ImageList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageList) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageList.Merge(m, src) -} -func (m *ImageList) XXX_Size() int { - return m.Size() -} -func (m *ImageList) XXX_DiscardUnknown() { - xxx_messageInfo_ImageList.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageList proto.InternalMessageInfo - -func (m *ImageLookupPolicy) Reset() { *m = ImageLookupPolicy{} } -func (*ImageLookupPolicy) ProtoMessage() {} -func (*ImageLookupPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{8} -} -func (m *ImageLookupPolicy) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageLookupPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageLookupPolicy) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageLookupPolicy.Merge(m, src) -} -func (m *ImageLookupPolicy) XXX_Size() int { - return m.Size() -} -func (m *ImageLookupPolicy) XXX_DiscardUnknown() { - xxx_messageInfo_ImageLookupPolicy.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageLookupPolicy proto.InternalMessageInfo - -func (m *ImageSignature) Reset() { *m = ImageSignature{} } -func (*ImageSignature) ProtoMessage() {} -func (*ImageSignature) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{9} -} -func (m *ImageSignature) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageSignature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageSignature) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageSignature.Merge(m, src) -} -func (m *ImageSignature) XXX_Size() int { - return m.Size() -} -func (m *ImageSignature) XXX_DiscardUnknown() { - xxx_messageInfo_ImageSignature.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageSignature proto.InternalMessageInfo - -func (m *ImageStream) Reset() { *m = ImageStream{} } -func (*ImageStream) ProtoMessage() {} -func (*ImageStream) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{10} -} -func (m *ImageStream) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageStream) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageStream) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageStream.Merge(m, src) -} -func (m *ImageStream) XXX_Size() int { - return m.Size() -} -func (m *ImageStream) XXX_DiscardUnknown() { - xxx_messageInfo_ImageStream.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageStream proto.InternalMessageInfo - -func (m *ImageStreamImage) Reset() { *m = ImageStreamImage{} } -func (*ImageStreamImage) ProtoMessage() {} -func (*ImageStreamImage) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{11} -} -func (m *ImageStreamImage) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageStreamImage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageStreamImage) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageStreamImage.Merge(m, src) -} -func (m *ImageStreamImage) XXX_Size() int { - return m.Size() -} -func (m *ImageStreamImage) XXX_DiscardUnknown() { - xxx_messageInfo_ImageStreamImage.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageStreamImage proto.InternalMessageInfo - -func (m *ImageStreamImport) Reset() { *m = ImageStreamImport{} } -func (*ImageStreamImport) ProtoMessage() {} -func (*ImageStreamImport) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{12} -} -func (m *ImageStreamImport) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageStreamImport) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageStreamImport) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageStreamImport.Merge(m, src) -} -func (m *ImageStreamImport) XXX_Size() int { - return m.Size() -} -func (m *ImageStreamImport) XXX_DiscardUnknown() { - xxx_messageInfo_ImageStreamImport.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageStreamImport proto.InternalMessageInfo - -func (m *ImageStreamImportSpec) Reset() { *m = ImageStreamImportSpec{} } -func (*ImageStreamImportSpec) ProtoMessage() {} -func (*ImageStreamImportSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{13} -} -func (m *ImageStreamImportSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageStreamImportSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageStreamImportSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageStreamImportSpec.Merge(m, src) -} -func (m *ImageStreamImportSpec) XXX_Size() int { - return m.Size() -} -func (m *ImageStreamImportSpec) XXX_DiscardUnknown() { - xxx_messageInfo_ImageStreamImportSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageStreamImportSpec proto.InternalMessageInfo - -func (m *ImageStreamImportStatus) Reset() { *m = ImageStreamImportStatus{} } -func (*ImageStreamImportStatus) ProtoMessage() {} -func (*ImageStreamImportStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{14} -} -func (m *ImageStreamImportStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageStreamImportStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageStreamImportStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageStreamImportStatus.Merge(m, src) -} -func (m *ImageStreamImportStatus) XXX_Size() int { - return m.Size() -} -func (m *ImageStreamImportStatus) XXX_DiscardUnknown() { - xxx_messageInfo_ImageStreamImportStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageStreamImportStatus proto.InternalMessageInfo - -func (m *ImageStreamLayers) Reset() { *m = ImageStreamLayers{} } -func (*ImageStreamLayers) ProtoMessage() {} -func (*ImageStreamLayers) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{15} -} -func (m *ImageStreamLayers) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageStreamLayers) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageStreamLayers) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageStreamLayers.Merge(m, src) -} -func (m *ImageStreamLayers) XXX_Size() int { - return m.Size() -} -func (m *ImageStreamLayers) XXX_DiscardUnknown() { - xxx_messageInfo_ImageStreamLayers.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageStreamLayers proto.InternalMessageInfo - -func (m *ImageStreamList) Reset() { *m = ImageStreamList{} } -func (*ImageStreamList) ProtoMessage() {} -func (*ImageStreamList) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{16} -} -func (m *ImageStreamList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageStreamList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageStreamList) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageStreamList.Merge(m, src) -} -func (m *ImageStreamList) XXX_Size() int { - return m.Size() -} -func (m *ImageStreamList) XXX_DiscardUnknown() { - xxx_messageInfo_ImageStreamList.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageStreamList proto.InternalMessageInfo - -func (m *ImageStreamMapping) Reset() { *m = ImageStreamMapping{} } -func (*ImageStreamMapping) ProtoMessage() {} -func (*ImageStreamMapping) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{17} -} -func (m *ImageStreamMapping) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageStreamMapping) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageStreamMapping) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageStreamMapping.Merge(m, src) -} -func (m *ImageStreamMapping) XXX_Size() int { - return m.Size() -} -func (m *ImageStreamMapping) XXX_DiscardUnknown() { - xxx_messageInfo_ImageStreamMapping.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageStreamMapping proto.InternalMessageInfo - -func (m *ImageStreamSpec) Reset() { *m = ImageStreamSpec{} } -func (*ImageStreamSpec) ProtoMessage() {} -func (*ImageStreamSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{18} -} -func (m *ImageStreamSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageStreamSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageStreamSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageStreamSpec.Merge(m, src) -} -func (m *ImageStreamSpec) XXX_Size() int { - return m.Size() -} -func (m *ImageStreamSpec) XXX_DiscardUnknown() { - xxx_messageInfo_ImageStreamSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageStreamSpec proto.InternalMessageInfo - -func (m *ImageStreamStatus) Reset() { *m = ImageStreamStatus{} } -func (*ImageStreamStatus) ProtoMessage() {} -func (*ImageStreamStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{19} -} -func (m *ImageStreamStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageStreamStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageStreamStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageStreamStatus.Merge(m, src) -} -func (m *ImageStreamStatus) XXX_Size() int { - return m.Size() -} -func (m *ImageStreamStatus) XXX_DiscardUnknown() { - xxx_messageInfo_ImageStreamStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageStreamStatus proto.InternalMessageInfo - -func (m *ImageStreamTag) Reset() { *m = ImageStreamTag{} } -func (*ImageStreamTag) ProtoMessage() {} -func (*ImageStreamTag) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{20} -} -func (m *ImageStreamTag) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageStreamTag) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageStreamTag) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageStreamTag.Merge(m, src) -} -func (m *ImageStreamTag) XXX_Size() int { - return m.Size() -} -func (m *ImageStreamTag) XXX_DiscardUnknown() { - xxx_messageInfo_ImageStreamTag.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageStreamTag proto.InternalMessageInfo - -func (m *ImageStreamTagList) Reset() { *m = ImageStreamTagList{} } -func (*ImageStreamTagList) ProtoMessage() {} -func (*ImageStreamTagList) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{21} -} -func (m *ImageStreamTagList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageStreamTagList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageStreamTagList) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageStreamTagList.Merge(m, src) -} -func (m *ImageStreamTagList) XXX_Size() int { - return m.Size() -} -func (m *ImageStreamTagList) XXX_DiscardUnknown() { - xxx_messageInfo_ImageStreamTagList.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageStreamTagList proto.InternalMessageInfo - -func (m *ImageTag) Reset() { *m = ImageTag{} } -func (*ImageTag) ProtoMessage() {} -func (*ImageTag) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{22} -} -func (m *ImageTag) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageTag) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageTag) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageTag.Merge(m, src) -} -func (m *ImageTag) XXX_Size() int { - return m.Size() -} -func (m *ImageTag) XXX_DiscardUnknown() { - xxx_messageInfo_ImageTag.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageTag proto.InternalMessageInfo - -func (m *ImageTagList) Reset() { *m = ImageTagList{} } -func (*ImageTagList) ProtoMessage() {} -func (*ImageTagList) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{23} -} -func (m *ImageTagList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ImageTagList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ImageTagList) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImageTagList.Merge(m, src) -} -func (m *ImageTagList) XXX_Size() int { - return m.Size() -} -func (m *ImageTagList) XXX_DiscardUnknown() { - xxx_messageInfo_ImageTagList.DiscardUnknown(m) -} - -var xxx_messageInfo_ImageTagList proto.InternalMessageInfo - -func (m *NamedTagEventList) Reset() { *m = NamedTagEventList{} } -func (*NamedTagEventList) ProtoMessage() {} -func (*NamedTagEventList) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{24} -} -func (m *NamedTagEventList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *NamedTagEventList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *NamedTagEventList) XXX_Merge(src proto.Message) { - xxx_messageInfo_NamedTagEventList.Merge(m, src) -} -func (m *NamedTagEventList) XXX_Size() int { - return m.Size() -} -func (m *NamedTagEventList) XXX_DiscardUnknown() { - xxx_messageInfo_NamedTagEventList.DiscardUnknown(m) -} - -var xxx_messageInfo_NamedTagEventList proto.InternalMessageInfo - -func (m *RepositoryImportSpec) Reset() { *m = RepositoryImportSpec{} } -func (*RepositoryImportSpec) ProtoMessage() {} -func (*RepositoryImportSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{25} -} -func (m *RepositoryImportSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RepositoryImportSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RepositoryImportSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_RepositoryImportSpec.Merge(m, src) -} -func (m *RepositoryImportSpec) XXX_Size() int { - return m.Size() -} -func (m *RepositoryImportSpec) XXX_DiscardUnknown() { - xxx_messageInfo_RepositoryImportSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_RepositoryImportSpec proto.InternalMessageInfo - -func (m *RepositoryImportStatus) Reset() { *m = RepositoryImportStatus{} } -func (*RepositoryImportStatus) ProtoMessage() {} -func (*RepositoryImportStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{26} -} -func (m *RepositoryImportStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RepositoryImportStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RepositoryImportStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_RepositoryImportStatus.Merge(m, src) -} -func (m *RepositoryImportStatus) XXX_Size() int { - return m.Size() -} -func (m *RepositoryImportStatus) XXX_DiscardUnknown() { - xxx_messageInfo_RepositoryImportStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_RepositoryImportStatus proto.InternalMessageInfo - -func (m *SignatureCondition) Reset() { *m = SignatureCondition{} } -func (*SignatureCondition) ProtoMessage() {} -func (*SignatureCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{27} -} -func (m *SignatureCondition) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SignatureCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SignatureCondition) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignatureCondition.Merge(m, src) -} -func (m *SignatureCondition) XXX_Size() int { - return m.Size() -} -func (m *SignatureCondition) XXX_DiscardUnknown() { - xxx_messageInfo_SignatureCondition.DiscardUnknown(m) -} - -var xxx_messageInfo_SignatureCondition proto.InternalMessageInfo - -func (m *SignatureGenericEntity) Reset() { *m = SignatureGenericEntity{} } -func (*SignatureGenericEntity) ProtoMessage() {} -func (*SignatureGenericEntity) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{28} -} -func (m *SignatureGenericEntity) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SignatureGenericEntity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SignatureGenericEntity) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignatureGenericEntity.Merge(m, src) -} -func (m *SignatureGenericEntity) XXX_Size() int { - return m.Size() -} -func (m *SignatureGenericEntity) XXX_DiscardUnknown() { - xxx_messageInfo_SignatureGenericEntity.DiscardUnknown(m) -} - -var xxx_messageInfo_SignatureGenericEntity proto.InternalMessageInfo - -func (m *SignatureIssuer) Reset() { *m = SignatureIssuer{} } -func (*SignatureIssuer) ProtoMessage() {} -func (*SignatureIssuer) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{29} -} -func (m *SignatureIssuer) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SignatureIssuer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SignatureIssuer) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignatureIssuer.Merge(m, src) -} -func (m *SignatureIssuer) XXX_Size() int { - return m.Size() -} -func (m *SignatureIssuer) XXX_DiscardUnknown() { - xxx_messageInfo_SignatureIssuer.DiscardUnknown(m) -} - -var xxx_messageInfo_SignatureIssuer proto.InternalMessageInfo - -func (m *SignatureSubject) Reset() { *m = SignatureSubject{} } -func (*SignatureSubject) ProtoMessage() {} -func (*SignatureSubject) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{30} -} -func (m *SignatureSubject) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SignatureSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SignatureSubject) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignatureSubject.Merge(m, src) -} -func (m *SignatureSubject) XXX_Size() int { - return m.Size() -} -func (m *SignatureSubject) XXX_DiscardUnknown() { - xxx_messageInfo_SignatureSubject.DiscardUnknown(m) -} - -var xxx_messageInfo_SignatureSubject proto.InternalMessageInfo - -func (m *TagEvent) Reset() { *m = TagEvent{} } -func (*TagEvent) ProtoMessage() {} -func (*TagEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{31} -} -func (m *TagEvent) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TagEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *TagEvent) XXX_Merge(src proto.Message) { - xxx_messageInfo_TagEvent.Merge(m, src) -} -func (m *TagEvent) XXX_Size() int { - return m.Size() -} -func (m *TagEvent) XXX_DiscardUnknown() { - xxx_messageInfo_TagEvent.DiscardUnknown(m) -} - -var xxx_messageInfo_TagEvent proto.InternalMessageInfo - -func (m *TagEventCondition) Reset() { *m = TagEventCondition{} } -func (*TagEventCondition) ProtoMessage() {} -func (*TagEventCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{32} -} -func (m *TagEventCondition) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TagEventCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *TagEventCondition) XXX_Merge(src proto.Message) { - xxx_messageInfo_TagEventCondition.Merge(m, src) -} -func (m *TagEventCondition) XXX_Size() int { - return m.Size() -} -func (m *TagEventCondition) XXX_DiscardUnknown() { - xxx_messageInfo_TagEventCondition.DiscardUnknown(m) -} - -var xxx_messageInfo_TagEventCondition proto.InternalMessageInfo - -func (m *TagImportPolicy) Reset() { *m = TagImportPolicy{} } -func (*TagImportPolicy) ProtoMessage() {} -func (*TagImportPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{33} -} -func (m *TagImportPolicy) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TagImportPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *TagImportPolicy) XXX_Merge(src proto.Message) { - xxx_messageInfo_TagImportPolicy.Merge(m, src) -} -func (m *TagImportPolicy) XXX_Size() int { - return m.Size() -} -func (m *TagImportPolicy) XXX_DiscardUnknown() { - xxx_messageInfo_TagImportPolicy.DiscardUnknown(m) -} - -var xxx_messageInfo_TagImportPolicy proto.InternalMessageInfo - -func (m *TagReference) Reset() { *m = TagReference{} } -func (*TagReference) ProtoMessage() {} -func (*TagReference) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{34} -} -func (m *TagReference) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TagReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *TagReference) XXX_Merge(src proto.Message) { - xxx_messageInfo_TagReference.Merge(m, src) -} -func (m *TagReference) XXX_Size() int { - return m.Size() -} -func (m *TagReference) XXX_DiscardUnknown() { - xxx_messageInfo_TagReference.DiscardUnknown(m) -} - -var xxx_messageInfo_TagReference proto.InternalMessageInfo - -func (m *TagReferencePolicy) Reset() { *m = TagReferencePolicy{} } -func (*TagReferencePolicy) ProtoMessage() {} -func (*TagReferencePolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_650a0b34f65fde60, []int{35} -} -func (m *TagReferencePolicy) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TagReferencePolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *TagReferencePolicy) XXX_Merge(src proto.Message) { - xxx_messageInfo_TagReferencePolicy.Merge(m, src) -} -func (m *TagReferencePolicy) XXX_Size() int { - return m.Size() -} -func (m *TagReferencePolicy) XXX_DiscardUnknown() { - xxx_messageInfo_TagReferencePolicy.DiscardUnknown(m) -} - -var xxx_messageInfo_TagReferencePolicy proto.InternalMessageInfo - -func init() { - proto.RegisterType((*DockerImageReference)(nil), "github.com.openshift.api.image.v1.DockerImageReference") - proto.RegisterType((*Image)(nil), "github.com.openshift.api.image.v1.Image") - proto.RegisterType((*ImageBlobReferences)(nil), "github.com.openshift.api.image.v1.ImageBlobReferences") - proto.RegisterType((*ImageImportSpec)(nil), "github.com.openshift.api.image.v1.ImageImportSpec") - proto.RegisterType((*ImageImportStatus)(nil), "github.com.openshift.api.image.v1.ImageImportStatus") - proto.RegisterType((*ImageLayer)(nil), "github.com.openshift.api.image.v1.ImageLayer") - proto.RegisterType((*ImageLayerData)(nil), "github.com.openshift.api.image.v1.ImageLayerData") - proto.RegisterType((*ImageList)(nil), "github.com.openshift.api.image.v1.ImageList") - proto.RegisterType((*ImageLookupPolicy)(nil), "github.com.openshift.api.image.v1.ImageLookupPolicy") - proto.RegisterType((*ImageSignature)(nil), "github.com.openshift.api.image.v1.ImageSignature") - proto.RegisterMapType((map[string]string)(nil), "github.com.openshift.api.image.v1.ImageSignature.SignedClaimsEntry") - proto.RegisterType((*ImageStream)(nil), "github.com.openshift.api.image.v1.ImageStream") - proto.RegisterType((*ImageStreamImage)(nil), "github.com.openshift.api.image.v1.ImageStreamImage") - proto.RegisterType((*ImageStreamImport)(nil), "github.com.openshift.api.image.v1.ImageStreamImport") - proto.RegisterType((*ImageStreamImportSpec)(nil), "github.com.openshift.api.image.v1.ImageStreamImportSpec") - proto.RegisterType((*ImageStreamImportStatus)(nil), "github.com.openshift.api.image.v1.ImageStreamImportStatus") - proto.RegisterType((*ImageStreamLayers)(nil), "github.com.openshift.api.image.v1.ImageStreamLayers") - proto.RegisterMapType((map[string]ImageLayerData)(nil), "github.com.openshift.api.image.v1.ImageStreamLayers.BlobsEntry") - proto.RegisterMapType((map[string]ImageBlobReferences)(nil), "github.com.openshift.api.image.v1.ImageStreamLayers.ImagesEntry") - proto.RegisterType((*ImageStreamList)(nil), "github.com.openshift.api.image.v1.ImageStreamList") - proto.RegisterType((*ImageStreamMapping)(nil), "github.com.openshift.api.image.v1.ImageStreamMapping") - proto.RegisterType((*ImageStreamSpec)(nil), "github.com.openshift.api.image.v1.ImageStreamSpec") - proto.RegisterType((*ImageStreamStatus)(nil), "github.com.openshift.api.image.v1.ImageStreamStatus") - proto.RegisterType((*ImageStreamTag)(nil), "github.com.openshift.api.image.v1.ImageStreamTag") - proto.RegisterType((*ImageStreamTagList)(nil), "github.com.openshift.api.image.v1.ImageStreamTagList") - proto.RegisterType((*ImageTag)(nil), "github.com.openshift.api.image.v1.ImageTag") - proto.RegisterType((*ImageTagList)(nil), "github.com.openshift.api.image.v1.ImageTagList") - proto.RegisterType((*NamedTagEventList)(nil), "github.com.openshift.api.image.v1.NamedTagEventList") - proto.RegisterType((*RepositoryImportSpec)(nil), "github.com.openshift.api.image.v1.RepositoryImportSpec") - proto.RegisterType((*RepositoryImportStatus)(nil), "github.com.openshift.api.image.v1.RepositoryImportStatus") - proto.RegisterType((*SignatureCondition)(nil), "github.com.openshift.api.image.v1.SignatureCondition") - proto.RegisterType((*SignatureGenericEntity)(nil), "github.com.openshift.api.image.v1.SignatureGenericEntity") - proto.RegisterType((*SignatureIssuer)(nil), "github.com.openshift.api.image.v1.SignatureIssuer") - proto.RegisterType((*SignatureSubject)(nil), "github.com.openshift.api.image.v1.SignatureSubject") - proto.RegisterType((*TagEvent)(nil), "github.com.openshift.api.image.v1.TagEvent") - proto.RegisterType((*TagEventCondition)(nil), "github.com.openshift.api.image.v1.TagEventCondition") - proto.RegisterType((*TagImportPolicy)(nil), "github.com.openshift.api.image.v1.TagImportPolicy") - proto.RegisterType((*TagReference)(nil), "github.com.openshift.api.image.v1.TagReference") - proto.RegisterMapType((map[string]string)(nil), "github.com.openshift.api.image.v1.TagReference.AnnotationsEntry") - proto.RegisterType((*TagReferencePolicy)(nil), "github.com.openshift.api.image.v1.TagReferencePolicy") -} - -func init() { - proto.RegisterFile("github.com/openshift/api/image/v1/generated.proto", fileDescriptor_650a0b34f65fde60) -} - -var fileDescriptor_650a0b34f65fde60 = []byte{ - // 2502 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5a, 0x4d, 0x6c, 0x1c, 0x49, - 0x15, 0x4e, 0xcf, 0x9f, 0xc7, 0xcf, 0x8e, 0x1d, 0x57, 0xe2, 0xdd, 0xd9, 0x49, 0xd6, 0xf6, 0x76, - 0x48, 0x14, 0x20, 0x3b, 0x83, 0x4d, 0x76, 0x71, 0x82, 0xc4, 0x6e, 0x26, 0x13, 0xa2, 0x01, 0x7b, - 0xe3, 0x2d, 0x0f, 0x11, 0x8a, 0x82, 0x44, 0xb9, 0xa7, 0xdc, 0x6e, 0x3c, 0xd3, 0x3d, 0x74, 0xf7, - 0x78, 0xd7, 0x11, 0x48, 0x1c, 0xd0, 0x6a, 0x0f, 0x1c, 0xe0, 0xc4, 0x61, 0x8f, 0x68, 0x85, 0x38, - 0x23, 0x10, 0x27, 0x2e, 0x80, 0x14, 0x71, 0x61, 0xb5, 0x5c, 0xf6, 0x82, 0xb5, 0x19, 0x38, 0x73, - 0xe3, 0xb2, 0x27, 0x54, 0xd5, 0xd5, 0xdd, 0xd5, 0x3d, 0x3d, 0x4e, 0xb7, 0x89, 0x07, 0xb8, 0x4d, - 0xd7, 0x7b, 0xef, 0x7b, 0xaf, 0xdf, 0xab, 0x7a, 0x3f, 0xd5, 0x03, 0xab, 0xba, 0xe1, 0xee, 0x0d, - 0x76, 0x6a, 0x9a, 0xd5, 0xab, 0x5b, 0x7d, 0x6a, 0x3a, 0x7b, 0xc6, 0xae, 0x5b, 0x27, 0x7d, 0xa3, - 0x6e, 0xf4, 0x88, 0x4e, 0xeb, 0x07, 0xab, 0x75, 0x9d, 0x9a, 0xd4, 0x26, 0x2e, 0xed, 0xd4, 0xfa, - 0xb6, 0xe5, 0x5a, 0xe8, 0x95, 0x50, 0xa4, 0x16, 0x88, 0xd4, 0x48, 0xdf, 0xa8, 0x71, 0x91, 0xda, - 0xc1, 0x6a, 0xf5, 0x55, 0x09, 0x55, 0xb7, 0x74, 0xab, 0xce, 0x25, 0x77, 0x06, 0xbb, 0xfc, 0x89, - 0x3f, 0xf0, 0x5f, 0x1e, 0x62, 0x55, 0xdd, 0x5f, 0x77, 0x6a, 0x86, 0xc5, 0xd5, 0x6a, 0x96, 0x9d, - 0xa4, 0xb5, 0x7a, 0x23, 0xe4, 0xe9, 0x11, 0x6d, 0xcf, 0x30, 0xa9, 0x7d, 0x58, 0xef, 0xef, 0xeb, - 0x6c, 0xc1, 0xa9, 0xf7, 0xa8, 0x4b, 0x92, 0xa4, 0xea, 0xe3, 0xa4, 0xec, 0x81, 0xe9, 0x1a, 0x3d, - 0x3a, 0x22, 0xf0, 0xfa, 0xb3, 0x04, 0x1c, 0x6d, 0x8f, 0xf6, 0x48, 0x5c, 0x4e, 0xfd, 0x58, 0x81, - 0x0b, 0x4d, 0x4b, 0xdb, 0xa7, 0x76, 0x8b, 0x39, 0x01, 0xd3, 0x5d, 0x6a, 0x53, 0x53, 0xa3, 0xe8, - 0x3a, 0x94, 0x6d, 0xaa, 0x1b, 0x8e, 0x6b, 0x1f, 0x56, 0x94, 0x15, 0xe5, 0xda, 0x74, 0xe3, 0xdc, - 0x93, 0xa3, 0xe5, 0x33, 0xc3, 0xa3, 0xe5, 0x32, 0x16, 0xeb, 0x38, 0xe0, 0x40, 0x75, 0x98, 0x36, - 0x49, 0x8f, 0x3a, 0x7d, 0xa2, 0xd1, 0x4a, 0x8e, 0xb3, 0x2f, 0x08, 0xf6, 0xe9, 0xb7, 0x7c, 0x02, - 0x0e, 0x79, 0xd0, 0x0a, 0x14, 0xd8, 0x43, 0x25, 0xcf, 0x79, 0x67, 0x05, 0x6f, 0x81, 0xf1, 0x62, - 0x4e, 0x41, 0x2f, 0x43, 0xde, 0x25, 0x7a, 0xa5, 0xc0, 0x19, 0x66, 0x04, 0x43, 0xbe, 0x4d, 0x74, - 0xcc, 0xd6, 0x51, 0x15, 0x72, 0x46, 0xb3, 0x52, 0xe4, 0x54, 0x10, 0xd4, 0x5c, 0xab, 0x89, 0x73, - 0x46, 0x53, 0xfd, 0xcb, 0x14, 0x14, 0xf9, 0xeb, 0xa0, 0xef, 0x42, 0x99, 0xb9, 0xb8, 0x43, 0x5c, - 0xc2, 0xdf, 0x62, 0x66, 0xed, 0x4b, 0x35, 0xcf, 0x53, 0x35, 0xd9, 0x53, 0xb5, 0xfe, 0xbe, 0xce, - 0x16, 0x9c, 0x1a, 0xe3, 0xae, 0x1d, 0xac, 0xd6, 0xee, 0xef, 0x7c, 0x8f, 0x6a, 0xee, 0x26, 0x75, - 0x49, 0x03, 0x09, 0x74, 0x08, 0xd7, 0x70, 0x80, 0x8a, 0xb6, 0xe0, 0x42, 0x27, 0xc1, 0x7f, 0xc2, - 0x09, 0x97, 0x84, 0x6c, 0xa2, 0x8f, 0x71, 0xa2, 0x24, 0xfa, 0x01, 0x9c, 0x97, 0xd6, 0x37, 0x7d, - 0xf3, 0xf3, 0xdc, 0xfc, 0x57, 0xc7, 0x9a, 0x2f, 0x02, 0x5d, 0xc3, 0xe4, 0x9d, 0xbb, 0xef, 0xba, - 0xd4, 0x74, 0x0c, 0xcb, 0x6c, 0x5c, 0x14, 0xfa, 0xcf, 0x37, 0x47, 0x11, 0x71, 0x92, 0x1a, 0xb4, - 0x03, 0xd5, 0x84, 0xe5, 0x07, 0xd4, 0x66, 0x78, 0x22, 0x1a, 0xaa, 0x40, 0xad, 0x36, 0xc7, 0x72, - 0xe2, 0x63, 0x50, 0xd0, 0x66, 0xf4, 0x0d, 0x89, 0x69, 0xec, 0x52, 0xc7, 0x15, 0xc1, 0x4c, 0x34, - 0x59, 0xb0, 0xe0, 0x24, 0x39, 0x74, 0x00, 0x0b, 0xd2, 0xf2, 0x06, 0x39, 0xa4, 0xb6, 0x53, 0x29, - 0xad, 0xe4, 0xb9, 0xbb, 0x9e, 0x79, 0xe8, 0x6b, 0xa1, 0x54, 0xe3, 0x25, 0xa1, 0x7b, 0xa1, 0x19, - 0xc7, 0xc3, 0xa3, 0x2a, 0x10, 0x05, 0x70, 0x0c, 0xdd, 0x24, 0xee, 0xc0, 0xa6, 0x4e, 0x65, 0x8a, - 0x2b, 0x5c, 0x4d, 0xab, 0x70, 0xdb, 0x97, 0x0c, 0xf7, 0x57, 0xb0, 0xe4, 0x60, 0x09, 0x18, 0xdd, - 0x87, 0x45, 0x49, 0x77, 0xc8, 0x54, 0x29, 0xaf, 0xe4, 0xaf, 0xcd, 0x36, 0x5e, 0x1a, 0x1e, 0x2d, - 0x2f, 0x36, 0x93, 0x18, 0x70, 0xb2, 0x1c, 0xda, 0x83, 0x4b, 0x09, 0x6e, 0xdc, 0xa4, 0x1d, 0x83, - 0xb4, 0x0f, 0xfb, 0xb4, 0x32, 0xcd, 0xe3, 0xf0, 0x39, 0x61, 0xd6, 0xa5, 0xe6, 0x31, 0xbc, 0xf8, - 0x58, 0x24, 0x74, 0x2f, 0x12, 0x99, 0x3b, 0x96, 0xb9, 0x6b, 0xe8, 0x15, 0xe0, 0xf0, 0x49, 0xae, - 0xf6, 0x18, 0xf0, 0xa8, 0x8c, 0xfa, 0x73, 0x05, 0xce, 0xf3, 0xe7, 0x46, 0xd7, 0xda, 0x09, 0x8e, - 0x8a, 0x83, 0xd6, 0x61, 0x96, 0xbb, 0x75, 0xd3, 0x70, 0x1c, 0xc3, 0xd4, 0xf9, 0x21, 0x29, 0x37, - 0x2e, 0x08, 0xec, 0xd9, 0x96, 0x44, 0xc3, 0x11, 0x4e, 0xa4, 0x42, 0xa9, 0xeb, 0xed, 0x14, 0x65, - 0x25, 0xcf, 0x72, 0xc8, 0xf0, 0x68, 0xb9, 0x24, 0x62, 0x2d, 0x28, 0x8c, 0x47, 0xf3, 0x6c, 0xf6, - 0x4e, 0x33, 0xe7, 0x11, 0x46, 0x0a, 0x8a, 0xfa, 0xa7, 0x3c, 0xcc, 0x73, 0x35, 0xad, 0x5e, 0xdf, - 0xb2, 0xdd, 0xed, 0x3e, 0xd5, 0xd0, 0x5d, 0x28, 0xec, 0xda, 0x56, 0x4f, 0x64, 0x9c, 0xcb, 0xd2, - 0x91, 0xad, 0xb1, 0x32, 0x11, 0xe6, 0x97, 0xe0, 0x4d, 0xc2, 0x0c, 0xf8, 0x75, 0xdb, 0xea, 0x61, - 0x2e, 0x8e, 0xde, 0x84, 0x9c, 0x6b, 0x71, 0xd5, 0x33, 0x6b, 0xd7, 0x92, 0x40, 0x36, 0x2c, 0x8d, - 0x74, 0xe3, 0x48, 0x25, 0x96, 0x08, 0xdb, 0x16, 0xce, 0xb9, 0x16, 0xea, 0x32, 0xf7, 0x30, 0xb3, - 0xb6, 0xac, 0xae, 0xa1, 0x1d, 0x8a, 0x1c, 0xb2, 0x96, 0x62, 0x8f, 0xb6, 0x89, 0xde, 0x92, 0x24, - 0x65, 0x97, 0x86, 0xab, 0x38, 0x82, 0x8e, 0xde, 0x85, 0x79, 0xdb, 0x37, 0x43, 0x28, 0x2c, 0x72, - 0x85, 0xaf, 0xa5, 0x53, 0x88, 0xa3, 0xc2, 0x8d, 0x17, 0x85, 0xce, 0xf9, 0x18, 0x01, 0xc7, 0xd5, - 0xa0, 0xdb, 0x30, 0x6f, 0x98, 0x5a, 0x77, 0xd0, 0x09, 0x93, 0x49, 0x81, 0xef, 0x84, 0x00, 0xa2, - 0x15, 0x25, 0xe3, 0x38, 0xbf, 0xfa, 0x57, 0x05, 0x16, 0xe4, 0x38, 0xba, 0xc4, 0x1d, 0x38, 0xa8, - 0x0d, 0x25, 0x87, 0xff, 0x12, 0xb1, 0xbc, 0x9e, 0xae, 0x7a, 0x78, 0xd2, 0x8d, 0x39, 0xa1, 0xbd, - 0xe4, 0x3d, 0x63, 0x81, 0x85, 0x5a, 0x50, 0xe4, 0xef, 0x1d, 0xc4, 0x36, 0x65, 0xce, 0x68, 0x4c, - 0x0f, 0x8f, 0x96, 0xbd, 0xca, 0x86, 0x3d, 0x04, 0xbf, 0x4a, 0xe6, 0x93, 0xab, 0xa4, 0xfa, 0x9e, - 0x02, 0x10, 0xa6, 0xac, 0xa0, 0xea, 0x2a, 0x63, 0xab, 0xee, 0x15, 0x28, 0x38, 0xc6, 0x63, 0xcf, - 0xb2, 0x7c, 0x58, 0xc3, 0xb9, 0xf8, 0xb6, 0xf1, 0x98, 0x62, 0x4e, 0x66, 0xf5, 0xbe, 0x17, 0xe4, - 0x8b, 0x7c, 0xb4, 0xde, 0x87, 0xc9, 0x21, 0xe4, 0x51, 0x3b, 0x30, 0x17, 0xda, 0xd1, 0x64, 0x85, - 0xe6, 0x15, 0xa1, 0x49, 0xe1, 0x9a, 0xce, 0x3e, 0x53, 0x4b, 0x2e, 0x85, 0x96, 0xdf, 0x29, 0x30, - 0xed, 0xa9, 0x31, 0x1c, 0x17, 0x3d, 0x1a, 0x29, 0xfe, 0xb5, 0x74, 0xe1, 0x63, 0xd2, 0xbc, 0xf4, - 0x07, 0x2d, 0x8f, 0xbf, 0x22, 0x15, 0xfe, 0x4d, 0x28, 0x1a, 0x2e, 0xed, 0x39, 0x95, 0x1c, 0x4f, - 0xfc, 0xe9, 0x83, 0x78, 0x56, 0x80, 0x16, 0x5b, 0x4c, 0x1c, 0x7b, 0x28, 0xea, 0xba, 0xd8, 0x7e, - 0x1b, 0x96, 0xb5, 0x3f, 0xe8, 0x8b, 0x7d, 0x7d, 0x19, 0x8a, 0x5d, 0x76, 0xc6, 0x45, 0x5e, 0x0b, - 0x24, 0xf9, 0xc1, 0xc7, 0x1e, 0x4d, 0xfd, 0x75, 0x49, 0xf8, 0x36, 0x48, 0xf1, 0x13, 0x68, 0x7b, - 0x56, 0xa0, 0xe0, 0x86, 0x51, 0x09, 0x76, 0x12, 0x0f, 0x08, 0xa7, 0xa0, 0x2b, 0x30, 0xa5, 0x59, - 0xa6, 0x4b, 0x4d, 0x97, 0x5b, 0x3f, 0xdb, 0x98, 0x19, 0x1e, 0x2d, 0x4f, 0xdd, 0xf1, 0x96, 0xb0, - 0x4f, 0x43, 0x06, 0x80, 0x66, 0x99, 0x1d, 0xc3, 0x35, 0x2c, 0xd3, 0xa9, 0x14, 0xb8, 0x2f, 0xd3, - 0xe4, 0x8b, 0xe0, 0x65, 0xef, 0xf8, 0xd2, 0xa1, 0xc5, 0xc1, 0x92, 0x83, 0x25, 0x70, 0xf4, 0x55, - 0x38, 0xcb, 0xc5, 0x5b, 0x1d, 0x6a, 0xba, 0x86, 0x7b, 0x28, 0x1a, 0x8e, 0x45, 0x21, 0x76, 0xb6, - 0x25, 0x13, 0x71, 0x94, 0x17, 0xfd, 0x10, 0x66, 0x59, 0x4d, 0xa6, 0x9d, 0x3b, 0x5d, 0x62, 0xf4, - 0xfc, 0xfe, 0xe2, 0x4e, 0xe6, 0x72, 0xcf, 0x0d, 0xf7, 0x51, 0xee, 0x9a, 0xae, 0x2d, 0xe5, 0x56, - 0x99, 0x84, 0x23, 0xea, 0xd0, 0xdb, 0x30, 0xa5, 0xd9, 0x94, 0x35, 0xee, 0x95, 0x29, 0x1e, 0xd0, - 0x2f, 0xa4, 0x0b, 0x68, 0xdb, 0xe8, 0x51, 0xe1, 0x79, 0x4f, 0x1c, 0xfb, 0x38, 0xec, 0x78, 0x18, - 0x8e, 0x33, 0xa0, 0x9d, 0xc6, 0x61, 0xa5, 0x9c, 0xba, 0x30, 0x04, 0x2f, 0xd2, 0x62, 0xb2, 0x76, - 0x63, 0x96, 0x1d, 0x8f, 0x96, 0xc0, 0xc1, 0x01, 0x22, 0xfa, 0x8e, 0x8f, 0xde, 0xb6, 0x78, 0x43, - 0x31, 0xb3, 0xf6, 0xe5, 0x2c, 0xe8, 0xdb, 0x03, 0xbe, 0xeb, 0x64, 0xf8, 0xb6, 0x85, 0x03, 0xc8, - 0xea, 0x1b, 0xb0, 0x30, 0xe2, 0x48, 0x74, 0x0e, 0xf2, 0xfb, 0x54, 0x8c, 0x2b, 0x98, 0xfd, 0x44, - 0x17, 0xa0, 0x78, 0x40, 0xba, 0x03, 0xb1, 0x4f, 0xb1, 0xf7, 0x70, 0x2b, 0xb7, 0xae, 0xa8, 0xbf, - 0xc8, 0xc1, 0x8c, 0x17, 0x19, 0xd7, 0xa6, 0xa4, 0x37, 0x81, 0x23, 0xd3, 0x86, 0x82, 0xd3, 0xa7, - 0x9a, 0x48, 0xfa, 0x6b, 0xa9, 0x77, 0x0e, 0xb7, 0x8f, 0xf5, 0x15, 0xe1, 0x31, 0x63, 0x4f, 0x98, - 0xa3, 0xa1, 0x47, 0x41, 0x85, 0xf2, 0x8a, 0xfb, 0x8d, 0x8c, 0xb8, 0xc7, 0x56, 0x2a, 0xf5, 0x0f, - 0x0a, 0x9c, 0x93, 0xb8, 0x27, 0x35, 0x54, 0x6d, 0x9e, 0xb4, 0x40, 0x86, 0xb9, 0x55, 0x2a, 0x92, - 0xea, 0x6f, 0x72, 0x22, 0xb9, 0xfa, 0x6f, 0xc1, 0x2a, 0xfc, 0x04, 0x5e, 0xe3, 0x61, 0x24, 0xe2, - 0xeb, 0xd9, 0x22, 0x13, 0xf6, 0x93, 0x89, 0x71, 0xdf, 0x89, 0xc5, 0xfd, 0xd6, 0x89, 0xd0, 0x8f, - 0x8f, 0xfe, 0x8f, 0x73, 0xb0, 0x98, 0x68, 0x11, 0xba, 0x0a, 0x25, 0xaf, 0xf5, 0xe3, 0x9e, 0x2b, - 0x87, 0x08, 0x1e, 0x0f, 0x16, 0x54, 0xa4, 0x03, 0xd8, 0xb4, 0x6f, 0x39, 0x86, 0x6b, 0xd9, 0x87, - 0xc2, 0x0f, 0x5f, 0x49, 0x61, 0x29, 0x0e, 0x84, 0x24, 0x37, 0xcc, 0x31, 0x47, 0x87, 0x14, 0x2c, - 0x41, 0xa3, 0x87, 0xcc, 0x20, 0xa2, 0x53, 0xe6, 0x8e, 0x7c, 0x96, 0xe3, 0x25, 0xe3, 0x87, 0x2f, - 0xc1, 0x90, 0xb0, 0x40, 0x54, 0x7f, 0x9b, 0x83, 0x17, 0xc7, 0xb8, 0x0e, 0xe1, 0x88, 0x23, 0x58, - 0x87, 0x91, 0x29, 0x0c, 0xde, 0x48, 0x11, 0x73, 0x9a, 0x91, 0xe0, 0xb4, 0x9b, 0x27, 0x71, 0x9a, - 0x88, 0xee, 0x31, 0x6e, 0x7b, 0x14, 0x73, 0xdb, 0x8d, 0x8c, 0x6e, 0x8b, 0xed, 0x9f, 0x98, 0xe3, - 0x3e, 0x2c, 0x44, 0xce, 0x9d, 0x18, 0x9b, 0x4f, 0xff, 0xdc, 0x75, 0xa0, 0xb8, 0xd3, 0xb5, 0x76, - 0xfc, 0xd6, 0xec, 0x8d, 0x6c, 0x31, 0xf1, 0xcc, 0xac, 0xb1, 0x49, 0x53, 0x14, 0xe8, 0x20, 0xab, - 0xf0, 0x35, 0xec, 0x81, 0xa3, 0xbd, 0x98, 0xef, 0xde, 0x3c, 0x91, 0x1a, 0xcf, 0x65, 0x9e, 0x9e, - 0x31, 0x7e, 0xac, 0xee, 0x03, 0x84, 0xd6, 0x24, 0x54, 0xb9, 0x7b, 0x72, 0x95, 0xcb, 0x70, 0x07, - 0x11, 0x34, 0xe3, 0x52, 0x61, 0xac, 0x7e, 0x5f, 0xd4, 0xc5, 0xb1, 0xda, 0x36, 0xa2, 0xda, 0x5e, - 0x4f, 0x9d, 0x9c, 0x23, 0xa3, 0xbb, 0x5c, 0x8b, 0xff, 0xa8, 0x88, 0x19, 0x5a, 0x78, 0xe6, 0xf4, - 0x9b, 0xf7, 0xed, 0x68, 0xf3, 0x9e, 0xf5, 0xd4, 0x26, 0xb7, 0xf0, 0xff, 0x50, 0x00, 0x49, 0x5c, - 0x9b, 0xa4, 0xdf, 0x37, 0x4c, 0xfd, 0xff, 0xae, 0x5c, 0x3e, 0x6b, 0xa6, 0xfc, 0x55, 0x2e, 0x12, - 0x2d, 0x5e, 0x0f, 0x4c, 0x98, 0xed, 0x4a, 0x83, 0x4b, 0xd6, 0x5e, 0x44, 0x1e, 0x7a, 0xc2, 0x76, - 0x58, 0x5e, 0xc5, 0x11, 0x7c, 0xb4, 0x1d, 0xb9, 0x13, 0x0b, 0x93, 0x9b, 0x98, 0x6c, 0x5f, 0x16, - 0x10, 0x8b, 0xcd, 0x24, 0x26, 0x9c, 0x2c, 0x8b, 0xde, 0x86, 0x82, 0x4b, 0x74, 0x7f, 0x4f, 0xd4, - 0x33, 0x5e, 0x5a, 0x48, 0x43, 0x10, 0xd1, 0x1d, 0xcc, 0xa1, 0xd4, 0x5f, 0x46, 0x3b, 0x0f, 0x51, - 0x34, 0x4e, 0xc5, 0x7a, 0x0a, 0x17, 0xfb, 0x83, 0x9d, 0xae, 0xa1, 0x25, 0x4a, 0x89, 0x68, 0x5e, - 0x16, 0xd0, 0x17, 0xb7, 0xc6, 0xb3, 0xe2, 0xe3, 0x70, 0xd0, 0x83, 0x88, 0x93, 0xd2, 0x44, 0xf8, - 0x2d, 0xd2, 0xa3, 0x9d, 0x36, 0xd1, 0xef, 0x1e, 0x50, 0xd3, 0x65, 0x67, 0x31, 0xd1, 0x53, 0x1f, - 0x14, 0xfc, 0x29, 0x96, 0x7b, 0xaa, 0x4d, 0x26, 0x71, 0x70, 0xbe, 0xe1, 0xed, 0x74, 0xef, 0xd8, - 0x64, 0x0e, 0xf8, 0x54, 0xe4, 0x83, 0xc4, 0x1a, 0x80, 0xf8, 0xb8, 0x62, 0x58, 0x26, 0x77, 0x77, - 0x3e, 0xd4, 0x7e, 0x2f, 0xa0, 0x60, 0x89, 0x6b, 0xe4, 0xd8, 0x94, 0x4e, 0xf9, 0xd8, 0xec, 0x25, - 0x0c, 0xdb, 0x37, 0xd2, 0xbd, 0x36, 0x8f, 0x5e, 0xfa, 0x59, 0x3b, 0x48, 0x49, 0xc5, 0xe7, 0xd2, - 0xc1, 0xff, 0x39, 0x9a, 0x5a, 0xdb, 0x44, 0x9f, 0x40, 0x91, 0x78, 0x10, 0x2d, 0x12, 0xab, 0xd9, - 0x8a, 0x44, 0x9b, 0xe8, 0x63, 0xea, 0xc4, 0xa7, 0x39, 0x28, 0x73, 0xc6, 0xc9, 0x6c, 0xf2, 0xcd, - 0xc8, 0x14, 0x92, 0x79, 0x97, 0x97, 0x63, 0x83, 0xc7, 0xb7, 0x4f, 0x30, 0x70, 0x8e, 0xa6, 0x00, - 0x38, 0xee, 0x5a, 0xb4, 0xf0, 0x9f, 0x5e, 0x8b, 0xaa, 0xbf, 0x57, 0x60, 0xd6, 0x77, 0xf1, 0x04, - 0x76, 0xca, 0x56, 0x74, 0xa7, 0x7c, 0x31, 0xad, 0xe5, 0xe3, 0xf7, 0xc8, 0x3f, 0x15, 0x58, 0x18, - 0xf1, 0x9a, 0x5f, 0x99, 0x95, 0x31, 0xdf, 0x44, 0x4f, 0x60, 0x86, 0x0f, 0x9f, 0x6c, 0x46, 0x2c, - 0x61, 0xe4, 0x4f, 0x2f, 0x61, 0xa8, 0xef, 0xe7, 0xe1, 0x42, 0xd2, 0xd4, 0xf7, 0xbc, 0x3e, 0xa6, - 0xc4, 0x3f, 0x85, 0xe4, 0x26, 0xfd, 0x29, 0xa4, 0xf0, 0x5f, 0xfb, 0x14, 0x92, 0xcf, 0xf8, 0x29, - 0xe4, 0xfd, 0x1c, 0xbc, 0x90, 0x3c, 0x4b, 0x9e, 0xd2, 0xf7, 0x90, 0x70, 0x0a, 0xcd, 0x3d, 0xff, - 0x29, 0x14, 0xdd, 0x82, 0x39, 0xd2, 0xf1, 0xb6, 0x19, 0xe9, 0xb2, 0x8e, 0x83, 0xef, 0xe3, 0xe9, - 0x06, 0x1a, 0x1e, 0x2d, 0xcf, 0xdd, 0x8e, 0x50, 0x70, 0x8c, 0x53, 0xfd, 0x38, 0x0f, 0x68, 0xf4, - 0xa6, 0x19, 0xdd, 0x12, 0xb7, 0xdf, 0xde, 0x41, 0xbc, 0x2a, 0xdf, 0x7e, 0x7f, 0x76, 0xb4, 0xfc, - 0xc2, 0xa8, 0x84, 0x74, 0x2f, 0xbe, 0x11, 0xb8, 0xd0, 0xbb, 0x3b, 0xbf, 0x11, 0x75, 0xca, 0x67, - 0x47, 0xcb, 0x09, 0x7f, 0x2b, 0xa9, 0x05, 0x48, 0x31, 0xd7, 0xe9, 0x70, 0xb6, 0x4b, 0x1c, 0x77, - 0xcb, 0xb6, 0x76, 0x68, 0xdb, 0x10, 0x7f, 0xa8, 0xc8, 0x76, 0x3b, 0x1c, 0xdc, 0x7f, 0x6f, 0xc8, - 0x40, 0x38, 0x8a, 0x8b, 0x0e, 0x00, 0xb1, 0x85, 0xb6, 0x4d, 0x4c, 0xc7, 0x7b, 0x25, 0xa6, 0xad, - 0x90, 0x59, 0x5b, 0x55, 0x68, 0x43, 0x1b, 0x23, 0x68, 0x38, 0x41, 0x03, 0xba, 0x0a, 0x25, 0x9b, - 0x12, 0xc7, 0x32, 0xc5, 0x6d, 0x7d, 0x10, 0x65, 0xcc, 0x57, 0xb1, 0xa0, 0xa2, 0xcf, 0xc3, 0x54, - 0x8f, 0x3a, 0x0e, 0x2b, 0x1f, 0x25, 0xce, 0x38, 0x2f, 0x18, 0xa7, 0x36, 0xbd, 0x65, 0xec, 0xd3, - 0xd5, 0xf7, 0x14, 0x08, 0x43, 0xc4, 0x3b, 0x33, 0x43, 0xbb, 0xeb, 0xdd, 0xf2, 0xaf, 0xc3, 0xac, - 0x65, 0xeb, 0xc4, 0x34, 0x1e, 0x7b, 0x6d, 0x9c, 0x17, 0xe0, 0xe0, 0xc4, 0xdf, 0x97, 0x68, 0x38, - 0xc2, 0xc9, 0xda, 0x3f, 0xcd, 0xea, 0xf5, 0x2c, 0x93, 0x65, 0x6d, 0x11, 0x5a, 0x29, 0xe7, 0xf9, - 0x14, 0x2c, 0x71, 0xa9, 0x1f, 0x2a, 0x30, 0x1f, 0xbb, 0x4f, 0x47, 0x3f, 0x53, 0xe0, 0x05, 0x27, - 0xd1, 0x38, 0x71, 0xe4, 0x6e, 0x66, 0xb9, 0x46, 0x8f, 0x00, 0x34, 0x96, 0x84, 0x3d, 0x63, 0xde, - 0x1e, 0x8f, 0x51, 0xac, 0xfe, 0x4d, 0x81, 0x73, 0xf1, 0x9b, 0xf9, 0xff, 0x45, 0x43, 0xd1, 0x6b, - 0x30, 0xe3, 0xcd, 0x2e, 0xdf, 0xa4, 0x87, 0xad, 0xa6, 0x88, 0xc2, 0x79, 0x01, 0x36, 0xb3, 0x15, - 0x92, 0xb0, 0xcc, 0xa7, 0xfe, 0x24, 0x07, 0x65, 0xbf, 0x62, 0xa1, 0x6f, 0x85, 0x5f, 0x5a, 0x94, - 0xcc, 0xbb, 0x3b, 0xd8, 0x74, 0x23, 0x5f, 0x5b, 0x9e, 0xff, 0xff, 0x84, 0x2e, 0xfb, 0xed, 0x92, - 0x37, 0xda, 0x25, 0xcf, 0xf2, 0xd1, 0xa9, 0xa4, 0x90, 0x66, 0x2a, 0x51, 0x3f, 0xc8, 0xc3, 0xc2, - 0x48, 0x01, 0x47, 0x37, 0x23, 0x39, 0xef, 0x4a, 0x2c, 0xe7, 0x2d, 0x8e, 0x08, 0x9c, 0x5a, 0xca, - 0x4b, 0xce, 0x44, 0xf9, 0x09, 0x66, 0xa2, 0x42, 0xda, 0x4c, 0x54, 0x3c, 0x3e, 0x13, 0xc5, 0xa2, - 0x53, 0x4a, 0x15, 0x9d, 0x3e, 0xcc, 0xc7, 0x3a, 0x12, 0x74, 0x1d, 0xca, 0x86, 0xe9, 0x50, 0x6d, - 0x60, 0x53, 0x71, 0x1f, 0x1f, 0x34, 0xab, 0x2d, 0xb1, 0x8e, 0x03, 0x0e, 0x54, 0x87, 0x69, 0x47, - 0xdb, 0xa3, 0x9d, 0x41, 0x97, 0x76, 0x78, 0x40, 0xca, 0xe1, 0x57, 0xf5, 0x6d, 0x9f, 0x80, 0x43, - 0x1e, 0xf5, 0x5f, 0x05, 0x98, 0x95, 0x7b, 0x92, 0x14, 0x7f, 0x23, 0x78, 0x07, 0x66, 0x88, 0x69, - 0x5a, 0x2e, 0xf1, 0x1a, 0xc7, 0x5c, 0xea, 0x0b, 0x52, 0x59, 0x4f, 0xed, 0x76, 0x08, 0xe1, 0x5d, - 0x90, 0x06, 0x47, 0x59, 0xa2, 0x60, 0x59, 0x13, 0xba, 0x2d, 0xba, 0xc5, 0x7c, 0xfa, 0x6e, 0xb1, - 0x1c, 0xeb, 0x14, 0xeb, 0x30, 0x1d, 0x34, 0x55, 0xe2, 0x6f, 0x24, 0x81, 0x7f, 0xc2, 0x33, 0x19, - 0xf2, 0xa0, 0x5a, 0x24, 0x8a, 0x45, 0x1e, 0xc5, 0xb9, 0x63, 0xa6, 0xfe, 0x78, 0x2b, 0x5a, 0x9a, - 0x74, 0x2b, 0x3a, 0x35, 0x91, 0x56, 0xb4, 0xfa, 0x35, 0x38, 0x17, 0x8f, 0x60, 0xa6, 0x4f, 0xb4, - 0x5b, 0x80, 0x46, 0xf5, 0x3f, 0xab, 0xf7, 0x1a, 0x95, 0x08, 0x13, 0x51, 0xe3, 0xda, 0x93, 0xa7, - 0x4b, 0x67, 0x3e, 0x7a, 0xba, 0x74, 0xe6, 0x93, 0xa7, 0x4b, 0x67, 0x7e, 0x34, 0x5c, 0x52, 0x9e, - 0x0c, 0x97, 0x94, 0x8f, 0x86, 0x4b, 0xca, 0x27, 0xc3, 0x25, 0xe5, 0xd3, 0xe1, 0x92, 0xf2, 0xd3, - 0xbf, 0x2f, 0x9d, 0x79, 0x98, 0x3b, 0x58, 0xfd, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x39, 0xdb, - 0xfe, 0xb3, 0x60, 0x2c, 0x00, 0x00, -} - -func (m *DockerImageReference) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DockerImageReference) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *DockerImageReference) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.ID) - copy(dAtA[i:], m.ID) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ID))) - i-- - dAtA[i] = 0x2a - i -= len(m.Tag) - copy(dAtA[i:], m.Tag) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Tag))) - i-- - dAtA[i] = 0x22 - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0x1a - i -= len(m.Namespace) - copy(dAtA[i:], m.Namespace) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace))) - i-- - dAtA[i] = 0x12 - i -= len(m.Registry) - copy(dAtA[i:], m.Registry) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Registry))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *Image) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Image) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Image) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.DockerImageConfig) - copy(dAtA[i:], m.DockerImageConfig) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DockerImageConfig))) - i-- - dAtA[i] = 0x52 - i -= len(m.DockerImageManifestMediaType) - copy(dAtA[i:], m.DockerImageManifestMediaType) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DockerImageManifestMediaType))) - i-- - dAtA[i] = 0x4a - if len(m.DockerImageSignatures) > 0 { - for iNdEx := len(m.DockerImageSignatures) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.DockerImageSignatures[iNdEx]) - copy(dAtA[i:], m.DockerImageSignatures[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DockerImageSignatures[iNdEx]))) - i-- - dAtA[i] = 0x42 - } - } - if len(m.Signatures) > 0 { - for iNdEx := len(m.Signatures) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Signatures[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x3a - } - } - if len(m.DockerImageLayers) > 0 { - for iNdEx := len(m.DockerImageLayers) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.DockerImageLayers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - } - } - i -= len(m.DockerImageManifest) - copy(dAtA[i:], m.DockerImageManifest) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DockerImageManifest))) - i-- - dAtA[i] = 0x2a - i -= len(m.DockerImageMetadataVersion) - copy(dAtA[i:], m.DockerImageMetadataVersion) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DockerImageMetadataVersion))) - i-- - dAtA[i] = 0x22 - { - size, err := m.DockerImageMetadata.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - i -= len(m.DockerImageReference) - copy(dAtA[i:], m.DockerImageReference) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DockerImageReference))) - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageBlobReferences) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageBlobReferences) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageBlobReferences) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i-- - if m.ImageMissing { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x18 - if m.Config != nil { - i -= len(*m.Config) - copy(dAtA[i:], *m.Config) - i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Config))) - i-- - dAtA[i] = 0x12 - } - if len(m.Layers) > 0 { - for iNdEx := len(m.Layers) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Layers[iNdEx]) - copy(dAtA[i:], m.Layers[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Layers[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *ImageImportSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageImportSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageImportSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.ReferencePolicy.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - i-- - if m.IncludeManifest { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x20 - { - size, err := m.ImportPolicy.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - if m.To != nil { - { - size, err := m.To.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - { - size, err := m.From.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageImportStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageImportStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageImportStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Tag) - copy(dAtA[i:], m.Tag) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Tag))) - i-- - dAtA[i] = 0x1a - if m.Image != nil { - { - size, err := m.Image.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageLayer) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageLayer) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageLayer) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.MediaType) - copy(dAtA[i:], m.MediaType) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.MediaType))) - i-- - dAtA[i] = 0x1a - i = encodeVarintGenerated(dAtA, i, uint64(m.LayerSize)) - i-- - dAtA[i] = 0x10 - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageLayerData) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageLayerData) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageLayerData) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.MediaType) - copy(dAtA[i:], m.MediaType) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.MediaType))) - i-- - dAtA[i] = 0x12 - if m.LayerSize != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.LayerSize)) - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil -} - -func (m *ImageList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageLookupPolicy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageLookupPolicy) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageLookupPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i-- - if m.Local { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x18 - return len(dAtA) - i, nil -} - -func (m *ImageSignature) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageSignature) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageSignature) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.IssuedTo != nil { - { - size, err := m.IssuedTo.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x4a - } - if m.IssuedBy != nil { - { - size, err := m.IssuedBy.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x42 - } - if m.Created != nil { - { - size, err := m.Created.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x3a - } - if len(m.SignedClaims) > 0 { - keysForSignedClaims := make([]string, 0, len(m.SignedClaims)) - for k := range m.SignedClaims { - keysForSignedClaims = append(keysForSignedClaims, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForSignedClaims) - for iNdEx := len(keysForSignedClaims) - 1; iNdEx >= 0; iNdEx-- { - v := m.SignedClaims[string(keysForSignedClaims[iNdEx])] - baseI := i - i -= len(v) - copy(dAtA[i:], v) - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i-- - dAtA[i] = 0x12 - i -= len(keysForSignedClaims[iNdEx]) - copy(dAtA[i:], keysForSignedClaims[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForSignedClaims[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0x32 - } - } - i -= len(m.ImageIdentity) - copy(dAtA[i:], m.ImageIdentity) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ImageIdentity))) - i-- - dAtA[i] = 0x2a - if len(m.Conditions) > 0 { - for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - } - if m.Content != nil { - i -= len(m.Content) - copy(dAtA[i:], m.Content) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Content))) - i-- - dAtA[i] = 0x1a - } - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageStream) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageStream) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageStream) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageStreamImage) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageStreamImage) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageStreamImage) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Image.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageStreamImport) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageStreamImport) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageStreamImport) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageStreamImportSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageStreamImportSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageStreamImportSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Images) > 0 { - for iNdEx := len(m.Images) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Images[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - if m.Repository != nil { - { - size, err := m.Repository.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - i-- - if m.Import { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x8 - return len(dAtA) - i, nil -} - -func (m *ImageStreamImportStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageStreamImportStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageStreamImportStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Images) > 0 { - for iNdEx := len(m.Images) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Images[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - if m.Repository != nil { - { - size, err := m.Repository.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if m.Import != nil { - { - size, err := m.Import.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *ImageStreamLayers) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageStreamLayers) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageStreamLayers) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Images) > 0 { - keysForImages := make([]string, 0, len(m.Images)) - for k := range m.Images { - keysForImages = append(keysForImages, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForImages) - for iNdEx := len(keysForImages) - 1; iNdEx >= 0; iNdEx-- { - v := m.Images[string(keysForImages[iNdEx])] - baseI := i - { - size, err := (&v).MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - i -= len(keysForImages[iNdEx]) - copy(dAtA[i:], keysForImages[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForImages[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0x1a - } - } - if len(m.Blobs) > 0 { - keysForBlobs := make([]string, 0, len(m.Blobs)) - for k := range m.Blobs { - keysForBlobs = append(keysForBlobs, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForBlobs) - for iNdEx := len(keysForBlobs) - 1; iNdEx >= 0; iNdEx-- { - v := m.Blobs[string(keysForBlobs[iNdEx])] - baseI := i - { - size, err := (&v).MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - i -= len(keysForBlobs[iNdEx]) - copy(dAtA[i:], keysForBlobs[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForBlobs[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageStreamList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageStreamList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageStreamList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageStreamMapping) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageStreamMapping) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageStreamMapping) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Tag) - copy(dAtA[i:], m.Tag) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Tag))) - i-- - dAtA[i] = 0x1a - { - size, err := m.Image.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageStreamSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageStreamSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageStreamSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.LookupPolicy.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - if len(m.Tags) > 0 { - for iNdEx := len(m.Tags) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Tags[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - i -= len(m.DockerImageRepository) - copy(dAtA[i:], m.DockerImageRepository) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DockerImageRepository))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageStreamStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageStreamStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageStreamStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.PublicDockerImageRepository) - copy(dAtA[i:], m.PublicDockerImageRepository) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.PublicDockerImageRepository))) - i-- - dAtA[i] = 0x1a - if len(m.Tags) > 0 { - for iNdEx := len(m.Tags) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Tags[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - i -= len(m.DockerImageRepository) - copy(dAtA[i:], m.DockerImageRepository) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DockerImageRepository))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageStreamTag) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageStreamTag) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageStreamTag) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.LookupPolicy.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - { - size, err := m.Image.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - if len(m.Conditions) > 0 { - for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - } - i = encodeVarintGenerated(dAtA, i, uint64(m.Generation)) - i-- - dAtA[i] = 0x18 - if m.Tag != nil { - { - size, err := m.Tag.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageStreamTagList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageStreamTagList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageStreamTagList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageTag) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageTag) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageTag) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Image != nil { - { - size, err := m.Image.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if m.Status != nil { - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.Spec != nil { - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ImageTagList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ImageTagList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ImageTagList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *NamedTagEventList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *NamedTagEventList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *NamedTagEventList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Conditions) > 0 { - for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - i -= len(m.Tag) - copy(dAtA[i:], m.Tag) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Tag))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RepositoryImportSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RepositoryImportSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RepositoryImportSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.ReferencePolicy.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - i-- - if m.IncludeManifest { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x18 - { - size, err := m.ImportPolicy.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.From.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RepositoryImportStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RepositoryImportStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RepositoryImportStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.AdditionalTags) > 0 { - for iNdEx := len(m.AdditionalTags) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.AdditionalTags[iNdEx]) - copy(dAtA[i:], m.AdditionalTags[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.AdditionalTags[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - if len(m.Images) > 0 { - for iNdEx := len(m.Images) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Images[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SignatureCondition) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SignatureCondition) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SignatureCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Message) - copy(dAtA[i:], m.Message) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i-- - dAtA[i] = 0x32 - i -= len(m.Reason) - copy(dAtA[i:], m.Reason) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) - i-- - dAtA[i] = 0x2a - { - size, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - { - size, err := m.LastProbeTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - i -= len(m.Status) - copy(dAtA[i:], m.Status) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) - i-- - dAtA[i] = 0x12 - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SignatureGenericEntity) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SignatureGenericEntity) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SignatureGenericEntity) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.CommonName) - copy(dAtA[i:], m.CommonName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.CommonName))) - i-- - dAtA[i] = 0x12 - i -= len(m.Organization) - copy(dAtA[i:], m.Organization) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Organization))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SignatureIssuer) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SignatureIssuer) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SignatureIssuer) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.SignatureGenericEntity.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SignatureSubject) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SignatureSubject) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SignatureSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.PublicKeyID) - copy(dAtA[i:], m.PublicKeyID) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.PublicKeyID))) - i-- - dAtA[i] = 0x12 - { - size, err := m.SignatureGenericEntity.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *TagEvent) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *TagEvent) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TagEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i = encodeVarintGenerated(dAtA, i, uint64(m.Generation)) - i-- - dAtA[i] = 0x20 - i -= len(m.Image) - copy(dAtA[i:], m.Image) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Image))) - i-- - dAtA[i] = 0x1a - i -= len(m.DockerImageReference) - copy(dAtA[i:], m.DockerImageReference) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DockerImageReference))) - i-- - dAtA[i] = 0x12 - { - size, err := m.Created.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *TagEventCondition) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *TagEventCondition) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TagEventCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i = encodeVarintGenerated(dAtA, i, uint64(m.Generation)) - i-- - dAtA[i] = 0x30 - i -= len(m.Message) - copy(dAtA[i:], m.Message) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i-- - dAtA[i] = 0x2a - i -= len(m.Reason) - copy(dAtA[i:], m.Reason) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) - i-- - dAtA[i] = 0x22 - { - size, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - i -= len(m.Status) - copy(dAtA[i:], m.Status) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) - i-- - dAtA[i] = 0x12 - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *TagImportPolicy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *TagImportPolicy) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TagImportPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i-- - if m.Scheduled { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x10 - i-- - if m.Insecure { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x8 - return len(dAtA) - i, nil -} - -func (m *TagReference) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *TagReference) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TagReference) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.ReferencePolicy.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x3a - { - size, err := m.ImportPolicy.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - if m.Generation != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.Generation)) - i-- - dAtA[i] = 0x28 - } - i-- - if m.Reference { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x20 - if m.From != nil { - { - size, err := m.From.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if len(m.Annotations) > 0 { - keysForAnnotations := make([]string, 0, len(m.Annotations)) - for k := range m.Annotations { - keysForAnnotations = append(keysForAnnotations, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) - for iNdEx := len(keysForAnnotations) - 1; iNdEx >= 0; iNdEx-- { - v := m.Annotations[string(keysForAnnotations[iNdEx])] - baseI := i - i -= len(v) - copy(dAtA[i:], v) - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i-- - dAtA[i] = 0x12 - i -= len(keysForAnnotations[iNdEx]) - copy(dAtA[i:], keysForAnnotations[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForAnnotations[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0x12 - } - } - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *TagReferencePolicy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *TagReferencePolicy) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TagReferencePolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *DockerImageReference) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Registry) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Namespace) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Tag) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.ID) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *Image) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.DockerImageReference) - n += 1 + l + sovGenerated(uint64(l)) - l = m.DockerImageMetadata.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.DockerImageMetadataVersion) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.DockerImageManifest) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.DockerImageLayers) > 0 { - for _, e := range m.DockerImageLayers { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.Signatures) > 0 { - for _, e := range m.Signatures { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.DockerImageSignatures) > 0 { - for _, b := range m.DockerImageSignatures { - l = len(b) - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.DockerImageManifestMediaType) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.DockerImageConfig) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ImageBlobReferences) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Layers) > 0 { - for _, s := range m.Layers { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if m.Config != nil { - l = len(*m.Config) - n += 1 + l + sovGenerated(uint64(l)) - } - n += 2 - return n -} - -func (m *ImageImportSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.From.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.To != nil { - l = m.To.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - l = m.ImportPolicy.Size() - n += 1 + l + sovGenerated(uint64(l)) - n += 2 - l = m.ReferencePolicy.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ImageImportStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.Image != nil { - l = m.Image.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - l = len(m.Tag) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ImageLayer) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.LayerSize)) - l = len(m.MediaType) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ImageLayerData) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.LayerSize != nil { - n += 1 + sovGenerated(uint64(*m.LayerSize)) - } - l = len(m.MediaType) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ImageList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ImageLookupPolicy) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - n += 2 - return n -} - -func (m *ImageSignature) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - if m.Content != nil { - l = len(m.Content) - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.ImageIdentity) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.SignedClaims) > 0 { - for k, v := range m.SignedClaims { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - if m.Created != nil { - l = m.Created.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.IssuedBy != nil { - l = m.IssuedBy.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.IssuedTo != nil { - l = m.IssuedTo.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *ImageStream) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ImageStreamImage) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Image.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ImageStreamImport) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ImageStreamImportSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - n += 2 - if m.Repository != nil { - l = m.Repository.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.Images) > 0 { - for _, e := range m.Images { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ImageStreamImportStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Import != nil { - l = m.Import.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.Repository != nil { - l = m.Repository.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.Images) > 0 { - for _, e := range m.Images { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ImageStreamLayers) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Blobs) > 0 { - for k, v := range m.Blobs { - _ = k - _ = v - l = v.Size() - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l)) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - if len(m.Images) > 0 { - for k, v := range m.Images { - _ = k - _ = v - l = v.Size() - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l)) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - return n -} - -func (m *ImageStreamList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ImageStreamMapping) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Image.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Tag) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ImageStreamSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.DockerImageRepository) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Tags) > 0 { - for _, e := range m.Tags { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = m.LookupPolicy.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ImageStreamStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.DockerImageRepository) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Tags) > 0 { - for _, e := range m.Tags { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.PublicDockerImageRepository) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ImageStreamTag) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.Tag != nil { - l = m.Tag.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - n += 1 + sovGenerated(uint64(m.Generation)) - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = m.Image.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.LookupPolicy.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ImageStreamTagList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ImageTag) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.Spec != nil { - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.Status != nil { - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.Image != nil { - l = m.Image.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *ImageTagList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *NamedTagEventList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Tag) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *RepositoryImportSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.From.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.ImportPolicy.Size() - n += 1 + l + sovGenerated(uint64(l)) - n += 2 - l = m.ReferencePolicy.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *RepositoryImportStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Images) > 0 { - for _, e := range m.Images { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.AdditionalTags) > 0 { - for _, s := range m.AdditionalTags { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *SignatureCondition) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Status) - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastProbeTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastTransitionTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Reason) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *SignatureGenericEntity) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Organization) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.CommonName) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *SignatureIssuer) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.SignatureGenericEntity.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *SignatureSubject) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.SignatureGenericEntity.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.PublicKeyID) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *TagEvent) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Created.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.DockerImageReference) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Image) - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.Generation)) - return n -} - -func (m *TagEventCondition) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Status) - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastTransitionTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Reason) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.Generation)) - return n -} - -func (m *TagImportPolicy) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - n += 2 - n += 2 - return n -} - -func (m *TagReference) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Annotations) > 0 { - for k, v := range m.Annotations { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - if m.From != nil { - l = m.From.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - n += 2 - if m.Generation != nil { - n += 1 + sovGenerated(uint64(*m.Generation)) - } - l = m.ImportPolicy.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.ReferencePolicy.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *TagReferencePolicy) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *DockerImageReference) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DockerImageReference{`, - `Registry:` + fmt.Sprintf("%v", this.Registry) + `,`, - `Namespace:` + fmt.Sprintf("%v", this.Namespace) + `,`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `Tag:` + fmt.Sprintf("%v", this.Tag) + `,`, - `ID:` + fmt.Sprintf("%v", this.ID) + `,`, - `}`, - }, "") - return s -} -func (this *Image) String() string { - if this == nil { - return "nil" - } - repeatedStringForDockerImageLayers := "[]ImageLayer{" - for _, f := range this.DockerImageLayers { - repeatedStringForDockerImageLayers += strings.Replace(strings.Replace(f.String(), "ImageLayer", "ImageLayer", 1), `&`, ``, 1) + "," - } - repeatedStringForDockerImageLayers += "}" - repeatedStringForSignatures := "[]ImageSignature{" - for _, f := range this.Signatures { - repeatedStringForSignatures += strings.Replace(strings.Replace(f.String(), "ImageSignature", "ImageSignature", 1), `&`, ``, 1) + "," - } - repeatedStringForSignatures += "}" - s := strings.Join([]string{`&Image{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `DockerImageReference:` + fmt.Sprintf("%v", this.DockerImageReference) + `,`, - `DockerImageMetadata:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.DockerImageMetadata), "RawExtension", "runtime.RawExtension", 1), `&`, ``, 1) + `,`, - `DockerImageMetadataVersion:` + fmt.Sprintf("%v", this.DockerImageMetadataVersion) + `,`, - `DockerImageManifest:` + fmt.Sprintf("%v", this.DockerImageManifest) + `,`, - `DockerImageLayers:` + repeatedStringForDockerImageLayers + `,`, - `Signatures:` + repeatedStringForSignatures + `,`, - `DockerImageSignatures:` + fmt.Sprintf("%v", this.DockerImageSignatures) + `,`, - `DockerImageManifestMediaType:` + fmt.Sprintf("%v", this.DockerImageManifestMediaType) + `,`, - `DockerImageConfig:` + fmt.Sprintf("%v", this.DockerImageConfig) + `,`, - `}`, - }, "") - return s -} -func (this *ImageBlobReferences) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ImageBlobReferences{`, - `Layers:` + fmt.Sprintf("%v", this.Layers) + `,`, - `Config:` + valueToStringGenerated(this.Config) + `,`, - `ImageMissing:` + fmt.Sprintf("%v", this.ImageMissing) + `,`, - `}`, - }, "") - return s -} -func (this *ImageImportSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ImageImportSpec{`, - `From:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.From), "ObjectReference", "v11.ObjectReference", 1), `&`, ``, 1) + `,`, - `To:` + strings.Replace(fmt.Sprintf("%v", this.To), "LocalObjectReference", "v11.LocalObjectReference", 1) + `,`, - `ImportPolicy:` + strings.Replace(strings.Replace(this.ImportPolicy.String(), "TagImportPolicy", "TagImportPolicy", 1), `&`, ``, 1) + `,`, - `IncludeManifest:` + fmt.Sprintf("%v", this.IncludeManifest) + `,`, - `ReferencePolicy:` + strings.Replace(strings.Replace(this.ReferencePolicy.String(), "TagReferencePolicy", "TagReferencePolicy", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ImageImportStatus) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ImageImportStatus{`, - `Status:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Status), "Status", "v1.Status", 1), `&`, ``, 1) + `,`, - `Image:` + strings.Replace(this.Image.String(), "Image", "Image", 1) + `,`, - `Tag:` + fmt.Sprintf("%v", this.Tag) + `,`, - `}`, - }, "") - return s -} -func (this *ImageLayer) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ImageLayer{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `LayerSize:` + fmt.Sprintf("%v", this.LayerSize) + `,`, - `MediaType:` + fmt.Sprintf("%v", this.MediaType) + `,`, - `}`, - }, "") - return s -} -func (this *ImageLayerData) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ImageLayerData{`, - `LayerSize:` + valueToStringGenerated(this.LayerSize) + `,`, - `MediaType:` + fmt.Sprintf("%v", this.MediaType) + `,`, - `}`, - }, "") - return s -} -func (this *ImageList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]Image{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Image", "Image", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&ImageList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *ImageLookupPolicy) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ImageLookupPolicy{`, - `Local:` + fmt.Sprintf("%v", this.Local) + `,`, - `}`, - }, "") - return s -} -func (this *ImageSignature) String() string { - if this == nil { - return "nil" - } - repeatedStringForConditions := "[]SignatureCondition{" - for _, f := range this.Conditions { - repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "SignatureCondition", "SignatureCondition", 1), `&`, ``, 1) + "," - } - repeatedStringForConditions += "}" - keysForSignedClaims := make([]string, 0, len(this.SignedClaims)) - for k := range this.SignedClaims { - keysForSignedClaims = append(keysForSignedClaims, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForSignedClaims) - mapStringForSignedClaims := "map[string]string{" - for _, k := range keysForSignedClaims { - mapStringForSignedClaims += fmt.Sprintf("%v: %v,", k, this.SignedClaims[k]) - } - mapStringForSignedClaims += "}" - s := strings.Join([]string{`&ImageSignature{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Content:` + valueToStringGenerated(this.Content) + `,`, - `Conditions:` + repeatedStringForConditions + `,`, - `ImageIdentity:` + fmt.Sprintf("%v", this.ImageIdentity) + `,`, - `SignedClaims:` + mapStringForSignedClaims + `,`, - `Created:` + strings.Replace(fmt.Sprintf("%v", this.Created), "Time", "v1.Time", 1) + `,`, - `IssuedBy:` + strings.Replace(this.IssuedBy.String(), "SignatureIssuer", "SignatureIssuer", 1) + `,`, - `IssuedTo:` + strings.Replace(this.IssuedTo.String(), "SignatureSubject", "SignatureSubject", 1) + `,`, - `}`, - }, "") - return s -} -func (this *ImageStream) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ImageStream{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ImageStreamSpec", "ImageStreamSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ImageStreamStatus", "ImageStreamStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ImageStreamImage) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ImageStreamImage{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Image:` + strings.Replace(strings.Replace(this.Image.String(), "Image", "Image", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ImageStreamImport) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ImageStreamImport{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ImageStreamImportSpec", "ImageStreamImportSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ImageStreamImportStatus", "ImageStreamImportStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ImageStreamImportSpec) String() string { - if this == nil { - return "nil" - } - repeatedStringForImages := "[]ImageImportSpec{" - for _, f := range this.Images { - repeatedStringForImages += strings.Replace(strings.Replace(f.String(), "ImageImportSpec", "ImageImportSpec", 1), `&`, ``, 1) + "," - } - repeatedStringForImages += "}" - s := strings.Join([]string{`&ImageStreamImportSpec{`, - `Import:` + fmt.Sprintf("%v", this.Import) + `,`, - `Repository:` + strings.Replace(this.Repository.String(), "RepositoryImportSpec", "RepositoryImportSpec", 1) + `,`, - `Images:` + repeatedStringForImages + `,`, - `}`, - }, "") - return s -} -func (this *ImageStreamImportStatus) String() string { - if this == nil { - return "nil" - } - repeatedStringForImages := "[]ImageImportStatus{" - for _, f := range this.Images { - repeatedStringForImages += strings.Replace(strings.Replace(f.String(), "ImageImportStatus", "ImageImportStatus", 1), `&`, ``, 1) + "," - } - repeatedStringForImages += "}" - s := strings.Join([]string{`&ImageStreamImportStatus{`, - `Import:` + strings.Replace(this.Import.String(), "ImageStream", "ImageStream", 1) + `,`, - `Repository:` + strings.Replace(this.Repository.String(), "RepositoryImportStatus", "RepositoryImportStatus", 1) + `,`, - `Images:` + repeatedStringForImages + `,`, - `}`, - }, "") - return s -} -func (this *ImageStreamLayers) String() string { - if this == nil { - return "nil" - } - keysForBlobs := make([]string, 0, len(this.Blobs)) - for k := range this.Blobs { - keysForBlobs = append(keysForBlobs, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForBlobs) - mapStringForBlobs := "map[string]ImageLayerData{" - for _, k := range keysForBlobs { - mapStringForBlobs += fmt.Sprintf("%v: %v,", k, this.Blobs[k]) - } - mapStringForBlobs += "}" - keysForImages := make([]string, 0, len(this.Images)) - for k := range this.Images { - keysForImages = append(keysForImages, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForImages) - mapStringForImages := "map[string]ImageBlobReferences{" - for _, k := range keysForImages { - mapStringForImages += fmt.Sprintf("%v: %v,", k, this.Images[k]) - } - mapStringForImages += "}" - s := strings.Join([]string{`&ImageStreamLayers{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Blobs:` + mapStringForBlobs + `,`, - `Images:` + mapStringForImages + `,`, - `}`, - }, "") - return s -} -func (this *ImageStreamList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]ImageStream{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "ImageStream", "ImageStream", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&ImageStreamList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *ImageStreamMapping) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ImageStreamMapping{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Image:` + strings.Replace(strings.Replace(this.Image.String(), "Image", "Image", 1), `&`, ``, 1) + `,`, - `Tag:` + fmt.Sprintf("%v", this.Tag) + `,`, - `}`, - }, "") - return s -} -func (this *ImageStreamSpec) String() string { - if this == nil { - return "nil" - } - repeatedStringForTags := "[]TagReference{" - for _, f := range this.Tags { - repeatedStringForTags += strings.Replace(strings.Replace(f.String(), "TagReference", "TagReference", 1), `&`, ``, 1) + "," - } - repeatedStringForTags += "}" - s := strings.Join([]string{`&ImageStreamSpec{`, - `DockerImageRepository:` + fmt.Sprintf("%v", this.DockerImageRepository) + `,`, - `Tags:` + repeatedStringForTags + `,`, - `LookupPolicy:` + strings.Replace(strings.Replace(this.LookupPolicy.String(), "ImageLookupPolicy", "ImageLookupPolicy", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ImageStreamStatus) String() string { - if this == nil { - return "nil" - } - repeatedStringForTags := "[]NamedTagEventList{" - for _, f := range this.Tags { - repeatedStringForTags += strings.Replace(strings.Replace(f.String(), "NamedTagEventList", "NamedTagEventList", 1), `&`, ``, 1) + "," - } - repeatedStringForTags += "}" - s := strings.Join([]string{`&ImageStreamStatus{`, - `DockerImageRepository:` + fmt.Sprintf("%v", this.DockerImageRepository) + `,`, - `Tags:` + repeatedStringForTags + `,`, - `PublicDockerImageRepository:` + fmt.Sprintf("%v", this.PublicDockerImageRepository) + `,`, - `}`, - }, "") - return s -} -func (this *ImageStreamTag) String() string { - if this == nil { - return "nil" - } - repeatedStringForConditions := "[]TagEventCondition{" - for _, f := range this.Conditions { - repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "TagEventCondition", "TagEventCondition", 1), `&`, ``, 1) + "," - } - repeatedStringForConditions += "}" - s := strings.Join([]string{`&ImageStreamTag{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Tag:` + strings.Replace(this.Tag.String(), "TagReference", "TagReference", 1) + `,`, - `Generation:` + fmt.Sprintf("%v", this.Generation) + `,`, - `Conditions:` + repeatedStringForConditions + `,`, - `Image:` + strings.Replace(strings.Replace(this.Image.String(), "Image", "Image", 1), `&`, ``, 1) + `,`, - `LookupPolicy:` + strings.Replace(strings.Replace(this.LookupPolicy.String(), "ImageLookupPolicy", "ImageLookupPolicy", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ImageStreamTagList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]ImageStreamTag{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "ImageStreamTag", "ImageStreamTag", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&ImageStreamTagList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *ImageTag) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ImageTag{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(this.Spec.String(), "TagReference", "TagReference", 1) + `,`, - `Status:` + strings.Replace(this.Status.String(), "NamedTagEventList", "NamedTagEventList", 1) + `,`, - `Image:` + strings.Replace(this.Image.String(), "Image", "Image", 1) + `,`, - `}`, - }, "") - return s -} -func (this *ImageTagList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]ImageTag{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "ImageTag", "ImageTag", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&ImageTagList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *NamedTagEventList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]TagEvent{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "TagEvent", "TagEvent", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - repeatedStringForConditions := "[]TagEventCondition{" - for _, f := range this.Conditions { - repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "TagEventCondition", "TagEventCondition", 1), `&`, ``, 1) + "," - } - repeatedStringForConditions += "}" - s := strings.Join([]string{`&NamedTagEventList{`, - `Tag:` + fmt.Sprintf("%v", this.Tag) + `,`, - `Items:` + repeatedStringForItems + `,`, - `Conditions:` + repeatedStringForConditions + `,`, - `}`, - }, "") - return s -} -func (this *RepositoryImportSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&RepositoryImportSpec{`, - `From:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.From), "ObjectReference", "v11.ObjectReference", 1), `&`, ``, 1) + `,`, - `ImportPolicy:` + strings.Replace(strings.Replace(this.ImportPolicy.String(), "TagImportPolicy", "TagImportPolicy", 1), `&`, ``, 1) + `,`, - `IncludeManifest:` + fmt.Sprintf("%v", this.IncludeManifest) + `,`, - `ReferencePolicy:` + strings.Replace(strings.Replace(this.ReferencePolicy.String(), "TagReferencePolicy", "TagReferencePolicy", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *RepositoryImportStatus) String() string { - if this == nil { - return "nil" - } - repeatedStringForImages := "[]ImageImportStatus{" - for _, f := range this.Images { - repeatedStringForImages += strings.Replace(strings.Replace(f.String(), "ImageImportStatus", "ImageImportStatus", 1), `&`, ``, 1) + "," - } - repeatedStringForImages += "}" - s := strings.Join([]string{`&RepositoryImportStatus{`, - `Status:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Status), "Status", "v1.Status", 1), `&`, ``, 1) + `,`, - `Images:` + repeatedStringForImages + `,`, - `AdditionalTags:` + fmt.Sprintf("%v", this.AdditionalTags) + `,`, - `}`, - }, "") - return s -} -func (this *SignatureCondition) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SignatureCondition{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Status:` + fmt.Sprintf("%v", this.Status) + `,`, - `LastProbeTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastProbeTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, - `LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastTransitionTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, - `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `}`, - }, "") - return s -} -func (this *SignatureGenericEntity) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SignatureGenericEntity{`, - `Organization:` + fmt.Sprintf("%v", this.Organization) + `,`, - `CommonName:` + fmt.Sprintf("%v", this.CommonName) + `,`, - `}`, - }, "") - return s -} -func (this *SignatureIssuer) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SignatureIssuer{`, - `SignatureGenericEntity:` + strings.Replace(strings.Replace(this.SignatureGenericEntity.String(), "SignatureGenericEntity", "SignatureGenericEntity", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *SignatureSubject) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SignatureSubject{`, - `SignatureGenericEntity:` + strings.Replace(strings.Replace(this.SignatureGenericEntity.String(), "SignatureGenericEntity", "SignatureGenericEntity", 1), `&`, ``, 1) + `,`, - `PublicKeyID:` + fmt.Sprintf("%v", this.PublicKeyID) + `,`, - `}`, - }, "") - return s -} -func (this *TagEvent) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TagEvent{`, - `Created:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Created), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, - `DockerImageReference:` + fmt.Sprintf("%v", this.DockerImageReference) + `,`, - `Image:` + fmt.Sprintf("%v", this.Image) + `,`, - `Generation:` + fmt.Sprintf("%v", this.Generation) + `,`, - `}`, - }, "") - return s -} -func (this *TagEventCondition) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TagEventCondition{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Status:` + fmt.Sprintf("%v", this.Status) + `,`, - `LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastTransitionTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, - `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `Generation:` + fmt.Sprintf("%v", this.Generation) + `,`, - `}`, - }, "") - return s -} -func (this *TagImportPolicy) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TagImportPolicy{`, - `Insecure:` + fmt.Sprintf("%v", this.Insecure) + `,`, - `Scheduled:` + fmt.Sprintf("%v", this.Scheduled) + `,`, - `}`, - }, "") - return s -} -func (this *TagReference) String() string { - if this == nil { - return "nil" - } - keysForAnnotations := make([]string, 0, len(this.Annotations)) - for k := range this.Annotations { - keysForAnnotations = append(keysForAnnotations, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) - mapStringForAnnotations := "map[string]string{" - for _, k := range keysForAnnotations { - mapStringForAnnotations += fmt.Sprintf("%v: %v,", k, this.Annotations[k]) - } - mapStringForAnnotations += "}" - s := strings.Join([]string{`&TagReference{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `Annotations:` + mapStringForAnnotations + `,`, - `From:` + strings.Replace(fmt.Sprintf("%v", this.From), "ObjectReference", "v11.ObjectReference", 1) + `,`, - `Reference:` + fmt.Sprintf("%v", this.Reference) + `,`, - `Generation:` + valueToStringGenerated(this.Generation) + `,`, - `ImportPolicy:` + strings.Replace(strings.Replace(this.ImportPolicy.String(), "TagImportPolicy", "TagImportPolicy", 1), `&`, ``, 1) + `,`, - `ReferencePolicy:` + strings.Replace(strings.Replace(this.ReferencePolicy.String(), "TagReferencePolicy", "TagReferencePolicy", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *TagReferencePolicy) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TagReferencePolicy{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *DockerImageReference) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DockerImageReference: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DockerImageReference: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Registry", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Registry = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Namespace = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tag", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Tag = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ID", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ID = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Image) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Image: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Image: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DockerImageReference", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DockerImageReference = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DockerImageMetadata", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.DockerImageMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DockerImageMetadataVersion", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DockerImageMetadataVersion = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DockerImageManifest", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DockerImageManifest = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DockerImageLayers", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DockerImageLayers = append(m.DockerImageLayers, ImageLayer{}) - if err := m.DockerImageLayers[len(m.DockerImageLayers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Signatures", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Signatures = append(m.Signatures, ImageSignature{}) - if err := m.Signatures[len(m.Signatures)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DockerImageSignatures", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DockerImageSignatures = append(m.DockerImageSignatures, make([]byte, postIndex-iNdEx)) - copy(m.DockerImageSignatures[len(m.DockerImageSignatures)-1], dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DockerImageManifestMediaType", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DockerImageManifestMediaType = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DockerImageConfig", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DockerImageConfig = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageBlobReferences) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageBlobReferences: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageBlobReferences: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Layers", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Layers = append(m.Layers, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := string(dAtA[iNdEx:postIndex]) - m.Config = &s - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ImageMissing", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.ImageMissing = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageImportSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageImportSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageImportSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field From", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.From.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field To", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.To == nil { - m.To = &v11.LocalObjectReference{} - } - if err := m.To.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ImportPolicy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ImportPolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IncludeManifest", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.IncludeManifest = bool(v != 0) - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReferencePolicy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ReferencePolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageImportStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageImportStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageImportStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Image", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Image == nil { - m.Image = &Image{} - } - if err := m.Image.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tag", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Tag = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageLayer) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageLayer: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageLayer: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field LayerSize", wireType) - } - m.LayerSize = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.LayerSize |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MediaType", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MediaType = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageLayerData) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageLayerData: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageLayerData: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field LayerSize", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.LayerSize = &v - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MediaType", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MediaType = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, Image{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageLookupPolicy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageLookupPolicy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageLookupPolicy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Local", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Local = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageSignature) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageSignature: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageSignature: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Content", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Content = append(m.Content[:0], dAtA[iNdEx:postIndex]...) - if m.Content == nil { - m.Content = []byte{} - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Conditions = append(m.Conditions, SignatureCondition{}) - if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ImageIdentity", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ImageIdentity = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SignedClaims", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.SignedClaims == nil { - m.SignedClaims = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.SignedClaims[mapkey] = mapvalue - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Created", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Created == nil { - m.Created = &v1.Time{} - } - if err := m.Created.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field IssuedBy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.IssuedBy == nil { - m.IssuedBy = &SignatureIssuer{} - } - if err := m.IssuedBy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field IssuedTo", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.IssuedTo == nil { - m.IssuedTo = &SignatureSubject{} - } - if err := m.IssuedTo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageStream) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageStream: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageStream: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageStreamImage) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageStreamImage: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageStreamImage: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Image", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Image.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageStreamImport) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageStreamImport: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageStreamImport: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageStreamImportSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageStreamImportSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageStreamImportSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Import", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Import = bool(v != 0) - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Repository", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Repository == nil { - m.Repository = &RepositoryImportSpec{} - } - if err := m.Repository.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Images", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Images = append(m.Images, ImageImportSpec{}) - if err := m.Images[len(m.Images)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageStreamImportStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageStreamImportStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageStreamImportStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Import", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Import == nil { - m.Import = &ImageStream{} - } - if err := m.Import.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Repository", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Repository == nil { - m.Repository = &RepositoryImportStatus{} - } - if err := m.Repository.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Images", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Images = append(m.Images, ImageImportStatus{}) - if err := m.Images[len(m.Images)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageStreamLayers) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageStreamLayers: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageStreamLayers: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Blobs", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Blobs == nil { - m.Blobs = make(map[string]ImageLayerData) - } - var mapkey string - mapvalue := &ImageLayerData{} - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if postmsgIndex < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue = &ImageLayerData{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.Blobs[mapkey] = *mapvalue - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Images", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Images == nil { - m.Images = make(map[string]ImageBlobReferences) - } - var mapkey string - mapvalue := &ImageBlobReferences{} - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if postmsgIndex < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue = &ImageBlobReferences{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.Images[mapkey] = *mapvalue - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageStreamList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageStreamList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageStreamList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, ImageStream{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageStreamMapping) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageStreamMapping: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageStreamMapping: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Image", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Image.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tag", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Tag = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageStreamSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageStreamSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageStreamSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DockerImageRepository", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DockerImageRepository = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tags", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Tags = append(m.Tags, TagReference{}) - if err := m.Tags[len(m.Tags)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LookupPolicy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.LookupPolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageStreamStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageStreamStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageStreamStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DockerImageRepository", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DockerImageRepository = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tags", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Tags = append(m.Tags, NamedTagEventList{}) - if err := m.Tags[len(m.Tags)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PublicDockerImageRepository", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.PublicDockerImageRepository = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageStreamTag) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageStreamTag: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageStreamTag: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tag", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Tag == nil { - m.Tag = &TagReference{} - } - if err := m.Tag.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Generation", wireType) - } - m.Generation = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Generation |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Conditions = append(m.Conditions, TagEventCondition{}) - if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Image", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Image.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LookupPolicy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.LookupPolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageStreamTagList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageStreamTagList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageStreamTagList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, ImageStreamTag{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageTag) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageTag: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageTag: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Spec == nil { - m.Spec = &TagReference{} - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Status == nil { - m.Status = &NamedTagEventList{} - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Image", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Image == nil { - m.Image = &Image{} - } - if err := m.Image.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ImageTagList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ImageTagList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ImageTagList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, ImageTag{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NamedTagEventList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: NamedTagEventList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NamedTagEventList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Tag", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Tag = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, TagEvent{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Conditions = append(m.Conditions, TagEventCondition{}) - if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RepositoryImportSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RepositoryImportSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RepositoryImportSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field From", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.From.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ImportPolicy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ImportPolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IncludeManifest", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.IncludeManifest = bool(v != 0) - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReferencePolicy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ReferencePolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RepositoryImportStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RepositoryImportStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RepositoryImportStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Images", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Images = append(m.Images, ImageImportStatus{}) - if err := m.Images[len(m.Images)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AdditionalTags", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AdditionalTags = append(m.AdditionalTags, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SignatureCondition) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SignatureCondition: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SignatureCondition: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = SignatureConditionType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastProbeTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.LastProbeTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Reason = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SignatureGenericEntity) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SignatureGenericEntity: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SignatureGenericEntity: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Organization", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Organization = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CommonName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.CommonName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SignatureIssuer) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SignatureIssuer: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SignatureIssuer: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SignatureGenericEntity", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.SignatureGenericEntity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SignatureSubject) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SignatureSubject: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SignatureSubject: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SignatureGenericEntity", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.SignatureGenericEntity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PublicKeyID", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.PublicKeyID = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TagEvent) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TagEvent: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TagEvent: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Created", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Created.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DockerImageReference", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DockerImageReference = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Image", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Image = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Generation", wireType) - } - m.Generation = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Generation |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TagEventCondition) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TagEventCondition: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TagEventCondition: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = TagEventConditionType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Reason = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Generation", wireType) - } - m.Generation = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Generation |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TagImportPolicy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TagImportPolicy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TagImportPolicy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Insecure", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Insecure = bool(v != 0) - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Scheduled", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Scheduled = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TagReference) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TagReference: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TagReference: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Annotations == nil { - m.Annotations = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.Annotations[mapkey] = mapvalue - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field From", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.From == nil { - m.From = &v11.ObjectReference{} - } - if err := m.From.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Reference", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Reference = bool(v != 0) - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Generation", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Generation = &v - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ImportPolicy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ImportPolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ReferencePolicy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ReferencePolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TagReferencePolicy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TagReferencePolicy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TagReferencePolicy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = TagReferencePolicyType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/vendor/github.com/openshift/api/image/v1/generated.proto b/vendor/github.com/openshift/api/image/v1/generated.proto deleted file mode 100644 index 69ed48e89c9d9..0000000000000 --- a/vendor/github.com/openshift/api/image/v1/generated.proto +++ /dev/null @@ -1,626 +0,0 @@ - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = 'proto2'; - -package github.com.openshift.api.image.v1; - -import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v1"; - -// DockerImageReference points to a container image. -message DockerImageReference { - // Registry is the registry that contains the container image - optional string registry = 1; - - // Namespace is the namespace that contains the container image - optional string namespace = 2; - - // Name is the name of the container image - optional string name = 3; - - // Tag is which tag of the container image is being referenced - optional string tag = 4; - - // ID is the identifier for the container image - optional string iD = 5; -} - -// Image is an immutable representation of a container image and metadata at a point in time. -// Images are named by taking a hash of their contents (metadata and content) and any change -// in format, content, or metadata results in a new name. The images resource is primarily -// for use by cluster administrators and integrations like the cluster image registry - end -// users instead access images via the imagestreamtags or imagestreamimages resources. While -// image metadata is stored in the API, any integration that implements the container image -// registry API must provide its own storage for the raw manifest data, image config, and -// layer contents. -message Image { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // DockerImageReference is the string that can be used to pull this image. - optional string dockerImageReference = 2; - - // DockerImageMetadata contains metadata about this image - // +patchStrategy=replace - // +kubebuilder:pruning:PreserveUnknownFields - optional k8s.io.apimachinery.pkg.runtime.RawExtension dockerImageMetadata = 3; - - // DockerImageMetadataVersion conveys the version of the object, which if empty defaults to "1.0" - optional string dockerImageMetadataVersion = 4; - - // DockerImageManifest is the raw JSON of the manifest - optional string dockerImageManifest = 5; - - // DockerImageLayers represents the layers in the image. May not be set if the image does not define that data. - repeated ImageLayer dockerImageLayers = 6; - - // Signatures holds all signatures of the image. - // +patchMergeKey=name - // +patchStrategy=merge - repeated ImageSignature signatures = 7; - - // DockerImageSignatures provides the signatures as opaque blobs. This is a part of manifest schema v1. - repeated bytes dockerImageSignatures = 8; - - // DockerImageManifestMediaType specifies the mediaType of manifest. This is a part of manifest schema v2. - optional string dockerImageManifestMediaType = 9; - - // DockerImageConfig is a JSON blob that the runtime uses to set up the container. This is a part of manifest schema v2. - optional string dockerImageConfig = 10; -} - -// ImageBlobReferences describes the blob references within an image. -message ImageBlobReferences { - // imageMissing is true if the image is referenced by the image stream but the image - // object has been deleted from the API by an administrator. When this field is set, - // layers and config fields may be empty and callers that depend on the image metadata - // should consider the image to be unavailable for download or viewing. - // +optional - optional bool imageMissing = 3; - - // layers is the list of blobs that compose this image, from base layer to top layer. - // All layers referenced by this array will be defined in the blobs map. Some images - // may have zero layers. - // +optional - repeated string layers = 1; - - // config, if set, is the blob that contains the image config. Some images do - // not have separate config blobs and this field will be set to nil if so. - // +optional - optional string config = 2; -} - -// ImageImportSpec describes a request to import a specific image. -message ImageImportSpec { - // From is the source of an image to import; only kind DockerImage is allowed - optional k8s.io.api.core.v1.ObjectReference from = 1; - - // To is a tag in the current image stream to assign the imported image to, if name is not specified the default tag from from.name will be used - optional k8s.io.api.core.v1.LocalObjectReference to = 2; - - // ImportPolicy is the policy controlling how the image is imported - optional TagImportPolicy importPolicy = 3; - - // ReferencePolicy defines how other components should consume the image - optional TagReferencePolicy referencePolicy = 5; - - // IncludeManifest determines if the manifest for each image is returned in the response - optional bool includeManifest = 4; -} - -// ImageImportStatus describes the result of an image import. -message ImageImportStatus { - // Status is the status of the image import, including errors encountered while retrieving the image - optional k8s.io.apimachinery.pkg.apis.meta.v1.Status status = 1; - - // Image is the metadata of that image, if the image was located - optional Image image = 2; - - // Tag is the tag this image was located under, if any - optional string tag = 3; -} - -// ImageLayer represents a single layer of the image. Some images may have multiple layers. Some may have none. -message ImageLayer { - // Name of the layer as defined by the underlying store. - optional string name = 1; - - // Size of the layer in bytes as defined by the underlying store. - optional int64 size = 2; - - // MediaType of the referenced object. - optional string mediaType = 3; -} - -// ImageLayerData contains metadata about an image layer. -message ImageLayerData { - // Size of the layer in bytes as defined by the underlying store. This field is - // optional if the necessary information about size is not available. - optional int64 size = 1; - - // MediaType of the referenced object. - optional string mediaType = 2; -} - -// ImageList is a list of Image objects. -message ImageList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is a list of images - repeated Image items = 2; -} - -// ImageLookupPolicy describes how an image stream can be used to override the image references -// used by pods, builds, and other resources in a namespace. -message ImageLookupPolicy { - // local will change the docker short image references (like "mysql" or - // "php:latest") on objects in this namespace to the image ID whenever they match - // this image stream, instead of reaching out to a remote registry. The name will - // be fully qualified to an image ID if found. The tag's referencePolicy is taken - // into account on the replaced value. Only works within the current namespace. - optional bool local = 3; -} - -// ImageSignature holds a signature of an image. It allows to verify image identity and possibly other claims -// as long as the signature is trusted. Based on this information it is possible to restrict runnable images -// to those matching cluster-wide policy. -// Mandatory fields should be parsed by clients doing image verification. The others are parsed from -// signature's content by the server. They serve just an informative purpose. -message ImageSignature { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Required: Describes a type of stored blob. - optional string type = 2; - - // Required: An opaque binary string which is an image's signature. - optional bytes content = 3; - - // Conditions represent the latest available observations of a signature's current state. - // +patchMergeKey=type - // +patchStrategy=merge - repeated SignatureCondition conditions = 4; - - // A human readable string representing image's identity. It could be a product name and version, or an - // image pull spec (e.g. "registry.access.redhat.com/rhel7/rhel:7.2"). - optional string imageIdentity = 5; - - // Contains claims from the signature. - map signedClaims = 6; - - // If specified, it is the time of signature's creation. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time created = 7; - - // If specified, it holds information about an issuer of signing certificate or key (a person or entity - // who signed the signing certificate or key). - optional SignatureIssuer issuedBy = 8; - - // If specified, it holds information about a subject of signing certificate or key (a person or entity - // who signed the image). - optional SignatureSubject issuedTo = 9; -} - -// An ImageStream stores a mapping of tags to images, metadata overrides that are applied -// when images are tagged in a stream, and an optional reference to a container image -// repository on a registry. Users typically update the spec.tags field to point to external -// images which are imported from container registries using credentials in your namespace -// with the pull secret type, or to existing image stream tags and images which are -// immediately accessible for tagging or pulling. The history of images applied to a tag -// is visible in the status.tags field and any user who can view an image stream is allowed -// to tag that image into their own image streams. Access to pull images from the integrated -// registry is granted by having the "get imagestreams/layers" permission on a given image -// stream. Users may remove a tag by deleting the imagestreamtag resource, which causes both -// spec and status for that tag to be removed. Image stream history is retained until an -// administrator runs the prune operation, which removes references that are no longer in -// use. To preserve a historical image, ensure there is a tag in spec pointing to that image -// by its digest. -message ImageStream { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Spec describes the desired state of this stream - // +optional - optional ImageStreamSpec spec = 2; - - // Status describes the current state of this stream - // +optional - optional ImageStreamStatus status = 3; -} - -// ImageStreamImage represents an Image that is retrieved by image name from an ImageStream. -// User interfaces and regular users can use this resource to access the metadata details of -// a tagged image in the image stream history for viewing, since Image resources are not -// directly accessible to end users. A not found error will be returned if no such image is -// referenced by a tag within the ImageStream. Images are created when spec tags are set on -// an image stream that represent an image in an external registry, when pushing to the -// integrated registry, or when tagging an existing image from one image stream to another. -// The name of an image stream image is in the form "@", where the digest is -// the content addressible identifier for the image (sha256:xxxxx...). You can use -// ImageStreamImages as the from.kind of an image stream spec tag to reference an image -// exactly. The only operations supported on the imagestreamimage endpoint are retrieving -// the image. -message ImageStreamImage { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Image associated with the ImageStream and image name. - optional Image image = 2; -} - -// The image stream import resource provides an easy way for a user to find and import container images -// from other container image registries into the server. Individual images or an entire image repository may -// be imported, and users may choose to see the results of the import prior to tagging the resulting -// images into the specified image stream. -// -// This API is intended for end-user tools that need to see the metadata of the image prior to import -// (for instance, to generate an application from it). Clients that know the desired image can continue -// to create spec.tags directly into their image streams. -message ImageStreamImport { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Spec is a description of the images that the user wishes to import - optional ImageStreamImportSpec spec = 2; - - // Status is the the result of importing the image - optional ImageStreamImportStatus status = 3; -} - -// ImageStreamImportSpec defines what images should be imported. -message ImageStreamImportSpec { - // Import indicates whether to perform an import - if so, the specified tags are set on the spec - // and status of the image stream defined by the type meta. - optional bool import = 1; - - // Repository is an optional import of an entire container image repository. A maximum limit on the - // number of tags imported this way is imposed by the server. - optional RepositoryImportSpec repository = 2; - - // Images are a list of individual images to import. - repeated ImageImportSpec images = 3; -} - -// ImageStreamImportStatus contains information about the status of an image stream import. -message ImageStreamImportStatus { - // Import is the image stream that was successfully updated or created when 'to' was set. - optional ImageStream import = 1; - - // Repository is set if spec.repository was set to the outcome of the import - optional RepositoryImportStatus repository = 2; - - // Images is set with the result of importing spec.images - repeated ImageImportStatus images = 3; -} - -// ImageStreamLayers describes information about the layers referenced by images in this -// image stream. -message ImageStreamLayers { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // blobs is a map of blob name to metadata about the blob. - map blobs = 2; - - // images is a map between an image name and the names of the blobs and config that - // comprise the image. - map images = 3; -} - -// ImageStreamList is a list of ImageStream objects. -message ImageStreamList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is a list of imageStreams - repeated ImageStream items = 2; -} - -// ImageStreamMapping represents a mapping from a single image stream tag to a container -// image as well as the reference to the container image stream the image came from. This -// resource is used by privileged integrators to create an image resource and to associate -// it with an image stream in the status tags field. Creating an ImageStreamMapping will -// allow any user who can view the image stream to tag or pull that image, so only create -// mappings where the user has proven they have access to the image contents directly. -// The only operation supported for this resource is create and the metadata name and -// namespace should be set to the image stream containing the tag that should be updated. -message ImageStreamMapping { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Image is a container image. - optional Image image = 2; - - // Tag is a string value this image can be located with inside the stream. - optional string tag = 3; -} - -// ImageStreamSpec represents options for ImageStreams. -message ImageStreamSpec { - // lookupPolicy controls how other resources reference images within this namespace. - optional ImageLookupPolicy lookupPolicy = 3; - - // dockerImageRepository is optional, if specified this stream is backed by a container repository on this server - // Deprecated: This field is deprecated as of v3.7 and will be removed in a future release. - // Specify the source for the tags to be imported in each tag via the spec.tags.from reference instead. - optional string dockerImageRepository = 1; - - // tags map arbitrary string values to specific image locators - // +patchMergeKey=name - // +patchStrategy=merge - repeated TagReference tags = 2; -} - -// ImageStreamStatus contains information about the state of this image stream. -message ImageStreamStatus { - // DockerImageRepository represents the effective location this stream may be accessed at. - // May be empty until the server determines where the repository is located - optional string dockerImageRepository = 1; - - // PublicDockerImageRepository represents the public location from where the image can - // be pulled outside the cluster. This field may be empty if the administrator - // has not exposed the integrated registry externally. - optional string publicDockerImageRepository = 3; - - // Tags are a historical record of images associated with each tag. The first entry in the - // TagEvent array is the currently tagged image. - // +patchMergeKey=tag - // +patchStrategy=merge - repeated NamedTagEventList tags = 2; -} - -// ImageStreamTag represents an Image that is retrieved by tag name from an ImageStream. -// Use this resource to interact with the tags and images in an image stream by tag, or -// to see the image details for a particular tag. The image associated with this resource -// is the most recently successfully tagged, imported, or pushed image (as described in the -// image stream status.tags.items list for this tag). If an import is in progress or has -// failed the previous image will be shown. Deleting an image stream tag clears both the -// status and spec fields of an image stream. If no image can be retrieved for a given tag, -// a not found error will be returned. -message ImageStreamTag { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // tag is the spec tag associated with this image stream tag, and it may be null - // if only pushes have occurred to this image stream. - optional TagReference tag = 2; - - // generation is the current generation of the tagged image - if tag is provided - // and this value is not equal to the tag generation, a user has requested an - // import that has not completed, or conditions will be filled out indicating any - // error. - optional int64 generation = 3; - - // lookupPolicy indicates whether this tag will handle image references in this - // namespace. - optional ImageLookupPolicy lookupPolicy = 6; - - // conditions is an array of conditions that apply to the image stream tag. - repeated TagEventCondition conditions = 4; - - // image associated with the ImageStream and tag. - optional Image image = 5; -} - -// ImageStreamTagList is a list of ImageStreamTag objects. -message ImageStreamTagList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is the list of image stream tags - repeated ImageStreamTag items = 2; -} - -// ImageTag represents a single tag within an image stream and includes the spec, -// the status history, and the currently referenced image (if any) of the provided -// tag. This type replaces the ImageStreamTag by providing a full view of the tag. -// ImageTags are returned for every spec or status tag present on the image stream. -// If no tag exists in either form a not found error will be returned by the API. -// A create operation will succeed if no spec tag has already been defined and the -// spec field is set. Delete will remove both spec and status elements from the -// image stream. -message ImageTag { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // spec is the spec tag associated with this image stream tag, and it may be null - // if only pushes have occurred to this image stream. - optional TagReference spec = 2; - - // status is the status tag details associated with this image stream tag, and it - // may be null if no push or import has been performed. - optional NamedTagEventList status = 3; - - // image is the details of the most recent image stream status tag, and it may be - // null if import has not completed or an administrator has deleted the image - // object. To verify this is the most recent image, you must verify the generation - // of the most recent status.items entry matches the spec tag (if a spec tag is - // set). This field will not be set when listing image tags. - optional Image image = 4; -} - -// ImageTagList is a list of ImageTag objects. When listing image tags, the image -// field is not populated. Tags are returned in alphabetical order by image stream -// and then tag. -message ImageTagList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is the list of image stream tags - repeated ImageTag items = 2; -} - -// NamedTagEventList relates a tag to its image history. -message NamedTagEventList { - // Tag is the tag for which the history is recorded - optional string tag = 1; - - // Standard object's metadata. - repeated TagEvent items = 2; - - // Conditions is an array of conditions that apply to the tag event list. - repeated TagEventCondition conditions = 3; -} - -// RepositoryImportSpec describes a request to import images from a container image repository. -message RepositoryImportSpec { - // From is the source for the image repository to import; only kind DockerImage and a name of a container image repository is allowed - optional k8s.io.api.core.v1.ObjectReference from = 1; - - // ImportPolicy is the policy controlling how the image is imported - optional TagImportPolicy importPolicy = 2; - - // ReferencePolicy defines how other components should consume the image - optional TagReferencePolicy referencePolicy = 4; - - // IncludeManifest determines if the manifest for each image is returned in the response - optional bool includeManifest = 3; -} - -// RepositoryImportStatus describes the result of an image repository import -message RepositoryImportStatus { - // Status reflects whether any failure occurred during import - optional k8s.io.apimachinery.pkg.apis.meta.v1.Status status = 1; - - // Images is a list of images successfully retrieved by the import of the repository. - repeated ImageImportStatus images = 2; - - // AdditionalTags are tags that exist in the repository but were not imported because - // a maximum limit of automatic imports was applied. - repeated string additionalTags = 3; -} - -// SignatureCondition describes an image signature condition of particular kind at particular probe time. -message SignatureCondition { - // Type of signature condition, Complete or Failed. - optional string type = 1; - - // Status of the condition, one of True, False, Unknown. - optional string status = 2; - - // Last time the condition was checked. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3; - - // Last time the condition transit from one status to another. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4; - - // (brief) reason for the condition's last transition. - optional string reason = 5; - - // Human readable message indicating details about last transition. - optional string message = 6; -} - -// SignatureGenericEntity holds a generic information about a person or entity who is an issuer or a subject -// of signing certificate or key. -message SignatureGenericEntity { - // Organization name. - optional string organization = 1; - - // Common name (e.g. openshift-signing-service). - optional string commonName = 2; -} - -// SignatureIssuer holds information about an issuer of signing certificate or key. -message SignatureIssuer { - optional SignatureGenericEntity signatureGenericEntity = 1; -} - -// SignatureSubject holds information about a person or entity who created the signature. -message SignatureSubject { - optional SignatureGenericEntity signatureGenericEntity = 1; - - // If present, it is a human readable key id of public key belonging to the subject used to verify image - // signature. It should contain at least 64 lowest bits of public key's fingerprint (e.g. - // 0x685ebe62bf278440). - optional string publicKeyID = 2; -} - -// TagEvent is used by ImageStreamStatus to keep a historical record of images associated with a tag. -message TagEvent { - // Created holds the time the TagEvent was created - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time created = 1; - - // DockerImageReference is the string that can be used to pull this image - optional string dockerImageReference = 2; - - // Image is the image - optional string image = 3; - - // Generation is the spec tag generation that resulted in this tag being updated - optional int64 generation = 4; -} - -// TagEventCondition contains condition information for a tag event. -message TagEventCondition { - // Type of tag event condition, currently only ImportSuccess - optional string type = 1; - - // Status of the condition, one of True, False, Unknown. - optional string status = 2; - - // LastTransitionTIme is the time the condition transitioned from one status to another. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; - - // Reason is a brief machine readable explanation for the condition's last transition. - optional string reason = 4; - - // Message is a human readable description of the details about last transition, complementing reason. - optional string message = 5; - - // Generation is the spec tag generation that this status corresponds to - optional int64 generation = 6; -} - -// TagImportPolicy controls how images related to this tag will be imported. -message TagImportPolicy { - // Insecure is true if the server may bypass certificate verification or connect directly over HTTP during image import. - optional bool insecure = 1; - - // Scheduled indicates to the server that this tag should be periodically checked to ensure it is up to date, and imported - optional bool scheduled = 2; -} - -// TagReference specifies optional annotations for images using this tag and an optional reference to an ImageStreamTag, ImageStreamImage, or DockerImage this tag should track. -message TagReference { - // Name of the tag - optional string name = 1; - - // Optional; if specified, annotations that are applied to images retrieved via ImageStreamTags. - // +optional - map annotations = 2; - - // Optional; if specified, a reference to another image that this tag should point to. Valid values - // are ImageStreamTag, ImageStreamImage, and DockerImage. ImageStreamTag references - // can only reference a tag within this same ImageStream. - optional k8s.io.api.core.v1.ObjectReference from = 3; - - // Reference states if the tag will be imported. Default value is false, which means the tag will - // be imported. - optional bool reference = 4; - - // Generation is a counter that tracks mutations to the spec tag (user intent). When a tag reference - // is changed the generation is set to match the current stream generation (which is incremented every - // time spec is changed). Other processes in the system like the image importer observe that the - // generation of spec tag is newer than the generation recorded in the status and use that as a trigger - // to import the newest remote tag. To trigger a new import, clients may set this value to zero which - // will reset the generation to the latest stream generation. Legacy clients will send this value as - // nil which will be merged with the current tag generation. - // +optional - optional int64 generation = 5; - - // ImportPolicy is information that controls how images may be imported by the server. - optional TagImportPolicy importPolicy = 6; - - // ReferencePolicy defines how other components should consume the image. - optional TagReferencePolicy referencePolicy = 7; -} - -// TagReferencePolicy describes how pull-specs for images in this image stream tag are generated when -// image change triggers in deployment configs or builds are resolved. This allows the image stream -// author to control how images are accessed. -message TagReferencePolicy { - // Type determines how the image pull spec should be transformed when the image stream tag is used in - // deployment config triggers or new builds. The default value is `Source`, indicating the original - // location of the image should be used (if imported). The user may also specify `Local`, indicating - // that the pull spec should point to the integrated container image registry and leverage the registry's - // ability to proxy the pull to an upstream registry. `Local` allows the credentials used to pull this - // image to be managed from the image stream's namespace, so others on the platform can access a remote - // image but have no access to the remote secret. It also allows the image layers to be mirrored into - // the local registry which the images can still be pulled even if the upstream registry is unavailable. - optional string type = 1; -} - diff --git a/vendor/github.com/openshift/api/image/v1/legacy.go b/vendor/github.com/openshift/api/image/v1/legacy.go deleted file mode 100644 index 02bbaa2906fed..0000000000000 --- a/vendor/github.com/openshift/api/image/v1/legacy.go +++ /dev/null @@ -1,33 +0,0 @@ -package v1 - -import ( - "github.com/openshift/api/image/docker10" - "github.com/openshift/api/image/dockerpre012" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - legacyGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} - legacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, docker10.AddToSchemeInCoreGroup, dockerpre012.AddToSchemeInCoreGroup, corev1.AddToScheme) - DeprecatedInstallWithoutGroup = legacySchemeBuilder.AddToScheme -) - -// Adds the list of known types to api.Scheme. -func addLegacyKnownTypes(scheme *runtime.Scheme) error { - types := []runtime.Object{ - &Image{}, - &ImageList{}, - &ImageSignature{}, - &ImageStream{}, - &ImageStreamList{}, - &ImageStreamMapping{}, - &ImageStreamTag{}, - &ImageStreamTagList{}, - &ImageStreamImage{}, - &ImageStreamImport{}, - } - scheme.AddKnownTypes(legacyGroupVersion, types...) - return nil -} diff --git a/vendor/github.com/openshift/api/image/v1/register.go b/vendor/github.com/openshift/api/image/v1/register.go deleted file mode 100644 index fc0910c24686f..0000000000000 --- a/vendor/github.com/openshift/api/image/v1/register.go +++ /dev/null @@ -1,54 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - - "github.com/openshift/api/image/docker10" - "github.com/openshift/api/image/dockerpre012" -) - -var ( - GroupName = "image.openshift.io" - GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, docker10.AddToScheme, dockerpre012.AddToScheme, corev1.AddToScheme) - // Install is a function which adds this version to a scheme - Install = schemeBuilder.AddToScheme - - // SchemeGroupVersion generated code relies on this name - // Deprecated - SchemeGroupVersion = GroupVersion - // AddToScheme exists solely to keep the old generators creating valid code - // DEPRECATED - AddToScheme = schemeBuilder.AddToScheme -) - -// Resource generated code relies on this being here, but it logically belongs to the group -// DEPRECATED -func Resource(resource string) schema.GroupResource { - return schema.GroupResource{Group: GroupName, Resource: resource} -} - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &Image{}, - &ImageList{}, - &ImageSignature{}, - &ImageStream{}, - &ImageStreamList{}, - &ImageStreamMapping{}, - &ImageStreamTag{}, - &ImageStreamTagList{}, - &ImageStreamImage{}, - &ImageStreamLayers{}, - &ImageStreamImport{}, - &ImageTag{}, - &ImageTagList{}, - &corev1.SecretList{}, - ) - metav1.AddToGroupVersion(scheme, GroupVersion) - return nil -} diff --git a/vendor/github.com/openshift/api/image/v1/types.go b/vendor/github.com/openshift/api/image/v1/types.go deleted file mode 100644 index c29cad9b25d2f..0000000000000 --- a/vendor/github.com/openshift/api/image/v1/types.go +++ /dev/null @@ -1,634 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ImageList is a list of Image objects. -type ImageList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is a list of images - Items []Image `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Image is an immutable representation of a container image and metadata at a point in time. -// Images are named by taking a hash of their contents (metadata and content) and any change -// in format, content, or metadata results in a new name. The images resource is primarily -// for use by cluster administrators and integrations like the cluster image registry - end -// users instead access images via the imagestreamtags or imagestreamimages resources. While -// image metadata is stored in the API, any integration that implements the container image -// registry API must provide its own storage for the raw manifest data, image config, and -// layer contents. -type Image struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // DockerImageReference is the string that can be used to pull this image. - DockerImageReference string `json:"dockerImageReference,omitempty" protobuf:"bytes,2,opt,name=dockerImageReference"` - // DockerImageMetadata contains metadata about this image - // +patchStrategy=replace - // +kubebuilder:pruning:PreserveUnknownFields - DockerImageMetadata runtime.RawExtension `json:"dockerImageMetadata,omitempty" patchStrategy:"replace" protobuf:"bytes,3,opt,name=dockerImageMetadata"` - // DockerImageMetadataVersion conveys the version of the object, which if empty defaults to "1.0" - DockerImageMetadataVersion string `json:"dockerImageMetadataVersion,omitempty" protobuf:"bytes,4,opt,name=dockerImageMetadataVersion"` - // DockerImageManifest is the raw JSON of the manifest - DockerImageManifest string `json:"dockerImageManifest,omitempty" protobuf:"bytes,5,opt,name=dockerImageManifest"` - // DockerImageLayers represents the layers in the image. May not be set if the image does not define that data. - DockerImageLayers []ImageLayer `json:"dockerImageLayers" protobuf:"bytes,6,rep,name=dockerImageLayers"` - // Signatures holds all signatures of the image. - // +patchMergeKey=name - // +patchStrategy=merge - Signatures []ImageSignature `json:"signatures,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,7,rep,name=signatures"` - // DockerImageSignatures provides the signatures as opaque blobs. This is a part of manifest schema v1. - DockerImageSignatures [][]byte `json:"dockerImageSignatures,omitempty" protobuf:"bytes,8,rep,name=dockerImageSignatures"` - // DockerImageManifestMediaType specifies the mediaType of manifest. This is a part of manifest schema v2. - DockerImageManifestMediaType string `json:"dockerImageManifestMediaType,omitempty" protobuf:"bytes,9,opt,name=dockerImageManifestMediaType"` - // DockerImageConfig is a JSON blob that the runtime uses to set up the container. This is a part of manifest schema v2. - DockerImageConfig string `json:"dockerImageConfig,omitempty" protobuf:"bytes,10,opt,name=dockerImageConfig"` -} - -// ImageLayer represents a single layer of the image. Some images may have multiple layers. Some may have none. -type ImageLayer struct { - // Name of the layer as defined by the underlying store. - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - // Size of the layer in bytes as defined by the underlying store. - LayerSize int64 `json:"size" protobuf:"varint,2,opt,name=size"` - // MediaType of the referenced object. - MediaType string `json:"mediaType" protobuf:"bytes,3,opt,name=mediaType"` -} - -// +genclient -// +genclient:onlyVerbs=create,delete -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ImageSignature holds a signature of an image. It allows to verify image identity and possibly other claims -// as long as the signature is trusted. Based on this information it is possible to restrict runnable images -// to those matching cluster-wide policy. -// Mandatory fields should be parsed by clients doing image verification. The others are parsed from -// signature's content by the server. They serve just an informative purpose. -type ImageSignature struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Required: Describes a type of stored blob. - Type string `json:"type" protobuf:"bytes,2,opt,name=type"` - // Required: An opaque binary string which is an image's signature. - Content []byte `json:"content" protobuf:"bytes,3,opt,name=content"` - // Conditions represent the latest available observations of a signature's current state. - // +patchMergeKey=type - // +patchStrategy=merge - Conditions []SignatureCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,4,rep,name=conditions"` - - // Following metadata fields will be set by server if the signature content is successfully parsed and - // the information available. - - // A human readable string representing image's identity. It could be a product name and version, or an - // image pull spec (e.g. "registry.access.redhat.com/rhel7/rhel:7.2"). - ImageIdentity string `json:"imageIdentity,omitempty" protobuf:"bytes,5,opt,name=imageIdentity"` - // Contains claims from the signature. - SignedClaims map[string]string `json:"signedClaims,omitempty" protobuf:"bytes,6,rep,name=signedClaims"` - // If specified, it is the time of signature's creation. - Created *metav1.Time `json:"created,omitempty" protobuf:"bytes,7,opt,name=created"` - // If specified, it holds information about an issuer of signing certificate or key (a person or entity - // who signed the signing certificate or key). - IssuedBy *SignatureIssuer `json:"issuedBy,omitempty" protobuf:"bytes,8,opt,name=issuedBy"` - // If specified, it holds information about a subject of signing certificate or key (a person or entity - // who signed the image). - IssuedTo *SignatureSubject `json:"issuedTo,omitempty" protobuf:"bytes,9,opt,name=issuedTo"` -} - -/// SignatureConditionType is a type of image signature condition. -type SignatureConditionType string - -// SignatureCondition describes an image signature condition of particular kind at particular probe time. -type SignatureCondition struct { - // Type of signature condition, Complete or Failed. - Type SignatureConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=SignatureConditionType"` - // Status of the condition, one of True, False, Unknown. - Status corev1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"` - // Last time the condition was checked. - LastProbeTime metav1.Time `json:"lastProbeTime,omitempty" protobuf:"bytes,3,opt,name=lastProbeTime"` - // Last time the condition transit from one status to another. - LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,4,opt,name=lastTransitionTime"` - // (brief) reason for the condition's last transition. - Reason string `json:"reason,omitempty" protobuf:"bytes,5,opt,name=reason"` - // Human readable message indicating details about last transition. - Message string `json:"message,omitempty" protobuf:"bytes,6,opt,name=message"` -} - -// SignatureGenericEntity holds a generic information about a person or entity who is an issuer or a subject -// of signing certificate or key. -type SignatureGenericEntity struct { - // Organization name. - Organization string `json:"organization,omitempty" protobuf:"bytes,1,opt,name=organization"` - // Common name (e.g. openshift-signing-service). - CommonName string `json:"commonName,omitempty" protobuf:"bytes,2,opt,name=commonName"` -} - -// SignatureIssuer holds information about an issuer of signing certificate or key. -type SignatureIssuer struct { - SignatureGenericEntity `json:",inline" protobuf:"bytes,1,opt,name=signatureGenericEntity"` -} - -// SignatureSubject holds information about a person or entity who created the signature. -type SignatureSubject struct { - SignatureGenericEntity `json:",inline" protobuf:"bytes,1,opt,name=signatureGenericEntity"` - // If present, it is a human readable key id of public key belonging to the subject used to verify image - // signature. It should contain at least 64 lowest bits of public key's fingerprint (e.g. - // 0x685ebe62bf278440). - PublicKeyID string `json:"publicKeyID" protobuf:"bytes,2,opt,name=publicKeyID"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ImageStreamList is a list of ImageStream objects. -type ImageStreamList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is a list of imageStreams - Items []ImageStream `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +genclient -// +genclient:method=Secrets,verb=get,subresource=secrets,result=k8s.io/api/core/v1.SecretList -// +genclient:method=Layers,verb=get,subresource=layers,result=github.com/openshift/api/image/v1.ImageStreamLayers -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// An ImageStream stores a mapping of tags to images, metadata overrides that are applied -// when images are tagged in a stream, and an optional reference to a container image -// repository on a registry. Users typically update the spec.tags field to point to external -// images which are imported from container registries using credentials in your namespace -// with the pull secret type, or to existing image stream tags and images which are -// immediately accessible for tagging or pulling. The history of images applied to a tag -// is visible in the status.tags field and any user who can view an image stream is allowed -// to tag that image into their own image streams. Access to pull images from the integrated -// registry is granted by having the "get imagestreams/layers" permission on a given image -// stream. Users may remove a tag by deleting the imagestreamtag resource, which causes both -// spec and status for that tag to be removed. Image stream history is retained until an -// administrator runs the prune operation, which removes references that are no longer in -// use. To preserve a historical image, ensure there is a tag in spec pointing to that image -// by its digest. -type ImageStream struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Spec describes the desired state of this stream - // +optional - Spec ImageStreamSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` - // Status describes the current state of this stream - // +optional - Status ImageStreamStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` -} - -// ImageStreamSpec represents options for ImageStreams. -type ImageStreamSpec struct { - // lookupPolicy controls how other resources reference images within this namespace. - LookupPolicy ImageLookupPolicy `json:"lookupPolicy,omitempty" protobuf:"bytes,3,opt,name=lookupPolicy"` - // dockerImageRepository is optional, if specified this stream is backed by a container repository on this server - // Deprecated: This field is deprecated as of v3.7 and will be removed in a future release. - // Specify the source for the tags to be imported in each tag via the spec.tags.from reference instead. - DockerImageRepository string `json:"dockerImageRepository,omitempty" protobuf:"bytes,1,opt,name=dockerImageRepository"` - // tags map arbitrary string values to specific image locators - // +patchMergeKey=name - // +patchStrategy=merge - Tags []TagReference `json:"tags,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=tags"` -} - -// ImageLookupPolicy describes how an image stream can be used to override the image references -// used by pods, builds, and other resources in a namespace. -type ImageLookupPolicy struct { - // local will change the docker short image references (like "mysql" or - // "php:latest") on objects in this namespace to the image ID whenever they match - // this image stream, instead of reaching out to a remote registry. The name will - // be fully qualified to an image ID if found. The tag's referencePolicy is taken - // into account on the replaced value. Only works within the current namespace. - Local bool `json:"local" protobuf:"varint,3,opt,name=local"` -} - -// TagReference specifies optional annotations for images using this tag and an optional reference to an ImageStreamTag, ImageStreamImage, or DockerImage this tag should track. -type TagReference struct { - // Name of the tag - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - // Optional; if specified, annotations that are applied to images retrieved via ImageStreamTags. - // +optional - Annotations map[string]string `json:"annotations" protobuf:"bytes,2,rep,name=annotations"` - // Optional; if specified, a reference to another image that this tag should point to. Valid values - // are ImageStreamTag, ImageStreamImage, and DockerImage. ImageStreamTag references - // can only reference a tag within this same ImageStream. - From *corev1.ObjectReference `json:"from,omitempty" protobuf:"bytes,3,opt,name=from"` - // Reference states if the tag will be imported. Default value is false, which means the tag will - // be imported. - Reference bool `json:"reference,omitempty" protobuf:"varint,4,opt,name=reference"` - // Generation is a counter that tracks mutations to the spec tag (user intent). When a tag reference - // is changed the generation is set to match the current stream generation (which is incremented every - // time spec is changed). Other processes in the system like the image importer observe that the - // generation of spec tag is newer than the generation recorded in the status and use that as a trigger - // to import the newest remote tag. To trigger a new import, clients may set this value to zero which - // will reset the generation to the latest stream generation. Legacy clients will send this value as - // nil which will be merged with the current tag generation. - // +optional - Generation *int64 `json:"generation" protobuf:"varint,5,opt,name=generation"` - // ImportPolicy is information that controls how images may be imported by the server. - ImportPolicy TagImportPolicy `json:"importPolicy,omitempty" protobuf:"bytes,6,opt,name=importPolicy"` - // ReferencePolicy defines how other components should consume the image. - ReferencePolicy TagReferencePolicy `json:"referencePolicy,omitempty" protobuf:"bytes,7,opt,name=referencePolicy"` -} - -// TagImportPolicy controls how images related to this tag will be imported. -type TagImportPolicy struct { - // Insecure is true if the server may bypass certificate verification or connect directly over HTTP during image import. - Insecure bool `json:"insecure,omitempty" protobuf:"varint,1,opt,name=insecure"` - // Scheduled indicates to the server that this tag should be periodically checked to ensure it is up to date, and imported - Scheduled bool `json:"scheduled,omitempty" protobuf:"varint,2,opt,name=scheduled"` -} - -// TagReferencePolicyType describes how pull-specs for images in an image stream tag are generated when -// image change triggers are fired. -type TagReferencePolicyType string - -const ( - // SourceTagReferencePolicy indicates the image's original location should be used when the image stream tag - // is resolved into other resources (builds and deployment configurations). - SourceTagReferencePolicy TagReferencePolicyType = "Source" - // LocalTagReferencePolicy indicates the image should prefer to pull via the local integrated registry, - // falling back to the remote location if the integrated registry has not been configured. The reference will - // use the internal DNS name or registry service IP. - LocalTagReferencePolicy TagReferencePolicyType = "Local" -) - -// TagReferencePolicy describes how pull-specs for images in this image stream tag are generated when -// image change triggers in deployment configs or builds are resolved. This allows the image stream -// author to control how images are accessed. -type TagReferencePolicy struct { - // Type determines how the image pull spec should be transformed when the image stream tag is used in - // deployment config triggers or new builds. The default value is `Source`, indicating the original - // location of the image should be used (if imported). The user may also specify `Local`, indicating - // that the pull spec should point to the integrated container image registry and leverage the registry's - // ability to proxy the pull to an upstream registry. `Local` allows the credentials used to pull this - // image to be managed from the image stream's namespace, so others on the platform can access a remote - // image but have no access to the remote secret. It also allows the image layers to be mirrored into - // the local registry which the images can still be pulled even if the upstream registry is unavailable. - Type TagReferencePolicyType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=TagReferencePolicyType"` -} - -// ImageStreamStatus contains information about the state of this image stream. -type ImageStreamStatus struct { - // DockerImageRepository represents the effective location this stream may be accessed at. - // May be empty until the server determines where the repository is located - DockerImageRepository string `json:"dockerImageRepository" protobuf:"bytes,1,opt,name=dockerImageRepository"` - // PublicDockerImageRepository represents the public location from where the image can - // be pulled outside the cluster. This field may be empty if the administrator - // has not exposed the integrated registry externally. - PublicDockerImageRepository string `json:"publicDockerImageRepository,omitempty" protobuf:"bytes,3,opt,name=publicDockerImageRepository"` - // Tags are a historical record of images associated with each tag. The first entry in the - // TagEvent array is the currently tagged image. - // +patchMergeKey=tag - // +patchStrategy=merge - Tags []NamedTagEventList `json:"tags,omitempty" patchStrategy:"merge" patchMergeKey:"tag" protobuf:"bytes,2,rep,name=tags"` -} - -// NamedTagEventList relates a tag to its image history. -type NamedTagEventList struct { - // Tag is the tag for which the history is recorded - Tag string `json:"tag" protobuf:"bytes,1,opt,name=tag"` - // Standard object's metadata. - Items []TagEvent `json:"items" protobuf:"bytes,2,rep,name=items"` - // Conditions is an array of conditions that apply to the tag event list. - Conditions []TagEventCondition `json:"conditions,omitempty" protobuf:"bytes,3,rep,name=conditions"` -} - -// TagEvent is used by ImageStreamStatus to keep a historical record of images associated with a tag. -type TagEvent struct { - // Created holds the time the TagEvent was created - Created metav1.Time `json:"created" protobuf:"bytes,1,opt,name=created"` - // DockerImageReference is the string that can be used to pull this image - DockerImageReference string `json:"dockerImageReference" protobuf:"bytes,2,opt,name=dockerImageReference"` - // Image is the image - Image string `json:"image" protobuf:"bytes,3,opt,name=image"` - // Generation is the spec tag generation that resulted in this tag being updated - Generation int64 `json:"generation" protobuf:"varint,4,opt,name=generation"` -} - -type TagEventConditionType string - -// These are valid conditions of TagEvents. -const ( - // ImportSuccess with status False means the import of the specific tag failed - ImportSuccess TagEventConditionType = "ImportSuccess" -) - -// TagEventCondition contains condition information for a tag event. -type TagEventCondition struct { - // Type of tag event condition, currently only ImportSuccess - Type TagEventConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=TagEventConditionType"` - // Status of the condition, one of True, False, Unknown. - Status corev1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"` - // LastTransitionTIme is the time the condition transitioned from one status to another. - LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` - // Reason is a brief machine readable explanation for the condition's last transition. - Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` - // Message is a human readable description of the details about last transition, complementing reason. - Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` - // Generation is the spec tag generation that this status corresponds to - Generation int64 `json:"generation" protobuf:"varint,6,opt,name=generation"` -} - -// +genclient -// +genclient:skipVerbs=get,list,create,update,patch,delete,deleteCollection,watch -// +genclient:method=Create,verb=create,result=k8s.io/apimachinery/pkg/apis/meta/v1.Status -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ImageStreamMapping represents a mapping from a single image stream tag to a container -// image as well as the reference to the container image stream the image came from. This -// resource is used by privileged integrators to create an image resource and to associate -// it with an image stream in the status tags field. Creating an ImageStreamMapping will -// allow any user who can view the image stream to tag or pull that image, so only create -// mappings where the user has proven they have access to the image contents directly. -// The only operation supported for this resource is create and the metadata name and -// namespace should be set to the image stream containing the tag that should be updated. -type ImageStreamMapping struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Image is a container image. - Image Image `json:"image" protobuf:"bytes,2,opt,name=image"` - // Tag is a string value this image can be located with inside the stream. - Tag string `json:"tag" protobuf:"bytes,3,opt,name=tag"` -} - -// +genclient -// +genclient:onlyVerbs=get,list,create,update,delete -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ImageStreamTag represents an Image that is retrieved by tag name from an ImageStream. -// Use this resource to interact with the tags and images in an image stream by tag, or -// to see the image details for a particular tag. The image associated with this resource -// is the most recently successfully tagged, imported, or pushed image (as described in the -// image stream status.tags.items list for this tag). If an import is in progress or has -// failed the previous image will be shown. Deleting an image stream tag clears both the -// status and spec fields of an image stream. If no image can be retrieved for a given tag, -// a not found error will be returned. -type ImageStreamTag struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // tag is the spec tag associated with this image stream tag, and it may be null - // if only pushes have occurred to this image stream. - Tag *TagReference `json:"tag" protobuf:"bytes,2,opt,name=tag"` - - // generation is the current generation of the tagged image - if tag is provided - // and this value is not equal to the tag generation, a user has requested an - // import that has not completed, or conditions will be filled out indicating any - // error. - Generation int64 `json:"generation" protobuf:"varint,3,opt,name=generation"` - - // lookupPolicy indicates whether this tag will handle image references in this - // namespace. - LookupPolicy ImageLookupPolicy `json:"lookupPolicy" protobuf:"varint,6,opt,name=lookupPolicy"` - - // conditions is an array of conditions that apply to the image stream tag. - Conditions []TagEventCondition `json:"conditions,omitempty" protobuf:"bytes,4,rep,name=conditions"` - - // image associated with the ImageStream and tag. - Image Image `json:"image" protobuf:"bytes,5,opt,name=image"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ImageStreamTagList is a list of ImageStreamTag objects. -type ImageStreamTagList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is the list of image stream tags - Items []ImageStreamTag `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +genclient -// +genclient:onlyVerbs=get,list,create,update,delete -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ImageTag represents a single tag within an image stream and includes the spec, -// the status history, and the currently referenced image (if any) of the provided -// tag. This type replaces the ImageStreamTag by providing a full view of the tag. -// ImageTags are returned for every spec or status tag present on the image stream. -// If no tag exists in either form a not found error will be returned by the API. -// A create operation will succeed if no spec tag has already been defined and the -// spec field is set. Delete will remove both spec and status elements from the -// image stream. -type ImageTag struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // spec is the spec tag associated with this image stream tag, and it may be null - // if only pushes have occurred to this image stream. - Spec *TagReference `json:"spec" protobuf:"bytes,2,opt,name=spec"` - // status is the status tag details associated with this image stream tag, and it - // may be null if no push or import has been performed. - Status *NamedTagEventList `json:"status" protobuf:"bytes,3,opt,name=status"` - // image is the details of the most recent image stream status tag, and it may be - // null if import has not completed or an administrator has deleted the image - // object. To verify this is the most recent image, you must verify the generation - // of the most recent status.items entry matches the spec tag (if a spec tag is - // set). This field will not be set when listing image tags. - Image *Image `json:"image" protobuf:"bytes,4,opt,name=image"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ImageTagList is a list of ImageTag objects. When listing image tags, the image -// field is not populated. Tags are returned in alphabetical order by image stream -// and then tag. -type ImageTagList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is the list of image stream tags - Items []ImageTag `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +genclient -// +genclient:onlyVerbs=get -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ImageStreamImage represents an Image that is retrieved by image name from an ImageStream. -// User interfaces and regular users can use this resource to access the metadata details of -// a tagged image in the image stream history for viewing, since Image resources are not -// directly accessible to end users. A not found error will be returned if no such image is -// referenced by a tag within the ImageStream. Images are created when spec tags are set on -// an image stream that represent an image in an external registry, when pushing to the -// integrated registry, or when tagging an existing image from one image stream to another. -// The name of an image stream image is in the form "@", where the digest is -// the content addressible identifier for the image (sha256:xxxxx...). You can use -// ImageStreamImages as the from.kind of an image stream spec tag to reference an image -// exactly. The only operations supported on the imagestreamimage endpoint are retrieving -// the image. -type ImageStreamImage struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Image associated with the ImageStream and image name. - Image Image `json:"image" protobuf:"bytes,2,opt,name=image"` -} - -// DockerImageReference points to a container image. -type DockerImageReference struct { - // Registry is the registry that contains the container image - Registry string `protobuf:"bytes,1,opt,name=registry"` - // Namespace is the namespace that contains the container image - Namespace string `protobuf:"bytes,2,opt,name=namespace"` - // Name is the name of the container image - Name string `protobuf:"bytes,3,opt,name=name"` - // Tag is which tag of the container image is being referenced - Tag string `protobuf:"bytes,4,opt,name=tag"` - // ID is the identifier for the container image - ID string `protobuf:"bytes,5,opt,name=iD"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ImageStreamLayers describes information about the layers referenced by images in this -// image stream. -type ImageStreamLayers struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // blobs is a map of blob name to metadata about the blob. - Blobs map[string]ImageLayerData `json:"blobs" protobuf:"bytes,2,rep,name=blobs"` - // images is a map between an image name and the names of the blobs and config that - // comprise the image. - Images map[string]ImageBlobReferences `json:"images" protobuf:"bytes,3,rep,name=images"` -} - -// ImageBlobReferences describes the blob references within an image. -type ImageBlobReferences struct { - // imageMissing is true if the image is referenced by the image stream but the image - // object has been deleted from the API by an administrator. When this field is set, - // layers and config fields may be empty and callers that depend on the image metadata - // should consider the image to be unavailable for download or viewing. - // +optional - ImageMissing bool `json:"imageMissing" protobuf:"varint,3,opt,name=imageMissing"` - // layers is the list of blobs that compose this image, from base layer to top layer. - // All layers referenced by this array will be defined in the blobs map. Some images - // may have zero layers. - // +optional - Layers []string `json:"layers" protobuf:"bytes,1,rep,name=layers"` - // config, if set, is the blob that contains the image config. Some images do - // not have separate config blobs and this field will be set to nil if so. - // +optional - Config *string `json:"config" protobuf:"bytes,2,opt,name=config"` -} - -// ImageLayerData contains metadata about an image layer. -type ImageLayerData struct { - // Size of the layer in bytes as defined by the underlying store. This field is - // optional if the necessary information about size is not available. - LayerSize *int64 `json:"size" protobuf:"varint,1,opt,name=size"` - // MediaType of the referenced object. - MediaType string `json:"mediaType" protobuf:"bytes,2,opt,name=mediaType"` -} - -// +genclient -// +genclient:onlyVerbs=create -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// The image stream import resource provides an easy way for a user to find and import container images -// from other container image registries into the server. Individual images or an entire image repository may -// be imported, and users may choose to see the results of the import prior to tagging the resulting -// images into the specified image stream. -// -// This API is intended for end-user tools that need to see the metadata of the image prior to import -// (for instance, to generate an application from it). Clients that know the desired image can continue -// to create spec.tags directly into their image streams. -type ImageStreamImport struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Spec is a description of the images that the user wishes to import - Spec ImageStreamImportSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` - // Status is the the result of importing the image - Status ImageStreamImportStatus `json:"status" protobuf:"bytes,3,opt,name=status"` -} - -// ImageStreamImportSpec defines what images should be imported. -type ImageStreamImportSpec struct { - // Import indicates whether to perform an import - if so, the specified tags are set on the spec - // and status of the image stream defined by the type meta. - Import bool `json:"import" protobuf:"varint,1,opt,name=import"` - // Repository is an optional import of an entire container image repository. A maximum limit on the - // number of tags imported this way is imposed by the server. - Repository *RepositoryImportSpec `json:"repository,omitempty" protobuf:"bytes,2,opt,name=repository"` - // Images are a list of individual images to import. - Images []ImageImportSpec `json:"images,omitempty" protobuf:"bytes,3,rep,name=images"` -} - -// ImageStreamImportStatus contains information about the status of an image stream import. -type ImageStreamImportStatus struct { - // Import is the image stream that was successfully updated or created when 'to' was set. - Import *ImageStream `json:"import,omitempty" protobuf:"bytes,1,opt,name=import"` - // Repository is set if spec.repository was set to the outcome of the import - Repository *RepositoryImportStatus `json:"repository,omitempty" protobuf:"bytes,2,opt,name=repository"` - // Images is set with the result of importing spec.images - Images []ImageImportStatus `json:"images,omitempty" protobuf:"bytes,3,rep,name=images"` -} - -// RepositoryImportSpec describes a request to import images from a container image repository. -type RepositoryImportSpec struct { - // From is the source for the image repository to import; only kind DockerImage and a name of a container image repository is allowed - From corev1.ObjectReference `json:"from" protobuf:"bytes,1,opt,name=from"` - - // ImportPolicy is the policy controlling how the image is imported - ImportPolicy TagImportPolicy `json:"importPolicy,omitempty" protobuf:"bytes,2,opt,name=importPolicy"` - // ReferencePolicy defines how other components should consume the image - ReferencePolicy TagReferencePolicy `json:"referencePolicy,omitempty" protobuf:"bytes,4,opt,name=referencePolicy"` - // IncludeManifest determines if the manifest for each image is returned in the response - IncludeManifest bool `json:"includeManifest,omitempty" protobuf:"varint,3,opt,name=includeManifest"` -} - -// RepositoryImportStatus describes the result of an image repository import -type RepositoryImportStatus struct { - // Status reflects whether any failure occurred during import - Status metav1.Status `json:"status,omitempty" protobuf:"bytes,1,opt,name=status"` - // Images is a list of images successfully retrieved by the import of the repository. - Images []ImageImportStatus `json:"images,omitempty" protobuf:"bytes,2,rep,name=images"` - // AdditionalTags are tags that exist in the repository but were not imported because - // a maximum limit of automatic imports was applied. - AdditionalTags []string `json:"additionalTags,omitempty" protobuf:"bytes,3,rep,name=additionalTags"` -} - -// ImageImportSpec describes a request to import a specific image. -type ImageImportSpec struct { - // From is the source of an image to import; only kind DockerImage is allowed - From corev1.ObjectReference `json:"from" protobuf:"bytes,1,opt,name=from"` - // To is a tag in the current image stream to assign the imported image to, if name is not specified the default tag from from.name will be used - To *corev1.LocalObjectReference `json:"to,omitempty" protobuf:"bytes,2,opt,name=to"` - - // ImportPolicy is the policy controlling how the image is imported - ImportPolicy TagImportPolicy `json:"importPolicy,omitempty" protobuf:"bytes,3,opt,name=importPolicy"` - // ReferencePolicy defines how other components should consume the image - ReferencePolicy TagReferencePolicy `json:"referencePolicy,omitempty" protobuf:"bytes,5,opt,name=referencePolicy"` - // IncludeManifest determines if the manifest for each image is returned in the response - IncludeManifest bool `json:"includeManifest,omitempty" protobuf:"varint,4,opt,name=includeManifest"` -} - -// ImageImportStatus describes the result of an image import. -type ImageImportStatus struct { - // Status is the status of the image import, including errors encountered while retrieving the image - Status metav1.Status `json:"status" protobuf:"bytes,1,opt,name=status"` - // Image is the metadata of that image, if the image was located - Image *Image `json:"image,omitempty" protobuf:"bytes,2,opt,name=image"` - // Tag is the tag this image was located under, if any - Tag string `json:"tag,omitempty" protobuf:"bytes,3,opt,name=tag"` -} diff --git a/vendor/github.com/openshift/api/image/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/image/v1/zz_generated.deepcopy.go deleted file mode 100644 index aab4664823ce1..0000000000000 --- a/vendor/github.com/openshift/api/image/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,978 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - corev1 "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 *DockerImageReference) DeepCopyInto(out *DockerImageReference) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DockerImageReference. -func (in *DockerImageReference) DeepCopy() *DockerImageReference { - if in == nil { - return nil - } - out := new(DockerImageReference) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Image) DeepCopyInto(out *Image) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.DockerImageMetadata.DeepCopyInto(&out.DockerImageMetadata) - if in.DockerImageLayers != nil { - in, out := &in.DockerImageLayers, &out.DockerImageLayers - *out = make([]ImageLayer, len(*in)) - copy(*out, *in) - } - if in.Signatures != nil { - in, out := &in.Signatures, &out.Signatures - *out = make([]ImageSignature, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.DockerImageSignatures != nil { - in, out := &in.DockerImageSignatures, &out.DockerImageSignatures - *out = make([][]byte, len(*in)) - for i := range *in { - if (*in)[i] != nil { - in, out := &(*in)[i], &(*out)[i] - *out = make([]byte, len(*in)) - copy(*out, *in) - } - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Image. -func (in *Image) DeepCopy() *Image { - if in == nil { - return nil - } - out := new(Image) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Image) 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 *ImageBlobReferences) DeepCopyInto(out *ImageBlobReferences) { - *out = *in - if in.Layers != nil { - in, out := &in.Layers, &out.Layers - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Config != nil { - in, out := &in.Config, &out.Config - *out = new(string) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageBlobReferences. -func (in *ImageBlobReferences) DeepCopy() *ImageBlobReferences { - if in == nil { - return nil - } - out := new(ImageBlobReferences) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageImportSpec) DeepCopyInto(out *ImageImportSpec) { - *out = *in - out.From = in.From - if in.To != nil { - in, out := &in.To, &out.To - *out = new(corev1.LocalObjectReference) - **out = **in - } - out.ImportPolicy = in.ImportPolicy - out.ReferencePolicy = in.ReferencePolicy - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageImportSpec. -func (in *ImageImportSpec) DeepCopy() *ImageImportSpec { - if in == nil { - return nil - } - out := new(ImageImportSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageImportStatus) DeepCopyInto(out *ImageImportStatus) { - *out = *in - in.Status.DeepCopyInto(&out.Status) - if in.Image != nil { - in, out := &in.Image, &out.Image - *out = new(Image) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageImportStatus. -func (in *ImageImportStatus) DeepCopy() *ImageImportStatus { - if in == nil { - return nil - } - out := new(ImageImportStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageLayer) DeepCopyInto(out *ImageLayer) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageLayer. -func (in *ImageLayer) DeepCopy() *ImageLayer { - if in == nil { - return nil - } - out := new(ImageLayer) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageLayerData) DeepCopyInto(out *ImageLayerData) { - *out = *in - if in.LayerSize != nil { - in, out := &in.LayerSize, &out.LayerSize - *out = new(int64) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageLayerData. -func (in *ImageLayerData) DeepCopy() *ImageLayerData { - if in == nil { - return nil - } - out := new(ImageLayerData) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageList) DeepCopyInto(out *ImageList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Image, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageList. -func (in *ImageList) DeepCopy() *ImageList { - if in == nil { - return nil - } - out := new(ImageList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ImageList) 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 *ImageLookupPolicy) DeepCopyInto(out *ImageLookupPolicy) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageLookupPolicy. -func (in *ImageLookupPolicy) DeepCopy() *ImageLookupPolicy { - if in == nil { - return nil - } - out := new(ImageLookupPolicy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageSignature) DeepCopyInto(out *ImageSignature) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Content != nil { - in, out := &in.Content, &out.Content - *out = make([]byte, len(*in)) - copy(*out, *in) - } - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]SignatureCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.SignedClaims != nil { - in, out := &in.SignedClaims, &out.SignedClaims - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Created != nil { - in, out := &in.Created, &out.Created - *out = (*in).DeepCopy() - } - if in.IssuedBy != nil { - in, out := &in.IssuedBy, &out.IssuedBy - *out = new(SignatureIssuer) - **out = **in - } - if in.IssuedTo != nil { - in, out := &in.IssuedTo, &out.IssuedTo - *out = new(SignatureSubject) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSignature. -func (in *ImageSignature) DeepCopy() *ImageSignature { - if in == nil { - return nil - } - out := new(ImageSignature) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ImageSignature) 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 *ImageStream) DeepCopyInto(out *ImageStream) { - *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 ImageStream. -func (in *ImageStream) DeepCopy() *ImageStream { - if in == nil { - return nil - } - out := new(ImageStream) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ImageStream) 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 *ImageStreamImage) DeepCopyInto(out *ImageStreamImage) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Image.DeepCopyInto(&out.Image) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStreamImage. -func (in *ImageStreamImage) DeepCopy() *ImageStreamImage { - if in == nil { - return nil - } - out := new(ImageStreamImage) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ImageStreamImage) 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 *ImageStreamImport) DeepCopyInto(out *ImageStreamImport) { - *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 ImageStreamImport. -func (in *ImageStreamImport) DeepCopy() *ImageStreamImport { - if in == nil { - return nil - } - out := new(ImageStreamImport) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ImageStreamImport) 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 *ImageStreamImportSpec) DeepCopyInto(out *ImageStreamImportSpec) { - *out = *in - if in.Repository != nil { - in, out := &in.Repository, &out.Repository - *out = new(RepositoryImportSpec) - **out = **in - } - if in.Images != nil { - in, out := &in.Images, &out.Images - *out = make([]ImageImportSpec, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStreamImportSpec. -func (in *ImageStreamImportSpec) DeepCopy() *ImageStreamImportSpec { - if in == nil { - return nil - } - out := new(ImageStreamImportSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageStreamImportStatus) DeepCopyInto(out *ImageStreamImportStatus) { - *out = *in - if in.Import != nil { - in, out := &in.Import, &out.Import - *out = new(ImageStream) - (*in).DeepCopyInto(*out) - } - if in.Repository != nil { - in, out := &in.Repository, &out.Repository - *out = new(RepositoryImportStatus) - (*in).DeepCopyInto(*out) - } - if in.Images != nil { - in, out := &in.Images, &out.Images - *out = make([]ImageImportStatus, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStreamImportStatus. -func (in *ImageStreamImportStatus) DeepCopy() *ImageStreamImportStatus { - if in == nil { - return nil - } - out := new(ImageStreamImportStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageStreamLayers) DeepCopyInto(out *ImageStreamLayers) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Blobs != nil { - in, out := &in.Blobs, &out.Blobs - *out = make(map[string]ImageLayerData, len(*in)) - for key, val := range *in { - (*out)[key] = *val.DeepCopy() - } - } - if in.Images != nil { - in, out := &in.Images, &out.Images - *out = make(map[string]ImageBlobReferences, len(*in)) - for key, val := range *in { - (*out)[key] = *val.DeepCopy() - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStreamLayers. -func (in *ImageStreamLayers) DeepCopy() *ImageStreamLayers { - if in == nil { - return nil - } - out := new(ImageStreamLayers) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ImageStreamLayers) 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 *ImageStreamList) DeepCopyInto(out *ImageStreamList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ImageStream, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStreamList. -func (in *ImageStreamList) DeepCopy() *ImageStreamList { - if in == nil { - return nil - } - out := new(ImageStreamList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ImageStreamList) 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 *ImageStreamMapping) DeepCopyInto(out *ImageStreamMapping) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Image.DeepCopyInto(&out.Image) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStreamMapping. -func (in *ImageStreamMapping) DeepCopy() *ImageStreamMapping { - if in == nil { - return nil - } - out := new(ImageStreamMapping) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ImageStreamMapping) 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 *ImageStreamSpec) DeepCopyInto(out *ImageStreamSpec) { - *out = *in - out.LookupPolicy = in.LookupPolicy - if in.Tags != nil { - in, out := &in.Tags, &out.Tags - *out = make([]TagReference, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStreamSpec. -func (in *ImageStreamSpec) DeepCopy() *ImageStreamSpec { - if in == nil { - return nil - } - out := new(ImageStreamSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageStreamStatus) DeepCopyInto(out *ImageStreamStatus) { - *out = *in - if in.Tags != nil { - in, out := &in.Tags, &out.Tags - *out = make([]NamedTagEventList, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStreamStatus. -func (in *ImageStreamStatus) DeepCopy() *ImageStreamStatus { - if in == nil { - return nil - } - out := new(ImageStreamStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageStreamTag) DeepCopyInto(out *ImageStreamTag) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Tag != nil { - in, out := &in.Tag, &out.Tag - *out = new(TagReference) - (*in).DeepCopyInto(*out) - } - out.LookupPolicy = in.LookupPolicy - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]TagEventCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - in.Image.DeepCopyInto(&out.Image) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStreamTag. -func (in *ImageStreamTag) DeepCopy() *ImageStreamTag { - if in == nil { - return nil - } - out := new(ImageStreamTag) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ImageStreamTag) 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 *ImageStreamTagList) DeepCopyInto(out *ImageStreamTagList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ImageStreamTag, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageStreamTagList. -func (in *ImageStreamTagList) DeepCopy() *ImageStreamTagList { - if in == nil { - return nil - } - out := new(ImageStreamTagList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ImageStreamTagList) 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 *ImageTag) DeepCopyInto(out *ImageTag) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Spec != nil { - in, out := &in.Spec, &out.Spec - *out = new(TagReference) - (*in).DeepCopyInto(*out) - } - if in.Status != nil { - in, out := &in.Status, &out.Status - *out = new(NamedTagEventList) - (*in).DeepCopyInto(*out) - } - if in.Image != nil { - in, out := &in.Image, &out.Image - *out = new(Image) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageTag. -func (in *ImageTag) DeepCopy() *ImageTag { - if in == nil { - return nil - } - out := new(ImageTag) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ImageTag) 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 *ImageTagList) DeepCopyInto(out *ImageTagList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ImageTag, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageTagList. -func (in *ImageTagList) DeepCopy() *ImageTagList { - if in == nil { - return nil - } - out := new(ImageTagList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ImageTagList) 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 *NamedTagEventList) DeepCopyInto(out *NamedTagEventList) { - *out = *in - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]TagEvent, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]TagEventCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedTagEventList. -func (in *NamedTagEventList) DeepCopy() *NamedTagEventList { - if in == nil { - return nil - } - out := new(NamedTagEventList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RepositoryImportSpec) DeepCopyInto(out *RepositoryImportSpec) { - *out = *in - out.From = in.From - out.ImportPolicy = in.ImportPolicy - out.ReferencePolicy = in.ReferencePolicy - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RepositoryImportSpec. -func (in *RepositoryImportSpec) DeepCopy() *RepositoryImportSpec { - if in == nil { - return nil - } - out := new(RepositoryImportSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RepositoryImportStatus) DeepCopyInto(out *RepositoryImportStatus) { - *out = *in - in.Status.DeepCopyInto(&out.Status) - if in.Images != nil { - in, out := &in.Images, &out.Images - *out = make([]ImageImportStatus, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.AdditionalTags != nil { - in, out := &in.AdditionalTags, &out.AdditionalTags - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RepositoryImportStatus. -func (in *RepositoryImportStatus) DeepCopy() *RepositoryImportStatus { - if in == nil { - return nil - } - out := new(RepositoryImportStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SignatureCondition) DeepCopyInto(out *SignatureCondition) { - *out = *in - in.LastProbeTime.DeepCopyInto(&out.LastProbeTime) - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SignatureCondition. -func (in *SignatureCondition) DeepCopy() *SignatureCondition { - if in == nil { - return nil - } - out := new(SignatureCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SignatureGenericEntity) DeepCopyInto(out *SignatureGenericEntity) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SignatureGenericEntity. -func (in *SignatureGenericEntity) DeepCopy() *SignatureGenericEntity { - if in == nil { - return nil - } - out := new(SignatureGenericEntity) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SignatureIssuer) DeepCopyInto(out *SignatureIssuer) { - *out = *in - out.SignatureGenericEntity = in.SignatureGenericEntity - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SignatureIssuer. -func (in *SignatureIssuer) DeepCopy() *SignatureIssuer { - if in == nil { - return nil - } - out := new(SignatureIssuer) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SignatureSubject) DeepCopyInto(out *SignatureSubject) { - *out = *in - out.SignatureGenericEntity = in.SignatureGenericEntity - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SignatureSubject. -func (in *SignatureSubject) DeepCopy() *SignatureSubject { - if in == nil { - return nil - } - out := new(SignatureSubject) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TagEvent) DeepCopyInto(out *TagEvent) { - *out = *in - in.Created.DeepCopyInto(&out.Created) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TagEvent. -func (in *TagEvent) DeepCopy() *TagEvent { - if in == nil { - return nil - } - out := new(TagEvent) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TagEventCondition) DeepCopyInto(out *TagEventCondition) { - *out = *in - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TagEventCondition. -func (in *TagEventCondition) DeepCopy() *TagEventCondition { - if in == nil { - return nil - } - out := new(TagEventCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TagImportPolicy) DeepCopyInto(out *TagImportPolicy) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TagImportPolicy. -func (in *TagImportPolicy) DeepCopy() *TagImportPolicy { - if in == nil { - return nil - } - out := new(TagImportPolicy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TagReference) DeepCopyInto(out *TagReference) { - *out = *in - if in.Annotations != nil { - in, out := &in.Annotations, &out.Annotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.From != nil { - in, out := &in.From, &out.From - *out = new(corev1.ObjectReference) - **out = **in - } - if in.Generation != nil { - in, out := &in.Generation, &out.Generation - *out = new(int64) - **out = **in - } - out.ImportPolicy = in.ImportPolicy - out.ReferencePolicy = in.ReferencePolicy - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TagReference. -func (in *TagReference) DeepCopy() *TagReference { - if in == nil { - return nil - } - out := new(TagReference) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TagReferencePolicy) DeepCopyInto(out *TagReferencePolicy) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TagReferencePolicy. -func (in *TagReferencePolicy) DeepCopy() *TagReferencePolicy { - if in == nil { - return nil - } - out := new(TagReferencePolicy) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/github.com/openshift/api/image/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/image/v1/zz_generated.swagger_doc_generated.go deleted file mode 100644 index a50ffbbc52472..0000000000000 --- a/vendor/github.com/openshift/api/image/v1/zz_generated.swagger_doc_generated.go +++ /dev/null @@ -1,413 +0,0 @@ -package v1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE -var map_DockerImageReference = map[string]string{ - "": "DockerImageReference points to a container image.", - "Registry": "Registry is the registry that contains the container image", - "Namespace": "Namespace is the namespace that contains the container image", - "Name": "Name is the name of the container image", - "Tag": "Tag is which tag of the container image is being referenced", - "ID": "ID is the identifier for the container image", -} - -func (DockerImageReference) SwaggerDoc() map[string]string { - return map_DockerImageReference -} - -var map_Image = map[string]string{ - "": "Image is an immutable representation of a container image and metadata at a point in time. Images are named by taking a hash of their contents (metadata and content) and any change in format, content, or metadata results in a new name. The images resource is primarily for use by cluster administrators and integrations like the cluster image registry - end users instead access images via the imagestreamtags or imagestreamimages resources. While image metadata is stored in the API, any integration that implements the container image registry API must provide its own storage for the raw manifest data, image config, and layer contents.", - "dockerImageReference": "DockerImageReference is the string that can be used to pull this image.", - "dockerImageMetadata": "DockerImageMetadata contains metadata about this image", - "dockerImageMetadataVersion": "DockerImageMetadataVersion conveys the version of the object, which if empty defaults to \"1.0\"", - "dockerImageManifest": "DockerImageManifest is the raw JSON of the manifest", - "dockerImageLayers": "DockerImageLayers represents the layers in the image. May not be set if the image does not define that data.", - "signatures": "Signatures holds all signatures of the image.", - "dockerImageSignatures": "DockerImageSignatures provides the signatures as opaque blobs. This is a part of manifest schema v1.", - "dockerImageManifestMediaType": "DockerImageManifestMediaType specifies the mediaType of manifest. This is a part of manifest schema v2.", - "dockerImageConfig": "DockerImageConfig is a JSON blob that the runtime uses to set up the container. This is a part of manifest schema v2.", -} - -func (Image) SwaggerDoc() map[string]string { - return map_Image -} - -var map_ImageBlobReferences = map[string]string{ - "": "ImageBlobReferences describes the blob references within an image.", - "imageMissing": "imageMissing is true if the image is referenced by the image stream but the image object has been deleted from the API by an administrator. When this field is set, layers and config fields may be empty and callers that depend on the image metadata should consider the image to be unavailable for download or viewing.", - "layers": "layers is the list of blobs that compose this image, from base layer to top layer. All layers referenced by this array will be defined in the blobs map. Some images may have zero layers.", - "config": "config, if set, is the blob that contains the image config. Some images do not have separate config blobs and this field will be set to nil if so.", -} - -func (ImageBlobReferences) SwaggerDoc() map[string]string { - return map_ImageBlobReferences -} - -var map_ImageImportSpec = map[string]string{ - "": "ImageImportSpec describes a request to import a specific image.", - "from": "From is the source of an image to import; only kind DockerImage is allowed", - "to": "To is a tag in the current image stream to assign the imported image to, if name is not specified the default tag from from.name will be used", - "importPolicy": "ImportPolicy is the policy controlling how the image is imported", - "referencePolicy": "ReferencePolicy defines how other components should consume the image", - "includeManifest": "IncludeManifest determines if the manifest for each image is returned in the response", -} - -func (ImageImportSpec) SwaggerDoc() map[string]string { - return map_ImageImportSpec -} - -var map_ImageImportStatus = map[string]string{ - "": "ImageImportStatus describes the result of an image import.", - "status": "Status is the status of the image import, including errors encountered while retrieving the image", - "image": "Image is the metadata of that image, if the image was located", - "tag": "Tag is the tag this image was located under, if any", -} - -func (ImageImportStatus) SwaggerDoc() map[string]string { - return map_ImageImportStatus -} - -var map_ImageLayer = map[string]string{ - "": "ImageLayer represents a single layer of the image. Some images may have multiple layers. Some may have none.", - "name": "Name of the layer as defined by the underlying store.", - "size": "Size of the layer in bytes as defined by the underlying store.", - "mediaType": "MediaType of the referenced object.", -} - -func (ImageLayer) SwaggerDoc() map[string]string { - return map_ImageLayer -} - -var map_ImageLayerData = map[string]string{ - "": "ImageLayerData contains metadata about an image layer.", - "size": "Size of the layer in bytes as defined by the underlying store. This field is optional if the necessary information about size is not available.", - "mediaType": "MediaType of the referenced object.", -} - -func (ImageLayerData) SwaggerDoc() map[string]string { - return map_ImageLayerData -} - -var map_ImageList = map[string]string{ - "": "ImageList is a list of Image objects.", - "items": "Items is a list of images", -} - -func (ImageList) SwaggerDoc() map[string]string { - return map_ImageList -} - -var map_ImageLookupPolicy = map[string]string{ - "": "ImageLookupPolicy describes how an image stream can be used to override the image references used by pods, builds, and other resources in a namespace.", - "local": "local will change the docker short image references (like \"mysql\" or \"php:latest\") on objects in this namespace to the image ID whenever they match this image stream, instead of reaching out to a remote registry. The name will be fully qualified to an image ID if found. The tag's referencePolicy is taken into account on the replaced value. Only works within the current namespace.", -} - -func (ImageLookupPolicy) SwaggerDoc() map[string]string { - return map_ImageLookupPolicy -} - -var map_ImageSignature = map[string]string{ - "": "ImageSignature holds a signature of an image. It allows to verify image identity and possibly other claims as long as the signature is trusted. Based on this information it is possible to restrict runnable images to those matching cluster-wide policy. Mandatory fields should be parsed by clients doing image verification. The others are parsed from signature's content by the server. They serve just an informative purpose.", - "type": "Required: Describes a type of stored blob.", - "content": "Required: An opaque binary string which is an image's signature.", - "conditions": "Conditions represent the latest available observations of a signature's current state.", - "imageIdentity": "A human readable string representing image's identity. It could be a product name and version, or an image pull spec (e.g. \"registry.access.redhat.com/rhel7/rhel:7.2\").", - "signedClaims": "Contains claims from the signature.", - "created": "If specified, it is the time of signature's creation.", - "issuedBy": "If specified, it holds information about an issuer of signing certificate or key (a person or entity who signed the signing certificate or key).", - "issuedTo": "If specified, it holds information about a subject of signing certificate or key (a person or entity who signed the image).", -} - -func (ImageSignature) SwaggerDoc() map[string]string { - return map_ImageSignature -} - -var map_ImageStream = map[string]string{ - "": "An ImageStream stores a mapping of tags to images, metadata overrides that are applied when images are tagged in a stream, and an optional reference to a container image repository on a registry. Users typically update the spec.tags field to point to external images which are imported from container registries using credentials in your namespace with the pull secret type, or to existing image stream tags and images which are immediately accessible for tagging or pulling. The history of images applied to a tag is visible in the status.tags field and any user who can view an image stream is allowed to tag that image into their own image streams. Access to pull images from the integrated registry is granted by having the \"get imagestreams/layers\" permission on a given image stream. Users may remove a tag by deleting the imagestreamtag resource, which causes both spec and status for that tag to be removed. Image stream history is retained until an administrator runs the prune operation, which removes references that are no longer in use. To preserve a historical image, ensure there is a tag in spec pointing to that image by its digest.", - "spec": "Spec describes the desired state of this stream", - "status": "Status describes the current state of this stream", -} - -func (ImageStream) SwaggerDoc() map[string]string { - return map_ImageStream -} - -var map_ImageStreamImage = map[string]string{ - "": "ImageStreamImage represents an Image that is retrieved by image name from an ImageStream. User interfaces and regular users can use this resource to access the metadata details of a tagged image in the image stream history for viewing, since Image resources are not directly accessible to end users. A not found error will be returned if no such image is referenced by a tag within the ImageStream. Images are created when spec tags are set on an image stream that represent an image in an external registry, when pushing to the integrated registry, or when tagging an existing image from one image stream to another. The name of an image stream image is in the form \"@\", where the digest is the content addressible identifier for the image (sha256:xxxxx...). You can use ImageStreamImages as the from.kind of an image stream spec tag to reference an image exactly. The only operations supported on the imagestreamimage endpoint are retrieving the image.", - "image": "Image associated with the ImageStream and image name.", -} - -func (ImageStreamImage) SwaggerDoc() map[string]string { - return map_ImageStreamImage -} - -var map_ImageStreamImport = map[string]string{ - "": "The image stream import resource provides an easy way for a user to find and import container images from other container image registries into the server. Individual images or an entire image repository may be imported, and users may choose to see the results of the import prior to tagging the resulting images into the specified image stream.\n\nThis API is intended for end-user tools that need to see the metadata of the image prior to import (for instance, to generate an application from it). Clients that know the desired image can continue to create spec.tags directly into their image streams.", - "spec": "Spec is a description of the images that the user wishes to import", - "status": "Status is the the result of importing the image", -} - -func (ImageStreamImport) SwaggerDoc() map[string]string { - return map_ImageStreamImport -} - -var map_ImageStreamImportSpec = map[string]string{ - "": "ImageStreamImportSpec defines what images should be imported.", - "import": "Import indicates whether to perform an import - if so, the specified tags are set on the spec and status of the image stream defined by the type meta.", - "repository": "Repository is an optional import of an entire container image repository. A maximum limit on the number of tags imported this way is imposed by the server.", - "images": "Images are a list of individual images to import.", -} - -func (ImageStreamImportSpec) SwaggerDoc() map[string]string { - return map_ImageStreamImportSpec -} - -var map_ImageStreamImportStatus = map[string]string{ - "": "ImageStreamImportStatus contains information about the status of an image stream import.", - "import": "Import is the image stream that was successfully updated or created when 'to' was set.", - "repository": "Repository is set if spec.repository was set to the outcome of the import", - "images": "Images is set with the result of importing spec.images", -} - -func (ImageStreamImportStatus) SwaggerDoc() map[string]string { - return map_ImageStreamImportStatus -} - -var map_ImageStreamLayers = map[string]string{ - "": "ImageStreamLayers describes information about the layers referenced by images in this image stream.", - "blobs": "blobs is a map of blob name to metadata about the blob.", - "images": "images is a map between an image name and the names of the blobs and config that comprise the image.", -} - -func (ImageStreamLayers) SwaggerDoc() map[string]string { - return map_ImageStreamLayers -} - -var map_ImageStreamList = map[string]string{ - "": "ImageStreamList is a list of ImageStream objects.", - "items": "Items is a list of imageStreams", -} - -func (ImageStreamList) SwaggerDoc() map[string]string { - return map_ImageStreamList -} - -var map_ImageStreamMapping = map[string]string{ - "": "ImageStreamMapping represents a mapping from a single image stream tag to a container image as well as the reference to the container image stream the image came from. This resource is used by privileged integrators to create an image resource and to associate it with an image stream in the status tags field. Creating an ImageStreamMapping will allow any user who can view the image stream to tag or pull that image, so only create mappings where the user has proven they have access to the image contents directly. The only operation supported for this resource is create and the metadata name and namespace should be set to the image stream containing the tag that should be updated.", - "image": "Image is a container image.", - "tag": "Tag is a string value this image can be located with inside the stream.", -} - -func (ImageStreamMapping) SwaggerDoc() map[string]string { - return map_ImageStreamMapping -} - -var map_ImageStreamSpec = map[string]string{ - "": "ImageStreamSpec represents options for ImageStreams.", - "lookupPolicy": "lookupPolicy controls how other resources reference images within this namespace.", - "dockerImageRepository": "dockerImageRepository is optional, if specified this stream is backed by a container repository on this server Deprecated: This field is deprecated as of v3.7 and will be removed in a future release. Specify the source for the tags to be imported in each tag via the spec.tags.from reference instead.", - "tags": "tags map arbitrary string values to specific image locators", -} - -func (ImageStreamSpec) SwaggerDoc() map[string]string { - return map_ImageStreamSpec -} - -var map_ImageStreamStatus = map[string]string{ - "": "ImageStreamStatus contains information about the state of this image stream.", - "dockerImageRepository": "DockerImageRepository represents the effective location this stream may be accessed at. May be empty until the server determines where the repository is located", - "publicDockerImageRepository": "PublicDockerImageRepository represents the public location from where the image can be pulled outside the cluster. This field may be empty if the administrator has not exposed the integrated registry externally.", - "tags": "Tags are a historical record of images associated with each tag. The first entry in the TagEvent array is the currently tagged image.", -} - -func (ImageStreamStatus) SwaggerDoc() map[string]string { - return map_ImageStreamStatus -} - -var map_ImageStreamTag = map[string]string{ - "": "ImageStreamTag represents an Image that is retrieved by tag name from an ImageStream. Use this resource to interact with the tags and images in an image stream by tag, or to see the image details for a particular tag. The image associated with this resource is the most recently successfully tagged, imported, or pushed image (as described in the image stream status.tags.items list for this tag). If an import is in progress or has failed the previous image will be shown. Deleting an image stream tag clears both the status and spec fields of an image stream. If no image can be retrieved for a given tag, a not found error will be returned.", - "tag": "tag is the spec tag associated with this image stream tag, and it may be null if only pushes have occurred to this image stream.", - "generation": "generation is the current generation of the tagged image - if tag is provided and this value is not equal to the tag generation, a user has requested an import that has not completed, or conditions will be filled out indicating any error.", - "lookupPolicy": "lookupPolicy indicates whether this tag will handle image references in this namespace.", - "conditions": "conditions is an array of conditions that apply to the image stream tag.", - "image": "image associated with the ImageStream and tag.", -} - -func (ImageStreamTag) SwaggerDoc() map[string]string { - return map_ImageStreamTag -} - -var map_ImageStreamTagList = map[string]string{ - "": "ImageStreamTagList is a list of ImageStreamTag objects.", - "items": "Items is the list of image stream tags", -} - -func (ImageStreamTagList) SwaggerDoc() map[string]string { - return map_ImageStreamTagList -} - -var map_ImageTag = map[string]string{ - "": "ImageTag represents a single tag within an image stream and includes the spec, the status history, and the currently referenced image (if any) of the provided tag. This type replaces the ImageStreamTag by providing a full view of the tag. ImageTags are returned for every spec or status tag present on the image stream. If no tag exists in either form a not found error will be returned by the API. A create operation will succeed if no spec tag has already been defined and the spec field is set. Delete will remove both spec and status elements from the image stream.", - "spec": "spec is the spec tag associated with this image stream tag, and it may be null if only pushes have occurred to this image stream.", - "status": "status is the status tag details associated with this image stream tag, and it may be null if no push or import has been performed.", - "image": "image is the details of the most recent image stream status tag, and it may be null if import has not completed or an administrator has deleted the image object. To verify this is the most recent image, you must verify the generation of the most recent status.items entry matches the spec tag (if a spec tag is set). This field will not be set when listing image tags.", -} - -func (ImageTag) SwaggerDoc() map[string]string { - return map_ImageTag -} - -var map_ImageTagList = map[string]string{ - "": "ImageTagList is a list of ImageTag objects. When listing image tags, the image field is not populated. Tags are returned in alphabetical order by image stream and then tag.", - "items": "Items is the list of image stream tags", -} - -func (ImageTagList) SwaggerDoc() map[string]string { - return map_ImageTagList -} - -var map_NamedTagEventList = map[string]string{ - "": "NamedTagEventList relates a tag to its image history.", - "tag": "Tag is the tag for which the history is recorded", - "items": "Standard object's metadata.", - "conditions": "Conditions is an array of conditions that apply to the tag event list.", -} - -func (NamedTagEventList) SwaggerDoc() map[string]string { - return map_NamedTagEventList -} - -var map_RepositoryImportSpec = map[string]string{ - "": "RepositoryImportSpec describes a request to import images from a container image repository.", - "from": "From is the source for the image repository to import; only kind DockerImage and a name of a container image repository is allowed", - "importPolicy": "ImportPolicy is the policy controlling how the image is imported", - "referencePolicy": "ReferencePolicy defines how other components should consume the image", - "includeManifest": "IncludeManifest determines if the manifest for each image is returned in the response", -} - -func (RepositoryImportSpec) SwaggerDoc() map[string]string { - return map_RepositoryImportSpec -} - -var map_RepositoryImportStatus = map[string]string{ - "": "RepositoryImportStatus describes the result of an image repository import", - "status": "Status reflects whether any failure occurred during import", - "images": "Images is a list of images successfully retrieved by the import of the repository.", - "additionalTags": "AdditionalTags are tags that exist in the repository but were not imported because a maximum limit of automatic imports was applied.", -} - -func (RepositoryImportStatus) SwaggerDoc() map[string]string { - return map_RepositoryImportStatus -} - -var map_SignatureCondition = map[string]string{ - "": "SignatureCondition describes an image signature condition of particular kind at particular probe time.", - "type": "Type of signature condition, Complete or Failed.", - "status": "Status of the condition, one of True, False, Unknown.", - "lastProbeTime": "Last time the condition was checked.", - "lastTransitionTime": "Last time the condition transit from one status to another.", - "reason": "(brief) reason for the condition's last transition.", - "message": "Human readable message indicating details about last transition.", -} - -func (SignatureCondition) SwaggerDoc() map[string]string { - return map_SignatureCondition -} - -var map_SignatureGenericEntity = map[string]string{ - "": "SignatureGenericEntity holds a generic information about a person or entity who is an issuer or a subject of signing certificate or key.", - "organization": "Organization name.", - "commonName": "Common name (e.g. openshift-signing-service).", -} - -func (SignatureGenericEntity) SwaggerDoc() map[string]string { - return map_SignatureGenericEntity -} - -var map_SignatureIssuer = map[string]string{ - "": "SignatureIssuer holds information about an issuer of signing certificate or key.", -} - -func (SignatureIssuer) SwaggerDoc() map[string]string { - return map_SignatureIssuer -} - -var map_SignatureSubject = map[string]string{ - "": "SignatureSubject holds information about a person or entity who created the signature.", - "publicKeyID": "If present, it is a human readable key id of public key belonging to the subject used to verify image signature. It should contain at least 64 lowest bits of public key's fingerprint (e.g. 0x685ebe62bf278440).", -} - -func (SignatureSubject) SwaggerDoc() map[string]string { - return map_SignatureSubject -} - -var map_TagEvent = map[string]string{ - "": "TagEvent is used by ImageStreamStatus to keep a historical record of images associated with a tag.", - "created": "Created holds the time the TagEvent was created", - "dockerImageReference": "DockerImageReference is the string that can be used to pull this image", - "image": "Image is the image", - "generation": "Generation is the spec tag generation that resulted in this tag being updated", -} - -func (TagEvent) SwaggerDoc() map[string]string { - return map_TagEvent -} - -var map_TagEventCondition = map[string]string{ - "": "TagEventCondition contains condition information for a tag event.", - "type": "Type of tag event condition, currently only ImportSuccess", - "status": "Status of the condition, one of True, False, Unknown.", - "lastTransitionTime": "LastTransitionTIme is the time the condition transitioned from one status to another.", - "reason": "Reason is a brief machine readable explanation for the condition's last transition.", - "message": "Message is a human readable description of the details about last transition, complementing reason.", - "generation": "Generation is the spec tag generation that this status corresponds to", -} - -func (TagEventCondition) SwaggerDoc() map[string]string { - return map_TagEventCondition -} - -var map_TagImportPolicy = map[string]string{ - "": "TagImportPolicy controls how images related to this tag will be imported.", - "insecure": "Insecure is true if the server may bypass certificate verification or connect directly over HTTP during image import.", - "scheduled": "Scheduled indicates to the server that this tag should be periodically checked to ensure it is up to date, and imported", -} - -func (TagImportPolicy) SwaggerDoc() map[string]string { - return map_TagImportPolicy -} - -var map_TagReference = map[string]string{ - "": "TagReference specifies optional annotations for images using this tag and an optional reference to an ImageStreamTag, ImageStreamImage, or DockerImage this tag should track.", - "name": "Name of the tag", - "annotations": "Optional; if specified, annotations that are applied to images retrieved via ImageStreamTags.", - "from": "Optional; if specified, a reference to another image that this tag should point to. Valid values are ImageStreamTag, ImageStreamImage, and DockerImage. ImageStreamTag references can only reference a tag within this same ImageStream.", - "reference": "Reference states if the tag will be imported. Default value is false, which means the tag will be imported.", - "generation": "Generation is a counter that tracks mutations to the spec tag (user intent). When a tag reference is changed the generation is set to match the current stream generation (which is incremented every time spec is changed). Other processes in the system like the image importer observe that the generation of spec tag is newer than the generation recorded in the status and use that as a trigger to import the newest remote tag. To trigger a new import, clients may set this value to zero which will reset the generation to the latest stream generation. Legacy clients will send this value as nil which will be merged with the current tag generation.", - "importPolicy": "ImportPolicy is information that controls how images may be imported by the server.", - "referencePolicy": "ReferencePolicy defines how other components should consume the image.", -} - -func (TagReference) SwaggerDoc() map[string]string { - return map_TagReference -} - -var map_TagReferencePolicy = map[string]string{ - "": "TagReferencePolicy describes how pull-specs for images in this image stream tag are generated when image change triggers in deployment configs or builds are resolved. This allows the image stream author to control how images are accessed.", - "type": "Type determines how the image pull spec should be transformed when the image stream tag is used in deployment config triggers or new builds. The default value is `Source`, indicating the original location of the image should be used (if imported). The user may also specify `Local`, indicating that the pull spec should point to the integrated container image registry and leverage the registry's ability to proxy the pull to an upstream registry. `Local` allows the credentials used to pull this image to be managed from the image stream's namespace, so others on the platform can access a remote image but have no access to the remote secret. It also allows the image layers to be mirrored into the local registry which the images can still be pulled even if the upstream registry is unavailable.", -} - -func (TagReferencePolicy) SwaggerDoc() map[string]string { - return map_TagReferencePolicy -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/github.com/openshift/api/kubecontrolplane/v1/doc.go b/vendor/github.com/openshift/api/kubecontrolplane/v1/doc.go deleted file mode 100644 index d8872a61329bf..0000000000000 --- a/vendor/github.com/openshift/api/kubecontrolplane/v1/doc.go +++ /dev/null @@ -1,7 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:defaulter-gen=TypeMeta -// +k8s:openapi-gen=true - -// +groupName=kubecontrolplane.config.openshift.io -// Package v1 is the v1 version of the API. -package v1 diff --git a/vendor/github.com/openshift/api/kubecontrolplane/v1/register.go b/vendor/github.com/openshift/api/kubecontrolplane/v1/register.go deleted file mode 100644 index f8abc8ad8ce8f..0000000000000 --- a/vendor/github.com/openshift/api/kubecontrolplane/v1/register.go +++ /dev/null @@ -1,38 +0,0 @@ -package v1 - -import ( - configv1 "github.com/openshift/api/config/v1" - osinv1 "github.com/openshift/api/osin/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - GroupName = "kubecontrolplane.config.openshift.io" - GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, osinv1.Install, configv1.Install) - // Install is a function which adds this version to a scheme - Install = schemeBuilder.AddToScheme - - // SchemeGroupVersion generated code relies on this name - // Deprecated - SchemeGroupVersion = GroupVersion - // AddToScheme exists solely to keep the old generators creating valid code - // DEPRECATED - AddToScheme = schemeBuilder.AddToScheme -) - -// Resource generated code relies on this being here, but it logically belongs to the group -// DEPRECATED -func Resource(resource string) schema.GroupResource { - return schema.GroupResource{Group: GroupName, Resource: resource} -} - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &KubeAPIServerConfig{}, - &KubeControllerManagerConfig{}, - ) - return nil -} diff --git a/vendor/github.com/openshift/api/kubecontrolplane/v1/types.go b/vendor/github.com/openshift/api/kubecontrolplane/v1/types.go deleted file mode 100644 index 97c1d5b7d0599..0000000000000 --- a/vendor/github.com/openshift/api/kubecontrolplane/v1/types.go +++ /dev/null @@ -1,213 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - "fmt" - - configv1 "github.com/openshift/api/config/v1" - osinv1 "github.com/openshift/api/osin/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type KubeAPIServerConfig struct { - metav1.TypeMeta `json:",inline"` - - // provides the standard apiserver configuration - configv1.GenericAPIServerConfig `json:",inline"` - - // authConfig configures authentication options in addition to the standard - // oauth token and client certificate authenticators - AuthConfig MasterAuthConfig `json:"authConfig"` - - // aggregatorConfig has options for configuring the aggregator component of the API server. - AggregatorConfig AggregatorConfig `json:"aggregatorConfig"` - - // kubeletClientInfo contains information about how to connect to kubelets - KubeletClientInfo KubeletConnectionInfo `json:"kubeletClientInfo"` - - // servicesSubnet is the subnet to use for assigning service IPs - ServicesSubnet string `json:"servicesSubnet"` - // servicesNodePortRange is the range to use for assigning service public ports on a host. - ServicesNodePortRange string `json:"servicesNodePortRange"` - - // consolePublicURL is an optional URL to provide a redirect from the kube-apiserver to the webconsole - ConsolePublicURL string `json:"consolePublicURL"` - - // UserAgentMatchingConfig controls how API calls from *voluntarily* identifying clients will be handled. THIS DOES NOT DEFEND AGAINST MALICIOUS CLIENTS! - // TODO I think we should just drop this feature. - UserAgentMatchingConfig UserAgentMatchingConfig `json:"userAgentMatchingConfig"` - - // imagePolicyConfig feeds the image policy admission plugin - // TODO make it an admission plugin config - ImagePolicyConfig KubeAPIServerImagePolicyConfig `json:"imagePolicyConfig"` - - // projectConfig feeds an admission plugin - // TODO make it an admission plugin config - ProjectConfig KubeAPIServerProjectConfig `json:"projectConfig"` - - // serviceAccountPublicKeyFiles is a list of files, each containing a PEM-encoded public RSA key. - // (If any file contains a private key, the public portion of the key is used) - // The list of public keys is used to verify presented service account tokens. - // Each key is tried in order until the list is exhausted or verification succeeds. - // If no keys are specified, no service account authentication will be available. - ServiceAccountPublicKeyFiles []string `json:"serviceAccountPublicKeyFiles"` - - // oauthConfig, if present start the /oauth endpoint in this process - OAuthConfig *osinv1.OAuthConfig `json:"oauthConfig"` - - // TODO this needs to be removed. - APIServerArguments map[string]Arguments `json:"apiServerArguments"` -} - -// Arguments masks the value so protobuf can generate -// +protobuf.nullable=true -// +protobuf.options.(gogoproto.goproto_stringer)=false -type Arguments []string - -func (t Arguments) String() string { - return fmt.Sprintf("%v", []string(t)) -} - -type KubeAPIServerImagePolicyConfig struct { - // internalRegistryHostname sets the hostname for the default internal image - // registry. The value must be in "hostname[:port]" format. - // For backward compatibility, users can still use OPENSHIFT_DEFAULT_REGISTRY - // environment variable but this setting overrides the environment variable. - InternalRegistryHostname string `json:"internalRegistryHostname"` - // externalRegistryHostnames provides the hostnames for the default external image - // registry. The external hostname should be set only when the image registry - // is exposed externally. The first value is used in 'publicDockerImageRepository' - // field in ImageStreams. The value must be in "hostname[:port]" format. - ExternalRegistryHostnames []string `json:"externalRegistryHostnames"` -} - -type KubeAPIServerProjectConfig struct { - // defaultNodeSelector holds default project node label selector - DefaultNodeSelector string `json:"defaultNodeSelector"` -} - -// KubeletConnectionInfo holds information necessary for connecting to a kubelet -type KubeletConnectionInfo struct { - // port is the port to connect to kubelets on - Port uint32 `json:"port"` - // ca is the CA for verifying TLS connections to kubelets - CA string `json:"ca"` - // CertInfo is the TLS client cert information for securing communication to kubelets - // this is anonymous so that we can inline it for serialization - configv1.CertInfo `json:",inline"` -} - -// UserAgentMatchingConfig controls how API calls from *voluntarily* identifying clients will be handled. THIS DOES NOT DEFEND AGAINST MALICIOUS CLIENTS! -type UserAgentMatchingConfig struct { - // requiredClients if this list is non-empty, then a User-Agent must match one of the UserAgentRegexes to be allowed - RequiredClients []UserAgentMatchRule `json:"requiredClients"` - - // deniedClients if this list is non-empty, then a User-Agent must not match any of the UserAgentRegexes - DeniedClients []UserAgentDenyRule `json:"deniedClients"` - - // defaultRejectionMessage is the message shown when rejecting a client. If it is not a set, a generic message is given. - DefaultRejectionMessage string `json:"defaultRejectionMessage"` -} - -// UserAgentMatchRule describes how to match a given request based on User-Agent and HTTPVerb -type UserAgentMatchRule struct { - // regex is a regex that is checked against the User-Agent. - // Known variants of oc clients - // 1. oc accessing kube resources: oc/v1.2.0 (linux/amd64) kubernetes/bc4550d - // 2. oc accessing openshift resources: oc/v1.1.3 (linux/amd64) openshift/b348c2f - // 3. openshift kubectl accessing kube resources: openshift/v1.2.0 (linux/amd64) kubernetes/bc4550d - // 4. openshift kubectl accessing openshift resources: openshift/v1.1.3 (linux/amd64) openshift/b348c2f - // 5. oadm accessing kube resources: oadm/v1.2.0 (linux/amd64) kubernetes/bc4550d - // 6. oadm accessing openshift resources: oadm/v1.1.3 (linux/amd64) openshift/b348c2f - // 7. openshift cli accessing kube resources: openshift/v1.2.0 (linux/amd64) kubernetes/bc4550d - // 8. openshift cli accessing openshift resources: openshift/v1.1.3 (linux/amd64) openshift/b348c2f - Regex string `json:"regex"` - - // httpVerbs specifies which HTTP verbs should be matched. An empty list means "match all verbs". - HTTPVerbs []string `json:"httpVerbs"` -} - -// UserAgentDenyRule adds a rejection message that can be used to help a user figure out how to get an approved client -type UserAgentDenyRule struct { - UserAgentMatchRule `json:",inline"` - - // RejectionMessage is the message shown when rejecting a client. If it is not a set, the default message is used. - RejectionMessage string `json:"rejectionMessage"` -} - -// MasterAuthConfig configures authentication options in addition to the standard -// oauth token and client certificate authenticators -type MasterAuthConfig struct { - // requestHeader holds options for setting up a front proxy against the the API. It is optional. - RequestHeader *RequestHeaderAuthenticationOptions `json:"requestHeader"` - // webhookTokenAuthenticators, if present configures remote token reviewers - WebhookTokenAuthenticators []WebhookTokenAuthenticator `json:"webhookTokenAuthenticators"` - // oauthMetadataFile is a path to a file containing the discovery endpoint for OAuth 2.0 Authorization - // Server Metadata for an external OAuth server. - // See IETF Draft: // https://tools.ietf.org/html/draft-ietf-oauth-discovery-04#section-2 - // This option is mutually exclusive with OAuthConfig - OAuthMetadataFile string `json:"oauthMetadataFile"` -} - -// WebhookTokenAuthenticators holds the necessary configuation options for -// external token authenticators -type WebhookTokenAuthenticator struct { - // configFile is a path to a Kubeconfig file with the webhook configuration - ConfigFile string `json:"configFile"` - // cacheTTL indicates how long an authentication result should be cached. - // It takes a valid time duration string (e.g. "5m"). - // If empty, you get a default timeout of 2 minutes. - // If zero (e.g. "0m"), caching is disabled - CacheTTL string `json:"cacheTTL"` -} - -// RequestHeaderAuthenticationOptions provides options for setting up a front proxy against the entire -// API instead of against the /oauth endpoint. -type RequestHeaderAuthenticationOptions struct { - // clientCA is a file with the trusted signer certs. It is required. - ClientCA string `json:"clientCA"` - // clientCommonNames is a required list of common names to require a match from. - ClientCommonNames []string `json:"clientCommonNames"` - - // usernameHeaders is the list of headers to check for user information. First hit wins. - UsernameHeaders []string `json:"usernameHeaders"` - // groupHeaders is the set of headers to check for group information. All are unioned. - GroupHeaders []string `json:"groupHeaders"` - // extraHeaderPrefixes is the set of request header prefixes to inspect for user extra. X-Remote-Extra- is suggested. - ExtraHeaderPrefixes []string `json:"extraHeaderPrefixes"` -} - -// AggregatorConfig holds information required to make the aggregator function. -type AggregatorConfig struct { - // proxyClientInfo specifies the client cert/key to use when proxying to aggregated API servers - ProxyClientInfo configv1.CertInfo `json:"proxyClientInfo"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type KubeControllerManagerConfig struct { - metav1.TypeMeta `json:",inline"` - - // serviceServingCert provides support for the old alpha service serving cert signer CA bundle - ServiceServingCert ServiceServingCert `json:"serviceServingCert"` - - // projectConfig is an optimization for the daemonset controller - ProjectConfig KubeControllerManagerProjectConfig `json:"projectConfig"` - - // extendedArguments is used to configure the kube-controller-manager - ExtendedArguments map[string]Arguments `json:"extendedArguments"` -} - -type KubeControllerManagerProjectConfig struct { - // defaultNodeSelector holds default project node label selector - DefaultNodeSelector string `json:"defaultNodeSelector"` -} - -// ServiceServingCert holds configuration for service serving cert signer which creates cert/key pairs for -// pods fulfilling a service to serve with. -type ServiceServingCert struct { - // CertFile is a file containing a PEM-encoded certificate - CertFile string `json:"certFile"` -} diff --git a/vendor/github.com/openshift/api/kubecontrolplane/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/kubecontrolplane/v1/zz_generated.deepcopy.go deleted file mode 100644 index 3e4b5730f25f1..0000000000000 --- a/vendor/github.com/openshift/api/kubecontrolplane/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,378 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - osinv1 "github.com/openshift/api/osin/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 *AggregatorConfig) DeepCopyInto(out *AggregatorConfig) { - *out = *in - out.ProxyClientInfo = in.ProxyClientInfo - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AggregatorConfig. -func (in *AggregatorConfig) DeepCopy() *AggregatorConfig { - if in == nil { - return nil - } - out := new(AggregatorConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in Arguments) DeepCopyInto(out *Arguments) { - { - in := &in - *out = make(Arguments, len(*in)) - copy(*out, *in) - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Arguments. -func (in Arguments) DeepCopy() Arguments { - if in == nil { - return nil - } - out := new(Arguments) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KubeAPIServerConfig) DeepCopyInto(out *KubeAPIServerConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - in.GenericAPIServerConfig.DeepCopyInto(&out.GenericAPIServerConfig) - in.AuthConfig.DeepCopyInto(&out.AuthConfig) - out.AggregatorConfig = in.AggregatorConfig - out.KubeletClientInfo = in.KubeletClientInfo - in.UserAgentMatchingConfig.DeepCopyInto(&out.UserAgentMatchingConfig) - in.ImagePolicyConfig.DeepCopyInto(&out.ImagePolicyConfig) - out.ProjectConfig = in.ProjectConfig - if in.ServiceAccountPublicKeyFiles != nil { - in, out := &in.ServiceAccountPublicKeyFiles, &out.ServiceAccountPublicKeyFiles - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.OAuthConfig != nil { - in, out := &in.OAuthConfig, &out.OAuthConfig - *out = new(osinv1.OAuthConfig) - (*in).DeepCopyInto(*out) - } - if in.APIServerArguments != nil { - in, out := &in.APIServerArguments, &out.APIServerArguments - *out = make(map[string]Arguments, len(*in)) - for key, val := range *in { - var outVal []string - if val == nil { - (*out)[key] = nil - } else { - in, out := &val, &outVal - *out = make(Arguments, len(*in)) - copy(*out, *in) - } - (*out)[key] = outVal - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeAPIServerConfig. -func (in *KubeAPIServerConfig) DeepCopy() *KubeAPIServerConfig { - if in == nil { - return nil - } - out := new(KubeAPIServerConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *KubeAPIServerConfig) 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 *KubeAPIServerImagePolicyConfig) DeepCopyInto(out *KubeAPIServerImagePolicyConfig) { - *out = *in - if in.ExternalRegistryHostnames != nil { - in, out := &in.ExternalRegistryHostnames, &out.ExternalRegistryHostnames - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeAPIServerImagePolicyConfig. -func (in *KubeAPIServerImagePolicyConfig) DeepCopy() *KubeAPIServerImagePolicyConfig { - if in == nil { - return nil - } - out := new(KubeAPIServerImagePolicyConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KubeAPIServerProjectConfig) DeepCopyInto(out *KubeAPIServerProjectConfig) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeAPIServerProjectConfig. -func (in *KubeAPIServerProjectConfig) DeepCopy() *KubeAPIServerProjectConfig { - if in == nil { - return nil - } - out := new(KubeAPIServerProjectConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KubeControllerManagerConfig) DeepCopyInto(out *KubeControllerManagerConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ServiceServingCert = in.ServiceServingCert - out.ProjectConfig = in.ProjectConfig - if in.ExtendedArguments != nil { - in, out := &in.ExtendedArguments, &out.ExtendedArguments - *out = make(map[string]Arguments, len(*in)) - for key, val := range *in { - var outVal []string - if val == nil { - (*out)[key] = nil - } else { - in, out := &val, &outVal - *out = make(Arguments, len(*in)) - copy(*out, *in) - } - (*out)[key] = outVal - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeControllerManagerConfig. -func (in *KubeControllerManagerConfig) DeepCopy() *KubeControllerManagerConfig { - if in == nil { - return nil - } - out := new(KubeControllerManagerConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *KubeControllerManagerConfig) 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 *KubeControllerManagerProjectConfig) DeepCopyInto(out *KubeControllerManagerProjectConfig) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeControllerManagerProjectConfig. -func (in *KubeControllerManagerProjectConfig) DeepCopy() *KubeControllerManagerProjectConfig { - if in == nil { - return nil - } - out := new(KubeControllerManagerProjectConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KubeletConnectionInfo) DeepCopyInto(out *KubeletConnectionInfo) { - *out = *in - out.CertInfo = in.CertInfo - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConnectionInfo. -func (in *KubeletConnectionInfo) DeepCopy() *KubeletConnectionInfo { - if in == nil { - return nil - } - out := new(KubeletConnectionInfo) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MasterAuthConfig) DeepCopyInto(out *MasterAuthConfig) { - *out = *in - if in.RequestHeader != nil { - in, out := &in.RequestHeader, &out.RequestHeader - *out = new(RequestHeaderAuthenticationOptions) - (*in).DeepCopyInto(*out) - } - if in.WebhookTokenAuthenticators != nil { - in, out := &in.WebhookTokenAuthenticators, &out.WebhookTokenAuthenticators - *out = make([]WebhookTokenAuthenticator, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MasterAuthConfig. -func (in *MasterAuthConfig) DeepCopy() *MasterAuthConfig { - if in == nil { - return nil - } - out := new(MasterAuthConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RequestHeaderAuthenticationOptions) DeepCopyInto(out *RequestHeaderAuthenticationOptions) { - *out = *in - if in.ClientCommonNames != nil { - in, out := &in.ClientCommonNames, &out.ClientCommonNames - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.UsernameHeaders != nil { - in, out := &in.UsernameHeaders, &out.UsernameHeaders - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.GroupHeaders != nil { - in, out := &in.GroupHeaders, &out.GroupHeaders - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.ExtraHeaderPrefixes != nil { - in, out := &in.ExtraHeaderPrefixes, &out.ExtraHeaderPrefixes - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestHeaderAuthenticationOptions. -func (in *RequestHeaderAuthenticationOptions) DeepCopy() *RequestHeaderAuthenticationOptions { - if in == nil { - return nil - } - out := new(RequestHeaderAuthenticationOptions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ServiceServingCert) DeepCopyInto(out *ServiceServingCert) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceServingCert. -func (in *ServiceServingCert) DeepCopy() *ServiceServingCert { - if in == nil { - return nil - } - out := new(ServiceServingCert) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *UserAgentDenyRule) DeepCopyInto(out *UserAgentDenyRule) { - *out = *in - in.UserAgentMatchRule.DeepCopyInto(&out.UserAgentMatchRule) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAgentDenyRule. -func (in *UserAgentDenyRule) DeepCopy() *UserAgentDenyRule { - if in == nil { - return nil - } - out := new(UserAgentDenyRule) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *UserAgentMatchRule) DeepCopyInto(out *UserAgentMatchRule) { - *out = *in - if in.HTTPVerbs != nil { - in, out := &in.HTTPVerbs, &out.HTTPVerbs - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAgentMatchRule. -func (in *UserAgentMatchRule) DeepCopy() *UserAgentMatchRule { - if in == nil { - return nil - } - out := new(UserAgentMatchRule) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *UserAgentMatchingConfig) DeepCopyInto(out *UserAgentMatchingConfig) { - *out = *in - if in.RequiredClients != nil { - in, out := &in.RequiredClients, &out.RequiredClients - *out = make([]UserAgentMatchRule, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.DeniedClients != nil { - in, out := &in.DeniedClients, &out.DeniedClients - *out = make([]UserAgentDenyRule, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAgentMatchingConfig. -func (in *UserAgentMatchingConfig) DeepCopy() *UserAgentMatchingConfig { - if in == nil { - return nil - } - out := new(UserAgentMatchingConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WebhookTokenAuthenticator) DeepCopyInto(out *WebhookTokenAuthenticator) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhookTokenAuthenticator. -func (in *WebhookTokenAuthenticator) DeepCopy() *WebhookTokenAuthenticator { - if in == nil { - return nil - } - out := new(WebhookTokenAuthenticator) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/github.com/openshift/api/kubecontrolplane/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/kubecontrolplane/v1/zz_generated.swagger_doc_generated.go deleted file mode 100644 index 7a0cbada2ea77..0000000000000 --- a/vendor/github.com/openshift/api/kubecontrolplane/v1/zz_generated.swagger_doc_generated.go +++ /dev/null @@ -1,159 +0,0 @@ -package v1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE -var map_AggregatorConfig = map[string]string{ - "": "AggregatorConfig holds information required to make the aggregator function.", - "proxyClientInfo": "proxyClientInfo specifies the client cert/key to use when proxying to aggregated API servers", -} - -func (AggregatorConfig) SwaggerDoc() map[string]string { - return map_AggregatorConfig -} - -var map_KubeAPIServerConfig = map[string]string{ - "authConfig": "authConfig configures authentication options in addition to the standard oauth token and client certificate authenticators", - "aggregatorConfig": "aggregatorConfig has options for configuring the aggregator component of the API server.", - "kubeletClientInfo": "kubeletClientInfo contains information about how to connect to kubelets", - "servicesSubnet": "servicesSubnet is the subnet to use for assigning service IPs", - "servicesNodePortRange": "servicesNodePortRange is the range to use for assigning service public ports on a host.", - "consolePublicURL": "consolePublicURL is an optional URL to provide a redirect from the kube-apiserver to the webconsole", - "userAgentMatchingConfig": "UserAgentMatchingConfig controls how API calls from *voluntarily* identifying clients will be handled. THIS DOES NOT DEFEND AGAINST MALICIOUS CLIENTS!", - "imagePolicyConfig": "imagePolicyConfig feeds the image policy admission plugin", - "projectConfig": "projectConfig feeds an admission plugin", - "serviceAccountPublicKeyFiles": "serviceAccountPublicKeyFiles is a list of files, each containing a PEM-encoded public RSA key. (If any file contains a private key, the public portion of the key is used) The list of public keys is used to verify presented service account tokens. Each key is tried in order until the list is exhausted or verification succeeds. If no keys are specified, no service account authentication will be available.", - "oauthConfig": "oauthConfig, if present start the /oauth endpoint in this process", -} - -func (KubeAPIServerConfig) SwaggerDoc() map[string]string { - return map_KubeAPIServerConfig -} - -var map_KubeAPIServerImagePolicyConfig = map[string]string{ - "internalRegistryHostname": "internalRegistryHostname sets the hostname for the default internal image registry. The value must be in \"hostname[:port]\" format. For backward compatibility, users can still use OPENSHIFT_DEFAULT_REGISTRY environment variable but this setting overrides the environment variable.", - "externalRegistryHostnames": "externalRegistryHostnames provides the hostnames for the default external image registry. The external hostname should be set only when the image registry is exposed externally. The first value is used in 'publicDockerImageRepository' field in ImageStreams. The value must be in \"hostname[:port]\" format.", -} - -func (KubeAPIServerImagePolicyConfig) SwaggerDoc() map[string]string { - return map_KubeAPIServerImagePolicyConfig -} - -var map_KubeAPIServerProjectConfig = map[string]string{ - "defaultNodeSelector": "defaultNodeSelector holds default project node label selector", -} - -func (KubeAPIServerProjectConfig) SwaggerDoc() map[string]string { - return map_KubeAPIServerProjectConfig -} - -var map_KubeControllerManagerConfig = map[string]string{ - "serviceServingCert": "serviceServingCert provides support for the old alpha service serving cert signer CA bundle", - "projectConfig": "projectConfig is an optimization for the daemonset controller", - "extendedArguments": "extendedArguments is used to configure the kube-controller-manager", -} - -func (KubeControllerManagerConfig) SwaggerDoc() map[string]string { - return map_KubeControllerManagerConfig -} - -var map_KubeControllerManagerProjectConfig = map[string]string{ - "defaultNodeSelector": "defaultNodeSelector holds default project node label selector", -} - -func (KubeControllerManagerProjectConfig) SwaggerDoc() map[string]string { - return map_KubeControllerManagerProjectConfig -} - -var map_KubeletConnectionInfo = map[string]string{ - "": "KubeletConnectionInfo holds information necessary for connecting to a kubelet", - "port": "port is the port to connect to kubelets on", - "ca": "ca is the CA for verifying TLS connections to kubelets", -} - -func (KubeletConnectionInfo) SwaggerDoc() map[string]string { - return map_KubeletConnectionInfo -} - -var map_MasterAuthConfig = map[string]string{ - "": "MasterAuthConfig configures authentication options in addition to the standard oauth token and client certificate authenticators", - "requestHeader": "requestHeader holds options for setting up a front proxy against the the API. It is optional.", - "webhookTokenAuthenticators": "webhookTokenAuthenticators, if present configures remote token reviewers", - "oauthMetadataFile": "oauthMetadataFile is a path to a file containing the discovery endpoint for OAuth 2.0 Authorization Server Metadata for an external OAuth server. See IETF Draft: // https://tools.ietf.org/html/draft-ietf-oauth-discovery-04#section-2 This option is mutually exclusive with OAuthConfig", -} - -func (MasterAuthConfig) SwaggerDoc() map[string]string { - return map_MasterAuthConfig -} - -var map_RequestHeaderAuthenticationOptions = map[string]string{ - "": "RequestHeaderAuthenticationOptions provides options for setting up a front proxy against the entire API instead of against the /oauth endpoint.", - "clientCA": "clientCA is a file with the trusted signer certs. It is required.", - "clientCommonNames": "clientCommonNames is a required list of common names to require a match from.", - "usernameHeaders": "usernameHeaders is the list of headers to check for user information. First hit wins.", - "groupHeaders": "groupHeaders is the set of headers to check for group information. All are unioned.", - "extraHeaderPrefixes": "extraHeaderPrefixes is the set of request header prefixes to inspect for user extra. X-Remote-Extra- is suggested.", -} - -func (RequestHeaderAuthenticationOptions) SwaggerDoc() map[string]string { - return map_RequestHeaderAuthenticationOptions -} - -var map_ServiceServingCert = map[string]string{ - "": "ServiceServingCert holds configuration for service serving cert signer which creates cert/key pairs for pods fulfilling a service to serve with.", - "certFile": "CertFile is a file containing a PEM-encoded certificate", -} - -func (ServiceServingCert) SwaggerDoc() map[string]string { - return map_ServiceServingCert -} - -var map_UserAgentDenyRule = map[string]string{ - "": "UserAgentDenyRule adds a rejection message that can be used to help a user figure out how to get an approved client", - "rejectionMessage": "RejectionMessage is the message shown when rejecting a client. If it is not a set, the default message is used.", -} - -func (UserAgentDenyRule) SwaggerDoc() map[string]string { - return map_UserAgentDenyRule -} - -var map_UserAgentMatchRule = map[string]string{ - "": "UserAgentMatchRule describes how to match a given request based on User-Agent and HTTPVerb", - "regex": "regex is a regex that is checked against the User-Agent. Known variants of oc clients 1. oc accessing kube resources: oc/v1.2.0 (linux/amd64) kubernetes/bc4550d 2. oc accessing openshift resources: oc/v1.1.3 (linux/amd64) openshift/b348c2f 3. openshift kubectl accessing kube resources: openshift/v1.2.0 (linux/amd64) kubernetes/bc4550d 4. openshift kubectl accessing openshift resources: openshift/v1.1.3 (linux/amd64) openshift/b348c2f 5. oadm accessing kube resources: oadm/v1.2.0 (linux/amd64) kubernetes/bc4550d 6. oadm accessing openshift resources: oadm/v1.1.3 (linux/amd64) openshift/b348c2f 7. openshift cli accessing kube resources: openshift/v1.2.0 (linux/amd64) kubernetes/bc4550d 8. openshift cli accessing openshift resources: openshift/v1.1.3 (linux/amd64) openshift/b348c2f", - "httpVerbs": "httpVerbs specifies which HTTP verbs should be matched. An empty list means \"match all verbs\".", -} - -func (UserAgentMatchRule) SwaggerDoc() map[string]string { - return map_UserAgentMatchRule -} - -var map_UserAgentMatchingConfig = map[string]string{ - "": "UserAgentMatchingConfig controls how API calls from *voluntarily* identifying clients will be handled. THIS DOES NOT DEFEND AGAINST MALICIOUS CLIENTS!", - "requiredClients": "requiredClients if this list is non-empty, then a User-Agent must match one of the UserAgentRegexes to be allowed", - "deniedClients": "deniedClients if this list is non-empty, then a User-Agent must not match any of the UserAgentRegexes", - "defaultRejectionMessage": "defaultRejectionMessage is the message shown when rejecting a client. If it is not a set, a generic message is given.", -} - -func (UserAgentMatchingConfig) SwaggerDoc() map[string]string { - return map_UserAgentMatchingConfig -} - -var map_WebhookTokenAuthenticator = map[string]string{ - "": "WebhookTokenAuthenticators holds the necessary configuation options for external token authenticators", - "configFile": "configFile is a path to a Kubeconfig file with the webhook configuration", - "cacheTTL": "cacheTTL indicates how long an authentication result should be cached. It takes a valid time duration string (e.g. \"5m\"). If empty, you get a default timeout of 2 minutes. If zero (e.g. \"0m\"), caching is disabled", -} - -func (WebhookTokenAuthenticator) SwaggerDoc() map[string]string { - return map_WebhookTokenAuthenticator -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/github.com/openshift/api/network/v1/001-clusternetwork-crd.yaml b/vendor/github.com/openshift/api/network/v1/001-clusternetwork-crd.yaml deleted file mode 100644 index b064daade51e7..0000000000000 --- a/vendor/github.com/openshift/api/network/v1/001-clusternetwork-crd.yaml +++ /dev/null @@ -1,134 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - creationTimestamp: null - name: clusternetworks.network.openshift.io -spec: - group: network.openshift.io - names: - kind: ClusterNetwork - listKind: ClusterNetworkList - plural: clusternetworks - singular: clusternetwork - scope: Cluster - validation: - # As compared to ValidateClusterNetwork, this does not validate that: - # - the hostSubnetLengths are valid for their CIDRs - # - the cluster/service networks do not overlap - # - .network and .hostsubnetlength are set if name == 'default' - # - .network and .hostsubnetlength are either unset, or equal to - # .clusterNetworks[0].CIDR and .clusterNetworks[0].hostSubnetLength - openAPIV3Schema: - description: ClusterNetwork describes the cluster network. There is normally - only one object of this type, named "default", which is created by the SDN - network plugin based on the master configuration when the cluster is brought - up for the first time. - type: object - required: - - clusterNetworks - - serviceNetwork - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - clusterNetworks: - description: ClusterNetworks is a list of ClusterNetwork objects that defines - the global overlay network's L3 space by specifying a set of CIDR and - netmasks that the SDN can allocate addresses from. - type: array - items: - description: ClusterNetworkEntry defines an individual cluster network. - The CIDRs cannot overlap with other cluster network CIDRs, CIDRs reserved - for external ips, CIDRs reserved for service networks, and CIDRs reserved - for ingress ips. - type: object - required: - - CIDR - - hostSubnetLength - properties: - CIDR: - description: CIDR defines the total range of a cluster networks address - space. - type: string - pattern: ^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$ - hostSubnetLength: - description: HostSubnetLength is the number of bits of the accompanying - CIDR address to allocate to each node. eg, 8 would mean that each - node would have a /24 slice of the overlay network for its pods. - type: integer - format: int32 - maximum: 30 - minimum: 2 - hostsubnetlength: - description: HostSubnetLength is the number of bits of network to allocate - to each node. eg, 8 would mean that each node would have a /24 slice of - the overlay network for its pods - type: integer - format: int32 - maximum: 30 - minimum: 2 - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - mtu: - description: MTU is the MTU for the overlay network. This should be 50 less - than the MTU of the network connecting the nodes. It is normally autodetected - by the cluster network operator. - type: integer - format: int32 - maximum: 65536 - minimum: 576 - network: - description: Network is a CIDR string specifying the global overlay network's - L3 space - type: string - pattern: ^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$ - pluginName: - description: PluginName is the name of the network plugin being used - type: string - serviceNetwork: - description: ServiceNetwork is the CIDR range that Service IP addresses - are allocated from - type: string - pattern: ^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$ - vxlanPort: - description: VXLANPort sets the VXLAN destination port used by the cluster. - It is set by the master configuration file on startup and cannot be edited - manually. Valid values for VXLANPort are integers 1-65535 inclusive and - if unset defaults to 4789. Changing VXLANPort allows users to resolve - issues between openshift SDN and other software trying to use the same - VXLAN destination port. - type: integer - format: int32 - maximum: 65535 - minimum: 1 - additionalPrinterColumns: - - name: Cluster Network - type: string - description: The primary cluster network CIDR - JSONPath: .network - - name: Service Network - type: string - description: The service network CIDR - JSONPath: .serviceNetwork - - name: Plugin Name - type: string - description: The OpenShift SDN network plug-in in use - JSONPath: .pluginName - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/vendor/github.com/openshift/api/network/v1/002-hostsubnet-crd.yaml b/vendor/github.com/openshift/api/network/v1/002-hostsubnet-crd.yaml deleted file mode 100644 index 9b8af49147a51..0000000000000 --- a/vendor/github.com/openshift/api/network/v1/002-hostsubnet-crd.yaml +++ /dev/null @@ -1,111 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - creationTimestamp: null - name: hostsubnets.network.openshift.io -spec: - group: network.openshift.io - names: - kind: HostSubnet - listKind: HostSubnetList - plural: hostsubnets - singular: hostsubnet - scope: Cluster - validation: - # As compared to ValidateHostSubnet, this does not validate that: - # - .host == .name - # - either .subnet is set or the assign-subnet annotation is present - # As compared to ValidateHostSubnetUpdate, this does not validate that: - # - .subnet is not changed on an existing object - openAPIV3Schema: - description: HostSubnet describes the container subnet network on a node. The - HostSubnet object must have the same name as the Node object it corresponds - to. - type: object - required: - - host - - hostIP - - subnet - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - egressCIDRs: - description: EgressCIDRs is the list of CIDR ranges available for automatically - assigning egress IPs to this node from. If this field is set then EgressIPs - should be treated as read-only. - type: array - items: - description: HostSubnetEgressCIDR represents one egress CIDR from which - to assign IP addresses for this node represented by the HostSubnet - type: string - pattern: ^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$ - egressIPs: - description: EgressIPs is the list of automatic egress IP addresses currently - hosted by this node. If EgressCIDRs is empty, this can be set by hand; - if EgressCIDRs is set then the master will overwrite the value here with - its own allocation of egress IPs. - type: array - items: - description: HostSubnetEgressIP represents one egress IP address currently - hosted on the node represented by HostSubnet - type: string - pattern: ^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$ - host: - description: Host is the name of the node. (This is the same as the object's - name, but both fields must be set.) - type: string - pattern: ^[a-z0-9.-]+$ - hostIP: - description: HostIP is the IP address to be used as a VTEP by other nodes - in the overlay network - type: string - pattern: ^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$ - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - subnet: - description: Subnet is the CIDR range of the overlay network assigned to - the node for its pods - type: string - pattern: ^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$ - additionalPrinterColumns: - - name: Host - type: string - description: The name of the node - JSONPath: .host - - name: Host IP - type: string - description: The IP address to be used as a VTEP by other nodes in the overlay - network - JSONPath: .hostIP - - name: Subnet - type: string - description: The CIDR range of the overlay network assigned to the node for its - pods - JSONPath: .subnet - - name: Egress CIDRs - type: string - description: The network egress CIDRs - JSONPath: .egressCIDRs - - name: Egress IPs - type: string - description: The network egress IP addresses - JSONPath: .egressIPs - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/vendor/github.com/openshift/api/network/v1/003-netnamespace-crd.yaml b/vendor/github.com/openshift/api/network/v1/003-netnamespace-crd.yaml deleted file mode 100644 index 80fa3b05f528d..0000000000000 --- a/vendor/github.com/openshift/api/network/v1/003-netnamespace-crd.yaml +++ /dev/null @@ -1,83 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - creationTimestamp: null - name: netnamespaces.network.openshift.io -spec: - group: network.openshift.io - names: - kind: NetNamespace - listKind: NetNamespaceList - plural: netnamespaces - singular: netnamespace - scope: Cluster - validation: - # As compared to ValidateNetNamespace, this does not validate that: - # - .netname == .name - # - .netid is not 1-9 - openAPIV3Schema: - description: NetNamespace describes a single isolated network. When using the - redhat/openshift-ovs-multitenant plugin, every Namespace will have a corresponding - NetNamespace object with the same name. (When using redhat/openshift-ovs-subnet, - NetNamespaces are not used.) - type: object - required: - - netid - - netname - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - egressIPs: - description: EgressIPs is a list of reserved IPs that will be used as the - source for external traffic coming from pods in this namespace. (If empty, - external traffic will be masqueraded to Node IPs.) - type: array - items: - description: NetNamespaceEgressIP is a single egress IP out of a list - of reserved IPs used as source of external traffic coming from pods - in this namespace - type: string - pattern: ^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$ - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - netid: - description: NetID is the network identifier of the network namespace assigned - to each overlay network packet. This can be manipulated with the "oc adm - pod-network" commands. - type: integer - format: int32 - maximum: 16777215 - minimum: 0 - netname: - description: NetName is the name of the network namespace. (This is the - same as the object's name, but both fields must be set.) - type: string - pattern: ^[a-z0-9.-]+$ - additionalPrinterColumns: - - name: NetID - type: integer - description: The network identifier of the network namespace - JSONPath: .netid - - name: Egress IPs - type: string - description: The network egress IP addresses - JSONPath: .egressIPs - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/vendor/github.com/openshift/api/network/v1/004-egressnetworkpolicy-crd.yaml b/vendor/github.com/openshift/api/network/v1/004-egressnetworkpolicy-crd.yaml deleted file mode 100644 index 16e84c1040e82..0000000000000 --- a/vendor/github.com/openshift/api/network/v1/004-egressnetworkpolicy-crd.yaml +++ /dev/null @@ -1,88 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - creationTimestamp: null - name: egressnetworkpolicies.network.openshift.io -spec: - group: network.openshift.io - names: - kind: EgressNetworkPolicy - listKind: EgressNetworkPolicyList - plural: egressnetworkpolicies - singular: egressnetworkpolicy - scope: Namespaced - validation: - # This should be mostly equivalent to ValidateEgressNetworkPolicy - openAPIV3Schema: - description: EgressNetworkPolicy describes the current egress network policy - for a Namespace. When using the 'redhat/openshift-ovs-multitenant' network - plugin, traffic from a pod to an IP address outside the cluster will be checked - against each EgressNetworkPolicyRule in the pod's namespace's EgressNetworkPolicy, - in order. If no rule matches (or no EgressNetworkPolicy is present) then the - traffic will be allowed by default. - type: object - required: - - spec - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: spec is the specification of the current egress network policy - type: object - required: - - egress - properties: - egress: - description: egress contains the list of egress policy rules - type: array - items: - description: EgressNetworkPolicyRule contains a single egress network - policy rule - type: object - required: - - to - - type - properties: - to: - description: to is the target that traffic is allowed/denied to - type: object - properties: - cidrSelector: - description: CIDRSelector is the CIDR range to allow/deny - traffic to. If this is set, dnsName must be unset Ideally - we would have liked to use the cidr openapi format for this - property. But openshift-sdn only supports v4 while specifying - the cidr format allows both v4 and v6 cidrs We are therefore - using a regex pattern to validate instead. - type: string - pattern: ^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$ - dnsName: - description: DNSName is the domain name to allow/deny traffic - to. If this is set, cidrSelector must be unset - type: string - pattern: ^([A-Za-z0-9-]+\.)*[A-Za-z0-9-]+\.?$ - type: - description: type marks this as an "Allow" or "Deny" rule - type: string - pattern: ^Allow|Deny$ - version: v1 - versions: - - name: v1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/vendor/github.com/openshift/api/network/v1/constants.go b/vendor/github.com/openshift/api/network/v1/constants.go deleted file mode 100644 index 54c06f331909e..0000000000000 --- a/vendor/github.com/openshift/api/network/v1/constants.go +++ /dev/null @@ -1,17 +0,0 @@ -package v1 - -const ( - // Pod annotations - AssignMacvlanAnnotation = "pod.network.openshift.io/assign-macvlan" - - // HostSubnet annotations. (Note: should be "hostsubnet.network.openshift.io/", but the incorrect name is now part of the API.) - AssignHostSubnetAnnotation = "pod.network.openshift.io/assign-subnet" - FixedVNIDHostAnnotation = "pod.network.openshift.io/fixed-vnid-host" - NodeUIDAnnotation = "pod.network.openshift.io/node-uid" - - // NetNamespace annotations - MulticastEnabledAnnotation = "netnamespace.network.openshift.io/multicast-enabled" - - // ChangePodNetworkAnnotation is an annotation on NetNamespace to request change of pod network - ChangePodNetworkAnnotation string = "pod.network.openshift.io/multitenant.change-network" -) diff --git a/vendor/github.com/openshift/api/network/v1/doc.go b/vendor/github.com/openshift/api/network/v1/doc.go deleted file mode 100644 index 2816420d9688c..0000000000000 --- a/vendor/github.com/openshift/api/network/v1/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=github.com/openshift/origin/pkg/network/apis/network -// +k8s:defaulter-gen=TypeMeta -// +k8s:openapi-gen=true - -// +groupName=network.openshift.io -// Package v1 is the v1 version of the API. -package v1 diff --git a/vendor/github.com/openshift/api/network/v1/generated.pb.go b/vendor/github.com/openshift/api/network/v1/generated.pb.go deleted file mode 100644 index 466b342c41191..0000000000000 --- a/vendor/github.com/openshift/api/network/v1/generated.pb.go +++ /dev/null @@ -1,3222 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: github.com/openshift/api/network/v1/generated.proto - -package v1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *ClusterNetwork) Reset() { *m = ClusterNetwork{} } -func (*ClusterNetwork) ProtoMessage() {} -func (*ClusterNetwork) Descriptor() ([]byte, []int) { - return fileDescriptor_38d1cb27735fa5d9, []int{0} -} -func (m *ClusterNetwork) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterNetwork) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ClusterNetwork) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterNetwork.Merge(m, src) -} -func (m *ClusterNetwork) XXX_Size() int { - return m.Size() -} -func (m *ClusterNetwork) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterNetwork.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterNetwork proto.InternalMessageInfo - -func (m *ClusterNetworkEntry) Reset() { *m = ClusterNetworkEntry{} } -func (*ClusterNetworkEntry) ProtoMessage() {} -func (*ClusterNetworkEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_38d1cb27735fa5d9, []int{1} -} -func (m *ClusterNetworkEntry) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterNetworkEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ClusterNetworkEntry) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterNetworkEntry.Merge(m, src) -} -func (m *ClusterNetworkEntry) XXX_Size() int { - return m.Size() -} -func (m *ClusterNetworkEntry) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterNetworkEntry.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterNetworkEntry proto.InternalMessageInfo - -func (m *ClusterNetworkList) Reset() { *m = ClusterNetworkList{} } -func (*ClusterNetworkList) ProtoMessage() {} -func (*ClusterNetworkList) Descriptor() ([]byte, []int) { - return fileDescriptor_38d1cb27735fa5d9, []int{2} -} -func (m *ClusterNetworkList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterNetworkList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ClusterNetworkList) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterNetworkList.Merge(m, src) -} -func (m *ClusterNetworkList) XXX_Size() int { - return m.Size() -} -func (m *ClusterNetworkList) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterNetworkList.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterNetworkList proto.InternalMessageInfo - -func (m *EgressNetworkPolicy) Reset() { *m = EgressNetworkPolicy{} } -func (*EgressNetworkPolicy) ProtoMessage() {} -func (*EgressNetworkPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_38d1cb27735fa5d9, []int{3} -} -func (m *EgressNetworkPolicy) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *EgressNetworkPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *EgressNetworkPolicy) XXX_Merge(src proto.Message) { - xxx_messageInfo_EgressNetworkPolicy.Merge(m, src) -} -func (m *EgressNetworkPolicy) XXX_Size() int { - return m.Size() -} -func (m *EgressNetworkPolicy) XXX_DiscardUnknown() { - xxx_messageInfo_EgressNetworkPolicy.DiscardUnknown(m) -} - -var xxx_messageInfo_EgressNetworkPolicy proto.InternalMessageInfo - -func (m *EgressNetworkPolicyList) Reset() { *m = EgressNetworkPolicyList{} } -func (*EgressNetworkPolicyList) ProtoMessage() {} -func (*EgressNetworkPolicyList) Descriptor() ([]byte, []int) { - return fileDescriptor_38d1cb27735fa5d9, []int{4} -} -func (m *EgressNetworkPolicyList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *EgressNetworkPolicyList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *EgressNetworkPolicyList) XXX_Merge(src proto.Message) { - xxx_messageInfo_EgressNetworkPolicyList.Merge(m, src) -} -func (m *EgressNetworkPolicyList) XXX_Size() int { - return m.Size() -} -func (m *EgressNetworkPolicyList) XXX_DiscardUnknown() { - xxx_messageInfo_EgressNetworkPolicyList.DiscardUnknown(m) -} - -var xxx_messageInfo_EgressNetworkPolicyList proto.InternalMessageInfo - -func (m *EgressNetworkPolicyPeer) Reset() { *m = EgressNetworkPolicyPeer{} } -func (*EgressNetworkPolicyPeer) ProtoMessage() {} -func (*EgressNetworkPolicyPeer) Descriptor() ([]byte, []int) { - return fileDescriptor_38d1cb27735fa5d9, []int{5} -} -func (m *EgressNetworkPolicyPeer) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *EgressNetworkPolicyPeer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *EgressNetworkPolicyPeer) XXX_Merge(src proto.Message) { - xxx_messageInfo_EgressNetworkPolicyPeer.Merge(m, src) -} -func (m *EgressNetworkPolicyPeer) XXX_Size() int { - return m.Size() -} -func (m *EgressNetworkPolicyPeer) XXX_DiscardUnknown() { - xxx_messageInfo_EgressNetworkPolicyPeer.DiscardUnknown(m) -} - -var xxx_messageInfo_EgressNetworkPolicyPeer proto.InternalMessageInfo - -func (m *EgressNetworkPolicyRule) Reset() { *m = EgressNetworkPolicyRule{} } -func (*EgressNetworkPolicyRule) ProtoMessage() {} -func (*EgressNetworkPolicyRule) Descriptor() ([]byte, []int) { - return fileDescriptor_38d1cb27735fa5d9, []int{6} -} -func (m *EgressNetworkPolicyRule) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *EgressNetworkPolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *EgressNetworkPolicyRule) XXX_Merge(src proto.Message) { - xxx_messageInfo_EgressNetworkPolicyRule.Merge(m, src) -} -func (m *EgressNetworkPolicyRule) XXX_Size() int { - return m.Size() -} -func (m *EgressNetworkPolicyRule) XXX_DiscardUnknown() { - xxx_messageInfo_EgressNetworkPolicyRule.DiscardUnknown(m) -} - -var xxx_messageInfo_EgressNetworkPolicyRule proto.InternalMessageInfo - -func (m *EgressNetworkPolicySpec) Reset() { *m = EgressNetworkPolicySpec{} } -func (*EgressNetworkPolicySpec) ProtoMessage() {} -func (*EgressNetworkPolicySpec) Descriptor() ([]byte, []int) { - return fileDescriptor_38d1cb27735fa5d9, []int{7} -} -func (m *EgressNetworkPolicySpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *EgressNetworkPolicySpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *EgressNetworkPolicySpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_EgressNetworkPolicySpec.Merge(m, src) -} -func (m *EgressNetworkPolicySpec) XXX_Size() int { - return m.Size() -} -func (m *EgressNetworkPolicySpec) XXX_DiscardUnknown() { - xxx_messageInfo_EgressNetworkPolicySpec.DiscardUnknown(m) -} - -var xxx_messageInfo_EgressNetworkPolicySpec proto.InternalMessageInfo - -func (m *HostSubnet) Reset() { *m = HostSubnet{} } -func (*HostSubnet) ProtoMessage() {} -func (*HostSubnet) Descriptor() ([]byte, []int) { - return fileDescriptor_38d1cb27735fa5d9, []int{8} -} -func (m *HostSubnet) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *HostSubnet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *HostSubnet) XXX_Merge(src proto.Message) { - xxx_messageInfo_HostSubnet.Merge(m, src) -} -func (m *HostSubnet) XXX_Size() int { - return m.Size() -} -func (m *HostSubnet) XXX_DiscardUnknown() { - xxx_messageInfo_HostSubnet.DiscardUnknown(m) -} - -var xxx_messageInfo_HostSubnet proto.InternalMessageInfo - -func (m *HostSubnetList) Reset() { *m = HostSubnetList{} } -func (*HostSubnetList) ProtoMessage() {} -func (*HostSubnetList) Descriptor() ([]byte, []int) { - return fileDescriptor_38d1cb27735fa5d9, []int{9} -} -func (m *HostSubnetList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *HostSubnetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *HostSubnetList) XXX_Merge(src proto.Message) { - xxx_messageInfo_HostSubnetList.Merge(m, src) -} -func (m *HostSubnetList) XXX_Size() int { - return m.Size() -} -func (m *HostSubnetList) XXX_DiscardUnknown() { - xxx_messageInfo_HostSubnetList.DiscardUnknown(m) -} - -var xxx_messageInfo_HostSubnetList proto.InternalMessageInfo - -func (m *NetNamespace) Reset() { *m = NetNamespace{} } -func (*NetNamespace) ProtoMessage() {} -func (*NetNamespace) Descriptor() ([]byte, []int) { - return fileDescriptor_38d1cb27735fa5d9, []int{10} -} -func (m *NetNamespace) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *NetNamespace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *NetNamespace) XXX_Merge(src proto.Message) { - xxx_messageInfo_NetNamespace.Merge(m, src) -} -func (m *NetNamespace) XXX_Size() int { - return m.Size() -} -func (m *NetNamespace) XXX_DiscardUnknown() { - xxx_messageInfo_NetNamespace.DiscardUnknown(m) -} - -var xxx_messageInfo_NetNamespace proto.InternalMessageInfo - -func (m *NetNamespaceList) Reset() { *m = NetNamespaceList{} } -func (*NetNamespaceList) ProtoMessage() {} -func (*NetNamespaceList) Descriptor() ([]byte, []int) { - return fileDescriptor_38d1cb27735fa5d9, []int{11} -} -func (m *NetNamespaceList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *NetNamespaceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *NetNamespaceList) XXX_Merge(src proto.Message) { - xxx_messageInfo_NetNamespaceList.Merge(m, src) -} -func (m *NetNamespaceList) XXX_Size() int { - return m.Size() -} -func (m *NetNamespaceList) XXX_DiscardUnknown() { - xxx_messageInfo_NetNamespaceList.DiscardUnknown(m) -} - -var xxx_messageInfo_NetNamespaceList proto.InternalMessageInfo - -func init() { - proto.RegisterType((*ClusterNetwork)(nil), "github.com.openshift.api.network.v1.ClusterNetwork") - proto.RegisterType((*ClusterNetworkEntry)(nil), "github.com.openshift.api.network.v1.ClusterNetworkEntry") - proto.RegisterType((*ClusterNetworkList)(nil), "github.com.openshift.api.network.v1.ClusterNetworkList") - proto.RegisterType((*EgressNetworkPolicy)(nil), "github.com.openshift.api.network.v1.EgressNetworkPolicy") - proto.RegisterType((*EgressNetworkPolicyList)(nil), "github.com.openshift.api.network.v1.EgressNetworkPolicyList") - proto.RegisterType((*EgressNetworkPolicyPeer)(nil), "github.com.openshift.api.network.v1.EgressNetworkPolicyPeer") - proto.RegisterType((*EgressNetworkPolicyRule)(nil), "github.com.openshift.api.network.v1.EgressNetworkPolicyRule") - proto.RegisterType((*EgressNetworkPolicySpec)(nil), "github.com.openshift.api.network.v1.EgressNetworkPolicySpec") - proto.RegisterType((*HostSubnet)(nil), "github.com.openshift.api.network.v1.HostSubnet") - proto.RegisterType((*HostSubnetList)(nil), "github.com.openshift.api.network.v1.HostSubnetList") - proto.RegisterType((*NetNamespace)(nil), "github.com.openshift.api.network.v1.NetNamespace") - proto.RegisterType((*NetNamespaceList)(nil), "github.com.openshift.api.network.v1.NetNamespaceList") -} - -func init() { - proto.RegisterFile("github.com/openshift/api/network/v1/generated.proto", fileDescriptor_38d1cb27735fa5d9) -} - -var fileDescriptor_38d1cb27735fa5d9 = []byte{ - // 995 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0x4f, 0x6f, 0xe3, 0x44, - 0x14, 0x8f, 0xf3, 0xa7, 0x6d, 0x26, 0x6d, 0x5a, 0xcd, 0x56, 0xac, 0x29, 0x52, 0x12, 0xb9, 0x02, - 0x82, 0x56, 0xd8, 0xa4, 0x8b, 0x50, 0x0f, 0x08, 0xb4, 0x6e, 0x2b, 0x6d, 0xa4, 0x6e, 0x88, 0x26, - 0x65, 0x55, 0x21, 0x40, 0xb8, 0xce, 0xac, 0x63, 0x9a, 0xd8, 0x96, 0x67, 0x12, 0x88, 0x10, 0x7f, - 0x2e, 0xdc, 0xf9, 0x00, 0x7c, 0x0c, 0x3e, 0x02, 0x87, 0x1e, 0x38, 0xec, 0x09, 0xf6, 0x14, 0x51, - 0x73, 0xe7, 0x03, 0xf4, 0x84, 0x66, 0x3c, 0x8e, 0xed, 0xac, 0x2b, 0xa2, 0x22, 0x72, 0x4a, 0xe6, - 0xfd, 0xde, 0xdf, 0xf9, 0xbd, 0xf7, 0xc6, 0xe0, 0xa1, 0x65, 0xd3, 0xc1, 0xf8, 0x42, 0x35, 0xdd, - 0x91, 0xe6, 0x7a, 0xd8, 0x21, 0x03, 0xfb, 0x19, 0xd5, 0x0c, 0xcf, 0xd6, 0x1c, 0x4c, 0xbf, 0x72, - 0xfd, 0x4b, 0x6d, 0xd2, 0xd2, 0x2c, 0xec, 0x60, 0xdf, 0xa0, 0xb8, 0xaf, 0x7a, 0xbe, 0x4b, 0x5d, - 0xb8, 0x1f, 0x1b, 0xa9, 0x73, 0x23, 0xd5, 0xf0, 0x6c, 0x55, 0x18, 0xa9, 0x93, 0xd6, 0xde, 0xdb, - 0x09, 0xcf, 0x96, 0x6b, 0xb9, 0x1a, 0xb7, 0xbd, 0x18, 0x3f, 0xe3, 0x27, 0x7e, 0xe0, 0xff, 0x42, - 0x9f, 0x7b, 0xef, 0x5e, 0x1e, 0x12, 0xd5, 0x76, 0x59, 0xe8, 0x91, 0x61, 0x0e, 0x6c, 0x07, 0xfb, - 0x53, 0xcd, 0xbb, 0xb4, 0x98, 0x80, 0x68, 0x23, 0x4c, 0x8d, 0x8c, 0x4c, 0xf6, 0xde, 0xbb, 0xcd, - 0xca, 0x1f, 0x3b, 0xd4, 0x1e, 0x61, 0x8d, 0x98, 0x03, 0x3c, 0x32, 0x16, 0xed, 0x94, 0x9f, 0x8b, - 0xa0, 0x7a, 0x34, 0x1c, 0x13, 0x8a, 0xfd, 0x4e, 0x98, 0x32, 0xfc, 0x02, 0x6c, 0xb0, 0x28, 0x7d, - 0x83, 0x1a, 0xb2, 0xd4, 0x90, 0x9a, 0x95, 0x83, 0x77, 0xd4, 0xd0, 0xbb, 0x9a, 0xf4, 0xae, 0x7a, - 0x97, 0x16, 0x13, 0x10, 0x95, 0x69, 0xab, 0x93, 0x96, 0xfa, 0xd1, 0xc5, 0x97, 0xd8, 0xa4, 0x4f, - 0x30, 0x35, 0x74, 0x78, 0x35, 0xab, 0xe7, 0x82, 0x59, 0x1d, 0xc4, 0x32, 0x34, 0xf7, 0x0a, 0xdf, - 0x02, 0xeb, 0xe2, 0x7e, 0xe4, 0x7c, 0x43, 0x6a, 0x96, 0xf5, 0x6d, 0xa1, 0xbe, 0x2e, 0x72, 0x40, - 0x11, 0x0e, 0x8f, 0xc1, 0xce, 0xc0, 0x25, 0x94, 0x8c, 0x2f, 0x1c, 0x4c, 0x87, 0xd8, 0xb1, 0xe8, - 0x40, 0x2e, 0x34, 0xa4, 0xe6, 0x96, 0x2e, 0x0b, 0x9b, 0x9d, 0xc7, 0x2e, 0xa1, 0x3d, 0x8e, 0x9f, - 0x72, 0x1c, 0xbd, 0x64, 0x01, 0x3f, 0x00, 0x55, 0x82, 0xfd, 0x89, 0x6d, 0x62, 0x11, 0x40, 0x2e, - 0xf2, 0xb8, 0xaf, 0x08, 0x1f, 0xd5, 0x5e, 0x0a, 0x45, 0x0b, 0xda, 0xf0, 0x00, 0x00, 0x6f, 0x38, - 0xb6, 0x6c, 0xa7, 0x63, 0x8c, 0xb0, 0x5c, 0xe2, 0xb6, 0xf3, 0x12, 0xbb, 0x73, 0x04, 0x25, 0xb4, - 0xe0, 0x37, 0x60, 0xdb, 0x4c, 0x5d, 0x2c, 0x91, 0xd7, 0x1a, 0x85, 0x66, 0xe5, 0xe0, 0x50, 0x5d, - 0xa2, 0x6b, 0xd4, 0x34, 0x29, 0x27, 0x0e, 0xf5, 0xa7, 0xfa, 0x7d, 0x11, 0x72, 0x3b, 0x0d, 0x12, - 0xb4, 0x18, 0x09, 0x3e, 0x00, 0xe5, 0xc9, 0xd7, 0x43, 0xc3, 0xe9, 0xba, 0x3e, 0x95, 0xd7, 0xf9, - 0x7d, 0x6d, 0x05, 0xb3, 0x7a, 0xf9, 0xe9, 0xf9, 0xe9, 0xa3, 0x0e, 0x13, 0xa2, 0x18, 0x87, 0xaf, - 0x82, 0xc2, 0x88, 0x8e, 0xe5, 0x0d, 0xae, 0xb6, 0x1e, 0xcc, 0xea, 0x85, 0x27, 0x67, 0x1f, 0x23, - 0x26, 0x53, 0xbe, 0x05, 0xf7, 0x32, 0x12, 0x81, 0x0d, 0x50, 0x34, 0xed, 0xbe, 0xcf, 0xdb, 0xa3, - 0xac, 0x6f, 0x8a, 0xb4, 0x8a, 0x47, 0xed, 0x63, 0x84, 0x38, 0x12, 0xf1, 0x96, 0xe4, 0x85, 0x73, - 0xfd, 0xaf, 0xbc, 0x25, 0x25, 0xca, 0x6f, 0x12, 0x80, 0xe9, 0xf8, 0xa7, 0x36, 0xa1, 0xf0, 0xd3, - 0x97, 0x3a, 0x54, 0x5d, 0xae, 0x43, 0x99, 0x35, 0xef, 0xcf, 0x1d, 0x91, 0xc4, 0x46, 0x24, 0x49, - 0x74, 0xe7, 0x39, 0x28, 0xd9, 0x14, 0x8f, 0x88, 0x9c, 0xe7, 0x74, 0x3d, 0xbc, 0x03, 0x5d, 0xfa, - 0x96, 0xf0, 0x5f, 0x6a, 0x33, 0x4f, 0x28, 0x74, 0xa8, 0xfc, 0x21, 0x81, 0x7b, 0x27, 0x96, 0x8f, - 0x09, 0x11, 0x7a, 0x5d, 0x77, 0x68, 0x9b, 0xd3, 0x15, 0x4c, 0xdc, 0xe7, 0xa0, 0x48, 0x3c, 0x6c, - 0x72, 0x0a, 0x2a, 0x07, 0xef, 0x2f, 0x55, 0x52, 0x46, 0xa6, 0x3d, 0x0f, 0x9b, 0x31, 0xdd, 0xec, - 0x84, 0xb8, 0x5f, 0xe5, 0x77, 0x09, 0xdc, 0xcf, 0xd0, 0x5f, 0x01, 0x5b, 0x9f, 0xa5, 0xd9, 0x3a, - 0xbc, 0x6b, 0x69, 0xb7, 0x50, 0xf6, 0x5d, 0x66, 0x5d, 0x5d, 0x8c, 0x7d, 0x78, 0x08, 0x36, 0x59, - 0xab, 0xf7, 0xf0, 0x10, 0x9b, 0xd4, 0x8d, 0x86, 0x61, 0x57, 0xb8, 0xd9, 0x64, 0xc3, 0x10, 0x61, - 0x28, 0xa5, 0xc9, 0xf6, 0x5f, 0xdf, 0x21, 0x7c, 0x97, 0x2c, 0xec, 0xbf, 0xe3, 0x4e, 0x8f, 0x2f, - 0x92, 0x08, 0x57, 0x7e, 0xc9, 0xbe, 0x58, 0x34, 0x1e, 0x62, 0xf8, 0x21, 0x28, 0xd2, 0xa9, 0x87, - 0x45, 0xe0, 0x07, 0x11, 0x2d, 0x67, 0x53, 0x0f, 0xdf, 0xcc, 0xea, 0xaf, 0xdd, 0x62, 0xc6, 0x60, - 0xc4, 0x0d, 0xe1, 0x39, 0xc8, 0x53, 0xf7, 0xbf, 0xf6, 0x04, 0xbb, 0x0b, 0x1d, 0x88, 0xe0, 0xf9, - 0x33, 0x17, 0xe5, 0xa9, 0xab, 0x7c, 0x9f, 0x99, 0x35, 0x6b, 0x18, 0xd8, 0x07, 0x6b, 0x98, 0x43, - 0xb2, 0xc4, 0x19, 0xbb, 0x73, 0x60, 0x56, 0x8c, 0x5e, 0x15, 0x81, 0xd7, 0x42, 0x05, 0x24, 0x7c, - 0x2b, 0x7f, 0xe7, 0x01, 0x88, 0x17, 0xcc, 0x0a, 0x26, 0xac, 0x01, 0x8a, 0x6c, 0x7d, 0x09, 0x42, - 0xe7, 0x33, 0xc2, 0x72, 0x40, 0x1c, 0x81, 0x6f, 0x80, 0x35, 0xf6, 0xdb, 0xee, 0xf2, 0x07, 0xac, - 0x1c, 0xa7, 0xfe, 0x98, 0x4b, 0x91, 0x40, 0x99, 0x5e, 0xf8, 0x78, 0x89, 0x47, 0x6a, 0xae, 0x17, - 0xd6, 0x82, 0x04, 0x0a, 0x1f, 0x81, 0x72, 0x58, 0x6c, 0xbb, 0x4b, 0xe4, 0x52, 0xa3, 0xd0, 0x2c, - 0xeb, 0xfb, 0x6c, 0xc7, 0x9f, 0x44, 0xc2, 0x9b, 0x59, 0x1d, 0xc6, 0x77, 0x10, 0x89, 0x51, 0x6c, - 0x05, 0xdb, 0xa0, 0x12, 0x1e, 0x58, 0xb3, 0x86, 0xef, 0x53, 0x59, 0x7f, 0x33, 0x98, 0xd5, 0x2b, - 0x27, 0xb1, 0xf8, 0x66, 0x56, 0xdf, 0x5d, 0x74, 0xc3, 0x37, 0x7d, 0xd2, 0x56, 0xf9, 0x55, 0x02, - 0xd5, 0xc4, 0x46, 0xff, 0xff, 0x07, 0xff, 0x2c, 0x3d, 0xf8, 0xda, 0x52, 0x6d, 0x14, 0x67, 0x78, - 0xcb, 0xbc, 0xff, 0x98, 0x07, 0x9b, 0x1d, 0x4c, 0xd9, 0xec, 0x11, 0xcf, 0x30, 0xf1, 0xca, 0xbe, - 0x86, 0x9c, 0x8c, 0x6d, 0x20, 0x12, 0x41, 0x11, 0x0e, 0xf7, 0x41, 0xc9, 0xc1, 0xd4, 0xee, 0x8b, - 0x4f, 0xa0, 0x79, 0x09, 0x1d, 0x4c, 0xdb, 0xc7, 0x28, 0xc4, 0xe0, 0x51, 0xb2, 0x2f, 0x8a, 0x9c, - 0xd2, 0xd7, 0x17, 0xfb, 0x62, 0x37, 0x59, 0x63, 0x46, 0x67, 0x28, 0x57, 0x12, 0xd8, 0x49, 0xea, - 0xac, 0x80, 0xd0, 0xa7, 0x69, 0x42, 0x5b, 0x4b, 0x11, 0x9a, 0xcc, 0x31, 0x9b, 0x52, 0xbd, 0x79, - 0x75, 0x5d, 0xcb, 0x3d, 0xbf, 0xae, 0xe5, 0x5e, 0x5c, 0xd7, 0x72, 0x3f, 0x04, 0x35, 0xe9, 0x2a, - 0xa8, 0x49, 0xcf, 0x83, 0x9a, 0xf4, 0x22, 0xa8, 0x49, 0x7f, 0x06, 0x35, 0xe9, 0xa7, 0xbf, 0x6a, - 0xb9, 0x4f, 0xf2, 0x93, 0xd6, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xc3, 0xa5, 0xdd, 0x7e, 0x04, - 0x0c, 0x00, 0x00, -} - -func (m *ClusterNetwork) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterNetwork) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ClusterNetwork) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.MTU != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.MTU)) - i-- - dAtA[i] = 0x40 - } - if m.VXLANPort != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.VXLANPort)) - i-- - dAtA[i] = 0x38 - } - if len(m.ClusterNetworks) > 0 { - for iNdEx := len(m.ClusterNetworks) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.ClusterNetworks[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - } - } - i -= len(m.PluginName) - copy(dAtA[i:], m.PluginName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.PluginName))) - i-- - dAtA[i] = 0x2a - i -= len(m.ServiceNetwork) - copy(dAtA[i:], m.ServiceNetwork) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceNetwork))) - i-- - dAtA[i] = 0x22 - i = encodeVarintGenerated(dAtA, i, uint64(m.HostSubnetLength)) - i-- - dAtA[i] = 0x18 - i -= len(m.Network) - copy(dAtA[i:], m.Network) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Network))) - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ClusterNetworkEntry) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterNetworkEntry) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ClusterNetworkEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i = encodeVarintGenerated(dAtA, i, uint64(m.HostSubnetLength)) - i-- - dAtA[i] = 0x10 - i -= len(m.CIDR) - copy(dAtA[i:], m.CIDR) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.CIDR))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ClusterNetworkList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterNetworkList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ClusterNetworkList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *EgressNetworkPolicy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *EgressNetworkPolicy) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *EgressNetworkPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *EgressNetworkPolicyList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *EgressNetworkPolicyList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *EgressNetworkPolicyList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *EgressNetworkPolicyPeer) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *EgressNetworkPolicyPeer) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *EgressNetworkPolicyPeer) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.DNSName) - copy(dAtA[i:], m.DNSName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DNSName))) - i-- - dAtA[i] = 0x12 - i -= len(m.CIDRSelector) - copy(dAtA[i:], m.CIDRSelector) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.CIDRSelector))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *EgressNetworkPolicyRule) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *EgressNetworkPolicyRule) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *EgressNetworkPolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.To.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *EgressNetworkPolicySpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *EgressNetworkPolicySpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *EgressNetworkPolicySpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Egress) > 0 { - for iNdEx := len(m.Egress) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Egress[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *HostSubnet) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *HostSubnet) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *HostSubnet) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.EgressCIDRs) > 0 { - for iNdEx := len(m.EgressCIDRs) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.EgressCIDRs[iNdEx]) - copy(dAtA[i:], m.EgressCIDRs[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.EgressCIDRs[iNdEx]))) - i-- - dAtA[i] = 0x32 - } - } - if len(m.EgressIPs) > 0 { - for iNdEx := len(m.EgressIPs) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.EgressIPs[iNdEx]) - copy(dAtA[i:], m.EgressIPs[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.EgressIPs[iNdEx]))) - i-- - dAtA[i] = 0x2a - } - } - i -= len(m.Subnet) - copy(dAtA[i:], m.Subnet) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Subnet))) - i-- - dAtA[i] = 0x22 - i -= len(m.HostIP) - copy(dAtA[i:], m.HostIP) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.HostIP))) - i-- - dAtA[i] = 0x1a - i -= len(m.Host) - copy(dAtA[i:], m.Host) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Host))) - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *HostSubnetList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *HostSubnetList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *HostSubnetList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *NetNamespace) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *NetNamespace) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *NetNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.EgressIPs) > 0 { - for iNdEx := len(m.EgressIPs) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.EgressIPs[iNdEx]) - copy(dAtA[i:], m.EgressIPs[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.EgressIPs[iNdEx]))) - i-- - dAtA[i] = 0x22 - } - } - i = encodeVarintGenerated(dAtA, i, uint64(m.NetID)) - i-- - dAtA[i] = 0x18 - i -= len(m.NetName) - copy(dAtA[i:], m.NetName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.NetName))) - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *NetNamespaceList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *NetNamespaceList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *NetNamespaceList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *ClusterNetwork) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Network) - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.HostSubnetLength)) - l = len(m.ServiceNetwork) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.PluginName) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.ClusterNetworks) > 0 { - for _, e := range m.ClusterNetworks { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if m.VXLANPort != nil { - n += 1 + sovGenerated(uint64(*m.VXLANPort)) - } - if m.MTU != nil { - n += 1 + sovGenerated(uint64(*m.MTU)) - } - return n -} - -func (m *ClusterNetworkEntry) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.CIDR) - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.HostSubnetLength)) - return n -} - -func (m *ClusterNetworkList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *EgressNetworkPolicy) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *EgressNetworkPolicyList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *EgressNetworkPolicyPeer) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.CIDRSelector) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.DNSName) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *EgressNetworkPolicyRule) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - l = m.To.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *EgressNetworkPolicySpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Egress) > 0 { - for _, e := range m.Egress { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *HostSubnet) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Host) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.HostIP) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Subnet) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.EgressIPs) > 0 { - for _, s := range m.EgressIPs { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.EgressCIDRs) > 0 { - for _, s := range m.EgressCIDRs { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *HostSubnetList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *NetNamespace) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.NetName) - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.NetID)) - if len(m.EgressIPs) > 0 { - for _, s := range m.EgressIPs { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *NetNamespaceList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *ClusterNetwork) String() string { - if this == nil { - return "nil" - } - repeatedStringForClusterNetworks := "[]ClusterNetworkEntry{" - for _, f := range this.ClusterNetworks { - repeatedStringForClusterNetworks += strings.Replace(strings.Replace(f.String(), "ClusterNetworkEntry", "ClusterNetworkEntry", 1), `&`, ``, 1) + "," - } - repeatedStringForClusterNetworks += "}" - s := strings.Join([]string{`&ClusterNetwork{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Network:` + fmt.Sprintf("%v", this.Network) + `,`, - `HostSubnetLength:` + fmt.Sprintf("%v", this.HostSubnetLength) + `,`, - `ServiceNetwork:` + fmt.Sprintf("%v", this.ServiceNetwork) + `,`, - `PluginName:` + fmt.Sprintf("%v", this.PluginName) + `,`, - `ClusterNetworks:` + repeatedStringForClusterNetworks + `,`, - `VXLANPort:` + valueToStringGenerated(this.VXLANPort) + `,`, - `MTU:` + valueToStringGenerated(this.MTU) + `,`, - `}`, - }, "") - return s -} -func (this *ClusterNetworkEntry) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ClusterNetworkEntry{`, - `CIDR:` + fmt.Sprintf("%v", this.CIDR) + `,`, - `HostSubnetLength:` + fmt.Sprintf("%v", this.HostSubnetLength) + `,`, - `}`, - }, "") - return s -} -func (this *ClusterNetworkList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]ClusterNetwork{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "ClusterNetwork", "ClusterNetwork", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&ClusterNetworkList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *EgressNetworkPolicy) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&EgressNetworkPolicy{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "EgressNetworkPolicySpec", "EgressNetworkPolicySpec", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *EgressNetworkPolicyList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]EgressNetworkPolicy{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "EgressNetworkPolicy", "EgressNetworkPolicy", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&EgressNetworkPolicyList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *EgressNetworkPolicyPeer) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&EgressNetworkPolicyPeer{`, - `CIDRSelector:` + fmt.Sprintf("%v", this.CIDRSelector) + `,`, - `DNSName:` + fmt.Sprintf("%v", this.DNSName) + `,`, - `}`, - }, "") - return s -} -func (this *EgressNetworkPolicyRule) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&EgressNetworkPolicyRule{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `To:` + strings.Replace(strings.Replace(this.To.String(), "EgressNetworkPolicyPeer", "EgressNetworkPolicyPeer", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *EgressNetworkPolicySpec) String() string { - if this == nil { - return "nil" - } - repeatedStringForEgress := "[]EgressNetworkPolicyRule{" - for _, f := range this.Egress { - repeatedStringForEgress += strings.Replace(strings.Replace(f.String(), "EgressNetworkPolicyRule", "EgressNetworkPolicyRule", 1), `&`, ``, 1) + "," - } - repeatedStringForEgress += "}" - s := strings.Join([]string{`&EgressNetworkPolicySpec{`, - `Egress:` + repeatedStringForEgress + `,`, - `}`, - }, "") - return s -} -func (this *HostSubnet) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&HostSubnet{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Host:` + fmt.Sprintf("%v", this.Host) + `,`, - `HostIP:` + fmt.Sprintf("%v", this.HostIP) + `,`, - `Subnet:` + fmt.Sprintf("%v", this.Subnet) + `,`, - `EgressIPs:` + fmt.Sprintf("%v", this.EgressIPs) + `,`, - `EgressCIDRs:` + fmt.Sprintf("%v", this.EgressCIDRs) + `,`, - `}`, - }, "") - return s -} -func (this *HostSubnetList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]HostSubnet{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "HostSubnet", "HostSubnet", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&HostSubnetList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *NetNamespace) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&NetNamespace{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `NetName:` + fmt.Sprintf("%v", this.NetName) + `,`, - `NetID:` + fmt.Sprintf("%v", this.NetID) + `,`, - `EgressIPs:` + fmt.Sprintf("%v", this.EgressIPs) + `,`, - `}`, - }, "") - return s -} -func (this *NetNamespaceList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]NetNamespace{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "NetNamespace", "NetNamespace", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&NetNamespaceList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *ClusterNetwork) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterNetwork: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterNetwork: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Network", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Network = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field HostSubnetLength", wireType) - } - m.HostSubnetLength = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.HostSubnetLength |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServiceNetwork", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ServiceNetwork = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PluginName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.PluginName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClusterNetworks", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ClusterNetworks = append(m.ClusterNetworks, ClusterNetworkEntry{}) - if err := m.ClusterNetworks[len(m.ClusterNetworks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field VXLANPort", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.VXLANPort = &v - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MTU", wireType) - } - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.MTU = &v - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ClusterNetworkEntry) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterNetworkEntry: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterNetworkEntry: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CIDR", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.CIDR = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field HostSubnetLength", wireType) - } - m.HostSubnetLength = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.HostSubnetLength |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ClusterNetworkList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterNetworkList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterNetworkList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, ClusterNetwork{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EgressNetworkPolicy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EgressNetworkPolicy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EgressNetworkPolicy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EgressNetworkPolicyList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EgressNetworkPolicyList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EgressNetworkPolicyList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, EgressNetworkPolicy{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EgressNetworkPolicyPeer) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EgressNetworkPolicyPeer: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EgressNetworkPolicyPeer: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CIDRSelector", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.CIDRSelector = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DNSName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DNSName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EgressNetworkPolicyRule) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EgressNetworkPolicyRule: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EgressNetworkPolicyRule: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = EgressNetworkPolicyRuleType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field To", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.To.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *EgressNetworkPolicySpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: EgressNetworkPolicySpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: EgressNetworkPolicySpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Egress", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Egress = append(m.Egress, EgressNetworkPolicyRule{}) - if err := m.Egress[len(m.Egress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *HostSubnet) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: HostSubnet: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: HostSubnet: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Host", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Host = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field HostIP", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.HostIP = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Subnet", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Subnet = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EgressIPs", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.EgressIPs = append(m.EgressIPs, HostSubnetEgressIP(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EgressCIDRs", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.EgressCIDRs = append(m.EgressCIDRs, HostSubnetEgressCIDR(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *HostSubnetList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: HostSubnetList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: HostSubnetList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, HostSubnet{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NetNamespace) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: NetNamespace: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NetNamespace: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NetName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NetName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NetID", wireType) - } - m.NetID = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.NetID |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EgressIPs", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.EgressIPs = append(m.EgressIPs, NetNamespaceEgressIP(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NetNamespaceList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: NetNamespaceList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NetNamespaceList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, NetNamespace{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/vendor/github.com/openshift/api/network/v1/generated.proto b/vendor/github.com/openshift/api/network/v1/generated.proto deleted file mode 100644 index e57003f4fcda3..0000000000000 --- a/vendor/github.com/openshift/api/network/v1/generated.proto +++ /dev/null @@ -1,203 +0,0 @@ - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = 'proto2'; - -package github.com.openshift.api.network.v1; - -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v1"; - -// ClusterNetwork describes the cluster network. There is normally only one object of this type, -// named "default", which is created by the SDN network plugin based on the master configuration -// when the cluster is brought up for the first time. -// +kubebuilder:resource:scope="Cluster" -// +kubebuilder:printcolumn:name="Cluster Network",type=string,JSONPath=`.network`,description="The primary cluster network CIDR" -// +kubebuilder:printcolumn:name="Service Network",type=string,JSONPath=`.serviceNetwork`,description="The service network CIDR" -// +kubebuilder:printcolumn:name="Plugin Name",type=string,JSONPath=`.pluginName`,description="The Openshift SDN network plug-in in use" -message ClusterNetwork { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Network is a CIDR string specifying the global overlay network's L3 space - // +kubebuilder:validation:Pattern=`^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$` - optional string network = 2; - - // HostSubnetLength is the number of bits of network to allocate to each node. eg, 8 would mean that each node would have a /24 slice of the overlay network for its pods - // +kubebuilder:validation:Minimum=2 - // +kubebuilder:validation:Maximum=30 - optional uint32 hostsubnetlength = 3; - - // ServiceNetwork is the CIDR range that Service IP addresses are allocated from - // +kubebuilder:validation:Pattern=`^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$` - optional string serviceNetwork = 4; - - // PluginName is the name of the network plugin being used - optional string pluginName = 5; - - // ClusterNetworks is a list of ClusterNetwork objects that defines the global overlay network's L3 space by specifying a set of CIDR and netmasks that the SDN can allocate addresses from. - repeated ClusterNetworkEntry clusterNetworks = 6; - - // VXLANPort sets the VXLAN destination port used by the cluster. - // It is set by the master configuration file on startup and cannot be edited manually. - // Valid values for VXLANPort are integers 1-65535 inclusive and if unset defaults to 4789. - // Changing VXLANPort allows users to resolve issues between openshift SDN and other software trying to use the same VXLAN destination port. - // +kubebuilder:validation:Minimum=1 - // +kubebuilder:validation:Maximum=65535 - // +kubebuilder:validation:Optional - // +optional - optional uint32 vxlanPort = 7; - - // MTU is the MTU for the overlay network. This should be 50 less than the MTU of the network connecting the nodes. It is normally autodetected by the cluster network operator. - // +kubebuilder:validation:Minimum=576 - // +kubebuilder:validation:Maximum=65536 - // +kubebuilder:validation:Optional - // +optional - optional uint32 mtu = 8; -} - -// ClusterNetworkEntry defines an individual cluster network. The CIDRs cannot overlap with other cluster network CIDRs, CIDRs reserved for external ips, CIDRs reserved for service networks, and CIDRs reserved for ingress ips. -message ClusterNetworkEntry { - // CIDR defines the total range of a cluster networks address space. - // +kubebuilder:validation:Pattern=`^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$` - optional string cidr = 1; - - // HostSubnetLength is the number of bits of the accompanying CIDR address to allocate to each node. eg, 8 would mean that each node would have a /24 slice of the overlay network for its pods. - // +kubebuilder:validation:Minimum=2 - // +kubebuilder:validation:Maximum=30 - optional uint32 hostSubnetLength = 2; -} - -// ClusterNetworkList is a collection of ClusterNetworks -message ClusterNetworkList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is the list of cluster networks - repeated ClusterNetwork items = 2; -} - -// EgressNetworkPolicy describes the current egress network policy for a Namespace. When using -// the 'redhat/openshift-ovs-multitenant' network plugin, traffic from a pod to an IP address -// outside the cluster will be checked against each EgressNetworkPolicyRule in the pod's -// namespace's EgressNetworkPolicy, in order. If no rule matches (or no EgressNetworkPolicy -// is present) then the traffic will be allowed by default. -message EgressNetworkPolicy { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // spec is the specification of the current egress network policy - optional EgressNetworkPolicySpec spec = 2; -} - -// EgressNetworkPolicyList is a collection of EgressNetworkPolicy -message EgressNetworkPolicyList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // items is the list of policies - repeated EgressNetworkPolicy items = 2; -} - -// EgressNetworkPolicyPeer specifies a target to apply egress network policy to -message EgressNetworkPolicyPeer { - // CIDRSelector is the CIDR range to allow/deny traffic to. If this is set, dnsName must be unset - // Ideally we would have liked to use the cidr openapi format for this property. - // But openshift-sdn only supports v4 while specifying the cidr format allows both v4 and v6 cidrs - // We are therefore using a regex pattern to validate instead. - // +kubebuilder:validation:Pattern=`^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$` - optional string cidrSelector = 1; - - // DNSName is the domain name to allow/deny traffic to. If this is set, cidrSelector must be unset - // +kubebuilder:validation:Pattern=`^([A-Za-z0-9-]+\.)*[A-Za-z0-9-]+\.?$` - optional string dnsName = 2; -} - -// EgressNetworkPolicyRule contains a single egress network policy rule -message EgressNetworkPolicyRule { - // type marks this as an "Allow" or "Deny" rule - optional string type = 1; - - // to is the target that traffic is allowed/denied to - optional EgressNetworkPolicyPeer to = 2; -} - -// EgressNetworkPolicySpec provides a list of policies on outgoing network traffic -message EgressNetworkPolicySpec { - // egress contains the list of egress policy rules - repeated EgressNetworkPolicyRule egress = 1; -} - -// HostSubnet describes the container subnet network on a node. The HostSubnet object must have the -// same name as the Node object it corresponds to. -// +kubebuilder:printcolumn:name="Host",type=string,JSONPath=`.host`,description="The name of the node" -// +kubebuilder:printcolumn:name="Host IP",type=string,JSONPath=`.hostIP`,description="The IP address to be used as a VTEP by other nodes in the overlay network" -// +kubebuilder:printcolumn:name="Subnet",type=string,JSONPath=`.subnet`,description="The CIDR range of the overlay network assigned to the node for its pods" -// +kubebuilder:printcolumn:name="Egress CIDRs",type=string,JSONPath=`.egressCIDRs`,description="The network egress CIDRs" -// +kubebuilder:printcolumn:name="Egress IPs",type=string,JSONPath=`.egressIPs`,description="The network egress IP addresses" -message HostSubnet { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Host is the name of the node. (This is the same as the object's name, but both fields must be set.) - // +kubebuilder:validation:Pattern=`^[a-z0-9.-]+$` - optional string host = 2; - - // HostIP is the IP address to be used as a VTEP by other nodes in the overlay network - // +kubebuilder:validation:Pattern=`^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$` - optional string hostIP = 3; - - // Subnet is the CIDR range of the overlay network assigned to the node for its pods - // +kubebuilder:validation:Pattern=`^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$` - optional string subnet = 4; - - // EgressIPs is the list of automatic egress IP addresses currently hosted by this node. - // If EgressCIDRs is empty, this can be set by hand; if EgressCIDRs is set then the - // master will overwrite the value here with its own allocation of egress IPs. - // +optional - repeated string egressIPs = 5; - - // EgressCIDRs is the list of CIDR ranges available for automatically assigning - // egress IPs to this node from. If this field is set then EgressIPs should be - // treated as read-only. - // +optional - repeated string egressCIDRs = 6; -} - -// HostSubnetList is a collection of HostSubnets -message HostSubnetList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is the list of host subnets - repeated HostSubnet items = 2; -} - -// NetNamespace describes a single isolated network. When using the redhat/openshift-ovs-multitenant -// plugin, every Namespace will have a corresponding NetNamespace object with the same name. -// (When using redhat/openshift-ovs-subnet, NetNamespaces are not used.) -// +kubebuilder:printcolumn:name="NetID",type=integer,JSONPath=`.netid`,description="The network identifier of the network namespace" -// +kubebuilder:printcolumn:name="Egress IPs",type=string,JSONPath=`.egressIPs`,description="The network egress IP addresses" -message NetNamespace { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // NetName is the name of the network namespace. (This is the same as the object's name, but both fields must be set.) - // +kubebuilder:validation:Pattern=`^[a-z0-9.-]+$` - optional string netname = 2; - - // NetID is the network identifier of the network namespace assigned to each overlay network packet. This can be manipulated with the "oc adm pod-network" commands. - // +kubebuilder:validation:Minimum=0 - // +kubebuilder:validation:Maximum=16777215 - optional uint32 netid = 3; - - // EgressIPs is a list of reserved IPs that will be used as the source for external traffic coming from pods in this namespace. - // (If empty, external traffic will be masqueraded to Node IPs.) - // +optional - repeated string egressIPs = 4; -} - -// NetNamespaceList is a collection of NetNamespaces -message NetNamespaceList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is the list of net namespaces - repeated NetNamespace items = 2; -} - diff --git a/vendor/github.com/openshift/api/network/v1/legacy.go b/vendor/github.com/openshift/api/network/v1/legacy.go deleted file mode 100644 index 4395ebf8e56da..0000000000000 --- a/vendor/github.com/openshift/api/network/v1/legacy.go +++ /dev/null @@ -1,27 +0,0 @@ -package v1 - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - legacyGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} - legacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes) - DeprecatedInstallWithoutGroup = legacySchemeBuilder.AddToScheme -) - -func addLegacyKnownTypes(scheme *runtime.Scheme) error { - types := []runtime.Object{ - &ClusterNetwork{}, - &ClusterNetworkList{}, - &HostSubnet{}, - &HostSubnetList{}, - &NetNamespace{}, - &NetNamespaceList{}, - &EgressNetworkPolicy{}, - &EgressNetworkPolicyList{}, - } - scheme.AddKnownTypes(legacyGroupVersion, types...) - return nil -} diff --git a/vendor/github.com/openshift/api/network/v1/register.go b/vendor/github.com/openshift/api/network/v1/register.go deleted file mode 100644 index 80defa76427c7..0000000000000 --- a/vendor/github.com/openshift/api/network/v1/register.go +++ /dev/null @@ -1,44 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - GroupName = "network.openshift.io" - GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - // Install is a function which adds this version to a scheme - Install = schemeBuilder.AddToScheme - - // SchemeGroupVersion generated code relies on this name - // Deprecated - SchemeGroupVersion = GroupVersion - // AddToScheme exists solely to keep the old generators creating valid code - // DEPRECATED - AddToScheme = schemeBuilder.AddToScheme -) - -// Resource generated code relies on this being here, but it logically belongs to the group -// DEPRECATED -func Resource(resource string) schema.GroupResource { - return schema.GroupResource{Group: GroupName, Resource: resource} -} - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &ClusterNetwork{}, - &ClusterNetworkList{}, - &HostSubnet{}, - &HostSubnetList{}, - &NetNamespace{}, - &NetNamespaceList{}, - &EgressNetworkPolicy{}, - &EgressNetworkPolicyList{}, - ) - metav1.AddToGroupVersion(scheme, GroupVersion) - return nil -} diff --git a/vendor/github.com/openshift/api/network/v1/types.go b/vendor/github.com/openshift/api/network/v1/types.go deleted file mode 100644 index c0ee55126f51d..0000000000000 --- a/vendor/github.com/openshift/api/network/v1/types.go +++ /dev/null @@ -1,252 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -const ( - ClusterNetworkDefault = "default" -) - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ClusterNetwork describes the cluster network. There is normally only one object of this type, -// named "default", which is created by the SDN network plugin based on the master configuration -// when the cluster is brought up for the first time. -// +kubebuilder:resource:scope="Cluster" -// +kubebuilder:printcolumn:name="Cluster Network",type=string,JSONPath=`.network`,description="The primary cluster network CIDR" -// +kubebuilder:printcolumn:name="Service Network",type=string,JSONPath=`.serviceNetwork`,description="The service network CIDR" -// +kubebuilder:printcolumn:name="Plugin Name",type=string,JSONPath=`.pluginName`,description="The Openshift SDN network plug-in in use" -type ClusterNetwork struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Network is a CIDR string specifying the global overlay network's L3 space - // +kubebuilder:validation:Pattern=`^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$` - Network string `json:"network,omitempty" protobuf:"bytes,2,opt,name=network"` - - // HostSubnetLength is the number of bits of network to allocate to each node. eg, 8 would mean that each node would have a /24 slice of the overlay network for its pods - // +kubebuilder:validation:Minimum=2 - // +kubebuilder:validation:Maximum=30 - HostSubnetLength uint32 `json:"hostsubnetlength,omitempty" protobuf:"varint,3,opt,name=hostsubnetlength"` - - // ServiceNetwork is the CIDR range that Service IP addresses are allocated from - // +kubebuilder:validation:Pattern=`^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$` - ServiceNetwork string `json:"serviceNetwork" protobuf:"bytes,4,opt,name=serviceNetwork"` - - // PluginName is the name of the network plugin being used - PluginName string `json:"pluginName,omitempty" protobuf:"bytes,5,opt,name=pluginName"` - - // ClusterNetworks is a list of ClusterNetwork objects that defines the global overlay network's L3 space by specifying a set of CIDR and netmasks that the SDN can allocate addresses from. - ClusterNetworks []ClusterNetworkEntry `json:"clusterNetworks" protobuf:"bytes,6,rep,name=clusterNetworks"` - - // VXLANPort sets the VXLAN destination port used by the cluster. - // It is set by the master configuration file on startup and cannot be edited manually. - // Valid values for VXLANPort are integers 1-65535 inclusive and if unset defaults to 4789. - // Changing VXLANPort allows users to resolve issues between openshift SDN and other software trying to use the same VXLAN destination port. - // +kubebuilder:validation:Minimum=1 - // +kubebuilder:validation:Maximum=65535 - // +kubebuilder:validation:Optional - // +optional - VXLANPort *uint32 `json:"vxlanPort,omitempty" protobuf:"varint,7,opt,name=vxlanPort"` - - // MTU is the MTU for the overlay network. This should be 50 less than the MTU of the network connecting the nodes. It is normally autodetected by the cluster network operator. - // +kubebuilder:validation:Minimum=576 - // +kubebuilder:validation:Maximum=65536 - // +kubebuilder:validation:Optional - // +optional - MTU *uint32 `json:"mtu,omitempty" protobuf:"varint,8,opt,name=mtu"` -} - -// ClusterNetworkEntry defines an individual cluster network. The CIDRs cannot overlap with other cluster network CIDRs, CIDRs reserved for external ips, CIDRs reserved for service networks, and CIDRs reserved for ingress ips. -type ClusterNetworkEntry struct { - // CIDR defines the total range of a cluster networks address space. - // +kubebuilder:validation:Pattern=`^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$` - CIDR string `json:"CIDR" protobuf:"bytes,1,opt,name=cidr"` - - // HostSubnetLength is the number of bits of the accompanying CIDR address to allocate to each node. eg, 8 would mean that each node would have a /24 slice of the overlay network for its pods. - // +kubebuilder:validation:Minimum=2 - // +kubebuilder:validation:Maximum=30 - HostSubnetLength uint32 `json:"hostSubnetLength" protobuf:"varint,2,opt,name=hostSubnetLength"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ClusterNetworkList is a collection of ClusterNetworks -type ClusterNetworkList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is the list of cluster networks - Items []ClusterNetwork `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// HostSubnetEgressIP represents one egress IP address currently hosted on the node represented by -// HostSubnet -// +kubebuilder:validation:Pattern=`^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$` -type HostSubnetEgressIP string - -// HostSubnetEgressCIDR represents one egress CIDR from which to assign IP addresses for this node -// represented by the HostSubnet -// +kubebuilder:validation:Pattern=`^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$` -type HostSubnetEgressCIDR string - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// HostSubnet describes the container subnet network on a node. The HostSubnet object must have the -// same name as the Node object it corresponds to. -// +kubebuilder:printcolumn:name="Host",type=string,JSONPath=`.host`,description="The name of the node" -// +kubebuilder:printcolumn:name="Host IP",type=string,JSONPath=`.hostIP`,description="The IP address to be used as a VTEP by other nodes in the overlay network" -// +kubebuilder:printcolumn:name="Subnet",type=string,JSONPath=`.subnet`,description="The CIDR range of the overlay network assigned to the node for its pods" -// +kubebuilder:printcolumn:name="Egress CIDRs",type=string,JSONPath=`.egressCIDRs`,description="The network egress CIDRs" -// +kubebuilder:printcolumn:name="Egress IPs",type=string,JSONPath=`.egressIPs`,description="The network egress IP addresses" -type HostSubnet struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Host is the name of the node. (This is the same as the object's name, but both fields must be set.) - // +kubebuilder:validation:Pattern=`^[a-z0-9.-]+$` - Host string `json:"host" protobuf:"bytes,2,opt,name=host"` - - // HostIP is the IP address to be used as a VTEP by other nodes in the overlay network - // +kubebuilder:validation:Pattern=`^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$` - HostIP string `json:"hostIP" protobuf:"bytes,3,opt,name=hostIP"` - - // Subnet is the CIDR range of the overlay network assigned to the node for its pods - // +kubebuilder:validation:Pattern=`^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$` - Subnet string `json:"subnet" protobuf:"bytes,4,opt,name=subnet"` - - // EgressIPs is the list of automatic egress IP addresses currently hosted by this node. - // If EgressCIDRs is empty, this can be set by hand; if EgressCIDRs is set then the - // master will overwrite the value here with its own allocation of egress IPs. - // +optional - EgressIPs []HostSubnetEgressIP `json:"egressIPs,omitempty" protobuf:"bytes,5,rep,name=egressIPs"` - - // EgressCIDRs is the list of CIDR ranges available for automatically assigning - // egress IPs to this node from. If this field is set then EgressIPs should be - // treated as read-only. - // +optional - EgressCIDRs []HostSubnetEgressCIDR `json:"egressCIDRs,omitempty" protobuf:"bytes,6,rep,name=egressCIDRs"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// HostSubnetList is a collection of HostSubnets -type HostSubnetList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is the list of host subnets - Items []HostSubnet `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// NetNamespaceEgressIP is a single egress IP out of a list of reserved IPs used as source of external traffic coming -// from pods in this namespace -// +kubebuilder:validation:Pattern=`^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$` -type NetNamespaceEgressIP string - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// NetNamespace describes a single isolated network. When using the redhat/openshift-ovs-multitenant -// plugin, every Namespace will have a corresponding NetNamespace object with the same name. -// (When using redhat/openshift-ovs-subnet, NetNamespaces are not used.) -// +kubebuilder:printcolumn:name="NetID",type=integer,JSONPath=`.netid`,description="The network identifier of the network namespace" -// +kubebuilder:printcolumn:name="Egress IPs",type=string,JSONPath=`.egressIPs`,description="The network egress IP addresses" -type NetNamespace struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // NetName is the name of the network namespace. (This is the same as the object's name, but both fields must be set.) - // +kubebuilder:validation:Pattern=`^[a-z0-9.-]+$` - NetName string `json:"netname" protobuf:"bytes,2,opt,name=netname"` - - // NetID is the network identifier of the network namespace assigned to each overlay network packet. This can be manipulated with the "oc adm pod-network" commands. - // +kubebuilder:validation:Minimum=0 - // +kubebuilder:validation:Maximum=16777215 - NetID uint32 `json:"netid" protobuf:"varint,3,opt,name=netid"` - - // EgressIPs is a list of reserved IPs that will be used as the source for external traffic coming from pods in this namespace. - // (If empty, external traffic will be masqueraded to Node IPs.) - // +optional - EgressIPs []NetNamespaceEgressIP `json:"egressIPs,omitempty" protobuf:"bytes,4,rep,name=egressIPs"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// NetNamespaceList is a collection of NetNamespaces -type NetNamespaceList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is the list of net namespaces - Items []NetNamespace `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// EgressNetworkPolicyRuleType indicates whether an EgressNetworkPolicyRule allows or denies traffic -// +kubebuilder:validation:Pattern=`^Allow|Deny$` -type EgressNetworkPolicyRuleType string - -const ( - EgressNetworkPolicyRuleAllow EgressNetworkPolicyRuleType = "Allow" - EgressNetworkPolicyRuleDeny EgressNetworkPolicyRuleType = "Deny" -) - -// EgressNetworkPolicyPeer specifies a target to apply egress network policy to -type EgressNetworkPolicyPeer struct { - // CIDRSelector is the CIDR range to allow/deny traffic to. If this is set, dnsName must be unset - // Ideally we would have liked to use the cidr openapi format for this property. - // But openshift-sdn only supports v4 while specifying the cidr format allows both v4 and v6 cidrs - // We are therefore using a regex pattern to validate instead. - // +kubebuilder:validation:Pattern=`^(([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$` - CIDRSelector string `json:"cidrSelector,omitempty" protobuf:"bytes,1,rep,name=cidrSelector"` - // DNSName is the domain name to allow/deny traffic to. If this is set, cidrSelector must be unset - // +kubebuilder:validation:Pattern=`^([A-Za-z0-9-]+\.)*[A-Za-z0-9-]+\.?$` - DNSName string `json:"dnsName,omitempty" protobuf:"bytes,2,rep,name=dnsName"` -} - -// EgressNetworkPolicyRule contains a single egress network policy rule -type EgressNetworkPolicyRule struct { - // type marks this as an "Allow" or "Deny" rule - Type EgressNetworkPolicyRuleType `json:"type" protobuf:"bytes,1,rep,name=type"` - // to is the target that traffic is allowed/denied to - To EgressNetworkPolicyPeer `json:"to" protobuf:"bytes,2,rep,name=to"` -} - -// EgressNetworkPolicySpec provides a list of policies on outgoing network traffic -type EgressNetworkPolicySpec struct { - // egress contains the list of egress policy rules - Egress []EgressNetworkPolicyRule `json:"egress" protobuf:"bytes,1,rep,name=egress"` -} - -// +genclient -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// EgressNetworkPolicy describes the current egress network policy for a Namespace. When using -// the 'redhat/openshift-ovs-multitenant' network plugin, traffic from a pod to an IP address -// outside the cluster will be checked against each EgressNetworkPolicyRule in the pod's -// namespace's EgressNetworkPolicy, in order. If no rule matches (or no EgressNetworkPolicy -// is present) then the traffic will be allowed by default. -type EgressNetworkPolicy struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // spec is the specification of the current egress network policy - Spec EgressNetworkPolicySpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// EgressNetworkPolicyList is a collection of EgressNetworkPolicy -type EgressNetworkPolicyList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // items is the list of policies - Items []EgressNetworkPolicy `json:"items" protobuf:"bytes,2,rep,name=items"` -} diff --git a/vendor/github.com/openshift/api/network/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/network/v1/zz_generated.deepcopy.go deleted file mode 100644 index 32f766e01eb5f..0000000000000 --- a/vendor/github.com/openshift/api/network/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,346 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - 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 *ClusterNetwork) DeepCopyInto(out *ClusterNetwork) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.ClusterNetworks != nil { - in, out := &in.ClusterNetworks, &out.ClusterNetworks - *out = make([]ClusterNetworkEntry, len(*in)) - copy(*out, *in) - } - if in.VXLANPort != nil { - in, out := &in.VXLANPort, &out.VXLANPort - *out = new(uint32) - **out = **in - } - if in.MTU != nil { - in, out := &in.MTU, &out.MTU - *out = new(uint32) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterNetwork. -func (in *ClusterNetwork) DeepCopy() *ClusterNetwork { - if in == nil { - return nil - } - out := new(ClusterNetwork) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterNetwork) 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 *ClusterNetworkEntry) DeepCopyInto(out *ClusterNetworkEntry) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterNetworkEntry. -func (in *ClusterNetworkEntry) DeepCopy() *ClusterNetworkEntry { - if in == nil { - return nil - } - out := new(ClusterNetworkEntry) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterNetworkList) DeepCopyInto(out *ClusterNetworkList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ClusterNetwork, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterNetworkList. -func (in *ClusterNetworkList) DeepCopy() *ClusterNetworkList { - if in == nil { - return nil - } - out := new(ClusterNetworkList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterNetworkList) 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 *EgressNetworkPolicy) DeepCopyInto(out *EgressNetworkPolicy) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EgressNetworkPolicy. -func (in *EgressNetworkPolicy) DeepCopy() *EgressNetworkPolicy { - if in == nil { - return nil - } - out := new(EgressNetworkPolicy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *EgressNetworkPolicy) 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 *EgressNetworkPolicyList) DeepCopyInto(out *EgressNetworkPolicyList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]EgressNetworkPolicy, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EgressNetworkPolicyList. -func (in *EgressNetworkPolicyList) DeepCopy() *EgressNetworkPolicyList { - if in == nil { - return nil - } - out := new(EgressNetworkPolicyList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *EgressNetworkPolicyList) 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 *EgressNetworkPolicyPeer) DeepCopyInto(out *EgressNetworkPolicyPeer) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EgressNetworkPolicyPeer. -func (in *EgressNetworkPolicyPeer) DeepCopy() *EgressNetworkPolicyPeer { - if in == nil { - return nil - } - out := new(EgressNetworkPolicyPeer) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *EgressNetworkPolicyRule) DeepCopyInto(out *EgressNetworkPolicyRule) { - *out = *in - out.To = in.To - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EgressNetworkPolicyRule. -func (in *EgressNetworkPolicyRule) DeepCopy() *EgressNetworkPolicyRule { - if in == nil { - return nil - } - out := new(EgressNetworkPolicyRule) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *EgressNetworkPolicySpec) DeepCopyInto(out *EgressNetworkPolicySpec) { - *out = *in - if in.Egress != nil { - in, out := &in.Egress, &out.Egress - *out = make([]EgressNetworkPolicyRule, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EgressNetworkPolicySpec. -func (in *EgressNetworkPolicySpec) DeepCopy() *EgressNetworkPolicySpec { - if in == nil { - return nil - } - out := new(EgressNetworkPolicySpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HostSubnet) DeepCopyInto(out *HostSubnet) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.EgressIPs != nil { - in, out := &in.EgressIPs, &out.EgressIPs - *out = make([]HostSubnetEgressIP, len(*in)) - copy(*out, *in) - } - if in.EgressCIDRs != nil { - in, out := &in.EgressCIDRs, &out.EgressCIDRs - *out = make([]HostSubnetEgressCIDR, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostSubnet. -func (in *HostSubnet) DeepCopy() *HostSubnet { - if in == nil { - return nil - } - out := new(HostSubnet) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *HostSubnet) 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 *HostSubnetList) DeepCopyInto(out *HostSubnetList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]HostSubnet, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostSubnetList. -func (in *HostSubnetList) DeepCopy() *HostSubnetList { - if in == nil { - return nil - } - out := new(HostSubnetList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *HostSubnetList) 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 *NetNamespace) DeepCopyInto(out *NetNamespace) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.EgressIPs != nil { - in, out := &in.EgressIPs, &out.EgressIPs - *out = make([]NetNamespaceEgressIP, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetNamespace. -func (in *NetNamespace) DeepCopy() *NetNamespace { - if in == nil { - return nil - } - out := new(NetNamespace) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *NetNamespace) 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 *NetNamespaceList) DeepCopyInto(out *NetNamespaceList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]NetNamespace, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetNamespaceList. -func (in *NetNamespaceList) DeepCopy() *NetNamespaceList { - if in == nil { - return nil - } - out := new(NetNamespaceList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *NetNamespaceList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/vendor/github.com/openshift/api/network/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/network/v1/zz_generated.swagger_doc_generated.go deleted file mode 100644 index 9a3d2ffdf84bc..0000000000000 --- a/vendor/github.com/openshift/api/network/v1/zz_generated.swagger_doc_generated.go +++ /dev/null @@ -1,137 +0,0 @@ -package v1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE -var map_ClusterNetwork = map[string]string{ - "": "ClusterNetwork describes the cluster network. There is normally only one object of this type, named \"default\", which is created by the SDN network plugin based on the master configuration when the cluster is brought up for the first time.", - "network": "Network is a CIDR string specifying the global overlay network's L3 space", - "hostsubnetlength": "HostSubnetLength is the number of bits of network to allocate to each node. eg, 8 would mean that each node would have a /24 slice of the overlay network for its pods", - "serviceNetwork": "ServiceNetwork is the CIDR range that Service IP addresses are allocated from", - "pluginName": "PluginName is the name of the network plugin being used", - "clusterNetworks": "ClusterNetworks is a list of ClusterNetwork objects that defines the global overlay network's L3 space by specifying a set of CIDR and netmasks that the SDN can allocate addresses from.", - "vxlanPort": "VXLANPort sets the VXLAN destination port used by the cluster. It is set by the master configuration file on startup and cannot be edited manually. Valid values for VXLANPort are integers 1-65535 inclusive and if unset defaults to 4789. Changing VXLANPort allows users to resolve issues between openshift SDN and other software trying to use the same VXLAN destination port.", - "mtu": "MTU is the MTU for the overlay network. This should be 50 less than the MTU of the network connecting the nodes. It is normally autodetected by the cluster network operator.", -} - -func (ClusterNetwork) SwaggerDoc() map[string]string { - return map_ClusterNetwork -} - -var map_ClusterNetworkEntry = map[string]string{ - "": "ClusterNetworkEntry defines an individual cluster network. The CIDRs cannot overlap with other cluster network CIDRs, CIDRs reserved for external ips, CIDRs reserved for service networks, and CIDRs reserved for ingress ips.", - "CIDR": "CIDR defines the total range of a cluster networks address space.", - "hostSubnetLength": "HostSubnetLength is the number of bits of the accompanying CIDR address to allocate to each node. eg, 8 would mean that each node would have a /24 slice of the overlay network for its pods.", -} - -func (ClusterNetworkEntry) SwaggerDoc() map[string]string { - return map_ClusterNetworkEntry -} - -var map_ClusterNetworkList = map[string]string{ - "": "ClusterNetworkList is a collection of ClusterNetworks", - "items": "Items is the list of cluster networks", -} - -func (ClusterNetworkList) SwaggerDoc() map[string]string { - return map_ClusterNetworkList -} - -var map_EgressNetworkPolicy = map[string]string{ - "": "EgressNetworkPolicy describes the current egress network policy for a Namespace. When using the 'redhat/openshift-ovs-multitenant' network plugin, traffic from a pod to an IP address outside the cluster will be checked against each EgressNetworkPolicyRule in the pod's namespace's EgressNetworkPolicy, in order. If no rule matches (or no EgressNetworkPolicy is present) then the traffic will be allowed by default.", - "spec": "spec is the specification of the current egress network policy", -} - -func (EgressNetworkPolicy) SwaggerDoc() map[string]string { - return map_EgressNetworkPolicy -} - -var map_EgressNetworkPolicyList = map[string]string{ - "": "EgressNetworkPolicyList is a collection of EgressNetworkPolicy", - "items": "items is the list of policies", -} - -func (EgressNetworkPolicyList) SwaggerDoc() map[string]string { - return map_EgressNetworkPolicyList -} - -var map_EgressNetworkPolicyPeer = map[string]string{ - "": "EgressNetworkPolicyPeer specifies a target to apply egress network policy to", - "cidrSelector": "CIDRSelector is the CIDR range to allow/deny traffic to. If this is set, dnsName must be unset Ideally we would have liked to use the cidr openapi format for this property. But openshift-sdn only supports v4 while specifying the cidr format allows both v4 and v6 cidrs We are therefore using a regex pattern to validate instead.", - "dnsName": "DNSName is the domain name to allow/deny traffic to. If this is set, cidrSelector must be unset", -} - -func (EgressNetworkPolicyPeer) SwaggerDoc() map[string]string { - return map_EgressNetworkPolicyPeer -} - -var map_EgressNetworkPolicyRule = map[string]string{ - "": "EgressNetworkPolicyRule contains a single egress network policy rule", - "type": "type marks this as an \"Allow\" or \"Deny\" rule", - "to": "to is the target that traffic is allowed/denied to", -} - -func (EgressNetworkPolicyRule) SwaggerDoc() map[string]string { - return map_EgressNetworkPolicyRule -} - -var map_EgressNetworkPolicySpec = map[string]string{ - "": "EgressNetworkPolicySpec provides a list of policies on outgoing network traffic", - "egress": "egress contains the list of egress policy rules", -} - -func (EgressNetworkPolicySpec) SwaggerDoc() map[string]string { - return map_EgressNetworkPolicySpec -} - -var map_HostSubnet = map[string]string{ - "": "HostSubnet describes the container subnet network on a node. The HostSubnet object must have the same name as the Node object it corresponds to.", - "host": "Host is the name of the node. (This is the same as the object's name, but both fields must be set.)", - "hostIP": "HostIP is the IP address to be used as a VTEP by other nodes in the overlay network", - "subnet": "Subnet is the CIDR range of the overlay network assigned to the node for its pods", - "egressIPs": "EgressIPs is the list of automatic egress IP addresses currently hosted by this node. If EgressCIDRs is empty, this can be set by hand; if EgressCIDRs is set then the master will overwrite the value here with its own allocation of egress IPs.", - "egressCIDRs": "EgressCIDRs is the list of CIDR ranges available for automatically assigning egress IPs to this node from. If this field is set then EgressIPs should be treated as read-only.", -} - -func (HostSubnet) SwaggerDoc() map[string]string { - return map_HostSubnet -} - -var map_HostSubnetList = map[string]string{ - "": "HostSubnetList is a collection of HostSubnets", - "items": "Items is the list of host subnets", -} - -func (HostSubnetList) SwaggerDoc() map[string]string { - return map_HostSubnetList -} - -var map_NetNamespace = map[string]string{ - "": "NetNamespace describes a single isolated network. When using the redhat/openshift-ovs-multitenant plugin, every Namespace will have a corresponding NetNamespace object with the same name. (When using redhat/openshift-ovs-subnet, NetNamespaces are not used.)", - "netname": "NetName is the name of the network namespace. (This is the same as the object's name, but both fields must be set.)", - "netid": "NetID is the network identifier of the network namespace assigned to each overlay network packet. This can be manipulated with the \"oc adm pod-network\" commands.", - "egressIPs": "EgressIPs is a list of reserved IPs that will be used as the source for external traffic coming from pods in this namespace. (If empty, external traffic will be masqueraded to Node IPs.)", -} - -func (NetNamespace) SwaggerDoc() map[string]string { - return map_NetNamespace -} - -var map_NetNamespaceList = map[string]string{ - "": "NetNamespaceList is a collection of NetNamespaces", - "items": "Items is the list of net namespaces", -} - -func (NetNamespaceList) SwaggerDoc() map[string]string { - return map_NetNamespaceList -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/github.com/openshift/api/oauth/v1/doc.go b/vendor/github.com/openshift/api/oauth/v1/doc.go deleted file mode 100644 index cae9e70d4a536..0000000000000 --- a/vendor/github.com/openshift/api/oauth/v1/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=github.com/openshift/origin/pkg/oauth/apis/oauth -// +k8s:defaulter-gen=TypeMeta -// +k8s:openapi-gen=true - -// +groupName=oauth.openshift.io -// Package v1 is the v1 version of the API. -package v1 diff --git a/vendor/github.com/openshift/api/oauth/v1/generated.pb.go b/vendor/github.com/openshift/api/oauth/v1/generated.pb.go deleted file mode 100644 index 43f452aa7ca70..0000000000000 --- a/vendor/github.com/openshift/api/oauth/v1/generated.pb.go +++ /dev/null @@ -1,3929 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: github.com/openshift/api/oauth/v1/generated.proto - -package v1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *ClusterRoleScopeRestriction) Reset() { *m = ClusterRoleScopeRestriction{} } -func (*ClusterRoleScopeRestriction) ProtoMessage() {} -func (*ClusterRoleScopeRestriction) Descriptor() ([]byte, []int) { - return fileDescriptor_bd688dca7ea39c8a, []int{0} -} -func (m *ClusterRoleScopeRestriction) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterRoleScopeRestriction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ClusterRoleScopeRestriction) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterRoleScopeRestriction.Merge(m, src) -} -func (m *ClusterRoleScopeRestriction) XXX_Size() int { - return m.Size() -} -func (m *ClusterRoleScopeRestriction) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterRoleScopeRestriction.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterRoleScopeRestriction proto.InternalMessageInfo - -func (m *OAuthAccessToken) Reset() { *m = OAuthAccessToken{} } -func (*OAuthAccessToken) ProtoMessage() {} -func (*OAuthAccessToken) Descriptor() ([]byte, []int) { - return fileDescriptor_bd688dca7ea39c8a, []int{1} -} -func (m *OAuthAccessToken) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OAuthAccessToken) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *OAuthAccessToken) XXX_Merge(src proto.Message) { - xxx_messageInfo_OAuthAccessToken.Merge(m, src) -} -func (m *OAuthAccessToken) XXX_Size() int { - return m.Size() -} -func (m *OAuthAccessToken) XXX_DiscardUnknown() { - xxx_messageInfo_OAuthAccessToken.DiscardUnknown(m) -} - -var xxx_messageInfo_OAuthAccessToken proto.InternalMessageInfo - -func (m *OAuthAccessTokenList) Reset() { *m = OAuthAccessTokenList{} } -func (*OAuthAccessTokenList) ProtoMessage() {} -func (*OAuthAccessTokenList) Descriptor() ([]byte, []int) { - return fileDescriptor_bd688dca7ea39c8a, []int{2} -} -func (m *OAuthAccessTokenList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OAuthAccessTokenList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *OAuthAccessTokenList) XXX_Merge(src proto.Message) { - xxx_messageInfo_OAuthAccessTokenList.Merge(m, src) -} -func (m *OAuthAccessTokenList) XXX_Size() int { - return m.Size() -} -func (m *OAuthAccessTokenList) XXX_DiscardUnknown() { - xxx_messageInfo_OAuthAccessTokenList.DiscardUnknown(m) -} - -var xxx_messageInfo_OAuthAccessTokenList proto.InternalMessageInfo - -func (m *OAuthAuthorizeToken) Reset() { *m = OAuthAuthorizeToken{} } -func (*OAuthAuthorizeToken) ProtoMessage() {} -func (*OAuthAuthorizeToken) Descriptor() ([]byte, []int) { - return fileDescriptor_bd688dca7ea39c8a, []int{3} -} -func (m *OAuthAuthorizeToken) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OAuthAuthorizeToken) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *OAuthAuthorizeToken) XXX_Merge(src proto.Message) { - xxx_messageInfo_OAuthAuthorizeToken.Merge(m, src) -} -func (m *OAuthAuthorizeToken) XXX_Size() int { - return m.Size() -} -func (m *OAuthAuthorizeToken) XXX_DiscardUnknown() { - xxx_messageInfo_OAuthAuthorizeToken.DiscardUnknown(m) -} - -var xxx_messageInfo_OAuthAuthorizeToken proto.InternalMessageInfo - -func (m *OAuthAuthorizeTokenList) Reset() { *m = OAuthAuthorizeTokenList{} } -func (*OAuthAuthorizeTokenList) ProtoMessage() {} -func (*OAuthAuthorizeTokenList) Descriptor() ([]byte, []int) { - return fileDescriptor_bd688dca7ea39c8a, []int{4} -} -func (m *OAuthAuthorizeTokenList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OAuthAuthorizeTokenList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *OAuthAuthorizeTokenList) XXX_Merge(src proto.Message) { - xxx_messageInfo_OAuthAuthorizeTokenList.Merge(m, src) -} -func (m *OAuthAuthorizeTokenList) XXX_Size() int { - return m.Size() -} -func (m *OAuthAuthorizeTokenList) XXX_DiscardUnknown() { - xxx_messageInfo_OAuthAuthorizeTokenList.DiscardUnknown(m) -} - -var xxx_messageInfo_OAuthAuthorizeTokenList proto.InternalMessageInfo - -func (m *OAuthClient) Reset() { *m = OAuthClient{} } -func (*OAuthClient) ProtoMessage() {} -func (*OAuthClient) Descriptor() ([]byte, []int) { - return fileDescriptor_bd688dca7ea39c8a, []int{5} -} -func (m *OAuthClient) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OAuthClient) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *OAuthClient) XXX_Merge(src proto.Message) { - xxx_messageInfo_OAuthClient.Merge(m, src) -} -func (m *OAuthClient) XXX_Size() int { - return m.Size() -} -func (m *OAuthClient) XXX_DiscardUnknown() { - xxx_messageInfo_OAuthClient.DiscardUnknown(m) -} - -var xxx_messageInfo_OAuthClient proto.InternalMessageInfo - -func (m *OAuthClientAuthorization) Reset() { *m = OAuthClientAuthorization{} } -func (*OAuthClientAuthorization) ProtoMessage() {} -func (*OAuthClientAuthorization) Descriptor() ([]byte, []int) { - return fileDescriptor_bd688dca7ea39c8a, []int{6} -} -func (m *OAuthClientAuthorization) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OAuthClientAuthorization) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *OAuthClientAuthorization) XXX_Merge(src proto.Message) { - xxx_messageInfo_OAuthClientAuthorization.Merge(m, src) -} -func (m *OAuthClientAuthorization) XXX_Size() int { - return m.Size() -} -func (m *OAuthClientAuthorization) XXX_DiscardUnknown() { - xxx_messageInfo_OAuthClientAuthorization.DiscardUnknown(m) -} - -var xxx_messageInfo_OAuthClientAuthorization proto.InternalMessageInfo - -func (m *OAuthClientAuthorizationList) Reset() { *m = OAuthClientAuthorizationList{} } -func (*OAuthClientAuthorizationList) ProtoMessage() {} -func (*OAuthClientAuthorizationList) Descriptor() ([]byte, []int) { - return fileDescriptor_bd688dca7ea39c8a, []int{7} -} -func (m *OAuthClientAuthorizationList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OAuthClientAuthorizationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *OAuthClientAuthorizationList) XXX_Merge(src proto.Message) { - xxx_messageInfo_OAuthClientAuthorizationList.Merge(m, src) -} -func (m *OAuthClientAuthorizationList) XXX_Size() int { - return m.Size() -} -func (m *OAuthClientAuthorizationList) XXX_DiscardUnknown() { - xxx_messageInfo_OAuthClientAuthorizationList.DiscardUnknown(m) -} - -var xxx_messageInfo_OAuthClientAuthorizationList proto.InternalMessageInfo - -func (m *OAuthClientList) Reset() { *m = OAuthClientList{} } -func (*OAuthClientList) ProtoMessage() {} -func (*OAuthClientList) Descriptor() ([]byte, []int) { - return fileDescriptor_bd688dca7ea39c8a, []int{8} -} -func (m *OAuthClientList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OAuthClientList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *OAuthClientList) XXX_Merge(src proto.Message) { - xxx_messageInfo_OAuthClientList.Merge(m, src) -} -func (m *OAuthClientList) XXX_Size() int { - return m.Size() -} -func (m *OAuthClientList) XXX_DiscardUnknown() { - xxx_messageInfo_OAuthClientList.DiscardUnknown(m) -} - -var xxx_messageInfo_OAuthClientList proto.InternalMessageInfo - -func (m *OAuthRedirectReference) Reset() { *m = OAuthRedirectReference{} } -func (*OAuthRedirectReference) ProtoMessage() {} -func (*OAuthRedirectReference) Descriptor() ([]byte, []int) { - return fileDescriptor_bd688dca7ea39c8a, []int{9} -} -func (m *OAuthRedirectReference) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OAuthRedirectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *OAuthRedirectReference) XXX_Merge(src proto.Message) { - xxx_messageInfo_OAuthRedirectReference.Merge(m, src) -} -func (m *OAuthRedirectReference) XXX_Size() int { - return m.Size() -} -func (m *OAuthRedirectReference) XXX_DiscardUnknown() { - xxx_messageInfo_OAuthRedirectReference.DiscardUnknown(m) -} - -var xxx_messageInfo_OAuthRedirectReference proto.InternalMessageInfo - -func (m *RedirectReference) Reset() { *m = RedirectReference{} } -func (*RedirectReference) ProtoMessage() {} -func (*RedirectReference) Descriptor() ([]byte, []int) { - return fileDescriptor_bd688dca7ea39c8a, []int{10} -} -func (m *RedirectReference) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RedirectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RedirectReference) XXX_Merge(src proto.Message) { - xxx_messageInfo_RedirectReference.Merge(m, src) -} -func (m *RedirectReference) XXX_Size() int { - return m.Size() -} -func (m *RedirectReference) XXX_DiscardUnknown() { - xxx_messageInfo_RedirectReference.DiscardUnknown(m) -} - -var xxx_messageInfo_RedirectReference proto.InternalMessageInfo - -func (m *ScopeRestriction) Reset() { *m = ScopeRestriction{} } -func (*ScopeRestriction) ProtoMessage() {} -func (*ScopeRestriction) Descriptor() ([]byte, []int) { - return fileDescriptor_bd688dca7ea39c8a, []int{11} -} -func (m *ScopeRestriction) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ScopeRestriction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ScopeRestriction) XXX_Merge(src proto.Message) { - xxx_messageInfo_ScopeRestriction.Merge(m, src) -} -func (m *ScopeRestriction) XXX_Size() int { - return m.Size() -} -func (m *ScopeRestriction) XXX_DiscardUnknown() { - xxx_messageInfo_ScopeRestriction.DiscardUnknown(m) -} - -var xxx_messageInfo_ScopeRestriction proto.InternalMessageInfo - -func init() { - proto.RegisterType((*ClusterRoleScopeRestriction)(nil), "github.com.openshift.api.oauth.v1.ClusterRoleScopeRestriction") - proto.RegisterType((*OAuthAccessToken)(nil), "github.com.openshift.api.oauth.v1.OAuthAccessToken") - proto.RegisterType((*OAuthAccessTokenList)(nil), "github.com.openshift.api.oauth.v1.OAuthAccessTokenList") - proto.RegisterType((*OAuthAuthorizeToken)(nil), "github.com.openshift.api.oauth.v1.OAuthAuthorizeToken") - proto.RegisterType((*OAuthAuthorizeTokenList)(nil), "github.com.openshift.api.oauth.v1.OAuthAuthorizeTokenList") - proto.RegisterType((*OAuthClient)(nil), "github.com.openshift.api.oauth.v1.OAuthClient") - proto.RegisterType((*OAuthClientAuthorization)(nil), "github.com.openshift.api.oauth.v1.OAuthClientAuthorization") - proto.RegisterType((*OAuthClientAuthorizationList)(nil), "github.com.openshift.api.oauth.v1.OAuthClientAuthorizationList") - proto.RegisterType((*OAuthClientList)(nil), "github.com.openshift.api.oauth.v1.OAuthClientList") - proto.RegisterType((*OAuthRedirectReference)(nil), "github.com.openshift.api.oauth.v1.OAuthRedirectReference") - proto.RegisterType((*RedirectReference)(nil), "github.com.openshift.api.oauth.v1.RedirectReference") - proto.RegisterType((*ScopeRestriction)(nil), "github.com.openshift.api.oauth.v1.ScopeRestriction") -} - -func init() { - proto.RegisterFile("github.com/openshift/api/oauth/v1/generated.proto", fileDescriptor_bd688dca7ea39c8a) -} - -var fileDescriptor_bd688dca7ea39c8a = []byte{ - // 1228 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x57, 0xcd, 0x6f, 0x1b, 0xc5, - 0x1b, 0xce, 0x26, 0xb6, 0x63, 0x8f, 0x9b, 0x0f, 0x4f, 0x9a, 0x76, 0x7f, 0x6d, 0x7f, 0xb6, 0x71, - 0x24, 0x6a, 0x04, 0xac, 0x49, 0x28, 0x55, 0xa5, 0x4a, 0x95, 0x6c, 0x53, 0x15, 0x0b, 0xd2, 0x4a, - 0xe3, 0x06, 0x2a, 0xe8, 0xa1, 0x93, 0xdd, 0x37, 0xf6, 0x90, 0xf5, 0xee, 0xb2, 0x33, 0x0e, 0x09, - 0xea, 0x81, 0x0b, 0x77, 0xfe, 0x11, 0x2e, 0xdc, 0x39, 0x20, 0x71, 0xc8, 0x09, 0xf5, 0xc0, 0xa1, - 0x27, 0x8b, 0x18, 0xf1, 0x4f, 0x70, 0x42, 0x3b, 0xbb, 0xde, 0x0f, 0x7f, 0x10, 0xe7, 0x12, 0x71, - 0xe0, 0xb6, 0xfb, 0x3e, 0xcf, 0xf3, 0xce, 0xc7, 0xbe, 0xcf, 0x3b, 0xb3, 0x68, 0xbb, 0xc3, 0x44, - 0xb7, 0xbf, 0xaf, 0xe9, 0x76, 0xaf, 0x66, 0x3b, 0x60, 0xf1, 0x2e, 0x3b, 0x10, 0x35, 0xea, 0xb0, - 0x9a, 0x4d, 0xfb, 0xa2, 0x5b, 0x3b, 0xda, 0xae, 0x75, 0xc0, 0x02, 0x97, 0x0a, 0x30, 0x34, 0xc7, - 0xb5, 0x85, 0x8d, 0xdf, 0x88, 0x24, 0x5a, 0x28, 0xd1, 0xa8, 0xc3, 0x34, 0x29, 0xd1, 0x8e, 0xb6, - 0x6f, 0xbc, 0x1b, 0xcb, 0xda, 0xb1, 0x3b, 0x76, 0x4d, 0x2a, 0xf7, 0xfb, 0x07, 0xf2, 0x4d, 0xbe, - 0xc8, 0x27, 0x3f, 0xe3, 0x8d, 0x3b, 0x87, 0xf7, 0xb8, 0xc6, 0x6c, 0x6f, 0xd8, 0x1e, 0xd5, 0xbb, - 0xcc, 0x02, 0xf7, 0xa4, 0xe6, 0x1c, 0x76, 0xbc, 0x00, 0xaf, 0xf5, 0x40, 0xd0, 0x29, 0xf3, 0xb8, - 0x71, 0x77, 0x96, 0xca, 0xed, 0x5b, 0x82, 0xf5, 0xa0, 0xc6, 0xf5, 0x2e, 0xf4, 0xe8, 0xb8, 0xae, - 0xf2, 0x93, 0x82, 0x6e, 0x36, 0xcd, 0x3e, 0x17, 0xe0, 0x12, 0xdb, 0x84, 0xb6, 0x6e, 0x3b, 0x40, - 0x80, 0x0b, 0x97, 0xe9, 0x82, 0xd9, 0x16, 0x7e, 0x1b, 0xe5, 0x5c, 0xdb, 0x84, 0xc7, 0xb4, 0x07, - 0x5c, 0x55, 0xca, 0x4b, 0xd5, 0x5c, 0x63, 0x65, 0x38, 0x28, 0xe5, 0xc8, 0x28, 0x48, 0x22, 0x1c, - 0x6b, 0x08, 0x59, 0xde, 0x83, 0x43, 0x75, 0xe0, 0xea, 0xa2, 0x64, 0xaf, 0x0e, 0x07, 0x25, 0xf4, - 0x38, 0x8c, 0x92, 0x18, 0x03, 0xd7, 0xd1, 0x1a, 0x35, 0x4d, 0xfb, 0xeb, 0x87, 0x5c, 0xa7, 0x26, - 0xf5, 0xc6, 0x53, 0x97, 0xca, 0x4a, 0x35, 0xdb, 0xb8, 0x7e, 0x3a, 0x28, 0x2d, 0x0c, 0x07, 0xa5, - 0xb5, 0x7a, 0x12, 0x26, 0xe3, 0xfc, 0xca, 0x9f, 0x29, 0xb4, 0xfe, 0xa4, 0xde, 0x17, 0xdd, 0xba, - 0xae, 0x03, 0xe7, 0x4f, 0xed, 0x43, 0xb0, 0xf0, 0x0b, 0x94, 0xf5, 0xf6, 0xc9, 0xa0, 0x82, 0xaa, - 0x4a, 0x59, 0xa9, 0xe6, 0x77, 0xde, 0xd3, 0xfc, 0xfd, 0xd1, 0xe2, 0xfb, 0xa3, 0x39, 0x87, 0x1d, - 0x2f, 0xc0, 0x35, 0x8f, 0xad, 0x1d, 0x6d, 0x6b, 0x4f, 0xf6, 0xbf, 0x04, 0x5d, 0xec, 0x82, 0xa0, - 0x0d, 0x1c, 0x4c, 0x01, 0x45, 0x31, 0x12, 0x66, 0xc5, 0x3b, 0x08, 0xe9, 0x26, 0x03, 0x4b, 0x78, - 0x2b, 0x53, 0x17, 0xcb, 0x4a, 0x35, 0x17, 0x29, 0x9a, 0x21, 0x42, 0x62, 0x2c, 0x5c, 0x43, 0x39, - 0x38, 0x76, 0x98, 0x0b, 0xbc, 0xe5, 0xaf, 0x73, 0xa9, 0x51, 0x08, 0x24, 0xb9, 0x87, 0x23, 0x80, - 0x44, 0x1c, 0x5c, 0x41, 0x19, 0xee, 0x7d, 0x0f, 0xae, 0xa6, 0xe4, 0x56, 0xa2, 0xe1, 0xa0, 0x94, - 0x91, 0x5f, 0x88, 0x93, 0x00, 0xc1, 0x1f, 0xa0, 0xbc, 0x0b, 0x06, 0x73, 0x41, 0x17, 0x7b, 0xa4, - 0xa5, 0xa6, 0xe5, 0x4c, 0x36, 0x82, 0xb4, 0x79, 0x12, 0x41, 0x24, 0xce, 0xc3, 0xef, 0xa0, 0x6c, - 0x9f, 0x83, 0x2b, 0x67, 0x9f, 0x91, 0x9a, 0xf5, 0x40, 0x93, 0xdd, 0x0b, 0xe2, 0x24, 0x64, 0xe0, - 0xb7, 0xd0, 0xb2, 0xf7, 0xbc, 0xd7, 0xfa, 0x50, 0x5d, 0x96, 0xe4, 0xb5, 0x80, 0xbc, 0xbc, 0xe7, - 0x87, 0xc9, 0x08, 0xc7, 0x0f, 0xd0, 0xaa, 0x57, 0xf7, 0xb6, 0xcb, 0xbe, 0x01, 0xf9, 0x31, 0xd4, - 0xac, 0x54, 0x5c, 0x0b, 0x14, 0xab, 0xf5, 0x04, 0x4a, 0xc6, 0xd8, 0xf8, 0x1e, 0xba, 0xe2, 0xc2, - 0x81, 0x0b, 0xbc, 0xeb, 0xab, 0x73, 0x52, 0x7d, 0x35, 0x50, 0x5f, 0x21, 0x31, 0x8c, 0x24, 0x98, - 0xf8, 0x39, 0x52, 0x99, 0x45, 0x75, 0xc1, 0x8e, 0x98, 0x38, 0x79, 0xca, 0x7a, 0x60, 0xf7, 0x45, - 0x1b, 0x74, 0xdb, 0x32, 0xb8, 0x8a, 0xca, 0x4a, 0x35, 0xdd, 0x28, 0x07, 0x59, 0xd4, 0xd6, 0x0c, - 0x1e, 0x99, 0x99, 0xa1, 0xf2, 0xab, 0x82, 0xae, 0x8e, 0xd7, 0xd9, 0x27, 0x8c, 0x0b, 0xfc, 0x7c, - 0xa2, 0xd6, 0xb4, 0xf9, 0x6a, 0xcd, 0x53, 0xcb, 0x4a, 0x0b, 0x77, 0x7e, 0x14, 0x89, 0xd5, 0xd9, - 0x33, 0x94, 0x66, 0x02, 0x7a, 0xbe, 0x99, 0xf2, 0x3b, 0xef, 0x6b, 0xe7, 0xb6, 0x1b, 0x6d, 0x7c, - 0x96, 0x8d, 0x95, 0x20, 0x7f, 0xba, 0xe5, 0x65, 0x22, 0x7e, 0xc2, 0xca, 0xcf, 0x29, 0xb4, 0xe1, - 0x53, 0x93, 0x1f, 0xe0, 0x3f, 0xef, 0x9c, 0xe7, 0x9d, 0x2d, 0x94, 0xe6, 0x82, 0x8a, 0x91, 0x71, - 0xc2, 0xed, 0x6d, 0x7b, 0x41, 0xe2, 0x63, 0x09, 0x83, 0x2d, 0x5f, 0xc4, 0x60, 0xd9, 0x73, 0x0c, - 0x76, 0x1f, 0xad, 0xe8, 0xb6, 0x01, 0xcd, 0x2e, 0x35, 0x4d, 0xb0, 0x3a, 0x10, 0x38, 0x64, 0x33, - 0x10, 0xac, 0x34, 0xe3, 0x20, 0x49, 0x72, 0xf1, 0x2e, 0xda, 0x48, 0x04, 0x76, 0x41, 0x74, 0x6d, - 0x43, 0xda, 0x23, 0xd7, 0xb8, 0x19, 0xa4, 0xd8, 0x68, 0x4e, 0x52, 0xc8, 0x34, 0x5d, 0xe5, 0x37, - 0x05, 0x5d, 0x9f, 0x52, 0x43, 0x97, 0xe0, 0x8b, 0x2f, 0x92, 0xbe, 0xb8, 0x3b, 0xb7, 0x2f, 0x12, - 0x13, 0x9d, 0x61, 0x8d, 0xef, 0x32, 0x28, 0x2f, 0xd9, 0x7e, 0x31, 0x5e, 0x82, 0x25, 0xde, 0x44, - 0x19, 0x0e, 0xba, 0x0b, 0x22, 0xb0, 0xc3, 0x6a, 0xc0, 0xce, 0xb4, 0x65, 0x94, 0x04, 0x28, 0x6e, - 0xa2, 0x02, 0x35, 0x0c, 0xe6, 0x9d, 0x7c, 0xd4, 0xf4, 0x31, 0xae, 0x2e, 0xc9, 0x02, 0xdf, 0x1c, - 0x0e, 0x4a, 0x85, 0xfa, 0x38, 0x48, 0x26, 0xf9, 0xb8, 0x8d, 0x36, 0x5d, 0xe0, 0x8e, 0x6d, 0x19, - 0x9f, 0x31, 0xd1, 0x0d, 0xbf, 0xa9, 0xe7, 0x14, 0xef, 0xec, 0xfd, 0x7f, 0x30, 0xf6, 0x26, 0x99, - 0x46, 0x22, 0xd3, 0xb5, 0xf8, 0x8e, 0xd7, 0xb7, 0x43, 0x8f, 0x70, 0x35, 0x2d, 0x27, 0xb5, 0xee, - 0xf7, 0xec, 0x28, 0x4e, 0x12, 0x2c, 0xdc, 0x42, 0xf9, 0x8e, 0x4b, 0x2d, 0x11, 0xd4, 0xa1, 0x6f, - 0xa8, 0xdb, 0x23, 0x07, 0x3e, 0x8a, 0xa0, 0xbf, 0x06, 0xa5, 0x75, 0xf9, 0xfa, 0x11, 0xb5, 0x0c, - 0x13, 0xdc, 0xa7, 0x27, 0x0e, 0x90, 0xb8, 0x16, 0xbf, 0x44, 0x05, 0x3e, 0x76, 0x79, 0xe1, 0xea, - 0xf2, 0xdc, 0x5d, 0x73, 0xfc, 0xe2, 0xd3, 0xf8, 0x5f, 0x30, 0x8b, 0xc2, 0x38, 0xc2, 0xc9, 0xe4, - 0x40, 0xf8, 0x19, 0x52, 0x69, 0xd4, 0x72, 0x77, 0xe9, 0x71, 0xbd, 0x03, 0xa3, 0xc3, 0x27, 0x2b, - 0x0f, 0x9f, 0x5b, 0xde, 0xc1, 0x53, 0x9f, 0xc1, 0x21, 0x33, 0xd5, 0xf8, 0x04, 0x6d, 0xc5, 0xb0, - 0x59, 0x27, 0x97, 0xec, 0x02, 0xe9, 0xc6, 0xed, 0xe1, 0xa0, 0xb4, 0x55, 0x3f, 0x9f, 0x4e, 0xe6, - 0xc9, 0x59, 0xf9, 0x61, 0x11, 0xa9, 0x31, 0x1f, 0x8c, 0xbc, 0x23, 0x2f, 0x5e, 0xff, 0xd2, 0x73, - 0x22, 0xde, 0x76, 0x97, 0x2e, 0xd2, 0x76, 0x53, 0xe7, 0xb4, 0xdd, 0xe8, 0x3c, 0x49, 0xcf, 0x3a, - 0x4f, 0x2a, 0x03, 0x05, 0xdd, 0x9a, 0xb5, 0x5f, 0x97, 0xd0, 0x13, 0x5f, 0x24, 0x7b, 0xe2, 0xfd, - 0x79, 0x7b, 0xe2, 0x94, 0xd9, 0xce, 0x68, 0x8c, 0xbf, 0x28, 0x68, 0x2d, 0x26, 0xb9, 0x84, 0x35, - 0xb5, 0x93, 0x6b, 0xd2, 0x2e, 0xb6, 0xa6, 0x19, 0xcb, 0x38, 0x53, 0xd0, 0x35, 0xc9, 0x1a, 0x75, - 0x26, 0x02, 0x07, 0xe0, 0x82, 0xa5, 0xc3, 0x25, 0x54, 0x35, 0xa0, 0x9c, 0x3b, 0x1a, 0x4e, 0x16, - 0x75, 0x7e, 0xe7, 0xce, 0x1c, 0xab, 0x9a, 0x98, 0x6a, 0x74, 0xff, 0x09, 0x43, 0x24, 0xca, 0x5c, - 0x79, 0x89, 0x0a, 0x93, 0xab, 0xdb, 0x42, 0xe9, 0x8e, 0x6b, 0xf7, 0x1d, 0xb9, 0xb4, 0xd8, 0xcd, - 0xe5, 0x91, 0x17, 0x24, 0x3e, 0x86, 0xcb, 0x28, 0x75, 0xc8, 0x2c, 0x23, 0x30, 0xdc, 0x95, 0x80, - 0x93, 0xfa, 0x98, 0x59, 0x06, 0x91, 0x88, 0xc7, 0xb0, 0x22, 0x83, 0x85, 0x0c, 0x69, 0x2e, 0x89, - 0x54, 0x7e, 0x54, 0xd0, 0xfa, 0x94, 0x5f, 0xc9, 0xac, 0xc9, 0x04, 0xb8, 0xd4, 0x1c, 0xfd, 0x49, - 0xae, 0x79, 0x5d, 0xfe, 0xe1, 0x31, 0xd5, 0xc5, 0xa7, 0xd4, 0xec, 0x03, 0x27, 0x21, 0x01, 0x7f, - 0x85, 0xf2, 0x7a, 0xf4, 0x5b, 0x1a, 0x6c, 0xd4, 0x83, 0x39, 0x36, 0xea, 0x1f, 0x7e, 0x66, 0xfd, - 0xf1, 0x62, 0x04, 0x12, 0x1f, 0xa3, 0x51, 0x3d, 0x3d, 0x2b, 0x2e, 0xbc, 0x3a, 0x2b, 0x2e, 0xbc, - 0x3e, 0x2b, 0x2e, 0x7c, 0x3b, 0x2c, 0x2a, 0xa7, 0xc3, 0xa2, 0xf2, 0x6a, 0x58, 0x54, 0x5e, 0x0f, - 0x8b, 0xca, 0xef, 0xc3, 0xa2, 0xf2, 0xfd, 0x1f, 0xc5, 0x85, 0xcf, 0x17, 0x8f, 0xb6, 0xff, 0x0e, - 0x00, 0x00, 0xff, 0xff, 0xd3, 0xf9, 0x68, 0xbb, 0x28, 0x10, 0x00, 0x00, -} - -func (m *ClusterRoleScopeRestriction) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterRoleScopeRestriction) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ClusterRoleScopeRestriction) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i-- - if m.AllowEscalation { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x18 - if len(m.Namespaces) > 0 { - for iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Namespaces[iNdEx]) - copy(dAtA[i:], m.Namespaces[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespaces[iNdEx]))) - i-- - dAtA[i] = 0x12 - } - } - if len(m.RoleNames) > 0 { - for iNdEx := len(m.RoleNames) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.RoleNames[iNdEx]) - copy(dAtA[i:], m.RoleNames[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.RoleNames[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *OAuthAccessToken) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *OAuthAccessToken) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *OAuthAccessToken) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i = encodeVarintGenerated(dAtA, i, uint64(m.InactivityTimeoutSeconds)) - i-- - dAtA[i] = 0x50 - i -= len(m.RefreshToken) - copy(dAtA[i:], m.RefreshToken) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.RefreshToken))) - i-- - dAtA[i] = 0x4a - i -= len(m.AuthorizeToken) - copy(dAtA[i:], m.AuthorizeToken) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.AuthorizeToken))) - i-- - dAtA[i] = 0x42 - i -= len(m.UserUID) - copy(dAtA[i:], m.UserUID) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.UserUID))) - i-- - dAtA[i] = 0x3a - i -= len(m.UserName) - copy(dAtA[i:], m.UserName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.UserName))) - i-- - dAtA[i] = 0x32 - i -= len(m.RedirectURI) - copy(dAtA[i:], m.RedirectURI) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.RedirectURI))) - i-- - dAtA[i] = 0x2a - if len(m.Scopes) > 0 { - for iNdEx := len(m.Scopes) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Scopes[iNdEx]) - copy(dAtA[i:], m.Scopes[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Scopes[iNdEx]))) - i-- - dAtA[i] = 0x22 - } - } - i = encodeVarintGenerated(dAtA, i, uint64(m.ExpiresIn)) - i-- - dAtA[i] = 0x18 - i -= len(m.ClientName) - copy(dAtA[i:], m.ClientName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ClientName))) - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *OAuthAccessTokenList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *OAuthAccessTokenList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *OAuthAccessTokenList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *OAuthAuthorizeToken) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *OAuthAuthorizeToken) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *OAuthAuthorizeToken) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.CodeChallengeMethod) - copy(dAtA[i:], m.CodeChallengeMethod) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.CodeChallengeMethod))) - i-- - dAtA[i] = 0x52 - i -= len(m.CodeChallenge) - copy(dAtA[i:], m.CodeChallenge) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.CodeChallenge))) - i-- - dAtA[i] = 0x4a - i -= len(m.UserUID) - copy(dAtA[i:], m.UserUID) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.UserUID))) - i-- - dAtA[i] = 0x42 - i -= len(m.UserName) - copy(dAtA[i:], m.UserName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.UserName))) - i-- - dAtA[i] = 0x3a - i -= len(m.State) - copy(dAtA[i:], m.State) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.State))) - i-- - dAtA[i] = 0x32 - i -= len(m.RedirectURI) - copy(dAtA[i:], m.RedirectURI) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.RedirectURI))) - i-- - dAtA[i] = 0x2a - if len(m.Scopes) > 0 { - for iNdEx := len(m.Scopes) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Scopes[iNdEx]) - copy(dAtA[i:], m.Scopes[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Scopes[iNdEx]))) - i-- - dAtA[i] = 0x22 - } - } - i = encodeVarintGenerated(dAtA, i, uint64(m.ExpiresIn)) - i-- - dAtA[i] = 0x18 - i -= len(m.ClientName) - copy(dAtA[i:], m.ClientName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ClientName))) - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *OAuthAuthorizeTokenList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *OAuthAuthorizeTokenList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *OAuthAuthorizeTokenList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *OAuthClient) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *OAuthClient) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *OAuthClient) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.AccessTokenInactivityTimeoutSeconds != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.AccessTokenInactivityTimeoutSeconds)) - i-- - dAtA[i] = 0x48 - } - if m.AccessTokenMaxAgeSeconds != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.AccessTokenMaxAgeSeconds)) - i-- - dAtA[i] = 0x40 - } - if len(m.ScopeRestrictions) > 0 { - for iNdEx := len(m.ScopeRestrictions) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.ScopeRestrictions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x3a - } - } - i -= len(m.GrantMethod) - copy(dAtA[i:], m.GrantMethod) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.GrantMethod))) - i-- - dAtA[i] = 0x32 - if len(m.RedirectURIs) > 0 { - for iNdEx := len(m.RedirectURIs) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.RedirectURIs[iNdEx]) - copy(dAtA[i:], m.RedirectURIs[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.RedirectURIs[iNdEx]))) - i-- - dAtA[i] = 0x2a - } - } - i-- - if m.RespondWithChallenges { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x20 - if len(m.AdditionalSecrets) > 0 { - for iNdEx := len(m.AdditionalSecrets) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.AdditionalSecrets[iNdEx]) - copy(dAtA[i:], m.AdditionalSecrets[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.AdditionalSecrets[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - i -= len(m.Secret) - copy(dAtA[i:], m.Secret) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Secret))) - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *OAuthClientAuthorization) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *OAuthClientAuthorization) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *OAuthClientAuthorization) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Scopes) > 0 { - for iNdEx := len(m.Scopes) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Scopes[iNdEx]) - copy(dAtA[i:], m.Scopes[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Scopes[iNdEx]))) - i-- - dAtA[i] = 0x2a - } - } - i -= len(m.UserUID) - copy(dAtA[i:], m.UserUID) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.UserUID))) - i-- - dAtA[i] = 0x22 - i -= len(m.UserName) - copy(dAtA[i:], m.UserName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.UserName))) - i-- - dAtA[i] = 0x1a - i -= len(m.ClientName) - copy(dAtA[i:], m.ClientName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ClientName))) - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *OAuthClientAuthorizationList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *OAuthClientAuthorizationList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *OAuthClientAuthorizationList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *OAuthClientList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *OAuthClientList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *OAuthClientList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *OAuthRedirectReference) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *OAuthRedirectReference) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *OAuthRedirectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Reference.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RedirectReference) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RedirectReference) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RedirectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0x1a - i -= len(m.Kind) - copy(dAtA[i:], m.Kind) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind))) - i-- - dAtA[i] = 0x12 - i -= len(m.Group) - copy(dAtA[i:], m.Group) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Group))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ScopeRestriction) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ScopeRestriction) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ScopeRestriction) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.ClusterRole != nil { - { - size, err := m.ClusterRole.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - if len(m.ExactValues) > 0 { - for iNdEx := len(m.ExactValues) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.ExactValues[iNdEx]) - copy(dAtA[i:], m.ExactValues[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ExactValues[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *ClusterRoleScopeRestriction) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.RoleNames) > 0 { - for _, s := range m.RoleNames { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.Namespaces) > 0 { - for _, s := range m.Namespaces { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - n += 2 - return n -} - -func (m *OAuthAccessToken) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.ClientName) - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.ExpiresIn)) - if len(m.Scopes) > 0 { - for _, s := range m.Scopes { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.RedirectURI) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.UserName) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.UserUID) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.AuthorizeToken) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.RefreshToken) - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.InactivityTimeoutSeconds)) - return n -} - -func (m *OAuthAccessTokenList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *OAuthAuthorizeToken) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.ClientName) - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.ExpiresIn)) - if len(m.Scopes) > 0 { - for _, s := range m.Scopes { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.RedirectURI) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.State) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.UserName) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.UserUID) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.CodeChallenge) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.CodeChallengeMethod) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *OAuthAuthorizeTokenList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *OAuthClient) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Secret) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.AdditionalSecrets) > 0 { - for _, s := range m.AdditionalSecrets { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - n += 2 - if len(m.RedirectURIs) > 0 { - for _, s := range m.RedirectURIs { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.GrantMethod) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.ScopeRestrictions) > 0 { - for _, e := range m.ScopeRestrictions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if m.AccessTokenMaxAgeSeconds != nil { - n += 1 + sovGenerated(uint64(*m.AccessTokenMaxAgeSeconds)) - } - if m.AccessTokenInactivityTimeoutSeconds != nil { - n += 1 + sovGenerated(uint64(*m.AccessTokenInactivityTimeoutSeconds)) - } - return n -} - -func (m *OAuthClientAuthorization) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.ClientName) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.UserName) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.UserUID) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Scopes) > 0 { - for _, s := range m.Scopes { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *OAuthClientAuthorizationList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *OAuthClientList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *OAuthRedirectReference) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Reference.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *RedirectReference) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Group) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Kind) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ScopeRestriction) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.ExactValues) > 0 { - for _, s := range m.ExactValues { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if m.ClusterRole != nil { - l = m.ClusterRole.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *ClusterRoleScopeRestriction) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ClusterRoleScopeRestriction{`, - `RoleNames:` + fmt.Sprintf("%v", this.RoleNames) + `,`, - `Namespaces:` + fmt.Sprintf("%v", this.Namespaces) + `,`, - `AllowEscalation:` + fmt.Sprintf("%v", this.AllowEscalation) + `,`, - `}`, - }, "") - return s -} -func (this *OAuthAccessToken) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&OAuthAccessToken{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `ClientName:` + fmt.Sprintf("%v", this.ClientName) + `,`, - `ExpiresIn:` + fmt.Sprintf("%v", this.ExpiresIn) + `,`, - `Scopes:` + fmt.Sprintf("%v", this.Scopes) + `,`, - `RedirectURI:` + fmt.Sprintf("%v", this.RedirectURI) + `,`, - `UserName:` + fmt.Sprintf("%v", this.UserName) + `,`, - `UserUID:` + fmt.Sprintf("%v", this.UserUID) + `,`, - `AuthorizeToken:` + fmt.Sprintf("%v", this.AuthorizeToken) + `,`, - `RefreshToken:` + fmt.Sprintf("%v", this.RefreshToken) + `,`, - `InactivityTimeoutSeconds:` + fmt.Sprintf("%v", this.InactivityTimeoutSeconds) + `,`, - `}`, - }, "") - return s -} -func (this *OAuthAccessTokenList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]OAuthAccessToken{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "OAuthAccessToken", "OAuthAccessToken", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&OAuthAccessTokenList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *OAuthAuthorizeToken) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&OAuthAuthorizeToken{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `ClientName:` + fmt.Sprintf("%v", this.ClientName) + `,`, - `ExpiresIn:` + fmt.Sprintf("%v", this.ExpiresIn) + `,`, - `Scopes:` + fmt.Sprintf("%v", this.Scopes) + `,`, - `RedirectURI:` + fmt.Sprintf("%v", this.RedirectURI) + `,`, - `State:` + fmt.Sprintf("%v", this.State) + `,`, - `UserName:` + fmt.Sprintf("%v", this.UserName) + `,`, - `UserUID:` + fmt.Sprintf("%v", this.UserUID) + `,`, - `CodeChallenge:` + fmt.Sprintf("%v", this.CodeChallenge) + `,`, - `CodeChallengeMethod:` + fmt.Sprintf("%v", this.CodeChallengeMethod) + `,`, - `}`, - }, "") - return s -} -func (this *OAuthAuthorizeTokenList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]OAuthAuthorizeToken{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "OAuthAuthorizeToken", "OAuthAuthorizeToken", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&OAuthAuthorizeTokenList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *OAuthClient) String() string { - if this == nil { - return "nil" - } - repeatedStringForScopeRestrictions := "[]ScopeRestriction{" - for _, f := range this.ScopeRestrictions { - repeatedStringForScopeRestrictions += strings.Replace(strings.Replace(f.String(), "ScopeRestriction", "ScopeRestriction", 1), `&`, ``, 1) + "," - } - repeatedStringForScopeRestrictions += "}" - s := strings.Join([]string{`&OAuthClient{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Secret:` + fmt.Sprintf("%v", this.Secret) + `,`, - `AdditionalSecrets:` + fmt.Sprintf("%v", this.AdditionalSecrets) + `,`, - `RespondWithChallenges:` + fmt.Sprintf("%v", this.RespondWithChallenges) + `,`, - `RedirectURIs:` + fmt.Sprintf("%v", this.RedirectURIs) + `,`, - `GrantMethod:` + fmt.Sprintf("%v", this.GrantMethod) + `,`, - `ScopeRestrictions:` + repeatedStringForScopeRestrictions + `,`, - `AccessTokenMaxAgeSeconds:` + valueToStringGenerated(this.AccessTokenMaxAgeSeconds) + `,`, - `AccessTokenInactivityTimeoutSeconds:` + valueToStringGenerated(this.AccessTokenInactivityTimeoutSeconds) + `,`, - `}`, - }, "") - return s -} -func (this *OAuthClientAuthorization) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&OAuthClientAuthorization{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `ClientName:` + fmt.Sprintf("%v", this.ClientName) + `,`, - `UserName:` + fmt.Sprintf("%v", this.UserName) + `,`, - `UserUID:` + fmt.Sprintf("%v", this.UserUID) + `,`, - `Scopes:` + fmt.Sprintf("%v", this.Scopes) + `,`, - `}`, - }, "") - return s -} -func (this *OAuthClientAuthorizationList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]OAuthClientAuthorization{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "OAuthClientAuthorization", "OAuthClientAuthorization", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&OAuthClientAuthorizationList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *OAuthClientList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]OAuthClient{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "OAuthClient", "OAuthClient", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&OAuthClientList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *OAuthRedirectReference) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&OAuthRedirectReference{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Reference:` + strings.Replace(strings.Replace(this.Reference.String(), "RedirectReference", "RedirectReference", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *RedirectReference) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&RedirectReference{`, - `Group:` + fmt.Sprintf("%v", this.Group) + `,`, - `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `}`, - }, "") - return s -} -func (this *ScopeRestriction) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ScopeRestriction{`, - `ExactValues:` + fmt.Sprintf("%v", this.ExactValues) + `,`, - `ClusterRole:` + strings.Replace(this.ClusterRole.String(), "ClusterRoleScopeRestriction", "ClusterRoleScopeRestriction", 1) + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *ClusterRoleScopeRestriction) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterRoleScopeRestriction: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterRoleScopeRestriction: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RoleNames", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RoleNames = append(m.RoleNames, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespaces", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Namespaces = append(m.Namespaces, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AllowEscalation", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.AllowEscalation = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OAuthAccessToken) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: OAuthAccessToken: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OAuthAccessToken: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClientName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ClientName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ExpiresIn", wireType) - } - m.ExpiresIn = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ExpiresIn |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Scopes", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Scopes = append(m.Scopes, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RedirectURI", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RedirectURI = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UserName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.UserName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UserUID", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.UserUID = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AuthorizeToken", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AuthorizeToken = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RefreshToken", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RefreshToken = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field InactivityTimeoutSeconds", wireType) - } - m.InactivityTimeoutSeconds = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.InactivityTimeoutSeconds |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OAuthAccessTokenList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: OAuthAccessTokenList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OAuthAccessTokenList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, OAuthAccessToken{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OAuthAuthorizeToken) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: OAuthAuthorizeToken: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OAuthAuthorizeToken: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClientName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ClientName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ExpiresIn", wireType) - } - m.ExpiresIn = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ExpiresIn |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Scopes", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Scopes = append(m.Scopes, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RedirectURI", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RedirectURI = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.State = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UserName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.UserName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UserUID", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.UserUID = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CodeChallenge", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.CodeChallenge = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CodeChallengeMethod", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.CodeChallengeMethod = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OAuthAuthorizeTokenList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: OAuthAuthorizeTokenList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OAuthAuthorizeTokenList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, OAuthAuthorizeToken{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OAuthClient) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: OAuthClient: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OAuthClient: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Secret", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Secret = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AdditionalSecrets", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AdditionalSecrets = append(m.AdditionalSecrets, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RespondWithChallenges", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.RespondWithChallenges = bool(v != 0) - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RedirectURIs", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RedirectURIs = append(m.RedirectURIs, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GrantMethod", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.GrantMethod = GrantHandlerType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ScopeRestrictions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ScopeRestrictions = append(m.ScopeRestrictions, ScopeRestriction{}) - if err := m.ScopeRestrictions[len(m.ScopeRestrictions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AccessTokenMaxAgeSeconds", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.AccessTokenMaxAgeSeconds = &v - case 9: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AccessTokenInactivityTimeoutSeconds", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.AccessTokenInactivityTimeoutSeconds = &v - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OAuthClientAuthorization) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: OAuthClientAuthorization: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OAuthClientAuthorization: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClientName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ClientName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UserName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.UserName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UserUID", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.UserUID = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Scopes", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Scopes = append(m.Scopes, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OAuthClientAuthorizationList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: OAuthClientAuthorizationList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OAuthClientAuthorizationList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, OAuthClientAuthorization{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OAuthClientList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: OAuthClientList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OAuthClientList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, OAuthClient{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OAuthRedirectReference) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: OAuthRedirectReference: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OAuthRedirectReference: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reference", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Reference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RedirectReference) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RedirectReference: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RedirectReference: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Group", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Group = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Kind = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ScopeRestriction) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ScopeRestriction: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ScopeRestriction: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ExactValues", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ExactValues = append(m.ExactValues, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClusterRole", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.ClusterRole == nil { - m.ClusterRole = &ClusterRoleScopeRestriction{} - } - if err := m.ClusterRole.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/vendor/github.com/openshift/api/oauth/v1/generated.proto b/vendor/github.com/openshift/api/oauth/v1/generated.proto deleted file mode 100644 index e7a8c5c1e7d1c..0000000000000 --- a/vendor/github.com/openshift/api/oauth/v1/generated.proto +++ /dev/null @@ -1,218 +0,0 @@ - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = 'proto2'; - -package github.com.openshift.api.oauth.v1; - -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v1"; - -// ClusterRoleScopeRestriction describes restrictions on cluster role scopes -message ClusterRoleScopeRestriction { - // RoleNames is the list of cluster roles that can referenced. * means anything - repeated string roleNames = 1; - - // Namespaces is the list of namespaces that can be referenced. * means any of them (including *) - repeated string namespaces = 2; - - // AllowEscalation indicates whether you can request roles and their escalating resources - optional bool allowEscalation = 3; -} - -// OAuthAccessToken describes an OAuth access token -message OAuthAccessToken { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // ClientName references the client that created this token. - optional string clientName = 2; - - // ExpiresIn is the seconds from CreationTime before this token expires. - optional int64 expiresIn = 3; - - // Scopes is an array of the requested scopes. - repeated string scopes = 4; - - // RedirectURI is the redirection associated with the token. - optional string redirectURI = 5; - - // UserName is the user name associated with this token - optional string userName = 6; - - // UserUID is the unique UID associated with this token - optional string userUID = 7; - - // AuthorizeToken contains the token that authorized this token - optional string authorizeToken = 8; - - // RefreshToken is the value by which this token can be renewed. Can be blank. - optional string refreshToken = 9; - - // InactivityTimeoutSeconds is the value in seconds, from the - // CreationTimestamp, after which this token can no longer be used. - // The value is automatically incremented when the token is used. - optional int32 inactivityTimeoutSeconds = 10; -} - -// OAuthAccessTokenList is a collection of OAuth access tokens -message OAuthAccessTokenList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is the list of OAuth access tokens - repeated OAuthAccessToken items = 2; -} - -// OAuthAuthorizeToken describes an OAuth authorization token -message OAuthAuthorizeToken { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // ClientName references the client that created this token. - optional string clientName = 2; - - // ExpiresIn is the seconds from CreationTime before this token expires. - optional int64 expiresIn = 3; - - // Scopes is an array of the requested scopes. - repeated string scopes = 4; - - // RedirectURI is the redirection associated with the token. - optional string redirectURI = 5; - - // State data from request - optional string state = 6; - - // UserName is the user name associated with this token - optional string userName = 7; - - // UserUID is the unique UID associated with this token. UserUID and UserName must both match - // for this token to be valid. - optional string userUID = 8; - - // CodeChallenge is the optional code_challenge associated with this authorization code, as described in rfc7636 - optional string codeChallenge = 9; - - // CodeChallengeMethod is the optional code_challenge_method associated with this authorization code, as described in rfc7636 - optional string codeChallengeMethod = 10; -} - -// OAuthAuthorizeTokenList is a collection of OAuth authorization tokens -message OAuthAuthorizeTokenList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is the list of OAuth authorization tokens - repeated OAuthAuthorizeToken items = 2; -} - -// OAuthClient describes an OAuth client -message OAuthClient { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Secret is the unique secret associated with a client - optional string secret = 2; - - // AdditionalSecrets holds other secrets that may be used to identify the client. This is useful for rotation - // and for service account token validation - repeated string additionalSecrets = 3; - - // RespondWithChallenges indicates whether the client wants authentication needed responses made in the form of challenges instead of redirects - optional bool respondWithChallenges = 4; - - // RedirectURIs is the valid redirection URIs associated with a client - // +patchStrategy=merge - repeated string redirectURIs = 5; - - // GrantMethod is a required field which determines how to handle grants for this client. - // Valid grant handling methods are: - // - auto: always approves grant requests, useful for trusted clients - // - prompt: prompts the end user for approval of grant requests, useful for third-party clients - optional string grantMethod = 6; - - // ScopeRestrictions describes which scopes this client can request. Each requested scope - // is checked against each restriction. If any restriction matches, then the scope is allowed. - // If no restriction matches, then the scope is denied. - repeated ScopeRestriction scopeRestrictions = 7; - - // AccessTokenMaxAgeSeconds overrides the default access token max age for tokens granted to this client. - // 0 means no expiration. - optional int32 accessTokenMaxAgeSeconds = 8; - - // AccessTokenInactivityTimeoutSeconds overrides the default token - // inactivity timeout for tokens granted to this client. - // The value represents the maximum amount of time that can occur between - // consecutive uses of the token. Tokens become invalid if they are not - // used within this temporal window. The user will need to acquire a new - // token to regain access once a token times out. - // This value needs to be set only if the default set in configuration is - // not appropriate for this client. Valid values are: - // - 0: Tokens for this client never time out - // - X: Tokens time out if there is no activity for X seconds - // The current minimum allowed value for X is 300 (5 minutes) - optional int32 accessTokenInactivityTimeoutSeconds = 9; -} - -// OAuthClientAuthorization describes an authorization created by an OAuth client -message OAuthClientAuthorization { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // ClientName references the client that created this authorization - optional string clientName = 2; - - // UserName is the user name that authorized this client - optional string userName = 3; - - // UserUID is the unique UID associated with this authorization. UserUID and UserName - // must both match for this authorization to be valid. - optional string userUID = 4; - - // Scopes is an array of the granted scopes. - repeated string scopes = 5; -} - -// OAuthClientAuthorizationList is a collection of OAuth client authorizations -message OAuthClientAuthorizationList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is the list of OAuth client authorizations - repeated OAuthClientAuthorization items = 2; -} - -// OAuthClientList is a collection of OAuth clients -message OAuthClientList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is the list of OAuth clients - repeated OAuthClient items = 2; -} - -// OAuthRedirectReference is a reference to an OAuth redirect object. -message OAuthRedirectReference { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // The reference to an redirect object in the current namespace. - optional RedirectReference reference = 2; -} - -// RedirectReference specifies the target in the current namespace that resolves into redirect URIs. Only the 'Route' kind is currently allowed. -message RedirectReference { - // The group of the target that is being referred to. - optional string group = 1; - - // The kind of the target that is being referred to. Currently, only 'Route' is allowed. - optional string kind = 2; - - // The name of the target that is being referred to. e.g. name of the Route. - optional string name = 3; -} - -// ScopeRestriction describe one restriction on scopes. Exactly one option must be non-nil. -message ScopeRestriction { - // ExactValues means the scope has to match a particular set of strings exactly - repeated string literals = 1; - - // ClusterRole describes a set of restrictions for cluster role scoping. - optional ClusterRoleScopeRestriction clusterRole = 2; -} - diff --git a/vendor/github.com/openshift/api/oauth/v1/legacy.go b/vendor/github.com/openshift/api/oauth/v1/legacy.go deleted file mode 100644 index 65b57d2431255..0000000000000 --- a/vendor/github.com/openshift/api/oauth/v1/legacy.go +++ /dev/null @@ -1,30 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - extensionsv1beta1 "k8s.io/api/extensions/v1beta1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - legacyGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} - legacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, corev1.AddToScheme, extensionsv1beta1.AddToScheme) - DeprecatedInstallWithoutGroup = legacySchemeBuilder.AddToScheme -) - -func addLegacyKnownTypes(scheme *runtime.Scheme) error { - types := []runtime.Object{ - &OAuthAccessToken{}, - &OAuthAccessTokenList{}, - &OAuthAuthorizeToken{}, - &OAuthAuthorizeTokenList{}, - &OAuthClient{}, - &OAuthClientList{}, - &OAuthClientAuthorization{}, - &OAuthClientAuthorizationList{}, - &OAuthRedirectReference{}, - } - scheme.AddKnownTypes(legacyGroupVersion, types...) - return nil -} diff --git a/vendor/github.com/openshift/api/oauth/v1/register.go b/vendor/github.com/openshift/api/oauth/v1/register.go deleted file mode 100644 index 37278c64147cb..0000000000000 --- a/vendor/github.com/openshift/api/oauth/v1/register.go +++ /dev/null @@ -1,45 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - GroupName = "oauth.openshift.io" - GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - // Install is a function which adds this version to a scheme - Install = schemeBuilder.AddToScheme - - // SchemeGroupVersion generated code relies on this name - // Deprecated - SchemeGroupVersion = GroupVersion - // AddToScheme exists solely to keep the old generators creating valid code - // DEPRECATED - AddToScheme = schemeBuilder.AddToScheme -) - -// Resource generated code relies on this being here, but it logically belongs to the group -// DEPRECATED -func Resource(resource string) schema.GroupResource { - return schema.GroupResource{Group: GroupName, Resource: resource} -} - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &OAuthAccessToken{}, - &OAuthAccessTokenList{}, - &OAuthAuthorizeToken{}, - &OAuthAuthorizeTokenList{}, - &OAuthClient{}, - &OAuthClientList{}, - &OAuthClientAuthorization{}, - &OAuthClientAuthorizationList{}, - &OAuthRedirectReference{}, - ) - metav1.AddToGroupVersion(scheme, GroupVersion) - return nil -} diff --git a/vendor/github.com/openshift/api/oauth/v1/types.go b/vendor/github.com/openshift/api/oauth/v1/types.go deleted file mode 100644 index 64bc17304706b..0000000000000 --- a/vendor/github.com/openshift/api/oauth/v1/types.go +++ /dev/null @@ -1,254 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// OAuthAccessToken describes an OAuth access token -type OAuthAccessToken struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // ClientName references the client that created this token. - ClientName string `json:"clientName,omitempty" protobuf:"bytes,2,opt,name=clientName"` - - // ExpiresIn is the seconds from CreationTime before this token expires. - ExpiresIn int64 `json:"expiresIn,omitempty" protobuf:"varint,3,opt,name=expiresIn"` - - // Scopes is an array of the requested scopes. - Scopes []string `json:"scopes,omitempty" protobuf:"bytes,4,rep,name=scopes"` - - // RedirectURI is the redirection associated with the token. - RedirectURI string `json:"redirectURI,omitempty" protobuf:"bytes,5,opt,name=redirectURI"` - - // UserName is the user name associated with this token - UserName string `json:"userName,omitempty" protobuf:"bytes,6,opt,name=userName"` - - // UserUID is the unique UID associated with this token - UserUID string `json:"userUID,omitempty" protobuf:"bytes,7,opt,name=userUID"` - - // AuthorizeToken contains the token that authorized this token - AuthorizeToken string `json:"authorizeToken,omitempty" protobuf:"bytes,8,opt,name=authorizeToken"` - - // RefreshToken is the value by which this token can be renewed. Can be blank. - RefreshToken string `json:"refreshToken,omitempty" protobuf:"bytes,9,opt,name=refreshToken"` - - // InactivityTimeoutSeconds is the value in seconds, from the - // CreationTimestamp, after which this token can no longer be used. - // The value is automatically incremented when the token is used. - InactivityTimeoutSeconds int32 `json:"inactivityTimeoutSeconds,omitempty" protobuf:"varint,10,opt,name=inactivityTimeoutSeconds"` -} - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// OAuthAuthorizeToken describes an OAuth authorization token -type OAuthAuthorizeToken struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // ClientName references the client that created this token. - ClientName string `json:"clientName,omitempty" protobuf:"bytes,2,opt,name=clientName"` - - // ExpiresIn is the seconds from CreationTime before this token expires. - ExpiresIn int64 `json:"expiresIn,omitempty" protobuf:"varint,3,opt,name=expiresIn"` - - // Scopes is an array of the requested scopes. - Scopes []string `json:"scopes,omitempty" protobuf:"bytes,4,rep,name=scopes"` - - // RedirectURI is the redirection associated with the token. - RedirectURI string `json:"redirectURI,omitempty" protobuf:"bytes,5,opt,name=redirectURI"` - - // State data from request - State string `json:"state,omitempty" protobuf:"bytes,6,opt,name=state"` - - // UserName is the user name associated with this token - UserName string `json:"userName,omitempty" protobuf:"bytes,7,opt,name=userName"` - - // UserUID is the unique UID associated with this token. UserUID and UserName must both match - // for this token to be valid. - UserUID string `json:"userUID,omitempty" protobuf:"bytes,8,opt,name=userUID"` - - // CodeChallenge is the optional code_challenge associated with this authorization code, as described in rfc7636 - CodeChallenge string `json:"codeChallenge,omitempty" protobuf:"bytes,9,opt,name=codeChallenge"` - - // CodeChallengeMethod is the optional code_challenge_method associated with this authorization code, as described in rfc7636 - CodeChallengeMethod string `json:"codeChallengeMethod,omitempty" protobuf:"bytes,10,opt,name=codeChallengeMethod"` -} - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// OAuthClient describes an OAuth client -type OAuthClient struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Secret is the unique secret associated with a client - Secret string `json:"secret,omitempty" protobuf:"bytes,2,opt,name=secret"` - - // AdditionalSecrets holds other secrets that may be used to identify the client. This is useful for rotation - // and for service account token validation - AdditionalSecrets []string `json:"additionalSecrets,omitempty" protobuf:"bytes,3,rep,name=additionalSecrets"` - - // RespondWithChallenges indicates whether the client wants authentication needed responses made in the form of challenges instead of redirects - RespondWithChallenges bool `json:"respondWithChallenges,omitempty" protobuf:"varint,4,opt,name=respondWithChallenges"` - - // RedirectURIs is the valid redirection URIs associated with a client - // +patchStrategy=merge - RedirectURIs []string `json:"redirectURIs,omitempty" patchStrategy:"merge" protobuf:"bytes,5,rep,name=redirectURIs"` - - // GrantMethod is a required field which determines how to handle grants for this client. - // Valid grant handling methods are: - // - auto: always approves grant requests, useful for trusted clients - // - prompt: prompts the end user for approval of grant requests, useful for third-party clients - GrantMethod GrantHandlerType `json:"grantMethod,omitempty" protobuf:"bytes,6,opt,name=grantMethod,casttype=GrantHandlerType"` - - // ScopeRestrictions describes which scopes this client can request. Each requested scope - // is checked against each restriction. If any restriction matches, then the scope is allowed. - // If no restriction matches, then the scope is denied. - ScopeRestrictions []ScopeRestriction `json:"scopeRestrictions,omitempty" protobuf:"bytes,7,rep,name=scopeRestrictions"` - - // AccessTokenMaxAgeSeconds overrides the default access token max age for tokens granted to this client. - // 0 means no expiration. - AccessTokenMaxAgeSeconds *int32 `json:"accessTokenMaxAgeSeconds,omitempty" protobuf:"varint,8,opt,name=accessTokenMaxAgeSeconds"` - - // AccessTokenInactivityTimeoutSeconds overrides the default token - // inactivity timeout for tokens granted to this client. - // The value represents the maximum amount of time that can occur between - // consecutive uses of the token. Tokens become invalid if they are not - // used within this temporal window. The user will need to acquire a new - // token to regain access once a token times out. - // This value needs to be set only if the default set in configuration is - // not appropriate for this client. Valid values are: - // - 0: Tokens for this client never time out - // - X: Tokens time out if there is no activity for X seconds - // The current minimum allowed value for X is 300 (5 minutes) - AccessTokenInactivityTimeoutSeconds *int32 `json:"accessTokenInactivityTimeoutSeconds,omitempty" protobuf:"varint,9,opt,name=accessTokenInactivityTimeoutSeconds"` -} - -type GrantHandlerType string - -const ( - // GrantHandlerAuto auto-approves client authorization grant requests - GrantHandlerAuto GrantHandlerType = "auto" - // GrantHandlerPrompt prompts the user to approve new client authorization grant requests - GrantHandlerPrompt GrantHandlerType = "prompt" - // GrantHandlerDeny auto-denies client authorization grant requests - GrantHandlerDeny GrantHandlerType = "deny" -) - -// ScopeRestriction describe one restriction on scopes. Exactly one option must be non-nil. -type ScopeRestriction struct { - // ExactValues means the scope has to match a particular set of strings exactly - ExactValues []string `json:"literals,omitempty" protobuf:"bytes,1,rep,name=literals"` - - // ClusterRole describes a set of restrictions for cluster role scoping. - ClusterRole *ClusterRoleScopeRestriction `json:"clusterRole,omitempty" protobuf:"bytes,2,opt,name=clusterRole"` -} - -// ClusterRoleScopeRestriction describes restrictions on cluster role scopes -type ClusterRoleScopeRestriction struct { - // RoleNames is the list of cluster roles that can referenced. * means anything - RoleNames []string `json:"roleNames" protobuf:"bytes,1,rep,name=roleNames"` - // Namespaces is the list of namespaces that can be referenced. * means any of them (including *) - Namespaces []string `json:"namespaces" protobuf:"bytes,2,rep,name=namespaces"` - // AllowEscalation indicates whether you can request roles and their escalating resources - AllowEscalation bool `json:"allowEscalation" protobuf:"varint,3,opt,name=allowEscalation"` -} - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// OAuthClientAuthorization describes an authorization created by an OAuth client -type OAuthClientAuthorization struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // ClientName references the client that created this authorization - ClientName string `json:"clientName,omitempty" protobuf:"bytes,2,opt,name=clientName"` - - // UserName is the user name that authorized this client - UserName string `json:"userName,omitempty" protobuf:"bytes,3,opt,name=userName"` - - // UserUID is the unique UID associated with this authorization. UserUID and UserName - // must both match for this authorization to be valid. - UserUID string `json:"userUID,omitempty" protobuf:"bytes,4,opt,name=userUID"` - - // Scopes is an array of the granted scopes. - Scopes []string `json:"scopes,omitempty" protobuf:"bytes,5,rep,name=scopes"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// OAuthAccessTokenList is a collection of OAuth access tokens -type OAuthAccessTokenList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is the list of OAuth access tokens - Items []OAuthAccessToken `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// OAuthAuthorizeTokenList is a collection of OAuth authorization tokens -type OAuthAuthorizeTokenList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is the list of OAuth authorization tokens - Items []OAuthAuthorizeToken `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// OAuthClientList is a collection of OAuth clients -type OAuthClientList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is the list of OAuth clients - Items []OAuthClient `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// OAuthClientAuthorizationList is a collection of OAuth client authorizations -type OAuthClientAuthorizationList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is the list of OAuth client authorizations - Items []OAuthClientAuthorization `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// OAuthRedirectReference is a reference to an OAuth redirect object. -type OAuthRedirectReference struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // The reference to an redirect object in the current namespace. - Reference RedirectReference `json:"reference,omitempty" protobuf:"bytes,2,opt,name=reference"` -} - -// RedirectReference specifies the target in the current namespace that resolves into redirect URIs. Only the 'Route' kind is currently allowed. -type RedirectReference struct { - // The group of the target that is being referred to. - Group string `json:"group" protobuf:"bytes,1,opt,name=group"` - - // The kind of the target that is being referred to. Currently, only 'Route' is allowed. - Kind string `json:"kind" protobuf:"bytes,2,opt,name=kind"` - - // The name of the target that is being referred to. e.g. name of the Route. - Name string `json:"name" protobuf:"bytes,3,opt,name=name"` -} diff --git a/vendor/github.com/openshift/api/oauth/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/oauth/v1/zz_generated.deepcopy.go deleted file mode 100644 index 4506548c69d20..0000000000000 --- a/vendor/github.com/openshift/api/oauth/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,382 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - 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 *ClusterRoleScopeRestriction) DeepCopyInto(out *ClusterRoleScopeRestriction) { - *out = *in - if in.RoleNames != nil { - in, out := &in.RoleNames, &out.RoleNames - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Namespaces != nil { - in, out := &in.Namespaces, &out.Namespaces - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleScopeRestriction. -func (in *ClusterRoleScopeRestriction) DeepCopy() *ClusterRoleScopeRestriction { - if in == nil { - return nil - } - out := new(ClusterRoleScopeRestriction) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OAuthAccessToken) DeepCopyInto(out *OAuthAccessToken) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Scopes != nil { - in, out := &in.Scopes, &out.Scopes - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthAccessToken. -func (in *OAuthAccessToken) DeepCopy() *OAuthAccessToken { - if in == nil { - return nil - } - out := new(OAuthAccessToken) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OAuthAccessToken) 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 *OAuthAccessTokenList) DeepCopyInto(out *OAuthAccessTokenList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]OAuthAccessToken, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthAccessTokenList. -func (in *OAuthAccessTokenList) DeepCopy() *OAuthAccessTokenList { - if in == nil { - return nil - } - out := new(OAuthAccessTokenList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OAuthAccessTokenList) 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 *OAuthAuthorizeToken) DeepCopyInto(out *OAuthAuthorizeToken) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Scopes != nil { - in, out := &in.Scopes, &out.Scopes - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthAuthorizeToken. -func (in *OAuthAuthorizeToken) DeepCopy() *OAuthAuthorizeToken { - if in == nil { - return nil - } - out := new(OAuthAuthorizeToken) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OAuthAuthorizeToken) 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 *OAuthAuthorizeTokenList) DeepCopyInto(out *OAuthAuthorizeTokenList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]OAuthAuthorizeToken, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthAuthorizeTokenList. -func (in *OAuthAuthorizeTokenList) DeepCopy() *OAuthAuthorizeTokenList { - if in == nil { - return nil - } - out := new(OAuthAuthorizeTokenList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OAuthAuthorizeTokenList) 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 *OAuthClient) DeepCopyInto(out *OAuthClient) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.AdditionalSecrets != nil { - in, out := &in.AdditionalSecrets, &out.AdditionalSecrets - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.RedirectURIs != nil { - in, out := &in.RedirectURIs, &out.RedirectURIs - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.ScopeRestrictions != nil { - in, out := &in.ScopeRestrictions, &out.ScopeRestrictions - *out = make([]ScopeRestriction, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.AccessTokenMaxAgeSeconds != nil { - in, out := &in.AccessTokenMaxAgeSeconds, &out.AccessTokenMaxAgeSeconds - *out = new(int32) - **out = **in - } - if in.AccessTokenInactivityTimeoutSeconds != nil { - in, out := &in.AccessTokenInactivityTimeoutSeconds, &out.AccessTokenInactivityTimeoutSeconds - *out = new(int32) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthClient. -func (in *OAuthClient) DeepCopy() *OAuthClient { - if in == nil { - return nil - } - out := new(OAuthClient) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OAuthClient) 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 *OAuthClientAuthorization) DeepCopyInto(out *OAuthClientAuthorization) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Scopes != nil { - in, out := &in.Scopes, &out.Scopes - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthClientAuthorization. -func (in *OAuthClientAuthorization) DeepCopy() *OAuthClientAuthorization { - if in == nil { - return nil - } - out := new(OAuthClientAuthorization) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OAuthClientAuthorization) 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 *OAuthClientAuthorizationList) DeepCopyInto(out *OAuthClientAuthorizationList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]OAuthClientAuthorization, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthClientAuthorizationList. -func (in *OAuthClientAuthorizationList) DeepCopy() *OAuthClientAuthorizationList { - if in == nil { - return nil - } - out := new(OAuthClientAuthorizationList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OAuthClientAuthorizationList) 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 *OAuthClientList) DeepCopyInto(out *OAuthClientList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]OAuthClient, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthClientList. -func (in *OAuthClientList) DeepCopy() *OAuthClientList { - if in == nil { - return nil - } - out := new(OAuthClientList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OAuthClientList) 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 *OAuthRedirectReference) DeepCopyInto(out *OAuthRedirectReference) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Reference = in.Reference - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthRedirectReference. -func (in *OAuthRedirectReference) DeepCopy() *OAuthRedirectReference { - if in == nil { - return nil - } - out := new(OAuthRedirectReference) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OAuthRedirectReference) 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 *RedirectReference) DeepCopyInto(out *RedirectReference) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RedirectReference. -func (in *RedirectReference) DeepCopy() *RedirectReference { - if in == nil { - return nil - } - out := new(RedirectReference) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ScopeRestriction) DeepCopyInto(out *ScopeRestriction) { - *out = *in - if in.ExactValues != nil { - in, out := &in.ExactValues, &out.ExactValues - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.ClusterRole != nil { - in, out := &in.ClusterRole, &out.ClusterRole - *out = new(ClusterRoleScopeRestriction) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScopeRestriction. -func (in *ScopeRestriction) DeepCopy() *ScopeRestriction { - if in == nil { - return nil - } - out := new(ScopeRestriction) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/github.com/openshift/api/oauth/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/oauth/v1/zz_generated.swagger_doc_generated.go deleted file mode 100644 index 84ddf18ecd913..0000000000000 --- a/vendor/github.com/openshift/api/oauth/v1/zz_generated.swagger_doc_generated.go +++ /dev/null @@ -1,153 +0,0 @@ -package v1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE -var map_ClusterRoleScopeRestriction = map[string]string{ - "": "ClusterRoleScopeRestriction describes restrictions on cluster role scopes", - "roleNames": "RoleNames is the list of cluster roles that can referenced. * means anything", - "namespaces": "Namespaces is the list of namespaces that can be referenced. * means any of them (including *)", - "allowEscalation": "AllowEscalation indicates whether you can request roles and their escalating resources", -} - -func (ClusterRoleScopeRestriction) SwaggerDoc() map[string]string { - return map_ClusterRoleScopeRestriction -} - -var map_OAuthAccessToken = map[string]string{ - "": "OAuthAccessToken describes an OAuth access token", - "clientName": "ClientName references the client that created this token.", - "expiresIn": "ExpiresIn is the seconds from CreationTime before this token expires.", - "scopes": "Scopes is an array of the requested scopes.", - "redirectURI": "RedirectURI is the redirection associated with the token.", - "userName": "UserName is the user name associated with this token", - "userUID": "UserUID is the unique UID associated with this token", - "authorizeToken": "AuthorizeToken contains the token that authorized this token", - "refreshToken": "RefreshToken is the value by which this token can be renewed. Can be blank.", - "inactivityTimeoutSeconds": "InactivityTimeoutSeconds is the value in seconds, from the CreationTimestamp, after which this token can no longer be used. The value is automatically incremented when the token is used.", -} - -func (OAuthAccessToken) SwaggerDoc() map[string]string { - return map_OAuthAccessToken -} - -var map_OAuthAccessTokenList = map[string]string{ - "": "OAuthAccessTokenList is a collection of OAuth access tokens", - "items": "Items is the list of OAuth access tokens", -} - -func (OAuthAccessTokenList) SwaggerDoc() map[string]string { - return map_OAuthAccessTokenList -} - -var map_OAuthAuthorizeToken = map[string]string{ - "": "OAuthAuthorizeToken describes an OAuth authorization token", - "clientName": "ClientName references the client that created this token.", - "expiresIn": "ExpiresIn is the seconds from CreationTime before this token expires.", - "scopes": "Scopes is an array of the requested scopes.", - "redirectURI": "RedirectURI is the redirection associated with the token.", - "state": "State data from request", - "userName": "UserName is the user name associated with this token", - "userUID": "UserUID is the unique UID associated with this token. UserUID and UserName must both match for this token to be valid.", - "codeChallenge": "CodeChallenge is the optional code_challenge associated with this authorization code, as described in rfc7636", - "codeChallengeMethod": "CodeChallengeMethod is the optional code_challenge_method associated with this authorization code, as described in rfc7636", -} - -func (OAuthAuthorizeToken) SwaggerDoc() map[string]string { - return map_OAuthAuthorizeToken -} - -var map_OAuthAuthorizeTokenList = map[string]string{ - "": "OAuthAuthorizeTokenList is a collection of OAuth authorization tokens", - "items": "Items is the list of OAuth authorization tokens", -} - -func (OAuthAuthorizeTokenList) SwaggerDoc() map[string]string { - return map_OAuthAuthorizeTokenList -} - -var map_OAuthClient = map[string]string{ - "": "OAuthClient describes an OAuth client", - "secret": "Secret is the unique secret associated with a client", - "additionalSecrets": "AdditionalSecrets holds other secrets that may be used to identify the client. This is useful for rotation and for service account token validation", - "respondWithChallenges": "RespondWithChallenges indicates whether the client wants authentication needed responses made in the form of challenges instead of redirects", - "redirectURIs": "RedirectURIs is the valid redirection URIs associated with a client", - "grantMethod": "GrantMethod is a required field which determines how to handle grants for this client. Valid grant handling methods are:\n - auto: always approves grant requests, useful for trusted clients\n - prompt: prompts the end user for approval of grant requests, useful for third-party clients", - "scopeRestrictions": "ScopeRestrictions describes which scopes this client can request. Each requested scope is checked against each restriction. If any restriction matches, then the scope is allowed. If no restriction matches, then the scope is denied.", - "accessTokenMaxAgeSeconds": "AccessTokenMaxAgeSeconds overrides the default access token max age for tokens granted to this client. 0 means no expiration.", - "accessTokenInactivityTimeoutSeconds": "AccessTokenInactivityTimeoutSeconds overrides the default token inactivity timeout for tokens granted to this client. The value represents the maximum amount of time that can occur between consecutive uses of the token. Tokens become invalid if they are not used within this temporal window. The user will need to acquire a new token to regain access once a token times out. This value needs to be set only if the default set in configuration is not appropriate for this client. Valid values are: - 0: Tokens for this client never time out - X: Tokens time out if there is no activity for X seconds The current minimum allowed value for X is 300 (5 minutes)", -} - -func (OAuthClient) SwaggerDoc() map[string]string { - return map_OAuthClient -} - -var map_OAuthClientAuthorization = map[string]string{ - "": "OAuthClientAuthorization describes an authorization created by an OAuth client", - "clientName": "ClientName references the client that created this authorization", - "userName": "UserName is the user name that authorized this client", - "userUID": "UserUID is the unique UID associated with this authorization. UserUID and UserName must both match for this authorization to be valid.", - "scopes": "Scopes is an array of the granted scopes.", -} - -func (OAuthClientAuthorization) SwaggerDoc() map[string]string { - return map_OAuthClientAuthorization -} - -var map_OAuthClientAuthorizationList = map[string]string{ - "": "OAuthClientAuthorizationList is a collection of OAuth client authorizations", - "items": "Items is the list of OAuth client authorizations", -} - -func (OAuthClientAuthorizationList) SwaggerDoc() map[string]string { - return map_OAuthClientAuthorizationList -} - -var map_OAuthClientList = map[string]string{ - "": "OAuthClientList is a collection of OAuth clients", - "items": "Items is the list of OAuth clients", -} - -func (OAuthClientList) SwaggerDoc() map[string]string { - return map_OAuthClientList -} - -var map_OAuthRedirectReference = map[string]string{ - "": "OAuthRedirectReference is a reference to an OAuth redirect object.", - "reference": "The reference to an redirect object in the current namespace.", -} - -func (OAuthRedirectReference) SwaggerDoc() map[string]string { - return map_OAuthRedirectReference -} - -var map_RedirectReference = map[string]string{ - "": "RedirectReference specifies the target in the current namespace that resolves into redirect URIs. Only the 'Route' kind is currently allowed.", - "group": "The group of the target that is being referred to.", - "kind": "The kind of the target that is being referred to. Currently, only 'Route' is allowed.", - "name": "The name of the target that is being referred to. e.g. name of the Route.", -} - -func (RedirectReference) SwaggerDoc() map[string]string { - return map_RedirectReference -} - -var map_ScopeRestriction = map[string]string{ - "": "ScopeRestriction describe one restriction on scopes. Exactly one option must be non-nil.", - "literals": "ExactValues means the scope has to match a particular set of strings exactly", - "clusterRole": "ClusterRole describes a set of restrictions for cluster role scoping.", -} - -func (ScopeRestriction) SwaggerDoc() map[string]string { - return map_ScopeRestriction -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/github.com/openshift/api/osin/v1/doc.go b/vendor/github.com/openshift/api/osin/v1/doc.go deleted file mode 100644 index b74dfc48ad0ef..0000000000000 --- a/vendor/github.com/openshift/api/osin/v1/doc.go +++ /dev/null @@ -1,7 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:defaulter-gen=TypeMeta -// +k8s:openapi-gen=true - -// +groupName=osin.config.openshift.io -// Package v1 is the v1 version of the API. -package v1 diff --git a/vendor/github.com/openshift/api/osin/v1/register.go b/vendor/github.com/openshift/api/osin/v1/register.go deleted file mode 100644 index 4d54a5df40474..0000000000000 --- a/vendor/github.com/openshift/api/osin/v1/register.go +++ /dev/null @@ -1,50 +0,0 @@ -package v1 - -import ( - configv1 "github.com/openshift/api/config/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - GroupName = "osin.config.openshift.io" - GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, configv1.Install) - // Install is a function which adds this version to a scheme - Install = schemeBuilder.AddToScheme - - // SchemeGroupVersion generated code relies on this name - // Deprecated - SchemeGroupVersion = GroupVersion - // AddToScheme exists solely to keep the old generators creating valid code - // DEPRECATED - AddToScheme = schemeBuilder.AddToScheme -) - -// Resource generated code relies on this being here, but it logically belongs to the group -// DEPRECATED -func Resource(resource string) schema.GroupResource { - return schema.GroupResource{Group: GroupName, Resource: resource} -} - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &OsinServerConfig{}, - - &BasicAuthPasswordIdentityProvider{}, - &AllowAllPasswordIdentityProvider{}, - &DenyAllPasswordIdentityProvider{}, - &HTPasswdPasswordIdentityProvider{}, - &LDAPPasswordIdentityProvider{}, - &KeystonePasswordIdentityProvider{}, - &RequestHeaderIdentityProvider{}, - &GitHubIdentityProvider{}, - &GitLabIdentityProvider{}, - &GoogleIdentityProvider{}, - &OpenIDIdentityProvider{}, - - &SessionSecrets{}, - ) - return nil -} diff --git a/vendor/github.com/openshift/api/osin/v1/types.go b/vendor/github.com/openshift/api/osin/v1/types.go deleted file mode 100644 index fa0087d79a37f..0000000000000 --- a/vendor/github.com/openshift/api/osin/v1/types.go +++ /dev/null @@ -1,434 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - - configv1 "github.com/openshift/api/config/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -type OsinServerConfig struct { - metav1.TypeMeta `json:",inline"` - - // provides the standard apiserver configuration - configv1.GenericAPIServerConfig `json:",inline"` - - // oauthConfig holds the necessary configuration options for OAuth authentication - OAuthConfig OAuthConfig `json:"oauthConfig"` -} - -// OAuthConfig holds the necessary configuration options for OAuth authentication -type OAuthConfig struct { - // masterCA is the CA for verifying the TLS connection back to the MasterURL. - // This field is deprecated and will be removed in a future release. - // See loginURL for details. - // Deprecated - MasterCA *string `json:"masterCA"` - - // masterURL is used for making server-to-server calls to exchange authorization codes for access tokens - // This field is deprecated and will be removed in a future release. - // See loginURL for details. - // Deprecated - MasterURL string `json:"masterURL"` - - // masterPublicURL is used for building valid client redirect URLs for internal and external access - // This field is deprecated and will be removed in a future release. - // See loginURL for details. - // Deprecated - MasterPublicURL string `json:"masterPublicURL"` - - // loginURL, along with masterCA, masterURL and masterPublicURL have distinct - // meanings depending on how the OAuth server is run. The two states are: - // 1. embedded in the kube api server (all 3.x releases) - // 2. as a standalone external process (all 4.x releases) - // in the embedded configuration, loginURL is equivalent to masterPublicURL - // and the other fields have functionality that matches their docs. - // in the standalone configuration, the fields are used as: - // loginURL is the URL required to login to the cluster: - // oc login --server= - // masterPublicURL is the issuer URL - // it is accessible from inside (service network) and outside (ingress) of the cluster - // masterURL is the loopback variation of the token_endpoint URL with no path component - // it is only accessible from inside (service network) of the cluster - // masterCA is used to perform TLS verification for connections made to masterURL - // For further details, see the IETF Draft: - // https://tools.ietf.org/html/draft-ietf-oauth-discovery-04#section-2 - LoginURL string `json:"loginURL"` - - // assetPublicURL is used for building valid client redirect URLs for external access - AssetPublicURL string `json:"assetPublicURL"` - - // alwaysShowProviderSelection will force the provider selection page to render even when there is only a single provider. - AlwaysShowProviderSelection bool `json:"alwaysShowProviderSelection"` - - //identityProviders is an ordered list of ways for a user to identify themselves - IdentityProviders []IdentityProvider `json:"identityProviders"` - - // grantConfig describes how to handle grants - GrantConfig GrantConfig `json:"grantConfig"` - - // sessionConfig hold information about configuring sessions. - SessionConfig *SessionConfig `json:"sessionConfig"` - - // tokenConfig contains options for authorization and access tokens - TokenConfig TokenConfig `json:"tokenConfig"` - - // templates allow you to customize pages like the login page. - Templates *OAuthTemplates `json:"templates"` -} - -// OAuthTemplates allow for customization of pages like the login page -type OAuthTemplates struct { - // login is a path to a file containing a go template used to render the login page. - // If unspecified, the default login page is used. - Login string `json:"login"` - - // providerSelection is a path to a file containing a go template used to render the provider selection page. - // If unspecified, the default provider selection page is used. - ProviderSelection string `json:"providerSelection"` - - // error is a path to a file containing a go template used to render error pages during the authentication or grant flow - // If unspecified, the default error page is used. - Error string `json:"error"` -} - -// IdentityProvider provides identities for users authenticating using credentials -type IdentityProvider struct { - // name is used to qualify the identities returned by this provider - Name string `json:"name"` - // challenge indicates whether to issue WWW-Authenticate challenges for this provider - UseAsChallenger bool `json:"challenge"` - // login indicates whether to use this identity provider for unauthenticated browsers to login against - UseAsLogin bool `json:"login"` - // mappingMethod determines how identities from this provider are mapped to users - MappingMethod string `json:"mappingMethod"` - // provider contains the information about how to set up a specific identity provider - // +kubebuilder:pruning:PreserveUnknownFields - Provider runtime.RawExtension `json:"provider"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// BasicAuthPasswordIdentityProvider provides identities for users authenticating using HTTP basic auth credentials -type BasicAuthPasswordIdentityProvider struct { - metav1.TypeMeta `json:",inline"` - - // RemoteConnectionInfo contains information about how to connect to the external basic auth server - configv1.RemoteConnectionInfo `json:",inline"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// AllowAllPasswordIdentityProvider provides identities for users authenticating using non-empty passwords -type AllowAllPasswordIdentityProvider struct { - metav1.TypeMeta `json:",inline"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// DenyAllPasswordIdentityProvider provides no identities for users -type DenyAllPasswordIdentityProvider struct { - metav1.TypeMeta `json:",inline"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// HTPasswdPasswordIdentityProvider provides identities for users authenticating using htpasswd credentials -type HTPasswdPasswordIdentityProvider struct { - metav1.TypeMeta `json:",inline"` - - // file is a reference to your htpasswd file - File string `json:"file"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// LDAPPasswordIdentityProvider provides identities for users authenticating using LDAP credentials -type LDAPPasswordIdentityProvider struct { - metav1.TypeMeta `json:",inline"` - // url is an RFC 2255 URL which specifies the LDAP search parameters to use. The syntax of the URL is - // ldap://host:port/basedn?attribute?scope?filter - URL string `json:"url"` - // bindDN is an optional DN to bind with during the search phase. - BindDN string `json:"bindDN"` - // bindPassword is an optional password to bind with during the search phase. - BindPassword configv1.StringSource `json:"bindPassword"` - - // insecure, if true, indicates the connection should not use TLS. - // Cannot be set to true with a URL scheme of "ldaps://" - // If false, "ldaps://" URLs connect using TLS, and "ldap://" URLs are upgraded to a TLS connection using StartTLS as specified in https://tools.ietf.org/html/rfc2830 - Insecure bool `json:"insecure"` - // ca is the optional trusted certificate authority bundle to use when making requests to the server - // If empty, the default system roots are used - CA string `json:"ca"` - // attributes maps LDAP attributes to identities - Attributes LDAPAttributeMapping `json:"attributes"` -} - -// LDAPAttributeMapping maps LDAP attributes to OpenShift identity fields -type LDAPAttributeMapping struct { - // id is the list of attributes whose values should be used as the user ID. Required. - // LDAP standard identity attribute is "dn" - ID []string `json:"id"` - // preferredUsername is the list of attributes whose values should be used as the preferred username. - // LDAP standard login attribute is "uid" - PreferredUsername []string `json:"preferredUsername"` - // name is the list of attributes whose values should be used as the display name. Optional. - // If unspecified, no display name is set for the identity - // LDAP standard display name attribute is "cn" - Name []string `json:"name"` - // email is the list of attributes whose values should be used as the email address. Optional. - // If unspecified, no email is set for the identity - Email []string `json:"email"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// KeystonePasswordIdentityProvider provides identities for users authenticating using keystone password credentials -type KeystonePasswordIdentityProvider struct { - metav1.TypeMeta `json:",inline"` - // RemoteConnectionInfo contains information about how to connect to the keystone server - configv1.RemoteConnectionInfo `json:",inline"` - // domainName is required for keystone v3 - DomainName string `json:"domainName"` - // useKeystoneIdentity flag indicates that user should be authenticated by keystone ID, not by username - UseKeystoneIdentity bool `json:"useKeystoneIdentity"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// RequestHeaderIdentityProvider provides identities for users authenticating using request header credentials -type RequestHeaderIdentityProvider struct { - metav1.TypeMeta `json:",inline"` - - // loginURL is a URL to redirect unauthenticated /authorize requests to - // Unauthenticated requests from OAuth clients which expect interactive logins will be redirected here - // ${url} is replaced with the current URL, escaped to be safe in a query parameter - // https://www.example.com/sso-login?then=${url} - // ${query} is replaced with the current query string - // https://www.example.com/auth-proxy/oauth/authorize?${query} - LoginURL string `json:"loginURL"` - - // challengeURL is a URL to redirect unauthenticated /authorize requests to - // Unauthenticated requests from OAuth clients which expect WWW-Authenticate challenges will be redirected here - // ${url} is replaced with the current URL, escaped to be safe in a query parameter - // https://www.example.com/sso-login?then=${url} - // ${query} is replaced with the current query string - // https://www.example.com/auth-proxy/oauth/authorize?${query} - ChallengeURL string `json:"challengeURL"` - - // clientCA is a file with the trusted signer certs. If empty, no request verification is done, and any direct request to the OAuth server can impersonate any identity from this provider, merely by setting a request header. - ClientCA string `json:"clientCA"` - // clientCommonNames is an optional list of common names to require a match from. If empty, any client certificate validated against the clientCA bundle is considered authoritative. - ClientCommonNames []string `json:"clientCommonNames"` - - // headers is the set of headers to check for identity information - Headers []string `json:"headers"` - // preferredUsernameHeaders is the set of headers to check for the preferred username - PreferredUsernameHeaders []string `json:"preferredUsernameHeaders"` - // nameHeaders is the set of headers to check for the display name - NameHeaders []string `json:"nameHeaders"` - // emailHeaders is the set of headers to check for the email address - EmailHeaders []string `json:"emailHeaders"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// GitHubIdentityProvider provides identities for users authenticating using GitHub credentials -type GitHubIdentityProvider struct { - metav1.TypeMeta `json:",inline"` - - // clientID is the oauth client ID - ClientID string `json:"clientID"` - // clientSecret is the oauth client secret - ClientSecret configv1.StringSource `json:"clientSecret"` - // organizations optionally restricts which organizations are allowed to log in - Organizations []string `json:"organizations"` - // teams optionally restricts which teams are allowed to log in. Format is /. - Teams []string `json:"teams"` - // hostname is the optional domain (e.g. "mycompany.com") for use with a hosted instance of GitHub Enterprise. - // It must match the GitHub Enterprise settings value that is configured at /setup/settings#hostname. - Hostname string `json:"hostname"` - // ca is the optional trusted certificate authority bundle to use when making requests to the server. - // If empty, the default system roots are used. This can only be configured when hostname is set to a non-empty value. - CA string `json:"ca"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// GitLabIdentityProvider provides identities for users authenticating using GitLab credentials -type GitLabIdentityProvider struct { - metav1.TypeMeta `json:",inline"` - - // ca is the optional trusted certificate authority bundle to use when making requests to the server - // If empty, the default system roots are used - CA string `json:"ca"` - // url is the oauth server base URL - URL string `json:"url"` - // clientID is the oauth client ID - ClientID string `json:"clientID"` - // clientSecret is the oauth client secret - ClientSecret configv1.StringSource `json:"clientSecret"` - // legacy determines if OAuth2 or OIDC should be used - // If true, OAuth2 is used - // If false, OIDC is used - // If nil and the URL's host is gitlab.com, OIDC is used - // Otherwise, OAuth2 is used - // In a future release, nil will default to using OIDC - // Eventually this flag will be removed and only OIDC will be used - Legacy *bool `json:"legacy,omitempty"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// GoogleIdentityProvider provides identities for users authenticating using Google credentials -type GoogleIdentityProvider struct { - metav1.TypeMeta `json:",inline"` - - // clientID is the oauth client ID - ClientID string `json:"clientID"` - // clientSecret is the oauth client secret - ClientSecret configv1.StringSource `json:"clientSecret"` - - // hostedDomain is the optional Google App domain (e.g. "mycompany.com") to restrict logins to - HostedDomain string `json:"hostedDomain"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// OpenIDIdentityProvider provides identities for users authenticating using OpenID credentials -type OpenIDIdentityProvider struct { - metav1.TypeMeta `json:",inline"` - - // ca is the optional trusted certificate authority bundle to use when making requests to the server - // If empty, the default system roots are used - CA string `json:"ca"` - - // clientID is the oauth client ID - ClientID string `json:"clientID"` - // clientSecret is the oauth client secret - ClientSecret configv1.StringSource `json:"clientSecret"` - - // extraScopes are any scopes to request in addition to the standard "openid" scope. - ExtraScopes []string `json:"extraScopes"` - - // extraAuthorizeParameters are any custom parameters to add to the authorize request. - ExtraAuthorizeParameters map[string]string `json:"extraAuthorizeParameters"` - - // urls to use to authenticate - URLs OpenIDURLs `json:"urls"` - - // claims mappings - Claims OpenIDClaims `json:"claims"` -} - -// OpenIDURLs are URLs to use when authenticating with an OpenID identity provider -type OpenIDURLs struct { - // authorize is the oauth authorization URL - Authorize string `json:"authorize"` - // token is the oauth token granting URL - Token string `json:"token"` - // userInfo is the optional userinfo URL. - // If present, a granted access_token is used to request claims - // If empty, a granted id_token is parsed for claims - UserInfo string `json:"userInfo"` -} - -// OpenIDClaims contains a list of OpenID claims to use when authenticating with an OpenID identity provider -type OpenIDClaims struct { - // id is the list of claims whose values should be used as the user ID. Required. - // OpenID standard identity claim is "sub" - ID []string `json:"id"` - // preferredUsername is the list of claims whose values should be used as the preferred username. - // If unspecified, the preferred username is determined from the value of the id claim - PreferredUsername []string `json:"preferredUsername"` - // name is the list of claims whose values should be used as the display name. Optional. - // If unspecified, no display name is set for the identity - Name []string `json:"name"` - // email is the list of claims whose values should be used as the email address. Optional. - // If unspecified, no email is set for the identity - Email []string `json:"email"` -} - -// GrantConfig holds the necessary configuration options for grant handlers -type GrantConfig struct { - // method determines the default strategy to use when an OAuth client requests a grant. - // This method will be used only if the specific OAuth client doesn't provide a strategy - // of their own. Valid grant handling methods are: - // - auto: always approves grant requests, useful for trusted clients - // - prompt: prompts the end user for approval of grant requests, useful for third-party clients - // - deny: always denies grant requests, useful for black-listed clients - Method GrantHandlerType `json:"method"` - - // serviceAccountMethod is used for determining client authorization for service account oauth client. - // It must be either: deny, prompt - ServiceAccountMethod GrantHandlerType `json:"serviceAccountMethod"` -} - -type GrantHandlerType string - -const ( - // auto auto-approves client authorization grant requests - GrantHandlerAuto GrantHandlerType = "auto" - // prompt prompts the user to approve new client authorization grant requests - GrantHandlerPrompt GrantHandlerType = "prompt" - // deny auto-denies client authorization grant requests - GrantHandlerDeny GrantHandlerType = "deny" -) - -// SessionConfig specifies options for cookie-based sessions. Used by AuthRequestHandlerSession -type SessionConfig struct { - // sessionSecretsFile is a reference to a file containing a serialized SessionSecrets object - // If no file is specified, a random signing and encryption key are generated at each server start - SessionSecretsFile string `json:"sessionSecretsFile"` - // sessionMaxAgeSeconds specifies how long created sessions last. Used by AuthRequestHandlerSession - SessionMaxAgeSeconds int32 `json:"sessionMaxAgeSeconds"` - // sessionName is the cookie name used to store the session - SessionName string `json:"sessionName"` -} - -// TokenConfig holds the necessary configuration options for authorization and access tokens -type TokenConfig struct { - // authorizeTokenMaxAgeSeconds defines the maximum age of authorize tokens - AuthorizeTokenMaxAgeSeconds int32 `json:"authorizeTokenMaxAgeSeconds,omitempty"` - // accessTokenMaxAgeSeconds defines the maximum age of access tokens - AccessTokenMaxAgeSeconds int32 `json:"accessTokenMaxAgeSeconds,omitempty"` - // accessTokenInactivityTimeoutSeconds - DEPRECATED: setting this field has no effect. - // +optional - AccessTokenInactivityTimeoutSeconds *int32 `json:"accessTokenInactivityTimeoutSeconds,omitempty"` - // accessTokenInactivityTimeout defines the token inactivity timeout - // for tokens granted by any client. - // The value represents the maximum amount of time that can occur between - // consecutive uses of the token. Tokens become invalid if they are not - // used within this temporal window. The user will need to acquire a new - // token to regain access once a token times out. Takes valid time - // duration string such as "5m", "1.5h" or "2h45m". The minimum allowed - // value for duration is 300s (5 minutes). If the timeout is configured - // per client, then that value takes precedence. If the timeout value is - // not specified and the client does not override the value, then tokens - // are valid until their lifetime. - // +optional - AccessTokenInactivityTimeout *metav1.Duration `json:"accessTokenInactivityTimeout,omitempty"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// SessionSecrets list the secrets to use to sign/encrypt and authenticate/decrypt created sessions. -type SessionSecrets struct { - metav1.TypeMeta `json:",inline"` - - // Secrets is a list of secrets - // New sessions are signed and encrypted using the first secret. - // Existing sessions are decrypted/authenticated by each secret until one succeeds. This allows rotating secrets. - Secrets []SessionSecret `json:"secrets"` -} - -// SessionSecret is a secret used to authenticate/decrypt cookie-based sessions -type SessionSecret struct { - // Authentication is used to authenticate sessions using HMAC. Recommended to use a secret with 32 or 64 bytes. - Authentication string `json:"authentication"` - // Encryption is used to encrypt sessions. Must be 16, 24, or 32 characters long, to select AES-128, AES- - Encryption string `json:"encryption"` -} diff --git a/vendor/github.com/openshift/api/osin/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/osin/v1/zz_generated.deepcopy.go deleted file mode 100644 index eeeaae99fb528..0000000000000 --- a/vendor/github.com/openshift/api/osin/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,639 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/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 *AllowAllPasswordIdentityProvider) DeepCopyInto(out *AllowAllPasswordIdentityProvider) { - *out = *in - out.TypeMeta = in.TypeMeta - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowAllPasswordIdentityProvider. -func (in *AllowAllPasswordIdentityProvider) DeepCopy() *AllowAllPasswordIdentityProvider { - if in == nil { - return nil - } - out := new(AllowAllPasswordIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *AllowAllPasswordIdentityProvider) 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 *BasicAuthPasswordIdentityProvider) DeepCopyInto(out *BasicAuthPasswordIdentityProvider) { - *out = *in - out.TypeMeta = in.TypeMeta - out.RemoteConnectionInfo = in.RemoteConnectionInfo - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BasicAuthPasswordIdentityProvider. -func (in *BasicAuthPasswordIdentityProvider) DeepCopy() *BasicAuthPasswordIdentityProvider { - if in == nil { - return nil - } - out := new(BasicAuthPasswordIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *BasicAuthPasswordIdentityProvider) 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 *DenyAllPasswordIdentityProvider) DeepCopyInto(out *DenyAllPasswordIdentityProvider) { - *out = *in - out.TypeMeta = in.TypeMeta - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DenyAllPasswordIdentityProvider. -func (in *DenyAllPasswordIdentityProvider) DeepCopy() *DenyAllPasswordIdentityProvider { - if in == nil { - return nil - } - out := new(DenyAllPasswordIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DenyAllPasswordIdentityProvider) 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 *GitHubIdentityProvider) DeepCopyInto(out *GitHubIdentityProvider) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ClientSecret = in.ClientSecret - if in.Organizations != nil { - in, out := &in.Organizations, &out.Organizations - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Teams != nil { - in, out := &in.Teams, &out.Teams - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHubIdentityProvider. -func (in *GitHubIdentityProvider) DeepCopy() *GitHubIdentityProvider { - if in == nil { - return nil - } - out := new(GitHubIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *GitHubIdentityProvider) 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 *GitLabIdentityProvider) DeepCopyInto(out *GitLabIdentityProvider) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ClientSecret = in.ClientSecret - if in.Legacy != nil { - in, out := &in.Legacy, &out.Legacy - *out = new(bool) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitLabIdentityProvider. -func (in *GitLabIdentityProvider) DeepCopy() *GitLabIdentityProvider { - if in == nil { - return nil - } - out := new(GitLabIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *GitLabIdentityProvider) 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 *GoogleIdentityProvider) DeepCopyInto(out *GoogleIdentityProvider) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ClientSecret = in.ClientSecret - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GoogleIdentityProvider. -func (in *GoogleIdentityProvider) DeepCopy() *GoogleIdentityProvider { - if in == nil { - return nil - } - out := new(GoogleIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *GoogleIdentityProvider) 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 *GrantConfig) DeepCopyInto(out *GrantConfig) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GrantConfig. -func (in *GrantConfig) DeepCopy() *GrantConfig { - if in == nil { - return nil - } - out := new(GrantConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HTPasswdPasswordIdentityProvider) DeepCopyInto(out *HTPasswdPasswordIdentityProvider) { - *out = *in - out.TypeMeta = in.TypeMeta - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTPasswdPasswordIdentityProvider. -func (in *HTPasswdPasswordIdentityProvider) DeepCopy() *HTPasswdPasswordIdentityProvider { - if in == nil { - return nil - } - out := new(HTPasswdPasswordIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *HTPasswdPasswordIdentityProvider) 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 *IdentityProvider) DeepCopyInto(out *IdentityProvider) { - *out = *in - in.Provider.DeepCopyInto(&out.Provider) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IdentityProvider. -func (in *IdentityProvider) DeepCopy() *IdentityProvider { - if in == nil { - return nil - } - out := new(IdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KeystonePasswordIdentityProvider) DeepCopyInto(out *KeystonePasswordIdentityProvider) { - *out = *in - out.TypeMeta = in.TypeMeta - out.RemoteConnectionInfo = in.RemoteConnectionInfo - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeystonePasswordIdentityProvider. -func (in *KeystonePasswordIdentityProvider) DeepCopy() *KeystonePasswordIdentityProvider { - if in == nil { - return nil - } - out := new(KeystonePasswordIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *KeystonePasswordIdentityProvider) 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 *LDAPAttributeMapping) DeepCopyInto(out *LDAPAttributeMapping) { - *out = *in - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.PreferredUsername != nil { - in, out := &in.PreferredUsername, &out.PreferredUsername - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Email != nil { - in, out := &in.Email, &out.Email - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LDAPAttributeMapping. -func (in *LDAPAttributeMapping) DeepCopy() *LDAPAttributeMapping { - if in == nil { - return nil - } - out := new(LDAPAttributeMapping) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LDAPPasswordIdentityProvider) DeepCopyInto(out *LDAPPasswordIdentityProvider) { - *out = *in - out.TypeMeta = in.TypeMeta - out.BindPassword = in.BindPassword - in.Attributes.DeepCopyInto(&out.Attributes) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LDAPPasswordIdentityProvider. -func (in *LDAPPasswordIdentityProvider) DeepCopy() *LDAPPasswordIdentityProvider { - if in == nil { - return nil - } - out := new(LDAPPasswordIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *LDAPPasswordIdentityProvider) 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 *OAuthConfig) DeepCopyInto(out *OAuthConfig) { - *out = *in - if in.MasterCA != nil { - in, out := &in.MasterCA, &out.MasterCA - *out = new(string) - **out = **in - } - if in.IdentityProviders != nil { - in, out := &in.IdentityProviders, &out.IdentityProviders - *out = make([]IdentityProvider, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - out.GrantConfig = in.GrantConfig - if in.SessionConfig != nil { - in, out := &in.SessionConfig, &out.SessionConfig - *out = new(SessionConfig) - **out = **in - } - in.TokenConfig.DeepCopyInto(&out.TokenConfig) - if in.Templates != nil { - in, out := &in.Templates, &out.Templates - *out = new(OAuthTemplates) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthConfig. -func (in *OAuthConfig) DeepCopy() *OAuthConfig { - if in == nil { - return nil - } - out := new(OAuthConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OAuthTemplates) DeepCopyInto(out *OAuthTemplates) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthTemplates. -func (in *OAuthTemplates) DeepCopy() *OAuthTemplates { - if in == nil { - return nil - } - out := new(OAuthTemplates) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OpenIDClaims) DeepCopyInto(out *OpenIDClaims) { - *out = *in - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.PreferredUsername != nil { - in, out := &in.PreferredUsername, &out.PreferredUsername - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Email != nil { - in, out := &in.Email, &out.Email - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenIDClaims. -func (in *OpenIDClaims) DeepCopy() *OpenIDClaims { - if in == nil { - return nil - } - out := new(OpenIDClaims) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OpenIDIdentityProvider) DeepCopyInto(out *OpenIDIdentityProvider) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ClientSecret = in.ClientSecret - if in.ExtraScopes != nil { - in, out := &in.ExtraScopes, &out.ExtraScopes - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.ExtraAuthorizeParameters != nil { - in, out := &in.ExtraAuthorizeParameters, &out.ExtraAuthorizeParameters - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - out.URLs = in.URLs - in.Claims.DeepCopyInto(&out.Claims) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenIDIdentityProvider. -func (in *OpenIDIdentityProvider) DeepCopy() *OpenIDIdentityProvider { - if in == nil { - return nil - } - out := new(OpenIDIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OpenIDIdentityProvider) 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 *OpenIDURLs) DeepCopyInto(out *OpenIDURLs) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenIDURLs. -func (in *OpenIDURLs) DeepCopy() *OpenIDURLs { - if in == nil { - return nil - } - out := new(OpenIDURLs) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OsinServerConfig) DeepCopyInto(out *OsinServerConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - in.GenericAPIServerConfig.DeepCopyInto(&out.GenericAPIServerConfig) - in.OAuthConfig.DeepCopyInto(&out.OAuthConfig) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OsinServerConfig. -func (in *OsinServerConfig) DeepCopy() *OsinServerConfig { - if in == nil { - return nil - } - out := new(OsinServerConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OsinServerConfig) 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 *RequestHeaderIdentityProvider) DeepCopyInto(out *RequestHeaderIdentityProvider) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.ClientCommonNames != nil { - in, out := &in.ClientCommonNames, &out.ClientCommonNames - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Headers != nil { - in, out := &in.Headers, &out.Headers - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.PreferredUsernameHeaders != nil { - in, out := &in.PreferredUsernameHeaders, &out.PreferredUsernameHeaders - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.NameHeaders != nil { - in, out := &in.NameHeaders, &out.NameHeaders - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.EmailHeaders != nil { - in, out := &in.EmailHeaders, &out.EmailHeaders - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestHeaderIdentityProvider. -func (in *RequestHeaderIdentityProvider) DeepCopy() *RequestHeaderIdentityProvider { - if in == nil { - return nil - } - out := new(RequestHeaderIdentityProvider) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *RequestHeaderIdentityProvider) 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 *SessionConfig) DeepCopyInto(out *SessionConfig) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SessionConfig. -func (in *SessionConfig) DeepCopy() *SessionConfig { - if in == nil { - return nil - } - out := new(SessionConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SessionSecret) DeepCopyInto(out *SessionSecret) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SessionSecret. -func (in *SessionSecret) DeepCopy() *SessionSecret { - if in == nil { - return nil - } - out := new(SessionSecret) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SessionSecrets) DeepCopyInto(out *SessionSecrets) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.Secrets != nil { - in, out := &in.Secrets, &out.Secrets - *out = make([]SessionSecret, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SessionSecrets. -func (in *SessionSecrets) DeepCopy() *SessionSecrets { - if in == nil { - return nil - } - out := new(SessionSecrets) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *SessionSecrets) 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 *TokenConfig) DeepCopyInto(out *TokenConfig) { - *out = *in - if in.AccessTokenInactivityTimeoutSeconds != nil { - in, out := &in.AccessTokenInactivityTimeoutSeconds, &out.AccessTokenInactivityTimeoutSeconds - *out = new(int32) - **out = **in - } - if in.AccessTokenInactivityTimeout != nil { - in, out := &in.AccessTokenInactivityTimeout, &out.AccessTokenInactivityTimeout - *out = new(metav1.Duration) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenConfig. -func (in *TokenConfig) DeepCopy() *TokenConfig { - if in == nil { - return nil - } - out := new(TokenConfig) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/github.com/openshift/api/pkg/serialization/serialization.go b/vendor/github.com/openshift/api/pkg/serialization/serialization.go deleted file mode 100644 index 70c8e7a9943b5..0000000000000 --- a/vendor/github.com/openshift/api/pkg/serialization/serialization.go +++ /dev/null @@ -1,45 +0,0 @@ -package serialization - -import ( - "k8s.io/apimachinery/pkg/runtime" -) - -// DecodeNestedRawExtensionOrUnknown -func DecodeNestedRawExtensionOrUnknown(d runtime.Decoder, ext *runtime.RawExtension) { - if ext.Raw == nil || ext.Object != nil { - return - } - obj, gvk, err := d.Decode(ext.Raw, nil, nil) - if err != nil { - unk := &runtime.Unknown{Raw: ext.Raw} - if runtime.IsNotRegisteredError(err) { - if _, gvk, err := d.Decode(ext.Raw, nil, unk); err == nil { - unk.APIVersion = gvk.GroupVersion().String() - unk.Kind = gvk.Kind - ext.Object = unk - return - } - } - // TODO: record mime-type with the object - if gvk != nil { - unk.APIVersion = gvk.GroupVersion().String() - unk.Kind = gvk.Kind - } - obj = unk - } - ext.Object = obj -} - -// EncodeNestedRawExtension will encode the object in the RawExtension (if not nil) or -// return an error. -func EncodeNestedRawExtension(e runtime.Encoder, ext *runtime.RawExtension) error { - if ext.Raw != nil || ext.Object == nil { - return nil - } - data, err := runtime.Encode(e, ext.Object) - if err != nil { - return err - } - ext.Raw = data - return nil -} diff --git a/vendor/github.com/openshift/api/project/v1/doc.go b/vendor/github.com/openshift/api/project/v1/doc.go deleted file mode 100644 index 5bbd9d5ea7a25..0000000000000 --- a/vendor/github.com/openshift/api/project/v1/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=github.com/openshift/origin/pkg/project/apis/project -// +k8s:defaulter-gen=TypeMeta -// +k8s:openapi-gen=true - -// +groupName=project.openshift.io -// Package v1 is the v1 version of the API. -package v1 diff --git a/vendor/github.com/openshift/api/project/v1/generated.pb.go b/vendor/github.com/openshift/api/project/v1/generated.pb.go deleted file mode 100644 index 35cbc228466ba..0000000000000 --- a/vendor/github.com/openshift/api/project/v1/generated.pb.go +++ /dev/null @@ -1,1320 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: github.com/openshift/api/project/v1/generated.proto - -package v1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - k8s_io_api_core_v1 "k8s.io/api/core/v1" - v11 "k8s.io/api/core/v1" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *Project) Reset() { *m = Project{} } -func (*Project) ProtoMessage() {} -func (*Project) Descriptor() ([]byte, []int) { - return fileDescriptor_fbf46eaac05029bf, []int{0} -} -func (m *Project) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Project) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *Project) XXX_Merge(src proto.Message) { - xxx_messageInfo_Project.Merge(m, src) -} -func (m *Project) XXX_Size() int { - return m.Size() -} -func (m *Project) XXX_DiscardUnknown() { - xxx_messageInfo_Project.DiscardUnknown(m) -} - -var xxx_messageInfo_Project proto.InternalMessageInfo - -func (m *ProjectList) Reset() { *m = ProjectList{} } -func (*ProjectList) ProtoMessage() {} -func (*ProjectList) Descriptor() ([]byte, []int) { - return fileDescriptor_fbf46eaac05029bf, []int{1} -} -func (m *ProjectList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ProjectList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ProjectList) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectList.Merge(m, src) -} -func (m *ProjectList) XXX_Size() int { - return m.Size() -} -func (m *ProjectList) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectList.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectList proto.InternalMessageInfo - -func (m *ProjectRequest) Reset() { *m = ProjectRequest{} } -func (*ProjectRequest) ProtoMessage() {} -func (*ProjectRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_fbf46eaac05029bf, []int{2} -} -func (m *ProjectRequest) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ProjectRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ProjectRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectRequest.Merge(m, src) -} -func (m *ProjectRequest) XXX_Size() int { - return m.Size() -} -func (m *ProjectRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectRequest proto.InternalMessageInfo - -func (m *ProjectSpec) Reset() { *m = ProjectSpec{} } -func (*ProjectSpec) ProtoMessage() {} -func (*ProjectSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_fbf46eaac05029bf, []int{3} -} -func (m *ProjectSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ProjectSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ProjectSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectSpec.Merge(m, src) -} -func (m *ProjectSpec) XXX_Size() int { - return m.Size() -} -func (m *ProjectSpec) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectSpec proto.InternalMessageInfo - -func (m *ProjectStatus) Reset() { *m = ProjectStatus{} } -func (*ProjectStatus) ProtoMessage() {} -func (*ProjectStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_fbf46eaac05029bf, []int{4} -} -func (m *ProjectStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ProjectStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ProjectStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_ProjectStatus.Merge(m, src) -} -func (m *ProjectStatus) XXX_Size() int { - return m.Size() -} -func (m *ProjectStatus) XXX_DiscardUnknown() { - xxx_messageInfo_ProjectStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_ProjectStatus proto.InternalMessageInfo - -func init() { - proto.RegisterType((*Project)(nil), "github.com.openshift.api.project.v1.Project") - proto.RegisterType((*ProjectList)(nil), "github.com.openshift.api.project.v1.ProjectList") - proto.RegisterType((*ProjectRequest)(nil), "github.com.openshift.api.project.v1.ProjectRequest") - proto.RegisterType((*ProjectSpec)(nil), "github.com.openshift.api.project.v1.ProjectSpec") - proto.RegisterType((*ProjectStatus)(nil), "github.com.openshift.api.project.v1.ProjectStatus") -} - -func init() { - proto.RegisterFile("github.com/openshift/api/project/v1/generated.proto", fileDescriptor_fbf46eaac05029bf) -} - -var fileDescriptor_fbf46eaac05029bf = []byte{ - // 570 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x93, 0x3d, 0x8f, 0xd3, 0x30, - 0x18, 0xc7, 0x9b, 0xf6, 0x7a, 0x5c, 0x5d, 0xee, 0x84, 0xc2, 0x52, 0x75, 0x48, 0x4b, 0x90, 0x50, - 0x07, 0x70, 0x68, 0x79, 0x11, 0x73, 0x40, 0x08, 0x24, 0x5e, 0x0e, 0xb3, 0x55, 0x0c, 0xb8, 0xa9, - 0x9b, 0x9a, 0x5e, 0x62, 0x13, 0xbb, 0x95, 0x8e, 0x89, 0x8f, 0xc0, 0xce, 0xe7, 0x60, 0x65, 0xee, - 0x78, 0xe3, 0x4d, 0xd5, 0x35, 0x7c, 0x8b, 0x9b, 0x90, 0x1d, 0x37, 0x09, 0x5c, 0x91, 0xee, 0x16, - 0xb6, 0xfa, 0xc9, 0xff, 0xf7, 0xb3, 0xfd, 0x3c, 0x2e, 0x78, 0x10, 0x52, 0x39, 0x9d, 0x8f, 0x60, - 0xc0, 0x22, 0x8f, 0x71, 0x12, 0x8b, 0x29, 0x9d, 0x48, 0x0f, 0x73, 0xea, 0xf1, 0x84, 0x7d, 0x22, - 0x81, 0xf4, 0x16, 0x7d, 0x2f, 0x24, 0x31, 0x49, 0xb0, 0x24, 0x63, 0xc8, 0x13, 0x26, 0x99, 0x7d, - 0xbb, 0x80, 0x60, 0x0e, 0x41, 0xcc, 0x29, 0x34, 0x10, 0x5c, 0xf4, 0xdb, 0xf7, 0x4a, 0xe6, 0x90, - 0x85, 0xcc, 0xd3, 0xec, 0x68, 0x3e, 0xd1, 0x2b, 0xbd, 0xd0, 0xbf, 0x32, 0x67, 0xdb, 0x9d, 0x3d, - 0x11, 0x90, 0x32, 0xbd, 0x75, 0xc0, 0x12, 0xb2, 0x65, 0xdf, 0xf6, 0xc3, 0x22, 0x13, 0xe1, 0x60, - 0x4a, 0x63, 0x92, 0x1c, 0x7b, 0x7c, 0x16, 0xaa, 0x82, 0xf0, 0x22, 0x22, 0xf1, 0x36, 0xea, 0xf1, - 0xbf, 0xa8, 0x64, 0x1e, 0x4b, 0x1a, 0x11, 0x4f, 0x04, 0x53, 0x12, 0xe1, 0xbf, 0x39, 0xf7, 0x7b, - 0x15, 0x5c, 0x3b, 0xcc, 0xee, 0x63, 0x7f, 0x04, 0x7b, 0x4a, 0x3f, 0xc6, 0x12, 0xb7, 0xac, 0xae, - 0xd5, 0x6b, 0x0e, 0xee, 0xc3, 0x4c, 0x0b, 0xcb, 0x5a, 0xc8, 0x67, 0xa1, 0x2a, 0x08, 0xa8, 0xd2, - 0x70, 0xd1, 0x87, 0x6f, 0x47, 0x8a, 0x7f, 0x4d, 0x24, 0xf6, 0xed, 0xe5, 0xaa, 0x53, 0x49, 0x57, - 0x1d, 0x50, 0xd4, 0x50, 0x6e, 0xb5, 0x11, 0xd8, 0x11, 0x9c, 0x04, 0xad, 0xaa, 0xb1, 0x5f, 0xa2, - 0xc5, 0xd0, 0x9c, 0xee, 0x3d, 0x27, 0x81, 0x7f, 0xdd, 0xd8, 0x77, 0xd4, 0x0a, 0x69, 0x97, 0x3d, - 0x04, 0xbb, 0x42, 0x62, 0x39, 0x17, 0xad, 0x9a, 0xb6, 0x0e, 0xae, 0x64, 0xd5, 0xa4, 0x7f, 0x60, - 0xbc, 0xbb, 0xd9, 0x1a, 0x19, 0xa3, 0xfb, 0xd3, 0x02, 0x4d, 0x93, 0x7c, 0x45, 0x85, 0xb4, 0x3f, - 0x5c, 0xe8, 0x10, 0xbc, 0x5c, 0x87, 0x14, 0xad, 0xfb, 0x73, 0xc3, 0xec, 0xb4, 0xb7, 0xa9, 0x94, - 0xba, 0xf3, 0x0e, 0xd4, 0xa9, 0x24, 0x91, 0x68, 0x55, 0xbb, 0xb5, 0x5e, 0x73, 0x70, 0xf7, 0x2a, - 0x17, 0xf1, 0xf7, 0x8d, 0xb8, 0xfe, 0x52, 0x29, 0x50, 0x66, 0x72, 0xcf, 0x2c, 0x70, 0x60, 0x12, - 0x88, 0x7c, 0x9e, 0x13, 0xf1, 0x3f, 0xa6, 0xfc, 0x08, 0x34, 0xc7, 0x54, 0xf0, 0x23, 0x7c, 0xfc, - 0x06, 0x47, 0x44, 0x0f, 0xbb, 0xe1, 0xdf, 0x34, 0x48, 0xf3, 0x59, 0xf1, 0x09, 0x95, 0x73, 0x1a, - 0x23, 0x22, 0x48, 0x28, 0x97, 0x94, 0xc5, 0x7a, 0x9a, 0x65, 0xac, 0xf8, 0x84, 0xca, 0x39, 0x17, - 0xe7, 0x23, 0x52, 0x8f, 0xc2, 0x46, 0x00, 0x4c, 0x68, 0x8c, 0x8f, 0xe8, 0x17, 0x92, 0x88, 0x96, - 0xd5, 0xad, 0xf5, 0x1a, 0xfe, 0x40, 0x1d, 0xf5, 0x79, 0x5e, 0x3d, 0x5f, 0x75, 0xba, 0x17, 0xff, - 0x88, 0x30, 0x0f, 0xe8, 0xa3, 0x95, 0x2c, 0xee, 0x0f, 0x0b, 0xec, 0xff, 0xf1, 0x60, 0xec, 0x17, - 0xa0, 0xce, 0xa7, 0x58, 0x10, 0xdd, 0xc1, 0x86, 0x3f, 0xd8, 0x34, 0xff, 0x50, 0x15, 0xcf, 0x57, - 0x9d, 0x5b, 0x5b, 0xfc, 0x4a, 0x2b, 0x38, 0x0e, 0x88, 0x0e, 0xa1, 0x4c, 0x60, 0x0f, 0x01, 0x08, - 0x58, 0x3c, 0xa6, 0xea, 0x2e, 0x9b, 0xc9, 0xdf, 0x29, 0x0d, 0x04, 0x2a, 0x1c, 0x96, 0xf1, 0xa7, - 0x9b, 0x78, 0x31, 0x86, 0xbc, 0x24, 0x50, 0xc9, 0xe6, 0xf7, 0x96, 0x6b, 0xa7, 0x72, 0xb2, 0x76, - 0x2a, 0xa7, 0x6b, 0xa7, 0xf2, 0x35, 0x75, 0xac, 0x65, 0xea, 0x58, 0x27, 0xa9, 0x63, 0x9d, 0xa6, - 0x8e, 0x75, 0x96, 0x3a, 0xd6, 0xb7, 0x5f, 0x4e, 0x65, 0x58, 0x5d, 0xf4, 0x7f, 0x07, 0x00, 0x00, - 0xff, 0xff, 0x0a, 0xd0, 0xf2, 0xe0, 0x22, 0x05, 0x00, 0x00, -} - -func (m *Project) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Project) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Project) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ProjectList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ProjectList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ProjectList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ProjectRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ProjectRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ProjectRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Description) - copy(dAtA[i:], m.Description) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Description))) - i-- - dAtA[i] = 0x1a - i -= len(m.DisplayName) - copy(dAtA[i:], m.DisplayName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DisplayName))) - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ProjectSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ProjectSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ProjectSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Finalizers) > 0 { - for iNdEx := len(m.Finalizers) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Finalizers[iNdEx]) - copy(dAtA[i:], m.Finalizers[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Finalizers[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *ProjectStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ProjectStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ProjectStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Conditions) > 0 { - for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - i -= len(m.Phase) - copy(dAtA[i:], m.Phase) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *Project) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ProjectList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ProjectRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.DisplayName) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Description) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ProjectSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Finalizers) > 0 { - for _, s := range m.Finalizers { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ProjectStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Phase) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Project) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Project{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ProjectSpec", "ProjectSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ProjectStatus", "ProjectStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ProjectList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]Project{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Project", "Project", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&ProjectList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *ProjectRequest) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ProjectRequest{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `DisplayName:` + fmt.Sprintf("%v", this.DisplayName) + `,`, - `Description:` + fmt.Sprintf("%v", this.Description) + `,`, - `}`, - }, "") - return s -} -func (this *ProjectSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ProjectSpec{`, - `Finalizers:` + fmt.Sprintf("%v", this.Finalizers) + `,`, - `}`, - }, "") - return s -} -func (this *ProjectStatus) String() string { - if this == nil { - return "nil" - } - repeatedStringForConditions := "[]NamespaceCondition{" - for _, f := range this.Conditions { - repeatedStringForConditions += fmt.Sprintf("%v", f) + "," - } - repeatedStringForConditions += "}" - s := strings.Join([]string{`&ProjectStatus{`, - `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, - `Conditions:` + repeatedStringForConditions + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Project) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Project: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Project: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ProjectList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ProjectList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ProjectList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, Project{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ProjectRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ProjectRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ProjectRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DisplayName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DisplayName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Description = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ProjectSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ProjectSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ProjectSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Finalizers", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Finalizers = append(m.Finalizers, k8s_io_api_core_v1.FinalizerName(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ProjectStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ProjectStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ProjectStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Phase = k8s_io_api_core_v1.NamespacePhase(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Conditions = append(m.Conditions, v11.NamespaceCondition{}) - if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/vendor/github.com/openshift/api/project/v1/generated.proto b/vendor/github.com/openshift/api/project/v1/generated.proto deleted file mode 100644 index 2baaf6a031bd0..0000000000000 --- a/vendor/github.com/openshift/api/project/v1/generated.proto +++ /dev/null @@ -1,75 +0,0 @@ - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = 'proto2'; - -package github.com.openshift.api.project.v1; - -import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v1"; - -// Projects are the unit of isolation and collaboration in OpenShift. A project has one or more members, -// a quota on the resources that the project may consume, and the security controls on the resources in -// the project. Within a project, members may have different roles - project administrators can set -// membership, editors can create and manage the resources, and viewers can see but not access running -// containers. In a normal cluster project administrators are not able to alter their quotas - that is -// restricted to cluster administrators. -// -// Listing or watching projects will return only projects the user has the reader role on. -// -// An OpenShift project is an alternative representation of a Kubernetes namespace. Projects are exposed -// as editable to end users while namespaces are not. Direct creation of a project is typically restricted -// to administrators, while end users should use the requestproject resource. -message Project { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Spec defines the behavior of the Namespace. - optional ProjectSpec spec = 2; - - // Status describes the current status of a Namespace - // +optional - optional ProjectStatus status = 3; -} - -// ProjectList is a list of Project objects. -message ProjectList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is the list of projects - repeated Project items = 2; -} - -// ProjecRequest is the set of options necessary to fully qualify a project request -message ProjectRequest { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // DisplayName is the display name to apply to a project - optional string displayName = 2; - - // Description is the description to apply to a project - optional string description = 3; -} - -// ProjectSpec describes the attributes on a Project -message ProjectSpec { - // Finalizers is an opaque list of values that must be empty to permanently remove object from storage - repeated string finalizers = 1; -} - -// ProjectStatus is information about the current status of a Project -message ProjectStatus { - // Phase is the current lifecycle phase of the project - // +optional - optional string phase = 1; - - // Represents the latest available observations of the project current state. - // +optional - // +patchMergeKey=type - // +patchStrategy=merge - repeated k8s.io.api.core.v1.NamespaceCondition conditions = 2; -} - diff --git a/vendor/github.com/openshift/api/project/v1/legacy.go b/vendor/github.com/openshift/api/project/v1/legacy.go deleted file mode 100644 index 186f905f3a8eb..0000000000000 --- a/vendor/github.com/openshift/api/project/v1/legacy.go +++ /dev/null @@ -1,23 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - legacyGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} - legacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, corev1.AddToScheme) - DeprecatedInstallWithoutGroup = legacySchemeBuilder.AddToScheme -) - -func addLegacyKnownTypes(scheme *runtime.Scheme) error { - types := []runtime.Object{ - &Project{}, - &ProjectList{}, - &ProjectRequest{}, - } - scheme.AddKnownTypes(legacyGroupVersion, types...) - return nil -} diff --git a/vendor/github.com/openshift/api/project/v1/register.go b/vendor/github.com/openshift/api/project/v1/register.go deleted file mode 100644 index e471716ce8e2a..0000000000000 --- a/vendor/github.com/openshift/api/project/v1/register.go +++ /dev/null @@ -1,40 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - GroupName = "project.openshift.io" - GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, corev1.AddToScheme) - // Install is a function which adds this version to a scheme - Install = schemeBuilder.AddToScheme - - // SchemeGroupVersion generated code relies on this name - // Deprecated - SchemeGroupVersion = GroupVersion - // AddToScheme exists solely to keep the old generators creating valid code - // DEPRECATED - AddToScheme = schemeBuilder.AddToScheme -) - -// Resource generated code relies on this being here, but it logically belongs to the group -// DEPRECATED -func Resource(resource string) schema.GroupResource { - return schema.GroupResource{Group: GroupName, Resource: resource} -} - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &Project{}, - &ProjectList{}, - &ProjectRequest{}, - ) - metav1.AddToGroupVersion(scheme, GroupVersion) - return nil -} diff --git a/vendor/github.com/openshift/api/project/v1/types.go b/vendor/github.com/openshift/api/project/v1/types.go deleted file mode 100644 index dea150f12ff05..0000000000000 --- a/vendor/github.com/openshift/api/project/v1/types.go +++ /dev/null @@ -1,93 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ProjectList is a list of Project objects. -type ProjectList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is the list of projects - Items []Project `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -const ( - // These are internal finalizer values to Origin - FinalizerOrigin corev1.FinalizerName = "openshift.io/origin" - // ProjectNodeSelector is an annotation that holds the node selector; - // the node selector annotation determines which nodes will have pods from this project scheduled to them - ProjectNodeSelector = "openshift.io/node-selector" - - // ProjectRequesterAnnotation is the username that requested a given project. Its not guaranteed to be present, - // but it is set by the default project template. - ProjectRequesterAnnotation = "openshift.io/requester" -) - -// ProjectSpec describes the attributes on a Project -type ProjectSpec struct { - // Finalizers is an opaque list of values that must be empty to permanently remove object from storage - Finalizers []corev1.FinalizerName `json:"finalizers,omitempty" protobuf:"bytes,1,rep,name=finalizers,casttype=k8s.io/api/core/v1.FinalizerName"` -} - -// ProjectStatus is information about the current status of a Project -type ProjectStatus struct { - // Phase is the current lifecycle phase of the project - // +optional - Phase corev1.NamespacePhase `json:"phase,omitempty" protobuf:"bytes,1,opt,name=phase,casttype=k8s.io/api/core/v1.NamespacePhase"` - - // Represents the latest available observations of the project current state. - // +optional - // +patchMergeKey=type - // +patchStrategy=merge - Conditions []corev1.NamespaceCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,2,rep,name=conditions"` -} - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Projects are the unit of isolation and collaboration in OpenShift. A project has one or more members, -// a quota on the resources that the project may consume, and the security controls on the resources in -// the project. Within a project, members may have different roles - project administrators can set -// membership, editors can create and manage the resources, and viewers can see but not access running -// containers. In a normal cluster project administrators are not able to alter their quotas - that is -// restricted to cluster administrators. -// -// Listing or watching projects will return only projects the user has the reader role on. -// -// An OpenShift project is an alternative representation of a Kubernetes namespace. Projects are exposed -// as editable to end users while namespaces are not. Direct creation of a project is typically restricted -// to administrators, while end users should use the requestproject resource. -type Project struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Spec defines the behavior of the Namespace. - Spec ProjectSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` - - // Status describes the current status of a Namespace - // +optional - Status ProjectStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// +genclient -// +genclient:nonNamespaced -// +genclient:skipVerbs=get,list,create,update,patch,delete,deleteCollection,watch -// +genclient:method=Create,verb=create,result=Project - -// ProjecRequest is the set of options necessary to fully qualify a project request -type ProjectRequest struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // DisplayName is the display name to apply to a project - DisplayName string `json:"displayName,omitempty" protobuf:"bytes,2,opt,name=displayName"` - // Description is the description to apply to a project - Description string `json:"description,omitempty" protobuf:"bytes,3,opt,name=description"` -} diff --git a/vendor/github.com/openshift/api/project/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/project/v1/zz_generated.deepcopy.go deleted file mode 100644 index 763383030f480..0000000000000 --- a/vendor/github.com/openshift/api/project/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,141 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - corev1 "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 *Project) DeepCopyInto(out *Project) { - *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 Project. -func (in *Project) DeepCopy() *Project { - if in == nil { - return nil - } - out := new(Project) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Project) 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 *ProjectList) DeepCopyInto(out *ProjectList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Project, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectList. -func (in *ProjectList) DeepCopy() *ProjectList { - if in == nil { - return nil - } - out := new(ProjectList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ProjectList) 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 *ProjectRequest) DeepCopyInto(out *ProjectRequest) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRequest. -func (in *ProjectRequest) DeepCopy() *ProjectRequest { - if in == nil { - return nil - } - out := new(ProjectRequest) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ProjectRequest) 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 *ProjectSpec) DeepCopyInto(out *ProjectSpec) { - *out = *in - if in.Finalizers != nil { - in, out := &in.Finalizers, &out.Finalizers - *out = make([]corev1.FinalizerName, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectSpec. -func (in *ProjectSpec) DeepCopy() *ProjectSpec { - if in == nil { - return nil - } - out := new(ProjectSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProjectStatus) DeepCopyInto(out *ProjectStatus) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]corev1.NamespaceCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectStatus. -func (in *ProjectStatus) DeepCopy() *ProjectStatus { - if in == nil { - return nil - } - out := new(ProjectStatus) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/github.com/openshift/api/project/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/project/v1/zz_generated.swagger_doc_generated.go deleted file mode 100644 index 080f2677ae10b..0000000000000 --- a/vendor/github.com/openshift/api/project/v1/zz_generated.swagger_doc_generated.go +++ /dev/null @@ -1,62 +0,0 @@ -package v1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE -var map_Project = map[string]string{ - "": "Projects are the unit of isolation and collaboration in OpenShift. A project has one or more members, a quota on the resources that the project may consume, and the security controls on the resources in the project. Within a project, members may have different roles - project administrators can set membership, editors can create and manage the resources, and viewers can see but not access running containers. In a normal cluster project administrators are not able to alter their quotas - that is restricted to cluster administrators.\n\nListing or watching projects will return only projects the user has the reader role on.\n\nAn OpenShift project is an alternative representation of a Kubernetes namespace. Projects are exposed as editable to end users while namespaces are not. Direct creation of a project is typically restricted to administrators, while end users should use the requestproject resource.", - "spec": "Spec defines the behavior of the Namespace.", - "status": "Status describes the current status of a Namespace", -} - -func (Project) SwaggerDoc() map[string]string { - return map_Project -} - -var map_ProjectList = map[string]string{ - "": "ProjectList is a list of Project objects.", - "items": "Items is the list of projects", -} - -func (ProjectList) SwaggerDoc() map[string]string { - return map_ProjectList -} - -var map_ProjectRequest = map[string]string{ - "": "ProjecRequest is the set of options necessary to fully qualify a project request", - "displayName": "DisplayName is the display name to apply to a project", - "description": "Description is the description to apply to a project", -} - -func (ProjectRequest) SwaggerDoc() map[string]string { - return map_ProjectRequest -} - -var map_ProjectSpec = map[string]string{ - "": "ProjectSpec describes the attributes on a Project", - "finalizers": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage", -} - -func (ProjectSpec) SwaggerDoc() map[string]string { - return map_ProjectSpec -} - -var map_ProjectStatus = map[string]string{ - "": "ProjectStatus is information about the current status of a Project", - "phase": "Phase is the current lifecycle phase of the project", - "conditions": "Represents the latest available observations of the project current state.", -} - -func (ProjectStatus) SwaggerDoc() map[string]string { - return map_ProjectStatus -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/github.com/openshift/api/quota/v1/0000_03_quota-openshift_01_clusterresourcequota.crd.yaml b/vendor/github.com/openshift/api/quota/v1/0000_03_quota-openshift_01_clusterresourcequota.crd.yaml deleted file mode 100644 index 8382490414d40..0000000000000 --- a/vendor/github.com/openshift/api/quota/v1/0000_03_quota-openshift_01_clusterresourcequota.crd.yaml +++ /dev/null @@ -1,243 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - include.release.openshift.io/self-managed-high-availability: "true" - name: clusterresourcequotas.quota.openshift.io -spec: - group: quota.openshift.io - names: - kind: ClusterResourceQuota - listKind: ClusterResourceQuotaList - plural: clusterresourcequotas - singular: clusterresourcequota - preserveUnknownFields: false - scope: Cluster - subresources: - status: {} - validation: - openAPIV3Schema: - description: ClusterResourceQuota mirrors ResourceQuota at a cluster scope. This - object is easily convertible to synthetic ResourceQuota object to allow quota - evaluation re-use. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: Spec defines the desired quota - properties: - quota: - description: Quota defines the desired quota - properties: - hard: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - type: "" - x-kubernetes-int-or-string: true - description: 'hard is the set of desired hard limits for each named - resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/' - type: object - scopeSelector: - description: scopeSelector is also a collection of filters like - scopes that must match each object tracked by a quota but expressed - using ScopeSelectorOperator in combination with possible values. - For a resource to match, both scopes AND scopeSelector (if specified - in spec), must be matched. - properties: - matchExpressions: - description: A list of scope selector requirements by scope - of the resources. - items: - description: A scoped-resource selector requirement is a selector - that contains values, a scope name, and an operator that - relates the scope name and values. - properties: - operator: - description: Represents a scope's relationship to a set - of values. Valid operators are In, NotIn, Exists, DoesNotExist. - type: string - scopeName: - description: The name of the scope that the selector applies - to. - type: string - values: - description: An array of string values. If the operator - is In or NotIn, the values array must be non-empty. - If the operator is Exists or DoesNotExist, the values - array must be empty. This array is replaced during a - strategic merge patch. - items: - type: string - type: array - required: - - operator - - scopeName - type: object - type: array - type: object - scopes: - description: A collection of filters that must match each object - tracked by a quota. If not specified, the quota matches all objects. - items: - description: A ResourceQuotaScope defines a filter that must match - each object tracked by a quota - type: string - type: array - type: object - selector: - description: Selector is the selector used to match projects. It should - only select active projects on the scale of dozens (though it can - select many more less active projects). These projects will contend - on object creation through this resource. - properties: - annotations: - additionalProperties: - type: string - description: AnnotationSelector is used to select projects by annotation. - nullable: true - type: object - labels: - description: LabelSelector is used to select projects by label. - nullable: true - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: A label selector requirement is a selector that - contains values, a key, and an operator that relates the - key and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, NotIn, Exists - and DoesNotExist. - type: string - values: - description: values is an array of string values. If the - operator is In or NotIn, the values array must be non-empty. - If the operator is Exists or DoesNotExist, the values - array must be empty. This array is replaced during a - strategic merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator - is "In", and the values array contains only "value". The requirements - are ANDed. - type: object - type: object - type: object - required: - - quota - - selector - type: object - status: - description: Status defines the actual enforced quota and its current usage - properties: - namespaces: - description: Namespaces slices the usage by project. This division - allows for quick resolution of deletion reconciliation inside of a - single project without requiring a recalculation across all projects. This - can be used to pull the deltas for a given project. - items: - description: ResourceQuotaStatusByNamespace gives status for a particular - project - properties: - namespace: - description: Namespace the project this status applies to - type: string - status: - description: Status indicates how many resources have been consumed - by this project - properties: - hard: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Hard is the set of enforced hard limits for - each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/' - type: object - used: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Used is the current observed total usage of the - resource in the namespace. - type: object - type: object - required: - - namespace - - status - type: object - nullable: true - type: array - total: - description: Total defines the actual enforced quota and its current - usage across all projects - properties: - hard: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: 'Hard is the set of enforced hard limits for each named - resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/' - type: object - used: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: Used is the current observed total usage of the resource - in the namespace. - type: object - type: object - required: - - total - type: object - required: - - metadata - - spec - type: object - versions: - - name: v1 - served: true - storage: true diff --git a/vendor/github.com/openshift/api/quota/v1/0000_03_quota-openshift_01_clusterresourcequota.crd.yaml-merge-patch b/vendor/github.com/openshift/api/quota/v1/0000_03_quota-openshift_01_clusterresourcequota.crd.yaml-merge-patch deleted file mode 100644 index 1897fdbee9ed0..0000000000000 --- a/vendor/github.com/openshift/api/quota/v1/0000_03_quota-openshift_01_clusterresourcequota.crd.yaml-merge-patch +++ /dev/null @@ -1,13 +0,0 @@ -spec: - validation: - openAPIV3Schema: - properties: - spec: - properties: - quota: - properties: - hard: - additionalProperties: - type: "" - x-kubernetes-int-or-string: true - diff --git a/vendor/github.com/openshift/api/quota/v1/doc.go b/vendor/github.com/openshift/api/quota/v1/doc.go deleted file mode 100644 index ae5c9c2c762ae..0000000000000 --- a/vendor/github.com/openshift/api/quota/v1/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=github.com/openshift/origin/pkg/quota/apis/quota -// +k8s:defaulter-gen=TypeMeta -// +k8s:openapi-gen=true - -// +groupName=quota.openshift.io -// Package v1 is the v1 version of the API. -package v1 diff --git a/vendor/github.com/openshift/api/quota/v1/generated.pb.go b/vendor/github.com/openshift/api/quota/v1/generated.pb.go deleted file mode 100644 index 691c7f39602b1..0000000000000 --- a/vendor/github.com/openshift/api/quota/v1/generated.pb.go +++ /dev/null @@ -1,2176 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: github.com/openshift/api/quota/v1/generated.proto - -package v1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *AppliedClusterResourceQuota) Reset() { *m = AppliedClusterResourceQuota{} } -func (*AppliedClusterResourceQuota) ProtoMessage() {} -func (*AppliedClusterResourceQuota) Descriptor() ([]byte, []int) { - return fileDescriptor_f605e5b8440aecb8, []int{0} -} -func (m *AppliedClusterResourceQuota) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *AppliedClusterResourceQuota) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *AppliedClusterResourceQuota) XXX_Merge(src proto.Message) { - xxx_messageInfo_AppliedClusterResourceQuota.Merge(m, src) -} -func (m *AppliedClusterResourceQuota) XXX_Size() int { - return m.Size() -} -func (m *AppliedClusterResourceQuota) XXX_DiscardUnknown() { - xxx_messageInfo_AppliedClusterResourceQuota.DiscardUnknown(m) -} - -var xxx_messageInfo_AppliedClusterResourceQuota proto.InternalMessageInfo - -func (m *AppliedClusterResourceQuotaList) Reset() { *m = AppliedClusterResourceQuotaList{} } -func (*AppliedClusterResourceQuotaList) ProtoMessage() {} -func (*AppliedClusterResourceQuotaList) Descriptor() ([]byte, []int) { - return fileDescriptor_f605e5b8440aecb8, []int{1} -} -func (m *AppliedClusterResourceQuotaList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *AppliedClusterResourceQuotaList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *AppliedClusterResourceQuotaList) XXX_Merge(src proto.Message) { - xxx_messageInfo_AppliedClusterResourceQuotaList.Merge(m, src) -} -func (m *AppliedClusterResourceQuotaList) XXX_Size() int { - return m.Size() -} -func (m *AppliedClusterResourceQuotaList) XXX_DiscardUnknown() { - xxx_messageInfo_AppliedClusterResourceQuotaList.DiscardUnknown(m) -} - -var xxx_messageInfo_AppliedClusterResourceQuotaList proto.InternalMessageInfo - -func (m *ClusterResourceQuota) Reset() { *m = ClusterResourceQuota{} } -func (*ClusterResourceQuota) ProtoMessage() {} -func (*ClusterResourceQuota) Descriptor() ([]byte, []int) { - return fileDescriptor_f605e5b8440aecb8, []int{2} -} -func (m *ClusterResourceQuota) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterResourceQuota) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ClusterResourceQuota) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterResourceQuota.Merge(m, src) -} -func (m *ClusterResourceQuota) XXX_Size() int { - return m.Size() -} -func (m *ClusterResourceQuota) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterResourceQuota.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterResourceQuota proto.InternalMessageInfo - -func (m *ClusterResourceQuotaList) Reset() { *m = ClusterResourceQuotaList{} } -func (*ClusterResourceQuotaList) ProtoMessage() {} -func (*ClusterResourceQuotaList) Descriptor() ([]byte, []int) { - return fileDescriptor_f605e5b8440aecb8, []int{3} -} -func (m *ClusterResourceQuotaList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterResourceQuotaList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ClusterResourceQuotaList) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterResourceQuotaList.Merge(m, src) -} -func (m *ClusterResourceQuotaList) XXX_Size() int { - return m.Size() -} -func (m *ClusterResourceQuotaList) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterResourceQuotaList.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterResourceQuotaList proto.InternalMessageInfo - -func (m *ClusterResourceQuotaSelector) Reset() { *m = ClusterResourceQuotaSelector{} } -func (*ClusterResourceQuotaSelector) ProtoMessage() {} -func (*ClusterResourceQuotaSelector) Descriptor() ([]byte, []int) { - return fileDescriptor_f605e5b8440aecb8, []int{4} -} -func (m *ClusterResourceQuotaSelector) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterResourceQuotaSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ClusterResourceQuotaSelector) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterResourceQuotaSelector.Merge(m, src) -} -func (m *ClusterResourceQuotaSelector) XXX_Size() int { - return m.Size() -} -func (m *ClusterResourceQuotaSelector) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterResourceQuotaSelector.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterResourceQuotaSelector proto.InternalMessageInfo - -func (m *ClusterResourceQuotaSpec) Reset() { *m = ClusterResourceQuotaSpec{} } -func (*ClusterResourceQuotaSpec) ProtoMessage() {} -func (*ClusterResourceQuotaSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_f605e5b8440aecb8, []int{5} -} -func (m *ClusterResourceQuotaSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterResourceQuotaSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ClusterResourceQuotaSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterResourceQuotaSpec.Merge(m, src) -} -func (m *ClusterResourceQuotaSpec) XXX_Size() int { - return m.Size() -} -func (m *ClusterResourceQuotaSpec) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterResourceQuotaSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterResourceQuotaSpec proto.InternalMessageInfo - -func (m *ClusterResourceQuotaStatus) Reset() { *m = ClusterResourceQuotaStatus{} } -func (*ClusterResourceQuotaStatus) ProtoMessage() {} -func (*ClusterResourceQuotaStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_f605e5b8440aecb8, []int{6} -} -func (m *ClusterResourceQuotaStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ClusterResourceQuotaStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ClusterResourceQuotaStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_ClusterResourceQuotaStatus.Merge(m, src) -} -func (m *ClusterResourceQuotaStatus) XXX_Size() int { - return m.Size() -} -func (m *ClusterResourceQuotaStatus) XXX_DiscardUnknown() { - xxx_messageInfo_ClusterResourceQuotaStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_ClusterResourceQuotaStatus proto.InternalMessageInfo - -func (m *ResourceQuotaStatusByNamespace) Reset() { *m = ResourceQuotaStatusByNamespace{} } -func (*ResourceQuotaStatusByNamespace) ProtoMessage() {} -func (*ResourceQuotaStatusByNamespace) Descriptor() ([]byte, []int) { - return fileDescriptor_f605e5b8440aecb8, []int{7} -} -func (m *ResourceQuotaStatusByNamespace) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ResourceQuotaStatusByNamespace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ResourceQuotaStatusByNamespace) XXX_Merge(src proto.Message) { - xxx_messageInfo_ResourceQuotaStatusByNamespace.Merge(m, src) -} -func (m *ResourceQuotaStatusByNamespace) XXX_Size() int { - return m.Size() -} -func (m *ResourceQuotaStatusByNamespace) XXX_DiscardUnknown() { - xxx_messageInfo_ResourceQuotaStatusByNamespace.DiscardUnknown(m) -} - -var xxx_messageInfo_ResourceQuotaStatusByNamespace proto.InternalMessageInfo - -func init() { - proto.RegisterType((*AppliedClusterResourceQuota)(nil), "github.com.openshift.api.quota.v1.AppliedClusterResourceQuota") - proto.RegisterType((*AppliedClusterResourceQuotaList)(nil), "github.com.openshift.api.quota.v1.AppliedClusterResourceQuotaList") - proto.RegisterType((*ClusterResourceQuota)(nil), "github.com.openshift.api.quota.v1.ClusterResourceQuota") - proto.RegisterType((*ClusterResourceQuotaList)(nil), "github.com.openshift.api.quota.v1.ClusterResourceQuotaList") - proto.RegisterType((*ClusterResourceQuotaSelector)(nil), "github.com.openshift.api.quota.v1.ClusterResourceQuotaSelector") - proto.RegisterMapType((map[string]string)(nil), "github.com.openshift.api.quota.v1.ClusterResourceQuotaSelector.AnnotationsEntry") - proto.RegisterType((*ClusterResourceQuotaSpec)(nil), "github.com.openshift.api.quota.v1.ClusterResourceQuotaSpec") - proto.RegisterType((*ClusterResourceQuotaStatus)(nil), "github.com.openshift.api.quota.v1.ClusterResourceQuotaStatus") - proto.RegisterType((*ResourceQuotaStatusByNamespace)(nil), "github.com.openshift.api.quota.v1.ResourceQuotaStatusByNamespace") -} - -func init() { - proto.RegisterFile("github.com/openshift/api/quota/v1/generated.proto", fileDescriptor_f605e5b8440aecb8) -} - -var fileDescriptor_f605e5b8440aecb8 = []byte{ - // 715 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x55, 0x41, 0x6f, 0xd3, 0x48, - 0x18, 0x8d, 0xdd, 0xa6, 0x6a, 0xa6, 0xdb, 0x55, 0x3b, 0xea, 0x21, 0xca, 0xae, 0x9c, 0xae, 0xa5, - 0x15, 0xbd, 0x30, 0x26, 0x05, 0x41, 0x05, 0xa2, 0xa8, 0x46, 0x1c, 0x40, 0x85, 0x82, 0xe1, 0x84, - 0x0a, 0x62, 0xe2, 0x4e, 0x13, 0x13, 0xdb, 0x63, 0x3c, 0xe3, 0x48, 0xb9, 0xf1, 0x0b, 0x10, 0xbf, - 0x81, 0x1f, 0xc2, 0x0d, 0xa9, 0x37, 0x7a, 0x01, 0xf5, 0x54, 0x11, 0xc3, 0x0f, 0x41, 0x33, 0x9e, - 0xd8, 0x69, 0x9b, 0xb4, 0xa1, 0x3d, 0x70, 0xe1, 0xe6, 0xf9, 0x32, 0xef, 0xbd, 0x79, 0xcf, 0x6f, - 0x1c, 0xd0, 0x68, 0x79, 0xbc, 0x9d, 0x34, 0x91, 0x4b, 0x03, 0x8b, 0x46, 0x24, 0x64, 0x6d, 0x6f, - 0x97, 0x5b, 0x38, 0xf2, 0xac, 0x37, 0x09, 0xe5, 0xd8, 0xea, 0x36, 0xac, 0x16, 0x09, 0x49, 0x8c, - 0x39, 0xd9, 0x41, 0x51, 0x4c, 0x39, 0x85, 0xff, 0x15, 0x10, 0x94, 0x43, 0x10, 0x8e, 0x3c, 0x24, - 0x21, 0xa8, 0xdb, 0xa8, 0x5d, 0x1e, 0x62, 0x6d, 0xd1, 0x16, 0xb5, 0x24, 0xb2, 0x99, 0xec, 0xca, - 0x95, 0x5c, 0xc8, 0xa7, 0x8c, 0xb1, 0x66, 0x76, 0xd6, 0x18, 0xf2, 0xa8, 0x94, 0x75, 0x69, 0x4c, - 0x46, 0xa8, 0xd6, 0xae, 0x15, 0x7b, 0x02, 0xec, 0xb6, 0xbd, 0x90, 0xc4, 0x3d, 0x2b, 0xea, 0xb4, - 0xc4, 0x80, 0x59, 0x01, 0x19, 0x79, 0xd6, 0xda, 0xf5, 0x71, 0xa8, 0x38, 0x09, 0xb9, 0x17, 0x10, - 0x8b, 0xb9, 0x6d, 0x12, 0xe0, 0xe3, 0x38, 0xf3, 0x93, 0x0e, 0xfe, 0xd9, 0x88, 0x22, 0xdf, 0x23, - 0x3b, 0x77, 0xfd, 0x84, 0x71, 0x12, 0x3b, 0x84, 0xd1, 0x24, 0x76, 0xc9, 0x13, 0xe1, 0x11, 0xbe, - 0x02, 0xb3, 0x42, 0x72, 0x07, 0x73, 0x5c, 0xd5, 0x96, 0xb5, 0x95, 0xb9, 0xd5, 0x2b, 0x28, 0x93, - 0x42, 0xc3, 0x52, 0x28, 0xea, 0xb4, 0xc4, 0x80, 0x21, 0xb1, 0x1b, 0x75, 0x1b, 0x68, 0xab, 0xf9, - 0x9a, 0xb8, 0xfc, 0x21, 0xe1, 0xd8, 0x86, 0x7b, 0x87, 0xf5, 0x52, 0x7a, 0x58, 0x07, 0xc5, 0xcc, - 0xc9, 0x59, 0xe1, 0x0b, 0x30, 0xcd, 0x22, 0xe2, 0x56, 0x75, 0xc9, 0x7e, 0x0b, 0x9d, 0x19, 0x3a, - 0x1a, 0x75, 0xd0, 0xa7, 0x11, 0x71, 0xed, 0xbf, 0x94, 0xd0, 0xb4, 0x58, 0x39, 0x92, 0x16, 0x12, - 0x30, 0xc3, 0x38, 0xe6, 0x09, 0xab, 0x4e, 0x49, 0x81, 0xdb, 0xe7, 0x15, 0x90, 0x24, 0xf6, 0xdf, - 0x4a, 0x62, 0x26, 0x5b, 0x3b, 0x8a, 0xdc, 0xfc, 0xa1, 0x81, 0xfa, 0x29, 0x39, 0x6e, 0x7a, 0x8c, - 0xc3, 0xed, 0x13, 0x59, 0xa2, 0xc9, 0xb2, 0x14, 0x68, 0x99, 0xe4, 0x82, 0x52, 0x9f, 0x1d, 0x4c, - 0x86, 0x72, 0x74, 0x41, 0xd9, 0xe3, 0x24, 0x60, 0x55, 0x7d, 0x79, 0x6a, 0x65, 0x6e, 0x75, 0x7d, - 0x02, 0x9f, 0xa7, 0x1c, 0xd8, 0x9e, 0x57, 0x52, 0xe5, 0xfb, 0x82, 0xd4, 0xc9, 0xb8, 0xcd, 0x8f, - 0x3a, 0x58, 0xfa, 0xd3, 0x93, 0x0b, 0xf4, 0xe4, 0xab, 0x06, 0xaa, 0xbf, 0xa9, 0x20, 0xdb, 0x47, - 0x0b, 0x72, 0xe3, 0x9c, 0x06, 0xc7, 0x34, 0xe3, 0xb3, 0x0e, 0xfe, 0x1d, 0x99, 0x07, 0xf1, 0x89, - 0xcb, 0x69, 0x0c, 0x5f, 0x82, 0x19, 0x1f, 0x37, 0x89, 0xcf, 0x94, 0xb5, 0xab, 0x13, 0x5a, 0x13, - 0x98, 0x01, 0x89, 0xbd, 0x98, 0x1e, 0xd6, 0xe7, 0x8f, 0x8c, 0x1c, 0xc5, 0x0a, 0xdf, 0x69, 0x60, - 0x0e, 0x87, 0x21, 0xe5, 0x98, 0x7b, 0x34, 0x1c, 0xb8, 0x7c, 0x7c, 0xde, 0xd7, 0xa8, 0xe8, 0xd1, - 0x46, 0x41, 0x79, 0x2f, 0xe4, 0x71, 0xcf, 0xae, 0x29, 0xfb, 0xb0, 0xf8, 0x25, 0x3f, 0xcb, 0xf0, - 0x01, 0x6a, 0xeb, 0x60, 0xe1, 0x38, 0x18, 0x2e, 0x80, 0xa9, 0x0e, 0xe9, 0xc9, 0x04, 0x2a, 0x8e, - 0x78, 0x84, 0x4b, 0xa0, 0xdc, 0xc5, 0x7e, 0x42, 0x64, 0xaf, 0x2b, 0x4e, 0xb6, 0xb8, 0xa9, 0xaf, - 0x69, 0xe6, 0x97, 0x31, 0x55, 0x11, 0xa5, 0x85, 0x01, 0x98, 0x65, 0x4a, 0x55, 0xe5, 0x79, 0xe7, - 0x82, 0x4e, 0x8b, 0xee, 0xe4, 0x76, 0x72, 0x09, 0xf8, 0x00, 0x94, 0x25, 0x89, 0xba, 0x7d, 0xff, - 0x0f, 0xbd, 0x3b, 0x24, 0xfe, 0xc8, 0x04, 0xf9, 0xc9, 0x7b, 0x96, 0x37, 0x45, 0x8e, 0x9c, 0x8c, - 0xc2, 0xec, 0x6b, 0xa0, 0x36, 0xfe, 0xe6, 0xc0, 0x4d, 0x50, 0xe6, 0x94, 0x63, 0x5f, 0xd9, 0xba, - 0x74, 0xb6, 0x54, 0x76, 0xe3, 0x72, 0xb1, 0x67, 0x02, 0xed, 0x64, 0x24, 0x30, 0x01, 0x20, 0xc4, - 0x01, 0x61, 0x11, 0x76, 0xc9, 0xa0, 0x13, 0x1b, 0x13, 0x24, 0x35, 0x4a, 0xa1, 0xf7, 0x68, 0xc0, - 0x54, 0x7c, 0xaa, 0xf2, 0x11, 0x73, 0x86, 0x84, 0xcc, 0x0f, 0x1a, 0x30, 0x4e, 0xa7, 0x80, 0x16, - 0xa8, 0xe4, 0x80, 0xac, 0x10, 0xf6, 0xa2, 0x62, 0xad, 0xe4, 0xbb, 0x9c, 0x62, 0x0f, 0xdc, 0xca, - 0xbf, 0x50, 0xfa, 0xaf, 0x25, 0x33, 0xe6, 0x5b, 0x64, 0xaf, 0xec, 0xf5, 0x8d, 0xd2, 0x7e, 0xdf, - 0x28, 0x1d, 0xf4, 0x8d, 0xd2, 0xdb, 0xd4, 0xd0, 0xf6, 0x52, 0x43, 0xdb, 0x4f, 0x0d, 0xed, 0x20, - 0x35, 0xb4, 0x6f, 0xa9, 0xa1, 0xbd, 0xff, 0x6e, 0x94, 0x9e, 0xeb, 0xdd, 0xc6, 0xcf, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xa7, 0x76, 0xc9, 0x6f, 0x3d, 0x09, 0x00, 0x00, -} - -func (m *AppliedClusterResourceQuota) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *AppliedClusterResourceQuota) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *AppliedClusterResourceQuota) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *AppliedClusterResourceQuotaList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *AppliedClusterResourceQuotaList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *AppliedClusterResourceQuotaList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ClusterResourceQuota) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterResourceQuota) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ClusterResourceQuota) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ClusterResourceQuotaList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterResourceQuotaList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ClusterResourceQuotaList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ClusterResourceQuotaSelector) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterResourceQuotaSelector) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ClusterResourceQuotaSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.AnnotationSelector) > 0 { - keysForAnnotationSelector := make([]string, 0, len(m.AnnotationSelector)) - for k := range m.AnnotationSelector { - keysForAnnotationSelector = append(keysForAnnotationSelector, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotationSelector) - for iNdEx := len(keysForAnnotationSelector) - 1; iNdEx >= 0; iNdEx-- { - v := m.AnnotationSelector[string(keysForAnnotationSelector[iNdEx])] - baseI := i - i -= len(v) - copy(dAtA[i:], v) - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i-- - dAtA[i] = 0x12 - i -= len(keysForAnnotationSelector[iNdEx]) - copy(dAtA[i:], keysForAnnotationSelector[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForAnnotationSelector[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0x12 - } - } - if m.LabelSelector != nil { - { - size, err := m.LabelSelector.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *ClusterResourceQuotaSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterResourceQuotaSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ClusterResourceQuotaSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Quota.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.Selector.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ClusterResourceQuotaStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ClusterResourceQuotaStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ClusterResourceQuotaStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Namespaces) > 0 { - for iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Namespaces[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.Total.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ResourceQuotaStatusByNamespace) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ResourceQuotaStatusByNamespace) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ResourceQuotaStatusByNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - i -= len(m.Namespace) - copy(dAtA[i:], m.Namespace) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *AppliedClusterResourceQuota) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *AppliedClusterResourceQuotaList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ClusterResourceQuota) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ClusterResourceQuotaList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ClusterResourceQuotaSelector) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.LabelSelector != nil { - l = m.LabelSelector.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if len(m.AnnotationSelector) > 0 { - for k, v := range m.AnnotationSelector { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - return n -} - -func (m *ClusterResourceQuotaSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Selector.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Quota.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ClusterResourceQuotaStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Total.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Namespaces) > 0 { - for _, e := range m.Namespaces { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ResourceQuotaStatusByNamespace) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Namespace) - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *AppliedClusterResourceQuota) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AppliedClusterResourceQuota{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ClusterResourceQuotaSpec", "ClusterResourceQuotaSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ClusterResourceQuotaStatus", "ClusterResourceQuotaStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *AppliedClusterResourceQuotaList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]AppliedClusterResourceQuota{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "AppliedClusterResourceQuota", "AppliedClusterResourceQuota", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&AppliedClusterResourceQuotaList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *ClusterResourceQuota) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ClusterResourceQuota{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ClusterResourceQuotaSpec", "ClusterResourceQuotaSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ClusterResourceQuotaStatus", "ClusterResourceQuotaStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ClusterResourceQuotaList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]ClusterResourceQuota{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "ClusterResourceQuota", "ClusterResourceQuota", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&ClusterResourceQuotaList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *ClusterResourceQuotaSelector) String() string { - if this == nil { - return "nil" - } - keysForAnnotationSelector := make([]string, 0, len(this.AnnotationSelector)) - for k := range this.AnnotationSelector { - keysForAnnotationSelector = append(keysForAnnotationSelector, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotationSelector) - mapStringForAnnotationSelector := "map[string]string{" - for _, k := range keysForAnnotationSelector { - mapStringForAnnotationSelector += fmt.Sprintf("%v: %v,", k, this.AnnotationSelector[k]) - } - mapStringForAnnotationSelector += "}" - s := strings.Join([]string{`&ClusterResourceQuotaSelector{`, - `LabelSelector:` + strings.Replace(fmt.Sprintf("%v", this.LabelSelector), "LabelSelector", "v1.LabelSelector", 1) + `,`, - `AnnotationSelector:` + mapStringForAnnotationSelector + `,`, - `}`, - }, "") - return s -} -func (this *ClusterResourceQuotaSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ClusterResourceQuotaSpec{`, - `Selector:` + strings.Replace(strings.Replace(this.Selector.String(), "ClusterResourceQuotaSelector", "ClusterResourceQuotaSelector", 1), `&`, ``, 1) + `,`, - `Quota:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Quota), "ResourceQuotaSpec", "v11.ResourceQuotaSpec", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ClusterResourceQuotaStatus) String() string { - if this == nil { - return "nil" - } - repeatedStringForNamespaces := "[]ResourceQuotaStatusByNamespace{" - for _, f := range this.Namespaces { - repeatedStringForNamespaces += strings.Replace(strings.Replace(f.String(), "ResourceQuotaStatusByNamespace", "ResourceQuotaStatusByNamespace", 1), `&`, ``, 1) + "," - } - repeatedStringForNamespaces += "}" - s := strings.Join([]string{`&ClusterResourceQuotaStatus{`, - `Total:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Total), "ResourceQuotaStatus", "v11.ResourceQuotaStatus", 1), `&`, ``, 1) + `,`, - `Namespaces:` + repeatedStringForNamespaces + `,`, - `}`, - }, "") - return s -} -func (this *ResourceQuotaStatusByNamespace) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ResourceQuotaStatusByNamespace{`, - `Namespace:` + fmt.Sprintf("%v", this.Namespace) + `,`, - `Status:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Status), "ResourceQuotaStatus", "v11.ResourceQuotaStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *AppliedClusterResourceQuota) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: AppliedClusterResourceQuota: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AppliedClusterResourceQuota: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AppliedClusterResourceQuotaList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: AppliedClusterResourceQuotaList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AppliedClusterResourceQuotaList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, AppliedClusterResourceQuota{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ClusterResourceQuota) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterResourceQuota: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterResourceQuota: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ClusterResourceQuotaList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterResourceQuotaList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterResourceQuotaList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, ClusterResourceQuota{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ClusterResourceQuotaSelector) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterResourceQuotaSelector: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterResourceQuotaSelector: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LabelSelector", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.LabelSelector == nil { - m.LabelSelector = &v1.LabelSelector{} - } - if err := m.LabelSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AnnotationSelector", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.AnnotationSelector == nil { - m.AnnotationSelector = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.AnnotationSelector[mapkey] = mapvalue - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ClusterResourceQuotaSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterResourceQuotaSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterResourceQuotaSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Quota", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Quota.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ClusterResourceQuotaStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterResourceQuotaStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterResourceQuotaStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Total", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Total.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespaces", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Namespaces = append(m.Namespaces, ResourceQuotaStatusByNamespace{}) - if err := m.Namespaces[len(m.Namespaces)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ResourceQuotaStatusByNamespace) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ResourceQuotaStatusByNamespace: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ResourceQuotaStatusByNamespace: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Namespace = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/vendor/github.com/openshift/api/quota/v1/generated.proto b/vendor/github.com/openshift/api/quota/v1/generated.proto deleted file mode 100644 index ba3fe4659d146..0000000000000 --- a/vendor/github.com/openshift/api/quota/v1/generated.proto +++ /dev/null @@ -1,104 +0,0 @@ - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = 'proto2'; - -package github.com.openshift.api.quota.v1; - -import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v1"; - -// AppliedClusterResourceQuota mirrors ClusterResourceQuota at a project scope, for projection -// into a project. It allows a project-admin to know which ClusterResourceQuotas are applied to -// his project and their associated usage. -message AppliedClusterResourceQuota { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Spec defines the desired quota - optional ClusterResourceQuotaSpec spec = 2; - - // Status defines the actual enforced quota and its current usage - optional ClusterResourceQuotaStatus status = 3; -} - -// AppliedClusterResourceQuotaList is a collection of AppliedClusterResourceQuotas -message AppliedClusterResourceQuotaList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is a list of AppliedClusterResourceQuota - repeated AppliedClusterResourceQuota items = 2; -} - -// ClusterResourceQuota mirrors ResourceQuota at a cluster scope. This object is easily convertible to -// synthetic ResourceQuota object to allow quota evaluation re-use. -message ClusterResourceQuota { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Spec defines the desired quota - optional ClusterResourceQuotaSpec spec = 2; - - // Status defines the actual enforced quota and its current usage - optional ClusterResourceQuotaStatus status = 3; -} - -// ClusterResourceQuotaList is a collection of ClusterResourceQuotas -message ClusterResourceQuotaList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is a list of ClusterResourceQuotas - repeated ClusterResourceQuota items = 2; -} - -// ClusterResourceQuotaSelector is used to select projects. At least one of LabelSelector or AnnotationSelector -// must present. If only one is present, it is the only selection criteria. If both are specified, -// the project must match both restrictions. -message ClusterResourceQuotaSelector { - // LabelSelector is used to select projects by label. - // +optional - // +nullable - optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labels = 1; - - // AnnotationSelector is used to select projects by annotation. - // +optional - // +nullable - map annotations = 2; -} - -// ClusterResourceQuotaSpec defines the desired quota restrictions -message ClusterResourceQuotaSpec { - // Selector is the selector used to match projects. - // It should only select active projects on the scale of dozens (though it can select - // many more less active projects). These projects will contend on object creation through - // this resource. - optional ClusterResourceQuotaSelector selector = 1; - - // Quota defines the desired quota - optional k8s.io.api.core.v1.ResourceQuotaSpec quota = 2; -} - -// ClusterResourceQuotaStatus defines the actual enforced quota and its current usage -message ClusterResourceQuotaStatus { - // Total defines the actual enforced quota and its current usage across all projects - optional k8s.io.api.core.v1.ResourceQuotaStatus total = 1; - - // Namespaces slices the usage by project. This division allows for quick resolution of - // deletion reconciliation inside of a single project without requiring a recalculation - // across all projects. This can be used to pull the deltas for a given project. - // +optional - // +nullable - repeated ResourceQuotaStatusByNamespace namespaces = 2; -} - -// ResourceQuotaStatusByNamespace gives status for a particular project -message ResourceQuotaStatusByNamespace { - // Namespace the project this status applies to - optional string namespace = 1; - - // Status indicates how many resources have been consumed by this project - optional k8s.io.api.core.v1.ResourceQuotaStatus status = 2; -} - diff --git a/vendor/github.com/openshift/api/quota/v1/legacy.go b/vendor/github.com/openshift/api/quota/v1/legacy.go deleted file mode 100644 index 402690b5d60c5..0000000000000 --- a/vendor/github.com/openshift/api/quota/v1/legacy.go +++ /dev/null @@ -1,24 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - legacyGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} - legacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, corev1.AddToScheme) - DeprecatedInstallWithoutGroup = legacySchemeBuilder.AddToScheme -) - -func addLegacyKnownTypes(scheme *runtime.Scheme) error { - types := []runtime.Object{ - &ClusterResourceQuota{}, - &ClusterResourceQuotaList{}, - &AppliedClusterResourceQuota{}, - &AppliedClusterResourceQuotaList{}, - } - scheme.AddKnownTypes(legacyGroupVersion, types...) - return nil -} diff --git a/vendor/github.com/openshift/api/quota/v1/register.go b/vendor/github.com/openshift/api/quota/v1/register.go deleted file mode 100644 index 47c774ef23ec0..0000000000000 --- a/vendor/github.com/openshift/api/quota/v1/register.go +++ /dev/null @@ -1,41 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - GroupName = "quota.openshift.io" - GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, corev1.AddToScheme) - // Install is a function which adds this version to a scheme - Install = schemeBuilder.AddToScheme - - // SchemeGroupVersion generated code relies on this name - // Deprecated - SchemeGroupVersion = GroupVersion - // AddToScheme exists solely to keep the old generators creating valid code - // DEPRECATED - AddToScheme = schemeBuilder.AddToScheme -) - -// Resource generated code relies on this being here, but it logically belongs to the group -// DEPRECATED -func Resource(resource string) schema.GroupResource { - return schema.GroupResource{Group: GroupName, Resource: resource} -} - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &ClusterResourceQuota{}, - &ClusterResourceQuotaList{}, - &AppliedClusterResourceQuota{}, - &AppliedClusterResourceQuotaList{}, - ) - metav1.AddToGroupVersion(scheme, GroupVersion) - return nil -} diff --git a/vendor/github.com/openshift/api/quota/v1/types.go b/vendor/github.com/openshift/api/quota/v1/types.go deleted file mode 100644 index 1bac842c7b55c..0000000000000 --- a/vendor/github.com/openshift/api/quota/v1/types.go +++ /dev/null @@ -1,115 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ClusterResourceQuota mirrors ResourceQuota at a cluster scope. This object is easily convertible to -// synthetic ResourceQuota object to allow quota evaluation re-use. -type ClusterResourceQuota struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` - - // Spec defines the desired quota - Spec ClusterResourceQuotaSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` - - // Status defines the actual enforced quota and its current usage - Status ClusterResourceQuotaStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` -} - -// ClusterResourceQuotaSpec defines the desired quota restrictions -type ClusterResourceQuotaSpec struct { - // Selector is the selector used to match projects. - // It should only select active projects on the scale of dozens (though it can select - // many more less active projects). These projects will contend on object creation through - // this resource. - Selector ClusterResourceQuotaSelector `json:"selector" protobuf:"bytes,1,opt,name=selector"` - - // Quota defines the desired quota - Quota corev1.ResourceQuotaSpec `json:"quota" protobuf:"bytes,2,opt,name=quota"` -} - -// ClusterResourceQuotaSelector is used to select projects. At least one of LabelSelector or AnnotationSelector -// must present. If only one is present, it is the only selection criteria. If both are specified, -// the project must match both restrictions. -type ClusterResourceQuotaSelector struct { - // LabelSelector is used to select projects by label. - // +optional - // +nullable - LabelSelector *metav1.LabelSelector `json:"labels" protobuf:"bytes,1,opt,name=labels"` - - // AnnotationSelector is used to select projects by annotation. - // +optional - // +nullable - AnnotationSelector map[string]string `json:"annotations" protobuf:"bytes,2,rep,name=annotations"` -} - -// ClusterResourceQuotaStatus defines the actual enforced quota and its current usage -type ClusterResourceQuotaStatus struct { - // Total defines the actual enforced quota and its current usage across all projects - Total corev1.ResourceQuotaStatus `json:"total" protobuf:"bytes,1,opt,name=total"` - - // Namespaces slices the usage by project. This division allows for quick resolution of - // deletion reconciliation inside of a single project without requiring a recalculation - // across all projects. This can be used to pull the deltas for a given project. - // +optional - // +nullable - Namespaces ResourceQuotasStatusByNamespace `json:"namespaces" protobuf:"bytes,2,rep,name=namespaces"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ClusterResourceQuotaList is a collection of ClusterResourceQuotas -type ClusterResourceQuotaList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is a list of ClusterResourceQuotas - Items []ClusterResourceQuota `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// ResourceQuotasStatusByNamespace bundles multiple ResourceQuotaStatusByNamespace -type ResourceQuotasStatusByNamespace []ResourceQuotaStatusByNamespace - -// ResourceQuotaStatusByNamespace gives status for a particular project -type ResourceQuotaStatusByNamespace struct { - // Namespace the project this status applies to - Namespace string `json:"namespace" protobuf:"bytes,1,opt,name=namespace"` - - // Status indicates how many resources have been consumed by this project - Status corev1.ResourceQuotaStatus `json:"status" protobuf:"bytes,2,opt,name=status"` -} - -// +genclient -// +genclient:onlyVerbs=get,list -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// AppliedClusterResourceQuota mirrors ClusterResourceQuota at a project scope, for projection -// into a project. It allows a project-admin to know which ClusterResourceQuotas are applied to -// his project and their associated usage. -type AppliedClusterResourceQuota struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` - - // Spec defines the desired quota - Spec ClusterResourceQuotaSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` - - // Status defines the actual enforced quota and its current usage - Status ClusterResourceQuotaStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// AppliedClusterResourceQuotaList is a collection of AppliedClusterResourceQuotas -type AppliedClusterResourceQuotaList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is a list of AppliedClusterResourceQuota - Items []AppliedClusterResourceQuota `json:"items" protobuf:"bytes,2,rep,name=items"` -} diff --git a/vendor/github.com/openshift/api/quota/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/quota/v1/zz_generated.deepcopy.go deleted file mode 100644 index 2a3530948985f..0000000000000 --- a/vendor/github.com/openshift/api/quota/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,241 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/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 *AppliedClusterResourceQuota) DeepCopyInto(out *AppliedClusterResourceQuota) { - *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 AppliedClusterResourceQuota. -func (in *AppliedClusterResourceQuota) DeepCopy() *AppliedClusterResourceQuota { - if in == nil { - return nil - } - out := new(AppliedClusterResourceQuota) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *AppliedClusterResourceQuota) 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 *AppliedClusterResourceQuotaList) DeepCopyInto(out *AppliedClusterResourceQuotaList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]AppliedClusterResourceQuota, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppliedClusterResourceQuotaList. -func (in *AppliedClusterResourceQuotaList) DeepCopy() *AppliedClusterResourceQuotaList { - if in == nil { - return nil - } - out := new(AppliedClusterResourceQuotaList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *AppliedClusterResourceQuotaList) 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 *ClusterResourceQuota) DeepCopyInto(out *ClusterResourceQuota) { - *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 ClusterResourceQuota. -func (in *ClusterResourceQuota) DeepCopy() *ClusterResourceQuota { - if in == nil { - return nil - } - out := new(ClusterResourceQuota) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterResourceQuota) 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 *ClusterResourceQuotaList) DeepCopyInto(out *ClusterResourceQuotaList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ClusterResourceQuota, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterResourceQuotaList. -func (in *ClusterResourceQuotaList) DeepCopy() *ClusterResourceQuotaList { - if in == nil { - return nil - } - out := new(ClusterResourceQuotaList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClusterResourceQuotaList) 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 *ClusterResourceQuotaSelector) DeepCopyInto(out *ClusterResourceQuotaSelector) { - *out = *in - if in.LabelSelector != nil { - in, out := &in.LabelSelector, &out.LabelSelector - *out = new(metav1.LabelSelector) - (*in).DeepCopyInto(*out) - } - if in.AnnotationSelector != nil { - in, out := &in.AnnotationSelector, &out.AnnotationSelector - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterResourceQuotaSelector. -func (in *ClusterResourceQuotaSelector) DeepCopy() *ClusterResourceQuotaSelector { - if in == nil { - return nil - } - out := new(ClusterResourceQuotaSelector) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterResourceQuotaSpec) DeepCopyInto(out *ClusterResourceQuotaSpec) { - *out = *in - in.Selector.DeepCopyInto(&out.Selector) - in.Quota.DeepCopyInto(&out.Quota) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterResourceQuotaSpec. -func (in *ClusterResourceQuotaSpec) DeepCopy() *ClusterResourceQuotaSpec { - if in == nil { - return nil - } - out := new(ClusterResourceQuotaSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClusterResourceQuotaStatus) DeepCopyInto(out *ClusterResourceQuotaStatus) { - *out = *in - in.Total.DeepCopyInto(&out.Total) - if in.Namespaces != nil { - in, out := &in.Namespaces, &out.Namespaces - *out = make(ResourceQuotasStatusByNamespace, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterResourceQuotaStatus. -func (in *ClusterResourceQuotaStatus) DeepCopy() *ClusterResourceQuotaStatus { - if in == nil { - return nil - } - out := new(ClusterResourceQuotaStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceQuotaStatusByNamespace) DeepCopyInto(out *ResourceQuotaStatusByNamespace) { - *out = *in - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaStatusByNamespace. -func (in *ResourceQuotaStatusByNamespace) DeepCopy() *ResourceQuotaStatusByNamespace { - if in == nil { - return nil - } - out := new(ResourceQuotaStatusByNamespace) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in ResourceQuotasStatusByNamespace) DeepCopyInto(out *ResourceQuotasStatusByNamespace) { - { - in := &in - *out = make(ResourceQuotasStatusByNamespace, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotasStatusByNamespace. -func (in ResourceQuotasStatusByNamespace) DeepCopy() ResourceQuotasStatusByNamespace { - if in == nil { - return nil - } - out := new(ResourceQuotasStatusByNamespace) - in.DeepCopyInto(out) - return *out -} diff --git a/vendor/github.com/openshift/api/quota/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/quota/v1/zz_generated.swagger_doc_generated.go deleted file mode 100644 index 71c0d6d56f869..0000000000000 --- a/vendor/github.com/openshift/api/quota/v1/zz_generated.swagger_doc_generated.go +++ /dev/null @@ -1,92 +0,0 @@ -package v1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE -var map_AppliedClusterResourceQuota = map[string]string{ - "": "AppliedClusterResourceQuota mirrors ClusterResourceQuota at a project scope, for projection into a project. It allows a project-admin to know which ClusterResourceQuotas are applied to his project and their associated usage.", - "spec": "Spec defines the desired quota", - "status": "Status defines the actual enforced quota and its current usage", -} - -func (AppliedClusterResourceQuota) SwaggerDoc() map[string]string { - return map_AppliedClusterResourceQuota -} - -var map_AppliedClusterResourceQuotaList = map[string]string{ - "": "AppliedClusterResourceQuotaList is a collection of AppliedClusterResourceQuotas", - "items": "Items is a list of AppliedClusterResourceQuota", -} - -func (AppliedClusterResourceQuotaList) SwaggerDoc() map[string]string { - return map_AppliedClusterResourceQuotaList -} - -var map_ClusterResourceQuota = map[string]string{ - "": "ClusterResourceQuota mirrors ResourceQuota at a cluster scope. This object is easily convertible to synthetic ResourceQuota object to allow quota evaluation re-use.", - "spec": "Spec defines the desired quota", - "status": "Status defines the actual enforced quota and its current usage", -} - -func (ClusterResourceQuota) SwaggerDoc() map[string]string { - return map_ClusterResourceQuota -} - -var map_ClusterResourceQuotaList = map[string]string{ - "": "ClusterResourceQuotaList is a collection of ClusterResourceQuotas", - "items": "Items is a list of ClusterResourceQuotas", -} - -func (ClusterResourceQuotaList) SwaggerDoc() map[string]string { - return map_ClusterResourceQuotaList -} - -var map_ClusterResourceQuotaSelector = map[string]string{ - "": "ClusterResourceQuotaSelector is used to select projects. At least one of LabelSelector or AnnotationSelector must present. If only one is present, it is the only selection criteria. If both are specified, the project must match both restrictions.", - "labels": "LabelSelector is used to select projects by label.", - "annotations": "AnnotationSelector is used to select projects by annotation.", -} - -func (ClusterResourceQuotaSelector) SwaggerDoc() map[string]string { - return map_ClusterResourceQuotaSelector -} - -var map_ClusterResourceQuotaSpec = map[string]string{ - "": "ClusterResourceQuotaSpec defines the desired quota restrictions", - "selector": "Selector is the selector used to match projects. It should only select active projects on the scale of dozens (though it can select many more less active projects). These projects will contend on object creation through this resource.", - "quota": "Quota defines the desired quota", -} - -func (ClusterResourceQuotaSpec) SwaggerDoc() map[string]string { - return map_ClusterResourceQuotaSpec -} - -var map_ClusterResourceQuotaStatus = map[string]string{ - "": "ClusterResourceQuotaStatus defines the actual enforced quota and its current usage", - "total": "Total defines the actual enforced quota and its current usage across all projects", - "namespaces": "Namespaces slices the usage by project. This division allows for quick resolution of deletion reconciliation inside of a single project without requiring a recalculation across all projects. This can be used to pull the deltas for a given project.", -} - -func (ClusterResourceQuotaStatus) SwaggerDoc() map[string]string { - return map_ClusterResourceQuotaStatus -} - -var map_ResourceQuotaStatusByNamespace = map[string]string{ - "": "ResourceQuotaStatusByNamespace gives status for a particular project", - "namespace": "Namespace the project this status applies to", - "status": "Status indicates how many resources have been consumed by this project", -} - -func (ResourceQuotaStatusByNamespace) SwaggerDoc() map[string]string { - return map_ResourceQuotaStatusByNamespace -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/github.com/openshift/api/route/v1/doc.go b/vendor/github.com/openshift/api/route/v1/doc.go deleted file mode 100644 index e56fbbd8d1fe3..0000000000000 --- a/vendor/github.com/openshift/api/route/v1/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=github.com/openshift/origin/pkg/route/apis/route -// +k8s:defaulter-gen=TypeMeta -// +k8s:openapi-gen=true - -// +groupName=route.openshift.io -// Package v1 is the v1 version of the API. -package v1 diff --git a/vendor/github.com/openshift/api/route/v1/generated.pb.go b/vendor/github.com/openshift/api/route/v1/generated.pb.go deleted file mode 100644 index 977fa2618d562..0000000000000 --- a/vendor/github.com/openshift/api/route/v1/generated.pb.go +++ /dev/null @@ -1,3039 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: github.com/openshift/api/route/v1/generated.proto - -package v1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - - k8s_io_api_core_v1 "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *Route) Reset() { *m = Route{} } -func (*Route) ProtoMessage() {} -func (*Route) Descriptor() ([]byte, []int) { - return fileDescriptor_373b8fa7ff738721, []int{0} -} -func (m *Route) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Route) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *Route) XXX_Merge(src proto.Message) { - xxx_messageInfo_Route.Merge(m, src) -} -func (m *Route) XXX_Size() int { - return m.Size() -} -func (m *Route) XXX_DiscardUnknown() { - xxx_messageInfo_Route.DiscardUnknown(m) -} - -var xxx_messageInfo_Route proto.InternalMessageInfo - -func (m *RouteIngress) Reset() { *m = RouteIngress{} } -func (*RouteIngress) ProtoMessage() {} -func (*RouteIngress) Descriptor() ([]byte, []int) { - return fileDescriptor_373b8fa7ff738721, []int{1} -} -func (m *RouteIngress) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RouteIngress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RouteIngress) XXX_Merge(src proto.Message) { - xxx_messageInfo_RouteIngress.Merge(m, src) -} -func (m *RouteIngress) XXX_Size() int { - return m.Size() -} -func (m *RouteIngress) XXX_DiscardUnknown() { - xxx_messageInfo_RouteIngress.DiscardUnknown(m) -} - -var xxx_messageInfo_RouteIngress proto.InternalMessageInfo - -func (m *RouteIngressCondition) Reset() { *m = RouteIngressCondition{} } -func (*RouteIngressCondition) ProtoMessage() {} -func (*RouteIngressCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_373b8fa7ff738721, []int{2} -} -func (m *RouteIngressCondition) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RouteIngressCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RouteIngressCondition) XXX_Merge(src proto.Message) { - xxx_messageInfo_RouteIngressCondition.Merge(m, src) -} -func (m *RouteIngressCondition) XXX_Size() int { - return m.Size() -} -func (m *RouteIngressCondition) XXX_DiscardUnknown() { - xxx_messageInfo_RouteIngressCondition.DiscardUnknown(m) -} - -var xxx_messageInfo_RouteIngressCondition proto.InternalMessageInfo - -func (m *RouteList) Reset() { *m = RouteList{} } -func (*RouteList) ProtoMessage() {} -func (*RouteList) Descriptor() ([]byte, []int) { - return fileDescriptor_373b8fa7ff738721, []int{3} -} -func (m *RouteList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RouteList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RouteList) XXX_Merge(src proto.Message) { - xxx_messageInfo_RouteList.Merge(m, src) -} -func (m *RouteList) XXX_Size() int { - return m.Size() -} -func (m *RouteList) XXX_DiscardUnknown() { - xxx_messageInfo_RouteList.DiscardUnknown(m) -} - -var xxx_messageInfo_RouteList proto.InternalMessageInfo - -func (m *RoutePort) Reset() { *m = RoutePort{} } -func (*RoutePort) ProtoMessage() {} -func (*RoutePort) Descriptor() ([]byte, []int) { - return fileDescriptor_373b8fa7ff738721, []int{4} -} -func (m *RoutePort) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RoutePort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RoutePort) XXX_Merge(src proto.Message) { - xxx_messageInfo_RoutePort.Merge(m, src) -} -func (m *RoutePort) XXX_Size() int { - return m.Size() -} -func (m *RoutePort) XXX_DiscardUnknown() { - xxx_messageInfo_RoutePort.DiscardUnknown(m) -} - -var xxx_messageInfo_RoutePort proto.InternalMessageInfo - -func (m *RouteSpec) Reset() { *m = RouteSpec{} } -func (*RouteSpec) ProtoMessage() {} -func (*RouteSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_373b8fa7ff738721, []int{5} -} -func (m *RouteSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RouteSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RouteSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_RouteSpec.Merge(m, src) -} -func (m *RouteSpec) XXX_Size() int { - return m.Size() -} -func (m *RouteSpec) XXX_DiscardUnknown() { - xxx_messageInfo_RouteSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_RouteSpec proto.InternalMessageInfo - -func (m *RouteStatus) Reset() { *m = RouteStatus{} } -func (*RouteStatus) ProtoMessage() {} -func (*RouteStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_373b8fa7ff738721, []int{6} -} -func (m *RouteStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RouteStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RouteStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_RouteStatus.Merge(m, src) -} -func (m *RouteStatus) XXX_Size() int { - return m.Size() -} -func (m *RouteStatus) XXX_DiscardUnknown() { - xxx_messageInfo_RouteStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_RouteStatus proto.InternalMessageInfo - -func (m *RouteTargetReference) Reset() { *m = RouteTargetReference{} } -func (*RouteTargetReference) ProtoMessage() {} -func (*RouteTargetReference) Descriptor() ([]byte, []int) { - return fileDescriptor_373b8fa7ff738721, []int{7} -} -func (m *RouteTargetReference) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RouteTargetReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RouteTargetReference) XXX_Merge(src proto.Message) { - xxx_messageInfo_RouteTargetReference.Merge(m, src) -} -func (m *RouteTargetReference) XXX_Size() int { - return m.Size() -} -func (m *RouteTargetReference) XXX_DiscardUnknown() { - xxx_messageInfo_RouteTargetReference.DiscardUnknown(m) -} - -var xxx_messageInfo_RouteTargetReference proto.InternalMessageInfo - -func (m *RouterShard) Reset() { *m = RouterShard{} } -func (*RouterShard) ProtoMessage() {} -func (*RouterShard) Descriptor() ([]byte, []int) { - return fileDescriptor_373b8fa7ff738721, []int{8} -} -func (m *RouterShard) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RouterShard) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RouterShard) XXX_Merge(src proto.Message) { - xxx_messageInfo_RouterShard.Merge(m, src) -} -func (m *RouterShard) XXX_Size() int { - return m.Size() -} -func (m *RouterShard) XXX_DiscardUnknown() { - xxx_messageInfo_RouterShard.DiscardUnknown(m) -} - -var xxx_messageInfo_RouterShard proto.InternalMessageInfo - -func (m *TLSConfig) Reset() { *m = TLSConfig{} } -func (*TLSConfig) ProtoMessage() {} -func (*TLSConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_373b8fa7ff738721, []int{9} -} -func (m *TLSConfig) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TLSConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *TLSConfig) XXX_Merge(src proto.Message) { - xxx_messageInfo_TLSConfig.Merge(m, src) -} -func (m *TLSConfig) XXX_Size() int { - return m.Size() -} -func (m *TLSConfig) XXX_DiscardUnknown() { - xxx_messageInfo_TLSConfig.DiscardUnknown(m) -} - -var xxx_messageInfo_TLSConfig proto.InternalMessageInfo - -func init() { - proto.RegisterType((*Route)(nil), "github.com.openshift.api.route.v1.Route") - proto.RegisterType((*RouteIngress)(nil), "github.com.openshift.api.route.v1.RouteIngress") - proto.RegisterType((*RouteIngressCondition)(nil), "github.com.openshift.api.route.v1.RouteIngressCondition") - proto.RegisterType((*RouteList)(nil), "github.com.openshift.api.route.v1.RouteList") - proto.RegisterType((*RoutePort)(nil), "github.com.openshift.api.route.v1.RoutePort") - proto.RegisterType((*RouteSpec)(nil), "github.com.openshift.api.route.v1.RouteSpec") - proto.RegisterType((*RouteStatus)(nil), "github.com.openshift.api.route.v1.RouteStatus") - proto.RegisterType((*RouteTargetReference)(nil), "github.com.openshift.api.route.v1.RouteTargetReference") - proto.RegisterType((*RouterShard)(nil), "github.com.openshift.api.route.v1.RouterShard") - proto.RegisterType((*TLSConfig)(nil), "github.com.openshift.api.route.v1.TLSConfig") -} - -func init() { - proto.RegisterFile("github.com/openshift/api/route/v1/generated.proto", fileDescriptor_373b8fa7ff738721) -} - -var fileDescriptor_373b8fa7ff738721 = []byte{ - // 1163 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0x4f, 0x6f, 0x1b, 0x45, - 0x14, 0xcf, 0xfa, 0x5f, 0xe2, 0x71, 0x1b, 0xc8, 0x40, 0xa9, 0x1b, 0x29, 0x76, 0xba, 0x07, 0x94, - 0xa2, 0xb2, 0x4b, 0x42, 0x81, 0x4a, 0x88, 0x43, 0x9d, 0x22, 0x48, 0xe3, 0xa4, 0xd1, 0xd8, 0xa2, - 0xa2, 0xea, 0x81, 0xc9, 0xee, 0x78, 0x3d, 0xd8, 0x9e, 0x5d, 0x66, 0xc6, 0x29, 0xbe, 0xa0, 0x4a, - 0x7c, 0x81, 0xf2, 0x6d, 0xb8, 0x73, 0xc9, 0xb1, 0xc7, 0x1e, 0x90, 0x45, 0xcc, 0x91, 0x6f, 0x90, - 0x13, 0x9a, 0xd9, 0xb1, 0x77, 0xed, 0x38, 0xa9, 0x0b, 0xb7, 0xdd, 0xf7, 0x7e, 0xbf, 0xdf, 0x7b, - 0xf3, 0xde, 0x9b, 0x37, 0x60, 0x3b, 0xa0, 0xb2, 0xdd, 0x3f, 0x76, 0xbc, 0xb0, 0xe7, 0x86, 0x11, - 0x61, 0xa2, 0x4d, 0x5b, 0xd2, 0xc5, 0x11, 0x75, 0x79, 0xd8, 0x97, 0xc4, 0x3d, 0xd9, 0x76, 0x03, - 0xc2, 0x08, 0xc7, 0x92, 0xf8, 0x4e, 0xc4, 0x43, 0x19, 0xc2, 0xdb, 0x09, 0xc5, 0x99, 0x50, 0x1c, - 0x1c, 0x51, 0x47, 0x53, 0x9c, 0x93, 0xed, 0xf5, 0x8f, 0x53, 0xaa, 0x41, 0x18, 0x84, 0xae, 0x66, - 0x1e, 0xf7, 0x5b, 0xfa, 0x4f, 0xff, 0xe8, 0xaf, 0x58, 0x71, 0xdd, 0xee, 0xdc, 0x17, 0x0e, 0x0d, - 0x75, 0x58, 0x2f, 0xe4, 0xf3, 0xa2, 0xae, 0xdf, 0x4b, 0x30, 0x3d, 0xec, 0xb5, 0x29, 0x23, 0x7c, - 0xe0, 0x46, 0x9d, 0x40, 0x19, 0x84, 0xdb, 0x23, 0x12, 0xcf, 0x63, 0x7d, 0x7e, 0x19, 0x8b, 0xf7, - 0x99, 0xa4, 0x3d, 0xe2, 0x0a, 0xaf, 0x4d, 0x7a, 0xf8, 0x02, 0xef, 0xd3, 0xcb, 0x78, 0x7d, 0x49, - 0xbb, 0x2e, 0x65, 0x52, 0x48, 0x3e, 0x4b, 0xb2, 0x7f, 0xcb, 0x80, 0x3c, 0x52, 0x25, 0x80, 0x3f, - 0x80, 0x15, 0x95, 0x91, 0x8f, 0x25, 0x2e, 0x5b, 0x9b, 0xd6, 0x56, 0x69, 0xe7, 0x13, 0x27, 0x56, - 0x74, 0xd2, 0x8a, 0x4e, 0xd4, 0x09, 0x94, 0x41, 0x38, 0x0a, 0xed, 0x9c, 0x6c, 0x3b, 0x8f, 0x8f, - 0x7f, 0x24, 0x9e, 0x3c, 0x20, 0x12, 0xd7, 0xe0, 0xe9, 0xb0, 0xba, 0x34, 0x1a, 0x56, 0x41, 0x62, - 0x43, 0x13, 0x55, 0x78, 0x08, 0x72, 0x22, 0x22, 0x5e, 0x39, 0xa3, 0xd5, 0xef, 0x3a, 0x6f, 0xec, - 0x89, 0xa3, 0x33, 0x6b, 0x44, 0xc4, 0xab, 0x5d, 0x33, 0xca, 0x39, 0xf5, 0x87, 0xb4, 0x0e, 0xfc, - 0x0e, 0x14, 0x84, 0xc4, 0xb2, 0x2f, 0xca, 0x59, 0xad, 0xe8, 0x2c, 0xac, 0xa8, 0x59, 0xb5, 0x55, - 0xa3, 0x59, 0x88, 0xff, 0x91, 0x51, 0xb3, 0x7f, 0xcd, 0x82, 0x6b, 0x1a, 0xb7, 0xc7, 0x02, 0x4e, - 0x84, 0x80, 0x9b, 0x20, 0xd7, 0x0e, 0x85, 0xd4, 0x65, 0x29, 0x26, 0xa9, 0x7c, 0x1b, 0x0a, 0x89, - 0xb4, 0x07, 0xee, 0x00, 0xa0, 0x43, 0xf0, 0x43, 0xdc, 0x23, 0xfa, 0x80, 0xc5, 0xa4, 0x18, 0x68, - 0xe2, 0x41, 0x29, 0x14, 0xec, 0x02, 0xe0, 0x85, 0xcc, 0xa7, 0x92, 0x86, 0x4c, 0x1d, 0x21, 0xbb, - 0x55, 0xda, 0xb9, 0xbf, 0xe8, 0x11, 0x4c, 0x6a, 0xbb, 0x63, 0x81, 0x24, 0xda, 0xc4, 0x24, 0x50, - 0x4a, 0x1f, 0x36, 0xc1, 0xea, 0x73, 0xda, 0xf5, 0x3d, 0xcc, 0xfd, 0xa3, 0xb0, 0x4b, 0xbd, 0x41, - 0x39, 0xa7, 0xb3, 0xbc, 0x6b, 0x78, 0xab, 0x4f, 0xa6, 0xbc, 0xe7, 0xc3, 0x2a, 0x9c, 0xb6, 0x34, - 0x07, 0x11, 0x41, 0x33, 0x1a, 0xf0, 0x7b, 0x70, 0x33, 0x3e, 0xd1, 0x2e, 0x66, 0x21, 0xa3, 0x1e, - 0xee, 0xaa, 0xa2, 0x30, 0x55, 0x84, 0xbc, 0x96, 0xaf, 0x1a, 0xf9, 0x9b, 0x68, 0x3e, 0x0c, 0x5d, - 0xc6, 0xb7, 0xff, 0xc9, 0x80, 0x1b, 0x73, 0x8f, 0x0a, 0xbf, 0x02, 0x39, 0x39, 0x88, 0x88, 0x69, - 0xc7, 0x9d, 0x71, 0x3b, 0x54, 0x82, 0xe7, 0xc3, 0xea, 0xad, 0xb9, 0x24, 0x9d, 0xbd, 0xa6, 0xc1, - 0xfa, 0x64, 0x6c, 0xe2, 0x3e, 0xdd, 0x9b, 0x1e, 0x83, 0xf3, 0x61, 0x75, 0xce, 0xdd, 0x76, 0x26, - 0x4a, 0xd3, 0xc3, 0x02, 0x3f, 0x04, 0x05, 0x4e, 0xb0, 0x08, 0x99, 0x1e, 0xc2, 0x62, 0x32, 0x54, - 0x48, 0x5b, 0x91, 0xf1, 0xc2, 0x3b, 0x60, 0xb9, 0x47, 0x84, 0xc0, 0x01, 0x31, 0x85, 0x7f, 0xc7, - 0x00, 0x97, 0x0f, 0x62, 0x33, 0x1a, 0xfb, 0x21, 0x07, 0xb0, 0x8b, 0x85, 0x6c, 0x72, 0xcc, 0x44, - 0x9c, 0x3c, 0x35, 0xf5, 0x2c, 0xed, 0x7c, 0xb4, 0xd8, 0x9d, 0x54, 0x8c, 0xda, 0x07, 0xa3, 0x61, - 0x15, 0xd6, 0x2f, 0x28, 0xa1, 0x39, 0xea, 0xf6, 0xef, 0x16, 0x28, 0xea, 0xc2, 0xd5, 0xa9, 0x90, - 0xf0, 0xd9, 0x85, 0x5d, 0xe0, 0x2c, 0x16, 0x57, 0xb1, 0xf5, 0x26, 0x78, 0xd7, 0x9c, 0x6e, 0x65, - 0x6c, 0x49, 0xed, 0x81, 0x03, 0x90, 0xa7, 0x92, 0xf4, 0x54, 0xfd, 0xd5, 0xcc, 0x6f, 0x2d, 0x3a, - 0xf3, 0xb5, 0xeb, 0x46, 0x34, 0xbf, 0xa7, 0xe8, 0x28, 0x56, 0xb1, 0x7f, 0x32, 0x99, 0x1f, 0x85, - 0x5c, 0x42, 0x1f, 0x00, 0x89, 0x79, 0x40, 0xa4, 0xfa, 0x7b, 0xe3, 0x1e, 0x53, 0x9b, 0xd1, 0x89, - 0x37, 0xa3, 0xb3, 0xc7, 0xe4, 0x63, 0xde, 0x90, 0x9c, 0xb2, 0x20, 0xb9, 0x4c, 0xcd, 0x89, 0x16, - 0x4a, 0xe9, 0xda, 0x7f, 0xe4, 0x4c, 0x4c, 0xb5, 0x8d, 0x16, 0x58, 0x0f, 0x2e, 0x28, 0x8a, 0xfe, - 0xb1, 0x1f, 0xf6, 0x30, 0x65, 0xe5, 0x15, 0x0d, 0x5b, 0x33, 0xb0, 0x62, 0x63, 0xec, 0x40, 0x09, - 0x46, 0x49, 0x46, 0x58, 0xb6, 0xcd, 0x84, 0x4e, 0x24, 0x8f, 0xb0, 0x6c, 0x23, 0xed, 0x81, 0x0d, - 0x90, 0x91, 0xa1, 0x59, 0x7c, 0x5f, 0x2c, 0x5a, 0xc1, 0xf8, 0x38, 0x88, 0xb4, 0x08, 0x27, 0xcc, - 0x23, 0x35, 0x60, 0x84, 0x33, 0xcd, 0x10, 0x65, 0x64, 0x08, 0x5f, 0x58, 0x60, 0x0d, 0x77, 0x25, - 0xe1, 0x0c, 0x4b, 0x52, 0xc3, 0x5e, 0x87, 0x30, 0x5f, 0x94, 0x73, 0xba, 0x4d, 0xff, 0x39, 0xc8, - 0x2d, 0x13, 0x64, 0xed, 0xc1, 0xac, 0x32, 0xba, 0x18, 0x0c, 0x3e, 0x02, 0xb9, 0x48, 0xb5, 0x2e, - 0xff, 0x76, 0x8f, 0x84, 0x6a, 0x4b, 0x6d, 0x45, 0xd7, 0x48, 0x35, 0x4b, 0x6b, 0xc0, 0x6f, 0x40, - 0x56, 0x76, 0x45, 0xb9, 0xb0, 0xb0, 0x54, 0xb3, 0xde, 0xd8, 0x0d, 0x59, 0x8b, 0x06, 0xb5, 0xe5, - 0xd1, 0xb0, 0x9a, 0x6d, 0xd6, 0x1b, 0x48, 0x29, 0xcc, 0x59, 0x9e, 0xcb, 0xff, 0x7f, 0x79, 0xda, - 0x14, 0x94, 0x52, 0xcf, 0x11, 0x7c, 0x0a, 0x96, 0x69, 0xbc, 0xb5, 0xca, 0x96, 0xae, 0xb8, 0xfb, - 0x96, 0x8f, 0x41, 0xb2, 0x52, 0x8c, 0x01, 0x8d, 0x05, 0xed, 0x5f, 0xc0, 0xfb, 0xf3, 0x7a, 0xa3, - 0xe6, 0xac, 0x43, 0x99, 0x3f, 0x3b, 0xba, 0xfb, 0x94, 0xf9, 0x48, 0x7b, 0x14, 0x82, 0x25, 0x6f, - 0xda, 0x04, 0xa1, 0x5f, 0x33, 0xed, 0x81, 0x36, 0x28, 0x3c, 0x27, 0x34, 0x68, 0x4b, 0x3d, 0x8d, - 0xf9, 0x1a, 0x50, 0xdb, 0xef, 0x89, 0xb6, 0x20, 0xe3, 0xb1, 0x43, 0x73, 0x54, 0xde, 0x68, 0x63, - 0xee, 0xeb, 0xfb, 0xa0, 0x3e, 0xf4, 0x6b, 0x69, 0xcd, 0xdc, 0x87, 0xb1, 0x03, 0x25, 0x18, 0x45, - 0xf0, 0x99, 0x68, 0xf4, 0x5b, 0x2d, 0xfa, 0xb3, 0x49, 0x65, 0x42, 0x78, 0x78, 0xd8, 0x88, 0x1d, - 0x28, 0xc1, 0xd8, 0x7f, 0x66, 0x41, 0x71, 0xd2, 0x4d, 0xb8, 0x0f, 0x4a, 0x92, 0xf0, 0x1e, 0x65, - 0x58, 0x2d, 0xbc, 0x99, 0x87, 0xa3, 0xd4, 0x4c, 0x5c, 0xaa, 0x73, 0xcd, 0x7a, 0x23, 0x65, 0xd1, - 0x9d, 0x4b, 0xb3, 0xe1, 0x67, 0xa0, 0xe4, 0x11, 0x2e, 0x69, 0x8b, 0x7a, 0x58, 0x8e, 0x0b, 0xf3, - 0xde, 0x58, 0x6c, 0x37, 0x71, 0xa1, 0x34, 0x0e, 0x6e, 0x80, 0x6c, 0x87, 0x0c, 0xcc, 0x2b, 0x51, - 0x32, 0xf0, 0xec, 0x3e, 0x19, 0x20, 0x65, 0x87, 0x5f, 0x82, 0xeb, 0x1e, 0x4e, 0x91, 0xcd, 0x2b, - 0x71, 0xc3, 0x00, 0xaf, 0xef, 0x3e, 0x48, 0x2b, 0x4f, 0x63, 0xe1, 0x33, 0x50, 0xf6, 0x89, 0x90, - 0x26, 0xc3, 0x29, 0xa8, 0x79, 0x87, 0x37, 0x8d, 0x4e, 0xf9, 0xe1, 0x25, 0x38, 0x74, 0xa9, 0x02, - 0x7c, 0x69, 0x81, 0x0d, 0xca, 0x04, 0xf1, 0xfa, 0x9c, 0x7c, 0xed, 0x07, 0x24, 0x55, 0x1d, 0x73, - 0x1b, 0x0a, 0x3a, 0xc6, 0x23, 0x13, 0x63, 0x63, 0xef, 0x2a, 0xf0, 0xf9, 0xb0, 0x7a, 0xfb, 0x4a, - 0x80, 0xae, 0xf8, 0xd5, 0x01, 0x6b, 0x5b, 0xa7, 0x67, 0x95, 0xa5, 0x57, 0x67, 0x95, 0xa5, 0xd7, - 0x67, 0x95, 0xa5, 0x17, 0xa3, 0x8a, 0x75, 0x3a, 0xaa, 0x58, 0xaf, 0x46, 0x15, 0xeb, 0xf5, 0xa8, - 0x62, 0xfd, 0x35, 0xaa, 0x58, 0x2f, 0xff, 0xae, 0x2c, 0x3d, 0xcd, 0x9c, 0x6c, 0xff, 0x1b, 0x00, - 0x00, 0xff, 0xff, 0x26, 0x8b, 0x83, 0xf6, 0x2d, 0x0c, 0x00, 0x00, -} - -func (m *Route) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Route) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Route) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RouteIngress) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RouteIngress) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RouteIngress) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.RouterCanonicalHostname) - copy(dAtA[i:], m.RouterCanonicalHostname) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.RouterCanonicalHostname))) - i-- - dAtA[i] = 0x2a - i -= len(m.WildcardPolicy) - copy(dAtA[i:], m.WildcardPolicy) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.WildcardPolicy))) - i-- - dAtA[i] = 0x22 - if len(m.Conditions) > 0 { - for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - i -= len(m.RouterName) - copy(dAtA[i:], m.RouterName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.RouterName))) - i-- - dAtA[i] = 0x12 - i -= len(m.Host) - copy(dAtA[i:], m.Host) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Host))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RouteIngressCondition) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RouteIngressCondition) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RouteIngressCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.LastTransitionTime != nil { - { - size, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - } - i -= len(m.Message) - copy(dAtA[i:], m.Message) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i-- - dAtA[i] = 0x22 - i -= len(m.Reason) - copy(dAtA[i:], m.Reason) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) - i-- - dAtA[i] = 0x1a - i -= len(m.Status) - copy(dAtA[i:], m.Status) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) - i-- - dAtA[i] = 0x12 - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RouteList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RouteList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RouteList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RoutePort) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RoutePort) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RoutePort) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.TargetPort.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RouteSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RouteSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RouteSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Subdomain) - copy(dAtA[i:], m.Subdomain) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Subdomain))) - i-- - dAtA[i] = 0x42 - i -= len(m.WildcardPolicy) - copy(dAtA[i:], m.WildcardPolicy) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.WildcardPolicy))) - i-- - dAtA[i] = 0x3a - if m.TLS != nil { - { - size, err := m.TLS.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - } - if m.Port != nil { - { - size, err := m.Port.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - } - if len(m.AlternateBackends) > 0 { - for iNdEx := len(m.AlternateBackends) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.AlternateBackends[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - } - { - size, err := m.To.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - i -= len(m.Path) - copy(dAtA[i:], m.Path) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Path))) - i-- - dAtA[i] = 0x12 - i -= len(m.Host) - copy(dAtA[i:], m.Host) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Host))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RouteStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RouteStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RouteStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Ingress) > 0 { - for iNdEx := len(m.Ingress) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Ingress[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *RouteTargetReference) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RouteTargetReference) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RouteTargetReference) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Weight != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.Weight)) - i-- - dAtA[i] = 0x18 - } - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0x12 - i -= len(m.Kind) - copy(dAtA[i:], m.Kind) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RouterShard) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RouterShard) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RouterShard) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.DNSSuffix) - copy(dAtA[i:], m.DNSSuffix) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DNSSuffix))) - i-- - dAtA[i] = 0x12 - i -= len(m.ShardName) - copy(dAtA[i:], m.ShardName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ShardName))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *TLSConfig) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *TLSConfig) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TLSConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.InsecureEdgeTerminationPolicy) - copy(dAtA[i:], m.InsecureEdgeTerminationPolicy) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.InsecureEdgeTerminationPolicy))) - i-- - dAtA[i] = 0x32 - i -= len(m.DestinationCACertificate) - copy(dAtA[i:], m.DestinationCACertificate) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DestinationCACertificate))) - i-- - dAtA[i] = 0x2a - i -= len(m.CACertificate) - copy(dAtA[i:], m.CACertificate) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.CACertificate))) - i-- - dAtA[i] = 0x22 - i -= len(m.Key) - copy(dAtA[i:], m.Key) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key))) - i-- - dAtA[i] = 0x1a - i -= len(m.Certificate) - copy(dAtA[i:], m.Certificate) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Certificate))) - i-- - dAtA[i] = 0x12 - i -= len(m.Termination) - copy(dAtA[i:], m.Termination) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Termination))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *Route) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *RouteIngress) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Host) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.RouterName) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.WildcardPolicy) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.RouterCanonicalHostname) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *RouteIngressCondition) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Status) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Reason) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - if m.LastTransitionTime != nil { - l = m.LastTransitionTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *RouteList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *RoutePort) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.TargetPort.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *RouteSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Host) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Path) - n += 1 + l + sovGenerated(uint64(l)) - l = m.To.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.AlternateBackends) > 0 { - for _, e := range m.AlternateBackends { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if m.Port != nil { - l = m.Port.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.TLS != nil { - l = m.TLS.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - l = len(m.WildcardPolicy) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Subdomain) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *RouteStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Ingress) > 0 { - for _, e := range m.Ingress { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *RouteTargetReference) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Kind) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - if m.Weight != nil { - n += 1 + sovGenerated(uint64(*m.Weight)) - } - return n -} - -func (m *RouterShard) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.ShardName) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.DNSSuffix) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *TLSConfig) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Termination) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Certificate) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Key) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.CACertificate) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.DestinationCACertificate) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.InsecureEdgeTerminationPolicy) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Route) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Route{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "RouteSpec", "RouteSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "RouteStatus", "RouteStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *RouteIngress) String() string { - if this == nil { - return "nil" - } - repeatedStringForConditions := "[]RouteIngressCondition{" - for _, f := range this.Conditions { - repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "RouteIngressCondition", "RouteIngressCondition", 1), `&`, ``, 1) + "," - } - repeatedStringForConditions += "}" - s := strings.Join([]string{`&RouteIngress{`, - `Host:` + fmt.Sprintf("%v", this.Host) + `,`, - `RouterName:` + fmt.Sprintf("%v", this.RouterName) + `,`, - `Conditions:` + repeatedStringForConditions + `,`, - `WildcardPolicy:` + fmt.Sprintf("%v", this.WildcardPolicy) + `,`, - `RouterCanonicalHostname:` + fmt.Sprintf("%v", this.RouterCanonicalHostname) + `,`, - `}`, - }, "") - return s -} -func (this *RouteIngressCondition) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&RouteIngressCondition{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Status:` + fmt.Sprintf("%v", this.Status) + `,`, - `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `LastTransitionTime:` + strings.Replace(fmt.Sprintf("%v", this.LastTransitionTime), "Time", "v1.Time", 1) + `,`, - `}`, - }, "") - return s -} -func (this *RouteList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]Route{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Route", "Route", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&RouteList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *RoutePort) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&RoutePort{`, - `TargetPort:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.TargetPort), "IntOrString", "intstr.IntOrString", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *RouteSpec) String() string { - if this == nil { - return "nil" - } - repeatedStringForAlternateBackends := "[]RouteTargetReference{" - for _, f := range this.AlternateBackends { - repeatedStringForAlternateBackends += strings.Replace(strings.Replace(f.String(), "RouteTargetReference", "RouteTargetReference", 1), `&`, ``, 1) + "," - } - repeatedStringForAlternateBackends += "}" - s := strings.Join([]string{`&RouteSpec{`, - `Host:` + fmt.Sprintf("%v", this.Host) + `,`, - `Path:` + fmt.Sprintf("%v", this.Path) + `,`, - `To:` + strings.Replace(strings.Replace(this.To.String(), "RouteTargetReference", "RouteTargetReference", 1), `&`, ``, 1) + `,`, - `AlternateBackends:` + repeatedStringForAlternateBackends + `,`, - `Port:` + strings.Replace(this.Port.String(), "RoutePort", "RoutePort", 1) + `,`, - `TLS:` + strings.Replace(this.TLS.String(), "TLSConfig", "TLSConfig", 1) + `,`, - `WildcardPolicy:` + fmt.Sprintf("%v", this.WildcardPolicy) + `,`, - `Subdomain:` + fmt.Sprintf("%v", this.Subdomain) + `,`, - `}`, - }, "") - return s -} -func (this *RouteStatus) String() string { - if this == nil { - return "nil" - } - repeatedStringForIngress := "[]RouteIngress{" - for _, f := range this.Ingress { - repeatedStringForIngress += strings.Replace(strings.Replace(f.String(), "RouteIngress", "RouteIngress", 1), `&`, ``, 1) + "," - } - repeatedStringForIngress += "}" - s := strings.Join([]string{`&RouteStatus{`, - `Ingress:` + repeatedStringForIngress + `,`, - `}`, - }, "") - return s -} -func (this *RouteTargetReference) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&RouteTargetReference{`, - `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `Weight:` + valueToStringGenerated(this.Weight) + `,`, - `}`, - }, "") - return s -} -func (this *RouterShard) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&RouterShard{`, - `ShardName:` + fmt.Sprintf("%v", this.ShardName) + `,`, - `DNSSuffix:` + fmt.Sprintf("%v", this.DNSSuffix) + `,`, - `}`, - }, "") - return s -} -func (this *TLSConfig) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TLSConfig{`, - `Termination:` + fmt.Sprintf("%v", this.Termination) + `,`, - `Certificate:` + fmt.Sprintf("%v", this.Certificate) + `,`, - `Key:` + fmt.Sprintf("%v", this.Key) + `,`, - `CACertificate:` + fmt.Sprintf("%v", this.CACertificate) + `,`, - `DestinationCACertificate:` + fmt.Sprintf("%v", this.DestinationCACertificate) + `,`, - `InsecureEdgeTerminationPolicy:` + fmt.Sprintf("%v", this.InsecureEdgeTerminationPolicy) + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Route) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Route: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Route: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RouteIngress) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RouteIngress: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RouteIngress: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Host", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Host = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RouterName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RouterName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Conditions = append(m.Conditions, RouteIngressCondition{}) - if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field WildcardPolicy", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.WildcardPolicy = WildcardPolicyType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RouterCanonicalHostname", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RouterCanonicalHostname = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RouteIngressCondition) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RouteIngressCondition: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RouteIngressCondition: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = RouteIngressConditionType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Reason = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.LastTransitionTime == nil { - m.LastTransitionTime = &v1.Time{} - } - if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RouteList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RouteList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RouteList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, Route{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RoutePort) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RoutePort: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RoutePort: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TargetPort", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.TargetPort.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RouteSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RouteSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RouteSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Host", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Host = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Path = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field To", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.To.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AlternateBackends", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AlternateBackends = append(m.AlternateBackends, RouteTargetReference{}) - if err := m.AlternateBackends[len(m.AlternateBackends)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Port", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Port == nil { - m.Port = &RoutePort{} - } - if err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TLS", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.TLS == nil { - m.TLS = &TLSConfig{} - } - if err := m.TLS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field WildcardPolicy", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.WildcardPolicy = WildcardPolicyType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Subdomain", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Subdomain = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RouteStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RouteStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RouteStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Ingress", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Ingress = append(m.Ingress, RouteIngress{}) - if err := m.Ingress[len(m.Ingress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RouteTargetReference) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RouteTargetReference: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RouteTargetReference: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Kind = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Weight", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Weight = &v - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RouterShard) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RouterShard: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RouterShard: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ShardName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ShardName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DNSSuffix", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DNSSuffix = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TLSConfig) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TLSConfig: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TLSConfig: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Termination", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Termination = TLSTerminationType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Certificate", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Certificate = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Key = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CACertificate", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.CACertificate = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DestinationCACertificate", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DestinationCACertificate = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field InsecureEdgeTerminationPolicy", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.InsecureEdgeTerminationPolicy = InsecureEdgeTerminationPolicyType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/vendor/github.com/openshift/api/route/v1/generated.proto b/vendor/github.com/openshift/api/route/v1/generated.proto deleted file mode 100644 index c4bc446e34f3a..0000000000000 --- a/vendor/github.com/openshift/api/route/v1/generated.proto +++ /dev/null @@ -1,241 +0,0 @@ - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = 'proto2'; - -package github.com.openshift.api.route.v1; - -import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v1"; - -// A route allows developers to expose services through an HTTP(S) aware load balancing and proxy -// layer via a public DNS entry. The route may further specify TLS options and a certificate, or -// specify a public CNAME that the router should also accept for HTTP and HTTPS traffic. An -// administrator typically configures their router to be visible outside the cluster firewall, and -// may also add additional security, caching, or traffic controls on the service content. Routers -// usually talk directly to the service endpoints. -// -// Once a route is created, the `host` field may not be changed. Generally, routers use the oldest -// route with a given host when resolving conflicts. -// -// Routers are subject to additional customization and may support additional controls via the -// annotations field. -// -// Because administrators may configure multiple routers, the route status field is used to -// return information to clients about the names and states of the route under each router. -// If a client chooses a duplicate name, for instance, the route status conditions are used -// to indicate the route cannot be chosen. -// -// To enable HTTP/2 ALPN on a route it requires a custom -// (non-wildcard) certificate. This prevents connection coalescing by -// clients, notably web browsers. We do not support HTTP/2 ALPN on -// routes that use the default certificate because of the risk of -// connection re-use/coalescing. Routes that do not have their own -// custom certificate will not be HTTP/2 ALPN-enabled on either the -// frontend or the backend. -message Route { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // spec is the desired state of the route - optional RouteSpec spec = 2; - - // status is the current state of the route - // +optional - optional RouteStatus status = 3; -} - -// RouteIngress holds information about the places where a route is exposed. -message RouteIngress { - // Host is the host string under which the route is exposed; this value is required - optional string host = 1; - - // Name is a name chosen by the router to identify itself; this value is required - optional string routerName = 2; - - // Conditions is the state of the route, may be empty. - repeated RouteIngressCondition conditions = 3; - - // Wildcard policy is the wildcard policy that was allowed where this route is exposed. - optional string wildcardPolicy = 4; - - // CanonicalHostname is the external host name for the router that can be used as a CNAME - // for the host requested for this route. This value is optional and may not be set in all cases. - optional string routerCanonicalHostname = 5; -} - -// RouteIngressCondition contains details for the current condition of this route on a particular -// router. -message RouteIngressCondition { - // Type is the type of the condition. - // Currently only Ready. - optional string type = 1; - - // Status is the status of the condition. - // Can be True, False, Unknown. - optional string status = 2; - - // (brief) reason for the condition's last transition, and is usually a machine and human - // readable constant - optional string reason = 3; - - // Human readable message indicating details about last transition. - optional string message = 4; - - // RFC 3339 date and time when this condition last transitioned - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 5; -} - -// RouteList is a collection of Routes. -message RouteList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // items is a list of routes - repeated Route items = 2; -} - -// RoutePort defines a port mapping from a router to an endpoint in the service endpoints. -message RoutePort { - // The target port on pods selected by the service this route points to. - // If this is a string, it will be looked up as a named port in the target - // endpoints port list. Required - optional k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 1; -} - -// RouteSpec describes the hostname or path the route exposes, any security information, -// and one to four backends (services) the route points to. Requests are distributed -// among the backends depending on the weights assigned to each backend. When using -// roundrobin scheduling the portion of requests that go to each backend is the backend -// weight divided by the sum of all of the backend weights. When the backend has more than -// one endpoint the requests that end up on the backend are roundrobin distributed among -// the endpoints. Weights are between 0 and 256 with default 100. Weight 0 causes no requests -// to the backend. If all weights are zero the route will be considered to have no backends -// and return a standard 503 response. -// -// The `tls` field is optional and allows specific certificates or behavior for the -// route. Routers typically configure a default certificate on a wildcard domain to -// terminate routes without explicit certificates, but custom hostnames usually must -// choose passthrough (send traffic directly to the backend via the TLS Server-Name- -// Indication field) or provide a certificate. -message RouteSpec { - // host is an alias/DNS that points to the service. Optional. - // If not specified a route name will typically be automatically - // chosen. - // Must follow DNS952 subdomain conventions. - // +optional - optional string host = 1; - - // subdomain is a DNS subdomain that is requested within the ingress controller's - // domain (as a subdomain). If host is set this field is ignored. An ingress - // controller may choose to ignore this suggested name, in which case the controller - // will report the assigned name in the status.ingress array or refuse to admit the - // route. If this value is set and the server does not support this field host will - // be populated automatically. Otherwise host is left empty. The field may have - // multiple parts separated by a dot, but not all ingress controllers may honor - // the request. This field may not be changed after creation except by a user with - // the update routes/custom-host permission. - // - // Example: subdomain `frontend` automatically receives the router subdomain - // `apps.mycluster.com` to have a full hostname `frontend.apps.mycluster.com`. - // - // +optional - optional string subdomain = 8; - - // path that the router watches for, to route traffic for to the service. Optional - optional string path = 2; - - // to is an object the route should use as the primary backend. Only the Service kind - // is allowed, and it will be defaulted to Service. If the weight field (0-256 default 100) - // is set to zero, no traffic will be sent to this backend. - optional RouteTargetReference to = 3; - - // alternateBackends allows up to 3 additional backends to be assigned to the route. - // Only the Service kind is allowed, and it will be defaulted to Service. - // Use the weight field in RouteTargetReference object to specify relative preference. - repeated RouteTargetReference alternateBackends = 4; - - // If specified, the port to be used by the router. Most routers will use all - // endpoints exposed by the service by default - set this value to instruct routers - // which port to use. - optional RoutePort port = 5; - - // The tls field provides the ability to configure certificates and termination for the route. - optional TLSConfig tls = 6; - - // Wildcard policy if any for the route. - // Currently only 'Subdomain' or 'None' is allowed. - optional string wildcardPolicy = 7; -} - -// RouteStatus provides relevant info about the status of a route, including which routers -// acknowledge it. -message RouteStatus { - // ingress describes the places where the route may be exposed. The list of - // ingress points may contain duplicate Host or RouterName values. Routes - // are considered live once they are `Ready` - repeated RouteIngress ingress = 1; -} - -// RouteTargetReference specifies the target that resolve into endpoints. Only the 'Service' -// kind is allowed. Use 'weight' field to emphasize one over others. -message RouteTargetReference { - // The kind of target that the route is referring to. Currently, only 'Service' is allowed - optional string kind = 1; - - // name of the service/target that is being referred to. e.g. name of the service - optional string name = 2; - - // weight as an integer between 0 and 256, default 100, that specifies the target's relative weight - // against other target reference objects. 0 suppresses requests to this backend. - // +optional - optional int32 weight = 3; -} - -// RouterShard has information of a routing shard and is used to -// generate host names and routing table entries when a routing shard is -// allocated for a specific route. -// Caveat: This is WIP and will likely undergo modifications when sharding -// support is added. -message RouterShard { - // shardName uniquely identifies a router shard in the "set" of - // routers used for routing traffic to the services. - optional string shardName = 1; - - // dnsSuffix for the shard ala: shard-1.v3.openshift.com - optional string dnsSuffix = 2; -} - -// TLSConfig defines config used to secure a route and provide termination -message TLSConfig { - // termination indicates termination type. - optional string termination = 1; - - // certificate provides certificate contents - optional string certificate = 2; - - // key provides key file contents - optional string key = 3; - - // caCertificate provides the cert authority certificate contents - optional string caCertificate = 4; - - // destinationCACertificate provides the contents of the ca certificate of the final destination. When using reencrypt - // termination this file should be provided in order to have routers use it for health checks on the secure connection. - // If this field is not specified, the router may provide its own destination CA and perform hostname validation using - // the short service name (service.namespace.svc), which allows infrastructure generated certificates to automatically - // verify. - optional string destinationCACertificate = 5; - - // insecureEdgeTerminationPolicy indicates the desired behavior for insecure connections to a route. While - // each router may make its own decisions on which ports to expose, this is normally port 80. - // - // * Allow - traffic is sent to the server on the insecure port (default) - // * Disable - no traffic is allowed on the insecure port. - // * Redirect - clients are redirected to the secure port. - optional string insecureEdgeTerminationPolicy = 6; -} - diff --git a/vendor/github.com/openshift/api/route/v1/legacy.go b/vendor/github.com/openshift/api/route/v1/legacy.go deleted file mode 100644 index 498f5dd0f0604..0000000000000 --- a/vendor/github.com/openshift/api/route/v1/legacy.go +++ /dev/null @@ -1,22 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - legacyGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} - legacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, corev1.AddToScheme) - DeprecatedInstallWithoutGroup = legacySchemeBuilder.AddToScheme -) - -func addLegacyKnownTypes(scheme *runtime.Scheme) error { - types := []runtime.Object{ - &Route{}, - &RouteList{}, - } - scheme.AddKnownTypes(legacyGroupVersion, types...) - return nil -} diff --git a/vendor/github.com/openshift/api/route/v1/register.go b/vendor/github.com/openshift/api/route/v1/register.go deleted file mode 100644 index 6f99ef5c96ae4..0000000000000 --- a/vendor/github.com/openshift/api/route/v1/register.go +++ /dev/null @@ -1,39 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - GroupName = "route.openshift.io" - GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, corev1.AddToScheme) - // Install is a function which adds this version to a scheme - Install = schemeBuilder.AddToScheme - - // SchemeGroupVersion generated code relies on this name - // Deprecated - SchemeGroupVersion = GroupVersion - // AddToScheme exists solely to keep the old generators creating valid code - // DEPRECATED - AddToScheme = schemeBuilder.AddToScheme -) - -// Resource generated code relies on this being here, but it logically belongs to the group -// DEPRECATED -func Resource(resource string) schema.GroupResource { - return schema.GroupResource{Group: GroupName, Resource: resource} -} - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &Route{}, - &RouteList{}, - ) - metav1.AddToGroupVersion(scheme, GroupVersion) - return nil -} diff --git a/vendor/github.com/openshift/api/route/v1/types.go b/vendor/github.com/openshift/api/route/v1/types.go deleted file mode 100644 index 9e59c69782787..0000000000000 --- a/vendor/github.com/openshift/api/route/v1/types.go +++ /dev/null @@ -1,280 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" -) - -// +genclient -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// A route allows developers to expose services through an HTTP(S) aware load balancing and proxy -// layer via a public DNS entry. The route may further specify TLS options and a certificate, or -// specify a public CNAME that the router should also accept for HTTP and HTTPS traffic. An -// administrator typically configures their router to be visible outside the cluster firewall, and -// may also add additional security, caching, or traffic controls on the service content. Routers -// usually talk directly to the service endpoints. -// -// Once a route is created, the `host` field may not be changed. Generally, routers use the oldest -// route with a given host when resolving conflicts. -// -// Routers are subject to additional customization and may support additional controls via the -// annotations field. -// -// Because administrators may configure multiple routers, the route status field is used to -// return information to clients about the names and states of the route under each router. -// If a client chooses a duplicate name, for instance, the route status conditions are used -// to indicate the route cannot be chosen. -// -// To enable HTTP/2 ALPN on a route it requires a custom -// (non-wildcard) certificate. This prevents connection coalescing by -// clients, notably web browsers. We do not support HTTP/2 ALPN on -// routes that use the default certificate because of the risk of -// connection re-use/coalescing. Routes that do not have their own -// custom certificate will not be HTTP/2 ALPN-enabled on either the -// frontend or the backend. -type Route struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // spec is the desired state of the route - Spec RouteSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` - // status is the current state of the route - // +optional - Status RouteStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// RouteList is a collection of Routes. -type RouteList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // items is a list of routes - Items []Route `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// RouteSpec describes the hostname or path the route exposes, any security information, -// and one to four backends (services) the route points to. Requests are distributed -// among the backends depending on the weights assigned to each backend. When using -// roundrobin scheduling the portion of requests that go to each backend is the backend -// weight divided by the sum of all of the backend weights. When the backend has more than -// one endpoint the requests that end up on the backend are roundrobin distributed among -// the endpoints. Weights are between 0 and 256 with default 100. Weight 0 causes no requests -// to the backend. If all weights are zero the route will be considered to have no backends -// and return a standard 503 response. -// -// The `tls` field is optional and allows specific certificates or behavior for the -// route. Routers typically configure a default certificate on a wildcard domain to -// terminate routes without explicit certificates, but custom hostnames usually must -// choose passthrough (send traffic directly to the backend via the TLS Server-Name- -// Indication field) or provide a certificate. -type RouteSpec struct { - // host is an alias/DNS that points to the service. Optional. - // If not specified a route name will typically be automatically - // chosen. - // Must follow DNS952 subdomain conventions. - // +optional - Host string `json:"host,omitempty" protobuf:"bytes,1,opt,name=host"` - // subdomain is a DNS subdomain that is requested within the ingress controller's - // domain (as a subdomain). If host is set this field is ignored. An ingress - // controller may choose to ignore this suggested name, in which case the controller - // will report the assigned name in the status.ingress array or refuse to admit the - // route. If this value is set and the server does not support this field host will - // be populated automatically. Otherwise host is left empty. The field may have - // multiple parts separated by a dot, but not all ingress controllers may honor - // the request. This field may not be changed after creation except by a user with - // the update routes/custom-host permission. - // - // Example: subdomain `frontend` automatically receives the router subdomain - // `apps.mycluster.com` to have a full hostname `frontend.apps.mycluster.com`. - // - // +optional - Subdomain string `json:"subdomain,omitempty" protobuf:"bytes,8,opt,name=subdomain"` - - // path that the router watches for, to route traffic for to the service. Optional - Path string `json:"path,omitempty" protobuf:"bytes,2,opt,name=path"` - - // to is an object the route should use as the primary backend. Only the Service kind - // is allowed, and it will be defaulted to Service. If the weight field (0-256 default 100) - // is set to zero, no traffic will be sent to this backend. - To RouteTargetReference `json:"to" protobuf:"bytes,3,opt,name=to"` - - // alternateBackends allows up to 3 additional backends to be assigned to the route. - // Only the Service kind is allowed, and it will be defaulted to Service. - // Use the weight field in RouteTargetReference object to specify relative preference. - AlternateBackends []RouteTargetReference `json:"alternateBackends,omitempty" protobuf:"bytes,4,rep,name=alternateBackends"` - - // If specified, the port to be used by the router. Most routers will use all - // endpoints exposed by the service by default - set this value to instruct routers - // which port to use. - Port *RoutePort `json:"port,omitempty" protobuf:"bytes,5,opt,name=port"` - - // The tls field provides the ability to configure certificates and termination for the route. - TLS *TLSConfig `json:"tls,omitempty" protobuf:"bytes,6,opt,name=tls"` - - // Wildcard policy if any for the route. - // Currently only 'Subdomain' or 'None' is allowed. - WildcardPolicy WildcardPolicyType `json:"wildcardPolicy,omitempty" protobuf:"bytes,7,opt,name=wildcardPolicy"` -} - -// RouteTargetReference specifies the target that resolve into endpoints. Only the 'Service' -// kind is allowed. Use 'weight' field to emphasize one over others. -type RouteTargetReference struct { - // The kind of target that the route is referring to. Currently, only 'Service' is allowed - Kind string `json:"kind" protobuf:"bytes,1,opt,name=kind"` - - // name of the service/target that is being referred to. e.g. name of the service - Name string `json:"name" protobuf:"bytes,2,opt,name=name"` - - // weight as an integer between 0 and 256, default 100, that specifies the target's relative weight - // against other target reference objects. 0 suppresses requests to this backend. - // +optional - Weight *int32 `json:"weight" protobuf:"varint,3,opt,name=weight"` -} - -// RoutePort defines a port mapping from a router to an endpoint in the service endpoints. -type RoutePort struct { - // The target port on pods selected by the service this route points to. - // If this is a string, it will be looked up as a named port in the target - // endpoints port list. Required - TargetPort intstr.IntOrString `json:"targetPort" protobuf:"bytes,1,opt,name=targetPort"` -} - -// RouteStatus provides relevant info about the status of a route, including which routers -// acknowledge it. -type RouteStatus struct { - // ingress describes the places where the route may be exposed. The list of - // ingress points may contain duplicate Host or RouterName values. Routes - // are considered live once they are `Ready` - Ingress []RouteIngress `json:"ingress,omitempty" protobuf:"bytes,1,rep,name=ingress"` -} - -// RouteIngress holds information about the places where a route is exposed. -type RouteIngress struct { - // Host is the host string under which the route is exposed; this value is required - Host string `json:"host,omitempty" protobuf:"bytes,1,opt,name=host"` - // Name is a name chosen by the router to identify itself; this value is required - RouterName string `json:"routerName,omitempty" protobuf:"bytes,2,opt,name=routerName"` - // Conditions is the state of the route, may be empty. - Conditions []RouteIngressCondition `json:"conditions,omitempty" protobuf:"bytes,3,rep,name=conditions"` - // Wildcard policy is the wildcard policy that was allowed where this route is exposed. - WildcardPolicy WildcardPolicyType `json:"wildcardPolicy,omitempty" protobuf:"bytes,4,opt,name=wildcardPolicy"` - // CanonicalHostname is the external host name for the router that can be used as a CNAME - // for the host requested for this route. This value is optional and may not be set in all cases. - RouterCanonicalHostname string `json:"routerCanonicalHostname,omitempty" protobuf:"bytes,5,opt,name=routerCanonicalHostname"` -} - -// RouteIngressConditionType is a valid value for RouteCondition -type RouteIngressConditionType string - -// These are valid conditions of pod. -const ( - // RouteAdmitted means the route is able to service requests for the provided Host - RouteAdmitted RouteIngressConditionType = "Admitted" - // TODO: add other route condition types -) - -// RouteIngressCondition contains details for the current condition of this route on a particular -// router. -type RouteIngressCondition struct { - // Type is the type of the condition. - // Currently only Ready. - Type RouteIngressConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=RouteIngressConditionType"` - // Status is the status of the condition. - // Can be True, False, Unknown. - Status corev1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"` - // (brief) reason for the condition's last transition, and is usually a machine and human - // readable constant - Reason string `json:"reason,omitempty" protobuf:"bytes,3,opt,name=reason"` - // Human readable message indicating details about last transition. - Message string `json:"message,omitempty" protobuf:"bytes,4,opt,name=message"` - // RFC 3339 date and time when this condition last transitioned - LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,5,opt,name=lastTransitionTime"` -} - -// RouterShard has information of a routing shard and is used to -// generate host names and routing table entries when a routing shard is -// allocated for a specific route. -// Caveat: This is WIP and will likely undergo modifications when sharding -// support is added. -type RouterShard struct { - // shardName uniquely identifies a router shard in the "set" of - // routers used for routing traffic to the services. - ShardName string `json:"shardName" protobuf:"bytes,1,opt,name=shardName"` - - // dnsSuffix for the shard ala: shard-1.v3.openshift.com - DNSSuffix string `json:"dnsSuffix" protobuf:"bytes,2,opt,name=dnsSuffix"` -} - -// TLSConfig defines config used to secure a route and provide termination -type TLSConfig struct { - // termination indicates termination type. - Termination TLSTerminationType `json:"termination" protobuf:"bytes,1,opt,name=termination,casttype=TLSTerminationType"` - - // certificate provides certificate contents - Certificate string `json:"certificate,omitempty" protobuf:"bytes,2,opt,name=certificate"` - - // key provides key file contents - Key string `json:"key,omitempty" protobuf:"bytes,3,opt,name=key"` - - // caCertificate provides the cert authority certificate contents - CACertificate string `json:"caCertificate,omitempty" protobuf:"bytes,4,opt,name=caCertificate"` - - // destinationCACertificate provides the contents of the ca certificate of the final destination. When using reencrypt - // termination this file should be provided in order to have routers use it for health checks on the secure connection. - // If this field is not specified, the router may provide its own destination CA and perform hostname validation using - // the short service name (service.namespace.svc), which allows infrastructure generated certificates to automatically - // verify. - DestinationCACertificate string `json:"destinationCACertificate,omitempty" protobuf:"bytes,5,opt,name=destinationCACertificate"` - - // insecureEdgeTerminationPolicy indicates the desired behavior for insecure connections to a route. While - // each router may make its own decisions on which ports to expose, this is normally port 80. - // - // * Allow - traffic is sent to the server on the insecure port (default) - // * Disable - no traffic is allowed on the insecure port. - // * Redirect - clients are redirected to the secure port. - InsecureEdgeTerminationPolicy InsecureEdgeTerminationPolicyType `json:"insecureEdgeTerminationPolicy,omitempty" protobuf:"bytes,6,opt,name=insecureEdgeTerminationPolicy,casttype=InsecureEdgeTerminationPolicyType"` -} - -// TLSTerminationType dictates where the secure communication will stop -// TODO: Reconsider this type in v2 -type TLSTerminationType string - -// InsecureEdgeTerminationPolicyType dictates the behavior of insecure -// connections to an edge-terminated route. -type InsecureEdgeTerminationPolicyType string - -const ( - // TLSTerminationEdge terminate encryption at the edge router. - TLSTerminationEdge TLSTerminationType = "edge" - // TLSTerminationPassthrough terminate encryption at the destination, the destination is responsible for decrypting traffic - TLSTerminationPassthrough TLSTerminationType = "passthrough" - // TLSTerminationReencrypt terminate encryption at the edge router and re-encrypt it with a new certificate supplied by the destination - TLSTerminationReencrypt TLSTerminationType = "reencrypt" - - // InsecureEdgeTerminationPolicyNone disables insecure connections for an edge-terminated route. - InsecureEdgeTerminationPolicyNone InsecureEdgeTerminationPolicyType = "None" - // InsecureEdgeTerminationPolicyAllow allows insecure connections for an edge-terminated route. - InsecureEdgeTerminationPolicyAllow InsecureEdgeTerminationPolicyType = "Allow" - // InsecureEdgeTerminationPolicyRedirect redirects insecure connections for an edge-terminated route. - // As an example, for routers that support HTTP and HTTPS, the - // insecure HTTP connections will be redirected to use HTTPS. - InsecureEdgeTerminationPolicyRedirect InsecureEdgeTerminationPolicyType = "Redirect" -) - -// WildcardPolicyType indicates the type of wildcard support needed by routes. -type WildcardPolicyType string - -const ( - // WildcardPolicyNone indicates no wildcard support is needed. - WildcardPolicyNone WildcardPolicyType = "None" - - // WildcardPolicySubdomain indicates the host needs wildcard support for the subdomain. - // Example: For host = "www.acme.test", indicates that the router - // should support requests for *.acme.test - // Note that this will not match acme.test only *.acme.test - WildcardPolicySubdomain WildcardPolicyType = "Subdomain" -) diff --git a/vendor/github.com/openshift/api/route/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/route/v1/zz_generated.deepcopy.go deleted file mode 100644 index a9576c414ca56..0000000000000 --- a/vendor/github.com/openshift/api/route/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,240 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - 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 *Route) DeepCopyInto(out *Route) { - *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 Route. -func (in *Route) DeepCopy() *Route { - if in == nil { - return nil - } - out := new(Route) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Route) 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 *RouteIngress) DeepCopyInto(out *RouteIngress) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]RouteIngressCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteIngress. -func (in *RouteIngress) DeepCopy() *RouteIngress { - if in == nil { - return nil - } - out := new(RouteIngress) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RouteIngressCondition) DeepCopyInto(out *RouteIngressCondition) { - *out = *in - if in.LastTransitionTime != nil { - in, out := &in.LastTransitionTime, &out.LastTransitionTime - *out = (*in).DeepCopy() - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteIngressCondition. -func (in *RouteIngressCondition) DeepCopy() *RouteIngressCondition { - if in == nil { - return nil - } - out := new(RouteIngressCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RouteList) DeepCopyInto(out *RouteList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Route, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteList. -func (in *RouteList) DeepCopy() *RouteList { - if in == nil { - return nil - } - out := new(RouteList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *RouteList) 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 *RoutePort) DeepCopyInto(out *RoutePort) { - *out = *in - out.TargetPort = in.TargetPort - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoutePort. -func (in *RoutePort) DeepCopy() *RoutePort { - if in == nil { - return nil - } - out := new(RoutePort) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RouteSpec) DeepCopyInto(out *RouteSpec) { - *out = *in - in.To.DeepCopyInto(&out.To) - if in.AlternateBackends != nil { - in, out := &in.AlternateBackends, &out.AlternateBackends - *out = make([]RouteTargetReference, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Port != nil { - in, out := &in.Port, &out.Port - *out = new(RoutePort) - **out = **in - } - if in.TLS != nil { - in, out := &in.TLS, &out.TLS - *out = new(TLSConfig) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteSpec. -func (in *RouteSpec) DeepCopy() *RouteSpec { - if in == nil { - return nil - } - out := new(RouteSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RouteStatus) DeepCopyInto(out *RouteStatus) { - *out = *in - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = make([]RouteIngress, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteStatus. -func (in *RouteStatus) DeepCopy() *RouteStatus { - if in == nil { - return nil - } - out := new(RouteStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RouteTargetReference) DeepCopyInto(out *RouteTargetReference) { - *out = *in - if in.Weight != nil { - in, out := &in.Weight, &out.Weight - *out = new(int32) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteTargetReference. -func (in *RouteTargetReference) DeepCopy() *RouteTargetReference { - if in == nil { - return nil - } - out := new(RouteTargetReference) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RouterShard) DeepCopyInto(out *RouterShard) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterShard. -func (in *RouterShard) DeepCopy() *RouterShard { - if in == nil { - return nil - } - out := new(RouterShard) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TLSConfig) DeepCopyInto(out *TLSConfig) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSConfig. -func (in *TLSConfig) DeepCopy() *TLSConfig { - if in == nil { - return nil - } - out := new(TLSConfig) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/github.com/openshift/api/route/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/route/v1/zz_generated.swagger_doc_generated.go deleted file mode 100644 index 9974795f6272a..0000000000000 --- a/vendor/github.com/openshift/api/route/v1/zz_generated.swagger_doc_generated.go +++ /dev/null @@ -1,128 +0,0 @@ -package v1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE -var map_Route = map[string]string{ - "": "A route allows developers to expose services through an HTTP(S) aware load balancing and proxy layer via a public DNS entry. The route may further specify TLS options and a certificate, or specify a public CNAME that the router should also accept for HTTP and HTTPS traffic. An administrator typically configures their router to be visible outside the cluster firewall, and may also add additional security, caching, or traffic controls on the service content. Routers usually talk directly to the service endpoints.\n\nOnce a route is created, the `host` field may not be changed. Generally, routers use the oldest route with a given host when resolving conflicts.\n\nRouters are subject to additional customization and may support additional controls via the annotations field.\n\nBecause administrators may configure multiple routers, the route status field is used to return information to clients about the names and states of the route under each router. If a client chooses a duplicate name, for instance, the route status conditions are used to indicate the route cannot be chosen.\n\nTo enable HTTP/2 ALPN on a route it requires a custom (non-wildcard) certificate. This prevents connection coalescing by clients, notably web browsers. We do not support HTTP/2 ALPN on routes that use the default certificate because of the risk of connection re-use/coalescing. Routes that do not have their own custom certificate will not be HTTP/2 ALPN-enabled on either the frontend or the backend.", - "spec": "spec is the desired state of the route", - "status": "status is the current state of the route", -} - -func (Route) SwaggerDoc() map[string]string { - return map_Route -} - -var map_RouteIngress = map[string]string{ - "": "RouteIngress holds information about the places where a route is exposed.", - "host": "Host is the host string under which the route is exposed; this value is required", - "routerName": "Name is a name chosen by the router to identify itself; this value is required", - "conditions": "Conditions is the state of the route, may be empty.", - "wildcardPolicy": "Wildcard policy is the wildcard policy that was allowed where this route is exposed.", - "routerCanonicalHostname": "CanonicalHostname is the external host name for the router that can be used as a CNAME for the host requested for this route. This value is optional and may not be set in all cases.", -} - -func (RouteIngress) SwaggerDoc() map[string]string { - return map_RouteIngress -} - -var map_RouteIngressCondition = map[string]string{ - "": "RouteIngressCondition contains details for the current condition of this route on a particular router.", - "type": "Type is the type of the condition. Currently only Ready.", - "status": "Status is the status of the condition. Can be True, False, Unknown.", - "reason": "(brief) reason for the condition's last transition, and is usually a machine and human readable constant", - "message": "Human readable message indicating details about last transition.", - "lastTransitionTime": "RFC 3339 date and time when this condition last transitioned", -} - -func (RouteIngressCondition) SwaggerDoc() map[string]string { - return map_RouteIngressCondition -} - -var map_RouteList = map[string]string{ - "": "RouteList is a collection of Routes.", - "items": "items is a list of routes", -} - -func (RouteList) SwaggerDoc() map[string]string { - return map_RouteList -} - -var map_RoutePort = map[string]string{ - "": "RoutePort defines a port mapping from a router to an endpoint in the service endpoints.", - "targetPort": "The target port on pods selected by the service this route points to. If this is a string, it will be looked up as a named port in the target endpoints port list. Required", -} - -func (RoutePort) SwaggerDoc() map[string]string { - return map_RoutePort -} - -var map_RouteSpec = map[string]string{ - "": "RouteSpec describes the hostname or path the route exposes, any security information, and one to four backends (services) the route points to. Requests are distributed among the backends depending on the weights assigned to each backend. When using roundrobin scheduling the portion of requests that go to each backend is the backend weight divided by the sum of all of the backend weights. When the backend has more than one endpoint the requests that end up on the backend are roundrobin distributed among the endpoints. Weights are between 0 and 256 with default 100. Weight 0 causes no requests to the backend. If all weights are zero the route will be considered to have no backends and return a standard 503 response.\n\nThe `tls` field is optional and allows specific certificates or behavior for the route. Routers typically configure a default certificate on a wildcard domain to terminate routes without explicit certificates, but custom hostnames usually must choose passthrough (send traffic directly to the backend via the TLS Server-Name- Indication field) or provide a certificate.", - "host": "host is an alias/DNS that points to the service. Optional. If not specified a route name will typically be automatically chosen. Must follow DNS952 subdomain conventions.", - "subdomain": "subdomain is a DNS subdomain that is requested within the ingress controller's domain (as a subdomain). If host is set this field is ignored. An ingress controller may choose to ignore this suggested name, in which case the controller will report the assigned name in the status.ingress array or refuse to admit the route. If this value is set and the server does not support this field host will be populated automatically. Otherwise host is left empty. The field may have multiple parts separated by a dot, but not all ingress controllers may honor the request. This field may not be changed after creation except by a user with the update routes/custom-host permission.\n\nExample: subdomain `frontend` automatically receives the router subdomain `apps.mycluster.com` to have a full hostname `frontend.apps.mycluster.com`.", - "path": "path that the router watches for, to route traffic for to the service. Optional", - "to": "to is an object the route should use as the primary backend. Only the Service kind is allowed, and it will be defaulted to Service. If the weight field (0-256 default 100) is set to zero, no traffic will be sent to this backend.", - "alternateBackends": "alternateBackends allows up to 3 additional backends to be assigned to the route. Only the Service kind is allowed, and it will be defaulted to Service. Use the weight field in RouteTargetReference object to specify relative preference.", - "port": "If specified, the port to be used by the router. Most routers will use all endpoints exposed by the service by default - set this value to instruct routers which port to use.", - "tls": "The tls field provides the ability to configure certificates and termination for the route.", - "wildcardPolicy": "Wildcard policy if any for the route. Currently only 'Subdomain' or 'None' is allowed.", -} - -func (RouteSpec) SwaggerDoc() map[string]string { - return map_RouteSpec -} - -var map_RouteStatus = map[string]string{ - "": "RouteStatus provides relevant info about the status of a route, including which routers acknowledge it.", - "ingress": "ingress describes the places where the route may be exposed. The list of ingress points may contain duplicate Host or RouterName values. Routes are considered live once they are `Ready`", -} - -func (RouteStatus) SwaggerDoc() map[string]string { - return map_RouteStatus -} - -var map_RouteTargetReference = map[string]string{ - "": "RouteTargetReference specifies the target that resolve into endpoints. Only the 'Service' kind is allowed. Use 'weight' field to emphasize one over others.", - "kind": "The kind of target that the route is referring to. Currently, only 'Service' is allowed", - "name": "name of the service/target that is being referred to. e.g. name of the service", - "weight": "weight as an integer between 0 and 256, default 100, that specifies the target's relative weight against other target reference objects. 0 suppresses requests to this backend.", -} - -func (RouteTargetReference) SwaggerDoc() map[string]string { - return map_RouteTargetReference -} - -var map_RouterShard = map[string]string{ - "": "RouterShard has information of a routing shard and is used to generate host names and routing table entries when a routing shard is allocated for a specific route. Caveat: This is WIP and will likely undergo modifications when sharding\n support is added.", - "shardName": "shardName uniquely identifies a router shard in the \"set\" of routers used for routing traffic to the services.", - "dnsSuffix": "dnsSuffix for the shard ala: shard-1.v3.openshift.com", -} - -func (RouterShard) SwaggerDoc() map[string]string { - return map_RouterShard -} - -var map_TLSConfig = map[string]string{ - "": "TLSConfig defines config used to secure a route and provide termination", - "termination": "termination indicates termination type.", - "certificate": "certificate provides certificate contents", - "key": "key provides key file contents", - "caCertificate": "caCertificate provides the cert authority certificate contents", - "destinationCACertificate": "destinationCACertificate provides the contents of the ca certificate of the final destination. When using reencrypt termination this file should be provided in order to have routers use it for health checks on the secure connection. If this field is not specified, the router may provide its own destination CA and perform hostname validation using the short service name (service.namespace.svc), which allows infrastructure generated certificates to automatically verify.", - "insecureEdgeTerminationPolicy": "insecureEdgeTerminationPolicy indicates the desired behavior for insecure connections to a route. While each router may make its own decisions on which ports to expose, this is normally port 80.\n\n* Allow - traffic is sent to the server on the insecure port (default) * Disable - no traffic is allowed on the insecure port. * Redirect - clients are redirected to the secure port.", -} - -func (TLSConfig) SwaggerDoc() map[string]string { - return map_TLSConfig -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/github.com/openshift/api/security/install.go b/vendor/github.com/openshift/api/security/install.go deleted file mode 100644 index c2b04c43298ff..0000000000000 --- a/vendor/github.com/openshift/api/security/install.go +++ /dev/null @@ -1,26 +0,0 @@ -package security - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - - securityv1 "github.com/openshift/api/security/v1" -) - -const ( - GroupName = "security.openshift.io" -) - -var ( - schemeBuilder = runtime.NewSchemeBuilder(securityv1.Install) - // Install is a function which adds every version of this group to a scheme - Install = schemeBuilder.AddToScheme -) - -func Resource(resource string) schema.GroupResource { - return schema.GroupResource{Group: GroupName, Resource: resource} -} - -func Kind(kind string) schema.GroupKind { - return schema.GroupKind{Group: GroupName, Kind: kind} -} diff --git a/vendor/github.com/openshift/api/security/v1/0000_03_security-openshift_01_scc.crd.yaml b/vendor/github.com/openshift/api/security/v1/0000_03_security-openshift_01_scc.crd.yaml deleted file mode 100644 index e8f10ce7d876a..0000000000000 --- a/vendor/github.com/openshift/api/security/v1/0000_03_security-openshift_01_scc.crd.yaml +++ /dev/null @@ -1,355 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - name: securitycontextconstraints.security.openshift.io - annotations: - include.release.openshift.io/self-managed-high-availability: "true" -spec: - group: security.openshift.io - names: - kind: SecurityContextConstraints - listKind: SecurityContextConstraintsList - plural: securitycontextconstraints - singular: securitycontextconstraints - scope: Cluster - preserveUnknownFields: false - versions: - - name: v1 - served: true - storage: true - additionalPrinterColumns: - - name: Priv - type: string - JSONPath: .allowPrivilegedContainer - description: Determines if a container can request to be run as privileged - - name: Caps - type: string - JSONPath: .allowedCapabilities - description: A list of capabilities that can be requested to add to the container - - name: SELinux - type: string - JSONPath: .seLinuxContext.type - description: Strategy that will dictate what labels will be set in the SecurityContext - - name: RunAsUser - type: string - JSONPath: .runAsUser.type - description: Strategy that will dictate what RunAsUser is used in the SecurityContext - - name: FSGroup - type: string - JSONPath: .fsGroup.type - description: Strategy that will dictate what fs group is used by the SecurityContext - - name: SupGroup - type: string - JSONPath: .supplementalGroups.type - description: Strategy that will dictate what supplemental groups are used by the - SecurityContext - - name: Priority - type: string - JSONPath: .priority - description: Sort order of SCCs - - name: ReadOnlyRootFS - type: string - JSONPath: .readOnlyRootFilesystem - description: Force containers to run with a read only root file system - - name: Volumes - type: string - JSONPath: .volumes - description: White list of allowed volume plugins - "validation": - "openAPIV3Schema": - description: SecurityContextConstraints governs the ability to make requests - that affect the SecurityContext that will be applied to a container. For historical - reasons SCC was exposed under the core Kubernetes API group. That exposure - is deprecated and will be removed in a future release - users should instead - use the security.openshift.io group to manage SecurityContextConstraints. - type: object - required: - - allowHostDirVolumePlugin - - allowHostIPC - - allowHostNetwork - - allowHostPID - - allowHostPorts - - allowPrivilegedContainer - - allowedCapabilities - - defaultAddCapabilities - - priority - - readOnlyRootFilesystem - - requiredDropCapabilities - - volumes - properties: - allowHostDirVolumePlugin: - description: AllowHostDirVolumePlugin determines if the policy allow containers - to use the HostDir volume plugin - type: boolean - allowHostIPC: - description: AllowHostIPC determines if the policy allows host ipc in the - containers. - type: boolean - allowHostNetwork: - description: AllowHostNetwork determines if the policy allows the use of - HostNetwork in the pod spec. - type: boolean - allowHostPID: - description: AllowHostPID determines if the policy allows host pid in the - containers. - type: boolean - allowHostPorts: - description: AllowHostPorts determines if the policy allows host ports in - the containers. - type: boolean - allowPrivilegeEscalation: - description: AllowPrivilegeEscalation determines if a pod can request to - allow privilege escalation. If unspecified, defaults to true. - type: boolean - nullable: true - allowPrivilegedContainer: - description: AllowPrivilegedContainer determines if a container can request - to be run as privileged. - type: boolean - allowedCapabilities: - description: AllowedCapabilities is a list of capabilities that can be requested - to add to the container. Capabilities in this field maybe added at the - pod author's discretion. You must not list a capability in both AllowedCapabilities - and RequiredDropCapabilities. To allow all capabilities you may use '*'. - type: array - items: - description: Capability represent POSIX capabilities type - type: string - nullable: true - allowedFlexVolumes: - description: AllowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty - or nil indicates that all Flexvolumes may be used. This parameter is - effective only when the usage of the Flexvolumes is allowed in the "Volumes" - field. - type: array - items: - description: AllowedFlexVolume represents a single Flexvolume that is - allowed to be used. - type: object - required: - - driver - properties: - driver: - description: Driver is the name of the Flexvolume driver. - type: string - nullable: true - allowedUnsafeSysctls: - description: "AllowedUnsafeSysctls is a list of explicitly allowed unsafe - sysctls, defaults to none. Each entry is either a plain sysctl name or - ends in \"*\" in which case it is considered as a prefix of allowed sysctls. - Single * means all unsafe sysctls are allowed. Kubelet has to whitelist - all allowed unsafe sysctls explicitly to avoid rejection. \n Examples: - e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" allows - \"foo.bar\", \"foo.baz\", etc." - type: array - items: - type: string - nullable: true - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - defaultAddCapabilities: - description: DefaultAddCapabilities is the default set of capabilities that - will be added to the container unless the pod spec specifically drops - the capability. You may not list a capabiility in both DefaultAddCapabilities - and RequiredDropCapabilities. - type: array - items: - description: Capability represent POSIX capabilities type - type: string - nullable: true - defaultAllowPrivilegeEscalation: - description: DefaultAllowPrivilegeEscalation controls the default setting - for whether a process can gain more privileges than its parent process. - type: boolean - nullable: true - forbiddenSysctls: - description: "ForbiddenSysctls is a list of explicitly forbidden sysctls, - defaults to none. Each entry is either a plain sysctl name or ends in - \"*\" in which case it is considered as a prefix of forbidden sysctls. - Single * means all sysctls are forbidden. \n Examples: e.g. \"foo/*\" - forbids \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" forbids \"foo.bar\", - \"foo.baz\", etc." - type: array - items: - type: string - nullable: true - fsGroup: - description: FSGroup is the strategy that will dictate what fs group is - used by the SecurityContext. - type: object - properties: - ranges: - description: Ranges are the allowed ranges of fs groups. If you would - like to force a single fs group then supply a single range with the - same start and end. - type: array - items: - description: 'IDRange provides a min/max of an allowed range of IDs. - TODO: this could be reused for UIDs.' - type: object - properties: - max: - description: Max is the end of the range, inclusive. - type: integer - format: int64 - min: - description: Min is the start of the range, inclusive. - type: integer - format: int64 - type: - description: Type is the strategy that will dictate what FSGroup is - used in the SecurityContext. - type: string - nullable: true - groups: - description: The groups that have permission to use this security context - constraints - type: array - items: - type: string - nullable: true - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - priority: - description: Priority influences the sort order of SCCs when evaluating - which SCCs to try first for a given pod request based on access in the - Users and Groups fields. The higher the int, the higher priority. An - unset value is considered a 0 priority. If scores for multiple SCCs are - equal they will be sorted from most restrictive to least restrictive. - If both priorities and restrictions are equal the SCCs will be sorted - by name. - type: integer - format: int32 - nullable: true - readOnlyRootFilesystem: - description: ReadOnlyRootFilesystem when set to true will force containers - to run with a read only root file system. If the container specifically - requests to run with a non-read only root file system the SCC should deny - the pod. If set to false the container may run with a read only root file - system if it wishes but it will not be forced to. - type: boolean - requiredDropCapabilities: - description: RequiredDropCapabilities are the capabilities that will be - dropped from the container. These are required to be dropped and cannot - be added. - type: array - items: - description: Capability represent POSIX capabilities type - type: string - nullable: true - runAsUser: - description: RunAsUser is the strategy that will dictate what RunAsUser - is used in the SecurityContext. - type: object - properties: - type: - description: Type is the strategy that will dictate what RunAsUser is - used in the SecurityContext. - type: string - uid: - description: UID is the user id that containers must run as. Required - for the MustRunAs strategy if not using namespace/service account - allocated uids. - type: integer - format: int64 - uidRangeMax: - description: UIDRangeMax defines the max value for a strategy that allocates - by range. - type: integer - format: int64 - uidRangeMin: - description: UIDRangeMin defines the min value for a strategy that allocates - by range. - type: integer - format: int64 - nullable: true - seLinuxContext: - description: SELinuxContext is the strategy that will dictate what labels - will be set in the SecurityContext. - type: object - properties: - seLinuxOptions: - description: seLinuxOptions required to run as; required for MustRunAs - type: object - properties: - level: - description: Level is SELinux level label that applies to the container. - type: string - role: - description: Role is a SELinux role label that applies to the container. - type: string - type: - description: Type is a SELinux type label that applies to the container. - type: string - user: - description: User is a SELinux user label that applies to the container. - type: string - type: - description: Type is the strategy that will dictate what SELinux context - is used in the SecurityContext. - type: string - nullable: true - seccompProfiles: - description: "SeccompProfiles lists the allowed profiles that may be set - for the pod or container's seccomp annotations. An unset (nil) or empty - value means that no profiles may be specifid by the pod or container.\tThe - wildcard '*' may be used to allow all profiles. When used to generate - a value for a pod the first non-wildcard profile will be used as the default." - type: array - items: - type: string - nullable: true - supplementalGroups: - description: SupplementalGroups is the strategy that will dictate what supplemental - groups are used by the SecurityContext. - type: object - properties: - ranges: - description: Ranges are the allowed ranges of supplemental groups. If - you would like to force a single supplemental group then supply a - single range with the same start and end. - type: array - items: - description: 'IDRange provides a min/max of an allowed range of IDs. - TODO: this could be reused for UIDs.' - type: object - properties: - max: - description: Max is the end of the range, inclusive. - type: integer - format: int64 - min: - description: Min is the start of the range, inclusive. - type: integer - format: int64 - type: - description: Type is the strategy that will dictate what supplemental - groups is used in the SecurityContext. - type: string - nullable: true - users: - description: The users who have permissions to use this security context - constraints - type: array - items: - type: string - nullable: true - volumes: - description: Volumes is a white list of allowed volume plugins. FSType - corresponds directly with the field names of a VolumeSource (azureFile, - configMap, emptyDir). To allow all volumes you may use "*". To allow - no volumes, set to ["none"]. - type: array - items: - description: FS Type gives strong typing to different file systems that - are used by volumes. - type: string - nullable: true diff --git a/vendor/github.com/openshift/api/security/v1/consts.go b/vendor/github.com/openshift/api/security/v1/consts.go deleted file mode 100644 index 28f8e5ae67853..0000000000000 --- a/vendor/github.com/openshift/api/security/v1/consts.go +++ /dev/null @@ -1,10 +0,0 @@ -package v1 - -const ( - UIDRangeAnnotation = "openshift.io/sa.scc.uid-range" - // SupplementalGroupsAnnotation contains a comma delimited list of allocated supplemental groups - // for the namespace. Groups are in the form of a Block which supports {start}/{length} or {start}-{end} - SupplementalGroupsAnnotation = "openshift.io/sa.scc.supplemental-groups" - MCSAnnotation = "openshift.io/sa.scc.mcs" - ValidatedSCCAnnotation = "openshift.io/scc" -) diff --git a/vendor/github.com/openshift/api/security/v1/doc.go b/vendor/github.com/openshift/api/security/v1/doc.go deleted file mode 100644 index 44fe37eb2dcd9..0000000000000 --- a/vendor/github.com/openshift/api/security/v1/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=github.com/openshift/origin/pkg/security/apis/security -// +k8s:defaulter-gen=TypeMeta -// +k8s:openapi-gen=true - -// +groupName=security.openshift.io -// Package v1 is the v1 version of the API. -package v1 diff --git a/vendor/github.com/openshift/api/security/v1/generated.pb.go b/vendor/github.com/openshift/api/security/v1/generated.pb.go deleted file mode 100644 index 7ee402afa34ca..0000000000000 --- a/vendor/github.com/openshift/api/security/v1/generated.pb.go +++ /dev/null @@ -1,5340 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: github.com/openshift/api/security/v1/generated.proto - -package v1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - k8s_io_api_core_v1 "k8s.io/api/core/v1" - v1 "k8s.io/api/core/v1" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *AllowedFlexVolume) Reset() { *m = AllowedFlexVolume{} } -func (*AllowedFlexVolume) ProtoMessage() {} -func (*AllowedFlexVolume) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{0} -} -func (m *AllowedFlexVolume) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *AllowedFlexVolume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *AllowedFlexVolume) XXX_Merge(src proto.Message) { - xxx_messageInfo_AllowedFlexVolume.Merge(m, src) -} -func (m *AllowedFlexVolume) XXX_Size() int { - return m.Size() -} -func (m *AllowedFlexVolume) XXX_DiscardUnknown() { - xxx_messageInfo_AllowedFlexVolume.DiscardUnknown(m) -} - -var xxx_messageInfo_AllowedFlexVolume proto.InternalMessageInfo - -func (m *FSGroupStrategyOptions) Reset() { *m = FSGroupStrategyOptions{} } -func (*FSGroupStrategyOptions) ProtoMessage() {} -func (*FSGroupStrategyOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{1} -} -func (m *FSGroupStrategyOptions) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *FSGroupStrategyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *FSGroupStrategyOptions) XXX_Merge(src proto.Message) { - xxx_messageInfo_FSGroupStrategyOptions.Merge(m, src) -} -func (m *FSGroupStrategyOptions) XXX_Size() int { - return m.Size() -} -func (m *FSGroupStrategyOptions) XXX_DiscardUnknown() { - xxx_messageInfo_FSGroupStrategyOptions.DiscardUnknown(m) -} - -var xxx_messageInfo_FSGroupStrategyOptions proto.InternalMessageInfo - -func (m *IDRange) Reset() { *m = IDRange{} } -func (*IDRange) ProtoMessage() {} -func (*IDRange) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{2} -} -func (m *IDRange) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *IDRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *IDRange) XXX_Merge(src proto.Message) { - xxx_messageInfo_IDRange.Merge(m, src) -} -func (m *IDRange) XXX_Size() int { - return m.Size() -} -func (m *IDRange) XXX_DiscardUnknown() { - xxx_messageInfo_IDRange.DiscardUnknown(m) -} - -var xxx_messageInfo_IDRange proto.InternalMessageInfo - -func (m *PodSecurityPolicyReview) Reset() { *m = PodSecurityPolicyReview{} } -func (*PodSecurityPolicyReview) ProtoMessage() {} -func (*PodSecurityPolicyReview) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{3} -} -func (m *PodSecurityPolicyReview) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PodSecurityPolicyReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *PodSecurityPolicyReview) XXX_Merge(src proto.Message) { - xxx_messageInfo_PodSecurityPolicyReview.Merge(m, src) -} -func (m *PodSecurityPolicyReview) XXX_Size() int { - return m.Size() -} -func (m *PodSecurityPolicyReview) XXX_DiscardUnknown() { - xxx_messageInfo_PodSecurityPolicyReview.DiscardUnknown(m) -} - -var xxx_messageInfo_PodSecurityPolicyReview proto.InternalMessageInfo - -func (m *PodSecurityPolicyReviewSpec) Reset() { *m = PodSecurityPolicyReviewSpec{} } -func (*PodSecurityPolicyReviewSpec) ProtoMessage() {} -func (*PodSecurityPolicyReviewSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{4} -} -func (m *PodSecurityPolicyReviewSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PodSecurityPolicyReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *PodSecurityPolicyReviewSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_PodSecurityPolicyReviewSpec.Merge(m, src) -} -func (m *PodSecurityPolicyReviewSpec) XXX_Size() int { - return m.Size() -} -func (m *PodSecurityPolicyReviewSpec) XXX_DiscardUnknown() { - xxx_messageInfo_PodSecurityPolicyReviewSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_PodSecurityPolicyReviewSpec proto.InternalMessageInfo - -func (m *PodSecurityPolicyReviewStatus) Reset() { *m = PodSecurityPolicyReviewStatus{} } -func (*PodSecurityPolicyReviewStatus) ProtoMessage() {} -func (*PodSecurityPolicyReviewStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{5} -} -func (m *PodSecurityPolicyReviewStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PodSecurityPolicyReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *PodSecurityPolicyReviewStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_PodSecurityPolicyReviewStatus.Merge(m, src) -} -func (m *PodSecurityPolicyReviewStatus) XXX_Size() int { - return m.Size() -} -func (m *PodSecurityPolicyReviewStatus) XXX_DiscardUnknown() { - xxx_messageInfo_PodSecurityPolicyReviewStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_PodSecurityPolicyReviewStatus proto.InternalMessageInfo - -func (m *PodSecurityPolicySelfSubjectReview) Reset() { *m = PodSecurityPolicySelfSubjectReview{} } -func (*PodSecurityPolicySelfSubjectReview) ProtoMessage() {} -func (*PodSecurityPolicySelfSubjectReview) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{6} -} -func (m *PodSecurityPolicySelfSubjectReview) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PodSecurityPolicySelfSubjectReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *PodSecurityPolicySelfSubjectReview) XXX_Merge(src proto.Message) { - xxx_messageInfo_PodSecurityPolicySelfSubjectReview.Merge(m, src) -} -func (m *PodSecurityPolicySelfSubjectReview) XXX_Size() int { - return m.Size() -} -func (m *PodSecurityPolicySelfSubjectReview) XXX_DiscardUnknown() { - xxx_messageInfo_PodSecurityPolicySelfSubjectReview.DiscardUnknown(m) -} - -var xxx_messageInfo_PodSecurityPolicySelfSubjectReview proto.InternalMessageInfo - -func (m *PodSecurityPolicySelfSubjectReviewSpec) Reset() { - *m = PodSecurityPolicySelfSubjectReviewSpec{} -} -func (*PodSecurityPolicySelfSubjectReviewSpec) ProtoMessage() {} -func (*PodSecurityPolicySelfSubjectReviewSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{7} -} -func (m *PodSecurityPolicySelfSubjectReviewSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PodSecurityPolicySelfSubjectReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *PodSecurityPolicySelfSubjectReviewSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_PodSecurityPolicySelfSubjectReviewSpec.Merge(m, src) -} -func (m *PodSecurityPolicySelfSubjectReviewSpec) XXX_Size() int { - return m.Size() -} -func (m *PodSecurityPolicySelfSubjectReviewSpec) XXX_DiscardUnknown() { - xxx_messageInfo_PodSecurityPolicySelfSubjectReviewSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_PodSecurityPolicySelfSubjectReviewSpec proto.InternalMessageInfo - -func (m *PodSecurityPolicySubjectReview) Reset() { *m = PodSecurityPolicySubjectReview{} } -func (*PodSecurityPolicySubjectReview) ProtoMessage() {} -func (*PodSecurityPolicySubjectReview) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{8} -} -func (m *PodSecurityPolicySubjectReview) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PodSecurityPolicySubjectReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *PodSecurityPolicySubjectReview) XXX_Merge(src proto.Message) { - xxx_messageInfo_PodSecurityPolicySubjectReview.Merge(m, src) -} -func (m *PodSecurityPolicySubjectReview) XXX_Size() int { - return m.Size() -} -func (m *PodSecurityPolicySubjectReview) XXX_DiscardUnknown() { - xxx_messageInfo_PodSecurityPolicySubjectReview.DiscardUnknown(m) -} - -var xxx_messageInfo_PodSecurityPolicySubjectReview proto.InternalMessageInfo - -func (m *PodSecurityPolicySubjectReviewSpec) Reset() { *m = PodSecurityPolicySubjectReviewSpec{} } -func (*PodSecurityPolicySubjectReviewSpec) ProtoMessage() {} -func (*PodSecurityPolicySubjectReviewSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{9} -} -func (m *PodSecurityPolicySubjectReviewSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PodSecurityPolicySubjectReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *PodSecurityPolicySubjectReviewSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_PodSecurityPolicySubjectReviewSpec.Merge(m, src) -} -func (m *PodSecurityPolicySubjectReviewSpec) XXX_Size() int { - return m.Size() -} -func (m *PodSecurityPolicySubjectReviewSpec) XXX_DiscardUnknown() { - xxx_messageInfo_PodSecurityPolicySubjectReviewSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_PodSecurityPolicySubjectReviewSpec proto.InternalMessageInfo - -func (m *PodSecurityPolicySubjectReviewStatus) Reset() { *m = PodSecurityPolicySubjectReviewStatus{} } -func (*PodSecurityPolicySubjectReviewStatus) ProtoMessage() {} -func (*PodSecurityPolicySubjectReviewStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{10} -} -func (m *PodSecurityPolicySubjectReviewStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *PodSecurityPolicySubjectReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *PodSecurityPolicySubjectReviewStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_PodSecurityPolicySubjectReviewStatus.Merge(m, src) -} -func (m *PodSecurityPolicySubjectReviewStatus) XXX_Size() int { - return m.Size() -} -func (m *PodSecurityPolicySubjectReviewStatus) XXX_DiscardUnknown() { - xxx_messageInfo_PodSecurityPolicySubjectReviewStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_PodSecurityPolicySubjectReviewStatus proto.InternalMessageInfo - -func (m *RangeAllocation) Reset() { *m = RangeAllocation{} } -func (*RangeAllocation) ProtoMessage() {} -func (*RangeAllocation) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{11} -} -func (m *RangeAllocation) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RangeAllocation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RangeAllocation) XXX_Merge(src proto.Message) { - xxx_messageInfo_RangeAllocation.Merge(m, src) -} -func (m *RangeAllocation) XXX_Size() int { - return m.Size() -} -func (m *RangeAllocation) XXX_DiscardUnknown() { - xxx_messageInfo_RangeAllocation.DiscardUnknown(m) -} - -var xxx_messageInfo_RangeAllocation proto.InternalMessageInfo - -func (m *RangeAllocationList) Reset() { *m = RangeAllocationList{} } -func (*RangeAllocationList) ProtoMessage() {} -func (*RangeAllocationList) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{12} -} -func (m *RangeAllocationList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RangeAllocationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RangeAllocationList) XXX_Merge(src proto.Message) { - xxx_messageInfo_RangeAllocationList.Merge(m, src) -} -func (m *RangeAllocationList) XXX_Size() int { - return m.Size() -} -func (m *RangeAllocationList) XXX_DiscardUnknown() { - xxx_messageInfo_RangeAllocationList.DiscardUnknown(m) -} - -var xxx_messageInfo_RangeAllocationList proto.InternalMessageInfo - -func (m *RunAsUserStrategyOptions) Reset() { *m = RunAsUserStrategyOptions{} } -func (*RunAsUserStrategyOptions) ProtoMessage() {} -func (*RunAsUserStrategyOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{13} -} -func (m *RunAsUserStrategyOptions) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *RunAsUserStrategyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *RunAsUserStrategyOptions) XXX_Merge(src proto.Message) { - xxx_messageInfo_RunAsUserStrategyOptions.Merge(m, src) -} -func (m *RunAsUserStrategyOptions) XXX_Size() int { - return m.Size() -} -func (m *RunAsUserStrategyOptions) XXX_DiscardUnknown() { - xxx_messageInfo_RunAsUserStrategyOptions.DiscardUnknown(m) -} - -var xxx_messageInfo_RunAsUserStrategyOptions proto.InternalMessageInfo - -func (m *SELinuxContextStrategyOptions) Reset() { *m = SELinuxContextStrategyOptions{} } -func (*SELinuxContextStrategyOptions) ProtoMessage() {} -func (*SELinuxContextStrategyOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{14} -} -func (m *SELinuxContextStrategyOptions) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SELinuxContextStrategyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SELinuxContextStrategyOptions) XXX_Merge(src proto.Message) { - xxx_messageInfo_SELinuxContextStrategyOptions.Merge(m, src) -} -func (m *SELinuxContextStrategyOptions) XXX_Size() int { - return m.Size() -} -func (m *SELinuxContextStrategyOptions) XXX_DiscardUnknown() { - xxx_messageInfo_SELinuxContextStrategyOptions.DiscardUnknown(m) -} - -var xxx_messageInfo_SELinuxContextStrategyOptions proto.InternalMessageInfo - -func (m *SecurityContextConstraints) Reset() { *m = SecurityContextConstraints{} } -func (*SecurityContextConstraints) ProtoMessage() {} -func (*SecurityContextConstraints) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{15} -} -func (m *SecurityContextConstraints) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SecurityContextConstraints) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SecurityContextConstraints) XXX_Merge(src proto.Message) { - xxx_messageInfo_SecurityContextConstraints.Merge(m, src) -} -func (m *SecurityContextConstraints) XXX_Size() int { - return m.Size() -} -func (m *SecurityContextConstraints) XXX_DiscardUnknown() { - xxx_messageInfo_SecurityContextConstraints.DiscardUnknown(m) -} - -var xxx_messageInfo_SecurityContextConstraints proto.InternalMessageInfo - -func (m *SecurityContextConstraintsList) Reset() { *m = SecurityContextConstraintsList{} } -func (*SecurityContextConstraintsList) ProtoMessage() {} -func (*SecurityContextConstraintsList) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{16} -} -func (m *SecurityContextConstraintsList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SecurityContextConstraintsList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SecurityContextConstraintsList) XXX_Merge(src proto.Message) { - xxx_messageInfo_SecurityContextConstraintsList.Merge(m, src) -} -func (m *SecurityContextConstraintsList) XXX_Size() int { - return m.Size() -} -func (m *SecurityContextConstraintsList) XXX_DiscardUnknown() { - xxx_messageInfo_SecurityContextConstraintsList.DiscardUnknown(m) -} - -var xxx_messageInfo_SecurityContextConstraintsList proto.InternalMessageInfo - -func (m *ServiceAccountPodSecurityPolicyReviewStatus) Reset() { - *m = ServiceAccountPodSecurityPolicyReviewStatus{} -} -func (*ServiceAccountPodSecurityPolicyReviewStatus) ProtoMessage() {} -func (*ServiceAccountPodSecurityPolicyReviewStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{17} -} -func (m *ServiceAccountPodSecurityPolicyReviewStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ServiceAccountPodSecurityPolicyReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ServiceAccountPodSecurityPolicyReviewStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_ServiceAccountPodSecurityPolicyReviewStatus.Merge(m, src) -} -func (m *ServiceAccountPodSecurityPolicyReviewStatus) XXX_Size() int { - return m.Size() -} -func (m *ServiceAccountPodSecurityPolicyReviewStatus) XXX_DiscardUnknown() { - xxx_messageInfo_ServiceAccountPodSecurityPolicyReviewStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_ServiceAccountPodSecurityPolicyReviewStatus proto.InternalMessageInfo - -func (m *SupplementalGroupsStrategyOptions) Reset() { *m = SupplementalGroupsStrategyOptions{} } -func (*SupplementalGroupsStrategyOptions) ProtoMessage() {} -func (*SupplementalGroupsStrategyOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_af65d9655aa67551, []int{18} -} -func (m *SupplementalGroupsStrategyOptions) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *SupplementalGroupsStrategyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *SupplementalGroupsStrategyOptions) XXX_Merge(src proto.Message) { - xxx_messageInfo_SupplementalGroupsStrategyOptions.Merge(m, src) -} -func (m *SupplementalGroupsStrategyOptions) XXX_Size() int { - return m.Size() -} -func (m *SupplementalGroupsStrategyOptions) XXX_DiscardUnknown() { - xxx_messageInfo_SupplementalGroupsStrategyOptions.DiscardUnknown(m) -} - -var xxx_messageInfo_SupplementalGroupsStrategyOptions proto.InternalMessageInfo - -func init() { - proto.RegisterType((*AllowedFlexVolume)(nil), "github.com.openshift.api.security.v1.AllowedFlexVolume") - proto.RegisterType((*FSGroupStrategyOptions)(nil), "github.com.openshift.api.security.v1.FSGroupStrategyOptions") - proto.RegisterType((*IDRange)(nil), "github.com.openshift.api.security.v1.IDRange") - proto.RegisterType((*PodSecurityPolicyReview)(nil), "github.com.openshift.api.security.v1.PodSecurityPolicyReview") - proto.RegisterType((*PodSecurityPolicyReviewSpec)(nil), "github.com.openshift.api.security.v1.PodSecurityPolicyReviewSpec") - proto.RegisterType((*PodSecurityPolicyReviewStatus)(nil), "github.com.openshift.api.security.v1.PodSecurityPolicyReviewStatus") - proto.RegisterType((*PodSecurityPolicySelfSubjectReview)(nil), "github.com.openshift.api.security.v1.PodSecurityPolicySelfSubjectReview") - proto.RegisterType((*PodSecurityPolicySelfSubjectReviewSpec)(nil), "github.com.openshift.api.security.v1.PodSecurityPolicySelfSubjectReviewSpec") - proto.RegisterType((*PodSecurityPolicySubjectReview)(nil), "github.com.openshift.api.security.v1.PodSecurityPolicySubjectReview") - proto.RegisterType((*PodSecurityPolicySubjectReviewSpec)(nil), "github.com.openshift.api.security.v1.PodSecurityPolicySubjectReviewSpec") - proto.RegisterType((*PodSecurityPolicySubjectReviewStatus)(nil), "github.com.openshift.api.security.v1.PodSecurityPolicySubjectReviewStatus") - proto.RegisterType((*RangeAllocation)(nil), "github.com.openshift.api.security.v1.RangeAllocation") - proto.RegisterType((*RangeAllocationList)(nil), "github.com.openshift.api.security.v1.RangeAllocationList") - proto.RegisterType((*RunAsUserStrategyOptions)(nil), "github.com.openshift.api.security.v1.RunAsUserStrategyOptions") - proto.RegisterType((*SELinuxContextStrategyOptions)(nil), "github.com.openshift.api.security.v1.SELinuxContextStrategyOptions") - proto.RegisterType((*SecurityContextConstraints)(nil), "github.com.openshift.api.security.v1.SecurityContextConstraints") - proto.RegisterType((*SecurityContextConstraintsList)(nil), "github.com.openshift.api.security.v1.SecurityContextConstraintsList") - proto.RegisterType((*ServiceAccountPodSecurityPolicyReviewStatus)(nil), "github.com.openshift.api.security.v1.ServiceAccountPodSecurityPolicyReviewStatus") - proto.RegisterType((*SupplementalGroupsStrategyOptions)(nil), "github.com.openshift.api.security.v1.SupplementalGroupsStrategyOptions") -} - -func init() { - proto.RegisterFile("github.com/openshift/api/security/v1/generated.proto", fileDescriptor_af65d9655aa67551) -} - -var fileDescriptor_af65d9655aa67551 = []byte{ - // 1748 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xcd, 0x6f, 0x1c, 0x49, - 0x15, 0x77, 0x7b, 0xfc, 0x35, 0x65, 0xc7, 0x1f, 0x65, 0xc7, 0xe9, 0x35, 0xeb, 0x19, 0xd3, 0x0e, - 0x2b, 0x0b, 0xd8, 0x19, 0x1c, 0x2d, 0x6c, 0xd0, 0xb2, 0xd1, 0x4e, 0x7b, 0xd6, 0x59, 0x23, 0x27, - 0x99, 0xad, 0x59, 0x47, 0x28, 0x8a, 0x10, 0xe5, 0x9e, 0x9a, 0x71, 0xc5, 0xfd, 0x45, 0x57, 0xf5, - 0xc4, 0x23, 0x2e, 0x91, 0xb8, 0x70, 0x44, 0xe2, 0x8a, 0x38, 0xc3, 0x3f, 0xc0, 0x05, 0x01, 0xd7, - 0x48, 0x20, 0x91, 0x13, 0xca, 0x69, 0x44, 0x06, 0x71, 0xe2, 0xc8, 0x2d, 0x27, 0x54, 0x35, 0x35, - 0x1f, 0xdd, 0xd3, 0x3d, 0x9e, 0x84, 0x24, 0xe2, 0x36, 0xfd, 0x3e, 0x7e, 0xbf, 0xf7, 0x5e, 0xbf, - 0x7e, 0xf5, 0x6a, 0xc0, 0x47, 0x0d, 0xca, 0xcf, 0xc2, 0xd3, 0x82, 0xe5, 0x39, 0x45, 0xcf, 0x27, - 0x2e, 0x3b, 0xa3, 0x75, 0x5e, 0xc4, 0x3e, 0x2d, 0x32, 0x62, 0x85, 0x01, 0xe5, 0xad, 0x62, 0x73, - 0xbf, 0xd8, 0x20, 0x2e, 0x09, 0x30, 0x27, 0xb5, 0x82, 0x1f, 0x78, 0xdc, 0x83, 0xd7, 0x07, 0x5e, - 0x85, 0xbe, 0x57, 0x01, 0xfb, 0xb4, 0xd0, 0xf3, 0x2a, 0x34, 0xf7, 0xb7, 0x3e, 0x1c, 0xc2, 0x6e, - 0x78, 0x0d, 0xaf, 0x28, 0x9d, 0x4f, 0xc3, 0xba, 0x7c, 0x92, 0x0f, 0xf2, 0x57, 0x17, 0x74, 0xcb, - 0x38, 0xbf, 0xc9, 0x0a, 0xd4, 0x93, 0xe4, 0x96, 0x17, 0x90, 0x04, 0xe2, 0xad, 0x8f, 0x06, 0x36, - 0x0e, 0xb6, 0xce, 0xa8, 0x4b, 0x82, 0x56, 0xd1, 0x3f, 0x6f, 0x08, 0x01, 0x2b, 0x3a, 0x84, 0xe3, - 0x24, 0xaf, 0xef, 0xa5, 0x79, 0x05, 0xa1, 0xcb, 0xa9, 0x43, 0x8a, 0xcc, 0x3a, 0x23, 0x0e, 0x8e, - 0xfb, 0x19, 0x9f, 0x80, 0xb5, 0x92, 0x6d, 0x7b, 0x8f, 0x49, 0xed, 0xd0, 0x26, 0x17, 0xf7, 0x3d, - 0x3b, 0x74, 0x08, 0xfc, 0x00, 0xcc, 0xd5, 0x02, 0xda, 0x24, 0x81, 0xae, 0xed, 0x68, 0x7b, 0x59, - 0x73, 0xf9, 0x69, 0x3b, 0x3f, 0xd5, 0x69, 0xe7, 0xe7, 0xca, 0x52, 0x8a, 0x94, 0xd6, 0xf8, 0xad, - 0x06, 0x36, 0x0f, 0xab, 0xb7, 0x03, 0x2f, 0xf4, 0xab, 0x5c, 0xa0, 0x36, 0x5a, 0xf7, 0x7c, 0x4e, - 0x3d, 0x97, 0xc1, 0x8f, 0xc1, 0x0c, 0x6f, 0xf9, 0x44, 0x01, 0xec, 0x2a, 0x80, 0x99, 0xaf, 0x5a, - 0x3e, 0x79, 0xd9, 0xce, 0xaf, 0xc7, 0xbc, 0x84, 0x18, 0x49, 0x07, 0x78, 0x02, 0xe6, 0x02, 0xec, - 0x36, 0x08, 0xd3, 0xa7, 0x77, 0x32, 0x7b, 0x8b, 0x37, 0x3e, 0x2c, 0x4c, 0xf2, 0x22, 0x0a, 0x47, - 0x65, 0x24, 0xbc, 0x06, 0xa1, 0xca, 0x47, 0x86, 0x14, 0x98, 0x71, 0x1b, 0xcc, 0x2b, 0x13, 0xb8, - 0x0d, 0x32, 0x0e, 0x75, 0x65, 0x64, 0x19, 0x73, 0x51, 0xd9, 0x67, 0xee, 0x50, 0x17, 0x09, 0xb9, - 0x54, 0xe3, 0x0b, 0x7d, 0x3a, 0xa6, 0xc6, 0x17, 0x48, 0xc8, 0x8d, 0x7f, 0x6b, 0xe0, 0x5a, 0xc5, - 0xab, 0x55, 0x15, 0x77, 0xc5, 0xb3, 0xa9, 0xd5, 0x42, 0xa4, 0x49, 0xc9, 0x63, 0x68, 0x81, 0x19, - 0xe6, 0x13, 0x4b, 0x42, 0x2f, 0xde, 0x28, 0x4d, 0x16, 0x79, 0x0a, 0x58, 0xd5, 0x27, 0x96, 0xb9, - 0xd4, 0xab, 0x9b, 0x78, 0x42, 0x12, 0x1c, 0x9e, 0x83, 0x39, 0xc6, 0x31, 0x0f, 0x99, 0x0c, 0x71, - 0xf1, 0xc6, 0xc1, 0xff, 0x46, 0x23, 0xa1, 0x06, 0x65, 0xeb, 0x3e, 0x23, 0x45, 0x61, 0xfc, 0x41, - 0x03, 0x5f, 0x1b, 0x13, 0x20, 0xfc, 0x12, 0x2c, 0x70, 0xe2, 0xf8, 0x36, 0xe6, 0x44, 0x65, 0xbd, - 0x5b, 0xe8, 0x76, 0xa2, 0x0c, 0x40, 0xf4, 0xb8, 0x22, 0xff, 0x4a, 0x99, 0xc9, 0xbc, 0x56, 0x15, - 0xdd, 0x42, 0x4f, 0x8a, 0xfa, 0x30, 0xf0, 0x08, 0xac, 0x33, 0x12, 0x34, 0xa9, 0x45, 0x4a, 0x96, - 0xe5, 0x85, 0x2e, 0xbf, 0x8b, 0x1d, 0xd5, 0x0d, 0x59, 0xf3, 0x5a, 0xa7, 0x9d, 0x5f, 0xaf, 0x8e, - 0xaa, 0x51, 0x92, 0x8f, 0xf1, 0x17, 0x0d, 0x6c, 0x8f, 0xcd, 0x1b, 0xfe, 0x4e, 0x03, 0x9b, 0xb8, - 0xdb, 0xff, 0x51, 0x54, 0xa6, 0x6b, 0xb2, 0xfd, 0xbe, 0x9c, 0xac, 0xba, 0x51, 0xe7, 0xf1, 0xb5, - 0xce, 0xa9, 0xe4, 0x37, 0x4b, 0x89, 0xc4, 0x28, 0x25, 0x20, 0xe3, 0x17, 0xd3, 0xc0, 0x18, 0x41, - 0xae, 0x12, 0xbb, 0x5e, 0x0d, 0x4f, 0x1f, 0x11, 0x8b, 0xab, 0x26, 0x74, 0x23, 0x4d, 0x78, 0xfc, - 0x9a, 0xdd, 0x31, 0x82, 0x9b, 0xda, 0x8f, 0x41, 0xac, 0x1f, 0x7f, 0xf8, 0xba, 0x8c, 0x11, 0xb6, - 0xf1, 0x6d, 0xf9, 0x33, 0xf0, 0xc1, 0x64, 0x11, 0xbf, 0x85, 0x06, 0x35, 0x9e, 0x4c, 0x83, 0xdc, - 0xf8, 0xe8, 0xe1, 0xa3, 0xc8, 0x3b, 0xf8, 0xe2, 0x8d, 0x54, 0xe4, 0xff, 0xa9, 0xfe, 0x7f, 0xd4, - 0x92, 0x5a, 0xf1, 0x1d, 0x14, 0x1f, 0xee, 0x80, 0x99, 0x90, 0x91, 0x40, 0xe6, 0x9a, 0x1d, 0xd4, - 0xe3, 0x84, 0x91, 0x00, 0x49, 0x0d, 0x34, 0xc0, 0x5c, 0x43, 0x9c, 0x2d, 0x4c, 0xcf, 0xc8, 0x91, - 0x01, 0x44, 0xfc, 0xf2, 0xb4, 0x61, 0x48, 0x69, 0x8c, 0xff, 0x68, 0xe0, 0xfa, 0x24, 0x05, 0x80, - 0x15, 0x90, 0x55, 0x5f, 0xa3, 0xd9, 0x1a, 0x97, 0xc2, 0x3d, 0xe5, 0x5a, 0x27, 0x01, 0x71, 0x2d, - 0x62, 0x5e, 0xe9, 0xb4, 0xf3, 0xd9, 0x52, 0xcf, 0x13, 0x0d, 0x40, 0xc4, 0xd9, 0x1a, 0x10, 0xcc, - 0x3c, 0x57, 0xa5, 0x30, 0x38, 0xb0, 0xa4, 0x14, 0x29, 0x6d, 0xa4, 0x76, 0x99, 0x37, 0xd3, 0xb8, - 0xbf, 0xd7, 0xc0, 0x8a, 0x3c, 0x02, 0x45, 0x60, 0x16, 0x16, 0x07, 0x35, 0xfc, 0x09, 0x58, 0x10, - 0x2b, 0x45, 0x0d, 0x73, 0xac, 0xf2, 0xfb, 0xce, 0x10, 0x4d, 0x7f, 0x95, 0x28, 0xf8, 0xe7, 0x0d, - 0x21, 0x60, 0x05, 0x61, 0x3d, 0xc8, 0xf8, 0x0e, 0xe1, 0xd8, 0x84, 0x8a, 0x13, 0x0c, 0x64, 0xa8, - 0x8f, 0x0a, 0x77, 0xc1, 0xac, 0x3c, 0x83, 0x55, 0xbe, 0x57, 0x94, 0xf1, 0xac, 0x8c, 0x04, 0x75, - 0x75, 0xf0, 0x7d, 0x30, 0x23, 0x43, 0x10, 0x99, 0x2e, 0x99, 0x0b, 0xe2, 0x95, 0x96, 0x31, 0xc7, - 0x48, 0x4a, 0x8d, 0xbf, 0x69, 0x60, 0x3d, 0x16, 0xf8, 0x31, 0x65, 0x1c, 0x3e, 0x1c, 0x09, 0xbe, - 0x30, 0x59, 0xf0, 0xc2, 0x5b, 0x86, 0xde, 0x2f, 0x57, 0x4f, 0x32, 0x14, 0xf8, 0x03, 0x30, 0x4b, - 0x39, 0x71, 0x7a, 0x8b, 0xc8, 0x77, 0x27, 0xfb, 0xae, 0x62, 0x71, 0x0e, 0xf2, 0x3d, 0x12, 0x58, - 0xa8, 0x0b, 0x69, 0xfc, 0x5d, 0x03, 0x3a, 0x0a, 0xdd, 0x12, 0x13, 0x8d, 0x1b, 0xdf, 0x9d, 0xbe, - 0x1f, 0xd9, 0x9d, 0xbe, 0x11, 0xdb, 0x9d, 0xae, 0x8e, 0xf8, 0x0d, 0x6d, 0x4f, 0xef, 0x81, 0x4c, - 0x48, 0x6b, 0x6a, 0x79, 0x99, 0x17, 0x8b, 0xcb, 0xc9, 0x51, 0x19, 0x09, 0x19, 0xdc, 0x07, 0x8b, - 0x21, 0xad, 0xc9, 0xf0, 0xee, 0x50, 0x57, 0x56, 0x3a, 0x63, 0xae, 0x74, 0xda, 0xf9, 0xc5, 0x13, - 0xb5, 0x19, 0x89, 0x15, 0x68, 0xd8, 0x26, 0xe2, 0x82, 0x2f, 0xf4, 0x99, 0x04, 0x17, 0x7c, 0x81, - 0x86, 0x6d, 0x8c, 0x3f, 0x6b, 0x60, 0xbb, 0xfa, 0xf9, 0x31, 0x75, 0xc3, 0x8b, 0x03, 0xcf, 0xe5, - 0xe4, 0x82, 0xc7, 0xb3, 0xbb, 0x15, 0xc9, 0xee, 0x9b, 0xb1, 0xec, 0xb6, 0x92, 0x9d, 0x87, 0x52, - 0xfc, 0x31, 0x58, 0x66, 0x44, 0xda, 0x28, 0x44, 0x35, 0xf7, 0x8c, 0xa4, 0xcf, 0x43, 0xa1, 0x29, - 0x4b, 0x13, 0x76, 0xda, 0xf9, 0xe5, 0xa8, 0x0c, 0xc5, 0xd0, 0x8c, 0x5f, 0xaf, 0x81, 0xad, 0xde, - 0x60, 0x50, 0x51, 0x1c, 0x78, 0x2e, 0xe3, 0x01, 0xa6, 0x2e, 0x67, 0xef, 0xe0, 0x83, 0xd9, 0x03, - 0x0b, 0x7e, 0x40, 0x3d, 0xc1, 0x2f, 0x53, 0x9b, 0x35, 0x97, 0x44, 0x87, 0x56, 0x94, 0x0c, 0xf5, - 0xb5, 0xf0, 0x21, 0xd0, 0xe5, 0x60, 0xa9, 0x04, 0xb4, 0x49, 0x6d, 0xd2, 0x20, 0x35, 0x11, 0x30, - 0x16, 0x01, 0xc8, 0xf7, 0xbb, 0x60, 0xee, 0x28, 0x26, 0xbd, 0x94, 0x62, 0x87, 0x52, 0x11, 0x20, - 0x03, 0x9b, 0x35, 0x52, 0xc7, 0xa1, 0xcd, 0x4b, 0xb5, 0xda, 0x01, 0xf6, 0xf1, 0x29, 0xb5, 0x29, - 0xa7, 0x84, 0xe9, 0x33, 0x72, 0xb0, 0x7e, 0x22, 0x76, 0x98, 0x72, 0xa2, 0xc5, 0xcb, 0x76, 0x7e, - 0x7b, 0xf4, 0xaa, 0x53, 0xe8, 0x9b, 0xb4, 0x50, 0x0a, 0x34, 0x6c, 0x01, 0x3d, 0x20, 0x3f, 0x0d, - 0x69, 0x40, 0x6a, 0xe5, 0xc0, 0xf3, 0x23, 0xb4, 0xb3, 0x92, 0xf6, 0x53, 0x91, 0x0e, 0x4a, 0xb1, - 0xb9, 0x9c, 0x38, 0x15, 0x1e, 0x3e, 0x02, 0xeb, 0x6a, 0x4c, 0x47, 0x58, 0xe7, 0x24, 0xeb, 0x4d, - 0xb1, 0x78, 0x96, 0x46, 0xd5, 0x97, 0x13, 0x26, 0x81, 0xf6, 0xdf, 0xdc, 0x17, 0x1e, 0xe3, 0x65, - 0x1a, 0x74, 0xef, 0x5d, 0x15, 0x3b, 0x6c, 0x50, 0x57, 0x9f, 0x4f, 0x78, 0x73, 0x09, 0x76, 0x28, - 0x15, 0x01, 0x16, 0xc1, 0x7c, 0x53, 0x3e, 0x33, 0x7d, 0x41, 0x46, 0x7f, 0xb5, 0xd3, 0xce, 0xcf, - 0x77, 0x4d, 0x44, 0xc4, 0x73, 0x87, 0x55, 0xf9, 0x41, 0xf5, 0xac, 0xe0, 0xcf, 0x35, 0x00, 0x71, - 0xfc, 0x1a, 0xc8, 0xf4, 0xab, 0x72, 0xf0, 0x7d, 0x3c, 0xd9, 0xe0, 0x1b, 0xb9, 0x46, 0x9a, 0x5b, - 0x2a, 0x05, 0x38, 0xa2, 0x62, 0x28, 0x81, 0x0e, 0x96, 0xc1, 0x6a, 0x3f, 0xa5, 0xbb, 0x84, 0x3f, - 0xf6, 0x82, 0x73, 0x3d, 0x2b, 0x8b, 0xa1, 0x2b, 0xa4, 0xd5, 0x52, 0x4c, 0x8f, 0x46, 0x3c, 0xe0, - 0x2d, 0xb0, 0xdc, 0x97, 0x55, 0xbc, 0x80, 0x33, 0x1d, 0x48, 0x8c, 0x4d, 0x85, 0xb1, 0x5c, 0x8a, - 0x68, 0x51, 0xcc, 0x1a, 0xde, 0x04, 0x4b, 0x03, 0xc9, 0x51, 0x59, 0x5f, 0x94, 0xde, 0x1b, 0xca, - 0x7b, 0xa9, 0x34, 0xa4, 0x43, 0x11, 0xcb, 0x88, 0xe7, 0x51, 0xe5, 0x40, 0x5f, 0x4a, 0xf1, 0x3c, - 0xaa, 0x1c, 0xa0, 0x88, 0x25, 0x74, 0x40, 0xbe, 0xf7, 0x3d, 0x44, 0xbe, 0xc6, 0xcf, 0x99, 0x85, - 0x6d, 0x79, 0x8e, 0xe8, 0x9b, 0x12, 0x6c, 0xb7, 0xd3, 0xce, 0xe7, 0xcb, 0xe3, 0x4d, 0xd1, 0x65, - 0x58, 0xf0, 0x47, 0xf1, 0xb9, 0x31, 0xc4, 0x73, 0x4d, 0xf2, 0xbc, 0x3f, 0x3a, 0x33, 0x86, 0x08, - 0x52, 0xbd, 0x45, 0x23, 0xf5, 0xe6, 0xa9, 0x9a, 0x9d, 0xfa, 0x95, 0x57, 0xb9, 0xa5, 0x8e, 0x3d, - 0x3a, 0x06, 0xaf, 0x30, 0x6a, 0x86, 0x62, 0x94, 0xd0, 0x03, 0xd9, 0xa0, 0x77, 0x48, 0xea, 0xcb, - 0x92, 0xff, 0xd6, 0x84, 0xa7, 0x77, 0xca, 0x99, 0x6c, 0xae, 0x29, 0xea, 0x6c, 0xdf, 0x02, 0x0d, - 0x38, 0xe0, 0xaf, 0x34, 0x00, 0x59, 0xe8, 0xfb, 0x36, 0x71, 0x88, 0xcb, 0xb1, 0xdd, 0x5d, 0x37, - 0xf5, 0x15, 0x49, 0x7d, 0x7b, 0xc2, 0xd4, 0x47, 0xfc, 0xe3, 0x31, 0xf4, 0xbf, 0xa7, 0x51, 0x53, - 0x94, 0x40, 0x0f, 0x1b, 0x60, 0xbe, 0xce, 0xe4, 0x6f, 0x7d, 0x55, 0x46, 0xf2, 0x83, 0xc9, 0x22, - 0x49, 0xfe, 0x4b, 0xc7, 0x5c, 0x51, 0xf4, 0xf3, 0x4a, 0x8f, 0x7a, 0xe8, 0xf0, 0x3e, 0xd8, 0x0c, - 0x08, 0xae, 0xdd, 0x73, 0xed, 0x16, 0xf2, 0x3c, 0x7e, 0x48, 0x6d, 0xc2, 0x5a, 0x8c, 0x13, 0x47, - 0x5f, 0x93, 0xdd, 0xd4, 0xbf, 0xf1, 0xa2, 0x44, 0x2b, 0x94, 0xe2, 0x0d, 0xf3, 0x60, 0x56, 0xac, - 0xf4, 0x4c, 0x87, 0x72, 0x8a, 0x65, 0xc5, 0x1a, 0x25, 0xea, 0xcd, 0x50, 0x57, 0x3e, 0xb4, 0xeb, - 0xaf, 0xa7, 0xed, 0xfa, 0xf0, 0x53, 0xb0, 0xc2, 0x88, 0x65, 0x79, 0x8e, 0x5f, 0x09, 0xbc, 0xba, - 0x00, 0xd7, 0x37, 0xa4, 0xf1, 0x7a, 0xa7, 0x9d, 0x5f, 0xa9, 0x46, 0x55, 0x28, 0x6e, 0x0b, 0x8f, - 0xc1, 0x86, 0x1a, 0x55, 0x27, 0x2e, 0xc3, 0x75, 0x52, 0x6d, 0x31, 0x8b, 0xdb, 0x4c, 0xd7, 0x25, - 0x86, 0xde, 0x69, 0xe7, 0x37, 0x4a, 0x09, 0x7a, 0x94, 0xe8, 0x05, 0x3f, 0x03, 0xab, 0x75, 0x2f, - 0x38, 0xa5, 0xb5, 0x1a, 0x71, 0x7b, 0x48, 0xef, 0x49, 0xa4, 0x0d, 0x31, 0xde, 0x0e, 0x63, 0x3a, - 0x34, 0x62, 0x6d, 0xfc, 0x4b, 0x03, 0xb9, 0xf4, 0xf5, 0xe4, 0x1d, 0xac, 0xc5, 0x24, 0xba, 0x16, - 0x7f, 0x36, 0xe9, 0x1f, 0x24, 0x69, 0x21, 0xa7, 0x6c, 0xc8, 0xbf, 0x99, 0x06, 0xdf, 0x7a, 0x85, - 0x7f, 0x55, 0xe0, 0x5f, 0x35, 0x70, 0xdd, 0x9f, 0xe0, 0x4a, 0xa7, 0x2a, 0xf2, 0x26, 0x6f, 0xc9, - 0xdf, 0x56, 0x09, 0x4c, 0x74, 0xa5, 0x44, 0x13, 0x45, 0x29, 0xee, 0xb9, 0x2e, 0x76, 0x48, 0xfc, - 0x9e, 0x7b, 0x17, 0x3b, 0x04, 0x49, 0x8d, 0xf1, 0x27, 0x0d, 0x7c, 0xfd, 0xd2, 0x99, 0x01, 0xcd, - 0xc8, 0xb6, 0x5d, 0x88, 0x6d, 0xdb, 0xb9, 0x74, 0x80, 0xb7, 0xfe, 0x97, 0xac, 0xb9, 0xf7, 0xf4, - 0x45, 0x6e, 0xea, 0xd9, 0x8b, 0xdc, 0xd4, 0xf3, 0x17, 0xb9, 0xa9, 0x27, 0x9d, 0x9c, 0xf6, 0xb4, - 0x93, 0xd3, 0x9e, 0x75, 0x72, 0xda, 0xf3, 0x4e, 0x4e, 0xfb, 0x47, 0x27, 0xa7, 0xfd, 0xf2, 0x9f, - 0xb9, 0xa9, 0x07, 0xd3, 0xcd, 0xfd, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x93, 0x11, 0x3a, 0xff, - 0xc2, 0x17, 0x00, 0x00, -} - -func (m *AllowedFlexVolume) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *AllowedFlexVolume) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *AllowedFlexVolume) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Driver) - copy(dAtA[i:], m.Driver) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *FSGroupStrategyOptions) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *FSGroupStrategyOptions) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *FSGroupStrategyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Ranges) > 0 { - for iNdEx := len(m.Ranges) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Ranges[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *IDRange) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *IDRange) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *IDRange) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i = encodeVarintGenerated(dAtA, i, uint64(m.Max)) - i-- - dAtA[i] = 0x10 - i = encodeVarintGenerated(dAtA, i, uint64(m.Min)) - i-- - dAtA[i] = 0x8 - return len(dAtA) - i, nil -} - -func (m *PodSecurityPolicyReview) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PodSecurityPolicyReview) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PodSecurityPolicyReview) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *PodSecurityPolicyReviewSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PodSecurityPolicyReviewSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PodSecurityPolicyReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.ServiceAccountNames) > 0 { - for iNdEx := len(m.ServiceAccountNames) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.ServiceAccountNames[iNdEx]) - copy(dAtA[i:], m.ServiceAccountNames[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceAccountNames[iNdEx]))) - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *PodSecurityPolicyReviewStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PodSecurityPolicyReviewStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PodSecurityPolicyReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.AllowedServiceAccounts) > 0 { - for iNdEx := len(m.AllowedServiceAccounts) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.AllowedServiceAccounts[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *PodSecurityPolicySelfSubjectReview) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PodSecurityPolicySelfSubjectReview) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PodSecurityPolicySelfSubjectReview) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *PodSecurityPolicySelfSubjectReviewSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PodSecurityPolicySelfSubjectReviewSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PodSecurityPolicySelfSubjectReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *PodSecurityPolicySubjectReview) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PodSecurityPolicySubjectReview) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PodSecurityPolicySubjectReview) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *PodSecurityPolicySubjectReviewSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PodSecurityPolicySubjectReviewSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PodSecurityPolicySubjectReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Groups) > 0 { - for iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Groups[iNdEx]) - copy(dAtA[i:], m.Groups[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - i -= len(m.User) - copy(dAtA[i:], m.User) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.User))) - i-- - dAtA[i] = 0x12 - { - size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *PodSecurityPolicySubjectReviewStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *PodSecurityPolicySubjectReviewStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *PodSecurityPolicySubjectReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - i -= len(m.Reason) - copy(dAtA[i:], m.Reason) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) - i-- - dAtA[i] = 0x12 - if m.AllowedBy != nil { - { - size, err := m.AllowedBy.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *RangeAllocation) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RangeAllocation) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RangeAllocation) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Data != nil { - i -= len(m.Data) - copy(dAtA[i:], m.Data) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Data))) - i-- - dAtA[i] = 0x1a - } - i -= len(m.Range) - copy(dAtA[i:], m.Range) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Range))) - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RangeAllocationList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RangeAllocationList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RangeAllocationList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *RunAsUserStrategyOptions) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RunAsUserStrategyOptions) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RunAsUserStrategyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.UIDRangeMax != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.UIDRangeMax)) - i-- - dAtA[i] = 0x20 - } - if m.UIDRangeMin != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.UIDRangeMin)) - i-- - dAtA[i] = 0x18 - } - if m.UID != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.UID)) - i-- - dAtA[i] = 0x10 - } - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SELinuxContextStrategyOptions) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SELinuxContextStrategyOptions) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SELinuxContextStrategyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.SELinuxOptions != nil { - { - size, err := m.SELinuxOptions.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SecurityContextConstraints) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SecurityContextConstraints) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SecurityContextConstraints) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.ForbiddenSysctls) > 0 { - for iNdEx := len(m.ForbiddenSysctls) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.ForbiddenSysctls[iNdEx]) - copy(dAtA[i:], m.ForbiddenSysctls[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ForbiddenSysctls[iNdEx]))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xca - } - } - if len(m.AllowedUnsafeSysctls) > 0 { - for iNdEx := len(m.AllowedUnsafeSysctls) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.AllowedUnsafeSysctls[iNdEx]) - copy(dAtA[i:], m.AllowedUnsafeSysctls[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.AllowedUnsafeSysctls[iNdEx]))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xc2 - } - } - if m.AllowPrivilegeEscalation != nil { - i-- - if *m.AllowPrivilegeEscalation { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xb8 - } - if m.DefaultAllowPrivilegeEscalation != nil { - i-- - if *m.DefaultAllowPrivilegeEscalation { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xb0 - } - if len(m.AllowedFlexVolumes) > 0 { - for iNdEx := len(m.AllowedFlexVolumes) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.AllowedFlexVolumes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xaa - } - } - if len(m.SeccompProfiles) > 0 { - for iNdEx := len(m.SeccompProfiles) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.SeccompProfiles[iNdEx]) - copy(dAtA[i:], m.SeccompProfiles[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.SeccompProfiles[iNdEx]))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xa2 - } - } - if len(m.Groups) > 0 { - for iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Groups[iNdEx]) - copy(dAtA[i:], m.Groups[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx]))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0x9a - } - } - if len(m.Users) > 0 { - for iNdEx := len(m.Users) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Users[iNdEx]) - copy(dAtA[i:], m.Users[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Users[iNdEx]))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0x92 - } - } - i-- - if m.ReadOnlyRootFilesystem { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0x88 - { - size, err := m.FSGroup.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0x82 - { - size, err := m.SupplementalGroups.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - { - size, err := m.RunAsUser.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x72 - { - size, err := m.SELinuxContext.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x6a - i-- - if m.AllowHostIPC { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x60 - i-- - if m.AllowHostPID { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x58 - i-- - if m.AllowHostPorts { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x50 - i-- - if m.AllowHostNetwork { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x48 - if len(m.Volumes) > 0 { - for iNdEx := len(m.Volumes) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Volumes[iNdEx]) - copy(dAtA[i:], m.Volumes[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Volumes[iNdEx]))) - i-- - dAtA[i] = 0x42 - } - } - i-- - if m.AllowHostDirVolumePlugin { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x38 - if len(m.AllowedCapabilities) > 0 { - for iNdEx := len(m.AllowedCapabilities) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.AllowedCapabilities[iNdEx]) - copy(dAtA[i:], m.AllowedCapabilities[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.AllowedCapabilities[iNdEx]))) - i-- - dAtA[i] = 0x32 - } - } - if len(m.RequiredDropCapabilities) > 0 { - for iNdEx := len(m.RequiredDropCapabilities) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.RequiredDropCapabilities[iNdEx]) - copy(dAtA[i:], m.RequiredDropCapabilities[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.RequiredDropCapabilities[iNdEx]))) - i-- - dAtA[i] = 0x2a - } - } - if len(m.DefaultAddCapabilities) > 0 { - for iNdEx := len(m.DefaultAddCapabilities) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.DefaultAddCapabilities[iNdEx]) - copy(dAtA[i:], m.DefaultAddCapabilities[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DefaultAddCapabilities[iNdEx]))) - i-- - dAtA[i] = 0x22 - } - } - i-- - if m.AllowPrivilegedContainer { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x18 - if m.Priority != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.Priority)) - i-- - dAtA[i] = 0x10 - } - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SecurityContextConstraintsList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SecurityContextConstraintsList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SecurityContextConstraintsList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *ServiceAccountPodSecurityPolicyReviewStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ServiceAccountPodSecurityPolicyReviewStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *ServiceAccountPodSecurityPolicyReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0x12 - { - size, err := m.PodSecurityPolicySubjectReviewStatus.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *SupplementalGroupsStrategyOptions) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SupplementalGroupsStrategyOptions) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *SupplementalGroupsStrategyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Ranges) > 0 { - for iNdEx := len(m.Ranges) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Ranges[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *AllowedFlexVolume) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Driver) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *FSGroupStrategyOptions) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Ranges) > 0 { - for _, e := range m.Ranges { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *IDRange) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - n += 1 + sovGenerated(uint64(m.Min)) - n += 1 + sovGenerated(uint64(m.Max)) - return n -} - -func (m *PodSecurityPolicyReview) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *PodSecurityPolicyReviewSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.ServiceAccountNames) > 0 { - for _, s := range m.ServiceAccountNames { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *PodSecurityPolicyReviewStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.AllowedServiceAccounts) > 0 { - for _, e := range m.AllowedServiceAccounts { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *PodSecurityPolicySelfSubjectReview) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *PodSecurityPolicySelfSubjectReviewSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *PodSecurityPolicySubjectReview) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *PodSecurityPolicySubjectReviewSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.User) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Groups) > 0 { - for _, s := range m.Groups { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *PodSecurityPolicySubjectReviewStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.AllowedBy != nil { - l = m.AllowedBy.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - l = len(m.Reason) - n += 1 + l + sovGenerated(uint64(l)) - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *RangeAllocation) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Range) - n += 1 + l + sovGenerated(uint64(l)) - if m.Data != nil { - l = len(m.Data) - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *RangeAllocationList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *RunAsUserStrategyOptions) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - if m.UID != nil { - n += 1 + sovGenerated(uint64(*m.UID)) - } - if m.UIDRangeMin != nil { - n += 1 + sovGenerated(uint64(*m.UIDRangeMin)) - } - if m.UIDRangeMax != nil { - n += 1 + sovGenerated(uint64(*m.UIDRangeMax)) - } - return n -} - -func (m *SELinuxContextStrategyOptions) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - if m.SELinuxOptions != nil { - l = m.SELinuxOptions.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *SecurityContextConstraints) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.Priority != nil { - n += 1 + sovGenerated(uint64(*m.Priority)) - } - n += 2 - if len(m.DefaultAddCapabilities) > 0 { - for _, s := range m.DefaultAddCapabilities { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.RequiredDropCapabilities) > 0 { - for _, s := range m.RequiredDropCapabilities { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.AllowedCapabilities) > 0 { - for _, s := range m.AllowedCapabilities { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - n += 2 - if len(m.Volumes) > 0 { - for _, s := range m.Volumes { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - n += 2 - n += 2 - n += 2 - n += 2 - l = m.SELinuxContext.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.RunAsUser.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.SupplementalGroups.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.FSGroup.Size() - n += 2 + l + sovGenerated(uint64(l)) - n += 3 - if len(m.Users) > 0 { - for _, s := range m.Users { - l = len(s) - n += 2 + l + sovGenerated(uint64(l)) - } - } - if len(m.Groups) > 0 { - for _, s := range m.Groups { - l = len(s) - n += 2 + l + sovGenerated(uint64(l)) - } - } - if len(m.SeccompProfiles) > 0 { - for _, s := range m.SeccompProfiles { - l = len(s) - n += 2 + l + sovGenerated(uint64(l)) - } - } - if len(m.AllowedFlexVolumes) > 0 { - for _, e := range m.AllowedFlexVolumes { - l = e.Size() - n += 2 + l + sovGenerated(uint64(l)) - } - } - if m.DefaultAllowPrivilegeEscalation != nil { - n += 3 - } - if m.AllowPrivilegeEscalation != nil { - n += 3 - } - if len(m.AllowedUnsafeSysctls) > 0 { - for _, s := range m.AllowedUnsafeSysctls { - l = len(s) - n += 2 + l + sovGenerated(uint64(l)) - } - } - if len(m.ForbiddenSysctls) > 0 { - for _, s := range m.ForbiddenSysctls { - l = len(s) - n += 2 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *SecurityContextConstraintsList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ServiceAccountPodSecurityPolicyReviewStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.PodSecurityPolicySubjectReviewStatus.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *SupplementalGroupsStrategyOptions) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Ranges) > 0 { - for _, e := range m.Ranges { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *AllowedFlexVolume) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&AllowedFlexVolume{`, - `Driver:` + fmt.Sprintf("%v", this.Driver) + `,`, - `}`, - }, "") - return s -} -func (this *FSGroupStrategyOptions) String() string { - if this == nil { - return "nil" - } - repeatedStringForRanges := "[]IDRange{" - for _, f := range this.Ranges { - repeatedStringForRanges += strings.Replace(strings.Replace(f.String(), "IDRange", "IDRange", 1), `&`, ``, 1) + "," - } - repeatedStringForRanges += "}" - s := strings.Join([]string{`&FSGroupStrategyOptions{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Ranges:` + repeatedStringForRanges + `,`, - `}`, - }, "") - return s -} -func (this *IDRange) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&IDRange{`, - `Min:` + fmt.Sprintf("%v", this.Min) + `,`, - `Max:` + fmt.Sprintf("%v", this.Max) + `,`, - `}`, - }, "") - return s -} -func (this *PodSecurityPolicyReview) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&PodSecurityPolicyReview{`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "PodSecurityPolicyReviewSpec", "PodSecurityPolicyReviewSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "PodSecurityPolicyReviewStatus", "PodSecurityPolicyReviewStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *PodSecurityPolicyReviewSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&PodSecurityPolicyReviewSpec{`, - `Template:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Template), "PodTemplateSpec", "v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, - `ServiceAccountNames:` + fmt.Sprintf("%v", this.ServiceAccountNames) + `,`, - `}`, - }, "") - return s -} -func (this *PodSecurityPolicyReviewStatus) String() string { - if this == nil { - return "nil" - } - repeatedStringForAllowedServiceAccounts := "[]ServiceAccountPodSecurityPolicyReviewStatus{" - for _, f := range this.AllowedServiceAccounts { - repeatedStringForAllowedServiceAccounts += strings.Replace(strings.Replace(f.String(), "ServiceAccountPodSecurityPolicyReviewStatus", "ServiceAccountPodSecurityPolicyReviewStatus", 1), `&`, ``, 1) + "," - } - repeatedStringForAllowedServiceAccounts += "}" - s := strings.Join([]string{`&PodSecurityPolicyReviewStatus{`, - `AllowedServiceAccounts:` + repeatedStringForAllowedServiceAccounts + `,`, - `}`, - }, "") - return s -} -func (this *PodSecurityPolicySelfSubjectReview) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&PodSecurityPolicySelfSubjectReview{`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "PodSecurityPolicySelfSubjectReviewSpec", "PodSecurityPolicySelfSubjectReviewSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "PodSecurityPolicySubjectReviewStatus", "PodSecurityPolicySubjectReviewStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *PodSecurityPolicySelfSubjectReviewSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&PodSecurityPolicySelfSubjectReviewSpec{`, - `Template:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Template), "PodTemplateSpec", "v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *PodSecurityPolicySubjectReview) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&PodSecurityPolicySubjectReview{`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "PodSecurityPolicySubjectReviewSpec", "PodSecurityPolicySubjectReviewSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "PodSecurityPolicySubjectReviewStatus", "PodSecurityPolicySubjectReviewStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *PodSecurityPolicySubjectReviewSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&PodSecurityPolicySubjectReviewSpec{`, - `Template:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Template), "PodTemplateSpec", "v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, - `User:` + fmt.Sprintf("%v", this.User) + `,`, - `Groups:` + fmt.Sprintf("%v", this.Groups) + `,`, - `}`, - }, "") - return s -} -func (this *PodSecurityPolicySubjectReviewStatus) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&PodSecurityPolicySubjectReviewStatus{`, - `AllowedBy:` + strings.Replace(fmt.Sprintf("%v", this.AllowedBy), "ObjectReference", "v1.ObjectReference", 1) + `,`, - `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, - `Template:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Template), "PodTemplateSpec", "v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *RangeAllocation) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&RangeAllocation{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Range:` + fmt.Sprintf("%v", this.Range) + `,`, - `Data:` + valueToStringGenerated(this.Data) + `,`, - `}`, - }, "") - return s -} -func (this *RangeAllocationList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]RangeAllocation{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "RangeAllocation", "RangeAllocation", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&RangeAllocationList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *RunAsUserStrategyOptions) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&RunAsUserStrategyOptions{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `UID:` + valueToStringGenerated(this.UID) + `,`, - `UIDRangeMin:` + valueToStringGenerated(this.UIDRangeMin) + `,`, - `UIDRangeMax:` + valueToStringGenerated(this.UIDRangeMax) + `,`, - `}`, - }, "") - return s -} -func (this *SELinuxContextStrategyOptions) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&SELinuxContextStrategyOptions{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `SELinuxOptions:` + strings.Replace(fmt.Sprintf("%v", this.SELinuxOptions), "SELinuxOptions", "v1.SELinuxOptions", 1) + `,`, - `}`, - }, "") - return s -} -func (this *SecurityContextConstraints) String() string { - if this == nil { - return "nil" - } - repeatedStringForAllowedFlexVolumes := "[]AllowedFlexVolume{" - for _, f := range this.AllowedFlexVolumes { - repeatedStringForAllowedFlexVolumes += strings.Replace(strings.Replace(f.String(), "AllowedFlexVolume", "AllowedFlexVolume", 1), `&`, ``, 1) + "," - } - repeatedStringForAllowedFlexVolumes += "}" - s := strings.Join([]string{`&SecurityContextConstraints{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Priority:` + valueToStringGenerated(this.Priority) + `,`, - `AllowPrivilegedContainer:` + fmt.Sprintf("%v", this.AllowPrivilegedContainer) + `,`, - `DefaultAddCapabilities:` + fmt.Sprintf("%v", this.DefaultAddCapabilities) + `,`, - `RequiredDropCapabilities:` + fmt.Sprintf("%v", this.RequiredDropCapabilities) + `,`, - `AllowedCapabilities:` + fmt.Sprintf("%v", this.AllowedCapabilities) + `,`, - `AllowHostDirVolumePlugin:` + fmt.Sprintf("%v", this.AllowHostDirVolumePlugin) + `,`, - `Volumes:` + fmt.Sprintf("%v", this.Volumes) + `,`, - `AllowHostNetwork:` + fmt.Sprintf("%v", this.AllowHostNetwork) + `,`, - `AllowHostPorts:` + fmt.Sprintf("%v", this.AllowHostPorts) + `,`, - `AllowHostPID:` + fmt.Sprintf("%v", this.AllowHostPID) + `,`, - `AllowHostIPC:` + fmt.Sprintf("%v", this.AllowHostIPC) + `,`, - `SELinuxContext:` + strings.Replace(strings.Replace(this.SELinuxContext.String(), "SELinuxContextStrategyOptions", "SELinuxContextStrategyOptions", 1), `&`, ``, 1) + `,`, - `RunAsUser:` + strings.Replace(strings.Replace(this.RunAsUser.String(), "RunAsUserStrategyOptions", "RunAsUserStrategyOptions", 1), `&`, ``, 1) + `,`, - `SupplementalGroups:` + strings.Replace(strings.Replace(this.SupplementalGroups.String(), "SupplementalGroupsStrategyOptions", "SupplementalGroupsStrategyOptions", 1), `&`, ``, 1) + `,`, - `FSGroup:` + strings.Replace(strings.Replace(this.FSGroup.String(), "FSGroupStrategyOptions", "FSGroupStrategyOptions", 1), `&`, ``, 1) + `,`, - `ReadOnlyRootFilesystem:` + fmt.Sprintf("%v", this.ReadOnlyRootFilesystem) + `,`, - `Users:` + fmt.Sprintf("%v", this.Users) + `,`, - `Groups:` + fmt.Sprintf("%v", this.Groups) + `,`, - `SeccompProfiles:` + fmt.Sprintf("%v", this.SeccompProfiles) + `,`, - `AllowedFlexVolumes:` + repeatedStringForAllowedFlexVolumes + `,`, - `DefaultAllowPrivilegeEscalation:` + valueToStringGenerated(this.DefaultAllowPrivilegeEscalation) + `,`, - `AllowPrivilegeEscalation:` + valueToStringGenerated(this.AllowPrivilegeEscalation) + `,`, - `AllowedUnsafeSysctls:` + fmt.Sprintf("%v", this.AllowedUnsafeSysctls) + `,`, - `ForbiddenSysctls:` + fmt.Sprintf("%v", this.ForbiddenSysctls) + `,`, - `}`, - }, "") - return s -} -func (this *SecurityContextConstraintsList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]SecurityContextConstraints{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "SecurityContextConstraints", "SecurityContextConstraints", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&SecurityContextConstraintsList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *ServiceAccountPodSecurityPolicyReviewStatus) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ServiceAccountPodSecurityPolicyReviewStatus{`, - `PodSecurityPolicySubjectReviewStatus:` + strings.Replace(strings.Replace(this.PodSecurityPolicySubjectReviewStatus.String(), "PodSecurityPolicySubjectReviewStatus", "PodSecurityPolicySubjectReviewStatus", 1), `&`, ``, 1) + `,`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `}`, - }, "") - return s -} -func (this *SupplementalGroupsStrategyOptions) String() string { - if this == nil { - return "nil" - } - repeatedStringForRanges := "[]IDRange{" - for _, f := range this.Ranges { - repeatedStringForRanges += strings.Replace(strings.Replace(f.String(), "IDRange", "IDRange", 1), `&`, ``, 1) + "," - } - repeatedStringForRanges += "}" - s := strings.Join([]string{`&SupplementalGroupsStrategyOptions{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Ranges:` + repeatedStringForRanges + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *AllowedFlexVolume) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: AllowedFlexVolume: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AllowedFlexVolume: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Driver", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Driver = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *FSGroupStrategyOptions) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: FSGroupStrategyOptions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: FSGroupStrategyOptions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = FSGroupStrategyType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Ranges", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Ranges = append(m.Ranges, IDRange{}) - if err := m.Ranges[len(m.Ranges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *IDRange) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: IDRange: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: IDRange: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Min", wireType) - } - m.Min = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Min |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Max", wireType) - } - m.Max = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Max |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PodSecurityPolicyReview) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PodSecurityPolicyReview: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PodSecurityPolicyReview: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PodSecurityPolicyReviewSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PodSecurityPolicyReviewSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PodSecurityPolicyReviewSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServiceAccountNames", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ServiceAccountNames = append(m.ServiceAccountNames, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PodSecurityPolicyReviewStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PodSecurityPolicyReviewStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PodSecurityPolicyReviewStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AllowedServiceAccounts", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AllowedServiceAccounts = append(m.AllowedServiceAccounts, ServiceAccountPodSecurityPolicyReviewStatus{}) - if err := m.AllowedServiceAccounts[len(m.AllowedServiceAccounts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PodSecurityPolicySelfSubjectReview) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PodSecurityPolicySelfSubjectReview: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PodSecurityPolicySelfSubjectReview: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PodSecurityPolicySelfSubjectReviewSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PodSecurityPolicySelfSubjectReviewSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PodSecurityPolicySelfSubjectReviewSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PodSecurityPolicySubjectReview) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PodSecurityPolicySubjectReview: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PodSecurityPolicySubjectReview: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PodSecurityPolicySubjectReviewSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PodSecurityPolicySubjectReviewSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PodSecurityPolicySubjectReviewSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field User", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.User = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Groups", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PodSecurityPolicySubjectReviewStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PodSecurityPolicySubjectReviewStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PodSecurityPolicySubjectReviewStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AllowedBy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.AllowedBy == nil { - m.AllowedBy = &v1.ObjectReference{} - } - if err := m.AllowedBy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Reason = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RangeAllocation) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RangeAllocation: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RangeAllocation: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Range", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Range = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) - } - var byteLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - byteLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if byteLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) - if m.Data == nil { - m.Data = []byte{} - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RangeAllocationList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RangeAllocationList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RangeAllocationList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, RangeAllocation{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RunAsUserStrategyOptions) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RunAsUserStrategyOptions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RunAsUserStrategyOptions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = RunAsUserStrategyType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field UID", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.UID = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field UIDRangeMin", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.UIDRangeMin = &v - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field UIDRangeMax", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.UIDRangeMax = &v - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SELinuxContextStrategyOptions) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SELinuxContextStrategyOptions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SELinuxContextStrategyOptions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = SELinuxContextStrategyType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SELinuxOptions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.SELinuxOptions == nil { - m.SELinuxOptions = &v1.SELinuxOptions{} - } - if err := m.SELinuxOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SecurityContextConstraints) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SecurityContextConstraints: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SecurityContextConstraints: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Priority", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Priority = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AllowPrivilegedContainer", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.AllowPrivilegedContainer = bool(v != 0) - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DefaultAddCapabilities", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DefaultAddCapabilities = append(m.DefaultAddCapabilities, k8s_io_api_core_v1.Capability(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RequiredDropCapabilities", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.RequiredDropCapabilities = append(m.RequiredDropCapabilities, k8s_io_api_core_v1.Capability(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AllowedCapabilities", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AllowedCapabilities = append(m.AllowedCapabilities, k8s_io_api_core_v1.Capability(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AllowHostDirVolumePlugin", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.AllowHostDirVolumePlugin = bool(v != 0) - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Volumes", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Volumes = append(m.Volumes, FSType(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 9: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AllowHostNetwork", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.AllowHostNetwork = bool(v != 0) - case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AllowHostPorts", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.AllowHostPorts = bool(v != 0) - case 11: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AllowHostPID", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.AllowHostPID = bool(v != 0) - case 12: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AllowHostIPC", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.AllowHostIPC = bool(v != 0) - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SELinuxContext", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.SELinuxContext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RunAsUser", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.RunAsUser.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SupplementalGroups", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.SupplementalGroups.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FSGroup", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.FSGroup.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 17: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ReadOnlyRootFilesystem", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.ReadOnlyRootFilesystem = bool(v != 0) - case 18: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Users", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Users = append(m.Users, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 19: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Groups", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 20: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SeccompProfiles", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.SeccompProfiles = append(m.SeccompProfiles, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 21: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AllowedFlexVolumes", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AllowedFlexVolumes = append(m.AllowedFlexVolumes, AllowedFlexVolume{}) - if err := m.AllowedFlexVolumes[len(m.AllowedFlexVolumes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 22: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field DefaultAllowPrivilegeEscalation", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.DefaultAllowPrivilegeEscalation = &b - case 23: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AllowPrivilegeEscalation", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.AllowPrivilegeEscalation = &b - case 24: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AllowedUnsafeSysctls", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AllowedUnsafeSysctls = append(m.AllowedUnsafeSysctls, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 25: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ForbiddenSysctls", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ForbiddenSysctls = append(m.ForbiddenSysctls, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SecurityContextConstraintsList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SecurityContextConstraintsList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SecurityContextConstraintsList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, SecurityContextConstraints{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ServiceAccountPodSecurityPolicyReviewStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ServiceAccountPodSecurityPolicyReviewStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ServiceAccountPodSecurityPolicyReviewStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PodSecurityPolicySubjectReviewStatus", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.PodSecurityPolicySubjectReviewStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SupplementalGroupsStrategyOptions) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SupplementalGroupsStrategyOptions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SupplementalGroupsStrategyOptions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = SupplementalGroupsStrategyType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Ranges", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Ranges = append(m.Ranges, IDRange{}) - if err := m.Ranges[len(m.Ranges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/vendor/github.com/openshift/api/security/v1/generated.proto b/vendor/github.com/openshift/api/security/v1/generated.proto deleted file mode 100644 index 2c1df243a40a8..0000000000000 --- a/vendor/github.com/openshift/api/security/v1/generated.proto +++ /dev/null @@ -1,351 +0,0 @@ - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = 'proto2'; - -package github.com.openshift.api.security.v1; - -import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v1"; - -// AllowedFlexVolume represents a single Flexvolume that is allowed to be used. -message AllowedFlexVolume { - // Driver is the name of the Flexvolume driver. - optional string driver = 1; -} - -// FSGroupStrategyOptions defines the strategy type and options used to create the strategy. -message FSGroupStrategyOptions { - // Type is the strategy that will dictate what FSGroup is used in the SecurityContext. - optional string type = 1; - - // Ranges are the allowed ranges of fs groups. If you would like to force a single - // fs group then supply a single range with the same start and end. - repeated IDRange ranges = 2; -} - -// IDRange provides a min/max of an allowed range of IDs. -// TODO: this could be reused for UIDs. -message IDRange { - // Min is the start of the range, inclusive. - optional int64 min = 1; - - // Max is the end of the range, inclusive. - optional int64 max = 2; -} - -// PodSecurityPolicyReview checks which service accounts (not users, since that would be cluster-wide) can create the `PodTemplateSpec` in question. -message PodSecurityPolicyReview { - // spec is the PodSecurityPolicy to check. - optional PodSecurityPolicyReviewSpec spec = 1; - - // status represents the current information/status for the PodSecurityPolicyReview. - optional PodSecurityPolicyReviewStatus status = 2; -} - -// PodSecurityPolicyReviewSpec defines specification for PodSecurityPolicyReview -message PodSecurityPolicyReviewSpec { - // template is the PodTemplateSpec to check. The template.spec.serviceAccountName field is used - // if serviceAccountNames is empty, unless the template.spec.serviceAccountName is empty, - // in which case "default" is used. - // If serviceAccountNames is specified, template.spec.serviceAccountName is ignored. - optional k8s.io.api.core.v1.PodTemplateSpec template = 1; - - // serviceAccountNames is an optional set of ServiceAccounts to run the check with. - // If serviceAccountNames is empty, the template.spec.serviceAccountName is used, - // unless it's empty, in which case "default" is used instead. - // If serviceAccountNames is specified, template.spec.serviceAccountName is ignored. - repeated string serviceAccountNames = 2; -} - -// PodSecurityPolicyReviewStatus represents the status of PodSecurityPolicyReview. -message PodSecurityPolicyReviewStatus { - // allowedServiceAccounts returns the list of service accounts in *this* namespace that have the power to create the PodTemplateSpec. - repeated ServiceAccountPodSecurityPolicyReviewStatus allowedServiceAccounts = 1; -} - -// PodSecurityPolicySelfSubjectReview checks whether this user/SA tuple can create the PodTemplateSpec -message PodSecurityPolicySelfSubjectReview { - // spec defines specification the PodSecurityPolicySelfSubjectReview. - optional PodSecurityPolicySelfSubjectReviewSpec spec = 1; - - // status represents the current information/status for the PodSecurityPolicySelfSubjectReview. - optional PodSecurityPolicySubjectReviewStatus status = 2; -} - -// PodSecurityPolicySelfSubjectReviewSpec contains specification for PodSecurityPolicySelfSubjectReview. -message PodSecurityPolicySelfSubjectReviewSpec { - // template is the PodTemplateSpec to check. - optional k8s.io.api.core.v1.PodTemplateSpec template = 1; -} - -// PodSecurityPolicySubjectReview checks whether a particular user/SA tuple can create the PodTemplateSpec. -message PodSecurityPolicySubjectReview { - // spec defines specification for the PodSecurityPolicySubjectReview. - optional PodSecurityPolicySubjectReviewSpec spec = 1; - - // status represents the current information/status for the PodSecurityPolicySubjectReview. - optional PodSecurityPolicySubjectReviewStatus status = 2; -} - -// PodSecurityPolicySubjectReviewSpec defines specification for PodSecurityPolicySubjectReview -message PodSecurityPolicySubjectReviewSpec { - // template is the PodTemplateSpec to check. If template.spec.serviceAccountName is empty it will not be defaulted. - // If its non-empty, it will be checked. - optional k8s.io.api.core.v1.PodTemplateSpec template = 1; - - // user is the user you're testing for. - // If you specify "user" but not "group", then is it interpreted as "What if user were not a member of any groups. - // If user and groups are empty, then the check is performed using *only* the serviceAccountName in the template. - optional string user = 2; - - // groups is the groups you're testing for. - repeated string groups = 3; -} - -// PodSecurityPolicySubjectReviewStatus contains information/status for PodSecurityPolicySubjectReview. -message PodSecurityPolicySubjectReviewStatus { - // allowedBy is a reference to the rule that allows the PodTemplateSpec. - // A rule can be a SecurityContextConstraint or a PodSecurityPolicy - // A `nil`, indicates that it was denied. - optional k8s.io.api.core.v1.ObjectReference allowedBy = 1; - - // A machine-readable description of why this operation is in the - // "Failure" status. If this value is empty there - // is no information available. - optional string reason = 2; - - // template is the PodTemplateSpec after the defaulting is applied. - optional k8s.io.api.core.v1.PodTemplateSpec template = 3; -} - -// RangeAllocation is used so we can easily expose a RangeAllocation typed for security group -message RangeAllocation { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // range is a string representing a unique label for a range of uids, "1000000000-2000000000/10000". - optional string range = 2; - - // data is a byte array representing the serialized state of a range allocation. It is a bitmap - // with each bit set to one to represent a range is taken. - optional bytes data = 3; -} - -// RangeAllocationList is a list of RangeAllocations objects -message RangeAllocationList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // List of RangeAllocations. - repeated RangeAllocation items = 2; -} - -// RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy. -message RunAsUserStrategyOptions { - // Type is the strategy that will dictate what RunAsUser is used in the SecurityContext. - optional string type = 1; - - // UID is the user id that containers must run as. Required for the MustRunAs strategy if not using - // namespace/service account allocated uids. - optional int64 uid = 2; - - // UIDRangeMin defines the min value for a strategy that allocates by range. - optional int64 uidRangeMin = 3; - - // UIDRangeMax defines the max value for a strategy that allocates by range. - optional int64 uidRangeMax = 4; -} - -// SELinuxContextStrategyOptions defines the strategy type and any options used to create the strategy. -message SELinuxContextStrategyOptions { - // Type is the strategy that will dictate what SELinux context is used in the SecurityContext. - optional string type = 1; - - // seLinuxOptions required to run as; required for MustRunAs - optional k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 2; -} - -// SecurityContextConstraints governs the ability to make requests that affect the SecurityContext -// that will be applied to a container. -// For historical reasons SCC was exposed under the core Kubernetes API group. -// That exposure is deprecated and will be removed in a future release - users -// should instead use the security.openshift.io group to manage -// SecurityContextConstraints. -// +kubebuilder:printcolumn:name="Priv",type=string,JSONPath=`.allowPrivilegedContainer`,description="Determines if a container can request to be run as privileged" -// +kubebuilder:printcolumn:name="Caps",type=string,JSONPath=`.allowedCapabilities`,description="A list of capabilities that can be requested to add to the container" -// +kubebuilder:printcolumn:name="SELinux",type=string,JSONPath=`.seLinuxContext.type`,description="Strategy that will dictate what labels will be set in the SecurityContext" -// +kubebuilder:printcolumn:name="RunAsUser",type=string,JSONPath=`.runAsUser.type`,description="Strategy that will dictate what RunAsUser is used in the SecurityContext" -// +kubebuilder:printcolumn:name="FSGroup",type=string,JSONPath=`.fsGroup.type`,description="Strategy that will dictate what fs group is used by the SecurityContext" -// +kubebuilder:printcolumn:name="SupGroup",type=string,JSONPath=`.supplementalGroups.type`,description="Strategy that will dictate what supplemental groups are used by the SecurityContext" -// +kubebuilder:printcolumn:name="Priority",type=string,JSONPath=`.priority`,description="Sort order of SCCs" -// +kubebuilder:printcolumn:name="ReadOnlyRootFS",type=string,JSONPath=`.readOnlyRootFilesystem`,description="Force containers to run with a read only root file system" -// +kubebuilder:printcolumn:name="Volumes",type=string,JSONPath=`.volumes`,description="White list of allowed volume plugins" -// +kubebuilder:singular=securitycontextconstraint -message SecurityContextConstraints { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Priority influences the sort order of SCCs when evaluating which SCCs to try first for - // a given pod request based on access in the Users and Groups fields. The higher the int, the - // higher priority. An unset value is considered a 0 priority. If scores - // for multiple SCCs are equal they will be sorted from most restrictive to - // least restrictive. If both priorities and restrictions are equal the - // SCCs will be sorted by name. - // +nullable - optional int32 priority = 2; - - // AllowPrivilegedContainer determines if a container can request to be run as privileged. - optional bool allowPrivilegedContainer = 3; - - // DefaultAddCapabilities is the default set of capabilities that will be added to the container - // unless the pod spec specifically drops the capability. You may not list a capabiility in both - // DefaultAddCapabilities and RequiredDropCapabilities. - // +nullable - repeated string defaultAddCapabilities = 4; - - // RequiredDropCapabilities are the capabilities that will be dropped from the container. These - // are required to be dropped and cannot be added. - // +nullable - repeated string requiredDropCapabilities = 5; - - // AllowedCapabilities is a list of capabilities that can be requested to add to the container. - // Capabilities in this field maybe added at the pod author's discretion. - // You must not list a capability in both AllowedCapabilities and RequiredDropCapabilities. - // To allow all capabilities you may use '*'. - // +nullable - repeated string allowedCapabilities = 6; - - // AllowHostDirVolumePlugin determines if the policy allow containers to use the HostDir volume plugin - // +k8s:conversion-gen=false - optional bool allowHostDirVolumePlugin = 7; - - // Volumes is a white list of allowed volume plugins. FSType corresponds directly with the field names - // of a VolumeSource (azureFile, configMap, emptyDir). To allow all volumes you may use "*". - // To allow no volumes, set to ["none"]. - // +nullable - repeated string volumes = 8; - - // AllowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all - // Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes - // is allowed in the "Volumes" field. - // +optional - // +nullable - repeated AllowedFlexVolume allowedFlexVolumes = 21; - - // AllowHostNetwork determines if the policy allows the use of HostNetwork in the pod spec. - optional bool allowHostNetwork = 9; - - // AllowHostPorts determines if the policy allows host ports in the containers. - optional bool allowHostPorts = 10; - - // AllowHostPID determines if the policy allows host pid in the containers. - optional bool allowHostPID = 11; - - // AllowHostIPC determines if the policy allows host ipc in the containers. - optional bool allowHostIPC = 12; - - // DefaultAllowPrivilegeEscalation controls the default setting for whether a - // process can gain more privileges than its parent process. - // +optional - // +nullable - optional bool defaultAllowPrivilegeEscalation = 22; - - // AllowPrivilegeEscalation determines if a pod can request to allow - // privilege escalation. If unspecified, defaults to true. - // +optional - // +nullable - optional bool allowPrivilegeEscalation = 23; - - // SELinuxContext is the strategy that will dictate what labels will be set in the SecurityContext. - // +nullable - optional SELinuxContextStrategyOptions seLinuxContext = 13; - - // RunAsUser is the strategy that will dictate what RunAsUser is used in the SecurityContext. - // +nullable - optional RunAsUserStrategyOptions runAsUser = 14; - - // SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext. - // +nullable - optional SupplementalGroupsStrategyOptions supplementalGroups = 15; - - // FSGroup is the strategy that will dictate what fs group is used by the SecurityContext. - // +nullable - optional FSGroupStrategyOptions fsGroup = 16; - - // ReadOnlyRootFilesystem when set to true will force containers to run with a read only root file - // system. If the container specifically requests to run with a non-read only root file system - // the SCC should deny the pod. - // If set to false the container may run with a read only root file system if it wishes but it - // will not be forced to. - optional bool readOnlyRootFilesystem = 17; - - // The users who have permissions to use this security context constraints - // +optional - // +nullable - repeated string users = 18; - - // The groups that have permission to use this security context constraints - // +optional - // +nullable - repeated string groups = 19; - - // SeccompProfiles lists the allowed profiles that may be set for the pod or - // container's seccomp annotations. An unset (nil) or empty value means that no profiles may - // be specifid by the pod or container. The wildcard '*' may be used to allow all profiles. When - // used to generate a value for a pod the first non-wildcard profile will be used as - // the default. - // +nullable - repeated string seccompProfiles = 20; - - // AllowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. - // Each entry is either a plain sysctl name or ends in "*" in which case it is considered - // as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. - // Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection. - // - // Examples: - // e.g. "foo/*" allows "foo/bar", "foo/baz", etc. - // e.g. "foo.*" allows "foo.bar", "foo.baz", etc. - // +optional - // +nullable - repeated string allowedUnsafeSysctls = 24; - - // ForbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. - // Each entry is either a plain sysctl name or ends in "*" in which case it is considered - // as a prefix of forbidden sysctls. Single * means all sysctls are forbidden. - // - // Examples: - // e.g. "foo/*" forbids "foo/bar", "foo/baz", etc. - // e.g. "foo.*" forbids "foo.bar", "foo.baz", etc. - // +optional - // +nullable - repeated string forbiddenSysctls = 25; -} - -// SecurityContextConstraintsList is a list of SecurityContextConstraints objects -message SecurityContextConstraintsList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // List of security context constraints. - repeated SecurityContextConstraints items = 2; -} - -// ServiceAccountPodSecurityPolicyReviewStatus represents ServiceAccount name and related review status -message ServiceAccountPodSecurityPolicyReviewStatus { - optional PodSecurityPolicySubjectReviewStatus podSecurityPolicySubjectReviewStatus = 1; - - // name contains the allowed and the denied ServiceAccount name - optional string name = 2; -} - -// SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. -message SupplementalGroupsStrategyOptions { - // Type is the strategy that will dictate what supplemental groups is used in the SecurityContext. - optional string type = 1; - - // Ranges are the allowed ranges of supplemental groups. If you would like to force a single - // supplemental group then supply a single range with the same start and end. - repeated IDRange ranges = 2; -} - diff --git a/vendor/github.com/openshift/api/security/v1/legacy.go b/vendor/github.com/openshift/api/security/v1/legacy.go deleted file mode 100644 index 34f609a07b05c..0000000000000 --- a/vendor/github.com/openshift/api/security/v1/legacy.go +++ /dev/null @@ -1,25 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - legacyGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} - legacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, corev1.AddToScheme) - DeprecatedInstallWithoutGroup = legacySchemeBuilder.AddToScheme -) - -func addLegacyKnownTypes(scheme *runtime.Scheme) error { - types := []runtime.Object{ - &SecurityContextConstraints{}, - &SecurityContextConstraintsList{}, - &PodSecurityPolicySubjectReview{}, - &PodSecurityPolicySelfSubjectReview{}, - &PodSecurityPolicyReview{}, - } - scheme.AddKnownTypes(legacyGroupVersion, types...) - return nil -} diff --git a/vendor/github.com/openshift/api/security/v1/register.go b/vendor/github.com/openshift/api/security/v1/register.go deleted file mode 100644 index 431c3b5397845..0000000000000 --- a/vendor/github.com/openshift/api/security/v1/register.go +++ /dev/null @@ -1,44 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - GroupName = "security.openshift.io" - GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, corev1.AddToScheme) - // Install is a function which adds this version to a scheme - Install = schemeBuilder.AddToScheme - - // SchemeGroupVersion generated code relies on this name - // Deprecated - SchemeGroupVersion = GroupVersion - // AddToScheme exists solely to keep the old generators creating valid code - // DEPRECATED - AddToScheme = schemeBuilder.AddToScheme -) - -// Resource generated code relies on this being here, but it logically belongs to the group -// DEPRECATED -func Resource(resource string) schema.GroupResource { - return schema.GroupResource{Group: GroupName, Resource: resource} -} - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &SecurityContextConstraints{}, - &SecurityContextConstraintsList{}, - &PodSecurityPolicySubjectReview{}, - &PodSecurityPolicySelfSubjectReview{}, - &PodSecurityPolicyReview{}, - &RangeAllocation{}, - &RangeAllocationList{}, - ) - metav1.AddToGroupVersion(scheme, GroupVersion) - return nil -} diff --git a/vendor/github.com/openshift/api/security/v1/types.go b/vendor/github.com/openshift/api/security/v1/types.go deleted file mode 100644 index 8cf82cc5db88d..0000000000000 --- a/vendor/github.com/openshift/api/security/v1/types.go +++ /dev/null @@ -1,435 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// AllowAllCapabilities can be used as a value for the -// SecurityContextConstraints.AllowAllCapabilities field and means that any -// capabilities are allowed to be requested. -var AllowAllCapabilities corev1.Capability = "*" - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// SecurityContextConstraints governs the ability to make requests that affect the SecurityContext -// that will be applied to a container. -// For historical reasons SCC was exposed under the core Kubernetes API group. -// That exposure is deprecated and will be removed in a future release - users -// should instead use the security.openshift.io group to manage -// SecurityContextConstraints. -// +kubebuilder:printcolumn:name="Priv",type=string,JSONPath=`.allowPrivilegedContainer`,description="Determines if a container can request to be run as privileged" -// +kubebuilder:printcolumn:name="Caps",type=string,JSONPath=`.allowedCapabilities`,description="A list of capabilities that can be requested to add to the container" -// +kubebuilder:printcolumn:name="SELinux",type=string,JSONPath=`.seLinuxContext.type`,description="Strategy that will dictate what labels will be set in the SecurityContext" -// +kubebuilder:printcolumn:name="RunAsUser",type=string,JSONPath=`.runAsUser.type`,description="Strategy that will dictate what RunAsUser is used in the SecurityContext" -// +kubebuilder:printcolumn:name="FSGroup",type=string,JSONPath=`.fsGroup.type`,description="Strategy that will dictate what fs group is used by the SecurityContext" -// +kubebuilder:printcolumn:name="SupGroup",type=string,JSONPath=`.supplementalGroups.type`,description="Strategy that will dictate what supplemental groups are used by the SecurityContext" -// +kubebuilder:printcolumn:name="Priority",type=string,JSONPath=`.priority`,description="Sort order of SCCs" -// +kubebuilder:printcolumn:name="ReadOnlyRootFS",type=string,JSONPath=`.readOnlyRootFilesystem`,description="Force containers to run with a read only root file system" -// +kubebuilder:printcolumn:name="Volumes",type=string,JSONPath=`.volumes`,description="White list of allowed volume plugins" -// +kubebuilder:singular=securitycontextconstraint -type SecurityContextConstraints struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Priority influences the sort order of SCCs when evaluating which SCCs to try first for - // a given pod request based on access in the Users and Groups fields. The higher the int, the - // higher priority. An unset value is considered a 0 priority. If scores - // for multiple SCCs are equal they will be sorted from most restrictive to - // least restrictive. If both priorities and restrictions are equal the - // SCCs will be sorted by name. - // +nullable - Priority *int32 `json:"priority" protobuf:"varint,2,opt,name=priority"` - - // AllowPrivilegedContainer determines if a container can request to be run as privileged. - AllowPrivilegedContainer bool `json:"allowPrivilegedContainer" protobuf:"varint,3,opt,name=allowPrivilegedContainer"` - // DefaultAddCapabilities is the default set of capabilities that will be added to the container - // unless the pod spec specifically drops the capability. You may not list a capabiility in both - // DefaultAddCapabilities and RequiredDropCapabilities. - // +nullable - DefaultAddCapabilities []corev1.Capability `json:"defaultAddCapabilities" protobuf:"bytes,4,rep,name=defaultAddCapabilities,casttype=Capability"` - // RequiredDropCapabilities are the capabilities that will be dropped from the container. These - // are required to be dropped and cannot be added. - // +nullable - RequiredDropCapabilities []corev1.Capability `json:"requiredDropCapabilities" protobuf:"bytes,5,rep,name=requiredDropCapabilities,casttype=Capability"` - // AllowedCapabilities is a list of capabilities that can be requested to add to the container. - // Capabilities in this field maybe added at the pod author's discretion. - // You must not list a capability in both AllowedCapabilities and RequiredDropCapabilities. - // To allow all capabilities you may use '*'. - // +nullable - AllowedCapabilities []corev1.Capability `json:"allowedCapabilities" protobuf:"bytes,6,rep,name=allowedCapabilities,casttype=Capability"` - // AllowHostDirVolumePlugin determines if the policy allow containers to use the HostDir volume plugin - // +k8s:conversion-gen=false - AllowHostDirVolumePlugin bool `json:"allowHostDirVolumePlugin" protobuf:"varint,7,opt,name=allowHostDirVolumePlugin"` - // Volumes is a white list of allowed volume plugins. FSType corresponds directly with the field names - // of a VolumeSource (azureFile, configMap, emptyDir). To allow all volumes you may use "*". - // To allow no volumes, set to ["none"]. - // +nullable - Volumes []FSType `json:"volumes" protobuf:"bytes,8,rep,name=volumes,casttype=FSType"` - // AllowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all - // Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes - // is allowed in the "Volumes" field. - // +optional - // +nullable - AllowedFlexVolumes []AllowedFlexVolume `json:"allowedFlexVolumes,omitempty" protobuf:"bytes,21,rep,name=allowedFlexVolumes"` - // AllowHostNetwork determines if the policy allows the use of HostNetwork in the pod spec. - AllowHostNetwork bool `json:"allowHostNetwork" protobuf:"varint,9,opt,name=allowHostNetwork"` - // AllowHostPorts determines if the policy allows host ports in the containers. - AllowHostPorts bool `json:"allowHostPorts" protobuf:"varint,10,opt,name=allowHostPorts"` - // AllowHostPID determines if the policy allows host pid in the containers. - AllowHostPID bool `json:"allowHostPID" protobuf:"varint,11,opt,name=allowHostPID"` - // AllowHostIPC determines if the policy allows host ipc in the containers. - AllowHostIPC bool `json:"allowHostIPC" protobuf:"varint,12,opt,name=allowHostIPC"` - // DefaultAllowPrivilegeEscalation controls the default setting for whether a - // process can gain more privileges than its parent process. - // +optional - // +nullable - DefaultAllowPrivilegeEscalation *bool `json:"defaultAllowPrivilegeEscalation,omitempty" protobuf:"varint,22,rep,name=defaultAllowPrivilegeEscalation"` - // AllowPrivilegeEscalation determines if a pod can request to allow - // privilege escalation. If unspecified, defaults to true. - // +optional - // +nullable - AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty" protobuf:"varint,23,rep,name=allowPrivilegeEscalation"` - // SELinuxContext is the strategy that will dictate what labels will be set in the SecurityContext. - // +nullable - SELinuxContext SELinuxContextStrategyOptions `json:"seLinuxContext,omitempty" protobuf:"bytes,13,opt,name=seLinuxContext"` - // RunAsUser is the strategy that will dictate what RunAsUser is used in the SecurityContext. - // +nullable - RunAsUser RunAsUserStrategyOptions `json:"runAsUser,omitempty" protobuf:"bytes,14,opt,name=runAsUser"` - // SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext. - // +nullable - SupplementalGroups SupplementalGroupsStrategyOptions `json:"supplementalGroups,omitempty" protobuf:"bytes,15,opt,name=supplementalGroups"` - // FSGroup is the strategy that will dictate what fs group is used by the SecurityContext. - // +nullable - FSGroup FSGroupStrategyOptions `json:"fsGroup,omitempty" protobuf:"bytes,16,opt,name=fsGroup"` - // ReadOnlyRootFilesystem when set to true will force containers to run with a read only root file - // system. If the container specifically requests to run with a non-read only root file system - // the SCC should deny the pod. - // If set to false the container may run with a read only root file system if it wishes but it - // will not be forced to. - ReadOnlyRootFilesystem bool `json:"readOnlyRootFilesystem" protobuf:"varint,17,opt,name=readOnlyRootFilesystem"` - - // The users who have permissions to use this security context constraints - // +optional - // +nullable - Users []string `json:"users" protobuf:"bytes,18,rep,name=users"` - // The groups that have permission to use this security context constraints - // +optional - // +nullable - Groups []string `json:"groups" protobuf:"bytes,19,rep,name=groups"` - - // SeccompProfiles lists the allowed profiles that may be set for the pod or - // container's seccomp annotations. An unset (nil) or empty value means that no profiles may - // be specifid by the pod or container. The wildcard '*' may be used to allow all profiles. When - // used to generate a value for a pod the first non-wildcard profile will be used as - // the default. - // +nullable - SeccompProfiles []string `json:"seccompProfiles,omitempty" protobuf:"bytes,20,opt,name=seccompProfiles"` - - // AllowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. - // Each entry is either a plain sysctl name or ends in "*" in which case it is considered - // as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. - // Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection. - // - // Examples: - // e.g. "foo/*" allows "foo/bar", "foo/baz", etc. - // e.g. "foo.*" allows "foo.bar", "foo.baz", etc. - // +optional - // +nullable - AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls,omitempty" protobuf:"bytes,24,rep,name=allowedUnsafeSysctls"` - // ForbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. - // Each entry is either a plain sysctl name or ends in "*" in which case it is considered - // as a prefix of forbidden sysctls. Single * means all sysctls are forbidden. - // - // Examples: - // e.g. "foo/*" forbids "foo/bar", "foo/baz", etc. - // e.g. "foo.*" forbids "foo.bar", "foo.baz", etc. - // +optional - // +nullable - ForbiddenSysctls []string `json:"forbiddenSysctls,omitempty" protobuf:"bytes,25,rep,name=forbiddenSysctls"` -} - -// FS Type gives strong typing to different file systems that are used by volumes. -type FSType string - -var ( - FSTypeAzureFile FSType = "azureFile" - FSTypeAzureDisk FSType = "azureDisk" - FSTypeFlocker FSType = "flocker" - FSTypeFlexVolume FSType = "flexVolume" - FSTypeHostPath FSType = "hostPath" - FSTypeEmptyDir FSType = "emptyDir" - FSTypeGCEPersistentDisk FSType = "gcePersistentDisk" - FSTypeAWSElasticBlockStore FSType = "awsElasticBlockStore" - FSTypeGitRepo FSType = "gitRepo" - FSTypeSecret FSType = "secret" - FSTypeNFS FSType = "nfs" - FSTypeISCSI FSType = "iscsi" - FSTypeGlusterfs FSType = "glusterfs" - FSTypePersistentVolumeClaim FSType = "persistentVolumeClaim" - FSTypeRBD FSType = "rbd" - FSTypeCinder FSType = "cinder" - FSTypeCephFS FSType = "cephFS" - FSTypeDownwardAPI FSType = "downwardAPI" - FSTypeFC FSType = "fc" - FSTypeConfigMap FSType = "configMap" - FSTypeVsphereVolume FSType = "vsphere" - FSTypeQuobyte FSType = "quobyte" - FSTypePhotonPersistentDisk FSType = "photonPersistentDisk" - FSProjected FSType = "projected" - FSPortworxVolume FSType = "portworxVolume" - FSScaleIO FSType = "scaleIO" - FSStorageOS FSType = "storageOS" - FSTypeCSI FSType = "csi" - FSTypeEphemeral FSType = "ephemeral" - FSTypeAll FSType = "*" - FSTypeNone FSType = "none" -) - -// AllowedFlexVolume represents a single Flexvolume that is allowed to be used. -type AllowedFlexVolume struct { - // Driver is the name of the Flexvolume driver. - Driver string `json:"driver" protobuf:"bytes,1,opt,name=driver"` -} - -// SELinuxContextStrategyOptions defines the strategy type and any options used to create the strategy. -type SELinuxContextStrategyOptions struct { - // Type is the strategy that will dictate what SELinux context is used in the SecurityContext. - Type SELinuxContextStrategyType `json:"type,omitempty" protobuf:"bytes,1,opt,name=type,casttype=SELinuxContextStrategyType"` - // seLinuxOptions required to run as; required for MustRunAs - SELinuxOptions *corev1.SELinuxOptions `json:"seLinuxOptions,omitempty" protobuf:"bytes,2,opt,name=seLinuxOptions"` -} - -// RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy. -type RunAsUserStrategyOptions struct { - // Type is the strategy that will dictate what RunAsUser is used in the SecurityContext. - Type RunAsUserStrategyType `json:"type,omitempty" protobuf:"bytes,1,opt,name=type,casttype=RunAsUserStrategyType"` - // UID is the user id that containers must run as. Required for the MustRunAs strategy if not using - // namespace/service account allocated uids. - UID *int64 `json:"uid,omitempty" protobuf:"varint,2,opt,name=uid"` - // UIDRangeMin defines the min value for a strategy that allocates by range. - UIDRangeMin *int64 `json:"uidRangeMin,omitempty" protobuf:"varint,3,opt,name=uidRangeMin"` - // UIDRangeMax defines the max value for a strategy that allocates by range. - UIDRangeMax *int64 `json:"uidRangeMax,omitempty" protobuf:"varint,4,opt,name=uidRangeMax"` -} - -// FSGroupStrategyOptions defines the strategy type and options used to create the strategy. -type FSGroupStrategyOptions struct { - // Type is the strategy that will dictate what FSGroup is used in the SecurityContext. - Type FSGroupStrategyType `json:"type,omitempty" protobuf:"bytes,1,opt,name=type,casttype=FSGroupStrategyType"` - // Ranges are the allowed ranges of fs groups. If you would like to force a single - // fs group then supply a single range with the same start and end. - Ranges []IDRange `json:"ranges,omitempty" protobuf:"bytes,2,rep,name=ranges"` -} - -// SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. -type SupplementalGroupsStrategyOptions struct { - // Type is the strategy that will dictate what supplemental groups is used in the SecurityContext. - Type SupplementalGroupsStrategyType `json:"type,omitempty" protobuf:"bytes,1,opt,name=type,casttype=SupplementalGroupsStrategyType"` - // Ranges are the allowed ranges of supplemental groups. If you would like to force a single - // supplemental group then supply a single range with the same start and end. - Ranges []IDRange `json:"ranges,omitempty" protobuf:"bytes,2,rep,name=ranges"` -} - -// IDRange provides a min/max of an allowed range of IDs. -// TODO: this could be reused for UIDs. -type IDRange struct { - // Min is the start of the range, inclusive. - Min int64 `json:"min,omitempty" protobuf:"varint,1,opt,name=min"` - // Max is the end of the range, inclusive. - Max int64 `json:"max,omitempty" protobuf:"varint,2,opt,name=max"` -} - -// SELinuxContextStrategyType denotes strategy types for generating SELinux options for a -// SecurityContext -type SELinuxContextStrategyType string - -// RunAsUserStrategyType denotes strategy types for generating RunAsUser values for a -// SecurityContext -type RunAsUserStrategyType string - -// SupplementalGroupsStrategyType denotes strategy types for determining valid supplemental -// groups for a SecurityContext. -type SupplementalGroupsStrategyType string - -// FSGroupStrategyType denotes strategy types for generating FSGroup values for a -// SecurityContext -type FSGroupStrategyType string - -const ( - // container must have SELinux labels of X applied. - SELinuxStrategyMustRunAs SELinuxContextStrategyType = "MustRunAs" - // container may make requests for any SELinux context labels. - SELinuxStrategyRunAsAny SELinuxContextStrategyType = "RunAsAny" - - // container must run as a particular uid. - RunAsUserStrategyMustRunAs RunAsUserStrategyType = "MustRunAs" - // container must run as a particular uid. - RunAsUserStrategyMustRunAsRange RunAsUserStrategyType = "MustRunAsRange" - // container must run as a non-root uid - RunAsUserStrategyMustRunAsNonRoot RunAsUserStrategyType = "MustRunAsNonRoot" - // container may make requests for any uid. - RunAsUserStrategyRunAsAny RunAsUserStrategyType = "RunAsAny" - - // container must have FSGroup of X applied. - FSGroupStrategyMustRunAs FSGroupStrategyType = "MustRunAs" - // container may make requests for any FSGroup labels. - FSGroupStrategyRunAsAny FSGroupStrategyType = "RunAsAny" - - // container must run as a particular gid. - SupplementalGroupsStrategyMustRunAs SupplementalGroupsStrategyType = "MustRunAs" - // container may make requests for any gid. - SupplementalGroupsStrategyRunAsAny SupplementalGroupsStrategyType = "RunAsAny" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// SecurityContextConstraintsList is a list of SecurityContextConstraints objects -type SecurityContextConstraintsList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // List of security context constraints. - Items []SecurityContextConstraints `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +genclient -// +genclient:onlyVerbs=create -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// PodSecurityPolicySubjectReview checks whether a particular user/SA tuple can create the PodTemplateSpec. -type PodSecurityPolicySubjectReview struct { - metav1.TypeMeta `json:",inline"` - - // spec defines specification for the PodSecurityPolicySubjectReview. - Spec PodSecurityPolicySubjectReviewSpec `json:"spec" protobuf:"bytes,1,opt,name=spec"` - - // status represents the current information/status for the PodSecurityPolicySubjectReview. - Status PodSecurityPolicySubjectReviewStatus `json:"status,omitempty" protobuf:"bytes,2,opt,name=status"` -} - -// PodSecurityPolicySubjectReviewSpec defines specification for PodSecurityPolicySubjectReview -type PodSecurityPolicySubjectReviewSpec struct { - // template is the PodTemplateSpec to check. If template.spec.serviceAccountName is empty it will not be defaulted. - // If its non-empty, it will be checked. - Template corev1.PodTemplateSpec `json:"template" protobuf:"bytes,1,opt,name=template"` - - // user is the user you're testing for. - // If you specify "user" but not "group", then is it interpreted as "What if user were not a member of any groups. - // If user and groups are empty, then the check is performed using *only* the serviceAccountName in the template. - User string `json:"user,omitempty" protobuf:"bytes,2,opt,name=user"` - - // groups is the groups you're testing for. - Groups []string `json:"groups,omitempty" protobuf:"bytes,3,rep,name=groups"` -} - -// PodSecurityPolicySubjectReviewStatus contains information/status for PodSecurityPolicySubjectReview. -type PodSecurityPolicySubjectReviewStatus struct { - // allowedBy is a reference to the rule that allows the PodTemplateSpec. - // A rule can be a SecurityContextConstraint or a PodSecurityPolicy - // A `nil`, indicates that it was denied. - AllowedBy *corev1.ObjectReference `json:"allowedBy,omitempty" protobuf:"bytes,1,opt,name=allowedBy"` - - // A machine-readable description of why this operation is in the - // "Failure" status. If this value is empty there - // is no information available. - Reason string `json:"reason,omitempty" protobuf:"bytes,2,opt,name=reason"` - - // template is the PodTemplateSpec after the defaulting is applied. - Template corev1.PodTemplateSpec `json:"template,omitempty" protobuf:"bytes,3,opt,name=template"` -} - -// +genclient -// +genclient:onlyVerbs=create -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// PodSecurityPolicySelfSubjectReview checks whether this user/SA tuple can create the PodTemplateSpec -type PodSecurityPolicySelfSubjectReview struct { - metav1.TypeMeta `json:",inline"` - - // spec defines specification the PodSecurityPolicySelfSubjectReview. - Spec PodSecurityPolicySelfSubjectReviewSpec `json:"spec" protobuf:"bytes,1,opt,name=spec"` - - // status represents the current information/status for the PodSecurityPolicySelfSubjectReview. - Status PodSecurityPolicySubjectReviewStatus `json:"status,omitempty" protobuf:"bytes,2,opt,name=status"` -} - -// PodSecurityPolicySelfSubjectReviewSpec contains specification for PodSecurityPolicySelfSubjectReview. -type PodSecurityPolicySelfSubjectReviewSpec struct { - // template is the PodTemplateSpec to check. - Template corev1.PodTemplateSpec `json:"template" protobuf:"bytes,1,opt,name=template"` -} - -// +genclient -// +genclient:onlyVerbs=create -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// PodSecurityPolicyReview checks which service accounts (not users, since that would be cluster-wide) can create the `PodTemplateSpec` in question. -type PodSecurityPolicyReview struct { - metav1.TypeMeta `json:",inline"` - - // spec is the PodSecurityPolicy to check. - Spec PodSecurityPolicyReviewSpec `json:"spec" protobuf:"bytes,1,opt,name=spec"` - - // status represents the current information/status for the PodSecurityPolicyReview. - Status PodSecurityPolicyReviewStatus `json:"status,omitempty" protobuf:"bytes,2,opt,name=status"` -} - -// PodSecurityPolicyReviewSpec defines specification for PodSecurityPolicyReview -type PodSecurityPolicyReviewSpec struct { - // template is the PodTemplateSpec to check. The template.spec.serviceAccountName field is used - // if serviceAccountNames is empty, unless the template.spec.serviceAccountName is empty, - // in which case "default" is used. - // If serviceAccountNames is specified, template.spec.serviceAccountName is ignored. - Template corev1.PodTemplateSpec `json:"template" protobuf:"bytes,1,opt,name=template"` - - // serviceAccountNames is an optional set of ServiceAccounts to run the check with. - // If serviceAccountNames is empty, the template.spec.serviceAccountName is used, - // unless it's empty, in which case "default" is used instead. - // If serviceAccountNames is specified, template.spec.serviceAccountName is ignored. - ServiceAccountNames []string `json:"serviceAccountNames,omitempty" protobuf:"bytes,2,rep,name=serviceAccountNames"` // TODO: find a way to express 'all service accounts' -} - -// PodSecurityPolicyReviewStatus represents the status of PodSecurityPolicyReview. -type PodSecurityPolicyReviewStatus struct { - // allowedServiceAccounts returns the list of service accounts in *this* namespace that have the power to create the PodTemplateSpec. - AllowedServiceAccounts []ServiceAccountPodSecurityPolicyReviewStatus `json:"allowedServiceAccounts" protobuf:"bytes,1,rep,name=allowedServiceAccounts"` -} - -// ServiceAccountPodSecurityPolicyReviewStatus represents ServiceAccount name and related review status -type ServiceAccountPodSecurityPolicyReviewStatus struct { - PodSecurityPolicySubjectReviewStatus `json:",inline" protobuf:"bytes,1,opt,name=podSecurityPolicySubjectReviewStatus"` - - // name contains the allowed and the denied ServiceAccount name - Name string `json:"name" protobuf:"bytes,2,opt,name=name"` -} - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// RangeAllocation is used so we can easily expose a RangeAllocation typed for security group -type RangeAllocation struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // range is a string representing a unique label for a range of uids, "1000000000-2000000000/10000". - Range string `json:"range" protobuf:"bytes,2,opt,name=range"` - - // data is a byte array representing the serialized state of a range allocation. It is a bitmap - // with each bit set to one to represent a range is taken. - Data []byte `json:"data" protobuf:"bytes,3,opt,name=data"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// RangeAllocationList is a list of RangeAllocations objects -type RangeAllocationList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // List of RangeAllocations. - Items []RangeAllocation `json:"items" protobuf:"bytes,2,rep,name=items"` -} diff --git a/vendor/github.com/openshift/api/security/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/security/v1/zz_generated.deepcopy.go deleted file mode 100644 index e6587b0462f11..0000000000000 --- a/vendor/github.com/openshift/api/security/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,532 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - corev1 "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 *AllowedFlexVolume) DeepCopyInto(out *AllowedFlexVolume) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedFlexVolume. -func (in *AllowedFlexVolume) DeepCopy() *AllowedFlexVolume { - if in == nil { - return nil - } - out := new(AllowedFlexVolume) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *FSGroupStrategyOptions) DeepCopyInto(out *FSGroupStrategyOptions) { - *out = *in - if in.Ranges != nil { - in, out := &in.Ranges, &out.Ranges - *out = make([]IDRange, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FSGroupStrategyOptions. -func (in *FSGroupStrategyOptions) DeepCopy() *FSGroupStrategyOptions { - if in == nil { - return nil - } - out := new(FSGroupStrategyOptions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IDRange) DeepCopyInto(out *IDRange) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IDRange. -func (in *IDRange) DeepCopy() *IDRange { - if in == nil { - return nil - } - out := new(IDRange) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PodSecurityPolicyReview) DeepCopyInto(out *PodSecurityPolicyReview) { - *out = *in - out.TypeMeta = in.TypeMeta - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicyReview. -func (in *PodSecurityPolicyReview) DeepCopy() *PodSecurityPolicyReview { - if in == nil { - return nil - } - out := new(PodSecurityPolicyReview) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *PodSecurityPolicyReview) 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 *PodSecurityPolicyReviewSpec) DeepCopyInto(out *PodSecurityPolicyReviewSpec) { - *out = *in - in.Template.DeepCopyInto(&out.Template) - if in.ServiceAccountNames != nil { - in, out := &in.ServiceAccountNames, &out.ServiceAccountNames - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicyReviewSpec. -func (in *PodSecurityPolicyReviewSpec) DeepCopy() *PodSecurityPolicyReviewSpec { - if in == nil { - return nil - } - out := new(PodSecurityPolicyReviewSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PodSecurityPolicyReviewStatus) DeepCopyInto(out *PodSecurityPolicyReviewStatus) { - *out = *in - if in.AllowedServiceAccounts != nil { - in, out := &in.AllowedServiceAccounts, &out.AllowedServiceAccounts - *out = make([]ServiceAccountPodSecurityPolicyReviewStatus, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicyReviewStatus. -func (in *PodSecurityPolicyReviewStatus) DeepCopy() *PodSecurityPolicyReviewStatus { - if in == nil { - return nil - } - out := new(PodSecurityPolicyReviewStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PodSecurityPolicySelfSubjectReview) DeepCopyInto(out *PodSecurityPolicySelfSubjectReview) { - *out = *in - out.TypeMeta = in.TypeMeta - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicySelfSubjectReview. -func (in *PodSecurityPolicySelfSubjectReview) DeepCopy() *PodSecurityPolicySelfSubjectReview { - if in == nil { - return nil - } - out := new(PodSecurityPolicySelfSubjectReview) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *PodSecurityPolicySelfSubjectReview) 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 *PodSecurityPolicySelfSubjectReviewSpec) DeepCopyInto(out *PodSecurityPolicySelfSubjectReviewSpec) { - *out = *in - in.Template.DeepCopyInto(&out.Template) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicySelfSubjectReviewSpec. -func (in *PodSecurityPolicySelfSubjectReviewSpec) DeepCopy() *PodSecurityPolicySelfSubjectReviewSpec { - if in == nil { - return nil - } - out := new(PodSecurityPolicySelfSubjectReviewSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PodSecurityPolicySubjectReview) DeepCopyInto(out *PodSecurityPolicySubjectReview) { - *out = *in - out.TypeMeta = in.TypeMeta - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicySubjectReview. -func (in *PodSecurityPolicySubjectReview) DeepCopy() *PodSecurityPolicySubjectReview { - if in == nil { - return nil - } - out := new(PodSecurityPolicySubjectReview) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *PodSecurityPolicySubjectReview) 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 *PodSecurityPolicySubjectReviewSpec) DeepCopyInto(out *PodSecurityPolicySubjectReviewSpec) { - *out = *in - in.Template.DeepCopyInto(&out.Template) - if in.Groups != nil { - in, out := &in.Groups, &out.Groups - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicySubjectReviewSpec. -func (in *PodSecurityPolicySubjectReviewSpec) DeepCopy() *PodSecurityPolicySubjectReviewSpec { - if in == nil { - return nil - } - out := new(PodSecurityPolicySubjectReviewSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PodSecurityPolicySubjectReviewStatus) DeepCopyInto(out *PodSecurityPolicySubjectReviewStatus) { - *out = *in - if in.AllowedBy != nil { - in, out := &in.AllowedBy, &out.AllowedBy - *out = new(corev1.ObjectReference) - **out = **in - } - in.Template.DeepCopyInto(&out.Template) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityPolicySubjectReviewStatus. -func (in *PodSecurityPolicySubjectReviewStatus) DeepCopy() *PodSecurityPolicySubjectReviewStatus { - if in == nil { - return nil - } - out := new(PodSecurityPolicySubjectReviewStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RangeAllocation) DeepCopyInto(out *RangeAllocation) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Data != nil { - in, out := &in.Data, &out.Data - *out = make([]byte, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RangeAllocation. -func (in *RangeAllocation) DeepCopy() *RangeAllocation { - if in == nil { - return nil - } - out := new(RangeAllocation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *RangeAllocation) 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 *RangeAllocationList) DeepCopyInto(out *RangeAllocationList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]RangeAllocation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RangeAllocationList. -func (in *RangeAllocationList) DeepCopy() *RangeAllocationList { - if in == nil { - return nil - } - out := new(RangeAllocationList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *RangeAllocationList) 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 *RunAsUserStrategyOptions) DeepCopyInto(out *RunAsUserStrategyOptions) { - *out = *in - if in.UID != nil { - in, out := &in.UID, &out.UID - *out = new(int64) - **out = **in - } - if in.UIDRangeMin != nil { - in, out := &in.UIDRangeMin, &out.UIDRangeMin - *out = new(int64) - **out = **in - } - if in.UIDRangeMax != nil { - in, out := &in.UIDRangeMax, &out.UIDRangeMax - *out = new(int64) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunAsUserStrategyOptions. -func (in *RunAsUserStrategyOptions) DeepCopy() *RunAsUserStrategyOptions { - if in == nil { - return nil - } - out := new(RunAsUserStrategyOptions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SELinuxContextStrategyOptions) DeepCopyInto(out *SELinuxContextStrategyOptions) { - *out = *in - if in.SELinuxOptions != nil { - in, out := &in.SELinuxOptions, &out.SELinuxOptions - *out = new(corev1.SELinuxOptions) - **out = **in - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SELinuxContextStrategyOptions. -func (in *SELinuxContextStrategyOptions) DeepCopy() *SELinuxContextStrategyOptions { - if in == nil { - return nil - } - out := new(SELinuxContextStrategyOptions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SecurityContextConstraints) DeepCopyInto(out *SecurityContextConstraints) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Priority != nil { - in, out := &in.Priority, &out.Priority - *out = new(int32) - **out = **in - } - if in.DefaultAddCapabilities != nil { - in, out := &in.DefaultAddCapabilities, &out.DefaultAddCapabilities - *out = make([]corev1.Capability, len(*in)) - copy(*out, *in) - } - if in.RequiredDropCapabilities != nil { - in, out := &in.RequiredDropCapabilities, &out.RequiredDropCapabilities - *out = make([]corev1.Capability, len(*in)) - copy(*out, *in) - } - if in.AllowedCapabilities != nil { - in, out := &in.AllowedCapabilities, &out.AllowedCapabilities - *out = make([]corev1.Capability, len(*in)) - copy(*out, *in) - } - if in.Volumes != nil { - in, out := &in.Volumes, &out.Volumes - *out = make([]FSType, len(*in)) - copy(*out, *in) - } - if in.AllowedFlexVolumes != nil { - in, out := &in.AllowedFlexVolumes, &out.AllowedFlexVolumes - *out = make([]AllowedFlexVolume, len(*in)) - copy(*out, *in) - } - if in.DefaultAllowPrivilegeEscalation != nil { - in, out := &in.DefaultAllowPrivilegeEscalation, &out.DefaultAllowPrivilegeEscalation - *out = new(bool) - **out = **in - } - if in.AllowPrivilegeEscalation != nil { - in, out := &in.AllowPrivilegeEscalation, &out.AllowPrivilegeEscalation - *out = new(bool) - **out = **in - } - in.SELinuxContext.DeepCopyInto(&out.SELinuxContext) - in.RunAsUser.DeepCopyInto(&out.RunAsUser) - in.SupplementalGroups.DeepCopyInto(&out.SupplementalGroups) - in.FSGroup.DeepCopyInto(&out.FSGroup) - if in.Users != nil { - in, out := &in.Users, &out.Users - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Groups != nil { - in, out := &in.Groups, &out.Groups - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.SeccompProfiles != nil { - in, out := &in.SeccompProfiles, &out.SeccompProfiles - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.AllowedUnsafeSysctls != nil { - in, out := &in.AllowedUnsafeSysctls, &out.AllowedUnsafeSysctls - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.ForbiddenSysctls != nil { - in, out := &in.ForbiddenSysctls, &out.ForbiddenSysctls - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityContextConstraints. -func (in *SecurityContextConstraints) DeepCopy() *SecurityContextConstraints { - if in == nil { - return nil - } - out := new(SecurityContextConstraints) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *SecurityContextConstraints) 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 *SecurityContextConstraintsList) DeepCopyInto(out *SecurityContextConstraintsList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]SecurityContextConstraints, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityContextConstraintsList. -func (in *SecurityContextConstraintsList) DeepCopy() *SecurityContextConstraintsList { - if in == nil { - return nil - } - out := new(SecurityContextConstraintsList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *SecurityContextConstraintsList) 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 *ServiceAccountPodSecurityPolicyReviewStatus) DeepCopyInto(out *ServiceAccountPodSecurityPolicyReviewStatus) { - *out = *in - in.PodSecurityPolicySubjectReviewStatus.DeepCopyInto(&out.PodSecurityPolicySubjectReviewStatus) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountPodSecurityPolicyReviewStatus. -func (in *ServiceAccountPodSecurityPolicyReviewStatus) DeepCopy() *ServiceAccountPodSecurityPolicyReviewStatus { - if in == nil { - return nil - } - out := new(ServiceAccountPodSecurityPolicyReviewStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SupplementalGroupsStrategyOptions) DeepCopyInto(out *SupplementalGroupsStrategyOptions) { - *out = *in - if in.Ranges != nil { - in, out := &in.Ranges, &out.Ranges - *out = make([]IDRange, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SupplementalGroupsStrategyOptions. -func (in *SupplementalGroupsStrategyOptions) DeepCopy() *SupplementalGroupsStrategyOptions { - if in == nil { - return nil - } - out := new(SupplementalGroupsStrategyOptions) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/github.com/openshift/api/security/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/security/v1/zz_generated.swagger_doc_generated.go deleted file mode 100644 index 1077c04017bab..0000000000000 --- a/vendor/github.com/openshift/api/security/v1/zz_generated.swagger_doc_generated.go +++ /dev/null @@ -1,224 +0,0 @@ -package v1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE -var map_AllowedFlexVolume = map[string]string{ - "": "AllowedFlexVolume represents a single Flexvolume that is allowed to be used.", - "driver": "Driver is the name of the Flexvolume driver.", -} - -func (AllowedFlexVolume) SwaggerDoc() map[string]string { - return map_AllowedFlexVolume -} - -var map_FSGroupStrategyOptions = map[string]string{ - "": "FSGroupStrategyOptions defines the strategy type and options used to create the strategy.", - "type": "Type is the strategy that will dictate what FSGroup is used in the SecurityContext.", - "ranges": "Ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end.", -} - -func (FSGroupStrategyOptions) SwaggerDoc() map[string]string { - return map_FSGroupStrategyOptions -} - -var map_IDRange = map[string]string{ - "": "IDRange provides a min/max of an allowed range of IDs.", - "min": "Min is the start of the range, inclusive.", - "max": "Max is the end of the range, inclusive.", -} - -func (IDRange) SwaggerDoc() map[string]string { - return map_IDRange -} - -var map_PodSecurityPolicyReview = map[string]string{ - "": "PodSecurityPolicyReview checks which service accounts (not users, since that would be cluster-wide) can create the `PodTemplateSpec` in question.", - "spec": "spec is the PodSecurityPolicy to check.", - "status": "status represents the current information/status for the PodSecurityPolicyReview.", -} - -func (PodSecurityPolicyReview) SwaggerDoc() map[string]string { - return map_PodSecurityPolicyReview -} - -var map_PodSecurityPolicyReviewSpec = map[string]string{ - "": "PodSecurityPolicyReviewSpec defines specification for PodSecurityPolicyReview", - "template": "template is the PodTemplateSpec to check. The template.spec.serviceAccountName field is used if serviceAccountNames is empty, unless the template.spec.serviceAccountName is empty, in which case \"default\" is used. If serviceAccountNames is specified, template.spec.serviceAccountName is ignored.", - "serviceAccountNames": "serviceAccountNames is an optional set of ServiceAccounts to run the check with. If serviceAccountNames is empty, the template.spec.serviceAccountName is used, unless it's empty, in which case \"default\" is used instead. If serviceAccountNames is specified, template.spec.serviceAccountName is ignored.", -} - -func (PodSecurityPolicyReviewSpec) SwaggerDoc() map[string]string { - return map_PodSecurityPolicyReviewSpec -} - -var map_PodSecurityPolicyReviewStatus = map[string]string{ - "": "PodSecurityPolicyReviewStatus represents the status of PodSecurityPolicyReview.", - "allowedServiceAccounts": "allowedServiceAccounts returns the list of service accounts in *this* namespace that have the power to create the PodTemplateSpec.", -} - -func (PodSecurityPolicyReviewStatus) SwaggerDoc() map[string]string { - return map_PodSecurityPolicyReviewStatus -} - -var map_PodSecurityPolicySelfSubjectReview = map[string]string{ - "": "PodSecurityPolicySelfSubjectReview checks whether this user/SA tuple can create the PodTemplateSpec", - "spec": "spec defines specification the PodSecurityPolicySelfSubjectReview.", - "status": "status represents the current information/status for the PodSecurityPolicySelfSubjectReview.", -} - -func (PodSecurityPolicySelfSubjectReview) SwaggerDoc() map[string]string { - return map_PodSecurityPolicySelfSubjectReview -} - -var map_PodSecurityPolicySelfSubjectReviewSpec = map[string]string{ - "": "PodSecurityPolicySelfSubjectReviewSpec contains specification for PodSecurityPolicySelfSubjectReview.", - "template": "template is the PodTemplateSpec to check.", -} - -func (PodSecurityPolicySelfSubjectReviewSpec) SwaggerDoc() map[string]string { - return map_PodSecurityPolicySelfSubjectReviewSpec -} - -var map_PodSecurityPolicySubjectReview = map[string]string{ - "": "PodSecurityPolicySubjectReview checks whether a particular user/SA tuple can create the PodTemplateSpec.", - "spec": "spec defines specification for the PodSecurityPolicySubjectReview.", - "status": "status represents the current information/status for the PodSecurityPolicySubjectReview.", -} - -func (PodSecurityPolicySubjectReview) SwaggerDoc() map[string]string { - return map_PodSecurityPolicySubjectReview -} - -var map_PodSecurityPolicySubjectReviewSpec = map[string]string{ - "": "PodSecurityPolicySubjectReviewSpec defines specification for PodSecurityPolicySubjectReview", - "template": "template is the PodTemplateSpec to check. If template.spec.serviceAccountName is empty it will not be defaulted. If its non-empty, it will be checked.", - "user": "user is the user you're testing for. If you specify \"user\" but not \"group\", then is it interpreted as \"What if user were not a member of any groups. If user and groups are empty, then the check is performed using *only* the serviceAccountName in the template.", - "groups": "groups is the groups you're testing for.", -} - -func (PodSecurityPolicySubjectReviewSpec) SwaggerDoc() map[string]string { - return map_PodSecurityPolicySubjectReviewSpec -} - -var map_PodSecurityPolicySubjectReviewStatus = map[string]string{ - "": "PodSecurityPolicySubjectReviewStatus contains information/status for PodSecurityPolicySubjectReview.", - "allowedBy": "allowedBy is a reference to the rule that allows the PodTemplateSpec. A rule can be a SecurityContextConstraint or a PodSecurityPolicy A `nil`, indicates that it was denied.", - "reason": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available.", - "template": "template is the PodTemplateSpec after the defaulting is applied.", -} - -func (PodSecurityPolicySubjectReviewStatus) SwaggerDoc() map[string]string { - return map_PodSecurityPolicySubjectReviewStatus -} - -var map_RangeAllocation = map[string]string{ - "": "RangeAllocation is used so we can easily expose a RangeAllocation typed for security group", - "range": "range is a string representing a unique label for a range of uids, \"1000000000-2000000000/10000\".", - "data": "data is a byte array representing the serialized state of a range allocation. It is a bitmap with each bit set to one to represent a range is taken.", -} - -func (RangeAllocation) SwaggerDoc() map[string]string { - return map_RangeAllocation -} - -var map_RangeAllocationList = map[string]string{ - "": "RangeAllocationList is a list of RangeAllocations objects", - "items": "List of RangeAllocations.", -} - -func (RangeAllocationList) SwaggerDoc() map[string]string { - return map_RangeAllocationList -} - -var map_RunAsUserStrategyOptions = map[string]string{ - "": "RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy.", - "type": "Type is the strategy that will dictate what RunAsUser is used in the SecurityContext.", - "uid": "UID is the user id that containers must run as. Required for the MustRunAs strategy if not using namespace/service account allocated uids.", - "uidRangeMin": "UIDRangeMin defines the min value for a strategy that allocates by range.", - "uidRangeMax": "UIDRangeMax defines the max value for a strategy that allocates by range.", -} - -func (RunAsUserStrategyOptions) SwaggerDoc() map[string]string { - return map_RunAsUserStrategyOptions -} - -var map_SELinuxContextStrategyOptions = map[string]string{ - "": "SELinuxContextStrategyOptions defines the strategy type and any options used to create the strategy.", - "type": "Type is the strategy that will dictate what SELinux context is used in the SecurityContext.", - "seLinuxOptions": "seLinuxOptions required to run as; required for MustRunAs", -} - -func (SELinuxContextStrategyOptions) SwaggerDoc() map[string]string { - return map_SELinuxContextStrategyOptions -} - -var map_SecurityContextConstraints = map[string]string{ - "": "SecurityContextConstraints governs the ability to make requests that affect the SecurityContext that will be applied to a container. For historical reasons SCC was exposed under the core Kubernetes API group. That exposure is deprecated and will be removed in a future release - users should instead use the security.openshift.io group to manage SecurityContextConstraints.", - "priority": "Priority influences the sort order of SCCs when evaluating which SCCs to try first for a given pod request based on access in the Users and Groups fields. The higher the int, the higher priority. An unset value is considered a 0 priority. If scores for multiple SCCs are equal they will be sorted from most restrictive to least restrictive. If both priorities and restrictions are equal the SCCs will be sorted by name.", - "allowPrivilegedContainer": "AllowPrivilegedContainer determines if a container can request to be run as privileged.", - "defaultAddCapabilities": "DefaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capabiility in both DefaultAddCapabilities and RequiredDropCapabilities.", - "requiredDropCapabilities": "RequiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.", - "allowedCapabilities": "AllowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field maybe added at the pod author's discretion. You must not list a capability in both AllowedCapabilities and RequiredDropCapabilities. To allow all capabilities you may use '*'.", - "allowHostDirVolumePlugin": "AllowHostDirVolumePlugin determines if the policy allow containers to use the HostDir volume plugin", - "volumes": "Volumes is a white list of allowed volume plugins. FSType corresponds directly with the field names of a VolumeSource (azureFile, configMap, emptyDir). To allow all volumes you may use \"*\". To allow no volumes, set to [\"none\"].", - "allowedFlexVolumes": "AllowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"Volumes\" field.", - "allowHostNetwork": "AllowHostNetwork determines if the policy allows the use of HostNetwork in the pod spec.", - "allowHostPorts": "AllowHostPorts determines if the policy allows host ports in the containers.", - "allowHostPID": "AllowHostPID determines if the policy allows host pid in the containers.", - "allowHostIPC": "AllowHostIPC determines if the policy allows host ipc in the containers.", - "defaultAllowPrivilegeEscalation": "DefaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.", - "allowPrivilegeEscalation": "AllowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.", - "seLinuxContext": "SELinuxContext is the strategy that will dictate what labels will be set in the SecurityContext.", - "runAsUser": "RunAsUser is the strategy that will dictate what RunAsUser is used in the SecurityContext.", - "supplementalGroups": "SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.", - "fsGroup": "FSGroup is the strategy that will dictate what fs group is used by the SecurityContext.", - "readOnlyRootFilesystem": "ReadOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the SCC should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.", - "users": "The users who have permissions to use this security context constraints", - "groups": "The groups that have permission to use this security context constraints", - "seccompProfiles": "SeccompProfiles lists the allowed profiles that may be set for the pod or container's seccomp annotations. An unset (nil) or empty value means that no profiles may be specifid by the pod or container.\tThe wildcard '*' may be used to allow all profiles. When used to generate a value for a pod the first non-wildcard profile will be used as the default.", - "allowedUnsafeSysctls": "AllowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection.\n\nExamples: e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" allows \"foo.bar\", \"foo.baz\", etc.", - "forbiddenSysctls": "ForbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\n\nExamples: e.g. \"foo/*\" forbids \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" forbids \"foo.bar\", \"foo.baz\", etc.", -} - -func (SecurityContextConstraints) SwaggerDoc() map[string]string { - return map_SecurityContextConstraints -} - -var map_SecurityContextConstraintsList = map[string]string{ - "": "SecurityContextConstraintsList is a list of SecurityContextConstraints objects", - "items": "List of security context constraints.", -} - -func (SecurityContextConstraintsList) SwaggerDoc() map[string]string { - return map_SecurityContextConstraintsList -} - -var map_ServiceAccountPodSecurityPolicyReviewStatus = map[string]string{ - "": "ServiceAccountPodSecurityPolicyReviewStatus represents ServiceAccount name and related review status", - "name": "name contains the allowed and the denied ServiceAccount name", -} - -func (ServiceAccountPodSecurityPolicyReviewStatus) SwaggerDoc() map[string]string { - return map_ServiceAccountPodSecurityPolicyReviewStatus -} - -var map_SupplementalGroupsStrategyOptions = map[string]string{ - "": "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.", - "type": "Type is the strategy that will dictate what supplemental groups is used in the SecurityContext.", - "ranges": "Ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end.", -} - -func (SupplementalGroupsStrategyOptions) SwaggerDoc() map[string]string { - return map_SupplementalGroupsStrategyOptions -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/github.com/openshift/api/template/v1/codec.go b/vendor/github.com/openshift/api/template/v1/codec.go deleted file mode 100644 index 9e9177ed6a7da..0000000000000 --- a/vendor/github.com/openshift/api/template/v1/codec.go +++ /dev/null @@ -1,33 +0,0 @@ -package v1 - -import ( - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" - - "github.com/openshift/api/pkg/serialization" -) - -var _ runtime.NestedObjectDecoder = &Template{} -var _ runtime.NestedObjectEncoder = &Template{} - -// DecodeNestedObjects decodes the object as a runtime.Unknown with JSON content. -func (c *Template) DecodeNestedObjects(d runtime.Decoder) error { - for i := range c.Objects { - if c.Objects[i].Object != nil { - continue - } - c.Objects[i].Object = &runtime.Unknown{ - ContentType: "application/json", - Raw: c.Objects[i].Raw, - } - } - return nil -} -func (c *Template) EncodeNestedObjects(e runtime.Encoder) error { - for i := range c.Objects { - if err := serialization.EncodeNestedRawExtension(unstructured.UnstructuredJSONScheme, &c.Objects[i]); err != nil { - return err - } - } - return nil -} diff --git a/vendor/github.com/openshift/api/template/v1/consts.go b/vendor/github.com/openshift/api/template/v1/consts.go deleted file mode 100644 index cc8b49d55f681..0000000000000 --- a/vendor/github.com/openshift/api/template/v1/consts.go +++ /dev/null @@ -1,16 +0,0 @@ -package v1 - -const ( - // TemplateInstanceFinalizer is used to clean up the objects created by the template instance, - // when the template instance is deleted. - TemplateInstanceFinalizer = "template.openshift.io/finalizer" - - // TemplateInstanceOwner is a label applied to all objects created from a template instance - // which contains the uid of the template instance. - TemplateInstanceOwner = "template.openshift.io/template-instance-owner" - - // WaitForReadyAnnotation indicates that the TemplateInstance controller - // should wait for the object to be ready before reporting the template - // instantiation complete. - WaitForReadyAnnotation = "template.alpha.openshift.io/wait-for-ready" -) diff --git a/vendor/github.com/openshift/api/template/v1/doc.go b/vendor/github.com/openshift/api/template/v1/doc.go deleted file mode 100644 index 34f9f8d455456..0000000000000 --- a/vendor/github.com/openshift/api/template/v1/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=github.com/openshift/origin/pkg/template/apis/template -// +k8s:defaulter-gen=TypeMeta -// +k8s:openapi-gen=true - -// +groupName=template.openshift.io -// Package v1 is the v1 version of the API. -package v1 diff --git a/vendor/github.com/openshift/api/template/v1/generated.pb.go b/vendor/github.com/openshift/api/template/v1/generated.pb.go deleted file mode 100644 index a47fd1ae9fcef..0000000000000 --- a/vendor/github.com/openshift/api/template/v1/generated.pb.go +++ /dev/null @@ -1,4157 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: github.com/openshift/api/template/v1/generated.proto - -package v1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - k8s_io_api_core_v1 "k8s.io/api/core/v1" - v11 "k8s.io/api/core/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *BrokerTemplateInstance) Reset() { *m = BrokerTemplateInstance{} } -func (*BrokerTemplateInstance) ProtoMessage() {} -func (*BrokerTemplateInstance) Descriptor() ([]byte, []int) { - return fileDescriptor_8d3ee9f55fa8363e, []int{0} -} -func (m *BrokerTemplateInstance) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BrokerTemplateInstance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BrokerTemplateInstance) XXX_Merge(src proto.Message) { - xxx_messageInfo_BrokerTemplateInstance.Merge(m, src) -} -func (m *BrokerTemplateInstance) XXX_Size() int { - return m.Size() -} -func (m *BrokerTemplateInstance) XXX_DiscardUnknown() { - xxx_messageInfo_BrokerTemplateInstance.DiscardUnknown(m) -} - -var xxx_messageInfo_BrokerTemplateInstance proto.InternalMessageInfo - -func (m *BrokerTemplateInstanceList) Reset() { *m = BrokerTemplateInstanceList{} } -func (*BrokerTemplateInstanceList) ProtoMessage() {} -func (*BrokerTemplateInstanceList) Descriptor() ([]byte, []int) { - return fileDescriptor_8d3ee9f55fa8363e, []int{1} -} -func (m *BrokerTemplateInstanceList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BrokerTemplateInstanceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BrokerTemplateInstanceList) XXX_Merge(src proto.Message) { - xxx_messageInfo_BrokerTemplateInstanceList.Merge(m, src) -} -func (m *BrokerTemplateInstanceList) XXX_Size() int { - return m.Size() -} -func (m *BrokerTemplateInstanceList) XXX_DiscardUnknown() { - xxx_messageInfo_BrokerTemplateInstanceList.DiscardUnknown(m) -} - -var xxx_messageInfo_BrokerTemplateInstanceList proto.InternalMessageInfo - -func (m *BrokerTemplateInstanceSpec) Reset() { *m = BrokerTemplateInstanceSpec{} } -func (*BrokerTemplateInstanceSpec) ProtoMessage() {} -func (*BrokerTemplateInstanceSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_8d3ee9f55fa8363e, []int{2} -} -func (m *BrokerTemplateInstanceSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *BrokerTemplateInstanceSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *BrokerTemplateInstanceSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_BrokerTemplateInstanceSpec.Merge(m, src) -} -func (m *BrokerTemplateInstanceSpec) XXX_Size() int { - return m.Size() -} -func (m *BrokerTemplateInstanceSpec) XXX_DiscardUnknown() { - xxx_messageInfo_BrokerTemplateInstanceSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_BrokerTemplateInstanceSpec proto.InternalMessageInfo - -func (m *ExtraValue) Reset() { *m = ExtraValue{} } -func (*ExtraValue) ProtoMessage() {} -func (*ExtraValue) Descriptor() ([]byte, []int) { - return fileDescriptor_8d3ee9f55fa8363e, []int{3} -} -func (m *ExtraValue) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *ExtraValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *ExtraValue) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExtraValue.Merge(m, src) -} -func (m *ExtraValue) XXX_Size() int { - return m.Size() -} -func (m *ExtraValue) XXX_DiscardUnknown() { - xxx_messageInfo_ExtraValue.DiscardUnknown(m) -} - -var xxx_messageInfo_ExtraValue proto.InternalMessageInfo - -func (m *Parameter) Reset() { *m = Parameter{} } -func (*Parameter) ProtoMessage() {} -func (*Parameter) Descriptor() ([]byte, []int) { - return fileDescriptor_8d3ee9f55fa8363e, []int{4} -} -func (m *Parameter) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Parameter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *Parameter) XXX_Merge(src proto.Message) { - xxx_messageInfo_Parameter.Merge(m, src) -} -func (m *Parameter) XXX_Size() int { - return m.Size() -} -func (m *Parameter) XXX_DiscardUnknown() { - xxx_messageInfo_Parameter.DiscardUnknown(m) -} - -var xxx_messageInfo_Parameter proto.InternalMessageInfo - -func (m *Template) Reset() { *m = Template{} } -func (*Template) ProtoMessage() {} -func (*Template) Descriptor() ([]byte, []int) { - return fileDescriptor_8d3ee9f55fa8363e, []int{5} -} -func (m *Template) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Template) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *Template) XXX_Merge(src proto.Message) { - xxx_messageInfo_Template.Merge(m, src) -} -func (m *Template) XXX_Size() int { - return m.Size() -} -func (m *Template) XXX_DiscardUnknown() { - xxx_messageInfo_Template.DiscardUnknown(m) -} - -var xxx_messageInfo_Template proto.InternalMessageInfo - -func (m *TemplateInstance) Reset() { *m = TemplateInstance{} } -func (*TemplateInstance) ProtoMessage() {} -func (*TemplateInstance) Descriptor() ([]byte, []int) { - return fileDescriptor_8d3ee9f55fa8363e, []int{6} -} -func (m *TemplateInstance) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TemplateInstance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *TemplateInstance) XXX_Merge(src proto.Message) { - xxx_messageInfo_TemplateInstance.Merge(m, src) -} -func (m *TemplateInstance) XXX_Size() int { - return m.Size() -} -func (m *TemplateInstance) XXX_DiscardUnknown() { - xxx_messageInfo_TemplateInstance.DiscardUnknown(m) -} - -var xxx_messageInfo_TemplateInstance proto.InternalMessageInfo - -func (m *TemplateInstanceCondition) Reset() { *m = TemplateInstanceCondition{} } -func (*TemplateInstanceCondition) ProtoMessage() {} -func (*TemplateInstanceCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_8d3ee9f55fa8363e, []int{7} -} -func (m *TemplateInstanceCondition) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TemplateInstanceCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *TemplateInstanceCondition) XXX_Merge(src proto.Message) { - xxx_messageInfo_TemplateInstanceCondition.Merge(m, src) -} -func (m *TemplateInstanceCondition) XXX_Size() int { - return m.Size() -} -func (m *TemplateInstanceCondition) XXX_DiscardUnknown() { - xxx_messageInfo_TemplateInstanceCondition.DiscardUnknown(m) -} - -var xxx_messageInfo_TemplateInstanceCondition proto.InternalMessageInfo - -func (m *TemplateInstanceList) Reset() { *m = TemplateInstanceList{} } -func (*TemplateInstanceList) ProtoMessage() {} -func (*TemplateInstanceList) Descriptor() ([]byte, []int) { - return fileDescriptor_8d3ee9f55fa8363e, []int{8} -} -func (m *TemplateInstanceList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TemplateInstanceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *TemplateInstanceList) XXX_Merge(src proto.Message) { - xxx_messageInfo_TemplateInstanceList.Merge(m, src) -} -func (m *TemplateInstanceList) XXX_Size() int { - return m.Size() -} -func (m *TemplateInstanceList) XXX_DiscardUnknown() { - xxx_messageInfo_TemplateInstanceList.DiscardUnknown(m) -} - -var xxx_messageInfo_TemplateInstanceList proto.InternalMessageInfo - -func (m *TemplateInstanceObject) Reset() { *m = TemplateInstanceObject{} } -func (*TemplateInstanceObject) ProtoMessage() {} -func (*TemplateInstanceObject) Descriptor() ([]byte, []int) { - return fileDescriptor_8d3ee9f55fa8363e, []int{9} -} -func (m *TemplateInstanceObject) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TemplateInstanceObject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *TemplateInstanceObject) XXX_Merge(src proto.Message) { - xxx_messageInfo_TemplateInstanceObject.Merge(m, src) -} -func (m *TemplateInstanceObject) XXX_Size() int { - return m.Size() -} -func (m *TemplateInstanceObject) XXX_DiscardUnknown() { - xxx_messageInfo_TemplateInstanceObject.DiscardUnknown(m) -} - -var xxx_messageInfo_TemplateInstanceObject proto.InternalMessageInfo - -func (m *TemplateInstanceRequester) Reset() { *m = TemplateInstanceRequester{} } -func (*TemplateInstanceRequester) ProtoMessage() {} -func (*TemplateInstanceRequester) Descriptor() ([]byte, []int) { - return fileDescriptor_8d3ee9f55fa8363e, []int{10} -} -func (m *TemplateInstanceRequester) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TemplateInstanceRequester) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *TemplateInstanceRequester) XXX_Merge(src proto.Message) { - xxx_messageInfo_TemplateInstanceRequester.Merge(m, src) -} -func (m *TemplateInstanceRequester) XXX_Size() int { - return m.Size() -} -func (m *TemplateInstanceRequester) XXX_DiscardUnknown() { - xxx_messageInfo_TemplateInstanceRequester.DiscardUnknown(m) -} - -var xxx_messageInfo_TemplateInstanceRequester proto.InternalMessageInfo - -func (m *TemplateInstanceSpec) Reset() { *m = TemplateInstanceSpec{} } -func (*TemplateInstanceSpec) ProtoMessage() {} -func (*TemplateInstanceSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_8d3ee9f55fa8363e, []int{11} -} -func (m *TemplateInstanceSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TemplateInstanceSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *TemplateInstanceSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_TemplateInstanceSpec.Merge(m, src) -} -func (m *TemplateInstanceSpec) XXX_Size() int { - return m.Size() -} -func (m *TemplateInstanceSpec) XXX_DiscardUnknown() { - xxx_messageInfo_TemplateInstanceSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_TemplateInstanceSpec proto.InternalMessageInfo - -func (m *TemplateInstanceStatus) Reset() { *m = TemplateInstanceStatus{} } -func (*TemplateInstanceStatus) ProtoMessage() {} -func (*TemplateInstanceStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_8d3ee9f55fa8363e, []int{12} -} -func (m *TemplateInstanceStatus) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TemplateInstanceStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *TemplateInstanceStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_TemplateInstanceStatus.Merge(m, src) -} -func (m *TemplateInstanceStatus) XXX_Size() int { - return m.Size() -} -func (m *TemplateInstanceStatus) XXX_DiscardUnknown() { - xxx_messageInfo_TemplateInstanceStatus.DiscardUnknown(m) -} - -var xxx_messageInfo_TemplateInstanceStatus proto.InternalMessageInfo - -func (m *TemplateList) Reset() { *m = TemplateList{} } -func (*TemplateList) ProtoMessage() {} -func (*TemplateList) Descriptor() ([]byte, []int) { - return fileDescriptor_8d3ee9f55fa8363e, []int{13} -} -func (m *TemplateList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *TemplateList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *TemplateList) XXX_Merge(src proto.Message) { - xxx_messageInfo_TemplateList.Merge(m, src) -} -func (m *TemplateList) XXX_Size() int { - return m.Size() -} -func (m *TemplateList) XXX_DiscardUnknown() { - xxx_messageInfo_TemplateList.DiscardUnknown(m) -} - -var xxx_messageInfo_TemplateList proto.InternalMessageInfo - -func init() { - proto.RegisterType((*BrokerTemplateInstance)(nil), "github.com.openshift.api.template.v1.BrokerTemplateInstance") - proto.RegisterType((*BrokerTemplateInstanceList)(nil), "github.com.openshift.api.template.v1.BrokerTemplateInstanceList") - proto.RegisterType((*BrokerTemplateInstanceSpec)(nil), "github.com.openshift.api.template.v1.BrokerTemplateInstanceSpec") - proto.RegisterType((*ExtraValue)(nil), "github.com.openshift.api.template.v1.ExtraValue") - proto.RegisterType((*Parameter)(nil), "github.com.openshift.api.template.v1.Parameter") - proto.RegisterType((*Template)(nil), "github.com.openshift.api.template.v1.Template") - proto.RegisterMapType((map[string]string)(nil), "github.com.openshift.api.template.v1.Template.LabelsEntry") - proto.RegisterType((*TemplateInstance)(nil), "github.com.openshift.api.template.v1.TemplateInstance") - proto.RegisterType((*TemplateInstanceCondition)(nil), "github.com.openshift.api.template.v1.TemplateInstanceCondition") - proto.RegisterType((*TemplateInstanceList)(nil), "github.com.openshift.api.template.v1.TemplateInstanceList") - proto.RegisterType((*TemplateInstanceObject)(nil), "github.com.openshift.api.template.v1.TemplateInstanceObject") - proto.RegisterType((*TemplateInstanceRequester)(nil), "github.com.openshift.api.template.v1.TemplateInstanceRequester") - proto.RegisterMapType((map[string]ExtraValue)(nil), "github.com.openshift.api.template.v1.TemplateInstanceRequester.ExtraEntry") - proto.RegisterType((*TemplateInstanceSpec)(nil), "github.com.openshift.api.template.v1.TemplateInstanceSpec") - proto.RegisterType((*TemplateInstanceStatus)(nil), "github.com.openshift.api.template.v1.TemplateInstanceStatus") - proto.RegisterType((*TemplateList)(nil), "github.com.openshift.api.template.v1.TemplateList") -} - -func init() { - proto.RegisterFile("github.com/openshift/api/template/v1/generated.proto", fileDescriptor_8d3ee9f55fa8363e) -} - -var fileDescriptor_8d3ee9f55fa8363e = []byte{ - // 1243 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0x4d, 0x8f, 0x1b, 0x45, - 0x13, 0xf6, 0xf8, 0x6b, 0xed, 0x76, 0x92, 0x77, 0xd5, 0x6f, 0x14, 0x0d, 0x96, 0x62, 0x5b, 0x13, - 0x84, 0x0c, 0x4a, 0xc6, 0x6c, 0x14, 0x42, 0x58, 0x21, 0x01, 0xc3, 0x6e, 0xa2, 0x85, 0x0d, 0xa0, - 0xde, 0x0d, 0x42, 0xb0, 0x07, 0xda, 0xe3, 0xb6, 0x77, 0xb2, 0x9e, 0x0f, 0xba, 0xdb, 0x26, 0xbe, - 0xe5, 0xc0, 0x0f, 0xe0, 0xc8, 0x91, 0x9f, 0xc0, 0x91, 0x13, 0x12, 0xb7, 0x3d, 0x86, 0x5b, 0x0e, - 0x60, 0xb1, 0xe6, 0xc4, 0x1f, 0x00, 0x29, 0x5c, 0x50, 0xf7, 0xf4, 0x7c, 0xf8, 0x8b, 0x78, 0x37, - 0x52, 0x72, 0x9b, 0xa9, 0xae, 0xe7, 0xa9, 0xae, 0xea, 0xea, 0xa7, 0x0b, 0xdc, 0xe8, 0x39, 0xfc, - 0x70, 0xd0, 0x36, 0x6d, 0xdf, 0x6d, 0xf9, 0x01, 0xf1, 0xd8, 0xa1, 0xd3, 0xe5, 0x2d, 0x1c, 0x38, - 0x2d, 0x4e, 0xdc, 0xa0, 0x8f, 0x39, 0x69, 0x0d, 0x37, 0x5a, 0x3d, 0xe2, 0x11, 0x8a, 0x39, 0xe9, - 0x98, 0x01, 0xf5, 0xb9, 0x0f, 0x5f, 0x4e, 0x50, 0x66, 0x8c, 0x32, 0x71, 0xe0, 0x98, 0x11, 0xca, - 0x1c, 0x6e, 0x54, 0xaf, 0xa5, 0xb8, 0x7b, 0x7e, 0xcf, 0x6f, 0x49, 0x70, 0x7b, 0xd0, 0x95, 0x7f, - 0xf2, 0x47, 0x7e, 0x85, 0xa4, 0x55, 0xe3, 0xe8, 0x16, 0x33, 0x1d, 0x5f, 0x06, 0xb7, 0x7d, 0xba, - 0x28, 0x70, 0xf5, 0x46, 0xe2, 0xe3, 0x62, 0xfb, 0xd0, 0xf1, 0x08, 0x1d, 0xb5, 0x82, 0xa3, 0x9e, - 0x30, 0xb0, 0x96, 0x4b, 0x38, 0x5e, 0x84, 0x6a, 0x2d, 0x43, 0xd1, 0x81, 0xc7, 0x1d, 0x97, 0xcc, - 0x01, 0x6e, 0x3e, 0x0d, 0xc0, 0xec, 0x43, 0xe2, 0xe2, 0x59, 0x9c, 0x31, 0xd6, 0xc0, 0x25, 0x8b, - 0xfa, 0x47, 0x84, 0xee, 0xab, 0x3a, 0xec, 0x78, 0x8c, 0x63, 0xcf, 0x26, 0xf0, 0x4b, 0x50, 0x12, - 0xdb, 0xeb, 0x60, 0x8e, 0x75, 0xad, 0xa1, 0x35, 0x2b, 0xd7, 0x5f, 0x37, 0xc3, 0x28, 0x66, 0x3a, - 0x8a, 0x19, 0x1c, 0xf5, 0x84, 0x81, 0x99, 0xc2, 0xdb, 0x1c, 0x6e, 0x98, 0x1f, 0xb7, 0xef, 0x13, - 0x9b, 0xdf, 0x25, 0x1c, 0x5b, 0xf0, 0x78, 0x5c, 0xcf, 0x4c, 0xc6, 0x75, 0x90, 0xd8, 0x50, 0xcc, - 0x0a, 0xdb, 0x20, 0xcf, 0x02, 0x62, 0xeb, 0x59, 0xc9, 0xfe, 0xae, 0xb9, 0xca, 0x19, 0x99, 0x8b, - 0x77, 0xbb, 0x17, 0x10, 0xdb, 0x3a, 0xa7, 0xa2, 0xe5, 0xc5, 0x1f, 0x92, 0xdc, 0xc6, 0x6f, 0x1a, - 0xa8, 0x2e, 0x86, 0xec, 0x3a, 0x8c, 0xc3, 0x83, 0xb9, 0x24, 0xcd, 0xd5, 0x92, 0x14, 0x68, 0x99, - 0xe2, 0xba, 0x0a, 0x5a, 0x8a, 0x2c, 0xa9, 0x04, 0x31, 0x28, 0x38, 0x9c, 0xb8, 0x4c, 0xcf, 0x36, - 0x72, 0xcd, 0xca, 0xf5, 0xb7, 0x9f, 0x25, 0x43, 0xeb, 0xbc, 0x0a, 0x54, 0xd8, 0x11, 0x94, 0x28, - 0x64, 0x36, 0xbe, 0xc9, 0x2e, 0xcb, 0x4f, 0x14, 0x01, 0x3a, 0x60, 0x9d, 0xcf, 0xd8, 0x55, 0x9e, - 0x57, 0x52, 0x79, 0x9a, 0xa2, 0x7b, 0x93, 0xa3, 0x43, 0xa4, 0x4b, 0x28, 0x11, 0x31, 0x75, 0x15, - 0x73, 0x7d, 0x96, 0x1c, 0xcd, 0xd1, 0xc2, 0x0f, 0x41, 0x91, 0x11, 0x9b, 0x12, 0xae, 0xce, 0x73, - 0xa5, 0x00, 0x17, 0x54, 0x80, 0xe2, 0x9e, 0x84, 0x22, 0x45, 0x01, 0x4d, 0x00, 0xda, 0x8e, 0xd7, - 0x71, 0xbc, 0xde, 0xce, 0x16, 0xd3, 0x73, 0x8d, 0x5c, 0xb3, 0x6c, 0x5d, 0x10, 0x8d, 0x64, 0xc5, - 0x56, 0x94, 0xf2, 0x30, 0xde, 0x04, 0x60, 0xfb, 0x01, 0xa7, 0xf8, 0x53, 0xdc, 0x1f, 0x10, 0x58, - 0x8f, 0xea, 0xae, 0x49, 0x60, 0x79, 0xb6, 0x6a, 0x9b, 0xa5, 0xef, 0xbe, 0xaf, 0x67, 0x1e, 0xfe, - 0xda, 0xc8, 0x18, 0x3f, 0x65, 0x41, 0xf9, 0x13, 0x4c, 0xb1, 0x4b, 0x38, 0xa1, 0xb0, 0x01, 0xf2, - 0x1e, 0x76, 0xc3, 0x12, 0x95, 0x93, 0x7e, 0xfa, 0x08, 0xbb, 0x04, 0xc9, 0x15, 0xf8, 0x06, 0xa8, - 0x74, 0x1c, 0x16, 0xf4, 0xf1, 0x48, 0x18, 0x65, 0xaa, 0x65, 0xeb, 0xff, 0xca, 0xb1, 0xb2, 0x95, - 0x2c, 0xa1, 0xb4, 0x9f, 0x84, 0x11, 0x66, 0x53, 0x27, 0xe0, 0x8e, 0xef, 0xe9, 0xb9, 0x19, 0x58, - 0xb2, 0x84, 0xd2, 0x7e, 0xf0, 0x0a, 0x28, 0x0c, 0x45, 0x46, 0x7a, 0x5e, 0x02, 0xe2, 0x16, 0x90, - 0x69, 0xa2, 0x70, 0x0d, 0x5e, 0x05, 0xa5, 0xe8, 0x5a, 0xeb, 0x05, 0xe9, 0x17, 0xf7, 0xe4, 0x1d, - 0x65, 0x47, 0xb1, 0x87, 0x48, 0xb1, 0x4b, 0x7d, 0x57, 0x2f, 0x4e, 0xa7, 0x78, 0x9b, 0xfa, 0x2e, - 0x92, 0x2b, 0x82, 0x8f, 0x92, 0xaf, 0x06, 0x0e, 0x25, 0x1d, 0x7d, 0xad, 0xa1, 0x35, 0x4b, 0x09, - 0x1f, 0x52, 0x76, 0x14, 0x7b, 0x18, 0xff, 0xe4, 0x40, 0x29, 0xea, 0x8e, 0xe7, 0xa0, 0x19, 0xaf, - 0x82, 0x35, 0x97, 0x30, 0x86, 0x7b, 0x51, 0xed, 0xff, 0xa7, 0xdc, 0xd7, 0xee, 0x86, 0x66, 0x14, - 0xad, 0xc3, 0xcf, 0xc0, 0x9a, 0x2f, 0x29, 0xc2, 0x06, 0xaa, 0x5c, 0xbf, 0xb6, 0x74, 0x2f, 0x4a, - 0x25, 0x4d, 0x84, 0xbf, 0xde, 0x7e, 0xc0, 0x89, 0xc7, 0x1c, 0xdf, 0x4b, 0x98, 0xc3, 0x8d, 0x30, - 0x14, 0xd1, 0x41, 0x1b, 0x80, 0x20, 0xea, 0x19, 0xa6, 0xe7, 0x25, 0x79, 0x6b, 0xb5, 0xcb, 0x1d, - 0xf7, 0x5a, 0x92, 0x67, 0x6c, 0x62, 0x28, 0x45, 0x0b, 0x0f, 0x41, 0xb1, 0x8f, 0xdb, 0xa4, 0xcf, - 0xf4, 0x82, 0x0c, 0xb0, 0xb9, 0x5a, 0x80, 0xe8, 0x2c, 0xcc, 0x5d, 0x09, 0xde, 0xf6, 0x38, 0x1d, - 0x59, 0x17, 0x55, 0xac, 0x73, 0x61, 0x2a, 0xe1, 0x12, 0x52, 0xfc, 0xd5, 0xb7, 0x40, 0x25, 0xe5, - 0x0c, 0xd7, 0x41, 0xee, 0x88, 0x8c, 0xc2, 0x3b, 0x80, 0xc4, 0x27, 0xbc, 0x18, 0xb5, 0xa1, 0x2c, - 0xb9, 0xea, 0xbb, 0xcd, 0xec, 0x2d, 0xcd, 0xf8, 0x31, 0x0b, 0xd6, 0x5f, 0xc0, 0xcb, 0x71, 0x30, - 0xf5, 0x72, 0x9c, 0xb2, 0x32, 0x4f, 0x7b, 0x33, 0x60, 0x07, 0x14, 0x19, 0xc7, 0x7c, 0xc0, 0xe4, - 0x3d, 0x5d, 0x59, 0xb7, 0xe7, 0xf8, 0x25, 0x47, 0x4a, 0xe2, 0xe4, 0x3f, 0x52, 0xdc, 0xc6, 0xdf, - 0x59, 0xf0, 0xd2, 0x2c, 0xe4, 0x7d, 0xdf, 0xeb, 0x38, 0xf2, 0xe6, 0xbf, 0x07, 0xf2, 0x7c, 0x14, - 0x44, 0x4a, 0x74, 0x2d, 0xda, 0xe5, 0xfe, 0x28, 0x20, 0x4f, 0xc6, 0xf5, 0xcb, 0x4b, 0x81, 0xc2, - 0x01, 0x49, 0x28, 0xdc, 0x8d, 0xd3, 0x08, 0x6f, 0xca, 0x8d, 0xe9, 0x8d, 0x3c, 0x19, 0xd7, 0x17, - 0x0c, 0x30, 0x66, 0xcc, 0x34, 0xbd, 0x5d, 0x38, 0x04, 0xb0, 0x8f, 0x19, 0xdf, 0xa7, 0xd8, 0x63, - 0x61, 0x24, 0xc7, 0x25, 0xaa, 0x40, 0xaf, 0xad, 0x76, 0xbc, 0x02, 0x61, 0x55, 0xd5, 0x2e, 0xe0, - 0xee, 0x1c, 0x1b, 0x5a, 0x10, 0x01, 0xbe, 0x02, 0x8a, 0x94, 0x60, 0xe6, 0x7b, 0x4a, 0x03, 0xe3, - 0x72, 0x22, 0x69, 0x45, 0x6a, 0x35, 0x2d, 0x0c, 0x85, 0xff, 0x16, 0x06, 0xe3, 0x17, 0x0d, 0x5c, - 0x7c, 0x01, 0xd3, 0xc0, 0x17, 0xd3, 0xd3, 0xc0, 0xcd, 0xb3, 0x75, 0xd5, 0x92, 0x39, 0xe0, 0x00, - 0x5c, 0x9a, 0xf5, 0x0c, 0x6f, 0x0e, 0xb4, 0x40, 0x8e, 0x92, 0xee, 0x69, 0x5e, 0xfd, 0x8a, 0x8a, - 0x90, 0x43, 0xa4, 0x8b, 0x04, 0xd8, 0xf8, 0x73, 0x41, 0xaf, 0x8a, 0xb7, 0x80, 0x30, 0xf1, 0x6a, - 0x5e, 0x05, 0xa5, 0x01, 0x23, 0x34, 0xf5, 0x72, 0xc6, 0x65, 0xb8, 0xa7, 0xec, 0x28, 0xf6, 0x80, - 0x97, 0x41, 0x6e, 0xe0, 0x74, 0x54, 0x4f, 0xc6, 0xa1, 0xee, 0xed, 0x6c, 0x21, 0x61, 0x87, 0x06, - 0x28, 0xf6, 0xa8, 0x3f, 0x08, 0xa2, 0x57, 0x1f, 0x88, 0xb3, 0xbe, 0x23, 0x2d, 0x48, 0xad, 0x40, - 0x1f, 0x14, 0x88, 0x78, 0xed, 0x95, 0xf4, 0x7e, 0x70, 0xb6, 0x4a, 0xc6, 0x09, 0x98, 0x72, 0x74, - 0x08, 0x95, 0x32, 0xae, 0xae, 0xb4, 0xa1, 0x30, 0x4e, 0xf5, 0xbe, 0x1a, 0x2f, 0x96, 0x09, 0xe4, - 0xed, 0xb4, 0x40, 0x0a, 0xb9, 0x5b, 0x69, 0x43, 0xc9, 0xc4, 0x92, 0x96, 0xd4, 0x1f, 0xb2, 0xf3, - 0xdd, 0x29, 0x67, 0xb9, 0x03, 0x50, 0x8a, 0xd0, 0x71, 0x77, 0x9e, 0x2a, 0xf1, 0xe4, 0x58, 0x22, - 0x0b, 0x8a, 0x19, 0xa5, 0x5a, 0xa4, 0xc7, 0xb7, 0xe6, 0xa2, 0x4e, 0xd9, 0xf5, 0x6d, 0xdc, 0x9f, - 0x6d, 0x17, 0xb0, 0x60, 0x7e, 0xeb, 0x83, 0x32, 0x8d, 0xca, 0xab, 0x44, 0xe2, 0x9d, 0x67, 0x3c, - 0x25, 0xeb, 0xfc, 0x64, 0x5c, 0x2f, 0xc7, 0xbf, 0x28, 0x09, 0x60, 0xfc, 0xa5, 0xcd, 0x77, 0x7f, - 0x28, 0x5f, 0x90, 0x01, 0x60, 0x47, 0x8a, 0x16, 0xce, 0x83, 0x67, 0xde, 0x49, 0xac, 0x8c, 0xc9, - 0xe3, 0x14, 0x9b, 0x18, 0x4a, 0x85, 0x81, 0xbd, 0x64, 0xf2, 0x38, 0xd5, 0xe4, 0xbf, 0xf8, 0x06, - 0x2f, 0x1f, 0x44, 0x8c, 0x9f, 0x35, 0x70, 0x2e, 0x02, 0x3d, 0x07, 0x05, 0xdb, 0x9b, 0x56, 0xb0, - 0xd3, 0xb6, 0xdf, 0x42, 0xe5, 0xb2, 0x9a, 0xc7, 0x27, 0xb5, 0xcc, 0xa3, 0x93, 0x5a, 0xe6, 0xf1, - 0x49, 0x2d, 0xf3, 0x70, 0x52, 0xd3, 0x8e, 0x27, 0x35, 0xed, 0xd1, 0xa4, 0xa6, 0x3d, 0x9e, 0xd4, - 0xb4, 0xdf, 0x27, 0x35, 0xed, 0xdb, 0x3f, 0x6a, 0x99, 0xcf, 0xb3, 0xc3, 0x8d, 0x7f, 0x03, 0x00, - 0x00, 0xff, 0xff, 0x33, 0xf4, 0x09, 0xac, 0xfb, 0x0f, 0x00, 0x00, -} - -func (m *BrokerTemplateInstance) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BrokerTemplateInstance) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BrokerTemplateInstance) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *BrokerTemplateInstanceList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BrokerTemplateInstanceList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BrokerTemplateInstanceList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *BrokerTemplateInstanceSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *BrokerTemplateInstanceSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *BrokerTemplateInstanceSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.BindingIDs) > 0 { - for iNdEx := len(m.BindingIDs) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.BindingIDs[iNdEx]) - copy(dAtA[i:], m.BindingIDs[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.BindingIDs[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - { - size, err := m.Secret.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.TemplateInstance.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m ExtraValue) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m ExtraValue) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m ExtraValue) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m) > 0 { - for iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m[iNdEx]) - copy(dAtA[i:], m[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *Parameter) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Parameter) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Parameter) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i-- - if m.Required { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x38 - i -= len(m.From) - copy(dAtA[i:], m.From) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.From))) - i-- - dAtA[i] = 0x32 - i -= len(m.Generate) - copy(dAtA[i:], m.Generate) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Generate))) - i-- - dAtA[i] = 0x2a - i -= len(m.Value) - copy(dAtA[i:], m.Value) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Value))) - i-- - dAtA[i] = 0x22 - i -= len(m.Description) - copy(dAtA[i:], m.Description) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Description))) - i-- - dAtA[i] = 0x1a - i -= len(m.DisplayName) - copy(dAtA[i:], m.DisplayName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.DisplayName))) - i-- - dAtA[i] = 0x12 - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *Template) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Template) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Template) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.ObjectLabels) > 0 { - keysForObjectLabels := make([]string, 0, len(m.ObjectLabels)) - for k := range m.ObjectLabels { - keysForObjectLabels = append(keysForObjectLabels, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForObjectLabels) - for iNdEx := len(keysForObjectLabels) - 1; iNdEx >= 0; iNdEx-- { - v := m.ObjectLabels[string(keysForObjectLabels[iNdEx])] - baseI := i - i -= len(v) - copy(dAtA[i:], v) - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i-- - dAtA[i] = 0x12 - i -= len(keysForObjectLabels[iNdEx]) - copy(dAtA[i:], keysForObjectLabels[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForObjectLabels[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0x2a - } - } - if len(m.Parameters) > 0 { - for iNdEx := len(m.Parameters) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Parameters[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - } - if len(m.Objects) > 0 { - for iNdEx := len(m.Objects) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Objects[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - } - i -= len(m.Message) - copy(dAtA[i:], m.Message) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *TemplateInstance) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *TemplateInstance) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TemplateInstance) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *TemplateInstanceCondition) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *TemplateInstanceCondition) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TemplateInstanceCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - i -= len(m.Message) - copy(dAtA[i:], m.Message) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i-- - dAtA[i] = 0x2a - i -= len(m.Reason) - copy(dAtA[i:], m.Reason) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) - i-- - dAtA[i] = 0x22 - { - size, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - i -= len(m.Status) - copy(dAtA[i:], m.Status) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) - i-- - dAtA[i] = 0x12 - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *TemplateInstanceList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *TemplateInstanceList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TemplateInstanceList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *TemplateInstanceObject) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *TemplateInstanceObject) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TemplateInstanceObject) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Ref.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *TemplateInstanceRequester) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *TemplateInstanceRequester) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TemplateInstanceRequester) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Extra) > 0 { - keysForExtra := make([]string, 0, len(m.Extra)) - for k := range m.Extra { - keysForExtra = append(keysForExtra, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForExtra) - for iNdEx := len(keysForExtra) - 1; iNdEx >= 0; iNdEx-- { - v := m.Extra[string(keysForExtra[iNdEx])] - baseI := i - { - size, err := (&v).MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - i -= len(keysForExtra[iNdEx]) - copy(dAtA[i:], keysForExtra[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForExtra[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0x22 - } - } - if len(m.Groups) > 0 { - for iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Groups[iNdEx]) - copy(dAtA[i:], m.Groups[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - i -= len(m.UID) - copy(dAtA[i:], m.UID) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.UID))) - i-- - dAtA[i] = 0x12 - i -= len(m.Username) - copy(dAtA[i:], m.Username) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Username))) - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *TemplateInstanceSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *TemplateInstanceSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TemplateInstanceSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Requester != nil { - { - size, err := m.Requester.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - if m.Secret != nil { - { - size, err := m.Secret.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - { - size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *TemplateInstanceStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *TemplateInstanceStatus) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TemplateInstanceStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Objects) > 0 { - for iNdEx := len(m.Objects) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Objects[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - if len(m.Conditions) > 0 { - for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *TemplateList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *TemplateList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *TemplateList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *BrokerTemplateInstance) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *BrokerTemplateInstanceList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *BrokerTemplateInstanceSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.TemplateInstance.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Secret.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.BindingIDs) > 0 { - for _, s := range m.BindingIDs { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m ExtraValue) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m) > 0 { - for _, s := range m { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *Parameter) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.DisplayName) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Description) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Value) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Generate) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.From) - n += 1 + l + sovGenerated(uint64(l)) - n += 2 - return n -} - -func (m *Template) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Objects) > 0 { - for _, e := range m.Objects { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.Parameters) > 0 { - for _, e := range m.Parameters { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.ObjectLabels) > 0 { - for k, v := range m.ObjectLabels { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - return n -} - -func (m *TemplateInstance) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *TemplateInstanceCondition) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Status) - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastTransitionTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Reason) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *TemplateInstanceList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *TemplateInstanceObject) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Ref.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *TemplateInstanceRequester) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Username) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.UID) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Groups) > 0 { - for _, s := range m.Groups { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.Extra) > 0 { - for k, v := range m.Extra { - _ = k - _ = v - l = v.Size() - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l)) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - return n -} - -func (m *TemplateInstanceSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.Secret != nil { - l = m.Secret.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.Requester != nil { - l = m.Requester.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *TemplateInstanceStatus) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.Objects) > 0 { - for _, e := range m.Objects { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *TemplateList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *BrokerTemplateInstance) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&BrokerTemplateInstance{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "BrokerTemplateInstanceSpec", "BrokerTemplateInstanceSpec", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *BrokerTemplateInstanceList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]BrokerTemplateInstance{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "BrokerTemplateInstance", "BrokerTemplateInstance", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&BrokerTemplateInstanceList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *BrokerTemplateInstanceSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&BrokerTemplateInstanceSpec{`, - `TemplateInstance:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.TemplateInstance), "ObjectReference", "v11.ObjectReference", 1), `&`, ``, 1) + `,`, - `Secret:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Secret), "ObjectReference", "v11.ObjectReference", 1), `&`, ``, 1) + `,`, - `BindingIDs:` + fmt.Sprintf("%v", this.BindingIDs) + `,`, - `}`, - }, "") - return s -} -func (this *Parameter) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Parameter{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `DisplayName:` + fmt.Sprintf("%v", this.DisplayName) + `,`, - `Description:` + fmt.Sprintf("%v", this.Description) + `,`, - `Value:` + fmt.Sprintf("%v", this.Value) + `,`, - `Generate:` + fmt.Sprintf("%v", this.Generate) + `,`, - `From:` + fmt.Sprintf("%v", this.From) + `,`, - `Required:` + fmt.Sprintf("%v", this.Required) + `,`, - `}`, - }, "") - return s -} -func (this *Template) String() string { - if this == nil { - return "nil" - } - repeatedStringForObjects := "[]RawExtension{" - for _, f := range this.Objects { - repeatedStringForObjects += fmt.Sprintf("%v", f) + "," - } - repeatedStringForObjects += "}" - repeatedStringForParameters := "[]Parameter{" - for _, f := range this.Parameters { - repeatedStringForParameters += strings.Replace(strings.Replace(f.String(), "Parameter", "Parameter", 1), `&`, ``, 1) + "," - } - repeatedStringForParameters += "}" - keysForObjectLabels := make([]string, 0, len(this.ObjectLabels)) - for k := range this.ObjectLabels { - keysForObjectLabels = append(keysForObjectLabels, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForObjectLabels) - mapStringForObjectLabels := "map[string]string{" - for _, k := range keysForObjectLabels { - mapStringForObjectLabels += fmt.Sprintf("%v: %v,", k, this.ObjectLabels[k]) - } - mapStringForObjectLabels += "}" - s := strings.Join([]string{`&Template{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `Objects:` + repeatedStringForObjects + `,`, - `Parameters:` + repeatedStringForParameters + `,`, - `ObjectLabels:` + mapStringForObjectLabels + `,`, - `}`, - }, "") - return s -} -func (this *TemplateInstance) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TemplateInstance{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "TemplateInstanceSpec", "TemplateInstanceSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "TemplateInstanceStatus", "TemplateInstanceStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *TemplateInstanceCondition) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TemplateInstanceCondition{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Status:` + fmt.Sprintf("%v", this.Status) + `,`, - `LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastTransitionTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, - `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `}`, - }, "") - return s -} -func (this *TemplateInstanceList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]TemplateInstance{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "TemplateInstance", "TemplateInstance", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&TemplateInstanceList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *TemplateInstanceObject) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TemplateInstanceObject{`, - `Ref:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Ref), "ObjectReference", "v11.ObjectReference", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *TemplateInstanceRequester) String() string { - if this == nil { - return "nil" - } - keysForExtra := make([]string, 0, len(this.Extra)) - for k := range this.Extra { - keysForExtra = append(keysForExtra, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForExtra) - mapStringForExtra := "map[string]ExtraValue{" - for _, k := range keysForExtra { - mapStringForExtra += fmt.Sprintf("%v: %v,", k, this.Extra[k]) - } - mapStringForExtra += "}" - s := strings.Join([]string{`&TemplateInstanceRequester{`, - `Username:` + fmt.Sprintf("%v", this.Username) + `,`, - `UID:` + fmt.Sprintf("%v", this.UID) + `,`, - `Groups:` + fmt.Sprintf("%v", this.Groups) + `,`, - `Extra:` + mapStringForExtra + `,`, - `}`, - }, "") - return s -} -func (this *TemplateInstanceSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&TemplateInstanceSpec{`, - `Template:` + strings.Replace(strings.Replace(this.Template.String(), "Template", "Template", 1), `&`, ``, 1) + `,`, - `Secret:` + strings.Replace(fmt.Sprintf("%v", this.Secret), "LocalObjectReference", "v11.LocalObjectReference", 1) + `,`, - `Requester:` + strings.Replace(this.Requester.String(), "TemplateInstanceRequester", "TemplateInstanceRequester", 1) + `,`, - `}`, - }, "") - return s -} -func (this *TemplateInstanceStatus) String() string { - if this == nil { - return "nil" - } - repeatedStringForConditions := "[]TemplateInstanceCondition{" - for _, f := range this.Conditions { - repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "TemplateInstanceCondition", "TemplateInstanceCondition", 1), `&`, ``, 1) + "," - } - repeatedStringForConditions += "}" - repeatedStringForObjects := "[]TemplateInstanceObject{" - for _, f := range this.Objects { - repeatedStringForObjects += strings.Replace(strings.Replace(f.String(), "TemplateInstanceObject", "TemplateInstanceObject", 1), `&`, ``, 1) + "," - } - repeatedStringForObjects += "}" - s := strings.Join([]string{`&TemplateInstanceStatus{`, - `Conditions:` + repeatedStringForConditions + `,`, - `Objects:` + repeatedStringForObjects + `,`, - `}`, - }, "") - return s -} -func (this *TemplateList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]Template{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Template", "Template", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&TemplateList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *BrokerTemplateInstance) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BrokerTemplateInstance: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BrokerTemplateInstance: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BrokerTemplateInstanceList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BrokerTemplateInstanceList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BrokerTemplateInstanceList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, BrokerTemplateInstance{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *BrokerTemplateInstanceSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: BrokerTemplateInstanceSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: BrokerTemplateInstanceSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TemplateInstance", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.TemplateInstance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Secret", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Secret.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BindingIDs", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.BindingIDs = append(m.BindingIDs, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ExtraValue) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ExtraValue: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ExtraValue: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - *m = append(*m, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Parameter) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Parameter: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Parameter: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DisplayName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DisplayName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Description = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Value = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Generate", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Generate = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field From", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.From = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Required", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Required = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Template) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Template: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Template: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Objects", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Objects = append(m.Objects, runtime.RawExtension{}) - if err := m.Objects[len(m.Objects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Parameters", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Parameters = append(m.Parameters, Parameter{}) - if err := m.Parameters[len(m.Parameters)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectLabels", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.ObjectLabels == nil { - m.ObjectLabels = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.ObjectLabels[mapkey] = mapvalue - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TemplateInstance) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TemplateInstance: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TemplateInstance: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TemplateInstanceCondition) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TemplateInstanceCondition: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TemplateInstanceCondition: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = TemplateInstanceConditionType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Reason = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TemplateInstanceList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TemplateInstanceList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TemplateInstanceList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, TemplateInstance{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TemplateInstanceObject) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TemplateInstanceObject: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TemplateInstanceObject: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Ref", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Ref.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TemplateInstanceRequester) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TemplateInstanceRequester: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TemplateInstanceRequester: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Username", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Username = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UID", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.UID = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Groups", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Extra", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Extra == nil { - m.Extra = make(map[string]ExtraValue) - } - var mapkey string - mapvalue := &ExtraValue{} - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if postmsgIndex < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue = &ExtraValue{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.Extra[mapkey] = *mapvalue - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TemplateInstanceSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TemplateInstanceSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TemplateInstanceSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Secret", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Secret == nil { - m.Secret = &v11.LocalObjectReference{} - } - if err := m.Secret.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Requester", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Requester == nil { - m.Requester = &TemplateInstanceRequester{} - } - if err := m.Requester.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TemplateInstanceStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TemplateInstanceStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TemplateInstanceStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Conditions = append(m.Conditions, TemplateInstanceCondition{}) - if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Objects", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Objects = append(m.Objects, TemplateInstanceObject{}) - if err := m.Objects[len(m.Objects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *TemplateList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: TemplateList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: TemplateList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, Template{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/vendor/github.com/openshift/api/template/v1/generated.proto b/vendor/github.com/openshift/api/template/v1/generated.proto deleted file mode 100644 index 5c017e228f03f..0000000000000 --- a/vendor/github.com/openshift/api/template/v1/generated.proto +++ /dev/null @@ -1,232 +0,0 @@ - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = 'proto2'; - -package github.com.openshift.api.template.v1; - -import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v1"; - -// BrokerTemplateInstance holds the service broker-related state associated with -// a TemplateInstance. BrokerTemplateInstance is part of an experimental API. -message BrokerTemplateInstance { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // spec describes the state of this BrokerTemplateInstance. - optional BrokerTemplateInstanceSpec spec = 2; -} - -// BrokerTemplateInstanceList is a list of BrokerTemplateInstance objects. -message BrokerTemplateInstanceList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // items is a list of BrokerTemplateInstances - repeated BrokerTemplateInstance items = 2; -} - -// BrokerTemplateInstanceSpec describes the state of a BrokerTemplateInstance. -message BrokerTemplateInstanceSpec { - // templateinstance is a reference to a TemplateInstance object residing - // in a namespace. - optional k8s.io.api.core.v1.ObjectReference templateInstance = 1; - - // secret is a reference to a Secret object residing in a namespace, - // containing the necessary template parameters. - optional k8s.io.api.core.v1.ObjectReference secret = 2; - - // bindingids is a list of 'binding_id's provided during successive bind - // calls to the template service broker. - repeated string bindingIDs = 3; -} - -// ExtraValue masks the value so protobuf can generate -// +protobuf.nullable=true -// +protobuf.options.(gogoproto.goproto_stringer)=false -message ExtraValue { - // items, if empty, will result in an empty slice - - repeated string items = 1; -} - -// Parameter defines a name/value variable that is to be processed during -// the Template to Config transformation. -message Parameter { - // Name must be set and it can be referenced in Template - // Items using ${PARAMETER_NAME}. Required. - optional string name = 1; - - // Optional: The name that will show in UI instead of parameter 'Name' - optional string displayName = 2; - - // Description of a parameter. Optional. - optional string description = 3; - - // Value holds the Parameter data. If specified, the generator will be - // ignored. The value replaces all occurrences of the Parameter ${Name} - // expression during the Template to Config transformation. Optional. - optional string value = 4; - - // generate specifies the generator to be used to generate random string - // from an input value specified by From field. The result string is - // stored into Value field. If empty, no generator is being used, leaving - // the result Value untouched. Optional. - // - // The only supported generator is "expression", which accepts a "from" - // value in the form of a simple regular expression containing the - // range expression "[a-zA-Z0-9]", and the length expression "a{length}". - // - // Examples: - // - // from | value - // ----------------------------- - // "test[0-9]{1}x" | "test7x" - // "[0-1]{8}" | "01001100" - // "0x[A-F0-9]{4}" | "0xB3AF" - // "[a-zA-Z0-9]{8}" | "hW4yQU5i" - optional string generate = 5; - - // From is an input value for the generator. Optional. - optional string from = 6; - - // Optional: Indicates the parameter must have a value. Defaults to false. - optional bool required = 7; -} - -// Template contains the inputs needed to produce a Config. -message Template { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // message is an optional instructional message that will - // be displayed when this template is instantiated. - // This field should inform the user how to utilize the newly created resources. - // Parameter substitution will be performed on the message before being - // displayed so that generated credentials and other parameters can be - // included in the output. - optional string message = 2; - - // objects is an array of resources to include in this template. - // If a namespace value is hardcoded in the object, it will be removed - // during template instantiation, however if the namespace value - // is, or contains, a ${PARAMETER_REFERENCE}, the resolved - // value after parameter substitution will be respected and the object - // will be created in that namespace. - // +kubebuilder:pruning:PreserveUnknownFields - repeated k8s.io.apimachinery.pkg.runtime.RawExtension objects = 3; - - // parameters is an optional array of Parameters used during the - // Template to Config transformation. - repeated Parameter parameters = 4; - - // labels is a optional set of labels that are applied to every - // object during the Template to Config transformation. - map labels = 5; -} - -// TemplateInstance requests and records the instantiation of a Template. -// TemplateInstance is part of an experimental API. -message TemplateInstance { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // spec describes the desired state of this TemplateInstance. - optional TemplateInstanceSpec spec = 2; - - // status describes the current state of this TemplateInstance. - // +optional - optional TemplateInstanceStatus status = 3; -} - -// TemplateInstanceCondition contains condition information for a -// TemplateInstance. -message TemplateInstanceCondition { - // Type of the condition, currently Ready or InstantiateFailure. - optional string type = 1; - - // Status of the condition, one of True, False or Unknown. - optional string status = 2; - - // LastTransitionTime is the last time a condition status transitioned from - // one state to another. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; - - // Reason is a brief machine readable explanation for the condition's last - // transition. - optional string reason = 4; - - // Message is a human readable description of the details of the last - // transition, complementing reason. - optional string message = 5; -} - -// TemplateInstanceList is a list of TemplateInstance objects. -message TemplateInstanceList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // items is a list of Templateinstances - repeated TemplateInstance items = 2; -} - -// TemplateInstanceObject references an object created by a TemplateInstance. -message TemplateInstanceObject { - // ref is a reference to the created object. When used under .spec, only - // name and namespace are used; these can contain references to parameters - // which will be substituted following the usual rules. - optional k8s.io.api.core.v1.ObjectReference ref = 1; -} - -// TemplateInstanceRequester holds the identity of an agent requesting a -// template instantiation. -message TemplateInstanceRequester { - // username uniquely identifies this user among all active users. - optional string username = 1; - - // uid is a unique value that identifies this user across time; if this user is - // deleted and another user by the same name is added, they will have - // different UIDs. - optional string uid = 2; - - // groups represent the groups this user is a part of. - repeated string groups = 3; - - // extra holds additional information provided by the authenticator. - map extra = 4; -} - -// TemplateInstanceSpec describes the desired state of a TemplateInstance. -message TemplateInstanceSpec { - // template is a full copy of the template for instantiation. - optional Template template = 1; - - // secret is a reference to a Secret object containing the necessary - // template parameters. - optional k8s.io.api.core.v1.LocalObjectReference secret = 2; - - // requester holds the identity of the agent requesting the template - // instantiation. - // +optional - optional TemplateInstanceRequester requester = 3; -} - -// TemplateInstanceStatus describes the current state of a TemplateInstance. -message TemplateInstanceStatus { - // conditions represent the latest available observations of a - // TemplateInstance's current state. - repeated TemplateInstanceCondition conditions = 1; - - // Objects references the objects created by the TemplateInstance. - repeated TemplateInstanceObject objects = 2; -} - -// TemplateList is a list of Template objects. -message TemplateList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is a list of templates - repeated Template items = 2; -} - diff --git a/vendor/github.com/openshift/api/template/v1/legacy.go b/vendor/github.com/openshift/api/template/v1/legacy.go deleted file mode 100644 index 9266f3ac9e69f..0000000000000 --- a/vendor/github.com/openshift/api/template/v1/legacy.go +++ /dev/null @@ -1,24 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - legacyGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} - legacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, corev1.AddToScheme) - DeprecatedInstallWithoutGroup = legacySchemeBuilder.AddToScheme -) - -func addLegacyKnownTypes(scheme *runtime.Scheme) error { - types := []runtime.Object{ - &Template{}, - &TemplateList{}, - } - scheme.AddKnownTypes(legacyGroupVersion, types...) - scheme.AddKnownTypeWithName(legacyGroupVersion.WithKind("TemplateConfig"), &Template{}) - scheme.AddKnownTypeWithName(legacyGroupVersion.WithKind("ProcessedTemplate"), &Template{}) - return nil -} diff --git a/vendor/github.com/openshift/api/template/v1/register.go b/vendor/github.com/openshift/api/template/v1/register.go deleted file mode 100644 index e34ff5610b603..0000000000000 --- a/vendor/github.com/openshift/api/template/v1/register.go +++ /dev/null @@ -1,43 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - GroupName = "template.openshift.io" - GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, corev1.AddToScheme) - // Install is a function which adds this version to a scheme - Install = schemeBuilder.AddToScheme - - // SchemeGroupVersion generated code relies on this name - // Deprecated - SchemeGroupVersion = GroupVersion - // AddToScheme exists solely to keep the old generators creating valid code - // DEPRECATED - AddToScheme = schemeBuilder.AddToScheme -) - -// Resource generated code relies on this being here, but it logically belongs to the group -// DEPRECATED -func Resource(resource string) schema.GroupResource { - return schema.GroupResource{Group: GroupName, Resource: resource} -} - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &Template{}, - &TemplateList{}, - &TemplateInstance{}, - &TemplateInstanceList{}, - &BrokerTemplateInstance{}, - &BrokerTemplateInstanceList{}, - ) - metav1.AddToGroupVersion(scheme, GroupVersion) - return nil -} diff --git a/vendor/github.com/openshift/api/template/v1/types.go b/vendor/github.com/openshift/api/template/v1/types.go deleted file mode 100644 index 566c0af5feacb..0000000000000 --- a/vendor/github.com/openshift/api/template/v1/types.go +++ /dev/null @@ -1,258 +0,0 @@ -package v1 - -import ( - "fmt" - - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -// +genclient -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Template contains the inputs needed to produce a Config. -type Template struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // message is an optional instructional message that will - // be displayed when this template is instantiated. - // This field should inform the user how to utilize the newly created resources. - // Parameter substitution will be performed on the message before being - // displayed so that generated credentials and other parameters can be - // included in the output. - Message string `json:"message,omitempty" protobuf:"bytes,2,opt,name=message"` - - // objects is an array of resources to include in this template. - // If a namespace value is hardcoded in the object, it will be removed - // during template instantiation, however if the namespace value - // is, or contains, a ${PARAMETER_REFERENCE}, the resolved - // value after parameter substitution will be respected and the object - // will be created in that namespace. - // +kubebuilder:pruning:PreserveUnknownFields - Objects []runtime.RawExtension `json:"objects" protobuf:"bytes,3,rep,name=objects"` - - // parameters is an optional array of Parameters used during the - // Template to Config transformation. - Parameters []Parameter `json:"parameters,omitempty" protobuf:"bytes,4,rep,name=parameters"` - - // labels is a optional set of labels that are applied to every - // object during the Template to Config transformation. - ObjectLabels map[string]string `json:"labels,omitempty" protobuf:"bytes,5,rep,name=labels"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// TemplateList is a list of Template objects. -type TemplateList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is a list of templates - Items []Template `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// Parameter defines a name/value variable that is to be processed during -// the Template to Config transformation. -type Parameter struct { - // Name must be set and it can be referenced in Template - // Items using ${PARAMETER_NAME}. Required. - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - - // Optional: The name that will show in UI instead of parameter 'Name' - DisplayName string `json:"displayName,omitempty" protobuf:"bytes,2,opt,name=displayName"` - - // Description of a parameter. Optional. - Description string `json:"description,omitempty" protobuf:"bytes,3,opt,name=description"` - - // Value holds the Parameter data. If specified, the generator will be - // ignored. The value replaces all occurrences of the Parameter ${Name} - // expression during the Template to Config transformation. Optional. - Value string `json:"value,omitempty" protobuf:"bytes,4,opt,name=value"` - - // generate specifies the generator to be used to generate random string - // from an input value specified by From field. The result string is - // stored into Value field. If empty, no generator is being used, leaving - // the result Value untouched. Optional. - // - // The only supported generator is "expression", which accepts a "from" - // value in the form of a simple regular expression containing the - // range expression "[a-zA-Z0-9]", and the length expression "a{length}". - // - // Examples: - // - // from | value - // ----------------------------- - // "test[0-9]{1}x" | "test7x" - // "[0-1]{8}" | "01001100" - // "0x[A-F0-9]{4}" | "0xB3AF" - // "[a-zA-Z0-9]{8}" | "hW4yQU5i" - // - Generate string `json:"generate,omitempty" protobuf:"bytes,5,opt,name=generate"` - - // From is an input value for the generator. Optional. - From string `json:"from,omitempty" protobuf:"bytes,6,opt,name=from"` - - // Optional: Indicates the parameter must have a value. Defaults to false. - Required bool `json:"required,omitempty" protobuf:"varint,7,opt,name=required"` -} - -// +genclient -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// TemplateInstance requests and records the instantiation of a Template. -// TemplateInstance is part of an experimental API. -type TemplateInstance struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // spec describes the desired state of this TemplateInstance. - Spec TemplateInstanceSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` - - // status describes the current state of this TemplateInstance. - // +optional - Status TemplateInstanceStatus `json:"status" protobuf:"bytes,3,opt,name=status"` -} - -// TemplateInstanceSpec describes the desired state of a TemplateInstance. -type TemplateInstanceSpec struct { - // template is a full copy of the template for instantiation. - Template Template `json:"template" protobuf:"bytes,1,opt,name=template"` - - // secret is a reference to a Secret object containing the necessary - // template parameters. - Secret *corev1.LocalObjectReference `json:"secret,omitempty" protobuf:"bytes,2,opt,name=secret"` - - // requester holds the identity of the agent requesting the template - // instantiation. - // +optional - Requester *TemplateInstanceRequester `json:"requester" protobuf:"bytes,3,opt,name=requester"` -} - -// TemplateInstanceRequester holds the identity of an agent requesting a -// template instantiation. -type TemplateInstanceRequester struct { - // username uniquely identifies this user among all active users. - Username string `json:"username,omitempty" protobuf:"bytes,1,opt,name=username"` - - // uid is a unique value that identifies this user across time; if this user is - // deleted and another user by the same name is added, they will have - // different UIDs. - UID string `json:"uid,omitempty" protobuf:"bytes,2,opt,name=uid"` - - // groups represent the groups this user is a part of. - Groups []string `json:"groups,omitempty" protobuf:"bytes,3,rep,name=groups"` - - // extra holds additional information provided by the authenticator. - Extra map[string]ExtraValue `json:"extra,omitempty" protobuf:"bytes,4,rep,name=extra"` -} - -// ExtraValue masks the value so protobuf can generate -// +protobuf.nullable=true -// +protobuf.options.(gogoproto.goproto_stringer)=false -type ExtraValue []string - -func (t ExtraValue) String() string { - return fmt.Sprintf("%v", []string(t)) -} - -// TemplateInstanceStatus describes the current state of a TemplateInstance. -type TemplateInstanceStatus struct { - // conditions represent the latest available observations of a - // TemplateInstance's current state. - Conditions []TemplateInstanceCondition `json:"conditions,omitempty" protobuf:"bytes,1,rep,name=conditions"` - - // Objects references the objects created by the TemplateInstance. - Objects []TemplateInstanceObject `json:"objects,omitempty" protobuf:"bytes,2,rep,name=objects"` -} - -// TemplateInstanceCondition contains condition information for a -// TemplateInstance. -type TemplateInstanceCondition struct { - // Type of the condition, currently Ready or InstantiateFailure. - Type TemplateInstanceConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=TemplateInstanceConditionType"` - // Status of the condition, one of True, False or Unknown. - Status corev1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status"` - // LastTransitionTime is the last time a condition status transitioned from - // one state to another. - LastTransitionTime metav1.Time `json:"lastTransitionTime" protobuf:"bytes,3,opt,name=lastTransitionTime"` - // Reason is a brief machine readable explanation for the condition's last - // transition. - Reason string `json:"reason" protobuf:"bytes,4,opt,name=reason"` - // Message is a human readable description of the details of the last - // transition, complementing reason. - Message string `json:"message" protobuf:"bytes,5,opt,name=message"` -} - -// TemplateInstanceConditionType is the type of condition pertaining to a -// TemplateInstance. -type TemplateInstanceConditionType string - -const ( - // TemplateInstanceReady indicates the readiness of the template - // instantiation. - TemplateInstanceReady TemplateInstanceConditionType = "Ready" - // TemplateInstanceInstantiateFailure indicates the failure of the template - // instantiation - TemplateInstanceInstantiateFailure TemplateInstanceConditionType = "InstantiateFailure" -) - -// TemplateInstanceObject references an object created by a TemplateInstance. -type TemplateInstanceObject struct { - // ref is a reference to the created object. When used under .spec, only - // name and namespace are used; these can contain references to parameters - // which will be substituted following the usual rules. - Ref corev1.ObjectReference `json:"ref,omitempty" protobuf:"bytes,1,opt,name=ref"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// TemplateInstanceList is a list of TemplateInstance objects. -type TemplateInstanceList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // items is a list of Templateinstances - Items []TemplateInstance `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// BrokerTemplateInstance holds the service broker-related state associated with -// a TemplateInstance. BrokerTemplateInstance is part of an experimental API. -type BrokerTemplateInstance struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // spec describes the state of this BrokerTemplateInstance. - Spec BrokerTemplateInstanceSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` -} - -// BrokerTemplateInstanceSpec describes the state of a BrokerTemplateInstance. -type BrokerTemplateInstanceSpec struct { - // templateinstance is a reference to a TemplateInstance object residing - // in a namespace. - TemplateInstance corev1.ObjectReference `json:"templateInstance" protobuf:"bytes,1,opt,name=templateInstance"` - - // secret is a reference to a Secret object residing in a namespace, - // containing the necessary template parameters. - Secret corev1.ObjectReference `json:"secret" protobuf:"bytes,2,opt,name=secret"` - - // bindingids is a list of 'binding_id's provided during successive bind - // calls to the template service broker. - BindingIDs []string `json:"bindingIDs,omitempty" protobuf:"bytes,3,rep,name=bindingIDs"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// BrokerTemplateInstanceList is a list of BrokerTemplateInstance objects. -type BrokerTemplateInstanceList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // items is a list of BrokerTemplateInstances - Items []BrokerTemplateInstance `json:"items" protobuf:"bytes,2,rep,name=items"` -} diff --git a/vendor/github.com/openshift/api/template/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/template/v1/zz_generated.deepcopy.go deleted file mode 100644 index ef6c4ee3002c0..0000000000000 --- a/vendor/github.com/openshift/api/template/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,393 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - corev1 "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 *BrokerTemplateInstance) DeepCopyInto(out *BrokerTemplateInstance) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BrokerTemplateInstance. -func (in *BrokerTemplateInstance) DeepCopy() *BrokerTemplateInstance { - if in == nil { - return nil - } - out := new(BrokerTemplateInstance) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *BrokerTemplateInstance) 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 *BrokerTemplateInstanceList) DeepCopyInto(out *BrokerTemplateInstanceList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]BrokerTemplateInstance, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BrokerTemplateInstanceList. -func (in *BrokerTemplateInstanceList) DeepCopy() *BrokerTemplateInstanceList { - if in == nil { - return nil - } - out := new(BrokerTemplateInstanceList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *BrokerTemplateInstanceList) 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 *BrokerTemplateInstanceSpec) DeepCopyInto(out *BrokerTemplateInstanceSpec) { - *out = *in - out.TemplateInstance = in.TemplateInstance - out.Secret = in.Secret - if in.BindingIDs != nil { - in, out := &in.BindingIDs, &out.BindingIDs - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BrokerTemplateInstanceSpec. -func (in *BrokerTemplateInstanceSpec) DeepCopy() *BrokerTemplateInstanceSpec { - if in == nil { - return nil - } - out := new(BrokerTemplateInstanceSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in ExtraValue) DeepCopyInto(out *ExtraValue) { - { - in := &in - *out = make(ExtraValue, len(*in)) - copy(*out, *in) - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraValue. -func (in ExtraValue) DeepCopy() ExtraValue { - if in == nil { - return nil - } - out := new(ExtraValue) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Parameter) DeepCopyInto(out *Parameter) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Parameter. -func (in *Parameter) DeepCopy() *Parameter { - if in == nil { - return nil - } - out := new(Parameter) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Template) DeepCopyInto(out *Template) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Objects != nil { - in, out := &in.Objects, &out.Objects - *out = make([]runtime.RawExtension, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Parameters != nil { - in, out := &in.Parameters, &out.Parameters - *out = make([]Parameter, len(*in)) - copy(*out, *in) - } - if in.ObjectLabels != nil { - in, out := &in.ObjectLabels, &out.ObjectLabels - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Template. -func (in *Template) DeepCopy() *Template { - if in == nil { - return nil - } - out := new(Template) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Template) 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 *TemplateInstance) DeepCopyInto(out *TemplateInstance) { - *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 TemplateInstance. -func (in *TemplateInstance) DeepCopy() *TemplateInstance { - if in == nil { - return nil - } - out := new(TemplateInstance) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *TemplateInstance) 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 *TemplateInstanceCondition) DeepCopyInto(out *TemplateInstanceCondition) { - *out = *in - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateInstanceCondition. -func (in *TemplateInstanceCondition) DeepCopy() *TemplateInstanceCondition { - if in == nil { - return nil - } - out := new(TemplateInstanceCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TemplateInstanceList) DeepCopyInto(out *TemplateInstanceList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]TemplateInstance, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateInstanceList. -func (in *TemplateInstanceList) DeepCopy() *TemplateInstanceList { - if in == nil { - return nil - } - out := new(TemplateInstanceList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *TemplateInstanceList) 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 *TemplateInstanceObject) DeepCopyInto(out *TemplateInstanceObject) { - *out = *in - out.Ref = in.Ref - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateInstanceObject. -func (in *TemplateInstanceObject) DeepCopy() *TemplateInstanceObject { - if in == nil { - return nil - } - out := new(TemplateInstanceObject) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TemplateInstanceRequester) DeepCopyInto(out *TemplateInstanceRequester) { - *out = *in - if in.Groups != nil { - in, out := &in.Groups, &out.Groups - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Extra != nil { - in, out := &in.Extra, &out.Extra - *out = make(map[string]ExtraValue, len(*in)) - for key, val := range *in { - var outVal []string - if val == nil { - (*out)[key] = nil - } else { - in, out := &val, &outVal - *out = make(ExtraValue, len(*in)) - copy(*out, *in) - } - (*out)[key] = outVal - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateInstanceRequester. -func (in *TemplateInstanceRequester) DeepCopy() *TemplateInstanceRequester { - if in == nil { - return nil - } - out := new(TemplateInstanceRequester) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TemplateInstanceSpec) DeepCopyInto(out *TemplateInstanceSpec) { - *out = *in - in.Template.DeepCopyInto(&out.Template) - if in.Secret != nil { - in, out := &in.Secret, &out.Secret - *out = new(corev1.LocalObjectReference) - **out = **in - } - if in.Requester != nil { - in, out := &in.Requester, &out.Requester - *out = new(TemplateInstanceRequester) - (*in).DeepCopyInto(*out) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateInstanceSpec. -func (in *TemplateInstanceSpec) DeepCopy() *TemplateInstanceSpec { - if in == nil { - return nil - } - out := new(TemplateInstanceSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TemplateInstanceStatus) DeepCopyInto(out *TemplateInstanceStatus) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]TemplateInstanceCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Objects != nil { - in, out := &in.Objects, &out.Objects - *out = make([]TemplateInstanceObject, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateInstanceStatus. -func (in *TemplateInstanceStatus) DeepCopy() *TemplateInstanceStatus { - if in == nil { - return nil - } - out := new(TemplateInstanceStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TemplateList) DeepCopyInto(out *TemplateList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Template, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemplateList. -func (in *TemplateList) DeepCopy() *TemplateList { - if in == nil { - return nil - } - out := new(TemplateList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *TemplateList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/vendor/github.com/openshift/api/template/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/template/v1/zz_generated.swagger_doc_generated.go deleted file mode 100644 index bbf8153101cb1..0000000000000 --- a/vendor/github.com/openshift/api/template/v1/zz_generated.swagger_doc_generated.go +++ /dev/null @@ -1,153 +0,0 @@ -package v1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE -var map_BrokerTemplateInstance = map[string]string{ - "": "BrokerTemplateInstance holds the service broker-related state associated with a TemplateInstance. BrokerTemplateInstance is part of an experimental API.", - "spec": "spec describes the state of this BrokerTemplateInstance.", -} - -func (BrokerTemplateInstance) SwaggerDoc() map[string]string { - return map_BrokerTemplateInstance -} - -var map_BrokerTemplateInstanceList = map[string]string{ - "": "BrokerTemplateInstanceList is a list of BrokerTemplateInstance objects.", - "items": "items is a list of BrokerTemplateInstances", -} - -func (BrokerTemplateInstanceList) SwaggerDoc() map[string]string { - return map_BrokerTemplateInstanceList -} - -var map_BrokerTemplateInstanceSpec = map[string]string{ - "": "BrokerTemplateInstanceSpec describes the state of a BrokerTemplateInstance.", - "templateInstance": "templateinstance is a reference to a TemplateInstance object residing in a namespace.", - "secret": "secret is a reference to a Secret object residing in a namespace, containing the necessary template parameters.", - "bindingIDs": "bindingids is a list of 'binding_id's provided during successive bind calls to the template service broker.", -} - -func (BrokerTemplateInstanceSpec) SwaggerDoc() map[string]string { - return map_BrokerTemplateInstanceSpec -} - -var map_Parameter = map[string]string{ - "": "Parameter defines a name/value variable that is to be processed during the Template to Config transformation.", - "name": "Name must be set and it can be referenced in Template Items using ${PARAMETER_NAME}. Required.", - "displayName": "Optional: The name that will show in UI instead of parameter 'Name'", - "description": "Description of a parameter. Optional.", - "value": "Value holds the Parameter data. If specified, the generator will be ignored. The value replaces all occurrences of the Parameter ${Name} expression during the Template to Config transformation. Optional.", - "generate": "generate specifies the generator to be used to generate random string from an input value specified by From field. The result string is stored into Value field. If empty, no generator is being used, leaving the result Value untouched. Optional.\n\nThe only supported generator is \"expression\", which accepts a \"from\" value in the form of a simple regular expression containing the range expression \"[a-zA-Z0-9]\", and the length expression \"a{length}\".\n\nExamples:\n\nfrom | value", - "from": "From is an input value for the generator. Optional.", - "required": "Optional: Indicates the parameter must have a value. Defaults to false.", -} - -func (Parameter) SwaggerDoc() map[string]string { - return map_Parameter -} - -var map_Template = map[string]string{ - "": "Template contains the inputs needed to produce a Config.", - "message": "message is an optional instructional message that will be displayed when this template is instantiated. This field should inform the user how to utilize the newly created resources. Parameter substitution will be performed on the message before being displayed so that generated credentials and other parameters can be included in the output.", - "objects": "objects is an array of resources to include in this template. If a namespace value is hardcoded in the object, it will be removed during template instantiation, however if the namespace value is, or contains, a ${PARAMETER_REFERENCE}, the resolved value after parameter substitution will be respected and the object will be created in that namespace.", - "parameters": "parameters is an optional array of Parameters used during the Template to Config transformation.", - "labels": "labels is a optional set of labels that are applied to every object during the Template to Config transformation.", -} - -func (Template) SwaggerDoc() map[string]string { - return map_Template -} - -var map_TemplateInstance = map[string]string{ - "": "TemplateInstance requests and records the instantiation of a Template. TemplateInstance is part of an experimental API.", - "spec": "spec describes the desired state of this TemplateInstance.", - "status": "status describes the current state of this TemplateInstance.", -} - -func (TemplateInstance) SwaggerDoc() map[string]string { - return map_TemplateInstance -} - -var map_TemplateInstanceCondition = map[string]string{ - "": "TemplateInstanceCondition contains condition information for a TemplateInstance.", - "type": "Type of the condition, currently Ready or InstantiateFailure.", - "status": "Status of the condition, one of True, False or Unknown.", - "lastTransitionTime": "LastTransitionTime is the last time a condition status transitioned from one state to another.", - "reason": "Reason is a brief machine readable explanation for the condition's last transition.", - "message": "Message is a human readable description of the details of the last transition, complementing reason.", -} - -func (TemplateInstanceCondition) SwaggerDoc() map[string]string { - return map_TemplateInstanceCondition -} - -var map_TemplateInstanceList = map[string]string{ - "": "TemplateInstanceList is a list of TemplateInstance objects.", - "items": "items is a list of Templateinstances", -} - -func (TemplateInstanceList) SwaggerDoc() map[string]string { - return map_TemplateInstanceList -} - -var map_TemplateInstanceObject = map[string]string{ - "": "TemplateInstanceObject references an object created by a TemplateInstance.", - "ref": "ref is a reference to the created object. When used under .spec, only name and namespace are used; these can contain references to parameters which will be substituted following the usual rules.", -} - -func (TemplateInstanceObject) SwaggerDoc() map[string]string { - return map_TemplateInstanceObject -} - -var map_TemplateInstanceRequester = map[string]string{ - "": "TemplateInstanceRequester holds the identity of an agent requesting a template instantiation.", - "username": "username uniquely identifies this user among all active users.", - "uid": "uid is a unique value that identifies this user across time; if this user is deleted and another user by the same name is added, they will have different UIDs.", - "groups": "groups represent the groups this user is a part of.", - "extra": "extra holds additional information provided by the authenticator.", -} - -func (TemplateInstanceRequester) SwaggerDoc() map[string]string { - return map_TemplateInstanceRequester -} - -var map_TemplateInstanceSpec = map[string]string{ - "": "TemplateInstanceSpec describes the desired state of a TemplateInstance.", - "template": "template is a full copy of the template for instantiation.", - "secret": "secret is a reference to a Secret object containing the necessary template parameters.", - "requester": "requester holds the identity of the agent requesting the template instantiation.", -} - -func (TemplateInstanceSpec) SwaggerDoc() map[string]string { - return map_TemplateInstanceSpec -} - -var map_TemplateInstanceStatus = map[string]string{ - "": "TemplateInstanceStatus describes the current state of a TemplateInstance.", - "conditions": "conditions represent the latest available observations of a TemplateInstance's current state.", - "objects": "Objects references the objects created by the TemplateInstance.", -} - -func (TemplateInstanceStatus) SwaggerDoc() map[string]string { - return map_TemplateInstanceStatus -} - -var map_TemplateList = map[string]string{ - "": "TemplateList is a list of Template objects.", - "items": "Items is a list of templates", -} - -func (TemplateList) SwaggerDoc() map[string]string { - return map_TemplateList -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/github.com/openshift/api/user/v1/doc.go b/vendor/github.com/openshift/api/user/v1/doc.go deleted file mode 100644 index 42287095e242a..0000000000000 --- a/vendor/github.com/openshift/api/user/v1/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=github.com/openshift/origin/pkg/user/apis/user -// +k8s:defaulter-gen=TypeMeta -// +k8s:openapi-gen=true - -// +groupName=user.openshift.io -// Package v1 is the v1 version of the API. -package v1 diff --git a/vendor/github.com/openshift/api/user/v1/generated.pb.go b/vendor/github.com/openshift/api/user/v1/generated.pb.go deleted file mode 100644 index f2d5da0bcd105..0000000000000 --- a/vendor/github.com/openshift/api/user/v1/generated.pb.go +++ /dev/null @@ -1,2298 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: github.com/openshift/api/user/v1/generated.proto - -package v1 - -import ( - fmt "fmt" - - io "io" - - proto "github.com/gogo/protobuf/proto" - github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - - math "math" - math_bits "math/bits" - reflect "reflect" - strings "strings" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -func (m *Group) Reset() { *m = Group{} } -func (*Group) ProtoMessage() {} -func (*Group) Descriptor() ([]byte, []int) { - return fileDescriptor_ea159b02d89a1362, []int{0} -} -func (m *Group) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Group) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *Group) XXX_Merge(src proto.Message) { - xxx_messageInfo_Group.Merge(m, src) -} -func (m *Group) XXX_Size() int { - return m.Size() -} -func (m *Group) XXX_DiscardUnknown() { - xxx_messageInfo_Group.DiscardUnknown(m) -} - -var xxx_messageInfo_Group proto.InternalMessageInfo - -func (m *GroupList) Reset() { *m = GroupList{} } -func (*GroupList) ProtoMessage() {} -func (*GroupList) Descriptor() ([]byte, []int) { - return fileDescriptor_ea159b02d89a1362, []int{1} -} -func (m *GroupList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *GroupList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *GroupList) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupList.Merge(m, src) -} -func (m *GroupList) XXX_Size() int { - return m.Size() -} -func (m *GroupList) XXX_DiscardUnknown() { - xxx_messageInfo_GroupList.DiscardUnknown(m) -} - -var xxx_messageInfo_GroupList proto.InternalMessageInfo - -func (m *Identity) Reset() { *m = Identity{} } -func (*Identity) ProtoMessage() {} -func (*Identity) Descriptor() ([]byte, []int) { - return fileDescriptor_ea159b02d89a1362, []int{2} -} -func (m *Identity) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Identity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *Identity) XXX_Merge(src proto.Message) { - xxx_messageInfo_Identity.Merge(m, src) -} -func (m *Identity) XXX_Size() int { - return m.Size() -} -func (m *Identity) XXX_DiscardUnknown() { - xxx_messageInfo_Identity.DiscardUnknown(m) -} - -var xxx_messageInfo_Identity proto.InternalMessageInfo - -func (m *IdentityList) Reset() { *m = IdentityList{} } -func (*IdentityList) ProtoMessage() {} -func (*IdentityList) Descriptor() ([]byte, []int) { - return fileDescriptor_ea159b02d89a1362, []int{3} -} -func (m *IdentityList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *IdentityList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *IdentityList) XXX_Merge(src proto.Message) { - xxx_messageInfo_IdentityList.Merge(m, src) -} -func (m *IdentityList) XXX_Size() int { - return m.Size() -} -func (m *IdentityList) XXX_DiscardUnknown() { - xxx_messageInfo_IdentityList.DiscardUnknown(m) -} - -var xxx_messageInfo_IdentityList proto.InternalMessageInfo - -func (m *OptionalNames) Reset() { *m = OptionalNames{} } -func (*OptionalNames) ProtoMessage() {} -func (*OptionalNames) Descriptor() ([]byte, []int) { - return fileDescriptor_ea159b02d89a1362, []int{4} -} -func (m *OptionalNames) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *OptionalNames) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *OptionalNames) XXX_Merge(src proto.Message) { - xxx_messageInfo_OptionalNames.Merge(m, src) -} -func (m *OptionalNames) XXX_Size() int { - return m.Size() -} -func (m *OptionalNames) XXX_DiscardUnknown() { - xxx_messageInfo_OptionalNames.DiscardUnknown(m) -} - -var xxx_messageInfo_OptionalNames proto.InternalMessageInfo - -func (m *User) Reset() { *m = User{} } -func (*User) ProtoMessage() {} -func (*User) Descriptor() ([]byte, []int) { - return fileDescriptor_ea159b02d89a1362, []int{5} -} -func (m *User) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *User) XXX_Merge(src proto.Message) { - xxx_messageInfo_User.Merge(m, src) -} -func (m *User) XXX_Size() int { - return m.Size() -} -func (m *User) XXX_DiscardUnknown() { - xxx_messageInfo_User.DiscardUnknown(m) -} - -var xxx_messageInfo_User proto.InternalMessageInfo - -func (m *UserIdentityMapping) Reset() { *m = UserIdentityMapping{} } -func (*UserIdentityMapping) ProtoMessage() {} -func (*UserIdentityMapping) Descriptor() ([]byte, []int) { - return fileDescriptor_ea159b02d89a1362, []int{6} -} -func (m *UserIdentityMapping) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *UserIdentityMapping) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *UserIdentityMapping) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserIdentityMapping.Merge(m, src) -} -func (m *UserIdentityMapping) XXX_Size() int { - return m.Size() -} -func (m *UserIdentityMapping) XXX_DiscardUnknown() { - xxx_messageInfo_UserIdentityMapping.DiscardUnknown(m) -} - -var xxx_messageInfo_UserIdentityMapping proto.InternalMessageInfo - -func (m *UserList) Reset() { *m = UserList{} } -func (*UserList) ProtoMessage() {} -func (*UserList) Descriptor() ([]byte, []int) { - return fileDescriptor_ea159b02d89a1362, []int{7} -} -func (m *UserList) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *UserList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *UserList) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserList.Merge(m, src) -} -func (m *UserList) XXX_Size() int { - return m.Size() -} -func (m *UserList) XXX_DiscardUnknown() { - xxx_messageInfo_UserList.DiscardUnknown(m) -} - -var xxx_messageInfo_UserList proto.InternalMessageInfo - -func init() { - proto.RegisterType((*Group)(nil), "github.com.openshift.api.user.v1.Group") - proto.RegisterType((*GroupList)(nil), "github.com.openshift.api.user.v1.GroupList") - proto.RegisterType((*Identity)(nil), "github.com.openshift.api.user.v1.Identity") - proto.RegisterMapType((map[string]string)(nil), "github.com.openshift.api.user.v1.Identity.ExtraEntry") - proto.RegisterType((*IdentityList)(nil), "github.com.openshift.api.user.v1.IdentityList") - proto.RegisterType((*OptionalNames)(nil), "github.com.openshift.api.user.v1.OptionalNames") - proto.RegisterType((*User)(nil), "github.com.openshift.api.user.v1.User") - proto.RegisterType((*UserIdentityMapping)(nil), "github.com.openshift.api.user.v1.UserIdentityMapping") - proto.RegisterType((*UserList)(nil), "github.com.openshift.api.user.v1.UserList") -} - -func init() { - proto.RegisterFile("github.com/openshift/api/user/v1/generated.proto", fileDescriptor_ea159b02d89a1362) -} - -var fileDescriptor_ea159b02d89a1362 = []byte{ - // 724 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0x3d, 0x6f, 0x13, 0x4b, - 0x14, 0xf5, 0xd8, 0xde, 0xc8, 0x9e, 0x38, 0x4f, 0xd6, 0xbe, 0x14, 0x96, 0x8b, 0xb5, 0xb5, 0x4f, - 0x7a, 0xcf, 0x7a, 0x82, 0xd9, 0x38, 0x02, 0x64, 0xa5, 0xb4, 0x08, 0x28, 0x22, 0x21, 0x61, 0x24, - 0x9a, 0x88, 0x82, 0x89, 0x3d, 0x5e, 0x0f, 0xf6, 0x7e, 0x68, 0x77, 0xd6, 0xc2, 0x5d, 0x7e, 0x02, - 0x74, 0x94, 0xfc, 0x09, 0x44, 0x81, 0xe8, 0x43, 0x97, 0x32, 0x05, 0xb2, 0xc8, 0xd2, 0xf1, 0x2b, - 0xd0, 0xcc, 0x7e, 0x78, 0x9d, 0x0f, 0x39, 0x12, 0x92, 0xbb, 0x9d, 0x3b, 0xf7, 0x9c, 0x39, 0xf7, - 0xdc, 0x7b, 0x17, 0x6e, 0x99, 0x8c, 0x0f, 0x83, 0x13, 0xd4, 0x73, 0x2c, 0xc3, 0x71, 0xa9, 0xed, - 0x0f, 0xd9, 0x80, 0x1b, 0xc4, 0x65, 0x46, 0xe0, 0x53, 0xcf, 0x98, 0xb4, 0x0d, 0x93, 0xda, 0xd4, - 0x23, 0x9c, 0xf6, 0x91, 0xeb, 0x39, 0xdc, 0x51, 0x9b, 0x73, 0x04, 0x4a, 0x11, 0x88, 0xb8, 0x0c, - 0x09, 0x04, 0x9a, 0xb4, 0xeb, 0xf7, 0x33, 0x9c, 0xa6, 0x63, 0x3a, 0x86, 0x04, 0x9e, 0x04, 0x03, - 0x79, 0x92, 0x07, 0xf9, 0x15, 0x11, 0xd6, 0xf5, 0x51, 0xc7, 0x47, 0xcc, 0x91, 0x8f, 0xf6, 0x1c, - 0x8f, 0xde, 0xf0, 0x68, 0xfd, 0xc1, 0x3c, 0xc7, 0x22, 0xbd, 0x21, 0xb3, 0xa9, 0x37, 0x35, 0xdc, - 0x91, 0x29, 0x02, 0xbe, 0x61, 0x51, 0x4e, 0x6e, 0x42, 0x3d, 0xba, 0x0d, 0xe5, 0x05, 0x36, 0x67, - 0x16, 0x35, 0xfc, 0xde, 0x90, 0x5a, 0xe4, 0x2a, 0x4e, 0xff, 0x02, 0xa0, 0xf2, 0xd4, 0x73, 0x02, - 0x57, 0x7d, 0x0d, 0x4b, 0x82, 0xbc, 0x4f, 0x38, 0xa9, 0x81, 0x26, 0x68, 0xad, 0x6f, 0x6f, 0xa1, - 0x88, 0x14, 0x65, 0x49, 0x91, 0x3b, 0x32, 0x45, 0xc0, 0x47, 0x22, 0x1b, 0x4d, 0xda, 0xe8, 0xf0, - 0xe4, 0x0d, 0xed, 0xf1, 0x03, 0xca, 0x49, 0x57, 0x3d, 0x9b, 0x35, 0x72, 0xe1, 0xac, 0x01, 0xe7, - 0x31, 0x9c, 0xb2, 0xaa, 0x47, 0x50, 0x11, 0xbe, 0xf9, 0xb5, 0xbc, 0xa4, 0x37, 0xd0, 0x32, 0x7b, - 0xd1, 0xa1, 0xcb, 0x99, 0x63, 0x93, 0xf1, 0x73, 0x62, 0x51, 0xbf, 0x5b, 0x0e, 0x67, 0x0d, 0xe5, - 0xa5, 0x60, 0xc0, 0x11, 0x91, 0xfe, 0x19, 0xc0, 0xb2, 0x54, 0xbf, 0xcf, 0x7c, 0xae, 0xbe, 0xba, - 0x56, 0x01, 0xba, 0x5b, 0x05, 0x02, 0x2d, 0xf5, 0x57, 0x63, 0xfd, 0xa5, 0x24, 0x92, 0x51, 0xbf, - 0x0f, 0x15, 0xc6, 0xa9, 0x25, 0xd4, 0x17, 0x5a, 0xeb, 0xdb, 0xff, 0x2d, 0x57, 0x2f, 0x95, 0x75, - 0x37, 0x62, 0x4e, 0x65, 0x4f, 0xa0, 0x71, 0x44, 0xa2, 0x7f, 0x2b, 0xc0, 0xd2, 0x5e, 0x9f, 0xda, - 0x9c, 0xf1, 0xe9, 0x0a, 0xac, 0xef, 0xc0, 0x8a, 0xeb, 0x39, 0x13, 0xd6, 0xa7, 0x9e, 0xf0, 0x52, - 0x76, 0xa0, 0xdc, 0xdd, 0x8c, 0x31, 0x95, 0xa3, 0xcc, 0x1d, 0x5e, 0xc8, 0x54, 0x1f, 0xc3, 0x6a, - 0x72, 0x16, 0xd6, 0x4b, 0x74, 0x41, 0xa2, 0x6b, 0x31, 0xba, 0x7a, 0x74, 0xe5, 0x1e, 0x5f, 0x43, - 0xa8, 0xbb, 0xb0, 0x28, 0x5c, 0xa9, 0x15, 0x65, 0x75, 0xff, 0x64, 0xaa, 0x43, 0x62, 0x0f, 0xe6, - 0xb5, 0x60, 0x3a, 0xa0, 0x1e, 0xb5, 0x7b, 0xb4, 0x5b, 0x89, 0xe9, 0x8b, 0x82, 0x04, 0x4b, 0xb8, - 0x7a, 0x0c, 0x15, 0xfa, 0x96, 0x7b, 0xa4, 0xa6, 0xc8, 0x1e, 0x3c, 0x5c, 0xde, 0x83, 0xc4, 0x63, - 0xb4, 0x2b, 0x70, 0xbb, 0x36, 0xf7, 0xa6, 0xf3, 0x8e, 0xc8, 0x18, 0x8e, 0x28, 0xeb, 0x1d, 0x08, - 0xe7, 0x39, 0x6a, 0x15, 0x16, 0x46, 0x74, 0x2a, 0xbb, 0x51, 0xc6, 0xe2, 0x53, 0xdd, 0x84, 0xca, - 0x84, 0x8c, 0x83, 0xd8, 0x3b, 0x1c, 0x1d, 0x76, 0xf2, 0x1d, 0xa0, 0x7f, 0x05, 0xb0, 0x92, 0xbc, - 0xb3, 0x82, 0x41, 0x3c, 0x5c, 0x1c, 0xc4, 0xff, 0xef, 0x6e, 0xc2, 0x2d, 0xb3, 0xb8, 0x03, 0x37, - 0x16, 0x16, 0x4d, 0x6d, 0x24, 0x2f, 0x80, 0x66, 0xa1, 0x55, 0x8e, 0xf6, 0x2e, 0x8b, 0xd8, 0x29, - 0x7d, 0xf8, 0xd8, 0xc8, 0x9d, 0x7e, 0x6f, 0xe6, 0xf4, 0x5f, 0x00, 0xca, 0x06, 0xad, 0x60, 0x86, - 0xef, 0xc1, 0xd2, 0x20, 0x18, 0x8f, 0x33, 0xf3, 0x9b, 0xba, 0xf4, 0x24, 0x8e, 0xe3, 0x34, 0x43, - 0x45, 0x10, 0xb2, 0xa8, 0x6c, 0x46, 0xfd, 0x5a, 0x41, 0x16, 0xf2, 0x97, 0xe0, 0xde, 0x4b, 0xa3, - 0x38, 0x93, 0xa1, 0xea, 0x70, 0xcd, 0x14, 0xfb, 0xea, 0xd7, 0x8a, 0x32, 0x17, 0x86, 0xb3, 0xc6, - 0x9a, 0xdc, 0x60, 0x1f, 0xc7, 0x37, 0xfa, 0xfb, 0x3c, 0xfc, 0x5b, 0x14, 0x9b, 0xf8, 0x79, 0x40, - 0x5c, 0x97, 0xd9, 0xe6, 0x0a, 0x6a, 0x7f, 0x01, 0x4b, 0xb1, 0xd6, 0x69, 0xfc, 0xf7, 0xbc, 0xd3, - 0x0e, 0xa5, 0x06, 0x25, 0x8a, 0x71, 0x4a, 0x93, 0xae, 0x64, 0xe1, 0x8f, 0x56, 0x52, 0xff, 0x04, - 0x60, 0x49, 0x1c, 0x57, 0x30, 0xf8, 0xcf, 0x16, 0x07, 0xff, 0xdf, 0xe5, 0x83, 0x2f, 0x84, 0xdd, - 0x3c, 0xf4, 0xdd, 0xd6, 0xd9, 0xa5, 0x96, 0x3b, 0xbf, 0xd4, 0x72, 0x17, 0x97, 0x5a, 0xee, 0x34, - 0xd4, 0xc0, 0x59, 0xa8, 0x81, 0xf3, 0x50, 0x03, 0x17, 0xa1, 0x06, 0x7e, 0x84, 0x1a, 0x78, 0xf7, - 0x53, 0xcb, 0x1d, 0xe7, 0x27, 0xed, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x87, 0x3b, 0x61, 0x21, - 0x38, 0x08, 0x00, 0x00, -} - -func (m *Group) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Group) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Group) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.Users != nil { - { - size, err := m.Users.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *GroupList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *GroupList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *GroupList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *Identity) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Identity) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Identity) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Extra) > 0 { - keysForExtra := make([]string, 0, len(m.Extra)) - for k := range m.Extra { - keysForExtra = append(keysForExtra, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForExtra) - for iNdEx := len(keysForExtra) - 1; iNdEx >= 0; iNdEx-- { - v := m.Extra[string(keysForExtra[iNdEx])] - baseI := i - i -= len(v) - copy(dAtA[i:], v) - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i-- - dAtA[i] = 0x12 - i -= len(keysForExtra[iNdEx]) - copy(dAtA[i:], keysForExtra[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(keysForExtra[iNdEx]))) - i-- - dAtA[i] = 0xa - i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) - i-- - dAtA[i] = 0x2a - } - } - { - size, err := m.User.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - i -= len(m.ProviderUserName) - copy(dAtA[i:], m.ProviderUserName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ProviderUserName))) - i-- - dAtA[i] = 0x1a - i -= len(m.ProviderName) - copy(dAtA[i:], m.ProviderName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ProviderName))) - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *IdentityList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *IdentityList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *IdentityList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m OptionalNames) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m OptionalNames) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m OptionalNames) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m) > 0 { - for iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m[iNdEx]) - copy(dAtA[i:], m[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *User) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *User) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *User) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Groups) > 0 { - for iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Groups[iNdEx]) - copy(dAtA[i:], m.Groups[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx]))) - i-- - dAtA[i] = 0x22 - } - } - if len(m.Identities) > 0 { - for iNdEx := len(m.Identities) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Identities[iNdEx]) - copy(dAtA[i:], m.Identities[iNdEx]) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Identities[iNdEx]))) - i-- - dAtA[i] = 0x1a - } - } - i -= len(m.FullName) - copy(dAtA[i:], m.FullName) - i = encodeVarintGenerated(dAtA, i, uint64(len(m.FullName))) - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *UserIdentityMapping) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *UserIdentityMapping) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *UserIdentityMapping) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.User.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size, err := m.Identity.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func (m *UserList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *UserList) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *UserList) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - } - { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - offset -= sovGenerated(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *Group) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.Users != nil { - l = m.Users.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *GroupList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *Identity) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.ProviderName) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.ProviderUserName) - n += 1 + l + sovGenerated(uint64(l)) - l = m.User.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Extra) > 0 { - for k, v := range m.Extra { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - return n -} - -func (m *IdentityList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m OptionalNames) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m) > 0 { - for _, s := range m { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *User) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.FullName) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Identities) > 0 { - for _, s := range m.Identities { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.Groups) > 0 { - for _, s := range m.Groups { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *UserIdentityMapping) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Identity.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.User.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *UserList) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func sovGenerated(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *Group) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Group{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Users:` + strings.Replace(fmt.Sprintf("%v", this.Users), "OptionalNames", "OptionalNames", 1) + `,`, - `}`, - }, "") - return s -} -func (this *GroupList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]Group{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Group", "Group", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&GroupList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *Identity) String() string { - if this == nil { - return "nil" - } - keysForExtra := make([]string, 0, len(this.Extra)) - for k := range this.Extra { - keysForExtra = append(keysForExtra, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForExtra) - mapStringForExtra := "map[string]string{" - for _, k := range keysForExtra { - mapStringForExtra += fmt.Sprintf("%v: %v,", k, this.Extra[k]) - } - mapStringForExtra += "}" - s := strings.Join([]string{`&Identity{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `ProviderName:` + fmt.Sprintf("%v", this.ProviderName) + `,`, - `ProviderUserName:` + fmt.Sprintf("%v", this.ProviderUserName) + `,`, - `User:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.User), "ObjectReference", "v11.ObjectReference", 1), `&`, ``, 1) + `,`, - `Extra:` + mapStringForExtra + `,`, - `}`, - }, "") - return s -} -func (this *IdentityList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]Identity{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Identity", "Identity", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&IdentityList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func (this *User) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&User{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `FullName:` + fmt.Sprintf("%v", this.FullName) + `,`, - `Identities:` + fmt.Sprintf("%v", this.Identities) + `,`, - `Groups:` + fmt.Sprintf("%v", this.Groups) + `,`, - `}`, - }, "") - return s -} -func (this *UserIdentityMapping) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&UserIdentityMapping{`, - `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Identity:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Identity), "ObjectReference", "v11.ObjectReference", 1), `&`, ``, 1) + `,`, - `User:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.User), "ObjectReference", "v11.ObjectReference", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *UserList) String() string { - if this == nil { - return "nil" - } - repeatedStringForItems := "[]User{" - for _, f := range this.Items { - repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "User", "User", 1), `&`, ``, 1) + "," - } - repeatedStringForItems += "}" - s := strings.Join([]string{`&UserList{`, - `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + repeatedStringForItems + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *Group) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Group: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Group: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Users", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Users == nil { - m.Users = OptionalNames{} - } - if err := m.Users.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GroupList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: GroupList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GroupList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, Group{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Identity) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Identity: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Identity: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ProviderName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ProviderName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ProviderUserName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ProviderUserName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field User", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.User.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Extra", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Extra == nil { - m.Extra = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - m.Extra[mapkey] = mapvalue - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *IdentityList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: IdentityList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: IdentityList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, Identity{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *OptionalNames) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: OptionalNames: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: OptionalNames: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - *m = append(*m, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *User) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: User: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: User: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FullName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FullName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Identities", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Identities = append(m.Identities, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Groups", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *UserIdentityMapping) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: UserIdentityMapping: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: UserIdentityMapping: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Identity", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Identity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field User", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.User.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *UserList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: UserList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: UserList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, User{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupGenerated - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthGenerated - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") -) diff --git a/vendor/github.com/openshift/api/user/v1/generated.proto b/vendor/github.com/openshift/api/user/v1/generated.proto deleted file mode 100644 index 7444d41ef07b1..0000000000000 --- a/vendor/github.com/openshift/api/user/v1/generated.proto +++ /dev/null @@ -1,108 +0,0 @@ - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = 'proto2'; - -package github.com.openshift.api.user.v1; - -import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v1"; - -// Group represents a referenceable set of Users -message Group { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Users is the list of users in this group. - optional OptionalNames users = 2; -} - -// GroupList is a collection of Groups -message GroupList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is the list of groups - repeated Group items = 2; -} - -// Identity records a successful authentication of a user with an identity provider. The -// information about the source of authentication is stored on the identity, and the identity -// is then associated with a single user object. Multiple identities can reference a single -// user. Information retrieved from the authentication provider is stored in the extra field -// using a schema determined by the provider. -message Identity { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // ProviderName is the source of identity information - optional string providerName = 2; - - // ProviderUserName uniquely represents this identity in the scope of the provider - optional string providerUserName = 3; - - // User is a reference to the user this identity is associated with - // Both Name and UID must be set - optional k8s.io.api.core.v1.ObjectReference user = 4; - - // Extra holds extra information about this identity - map extra = 5; -} - -// IdentityList is a collection of Identities -message IdentityList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is the list of identities - repeated Identity items = 2; -} - -// OptionalNames is an array that may also be left nil to distinguish between set and unset. -// +protobuf.nullable=true -// +protobuf.options.(gogoproto.goproto_stringer)=false -message OptionalNames { - // items, if empty, will result in an empty slice - - repeated string items = 1; -} - -// Upon log in, every user of the system receives a User and Identity resource. Administrators -// may directly manipulate the attributes of the users for their own tracking, or set groups -// via the API. The user name is unique and is chosen based on the value provided by the -// identity provider - if a user already exists with the incoming name, the user name may have -// a number appended to it depending on the configuration of the system. -message User { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // FullName is the full name of user - optional string fullName = 2; - - // Identities are the identities associated with this user - repeated string identities = 3; - - // Groups specifies group names this user is a member of. - // This field is deprecated and will be removed in a future release. - // Instead, create a Group object containing the name of this User. - repeated string groups = 4; -} - -// UserIdentityMapping maps a user to an identity -message UserIdentityMapping { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Identity is a reference to an identity - optional k8s.io.api.core.v1.ObjectReference identity = 2; - - // User is a reference to a user - optional k8s.io.api.core.v1.ObjectReference user = 3; -} - -// UserList is a collection of Users -message UserList { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is the list of users - repeated User items = 2; -} - diff --git a/vendor/github.com/openshift/api/user/v1/legacy.go b/vendor/github.com/openshift/api/user/v1/legacy.go deleted file mode 100644 index 6817a9f1f3ea9..0000000000000 --- a/vendor/github.com/openshift/api/user/v1/legacy.go +++ /dev/null @@ -1,27 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - legacyGroupVersion = schema.GroupVersion{Group: "", Version: "v1"} - legacySchemeBuilder = runtime.NewSchemeBuilder(addLegacyKnownTypes, corev1.AddToScheme) - DeprecatedInstallWithoutGroup = legacySchemeBuilder.AddToScheme -) - -func addLegacyKnownTypes(scheme *runtime.Scheme) error { - types := []runtime.Object{ - &User{}, - &UserList{}, - &Identity{}, - &IdentityList{}, - &UserIdentityMapping{}, - &Group{}, - &GroupList{}, - } - scheme.AddKnownTypes(legacyGroupVersion, types...) - return nil -} diff --git a/vendor/github.com/openshift/api/user/v1/register.go b/vendor/github.com/openshift/api/user/v1/register.go deleted file mode 100644 index 11341d72a98ac..0000000000000 --- a/vendor/github.com/openshift/api/user/v1/register.go +++ /dev/null @@ -1,44 +0,0 @@ -package v1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - GroupName = "user.openshift.io" - GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes, corev1.AddToScheme) - // Install is a function which adds this version to a scheme - Install = schemeBuilder.AddToScheme - - // SchemeGroupVersion generated code relies on this name - // Deprecated - SchemeGroupVersion = GroupVersion - // AddToScheme exists solely to keep the old generators creating valid code - // DEPRECATED - AddToScheme = schemeBuilder.AddToScheme -) - -// Resource generated code relies on this being here, but it logically belongs to the group -// DEPRECATED -func Resource(resource string) schema.GroupResource { - return schema.GroupResource{Group: GroupName, Resource: resource} -} - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &User{}, - &UserList{}, - &Identity{}, - &IdentityList{}, - &UserIdentityMapping{}, - &Group{}, - &GroupList{}, - ) - metav1.AddToGroupVersion(scheme, GroupVersion) - return nil -} diff --git a/vendor/github.com/openshift/api/user/v1/types.go b/vendor/github.com/openshift/api/user/v1/types.go deleted file mode 100644 index 8708d027353f1..0000000000000 --- a/vendor/github.com/openshift/api/user/v1/types.go +++ /dev/null @@ -1,131 +0,0 @@ -package v1 - -import ( - "fmt" - - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Upon log in, every user of the system receives a User and Identity resource. Administrators -// may directly manipulate the attributes of the users for their own tracking, or set groups -// via the API. The user name is unique and is chosen based on the value provided by the -// identity provider - if a user already exists with the incoming name, the user name may have -// a number appended to it depending on the configuration of the system. -type User struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // FullName is the full name of user - FullName string `json:"fullName,omitempty" protobuf:"bytes,2,opt,name=fullName"` - - // Identities are the identities associated with this user - Identities []string `json:"identities" protobuf:"bytes,3,rep,name=identities"` - - // Groups specifies group names this user is a member of. - // This field is deprecated and will be removed in a future release. - // Instead, create a Group object containing the name of this User. - Groups []string `json:"groups" protobuf:"bytes,4,rep,name=groups"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// UserList is a collection of Users -type UserList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is the list of users - Items []User `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Identity records a successful authentication of a user with an identity provider. The -// information about the source of authentication is stored on the identity, and the identity -// is then associated with a single user object. Multiple identities can reference a single -// user. Information retrieved from the authentication provider is stored in the extra field -// using a schema determined by the provider. -type Identity struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // ProviderName is the source of identity information - ProviderName string `json:"providerName" protobuf:"bytes,2,opt,name=providerName"` - - // ProviderUserName uniquely represents this identity in the scope of the provider - ProviderUserName string `json:"providerUserName" protobuf:"bytes,3,opt,name=providerUserName"` - - // User is a reference to the user this identity is associated with - // Both Name and UID must be set - User corev1.ObjectReference `json:"user" protobuf:"bytes,4,opt,name=user"` - - // Extra holds extra information about this identity - Extra map[string]string `json:"extra,omitempty" protobuf:"bytes,5,rep,name=extra"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// IdentityList is a collection of Identities -type IdentityList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is the list of identities - Items []Identity `json:"items" protobuf:"bytes,2,rep,name=items"` -} - -// +genclient -// +genclient:nonNamespaced -// +genclient:onlyVerbs=get,create,update,delete -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// UserIdentityMapping maps a user to an identity -type UserIdentityMapping struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Identity is a reference to an identity - Identity corev1.ObjectReference `json:"identity,omitempty" protobuf:"bytes,2,opt,name=identity"` - // User is a reference to a user - User corev1.ObjectReference `json:"user,omitempty" protobuf:"bytes,3,opt,name=user"` -} - -// OptionalNames is an array that may also be left nil to distinguish between set and unset. -// +protobuf.nullable=true -// +protobuf.options.(gogoproto.goproto_stringer)=false -type OptionalNames []string - -func (t OptionalNames) String() string { - return fmt.Sprintf("%v", []string(t)) -} - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// Group represents a referenceable set of Users -type Group struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Users is the list of users in this group. - Users OptionalNames `json:"users" protobuf:"bytes,2,rep,name=users"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// GroupList is a collection of Groups -type GroupList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - - // Items is the list of groups - Items []Group `json:"items" protobuf:"bytes,2,rep,name=items"` -} diff --git a/vendor/github.com/openshift/api/user/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/user/v1/zz_generated.deepcopy.go deleted file mode 100644 index 6e45450adb36e..0000000000000 --- a/vendor/github.com/openshift/api/user/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,257 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - 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 *Group) DeepCopyInto(out *Group) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Users != nil { - in, out := &in.Users, &out.Users - *out = make(OptionalNames, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Group. -func (in *Group) DeepCopy() *Group { - if in == nil { - return nil - } - out := new(Group) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Group) 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 *GroupList) DeepCopyInto(out *GroupList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Group, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupList. -func (in *GroupList) DeepCopy() *GroupList { - if in == nil { - return nil - } - out := new(GroupList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *GroupList) 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 *Identity) DeepCopyInto(out *Identity) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.User = in.User - if in.Extra != nil { - in, out := &in.Extra, &out.Extra - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Identity. -func (in *Identity) DeepCopy() *Identity { - if in == nil { - return nil - } - out := new(Identity) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Identity) 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 *IdentityList) DeepCopyInto(out *IdentityList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Identity, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IdentityList. -func (in *IdentityList) DeepCopy() *IdentityList { - if in == nil { - return nil - } - out := new(IdentityList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *IdentityList) 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 OptionalNames) DeepCopyInto(out *OptionalNames) { - { - in := &in - *out = make(OptionalNames, len(*in)) - copy(*out, *in) - return - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OptionalNames. -func (in OptionalNames) DeepCopy() OptionalNames { - if in == nil { - return nil - } - out := new(OptionalNames) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *User) DeepCopyInto(out *User) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Identities != nil { - in, out := &in.Identities, &out.Identities - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Groups != nil { - in, out := &in.Groups, &out.Groups - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new User. -func (in *User) DeepCopy() *User { - if in == nil { - return nil - } - out := new(User) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *User) 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 *UserIdentityMapping) DeepCopyInto(out *UserIdentityMapping) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Identity = in.Identity - out.User = in.User - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserIdentityMapping. -func (in *UserIdentityMapping) DeepCopy() *UserIdentityMapping { - if in == nil { - return nil - } - out := new(UserIdentityMapping) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *UserIdentityMapping) 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 *UserList) DeepCopyInto(out *UserList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]User, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserList. -func (in *UserList) DeepCopy() *UserList { - if in == nil { - return nil - } - out := new(UserList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *UserList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} diff --git a/vendor/github.com/openshift/api/user/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/user/v1/zz_generated.swagger_doc_generated.go deleted file mode 100644 index e034251f965c7..0000000000000 --- a/vendor/github.com/openshift/api/user/v1/zz_generated.swagger_doc_generated.go +++ /dev/null @@ -1,83 +0,0 @@ -package v1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE -var map_Group = map[string]string{ - "": "Group represents a referenceable set of Users", - "users": "Users is the list of users in this group.", -} - -func (Group) SwaggerDoc() map[string]string { - return map_Group -} - -var map_GroupList = map[string]string{ - "": "GroupList is a collection of Groups", - "items": "Items is the list of groups", -} - -func (GroupList) SwaggerDoc() map[string]string { - return map_GroupList -} - -var map_Identity = map[string]string{ - "": "Identity records a successful authentication of a user with an identity provider. The information about the source of authentication is stored on the identity, and the identity is then associated with a single user object. Multiple identities can reference a single user. Information retrieved from the authentication provider is stored in the extra field using a schema determined by the provider.", - "providerName": "ProviderName is the source of identity information", - "providerUserName": "ProviderUserName uniquely represents this identity in the scope of the provider", - "user": "User is a reference to the user this identity is associated with Both Name and UID must be set", - "extra": "Extra holds extra information about this identity", -} - -func (Identity) SwaggerDoc() map[string]string { - return map_Identity -} - -var map_IdentityList = map[string]string{ - "": "IdentityList is a collection of Identities", - "items": "Items is the list of identities", -} - -func (IdentityList) SwaggerDoc() map[string]string { - return map_IdentityList -} - -var map_User = map[string]string{ - "": "Upon log in, every user of the system receives a User and Identity resource. Administrators may directly manipulate the attributes of the users for their own tracking, or set groups via the API. The user name is unique and is chosen based on the value provided by the identity provider - if a user already exists with the incoming name, the user name may have a number appended to it depending on the configuration of the system.", - "fullName": "FullName is the full name of user", - "identities": "Identities are the identities associated with this user", - "groups": "Groups specifies group names this user is a member of. This field is deprecated and will be removed in a future release. Instead, create a Group object containing the name of this User.", -} - -func (User) SwaggerDoc() map[string]string { - return map_User -} - -var map_UserIdentityMapping = map[string]string{ - "": "UserIdentityMapping maps a user to an identity", - "identity": "Identity is a reference to an identity", - "user": "User is a reference to a user", -} - -func (UserIdentityMapping) SwaggerDoc() map[string]string { - return map_UserIdentityMapping -} - -var map_UserList = map[string]string{ - "": "UserList is a collection of Users", - "items": "Items is the list of users", -} - -func (UserList) SwaggerDoc() map[string]string { - return map_UserList -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/github.com/openshift/apiserver-library-go/LICENSE b/vendor/github.com/openshift/apiserver-library-go/LICENSE deleted file mode 100644 index 261eeb9e9f8b2..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - 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/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/accept.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/accept.go deleted file mode 100644 index 8ff6c7d70eecc..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/accept.go +++ /dev/null @@ -1,124 +0,0 @@ -package imagepolicy - -import ( - "fmt" - - "k8s.io/klog/v2" - - apierrs "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/admission" - kapi "k8s.io/kubernetes/pkg/apis/core" - - "github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/imagereferencemutators" - "github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/rules" - "github.com/openshift/library-go/pkg/image/reference" -) - -var errRejectByPolicy = fmt.Errorf("this image is prohibited by policy") - -type policyDecisions map[kapi.ObjectReference]policyDecision - -type policyDecision struct { - attrs *rules.ImagePolicyAttributes - tested bool - resolutionErr error -} - -func accept(accepter rules.Accepter, policy imageResolutionPolicy, resolver imageResolver, m imagereferencemutators.ImageReferenceMutator, annotations imagereferencemutators.AnnotationAccessor, attr admission.Attributes, excludedRules sets.String) error { - decisions := policyDecisions{} - - t := attr.GetResource().GroupResource() - gr := metav1.GroupResource{Resource: t.Resource, Group: t.Group} - - resolveAllNames := imagereferencemutators.ResolveAllNames(annotations) - - errs := m.Mutate(func(ref *kapi.ObjectReference) error { - // create the attribute set for this particular reference, if we have never seen the reference - // before - decision, ok := decisions[*ref] - if !ok { - if policy.RequestsResolution(gr) { - resolvedAttrs, err := resolver.ResolveObjectReference(ref, attr.GetNamespace(), resolveAllNames) - switch { - case err != nil && policy.FailOnResolutionFailure(gr): - klog.V(5).Infof("resource failed on error during required image resolution: %v", err) - // if we had a resolution error and we're supposed to fail, fail - decision.resolutionErr = err - decision.tested = true - decisions[*ref] = decision - return err - - case err != nil: - klog.V(5).Infof("error during optional image resolution: %v", err) - // if we had an error, but aren't supposed to fail, just don't do anything else and keep track of - // the resolution failure - decision.resolutionErr = err - - case err == nil: - // if we resolved properly, assign the attributes and rewrite the pull spec if we need to - decision.attrs = resolvedAttrs - - if policy.RewriteImagePullSpec(resolvedAttrs, attr.GetOperation() == admission.Update, gr) { - ref.Namespace = "" - ref.Name = decision.attrs.Name.Exact() - ref.Kind = "DockerImage" - } - } - } - // if we don't have any image policy attributes, attempt a best effort parse for the remaining tests - if decision.attrs == nil { - decision.attrs = &rules.ImagePolicyAttributes{} - - // an objectref that is DockerImage ref will have a name that corresponds to its pull spec. We can parse that - // to a docker image ref - if ref != nil && ref.Kind == "DockerImage" { - decision.attrs.Name, _ = reference.Parse(ref.Name) - } - } - decision.attrs.Resource = gr - decision.attrs.ExcludedRules = excludedRules - klog.V(5).Infof("post resolution, ref=%s:%s/%s, image attributes=%#v, resolution err=%v", ref.Kind, ref.Name, ref.Namespace, *decision.attrs, decision.resolutionErr) - } - - // we only need to test a given input once for acceptance - if !decision.tested { - accepted := accepter.Accepts(decision.attrs) - klog.V(5).Infof("Made decision for %v (as: %v, resolution err: %v): accept=%t", ref, decision.attrs.Name, decision.resolutionErr, accepted) - - decision.tested = true - decisions[*ref] = decision - - if !accepted { - // if the image is rejected due to a resolution error, return the resolution error - // This is a dubious result. It's entirely possible we had an error resolving the image, - // but no rule actually requires image resolution and the image was rejected for some other - // reason. The user will then see that it was rejected due to the resolution error, but - // that isn't really why it was rejected. Better logic would check if the rule that - // rejected the image, required resolution, and only then report the resolution falure. - if decision.resolutionErr != nil { - return decision.resolutionErr - } - // otherwise the image is being rejected by policy - return errRejectByPolicy - } - } - - return nil - }) - - for i := range errs { - errs[i].Type = field.ErrorTypeForbidden - if errs[i].Detail != errRejectByPolicy.Error() { - errs[i].Detail = fmt.Sprintf("this image is prohibited by policy: %s", errs[i].Detail) - } - } - - if len(errs) > 0 { - klog.V(5).Infof("image policy admission rejecting due to: %v", errs) - return apierrs.NewInvalid(attr.GetKind().GroupKind(), attr.GetName(), errs) - } - return nil -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/default-policy.yaml b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/default-policy.yaml deleted file mode 100644 index 8a24de7b4b829..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/default-policy.yaml +++ /dev/null @@ -1,20 +0,0 @@ -kind: ImagePolicyConfig -apiVersion: image.openshift.io/v1 -# To require that all images running on the platform be imported first, you may uncomment the -# following rule. Any image that refers to a registry outside of OpenShift will be rejected unless it -# unless it points directly to an image digest (myregistry.com/myrepo/image@sha256:ea83bcf...) and that -# digest has been imported via the import-image flow. -#resolveImages: Required -executionRules: -- name: execution-denied - # Reject all images that have the annotation images.openshift.io/deny-execution set to true. - # This annotation may be set by infrastructure that wishes to flag particular images as dangerous - onResources: - - resource: pods - - resource: builds - group: build.openshift.io - reject: true - matchImageAnnotations: - - key: images.openshift.io/deny-execution - value: "true" - skipOnResolutionFailure: true diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/defaults.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/defaults.go deleted file mode 100644 index 6c2d1499caf9e..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/defaults.go +++ /dev/null @@ -1,77 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - kapi "k8s.io/kubernetes/pkg/apis/core" -) - -func SetDefaults_ImagePolicyConfig(obj *ImagePolicyConfig) { - if obj == nil { - return - } - - if len(obj.ResolveImages) == 0 { - obj.ResolveImages = Attempt - } - - for i := range obj.ExecutionRules { - if len(obj.ExecutionRules[i].OnResources) == 0 { - obj.ExecutionRules[i].OnResources = []metav1.GroupResource{{Resource: "pods", Group: kapi.GroupName}} - } - } - - if obj.ResolutionRules == nil { - obj.ResolutionRules = []ImageResolutionPolicyRule{ - {TargetResource: metav1.GroupResource{Group: "", Resource: "pods"}, LocalNames: true}, - {TargetResource: metav1.GroupResource{Group: "", Resource: "replicationcontrollers"}, LocalNames: true}, - {TargetResource: metav1.GroupResource{Group: "apps", Resource: "daemonsets"}, LocalNames: true}, - {TargetResource: metav1.GroupResource{Group: "apps", Resource: "deployments"}, LocalNames: true}, - {TargetResource: metav1.GroupResource{Group: "apps", Resource: "statefulsets"}, LocalNames: true}, - {TargetResource: metav1.GroupResource{Group: "apps", Resource: "replicasets"}, LocalNames: true}, - {TargetResource: metav1.GroupResource{Group: "build.openshift.io", Resource: "builds"}, LocalNames: true}, - {TargetResource: metav1.GroupResource{Group: "batch", Resource: "jobs"}, LocalNames: true}, - {TargetResource: metav1.GroupResource{Group: "batch", Resource: "cronjobs"}, LocalNames: true}, - {TargetResource: metav1.GroupResource{Group: "extensions", Resource: "daemonsets"}, LocalNames: true}, - {TargetResource: metav1.GroupResource{Group: "extensions", Resource: "deployments"}, LocalNames: true}, - {TargetResource: metav1.GroupResource{Group: "extensions", Resource: "replicasets"}, LocalNames: true}, - } - // default the resolution policy to the global default - for i := range obj.ResolutionRules { - if len(obj.ResolutionRules[i].Policy) != 0 { - continue - } - obj.ResolutionRules[i].Policy = DoNotAttempt - for _, rule := range obj.ExecutionRules { - if executionRuleCoversResource(rule, obj.ResolutionRules[i].TargetResource) { - obj.ResolutionRules[i].Policy = obj.ResolveImages - break - } - } - } - } else { - // default the resolution policy to the global default - for i := range obj.ResolutionRules { - if len(obj.ResolutionRules[i].Policy) != 0 { - continue - } - obj.ResolutionRules[i].Policy = obj.ResolveImages - } - } - -} - -func addDefaultingFuncs(scheme *runtime.Scheme) error { - scheme.AddTypeDefaultingFunc(&ImagePolicyConfig{}, func(obj interface{}) { SetDefaults_ImagePolicyConfig(obj.(*ImagePolicyConfig)) }) - return nil -} - -// executionRuleCoversResource returns true if gr is covered by rule. -func executionRuleCoversResource(rule ImageExecutionPolicyRule, gr metav1.GroupResource) bool { - for _, target := range rule.OnResources { - if target.Group == gr.Group && (target.Resource == gr.Resource || target.Resource == "*") { - return true - } - } - return false -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/doc.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/doc.go deleted file mode 100644 index 124d5620f4a74..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// +k8s:deepcopy-gen=package,register - -// Package v1 is the v1 version of the API. -package v1 diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/register.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/register.go deleted file mode 100644 index 602e3a2c541a6..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/register.go +++ /dev/null @@ -1,26 +0,0 @@ -package v1 - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -func (obj *ImagePolicyConfig) GetObjectKind() schema.ObjectKind { return &obj.TypeMeta } - -var GroupVersion = schema.GroupVersion{Group: "image.openshift.io", Version: "v1"} - -var ( - schemeBuilder = runtime.NewSchemeBuilder( - addKnownTypes, - addDefaultingFuncs, - ) - Install = schemeBuilder.AddToScheme -) - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &ImagePolicyConfig{}, - ) - return nil -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/types.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/types.go deleted file mode 100644 index b5d5198a0e95e..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/types.go +++ /dev/null @@ -1,132 +0,0 @@ -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" -) - -const ( - PluginName = "image.openshift.io/ImagePolicy" - - // IgnorePolicyRulesAnnotation is a comma delimited list of rule names to omit from consideration - // in a given namespace. Loaded from the namespace. - IgnorePolicyRulesAnnotation = "alpha.image.policy.openshift.io/ignore-rules" - // ResolveNamesAnnotation when placed on an object template or object requests that all relevant - // image names be resolved by taking the name and tag and attempting to resolve a local image stream. - // This overrides the imageLookupPolicy on the image stream. If the object is not namespaced the - // annotation is ignored. The only valid value is '*'. - ResolveNamesAnnotation = "alpha.image.policy.openshift.io/resolve-names" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ImagePolicyConfig is the configuration for control of images running on the platform. -type ImagePolicyConfig struct { - metav1.TypeMeta `json:",inline"` - - // ResolveImages indicates the default image resolution behavior. If a rewriting policy is chosen, - // then the image pull specs will be updated. - ResolveImages ImageResolutionType `json:"resolveImages"` - - // ResolutionRules allows more specific image resolution rules to be applied per resource. If - // empty, it defaults to allowing local image stream lookups - "mysql" will map to the image stream - // tag "mysql:latest" in the current namespace if the stream supports it. The default for this - // field is all known types that support image resolution, and the policy for those rules will be - // set to the overall resolution policy if an execution rule references the same resource. - ResolutionRules []ImageResolutionPolicyRule `json:"resolutionRules"` - - // ExecutionRules determine whether the use of an image is allowed in an object with a pod spec. - // By default, these rules only apply to pods, but may be extended to other resource types. - // If all execution rules are negations, the default behavior is allow all. If any execution rule - // is an allow, the default behavior is to reject all. - ExecutionRules []ImageExecutionPolicyRule `json:"executionRules"` -} - -// ImageResolutionType is an enumerated string that indicates how image pull spec resolution should be handled -type ImageResolutionType string - -var ( - // require resolution to succeed and rewrite the resource to use it - RequiredRewrite ImageResolutionType = "RequiredRewrite" - // require resolution to succeed, but don't rewrite the image pull spec - Required ImageResolutionType = "Required" - // attempt resolution, rewrite if successful - AttemptRewrite ImageResolutionType = "AttemptRewrite" - // attempt resolution, don't rewrite - Attempt ImageResolutionType = "Attempt" - // don't attempt resolution - DoNotAttempt ImageResolutionType = "DoNotAttempt" -) - -// ImageResolutionPolicyRule describes resolution rules based on resource. -type ImageResolutionPolicyRule struct { - // Policy controls whether resolution will happen if the rule doesn't match local names. This value - // overrides the global image policy for all target resources. - Policy ImageResolutionType `json:"policy"` - // TargetResource is the identified group and resource. If Resource is *, this rule will apply - // to all resources in that group. - TargetResource metav1.GroupResource `json:"targetResource"` - // LocalNames will allow single segment names to be interpreted as namespace local image - // stream tags, but only if the target image stream tag has the "resolveLocalNames" field - // set. - LocalNames bool `json:"localNames"` -} - -// ImageExecutionPolicyRule determines whether a provided image may be used on the platform. -type ImageExecutionPolicyRule struct { - ImageCondition `json:",inline"` - - // Reject means this rule, if it matches the condition, will cause an immediate failure. No - // other rules will be considered. - Reject bool `json:"reject"` -} - -// ImageCondition defines the conditions for matching a particular image source. The conditions below -// are all required (logical AND). If Reject is specified, the condition is false if all conditions match, -// and true otherwise. -type ImageCondition struct { - // Name is the name of this policy rule for reference. It must be unique across all rules. - Name string `json:"name"` - // IgnoreNamespaceOverride prevents this condition from being overridden when the - // `alpha.image.policy.openshift.io/ignore-rules` is set on a namespace and contains this rule name. - IgnoreNamespaceOverride bool `json:"ignoreNamespaceOverride"` - - // OnResources determines which resources this applies to. Defaults to 'pods' for ImageExecutionPolicyRules. - OnResources []metav1.GroupResource `json:"onResources"` - - // InvertMatch means the value of the condition is logically inverted (true -> false, false -> true). - InvertMatch bool `json:"invertMatch"` - - // MatchIntegratedRegistry will only match image sources that originate from the configured integrated - // registry. - MatchIntegratedRegistry bool `json:"matchIntegratedRegistry"` - // MatchRegistries will match image references that point to the provided registries. The image registry - // must match at least one of these strings. - MatchRegistries []string `json:"matchRegistries"` - - // SkipOnResolutionFailure allows the subsequent conditions to be bypassed if the integrated registry does - // not have access to image metadata (no image exists matching the image digest). - SkipOnResolutionFailure bool `json:"skipOnResolutionFailure"` - - // MatchDockerImageLabels checks against the resolved image for the presence of a Docker label. All - // conditions must match. - MatchDockerImageLabels []ValueCondition `json:"matchDockerImageLabels"` - // MatchImageLabels checks against the resolved image for a label. All conditions must match. - MatchImageLabels []metav1.LabelSelector `json:"matchImageLabels"` - // MatchImageLabelSelectors is the processed form of MatchImageLabels. All conditions must match. - // TODO: this only existed on the internal type, it's set as part of processing the configuration, - // so presumably it should not be supplied by the user. Not sure the best way to deal with it. - MatchImageLabelSelectors []labels.Selector `json:"-"` - // MatchImageAnnotations checks against the resolved image for an annotation. All conditions must match. - MatchImageAnnotations []ValueCondition `json:"matchImageAnnotations"` -} - -// ValueCondition reflects whether the following key in a map is set or has a given value. -type ValueCondition struct { - // Key is the name of a key in a map to retrieve. - Key string `json:"key"` - // Set indicates the provided key exists in the map. This field is exclusive with Value. - Set bool `json:"set"` - // Value indicates the provided key has the given value. This field is exclusive with Set. - Value string `json:"value"` -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/zz_generated.deepcopy.go deleted file mode 100644 index c3d67efcd8981..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,150 +0,0 @@ -// +build !ignore_autogenerated - -// Code generated by deepcopy-gen. DO NOT EDIT. - -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - 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 *ImageCondition) DeepCopyInto(out *ImageCondition) { - *out = *in - if in.OnResources != nil { - in, out := &in.OnResources, &out.OnResources - *out = make([]metav1.GroupResource, len(*in)) - copy(*out, *in) - } - if in.MatchRegistries != nil { - in, out := &in.MatchRegistries, &out.MatchRegistries - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.MatchDockerImageLabels != nil { - in, out := &in.MatchDockerImageLabels, &out.MatchDockerImageLabels - *out = make([]ValueCondition, len(*in)) - copy(*out, *in) - } - if in.MatchImageLabels != nil { - in, out := &in.MatchImageLabels, &out.MatchImageLabels - *out = make([]metav1.LabelSelector, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.MatchImageLabelSelectors != nil { - in, out := &in.MatchImageLabelSelectors, &out.MatchImageLabelSelectors - *out = make([]labels.Selector, len(*in)) - for i := range *in { - if (*in)[i] != nil { - (*out)[i] = (*in)[i].DeepCopySelector() - } - } - } - if in.MatchImageAnnotations != nil { - in, out := &in.MatchImageAnnotations, &out.MatchImageAnnotations - *out = make([]ValueCondition, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageCondition. -func (in *ImageCondition) DeepCopy() *ImageCondition { - if in == nil { - return nil - } - out := new(ImageCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageExecutionPolicyRule) DeepCopyInto(out *ImageExecutionPolicyRule) { - *out = *in - in.ImageCondition.DeepCopyInto(&out.ImageCondition) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageExecutionPolicyRule. -func (in *ImageExecutionPolicyRule) DeepCopy() *ImageExecutionPolicyRule { - if in == nil { - return nil - } - out := new(ImageExecutionPolicyRule) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImagePolicyConfig) DeepCopyInto(out *ImagePolicyConfig) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.ResolutionRules != nil { - in, out := &in.ResolutionRules, &out.ResolutionRules - *out = make([]ImageResolutionPolicyRule, len(*in)) - copy(*out, *in) - } - if in.ExecutionRules != nil { - in, out := &in.ExecutionRules, &out.ExecutionRules - *out = make([]ImageExecutionPolicyRule, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImagePolicyConfig. -func (in *ImagePolicyConfig) DeepCopy() *ImagePolicyConfig { - if in == nil { - return nil - } - out := new(ImagePolicyConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ImagePolicyConfig) 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 *ImageResolutionPolicyRule) DeepCopyInto(out *ImageResolutionPolicyRule) { - *out = *in - out.TargetResource = in.TargetResource - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageResolutionPolicyRule. -func (in *ImageResolutionPolicyRule) DeepCopy() *ImageResolutionPolicyRule { - if in == nil { - return nil - } - out := new(ImageResolutionPolicyRule) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ValueCondition) DeepCopyInto(out *ValueCondition) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValueCondition. -func (in *ValueCondition) DeepCopy() *ValueCondition { - if in == nil { - return nil - } - out := new(ValueCondition) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/validation/validation.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/validation/validation.go deleted file mode 100644 index ecc0756ed18e1..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/validation/validation.go +++ /dev/null @@ -1,55 +0,0 @@ -package validation - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/util/validation/field" - - imagepolicy "github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1" -) - -func Validate(config *imagepolicy.ImagePolicyConfig) field.ErrorList { - allErrs := field.ErrorList{} - if config == nil { - return allErrs - } - names := sets.NewString() - for i, rule := range config.ExecutionRules { - if names.Has(rule.Name) { - allErrs = append(allErrs, field.Duplicate(field.NewPath(imagepolicy.PluginName, "executionRules").Index(i).Child("name"), rule.Name)) - } - names.Insert(rule.Name) - for j, selector := range rule.MatchImageLabels { - _, err := metav1.LabelSelectorAsSelector(&selector) - if err != nil { - allErrs = append(allErrs, field.Invalid(field.NewPath(imagepolicy.PluginName, "executionRules").Index(i).Child("matchImageLabels").Index(j), nil, err.Error())) - } - } - } - - for i, rule := range config.ResolutionRules { - if len(rule.Policy) == 0 { - allErrs = append(allErrs, field.Required(field.NewPath(imagepolicy.PluginName, "resolutionRules").Index(i).Child("policy"), "a policy must be specified for this resource")) - } - if len(rule.TargetResource.Resource) == 0 { - allErrs = append(allErrs, field.Required(field.NewPath(imagepolicy.PluginName, "resolutionRules").Index(i).Child("targetResource", "resource"), "a target resource name or '*' must be provided")) - } - } - - // if you don't attempt resolution, you'll never be able to pass any rule that logically requires it - if config.ResolveImages == imagepolicy.DoNotAttempt { - for i, rule := range config.ExecutionRules { - if len(rule.MatchDockerImageLabels) > 0 { - allErrs = append(allErrs, field.Invalid(field.NewPath(imagepolicy.PluginName, "executionRules").Index(i).Child("matchDockerImageLabels"), rule.MatchDockerImageLabels, "images are not being resolved, this condition will always fail")) - } - if len(rule.MatchImageLabels) > 0 { - allErrs = append(allErrs, field.Invalid(field.NewPath(imagepolicy.PluginName, "executionRules").Index(i).Child("matchImageLabels"), rule.MatchImageLabels, "images are not being resolved, this condition will always fail")) - } - if len(rule.MatchImageAnnotations) > 0 { - allErrs = append(allErrs, field.Invalid(field.NewPath(imagepolicy.PluginName, "executionRules").Index(i).Child("matchImageAnnotations"), rule.MatchImageAnnotations, "images are not being resolved, this condition will always fail")) - } - } - } - - return allErrs -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/helpers.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/helpers.go deleted file mode 100644 index 91c1cfe9b169e..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/helpers.go +++ /dev/null @@ -1,32 +0,0 @@ -package imagepolicy - -import ( - imagepolicyapiv1 "github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1" -) - -// RequestsResolution returns true if you should attempt to resolve image pull specs -func RequestsResolution(imageResolutionType imagepolicyapiv1.ImageResolutionType) bool { - switch imageResolutionType { - case imagepolicyapiv1.RequiredRewrite, imagepolicyapiv1.Required, imagepolicyapiv1.AttemptRewrite, imagepolicyapiv1.Attempt: - return true - } - return false -} - -// FailOnResolutionFailure returns true if you should fail when resolution fails -func FailOnResolutionFailure(imageResolutionType imagepolicyapiv1.ImageResolutionType) bool { - switch imageResolutionType { - case imagepolicyapiv1.RequiredRewrite, imagepolicyapiv1.Required: - return true - } - return false -} - -// RewriteImagePullSpec returns true if you should rewrite image pull specs when resolution succeeds -func RewriteImagePullSpec(imageResolutionType imagepolicyapiv1.ImageResolutionType) bool { - switch imageResolutionType { - case imagepolicyapiv1.RequiredRewrite, imagepolicyapiv1.AttemptRewrite: - return true - } - return false -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/imagepolicy.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/imagepolicy.go deleted file mode 100644 index df97813f821b3..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/imagepolicy.go +++ /dev/null @@ -1,518 +0,0 @@ -package imagepolicy - -import ( - "context" - "fmt" - "io" - "io/ioutil" - "reflect" - "strings" - "time" - - lru "github.com/hashicorp/golang-lru" - - apierrs "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/apimachinery/pkg/util/diff" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/admission/initializer" - "k8s.io/client-go/informers" - corev1listers "k8s.io/client-go/listers/core/v1" - "k8s.io/client-go/rest" - "k8s.io/klog/v2" - kapi "k8s.io/kubernetes/pkg/apis/core" - - imagev1 "github.com/openshift/api/image/v1" - imagepolicy "github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1" - "github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/validation" - "github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/imagereferencemutators" - "github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/rules" - imagev1client "github.com/openshift/client-go/image/clientset/versioned" - imagev1typedclient "github.com/openshift/client-go/image/clientset/versioned/typed/image/v1" - "github.com/openshift/library-go/pkg/apiserver/admission/admissionrestconfig" - "github.com/openshift/library-go/pkg/image/imageutil" - "github.com/openshift/library-go/pkg/image/reference" -) - -func Register(plugins *admission.Plugins) { - plugins.Register(imagepolicy.PluginName, - func(input io.Reader) (admission.Interface, error) { - config := &imagepolicy.ImagePolicyConfig{} - if input != nil { - configContent, err := ioutil.ReadAll(input) - if err != nil { - return nil, err - } - scheme := runtime.NewScheme() - utilruntime.Must(imagepolicy.Install(scheme)) - codecs := serializer.NewCodecFactory(scheme) - err = runtime.DecodeInto(codecs.UniversalDecoder(imagepolicy.GroupVersion), configContent, config) - if err != nil { - return nil, err - } - } - - imagepolicy.SetDefaults_ImagePolicyConfig(config) - if errs := validation.Validate(config); len(errs) > 0 { - return nil, errs.ToAggregate() - } - klog.V(5).Infof("%s admission controller loaded with config: %#v", imagepolicy.PluginName, config) - return NewImagePolicyPlugin(config) - }) -} - -type ImagePolicyPlugin struct { - *admission.Handler - config *imagepolicy.ImagePolicyConfig - Client imagev1client.Interface - - accepter rules.Accepter - - integratedRegistryMatcher integratedRegistryMatcher - - NsLister corev1listers.NamespaceLister - resolver imageResolver - - imageMutators imagereferencemutators.ImageMutators -} - -var _ = initializer.WantsExternalKubeInformerFactory(&ImagePolicyPlugin{}) -var _ = admissionrestconfig.WantsRESTClientConfig(&ImagePolicyPlugin{}) -var _ = WantsInternalImageRegistry(&ImagePolicyPlugin{}) -var _ = WantsImageMutators(&ImagePolicyPlugin{}) -var _ = admission.ValidationInterface(&ImagePolicyPlugin{}) -var _ = admission.MutationInterface(&ImagePolicyPlugin{}) - -type integratedRegistryMatcher struct { - rules.RegistryMatcher -} - -// imageResolver abstracts identifying an image for a particular reference. -type imageResolver interface { - ResolveObjectReference(ref *kapi.ObjectReference, defaultNamespace string, forceResolveLocalNames bool) (*rules.ImagePolicyAttributes, error) -} - -// imageResolutionPolicy determines whether an image should be resolved -type imageResolutionPolicy interface { - // RequestsResolution returns true if you should attempt to resolve image pull specs - RequestsResolution(metav1.GroupResource) bool - // FailOnResolutionFailure returns true if you should fail when resolution fails - FailOnResolutionFailure(metav1.GroupResource) bool - // RewriteImagePullSpec returns true if you should rewrite image pull specs when resolution succeeds - RewriteImagePullSpec(attr *rules.ImagePolicyAttributes, isUpdate bool, gr metav1.GroupResource) bool -} - -// ImagePolicyPlugin returns an admission controller for pods that controls what images are allowed to run on the -// cluster. -func NewImagePolicyPlugin(parsed *imagepolicy.ImagePolicyConfig) (*ImagePolicyPlugin, error) { - m := integratedRegistryMatcher{ - RegistryMatcher: rules.NewRegistryMatcher(nil), - } - accepter, err := rules.NewExecutionRulesAccepter(parsed.ExecutionRules, m) - if err != nil { - return nil, err - } - - return &ImagePolicyPlugin{ - Handler: admission.NewHandler(admission.Create, admission.Update), - config: parsed, - - accepter: accepter, - - integratedRegistryMatcher: m, - }, nil -} - -func (a *ImagePolicyPlugin) SetInternalImageRegistry(internalImageRegistryName string) { - a.integratedRegistryMatcher.RegistryMatcher = rules.RegistryNameMatcher(internalImageRegistryName) -} - -func (a *ImagePolicyPlugin) SetImageMutators(imageMutators imagereferencemutators.ImageMutators) { - a.imageMutators = imageMutators -} - -func (a *ImagePolicyPlugin) SetRESTClientConfig(restClientConfig rest.Config) { - var err error - a.Client, err = imagev1client.NewForConfig(&restClientConfig) - if err != nil { - utilruntime.HandleError(err) - return - } -} - -func (a *ImagePolicyPlugin) SetExternalKubeInformerFactory(kubeInformers informers.SharedInformerFactory) { - a.NsLister = kubeInformers.Core().V1().Namespaces().Lister() -} - -// Validate ensures that all required interfaces have been provided, or returns an error. -func (a *ImagePolicyPlugin) ValidateInitialization() error { - if a.Client == nil { - return fmt.Errorf("%s needs an Openshift client", imagepolicy.PluginName) - } - if a.NsLister == nil { - return fmt.Errorf("%s needs a namespace lister", imagepolicy.PluginName) - } - if a.imageMutators == nil { - return fmt.Errorf("%s needs an image mutators", imagepolicy.PluginName) - } - imageResolver, err := newImageResolutionCache(a.Client.ImageV1(), a.integratedRegistryMatcher) - if err != nil { - return fmt.Errorf("unable to create image policy controller: %v", err) - } - a.resolver = imageResolver - return nil -} - -// Admit attempts to apply the image policy to the incoming resource. -func (a *ImagePolicyPlugin) Admit(ctx context.Context, attr admission.Attributes, _ admission.ObjectInterfaces) error { - return a.admit(ctx, attr, true) -} - -// Validate attempts to apply the image policy to the incoming resource. -func (a *ImagePolicyPlugin) Validate(ctx context.Context, attr admission.Attributes, _ admission.ObjectInterfaces) error { - return a.admit(ctx, attr, false) -} - -func (a *ImagePolicyPlugin) admit(ctx context.Context, attr admission.Attributes, mutationAllowed bool) error { - switch attr.GetOperation() { - case admission.Create, admission.Update: - if len(attr.GetSubresource()) > 0 { - return nil - } - // only create and update are tested, and only on core resources - // TODO: scan all resources - // TODO: Create a general equivalence map for admission - operation X on subresource Y is equivalent to reduced operation - default: - return nil - } - - policy := resolutionConfig{a.config} - - schemagr := attr.GetResource().GroupResource() - apigr := metav1.GroupResource{Resource: schemagr.Resource, Group: schemagr.Group} - - if !a.accepter.Covers(apigr) && !policy.Covers(apigr) { - return nil - } - - klog.V(5).Infof("running image policy admission for %s:%s/%s", attr.GetKind(), attr.GetNamespace(), attr.GetName()) - m, err := a.imageMutators.GetImageReferenceMutator(attr.GetObject(), attr.GetOldObject()) - if err != nil { - return apierrs.NewForbidden(schemagr, attr.GetName(), fmt.Errorf("unable to apply image policy against objects of type %T: %v", attr.GetObject(), err)) - } - - if !mutationAllowed { - m = &mutationPreventer{m} - } - - annotations, _ := a.imageMutators.GetAnnotationAccessor(attr.GetObject()) - - // load exclusion rules from the namespace cache - var excluded sets.String - if ns := attr.GetNamespace(); len(ns) > 0 { - if ns, err := a.NsLister.Get(ns); err == nil { - if value := ns.Annotations[imagepolicy.IgnorePolicyRulesAnnotation]; len(value) > 0 { - excluded = sets.NewString(strings.Split(value, ",")...) - } - } - } - - if err := accept(a.accepter, policy, a.resolver, m, annotations, attr, excluded); err != nil { - return err - } - - return nil -} - -type mutationPreventer struct { - m imagereferencemutators.ImageReferenceMutator -} - -func (m *mutationPreventer) Mutate(fn imagereferencemutators.ImageReferenceMutateFunc) field.ErrorList { - return m.m.Mutate(func(ref *kapi.ObjectReference) error { - original := ref.DeepCopy() - if err := fn(ref); err != nil { - return fmt.Errorf("error in image policy validation: %v", err) - } - if !reflect.DeepEqual(ref, original) { - klog.V(2).Infof("disallowed mutation in image policy validation: %s", diff.ObjectGoPrintSideBySide(original, ref)) - return fmt.Errorf("this image is prohibited by policy (changed after admission)") - } - return nil - }) -} - -type imageResolutionCache struct { - imageClient imagev1typedclient.ImageV1Interface - integrated rules.RegistryMatcher - expiration time.Duration - - cache *lru.Cache -} - -type imageCacheEntry struct { - expires time.Time - image *imagev1.Image -} - -// newImageResolutionCache creates a new resolver that caches frequently loaded images for one minute. -func newImageResolutionCache(imageClient imagev1typedclient.ImageV1Interface, integratedRegistry rules.RegistryMatcher) (*imageResolutionCache, error) { - imageCache, err := lru.New(128) - if err != nil { - return nil, err - } - return &imageResolutionCache{ - imageClient: imageClient, - integrated: integratedRegistry, - cache: imageCache, - expiration: time.Minute, - }, nil -} - -var now = time.Now - -// ResolveObjectReference converts a reference into an image API or returns an error. If the kind is not recognized -// this method will return an error to prevent references that may be images from being ignored. -func (c *imageResolutionCache) ResolveObjectReference(ref *kapi.ObjectReference, defaultNamespace string, forceResolveLocalNames bool) (*rules.ImagePolicyAttributes, error) { - switch ref.Kind { - case "ImageStreamTag": - ns := ref.Namespace - if len(ns) == 0 { - ns = defaultNamespace - } - name, tag, ok := imageutil.SplitImageStreamTag(ref.Name) - if !ok { - return &rules.ImagePolicyAttributes{IntegratedRegistry: true}, fmt.Errorf("references of kind ImageStreamTag must be of the form NAME:TAG") - } - return c.resolveImageStreamTag(ns, name, tag, false, false) - - case "ImageStreamImage": - ns := ref.Namespace - if len(ns) == 0 { - ns = defaultNamespace - } - name, id, ok := imageutil.SplitImageStreamImage(ref.Name) - if !ok { - return &rules.ImagePolicyAttributes{IntegratedRegistry: true}, fmt.Errorf("references of kind ImageStreamImage must be of the form NAME@DIGEST") - } - return c.resolveImageStreamImage(ns, name, id) - - case "DockerImage": - ref, err := reference.Parse(ref.Name) - if err != nil { - return nil, err - } - return c.resolveImageReference(ref, defaultNamespace, forceResolveLocalNames) - - default: - return nil, fmt.Errorf("image policy does not allow image references of kind %q", ref.Kind) - } -} - -// Resolve converts an image reference into a resolved image or returns an error. Only images located in the internal -// registry or those with a digest can be resolved - all other scenarios will return an error. -func (c *imageResolutionCache) resolveImageReference(ref reference.DockerImageReference, defaultNamespace string, forceResolveLocalNames bool) (*rules.ImagePolicyAttributes, error) { - // images by ID can be checked for policy - if len(ref.ID) > 0 { - now := now() - if value, ok := c.cache.Get(ref.ID); ok { - cached := value.(imageCacheEntry) - if now.Before(cached.expires) { - return &rules.ImagePolicyAttributes{Name: ref, Image: cached.image}, nil - } - } - image, err := c.imageClient.Images().Get(context.TODO(), ref.ID, metav1.GetOptions{}) - if err != nil { - return nil, err - } - c.cache.Add(ref.ID, imageCacheEntry{expires: now.Add(c.expiration), image: image}) - return &rules.ImagePolicyAttributes{Name: ref, Image: image, IntegratedRegistry: c.integrated.Matches(ref.Registry)}, nil - } - - // an image spec that points to the internal registry is by definition also an imagestreamtag reference, - // so attempt to resolve it as such. - fullReference := c.integrated.Matches(ref.Registry) - // if we've been explicitly told to treat this image spec as an imagestreamtag reference, or if it is a single - // segment value, attempt to resolve the value as an imagestream tag that will ultimately resolve to an image. - partialReference := forceResolveLocalNames || (len(ref.Registry) == 0 && len(ref.Namespace) == 0 && len(ref.Name) > 0) - - // if we can't treat it as an imagestreamtag reference, and since we don't have an imageid (checked earlier), - // we aren't going to be able to resolve this value to an image. - if !fullReference && !partialReference { - return nil, fmt.Errorf("(%s) could not be resolved to an exact image reference", ref.Exact()) - } - - tag := ref.Tag - if len(tag) == 0 { - tag = imagev1.DefaultImageTag - } - if len(ref.Namespace) == 0 || forceResolveLocalNames { - ref.Namespace = defaultNamespace - } - - return c.resolveImageStreamTag(ref.Namespace, ref.Name, tag, partialReference, forceResolveLocalNames) -} - -// resolveImageStreamTag loads an image stream tag and creates a fully qualified image stream image reference, -// or returns an error. -func (c *imageResolutionCache) resolveImageStreamTag(namespace, name, tag string, partial, forceResolveLocalNames bool) (*rules.ImagePolicyAttributes, error) { - attrs := &rules.ImagePolicyAttributes{IntegratedRegistry: true} - resolved, err := c.imageClient.ImageStreamTags(namespace).Get(context.TODO(), imageutil.JoinImageStreamTag(name, tag), metav1.GetOptions{}) - if err != nil { - if partial { - attrs.IntegratedRegistry = false - } - // if a stream exists, resolves names, and a registry is installed, change the reference to be a pointer - // to the internal registry. This prevents the lookup from going to the original location, which is consistent - // with the intent of resolving local names. - if isImageStreamTagNotFound(err) { - if stream, err := c.imageClient.ImageStreams(namespace).Get(context.TODO(), name, metav1.GetOptions{}); err == nil && (forceResolveLocalNames || stream.Spec.LookupPolicy.Local) && len(stream.Status.DockerImageRepository) > 0 { - if ref, err := reference.Parse(stream.Status.DockerImageRepository); err == nil { - klog.V(4).Infof("%s/%s:%s points to a local name resolving stream, but the tag does not exist", namespace, name, tag) - ref.Tag = tag - attrs.Name = ref - attrs.LocalRewrite = true - return attrs, nil - } - } - } - return attrs, err - } - if partial { - if !forceResolveLocalNames && !resolved.LookupPolicy.Local { - attrs.IntegratedRegistry = false - return attrs, fmt.Errorf("ImageStreamTag does not allow local references and the resource did not request image stream resolution") - } - attrs.LocalRewrite = true - } - ref, err := reference.Parse(resolved.Image.DockerImageReference) - if err != nil { - return attrs, fmt.Errorf("image reference %s could not be parsed: %v", resolved.Image.DockerImageReference, err) - } - ref.Tag = "" - ref.ID = resolved.Image.Name - - now := now() - c.cache.Add(resolved.Image.Name, imageCacheEntry{expires: now.Add(c.expiration), image: &resolved.Image}) - - attrs.Name = ref - attrs.Image = &resolved.Image - return attrs, nil -} - -// resolveImageStreamImage loads an image stream image if it exists, or returns an error. -func (c *imageResolutionCache) resolveImageStreamImage(namespace, name, id string) (*rules.ImagePolicyAttributes, error) { - attrs := &rules.ImagePolicyAttributes{IntegratedRegistry: true} - resolved, err := c.imageClient.ImageStreamImages(namespace).Get(context.TODO(), imageutil.JoinImageStreamImage(name, id), metav1.GetOptions{}) - if err != nil { - return attrs, err - } - ref, err := reference.Parse(resolved.Image.DockerImageReference) - if err != nil { - return attrs, fmt.Errorf("ImageStreamTag could not be resolved: %v", err) - } - now := now() - c.cache.Add(resolved.Image.Name, imageCacheEntry{expires: now.Add(c.expiration), image: &resolved.Image}) - - attrs.Name = ref - attrs.Image = &resolved.Image - return attrs, nil -} - -// isImageStreamTagNotFound returns true iff the tag is missing but the image stream -// exists. -func isImageStreamTagNotFound(err error) bool { - if err == nil || !apierrs.IsNotFound(err) { - return false - } - status, ok := err.(apierrs.APIStatus) - if !ok { - return false - } - details := status.Status().Details - if details == nil { - return false - } - return details.Kind == "imagestreamtags" && details.Group == "image.openshift.io" -} - -// resolutionConfig translates an ImagePolicyConfig into imageResolutionPolicy -type resolutionConfig struct { - config *imagepolicy.ImagePolicyConfig -} - -// Covers returns true if the resolver specifically should touch this resource. -func (config resolutionConfig) Covers(gr metav1.GroupResource) bool { - for _, rule := range config.config.ResolutionRules { - if resolutionRuleCoversResource(rule.TargetResource, gr) { - return true - } - } - return false -} - -// RequestsResolution is true if the policy demands it or if any rule covers it. -func (config resolutionConfig) RequestsResolution(gr metav1.GroupResource) bool { - if RequestsResolution(config.config.ResolveImages) { - return true - } - for _, rule := range config.config.ResolutionRules { - if resolutionRuleCoversResource(rule.TargetResource, gr) { - return true - } - } - return false -} - -// FailOnResolutionFailure does not depend on the nested rules. -func (config resolutionConfig) FailOnResolutionFailure(gr metav1.GroupResource) bool { - return FailOnResolutionFailure(config.config.ResolveImages) -} - -var skipImageRewriteOnUpdate = map[metav1.GroupResource]struct{}{ - // Job template specs are immutable, they cannot be updated. - {Group: "batch", Resource: "jobs"}: {}, - // Build specs are immutable, they cannot be updated. - {Group: "build.openshift.io", Resource: "builds"}: {}, - // TODO: remove when statefulsets allow spec.template updates in 3.7 - {Group: "apps", Resource: "statefulsets"}: {}, -} - -// RewriteImagePullSpec applies to implicit rewrite attributes and local resources as well as if the policy requires it. -// If a local name check is requested and a rule matches true is returned. The policy default resolution is only respected -// if a resource isn't covered by a rule - if pods have a rule with DoNotAttempt and the global policy is RequiredRewrite, -// no pods will be rewritten. -func (config resolutionConfig) RewriteImagePullSpec(attr *rules.ImagePolicyAttributes, isUpdate bool, gr metav1.GroupResource) bool { - if isUpdate { - if _, ok := skipImageRewriteOnUpdate[gr]; ok { - return false - } - } - hasMatchingRule := false - for _, rule := range config.config.ResolutionRules { - if !resolutionRuleCoversResource(rule.TargetResource, gr) { - continue - } - if rule.LocalNames && attr.LocalRewrite { - return true - } - if RewriteImagePullSpec(rule.Policy) { - return true - } - hasMatchingRule = true - } - if hasMatchingRule { - return false - } - return RewriteImagePullSpec(config.config.ResolveImages) -} - -// resolutionRuleCoversResource implements wildcard checking on Resource names -func resolutionRuleCoversResource(rule metav1.GroupResource, gr metav1.GroupResource) bool { - return rule.Group == gr.Group && (rule.Resource == gr.Resource || rule.Resource == "*") -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/imagereferencemutators/interfaces.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/imagereferencemutators/interfaces.go deleted file mode 100644 index 47f6f9cfb1de5..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/imagereferencemutators/interfaces.go +++ /dev/null @@ -1,49 +0,0 @@ -package imagereferencemutators - -import ( - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/validation/field" - kapi "k8s.io/kubernetes/pkg/apis/core" -) - -type ImageMutators interface { - GetImageReferenceMutator(obj, old runtime.Object) (ImageReferenceMutator, error) - GetAnnotationAccessor(obj runtime.Object) (AnnotationAccessor, bool) -} - -// ImageReferenceMutateFunc is passed a reference representing an image, and may alter -// the Name, Kind, and Namespace fields of the reference. If an error is returned the -// object may still be mutated under the covers. -type ImageReferenceMutateFunc func(ref *kapi.ObjectReference) error - -type ImageReferenceMutator interface { - // Mutate invokes fn on every image reference in the object. If fn returns an error, - // a field.Error is added to the list to be returned. Mutate does not terminate early - // if errors are detected. - Mutate(fn ImageReferenceMutateFunc) field.ErrorList -} - -type AnnotationAccessor interface { - // Annotations returns a map representing annotations. Not mutable. - Annotations() map[string]string - // SetAnnotations sets representing annotations onto the object. - SetAnnotations(map[string]string) - // TemplateAnnotations returns a map representing annotations on a nested template in the object. Not mutable. - // If no template is present bool will be false. - TemplateAnnotations() (map[string]string, bool) - // SetTemplateAnnotations sets annotations on a nested template in the object. - // If no template is present bool will be false. - SetTemplateAnnotations(map[string]string) bool -} - -type ContainerMutator interface { - GetName() string - GetImage() string - SetImage(image string) -} - -type PodSpecReferenceMutator interface { - GetContainerByIndex(init bool, i int) (ContainerMutator, bool) - GetContainerByName(name string) (ContainerMutator, bool) - GetPath() *field.Path -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/imagereferencemutators/meta.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/imagereferencemutators/meta.go deleted file mode 100644 index 1b606e5609c83..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/imagereferencemutators/meta.go +++ /dev/null @@ -1,105 +0,0 @@ -package imagereferencemutators - -import ( - "fmt" - - kapiv1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - kapi "k8s.io/kubernetes/pkg/apis/core" - - imagepolicyv1 "github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1" -) - -type KubeImageMutators struct{} - -var errNoImageMutator = fmt.Errorf("No list of images available for this object") - -func ResolveAllNames(annotations AnnotationAccessor) bool { - if annotations == nil { - return false - } - - a, ok := annotations.TemplateAnnotations() - if ok && a[imagepolicyv1.ResolveNamesAnnotation] == "*" { - return true - } - - a = annotations.Annotations() - if a != nil && a[imagepolicyv1.ResolveNamesAnnotation] == "*" { - return true - } - - return false -} - -// GetImageReferenceMutator returns a mutator for the provided object, or an error if no -// such mutator is defined. Only references that are different between obj and old will -// be returned unless old is nil. -func (m KubeImageMutators) GetImageReferenceMutator(obj, old runtime.Object) (ImageReferenceMutator, error) { - oldAnnotations, _ := m.GetAnnotationAccessor(old) - annotations, _ := m.GetAnnotationAccessor(obj) - resolveAnnotationChanged := ResolveAllNames(annotations) != ResolveAllNames(oldAnnotations) - - if spec, path, err := GetPodSpec(obj); err == nil { - var oldSpec *kapi.PodSpec - if old != nil { - oldSpec, _, err = GetPodSpec(old) - if err != nil { - return nil, fmt.Errorf("old and new pod spec objects were not of the same type %T != %T: %v", obj, old, err) - } - } - return NewPodSpecMutator(spec, oldSpec, path, resolveAnnotationChanged), nil - } - if spec, path, err := GetPodSpecV1(obj); err == nil { - var oldSpec *kapiv1.PodSpec - if old != nil { - oldSpec, _, err = GetPodSpecV1(old) - if err != nil { - return nil, fmt.Errorf("old and new pod spec objects were not of the same type %T != %T: %v", obj, old, err) - } - } - return NewPodSpecV1Mutator(spec, oldSpec, path, resolveAnnotationChanged), nil - } - return nil, errNoImageMutator -} - -type annotationsAccessor struct { - object metav1.Object - template metav1.Object -} - -func (a annotationsAccessor) Annotations() map[string]string { - return a.object.GetAnnotations() -} - -func (a annotationsAccessor) TemplateAnnotations() (map[string]string, bool) { - if a.template == nil { - return nil, false - } - return a.template.GetAnnotations(), true -} - -func (a annotationsAccessor) SetAnnotations(annotations map[string]string) { - a.object.SetAnnotations(annotations) -} - -func (a annotationsAccessor) SetTemplateAnnotations(annotations map[string]string) bool { - if a.template == nil { - return false - } - a.template.SetAnnotations(annotations) - return true -} - -// GetAnnotationAccessor returns an accessor for the provided object or false if the object -// does not support accessing annotations. -func (KubeImageMutators) GetAnnotationAccessor(obj runtime.Object) (AnnotationAccessor, bool) { - switch t := obj.(type) { - case metav1.Object: - templateObject, _ := GetTemplateMetaObject(obj) - return annotationsAccessor{object: t, template: templateObject}, true - default: - return nil, false - } -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/imagereferencemutators/pods.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/imagereferencemutators/pods.go deleted file mode 100644 index dd4c1eafd38e5..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/imagereferencemutators/pods.go +++ /dev/null @@ -1,448 +0,0 @@ -package imagereferencemutators - -import ( - "fmt" - - kappsv1 "k8s.io/api/apps/v1" - kappsv1beta1 "k8s.io/api/apps/v1beta1" - kappsv1beta2 "k8s.io/api/apps/v1beta2" - batchv1 "k8s.io/api/batch/v1" - batchv1beta1 "k8s.io/api/batch/v1beta1" - batchv2alpha1 "k8s.io/api/batch/v2alpha1" - corev1 "k8s.io/api/core/v1" - extensionsv1beta1 "k8s.io/api/extensions/v1beta1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/kubernetes/pkg/apis/apps" - "k8s.io/kubernetes/pkg/apis/batch" - "k8s.io/kubernetes/pkg/apis/core" -) - -var errNoPodSpec = fmt.Errorf("No PodSpec available for this object") - -// GetPodSpec returns a mutable pod spec out of the provided object, including a field path -// to the field in the object, or an error if the object does not contain a pod spec. -// This only returns internal objects. -func GetPodSpec(obj runtime.Object) (*core.PodSpec, *field.Path, error) { - switch r := obj.(type) { - case *core.Pod: - return &r.Spec, field.NewPath("spec"), nil - case *core.PodTemplate: - return &r.Template.Spec, field.NewPath("template", "spec"), nil - case *core.ReplicationController: - if r.Spec.Template != nil { - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - } - case *apps.DaemonSet: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - case *apps.Deployment: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - case *apps.ReplicaSet: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - case *batch.Job: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - case *batch.CronJob: - return &r.Spec.JobTemplate.Spec.Template.Spec, field.NewPath("spec", "jobTemplate", "spec", "template", "spec"), nil - case *batch.JobTemplate: - return &r.Template.Spec.Template.Spec, field.NewPath("template", "spec", "template", "spec"), nil - case *apps.StatefulSet: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - } - return nil, nil, errNoPodSpec -} - -// GetPodSpecV1 returns a mutable pod spec out of the provided object, including a field path -// to the field in the object, or an error if the object does not contain a pod spec. -// This only returns pod specs for v1 compatible objects. -func GetPodSpecV1(obj runtime.Object) (*corev1.PodSpec, *field.Path, error) { - switch r := obj.(type) { - - case *corev1.Pod: - return &r.Spec, field.NewPath("spec"), nil - - case *corev1.PodTemplate: - return &r.Template.Spec, field.NewPath("template", "spec"), nil - - case *corev1.ReplicationController: - if r.Spec.Template != nil { - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - } - - case *extensionsv1beta1.DaemonSet: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - case *kappsv1.DaemonSet: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - case *kappsv1beta2.DaemonSet: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - - case *extensionsv1beta1.Deployment: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - case *kappsv1.Deployment: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - case *kappsv1beta1.Deployment: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - case *kappsv1beta2.Deployment: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - - case *extensionsv1beta1.ReplicaSet: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - case *kappsv1.ReplicaSet: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - case *kappsv1beta2.ReplicaSet: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - - case *batchv1.Job: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - - case *batchv2alpha1.CronJob: - return &r.Spec.JobTemplate.Spec.Template.Spec, field.NewPath("spec", "jobTemplate", "spec", "template", "spec"), nil - case *batchv1beta1.CronJob: - return &r.Spec.JobTemplate.Spec.Template.Spec, field.NewPath("spec", "jobTemplate", "spec", "template", "spec"), nil - - case *batchv2alpha1.JobTemplate: - return &r.Template.Spec.Template.Spec, field.NewPath("template", "spec", "template", "spec"), nil - case *batchv1beta1.JobTemplate: - return &r.Template.Spec.Template.Spec, field.NewPath("template", "spec", "template", "spec"), nil - - case *kappsv1.StatefulSet: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - case *kappsv1beta1.StatefulSet: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - case *kappsv1beta2.StatefulSet: - return &r.Spec.Template.Spec, field.NewPath("spec", "template", "spec"), nil - } - return nil, nil, errNoPodSpec -} - -// GetTemplateMetaObject returns a mutable metav1.Object interface for the template -// the object contains, or false if no such object is available. -func GetTemplateMetaObject(obj runtime.Object) (metav1.Object, bool) { - switch r := obj.(type) { - - case *corev1.PodTemplate: - return &r.Template.ObjectMeta, true - - case *corev1.ReplicationController: - if r.Spec.Template != nil { - return &r.Spec.Template.ObjectMeta, true - } - - case *extensionsv1beta1.DaemonSet: - return &r.Spec.Template.ObjectMeta, true - case *kappsv1.DaemonSet: - return &r.Spec.Template.ObjectMeta, true - case *kappsv1beta2.DaemonSet: - return &r.Spec.Template.ObjectMeta, true - - case *extensionsv1beta1.Deployment: - return &r.Spec.Template.ObjectMeta, true - case *kappsv1.Deployment: - return &r.Spec.Template.ObjectMeta, true - case *kappsv1beta1.Deployment: - return &r.Spec.Template.ObjectMeta, true - case *kappsv1beta2.Deployment: - return &r.Spec.Template.ObjectMeta, true - - case *extensionsv1beta1.ReplicaSet: - return &r.Spec.Template.ObjectMeta, true - case *kappsv1.ReplicaSet: - return &r.Spec.Template.ObjectMeta, true - case *kappsv1beta2.ReplicaSet: - return &r.Spec.Template.ObjectMeta, true - - case *batchv1.Job: - return &r.Spec.Template.ObjectMeta, true - - case *batchv2alpha1.CronJob: - return &r.Spec.JobTemplate.Spec.Template.ObjectMeta, true - case *batchv1beta1.CronJob: - return &r.Spec.JobTemplate.Spec.Template.ObjectMeta, true - - case *batchv2alpha1.JobTemplate: - return &r.Template.Spec.Template.ObjectMeta, true - case *batchv1beta1.JobTemplate: - return &r.Template.Spec.Template.ObjectMeta, true - - case *kappsv1.StatefulSet: - return &r.Spec.Template.ObjectMeta, true - case *kappsv1beta1.StatefulSet: - return &r.Spec.Template.ObjectMeta, true - case *kappsv1beta2.StatefulSet: - return &r.Spec.Template.ObjectMeta, true - - case *core.PodTemplate: - return &r.Template.ObjectMeta, true - case *core.ReplicationController: - if r.Spec.Template != nil { - return &r.Spec.Template.ObjectMeta, true - } - case *apps.DaemonSet: - return &r.Spec.Template.ObjectMeta, true - case *apps.Deployment: - return &r.Spec.Template.ObjectMeta, true - case *apps.ReplicaSet: - return &r.Spec.Template.ObjectMeta, true - case *batch.Job: - return &r.Spec.Template.ObjectMeta, true - case *batch.CronJob: - return &r.Spec.JobTemplate.Spec.Template.ObjectMeta, true - case *batch.JobTemplate: - return &r.Template.Spec.Template.ObjectMeta, true - case *apps.StatefulSet: - return &r.Spec.Template.ObjectMeta, true - } - return nil, false -} - -type containerMutator struct { - *core.Container -} - -func (m containerMutator) GetName() string { return m.Name } -func (m containerMutator) GetImage() string { return m.Image } -func (m containerMutator) SetImage(image string) { m.Image = image } - -type containerV1Mutator struct { - *corev1.Container -} - -func (m containerV1Mutator) GetName() string { return m.Name } -func (m containerV1Mutator) GetImage() string { return m.Image } -func (m containerV1Mutator) SetImage(image string) { m.Image = image } - -// podSpecMutator implements the mutation interface over objects with a pod spec. -type podSpecMutator struct { - spec *core.PodSpec - oldSpec *core.PodSpec - path *field.Path - resolveAnnotationChanged bool -} - -func NewPodSpecMutator(spec *core.PodSpec, oldSpec *core.PodSpec, path *field.Path, resolveAnnotationChanged bool) *podSpecMutator { - return &podSpecMutator{ - spec: spec, - oldSpec: oldSpec, - path: path, - resolveAnnotationChanged: resolveAnnotationChanged, - } -} - -func (m *podSpecMutator) GetPath() *field.Path { - return m.path -} - -func hasIdenticalPodSpecImage(spec *core.PodSpec, containerName, image string) bool { - if spec == nil { - return false - } - for i := range spec.InitContainers { - if spec.InitContainers[i].Name == containerName { - return spec.InitContainers[i].Image == image - } - } - for i := range spec.Containers { - if spec.Containers[i].Name == containerName { - return spec.Containers[i].Image == image - } - } - return false -} - -// Mutate applies fn to all containers and init containers. If fn changes the Kind to -// any value other than "DockerImage", an error is set on that field. -func (m *podSpecMutator) Mutate(fn ImageReferenceMutateFunc) field.ErrorList { - var errs field.ErrorList - for i := range m.spec.InitContainers { - container := &m.spec.InitContainers[i] - if !m.resolveAnnotationChanged && hasIdenticalPodSpecImage(m.oldSpec, container.Name, container.Image) { - continue - } - ref := core.ObjectReference{Kind: "DockerImage", Name: container.Image} - if err := fn(&ref); err != nil { - errs = append(errs, FieldErrorOrInternal(err, m.path.Child("initContainers").Index(i).Child("image"))) - continue - } - if ref.Kind != "DockerImage" { - errs = append(errs, FieldErrorOrInternal(fmt.Errorf("pod specs may only contain references to docker images, not %q", ref.Kind), m.path.Child("initContainers").Index(i).Child("image"))) - continue - } - container.Image = ref.Name - } - for i := range m.spec.Containers { - container := &m.spec.Containers[i] - if !m.resolveAnnotationChanged && hasIdenticalPodSpecImage(m.oldSpec, container.Name, container.Image) { - continue - } - ref := core.ObjectReference{Kind: "DockerImage", Name: container.Image} - if err := fn(&ref); err != nil { - errs = append(errs, FieldErrorOrInternal(err, m.path.Child("containers").Index(i).Child("image"))) - continue - } - if ref.Kind != "DockerImage" { - errs = append(errs, FieldErrorOrInternal(fmt.Errorf("pod specs may only contain references to docker images, not %q", ref.Kind), m.path.Child("containers").Index(i).Child("image"))) - continue - } - container.Image = ref.Name - } - return errs -} - -func (m *podSpecMutator) GetContainerByName(name string) (ContainerMutator, bool) { - spec := m.spec - for i := range spec.InitContainers { - if name != spec.InitContainers[i].Name { - continue - } - return containerMutator{&spec.InitContainers[i]}, true - } - for i := range spec.Containers { - if name != spec.Containers[i].Name { - continue - } - return containerMutator{&spec.Containers[i]}, true - } - return nil, false -} - -func (m *podSpecMutator) GetContainerByIndex(init bool, i int) (ContainerMutator, bool) { - var container *core.Container - spec := m.spec - if init { - if i < 0 || i >= len(spec.InitContainers) { - return nil, false - } - container = &spec.InitContainers[i] - } else { - if i < 0 || i >= len(spec.Containers) { - return nil, false - } - container = &spec.Containers[i] - } - return containerMutator{container}, true -} - -func NewPodSpecV1Mutator(spec *corev1.PodSpec, oldSpec *corev1.PodSpec, path *field.Path, resolveAnnotationChanged bool) *podSpecV1Mutator { - return &podSpecV1Mutator{ - spec: spec, - oldSpec: oldSpec, - path: path, - resolveAnnotationChanged: resolveAnnotationChanged, - } -} - -// podSpecV1Mutator implements the mutation interface over objects with a pod spec. -type podSpecV1Mutator struct { - spec *corev1.PodSpec - oldSpec *corev1.PodSpec - path *field.Path - resolveAnnotationChanged bool -} - -func (m *podSpecV1Mutator) GetPath() *field.Path { - return m.path -} - -func hasIdenticalPodSpecV1Image(spec *corev1.PodSpec, containerName, image string) bool { - if spec == nil { - return false - } - for i := range spec.InitContainers { - if spec.InitContainers[i].Name == containerName { - return spec.InitContainers[i].Image == image - } - } - for i := range spec.Containers { - if spec.Containers[i].Name == containerName { - return spec.Containers[i].Image == image - } - } - return false -} - -// Mutate applies fn to all containers and init containers. If fn changes the Kind to -// any value other than "DockerImage", an error is set on that field. -func (m *podSpecV1Mutator) Mutate(fn ImageReferenceMutateFunc) field.ErrorList { - var errs field.ErrorList - for i := range m.spec.InitContainers { - container := &m.spec.InitContainers[i] - if !m.resolveAnnotationChanged && hasIdenticalPodSpecV1Image(m.oldSpec, container.Name, container.Image) { - continue - } - ref := core.ObjectReference{Kind: "DockerImage", Name: container.Image} - if err := fn(&ref); err != nil { - errs = append(errs, FieldErrorOrInternal(err, m.path.Child("initContainers").Index(i).Child("image"))) - continue - } - if ref.Kind != "DockerImage" { - errs = append(errs, FieldErrorOrInternal(fmt.Errorf("pod specs may only contain references to docker images, not %q", ref.Kind), m.path.Child("initContainers").Index(i).Child("image"))) - continue - } - container.Image = ref.Name - } - for i := range m.spec.Containers { - container := &m.spec.Containers[i] - if !m.resolveAnnotationChanged && hasIdenticalPodSpecV1Image(m.oldSpec, container.Name, container.Image) { - continue - } - ref := core.ObjectReference{Kind: "DockerImage", Name: container.Image} - if err := fn(&ref); err != nil { - errs = append(errs, FieldErrorOrInternal(err, m.path.Child("containers").Index(i).Child("image"))) - continue - } - if ref.Kind != "DockerImage" { - errs = append(errs, FieldErrorOrInternal(fmt.Errorf("pod specs may only contain references to docker images, not %q", ref.Kind), m.path.Child("containers").Index(i).Child("image"))) - continue - } - container.Image = ref.Name - } - return errs -} - -func (m *podSpecV1Mutator) GetContainerByName(name string) (ContainerMutator, bool) { - spec := m.spec - for i := range spec.InitContainers { - if name != spec.InitContainers[i].Name { - continue - } - return containerV1Mutator{&spec.InitContainers[i]}, true - } - for i := range spec.Containers { - if name != spec.Containers[i].Name { - continue - } - return containerV1Mutator{&spec.Containers[i]}, true - } - return nil, false -} - -func (m *podSpecV1Mutator) GetContainerByIndex(init bool, i int) (ContainerMutator, bool) { - var container *corev1.Container - spec := m.spec - if init { - if i < 0 || i >= len(spec.InitContainers) { - return nil, false - } - container = &spec.InitContainers[i] - } else { - if i < 0 || i >= len(spec.Containers) { - return nil, false - } - container = &spec.Containers[i] - } - return containerV1Mutator{container}, true -} - -func FieldErrorOrInternal(err error, path *field.Path) *field.Error { - if ferr, ok := err.(*field.Error); ok { - if len(ferr.Field) == 0 { - ferr.Field = path.String() - } - return ferr - } - if errors.IsNotFound(err) { - return field.NotFound(path, err) - } - return field.InternalError(path, err) -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/intializers.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/intializers.go deleted file mode 100644 index a700371c8b323..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/intializers.go +++ /dev/null @@ -1,40 +0,0 @@ -package imagepolicy - -import ( - "k8s.io/apiserver/pkg/admission" - - "github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/imagereferencemutators" -) - -func NewInitializer(imageMutators imagereferencemutators.ImageMutators, internalImageRegistry string) admission.PluginInitializer { - return &localInitializer{ - imageMutators: imageMutators, - internalImageRegistry: internalImageRegistry, - } -} - -type WantsImageMutators interface { - SetImageMutators(imagereferencemutators.ImageMutators) - admission.InitializationValidator -} - -type WantsInternalImageRegistry interface { - SetInternalImageRegistry(string) - admission.InitializationValidator -} - -type localInitializer struct { - imageMutators imagereferencemutators.ImageMutators - internalImageRegistry string -} - -// Initialize will check the initialization interfaces implemented by each plugin -// and provide the appropriate initialization data -func (i *localInitializer) Initialize(plugin admission.Interface) { - if wants, ok := plugin.(WantsImageMutators); ok { - wants.SetImageMutators(i.imageMutators) - } - if wants, ok := plugin.(WantsInternalImageRegistry); ok { - wants.SetInternalImageRegistry(i.internalImageRegistry) - } -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/rules/accept.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/rules/accept.go deleted file mode 100644 index f117cb73ae36d..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/rules/accept.go +++ /dev/null @@ -1,119 +0,0 @@ -package rules - -import ( - "k8s.io/klog/v2" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - imagepolicy "github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1" -) - -type Accepter interface { - Covers(metav1.GroupResource) bool - - Accepts(*ImagePolicyAttributes) bool -} - -// mappedAccepter implements the Accepter interface for a map of group resources and accepters -type mappedAccepter map[metav1.GroupResource]Accepter - -func (a mappedAccepter) Covers(gr metav1.GroupResource) bool { - _, ok := a[gr] - return ok -} - -// Accepts returns true if no Accepter is registered for the group resource in attributes, -// or if the registered Accepter also returns true. -func (a mappedAccepter) Accepts(attr *ImagePolicyAttributes) bool { - accepter, ok := a[attr.Resource] - if !ok { - return true - } - return accepter.Accepts(attr) -} - -type executionAccepter struct { - rules []imagepolicy.ImageExecutionPolicyRule - covers metav1.GroupResource - defaultReject bool - - integratedRegistryMatcher RegistryMatcher -} - -// NewExecutionRuleseAccepter creates an Accepter from the provided rules. -func NewExecutionRulesAccepter(rules []imagepolicy.ImageExecutionPolicyRule, integratedRegistryMatcher RegistryMatcher) (Accepter, error) { - mapped := make(mappedAccepter) - - for _, rule := range rules { - over, selectors, err := imageConditionInfo(&rule.ImageCondition) - if err != nil { - return nil, err - } - rule.ImageCondition.MatchImageLabelSelectors = selectors - for gr := range over { - a, ok := mapped[gr] - if !ok { - a = &executionAccepter{ - covers: gr, - integratedRegistryMatcher: integratedRegistryMatcher, - } - mapped[gr] = a - } - byResource := a.(*executionAccepter) - byResource.rules = append(byResource.rules, rule) - } - } - - for _, a := range mapped { - byResource := a.(*executionAccepter) - if len(byResource.rules) > 0 { - // if all rules are reject, the default behavior is allow - allReject := true - for _, rule := range byResource.rules { - if !rule.Reject { - allReject = false - break - } - } - byResource.defaultReject = !allReject - } - } - - return mapped, nil -} - -func (r *executionAccepter) Covers(gr metav1.GroupResource) bool { - return r.covers == gr -} - -func (r *executionAccepter) Accepts(attrs *ImagePolicyAttributes) bool { - if attrs.Resource != r.covers { - return true - } - - anyMatched := false - for _, rule := range r.rules { - klog.V(5).Infof("image policy checking rule %q", rule.Name) - if attrs.ExcludedRules.Has(rule.Name) && !rule.IgnoreNamespaceOverride { - klog.V(5).Infof("skipping because rule is excluded by namespace annotations\n") - continue - } - - // if we don't have a resolved image and we're supposed to skip the rule if that happens, - // continue here. Otherwise, the reject option is impossible to reason about. - if attrs.Image == nil && rule.SkipOnResolutionFailure { - klog.V(5).Infof("skipping because image is not resolved and skip on failure is true\n") - continue - } - - matches := matchImageCondition(&rule.ImageCondition, r.integratedRegistryMatcher, attrs) - klog.V(5).Infof("Rule %q(reject=%t) applies to image %v: %t", rule.Name, rule.Reject, attrs.Name, matches) - if matches { - if rule.Reject { - return false - } - anyMatched = true - } - } - return anyMatched || !r.defaultReject -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/rules/rules.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/rules/rules.go deleted file mode 100644 index 78735e4276e89..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/rules/rules.go +++ /dev/null @@ -1,178 +0,0 @@ -package rules - -import ( - "github.com/openshift/library-go/pkg/image/imageutil" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/klog/v2" - - "github.com/openshift/api/image/docker10" - imagev1 "github.com/openshift/api/image/v1" - imagepolicy "github.com/openshift/apiserver-library-go/pkg/admission/imagepolicy/apis/imagepolicy/v1" - "github.com/openshift/library-go/pkg/image/reference" -) - -type ImagePolicyAttributes struct { - Resource metav1.GroupResource - Name reference.DockerImageReference - Image *imagev1.Image - ExcludedRules sets.String - IntegratedRegistry bool - LocalRewrite bool -} - -type RegistryMatcher interface { - Matches(name string) bool -} - -type RegistryNameMatcher string - -func (m RegistryNameMatcher) Matches(name string) bool { - if len(m) == 0 { - return false - } - return string(m) == name -} - -type nameSet []string - -func (m nameSet) Matches(name string) bool { - for _, s := range m { - if s == name { - return true - } - } - return false -} - -func NewRegistryMatcher(names []string) RegistryMatcher { - return nameSet(names) -} - -type resourceSet map[metav1.GroupResource]struct{} - -func imageConditionInfo(rule *imagepolicy.ImageCondition) (covers resourceSet, selectors []labels.Selector, err error) { - covers = make(resourceSet) - for _, gr := range rule.OnResources { - covers[gr] = struct{}{} - } - - for i := range rule.MatchImageLabels { - s, err := metav1.LabelSelectorAsSelector(&rule.MatchImageLabels[i]) - if err != nil { - return nil, nil, err - } - selectors = append(selectors, s) - } - - return covers, selectors, nil -} - -func requiresImage(rule *imagepolicy.ImageCondition) bool { - switch { - case len(rule.MatchImageLabels) > 0, - len(rule.MatchImageAnnotations) > 0, - len(rule.MatchDockerImageLabels) > 0: - return true - } - - return false -} - -// matchImageCondition determines the result of an ImageCondition or the provided arguments. -func matchImageCondition(condition *imagepolicy.ImageCondition, integrated RegistryMatcher, attrs *ImagePolicyAttributes) bool { - result := matchImageConditionValues(condition, integrated, attrs) - klog.V(5).Infof("image matches conditions for %q: %t(invert=%t)", condition.Name, result, condition.InvertMatch) - if condition.InvertMatch { - result = !result - } - return result -} - -// matchImageConditionValues handles only the match rules on the condition, returning true if the conditions match. -// Use matchImageCondition to apply invertMatch rules. -func matchImageConditionValues(rule *imagepolicy.ImageCondition, integrated RegistryMatcher, attrs *ImagePolicyAttributes) bool { - if rule.MatchIntegratedRegistry && !(attrs.IntegratedRegistry || integrated.Matches(attrs.Name.Registry)) { - klog.V(5).Infof("image registry %v does not match integrated registry", attrs.Name.Registry) - return false - } - if len(rule.MatchRegistries) > 0 && !hasAnyMatch(attrs.Name.Registry, rule.MatchRegistries) { - klog.V(5).Infof("image registry %v does not match registries from rule: %#v", attrs.Name.Registry, rule.MatchRegistries) - return false - } - - // all subsequent calls require the image - image := attrs.Image - if image == nil { - if rule.SkipOnResolutionFailure { - klog.V(5).Infof("rule does not match because image did not resolve and SkipOnResolutionFailure is true") - // Likely we will never get here (see: https://github.com/openshift/origin/blob/4f709b48f8e52e8c6012bd8b91945f022a437a6a/pkg/image/admission/imagepolicy/rules/accept.go#L99-L103) - // but if we do, treat the condition as not matching since we are supposed to skip this rule on resolution failure. - return false - } - - // if we don't require an image to evaluate our rules, then there's no reason to continue from here - // we already know that we passed our filter - r := requiresImage(rule) - klog.V(5).Infof("image did not resolve, rule requires image metadata for matching: %t", r) - return !r - } - - if len(rule.MatchDockerImageLabels) > 0 { - if err := imageutil.ImageWithMetadata(image); err != nil { - if rule.SkipOnResolutionFailure { - return false - } else { - return true - } - } - dockerImageMetadata, hasMetadata := image.DockerImageMetadata.Object.(*docker10.DockerImage) - if !hasMetadata { - klog.V(5).Infof("image has no labels to match rule labels") - return false - } - - if !matchKeyValue(dockerImageMetadata.Config.Labels, rule.MatchDockerImageLabels) { - klog.V(5).Infof("image labels %#v do not match rule labels %#v", dockerImageMetadata.Config.Labels, rule.MatchDockerImageLabels) - return false - } - } - if !matchKeyValue(image.Annotations, rule.MatchImageAnnotations) { - klog.V(5).Infof("image annotations %#v do not match rule annotations %#v", image.Annotations, rule.MatchImageAnnotations) - return false - } - for _, s := range rule.MatchImageLabelSelectors { - if !s.Matches(labels.Set(image.Labels)) { - klog.V(5).Infof("image label selectors %#v do not match rule label selectors %#v", image.Labels, s) - return false - } - } - - return true -} - -func matchKeyValue(all map[string]string, conditions []imagepolicy.ValueCondition) bool { - for _, condition := range conditions { - switch { - case condition.Set: - if _, ok := all[condition.Key]; !ok { - return false - } - default: - if all[condition.Key] != condition.Value { - return false - } - } - } - return true -} - -func hasAnyMatch(name string, all []string) bool { - for _, s := range all { - if name == s { - return true - } - } - return false -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/quota/clusterresourcequota/accessor.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/quota/clusterresourcequota/accessor.go deleted file mode 100644 index 02c2fabf65472..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/quota/clusterresourcequota/accessor.go +++ /dev/null @@ -1,171 +0,0 @@ -package clusterresourcequota - -import ( - "context" - "time" - - lru "github.com/hashicorp/golang-lru" - - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/equality" - kapierrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - utilwait "k8s.io/apimachinery/pkg/util/wait" - etcd "k8s.io/apiserver/pkg/storage/etcd3" - corev1listers "k8s.io/client-go/listers/core/v1" - utilquota "k8s.io/kubernetes/pkg/quota/v1" - - quotav1 "github.com/openshift/api/quota/v1" - quotatypedclient "github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1" - quotalister "github.com/openshift/client-go/quota/listers/quota/v1" - "github.com/openshift/library-go/pkg/quota/clusterquotamapping" - quotautil "github.com/openshift/library-go/pkg/quota/quotautil" -) - -type clusterQuotaAccessor struct { - clusterQuotaLister quotalister.ClusterResourceQuotaLister - namespaceLister corev1listers.NamespaceLister - clusterQuotaClient quotatypedclient.ClusterResourceQuotasGetter - - clusterQuotaMapper clusterquotamapping.ClusterQuotaMapper - - // updatedClusterQuotas holds a cache of quotas that we've updated. This is used to pull the "really latest" during back to - // back quota evaluations that touch the same quota doc. This only works because we can compare etcd resourceVersions - // for the same resource as integers. Before this change: 22 updates with 12 conflicts. after this change: 15 updates with 0 conflicts - updatedClusterQuotas *lru.Cache -} - -// newQuotaAccessor creates an object that conforms to the QuotaAccessor interface to be used to retrieve quota objects. -func newQuotaAccessor( - clusterQuotaLister quotalister.ClusterResourceQuotaLister, - namespaceLister corev1listers.NamespaceLister, - clusterQuotaClient quotatypedclient.ClusterResourceQuotasGetter, - clusterQuotaMapper clusterquotamapping.ClusterQuotaMapper, -) *clusterQuotaAccessor { - updatedCache, err := lru.New(100) - if err != nil { - // this should never happen - panic(err) - } - - return &clusterQuotaAccessor{ - clusterQuotaLister: clusterQuotaLister, - namespaceLister: namespaceLister, - clusterQuotaClient: clusterQuotaClient, - clusterQuotaMapper: clusterQuotaMapper, - updatedClusterQuotas: updatedCache, - } -} - -// UpdateQuotaStatus the newQuota coming in will be incremented from the original. The difference between the original -// and the new is the amount to add to the namespace total, but the total status is the used value itself -func (e *clusterQuotaAccessor) UpdateQuotaStatus(newQuota *corev1.ResourceQuota) error { - clusterQuota, err := e.clusterQuotaLister.Get(newQuota.Name) - if err != nil { - return err - } - clusterQuota = e.checkCache(clusterQuota) - - // re-assign objectmeta - // make a copy - clusterQuota = clusterQuota.DeepCopy() - clusterQuota.ObjectMeta = newQuota.ObjectMeta - clusterQuota.Namespace = "" - - // determine change in usage - usageDiff := utilquota.Subtract(newQuota.Status.Used, clusterQuota.Status.Total.Used) - - // update aggregate usage - clusterQuota.Status.Total.Used = newQuota.Status.Used - - // update per namespace totals - oldNamespaceTotals, _ := quotautil.GetResourceQuotasStatusByNamespace(clusterQuota.Status.Namespaces, newQuota.Namespace) - namespaceTotalCopy := oldNamespaceTotals.DeepCopy() - newNamespaceTotals := *namespaceTotalCopy - newNamespaceTotals.Used = utilquota.Add(oldNamespaceTotals.Used, usageDiff) - quotautil.InsertResourceQuotasStatus(&clusterQuota.Status.Namespaces, quotav1.ResourceQuotaStatusByNamespace{ - Namespace: newQuota.Namespace, - Status: newNamespaceTotals, - }) - - updatedQuota, err := e.clusterQuotaClient.ClusterResourceQuotas().UpdateStatus(context.TODO(), clusterQuota, metav1.UpdateOptions{}) - if err != nil { - return err - } - - e.updatedClusterQuotas.Add(clusterQuota.Name, updatedQuota) - return nil -} - -var etcdVersioner = etcd.APIObjectVersioner{} - -// checkCache compares the passed quota against the value in the look-aside cache and returns the newer -// if the cache is out of date, it deletes the stale entry. This only works because of etcd resourceVersions -// being monotonically increasing integers -func (e *clusterQuotaAccessor) checkCache(clusterQuota *quotav1.ClusterResourceQuota) *quotav1.ClusterResourceQuota { - uncastCachedQuota, ok := e.updatedClusterQuotas.Get(clusterQuota.Name) - if !ok { - return clusterQuota - } - cachedQuota := uncastCachedQuota.(*quotav1.ClusterResourceQuota) - - if etcdVersioner.CompareResourceVersion(clusterQuota, cachedQuota) >= 0 { - e.updatedClusterQuotas.Remove(clusterQuota.Name) - return clusterQuota - } - return cachedQuota -} - -func (e *clusterQuotaAccessor) GetQuotas(namespaceName string) ([]corev1.ResourceQuota, error) { - clusterQuotaNames, err := e.waitForReadyClusterQuotaNames(namespaceName) - if err != nil { - return nil, err - } - - resourceQuotas := []corev1.ResourceQuota{} - for _, clusterQuotaName := range clusterQuotaNames { - clusterQuota, err := e.clusterQuotaLister.Get(clusterQuotaName) - if kapierrors.IsNotFound(err) { - continue - } - if err != nil { - return nil, err - } - - clusterQuota = e.checkCache(clusterQuota) - - // now convert to a ResourceQuota - convertedQuota := corev1.ResourceQuota{} - convertedQuota.ObjectMeta = clusterQuota.ObjectMeta - convertedQuota.Namespace = namespaceName - convertedQuota.Spec = clusterQuota.Spec.Quota - convertedQuota.Status = clusterQuota.Status.Total - resourceQuotas = append(resourceQuotas, convertedQuota) - - } - - return resourceQuotas, nil -} - -func (e *clusterQuotaAccessor) waitForReadyClusterQuotaNames(namespaceName string) ([]string, error) { - var clusterQuotaNames []string - // wait for a valid mapping cache. The overall response can be delayed for up to 10 seconds. - err := utilwait.PollImmediate(100*time.Millisecond, 8*time.Second, func() (done bool, err error) { - var namespaceSelectionFields clusterquotamapping.SelectionFields - clusterQuotaNames, namespaceSelectionFields = e.clusterQuotaMapper.GetClusterQuotasFor(namespaceName) - namespace, err := e.namespaceLister.Get(namespaceName) - // if we can't find the namespace yet, just wait for the cache to update. Requests to non-existent namespaces - // may hang, but those people are doing something wrong and namespacelifecycle should reject them. - if kapierrors.IsNotFound(err) { - return false, nil - } - if err != nil { - return false, err - } - if equality.Semantic.DeepEqual(namespaceSelectionFields, clusterquotamapping.GetSelectionFields(namespace)) { - return true, nil - } - return false, nil - }) - return clusterQuotaNames, err -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/quota/clusterresourcequota/admission.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/quota/clusterresourcequota/admission.go deleted file mode 100644 index 741629e55c683..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/quota/clusterresourcequota/admission.go +++ /dev/null @@ -1,221 +0,0 @@ -package clusterresourcequota - -import ( - "context" - "errors" - "io" - "sort" - "sync" - "time" - - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - utilwait "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/admission/initializer" - "k8s.io/client-go/informers" - corev1listers "k8s.io/client-go/listers/core/v1" - "k8s.io/client-go/rest" - "k8s.io/kubernetes/pkg/quota/v1" - "k8s.io/kubernetes/pkg/quota/v1/install" - "k8s.io/kubernetes/plugin/pkg/admission/resourcequota" - resourcequotaapi "k8s.io/kubernetes/plugin/pkg/admission/resourcequota/apis/resourcequota" - - quotatypedclient "github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1" - quotainformer "github.com/openshift/client-go/quota/informers/externalversions/quota/v1" - quotalister "github.com/openshift/client-go/quota/listers/quota/v1" - "github.com/openshift/library-go/pkg/apiserver/admission/admissionrestconfig" - "github.com/openshift/library-go/pkg/quota/clusterquotamapping" -) - -func Register(plugins *admission.Plugins) { - plugins.Register("quota.openshift.io/ClusterResourceQuota", - func(config io.Reader) (admission.Interface, error) { - return NewClusterResourceQuota() - }) -} - -// clusterQuotaAdmission implements an admission controller that can enforce clusterQuota constraints -type clusterQuotaAdmission struct { - *admission.Handler - - // these are used to create the accessor - clusterQuotaLister quotalister.ClusterResourceQuotaLister - namespaceLister corev1listers.NamespaceLister - clusterQuotaSynced func() bool - namespaceSynced func() bool - clusterQuotaClient quotatypedclient.ClusterResourceQuotasGetter - clusterQuotaMapper clusterquotamapping.ClusterQuotaMapper - - lockFactory LockFactory - - // these are used to create the evaluator - registry quota.Registry - - init sync.Once - evaluator resourcequota.Evaluator -} - -var _ initializer.WantsExternalKubeInformerFactory = &clusterQuotaAdmission{} -var _ admissionrestconfig.WantsRESTClientConfig = &clusterQuotaAdmission{} -var _ WantsClusterQuota = &clusterQuotaAdmission{} -var _ WantsOriginQuotaRegistry = &clusterQuotaAdmission{} -var _ admission.ValidationInterface = &clusterQuotaAdmission{} - -const ( - timeToWaitForCacheSync = 10 * time.Second - numEvaluatorThreads = 10 -) - -// NewClusterResourceQuota configures an admission controller that can enforce clusterQuota constraints -// using the provided registry. The registry must have the capability to handle group/kinds that -// are persisted by the server this admission controller is intercepting -func NewClusterResourceQuota() (admission.Interface, error) { - return &clusterQuotaAdmission{ - Handler: admission.NewHandler(admission.Create, admission.Update), - lockFactory: NewDefaultLockFactory(), - }, nil -} - -// Admit makes admission decisions while enforcing clusterQuota -func (q *clusterQuotaAdmission) Validate(ctx context.Context, a admission.Attributes, _ admission.ObjectInterfaces) (err error) { - // ignore all operations that correspond to sub-resource actions - if len(a.GetSubresource()) != 0 { - return nil - } - // ignore cluster level resources - if len(a.GetNamespace()) == 0 { - return nil - } - - if !q.waitForSyncedStore(time.After(timeToWaitForCacheSync)) { - return admission.NewForbidden(a, errors.New("caches not synchronized")) - } - - q.init.Do(func() { - clusterQuotaAccessor := newQuotaAccessor(q.clusterQuotaLister, q.namespaceLister, q.clusterQuotaClient, q.clusterQuotaMapper) - q.evaluator = resourcequota.NewQuotaEvaluator(clusterQuotaAccessor, ignoredResources, q.registry, q.lockAquisition, &resourcequotaapi.Configuration{}, numEvaluatorThreads, utilwait.NeverStop) - }) - - return q.evaluator.Evaluate(a) -} - -func (q *clusterQuotaAdmission) lockAquisition(quotas []corev1.ResourceQuota) func() { - locks := []sync.Locker{} - - // acquire the locks in alphabetical order because I'm too lazy to think of something clever - sort.Sort(ByName(quotas)) - for _, quota := range quotas { - lock := q.lockFactory.GetLock(quota.Name) - lock.Lock() - locks = append(locks, lock) - } - - return func() { - for i := len(locks) - 1; i >= 0; i-- { - locks[i].Unlock() - } - } -} - -func (q *clusterQuotaAdmission) waitForSyncedStore(timeout <-chan time.Time) bool { - for !q.clusterQuotaSynced() || !q.namespaceSynced() { - select { - case <-time.After(100 * time.Millisecond): - case <-timeout: - return q.clusterQuotaSynced() && q.namespaceSynced() - } - } - - return true -} - -func (q *clusterQuotaAdmission) SetOriginQuotaRegistry(registry quota.Registry) { - q.registry = registry -} - -func (q *clusterQuotaAdmission) SetExternalKubeInformerFactory(informers informers.SharedInformerFactory) { - q.namespaceLister = informers.Core().V1().Namespaces().Lister() - q.namespaceSynced = informers.Core().V1().Namespaces().Informer().HasSynced -} - -func (q *clusterQuotaAdmission) SetRESTClientConfig(restClientConfig rest.Config) { - var err error - - // ClusterResourceQuota is served using CRD resource any status update must use JSON - jsonClientConfig := rest.CopyConfig(&restClientConfig) - jsonClientConfig.ContentConfig.AcceptContentTypes = "application/json" - jsonClientConfig.ContentConfig.ContentType = "application/json" - - q.clusterQuotaClient, err = quotatypedclient.NewForConfig(jsonClientConfig) - if err != nil { - utilruntime.HandleError(err) - return - } -} - -func (q *clusterQuotaAdmission) SetClusterQuota(clusterQuotaMapper clusterquotamapping.ClusterQuotaMapper, informers quotainformer.ClusterResourceQuotaInformer) { - q.clusterQuotaMapper = clusterQuotaMapper - q.clusterQuotaLister = informers.Lister() - q.clusterQuotaSynced = informers.Informer().HasSynced -} - -func (q *clusterQuotaAdmission) ValidateInitialization() error { - if q.clusterQuotaLister == nil { - return errors.New("missing clusterQuotaLister") - } - if q.namespaceLister == nil { - return errors.New("missing namespaceLister") - } - if q.clusterQuotaClient == nil { - return errors.New("missing clusterQuotaClient") - } - if q.clusterQuotaMapper == nil { - return errors.New("missing clusterQuotaMapper") - } - if q.registry == nil { - return errors.New("missing registry") - } - - return nil -} - -type ByName []corev1.ResourceQuota - -func (v ByName) Len() int { return len(v) } -func (v ByName) Swap(i, j int) { v[i], v[j] = v[j], v[i] } -func (v ByName) Less(i, j int) bool { return v[i].Name < v[j].Name } - -// ignoredResources is the set of resources that clusterquota ignores. It's larger because we have to ignore requests -// that the namespace lifecycle plugin ignores. This is because of the need to have a matching namespace in order to be sure -// that the cache is current enough to have mapped the CRQ to the namespaces. Normal RQ doesn't have that requirement. -var ignoredResources = map[schema.GroupResource]struct{}{} - -func init() { - for k := range install.DefaultIgnoredResources() { - ignoredResources[k] = struct{}{} - } - for k := range accessReviewResources { - ignoredResources[k] = struct{}{} - } - -} - -// accessReviewResources are resources which give a view into permissions in a namespace. Users must be allowed to create these -// resources because returning "not found" errors allows someone to search for the "people I'm going to fire in 2017" namespace. -var accessReviewResources = map[schema.GroupResource]bool{ - {Group: "authorization.k8s.io", Resource: "localsubjectaccessreviews"}: true, - {Group: "", Resource: "subjectaccessreviews"}: true, - {Group: "", Resource: "localsubjectaccessreviews"}: true, - {Group: "", Resource: "resourceaccessreviews"}: true, - {Group: "", Resource: "localresourceaccessreviews"}: true, - {Group: "", Resource: "selfsubjectrulesreviews"}: true, - {Group: "", Resource: "subjectrulesreviews"}: true, - {Group: "authorization.openshift.io", Resource: "subjectaccessreviews"}: true, - {Group: "authorization.openshift.io", Resource: "localsubjectaccessreviews"}: true, - {Group: "authorization.openshift.io", Resource: "resourceaccessreviews"}: true, - {Group: "authorization.openshift.io", Resource: "localresourceaccessreviews"}: true, - {Group: "authorization.openshift.io", Resource: "selfsubjectrulesreviews"}: true, - {Group: "authorization.openshift.io", Resource: "subjectrulesreviews"}: true, -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/quota/clusterresourcequota/intializers.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/quota/clusterresourcequota/intializers.go deleted file mode 100644 index a7ed923c9276f..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/quota/clusterresourcequota/intializers.go +++ /dev/null @@ -1,51 +0,0 @@ -package clusterresourcequota - -import ( - "k8s.io/apiserver/pkg/admission" - quota "k8s.io/kubernetes/pkg/quota/v1" - - quotainformer "github.com/openshift/client-go/quota/informers/externalversions/quota/v1" - "github.com/openshift/library-go/pkg/quota/clusterquotamapping" -) - -func NewInitializer( - clusterResourceQuotaInformer quotainformer.ClusterResourceQuotaInformer, - clusterQuotaMapper clusterquotamapping.ClusterQuotaMapper, - quotaRegistry quota.Registry, -) admission.PluginInitializer { - return &localInitializer{ - clusterResourceQuotaInformer: clusterResourceQuotaInformer, - clusterQuotaMapper: clusterQuotaMapper, - quotaRegistry: quotaRegistry, - } -} - -// WantsClusterQuota should be implemented by admission plugins that need to know how to map between -// cluster quota and namespaces and get access to the informer. -type WantsClusterQuota interface { - SetClusterQuota(clusterquotamapping.ClusterQuotaMapper, quotainformer.ClusterResourceQuotaInformer) - admission.InitializationValidator -} - -// WantsQuotaRegistry should be implemented by admission plugins that need a quota registry -type WantsOriginQuotaRegistry interface { - SetOriginQuotaRegistry(quota.Registry) - admission.InitializationValidator -} - -type localInitializer struct { - clusterResourceQuotaInformer quotainformer.ClusterResourceQuotaInformer - clusterQuotaMapper clusterquotamapping.ClusterQuotaMapper - quotaRegistry quota.Registry -} - -// Initialize will check the initialization interfaces implemented by each plugin -// and provide the appropriate initialization data -func (i *localInitializer) Initialize(plugin admission.Interface) { - if wants, ok := plugin.(WantsClusterQuota); ok { - wants.SetClusterQuota(i.clusterQuotaMapper, i.clusterResourceQuotaInformer) - } - if wants, ok := plugin.(WantsOriginQuotaRegistry); ok { - wants.SetOriginQuotaRegistry(i.quotaRegistry) - } -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/quota/clusterresourcequota/lockfactory.go b/vendor/github.com/openshift/apiserver-library-go/pkg/admission/quota/clusterresourcequota/lockfactory.go deleted file mode 100644 index ed73d0e2d14f3..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/admission/quota/clusterresourcequota/lockfactory.go +++ /dev/null @@ -1,40 +0,0 @@ -package clusterresourcequota - -import ( - "sync" -) - -type LockFactory interface { - GetLock(string) sync.Locker -} - -type DefaultLockFactory struct { - lock sync.RWMutex - - locks map[string]sync.Locker -} - -func NewDefaultLockFactory() *DefaultLockFactory { - return &DefaultLockFactory{locks: map[string]sync.Locker{}} -} - -func (f *DefaultLockFactory) GetLock(key string) sync.Locker { - lock, exists := f.getExistingLock(key) - if exists { - return lock - } - - f.lock.Lock() - defer f.lock.Unlock() - lock = &sync.Mutex{} - f.locks[key] = lock - return lock -} - -func (f *DefaultLockFactory) getExistingLock(key string) (sync.Locker, bool) { - f.lock.RLock() - defer f.lock.RUnlock() - - lock, exists := f.locks[key] - return lock, exists -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/authorization/scope/converter.go b/vendor/github.com/openshift/apiserver-library-go/pkg/authorization/scope/converter.go deleted file mode 100644 index 015cb0158f9f2..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/authorization/scope/converter.go +++ /dev/null @@ -1,408 +0,0 @@ -package scope - -import ( - "fmt" - - rbacv1 "k8s.io/api/rbac/v1" - kapierrors "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/runtime/schema" - kutilerrors "k8s.io/apimachinery/pkg/util/errors" - "k8s.io/apimachinery/pkg/util/sets" - kauthorizer "k8s.io/apiserver/pkg/authorization/authorizer" - rbaclisters "k8s.io/client-go/listers/rbac/v1" - rbacv1helpers "k8s.io/kubernetes/pkg/apis/rbac/v1" - authorizerrbac "k8s.io/kubernetes/plugin/pkg/auth/authorizer/rbac" - - scopemetadata "github.com/openshift/library-go/pkg/authorization/scopemetadata" -) - -const ( - scopesAllNamespaces = "*" - - legacyGroupName = "" - coreGroupName = "" - kubeAuthorizationGroupName = "authorization.k8s.io" - openshiftAuthorizationGroupName = "authorization.openshift.io" - imageGroupName = "image.openshift.io" - networkGroupName = "network.openshift.io" - oauthGroupName = "oauth.openshift.io" - projectGroupName = "project.openshift.io" - userGroupName = "user.openshift.io" -) - -// scopeDiscoveryRule is a rule that allows a client to discover the API resources available on this server -var scopeDiscoveryRule = rbacv1.PolicyRule{ - Verbs: []string{"get"}, - NonResourceURLs: []string{ - // Server version checking - "/version", "/version/*", - - // API discovery/negotiation - "/api", "/api/*", - "/apis", "/apis/*", - "/oapi", "/oapi/*", - "/openapi/v2", - "/swaggerapi", "/swaggerapi/*", "/swagger.json", "/swagger-2.0.0.pb-v1", - "/osapi", "/osapi/", // these cannot be removed until we can drop support for pre 3.1 clients - "/.well-known", "/.well-known/*", - - // we intentionally allow all to here - "/", - }, -} - -// ScopesToRules takes the scopes and return the rules back. We ALWAYS add the discovery rules and it is possible to get some rules and and -// an error since errors aren't fatal to evaluation -func ScopesToRules(scopes []string, namespace string, clusterRoleGetter rbaclisters.ClusterRoleLister) ([]rbacv1.PolicyRule, error) { - rules := append([]rbacv1.PolicyRule{}, scopeDiscoveryRule) - - errors := []error{} - for _, scope := range scopes { - found := false - - for _, evaluator := range ScopeEvaluators { - if evaluator.Handles(scope) { - found = true - currRules, err := evaluator.ResolveRules(scope, namespace, clusterRoleGetter) - if err != nil { - errors = append(errors, err) - continue - } - - rules = append(rules, currRules...) - } - } - - if !found { - errors = append(errors, fmt.Errorf("no scope evaluator found for %q", scope)) - } - } - - return rules, kutilerrors.NewAggregate(errors) -} - -// ScopesToVisibleNamespaces returns a list of namespaces that the provided scopes have "get" access to. -// This exists only to support efficiently list/watch of projects (ACLed namespaces) -func ScopesToVisibleNamespaces(scopes []string, clusterRoleGetter rbaclisters.ClusterRoleLister, ignoreUnhandledScopes bool) (sets.String, error) { - if len(scopes) == 0 { - return sets.NewString("*"), nil - } - - visibleNamespaces := sets.String{} - - errors := []error{} - for _, scope := range scopes { - found := false - - for _, evaluator := range ScopeEvaluators { - if evaluator.Handles(scope) { - found = true - allowedNamespaces, err := evaluator.ResolveGettableNamespaces(scope, clusterRoleGetter) - if err != nil { - errors = append(errors, err) - continue - } - - visibleNamespaces.Insert(allowedNamespaces...) - break - } - } - - if !found && !ignoreUnhandledScopes { - errors = append(errors, fmt.Errorf("no scope evaluator found for %q", scope)) - } - } - - return visibleNamespaces, kutilerrors.NewAggregate(errors) -} - -const ( - UserIndicator = "user:" - ClusterRoleIndicator = "role:" -) - -// ScopeEvaluator takes a scope and returns the rules that express it -type ScopeEvaluator interface { - // Handles returns true if this evaluator can evaluate this scope - Handles(scope string) bool - // Validate returns an error if the scope is malformed - Validate(scope string) error - // Describe returns a description, warning (typically used to warn about escalation dangers), or an error if the scope is malformed - Describe(scope string) (description string, warning string, err error) - // ResolveRules returns the policy rules that this scope allows - ResolveRules(scope, namespace string, clusterRoleGetter rbaclisters.ClusterRoleLister) ([]rbacv1.PolicyRule, error) - ResolveGettableNamespaces(scope string, clusterRoleGetter rbaclisters.ClusterRoleLister) ([]string, error) -} - -// ScopeEvaluators map prefixes to a function that handles that prefix -var ScopeEvaluators = []ScopeEvaluator{ - userEvaluator{}, - clusterRoleEvaluator{}, -} - -// scopes are in the format -// -// we have the following formats: -// user: -// role:: -// TODO -// cluster:: -// namespace::: - -const ( - UserInfo = UserIndicator + "info" - UserAccessCheck = UserIndicator + "check-access" - - // UserListScopedProjects gives explicit permission to see the projects that this token can see. - UserListScopedProjects = UserIndicator + "list-scoped-projects" - - // UserListAllProjects gives explicit permission to see the projects a user can see. This is often used to prime secondary ACL systems - // unrelated to openshift and to display projects for selection in a secondary UI. - UserListAllProjects = UserIndicator + "list-projects" - - // UserFull includes all permissions of the user - UserFull = UserIndicator + "full" -) - -var defaultSupportedScopesMap = map[string]string{ - UserInfo: "Read-only access to your user information (including username, identities, and group membership)", - UserAccessCheck: `Read-only access to view your privileges (for example, "can I create builds?")`, - UserListScopedProjects: `Read-only access to list your projects viewable with this token and view their metadata (display name, description, etc.)`, - UserListAllProjects: `Read-only access to list your projects and view their metadata (display name, description, etc.)`, - UserFull: `Full read/write access with all of your permissions`, -} - -func DefaultSupportedScopes() []string { - return sets.StringKeySet(defaultSupportedScopesMap).List() -} - -func DescribeScopes(scopes []string) map[string]string { - ret := map[string]string{} - for _, s := range scopes { - val, ok := defaultSupportedScopesMap[s] - if ok { - ret[s] = val - } else { - ret[s] = "" - } - } - return ret -} - -// user: -type userEvaluator struct { - scopemetadata.UserEvaluator -} - -func (userEvaluator) ResolveRules(scope, namespace string, _ rbaclisters.ClusterRoleLister) ([]rbacv1.PolicyRule, error) { - switch scope { - case UserInfo: - return []rbacv1.PolicyRule{ - rbacv1helpers.NewRule("get"). - Groups(userGroupName, legacyGroupName). - Resources("users"). - Names("~"). - RuleOrDie(), - }, nil - case UserAccessCheck: - return []rbacv1.PolicyRule{ - rbacv1helpers.NewRule("create"). - Groups(kubeAuthorizationGroupName). - Resources("selfsubjectaccessreviews"). - RuleOrDie(), - rbacv1helpers.NewRule("create"). - Groups(openshiftAuthorizationGroupName, legacyGroupName). - Resources("selfsubjectrulesreviews"). - RuleOrDie(), - }, nil - case UserListScopedProjects: - return []rbacv1.PolicyRule{ - rbacv1helpers.NewRule("list", "watch"). - Groups(projectGroupName, legacyGroupName). - Resources("projects"). - RuleOrDie(), - }, nil - case UserListAllProjects: - return []rbacv1.PolicyRule{ - rbacv1helpers.NewRule("list", "watch"). - Groups(projectGroupName, legacyGroupName). - Resources("projects"). - RuleOrDie(), - rbacv1helpers.NewRule("get"). - Groups(coreGroupName). - Resources("namespaces"). - RuleOrDie(), - }, nil - case UserFull: - return []rbacv1.PolicyRule{ - rbacv1helpers.NewRule(rbacv1.VerbAll). - Groups(rbacv1.APIGroupAll). - Resources(rbacv1.ResourceAll). - RuleOrDie(), - rbacv1helpers.NewRule(rbacv1.VerbAll). - URLs(rbacv1.NonResourceAll). - RuleOrDie(), - }, nil - default: - return nil, fmt.Errorf("unrecognized scope: %v", scope) - } -} - -func (userEvaluator) ResolveGettableNamespaces(scope string, _ rbaclisters.ClusterRoleLister) ([]string, error) { - switch scope { - case UserFull, UserListAllProjects: - return []string{"*"}, nil - default: - return []string{}, nil - } -} - -// escalatingScopeResources are resources that are considered escalating for scope evaluation -var escalatingScopeResources = []schema.GroupResource{ - {Group: coreGroupName, Resource: "secrets"}, - {Group: imageGroupName, Resource: "imagestreams/secrets"}, - {Group: oauthGroupName, Resource: "oauthauthorizetokens"}, - {Group: oauthGroupName, Resource: "oauthaccesstokens"}, - {Group: openshiftAuthorizationGroupName, Resource: "roles"}, - {Group: openshiftAuthorizationGroupName, Resource: "rolebindings"}, - {Group: openshiftAuthorizationGroupName, Resource: "clusterroles"}, - {Group: openshiftAuthorizationGroupName, Resource: "clusterrolebindings"}, - // used in Service admission to create a service with external IP outside the allowed range - {Group: networkGroupName, Resource: "service/externalips"}, - - {Group: legacyGroupName, Resource: "imagestreams/secrets"}, - {Group: legacyGroupName, Resource: "oauthauthorizetokens"}, - {Group: legacyGroupName, Resource: "oauthaccesstokens"}, - {Group: legacyGroupName, Resource: "roles"}, - {Group: legacyGroupName, Resource: "rolebindings"}, - {Group: legacyGroupName, Resource: "clusterroles"}, - {Group: legacyGroupName, Resource: "clusterrolebindings"}, -} - -// role:: -type clusterRoleEvaluator struct { - scopemetadata.ClusterRoleEvaluator -} - -var clusterRoleEvaluatorInstance = clusterRoleEvaluator{} - -func (e clusterRoleEvaluator) ResolveRules(scope, namespace string, clusterRoleGetter rbaclisters.ClusterRoleLister) ([]rbacv1.PolicyRule, error) { - _, scopeNamespace, _, err := scopemetadata.ClusterRoleEvaluatorParseScope(scope) - if err != nil { - return nil, err - } - - // if the scope limit on the clusterrole doesn't match, then don't add any rules, but its not an error - if !(scopeNamespace == scopesAllNamespaces || scopeNamespace == namespace) { - return []rbacv1.PolicyRule{}, nil - } - - return e.resolveRules(scope, clusterRoleGetter) -} - -func has(set []string, value string) bool { - for _, element := range set { - if value == element { - return true - } - } - return false -} - -// resolveRules doesn't enforce namespace checks -func (e clusterRoleEvaluator) resolveRules(scope string, clusterRoleGetter rbaclisters.ClusterRoleLister) ([]rbacv1.PolicyRule, error) { - roleName, _, escalating, err := scopemetadata.ClusterRoleEvaluatorParseScope(scope) - if err != nil { - return nil, err - } - - role, err := clusterRoleGetter.Get(roleName) - if err != nil { - if kapierrors.IsNotFound(err) { - return []rbacv1.PolicyRule{}, nil - } - return nil, err - } - - rules := []rbacv1.PolicyRule{} - for _, rule := range role.Rules { - if escalating { - rules = append(rules, rule) - continue - } - - // rules with unbounded access shouldn't be allowed in scopes. - if has(rule.Verbs, rbacv1.VerbAll) || - has(rule.Resources, rbacv1.ResourceAll) || - has(rule.APIGroups, rbacv1.APIGroupAll) { - continue - } - // rules that allow escalating resource access should be cleaned. - safeRule := removeEscalatingResources(rule) - rules = append(rules, safeRule) - } - - return rules, nil -} - -func (e clusterRoleEvaluator) ResolveGettableNamespaces(scope string, clusterRoleGetter rbaclisters.ClusterRoleLister) ([]string, error) { - _, scopeNamespace, _, err := scopemetadata.ClusterRoleEvaluatorParseScope(scope) - if err != nil { - return nil, err - } - rules, err := e.resolveRules(scope, clusterRoleGetter) - if err != nil { - return nil, err - } - - attributes := kauthorizer.AttributesRecord{ - APIGroup: coreGroupName, - Verb: "get", - Resource: "namespaces", - ResourceRequest: true, - } - - if authorizerrbac.RulesAllow(attributes, rules...) { - return []string{scopeNamespace}, nil - } - - return []string{}, nil -} - -func remove(array []string, item string) []string { - newar := array[:0] - for _, element := range array { - if element != item { - newar = append(newar, element) - } - } - return newar -} - -// removeEscalatingResources inspects a PolicyRule and removes any references to escalating resources. -// It has coarse logic for now. It is possible to rewrite one rule into many for the finest grain control -// but removing the entire matching resource regardless of verb or secondary group is cheaper, easier, and errs on the side removing -// too much, not too little -func removeEscalatingResources(in rbacv1.PolicyRule) rbacv1.PolicyRule { - var ruleCopy *rbacv1.PolicyRule - - for _, resource := range escalatingScopeResources { - if !(has(in.APIGroups, resource.Group) && has(in.Resources, resource.Resource)) { - continue - } - - if ruleCopy == nil { - // we're using a cache of cache of an object that uses pointers to data. I'm pretty sure we need to do a copy to avoid - // muddying the cache - ruleCopy = in.DeepCopy() - } - - ruleCopy.Resources = remove(ruleCopy.Resources, resource.Resource) - } - - if ruleCopy != nil { - return *ruleCopy - } - - return in -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/configflags/audit.go b/vendor/github.com/openshift/apiserver-library-go/pkg/configflags/audit.go deleted file mode 100644 index f7d378daf145f..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/configflags/audit.go +++ /dev/null @@ -1,54 +0,0 @@ -package configflags - -import ( - "io/ioutil" - "os" - "path/filepath" - "strconv" - - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - - configv1 "github.com/openshift/api/config/v1" -) - -const defaultAuditPolicyFilePath = "openshift.local.audit/policy.yaml" - -func AuditFlags(c *configv1.AuditConfig, args map[string][]string) map[string][]string { - if !c.Enabled { - return args - } - - auditPolicyFilePath := c.PolicyFile - if len(c.PolicyConfiguration.Raw) > 0 && string(c.PolicyConfiguration.Raw) != "null" { - if len(auditPolicyFilePath) == 0 { - auditPolicyFilePath = defaultAuditPolicyFilePath - } - if err := os.MkdirAll(filepath.Dir(auditPolicyFilePath), 0755); err != nil { - utilruntime.HandleError(err) - } - if err := ioutil.WriteFile(auditPolicyFilePath, c.PolicyConfiguration.Raw, 0644); err != nil { - utilruntime.HandleError(err) - } - } - - SetIfUnset(args, "audit-log-maxbackup", strconv.Itoa(int(c.MaximumRetainedFiles))) - SetIfUnset(args, "audit-log-maxsize", strconv.Itoa(int(c.MaximumFileSizeMegabytes))) - SetIfUnset(args, "audit-log-maxage", strconv.Itoa(int(c.MaximumFileRetentionDays))) - auditFilePath := c.AuditFilePath - if len(auditFilePath) == 0 { - auditFilePath = "-" - } - SetIfUnset(args, "audit-log-path", auditFilePath) - if len(auditPolicyFilePath) > 0 { - SetIfUnset(args, "audit-policy-file", auditPolicyFilePath) - } - if len(c.LogFormat) > 0 { - SetIfUnset(args, "audit-log-format", string(c.LogFormat)) - } - if len(c.WebHookMode) > 0 { - SetIfUnset(args, "audit-webhook-mode", string(c.WebHookMode)) - } - SetIfUnset(args, "audit-webhook-config-file", string(c.WebHookKubeConfig)) - - return args -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/configflags/helpers.go b/vendor/github.com/openshift/apiserver-library-go/pkg/configflags/helpers.go deleted file mode 100644 index 12870a4b5916b..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/configflags/helpers.go +++ /dev/null @@ -1,43 +0,0 @@ -package configflags - -import ( - "fmt" - "sort" - "strings" -) - -// ArgsWithPrefix filters arguments by prefix and collects values. -func ArgsWithPrefix(args map[string][]string, prefix string) map[string][]string { - filtered := map[string][]string{} - for key, slice := range args { - if !strings.HasPrefix(key, prefix) { - continue - } - for _, val := range slice { - filtered[key] = append(filtered[key], val) - } - } - return filtered -} - -func SetIfUnset(cmdLineArgs map[string][]string, key string, value ...string) { - if _, ok := cmdLineArgs[key]; !ok { - cmdLineArgs[key] = value - } -} - -func ToFlagSlice(args map[string][]string) []string { - var keys []string - for key := range args { - keys = append(keys, key) - } - sort.Strings(keys) - - var flags []string - for _, key := range keys { - for _, token := range args[key] { - flags = append(flags, fmt.Sprintf("--%s=%v", key, token)) - } - } - return flags -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/capabilities/mustrunas.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/capabilities/mustrunas.go deleted file mode 100644 index 9e6e1d5a59b54..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/capabilities/mustrunas.go +++ /dev/null @@ -1,149 +0,0 @@ -package capabilities - -import ( - "fmt" - - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/util/validation/field" - api "k8s.io/kubernetes/pkg/apis/core" - - securityv1 "github.com/openshift/api/security/v1" -) - -// defaultCapabilities implements the CapabilitiesSecurityContextConstraintsStrategy interface -type defaultCapabilities struct { - defaultAddCapabilities []corev1.Capability - requiredDropCapabilities []corev1.Capability - allowedCaps []corev1.Capability -} - -var _ CapabilitiesSecurityContextConstraintsStrategy = &defaultCapabilities{} - -// NewDefaultCapabilities creates a new defaultCapabilities strategy that will provide defaults and validation -// based on the configured initial caps and allowed caps. -func NewDefaultCapabilities(defaultAddCapabilities, requiredDropCapabilities, allowedCaps []corev1.Capability) (CapabilitiesSecurityContextConstraintsStrategy, error) { - return &defaultCapabilities{ - defaultAddCapabilities: defaultAddCapabilities, - requiredDropCapabilities: requiredDropCapabilities, - allowedCaps: allowedCaps, - }, nil -} - -// Generate creates the capabilities based on policy rules. Generate will produce the following: -// 1. a capabilities.Add set containing all the required adds (unless the -// container specifically is dropping the cap) and container requested adds -// 2. a capabilities.Drop set containing all the required drops and container requested drops -// -// Returns the original container capabilities if no changes are required. -func (s *defaultCapabilities) Generate(pod *api.Pod, container *api.Container) (*api.Capabilities, error) { - defaultAdd := makeCapSet(s.defaultAddCapabilities) - requiredDrop := makeCapSet(s.requiredDropCapabilities) - containerAdd := sets.NewString() - containerDrop := sets.NewString() - - var containerCapabilities *api.Capabilities - if container.SecurityContext != nil && container.SecurityContext.Capabilities != nil { - containerCapabilities = container.SecurityContext.Capabilities - containerAdd = makeCapSetInternal(container.SecurityContext.Capabilities.Add) - containerDrop = makeCapSetInternal(container.SecurityContext.Capabilities.Drop) - } - - // remove any default adds that the container is specifically dropping - defaultAdd = defaultAdd.Difference(containerDrop) - - combinedAdd := defaultAdd.Union(containerAdd) - combinedDrop := requiredDrop.Union(containerDrop) - - // no changes? return the original capabilities - if (len(combinedAdd) == len(containerAdd)) && (len(combinedDrop) == len(containerDrop)) { - return containerCapabilities, nil - } - - return &api.Capabilities{ - Add: capabilityFromStringSlice(combinedAdd.List()), - Drop: capabilityFromStringSlice(combinedDrop.List()), - }, nil -} - -// Validate ensures that the specified values fall within the range of the strategy. -func (s *defaultCapabilities) Validate(fldPath *field.Path, pod *api.Pod, container *api.Container, capabilities *api.Capabilities) field.ErrorList { - allErrs := field.ErrorList{} - - if capabilities == nil { - // if container.SC.Caps is nil then nothing was defaulted by the strat or requested by the pod author - // if there are no required caps on the strategy and nothing is requested on the pod - // then we can safely return here without further validation. - if len(s.defaultAddCapabilities) == 0 && len(s.requiredDropCapabilities) == 0 { - return allErrs - } - - // container has no requested caps but we have required caps. We should have something in - // at least the drops on the container. - allErrs = append(allErrs, field.Invalid(fldPath.Child("capabilities"), capabilities, - "required capabilities are not set on the securityContext")) - return allErrs - } - - allowedAdd := makeCapSet(s.allowedCaps) - allowAllCaps := allowedAdd.Has(string(securityv1.AllowAllCapabilities)) - if allowAllCaps { - // skip validation against allowed/defaultAdd/requiredDrop because all capabilities are allowed by a wildcard - return allErrs - } - - // validate that anything being added is in the default or allowed sets - defaultAdd := makeCapSet(s.defaultAddCapabilities) - - for _, cap := range capabilities.Add { - sCap := string(cap) - if !defaultAdd.Has(sCap) && !allowedAdd.Has(sCap) { - allErrs = append(allErrs, field.Invalid(fldPath.Child("capabilities", "add"), sCap, "capability may not be added")) - } - } - - // validate that anything that is required to be dropped is in the drop set - containerDrops := makeCapSetInternal(capabilities.Drop) - - for _, requiredDrop := range s.requiredDropCapabilities { - sDrop := string(requiredDrop) - if !containerDrops.Has(sDrop) { - allErrs = append(allErrs, field.Invalid(fldPath.Child("capabilities", "drop"), capabilities.Drop, - fmt.Sprintf("%s is required to be dropped but was not found", sDrop))) - } - } - - return allErrs -} - -// capabilityFromStringSlice creates a capability slice from a string slice. -func capabilityFromStringSlice(slice []string) []api.Capability { - if len(slice) == 0 { - return nil - } - caps := []api.Capability{} - for _, c := range slice { - caps = append(caps, api.Capability(c)) - } - return caps -} - -// makeCapSet makes a string set from capabilities and normalizes them to be all lower case to help -// with comparisons. -func makeCapSetInternal(caps []api.Capability) sets.String { - s := sets.NewString() - for _, c := range caps { - s.Insert(string(c)) - } - return s -} - -// makeCapSet makes a string set from capabilities and normalizes them to be all lower case to help -// with comparisons. -func makeCapSet(caps []corev1.Capability) sets.String { - s := sets.NewString() - for _, c := range caps { - s.Insert(string(c)) - } - return s -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/capabilities/types.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/capabilities/types.go deleted file mode 100644 index 2c030d3947bbf..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/capabilities/types.go +++ /dev/null @@ -1,14 +0,0 @@ -package capabilities - -import ( - "k8s.io/apimachinery/pkg/util/validation/field" - api "k8s.io/kubernetes/pkg/apis/core" -) - -// CapabilitiesSecurityContextConstraintsStrategy defines the interface for all cap constraint strategies. -type CapabilitiesSecurityContextConstraintsStrategy interface { - // Generate creates the capabilities based on policy rules. - Generate(pod *api.Pod, container *api.Container) (*api.Capabilities, error) - // Validate ensures that the specified values fall within the range of the strategy. - Validate(fldPath *field.Path, pod *api.Pod, container *api.Container, capabilities *api.Capabilities) field.ErrorList -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/group/mustrunas.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/group/mustrunas.go deleted file mode 100644 index 14d3f06ee3b04..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/group/mustrunas.go +++ /dev/null @@ -1,76 +0,0 @@ -package group - -import ( - "fmt" - - "k8s.io/apimachinery/pkg/util/validation/field" - api "k8s.io/kubernetes/pkg/apis/core" - - securityv1 "github.com/openshift/api/security/v1" -) - -// mustRunAs implements the GroupSecurityContextConstraintsStrategy interface -type mustRunAs struct { - ranges []securityv1.IDRange - field string -} - -var _ GroupSecurityContextConstraintsStrategy = &mustRunAs{} - -// NewMustRunAs provides a new MustRunAs strategy based on ranges. -func NewMustRunAs(ranges []securityv1.IDRange, field string) (GroupSecurityContextConstraintsStrategy, error) { - if len(ranges) == 0 { - return nil, fmt.Errorf("ranges must be supplied for MustRunAs") - } - return &mustRunAs{ - ranges: ranges, - field: field, - }, nil -} - -// Generate creates the group based on policy rules. By default this returns the first group of the -// first range (min val). -func (s *mustRunAs) Generate(_ *api.Pod) ([]int64, error) { - return []int64{s.ranges[0].Min}, nil -} - -// Generate a single value to be applied. This is used for FSGroup. This strategy will return -// the first group of the first range (min val). -func (s *mustRunAs) GenerateSingle(_ *api.Pod) (*int64, error) { - single := new(int64) - *single = s.ranges[0].Min - return single, nil -} - -// Validate ensures that the specified values fall within the range of the strategy. -// Groups are passed in here to allow this strategy to support multiple group fields (fsgroup and -// supplemental groups). -func (s *mustRunAs) Validate(fldPath *field.Path, _ *api.Pod, groups []int64) field.ErrorList { - allErrs := field.ErrorList{} - - if len(groups) == 0 && len(s.ranges) > 0 { - allErrs = append(allErrs, field.Invalid(fldPath.Child(s.field), groups, "unable to validate empty groups against required ranges")) - } - - for _, group := range groups { - if !s.isGroupValid(group) { - detail := fmt.Sprintf("%d is not an allowed group", group) - allErrs = append(allErrs, field.Invalid(fldPath.Child(s.field), groups, detail)) - } - } - - return allErrs -} - -func (s *mustRunAs) isGroupValid(group int64) bool { - for _, rng := range s.ranges { - if fallsInRange(group, rng) { - return true - } - } - return false -} - -func fallsInRange(group int64, rng securityv1.IDRange) bool { - return group >= rng.Min && group <= rng.Max -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/group/runasany.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/group/runasany.go deleted file mode 100644 index 01b300e4c0f6c..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/group/runasany.go +++ /dev/null @@ -1,33 +0,0 @@ -package group - -import ( - "k8s.io/apimachinery/pkg/util/validation/field" - api "k8s.io/kubernetes/pkg/apis/core" -) - -// mustRunAs implements the GroupSecurityContextConstraintsStrategy interface -type runAsAny struct { -} - -var _ GroupSecurityContextConstraintsStrategy = &runAsAny{} - -// NewRunAsAny provides a new RunAsAny strategy. -func NewRunAsAny() (GroupSecurityContextConstraintsStrategy, error) { - return &runAsAny{}, nil -} - -// Generate creates the group based on policy rules. This strategy returns an empty slice. -func (s *runAsAny) Generate(_ *api.Pod) ([]int64, error) { - return nil, nil -} - -// Generate a single value to be applied. This is used for FSGroup. This strategy returns nil. -func (s *runAsAny) GenerateSingle(_ *api.Pod) (*int64, error) { - return nil, nil -} - -// Validate ensures that the specified values fall within the range of the strategy. -func (s *runAsAny) Validate(fldPath *field.Path, _ *api.Pod, groups []int64) field.ErrorList { - return field.ErrorList{} - -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/group/types.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/group/types.go deleted file mode 100644 index 752195ab957f9..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/group/types.go +++ /dev/null @@ -1,19 +0,0 @@ -package group - -import ( - "k8s.io/apimachinery/pkg/util/validation/field" - api "k8s.io/kubernetes/pkg/apis/core" -) - -// GroupSecurityContextConstraintsStrategy defines the interface for all group constraint strategies. -type GroupSecurityContextConstraintsStrategy interface { - // Generate creates the group based on policy rules. The underlying implementation can - // decide whether it will return a full range of values or a subset of values from the - // configured ranges. - Generate(pod *api.Pod) ([]int64, error) - // Generate a single value to be applied. The underlying implementation decides which - // value to return if configured with multiple ranges. This is used for FSGroup. - GenerateSingle(pod *api.Pod) (*int64, error) - // Validate ensures that the specified values fall within the range of the strategy. - Validate(fldPath *field.Path, pod *api.Pod, groups []int64) field.ErrorList -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccadmission/admission.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccadmission/admission.go deleted file mode 100644 index da613abd13d4e..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccadmission/admission.go +++ /dev/null @@ -1,308 +0,0 @@ -package sccadmission - -import ( - "context" - "fmt" - "io" - "sort" - "strings" - "time" - - apiequality "k8s.io/apimachinery/pkg/api/equality" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/admission/initializer" - "k8s.io/apiserver/pkg/authentication/user" - "k8s.io/apiserver/pkg/authorization/authorizer" - "k8s.io/client-go/kubernetes" - "k8s.io/client-go/tools/cache" - "k8s.io/klog/v2" - coreapi "k8s.io/kubernetes/pkg/apis/core" - kapihelper "k8s.io/kubernetes/pkg/apis/core/helper" - rbacregistry "k8s.io/kubernetes/pkg/registry/rbac" - "k8s.io/kubernetes/pkg/serviceaccount" - - securityv1 "github.com/openshift/api/security/v1" - securityv1informer "github.com/openshift/client-go/security/informers/externalversions/security/v1" - securityv1listers "github.com/openshift/client-go/security/listers/security/v1" - - "github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccmatching" -) - -const PluginName = "security.openshift.io/SecurityContextConstraint" - -func Register(plugins *admission.Plugins) { - plugins.Register(PluginName, - func(config io.Reader) (admission.Interface, error) { - return NewConstraint(), nil - }) -} - -type constraint struct { - *admission.Handler - client kubernetes.Interface - sccLister securityv1listers.SecurityContextConstraintsLister - sccSynced cache.InformerSynced - authorizer authorizer.Authorizer -} - -var ( - _ = initializer.WantsAuthorizer(&constraint{}) - _ = initializer.WantsExternalKubeClientSet(&constraint{}) - _ = WantsSecurityInformer(&constraint{}) - _ = admission.ValidationInterface(&constraint{}) - _ = admission.MutationInterface(&constraint{}) -) - -// NewConstraint creates a new SCC constraint admission plugin. -func NewConstraint() *constraint { - return &constraint{ - Handler: admission.NewHandler(admission.Create, admission.Update), - } -} - -// Admit determines if the pod should be admitted based on the requested security context -// and the available SCCs. -// -// 1. Find SCCs for the user. -// 2. Find SCCs for the SA. If there is an error retrieving SA SCCs it is not fatal. -// 3. Remove duplicates between the user/SA SCCs. -// 4. Create the providers, includes setting pre-allocated values if necessary. -// 5. Try to generate and validate an SCC with providers. If we find one then admit the pod -// with the validated SCC. If we don't find any reject the pod and give all errors from the -// failed attempts. -// On updates, the BeforeUpdate of the pod strategy only zeroes out the status. That means that -// any change that claims the pod is no longer privileged will be removed. That should hold until -// we get a true old/new set of objects in. -func (c *constraint) Admit(ctx context.Context, a admission.Attributes, _ admission.ObjectInterfaces) error { - if ignore, err := shouldIgnore(a); err != nil { - return err - } else if ignore { - return nil - } - pod := a.GetObject().(*coreapi.Pod) - - // TODO(liggitt): allow spec mutation during initializing updates? - specMutationAllowed := a.GetOperation() == admission.Create - - allowedPod, sccName, validationErrs, err := c.computeSecurityContext(ctx, a, pod, specMutationAllowed, "") - if err != nil { - return admission.NewForbidden(a, err) - } - - if allowedPod != nil { - *pod = *allowedPod - // annotate and accept the pod - klog.V(4).Infof("pod %s (generate: %s) validated against provider %s", pod.Name, pod.GenerateName, sccName) - if pod.ObjectMeta.Annotations == nil { - pod.ObjectMeta.Annotations = map[string]string{} - } - pod.ObjectMeta.Annotations[securityv1.ValidatedSCCAnnotation] = sccName - return nil - } - - // we didn't validate against any security context constraint provider, reject the pod and give the errors for each attempt - klog.V(4).Infof("unable to validate pod %s (generate: %s) against any security context constraint: %v", pod.Name, pod.GenerateName, validationErrs) - return admission.NewForbidden(a, fmt.Errorf("unable to validate against any security context constraint: %v", validationErrs)) -} - -func (c *constraint) Validate(ctx context.Context, a admission.Attributes, _ admission.ObjectInterfaces) error { - if ignore, err := shouldIgnore(a); err != nil { - return err - } else if ignore { - return nil - } - pod := a.GetObject().(*coreapi.Pod) - - // compute the context. Mutation is not allowed. ValidatedSCCAnnotation is used as a hint to gain same speed-up. - allowedPod, _, validationErrs, err := c.computeSecurityContext(ctx, a, pod, false, pod.ObjectMeta.Annotations[securityv1.ValidatedSCCAnnotation]) - if err != nil { - return admission.NewForbidden(a, err) - } - if allowedPod != nil && apiequality.Semantic.DeepEqual(pod, allowedPod) { - return nil - } - - // we didn't validate against any provider, reject the pod and give the errors for each attempt - klog.V(4).Infof("unable to validate pod %s (generate: %s) in namespace %s against any security context constraint: %v", pod.Name, pod.GenerateName, a.GetNamespace(), validationErrs) - return admission.NewForbidden(a, fmt.Errorf("unable to validate against any security context constraint: %v", validationErrs)) -} - -func (c *constraint) computeSecurityContext(ctx context.Context, a admission.Attributes, pod *coreapi.Pod, specMutationAllowed bool, validatedSCCHint string) (*coreapi.Pod, string, field.ErrorList, error) { - // get all constraints that are usable by the user - klog.V(4).Infof("getting security context constraints for pod %s (generate: %s) in namespace %s with user info %v", pod.Name, pod.GenerateName, a.GetNamespace(), a.GetUserInfo()) - - err := wait.PollImmediate(1*time.Second, 10*time.Second, func() (bool, error) { - return c.sccSynced(), nil - }) - if err != nil { - return nil, "", nil, admission.NewForbidden(a, fmt.Errorf("securitycontextconstraints.security.openshift.io cache is not synchronized")) - } - - constraints, err := sccmatching.NewDefaultSCCMatcher(c.sccLister, nil).FindApplicableSCCs(ctx, a.GetNamespace()) - if err != nil { - return nil, "", nil, admission.NewForbidden(a, err) - } - if len(constraints) == 0 { - sccs, err := c.sccLister.List(labels.Everything()) - if err != nil { - return nil, "", nil, admission.NewForbidden(a, err) - } - if len(sccs) == 0 { - return nil, "", nil, admission.NewForbidden(a, fmt.Errorf("no SecurityContextConstraints found in cluster")) - } - return nil, "", nil, admission.NewForbidden(a, fmt.Errorf("no SecurityContextConstraints found in namespace %s", a.GetNamespace())) - } - - // If mutation is not allowed and validatedSCCHint is provided, check the validated policy first. - // Keep the other the same for everything else - sort.SliceStable(constraints, func(i, j int) bool { - if !specMutationAllowed { - if constraints[i].Name == validatedSCCHint { - return true - } - if constraints[j].Name == validatedSCCHint { - return false - } - } - return i < j - }) - - providers, errs := sccmatching.CreateProvidersFromConstraints(a.GetNamespace(), constraints, c.client) - logProviders(pod, providers, errs) - - if len(providers) == 0 { - return nil, "", nil, admission.NewForbidden(a, fmt.Errorf("no SecurityContextConstraintsProvider available to validate pod request")) - } - - // all containers in a single pod must validate under a single provider or we will reject the request - var ( - allowedPod *coreapi.Pod - allowingProvider sccmatching.SecurityContextConstraintsProvider - validationErrs field.ErrorList - saUserInfo user.Info - ) - - userInfo := a.GetUserInfo() - if len(pod.Spec.ServiceAccountName) > 0 { - saUserInfo = serviceaccount.UserInfo(a.GetNamespace(), pod.Spec.ServiceAccountName, "") - } - -loop: - for _, provider := range providers { - // Get the SCC attributes required to decide whether the SCC applies for current user/SA - sccName := provider.GetSCCName() - sccUsers := provider.GetSCCUsers() - sccGroups := provider.GetSCCGroups() - - // continue to the next provider if the current SCC one does not apply to either the user or the serviceaccount - if !sccmatching.ConstraintAppliesTo(ctx, sccName, sccUsers, sccGroups, userInfo, a.GetNamespace(), c.authorizer) && - !(saUserInfo != nil && sccmatching.ConstraintAppliesTo(ctx, sccName, sccUsers, sccGroups, saUserInfo, a.GetNamespace(), c.authorizer)) { - continue - } - - podCopy := pod.DeepCopy() - if errs := sccmatching.AssignSecurityContext(provider, podCopy, field.NewPath(fmt.Sprintf("provider %s: ", sccName))); len(errs) > 0 { - validationErrs = append(validationErrs, errs...) - continue - } - - // the entire pod validated - switch { - case specMutationAllowed: - // if mutation is allowed, use the first found SCC that allows the pod. - // This behavior is different from Kubernetes which tries to search a non-mutating provider - // even on creating. We prefer most restrictive SCC in this case even if it mutates a pod. - allowedPod = podCopy - allowingProvider = provider - klog.V(5).Infof("pod %s (generate: %s) validated against provider %s with mutation", pod.Name, pod.GenerateName, sccName) - break loop - case apiequality.Semantic.DeepEqual(pod, podCopy): - // if we don't allow mutation, only use the validated pod if it didn't require any spec changes - allowedPod = podCopy - allowingProvider = provider - klog.V(5).Infof("pod %s (generate: %s) validated against provider %s without mutation", pod.Name, pod.GenerateName, sccName) - break loop - default: - klog.V(5).Infof("pod %s (generate: %s) validated against provider %s, but required mutation, skipping", pod.Name, pod.GenerateName, sccName) - } - } - - if allowedPod == nil || allowingProvider == nil { - return nil, "", validationErrs, nil - } - return allowedPod, allowingProvider.GetSCCName(), validationErrs, nil -} - -func shouldIgnore(a admission.Attributes) (bool, error) { - if a.GetResource().GroupResource() != coreapi.Resource("pods") { - return true, nil - } - if len(a.GetSubresource()) != 0 { - return true, nil - } - - _, ok := a.GetObject().(*coreapi.Pod) - // if we can't convert then fail closed since we've already checked that this is supposed to be a pod object. - // this shouldn't normally happen during admission but could happen if an integrator passes a versioned - // pod object rather than an internal object. - if !ok { - return false, admission.NewForbidden(a, fmt.Errorf("object was marked as kind pod but was unable to be converted: %v", a.GetObject())) - } - - // if this is an update, see if we are only updating the ownerRef. Garbage collection does this - // and we should allow it in general, since you had the power to update and the power to delete. - // The worst that happens is that you delete something, but you aren't controlling the privileged object itself - if a.GetOperation() == admission.Update && rbacregistry.IsOnlyMutatingGCFields(a.GetObject(), a.GetOldObject(), kapihelper.Semantic) { - return true, nil - } - - return false, nil -} - -// SetSecurityInformers implements WantsSecurityInformer interface for constraint. -func (c *constraint) SetSecurityInformers(informers securityv1informer.SecurityContextConstraintsInformer) { - c.sccLister = informers.Lister() - c.sccSynced = informers.Informer().HasSynced -} - -func (c *constraint) SetExternalKubeClientSet(client kubernetes.Interface) { - c.client = client -} - -func (c *constraint) SetAuthorizer(authorizer authorizer.Authorizer) { - c.authorizer = authorizer -} - -// ValidateInitialization implements InitializationValidator interface for constraint. -func (c *constraint) ValidateInitialization() error { - if c.sccLister == nil { - return fmt.Errorf("%s requires an sccLister", PluginName) - } - if c.sccSynced == nil { - return fmt.Errorf("%s requires an sccSynced", PluginName) - } - if c.client == nil { - return fmt.Errorf("%s requires a client", PluginName) - } - if c.authorizer == nil { - return fmt.Errorf("%s requires an authorizer", PluginName) - } - return nil -} - -// logProviders logs what providers were found for the pod as well as any errors that were encountered -// while creating providers. -func logProviders(pod *coreapi.Pod, providers []sccmatching.SecurityContextConstraintsProvider, providerCreationErrs []error) { - names := make([]string, len(providers)) - for i, p := range providers { - names[i] = p.GetSCCName() - } - klog.V(4).Infof("validating pod %s (generate: %s) against providers %s", pod.Name, pod.GenerateName, strings.Join(names, ",")) - - for _, err := range providerCreationErrs { - klog.V(4).Infof("provider creation error: %v", err) - } -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccadmission/intializers.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccadmission/intializers.go deleted file mode 100644 index 287fe08b870bc..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccadmission/intializers.go +++ /dev/null @@ -1,28 +0,0 @@ -package sccadmission - -import ( - "k8s.io/apiserver/pkg/admission" - - securityv1informer "github.com/openshift/client-go/security/informers/externalversions/security/v1" -) - -func NewInitializer(sccInformer securityv1informer.SecurityContextConstraintsInformer) admission.PluginInitializer { - return &localInitializer{sccInformer: sccInformer} -} - -type WantsSecurityInformer interface { - SetSecurityInformers(securityv1informer.SecurityContextConstraintsInformer) - admission.InitializationValidator -} - -type localInitializer struct { - sccInformer securityv1informer.SecurityContextConstraintsInformer -} - -// Initialize will check the initialization interfaces implemented by each plugin -// and provide the appropriate initialization data -func (i *localInitializer) Initialize(plugin admission.Interface) { - if wants, ok := plugin.(WantsSecurityInformer); ok { - wants.SetSecurityInformers(i.sccInformer) - } -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccadmission/scc_exec.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccadmission/scc_exec.go deleted file mode 100644 index 299278447cc17..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccadmission/scc_exec.go +++ /dev/null @@ -1,104 +0,0 @@ -package sccadmission - -import ( - "context" - "fmt" - "io" - - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apiserver/pkg/admission" - "k8s.io/apiserver/pkg/admission/initializer" - "k8s.io/apiserver/pkg/authorization/authorizer" - "k8s.io/client-go/kubernetes" - coreapi "k8s.io/kubernetes/pkg/apis/core" - coreapiv1conversions "k8s.io/kubernetes/pkg/apis/core/v1" - - securityv1informers "github.com/openshift/client-go/security/informers/externalversions/security/v1" -) - -func RegisterSCCExecRestrictions(plugins *admission.Plugins) { - plugins.Register("security.openshift.io/SCCExecRestrictions", - func(config io.Reader) (admission.Interface, error) { - execAdmitter := NewSCCExecRestrictions() - return execAdmitter, nil - }) -} - -var ( - _ = initializer.WantsAuthorizer(&sccExecRestrictions{}) - _ = initializer.WantsExternalKubeClientSet(&sccExecRestrictions{}) - _ = WantsSecurityInformer(&sccExecRestrictions{}) - _ = admission.ValidationInterface(&sccExecRestrictions{}) -) - -// sccExecRestrictions is an implementation of admission.ValidationInterface which says no to a pod/exec on -// a pod that the user would not be allowed to create -type sccExecRestrictions struct { - *admission.Handler - constraintAdmission *constraint - client kubernetes.Interface -} - -func (d *sccExecRestrictions) Validate(ctx context.Context, a admission.Attributes, o admission.ObjectInterfaces) (err error) { - if a.GetOperation() != admission.Connect { - return nil - } - if a.GetResource().GroupResource() != coreapi.Resource("pods") { - return nil - } - if a.GetSubresource() != "attach" && a.GetSubresource() != "exec" { - return nil - } - - pod, err := d.client.CoreV1().Pods(a.GetNamespace()).Get(context.TODO(), a.GetName(), metav1.GetOptions{}) - switch { - case errors.IsNotFound(err): - return admission.NewNotFound(a) - case err != nil: - return admission.NewForbidden(a, fmt.Errorf("failed to get pod: %v", err)) - } - - // we have to convert to the internal pod because admission uses internal types for now - internalPod := &coreapi.Pod{} - if err := coreapiv1conversions.Convert_v1_Pod_To_core_Pod(pod, internalPod, nil); err != nil { - return admission.NewForbidden(a, err) - } - - // TODO, if we want to actually limit who can use which service account, then we'll need to add logic here to make sure that - // we're allowed to use the SA the pod is using. Otherwise, user-A creates pod and user-B (who can't use the SA) can exec into it. - createAttributes := admission.NewAttributesRecord(internalPod, nil, coreapi.Kind("Pod").WithVersion(""), a.GetNamespace(), a.GetName(), a.GetResource(), "", admission.Create, nil, false, a.GetUserInfo()) - // call SCC.Admit instead of SCC.Validate because we accept that a different SCC is chosen. SCC.Validate would require - // that the chosen SCC (stored in the "openshift.io/scc" annotation) does not change. - if err := d.constraintAdmission.Admit(ctx, createAttributes, o); err != nil { - return admission.NewForbidden(a, fmt.Errorf("%s operation is not allowed because the pod's security context exceeds your permissions: %v", a.GetSubresource(), err)) - } - - return nil -} - -// NewSCCExecRestrictions creates a new admission controller that denies an exec operation on a privileged pod -func NewSCCExecRestrictions() *sccExecRestrictions { - return &sccExecRestrictions{ - Handler: admission.NewHandler(admission.Connect), - constraintAdmission: NewConstraint(), - } -} - -func (d *sccExecRestrictions) SetExternalKubeClientSet(c kubernetes.Interface) { - d.client = c - d.constraintAdmission.SetExternalKubeClientSet(c) -} - -func (d *sccExecRestrictions) SetSecurityInformers(informers securityv1informers.SecurityContextConstraintsInformer) { - d.constraintAdmission.SetSecurityInformers(informers) -} - -func (d *sccExecRestrictions) SetAuthorizer(authorizer authorizer.Authorizer) { - d.constraintAdmission.SetAuthorizer(authorizer) -} - -// Validate defines actions to validate sccExecRestrictions -func (d *sccExecRestrictions) ValidateInitialization() error { - return d.constraintAdmission.ValidateInitialization() -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccmatching/matcher.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccmatching/matcher.go deleted file mode 100644 index 7625979b4a5d0..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccmatching/matcher.go +++ /dev/null @@ -1,409 +0,0 @@ -package sccmatching - -import ( - "context" - "fmt" - "sort" - "strings" - - "k8s.io/klog/v2" - - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/util/validation/field" - "k8s.io/apiserver/pkg/authentication/user" - "k8s.io/apiserver/pkg/authorization/authorizer" - "k8s.io/client-go/kubernetes" - kapi "k8s.io/kubernetes/pkg/apis/core" - - "github.com/openshift/api/security" - securityv1 "github.com/openshift/api/security/v1" - sccsort "github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/util/sort" - securityv1listers "github.com/openshift/client-go/security/listers/security/v1" - "github.com/openshift/library-go/pkg/security/uid" -) - -type SCCMatcher interface { - FindApplicableSCCs(ctx context.Context, namespace string, user ...user.Info) ([]*securityv1.SecurityContextConstraints, error) -} - -type defaultSCCMatcher struct { - cache securityv1listers.SecurityContextConstraintsLister - authorizer authorizer.Authorizer -} - -func NewDefaultSCCMatcher(c securityv1listers.SecurityContextConstraintsLister, authorizer authorizer.Authorizer) SCCMatcher { - return &defaultSCCMatcher{cache: c, authorizer: authorizer} -} - -// FindApplicableSCCs implements SCCMatcher interface -// It finds all SCCs that the subjects in the `users` argument may use. -// The returned SCCs are sorted by priority. -func (d *defaultSCCMatcher) FindApplicableSCCs(ctx context.Context, namespace string, users ...user.Info) ([]*securityv1.SecurityContextConstraints, error) { - var matchedConstraints []*securityv1.SecurityContextConstraints - constraints, err := d.cache.List(labels.Everything()) - if err != nil { - return nil, err - } - - // filter out SCCs if we got some users, leave as is if not - if len(users) == 0 { - matchedConstraints = constraints - } else { - for _, constraint := range constraints { - for _, user := range users { - if ConstraintAppliesTo(ctx, constraint.Name, constraint.Users, constraint.Groups, user, namespace, d.authorizer) { - matchedConstraints = append(matchedConstraints, constraint) - break - } - } - } - } - - sort.Sort(sccsort.ByPriority(matchedConstraints)) - - return matchedConstraints, nil -} - -// authorizedForSCC returns true if info is authorized to perform the "use" verb on the SCC resource. -func authorizedForSCC(ctx context.Context, sccName string, info user.Info, namespace string, a authorizer.Authorizer) bool { - // check against the namespace that the pod is being created in to allow per-namespace SCC grants. - attr := authorizer.AttributesRecord{ - User: info, - Verb: "use", - Namespace: namespace, - Name: sccName, - APIGroup: security.GroupName, - Resource: "securitycontextconstraints", - ResourceRequest: true, - } - decision, reason, err := a.Authorize(ctx, attr) - if err != nil { - klog.V(5).Infof("cannot authorize for SCC: %v %q %v", decision, reason, err) - return false - } - return decision == authorizer.DecisionAllow -} - -// ConstraintAppliesTo inspects the constraint's users and groups against the userInfo to determine -// if it is usable by the userInfo. -// Anything we do here needs to work with a deny authorizer so the choices are limited to SAR / Authorizer -func ConstraintAppliesTo(ctx context.Context, sccName string, sccUsers, sccGroups []string, userInfo user.Info, namespace string, a authorizer.Authorizer) bool { - for _, user := range sccUsers { - if userInfo.GetName() == user { - return true - } - } - for _, userGroup := range userInfo.GetGroups() { - if constraintSupportsGroup(userGroup, sccGroups) { - return true - } - } - if a != nil { - return authorizedForSCC(ctx, sccName, userInfo, namespace, a) - } - return false -} - -// AssignSecurityContext creates a security context for each container in the pod -// and validates that the sc falls within the scc constraints. All containers must validate against -// the same scc or is not considered valid. -func AssignSecurityContext(provider SecurityContextConstraintsProvider, pod *kapi.Pod, fldPath *field.Path) field.ErrorList { - errs := field.ErrorList{} - - psc, generatedAnnotations, err := provider.CreatePodSecurityContext(pod) - if err != nil { - errs = append(errs, field.Invalid(fldPath.Child("spec", "securityContext"), pod.Spec.SecurityContext, err.Error())) - } - - pod.Spec.SecurityContext = psc - pod.Annotations = generatedAnnotations - errs = append(errs, provider.ValidatePodSecurityContext(pod, fldPath.Child("spec", "securityContext"))...) - - for i := range pod.Spec.InitContainers { - sc, err := provider.CreateContainerSecurityContext(pod, &pod.Spec.InitContainers[i]) - if err != nil { - errs = append(errs, field.Invalid(field.NewPath("spec", "initContainers").Index(i).Child("securityContext"), "", err.Error())) - continue - } - pod.Spec.InitContainers[i].SecurityContext = sc - errs = append(errs, provider.ValidateContainerSecurityContext(pod, &pod.Spec.InitContainers[i], field.NewPath("spec", "initContainers").Index(i).Child("securityContext"))...) - } - - for i := range pod.Spec.Containers { - sc, err := provider.CreateContainerSecurityContext(pod, &pod.Spec.Containers[i]) - if err != nil { - errs = append(errs, field.Invalid(field.NewPath("spec", "containers").Index(i).Child("securityContext"), "", err.Error())) - continue - } - pod.Spec.Containers[i].SecurityContext = sc - errs = append(errs, provider.ValidateContainerSecurityContext(pod, &pod.Spec.Containers[i], field.NewPath("spec", "containers").Index(i).Child("securityContext"))...) - } - - if len(errs) > 0 { - return errs - } - - return nil -} - -// constraintSupportsGroup checks that group is in constraintGroups. -func constraintSupportsGroup(group string, constraintGroups []string) bool { - for _, g := range constraintGroups { - if g == group { - return true - } - } - return false -} - -// getNamespaceByName retrieves a namespace only if ns is nil. -func getNamespaceByName(name string, ns *corev1.Namespace, client kubernetes.Interface) (*corev1.Namespace, error) { - if ns != nil && name == ns.Name { - return ns, nil - } - return client.CoreV1().Namespaces().Get(context.TODO(), name, metav1.GetOptions{}) -} - -// CreateProvidersFromConstraints creates providers from the constraints supplied, including -// looking up pre-allocated values if necessary using the pod's namespace. -func CreateProvidersFromConstraints(ns string, sccs []*securityv1.SecurityContextConstraints, client kubernetes.Interface) ([]SecurityContextConstraintsProvider, []error) { - var ( - // namespace is declared here for reuse but we will not fetch it unless required by the matched constraints - namespace *corev1.Namespace - // collected providers - providers []SecurityContextConstraintsProvider - // collected errors to return - errs []error - ) - - // set pre-allocated values on constraints - for _, constraint := range sccs { - var ( - provider SecurityContextConstraintsProvider - err error - ) - provider, namespace, err = CreateProviderFromConstraint(ns, namespace, constraint, client) - if err != nil { - errs = append(errs, err) - continue - } - providers = append(providers, provider) - } - return providers, errs -} - -// CreateProviderFromConstraint creates a SecurityContextConstraintProvider from a SecurityContextConstraint -func CreateProviderFromConstraint(ns string, namespace *corev1.Namespace, constraint *securityv1.SecurityContextConstraints, client kubernetes.Interface) (SecurityContextConstraintsProvider, *corev1.Namespace, error) { - var err error - resolveUIDRange := requiresPreAllocatedUIDRange(constraint) - resolveSELinuxLevel := requiresPreAllocatedSELinuxLevel(constraint) - resolveFSGroup := requiresPreallocatedFSGroup(constraint) - resolveSupplementalGroups := requiresPreallocatedSupplementalGroups(constraint) - requiresNamespaceAllocations := resolveUIDRange || resolveSELinuxLevel || resolveFSGroup || resolveSupplementalGroups - - if requiresNamespaceAllocations { - // Ensure we have the namespace - namespace, err = getNamespaceByName(ns, namespace, client) - if err != nil { - return nil, namespace, fmt.Errorf("error fetching namespace %s required to preallocate values for %s: %v", ns, constraint.Name, err) - } - } - - // Make a copy of the constraint so we don't mutate the store's cache - constraint = constraint.DeepCopy() - - // Resolve the values from the namespace - if resolveUIDRange { - constraint.RunAsUser.UIDRangeMin, constraint.RunAsUser.UIDRangeMax, err = getPreallocatedUIDRange(namespace) - if err != nil { - return nil, namespace, fmt.Errorf("unable to find pre-allocated uid annotation for namespace %s while trying to configure SCC %s: %v", namespace.Name, constraint.Name, err) - } - } - if resolveSELinuxLevel { - var level string - if level, err = getPreallocatedLevel(namespace); err != nil { - return nil, namespace, fmt.Errorf("unable to find pre-allocated mcs annotation for namespace %s while trying to configure SCC %s: %v", namespace.Name, constraint.Name, err) - } - - if constraint.SELinuxContext.SELinuxOptions == nil { - constraint.SELinuxContext.SELinuxOptions = &corev1.SELinuxOptions{} - } - constraint.SELinuxContext.SELinuxOptions.Level = level - } - if resolveFSGroup { - fsGroup, err := getPreallocatedFSGroup(namespace) - if err != nil { - return nil, namespace, fmt.Errorf("unable to find pre-allocated group annotation for namespace %s while trying to configure SCC %s: %v", namespace.Name, constraint.Name, err) - } - constraint.FSGroup.Ranges = fsGroup - } - if resolveSupplementalGroups { - supplementalGroups, err := getPreallocatedSupplementalGroups(namespace) - if err != nil { - return nil, namespace, fmt.Errorf("unable to find pre-allocated group annotation for namespace %s while trying to configure SCC %s: %v", namespace.Name, constraint.Name, err) - } - constraint.SupplementalGroups.Ranges = supplementalGroups - } - - // Create the provider - provider, err := NewSimpleProvider(constraint) - if err != nil { - return nil, namespace, fmt.Errorf("error creating provider for SCC %s in namespace %s: %v", constraint.Name, ns, err) - } - return provider, namespace, nil -} - -// getPreallocatedUIDRange retrieves the annotated value from the namespace, splits it to make -// the min/max and formats the data into the necessary types for the strategy options. -func getPreallocatedUIDRange(ns *corev1.Namespace) (*int64, *int64, error) { - annotationVal, ok := ns.Annotations[securityv1.UIDRangeAnnotation] - if !ok { - return nil, nil, fmt.Errorf("unable to find annotation %s", securityv1.UIDRangeAnnotation) - } - if len(annotationVal) == 0 { - return nil, nil, fmt.Errorf("found annotation %s but it was empty", securityv1.UIDRangeAnnotation) - } - uidBlock, err := uid.ParseBlock(annotationVal) - if err != nil { - return nil, nil, err - } - - var min int64 = int64(uidBlock.Start) - var max int64 = int64(uidBlock.End) - klog.V(4).Infof("got preallocated values for min: %d, max: %d for uid range in namespace %s", min, max, ns.Name) - return &min, &max, nil -} - -// getPreallocatedLevel gets the annotated value from the namespace. -func getPreallocatedLevel(ns *corev1.Namespace) (string, error) { - level, ok := ns.Annotations[securityv1.MCSAnnotation] - if !ok { - return "", fmt.Errorf("unable to find annotation %s", securityv1.MCSAnnotation) - } - if len(level) == 0 { - return "", fmt.Errorf("found annotation %s but it was empty", securityv1.MCSAnnotation) - } - klog.V(4).Infof("got preallocated value for level: %s for selinux options in namespace %s", level, ns.Name) - return level, nil -} - -// getSupplementalGroupsAnnotation provides a backwards compatible way to get supplemental groups -// annotations from a namespace by looking for SupplementalGroupsAnnotation and falling back to -// UIDRangeAnnotation if it is not found. -func getSupplementalGroupsAnnotation(ns *corev1.Namespace) (string, error) { - groups, ok := ns.Annotations[securityv1.SupplementalGroupsAnnotation] - if !ok { - klog.V(4).Infof("unable to find supplemental group annotation %s falling back to %s", securityv1.SupplementalGroupsAnnotation, securityv1.UIDRangeAnnotation) - - groups, ok = ns.Annotations[securityv1.UIDRangeAnnotation] - if !ok { - return "", fmt.Errorf("unable to find supplemental group or uid annotation for namespace %s", ns.Name) - } - } - - if len(groups) == 0 { - return "", fmt.Errorf("unable to find groups using %s and %s annotations", securityv1.SupplementalGroupsAnnotation, securityv1.UIDRangeAnnotation) - } - return groups, nil -} - -// getPreallocatedFSGroup gets the annotated value from the namespace. -func getPreallocatedFSGroup(ns *corev1.Namespace) ([]securityv1.IDRange, error) { - groups, err := getSupplementalGroupsAnnotation(ns) - if err != nil { - return nil, err - } - klog.V(4).Infof("got preallocated value for groups: %s in namespace %s", groups, ns.Name) - - blocks, err := parseSupplementalGroupAnnotation(groups) - if err != nil { - return nil, err - } - return []securityv1.IDRange{ - { - Min: int64(blocks[0].Start), - Max: int64(blocks[0].Start), - }, - }, nil -} - -// getPreallocatedSupplementalGroups gets the annotated value from the namespace. -func getPreallocatedSupplementalGroups(ns *corev1.Namespace) ([]securityv1.IDRange, error) { - groups, err := getSupplementalGroupsAnnotation(ns) - if err != nil { - return nil, err - } - klog.V(4).Infof("got preallocated value for groups: %s in namespace %s", groups, ns.Name) - - blocks, err := parseSupplementalGroupAnnotation(groups) - if err != nil { - return nil, err - } - - idRanges := []securityv1.IDRange{} - for _, block := range blocks { - rng := securityv1.IDRange{ - Min: int64(block.Start), - Max: int64(block.End), - } - idRanges = append(idRanges, rng) - } - return idRanges, nil -} - -// parseSupplementalGroupAnnotation parses the group annotation into blocks. -func parseSupplementalGroupAnnotation(groups string) ([]uid.Block, error) { - blocks := []uid.Block{} - segments := strings.Split(groups, ",") - for _, segment := range segments { - block, err := uid.ParseBlock(segment) - if err != nil { - return nil, err - } - blocks = append(blocks, block) - } - if len(blocks) == 0 { - return nil, fmt.Errorf("no blocks parsed from annotation %s", groups) - } - return blocks, nil -} - -// requiresPreAllocatedUIDRange returns true if the strategy is must run in range and the min or max -// is not set. -func requiresPreAllocatedUIDRange(constraint *securityv1.SecurityContextConstraints) bool { - if constraint.RunAsUser.Type != securityv1.RunAsUserStrategyMustRunAsRange { - return false - } - return constraint.RunAsUser.UIDRangeMin == nil && constraint.RunAsUser.UIDRangeMax == nil -} - -// requiresPreAllocatedSELinuxLevel returns true if the strategy is must run as and the level is not set. -func requiresPreAllocatedSELinuxLevel(constraint *securityv1.SecurityContextConstraints) bool { - if constraint.SELinuxContext.Type != securityv1.SELinuxStrategyMustRunAs { - return false - } - if constraint.SELinuxContext.SELinuxOptions == nil { - return true - } - return constraint.SELinuxContext.SELinuxOptions.Level == "" -} - -// requiresPreAllocatedSELinuxLevel returns true if the strategy is must run as and there is no -// range specified. -func requiresPreallocatedSupplementalGroups(constraint *securityv1.SecurityContextConstraints) bool { - if constraint.SupplementalGroups.Type != securityv1.SupplementalGroupsStrategyMustRunAs { - return false - } - return len(constraint.SupplementalGroups.Ranges) == 0 -} - -// requiresPreallocatedFSGroup returns true if the strategy is must run as and there is no -// range specified. -func requiresPreallocatedFSGroup(constraint *securityv1.SecurityContextConstraints) bool { - if constraint.FSGroup.Type != securityv1.FSGroupStrategyMustRunAs { - return false - } - return len(constraint.FSGroup.Ranges) == 0 -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccmatching/provider.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccmatching/provider.go deleted file mode 100644 index 5428d375dae75..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccmatching/provider.go +++ /dev/null @@ -1,436 +0,0 @@ -package sccmatching - -import ( - "fmt" - - securityv1 "github.com/openshift/api/security/v1" - "github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/capabilities" - "github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/group" - "github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/seccomp" - "github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/selinux" - "github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user" - sccutil "github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/util" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/util/validation/field" - api "k8s.io/kubernetes/pkg/apis/core" - "k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl" - "k8s.io/kubernetes/pkg/securitycontext" - "k8s.io/kubernetes/pkg/util/maps" -) - -// used to pass in the field being validated for reusable group strategies so they -// can create informative error messages. -const ( - fsGroupField = "fsGroup" - supplementalGroupsField = "supplementalGroups" -) - -// simpleProvider is the default implementation of SecurityContextConstraintsProvider -type simpleProvider struct { - scc *securityv1.SecurityContextConstraints - runAsUserStrategy user.RunAsUserSecurityContextConstraintsStrategy - seLinuxStrategy selinux.SELinuxSecurityContextConstraintsStrategy - fsGroupStrategy group.GroupSecurityContextConstraintsStrategy - supplementalGroupStrategy group.GroupSecurityContextConstraintsStrategy - capabilitiesStrategy capabilities.CapabilitiesSecurityContextConstraintsStrategy - seccompStrategy seccomp.SeccompStrategy - sysctlsStrategy sysctl.SysctlsStrategy -} - -// ensure we implement the interface correctly. -var _ SecurityContextConstraintsProvider = &simpleProvider{} - -// NewSimpleProvider creates a new SecurityContextConstraintsProvider instance. -func NewSimpleProvider(scc *securityv1.SecurityContextConstraints) (SecurityContextConstraintsProvider, error) { - if scc == nil { - return nil, fmt.Errorf("NewSimpleProvider requires a SecurityContextConstraints") - } - - userStrat, err := createUserStrategy(&scc.RunAsUser) - if err != nil { - return nil, err - } - - seLinuxStrat, err := createSELinuxStrategy(&scc.SELinuxContext) - if err != nil { - return nil, err - } - - fsGroupStrat, err := createFSGroupStrategy(&scc.FSGroup) - if err != nil { - return nil, err - } - - supGroupStrat, err := createSupplementalGroupStrategy(&scc.SupplementalGroups) - if err != nil { - return nil, err - } - - capStrat, err := createCapabilitiesStrategy(scc.DefaultAddCapabilities, scc.RequiredDropCapabilities, scc.AllowedCapabilities) - if err != nil { - return nil, err - } - - seccompStrat, err := createSeccompStrategy(scc.SeccompProfiles) - if err != nil { - return nil, err - } - - sysctlsStrat, err := createSysctlsStrategy(sysctl.SafeSysctlWhitelist(), scc.AllowedUnsafeSysctls, scc.ForbiddenSysctls) - if err != nil { - return nil, err - } - - return &simpleProvider{ - scc: scc, - runAsUserStrategy: userStrat, - seLinuxStrategy: seLinuxStrat, - fsGroupStrategy: fsGroupStrat, - supplementalGroupStrategy: supGroupStrat, - capabilitiesStrategy: capStrat, - seccompStrategy: seccompStrat, - sysctlsStrategy: sysctlsStrat, - }, nil -} - -// Create a PodSecurityContext based on the given constraints. If a setting is already set -// on the PodSecurityContext it will not be changed. Validate should be used after the context -// is created to ensure it complies with the required restrictions. -func (s *simpleProvider) CreatePodSecurityContext(pod *api.Pod) (*api.PodSecurityContext, map[string]string, error) { - sc := securitycontext.NewPodSecurityContextMutator(pod.Spec.SecurityContext) - - annotationsCopy := maps.CopySS(pod.Annotations) - - if sc.SupplementalGroups() == nil { - supGroups, err := s.supplementalGroupStrategy.Generate(pod) - if err != nil { - return nil, nil, err - } - sc.SetSupplementalGroups(supGroups) - } - - if sc.FSGroup() == nil { - fsGroup, err := s.fsGroupStrategy.GenerateSingle(pod) - if err != nil { - return nil, nil, err - } - sc.SetFSGroup(fsGroup) - } - - if sc.SELinuxOptions() == nil { - seLinux, err := s.seLinuxStrategy.Generate(pod, nil) - if err != nil { - return nil, nil, err - } - sc.SetSELinuxOptions(seLinux) - } - - // we only generate a seccomp annotation for the entire pod. Validation - // will catch any container annotations that are invalid and containers - // will inherit the pod annotation. - _, hasPodProfile := pod.Annotations[api.SeccompPodAnnotationKey] - if !hasPodProfile { - profile, err := s.seccompStrategy.Generate(pod) - if err != nil { - return nil, nil, err - } - - if profile != "" { - if annotationsCopy == nil { - annotationsCopy = map[string]string{} - } - annotationsCopy[api.SeccompPodAnnotationKey] = profile - } - } - - return sc.PodSecurityContext(), annotationsCopy, nil -} - -// Create a SecurityContext based on the given constraints. If a setting is already set on the -// container's security context then it will not be changed. Validation should be used after -// the context is created to ensure it complies with the required restrictions. -func (s *simpleProvider) CreateContainerSecurityContext(pod *api.Pod, container *api.Container) (*api.SecurityContext, error) { - sc := securitycontext.NewEffectiveContainerSecurityContextMutator( - securitycontext.NewPodSecurityContextAccessor(pod.Spec.SecurityContext), - securitycontext.NewContainerSecurityContextMutator(container.SecurityContext), - ) - if sc.RunAsUser() == nil { - uid, err := s.runAsUserStrategy.Generate(pod, container) - if err != nil { - return nil, err - } - sc.SetRunAsUser(uid) - } - - if sc.SELinuxOptions() == nil { - seLinux, err := s.seLinuxStrategy.Generate(pod, container) - if err != nil { - return nil, err - } - sc.SetSELinuxOptions(seLinux) - } - - // if we're using the non-root strategy set the marker that this container should not be - // run as root which will signal to the kubelet to do a final check either on the runAsUser - // or, if runAsUser is not set, the image - if sc.RunAsNonRoot() == nil && sc.RunAsUser() == nil && s.scc.RunAsUser.Type == securityv1.RunAsUserStrategyMustRunAsNonRoot { - nonRoot := true - sc.SetRunAsNonRoot(&nonRoot) - } - - caps, err := s.capabilitiesStrategy.Generate(pod, container) - if err != nil { - return nil, err - } - sc.SetCapabilities(caps) - - // if the SCC requires a read only root filesystem and the container has not made a specific - // request then default ReadOnlyRootFilesystem to true. - if s.scc.ReadOnlyRootFilesystem && sc.ReadOnlyRootFilesystem() == nil { - readOnlyRootFS := true - sc.SetReadOnlyRootFilesystem(&readOnlyRootFS) - } - - // if the SCC sets DefaultAllowPrivilegeEscalation and the container security context - // allowPrivilegeEscalation is not set, then default to that set by the SCC. - if s.scc.DefaultAllowPrivilegeEscalation != nil && sc.AllowPrivilegeEscalation() == nil { - sc.SetAllowPrivilegeEscalation(s.scc.DefaultAllowPrivilegeEscalation) - } - - // if the SCC sets AllowPrivilegeEscalation to false set that as the default - if s.scc.AllowPrivilegeEscalation != nil && !*s.scc.AllowPrivilegeEscalation && sc.AllowPrivilegeEscalation() == nil { - sc.SetAllowPrivilegeEscalation(s.scc.AllowPrivilegeEscalation) - } - - return sc.ContainerSecurityContext(), nil -} - -// Ensure a pod's SecurityContext is in compliance with the given constraints. -func (s *simpleProvider) ValidatePodSecurityContext(pod *api.Pod, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - - sc := securitycontext.NewPodSecurityContextAccessor(pod.Spec.SecurityContext) - - fsGroups := []int64{} - if fsGroup := sc.FSGroup(); fsGroup != nil { - fsGroups = append(fsGroups, *fsGroup) - } - allErrs = append(allErrs, s.fsGroupStrategy.Validate(fldPath, pod, fsGroups)...) - allErrs = append(allErrs, s.supplementalGroupStrategy.Validate(fldPath, pod, sc.SupplementalGroups())...) - allErrs = append(allErrs, s.seccompStrategy.ValidatePod(pod)...) - - allErrs = append(allErrs, s.seLinuxStrategy.Validate(fldPath.Child("seLinuxOptions"), pod, nil, sc.SELinuxOptions())...) - - if !s.scc.AllowHostNetwork && sc.HostNetwork() { - allErrs = append(allErrs, field.Invalid(fldPath.Child("hostNetwork"), sc.HostNetwork(), "Host network is not allowed to be used")) - } - - if !s.scc.AllowHostPID && sc.HostPID() { - allErrs = append(allErrs, field.Invalid(fldPath.Child("hostPID"), sc.HostPID(), "Host PID is not allowed to be used")) - } - - if !s.scc.AllowHostIPC && sc.HostIPC() { - allErrs = append(allErrs, field.Invalid(fldPath.Child("hostIPC"), sc.HostIPC(), "Host IPC is not allowed to be used")) - } - - allErrs = append(allErrs, s.sysctlsStrategy.Validate(pod)...) - - if len(pod.Spec.Volumes) > 0 && !sccutil.SCCAllowsAllVolumes(s.scc) { - allowedVolumes := sccutil.FSTypeToStringSetInternal(s.scc.Volumes) - for i, v := range pod.Spec.Volumes { - fsType, err := sccutil.GetVolumeFSType(v) - if err != nil { - allErrs = append(allErrs, field.Invalid(field.NewPath("spec", "volumes").Index(i), string(fsType), err.Error())) - continue - } - - if !allowedVolumes.Has(string(fsType)) { - allErrs = append(allErrs, field.Invalid( - field.NewPath("spec", "volumes").Index(i), string(fsType), - fmt.Sprintf("%s volumes are not allowed to be used", string(fsType)))) - } - } - } - - if len(pod.Spec.Volumes) > 0 && len(s.scc.AllowedFlexVolumes) > 0 && sccutil.SCCAllowsFSTypeInternal(s.scc, securityv1.FSTypeFlexVolume) { - for i, v := range pod.Spec.Volumes { - if v.FlexVolume == nil { - continue - } - - found := false - driver := v.FlexVolume.Driver - for _, allowedFlexVolume := range s.scc.AllowedFlexVolumes { - if driver == allowedFlexVolume.Driver { - found = true - break - } - } - if !found { - allErrs = append(allErrs, - field.Invalid(fldPath.Child("volumes").Index(i).Child("driver"), driver, - "Flexvolume driver is not allowed to be used")) - } - } - } - - return allErrs -} - -// Ensure a container's SecurityContext is in compliance with the given constraints -func (s *simpleProvider) ValidateContainerSecurityContext(pod *api.Pod, container *api.Container, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - - podSC := securitycontext.NewPodSecurityContextAccessor(pod.Spec.SecurityContext) - sc := securitycontext.NewEffectiveContainerSecurityContextAccessor(podSC, securitycontext.NewContainerSecurityContextMutator(container.SecurityContext)) - - allErrs = append(allErrs, s.runAsUserStrategy.Validate(fldPath, pod, container, sc.RunAsNonRoot(), sc.RunAsUser())...) - allErrs = append(allErrs, s.seLinuxStrategy.Validate(fldPath.Child("seLinuxOptions"), pod, container, sc.SELinuxOptions())...) - allErrs = append(allErrs, s.seccompStrategy.ValidateContainer(pod, container)...) - - privileged := sc.Privileged() - if !s.scc.AllowPrivilegedContainer && privileged != nil && *privileged { - allErrs = append(allErrs, field.Invalid(fldPath.Child("privileged"), *privileged, "Privileged containers are not allowed")) - } - - allErrs = append(allErrs, s.capabilitiesStrategy.Validate(fldPath, pod, container, sc.Capabilities())...) - - if !s.scc.AllowHostNetwork && podSC.HostNetwork() { - allErrs = append(allErrs, field.Invalid(fldPath.Child("hostNetwork"), podSC.HostNetwork(), "Host network is not allowed to be used")) - } - - if !s.scc.AllowHostPorts { - containersPath := fldPath.Child("containers") - for idx, c := range pod.Spec.Containers { - idxPath := containersPath.Index(idx) - allErrs = append(allErrs, s.hasHostPort(&c, idxPath)...) - } - - containersPath = fldPath.Child("initContainers") - for idx, c := range pod.Spec.InitContainers { - idxPath := containersPath.Index(idx) - allErrs = append(allErrs, s.hasHostPort(&c, idxPath)...) - } - } - - if !s.scc.AllowHostPID && podSC.HostPID() { - allErrs = append(allErrs, field.Invalid(fldPath.Child("hostPID"), podSC.HostPID(), "Host PID is not allowed to be used")) - } - - if !s.scc.AllowHostIPC && podSC.HostIPC() { - allErrs = append(allErrs, field.Invalid(fldPath.Child("hostIPC"), podSC.HostIPC(), "Host IPC is not allowed to be used")) - } - - if s.scc.ReadOnlyRootFilesystem { - readOnly := sc.ReadOnlyRootFilesystem() - if readOnly == nil { - allErrs = append(allErrs, field.Invalid(fldPath.Child("readOnlyRootFilesystem"), readOnly, "ReadOnlyRootFilesystem may not be nil and must be set to true")) - } else if !*readOnly { - allErrs = append(allErrs, field.Invalid(fldPath.Child("readOnlyRootFilesystem"), *readOnly, "ReadOnlyRootFilesystem must be set to true")) - } - } - - allowEscalation := sc.AllowPrivilegeEscalation() - if s.scc.AllowPrivilegeEscalation != nil && !*s.scc.AllowPrivilegeEscalation { - if allowEscalation == nil { - allErrs = append(allErrs, field.Invalid(fldPath.Child("allowPrivilegeEscalation"), allowEscalation, "Allowing privilege escalation for containers is not allowed")) - } - - if allowEscalation != nil && *allowEscalation { - allErrs = append(allErrs, field.Invalid(fldPath.Child("allowPrivilegeEscalation"), *allowEscalation, "Allowing privilege escalation for containers is not allowed")) - } - } - - return allErrs -} - -// hasHostPort checks the port definitions on the container for HostPort > 0. -func (s *simpleProvider) hasHostPort(container *api.Container, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - for _, cp := range container.Ports { - if cp.HostPort > 0 { - allErrs = append(allErrs, field.Invalid(fldPath.Child("hostPort"), cp.HostPort, "Host ports are not allowed to be used")) - } - } - return allErrs -} - -// Get the name of the SCC that this provider was initialized with. -func (s *simpleProvider) GetSCCName() string { - return s.scc.Name -} - -func (s *simpleProvider) GetSCCUsers() []string { - return s.scc.Users -} - -func (s *simpleProvider) GetSCCGroups() []string { - return s.scc.Groups -} - -// createUserStrategy creates a new user strategy. -func createUserStrategy(opts *securityv1.RunAsUserStrategyOptions) (user.RunAsUserSecurityContextConstraintsStrategy, error) { - switch opts.Type { - case securityv1.RunAsUserStrategyMustRunAs: - return user.NewMustRunAs(opts) - case securityv1.RunAsUserStrategyMustRunAsRange: - return user.NewMustRunAsRange(opts) - case securityv1.RunAsUserStrategyMustRunAsNonRoot: - return user.NewRunAsNonRoot(opts) - case securityv1.RunAsUserStrategyRunAsAny: - return user.NewRunAsAny(opts) - default: - return nil, fmt.Errorf("Unrecognized RunAsUser strategy type %s", opts.Type) - } -} - -// createSELinuxStrategy creates a new selinux strategy. -func createSELinuxStrategy(opts *securityv1.SELinuxContextStrategyOptions) (selinux.SELinuxSecurityContextConstraintsStrategy, error) { - switch opts.Type { - case securityv1.SELinuxStrategyMustRunAs: - return selinux.NewMustRunAs(opts) - case securityv1.SELinuxStrategyRunAsAny: - return selinux.NewRunAsAny(opts) - default: - return nil, fmt.Errorf("Unrecognized SELinuxContext strategy type %s", opts.Type) - } -} - -// createFSGroupStrategy creates a new fsgroup strategy -func createFSGroupStrategy(opts *securityv1.FSGroupStrategyOptions) (group.GroupSecurityContextConstraintsStrategy, error) { - switch opts.Type { - case securityv1.FSGroupStrategyRunAsAny: - return group.NewRunAsAny() - case securityv1.FSGroupStrategyMustRunAs: - return group.NewMustRunAs(opts.Ranges, fsGroupField) - default: - return nil, fmt.Errorf("Unrecognized FSGroup strategy type %s", opts.Type) - } -} - -// createSupplementalGroupStrategy creates a new supplemental group strategy -func createSupplementalGroupStrategy(opts *securityv1.SupplementalGroupsStrategyOptions) (group.GroupSecurityContextConstraintsStrategy, error) { - switch opts.Type { - case securityv1.SupplementalGroupsStrategyRunAsAny: - return group.NewRunAsAny() - case securityv1.SupplementalGroupsStrategyMustRunAs: - return group.NewMustRunAs(opts.Ranges, supplementalGroupsField) - default: - return nil, fmt.Errorf("Unrecognized SupplementalGroups strategy type %s", opts.Type) - } -} - -// createCapabilitiesStrategy creates a new capabilities strategy. -func createCapabilitiesStrategy(defaultAddCaps, requiredDropCaps, allowedCaps []corev1.Capability) (capabilities.CapabilitiesSecurityContextConstraintsStrategy, error) { - return capabilities.NewDefaultCapabilities(defaultAddCaps, requiredDropCaps, allowedCaps) -} - -// createSeccompStrategy creates a new seccomp strategy -func createSeccompStrategy(allowedProfiles []string) (seccomp.SeccompStrategy, error) { - return seccomp.NewWithSeccompProfile(allowedProfiles) -} - -// createSysctlsStrategy creates a new sysctls strategy -func createSysctlsStrategy(safeWhitelist, allowedUnsafeSysctls, forbiddenSysctls []string) (sysctl.SysctlsStrategy, error) { - return sysctl.NewMustMatchPatterns(safeWhitelist, allowedUnsafeSysctls, forbiddenSysctls), nil -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccmatching/types.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccmatching/types.go deleted file mode 100644 index 40747bf860f3b..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sccmatching/types.go +++ /dev/null @@ -1,25 +0,0 @@ -package sccmatching - -import ( - "k8s.io/apimachinery/pkg/util/validation/field" - api "k8s.io/kubernetes/pkg/apis/core" -) - -// SecurityContextConstraintsProvider provides the implementation to generate a new security -// context based on constraints or validate an existing security context against constraints. -type SecurityContextConstraintsProvider interface { - // Create a PodSecurityContext based on the given constraints. - CreatePodSecurityContext(pod *api.Pod) (*api.PodSecurityContext, map[string]string, error) - // Create a container SecurityContext based on the given constraints - CreateContainerSecurityContext(pod *api.Pod, container *api.Container) (*api.SecurityContext, error) - // Ensure a pod's SecurityContext is in compliance with the given constraints. - ValidatePodSecurityContext(pod *api.Pod, fldPath *field.Path) field.ErrorList - // Ensure a container's SecurityContext is in compliance with the given constraints - ValidateContainerSecurityContext(pod *api.Pod, container *api.Container, fldPath *field.Path) field.ErrorList - // Get the name of the SCC that this provider was initialized with. - GetSCCName() string - // Get the users associated to the SCC this provider was initialized with - GetSCCUsers() []string - // Get the groups associated to the SCC this provider was initialized with - GetSCCGroups() []string -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/seccomp/types.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/seccomp/types.go deleted file mode 100644 index 046fff560b607..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/seccomp/types.go +++ /dev/null @@ -1,18 +0,0 @@ -package seccomp - -import ( - "k8s.io/apimachinery/pkg/util/validation/field" - api "k8s.io/kubernetes/pkg/apis/core" -) - -// SeccompStrategy defines the interface for all seccomp constraint strategies. -type SeccompStrategy interface { - // Generate creates the profile based on policy rules. - Generate(pod *api.Pod) (string, error) - // ValidatePod ensures that the specified values on the pod fall within the range - // of the strategy. - ValidatePod(pod *api.Pod) field.ErrorList - // ValidateContainer ensures that the specified values on the container fall within - // the range of the strategy. - ValidateContainer(pod *api.Pod, container *api.Container) field.ErrorList -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/seccomp/withseccomp.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/seccomp/withseccomp.go deleted file mode 100644 index 4e28169802c08..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/seccomp/withseccomp.go +++ /dev/null @@ -1,113 +0,0 @@ -package seccomp - -import ( - "fmt" - - "k8s.io/apimachinery/pkg/util/validation/field" - api "k8s.io/kubernetes/pkg/apis/core" -) - -const ( - allowAnyProfile = "*" -) - -// withSeccompProfile implements the SeccompStrategy. -type withSeccompProfile struct { - allowedProfiles []string -} - -var _ SeccompStrategy = &withSeccompProfile{} - -// NewWithSeccompProfile creates a new must run as strategy or returns an error if it cannot -// be created. -func NewWithSeccompProfile(allowedProfiles []string) (SeccompStrategy, error) { - return &withSeccompProfile{allowedProfiles}, nil -} - -// Generate creates the profile based on policy rules. -func (s *withSeccompProfile) Generate(pod *api.Pod) (string, error) { - // return the first non-wildcard profile - for _, p := range s.allowedProfiles { - if p != allowAnyProfile { - return p, nil - } - } - // if we reached this point then either there are no allowed profiles (empty slice) - // or the only thing in the slice is the wildcard. In either case just return empty - // which means use the runtime default. - return "", nil -} - -// ValidatePod ensures that the specified values on the pod fall within the range -// of the strategy. -func (s *withSeccompProfile) ValidatePod(pod *api.Pod) field.ErrorList { - allErrs := field.ErrorList{} - fieldPath := field.NewPath("pod", "metadata", "annotations", api.SeccompPodAnnotationKey) - - podProfile, _ := pod.Annotations[api.SeccompPodAnnotationKey] - - if len(s.allowedProfiles) == 0 && podProfile != "" { - - allErrs = append(allErrs, field.Forbidden(fieldPath, "seccomp may not be set")) - return allErrs - } - - if !isProfileAllowed(podProfile, s.allowedProfiles) { - msg := fmt.Sprintf("%s is not a valid seccomp profile. Valid values are %v", podProfile, s.allowedProfiles) - allErrs = append(allErrs, field.Forbidden(fieldPath, msg)) - } - - return allErrs -} - -// ValidateContainer ensures that the specified values on the container fall within -// the range of the strategy. -func (s *withSeccompProfile) ValidateContainer(pod *api.Pod, container *api.Container) field.ErrorList { - allErrs := field.ErrorList{} - fieldPath := field.NewPath("pod", "metadata", "annotations", api.SeccompContainerAnnotationKeyPrefix+container.Name) - - // container inherits the pod profile if not set. TODO: when this is a field this can be removed and it should - // be accounted for in DetermineEffectiveSecurityContext - containerProfile := profileForContainer(pod, container) - - if len(s.allowedProfiles) == 0 && containerProfile != "" { - allErrs = append(allErrs, field.Forbidden(fieldPath, "seccomp may not be set")) - return allErrs - } - - if !isProfileAllowed(containerProfile, s.allowedProfiles) { - msg := fmt.Sprintf("%s is not a valid seccomp profile. Valid values are %v", containerProfile, s.allowedProfiles) - allErrs = append(allErrs, field.Forbidden(fieldPath, msg)) - } - - return allErrs -} - -// isProfileAllowed checks if profile is in allowedProfiles or if allowedProfiles -// contains the wildcard. -func isProfileAllowed(profile string, allowedProfiles []string) bool { - // for backwards compatibility and PSPs without a defined list of allowed profiles. - // If a PSP does not have allowedProfiles set then we should allow an empty profile. - // This will mean that the runtime default is used. - if len(allowedProfiles) == 0 && profile == "" { - return true - } - - for _, p := range allowedProfiles { - if profile == p || p == allowAnyProfile { - return true - } - } - return false -} - -// profileForContainer returns the container profile or the pod profile if the container annotatation is not set. -// If the container profile is set but empty then empty will be returned. This mirrors the functionality in the -// kubelet's docker tools. -func profileForContainer(pod *api.Pod, container *api.Container) string { - containerProfile, hasContainerProfile := pod.Annotations[api.SeccompContainerAnnotationKeyPrefix+container.Name] - if hasContainerProfile { - return containerProfile - } - return pod.Annotations[api.SeccompPodAnnotationKey] -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/selinux/convert.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/selinux/convert.go deleted file mode 100644 index f11900ef22e2a..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/selinux/convert.go +++ /dev/null @@ -1,24 +0,0 @@ -package selinux - -import ( - corev1 "k8s.io/api/core/v1" - coreapi "k8s.io/kubernetes/pkg/apis/core" - corev1conversions "k8s.io/kubernetes/pkg/apis/core/v1" -) - -func ToInternalSELinuxOptions(external *corev1.SELinuxOptions) (*coreapi.SELinuxOptions, error) { - if external == nil { - return nil, nil - } - internal := &coreapi.SELinuxOptions{} - err := corev1conversions.Convert_v1_SELinuxOptions_To_core_SELinuxOptions(external, internal, nil) - return internal, err -} - -func ToInternalSELinuxOptionsOrDie(external *corev1.SELinuxOptions) *coreapi.SELinuxOptions { - ret, err := ToInternalSELinuxOptions(external) - if err != nil { - panic(err) - } - return ret -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/selinux/doc.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/selinux/doc.go deleted file mode 100644 index 4ec01e969b00b..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/selinux/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package selinux contains security context constraints SELinux strategy implementations. -package selinux diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/selinux/mustrunas.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/selinux/mustrunas.go deleted file mode 100644 index 9e3b319b81d5a..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/selinux/mustrunas.go +++ /dev/null @@ -1,105 +0,0 @@ -package selinux - -import ( - "fmt" - "sort" - "strings" - - "k8s.io/apimachinery/pkg/util/validation/field" - coreapi "k8s.io/kubernetes/pkg/apis/core" - - securityv1 "github.com/openshift/api/security/v1" - "github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/util" -) - -type mustRunAs struct { - opts *securityv1.SELinuxContextStrategyOptions -} - -var _ SELinuxSecurityContextConstraintsStrategy = &mustRunAs{} - -func NewMustRunAs(options *securityv1.SELinuxContextStrategyOptions) (SELinuxSecurityContextConstraintsStrategy, error) { - if options == nil { - return nil, fmt.Errorf("MustRunAs requires SELinuxContextStrategyOptions") - } - if options.SELinuxOptions == nil { - return nil, fmt.Errorf("MustRunAs requires SELinuxOptions") - } - return &mustRunAs{ - opts: options, - }, nil -} - -// Generate creates the SELinuxOptions based on constraint rules. -func (s *mustRunAs) Generate(_ *coreapi.Pod, _ *coreapi.Container) (*coreapi.SELinuxOptions, error) { - return ToInternalSELinuxOptions(s.opts.SELinuxOptions) -} - -// Validate ensures that the specified values fall within the range of the strategy. -func (s *mustRunAs) Validate(fldPath *field.Path, _ *coreapi.Pod, _ *coreapi.Container, seLinux *coreapi.SELinuxOptions) field.ErrorList { - allErrs := field.ErrorList{} - - if seLinux == nil { - allErrs = append(allErrs, field.Required(fldPath, "")) - return allErrs - } - if !equalLevels(s.opts.SELinuxOptions.Level, seLinux.Level) { - detail := fmt.Sprintf("must be %s", s.opts.SELinuxOptions.Level) - allErrs = append(allErrs, field.Invalid(fldPath.Child("level"), seLinux.Level, detail)) - } - if seLinux.Role != s.opts.SELinuxOptions.Role { - detail := fmt.Sprintf("must be %s", s.opts.SELinuxOptions.Role) - allErrs = append(allErrs, field.Invalid(fldPath.Child("role"), seLinux.Role, detail)) - } - if seLinux.Type != s.opts.SELinuxOptions.Type { - detail := fmt.Sprintf("must be %s", s.opts.SELinuxOptions.Type) - allErrs = append(allErrs, field.Invalid(fldPath.Child("type"), seLinux.Type, detail)) - } - if seLinux.User != s.opts.SELinuxOptions.User { - detail := fmt.Sprintf("must be %s", s.opts.SELinuxOptions.User) - allErrs = append(allErrs, field.Invalid(fldPath.Child("user"), seLinux.User, detail)) - } - - return allErrs -} - -// equalLevels compares SELinux levels for equality. -func equalLevels(expected, actual string) bool { - if expected == actual { - return true - } - // "s0:c6,c0" => [ "s0", "c6,c0" ] - expectedParts := strings.SplitN(expected, ":", 2) - actualParts := strings.SplitN(actual, ":", 2) - - // both SELinux levels must be in a format "sX:cY" - if len(expectedParts) != 2 || len(actualParts) != 2 { - return false - } - - if !equalSensitivity(expectedParts[0], actualParts[0]) { - return false - } - - if !equalCategories(expectedParts[1], actualParts[1]) { - return false - } - - return true -} - -// equalSensitivity compares sensitivities of the SELinux levels for equality. -func equalSensitivity(expected, actual string) bool { - return expected == actual -} - -// equalCategories compares categories of the SELinux levels for equality. -func equalCategories(expected, actual string) bool { - expectedCategories := strings.Split(expected, ",") - actualCategories := strings.Split(actual, ",") - - sort.Strings(expectedCategories) - sort.Strings(actualCategories) - - return util.EqualStringSlices(expectedCategories, actualCategories) -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/selinux/runasany.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/selinux/runasany.go deleted file mode 100644 index 95adb503628cb..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/selinux/runasany.go +++ /dev/null @@ -1,28 +0,0 @@ -package selinux - -import ( - "k8s.io/apimachinery/pkg/util/validation/field" - coreapi "k8s.io/kubernetes/pkg/apis/core" - - securityv1 "github.com/openshift/api/security/v1" -) - -// runAsAny implements the SELinuxSecurityContextConstraintsStrategy interface. -type runAsAny struct{} - -var _ SELinuxSecurityContextConstraintsStrategy = &runAsAny{} - -// NewRunAsAny provides a strategy that will return the configured se linux context or nil. -func NewRunAsAny(options *securityv1.SELinuxContextStrategyOptions) (SELinuxSecurityContextConstraintsStrategy, error) { - return &runAsAny{}, nil -} - -// Generate creates the SELinuxOptions based on constraint rules. -func (s *runAsAny) Generate(pod *coreapi.Pod, container *coreapi.Container) (*coreapi.SELinuxOptions, error) { - return nil, nil -} - -// Validate ensures that the specified values fall within the range of the strategy. -func (s *runAsAny) Validate(fldPath *field.Path, _ *coreapi.Pod, _ *coreapi.Container, options *coreapi.SELinuxOptions) field.ErrorList { - return field.ErrorList{} -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/selinux/types.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/selinux/types.go deleted file mode 100644 index 4cd5f3e8f2b5a..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/selinux/types.go +++ /dev/null @@ -1,14 +0,0 @@ -package selinux - -import ( - "k8s.io/apimachinery/pkg/util/validation/field" - coreapi "k8s.io/kubernetes/pkg/apis/core" -) - -// SELinuxSecurityContextConstraintsStrategy defines the interface for all SELinux constraint strategies. -type SELinuxSecurityContextConstraintsStrategy interface { - // Generate creates the SELinuxOptions based on constraint rules. - Generate(pod *coreapi.Pod, container *coreapi.Container) (*coreapi.SELinuxOptions, error) - // Validate ensures that the specified values fall within the range of the strategy. - Validate(fldPath *field.Path, pod *coreapi.Pod, container *coreapi.Container, options *coreapi.SELinuxOptions) field.ErrorList -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/doc.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/doc.go deleted file mode 100644 index f28032767eba0..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package user contains security context constraints user strategy implementations. -package user diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/mustrunas.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/mustrunas.go deleted file mode 100644 index 455d7f8def1b2..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/mustrunas.go +++ /dev/null @@ -1,53 +0,0 @@ -package user - -import ( - "fmt" - - "k8s.io/apimachinery/pkg/util/validation/field" - api "k8s.io/kubernetes/pkg/apis/core" - - securityv1 "github.com/openshift/api/security/v1" -) - -// mustRunAs implements the RunAsUserSecurityContextConstraintsStrategy interface -type mustRunAs struct { - opts *securityv1.RunAsUserStrategyOptions -} - -var _ RunAsUserSecurityContextConstraintsStrategy = &mustRunAs{} - -// NewMustRunAs provides a strategy that requires the container to run as a specific UID. -func NewMustRunAs(options *securityv1.RunAsUserStrategyOptions) (RunAsUserSecurityContextConstraintsStrategy, error) { - if options == nil { - return nil, fmt.Errorf("MustRunAs requires run as user options") - } - if options.UID == nil { - return nil, fmt.Errorf("MustRunAs requires a UID") - } - return &mustRunAs{ - opts: options, - }, nil -} - -// Generate creates the uid based on policy rules. MustRunAs returns the UID it is initialized with. -func (s *mustRunAs) Generate(pod *api.Pod, container *api.Container) (*int64, error) { - return s.opts.UID, nil -} - -// Validate ensures that the specified values fall within the range of the strategy. -func (s *mustRunAs) Validate(fldPath *field.Path, _ *api.Pod, _ *api.Container, runAsNonRoot *bool, runAsUser *int64) field.ErrorList { - allErrs := field.ErrorList{} - - if runAsUser == nil { - allErrs = append(allErrs, field.Required(fldPath.Child("runAsUser"), "")) - return allErrs - } - - if *s.opts.UID != *runAsUser { - detail := fmt.Sprintf("must be: %v", *s.opts.UID) - allErrs = append(allErrs, field.Invalid(fldPath.Child("runAsUser"), *runAsUser, detail)) - return allErrs - } - - return allErrs -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/mustrunasrange.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/mustrunasrange.go deleted file mode 100644 index 1ca709e2a43a8..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/mustrunasrange.go +++ /dev/null @@ -1,56 +0,0 @@ -package user - -import ( - "fmt" - - "k8s.io/apimachinery/pkg/util/validation/field" - api "k8s.io/kubernetes/pkg/apis/core" - - securityv1 "github.com/openshift/api/security/v1" -) - -// mustRunAsRange implements the RunAsUserSecurityContextConstraintsStrategy interface -type mustRunAsRange struct { - opts *securityv1.RunAsUserStrategyOptions -} - -var _ RunAsUserSecurityContextConstraintsStrategy = &mustRunAsRange{} - -// NewMustRunAsRange provides a strategy that requires the container to run as a specific UID in a range. -func NewMustRunAsRange(options *securityv1.RunAsUserStrategyOptions) (RunAsUserSecurityContextConstraintsStrategy, error) { - if options == nil { - return nil, fmt.Errorf("MustRunAsRange requires run as user options") - } - if options.UIDRangeMin == nil { - return nil, fmt.Errorf("MustRunAsRange requires a UIDRangeMin") - } - if options.UIDRangeMax == nil { - return nil, fmt.Errorf("MustRunAsRange requires a UIDRangeMax") - } - return &mustRunAsRange{ - opts: options, - }, nil -} - -// Generate creates the uid based on policy rules. MustRunAs returns the UIDRangeMin it is initialized with. -func (s *mustRunAsRange) Generate(pod *api.Pod, container *api.Container) (*int64, error) { - return s.opts.UIDRangeMin, nil -} - -// Validate ensures that the specified values fall within the range of the strategy. -func (s *mustRunAsRange) Validate(fldPath *field.Path, _ *api.Pod, _ *api.Container, runAsNonRoot *bool, runAsUser *int64) field.ErrorList { - allErrs := field.ErrorList{} - - if runAsUser == nil { - allErrs = append(allErrs, field.Required(fldPath.Child("runAsUser"), "")) - return allErrs - } - - if *runAsUser < *s.opts.UIDRangeMin || *runAsUser > *s.opts.UIDRangeMax { - detail := fmt.Sprintf("must be in the ranges: [%v, %v]", *s.opts.UIDRangeMin, *s.opts.UIDRangeMax) - allErrs = append(allErrs, field.Invalid(fldPath.Child("runAsUser"), *runAsUser, detail)) - return allErrs - } - - return allErrs -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/nonroot.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/nonroot.go deleted file mode 100644 index 52e27a3d83601..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/nonroot.go +++ /dev/null @@ -1,43 +0,0 @@ -package user - -import ( - "k8s.io/apimachinery/pkg/util/validation/field" - api "k8s.io/kubernetes/pkg/apis/core" - - securityv1 "github.com/openshift/api/security/v1" -) - -type nonRoot struct{} - -var _ RunAsUserSecurityContextConstraintsStrategy = &nonRoot{} - -func NewRunAsNonRoot(options *securityv1.RunAsUserStrategyOptions) (RunAsUserSecurityContextConstraintsStrategy, error) { - return &nonRoot{}, nil -} - -// Generate creates the uid based on policy rules. This strategy does return a UID. It assumes -// that the user will specify a UID or the container image specifies a UID. -func (s *nonRoot) Generate(pod *api.Pod, container *api.Container) (*int64, error) { - return nil, nil -} - -// Validate ensures that the specified values fall within the range of the strategy. Validation -// of this will pass if either the UID is not set, assuming that the image will provided the UID -// or if the UID is set it is not root. In order to work properly this assumes that the kubelet -// will populate an -func (s *nonRoot) Validate(fldPath *field.Path, _ *api.Pod, _ *api.Container, runAsNonRoot *bool, runAsUser *int64) field.ErrorList { - allErrs := field.ErrorList{} - if runAsNonRoot == nil && runAsUser == nil { - allErrs = append(allErrs, field.Required(fldPath.Child("runAsNonRoot"), "must be true")) - return allErrs - } - if runAsNonRoot != nil && *runAsNonRoot == false { - allErrs = append(allErrs, field.Invalid(fldPath.Child("runAsNonRoot"), *runAsNonRoot, "must be true")) - return allErrs - } - if runAsUser != nil && *runAsUser == 0 { - allErrs = append(allErrs, field.Invalid(fldPath.Child("runAsUser"), *runAsUser, "running with the root UID is forbidden")) - return allErrs - } - return allErrs -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/runasany.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/runasany.go deleted file mode 100644 index f56505ed1d4cc..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/runasany.go +++ /dev/null @@ -1,28 +0,0 @@ -package user - -import ( - "k8s.io/apimachinery/pkg/util/validation/field" - api "k8s.io/kubernetes/pkg/apis/core" - - securityv1 "github.com/openshift/api/security/v1" -) - -// runAsAny implements the interface RunAsUserSecurityContextConstraintsStrategy. -type runAsAny struct{} - -var _ RunAsUserSecurityContextConstraintsStrategy = &runAsAny{} - -// NewRunAsAny provides a strategy that will return nil. -func NewRunAsAny(options *securityv1.RunAsUserStrategyOptions) (RunAsUserSecurityContextConstraintsStrategy, error) { - return &runAsAny{}, nil -} - -// Generate creates the uid based on policy rules. -func (s *runAsAny) Generate(pod *api.Pod, container *api.Container) (*int64, error) { - return nil, nil -} - -// Validate ensures that the specified values fall within the range of the strategy. -func (s *runAsAny) Validate(fldPath *field.Path, _ *api.Pod, _ *api.Container, runAsNonRoot *bool, runAsUser *int64) field.ErrorList { - return field.ErrorList{} -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/types.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/types.go deleted file mode 100644 index fd60d45fd1364..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user/types.go +++ /dev/null @@ -1,14 +0,0 @@ -package user - -import ( - "k8s.io/apimachinery/pkg/util/validation/field" - api "k8s.io/kubernetes/pkg/apis/core" -) - -// RunAsUserSecurityContextConstraintsStrategy defines the interface for all uid constraint strategies. -type RunAsUserSecurityContextConstraintsStrategy interface { - // Generate creates the uid based on policy rules. - Generate(pod *api.Pod, container *api.Container) (*int64, error) - // Validate ensures that the specified values fall within the range of the strategy. - Validate(fldPath *field.Path, pod *api.Pod, container *api.Container, runAsNonRoot *bool, runAsUser *int64) field.ErrorList -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/util/sort/bypriority.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/util/sort/bypriority.go deleted file mode 100644 index 2fb523b543c53..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/util/sort/bypriority.go +++ /dev/null @@ -1,54 +0,0 @@ -package sort - -import ( - securityv1 "github.com/openshift/api/security/v1" -) - -// ByPriority is a helper to sort SCCs based on priority. If priorities are equal -// a string compare of the name is used. -type ByPriority []*securityv1.SecurityContextConstraints - -func (s ByPriority) Len() int { - return len(s) -} -func (s ByPriority) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s ByPriority) Less(i, j int) bool { - iSCC := s[i] - jSCC := s[j] - - iSCCPriority := getPriority(iSCC) - jSCCPriority := getPriority(jSCC) - - // a higher priority is considered "less" so that it moves to the front of the line - if iSCCPriority > jSCCPriority { - return true - } - - if iSCCPriority < jSCCPriority { - return false - } - - // priorities are equal, let's try point values - iRestrictionScore := pointValue(iSCC) - jRestrictionScore := pointValue(jSCC) - - // a lower restriction score is considered "less" so that it moves to the front of the line - // (the greater the score, the more lax the SCC is) - if iRestrictionScore < jRestrictionScore { - return true - } - - if iRestrictionScore > jRestrictionScore { - return false - } - - // they are still equal, sort by name - return iSCC.Name < jSCC.Name -} - -func getPriority(scc *securityv1.SecurityContextConstraints) int { - if scc.Priority == nil { - return 0 - } - return int(*scc.Priority) -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/util/sort/byrestrictions.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/util/sort/byrestrictions.go deleted file mode 100644 index 67189e0859f4d..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/util/sort/byrestrictions.go +++ /dev/null @@ -1,175 +0,0 @@ -package sort - -import ( - "strings" - - "k8s.io/klog/v2" - - corev1 "k8s.io/api/core/v1" - - securityv1 "github.com/openshift/api/security/v1" -) - -// ByRestrictions is a helper to sort SCCs in order of most restrictive to least restrictive. -type ByRestrictions []*securityv1.SecurityContextConstraints - -func (s ByRestrictions) Len() int { - return len(s) -} -func (s ByRestrictions) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s ByRestrictions) Less(i, j int) bool { - return pointValue(s[i]) < pointValue(s[j]) -} - -// The following constants define the weight of the restrictions and used for -// calculating the points of the particular SCC. The lower the number, the more -// restrictive SCC is. Make sure that weak restrictions are always valued -// higher than the combination of the strong restrictions. - -type points int - -const ( - privilegedPoints points = 1000000 - - hostNetworkPoints points = 200000 - hostPortsPoints points = 400000 - - hostVolumePoints points = 100000 - nonTrivialVolumePoints points = 50000 - - runAsAnyUserPoints points = 40000 - runAsNonRootPoints points = 30000 - runAsRangePoints points = 20000 - runAsUserPoints points = 10000 - - capDefaultPoints points = 5000 - capAddOnePoints points = 300 - capAllowAllPoints points = 4000 - capAllowOnePoints points = 10 - capDropAllPoints points = -3000 - capDropOnePoints points = -50 - capMaxPoints points = 9999 - capMinPoints points = 0 - - noPoints points = 0 -) - -// pointValue places a value on the SCC based on the settings of the SCC that can be used -// to determine how restrictive it is. The lower the number, the more restrictive it is. -func pointValue(constraint *securityv1.SecurityContextConstraints) points { - totalPoints := noPoints - - if constraint.AllowPrivilegedContainer { - totalPoints += privilegedPoints - } - - // add points based on volume requests - totalPoints += volumePointValue(constraint) - - if constraint.AllowHostNetwork { - totalPoints += hostNetworkPoints - } - if constraint.AllowHostPorts { - totalPoints += hostPortsPoints - } - - // add points based on capabilities - totalPoints += capabilitiesPointValue(constraint) - - // the map contains points for both RunAsUser and SELinuxContext - // strategies by taking advantage that they have identical strategy names - strategiesPoints := map[string]points{ - string(securityv1.RunAsUserStrategyRunAsAny): runAsAnyUserPoints, - string(securityv1.RunAsUserStrategyMustRunAsNonRoot): runAsNonRootPoints, - string(securityv1.RunAsUserStrategyMustRunAsRange): runAsRangePoints, - string(securityv1.RunAsUserStrategyMustRunAs): runAsUserPoints, - } - - strategyType := string(constraint.SELinuxContext.Type) - points, found := strategiesPoints[strategyType] - if found { - totalPoints += points - } else { - klog.Warningf("SELinuxContext type %q has no point value, this may cause issues in sorting SCCs by restriction", strategyType) - } - - strategyType = string(constraint.RunAsUser.Type) - points, found = strategiesPoints[strategyType] - if found { - totalPoints += points - } else { - klog.Warningf("RunAsUser type %q has no point value, this may cause issues in sorting SCCs by restriction", strategyType) - } - - return totalPoints -} - -// volumePointValue returns a score based on the volumes allowed by the SCC. -// Allowing a host volume will return a score of 100000. Allowance of anything other -// than Secret, ConfigMap, EmptyDir, DownwardAPI, Projected, and None will result in -// a score of 50000. If the SCC only allows these trivial types, it will have a -// score of 0. -func volumePointValue(scc *securityv1.SecurityContextConstraints) points { - hasHostVolume := false - hasNonTrivialVolume := false - for _, v := range scc.Volumes { - switch v { - case securityv1.FSTypeHostPath, securityv1.FSTypeAll: - hasHostVolume = true - // nothing more to do, this is the max point value - break - // it is easier to specifically list the trivial volumes and allow the - // default case to be non-trivial so we don't have to worry about adding - // volumes in the future unless they're trivial. - case securityv1.FSTypeSecret, securityv1.FSTypeConfigMap, securityv1.FSTypeEmptyDir, - securityv1.FSTypeDownwardAPI, securityv1.FSProjected, securityv1.FSTypeNone: - // do nothing - default: - hasNonTrivialVolume = true - } - } - - if hasHostVolume { - return hostVolumePoints - } - if hasNonTrivialVolume { - return nonTrivialVolumePoints - } - return noPoints -} - -// hasCap checks for needle in haystack. -func hasCap(needle string, haystack []corev1.Capability) bool { - for _, c := range haystack { - if needle == strings.ToUpper(string(c)) { - return true - } - } - return false -} - -// capabilitiesPointValue returns a score based on the capabilities allowed, -// added, or removed by the SCC. This allow us to prefer the more restrictive -// SCC. -func capabilitiesPointValue(scc *securityv1.SecurityContextConstraints) points { - capsPoints := capDefaultPoints - capsPoints += capAddOnePoints * points(len(scc.DefaultAddCapabilities)) - if hasCap(string(securityv1.AllowAllCapabilities), scc.AllowedCapabilities) { - capsPoints += capAllowAllPoints - } else if hasCap("ALL", scc.AllowedCapabilities) { - capsPoints += capAllowAllPoints - } else { - capsPoints += capAllowOnePoints * points(len(scc.AllowedCapabilities)) - } - if hasCap("ALL", scc.RequiredDropCapabilities) { - capsPoints += capDropAllPoints - } else { - capsPoints += capDropOnePoints * points(len(scc.RequiredDropCapabilities)) - } - if capsPoints > capMaxPoints { - return capMaxPoints - } else if capsPoints < capMinPoints { - return capMinPoints - } - return capsPoints -} diff --git a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/util/util.go b/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/util/util.go deleted file mode 100644 index 9e4a5cfdbc988..0000000000000 --- a/vendor/github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/util/util.go +++ /dev/null @@ -1,178 +0,0 @@ -package util - -import ( - "fmt" - - "k8s.io/apimachinery/pkg/util/sets" - api "k8s.io/kubernetes/pkg/apis/core" - - securityv1 "github.com/openshift/api/security/v1" -) - -func GetAllFSTypesExcept(exceptions ...string) sets.String { - fstypes := GetAllFSTypesAsSet() - for _, e := range exceptions { - fstypes.Delete(e) - } - return fstypes -} - -func GetAllFSTypesAsSet() sets.String { - fstypes := sets.NewString() - fstypes.Insert( - string(securityv1.FSTypeHostPath), - string(securityv1.FSTypeAzureFile), - string(securityv1.FSTypeFlocker), - string(securityv1.FSTypeFlexVolume), - string(securityv1.FSTypeEmptyDir), - string(securityv1.FSTypeGCEPersistentDisk), - string(securityv1.FSTypeAWSElasticBlockStore), - string(securityv1.FSTypeGitRepo), - string(securityv1.FSTypeSecret), - string(securityv1.FSTypeNFS), - string(securityv1.FSTypeISCSI), - string(securityv1.FSTypeGlusterfs), - string(securityv1.FSTypePersistentVolumeClaim), - string(securityv1.FSTypeRBD), - string(securityv1.FSTypeCinder), - string(securityv1.FSTypeCephFS), - string(securityv1.FSTypeDownwardAPI), - string(securityv1.FSTypeFC), - string(securityv1.FSTypeConfigMap), - string(securityv1.FSTypeVsphereVolume), - string(securityv1.FSTypeQuobyte), - string(securityv1.FSTypeAzureDisk), - string(securityv1.FSTypePhotonPersistentDisk), - string(securityv1.FSProjected), - string(securityv1.FSPortworxVolume), - string(securityv1.FSScaleIO), - string(securityv1.FSStorageOS), - string(securityv1.FSTypeCSI), - string(securityv1.FSTypeEphemeral), - ) - return fstypes -} - -// getVolumeFSType gets the FSType for a volume. -func GetVolumeFSType(v api.Volume) (securityv1.FSType, error) { - switch { - case v.HostPath != nil: - return securityv1.FSTypeHostPath, nil - case v.EmptyDir != nil: - return securityv1.FSTypeEmptyDir, nil - case v.GCEPersistentDisk != nil: - return securityv1.FSTypeGCEPersistentDisk, nil - case v.AWSElasticBlockStore != nil: - return securityv1.FSTypeAWSElasticBlockStore, nil - case v.GitRepo != nil: - return securityv1.FSTypeGitRepo, nil - case v.Secret != nil: - return securityv1.FSTypeSecret, nil - case v.NFS != nil: - return securityv1.FSTypeNFS, nil - case v.ISCSI != nil: - return securityv1.FSTypeISCSI, nil - case v.Glusterfs != nil: - return securityv1.FSTypeGlusterfs, nil - case v.PersistentVolumeClaim != nil: - return securityv1.FSTypePersistentVolumeClaim, nil - case v.RBD != nil: - return securityv1.FSTypeRBD, nil - case v.FlexVolume != nil: - return securityv1.FSTypeFlexVolume, nil - case v.Cinder != nil: - return securityv1.FSTypeCinder, nil - case v.CephFS != nil: - return securityv1.FSTypeCephFS, nil - case v.Flocker != nil: - return securityv1.FSTypeFlocker, nil - case v.DownwardAPI != nil: - return securityv1.FSTypeDownwardAPI, nil - case v.FC != nil: - return securityv1.FSTypeFC, nil - case v.AzureFile != nil: - return securityv1.FSTypeAzureFile, nil - case v.ConfigMap != nil: - return securityv1.FSTypeConfigMap, nil - case v.VsphereVolume != nil: - return securityv1.FSTypeVsphereVolume, nil - case v.Quobyte != nil: - return securityv1.FSTypeQuobyte, nil - case v.AzureDisk != nil: - return securityv1.FSTypeAzureDisk, nil - case v.PhotonPersistentDisk != nil: - return securityv1.FSTypePhotonPersistentDisk, nil - case v.Projected != nil: - return securityv1.FSProjected, nil - case v.PortworxVolume != nil: - return securityv1.FSPortworxVolume, nil - case v.ScaleIO != nil: - return securityv1.FSScaleIO, nil - case v.StorageOS != nil: - return securityv1.FSStorageOS, nil - case v.CSI != nil: - return securityv1.FSTypeCSI, nil - case v.Ephemeral != nil: - return securityv1.FSTypeEphemeral, nil - } - - return "", fmt.Errorf("unknown volume type for volume: %#v", v) -} - -// fsTypeToStringSet converts an FSType slice to a string set. -func FSTypeToStringSetInternal(fsTypes []securityv1.FSType) sets.String { - set := sets.NewString() - for _, v := range fsTypes { - set.Insert(string(v)) - } - return set -} - -// SCCAllowsAllVolumes checks for FSTypeAll in the scc's allowed volumes. -func SCCAllowsAllVolumes(scc *securityv1.SecurityContextConstraints) bool { - return SCCAllowsFSTypeInternal(scc, securityv1.FSTypeAll) -} - -// SCCAllowsFSTypeInternal is a utility for checking if an SCC allows a particular FSType. -// If all volumes are allowed then this will return true for any FSType passed. -func SCCAllowsFSTypeInternal(scc *securityv1.SecurityContextConstraints, fsType securityv1.FSType) bool { - if scc == nil { - return false - } - - for _, v := range scc.Volumes { - if v == fsType || v == securityv1.FSTypeAll { - return true - } - } - return false -} - -// SCCAllowsFSType is a utility for checking if an SCC allows a particular FSType. -// If all volumes are allowed then this will return true for any FSType passed. -func SCCAllowsFSType(scc *securityv1.SecurityContextConstraints, fsType securityv1.FSType) bool { - if scc == nil { - return false - } - - for _, v := range scc.Volumes { - if v == fsType || v == securityv1.FSTypeAll { - return true - } - } - return false -} - -// EqualStringSlices compares string slices for equality. Slices are equal when -// their sizes and elements on similar positions are equal. -func EqualStringSlices(a, b []string) bool { - if len(a) != len(b) { - return false - } - for i := 0; i < len(a); i++ { - if a[i] != b[i] { - return false - } - } - return true -} diff --git a/vendor/github.com/openshift/client-go/LICENSE b/vendor/github.com/openshift/client-go/LICENSE deleted file mode 100644 index c4ea8b6f9d88b..0000000000000 --- a/vendor/github.com/openshift/client-go/LICENSE +++ /dev/null @@ -1,191 +0,0 @@ - - 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 - - Copyright 2014 Red Hat, Inc. - - 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/vendor/github.com/openshift/client-go/apps/clientset/versioned/clientset.go b/vendor/github.com/openshift/client-go/apps/clientset/versioned/clientset.go deleted file mode 100644 index 0c3af7b68e63f..0000000000000 --- a/vendor/github.com/openshift/client-go/apps/clientset/versioned/clientset.go +++ /dev/null @@ -1,81 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package versioned - -import ( - "fmt" - - appsv1 "github.com/openshift/client-go/apps/clientset/versioned/typed/apps/v1" - 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 - AppsV1() appsv1.AppsV1Interface -} - -// Clientset contains the clients for groups. Each group has exactly one -// version included in a Clientset. -type Clientset struct { - *discovery.DiscoveryClient - appsV1 *appsv1.AppsV1Client -} - -// AppsV1 retrieves the AppsV1Client -func (c *Clientset) AppsV1() appsv1.AppsV1Interface { - return c.appsV1 -} - -// 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.appsV1, err = appsv1.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.appsV1 = appsv1.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.appsV1 = appsv1.New(c) - - cs.DiscoveryClient = discovery.NewDiscoveryClient(c) - return &cs -} diff --git a/vendor/github.com/openshift/client-go/apps/clientset/versioned/doc.go b/vendor/github.com/openshift/client-go/apps/clientset/versioned/doc.go deleted file mode 100644 index 0e0c2a8900e2c..0000000000000 --- a/vendor/github.com/openshift/client-go/apps/clientset/versioned/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated clientset. -package versioned diff --git a/vendor/github.com/openshift/client-go/apps/clientset/versioned/scheme/doc.go b/vendor/github.com/openshift/client-go/apps/clientset/versioned/scheme/doc.go deleted file mode 100644 index 14db57a58f8d2..0000000000000 --- a/vendor/github.com/openshift/client-go/apps/clientset/versioned/scheme/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package contains the scheme of the automatically generated clientset. -package scheme diff --git a/vendor/github.com/openshift/client-go/apps/clientset/versioned/scheme/register.go b/vendor/github.com/openshift/client-go/apps/clientset/versioned/scheme/register.go deleted file mode 100644 index 2bd1eb6a4382b..0000000000000 --- a/vendor/github.com/openshift/client-go/apps/clientset/versioned/scheme/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package scheme - -import ( - appsv1 "github.com/openshift/api/apps/v1" - 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{ - appsv1.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/vendor/github.com/openshift/client-go/apps/clientset/versioned/typed/apps/v1/apps_client.go b/vendor/github.com/openshift/client-go/apps/clientset/versioned/typed/apps/v1/apps_client.go deleted file mode 100644 index 6053c41d2e5d5..0000000000000 --- a/vendor/github.com/openshift/client-go/apps/clientset/versioned/typed/apps/v1/apps_client.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/apps/v1" - "github.com/openshift/client-go/apps/clientset/versioned/scheme" - rest "k8s.io/client-go/rest" -) - -type AppsV1Interface interface { - RESTClient() rest.Interface - DeploymentConfigsGetter -} - -// AppsV1Client is used to interact with features provided by the apps.openshift.io group. -type AppsV1Client struct { - restClient rest.Interface -} - -func (c *AppsV1Client) DeploymentConfigs(namespace string) DeploymentConfigInterface { - return newDeploymentConfigs(c, namespace) -} - -// NewForConfig creates a new AppsV1Client for the given config. -func NewForConfig(c *rest.Config) (*AppsV1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientFor(&config) - if err != nil { - return nil, err - } - return &AppsV1Client{client}, nil -} - -// NewForConfigOrDie creates a new AppsV1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *AppsV1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new AppsV1Client for the given RESTClient. -func New(c rest.Interface) *AppsV1Client { - return &AppsV1Client{c} -} - -func setConfigDefaults(config *rest.Config) error { - gv := v1.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 *AppsV1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/vendor/github.com/openshift/client-go/apps/clientset/versioned/typed/apps/v1/deploymentconfig.go b/vendor/github.com/openshift/client-go/apps/clientset/versioned/typed/apps/v1/deploymentconfig.go deleted file mode 100644 index cad2bab6c1942..0000000000000 --- a/vendor/github.com/openshift/client-go/apps/clientset/versioned/typed/apps/v1/deploymentconfig.go +++ /dev/null @@ -1,244 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/apps/v1" - scheme "github.com/openshift/client-go/apps/clientset/versioned/scheme" - v1beta1 "k8s.io/api/extensions/v1beta1" - metav1 "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" -) - -// DeploymentConfigsGetter has a method to return a DeploymentConfigInterface. -// A group's client should implement this interface. -type DeploymentConfigsGetter interface { - DeploymentConfigs(namespace string) DeploymentConfigInterface -} - -// DeploymentConfigInterface has methods to work with DeploymentConfig resources. -type DeploymentConfigInterface interface { - Create(ctx context.Context, deploymentConfig *v1.DeploymentConfig, opts metav1.CreateOptions) (*v1.DeploymentConfig, error) - Update(ctx context.Context, deploymentConfig *v1.DeploymentConfig, opts metav1.UpdateOptions) (*v1.DeploymentConfig, error) - UpdateStatus(ctx context.Context, deploymentConfig *v1.DeploymentConfig, opts metav1.UpdateOptions) (*v1.DeploymentConfig, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.DeploymentConfig, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.DeploymentConfigList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.DeploymentConfig, err error) - Instantiate(ctx context.Context, deploymentConfigName string, deploymentRequest *v1.DeploymentRequest, opts metav1.CreateOptions) (*v1.DeploymentConfig, error) - Rollback(ctx context.Context, deploymentConfigName string, deploymentConfigRollback *v1.DeploymentConfigRollback, opts metav1.CreateOptions) (*v1.DeploymentConfig, error) - GetScale(ctx context.Context, deploymentConfigName string, options metav1.GetOptions) (*v1beta1.Scale, error) - UpdateScale(ctx context.Context, deploymentConfigName string, scale *v1beta1.Scale, opts metav1.UpdateOptions) (*v1beta1.Scale, error) - - DeploymentConfigExpansion -} - -// deploymentConfigs implements DeploymentConfigInterface -type deploymentConfigs struct { - client rest.Interface - ns string -} - -// newDeploymentConfigs returns a DeploymentConfigs -func newDeploymentConfigs(c *AppsV1Client, namespace string) *deploymentConfigs { - return &deploymentConfigs{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the deploymentConfig, and returns the corresponding deploymentConfig object, and an error if there is any. -func (c *deploymentConfigs) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.DeploymentConfig, err error) { - result = &v1.DeploymentConfig{} - err = c.client.Get(). - Namespace(c.ns). - Resource("deploymentconfigs"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of DeploymentConfigs that match those selectors. -func (c *deploymentConfigs) List(ctx context.Context, opts metav1.ListOptions) (result *v1.DeploymentConfigList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.DeploymentConfigList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("deploymentconfigs"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested deploymentConfigs. -func (c *deploymentConfigs) Watch(ctx context.Context, opts metav1.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("deploymentconfigs"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a deploymentConfig and creates it. Returns the server's representation of the deploymentConfig, and an error, if there is any. -func (c *deploymentConfigs) Create(ctx context.Context, deploymentConfig *v1.DeploymentConfig, opts metav1.CreateOptions) (result *v1.DeploymentConfig, err error) { - result = &v1.DeploymentConfig{} - err = c.client.Post(). - Namespace(c.ns). - Resource("deploymentconfigs"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(deploymentConfig). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a deploymentConfig and updates it. Returns the server's representation of the deploymentConfig, and an error, if there is any. -func (c *deploymentConfigs) Update(ctx context.Context, deploymentConfig *v1.DeploymentConfig, opts metav1.UpdateOptions) (result *v1.DeploymentConfig, err error) { - result = &v1.DeploymentConfig{} - err = c.client.Put(). - Namespace(c.ns). - Resource("deploymentconfigs"). - Name(deploymentConfig.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(deploymentConfig). - Do(ctx). - 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 *deploymentConfigs) UpdateStatus(ctx context.Context, deploymentConfig *v1.DeploymentConfig, opts metav1.UpdateOptions) (result *v1.DeploymentConfig, err error) { - result = &v1.DeploymentConfig{} - err = c.client.Put(). - Namespace(c.ns). - Resource("deploymentconfigs"). - Name(deploymentConfig.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(deploymentConfig). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the deploymentConfig and deletes it. Returns an error if one occurs. -func (c *deploymentConfigs) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("deploymentconfigs"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *deploymentConfigs) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Namespace(c.ns). - Resource("deploymentconfigs"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched deploymentConfig. -func (c *deploymentConfigs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.DeploymentConfig, err error) { - result = &v1.DeploymentConfig{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("deploymentconfigs"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} - -// Instantiate takes the representation of a deploymentRequest and creates it. Returns the server's representation of the deploymentConfig, and an error, if there is any. -func (c *deploymentConfigs) Instantiate(ctx context.Context, deploymentConfigName string, deploymentRequest *v1.DeploymentRequest, opts metav1.CreateOptions) (result *v1.DeploymentConfig, err error) { - result = &v1.DeploymentConfig{} - err = c.client.Post(). - Namespace(c.ns). - Resource("deploymentconfigs"). - Name(deploymentConfigName). - SubResource("instantiate"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(deploymentRequest). - Do(ctx). - Into(result) - return -} - -// Rollback takes the representation of a deploymentConfigRollback and creates it. Returns the server's representation of the deploymentConfig, and an error, if there is any. -func (c *deploymentConfigs) Rollback(ctx context.Context, deploymentConfigName string, deploymentConfigRollback *v1.DeploymentConfigRollback, opts metav1.CreateOptions) (result *v1.DeploymentConfig, err error) { - result = &v1.DeploymentConfig{} - err = c.client.Post(). - Namespace(c.ns). - Resource("deploymentconfigs"). - Name(deploymentConfigName). - SubResource("rollback"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(deploymentConfigRollback). - Do(ctx). - Into(result) - return -} - -// GetScale takes name of the deploymentConfig, and returns the corresponding v1beta1.Scale object, and an error if there is any. -func (c *deploymentConfigs) GetScale(ctx context.Context, deploymentConfigName string, options metav1.GetOptions) (result *v1beta1.Scale, err error) { - result = &v1beta1.Scale{} - err = c.client.Get(). - Namespace(c.ns). - Resource("deploymentconfigs"). - Name(deploymentConfigName). - SubResource("scale"). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. -func (c *deploymentConfigs) UpdateScale(ctx context.Context, deploymentConfigName string, scale *v1beta1.Scale, opts metav1.UpdateOptions) (result *v1beta1.Scale, err error) { - result = &v1beta1.Scale{} - err = c.client.Put(). - Namespace(c.ns). - Resource("deploymentconfigs"). - Name(deploymentConfigName). - SubResource("scale"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(scale). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/apps/clientset/versioned/typed/apps/v1/doc.go b/vendor/github.com/openshift/client-go/apps/clientset/versioned/typed/apps/v1/doc.go deleted file mode 100644 index 225e6b2be34f2..0000000000000 --- a/vendor/github.com/openshift/client-go/apps/clientset/versioned/typed/apps/v1/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated typed clients. -package v1 diff --git a/vendor/github.com/openshift/client-go/apps/clientset/versioned/typed/apps/v1/generated_expansion.go b/vendor/github.com/openshift/client-go/apps/clientset/versioned/typed/apps/v1/generated_expansion.go deleted file mode 100644 index 0545f8c09a154..0000000000000 --- a/vendor/github.com/openshift/client-go/apps/clientset/versioned/typed/apps/v1/generated_expansion.go +++ /dev/null @@ -1,5 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -type DeploymentConfigExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/apps/informers/externalversions/apps/interface.go b/vendor/github.com/openshift/client-go/apps/informers/externalversions/apps/interface.go deleted file mode 100644 index a10023dd51756..0000000000000 --- a/vendor/github.com/openshift/client-go/apps/informers/externalversions/apps/interface.go +++ /dev/null @@ -1,30 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package apps - -import ( - v1 "github.com/openshift/client-go/apps/informers/externalversions/apps/v1" - internalinterfaces "github.com/openshift/client-go/apps/informers/externalversions/internalinterfaces" -) - -// Interface provides access to each of this group's versions. -type Interface interface { - // V1 provides access to shared informers for resources in V1. - V1() v1.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} -} - -// V1 returns a new v1.Interface. -func (g *group) V1() v1.Interface { - return v1.New(g.factory, g.namespace, g.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/apps/informers/externalversions/apps/v1/deploymentconfig.go b/vendor/github.com/openshift/client-go/apps/informers/externalversions/apps/v1/deploymentconfig.go deleted file mode 100644 index 4be7179ad34c6..0000000000000 --- a/vendor/github.com/openshift/client-go/apps/informers/externalversions/apps/v1/deploymentconfig.go +++ /dev/null @@ -1,74 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - appsv1 "github.com/openshift/api/apps/v1" - versioned "github.com/openshift/client-go/apps/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/apps/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/apps/listers/apps/v1" - metav1 "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" -) - -// DeploymentConfigInformer provides access to a shared informer and lister for -// DeploymentConfigs. -type DeploymentConfigInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.DeploymentConfigLister -} - -type deploymentConfigInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewDeploymentConfigInformer constructs a new informer for DeploymentConfig 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 NewDeploymentConfigInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredDeploymentConfigInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredDeploymentConfigInformer constructs a new informer for DeploymentConfig 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 NewFilteredDeploymentConfigInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.AppsV1().DeploymentConfigs(namespace).List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.AppsV1().DeploymentConfigs(namespace).Watch(context.TODO(), options) - }, - }, - &appsv1.DeploymentConfig{}, - resyncPeriod, - indexers, - ) -} - -func (f *deploymentConfigInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredDeploymentConfigInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *deploymentConfigInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&appsv1.DeploymentConfig{}, f.defaultInformer) -} - -func (f *deploymentConfigInformer) Lister() v1.DeploymentConfigLister { - return v1.NewDeploymentConfigLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/apps/informers/externalversions/apps/v1/interface.go b/vendor/github.com/openshift/client-go/apps/informers/externalversions/apps/v1/interface.go deleted file mode 100644 index e95a869d2f6f0..0000000000000 --- a/vendor/github.com/openshift/client-go/apps/informers/externalversions/apps/v1/interface.go +++ /dev/null @@ -1,29 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - internalinterfaces "github.com/openshift/client-go/apps/informers/externalversions/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // DeploymentConfigs returns a DeploymentConfigInformer. - DeploymentConfigs() DeploymentConfigInformer -} - -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} -} - -// DeploymentConfigs returns a DeploymentConfigInformer. -func (v *version) DeploymentConfigs() DeploymentConfigInformer { - return &deploymentConfigInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} diff --git a/vendor/github.com/openshift/client-go/apps/informers/externalversions/factory.go b/vendor/github.com/openshift/client-go/apps/informers/externalversions/factory.go deleted file mode 100644 index e29a202e87a79..0000000000000 --- a/vendor/github.com/openshift/client-go/apps/informers/externalversions/factory.go +++ /dev/null @@ -1,164 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - reflect "reflect" - sync "sync" - time "time" - - versioned "github.com/openshift/client-go/apps/clientset/versioned" - apps "github.com/openshift/client-go/apps/informers/externalversions/apps" - internalinterfaces "github.com/openshift/client-go/apps/informers/externalversions/internalinterfaces" - 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 versioned.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 versioned.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 versioned.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 versioned.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 - - Apps() apps.Interface -} - -func (f *sharedInformerFactory) Apps() apps.Interface { - return apps.New(f, f.namespace, f.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/apps/informers/externalversions/generic.go b/vendor/github.com/openshift/client-go/apps/informers/externalversions/generic.go deleted file mode 100644 index 7ea4a7c77a29a..0000000000000 --- a/vendor/github.com/openshift/client-go/apps/informers/externalversions/generic.go +++ /dev/null @@ -1,46 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - "fmt" - - v1 "github.com/openshift/api/apps/v1" - 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=apps.openshift.io, Version=v1 - case v1.SchemeGroupVersion.WithResource("deploymentconfigs"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().DeploymentConfigs().Informer()}, nil - - } - - return nil, fmt.Errorf("no informer found for %v", resource) -} diff --git a/vendor/github.com/openshift/client-go/apps/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/github.com/openshift/client-go/apps/informers/externalversions/internalinterfaces/factory_interfaces.go deleted file mode 100644 index 308cc551b44fb..0000000000000 --- a/vendor/github.com/openshift/client-go/apps/informers/externalversions/internalinterfaces/factory_interfaces.go +++ /dev/null @@ -1,24 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package internalinterfaces - -import ( - time "time" - - versioned "github.com/openshift/client-go/apps/clientset/versioned" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - cache "k8s.io/client-go/tools/cache" -) - -// NewInformerFunc takes versioned.Interface and time.Duration to return a SharedIndexInformer. -type NewInformerFunc func(versioned.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/vendor/github.com/openshift/client-go/apps/listers/apps/v1/deploymentconfig.go b/vendor/github.com/openshift/client-go/apps/listers/apps/v1/deploymentconfig.go deleted file mode 100644 index d31ba9e3b16a5..0000000000000 --- a/vendor/github.com/openshift/client-go/apps/listers/apps/v1/deploymentconfig.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/apps/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// DeploymentConfigLister helps list DeploymentConfigs. -// All objects returned here must be treated as read-only. -type DeploymentConfigLister interface { - // List lists all DeploymentConfigs in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.DeploymentConfig, err error) - // DeploymentConfigs returns an object that can list and get DeploymentConfigs. - DeploymentConfigs(namespace string) DeploymentConfigNamespaceLister - DeploymentConfigListerExpansion -} - -// deploymentConfigLister implements the DeploymentConfigLister interface. -type deploymentConfigLister struct { - indexer cache.Indexer -} - -// NewDeploymentConfigLister returns a new DeploymentConfigLister. -func NewDeploymentConfigLister(indexer cache.Indexer) DeploymentConfigLister { - return &deploymentConfigLister{indexer: indexer} -} - -// List lists all DeploymentConfigs in the indexer. -func (s *deploymentConfigLister) List(selector labels.Selector) (ret []*v1.DeploymentConfig, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.DeploymentConfig)) - }) - return ret, err -} - -// DeploymentConfigs returns an object that can list and get DeploymentConfigs. -func (s *deploymentConfigLister) DeploymentConfigs(namespace string) DeploymentConfigNamespaceLister { - return deploymentConfigNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// DeploymentConfigNamespaceLister helps list and get DeploymentConfigs. -// All objects returned here must be treated as read-only. -type DeploymentConfigNamespaceLister interface { - // List lists all DeploymentConfigs in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.DeploymentConfig, err error) - // Get retrieves the DeploymentConfig from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.DeploymentConfig, error) - DeploymentConfigNamespaceListerExpansion -} - -// deploymentConfigNamespaceLister implements the DeploymentConfigNamespaceLister -// interface. -type deploymentConfigNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all DeploymentConfigs in the indexer for a given namespace. -func (s deploymentConfigNamespaceLister) List(selector labels.Selector) (ret []*v1.DeploymentConfig, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1.DeploymentConfig)) - }) - return ret, err -} - -// Get retrieves the DeploymentConfig from the indexer for a given namespace and name. -func (s deploymentConfigNamespaceLister) Get(name string) (*v1.DeploymentConfig, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("deploymentconfig"), name) - } - return obj.(*v1.DeploymentConfig), nil -} diff --git a/vendor/github.com/openshift/client-go/apps/listers/apps/v1/expansion_generated.go b/vendor/github.com/openshift/client-go/apps/listers/apps/v1/expansion_generated.go deleted file mode 100644 index 8a7cce0eb3316..0000000000000 --- a/vendor/github.com/openshift/client-go/apps/listers/apps/v1/expansion_generated.go +++ /dev/null @@ -1,11 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -// DeploymentConfigListerExpansion allows custom methods to be added to -// DeploymentConfigLister. -type DeploymentConfigListerExpansion interface{} - -// DeploymentConfigNamespaceListerExpansion allows custom methods to be added to -// DeploymentConfigNamespaceLister. -type DeploymentConfigNamespaceListerExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/clientset.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/clientset.go deleted file mode 100644 index 76fd2f8386629..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/clientset.go +++ /dev/null @@ -1,81 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package versioned - -import ( - "fmt" - - authorizationv1 "github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1" - 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 - AuthorizationV1() authorizationv1.AuthorizationV1Interface -} - -// Clientset contains the clients for groups. Each group has exactly one -// version included in a Clientset. -type Clientset struct { - *discovery.DiscoveryClient - authorizationV1 *authorizationv1.AuthorizationV1Client -} - -// AuthorizationV1 retrieves the AuthorizationV1Client -func (c *Clientset) AuthorizationV1() authorizationv1.AuthorizationV1Interface { - return c.authorizationV1 -} - -// 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.authorizationV1, err = authorizationv1.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.authorizationV1 = authorizationv1.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.authorizationV1 = authorizationv1.New(c) - - cs.DiscoveryClient = discovery.NewDiscoveryClient(c) - return &cs -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/doc.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/doc.go deleted file mode 100644 index 0e0c2a8900e2c..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated clientset. -package versioned diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/fake/clientset_generated.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/fake/clientset_generated.go deleted file mode 100644 index 3fbb2887e436c..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/fake/clientset_generated.go +++ /dev/null @@ -1,66 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - clientset "github.com/openshift/client-go/authorization/clientset/versioned" - authorizationv1 "github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1" - fakeauthorizationv1 "github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/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{} - -// AuthorizationV1 retrieves the AuthorizationV1Client -func (c *Clientset) AuthorizationV1() authorizationv1.AuthorizationV1Interface { - return &fakeauthorizationv1.FakeAuthorizationV1{Fake: &c.Fake} -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/fake/doc.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/fake/doc.go deleted file mode 100644 index 3630ed1cd17db..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/fake/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated fake clientset. -package fake diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/fake/register.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/fake/register.go deleted file mode 100644 index 9acd9bd4cf05d..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/fake/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - authorizationv1 "github.com/openshift/api/authorization/v1" - 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 localSchemeBuilder = runtime.SchemeBuilder{ - authorizationv1.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/vendor/github.com/openshift/client-go/authorization/clientset/versioned/scheme/doc.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/scheme/doc.go deleted file mode 100644 index 14db57a58f8d2..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/scheme/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package contains the scheme of the automatically generated clientset. -package scheme diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/scheme/register.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/scheme/register.go deleted file mode 100644 index e175014102c66..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/scheme/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package scheme - -import ( - authorizationv1 "github.com/openshift/api/authorization/v1" - 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{ - authorizationv1.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/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/authorization_client.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/authorization_client.go deleted file mode 100644 index 283d76ab0912d..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/authorization_client.go +++ /dev/null @@ -1,123 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/authorization/v1" - "github.com/openshift/client-go/authorization/clientset/versioned/scheme" - rest "k8s.io/client-go/rest" -) - -type AuthorizationV1Interface interface { - RESTClient() rest.Interface - ClusterRolesGetter - ClusterRoleBindingsGetter - LocalResourceAccessReviewsGetter - LocalSubjectAccessReviewsGetter - ResourceAccessReviewsGetter - RolesGetter - RoleBindingsGetter - RoleBindingRestrictionsGetter - SelfSubjectRulesReviewsGetter - SubjectAccessReviewsGetter - SubjectRulesReviewsGetter -} - -// AuthorizationV1Client is used to interact with features provided by the authorization.openshift.io group. -type AuthorizationV1Client struct { - restClient rest.Interface -} - -func (c *AuthorizationV1Client) ClusterRoles() ClusterRoleInterface { - return newClusterRoles(c) -} - -func (c *AuthorizationV1Client) ClusterRoleBindings() ClusterRoleBindingInterface { - return newClusterRoleBindings(c) -} - -func (c *AuthorizationV1Client) LocalResourceAccessReviews(namespace string) LocalResourceAccessReviewInterface { - return newLocalResourceAccessReviews(c, namespace) -} - -func (c *AuthorizationV1Client) LocalSubjectAccessReviews(namespace string) LocalSubjectAccessReviewInterface { - return newLocalSubjectAccessReviews(c, namespace) -} - -func (c *AuthorizationV1Client) ResourceAccessReviews() ResourceAccessReviewInterface { - return newResourceAccessReviews(c) -} - -func (c *AuthorizationV1Client) Roles(namespace string) RoleInterface { - return newRoles(c, namespace) -} - -func (c *AuthorizationV1Client) RoleBindings(namespace string) RoleBindingInterface { - return newRoleBindings(c, namespace) -} - -func (c *AuthorizationV1Client) RoleBindingRestrictions(namespace string) RoleBindingRestrictionInterface { - return newRoleBindingRestrictions(c, namespace) -} - -func (c *AuthorizationV1Client) SelfSubjectRulesReviews(namespace string) SelfSubjectRulesReviewInterface { - return newSelfSubjectRulesReviews(c, namespace) -} - -func (c *AuthorizationV1Client) SubjectAccessReviews() SubjectAccessReviewInterface { - return newSubjectAccessReviews(c) -} - -func (c *AuthorizationV1Client) SubjectRulesReviews(namespace string) SubjectRulesReviewInterface { - return newSubjectRulesReviews(c, namespace) -} - -// NewForConfig creates a new AuthorizationV1Client for the given config. -func NewForConfig(c *rest.Config) (*AuthorizationV1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientFor(&config) - if err != nil { - return nil, err - } - return &AuthorizationV1Client{client}, nil -} - -// NewForConfigOrDie creates a new AuthorizationV1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *AuthorizationV1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new AuthorizationV1Client for the given RESTClient. -func New(c rest.Interface) *AuthorizationV1Client { - return &AuthorizationV1Client{c} -} - -func setConfigDefaults(config *rest.Config) error { - gv := v1.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 *AuthorizationV1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/clusterrole.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/clusterrole.go deleted file mode 100644 index 7df56a19ef240..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/clusterrole.go +++ /dev/null @@ -1,152 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/authorization/v1" - scheme "github.com/openshift/client-go/authorization/clientset/versioned/scheme" - metav1 "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" -) - -// ClusterRolesGetter has a method to return a ClusterRoleInterface. -// A group's client should implement this interface. -type ClusterRolesGetter interface { - ClusterRoles() ClusterRoleInterface -} - -// ClusterRoleInterface has methods to work with ClusterRole resources. -type ClusterRoleInterface interface { - Create(ctx context.Context, clusterRole *v1.ClusterRole, opts metav1.CreateOptions) (*v1.ClusterRole, error) - Update(ctx context.Context, clusterRole *v1.ClusterRole, opts metav1.UpdateOptions) (*v1.ClusterRole, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ClusterRole, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.ClusterRoleList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterRole, err error) - ClusterRoleExpansion -} - -// clusterRoles implements ClusterRoleInterface -type clusterRoles struct { - client rest.Interface -} - -// newClusterRoles returns a ClusterRoles -func newClusterRoles(c *AuthorizationV1Client) *clusterRoles { - return &clusterRoles{ - client: c.RESTClient(), - } -} - -// Get takes name of the clusterRole, and returns the corresponding clusterRole object, and an error if there is any. -func (c *clusterRoles) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ClusterRole, err error) { - result = &v1.ClusterRole{} - err = c.client.Get(). - Resource("clusterroles"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of ClusterRoles that match those selectors. -func (c *clusterRoles) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ClusterRoleList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.ClusterRoleList{} - err = c.client.Get(). - Resource("clusterroles"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested clusterRoles. -func (c *clusterRoles) Watch(ctx context.Context, opts metav1.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(). - Resource("clusterroles"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a clusterRole and creates it. Returns the server's representation of the clusterRole, and an error, if there is any. -func (c *clusterRoles) Create(ctx context.Context, clusterRole *v1.ClusterRole, opts metav1.CreateOptions) (result *v1.ClusterRole, err error) { - result = &v1.ClusterRole{} - err = c.client.Post(). - Resource("clusterroles"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterRole). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a clusterRole and updates it. Returns the server's representation of the clusterRole, and an error, if there is any. -func (c *clusterRoles) Update(ctx context.Context, clusterRole *v1.ClusterRole, opts metav1.UpdateOptions) (result *v1.ClusterRole, err error) { - result = &v1.ClusterRole{} - err = c.client.Put(). - Resource("clusterroles"). - Name(clusterRole.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterRole). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the clusterRole and deletes it. Returns an error if one occurs. -func (c *clusterRoles) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("clusterroles"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *clusterRoles) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("clusterroles"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched clusterRole. -func (c *clusterRoles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterRole, err error) { - result = &v1.ClusterRole{} - err = c.client.Patch(pt). - Resource("clusterroles"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/clusterrolebinding.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/clusterrolebinding.go deleted file mode 100644 index bf91922374cdb..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/clusterrolebinding.go +++ /dev/null @@ -1,152 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/authorization/v1" - scheme "github.com/openshift/client-go/authorization/clientset/versioned/scheme" - metav1 "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" -) - -// ClusterRoleBindingsGetter has a method to return a ClusterRoleBindingInterface. -// A group's client should implement this interface. -type ClusterRoleBindingsGetter interface { - ClusterRoleBindings() ClusterRoleBindingInterface -} - -// ClusterRoleBindingInterface has methods to work with ClusterRoleBinding resources. -type ClusterRoleBindingInterface interface { - Create(ctx context.Context, clusterRoleBinding *v1.ClusterRoleBinding, opts metav1.CreateOptions) (*v1.ClusterRoleBinding, error) - Update(ctx context.Context, clusterRoleBinding *v1.ClusterRoleBinding, opts metav1.UpdateOptions) (*v1.ClusterRoleBinding, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ClusterRoleBinding, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.ClusterRoleBindingList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterRoleBinding, err error) - ClusterRoleBindingExpansion -} - -// clusterRoleBindings implements ClusterRoleBindingInterface -type clusterRoleBindings struct { - client rest.Interface -} - -// newClusterRoleBindings returns a ClusterRoleBindings -func newClusterRoleBindings(c *AuthorizationV1Client) *clusterRoleBindings { - return &clusterRoleBindings{ - client: c.RESTClient(), - } -} - -// Get takes name of the clusterRoleBinding, and returns the corresponding clusterRoleBinding object, and an error if there is any. -func (c *clusterRoleBindings) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ClusterRoleBinding, err error) { - result = &v1.ClusterRoleBinding{} - err = c.client.Get(). - Resource("clusterrolebindings"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of ClusterRoleBindings that match those selectors. -func (c *clusterRoleBindings) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ClusterRoleBindingList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.ClusterRoleBindingList{} - err = c.client.Get(). - Resource("clusterrolebindings"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested clusterRoleBindings. -func (c *clusterRoleBindings) Watch(ctx context.Context, opts metav1.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(). - Resource("clusterrolebindings"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a clusterRoleBinding and creates it. Returns the server's representation of the clusterRoleBinding, and an error, if there is any. -func (c *clusterRoleBindings) Create(ctx context.Context, clusterRoleBinding *v1.ClusterRoleBinding, opts metav1.CreateOptions) (result *v1.ClusterRoleBinding, err error) { - result = &v1.ClusterRoleBinding{} - err = c.client.Post(). - Resource("clusterrolebindings"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterRoleBinding). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a clusterRoleBinding and updates it. Returns the server's representation of the clusterRoleBinding, and an error, if there is any. -func (c *clusterRoleBindings) Update(ctx context.Context, clusterRoleBinding *v1.ClusterRoleBinding, opts metav1.UpdateOptions) (result *v1.ClusterRoleBinding, err error) { - result = &v1.ClusterRoleBinding{} - err = c.client.Put(). - Resource("clusterrolebindings"). - Name(clusterRoleBinding.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterRoleBinding). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the clusterRoleBinding and deletes it. Returns an error if one occurs. -func (c *clusterRoleBindings) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("clusterrolebindings"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *clusterRoleBindings) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("clusterrolebindings"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched clusterRoleBinding. -func (c *clusterRoleBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterRoleBinding, err error) { - result = &v1.ClusterRoleBinding{} - err = c.client.Patch(pt). - Resource("clusterrolebindings"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/doc.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/doc.go deleted file mode 100644 index 225e6b2be34f2..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated typed clients. -package v1 diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/doc.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/doc.go deleted file mode 100644 index 2b5ba4c8e4422..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// Package fake has the automatically generated clients. -package fake diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_authorization_client.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_authorization_client.go deleted file mode 100644 index 28402c4534041..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_authorization_client.go +++ /dev/null @@ -1,64 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - v1 "github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1" - rest "k8s.io/client-go/rest" - testing "k8s.io/client-go/testing" -) - -type FakeAuthorizationV1 struct { - *testing.Fake -} - -func (c *FakeAuthorizationV1) ClusterRoles() v1.ClusterRoleInterface { - return &FakeClusterRoles{c} -} - -func (c *FakeAuthorizationV1) ClusterRoleBindings() v1.ClusterRoleBindingInterface { - return &FakeClusterRoleBindings{c} -} - -func (c *FakeAuthorizationV1) LocalResourceAccessReviews(namespace string) v1.LocalResourceAccessReviewInterface { - return &FakeLocalResourceAccessReviews{c, namespace} -} - -func (c *FakeAuthorizationV1) LocalSubjectAccessReviews(namespace string) v1.LocalSubjectAccessReviewInterface { - return &FakeLocalSubjectAccessReviews{c, namespace} -} - -func (c *FakeAuthorizationV1) ResourceAccessReviews() v1.ResourceAccessReviewInterface { - return &FakeResourceAccessReviews{c} -} - -func (c *FakeAuthorizationV1) Roles(namespace string) v1.RoleInterface { - return &FakeRoles{c, namespace} -} - -func (c *FakeAuthorizationV1) RoleBindings(namespace string) v1.RoleBindingInterface { - return &FakeRoleBindings{c, namespace} -} - -func (c *FakeAuthorizationV1) RoleBindingRestrictions(namespace string) v1.RoleBindingRestrictionInterface { - return &FakeRoleBindingRestrictions{c, namespace} -} - -func (c *FakeAuthorizationV1) SelfSubjectRulesReviews(namespace string) v1.SelfSubjectRulesReviewInterface { - return &FakeSelfSubjectRulesReviews{c, namespace} -} - -func (c *FakeAuthorizationV1) SubjectAccessReviews() v1.SubjectAccessReviewInterface { - return &FakeSubjectAccessReviews{c} -} - -func (c *FakeAuthorizationV1) SubjectRulesReviews(namespace string) v1.SubjectRulesReviewInterface { - return &FakeSubjectRulesReviews{c, namespace} -} - -// RESTClient returns a RESTClient that is used to communicate -// with API server by this client implementation. -func (c *FakeAuthorizationV1) RESTClient() rest.Interface { - var ret *rest.RESTClient - return ret -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_clusterrole.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_clusterrole.go deleted file mode 100644 index 9af6217e5795f..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_clusterrole.go +++ /dev/null @@ -1,106 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - authorizationv1 "github.com/openshift/api/authorization/v1" - 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" -) - -// FakeClusterRoles implements ClusterRoleInterface -type FakeClusterRoles struct { - Fake *FakeAuthorizationV1 -} - -var clusterrolesResource = schema.GroupVersionResource{Group: "authorization.openshift.io", Version: "v1", Resource: "clusterroles"} - -var clusterrolesKind = schema.GroupVersionKind{Group: "authorization.openshift.io", Version: "v1", Kind: "ClusterRole"} - -// Get takes name of the clusterRole, and returns the corresponding clusterRole object, and an error if there is any. -func (c *FakeClusterRoles) Get(ctx context.Context, name string, options v1.GetOptions) (result *authorizationv1.ClusterRole, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(clusterrolesResource, name), &authorizationv1.ClusterRole{}) - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.ClusterRole), err -} - -// List takes label and field selectors, and returns the list of ClusterRoles that match those selectors. -func (c *FakeClusterRoles) List(ctx context.Context, opts v1.ListOptions) (result *authorizationv1.ClusterRoleList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(clusterrolesResource, clusterrolesKind, opts), &authorizationv1.ClusterRoleList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &authorizationv1.ClusterRoleList{ListMeta: obj.(*authorizationv1.ClusterRoleList).ListMeta} - for _, item := range obj.(*authorizationv1.ClusterRoleList).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 clusterRoles. -func (c *FakeClusterRoles) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(clusterrolesResource, opts)) -} - -// Create takes the representation of a clusterRole and creates it. Returns the server's representation of the clusterRole, and an error, if there is any. -func (c *FakeClusterRoles) Create(ctx context.Context, clusterRole *authorizationv1.ClusterRole, opts v1.CreateOptions) (result *authorizationv1.ClusterRole, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(clusterrolesResource, clusterRole), &authorizationv1.ClusterRole{}) - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.ClusterRole), err -} - -// Update takes the representation of a clusterRole and updates it. Returns the server's representation of the clusterRole, and an error, if there is any. -func (c *FakeClusterRoles) Update(ctx context.Context, clusterRole *authorizationv1.ClusterRole, opts v1.UpdateOptions) (result *authorizationv1.ClusterRole, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(clusterrolesResource, clusterRole), &authorizationv1.ClusterRole{}) - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.ClusterRole), err -} - -// Delete takes name of the clusterRole and deletes it. Returns an error if one occurs. -func (c *FakeClusterRoles) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(clusterrolesResource, name), &authorizationv1.ClusterRole{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeClusterRoles) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(clusterrolesResource, listOpts) - - _, err := c.Fake.Invokes(action, &authorizationv1.ClusterRoleList{}) - return err -} - -// Patch applies the patch and returns the patched clusterRole. -func (c *FakeClusterRoles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *authorizationv1.ClusterRole, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(clusterrolesResource, name, pt, data, subresources...), &authorizationv1.ClusterRole{}) - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.ClusterRole), err -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_clusterrolebinding.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_clusterrolebinding.go deleted file mode 100644 index 9c9450ebff09b..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_clusterrolebinding.go +++ /dev/null @@ -1,106 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - authorizationv1 "github.com/openshift/api/authorization/v1" - 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" -) - -// FakeClusterRoleBindings implements ClusterRoleBindingInterface -type FakeClusterRoleBindings struct { - Fake *FakeAuthorizationV1 -} - -var clusterrolebindingsResource = schema.GroupVersionResource{Group: "authorization.openshift.io", Version: "v1", Resource: "clusterrolebindings"} - -var clusterrolebindingsKind = schema.GroupVersionKind{Group: "authorization.openshift.io", Version: "v1", Kind: "ClusterRoleBinding"} - -// Get takes name of the clusterRoleBinding, and returns the corresponding clusterRoleBinding object, and an error if there is any. -func (c *FakeClusterRoleBindings) Get(ctx context.Context, name string, options v1.GetOptions) (result *authorizationv1.ClusterRoleBinding, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(clusterrolebindingsResource, name), &authorizationv1.ClusterRoleBinding{}) - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.ClusterRoleBinding), err -} - -// List takes label and field selectors, and returns the list of ClusterRoleBindings that match those selectors. -func (c *FakeClusterRoleBindings) List(ctx context.Context, opts v1.ListOptions) (result *authorizationv1.ClusterRoleBindingList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(clusterrolebindingsResource, clusterrolebindingsKind, opts), &authorizationv1.ClusterRoleBindingList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &authorizationv1.ClusterRoleBindingList{ListMeta: obj.(*authorizationv1.ClusterRoleBindingList).ListMeta} - for _, item := range obj.(*authorizationv1.ClusterRoleBindingList).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 clusterRoleBindings. -func (c *FakeClusterRoleBindings) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(clusterrolebindingsResource, opts)) -} - -// Create takes the representation of a clusterRoleBinding and creates it. Returns the server's representation of the clusterRoleBinding, and an error, if there is any. -func (c *FakeClusterRoleBindings) Create(ctx context.Context, clusterRoleBinding *authorizationv1.ClusterRoleBinding, opts v1.CreateOptions) (result *authorizationv1.ClusterRoleBinding, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(clusterrolebindingsResource, clusterRoleBinding), &authorizationv1.ClusterRoleBinding{}) - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.ClusterRoleBinding), err -} - -// Update takes the representation of a clusterRoleBinding and updates it. Returns the server's representation of the clusterRoleBinding, and an error, if there is any. -func (c *FakeClusterRoleBindings) Update(ctx context.Context, clusterRoleBinding *authorizationv1.ClusterRoleBinding, opts v1.UpdateOptions) (result *authorizationv1.ClusterRoleBinding, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(clusterrolebindingsResource, clusterRoleBinding), &authorizationv1.ClusterRoleBinding{}) - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.ClusterRoleBinding), err -} - -// Delete takes name of the clusterRoleBinding and deletes it. Returns an error if one occurs. -func (c *FakeClusterRoleBindings) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(clusterrolebindingsResource, name), &authorizationv1.ClusterRoleBinding{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeClusterRoleBindings) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(clusterrolebindingsResource, listOpts) - - _, err := c.Fake.Invokes(action, &authorizationv1.ClusterRoleBindingList{}) - return err -} - -// Patch applies the patch and returns the patched clusterRoleBinding. -func (c *FakeClusterRoleBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *authorizationv1.ClusterRoleBinding, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(clusterrolebindingsResource, name, pt, data, subresources...), &authorizationv1.ClusterRoleBinding{}) - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.ClusterRoleBinding), err -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_localresourceaccessreview.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_localresourceaccessreview.go deleted file mode 100644 index 751825516a5ef..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_localresourceaccessreview.go +++ /dev/null @@ -1,33 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - v1 "github.com/openshift/api/authorization/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - schema "k8s.io/apimachinery/pkg/runtime/schema" - testing "k8s.io/client-go/testing" -) - -// FakeLocalResourceAccessReviews implements LocalResourceAccessReviewInterface -type FakeLocalResourceAccessReviews struct { - Fake *FakeAuthorizationV1 - ns string -} - -var localresourceaccessreviewsResource = schema.GroupVersionResource{Group: "authorization.openshift.io", Version: "v1", Resource: "localresourceaccessreviews"} - -var localresourceaccessreviewsKind = schema.GroupVersionKind{Group: "authorization.openshift.io", Version: "v1", Kind: "LocalResourceAccessReview"} - -// Create takes the representation of a localResourceAccessReview and creates it. Returns the server's representation of the resourceAccessReviewResponse, and an error, if there is any. -func (c *FakeLocalResourceAccessReviews) Create(ctx context.Context, localResourceAccessReview *v1.LocalResourceAccessReview, opts metav1.CreateOptions) (result *v1.ResourceAccessReviewResponse, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(localresourceaccessreviewsResource, c.ns, localResourceAccessReview), &v1.ResourceAccessReviewResponse{}) - - if obj == nil { - return nil, err - } - return obj.(*v1.ResourceAccessReviewResponse), err -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_localsubjectaccessreview.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_localsubjectaccessreview.go deleted file mode 100644 index 36a727f4cafef..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_localsubjectaccessreview.go +++ /dev/null @@ -1,33 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - v1 "github.com/openshift/api/authorization/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - schema "k8s.io/apimachinery/pkg/runtime/schema" - testing "k8s.io/client-go/testing" -) - -// FakeLocalSubjectAccessReviews implements LocalSubjectAccessReviewInterface -type FakeLocalSubjectAccessReviews struct { - Fake *FakeAuthorizationV1 - ns string -} - -var localsubjectaccessreviewsResource = schema.GroupVersionResource{Group: "authorization.openshift.io", Version: "v1", Resource: "localsubjectaccessreviews"} - -var localsubjectaccessreviewsKind = schema.GroupVersionKind{Group: "authorization.openshift.io", Version: "v1", Kind: "LocalSubjectAccessReview"} - -// Create takes the representation of a localSubjectAccessReview and creates it. Returns the server's representation of the subjectAccessReviewResponse, and an error, if there is any. -func (c *FakeLocalSubjectAccessReviews) Create(ctx context.Context, localSubjectAccessReview *v1.LocalSubjectAccessReview, opts metav1.CreateOptions) (result *v1.SubjectAccessReviewResponse, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(localsubjectaccessreviewsResource, c.ns, localSubjectAccessReview), &v1.SubjectAccessReviewResponse{}) - - if obj == nil { - return nil, err - } - return obj.(*v1.SubjectAccessReviewResponse), err -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_resourceaccessreview.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_resourceaccessreview.go deleted file mode 100644 index 757919b313618..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_resourceaccessreview.go +++ /dev/null @@ -1,31 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - v1 "github.com/openshift/api/authorization/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - schema "k8s.io/apimachinery/pkg/runtime/schema" - testing "k8s.io/client-go/testing" -) - -// FakeResourceAccessReviews implements ResourceAccessReviewInterface -type FakeResourceAccessReviews struct { - Fake *FakeAuthorizationV1 -} - -var resourceaccessreviewsResource = schema.GroupVersionResource{Group: "authorization.openshift.io", Version: "v1", Resource: "resourceaccessreviews"} - -var resourceaccessreviewsKind = schema.GroupVersionKind{Group: "authorization.openshift.io", Version: "v1", Kind: "ResourceAccessReview"} - -// Create takes the representation of a resourceAccessReview and creates it. Returns the server's representation of the resourceAccessReviewResponse, and an error, if there is any. -func (c *FakeResourceAccessReviews) Create(ctx context.Context, resourceAccessReview *v1.ResourceAccessReview, opts metav1.CreateOptions) (result *v1.ResourceAccessReviewResponse, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(resourceaccessreviewsResource, resourceAccessReview), &v1.ResourceAccessReviewResponse{}) - if obj == nil { - return nil, err - } - return obj.(*v1.ResourceAccessReviewResponse), err -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_role.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_role.go deleted file mode 100644 index 2ac735322b951..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_role.go +++ /dev/null @@ -1,114 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - authorizationv1 "github.com/openshift/api/authorization/v1" - 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" -) - -// FakeRoles implements RoleInterface -type FakeRoles struct { - Fake *FakeAuthorizationV1 - ns string -} - -var rolesResource = schema.GroupVersionResource{Group: "authorization.openshift.io", Version: "v1", Resource: "roles"} - -var rolesKind = schema.GroupVersionKind{Group: "authorization.openshift.io", Version: "v1", Kind: "Role"} - -// Get takes name of the role, and returns the corresponding role object, and an error if there is any. -func (c *FakeRoles) Get(ctx context.Context, name string, options v1.GetOptions) (result *authorizationv1.Role, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(rolesResource, c.ns, name), &authorizationv1.Role{}) - - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.Role), err -} - -// List takes label and field selectors, and returns the list of Roles that match those selectors. -func (c *FakeRoles) List(ctx context.Context, opts v1.ListOptions) (result *authorizationv1.RoleList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(rolesResource, rolesKind, c.ns, opts), &authorizationv1.RoleList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &authorizationv1.RoleList{ListMeta: obj.(*authorizationv1.RoleList).ListMeta} - for _, item := range obj.(*authorizationv1.RoleList).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 roles. -func (c *FakeRoles) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(rolesResource, c.ns, opts)) - -} - -// Create takes the representation of a role and creates it. Returns the server's representation of the role, and an error, if there is any. -func (c *FakeRoles) Create(ctx context.Context, role *authorizationv1.Role, opts v1.CreateOptions) (result *authorizationv1.Role, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(rolesResource, c.ns, role), &authorizationv1.Role{}) - - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.Role), err -} - -// Update takes the representation of a role and updates it. Returns the server's representation of the role, and an error, if there is any. -func (c *FakeRoles) Update(ctx context.Context, role *authorizationv1.Role, opts v1.UpdateOptions) (result *authorizationv1.Role, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(rolesResource, c.ns, role), &authorizationv1.Role{}) - - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.Role), err -} - -// Delete takes name of the role and deletes it. Returns an error if one occurs. -func (c *FakeRoles) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteAction(rolesResource, c.ns, name), &authorizationv1.Role{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeRoles) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(rolesResource, c.ns, listOpts) - - _, err := c.Fake.Invokes(action, &authorizationv1.RoleList{}) - return err -} - -// Patch applies the patch and returns the patched role. -func (c *FakeRoles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *authorizationv1.Role, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(rolesResource, c.ns, name, pt, data, subresources...), &authorizationv1.Role{}) - - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.Role), err -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_rolebinding.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_rolebinding.go deleted file mode 100644 index d1933e3526cc5..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_rolebinding.go +++ /dev/null @@ -1,114 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - authorizationv1 "github.com/openshift/api/authorization/v1" - 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" -) - -// FakeRoleBindings implements RoleBindingInterface -type FakeRoleBindings struct { - Fake *FakeAuthorizationV1 - ns string -} - -var rolebindingsResource = schema.GroupVersionResource{Group: "authorization.openshift.io", Version: "v1", Resource: "rolebindings"} - -var rolebindingsKind = schema.GroupVersionKind{Group: "authorization.openshift.io", Version: "v1", Kind: "RoleBinding"} - -// Get takes name of the roleBinding, and returns the corresponding roleBinding object, and an error if there is any. -func (c *FakeRoleBindings) Get(ctx context.Context, name string, options v1.GetOptions) (result *authorizationv1.RoleBinding, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(rolebindingsResource, c.ns, name), &authorizationv1.RoleBinding{}) - - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.RoleBinding), err -} - -// List takes label and field selectors, and returns the list of RoleBindings that match those selectors. -func (c *FakeRoleBindings) List(ctx context.Context, opts v1.ListOptions) (result *authorizationv1.RoleBindingList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(rolebindingsResource, rolebindingsKind, c.ns, opts), &authorizationv1.RoleBindingList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &authorizationv1.RoleBindingList{ListMeta: obj.(*authorizationv1.RoleBindingList).ListMeta} - for _, item := range obj.(*authorizationv1.RoleBindingList).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 roleBindings. -func (c *FakeRoleBindings) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(rolebindingsResource, c.ns, opts)) - -} - -// Create takes the representation of a roleBinding and creates it. Returns the server's representation of the roleBinding, and an error, if there is any. -func (c *FakeRoleBindings) Create(ctx context.Context, roleBinding *authorizationv1.RoleBinding, opts v1.CreateOptions) (result *authorizationv1.RoleBinding, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(rolebindingsResource, c.ns, roleBinding), &authorizationv1.RoleBinding{}) - - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.RoleBinding), err -} - -// Update takes the representation of a roleBinding and updates it. Returns the server's representation of the roleBinding, and an error, if there is any. -func (c *FakeRoleBindings) Update(ctx context.Context, roleBinding *authorizationv1.RoleBinding, opts v1.UpdateOptions) (result *authorizationv1.RoleBinding, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(rolebindingsResource, c.ns, roleBinding), &authorizationv1.RoleBinding{}) - - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.RoleBinding), err -} - -// Delete takes name of the roleBinding and deletes it. Returns an error if one occurs. -func (c *FakeRoleBindings) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteAction(rolebindingsResource, c.ns, name), &authorizationv1.RoleBinding{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeRoleBindings) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(rolebindingsResource, c.ns, listOpts) - - _, err := c.Fake.Invokes(action, &authorizationv1.RoleBindingList{}) - return err -} - -// Patch applies the patch and returns the patched roleBinding. -func (c *FakeRoleBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *authorizationv1.RoleBinding, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(rolebindingsResource, c.ns, name, pt, data, subresources...), &authorizationv1.RoleBinding{}) - - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.RoleBinding), err -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_rolebindingrestriction.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_rolebindingrestriction.go deleted file mode 100644 index 76c5b6d235dec..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_rolebindingrestriction.go +++ /dev/null @@ -1,114 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - authorizationv1 "github.com/openshift/api/authorization/v1" - 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" -) - -// FakeRoleBindingRestrictions implements RoleBindingRestrictionInterface -type FakeRoleBindingRestrictions struct { - Fake *FakeAuthorizationV1 - ns string -} - -var rolebindingrestrictionsResource = schema.GroupVersionResource{Group: "authorization.openshift.io", Version: "v1", Resource: "rolebindingrestrictions"} - -var rolebindingrestrictionsKind = schema.GroupVersionKind{Group: "authorization.openshift.io", Version: "v1", Kind: "RoleBindingRestriction"} - -// Get takes name of the roleBindingRestriction, and returns the corresponding roleBindingRestriction object, and an error if there is any. -func (c *FakeRoleBindingRestrictions) Get(ctx context.Context, name string, options v1.GetOptions) (result *authorizationv1.RoleBindingRestriction, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(rolebindingrestrictionsResource, c.ns, name), &authorizationv1.RoleBindingRestriction{}) - - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.RoleBindingRestriction), err -} - -// List takes label and field selectors, and returns the list of RoleBindingRestrictions that match those selectors. -func (c *FakeRoleBindingRestrictions) List(ctx context.Context, opts v1.ListOptions) (result *authorizationv1.RoleBindingRestrictionList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(rolebindingrestrictionsResource, rolebindingrestrictionsKind, c.ns, opts), &authorizationv1.RoleBindingRestrictionList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &authorizationv1.RoleBindingRestrictionList{ListMeta: obj.(*authorizationv1.RoleBindingRestrictionList).ListMeta} - for _, item := range obj.(*authorizationv1.RoleBindingRestrictionList).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 roleBindingRestrictions. -func (c *FakeRoleBindingRestrictions) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(rolebindingrestrictionsResource, c.ns, opts)) - -} - -// Create takes the representation of a roleBindingRestriction and creates it. Returns the server's representation of the roleBindingRestriction, and an error, if there is any. -func (c *FakeRoleBindingRestrictions) Create(ctx context.Context, roleBindingRestriction *authorizationv1.RoleBindingRestriction, opts v1.CreateOptions) (result *authorizationv1.RoleBindingRestriction, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(rolebindingrestrictionsResource, c.ns, roleBindingRestriction), &authorizationv1.RoleBindingRestriction{}) - - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.RoleBindingRestriction), err -} - -// Update takes the representation of a roleBindingRestriction and updates it. Returns the server's representation of the roleBindingRestriction, and an error, if there is any. -func (c *FakeRoleBindingRestrictions) Update(ctx context.Context, roleBindingRestriction *authorizationv1.RoleBindingRestriction, opts v1.UpdateOptions) (result *authorizationv1.RoleBindingRestriction, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(rolebindingrestrictionsResource, c.ns, roleBindingRestriction), &authorizationv1.RoleBindingRestriction{}) - - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.RoleBindingRestriction), err -} - -// Delete takes name of the roleBindingRestriction and deletes it. Returns an error if one occurs. -func (c *FakeRoleBindingRestrictions) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteAction(rolebindingrestrictionsResource, c.ns, name), &authorizationv1.RoleBindingRestriction{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeRoleBindingRestrictions) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(rolebindingrestrictionsResource, c.ns, listOpts) - - _, err := c.Fake.Invokes(action, &authorizationv1.RoleBindingRestrictionList{}) - return err -} - -// Patch applies the patch and returns the patched roleBindingRestriction. -func (c *FakeRoleBindingRestrictions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *authorizationv1.RoleBindingRestriction, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(rolebindingrestrictionsResource, c.ns, name, pt, data, subresources...), &authorizationv1.RoleBindingRestriction{}) - - if obj == nil { - return nil, err - } - return obj.(*authorizationv1.RoleBindingRestriction), err -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_selfsubjectrulesreview.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_selfsubjectrulesreview.go deleted file mode 100644 index 737d8f193af1c..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_selfsubjectrulesreview.go +++ /dev/null @@ -1,33 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - v1 "github.com/openshift/api/authorization/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - schema "k8s.io/apimachinery/pkg/runtime/schema" - testing "k8s.io/client-go/testing" -) - -// FakeSelfSubjectRulesReviews implements SelfSubjectRulesReviewInterface -type FakeSelfSubjectRulesReviews struct { - Fake *FakeAuthorizationV1 - ns string -} - -var selfsubjectrulesreviewsResource = schema.GroupVersionResource{Group: "authorization.openshift.io", Version: "v1", Resource: "selfsubjectrulesreviews"} - -var selfsubjectrulesreviewsKind = schema.GroupVersionKind{Group: "authorization.openshift.io", Version: "v1", Kind: "SelfSubjectRulesReview"} - -// Create takes the representation of a selfSubjectRulesReview and creates it. Returns the server's representation of the selfSubjectRulesReview, and an error, if there is any. -func (c *FakeSelfSubjectRulesReviews) Create(ctx context.Context, selfSubjectRulesReview *v1.SelfSubjectRulesReview, opts metav1.CreateOptions) (result *v1.SelfSubjectRulesReview, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(selfsubjectrulesreviewsResource, c.ns, selfSubjectRulesReview), &v1.SelfSubjectRulesReview{}) - - if obj == nil { - return nil, err - } - return obj.(*v1.SelfSubjectRulesReview), err -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_subjectaccessreview.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_subjectaccessreview.go deleted file mode 100644 index 10a87cd5205f7..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_subjectaccessreview.go +++ /dev/null @@ -1,31 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - v1 "github.com/openshift/api/authorization/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - schema "k8s.io/apimachinery/pkg/runtime/schema" - testing "k8s.io/client-go/testing" -) - -// FakeSubjectAccessReviews implements SubjectAccessReviewInterface -type FakeSubjectAccessReviews struct { - Fake *FakeAuthorizationV1 -} - -var subjectaccessreviewsResource = schema.GroupVersionResource{Group: "authorization.openshift.io", Version: "v1", Resource: "subjectaccessreviews"} - -var subjectaccessreviewsKind = schema.GroupVersionKind{Group: "authorization.openshift.io", Version: "v1", Kind: "SubjectAccessReview"} - -// Create takes the representation of a subjectAccessReview and creates it. Returns the server's representation of the subjectAccessReviewResponse, and an error, if there is any. -func (c *FakeSubjectAccessReviews) Create(ctx context.Context, subjectAccessReview *v1.SubjectAccessReview, opts metav1.CreateOptions) (result *v1.SubjectAccessReviewResponse, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(subjectaccessreviewsResource, subjectAccessReview), &v1.SubjectAccessReviewResponse{}) - if obj == nil { - return nil, err - } - return obj.(*v1.SubjectAccessReviewResponse), err -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_subjectrulesreview.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_subjectrulesreview.go deleted file mode 100644 index eb89088ed6fd0..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/fake/fake_subjectrulesreview.go +++ /dev/null @@ -1,33 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - v1 "github.com/openshift/api/authorization/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - schema "k8s.io/apimachinery/pkg/runtime/schema" - testing "k8s.io/client-go/testing" -) - -// FakeSubjectRulesReviews implements SubjectRulesReviewInterface -type FakeSubjectRulesReviews struct { - Fake *FakeAuthorizationV1 - ns string -} - -var subjectrulesreviewsResource = schema.GroupVersionResource{Group: "authorization.openshift.io", Version: "v1", Resource: "subjectrulesreviews"} - -var subjectrulesreviewsKind = schema.GroupVersionKind{Group: "authorization.openshift.io", Version: "v1", Kind: "SubjectRulesReview"} - -// Create takes the representation of a subjectRulesReview and creates it. Returns the server's representation of the subjectRulesReview, and an error, if there is any. -func (c *FakeSubjectRulesReviews) Create(ctx context.Context, subjectRulesReview *v1.SubjectRulesReview, opts metav1.CreateOptions) (result *v1.SubjectRulesReview, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(subjectrulesreviewsResource, c.ns, subjectRulesReview), &v1.SubjectRulesReview{}) - - if obj == nil { - return nil, err - } - return obj.(*v1.SubjectRulesReview), err -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/generated_expansion.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/generated_expansion.go deleted file mode 100644 index ff51ceca26629..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/generated_expansion.go +++ /dev/null @@ -1,25 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -type ClusterRoleExpansion interface{} - -type ClusterRoleBindingExpansion interface{} - -type LocalResourceAccessReviewExpansion interface{} - -type LocalSubjectAccessReviewExpansion interface{} - -type ResourceAccessReviewExpansion interface{} - -type RoleExpansion interface{} - -type RoleBindingExpansion interface{} - -type RoleBindingRestrictionExpansion interface{} - -type SelfSubjectRulesReviewExpansion interface{} - -type SubjectAccessReviewExpansion interface{} - -type SubjectRulesReviewExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/localresourceaccessreview.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/localresourceaccessreview.go deleted file mode 100644 index 41b33dc45abd0..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/localresourceaccessreview.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - - v1 "github.com/openshift/api/authorization/v1" - scheme "github.com/openshift/client-go/authorization/clientset/versioned/scheme" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rest "k8s.io/client-go/rest" -) - -// LocalResourceAccessReviewsGetter has a method to return a LocalResourceAccessReviewInterface. -// A group's client should implement this interface. -type LocalResourceAccessReviewsGetter interface { - LocalResourceAccessReviews(namespace string) LocalResourceAccessReviewInterface -} - -// LocalResourceAccessReviewInterface has methods to work with LocalResourceAccessReview resources. -type LocalResourceAccessReviewInterface interface { - Create(ctx context.Context, localResourceAccessReview *v1.LocalResourceAccessReview, opts metav1.CreateOptions) (*v1.ResourceAccessReviewResponse, error) - - LocalResourceAccessReviewExpansion -} - -// localResourceAccessReviews implements LocalResourceAccessReviewInterface -type localResourceAccessReviews struct { - client rest.Interface - ns string -} - -// newLocalResourceAccessReviews returns a LocalResourceAccessReviews -func newLocalResourceAccessReviews(c *AuthorizationV1Client, namespace string) *localResourceAccessReviews { - return &localResourceAccessReviews{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Create takes the representation of a localResourceAccessReview and creates it. Returns the server's representation of the resourceAccessReviewResponse, and an error, if there is any. -func (c *localResourceAccessReviews) Create(ctx context.Context, localResourceAccessReview *v1.LocalResourceAccessReview, opts metav1.CreateOptions) (result *v1.ResourceAccessReviewResponse, err error) { - result = &v1.ResourceAccessReviewResponse{} - err = c.client.Post(). - Namespace(c.ns). - Resource("localresourceaccessreviews"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(localResourceAccessReview). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/localsubjectaccessreview.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/localsubjectaccessreview.go deleted file mode 100644 index d4dc64c830ffa..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/localsubjectaccessreview.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - - v1 "github.com/openshift/api/authorization/v1" - scheme "github.com/openshift/client-go/authorization/clientset/versioned/scheme" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rest "k8s.io/client-go/rest" -) - -// LocalSubjectAccessReviewsGetter has a method to return a LocalSubjectAccessReviewInterface. -// A group's client should implement this interface. -type LocalSubjectAccessReviewsGetter interface { - LocalSubjectAccessReviews(namespace string) LocalSubjectAccessReviewInterface -} - -// LocalSubjectAccessReviewInterface has methods to work with LocalSubjectAccessReview resources. -type LocalSubjectAccessReviewInterface interface { - Create(ctx context.Context, localSubjectAccessReview *v1.LocalSubjectAccessReview, opts metav1.CreateOptions) (*v1.SubjectAccessReviewResponse, error) - - LocalSubjectAccessReviewExpansion -} - -// localSubjectAccessReviews implements LocalSubjectAccessReviewInterface -type localSubjectAccessReviews struct { - client rest.Interface - ns string -} - -// newLocalSubjectAccessReviews returns a LocalSubjectAccessReviews -func newLocalSubjectAccessReviews(c *AuthorizationV1Client, namespace string) *localSubjectAccessReviews { - return &localSubjectAccessReviews{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Create takes the representation of a localSubjectAccessReview and creates it. Returns the server's representation of the subjectAccessReviewResponse, and an error, if there is any. -func (c *localSubjectAccessReviews) Create(ctx context.Context, localSubjectAccessReview *v1.LocalSubjectAccessReview, opts metav1.CreateOptions) (result *v1.SubjectAccessReviewResponse, err error) { - result = &v1.SubjectAccessReviewResponse{} - err = c.client.Post(). - Namespace(c.ns). - Resource("localsubjectaccessreviews"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(localSubjectAccessReview). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/resourceaccessreview.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/resourceaccessreview.go deleted file mode 100644 index 4fe3c3d3c18d6..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/resourceaccessreview.go +++ /dev/null @@ -1,49 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - - v1 "github.com/openshift/api/authorization/v1" - scheme "github.com/openshift/client-go/authorization/clientset/versioned/scheme" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rest "k8s.io/client-go/rest" -) - -// ResourceAccessReviewsGetter has a method to return a ResourceAccessReviewInterface. -// A group's client should implement this interface. -type ResourceAccessReviewsGetter interface { - ResourceAccessReviews() ResourceAccessReviewInterface -} - -// ResourceAccessReviewInterface has methods to work with ResourceAccessReview resources. -type ResourceAccessReviewInterface interface { - Create(ctx context.Context, resourceAccessReview *v1.ResourceAccessReview, opts metav1.CreateOptions) (*v1.ResourceAccessReviewResponse, error) - - ResourceAccessReviewExpansion -} - -// resourceAccessReviews implements ResourceAccessReviewInterface -type resourceAccessReviews struct { - client rest.Interface -} - -// newResourceAccessReviews returns a ResourceAccessReviews -func newResourceAccessReviews(c *AuthorizationV1Client) *resourceAccessReviews { - return &resourceAccessReviews{ - client: c.RESTClient(), - } -} - -// Create takes the representation of a resourceAccessReview and creates it. Returns the server's representation of the resourceAccessReviewResponse, and an error, if there is any. -func (c *resourceAccessReviews) Create(ctx context.Context, resourceAccessReview *v1.ResourceAccessReview, opts metav1.CreateOptions) (result *v1.ResourceAccessReviewResponse, err error) { - result = &v1.ResourceAccessReviewResponse{} - err = c.client.Post(). - Resource("resourceaccessreviews"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(resourceAccessReview). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/role.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/role.go deleted file mode 100644 index fee5093c79daa..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/role.go +++ /dev/null @@ -1,162 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/authorization/v1" - scheme "github.com/openshift/client-go/authorization/clientset/versioned/scheme" - metav1 "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" -) - -// RolesGetter has a method to return a RoleInterface. -// A group's client should implement this interface. -type RolesGetter interface { - Roles(namespace string) RoleInterface -} - -// RoleInterface has methods to work with Role resources. -type RoleInterface interface { - Create(ctx context.Context, role *v1.Role, opts metav1.CreateOptions) (*v1.Role, error) - Update(ctx context.Context, role *v1.Role, opts metav1.UpdateOptions) (*v1.Role, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Role, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.RoleList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Role, err error) - RoleExpansion -} - -// roles implements RoleInterface -type roles struct { - client rest.Interface - ns string -} - -// newRoles returns a Roles -func newRoles(c *AuthorizationV1Client, namespace string) *roles { - return &roles{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the role, and returns the corresponding role object, and an error if there is any. -func (c *roles) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Role, err error) { - result = &v1.Role{} - err = c.client.Get(). - Namespace(c.ns). - Resource("roles"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Roles that match those selectors. -func (c *roles) List(ctx context.Context, opts metav1.ListOptions) (result *v1.RoleList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.RoleList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("roles"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested roles. -func (c *roles) Watch(ctx context.Context, opts metav1.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("roles"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a role and creates it. Returns the server's representation of the role, and an error, if there is any. -func (c *roles) Create(ctx context.Context, role *v1.Role, opts metav1.CreateOptions) (result *v1.Role, err error) { - result = &v1.Role{} - err = c.client.Post(). - Namespace(c.ns). - Resource("roles"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(role). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a role and updates it. Returns the server's representation of the role, and an error, if there is any. -func (c *roles) Update(ctx context.Context, role *v1.Role, opts metav1.UpdateOptions) (result *v1.Role, err error) { - result = &v1.Role{} - err = c.client.Put(). - Namespace(c.ns). - Resource("roles"). - Name(role.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(role). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the role and deletes it. Returns an error if one occurs. -func (c *roles) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("roles"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *roles) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Namespace(c.ns). - Resource("roles"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched role. -func (c *roles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Role, err error) { - result = &v1.Role{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("roles"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/rolebinding.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/rolebinding.go deleted file mode 100644 index d58c83f820367..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/rolebinding.go +++ /dev/null @@ -1,162 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/authorization/v1" - scheme "github.com/openshift/client-go/authorization/clientset/versioned/scheme" - metav1 "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" -) - -// RoleBindingsGetter has a method to return a RoleBindingInterface. -// A group's client should implement this interface. -type RoleBindingsGetter interface { - RoleBindings(namespace string) RoleBindingInterface -} - -// RoleBindingInterface has methods to work with RoleBinding resources. -type RoleBindingInterface interface { - Create(ctx context.Context, roleBinding *v1.RoleBinding, opts metav1.CreateOptions) (*v1.RoleBinding, error) - Update(ctx context.Context, roleBinding *v1.RoleBinding, opts metav1.UpdateOptions) (*v1.RoleBinding, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.RoleBinding, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.RoleBindingList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.RoleBinding, err error) - RoleBindingExpansion -} - -// roleBindings implements RoleBindingInterface -type roleBindings struct { - client rest.Interface - ns string -} - -// newRoleBindings returns a RoleBindings -func newRoleBindings(c *AuthorizationV1Client, namespace string) *roleBindings { - return &roleBindings{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the roleBinding, and returns the corresponding roleBinding object, and an error if there is any. -func (c *roleBindings) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.RoleBinding, err error) { - result = &v1.RoleBinding{} - err = c.client.Get(). - Namespace(c.ns). - Resource("rolebindings"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of RoleBindings that match those selectors. -func (c *roleBindings) List(ctx context.Context, opts metav1.ListOptions) (result *v1.RoleBindingList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.RoleBindingList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("rolebindings"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested roleBindings. -func (c *roleBindings) Watch(ctx context.Context, opts metav1.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("rolebindings"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a roleBinding and creates it. Returns the server's representation of the roleBinding, and an error, if there is any. -func (c *roleBindings) Create(ctx context.Context, roleBinding *v1.RoleBinding, opts metav1.CreateOptions) (result *v1.RoleBinding, err error) { - result = &v1.RoleBinding{} - err = c.client.Post(). - Namespace(c.ns). - Resource("rolebindings"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(roleBinding). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a roleBinding and updates it. Returns the server's representation of the roleBinding, and an error, if there is any. -func (c *roleBindings) Update(ctx context.Context, roleBinding *v1.RoleBinding, opts metav1.UpdateOptions) (result *v1.RoleBinding, err error) { - result = &v1.RoleBinding{} - err = c.client.Put(). - Namespace(c.ns). - Resource("rolebindings"). - Name(roleBinding.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(roleBinding). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the roleBinding and deletes it. Returns an error if one occurs. -func (c *roleBindings) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("rolebindings"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *roleBindings) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Namespace(c.ns). - Resource("rolebindings"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched roleBinding. -func (c *roleBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.RoleBinding, err error) { - result = &v1.RoleBinding{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("rolebindings"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/rolebindingrestriction.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/rolebindingrestriction.go deleted file mode 100644 index bd0e49ba13bac..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/rolebindingrestriction.go +++ /dev/null @@ -1,162 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/authorization/v1" - scheme "github.com/openshift/client-go/authorization/clientset/versioned/scheme" - metav1 "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" -) - -// RoleBindingRestrictionsGetter has a method to return a RoleBindingRestrictionInterface. -// A group's client should implement this interface. -type RoleBindingRestrictionsGetter interface { - RoleBindingRestrictions(namespace string) RoleBindingRestrictionInterface -} - -// RoleBindingRestrictionInterface has methods to work with RoleBindingRestriction resources. -type RoleBindingRestrictionInterface interface { - Create(ctx context.Context, roleBindingRestriction *v1.RoleBindingRestriction, opts metav1.CreateOptions) (*v1.RoleBindingRestriction, error) - Update(ctx context.Context, roleBindingRestriction *v1.RoleBindingRestriction, opts metav1.UpdateOptions) (*v1.RoleBindingRestriction, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.RoleBindingRestriction, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.RoleBindingRestrictionList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.RoleBindingRestriction, err error) - RoleBindingRestrictionExpansion -} - -// roleBindingRestrictions implements RoleBindingRestrictionInterface -type roleBindingRestrictions struct { - client rest.Interface - ns string -} - -// newRoleBindingRestrictions returns a RoleBindingRestrictions -func newRoleBindingRestrictions(c *AuthorizationV1Client, namespace string) *roleBindingRestrictions { - return &roleBindingRestrictions{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the roleBindingRestriction, and returns the corresponding roleBindingRestriction object, and an error if there is any. -func (c *roleBindingRestrictions) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.RoleBindingRestriction, err error) { - result = &v1.RoleBindingRestriction{} - err = c.client.Get(). - Namespace(c.ns). - Resource("rolebindingrestrictions"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of RoleBindingRestrictions that match those selectors. -func (c *roleBindingRestrictions) List(ctx context.Context, opts metav1.ListOptions) (result *v1.RoleBindingRestrictionList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.RoleBindingRestrictionList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("rolebindingrestrictions"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested roleBindingRestrictions. -func (c *roleBindingRestrictions) Watch(ctx context.Context, opts metav1.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("rolebindingrestrictions"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a roleBindingRestriction and creates it. Returns the server's representation of the roleBindingRestriction, and an error, if there is any. -func (c *roleBindingRestrictions) Create(ctx context.Context, roleBindingRestriction *v1.RoleBindingRestriction, opts metav1.CreateOptions) (result *v1.RoleBindingRestriction, err error) { - result = &v1.RoleBindingRestriction{} - err = c.client.Post(). - Namespace(c.ns). - Resource("rolebindingrestrictions"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(roleBindingRestriction). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a roleBindingRestriction and updates it. Returns the server's representation of the roleBindingRestriction, and an error, if there is any. -func (c *roleBindingRestrictions) Update(ctx context.Context, roleBindingRestriction *v1.RoleBindingRestriction, opts metav1.UpdateOptions) (result *v1.RoleBindingRestriction, err error) { - result = &v1.RoleBindingRestriction{} - err = c.client.Put(). - Namespace(c.ns). - Resource("rolebindingrestrictions"). - Name(roleBindingRestriction.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(roleBindingRestriction). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the roleBindingRestriction and deletes it. Returns an error if one occurs. -func (c *roleBindingRestrictions) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("rolebindingrestrictions"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *roleBindingRestrictions) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Namespace(c.ns). - Resource("rolebindingrestrictions"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched roleBindingRestriction. -func (c *roleBindingRestrictions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.RoleBindingRestriction, err error) { - result = &v1.RoleBindingRestriction{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("rolebindingrestrictions"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/selfsubjectrulesreview.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/selfsubjectrulesreview.go deleted file mode 100644 index dccc70e40bc1e..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/selfsubjectrulesreview.go +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - - v1 "github.com/openshift/api/authorization/v1" - scheme "github.com/openshift/client-go/authorization/clientset/versioned/scheme" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rest "k8s.io/client-go/rest" -) - -// SelfSubjectRulesReviewsGetter has a method to return a SelfSubjectRulesReviewInterface. -// A group's client should implement this interface. -type SelfSubjectRulesReviewsGetter interface { - SelfSubjectRulesReviews(namespace string) SelfSubjectRulesReviewInterface -} - -// SelfSubjectRulesReviewInterface has methods to work with SelfSubjectRulesReview resources. -type SelfSubjectRulesReviewInterface interface { - Create(ctx context.Context, selfSubjectRulesReview *v1.SelfSubjectRulesReview, opts metav1.CreateOptions) (*v1.SelfSubjectRulesReview, error) - SelfSubjectRulesReviewExpansion -} - -// selfSubjectRulesReviews implements SelfSubjectRulesReviewInterface -type selfSubjectRulesReviews struct { - client rest.Interface - ns string -} - -// newSelfSubjectRulesReviews returns a SelfSubjectRulesReviews -func newSelfSubjectRulesReviews(c *AuthorizationV1Client, namespace string) *selfSubjectRulesReviews { - return &selfSubjectRulesReviews{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Create takes the representation of a selfSubjectRulesReview and creates it. Returns the server's representation of the selfSubjectRulesReview, and an error, if there is any. -func (c *selfSubjectRulesReviews) Create(ctx context.Context, selfSubjectRulesReview *v1.SelfSubjectRulesReview, opts metav1.CreateOptions) (result *v1.SelfSubjectRulesReview, err error) { - result = &v1.SelfSubjectRulesReview{} - err = c.client.Post(). - Namespace(c.ns). - Resource("selfsubjectrulesreviews"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(selfSubjectRulesReview). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/subjectaccessreview.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/subjectaccessreview.go deleted file mode 100644 index 448b55ad9653c..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/subjectaccessreview.go +++ /dev/null @@ -1,49 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - - v1 "github.com/openshift/api/authorization/v1" - scheme "github.com/openshift/client-go/authorization/clientset/versioned/scheme" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rest "k8s.io/client-go/rest" -) - -// SubjectAccessReviewsGetter has a method to return a SubjectAccessReviewInterface. -// A group's client should implement this interface. -type SubjectAccessReviewsGetter interface { - SubjectAccessReviews() SubjectAccessReviewInterface -} - -// SubjectAccessReviewInterface has methods to work with SubjectAccessReview resources. -type SubjectAccessReviewInterface interface { - Create(ctx context.Context, subjectAccessReview *v1.SubjectAccessReview, opts metav1.CreateOptions) (*v1.SubjectAccessReviewResponse, error) - - SubjectAccessReviewExpansion -} - -// subjectAccessReviews implements SubjectAccessReviewInterface -type subjectAccessReviews struct { - client rest.Interface -} - -// newSubjectAccessReviews returns a SubjectAccessReviews -func newSubjectAccessReviews(c *AuthorizationV1Client) *subjectAccessReviews { - return &subjectAccessReviews{ - client: c.RESTClient(), - } -} - -// Create takes the representation of a subjectAccessReview and creates it. Returns the server's representation of the subjectAccessReviewResponse, and an error, if there is any. -func (c *subjectAccessReviews) Create(ctx context.Context, subjectAccessReview *v1.SubjectAccessReview, opts metav1.CreateOptions) (result *v1.SubjectAccessReviewResponse, err error) { - result = &v1.SubjectAccessReviewResponse{} - err = c.client.Post(). - Resource("subjectaccessreviews"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(subjectAccessReview). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/subjectrulesreview.go b/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/subjectrulesreview.go deleted file mode 100644 index dd02802f73c87..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/clientset/versioned/typed/authorization/v1/subjectrulesreview.go +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - - v1 "github.com/openshift/api/authorization/v1" - scheme "github.com/openshift/client-go/authorization/clientset/versioned/scheme" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rest "k8s.io/client-go/rest" -) - -// SubjectRulesReviewsGetter has a method to return a SubjectRulesReviewInterface. -// A group's client should implement this interface. -type SubjectRulesReviewsGetter interface { - SubjectRulesReviews(namespace string) SubjectRulesReviewInterface -} - -// SubjectRulesReviewInterface has methods to work with SubjectRulesReview resources. -type SubjectRulesReviewInterface interface { - Create(ctx context.Context, subjectRulesReview *v1.SubjectRulesReview, opts metav1.CreateOptions) (*v1.SubjectRulesReview, error) - SubjectRulesReviewExpansion -} - -// subjectRulesReviews implements SubjectRulesReviewInterface -type subjectRulesReviews struct { - client rest.Interface - ns string -} - -// newSubjectRulesReviews returns a SubjectRulesReviews -func newSubjectRulesReviews(c *AuthorizationV1Client, namespace string) *subjectRulesReviews { - return &subjectRulesReviews{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Create takes the representation of a subjectRulesReview and creates it. Returns the server's representation of the subjectRulesReview, and an error, if there is any. -func (c *subjectRulesReviews) Create(ctx context.Context, subjectRulesReview *v1.SubjectRulesReview, opts metav1.CreateOptions) (result *v1.SubjectRulesReview, err error) { - result = &v1.SubjectRulesReview{} - err = c.client.Post(). - Namespace(c.ns). - Resource("subjectrulesreviews"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(subjectRulesReview). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/interface.go b/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/interface.go deleted file mode 100644 index b5cdb4853b6b0..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/interface.go +++ /dev/null @@ -1,30 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package authorization - -import ( - v1 "github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1" - internalinterfaces "github.com/openshift/client-go/authorization/informers/externalversions/internalinterfaces" -) - -// Interface provides access to each of this group's versions. -type Interface interface { - // V1 provides access to shared informers for resources in V1. - V1() v1.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} -} - -// V1 returns a new v1.Interface. -func (g *group) V1() v1.Interface { - return v1.New(g.factory, g.namespace, g.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/clusterrole.go b/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/clusterrole.go deleted file mode 100644 index f58334174b244..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/clusterrole.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - authorizationv1 "github.com/openshift/api/authorization/v1" - versioned "github.com/openshift/client-go/authorization/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/authorization/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/authorization/listers/authorization/v1" - metav1 "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" -) - -// ClusterRoleInformer provides access to a shared informer and lister for -// ClusterRoles. -type ClusterRoleInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.ClusterRoleLister -} - -type clusterRoleInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewClusterRoleInformer constructs a new informer for ClusterRole 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 NewClusterRoleInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredClusterRoleInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredClusterRoleInformer constructs a new informer for ClusterRole 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 NewFilteredClusterRoleInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.AuthorizationV1().ClusterRoles().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.AuthorizationV1().ClusterRoles().Watch(context.TODO(), options) - }, - }, - &authorizationv1.ClusterRole{}, - resyncPeriod, - indexers, - ) -} - -func (f *clusterRoleInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredClusterRoleInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *clusterRoleInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&authorizationv1.ClusterRole{}, f.defaultInformer) -} - -func (f *clusterRoleInformer) Lister() v1.ClusterRoleLister { - return v1.NewClusterRoleLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/clusterrolebinding.go b/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/clusterrolebinding.go deleted file mode 100644 index b66ea22a2493f..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/clusterrolebinding.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - authorizationv1 "github.com/openshift/api/authorization/v1" - versioned "github.com/openshift/client-go/authorization/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/authorization/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/authorization/listers/authorization/v1" - metav1 "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" -) - -// ClusterRoleBindingInformer provides access to a shared informer and lister for -// ClusterRoleBindings. -type ClusterRoleBindingInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.ClusterRoleBindingLister -} - -type clusterRoleBindingInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewClusterRoleBindingInformer constructs a new informer for ClusterRoleBinding 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 NewClusterRoleBindingInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredClusterRoleBindingInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredClusterRoleBindingInformer constructs a new informer for ClusterRoleBinding 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 NewFilteredClusterRoleBindingInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.AuthorizationV1().ClusterRoleBindings().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.AuthorizationV1().ClusterRoleBindings().Watch(context.TODO(), options) - }, - }, - &authorizationv1.ClusterRoleBinding{}, - resyncPeriod, - indexers, - ) -} - -func (f *clusterRoleBindingInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredClusterRoleBindingInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *clusterRoleBindingInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&authorizationv1.ClusterRoleBinding{}, f.defaultInformer) -} - -func (f *clusterRoleBindingInformer) Lister() v1.ClusterRoleBindingLister { - return v1.NewClusterRoleBindingLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/interface.go b/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/interface.go deleted file mode 100644 index 803cd2f3b5d6b..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/interface.go +++ /dev/null @@ -1,57 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - internalinterfaces "github.com/openshift/client-go/authorization/informers/externalversions/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // ClusterRoles returns a ClusterRoleInformer. - ClusterRoles() ClusterRoleInformer - // ClusterRoleBindings returns a ClusterRoleBindingInformer. - ClusterRoleBindings() ClusterRoleBindingInformer - // Roles returns a RoleInformer. - Roles() RoleInformer - // RoleBindings returns a RoleBindingInformer. - RoleBindings() RoleBindingInformer - // RoleBindingRestrictions returns a RoleBindingRestrictionInformer. - RoleBindingRestrictions() RoleBindingRestrictionInformer -} - -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} -} - -// ClusterRoles returns a ClusterRoleInformer. -func (v *version) ClusterRoles() ClusterRoleInformer { - return &clusterRoleInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} - -// ClusterRoleBindings returns a ClusterRoleBindingInformer. -func (v *version) ClusterRoleBindings() ClusterRoleBindingInformer { - return &clusterRoleBindingInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} - -// Roles returns a RoleInformer. -func (v *version) Roles() RoleInformer { - return &roleInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} - -// RoleBindings returns a RoleBindingInformer. -func (v *version) RoleBindings() RoleBindingInformer { - return &roleBindingInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} - -// RoleBindingRestrictions returns a RoleBindingRestrictionInformer. -func (v *version) RoleBindingRestrictions() RoleBindingRestrictionInformer { - return &roleBindingRestrictionInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} diff --git a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/role.go b/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/role.go deleted file mode 100644 index d422c78276e27..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/role.go +++ /dev/null @@ -1,74 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - authorizationv1 "github.com/openshift/api/authorization/v1" - versioned "github.com/openshift/client-go/authorization/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/authorization/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/authorization/listers/authorization/v1" - metav1 "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" -) - -// RoleInformer provides access to a shared informer and lister for -// Roles. -type RoleInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.RoleLister -} - -type roleInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewRoleInformer constructs a new informer for Role 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 NewRoleInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredRoleInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredRoleInformer constructs a new informer for Role 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 NewFilteredRoleInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.AuthorizationV1().Roles(namespace).List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.AuthorizationV1().Roles(namespace).Watch(context.TODO(), options) - }, - }, - &authorizationv1.Role{}, - resyncPeriod, - indexers, - ) -} - -func (f *roleInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredRoleInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *roleInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&authorizationv1.Role{}, f.defaultInformer) -} - -func (f *roleInformer) Lister() v1.RoleLister { - return v1.NewRoleLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/rolebinding.go b/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/rolebinding.go deleted file mode 100644 index 80afa1f3a233a..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/rolebinding.go +++ /dev/null @@ -1,74 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - authorizationv1 "github.com/openshift/api/authorization/v1" - versioned "github.com/openshift/client-go/authorization/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/authorization/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/authorization/listers/authorization/v1" - metav1 "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" -) - -// RoleBindingInformer provides access to a shared informer and lister for -// RoleBindings. -type RoleBindingInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.RoleBindingLister -} - -type roleBindingInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewRoleBindingInformer constructs a new informer for RoleBinding 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 NewRoleBindingInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredRoleBindingInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredRoleBindingInformer constructs a new informer for RoleBinding 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 NewFilteredRoleBindingInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.AuthorizationV1().RoleBindings(namespace).List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.AuthorizationV1().RoleBindings(namespace).Watch(context.TODO(), options) - }, - }, - &authorizationv1.RoleBinding{}, - resyncPeriod, - indexers, - ) -} - -func (f *roleBindingInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredRoleBindingInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *roleBindingInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&authorizationv1.RoleBinding{}, f.defaultInformer) -} - -func (f *roleBindingInformer) Lister() v1.RoleBindingLister { - return v1.NewRoleBindingLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/rolebindingrestriction.go b/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/rolebindingrestriction.go deleted file mode 100644 index 1f6b462476a9d..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/authorization/v1/rolebindingrestriction.go +++ /dev/null @@ -1,74 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - authorizationv1 "github.com/openshift/api/authorization/v1" - versioned "github.com/openshift/client-go/authorization/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/authorization/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/authorization/listers/authorization/v1" - metav1 "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" -) - -// RoleBindingRestrictionInformer provides access to a shared informer and lister for -// RoleBindingRestrictions. -type RoleBindingRestrictionInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.RoleBindingRestrictionLister -} - -type roleBindingRestrictionInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewRoleBindingRestrictionInformer constructs a new informer for RoleBindingRestriction 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 NewRoleBindingRestrictionInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredRoleBindingRestrictionInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredRoleBindingRestrictionInformer constructs a new informer for RoleBindingRestriction 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 NewFilteredRoleBindingRestrictionInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.AuthorizationV1().RoleBindingRestrictions(namespace).List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.AuthorizationV1().RoleBindingRestrictions(namespace).Watch(context.TODO(), options) - }, - }, - &authorizationv1.RoleBindingRestriction{}, - resyncPeriod, - indexers, - ) -} - -func (f *roleBindingRestrictionInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredRoleBindingRestrictionInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *roleBindingRestrictionInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&authorizationv1.RoleBindingRestriction{}, f.defaultInformer) -} - -func (f *roleBindingRestrictionInformer) Lister() v1.RoleBindingRestrictionLister { - return v1.NewRoleBindingRestrictionLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/factory.go b/vendor/github.com/openshift/client-go/authorization/informers/externalversions/factory.go deleted file mode 100644 index 91878ff07535b..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/factory.go +++ /dev/null @@ -1,164 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - reflect "reflect" - sync "sync" - time "time" - - versioned "github.com/openshift/client-go/authorization/clientset/versioned" - authorization "github.com/openshift/client-go/authorization/informers/externalversions/authorization" - internalinterfaces "github.com/openshift/client-go/authorization/informers/externalversions/internalinterfaces" - 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 versioned.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 versioned.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 versioned.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 versioned.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 - - Authorization() authorization.Interface -} - -func (f *sharedInformerFactory) Authorization() authorization.Interface { - return authorization.New(f, f.namespace, f.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/generic.go b/vendor/github.com/openshift/client-go/authorization/informers/externalversions/generic.go deleted file mode 100644 index ed77429a852cb..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/generic.go +++ /dev/null @@ -1,54 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - "fmt" - - v1 "github.com/openshift/api/authorization/v1" - 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=authorization.openshift.io, Version=v1 - case v1.SchemeGroupVersion.WithResource("clusterroles"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Authorization().V1().ClusterRoles().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("clusterrolebindings"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Authorization().V1().ClusterRoleBindings().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("roles"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Authorization().V1().Roles().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("rolebindings"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Authorization().V1().RoleBindings().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("rolebindingrestrictions"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Authorization().V1().RoleBindingRestrictions().Informer()}, nil - - } - - return nil, fmt.Errorf("no informer found for %v", resource) -} diff --git a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/github.com/openshift/client-go/authorization/informers/externalversions/internalinterfaces/factory_interfaces.go deleted file mode 100644 index d0a681edd2827..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/informers/externalversions/internalinterfaces/factory_interfaces.go +++ /dev/null @@ -1,24 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package internalinterfaces - -import ( - time "time" - - versioned "github.com/openshift/client-go/authorization/clientset/versioned" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - cache "k8s.io/client-go/tools/cache" -) - -// NewInformerFunc takes versioned.Interface and time.Duration to return a SharedIndexInformer. -type NewInformerFunc func(versioned.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/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/clusterrole.go b/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/clusterrole.go deleted file mode 100644 index 07e5f73f697e1..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/clusterrole.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/authorization/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// ClusterRoleLister helps list ClusterRoles. -// All objects returned here must be treated as read-only. -type ClusterRoleLister interface { - // List lists all ClusterRoles in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.ClusterRole, err error) - // Get retrieves the ClusterRole from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.ClusterRole, error) - ClusterRoleListerExpansion -} - -// clusterRoleLister implements the ClusterRoleLister interface. -type clusterRoleLister struct { - indexer cache.Indexer -} - -// NewClusterRoleLister returns a new ClusterRoleLister. -func NewClusterRoleLister(indexer cache.Indexer) ClusterRoleLister { - return &clusterRoleLister{indexer: indexer} -} - -// List lists all ClusterRoles in the indexer. -func (s *clusterRoleLister) List(selector labels.Selector) (ret []*v1.ClusterRole, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.ClusterRole)) - }) - return ret, err -} - -// Get retrieves the ClusterRole from the index for a given name. -func (s *clusterRoleLister) Get(name string) (*v1.ClusterRole, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("clusterrole"), name) - } - return obj.(*v1.ClusterRole), nil -} diff --git a/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/clusterrolebinding.go b/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/clusterrolebinding.go deleted file mode 100644 index cf643af1e4ee3..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/clusterrolebinding.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/authorization/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// ClusterRoleBindingLister helps list ClusterRoleBindings. -// All objects returned here must be treated as read-only. -type ClusterRoleBindingLister interface { - // List lists all ClusterRoleBindings in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.ClusterRoleBinding, err error) - // Get retrieves the ClusterRoleBinding from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.ClusterRoleBinding, error) - ClusterRoleBindingListerExpansion -} - -// clusterRoleBindingLister implements the ClusterRoleBindingLister interface. -type clusterRoleBindingLister struct { - indexer cache.Indexer -} - -// NewClusterRoleBindingLister returns a new ClusterRoleBindingLister. -func NewClusterRoleBindingLister(indexer cache.Indexer) ClusterRoleBindingLister { - return &clusterRoleBindingLister{indexer: indexer} -} - -// List lists all ClusterRoleBindings in the indexer. -func (s *clusterRoleBindingLister) List(selector labels.Selector) (ret []*v1.ClusterRoleBinding, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.ClusterRoleBinding)) - }) - return ret, err -} - -// Get retrieves the ClusterRoleBinding from the index for a given name. -func (s *clusterRoleBindingLister) Get(name string) (*v1.ClusterRoleBinding, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("clusterrolebinding"), name) - } - return obj.(*v1.ClusterRoleBinding), nil -} diff --git a/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/expansion_generated.go b/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/expansion_generated.go deleted file mode 100644 index 0c01759a3d461..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/expansion_generated.go +++ /dev/null @@ -1,35 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -// ClusterRoleListerExpansion allows custom methods to be added to -// ClusterRoleLister. -type ClusterRoleListerExpansion interface{} - -// ClusterRoleBindingListerExpansion allows custom methods to be added to -// ClusterRoleBindingLister. -type ClusterRoleBindingListerExpansion interface{} - -// RoleListerExpansion allows custom methods to be added to -// RoleLister. -type RoleListerExpansion interface{} - -// RoleNamespaceListerExpansion allows custom methods to be added to -// RoleNamespaceLister. -type RoleNamespaceListerExpansion interface{} - -// RoleBindingListerExpansion allows custom methods to be added to -// RoleBindingLister. -type RoleBindingListerExpansion interface{} - -// RoleBindingNamespaceListerExpansion allows custom methods to be added to -// RoleBindingNamespaceLister. -type RoleBindingNamespaceListerExpansion interface{} - -// RoleBindingRestrictionListerExpansion allows custom methods to be added to -// RoleBindingRestrictionLister. -type RoleBindingRestrictionListerExpansion interface{} - -// RoleBindingRestrictionNamespaceListerExpansion allows custom methods to be added to -// RoleBindingRestrictionNamespaceLister. -type RoleBindingRestrictionNamespaceListerExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/role.go b/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/role.go deleted file mode 100644 index 0a898491a06ed..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/role.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/authorization/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// RoleLister helps list Roles. -// All objects returned here must be treated as read-only. -type RoleLister interface { - // List lists all Roles in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.Role, err error) - // Roles returns an object that can list and get Roles. - Roles(namespace string) RoleNamespaceLister - RoleListerExpansion -} - -// roleLister implements the RoleLister interface. -type roleLister struct { - indexer cache.Indexer -} - -// NewRoleLister returns a new RoleLister. -func NewRoleLister(indexer cache.Indexer) RoleLister { - return &roleLister{indexer: indexer} -} - -// List lists all Roles in the indexer. -func (s *roleLister) List(selector labels.Selector) (ret []*v1.Role, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.Role)) - }) - return ret, err -} - -// Roles returns an object that can list and get Roles. -func (s *roleLister) Roles(namespace string) RoleNamespaceLister { - return roleNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// RoleNamespaceLister helps list and get Roles. -// All objects returned here must be treated as read-only. -type RoleNamespaceLister interface { - // List lists all Roles in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.Role, err error) - // Get retrieves the Role from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.Role, error) - RoleNamespaceListerExpansion -} - -// roleNamespaceLister implements the RoleNamespaceLister -// interface. -type roleNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all Roles in the indexer for a given namespace. -func (s roleNamespaceLister) List(selector labels.Selector) (ret []*v1.Role, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1.Role)) - }) - return ret, err -} - -// Get retrieves the Role from the indexer for a given namespace and name. -func (s roleNamespaceLister) Get(name string) (*v1.Role, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("role"), name) - } - return obj.(*v1.Role), nil -} diff --git a/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/rolebinding.go b/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/rolebinding.go deleted file mode 100644 index 8fb116acffb1f..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/rolebinding.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/authorization/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// RoleBindingLister helps list RoleBindings. -// All objects returned here must be treated as read-only. -type RoleBindingLister interface { - // List lists all RoleBindings in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.RoleBinding, err error) - // RoleBindings returns an object that can list and get RoleBindings. - RoleBindings(namespace string) RoleBindingNamespaceLister - RoleBindingListerExpansion -} - -// roleBindingLister implements the RoleBindingLister interface. -type roleBindingLister struct { - indexer cache.Indexer -} - -// NewRoleBindingLister returns a new RoleBindingLister. -func NewRoleBindingLister(indexer cache.Indexer) RoleBindingLister { - return &roleBindingLister{indexer: indexer} -} - -// List lists all RoleBindings in the indexer. -func (s *roleBindingLister) List(selector labels.Selector) (ret []*v1.RoleBinding, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.RoleBinding)) - }) - return ret, err -} - -// RoleBindings returns an object that can list and get RoleBindings. -func (s *roleBindingLister) RoleBindings(namespace string) RoleBindingNamespaceLister { - return roleBindingNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// RoleBindingNamespaceLister helps list and get RoleBindings. -// All objects returned here must be treated as read-only. -type RoleBindingNamespaceLister interface { - // List lists all RoleBindings in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.RoleBinding, err error) - // Get retrieves the RoleBinding from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.RoleBinding, error) - RoleBindingNamespaceListerExpansion -} - -// roleBindingNamespaceLister implements the RoleBindingNamespaceLister -// interface. -type roleBindingNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all RoleBindings in the indexer for a given namespace. -func (s roleBindingNamespaceLister) List(selector labels.Selector) (ret []*v1.RoleBinding, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1.RoleBinding)) - }) - return ret, err -} - -// Get retrieves the RoleBinding from the indexer for a given namespace and name. -func (s roleBindingNamespaceLister) Get(name string) (*v1.RoleBinding, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("rolebinding"), name) - } - return obj.(*v1.RoleBinding), nil -} diff --git a/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/rolebindingrestriction.go b/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/rolebindingrestriction.go deleted file mode 100644 index 7c23a96e6c8ae..0000000000000 --- a/vendor/github.com/openshift/client-go/authorization/listers/authorization/v1/rolebindingrestriction.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/authorization/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// RoleBindingRestrictionLister helps list RoleBindingRestrictions. -// All objects returned here must be treated as read-only. -type RoleBindingRestrictionLister interface { - // List lists all RoleBindingRestrictions in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.RoleBindingRestriction, err error) - // RoleBindingRestrictions returns an object that can list and get RoleBindingRestrictions. - RoleBindingRestrictions(namespace string) RoleBindingRestrictionNamespaceLister - RoleBindingRestrictionListerExpansion -} - -// roleBindingRestrictionLister implements the RoleBindingRestrictionLister interface. -type roleBindingRestrictionLister struct { - indexer cache.Indexer -} - -// NewRoleBindingRestrictionLister returns a new RoleBindingRestrictionLister. -func NewRoleBindingRestrictionLister(indexer cache.Indexer) RoleBindingRestrictionLister { - return &roleBindingRestrictionLister{indexer: indexer} -} - -// List lists all RoleBindingRestrictions in the indexer. -func (s *roleBindingRestrictionLister) List(selector labels.Selector) (ret []*v1.RoleBindingRestriction, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.RoleBindingRestriction)) - }) - return ret, err -} - -// RoleBindingRestrictions returns an object that can list and get RoleBindingRestrictions. -func (s *roleBindingRestrictionLister) RoleBindingRestrictions(namespace string) RoleBindingRestrictionNamespaceLister { - return roleBindingRestrictionNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// RoleBindingRestrictionNamespaceLister helps list and get RoleBindingRestrictions. -// All objects returned here must be treated as read-only. -type RoleBindingRestrictionNamespaceLister interface { - // List lists all RoleBindingRestrictions in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.RoleBindingRestriction, err error) - // Get retrieves the RoleBindingRestriction from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.RoleBindingRestriction, error) - RoleBindingRestrictionNamespaceListerExpansion -} - -// roleBindingRestrictionNamespaceLister implements the RoleBindingRestrictionNamespaceLister -// interface. -type roleBindingRestrictionNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all RoleBindingRestrictions in the indexer for a given namespace. -func (s roleBindingRestrictionNamespaceLister) List(selector labels.Selector) (ret []*v1.RoleBindingRestriction, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1.RoleBindingRestriction)) - }) - return ret, err -} - -// Get retrieves the RoleBindingRestriction from the indexer for a given namespace and name. -func (s roleBindingRestrictionNamespaceLister) Get(name string) (*v1.RoleBindingRestriction, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("rolebindingrestriction"), name) - } - return obj.(*v1.RoleBindingRestriction), nil -} diff --git a/vendor/github.com/openshift/client-go/build/clientset/versioned/clientset.go b/vendor/github.com/openshift/client-go/build/clientset/versioned/clientset.go deleted file mode 100644 index 3b5bf5b349243..0000000000000 --- a/vendor/github.com/openshift/client-go/build/clientset/versioned/clientset.go +++ /dev/null @@ -1,81 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package versioned - -import ( - "fmt" - - buildv1 "github.com/openshift/client-go/build/clientset/versioned/typed/build/v1" - 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 - BuildV1() buildv1.BuildV1Interface -} - -// Clientset contains the clients for groups. Each group has exactly one -// version included in a Clientset. -type Clientset struct { - *discovery.DiscoveryClient - buildV1 *buildv1.BuildV1Client -} - -// BuildV1 retrieves the BuildV1Client -func (c *Clientset) BuildV1() buildv1.BuildV1Interface { - return c.buildV1 -} - -// 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.buildV1, err = buildv1.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.buildV1 = buildv1.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.buildV1 = buildv1.New(c) - - cs.DiscoveryClient = discovery.NewDiscoveryClient(c) - return &cs -} diff --git a/vendor/github.com/openshift/client-go/build/clientset/versioned/doc.go b/vendor/github.com/openshift/client-go/build/clientset/versioned/doc.go deleted file mode 100644 index 0e0c2a8900e2c..0000000000000 --- a/vendor/github.com/openshift/client-go/build/clientset/versioned/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated clientset. -package versioned diff --git a/vendor/github.com/openshift/client-go/build/clientset/versioned/scheme/doc.go b/vendor/github.com/openshift/client-go/build/clientset/versioned/scheme/doc.go deleted file mode 100644 index 14db57a58f8d2..0000000000000 --- a/vendor/github.com/openshift/client-go/build/clientset/versioned/scheme/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package contains the scheme of the automatically generated clientset. -package scheme diff --git a/vendor/github.com/openshift/client-go/build/clientset/versioned/scheme/register.go b/vendor/github.com/openshift/client-go/build/clientset/versioned/scheme/register.go deleted file mode 100644 index 79dc180e4d2c1..0000000000000 --- a/vendor/github.com/openshift/client-go/build/clientset/versioned/scheme/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package scheme - -import ( - buildv1 "github.com/openshift/api/build/v1" - 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{ - buildv1.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/vendor/github.com/openshift/client-go/build/clientset/versioned/typed/build/v1/build.go b/vendor/github.com/openshift/client-go/build/clientset/versioned/typed/build/v1/build.go deleted file mode 100644 index 5ae828789804a..0000000000000 --- a/vendor/github.com/openshift/client-go/build/clientset/versioned/typed/build/v1/build.go +++ /dev/null @@ -1,212 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/build/v1" - scheme "github.com/openshift/client-go/build/clientset/versioned/scheme" - metav1 "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" -) - -// BuildsGetter has a method to return a BuildInterface. -// A group's client should implement this interface. -type BuildsGetter interface { - Builds(namespace string) BuildInterface -} - -// BuildInterface has methods to work with Build resources. -type BuildInterface interface { - Create(ctx context.Context, build *v1.Build, opts metav1.CreateOptions) (*v1.Build, error) - Update(ctx context.Context, build *v1.Build, opts metav1.UpdateOptions) (*v1.Build, error) - UpdateStatus(ctx context.Context, build *v1.Build, opts metav1.UpdateOptions) (*v1.Build, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Build, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.BuildList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Build, err error) - UpdateDetails(ctx context.Context, buildName string, build *v1.Build, opts metav1.UpdateOptions) (*v1.Build, error) - Clone(ctx context.Context, buildName string, buildRequest *v1.BuildRequest, opts metav1.CreateOptions) (*v1.Build, error) - - BuildExpansion -} - -// builds implements BuildInterface -type builds struct { - client rest.Interface - ns string -} - -// newBuilds returns a Builds -func newBuilds(c *BuildV1Client, namespace string) *builds { - return &builds{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the build, and returns the corresponding build object, and an error if there is any. -func (c *builds) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Build, err error) { - result = &v1.Build{} - err = c.client.Get(). - Namespace(c.ns). - Resource("builds"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Builds that match those selectors. -func (c *builds) List(ctx context.Context, opts metav1.ListOptions) (result *v1.BuildList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.BuildList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("builds"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested builds. -func (c *builds) Watch(ctx context.Context, opts metav1.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("builds"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a build and creates it. Returns the server's representation of the build, and an error, if there is any. -func (c *builds) Create(ctx context.Context, build *v1.Build, opts metav1.CreateOptions) (result *v1.Build, err error) { - result = &v1.Build{} - err = c.client.Post(). - Namespace(c.ns). - Resource("builds"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(build). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a build and updates it. Returns the server's representation of the build, and an error, if there is any. -func (c *builds) Update(ctx context.Context, build *v1.Build, opts metav1.UpdateOptions) (result *v1.Build, err error) { - result = &v1.Build{} - err = c.client.Put(). - Namespace(c.ns). - Resource("builds"). - Name(build.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(build). - Do(ctx). - 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 *builds) UpdateStatus(ctx context.Context, build *v1.Build, opts metav1.UpdateOptions) (result *v1.Build, err error) { - result = &v1.Build{} - err = c.client.Put(). - Namespace(c.ns). - Resource("builds"). - Name(build.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(build). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the build and deletes it. Returns an error if one occurs. -func (c *builds) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("builds"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *builds) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Namespace(c.ns). - Resource("builds"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched build. -func (c *builds) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Build, err error) { - result = &v1.Build{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("builds"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} - -// UpdateDetails takes the top resource name and the representation of a build and updates it. Returns the server's representation of the build, and an error, if there is any. -func (c *builds) UpdateDetails(ctx context.Context, buildName string, build *v1.Build, opts metav1.UpdateOptions) (result *v1.Build, err error) { - result = &v1.Build{} - err = c.client.Put(). - Namespace(c.ns). - Resource("builds"). - Name(buildName). - SubResource("details"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(build). - Do(ctx). - Into(result) - return -} - -// Clone takes the representation of a buildRequest and creates it. Returns the server's representation of the build, and an error, if there is any. -func (c *builds) Clone(ctx context.Context, buildName string, buildRequest *v1.BuildRequest, opts metav1.CreateOptions) (result *v1.Build, err error) { - result = &v1.Build{} - err = c.client.Post(). - Namespace(c.ns). - Resource("builds"). - Name(buildName). - SubResource("clone"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(buildRequest). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/build/clientset/versioned/typed/build/v1/build_client.go b/vendor/github.com/openshift/client-go/build/clientset/versioned/typed/build/v1/build_client.go deleted file mode 100644 index d16ddad404122..0000000000000 --- a/vendor/github.com/openshift/client-go/build/clientset/versioned/typed/build/v1/build_client.go +++ /dev/null @@ -1,78 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/build/v1" - "github.com/openshift/client-go/build/clientset/versioned/scheme" - rest "k8s.io/client-go/rest" -) - -type BuildV1Interface interface { - RESTClient() rest.Interface - BuildsGetter - BuildConfigsGetter -} - -// BuildV1Client is used to interact with features provided by the build.openshift.io group. -type BuildV1Client struct { - restClient rest.Interface -} - -func (c *BuildV1Client) Builds(namespace string) BuildInterface { - return newBuilds(c, namespace) -} - -func (c *BuildV1Client) BuildConfigs(namespace string) BuildConfigInterface { - return newBuildConfigs(c, namespace) -} - -// NewForConfig creates a new BuildV1Client for the given config. -func NewForConfig(c *rest.Config) (*BuildV1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientFor(&config) - if err != nil { - return nil, err - } - return &BuildV1Client{client}, nil -} - -// NewForConfigOrDie creates a new BuildV1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *BuildV1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new BuildV1Client for the given RESTClient. -func New(c rest.Interface) *BuildV1Client { - return &BuildV1Client{c} -} - -func setConfigDefaults(config *rest.Config) error { - gv := v1.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 *BuildV1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/vendor/github.com/openshift/client-go/build/clientset/versioned/typed/build/v1/buildconfig.go b/vendor/github.com/openshift/client-go/build/clientset/versioned/typed/build/v1/buildconfig.go deleted file mode 100644 index 7a8f70008838c..0000000000000 --- a/vendor/github.com/openshift/client-go/build/clientset/versioned/typed/build/v1/buildconfig.go +++ /dev/null @@ -1,196 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/build/v1" - scheme "github.com/openshift/client-go/build/clientset/versioned/scheme" - metav1 "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" -) - -// BuildConfigsGetter has a method to return a BuildConfigInterface. -// A group's client should implement this interface. -type BuildConfigsGetter interface { - BuildConfigs(namespace string) BuildConfigInterface -} - -// BuildConfigInterface has methods to work with BuildConfig resources. -type BuildConfigInterface interface { - Create(ctx context.Context, buildConfig *v1.BuildConfig, opts metav1.CreateOptions) (*v1.BuildConfig, error) - Update(ctx context.Context, buildConfig *v1.BuildConfig, opts metav1.UpdateOptions) (*v1.BuildConfig, error) - UpdateStatus(ctx context.Context, buildConfig *v1.BuildConfig, opts metav1.UpdateOptions) (*v1.BuildConfig, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.BuildConfig, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.BuildConfigList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.BuildConfig, err error) - Instantiate(ctx context.Context, buildConfigName string, buildRequest *v1.BuildRequest, opts metav1.CreateOptions) (*v1.Build, error) - - BuildConfigExpansion -} - -// buildConfigs implements BuildConfigInterface -type buildConfigs struct { - client rest.Interface - ns string -} - -// newBuildConfigs returns a BuildConfigs -func newBuildConfigs(c *BuildV1Client, namespace string) *buildConfigs { - return &buildConfigs{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the buildConfig, and returns the corresponding buildConfig object, and an error if there is any. -func (c *buildConfigs) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.BuildConfig, err error) { - result = &v1.BuildConfig{} - err = c.client.Get(). - Namespace(c.ns). - Resource("buildconfigs"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of BuildConfigs that match those selectors. -func (c *buildConfigs) List(ctx context.Context, opts metav1.ListOptions) (result *v1.BuildConfigList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.BuildConfigList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("buildconfigs"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested buildConfigs. -func (c *buildConfigs) Watch(ctx context.Context, opts metav1.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("buildconfigs"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a buildConfig and creates it. Returns the server's representation of the buildConfig, and an error, if there is any. -func (c *buildConfigs) Create(ctx context.Context, buildConfig *v1.BuildConfig, opts metav1.CreateOptions) (result *v1.BuildConfig, err error) { - result = &v1.BuildConfig{} - err = c.client.Post(). - Namespace(c.ns). - Resource("buildconfigs"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(buildConfig). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a buildConfig and updates it. Returns the server's representation of the buildConfig, and an error, if there is any. -func (c *buildConfigs) Update(ctx context.Context, buildConfig *v1.BuildConfig, opts metav1.UpdateOptions) (result *v1.BuildConfig, err error) { - result = &v1.BuildConfig{} - err = c.client.Put(). - Namespace(c.ns). - Resource("buildconfigs"). - Name(buildConfig.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(buildConfig). - Do(ctx). - 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 *buildConfigs) UpdateStatus(ctx context.Context, buildConfig *v1.BuildConfig, opts metav1.UpdateOptions) (result *v1.BuildConfig, err error) { - result = &v1.BuildConfig{} - err = c.client.Put(). - Namespace(c.ns). - Resource("buildconfigs"). - Name(buildConfig.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(buildConfig). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the buildConfig and deletes it. Returns an error if one occurs. -func (c *buildConfigs) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("buildconfigs"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *buildConfigs) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Namespace(c.ns). - Resource("buildconfigs"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched buildConfig. -func (c *buildConfigs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.BuildConfig, err error) { - result = &v1.BuildConfig{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("buildconfigs"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} - -// Instantiate takes the representation of a buildRequest and creates it. Returns the server's representation of the build, and an error, if there is any. -func (c *buildConfigs) Instantiate(ctx context.Context, buildConfigName string, buildRequest *v1.BuildRequest, opts metav1.CreateOptions) (result *v1.Build, err error) { - result = &v1.Build{} - err = c.client.Post(). - Namespace(c.ns). - Resource("buildconfigs"). - Name(buildConfigName). - SubResource("instantiate"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(buildRequest). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/build/clientset/versioned/typed/build/v1/doc.go b/vendor/github.com/openshift/client-go/build/clientset/versioned/typed/build/v1/doc.go deleted file mode 100644 index 225e6b2be34f2..0000000000000 --- a/vendor/github.com/openshift/client-go/build/clientset/versioned/typed/build/v1/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated typed clients. -package v1 diff --git a/vendor/github.com/openshift/client-go/build/clientset/versioned/typed/build/v1/generated_expansion.go b/vendor/github.com/openshift/client-go/build/clientset/versioned/typed/build/v1/generated_expansion.go deleted file mode 100644 index d2a1f885c056f..0000000000000 --- a/vendor/github.com/openshift/client-go/build/clientset/versioned/typed/build/v1/generated_expansion.go +++ /dev/null @@ -1,7 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -type BuildExpansion interface{} - -type BuildConfigExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/build/informers/externalversions/build/interface.go b/vendor/github.com/openshift/client-go/build/informers/externalversions/build/interface.go deleted file mode 100644 index 01a651928a8b1..0000000000000 --- a/vendor/github.com/openshift/client-go/build/informers/externalversions/build/interface.go +++ /dev/null @@ -1,30 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package build - -import ( - v1 "github.com/openshift/client-go/build/informers/externalversions/build/v1" - internalinterfaces "github.com/openshift/client-go/build/informers/externalversions/internalinterfaces" -) - -// Interface provides access to each of this group's versions. -type Interface interface { - // V1 provides access to shared informers for resources in V1. - V1() v1.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} -} - -// V1 returns a new v1.Interface. -func (g *group) V1() v1.Interface { - return v1.New(g.factory, g.namespace, g.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/build/informers/externalversions/build/v1/build.go b/vendor/github.com/openshift/client-go/build/informers/externalversions/build/v1/build.go deleted file mode 100644 index 2055ed96f5752..0000000000000 --- a/vendor/github.com/openshift/client-go/build/informers/externalversions/build/v1/build.go +++ /dev/null @@ -1,74 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - buildv1 "github.com/openshift/api/build/v1" - versioned "github.com/openshift/client-go/build/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/build/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/build/listers/build/v1" - metav1 "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" -) - -// BuildInformer provides access to a shared informer and lister for -// Builds. -type BuildInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.BuildLister -} - -type buildInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewBuildInformer constructs a new informer for Build 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 NewBuildInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredBuildInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredBuildInformer constructs a new informer for Build 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 NewFilteredBuildInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.BuildV1().Builds(namespace).List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.BuildV1().Builds(namespace).Watch(context.TODO(), options) - }, - }, - &buildv1.Build{}, - resyncPeriod, - indexers, - ) -} - -func (f *buildInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredBuildInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *buildInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&buildv1.Build{}, f.defaultInformer) -} - -func (f *buildInformer) Lister() v1.BuildLister { - return v1.NewBuildLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/build/informers/externalversions/build/v1/buildconfig.go b/vendor/github.com/openshift/client-go/build/informers/externalversions/build/v1/buildconfig.go deleted file mode 100644 index 28012f8c6dcf5..0000000000000 --- a/vendor/github.com/openshift/client-go/build/informers/externalversions/build/v1/buildconfig.go +++ /dev/null @@ -1,74 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - buildv1 "github.com/openshift/api/build/v1" - versioned "github.com/openshift/client-go/build/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/build/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/build/listers/build/v1" - metav1 "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" -) - -// BuildConfigInformer provides access to a shared informer and lister for -// BuildConfigs. -type BuildConfigInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.BuildConfigLister -} - -type buildConfigInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewBuildConfigInformer constructs a new informer for BuildConfig 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 NewBuildConfigInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredBuildConfigInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredBuildConfigInformer constructs a new informer for BuildConfig 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 NewFilteredBuildConfigInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.BuildV1().BuildConfigs(namespace).List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.BuildV1().BuildConfigs(namespace).Watch(context.TODO(), options) - }, - }, - &buildv1.BuildConfig{}, - resyncPeriod, - indexers, - ) -} - -func (f *buildConfigInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredBuildConfigInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *buildConfigInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&buildv1.BuildConfig{}, f.defaultInformer) -} - -func (f *buildConfigInformer) Lister() v1.BuildConfigLister { - return v1.NewBuildConfigLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/build/informers/externalversions/build/v1/interface.go b/vendor/github.com/openshift/client-go/build/informers/externalversions/build/v1/interface.go deleted file mode 100644 index da69fc9bb6247..0000000000000 --- a/vendor/github.com/openshift/client-go/build/informers/externalversions/build/v1/interface.go +++ /dev/null @@ -1,36 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - internalinterfaces "github.com/openshift/client-go/build/informers/externalversions/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // Builds returns a BuildInformer. - Builds() BuildInformer - // BuildConfigs returns a BuildConfigInformer. - BuildConfigs() BuildConfigInformer -} - -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} -} - -// Builds returns a BuildInformer. -func (v *version) Builds() BuildInformer { - return &buildInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} - -// BuildConfigs returns a BuildConfigInformer. -func (v *version) BuildConfigs() BuildConfigInformer { - return &buildConfigInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} diff --git a/vendor/github.com/openshift/client-go/build/informers/externalversions/factory.go b/vendor/github.com/openshift/client-go/build/informers/externalversions/factory.go deleted file mode 100644 index fadac908e0479..0000000000000 --- a/vendor/github.com/openshift/client-go/build/informers/externalversions/factory.go +++ /dev/null @@ -1,164 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - reflect "reflect" - sync "sync" - time "time" - - versioned "github.com/openshift/client-go/build/clientset/versioned" - build "github.com/openshift/client-go/build/informers/externalversions/build" - internalinterfaces "github.com/openshift/client-go/build/informers/externalversions/internalinterfaces" - 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 versioned.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 versioned.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 versioned.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 versioned.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 - - Build() build.Interface -} - -func (f *sharedInformerFactory) Build() build.Interface { - return build.New(f, f.namespace, f.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/build/informers/externalversions/generic.go b/vendor/github.com/openshift/client-go/build/informers/externalversions/generic.go deleted file mode 100644 index e8b2035b702c2..0000000000000 --- a/vendor/github.com/openshift/client-go/build/informers/externalversions/generic.go +++ /dev/null @@ -1,48 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - "fmt" - - v1 "github.com/openshift/api/build/v1" - 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=build.openshift.io, Version=v1 - case v1.SchemeGroupVersion.WithResource("builds"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Build().V1().Builds().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("buildconfigs"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Build().V1().BuildConfigs().Informer()}, nil - - } - - return nil, fmt.Errorf("no informer found for %v", resource) -} diff --git a/vendor/github.com/openshift/client-go/build/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/github.com/openshift/client-go/build/informers/externalversions/internalinterfaces/factory_interfaces.go deleted file mode 100644 index 1bcbd5975acf7..0000000000000 --- a/vendor/github.com/openshift/client-go/build/informers/externalversions/internalinterfaces/factory_interfaces.go +++ /dev/null @@ -1,24 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package internalinterfaces - -import ( - time "time" - - versioned "github.com/openshift/client-go/build/clientset/versioned" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - cache "k8s.io/client-go/tools/cache" -) - -// NewInformerFunc takes versioned.Interface and time.Duration to return a SharedIndexInformer. -type NewInformerFunc func(versioned.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/vendor/github.com/openshift/client-go/build/listers/build/v1/build.go b/vendor/github.com/openshift/client-go/build/listers/build/v1/build.go deleted file mode 100644 index e072f9bac85e7..0000000000000 --- a/vendor/github.com/openshift/client-go/build/listers/build/v1/build.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/build/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// BuildLister helps list Builds. -// All objects returned here must be treated as read-only. -type BuildLister interface { - // List lists all Builds in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.Build, err error) - // Builds returns an object that can list and get Builds. - Builds(namespace string) BuildNamespaceLister - BuildListerExpansion -} - -// buildLister implements the BuildLister interface. -type buildLister struct { - indexer cache.Indexer -} - -// NewBuildLister returns a new BuildLister. -func NewBuildLister(indexer cache.Indexer) BuildLister { - return &buildLister{indexer: indexer} -} - -// List lists all Builds in the indexer. -func (s *buildLister) List(selector labels.Selector) (ret []*v1.Build, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.Build)) - }) - return ret, err -} - -// Builds returns an object that can list and get Builds. -func (s *buildLister) Builds(namespace string) BuildNamespaceLister { - return buildNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// BuildNamespaceLister helps list and get Builds. -// All objects returned here must be treated as read-only. -type BuildNamespaceLister interface { - // List lists all Builds in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.Build, err error) - // Get retrieves the Build from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.Build, error) - BuildNamespaceListerExpansion -} - -// buildNamespaceLister implements the BuildNamespaceLister -// interface. -type buildNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all Builds in the indexer for a given namespace. -func (s buildNamespaceLister) List(selector labels.Selector) (ret []*v1.Build, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1.Build)) - }) - return ret, err -} - -// Get retrieves the Build from the indexer for a given namespace and name. -func (s buildNamespaceLister) Get(name string) (*v1.Build, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("build"), name) - } - return obj.(*v1.Build), nil -} diff --git a/vendor/github.com/openshift/client-go/build/listers/build/v1/buildconfig.go b/vendor/github.com/openshift/client-go/build/listers/build/v1/buildconfig.go deleted file mode 100644 index d2bbdb4ec6a55..0000000000000 --- a/vendor/github.com/openshift/client-go/build/listers/build/v1/buildconfig.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/build/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// BuildConfigLister helps list BuildConfigs. -// All objects returned here must be treated as read-only. -type BuildConfigLister interface { - // List lists all BuildConfigs in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.BuildConfig, err error) - // BuildConfigs returns an object that can list and get BuildConfigs. - BuildConfigs(namespace string) BuildConfigNamespaceLister - BuildConfigListerExpansion -} - -// buildConfigLister implements the BuildConfigLister interface. -type buildConfigLister struct { - indexer cache.Indexer -} - -// NewBuildConfigLister returns a new BuildConfigLister. -func NewBuildConfigLister(indexer cache.Indexer) BuildConfigLister { - return &buildConfigLister{indexer: indexer} -} - -// List lists all BuildConfigs in the indexer. -func (s *buildConfigLister) List(selector labels.Selector) (ret []*v1.BuildConfig, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.BuildConfig)) - }) - return ret, err -} - -// BuildConfigs returns an object that can list and get BuildConfigs. -func (s *buildConfigLister) BuildConfigs(namespace string) BuildConfigNamespaceLister { - return buildConfigNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// BuildConfigNamespaceLister helps list and get BuildConfigs. -// All objects returned here must be treated as read-only. -type BuildConfigNamespaceLister interface { - // List lists all BuildConfigs in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.BuildConfig, err error) - // Get retrieves the BuildConfig from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.BuildConfig, error) - BuildConfigNamespaceListerExpansion -} - -// buildConfigNamespaceLister implements the BuildConfigNamespaceLister -// interface. -type buildConfigNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all BuildConfigs in the indexer for a given namespace. -func (s buildConfigNamespaceLister) List(selector labels.Selector) (ret []*v1.BuildConfig, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1.BuildConfig)) - }) - return ret, err -} - -// Get retrieves the BuildConfig from the indexer for a given namespace and name. -func (s buildConfigNamespaceLister) Get(name string) (*v1.BuildConfig, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("buildconfig"), name) - } - return obj.(*v1.BuildConfig), nil -} diff --git a/vendor/github.com/openshift/client-go/build/listers/build/v1/expansion_generated.go b/vendor/github.com/openshift/client-go/build/listers/build/v1/expansion_generated.go deleted file mode 100644 index 1fc9faecdd2df..0000000000000 --- a/vendor/github.com/openshift/client-go/build/listers/build/v1/expansion_generated.go +++ /dev/null @@ -1,19 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -// BuildListerExpansion allows custom methods to be added to -// BuildLister. -type BuildListerExpansion interface{} - -// BuildNamespaceListerExpansion allows custom methods to be added to -// BuildNamespaceLister. -type BuildNamespaceListerExpansion interface{} - -// BuildConfigListerExpansion allows custom methods to be added to -// BuildConfigLister. -type BuildConfigListerExpansion interface{} - -// BuildConfigNamespaceListerExpansion allows custom methods to be added to -// BuildConfigNamespaceLister. -type BuildConfigNamespaceListerExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/clientset.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/clientset.go deleted file mode 100644 index 70cd52cc07376..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/clientset.go +++ /dev/null @@ -1,81 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package versioned - -import ( - "fmt" - - configv1 "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1" - 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 - ConfigV1() configv1.ConfigV1Interface -} - -// Clientset contains the clients for groups. Each group has exactly one -// version included in a Clientset. -type Clientset struct { - *discovery.DiscoveryClient - configV1 *configv1.ConfigV1Client -} - -// ConfigV1 retrieves the ConfigV1Client -func (c *Clientset) ConfigV1() configv1.ConfigV1Interface { - return c.configV1 -} - -// 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.configV1, err = configv1.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.configV1 = configv1.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.configV1 = configv1.New(c) - - cs.DiscoveryClient = discovery.NewDiscoveryClient(c) - return &cs -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/doc.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/doc.go deleted file mode 100644 index 0e0c2a8900e2c..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated clientset. -package versioned diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/fake/clientset_generated.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/fake/clientset_generated.go deleted file mode 100644 index 08c7c431c4ffe..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/fake/clientset_generated.go +++ /dev/null @@ -1,66 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - clientset "github.com/openshift/client-go/config/clientset/versioned" - configv1 "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1" - fakeconfigv1 "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/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{} - -// ConfigV1 retrieves the ConfigV1Client -func (c *Clientset) ConfigV1() configv1.ConfigV1Interface { - return &fakeconfigv1.FakeConfigV1{Fake: &c.Fake} -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/fake/doc.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/fake/doc.go deleted file mode 100644 index 3630ed1cd17db..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/fake/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated fake clientset. -package fake diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/fake/register.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/fake/register.go deleted file mode 100644 index 94a788d5fbf67..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/fake/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - configv1 "github.com/openshift/api/config/v1" - 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 localSchemeBuilder = runtime.SchemeBuilder{ - configv1.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/vendor/github.com/openshift/client-go/config/clientset/versioned/scheme/doc.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/scheme/doc.go deleted file mode 100644 index 14db57a58f8d2..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/scheme/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package contains the scheme of the automatically generated clientset. -package scheme diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/scheme/register.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/scheme/register.go deleted file mode 100644 index 00d32306d7325..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/scheme/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package scheme - -import ( - configv1 "github.com/openshift/api/config/v1" - 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{ - configv1.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/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/apiserver.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/apiserver.go deleted file mode 100644 index f9b22b322df5d..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/apiserver.go +++ /dev/null @@ -1,168 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/config/v1" - scheme "github.com/openshift/client-go/config/clientset/versioned/scheme" - metav1 "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" -) - -// APIServersGetter has a method to return a APIServerInterface. -// A group's client should implement this interface. -type APIServersGetter interface { - APIServers() APIServerInterface -} - -// APIServerInterface has methods to work with APIServer resources. -type APIServerInterface interface { - Create(ctx context.Context, aPIServer *v1.APIServer, opts metav1.CreateOptions) (*v1.APIServer, error) - Update(ctx context.Context, aPIServer *v1.APIServer, opts metav1.UpdateOptions) (*v1.APIServer, error) - UpdateStatus(ctx context.Context, aPIServer *v1.APIServer, opts metav1.UpdateOptions) (*v1.APIServer, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.APIServer, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.APIServerList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.APIServer, err error) - APIServerExpansion -} - -// aPIServers implements APIServerInterface -type aPIServers struct { - client rest.Interface -} - -// newAPIServers returns a APIServers -func newAPIServers(c *ConfigV1Client) *aPIServers { - return &aPIServers{ - client: c.RESTClient(), - } -} - -// Get takes name of the aPIServer, and returns the corresponding aPIServer object, and an error if there is any. -func (c *aPIServers) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.APIServer, err error) { - result = &v1.APIServer{} - err = c.client.Get(). - Resource("apiservers"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of APIServers that match those selectors. -func (c *aPIServers) List(ctx context.Context, opts metav1.ListOptions) (result *v1.APIServerList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.APIServerList{} - err = c.client.Get(). - Resource("apiservers"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested aPIServers. -func (c *aPIServers) Watch(ctx context.Context, opts metav1.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(). - Resource("apiservers"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a aPIServer and creates it. Returns the server's representation of the aPIServer, and an error, if there is any. -func (c *aPIServers) Create(ctx context.Context, aPIServer *v1.APIServer, opts metav1.CreateOptions) (result *v1.APIServer, err error) { - result = &v1.APIServer{} - err = c.client.Post(). - Resource("apiservers"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(aPIServer). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a aPIServer and updates it. Returns the server's representation of the aPIServer, and an error, if there is any. -func (c *aPIServers) Update(ctx context.Context, aPIServer *v1.APIServer, opts metav1.UpdateOptions) (result *v1.APIServer, err error) { - result = &v1.APIServer{} - err = c.client.Put(). - Resource("apiservers"). - Name(aPIServer.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(aPIServer). - Do(ctx). - 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 *aPIServers) UpdateStatus(ctx context.Context, aPIServer *v1.APIServer, opts metav1.UpdateOptions) (result *v1.APIServer, err error) { - result = &v1.APIServer{} - err = c.client.Put(). - Resource("apiservers"). - Name(aPIServer.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(aPIServer). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the aPIServer and deletes it. Returns an error if one occurs. -func (c *aPIServers) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("apiservers"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *aPIServers) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("apiservers"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched aPIServer. -func (c *aPIServers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.APIServer, err error) { - result = &v1.APIServer{} - err = c.client.Patch(pt). - Resource("apiservers"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/authentication.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/authentication.go deleted file mode 100644 index 7c6c81d576b5d..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/authentication.go +++ /dev/null @@ -1,168 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/config/v1" - scheme "github.com/openshift/client-go/config/clientset/versioned/scheme" - metav1 "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" -) - -// AuthenticationsGetter has a method to return a AuthenticationInterface. -// A group's client should implement this interface. -type AuthenticationsGetter interface { - Authentications() AuthenticationInterface -} - -// AuthenticationInterface has methods to work with Authentication resources. -type AuthenticationInterface interface { - Create(ctx context.Context, authentication *v1.Authentication, opts metav1.CreateOptions) (*v1.Authentication, error) - Update(ctx context.Context, authentication *v1.Authentication, opts metav1.UpdateOptions) (*v1.Authentication, error) - UpdateStatus(ctx context.Context, authentication *v1.Authentication, opts metav1.UpdateOptions) (*v1.Authentication, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Authentication, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.AuthenticationList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Authentication, err error) - AuthenticationExpansion -} - -// authentications implements AuthenticationInterface -type authentications struct { - client rest.Interface -} - -// newAuthentications returns a Authentications -func newAuthentications(c *ConfigV1Client) *authentications { - return &authentications{ - client: c.RESTClient(), - } -} - -// Get takes name of the authentication, and returns the corresponding authentication object, and an error if there is any. -func (c *authentications) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Authentication, err error) { - result = &v1.Authentication{} - err = c.client.Get(). - Resource("authentications"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Authentications that match those selectors. -func (c *authentications) List(ctx context.Context, opts metav1.ListOptions) (result *v1.AuthenticationList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.AuthenticationList{} - err = c.client.Get(). - Resource("authentications"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested authentications. -func (c *authentications) Watch(ctx context.Context, opts metav1.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(). - Resource("authentications"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a authentication and creates it. Returns the server's representation of the authentication, and an error, if there is any. -func (c *authentications) Create(ctx context.Context, authentication *v1.Authentication, opts metav1.CreateOptions) (result *v1.Authentication, err error) { - result = &v1.Authentication{} - err = c.client.Post(). - Resource("authentications"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(authentication). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a authentication and updates it. Returns the server's representation of the authentication, and an error, if there is any. -func (c *authentications) Update(ctx context.Context, authentication *v1.Authentication, opts metav1.UpdateOptions) (result *v1.Authentication, err error) { - result = &v1.Authentication{} - err = c.client.Put(). - Resource("authentications"). - Name(authentication.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(authentication). - Do(ctx). - 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 *authentications) UpdateStatus(ctx context.Context, authentication *v1.Authentication, opts metav1.UpdateOptions) (result *v1.Authentication, err error) { - result = &v1.Authentication{} - err = c.client.Put(). - Resource("authentications"). - Name(authentication.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(authentication). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the authentication and deletes it. Returns an error if one occurs. -func (c *authentications) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("authentications"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *authentications) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("authentications"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched authentication. -func (c *authentications) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Authentication, err error) { - result = &v1.Authentication{} - err = c.client.Patch(pt). - Resource("authentications"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/build.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/build.go deleted file mode 100644 index 10c7a4901abd2..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/build.go +++ /dev/null @@ -1,152 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/config/v1" - scheme "github.com/openshift/client-go/config/clientset/versioned/scheme" - metav1 "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" -) - -// BuildsGetter has a method to return a BuildInterface. -// A group's client should implement this interface. -type BuildsGetter interface { - Builds() BuildInterface -} - -// BuildInterface has methods to work with Build resources. -type BuildInterface interface { - Create(ctx context.Context, build *v1.Build, opts metav1.CreateOptions) (*v1.Build, error) - Update(ctx context.Context, build *v1.Build, opts metav1.UpdateOptions) (*v1.Build, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Build, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.BuildList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Build, err error) - BuildExpansion -} - -// builds implements BuildInterface -type builds struct { - client rest.Interface -} - -// newBuilds returns a Builds -func newBuilds(c *ConfigV1Client) *builds { - return &builds{ - client: c.RESTClient(), - } -} - -// Get takes name of the build, and returns the corresponding build object, and an error if there is any. -func (c *builds) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Build, err error) { - result = &v1.Build{} - err = c.client.Get(). - Resource("builds"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Builds that match those selectors. -func (c *builds) List(ctx context.Context, opts metav1.ListOptions) (result *v1.BuildList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.BuildList{} - err = c.client.Get(). - Resource("builds"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested builds. -func (c *builds) Watch(ctx context.Context, opts metav1.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(). - Resource("builds"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a build and creates it. Returns the server's representation of the build, and an error, if there is any. -func (c *builds) Create(ctx context.Context, build *v1.Build, opts metav1.CreateOptions) (result *v1.Build, err error) { - result = &v1.Build{} - err = c.client.Post(). - Resource("builds"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(build). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a build and updates it. Returns the server's representation of the build, and an error, if there is any. -func (c *builds) Update(ctx context.Context, build *v1.Build, opts metav1.UpdateOptions) (result *v1.Build, err error) { - result = &v1.Build{} - err = c.client.Put(). - Resource("builds"). - Name(build.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(build). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the build and deletes it. Returns an error if one occurs. -func (c *builds) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("builds"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *builds) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("builds"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched build. -func (c *builds) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Build, err error) { - result = &v1.Build{} - err = c.client.Patch(pt). - Resource("builds"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/clusteroperator.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/clusteroperator.go deleted file mode 100644 index 8802d34fbd60a..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/clusteroperator.go +++ /dev/null @@ -1,168 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/config/v1" - scheme "github.com/openshift/client-go/config/clientset/versioned/scheme" - metav1 "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" -) - -// ClusterOperatorsGetter has a method to return a ClusterOperatorInterface. -// A group's client should implement this interface. -type ClusterOperatorsGetter interface { - ClusterOperators() ClusterOperatorInterface -} - -// ClusterOperatorInterface has methods to work with ClusterOperator resources. -type ClusterOperatorInterface interface { - Create(ctx context.Context, clusterOperator *v1.ClusterOperator, opts metav1.CreateOptions) (*v1.ClusterOperator, error) - Update(ctx context.Context, clusterOperator *v1.ClusterOperator, opts metav1.UpdateOptions) (*v1.ClusterOperator, error) - UpdateStatus(ctx context.Context, clusterOperator *v1.ClusterOperator, opts metav1.UpdateOptions) (*v1.ClusterOperator, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ClusterOperator, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.ClusterOperatorList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterOperator, err error) - ClusterOperatorExpansion -} - -// clusterOperators implements ClusterOperatorInterface -type clusterOperators struct { - client rest.Interface -} - -// newClusterOperators returns a ClusterOperators -func newClusterOperators(c *ConfigV1Client) *clusterOperators { - return &clusterOperators{ - client: c.RESTClient(), - } -} - -// Get takes name of the clusterOperator, and returns the corresponding clusterOperator object, and an error if there is any. -func (c *clusterOperators) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ClusterOperator, err error) { - result = &v1.ClusterOperator{} - err = c.client.Get(). - Resource("clusteroperators"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of ClusterOperators that match those selectors. -func (c *clusterOperators) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ClusterOperatorList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.ClusterOperatorList{} - err = c.client.Get(). - Resource("clusteroperators"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested clusterOperators. -func (c *clusterOperators) Watch(ctx context.Context, opts metav1.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(). - Resource("clusteroperators"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a clusterOperator and creates it. Returns the server's representation of the clusterOperator, and an error, if there is any. -func (c *clusterOperators) Create(ctx context.Context, clusterOperator *v1.ClusterOperator, opts metav1.CreateOptions) (result *v1.ClusterOperator, err error) { - result = &v1.ClusterOperator{} - err = c.client.Post(). - Resource("clusteroperators"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterOperator). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a clusterOperator and updates it. Returns the server's representation of the clusterOperator, and an error, if there is any. -func (c *clusterOperators) Update(ctx context.Context, clusterOperator *v1.ClusterOperator, opts metav1.UpdateOptions) (result *v1.ClusterOperator, err error) { - result = &v1.ClusterOperator{} - err = c.client.Put(). - Resource("clusteroperators"). - Name(clusterOperator.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterOperator). - Do(ctx). - 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 *clusterOperators) UpdateStatus(ctx context.Context, clusterOperator *v1.ClusterOperator, opts metav1.UpdateOptions) (result *v1.ClusterOperator, err error) { - result = &v1.ClusterOperator{} - err = c.client.Put(). - Resource("clusteroperators"). - Name(clusterOperator.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterOperator). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the clusterOperator and deletes it. Returns an error if one occurs. -func (c *clusterOperators) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("clusteroperators"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *clusterOperators) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("clusteroperators"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched clusterOperator. -func (c *clusterOperators) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterOperator, err error) { - result = &v1.ClusterOperator{} - err = c.client.Patch(pt). - Resource("clusteroperators"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/clusterversion.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/clusterversion.go deleted file mode 100644 index 1f60d59d91a9f..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/clusterversion.go +++ /dev/null @@ -1,168 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/config/v1" - scheme "github.com/openshift/client-go/config/clientset/versioned/scheme" - metav1 "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" -) - -// ClusterVersionsGetter has a method to return a ClusterVersionInterface. -// A group's client should implement this interface. -type ClusterVersionsGetter interface { - ClusterVersions() ClusterVersionInterface -} - -// ClusterVersionInterface has methods to work with ClusterVersion resources. -type ClusterVersionInterface interface { - Create(ctx context.Context, clusterVersion *v1.ClusterVersion, opts metav1.CreateOptions) (*v1.ClusterVersion, error) - Update(ctx context.Context, clusterVersion *v1.ClusterVersion, opts metav1.UpdateOptions) (*v1.ClusterVersion, error) - UpdateStatus(ctx context.Context, clusterVersion *v1.ClusterVersion, opts metav1.UpdateOptions) (*v1.ClusterVersion, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ClusterVersion, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.ClusterVersionList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterVersion, err error) - ClusterVersionExpansion -} - -// clusterVersions implements ClusterVersionInterface -type clusterVersions struct { - client rest.Interface -} - -// newClusterVersions returns a ClusterVersions -func newClusterVersions(c *ConfigV1Client) *clusterVersions { - return &clusterVersions{ - client: c.RESTClient(), - } -} - -// Get takes name of the clusterVersion, and returns the corresponding clusterVersion object, and an error if there is any. -func (c *clusterVersions) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ClusterVersion, err error) { - result = &v1.ClusterVersion{} - err = c.client.Get(). - Resource("clusterversions"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of ClusterVersions that match those selectors. -func (c *clusterVersions) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ClusterVersionList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.ClusterVersionList{} - err = c.client.Get(). - Resource("clusterversions"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested clusterVersions. -func (c *clusterVersions) Watch(ctx context.Context, opts metav1.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(). - Resource("clusterversions"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a clusterVersion and creates it. Returns the server's representation of the clusterVersion, and an error, if there is any. -func (c *clusterVersions) Create(ctx context.Context, clusterVersion *v1.ClusterVersion, opts metav1.CreateOptions) (result *v1.ClusterVersion, err error) { - result = &v1.ClusterVersion{} - err = c.client.Post(). - Resource("clusterversions"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterVersion). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a clusterVersion and updates it. Returns the server's representation of the clusterVersion, and an error, if there is any. -func (c *clusterVersions) Update(ctx context.Context, clusterVersion *v1.ClusterVersion, opts metav1.UpdateOptions) (result *v1.ClusterVersion, err error) { - result = &v1.ClusterVersion{} - err = c.client.Put(). - Resource("clusterversions"). - Name(clusterVersion.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterVersion). - Do(ctx). - 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 *clusterVersions) UpdateStatus(ctx context.Context, clusterVersion *v1.ClusterVersion, opts metav1.UpdateOptions) (result *v1.ClusterVersion, err error) { - result = &v1.ClusterVersion{} - err = c.client.Put(). - Resource("clusterversions"). - Name(clusterVersion.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterVersion). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the clusterVersion and deletes it. Returns an error if one occurs. -func (c *clusterVersions) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("clusterversions"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *clusterVersions) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("clusterversions"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched clusterVersion. -func (c *clusterVersions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterVersion, err error) { - result = &v1.ClusterVersion{} - err = c.client.Patch(pt). - Resource("clusterversions"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/config_client.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/config_client.go deleted file mode 100644 index 0f2182d2f5d65..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/config_client.go +++ /dev/null @@ -1,153 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/config/v1" - "github.com/openshift/client-go/config/clientset/versioned/scheme" - rest "k8s.io/client-go/rest" -) - -type ConfigV1Interface interface { - RESTClient() rest.Interface - APIServersGetter - AuthenticationsGetter - BuildsGetter - ClusterOperatorsGetter - ClusterVersionsGetter - ConsolesGetter - DNSesGetter - FeatureGatesGetter - ImagesGetter - InfrastructuresGetter - IngressesGetter - NetworksGetter - OAuthsGetter - OperatorHubsGetter - ProjectsGetter - ProxiesGetter - SchedulersGetter -} - -// ConfigV1Client is used to interact with features provided by the config.openshift.io group. -type ConfigV1Client struct { - restClient rest.Interface -} - -func (c *ConfigV1Client) APIServers() APIServerInterface { - return newAPIServers(c) -} - -func (c *ConfigV1Client) Authentications() AuthenticationInterface { - return newAuthentications(c) -} - -func (c *ConfigV1Client) Builds() BuildInterface { - return newBuilds(c) -} - -func (c *ConfigV1Client) ClusterOperators() ClusterOperatorInterface { - return newClusterOperators(c) -} - -func (c *ConfigV1Client) ClusterVersions() ClusterVersionInterface { - return newClusterVersions(c) -} - -func (c *ConfigV1Client) Consoles() ConsoleInterface { - return newConsoles(c) -} - -func (c *ConfigV1Client) DNSes() DNSInterface { - return newDNSes(c) -} - -func (c *ConfigV1Client) FeatureGates() FeatureGateInterface { - return newFeatureGates(c) -} - -func (c *ConfigV1Client) Images() ImageInterface { - return newImages(c) -} - -func (c *ConfigV1Client) Infrastructures() InfrastructureInterface { - return newInfrastructures(c) -} - -func (c *ConfigV1Client) Ingresses() IngressInterface { - return newIngresses(c) -} - -func (c *ConfigV1Client) Networks() NetworkInterface { - return newNetworks(c) -} - -func (c *ConfigV1Client) OAuths() OAuthInterface { - return newOAuths(c) -} - -func (c *ConfigV1Client) OperatorHubs() OperatorHubInterface { - return newOperatorHubs(c) -} - -func (c *ConfigV1Client) Projects() ProjectInterface { - return newProjects(c) -} - -func (c *ConfigV1Client) Proxies() ProxyInterface { - return newProxies(c) -} - -func (c *ConfigV1Client) Schedulers() SchedulerInterface { - return newSchedulers(c) -} - -// NewForConfig creates a new ConfigV1Client for the given config. -func NewForConfig(c *rest.Config) (*ConfigV1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientFor(&config) - if err != nil { - return nil, err - } - return &ConfigV1Client{client}, nil -} - -// NewForConfigOrDie creates a new ConfigV1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *ConfigV1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new ConfigV1Client for the given RESTClient. -func New(c rest.Interface) *ConfigV1Client { - return &ConfigV1Client{c} -} - -func setConfigDefaults(config *rest.Config) error { - gv := v1.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 *ConfigV1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/console.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/console.go deleted file mode 100644 index eeef3d8bdce72..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/console.go +++ /dev/null @@ -1,168 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/config/v1" - scheme "github.com/openshift/client-go/config/clientset/versioned/scheme" - metav1 "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" -) - -// ConsolesGetter has a method to return a ConsoleInterface. -// A group's client should implement this interface. -type ConsolesGetter interface { - Consoles() ConsoleInterface -} - -// ConsoleInterface has methods to work with Console resources. -type ConsoleInterface interface { - Create(ctx context.Context, console *v1.Console, opts metav1.CreateOptions) (*v1.Console, error) - Update(ctx context.Context, console *v1.Console, opts metav1.UpdateOptions) (*v1.Console, error) - UpdateStatus(ctx context.Context, console *v1.Console, opts metav1.UpdateOptions) (*v1.Console, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Console, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.ConsoleList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Console, err error) - ConsoleExpansion -} - -// consoles implements ConsoleInterface -type consoles struct { - client rest.Interface -} - -// newConsoles returns a Consoles -func newConsoles(c *ConfigV1Client) *consoles { - return &consoles{ - client: c.RESTClient(), - } -} - -// Get takes name of the console, and returns the corresponding console object, and an error if there is any. -func (c *consoles) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Console, err error) { - result = &v1.Console{} - err = c.client.Get(). - Resource("consoles"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Consoles that match those selectors. -func (c *consoles) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ConsoleList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.ConsoleList{} - err = c.client.Get(). - Resource("consoles"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested consoles. -func (c *consoles) Watch(ctx context.Context, opts metav1.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(). - Resource("consoles"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a console and creates it. Returns the server's representation of the console, and an error, if there is any. -func (c *consoles) Create(ctx context.Context, console *v1.Console, opts metav1.CreateOptions) (result *v1.Console, err error) { - result = &v1.Console{} - err = c.client.Post(). - Resource("consoles"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(console). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a console and updates it. Returns the server's representation of the console, and an error, if there is any. -func (c *consoles) Update(ctx context.Context, console *v1.Console, opts metav1.UpdateOptions) (result *v1.Console, err error) { - result = &v1.Console{} - err = c.client.Put(). - Resource("consoles"). - Name(console.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(console). - Do(ctx). - 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 *consoles) UpdateStatus(ctx context.Context, console *v1.Console, opts metav1.UpdateOptions) (result *v1.Console, err error) { - result = &v1.Console{} - err = c.client.Put(). - Resource("consoles"). - Name(console.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(console). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the console and deletes it. Returns an error if one occurs. -func (c *consoles) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("consoles"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *consoles) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("consoles"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched console. -func (c *consoles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Console, err error) { - result = &v1.Console{} - err = c.client.Patch(pt). - Resource("consoles"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/dns.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/dns.go deleted file mode 100644 index 574eda990278b..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/dns.go +++ /dev/null @@ -1,168 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/config/v1" - scheme "github.com/openshift/client-go/config/clientset/versioned/scheme" - metav1 "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" -) - -// DNSesGetter has a method to return a DNSInterface. -// A group's client should implement this interface. -type DNSesGetter interface { - DNSes() DNSInterface -} - -// DNSInterface has methods to work with DNS resources. -type DNSInterface interface { - Create(ctx context.Context, dNS *v1.DNS, opts metav1.CreateOptions) (*v1.DNS, error) - Update(ctx context.Context, dNS *v1.DNS, opts metav1.UpdateOptions) (*v1.DNS, error) - UpdateStatus(ctx context.Context, dNS *v1.DNS, opts metav1.UpdateOptions) (*v1.DNS, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.DNS, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.DNSList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.DNS, err error) - DNSExpansion -} - -// dNSes implements DNSInterface -type dNSes struct { - client rest.Interface -} - -// newDNSes returns a DNSes -func newDNSes(c *ConfigV1Client) *dNSes { - return &dNSes{ - client: c.RESTClient(), - } -} - -// Get takes name of the dNS, and returns the corresponding dNS object, and an error if there is any. -func (c *dNSes) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.DNS, err error) { - result = &v1.DNS{} - err = c.client.Get(). - Resource("dnses"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of DNSes that match those selectors. -func (c *dNSes) List(ctx context.Context, opts metav1.ListOptions) (result *v1.DNSList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.DNSList{} - err = c.client.Get(). - Resource("dnses"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested dNSes. -func (c *dNSes) Watch(ctx context.Context, opts metav1.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(). - Resource("dnses"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a dNS and creates it. Returns the server's representation of the dNS, and an error, if there is any. -func (c *dNSes) Create(ctx context.Context, dNS *v1.DNS, opts metav1.CreateOptions) (result *v1.DNS, err error) { - result = &v1.DNS{} - err = c.client.Post(). - Resource("dnses"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(dNS). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a dNS and updates it. Returns the server's representation of the dNS, and an error, if there is any. -func (c *dNSes) Update(ctx context.Context, dNS *v1.DNS, opts metav1.UpdateOptions) (result *v1.DNS, err error) { - result = &v1.DNS{} - err = c.client.Put(). - Resource("dnses"). - Name(dNS.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(dNS). - Do(ctx). - 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 *dNSes) UpdateStatus(ctx context.Context, dNS *v1.DNS, opts metav1.UpdateOptions) (result *v1.DNS, err error) { - result = &v1.DNS{} - err = c.client.Put(). - Resource("dnses"). - Name(dNS.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(dNS). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the dNS and deletes it. Returns an error if one occurs. -func (c *dNSes) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("dnses"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *dNSes) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("dnses"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched dNS. -func (c *dNSes) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.DNS, err error) { - result = &v1.DNS{} - err = c.client.Patch(pt). - Resource("dnses"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/doc.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/doc.go deleted file mode 100644 index 225e6b2be34f2..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated typed clients. -package v1 diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/doc.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/doc.go deleted file mode 100644 index 2b5ba4c8e4422..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// Package fake has the automatically generated clients. -package fake diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_apiserver.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_apiserver.go deleted file mode 100644 index 7e1e09a15ebc3..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_apiserver.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - configv1 "github.com/openshift/api/config/v1" - 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" -) - -// FakeAPIServers implements APIServerInterface -type FakeAPIServers struct { - Fake *FakeConfigV1 -} - -var apiserversResource = schema.GroupVersionResource{Group: "config.openshift.io", Version: "v1", Resource: "apiservers"} - -var apiserversKind = schema.GroupVersionKind{Group: "config.openshift.io", Version: "v1", Kind: "APIServer"} - -// Get takes name of the aPIServer, and returns the corresponding aPIServer object, and an error if there is any. -func (c *FakeAPIServers) Get(ctx context.Context, name string, options v1.GetOptions) (result *configv1.APIServer, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(apiserversResource, name), &configv1.APIServer{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.APIServer), err -} - -// List takes label and field selectors, and returns the list of APIServers that match those selectors. -func (c *FakeAPIServers) List(ctx context.Context, opts v1.ListOptions) (result *configv1.APIServerList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(apiserversResource, apiserversKind, opts), &configv1.APIServerList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &configv1.APIServerList{ListMeta: obj.(*configv1.APIServerList).ListMeta} - for _, item := range obj.(*configv1.APIServerList).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 aPIServers. -func (c *FakeAPIServers) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(apiserversResource, opts)) -} - -// Create takes the representation of a aPIServer and creates it. Returns the server's representation of the aPIServer, and an error, if there is any. -func (c *FakeAPIServers) Create(ctx context.Context, aPIServer *configv1.APIServer, opts v1.CreateOptions) (result *configv1.APIServer, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(apiserversResource, aPIServer), &configv1.APIServer{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.APIServer), err -} - -// Update takes the representation of a aPIServer and updates it. Returns the server's representation of the aPIServer, and an error, if there is any. -func (c *FakeAPIServers) Update(ctx context.Context, aPIServer *configv1.APIServer, opts v1.UpdateOptions) (result *configv1.APIServer, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(apiserversResource, aPIServer), &configv1.APIServer{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.APIServer), 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 *FakeAPIServers) UpdateStatus(ctx context.Context, aPIServer *configv1.APIServer, opts v1.UpdateOptions) (*configv1.APIServer, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(apiserversResource, "status", aPIServer), &configv1.APIServer{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.APIServer), err -} - -// Delete takes name of the aPIServer and deletes it. Returns an error if one occurs. -func (c *FakeAPIServers) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(apiserversResource, name), &configv1.APIServer{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeAPIServers) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(apiserversResource, listOpts) - - _, err := c.Fake.Invokes(action, &configv1.APIServerList{}) - return err -} - -// Patch applies the patch and returns the patched aPIServer. -func (c *FakeAPIServers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *configv1.APIServer, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(apiserversResource, name, pt, data, subresources...), &configv1.APIServer{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.APIServer), err -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_authentication.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_authentication.go deleted file mode 100644 index 90cd41c074051..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_authentication.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - configv1 "github.com/openshift/api/config/v1" - 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" -) - -// FakeAuthentications implements AuthenticationInterface -type FakeAuthentications struct { - Fake *FakeConfigV1 -} - -var authenticationsResource = schema.GroupVersionResource{Group: "config.openshift.io", Version: "v1", Resource: "authentications"} - -var authenticationsKind = schema.GroupVersionKind{Group: "config.openshift.io", Version: "v1", Kind: "Authentication"} - -// Get takes name of the authentication, and returns the corresponding authentication object, and an error if there is any. -func (c *FakeAuthentications) Get(ctx context.Context, name string, options v1.GetOptions) (result *configv1.Authentication, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(authenticationsResource, name), &configv1.Authentication{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Authentication), err -} - -// List takes label and field selectors, and returns the list of Authentications that match those selectors. -func (c *FakeAuthentications) List(ctx context.Context, opts v1.ListOptions) (result *configv1.AuthenticationList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(authenticationsResource, authenticationsKind, opts), &configv1.AuthenticationList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &configv1.AuthenticationList{ListMeta: obj.(*configv1.AuthenticationList).ListMeta} - for _, item := range obj.(*configv1.AuthenticationList).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 authentications. -func (c *FakeAuthentications) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(authenticationsResource, opts)) -} - -// Create takes the representation of a authentication and creates it. Returns the server's representation of the authentication, and an error, if there is any. -func (c *FakeAuthentications) Create(ctx context.Context, authentication *configv1.Authentication, opts v1.CreateOptions) (result *configv1.Authentication, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(authenticationsResource, authentication), &configv1.Authentication{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Authentication), err -} - -// Update takes the representation of a authentication and updates it. Returns the server's representation of the authentication, and an error, if there is any. -func (c *FakeAuthentications) Update(ctx context.Context, authentication *configv1.Authentication, opts v1.UpdateOptions) (result *configv1.Authentication, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(authenticationsResource, authentication), &configv1.Authentication{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Authentication), 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 *FakeAuthentications) UpdateStatus(ctx context.Context, authentication *configv1.Authentication, opts v1.UpdateOptions) (*configv1.Authentication, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(authenticationsResource, "status", authentication), &configv1.Authentication{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Authentication), err -} - -// Delete takes name of the authentication and deletes it. Returns an error if one occurs. -func (c *FakeAuthentications) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(authenticationsResource, name), &configv1.Authentication{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeAuthentications) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(authenticationsResource, listOpts) - - _, err := c.Fake.Invokes(action, &configv1.AuthenticationList{}) - return err -} - -// Patch applies the patch and returns the patched authentication. -func (c *FakeAuthentications) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *configv1.Authentication, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(authenticationsResource, name, pt, data, subresources...), &configv1.Authentication{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Authentication), err -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_build.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_build.go deleted file mode 100644 index 5232442e76897..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_build.go +++ /dev/null @@ -1,106 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - configv1 "github.com/openshift/api/config/v1" - 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" -) - -// FakeBuilds implements BuildInterface -type FakeBuilds struct { - Fake *FakeConfigV1 -} - -var buildsResource = schema.GroupVersionResource{Group: "config.openshift.io", Version: "v1", Resource: "builds"} - -var buildsKind = schema.GroupVersionKind{Group: "config.openshift.io", Version: "v1", Kind: "Build"} - -// Get takes name of the build, and returns the corresponding build object, and an error if there is any. -func (c *FakeBuilds) Get(ctx context.Context, name string, options v1.GetOptions) (result *configv1.Build, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(buildsResource, name), &configv1.Build{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Build), err -} - -// List takes label and field selectors, and returns the list of Builds that match those selectors. -func (c *FakeBuilds) List(ctx context.Context, opts v1.ListOptions) (result *configv1.BuildList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(buildsResource, buildsKind, opts), &configv1.BuildList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &configv1.BuildList{ListMeta: obj.(*configv1.BuildList).ListMeta} - for _, item := range obj.(*configv1.BuildList).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 builds. -func (c *FakeBuilds) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(buildsResource, opts)) -} - -// Create takes the representation of a build and creates it. Returns the server's representation of the build, and an error, if there is any. -func (c *FakeBuilds) Create(ctx context.Context, build *configv1.Build, opts v1.CreateOptions) (result *configv1.Build, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(buildsResource, build), &configv1.Build{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Build), err -} - -// Update takes the representation of a build and updates it. Returns the server's representation of the build, and an error, if there is any. -func (c *FakeBuilds) Update(ctx context.Context, build *configv1.Build, opts v1.UpdateOptions) (result *configv1.Build, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(buildsResource, build), &configv1.Build{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Build), err -} - -// Delete takes name of the build and deletes it. Returns an error if one occurs. -func (c *FakeBuilds) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(buildsResource, name), &configv1.Build{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeBuilds) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(buildsResource, listOpts) - - _, err := c.Fake.Invokes(action, &configv1.BuildList{}) - return err -} - -// Patch applies the patch and returns the patched build. -func (c *FakeBuilds) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *configv1.Build, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(buildsResource, name, pt, data, subresources...), &configv1.Build{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Build), err -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_clusteroperator.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_clusteroperator.go deleted file mode 100644 index 8422324bba83f..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_clusteroperator.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - configv1 "github.com/openshift/api/config/v1" - 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" -) - -// FakeClusterOperators implements ClusterOperatorInterface -type FakeClusterOperators struct { - Fake *FakeConfigV1 -} - -var clusteroperatorsResource = schema.GroupVersionResource{Group: "config.openshift.io", Version: "v1", Resource: "clusteroperators"} - -var clusteroperatorsKind = schema.GroupVersionKind{Group: "config.openshift.io", Version: "v1", Kind: "ClusterOperator"} - -// Get takes name of the clusterOperator, and returns the corresponding clusterOperator object, and an error if there is any. -func (c *FakeClusterOperators) Get(ctx context.Context, name string, options v1.GetOptions) (result *configv1.ClusterOperator, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(clusteroperatorsResource, name), &configv1.ClusterOperator{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.ClusterOperator), err -} - -// List takes label and field selectors, and returns the list of ClusterOperators that match those selectors. -func (c *FakeClusterOperators) List(ctx context.Context, opts v1.ListOptions) (result *configv1.ClusterOperatorList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(clusteroperatorsResource, clusteroperatorsKind, opts), &configv1.ClusterOperatorList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &configv1.ClusterOperatorList{ListMeta: obj.(*configv1.ClusterOperatorList).ListMeta} - for _, item := range obj.(*configv1.ClusterOperatorList).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 clusterOperators. -func (c *FakeClusterOperators) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(clusteroperatorsResource, opts)) -} - -// Create takes the representation of a clusterOperator and creates it. Returns the server's representation of the clusterOperator, and an error, if there is any. -func (c *FakeClusterOperators) Create(ctx context.Context, clusterOperator *configv1.ClusterOperator, opts v1.CreateOptions) (result *configv1.ClusterOperator, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(clusteroperatorsResource, clusterOperator), &configv1.ClusterOperator{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.ClusterOperator), err -} - -// Update takes the representation of a clusterOperator and updates it. Returns the server's representation of the clusterOperator, and an error, if there is any. -func (c *FakeClusterOperators) Update(ctx context.Context, clusterOperator *configv1.ClusterOperator, opts v1.UpdateOptions) (result *configv1.ClusterOperator, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(clusteroperatorsResource, clusterOperator), &configv1.ClusterOperator{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.ClusterOperator), 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 *FakeClusterOperators) UpdateStatus(ctx context.Context, clusterOperator *configv1.ClusterOperator, opts v1.UpdateOptions) (*configv1.ClusterOperator, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(clusteroperatorsResource, "status", clusterOperator), &configv1.ClusterOperator{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.ClusterOperator), err -} - -// Delete takes name of the clusterOperator and deletes it. Returns an error if one occurs. -func (c *FakeClusterOperators) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(clusteroperatorsResource, name), &configv1.ClusterOperator{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeClusterOperators) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(clusteroperatorsResource, listOpts) - - _, err := c.Fake.Invokes(action, &configv1.ClusterOperatorList{}) - return err -} - -// Patch applies the patch and returns the patched clusterOperator. -func (c *FakeClusterOperators) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *configv1.ClusterOperator, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(clusteroperatorsResource, name, pt, data, subresources...), &configv1.ClusterOperator{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.ClusterOperator), err -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_clusterversion.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_clusterversion.go deleted file mode 100644 index 6a4b8d890c629..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_clusterversion.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - configv1 "github.com/openshift/api/config/v1" - 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" -) - -// FakeClusterVersions implements ClusterVersionInterface -type FakeClusterVersions struct { - Fake *FakeConfigV1 -} - -var clusterversionsResource = schema.GroupVersionResource{Group: "config.openshift.io", Version: "v1", Resource: "clusterversions"} - -var clusterversionsKind = schema.GroupVersionKind{Group: "config.openshift.io", Version: "v1", Kind: "ClusterVersion"} - -// Get takes name of the clusterVersion, and returns the corresponding clusterVersion object, and an error if there is any. -func (c *FakeClusterVersions) Get(ctx context.Context, name string, options v1.GetOptions) (result *configv1.ClusterVersion, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(clusterversionsResource, name), &configv1.ClusterVersion{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.ClusterVersion), err -} - -// List takes label and field selectors, and returns the list of ClusterVersions that match those selectors. -func (c *FakeClusterVersions) List(ctx context.Context, opts v1.ListOptions) (result *configv1.ClusterVersionList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(clusterversionsResource, clusterversionsKind, opts), &configv1.ClusterVersionList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &configv1.ClusterVersionList{ListMeta: obj.(*configv1.ClusterVersionList).ListMeta} - for _, item := range obj.(*configv1.ClusterVersionList).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 clusterVersions. -func (c *FakeClusterVersions) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(clusterversionsResource, opts)) -} - -// Create takes the representation of a clusterVersion and creates it. Returns the server's representation of the clusterVersion, and an error, if there is any. -func (c *FakeClusterVersions) Create(ctx context.Context, clusterVersion *configv1.ClusterVersion, opts v1.CreateOptions) (result *configv1.ClusterVersion, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(clusterversionsResource, clusterVersion), &configv1.ClusterVersion{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.ClusterVersion), err -} - -// Update takes the representation of a clusterVersion and updates it. Returns the server's representation of the clusterVersion, and an error, if there is any. -func (c *FakeClusterVersions) Update(ctx context.Context, clusterVersion *configv1.ClusterVersion, opts v1.UpdateOptions) (result *configv1.ClusterVersion, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(clusterversionsResource, clusterVersion), &configv1.ClusterVersion{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.ClusterVersion), 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 *FakeClusterVersions) UpdateStatus(ctx context.Context, clusterVersion *configv1.ClusterVersion, opts v1.UpdateOptions) (*configv1.ClusterVersion, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(clusterversionsResource, "status", clusterVersion), &configv1.ClusterVersion{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.ClusterVersion), err -} - -// Delete takes name of the clusterVersion and deletes it. Returns an error if one occurs. -func (c *FakeClusterVersions) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(clusterversionsResource, name), &configv1.ClusterVersion{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeClusterVersions) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(clusterversionsResource, listOpts) - - _, err := c.Fake.Invokes(action, &configv1.ClusterVersionList{}) - return err -} - -// Patch applies the patch and returns the patched clusterVersion. -func (c *FakeClusterVersions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *configv1.ClusterVersion, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(clusterversionsResource, name, pt, data, subresources...), &configv1.ClusterVersion{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.ClusterVersion), err -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_config_client.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_config_client.go deleted file mode 100644 index d743f4679220d..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_config_client.go +++ /dev/null @@ -1,88 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - v1 "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1" - rest "k8s.io/client-go/rest" - testing "k8s.io/client-go/testing" -) - -type FakeConfigV1 struct { - *testing.Fake -} - -func (c *FakeConfigV1) APIServers() v1.APIServerInterface { - return &FakeAPIServers{c} -} - -func (c *FakeConfigV1) Authentications() v1.AuthenticationInterface { - return &FakeAuthentications{c} -} - -func (c *FakeConfigV1) Builds() v1.BuildInterface { - return &FakeBuilds{c} -} - -func (c *FakeConfigV1) ClusterOperators() v1.ClusterOperatorInterface { - return &FakeClusterOperators{c} -} - -func (c *FakeConfigV1) ClusterVersions() v1.ClusterVersionInterface { - return &FakeClusterVersions{c} -} - -func (c *FakeConfigV1) Consoles() v1.ConsoleInterface { - return &FakeConsoles{c} -} - -func (c *FakeConfigV1) DNSes() v1.DNSInterface { - return &FakeDNSes{c} -} - -func (c *FakeConfigV1) FeatureGates() v1.FeatureGateInterface { - return &FakeFeatureGates{c} -} - -func (c *FakeConfigV1) Images() v1.ImageInterface { - return &FakeImages{c} -} - -func (c *FakeConfigV1) Infrastructures() v1.InfrastructureInterface { - return &FakeInfrastructures{c} -} - -func (c *FakeConfigV1) Ingresses() v1.IngressInterface { - return &FakeIngresses{c} -} - -func (c *FakeConfigV1) Networks() v1.NetworkInterface { - return &FakeNetworks{c} -} - -func (c *FakeConfigV1) OAuths() v1.OAuthInterface { - return &FakeOAuths{c} -} - -func (c *FakeConfigV1) OperatorHubs() v1.OperatorHubInterface { - return &FakeOperatorHubs{c} -} - -func (c *FakeConfigV1) Projects() v1.ProjectInterface { - return &FakeProjects{c} -} - -func (c *FakeConfigV1) Proxies() v1.ProxyInterface { - return &FakeProxies{c} -} - -func (c *FakeConfigV1) Schedulers() v1.SchedulerInterface { - return &FakeSchedulers{c} -} - -// RESTClient returns a RESTClient that is used to communicate -// with API server by this client implementation. -func (c *FakeConfigV1) RESTClient() rest.Interface { - var ret *rest.RESTClient - return ret -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_console.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_console.go deleted file mode 100644 index a275feeb3ceb6..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_console.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - configv1 "github.com/openshift/api/config/v1" - 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" -) - -// FakeConsoles implements ConsoleInterface -type FakeConsoles struct { - Fake *FakeConfigV1 -} - -var consolesResource = schema.GroupVersionResource{Group: "config.openshift.io", Version: "v1", Resource: "consoles"} - -var consolesKind = schema.GroupVersionKind{Group: "config.openshift.io", Version: "v1", Kind: "Console"} - -// Get takes name of the console, and returns the corresponding console object, and an error if there is any. -func (c *FakeConsoles) Get(ctx context.Context, name string, options v1.GetOptions) (result *configv1.Console, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(consolesResource, name), &configv1.Console{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Console), err -} - -// List takes label and field selectors, and returns the list of Consoles that match those selectors. -func (c *FakeConsoles) List(ctx context.Context, opts v1.ListOptions) (result *configv1.ConsoleList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(consolesResource, consolesKind, opts), &configv1.ConsoleList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &configv1.ConsoleList{ListMeta: obj.(*configv1.ConsoleList).ListMeta} - for _, item := range obj.(*configv1.ConsoleList).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 consoles. -func (c *FakeConsoles) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(consolesResource, opts)) -} - -// Create takes the representation of a console and creates it. Returns the server's representation of the console, and an error, if there is any. -func (c *FakeConsoles) Create(ctx context.Context, console *configv1.Console, opts v1.CreateOptions) (result *configv1.Console, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(consolesResource, console), &configv1.Console{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Console), err -} - -// Update takes the representation of a console and updates it. Returns the server's representation of the console, and an error, if there is any. -func (c *FakeConsoles) Update(ctx context.Context, console *configv1.Console, opts v1.UpdateOptions) (result *configv1.Console, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(consolesResource, console), &configv1.Console{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Console), 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 *FakeConsoles) UpdateStatus(ctx context.Context, console *configv1.Console, opts v1.UpdateOptions) (*configv1.Console, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(consolesResource, "status", console), &configv1.Console{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Console), err -} - -// Delete takes name of the console and deletes it. Returns an error if one occurs. -func (c *FakeConsoles) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(consolesResource, name), &configv1.Console{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeConsoles) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(consolesResource, listOpts) - - _, err := c.Fake.Invokes(action, &configv1.ConsoleList{}) - return err -} - -// Patch applies the patch and returns the patched console. -func (c *FakeConsoles) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *configv1.Console, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(consolesResource, name, pt, data, subresources...), &configv1.Console{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Console), err -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_dns.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_dns.go deleted file mode 100644 index 1aab6def6c2ae..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_dns.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - configv1 "github.com/openshift/api/config/v1" - 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" -) - -// FakeDNSes implements DNSInterface -type FakeDNSes struct { - Fake *FakeConfigV1 -} - -var dnsesResource = schema.GroupVersionResource{Group: "config.openshift.io", Version: "v1", Resource: "dnses"} - -var dnsesKind = schema.GroupVersionKind{Group: "config.openshift.io", Version: "v1", Kind: "DNS"} - -// Get takes name of the dNS, and returns the corresponding dNS object, and an error if there is any. -func (c *FakeDNSes) Get(ctx context.Context, name string, options v1.GetOptions) (result *configv1.DNS, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(dnsesResource, name), &configv1.DNS{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.DNS), err -} - -// List takes label and field selectors, and returns the list of DNSes that match those selectors. -func (c *FakeDNSes) List(ctx context.Context, opts v1.ListOptions) (result *configv1.DNSList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(dnsesResource, dnsesKind, opts), &configv1.DNSList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &configv1.DNSList{ListMeta: obj.(*configv1.DNSList).ListMeta} - for _, item := range obj.(*configv1.DNSList).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 dNSes. -func (c *FakeDNSes) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(dnsesResource, opts)) -} - -// Create takes the representation of a dNS and creates it. Returns the server's representation of the dNS, and an error, if there is any. -func (c *FakeDNSes) Create(ctx context.Context, dNS *configv1.DNS, opts v1.CreateOptions) (result *configv1.DNS, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(dnsesResource, dNS), &configv1.DNS{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.DNS), err -} - -// Update takes the representation of a dNS and updates it. Returns the server's representation of the dNS, and an error, if there is any. -func (c *FakeDNSes) Update(ctx context.Context, dNS *configv1.DNS, opts v1.UpdateOptions) (result *configv1.DNS, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(dnsesResource, dNS), &configv1.DNS{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.DNS), 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 *FakeDNSes) UpdateStatus(ctx context.Context, dNS *configv1.DNS, opts v1.UpdateOptions) (*configv1.DNS, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(dnsesResource, "status", dNS), &configv1.DNS{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.DNS), err -} - -// Delete takes name of the dNS and deletes it. Returns an error if one occurs. -func (c *FakeDNSes) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(dnsesResource, name), &configv1.DNS{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeDNSes) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(dnsesResource, listOpts) - - _, err := c.Fake.Invokes(action, &configv1.DNSList{}) - return err -} - -// Patch applies the patch and returns the patched dNS. -func (c *FakeDNSes) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *configv1.DNS, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(dnsesResource, name, pt, data, subresources...), &configv1.DNS{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.DNS), err -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_featuregate.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_featuregate.go deleted file mode 100644 index 8ad782e8736ca..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_featuregate.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - configv1 "github.com/openshift/api/config/v1" - 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" -) - -// FakeFeatureGates implements FeatureGateInterface -type FakeFeatureGates struct { - Fake *FakeConfigV1 -} - -var featuregatesResource = schema.GroupVersionResource{Group: "config.openshift.io", Version: "v1", Resource: "featuregates"} - -var featuregatesKind = schema.GroupVersionKind{Group: "config.openshift.io", Version: "v1", Kind: "FeatureGate"} - -// Get takes name of the featureGate, and returns the corresponding featureGate object, and an error if there is any. -func (c *FakeFeatureGates) Get(ctx context.Context, name string, options v1.GetOptions) (result *configv1.FeatureGate, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(featuregatesResource, name), &configv1.FeatureGate{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.FeatureGate), err -} - -// List takes label and field selectors, and returns the list of FeatureGates that match those selectors. -func (c *FakeFeatureGates) List(ctx context.Context, opts v1.ListOptions) (result *configv1.FeatureGateList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(featuregatesResource, featuregatesKind, opts), &configv1.FeatureGateList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &configv1.FeatureGateList{ListMeta: obj.(*configv1.FeatureGateList).ListMeta} - for _, item := range obj.(*configv1.FeatureGateList).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 featureGates. -func (c *FakeFeatureGates) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(featuregatesResource, opts)) -} - -// Create takes the representation of a featureGate and creates it. Returns the server's representation of the featureGate, and an error, if there is any. -func (c *FakeFeatureGates) Create(ctx context.Context, featureGate *configv1.FeatureGate, opts v1.CreateOptions) (result *configv1.FeatureGate, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(featuregatesResource, featureGate), &configv1.FeatureGate{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.FeatureGate), err -} - -// Update takes the representation of a featureGate and updates it. Returns the server's representation of the featureGate, and an error, if there is any. -func (c *FakeFeatureGates) Update(ctx context.Context, featureGate *configv1.FeatureGate, opts v1.UpdateOptions) (result *configv1.FeatureGate, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(featuregatesResource, featureGate), &configv1.FeatureGate{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.FeatureGate), 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 *FakeFeatureGates) UpdateStatus(ctx context.Context, featureGate *configv1.FeatureGate, opts v1.UpdateOptions) (*configv1.FeatureGate, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(featuregatesResource, "status", featureGate), &configv1.FeatureGate{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.FeatureGate), err -} - -// Delete takes name of the featureGate and deletes it. Returns an error if one occurs. -func (c *FakeFeatureGates) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(featuregatesResource, name), &configv1.FeatureGate{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeFeatureGates) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(featuregatesResource, listOpts) - - _, err := c.Fake.Invokes(action, &configv1.FeatureGateList{}) - return err -} - -// Patch applies the patch and returns the patched featureGate. -func (c *FakeFeatureGates) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *configv1.FeatureGate, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(featuregatesResource, name, pt, data, subresources...), &configv1.FeatureGate{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.FeatureGate), err -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_image.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_image.go deleted file mode 100644 index 6cff256912d68..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_image.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - configv1 "github.com/openshift/api/config/v1" - 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" -) - -// FakeImages implements ImageInterface -type FakeImages struct { - Fake *FakeConfigV1 -} - -var imagesResource = schema.GroupVersionResource{Group: "config.openshift.io", Version: "v1", Resource: "images"} - -var imagesKind = schema.GroupVersionKind{Group: "config.openshift.io", Version: "v1", Kind: "Image"} - -// Get takes name of the image, and returns the corresponding image object, and an error if there is any. -func (c *FakeImages) Get(ctx context.Context, name string, options v1.GetOptions) (result *configv1.Image, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(imagesResource, name), &configv1.Image{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Image), err -} - -// List takes label and field selectors, and returns the list of Images that match those selectors. -func (c *FakeImages) List(ctx context.Context, opts v1.ListOptions) (result *configv1.ImageList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(imagesResource, imagesKind, opts), &configv1.ImageList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &configv1.ImageList{ListMeta: obj.(*configv1.ImageList).ListMeta} - for _, item := range obj.(*configv1.ImageList).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 images. -func (c *FakeImages) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(imagesResource, opts)) -} - -// Create takes the representation of a image and creates it. Returns the server's representation of the image, and an error, if there is any. -func (c *FakeImages) Create(ctx context.Context, image *configv1.Image, opts v1.CreateOptions) (result *configv1.Image, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(imagesResource, image), &configv1.Image{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Image), err -} - -// Update takes the representation of a image and updates it. Returns the server's representation of the image, and an error, if there is any. -func (c *FakeImages) Update(ctx context.Context, image *configv1.Image, opts v1.UpdateOptions) (result *configv1.Image, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(imagesResource, image), &configv1.Image{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Image), 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 *FakeImages) UpdateStatus(ctx context.Context, image *configv1.Image, opts v1.UpdateOptions) (*configv1.Image, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(imagesResource, "status", image), &configv1.Image{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Image), err -} - -// Delete takes name of the image and deletes it. Returns an error if one occurs. -func (c *FakeImages) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(imagesResource, name), &configv1.Image{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeImages) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(imagesResource, listOpts) - - _, err := c.Fake.Invokes(action, &configv1.ImageList{}) - return err -} - -// Patch applies the patch and returns the patched image. -func (c *FakeImages) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *configv1.Image, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(imagesResource, name, pt, data, subresources...), &configv1.Image{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Image), err -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_infrastructure.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_infrastructure.go deleted file mode 100644 index 698db7184a79b..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_infrastructure.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - configv1 "github.com/openshift/api/config/v1" - 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" -) - -// FakeInfrastructures implements InfrastructureInterface -type FakeInfrastructures struct { - Fake *FakeConfigV1 -} - -var infrastructuresResource = schema.GroupVersionResource{Group: "config.openshift.io", Version: "v1", Resource: "infrastructures"} - -var infrastructuresKind = schema.GroupVersionKind{Group: "config.openshift.io", Version: "v1", Kind: "Infrastructure"} - -// Get takes name of the infrastructure, and returns the corresponding infrastructure object, and an error if there is any. -func (c *FakeInfrastructures) Get(ctx context.Context, name string, options v1.GetOptions) (result *configv1.Infrastructure, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(infrastructuresResource, name), &configv1.Infrastructure{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Infrastructure), err -} - -// List takes label and field selectors, and returns the list of Infrastructures that match those selectors. -func (c *FakeInfrastructures) List(ctx context.Context, opts v1.ListOptions) (result *configv1.InfrastructureList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(infrastructuresResource, infrastructuresKind, opts), &configv1.InfrastructureList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &configv1.InfrastructureList{ListMeta: obj.(*configv1.InfrastructureList).ListMeta} - for _, item := range obj.(*configv1.InfrastructureList).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 infrastructures. -func (c *FakeInfrastructures) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(infrastructuresResource, opts)) -} - -// Create takes the representation of a infrastructure and creates it. Returns the server's representation of the infrastructure, and an error, if there is any. -func (c *FakeInfrastructures) Create(ctx context.Context, infrastructure *configv1.Infrastructure, opts v1.CreateOptions) (result *configv1.Infrastructure, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(infrastructuresResource, infrastructure), &configv1.Infrastructure{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Infrastructure), err -} - -// Update takes the representation of a infrastructure and updates it. Returns the server's representation of the infrastructure, and an error, if there is any. -func (c *FakeInfrastructures) Update(ctx context.Context, infrastructure *configv1.Infrastructure, opts v1.UpdateOptions) (result *configv1.Infrastructure, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(infrastructuresResource, infrastructure), &configv1.Infrastructure{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Infrastructure), 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 *FakeInfrastructures) UpdateStatus(ctx context.Context, infrastructure *configv1.Infrastructure, opts v1.UpdateOptions) (*configv1.Infrastructure, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(infrastructuresResource, "status", infrastructure), &configv1.Infrastructure{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Infrastructure), err -} - -// Delete takes name of the infrastructure and deletes it. Returns an error if one occurs. -func (c *FakeInfrastructures) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(infrastructuresResource, name), &configv1.Infrastructure{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeInfrastructures) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(infrastructuresResource, listOpts) - - _, err := c.Fake.Invokes(action, &configv1.InfrastructureList{}) - return err -} - -// Patch applies the patch and returns the patched infrastructure. -func (c *FakeInfrastructures) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *configv1.Infrastructure, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(infrastructuresResource, name, pt, data, subresources...), &configv1.Infrastructure{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Infrastructure), err -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_ingress.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_ingress.go deleted file mode 100644 index 7314198cdf505..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_ingress.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - configv1 "github.com/openshift/api/config/v1" - 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" -) - -// FakeIngresses implements IngressInterface -type FakeIngresses struct { - Fake *FakeConfigV1 -} - -var ingressesResource = schema.GroupVersionResource{Group: "config.openshift.io", Version: "v1", Resource: "ingresses"} - -var ingressesKind = schema.GroupVersionKind{Group: "config.openshift.io", Version: "v1", Kind: "Ingress"} - -// Get takes name of the ingress, and returns the corresponding ingress object, and an error if there is any. -func (c *FakeIngresses) Get(ctx context.Context, name string, options v1.GetOptions) (result *configv1.Ingress, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(ingressesResource, name), &configv1.Ingress{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Ingress), err -} - -// List takes label and field selectors, and returns the list of Ingresses that match those selectors. -func (c *FakeIngresses) List(ctx context.Context, opts v1.ListOptions) (result *configv1.IngressList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(ingressesResource, ingressesKind, opts), &configv1.IngressList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &configv1.IngressList{ListMeta: obj.(*configv1.IngressList).ListMeta} - for _, item := range obj.(*configv1.IngressList).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 ingresses. -func (c *FakeIngresses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(ingressesResource, opts)) -} - -// Create takes the representation of a ingress and creates it. Returns the server's representation of the ingress, and an error, if there is any. -func (c *FakeIngresses) Create(ctx context.Context, ingress *configv1.Ingress, opts v1.CreateOptions) (result *configv1.Ingress, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(ingressesResource, ingress), &configv1.Ingress{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Ingress), err -} - -// Update takes the representation of a ingress and updates it. Returns the server's representation of the ingress, and an error, if there is any. -func (c *FakeIngresses) Update(ctx context.Context, ingress *configv1.Ingress, opts v1.UpdateOptions) (result *configv1.Ingress, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(ingressesResource, ingress), &configv1.Ingress{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Ingress), 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 *FakeIngresses) UpdateStatus(ctx context.Context, ingress *configv1.Ingress, opts v1.UpdateOptions) (*configv1.Ingress, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(ingressesResource, "status", ingress), &configv1.Ingress{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Ingress), err -} - -// Delete takes name of the ingress and deletes it. Returns an error if one occurs. -func (c *FakeIngresses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(ingressesResource, name), &configv1.Ingress{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeIngresses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(ingressesResource, listOpts) - - _, err := c.Fake.Invokes(action, &configv1.IngressList{}) - return err -} - -// Patch applies the patch and returns the patched ingress. -func (c *FakeIngresses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *configv1.Ingress, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(ingressesResource, name, pt, data, subresources...), &configv1.Ingress{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Ingress), err -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_network.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_network.go deleted file mode 100644 index a1953c5429477..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_network.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - configv1 "github.com/openshift/api/config/v1" - 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" -) - -// FakeNetworks implements NetworkInterface -type FakeNetworks struct { - Fake *FakeConfigV1 -} - -var networksResource = schema.GroupVersionResource{Group: "config.openshift.io", Version: "v1", Resource: "networks"} - -var networksKind = schema.GroupVersionKind{Group: "config.openshift.io", Version: "v1", Kind: "Network"} - -// Get takes name of the network, and returns the corresponding network object, and an error if there is any. -func (c *FakeNetworks) Get(ctx context.Context, name string, options v1.GetOptions) (result *configv1.Network, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(networksResource, name), &configv1.Network{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Network), err -} - -// List takes label and field selectors, and returns the list of Networks that match those selectors. -func (c *FakeNetworks) List(ctx context.Context, opts v1.ListOptions) (result *configv1.NetworkList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(networksResource, networksKind, opts), &configv1.NetworkList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &configv1.NetworkList{ListMeta: obj.(*configv1.NetworkList).ListMeta} - for _, item := range obj.(*configv1.NetworkList).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 networks. -func (c *FakeNetworks) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(networksResource, opts)) -} - -// Create takes the representation of a network and creates it. Returns the server's representation of the network, and an error, if there is any. -func (c *FakeNetworks) Create(ctx context.Context, network *configv1.Network, opts v1.CreateOptions) (result *configv1.Network, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(networksResource, network), &configv1.Network{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Network), err -} - -// Update takes the representation of a network and updates it. Returns the server's representation of the network, and an error, if there is any. -func (c *FakeNetworks) Update(ctx context.Context, network *configv1.Network, opts v1.UpdateOptions) (result *configv1.Network, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(networksResource, network), &configv1.Network{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Network), 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 *FakeNetworks) UpdateStatus(ctx context.Context, network *configv1.Network, opts v1.UpdateOptions) (*configv1.Network, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(networksResource, "status", network), &configv1.Network{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Network), err -} - -// Delete takes name of the network and deletes it. Returns an error if one occurs. -func (c *FakeNetworks) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(networksResource, name), &configv1.Network{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeNetworks) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(networksResource, listOpts) - - _, err := c.Fake.Invokes(action, &configv1.NetworkList{}) - return err -} - -// Patch applies the patch and returns the patched network. -func (c *FakeNetworks) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *configv1.Network, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(networksResource, name, pt, data, subresources...), &configv1.Network{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Network), err -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_oauth.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_oauth.go deleted file mode 100644 index c5146adcf53c0..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_oauth.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - configv1 "github.com/openshift/api/config/v1" - 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" -) - -// FakeOAuths implements OAuthInterface -type FakeOAuths struct { - Fake *FakeConfigV1 -} - -var oauthsResource = schema.GroupVersionResource{Group: "config.openshift.io", Version: "v1", Resource: "oauths"} - -var oauthsKind = schema.GroupVersionKind{Group: "config.openshift.io", Version: "v1", Kind: "OAuth"} - -// Get takes name of the oAuth, and returns the corresponding oAuth object, and an error if there is any. -func (c *FakeOAuths) Get(ctx context.Context, name string, options v1.GetOptions) (result *configv1.OAuth, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(oauthsResource, name), &configv1.OAuth{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.OAuth), err -} - -// List takes label and field selectors, and returns the list of OAuths that match those selectors. -func (c *FakeOAuths) List(ctx context.Context, opts v1.ListOptions) (result *configv1.OAuthList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(oauthsResource, oauthsKind, opts), &configv1.OAuthList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &configv1.OAuthList{ListMeta: obj.(*configv1.OAuthList).ListMeta} - for _, item := range obj.(*configv1.OAuthList).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 oAuths. -func (c *FakeOAuths) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(oauthsResource, opts)) -} - -// Create takes the representation of a oAuth and creates it. Returns the server's representation of the oAuth, and an error, if there is any. -func (c *FakeOAuths) Create(ctx context.Context, oAuth *configv1.OAuth, opts v1.CreateOptions) (result *configv1.OAuth, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(oauthsResource, oAuth), &configv1.OAuth{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.OAuth), err -} - -// Update takes the representation of a oAuth and updates it. Returns the server's representation of the oAuth, and an error, if there is any. -func (c *FakeOAuths) Update(ctx context.Context, oAuth *configv1.OAuth, opts v1.UpdateOptions) (result *configv1.OAuth, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(oauthsResource, oAuth), &configv1.OAuth{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.OAuth), 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 *FakeOAuths) UpdateStatus(ctx context.Context, oAuth *configv1.OAuth, opts v1.UpdateOptions) (*configv1.OAuth, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(oauthsResource, "status", oAuth), &configv1.OAuth{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.OAuth), err -} - -// Delete takes name of the oAuth and deletes it. Returns an error if one occurs. -func (c *FakeOAuths) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(oauthsResource, name), &configv1.OAuth{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeOAuths) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(oauthsResource, listOpts) - - _, err := c.Fake.Invokes(action, &configv1.OAuthList{}) - return err -} - -// Patch applies the patch and returns the patched oAuth. -func (c *FakeOAuths) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *configv1.OAuth, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(oauthsResource, name, pt, data, subresources...), &configv1.OAuth{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.OAuth), err -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_operatorhub.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_operatorhub.go deleted file mode 100644 index 9da8b92884a7f..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_operatorhub.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - configv1 "github.com/openshift/api/config/v1" - 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" -) - -// FakeOperatorHubs implements OperatorHubInterface -type FakeOperatorHubs struct { - Fake *FakeConfigV1 -} - -var operatorhubsResource = schema.GroupVersionResource{Group: "config.openshift.io", Version: "v1", Resource: "operatorhubs"} - -var operatorhubsKind = schema.GroupVersionKind{Group: "config.openshift.io", Version: "v1", Kind: "OperatorHub"} - -// Get takes name of the operatorHub, and returns the corresponding operatorHub object, and an error if there is any. -func (c *FakeOperatorHubs) Get(ctx context.Context, name string, options v1.GetOptions) (result *configv1.OperatorHub, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(operatorhubsResource, name), &configv1.OperatorHub{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.OperatorHub), err -} - -// List takes label and field selectors, and returns the list of OperatorHubs that match those selectors. -func (c *FakeOperatorHubs) List(ctx context.Context, opts v1.ListOptions) (result *configv1.OperatorHubList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(operatorhubsResource, operatorhubsKind, opts), &configv1.OperatorHubList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &configv1.OperatorHubList{ListMeta: obj.(*configv1.OperatorHubList).ListMeta} - for _, item := range obj.(*configv1.OperatorHubList).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 operatorHubs. -func (c *FakeOperatorHubs) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(operatorhubsResource, opts)) -} - -// Create takes the representation of a operatorHub and creates it. Returns the server's representation of the operatorHub, and an error, if there is any. -func (c *FakeOperatorHubs) Create(ctx context.Context, operatorHub *configv1.OperatorHub, opts v1.CreateOptions) (result *configv1.OperatorHub, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(operatorhubsResource, operatorHub), &configv1.OperatorHub{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.OperatorHub), err -} - -// Update takes the representation of a operatorHub and updates it. Returns the server's representation of the operatorHub, and an error, if there is any. -func (c *FakeOperatorHubs) Update(ctx context.Context, operatorHub *configv1.OperatorHub, opts v1.UpdateOptions) (result *configv1.OperatorHub, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(operatorhubsResource, operatorHub), &configv1.OperatorHub{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.OperatorHub), 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 *FakeOperatorHubs) UpdateStatus(ctx context.Context, operatorHub *configv1.OperatorHub, opts v1.UpdateOptions) (*configv1.OperatorHub, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(operatorhubsResource, "status", operatorHub), &configv1.OperatorHub{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.OperatorHub), err -} - -// Delete takes name of the operatorHub and deletes it. Returns an error if one occurs. -func (c *FakeOperatorHubs) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(operatorhubsResource, name), &configv1.OperatorHub{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeOperatorHubs) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(operatorhubsResource, listOpts) - - _, err := c.Fake.Invokes(action, &configv1.OperatorHubList{}) - return err -} - -// Patch applies the patch and returns the patched operatorHub. -func (c *FakeOperatorHubs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *configv1.OperatorHub, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(operatorhubsResource, name, pt, data, subresources...), &configv1.OperatorHub{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.OperatorHub), err -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_project.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_project.go deleted file mode 100644 index 08ed1144f43cb..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_project.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - configv1 "github.com/openshift/api/config/v1" - 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" -) - -// FakeProjects implements ProjectInterface -type FakeProjects struct { - Fake *FakeConfigV1 -} - -var projectsResource = schema.GroupVersionResource{Group: "config.openshift.io", Version: "v1", Resource: "projects"} - -var projectsKind = schema.GroupVersionKind{Group: "config.openshift.io", Version: "v1", Kind: "Project"} - -// Get takes name of the project, and returns the corresponding project object, and an error if there is any. -func (c *FakeProjects) Get(ctx context.Context, name string, options v1.GetOptions) (result *configv1.Project, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(projectsResource, name), &configv1.Project{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Project), err -} - -// List takes label and field selectors, and returns the list of Projects that match those selectors. -func (c *FakeProjects) List(ctx context.Context, opts v1.ListOptions) (result *configv1.ProjectList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(projectsResource, projectsKind, opts), &configv1.ProjectList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &configv1.ProjectList{ListMeta: obj.(*configv1.ProjectList).ListMeta} - for _, item := range obj.(*configv1.ProjectList).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 projects. -func (c *FakeProjects) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(projectsResource, opts)) -} - -// Create takes the representation of a project and creates it. Returns the server's representation of the project, and an error, if there is any. -func (c *FakeProjects) Create(ctx context.Context, project *configv1.Project, opts v1.CreateOptions) (result *configv1.Project, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(projectsResource, project), &configv1.Project{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Project), err -} - -// Update takes the representation of a project and updates it. Returns the server's representation of the project, and an error, if there is any. -func (c *FakeProjects) Update(ctx context.Context, project *configv1.Project, opts v1.UpdateOptions) (result *configv1.Project, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(projectsResource, project), &configv1.Project{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Project), 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 *FakeProjects) UpdateStatus(ctx context.Context, project *configv1.Project, opts v1.UpdateOptions) (*configv1.Project, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(projectsResource, "status", project), &configv1.Project{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Project), err -} - -// Delete takes name of the project and deletes it. Returns an error if one occurs. -func (c *FakeProjects) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(projectsResource, name), &configv1.Project{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeProjects) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(projectsResource, listOpts) - - _, err := c.Fake.Invokes(action, &configv1.ProjectList{}) - return err -} - -// Patch applies the patch and returns the patched project. -func (c *FakeProjects) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *configv1.Project, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(projectsResource, name, pt, data, subresources...), &configv1.Project{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Project), err -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_proxy.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_proxy.go deleted file mode 100644 index 5bf694e723615..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_proxy.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - configv1 "github.com/openshift/api/config/v1" - 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" -) - -// FakeProxies implements ProxyInterface -type FakeProxies struct { - Fake *FakeConfigV1 -} - -var proxiesResource = schema.GroupVersionResource{Group: "config.openshift.io", Version: "v1", Resource: "proxies"} - -var proxiesKind = schema.GroupVersionKind{Group: "config.openshift.io", Version: "v1", Kind: "Proxy"} - -// Get takes name of the proxy, and returns the corresponding proxy object, and an error if there is any. -func (c *FakeProxies) Get(ctx context.Context, name string, options v1.GetOptions) (result *configv1.Proxy, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(proxiesResource, name), &configv1.Proxy{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Proxy), err -} - -// List takes label and field selectors, and returns the list of Proxies that match those selectors. -func (c *FakeProxies) List(ctx context.Context, opts v1.ListOptions) (result *configv1.ProxyList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(proxiesResource, proxiesKind, opts), &configv1.ProxyList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &configv1.ProxyList{ListMeta: obj.(*configv1.ProxyList).ListMeta} - for _, item := range obj.(*configv1.ProxyList).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 proxies. -func (c *FakeProxies) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(proxiesResource, opts)) -} - -// Create takes the representation of a proxy and creates it. Returns the server's representation of the proxy, and an error, if there is any. -func (c *FakeProxies) Create(ctx context.Context, proxy *configv1.Proxy, opts v1.CreateOptions) (result *configv1.Proxy, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(proxiesResource, proxy), &configv1.Proxy{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Proxy), err -} - -// Update takes the representation of a proxy and updates it. Returns the server's representation of the proxy, and an error, if there is any. -func (c *FakeProxies) Update(ctx context.Context, proxy *configv1.Proxy, opts v1.UpdateOptions) (result *configv1.Proxy, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(proxiesResource, proxy), &configv1.Proxy{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Proxy), 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 *FakeProxies) UpdateStatus(ctx context.Context, proxy *configv1.Proxy, opts v1.UpdateOptions) (*configv1.Proxy, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(proxiesResource, "status", proxy), &configv1.Proxy{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Proxy), err -} - -// Delete takes name of the proxy and deletes it. Returns an error if one occurs. -func (c *FakeProxies) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(proxiesResource, name), &configv1.Proxy{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeProxies) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(proxiesResource, listOpts) - - _, err := c.Fake.Invokes(action, &configv1.ProxyList{}) - return err -} - -// Patch applies the patch and returns the patched proxy. -func (c *FakeProxies) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *configv1.Proxy, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(proxiesResource, name, pt, data, subresources...), &configv1.Proxy{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Proxy), err -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_scheduler.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_scheduler.go deleted file mode 100644 index fb099606a1757..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/fake_scheduler.go +++ /dev/null @@ -1,117 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - configv1 "github.com/openshift/api/config/v1" - 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" -) - -// FakeSchedulers implements SchedulerInterface -type FakeSchedulers struct { - Fake *FakeConfigV1 -} - -var schedulersResource = schema.GroupVersionResource{Group: "config.openshift.io", Version: "v1", Resource: "schedulers"} - -var schedulersKind = schema.GroupVersionKind{Group: "config.openshift.io", Version: "v1", Kind: "Scheduler"} - -// Get takes name of the scheduler, and returns the corresponding scheduler object, and an error if there is any. -func (c *FakeSchedulers) Get(ctx context.Context, name string, options v1.GetOptions) (result *configv1.Scheduler, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(schedulersResource, name), &configv1.Scheduler{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Scheduler), err -} - -// List takes label and field selectors, and returns the list of Schedulers that match those selectors. -func (c *FakeSchedulers) List(ctx context.Context, opts v1.ListOptions) (result *configv1.SchedulerList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(schedulersResource, schedulersKind, opts), &configv1.SchedulerList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &configv1.SchedulerList{ListMeta: obj.(*configv1.SchedulerList).ListMeta} - for _, item := range obj.(*configv1.SchedulerList).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 schedulers. -func (c *FakeSchedulers) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(schedulersResource, opts)) -} - -// Create takes the representation of a scheduler and creates it. Returns the server's representation of the scheduler, and an error, if there is any. -func (c *FakeSchedulers) Create(ctx context.Context, scheduler *configv1.Scheduler, opts v1.CreateOptions) (result *configv1.Scheduler, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(schedulersResource, scheduler), &configv1.Scheduler{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Scheduler), err -} - -// Update takes the representation of a scheduler and updates it. Returns the server's representation of the scheduler, and an error, if there is any. -func (c *FakeSchedulers) Update(ctx context.Context, scheduler *configv1.Scheduler, opts v1.UpdateOptions) (result *configv1.Scheduler, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(schedulersResource, scheduler), &configv1.Scheduler{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Scheduler), 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 *FakeSchedulers) UpdateStatus(ctx context.Context, scheduler *configv1.Scheduler, opts v1.UpdateOptions) (*configv1.Scheduler, error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(schedulersResource, "status", scheduler), &configv1.Scheduler{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Scheduler), err -} - -// Delete takes name of the scheduler and deletes it. Returns an error if one occurs. -func (c *FakeSchedulers) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(schedulersResource, name), &configv1.Scheduler{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeSchedulers) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(schedulersResource, listOpts) - - _, err := c.Fake.Invokes(action, &configv1.SchedulerList{}) - return err -} - -// Patch applies the patch and returns the patched scheduler. -func (c *FakeSchedulers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *configv1.Scheduler, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(schedulersResource, name, pt, data, subresources...), &configv1.Scheduler{}) - if obj == nil { - return nil, err - } - return obj.(*configv1.Scheduler), err -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/featuregate.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/featuregate.go deleted file mode 100644 index dd784e1d20336..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/featuregate.go +++ /dev/null @@ -1,168 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/config/v1" - scheme "github.com/openshift/client-go/config/clientset/versioned/scheme" - metav1 "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" -) - -// FeatureGatesGetter has a method to return a FeatureGateInterface. -// A group's client should implement this interface. -type FeatureGatesGetter interface { - FeatureGates() FeatureGateInterface -} - -// FeatureGateInterface has methods to work with FeatureGate resources. -type FeatureGateInterface interface { - Create(ctx context.Context, featureGate *v1.FeatureGate, opts metav1.CreateOptions) (*v1.FeatureGate, error) - Update(ctx context.Context, featureGate *v1.FeatureGate, opts metav1.UpdateOptions) (*v1.FeatureGate, error) - UpdateStatus(ctx context.Context, featureGate *v1.FeatureGate, opts metav1.UpdateOptions) (*v1.FeatureGate, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.FeatureGate, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.FeatureGateList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.FeatureGate, err error) - FeatureGateExpansion -} - -// featureGates implements FeatureGateInterface -type featureGates struct { - client rest.Interface -} - -// newFeatureGates returns a FeatureGates -func newFeatureGates(c *ConfigV1Client) *featureGates { - return &featureGates{ - client: c.RESTClient(), - } -} - -// Get takes name of the featureGate, and returns the corresponding featureGate object, and an error if there is any. -func (c *featureGates) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.FeatureGate, err error) { - result = &v1.FeatureGate{} - err = c.client.Get(). - Resource("featuregates"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of FeatureGates that match those selectors. -func (c *featureGates) List(ctx context.Context, opts metav1.ListOptions) (result *v1.FeatureGateList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.FeatureGateList{} - err = c.client.Get(). - Resource("featuregates"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested featureGates. -func (c *featureGates) Watch(ctx context.Context, opts metav1.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(). - Resource("featuregates"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a featureGate and creates it. Returns the server's representation of the featureGate, and an error, if there is any. -func (c *featureGates) Create(ctx context.Context, featureGate *v1.FeatureGate, opts metav1.CreateOptions) (result *v1.FeatureGate, err error) { - result = &v1.FeatureGate{} - err = c.client.Post(). - Resource("featuregates"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(featureGate). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a featureGate and updates it. Returns the server's representation of the featureGate, and an error, if there is any. -func (c *featureGates) Update(ctx context.Context, featureGate *v1.FeatureGate, opts metav1.UpdateOptions) (result *v1.FeatureGate, err error) { - result = &v1.FeatureGate{} - err = c.client.Put(). - Resource("featuregates"). - Name(featureGate.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(featureGate). - Do(ctx). - 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 *featureGates) UpdateStatus(ctx context.Context, featureGate *v1.FeatureGate, opts metav1.UpdateOptions) (result *v1.FeatureGate, err error) { - result = &v1.FeatureGate{} - err = c.client.Put(). - Resource("featuregates"). - Name(featureGate.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(featureGate). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the featureGate and deletes it. Returns an error if one occurs. -func (c *featureGates) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("featuregates"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *featureGates) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("featuregates"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched featureGate. -func (c *featureGates) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.FeatureGate, err error) { - result = &v1.FeatureGate{} - err = c.client.Patch(pt). - Resource("featuregates"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/generated_expansion.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/generated_expansion.go deleted file mode 100644 index 50a4ec7f8f3d3..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/generated_expansion.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -type APIServerExpansion interface{} - -type AuthenticationExpansion interface{} - -type BuildExpansion interface{} - -type ClusterOperatorExpansion interface{} - -type ClusterVersionExpansion interface{} - -type ConsoleExpansion interface{} - -type DNSExpansion interface{} - -type FeatureGateExpansion interface{} - -type ImageExpansion interface{} - -type InfrastructureExpansion interface{} - -type IngressExpansion interface{} - -type NetworkExpansion interface{} - -type OAuthExpansion interface{} - -type OperatorHubExpansion interface{} - -type ProjectExpansion interface{} - -type ProxyExpansion interface{} - -type SchedulerExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/image.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/image.go deleted file mode 100644 index 874ef211f632e..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/image.go +++ /dev/null @@ -1,168 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/config/v1" - scheme "github.com/openshift/client-go/config/clientset/versioned/scheme" - metav1 "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" -) - -// ImagesGetter has a method to return a ImageInterface. -// A group's client should implement this interface. -type ImagesGetter interface { - Images() ImageInterface -} - -// ImageInterface has methods to work with Image resources. -type ImageInterface interface { - Create(ctx context.Context, image *v1.Image, opts metav1.CreateOptions) (*v1.Image, error) - Update(ctx context.Context, image *v1.Image, opts metav1.UpdateOptions) (*v1.Image, error) - UpdateStatus(ctx context.Context, image *v1.Image, opts metav1.UpdateOptions) (*v1.Image, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Image, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.ImageList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Image, err error) - ImageExpansion -} - -// images implements ImageInterface -type images struct { - client rest.Interface -} - -// newImages returns a Images -func newImages(c *ConfigV1Client) *images { - return &images{ - client: c.RESTClient(), - } -} - -// Get takes name of the image, and returns the corresponding image object, and an error if there is any. -func (c *images) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Image, err error) { - result = &v1.Image{} - err = c.client.Get(). - Resource("images"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Images that match those selectors. -func (c *images) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ImageList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.ImageList{} - err = c.client.Get(). - Resource("images"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested images. -func (c *images) Watch(ctx context.Context, opts metav1.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(). - Resource("images"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a image and creates it. Returns the server's representation of the image, and an error, if there is any. -func (c *images) Create(ctx context.Context, image *v1.Image, opts metav1.CreateOptions) (result *v1.Image, err error) { - result = &v1.Image{} - err = c.client.Post(). - Resource("images"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(image). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a image and updates it. Returns the server's representation of the image, and an error, if there is any. -func (c *images) Update(ctx context.Context, image *v1.Image, opts metav1.UpdateOptions) (result *v1.Image, err error) { - result = &v1.Image{} - err = c.client.Put(). - Resource("images"). - Name(image.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(image). - Do(ctx). - 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 *images) UpdateStatus(ctx context.Context, image *v1.Image, opts metav1.UpdateOptions) (result *v1.Image, err error) { - result = &v1.Image{} - err = c.client.Put(). - Resource("images"). - Name(image.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(image). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the image and deletes it. Returns an error if one occurs. -func (c *images) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("images"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *images) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("images"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched image. -func (c *images) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Image, err error) { - result = &v1.Image{} - err = c.client.Patch(pt). - Resource("images"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/infrastructure.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/infrastructure.go deleted file mode 100644 index 661eff231574c..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/infrastructure.go +++ /dev/null @@ -1,168 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/config/v1" - scheme "github.com/openshift/client-go/config/clientset/versioned/scheme" - metav1 "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" -) - -// InfrastructuresGetter has a method to return a InfrastructureInterface. -// A group's client should implement this interface. -type InfrastructuresGetter interface { - Infrastructures() InfrastructureInterface -} - -// InfrastructureInterface has methods to work with Infrastructure resources. -type InfrastructureInterface interface { - Create(ctx context.Context, infrastructure *v1.Infrastructure, opts metav1.CreateOptions) (*v1.Infrastructure, error) - Update(ctx context.Context, infrastructure *v1.Infrastructure, opts metav1.UpdateOptions) (*v1.Infrastructure, error) - UpdateStatus(ctx context.Context, infrastructure *v1.Infrastructure, opts metav1.UpdateOptions) (*v1.Infrastructure, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Infrastructure, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.InfrastructureList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Infrastructure, err error) - InfrastructureExpansion -} - -// infrastructures implements InfrastructureInterface -type infrastructures struct { - client rest.Interface -} - -// newInfrastructures returns a Infrastructures -func newInfrastructures(c *ConfigV1Client) *infrastructures { - return &infrastructures{ - client: c.RESTClient(), - } -} - -// Get takes name of the infrastructure, and returns the corresponding infrastructure object, and an error if there is any. -func (c *infrastructures) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Infrastructure, err error) { - result = &v1.Infrastructure{} - err = c.client.Get(). - Resource("infrastructures"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Infrastructures that match those selectors. -func (c *infrastructures) List(ctx context.Context, opts metav1.ListOptions) (result *v1.InfrastructureList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.InfrastructureList{} - err = c.client.Get(). - Resource("infrastructures"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested infrastructures. -func (c *infrastructures) Watch(ctx context.Context, opts metav1.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(). - Resource("infrastructures"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a infrastructure and creates it. Returns the server's representation of the infrastructure, and an error, if there is any. -func (c *infrastructures) Create(ctx context.Context, infrastructure *v1.Infrastructure, opts metav1.CreateOptions) (result *v1.Infrastructure, err error) { - result = &v1.Infrastructure{} - err = c.client.Post(). - Resource("infrastructures"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(infrastructure). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a infrastructure and updates it. Returns the server's representation of the infrastructure, and an error, if there is any. -func (c *infrastructures) Update(ctx context.Context, infrastructure *v1.Infrastructure, opts metav1.UpdateOptions) (result *v1.Infrastructure, err error) { - result = &v1.Infrastructure{} - err = c.client.Put(). - Resource("infrastructures"). - Name(infrastructure.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(infrastructure). - Do(ctx). - 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 *infrastructures) UpdateStatus(ctx context.Context, infrastructure *v1.Infrastructure, opts metav1.UpdateOptions) (result *v1.Infrastructure, err error) { - result = &v1.Infrastructure{} - err = c.client.Put(). - Resource("infrastructures"). - Name(infrastructure.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(infrastructure). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the infrastructure and deletes it. Returns an error if one occurs. -func (c *infrastructures) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("infrastructures"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *infrastructures) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("infrastructures"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched infrastructure. -func (c *infrastructures) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Infrastructure, err error) { - result = &v1.Infrastructure{} - err = c.client.Patch(pt). - Resource("infrastructures"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/ingress.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/ingress.go deleted file mode 100644 index ec4bf5d7177dc..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/ingress.go +++ /dev/null @@ -1,168 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/config/v1" - scheme "github.com/openshift/client-go/config/clientset/versioned/scheme" - metav1 "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" -) - -// IngressesGetter has a method to return a IngressInterface. -// A group's client should implement this interface. -type IngressesGetter interface { - Ingresses() IngressInterface -} - -// IngressInterface has methods to work with Ingress resources. -type IngressInterface interface { - Create(ctx context.Context, ingress *v1.Ingress, opts metav1.CreateOptions) (*v1.Ingress, error) - Update(ctx context.Context, ingress *v1.Ingress, opts metav1.UpdateOptions) (*v1.Ingress, error) - UpdateStatus(ctx context.Context, ingress *v1.Ingress, opts metav1.UpdateOptions) (*v1.Ingress, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Ingress, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.IngressList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Ingress, err error) - IngressExpansion -} - -// ingresses implements IngressInterface -type ingresses struct { - client rest.Interface -} - -// newIngresses returns a Ingresses -func newIngresses(c *ConfigV1Client) *ingresses { - return &ingresses{ - client: c.RESTClient(), - } -} - -// Get takes name of the ingress, and returns the corresponding ingress object, and an error if there is any. -func (c *ingresses) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Ingress, err error) { - result = &v1.Ingress{} - err = c.client.Get(). - Resource("ingresses"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Ingresses that match those selectors. -func (c *ingresses) List(ctx context.Context, opts metav1.ListOptions) (result *v1.IngressList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.IngressList{} - err = c.client.Get(). - Resource("ingresses"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested ingresses. -func (c *ingresses) Watch(ctx context.Context, opts metav1.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(). - Resource("ingresses"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a ingress and creates it. Returns the server's representation of the ingress, and an error, if there is any. -func (c *ingresses) Create(ctx context.Context, ingress *v1.Ingress, opts metav1.CreateOptions) (result *v1.Ingress, err error) { - result = &v1.Ingress{} - err = c.client.Post(). - Resource("ingresses"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(ingress). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a ingress and updates it. Returns the server's representation of the ingress, and an error, if there is any. -func (c *ingresses) Update(ctx context.Context, ingress *v1.Ingress, opts metav1.UpdateOptions) (result *v1.Ingress, err error) { - result = &v1.Ingress{} - err = c.client.Put(). - Resource("ingresses"). - Name(ingress.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(ingress). - Do(ctx). - 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 *ingresses) UpdateStatus(ctx context.Context, ingress *v1.Ingress, opts metav1.UpdateOptions) (result *v1.Ingress, err error) { - result = &v1.Ingress{} - err = c.client.Put(). - Resource("ingresses"). - Name(ingress.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(ingress). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the ingress and deletes it. Returns an error if one occurs. -func (c *ingresses) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("ingresses"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *ingresses) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("ingresses"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched ingress. -func (c *ingresses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Ingress, err error) { - result = &v1.Ingress{} - err = c.client.Patch(pt). - Resource("ingresses"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/network.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/network.go deleted file mode 100644 index f9016202ae89a..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/network.go +++ /dev/null @@ -1,168 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/config/v1" - scheme "github.com/openshift/client-go/config/clientset/versioned/scheme" - metav1 "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" -) - -// NetworksGetter has a method to return a NetworkInterface. -// A group's client should implement this interface. -type NetworksGetter interface { - Networks() NetworkInterface -} - -// NetworkInterface has methods to work with Network resources. -type NetworkInterface interface { - Create(ctx context.Context, network *v1.Network, opts metav1.CreateOptions) (*v1.Network, error) - Update(ctx context.Context, network *v1.Network, opts metav1.UpdateOptions) (*v1.Network, error) - UpdateStatus(ctx context.Context, network *v1.Network, opts metav1.UpdateOptions) (*v1.Network, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Network, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.NetworkList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Network, err error) - NetworkExpansion -} - -// networks implements NetworkInterface -type networks struct { - client rest.Interface -} - -// newNetworks returns a Networks -func newNetworks(c *ConfigV1Client) *networks { - return &networks{ - client: c.RESTClient(), - } -} - -// Get takes name of the network, and returns the corresponding network object, and an error if there is any. -func (c *networks) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Network, err error) { - result = &v1.Network{} - err = c.client.Get(). - Resource("networks"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Networks that match those selectors. -func (c *networks) List(ctx context.Context, opts metav1.ListOptions) (result *v1.NetworkList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.NetworkList{} - err = c.client.Get(). - Resource("networks"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested networks. -func (c *networks) Watch(ctx context.Context, opts metav1.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(). - Resource("networks"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a network and creates it. Returns the server's representation of the network, and an error, if there is any. -func (c *networks) Create(ctx context.Context, network *v1.Network, opts metav1.CreateOptions) (result *v1.Network, err error) { - result = &v1.Network{} - err = c.client.Post(). - Resource("networks"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(network). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a network and updates it. Returns the server's representation of the network, and an error, if there is any. -func (c *networks) Update(ctx context.Context, network *v1.Network, opts metav1.UpdateOptions) (result *v1.Network, err error) { - result = &v1.Network{} - err = c.client.Put(). - Resource("networks"). - Name(network.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(network). - Do(ctx). - 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 *networks) UpdateStatus(ctx context.Context, network *v1.Network, opts metav1.UpdateOptions) (result *v1.Network, err error) { - result = &v1.Network{} - err = c.client.Put(). - Resource("networks"). - Name(network.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(network). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the network and deletes it. Returns an error if one occurs. -func (c *networks) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("networks"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *networks) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("networks"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched network. -func (c *networks) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Network, err error) { - result = &v1.Network{} - err = c.client.Patch(pt). - Resource("networks"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/oauth.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/oauth.go deleted file mode 100644 index 93fe9a521d077..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/oauth.go +++ /dev/null @@ -1,168 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/config/v1" - scheme "github.com/openshift/client-go/config/clientset/versioned/scheme" - metav1 "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" -) - -// OAuthsGetter has a method to return a OAuthInterface. -// A group's client should implement this interface. -type OAuthsGetter interface { - OAuths() OAuthInterface -} - -// OAuthInterface has methods to work with OAuth resources. -type OAuthInterface interface { - Create(ctx context.Context, oAuth *v1.OAuth, opts metav1.CreateOptions) (*v1.OAuth, error) - Update(ctx context.Context, oAuth *v1.OAuth, opts metav1.UpdateOptions) (*v1.OAuth, error) - UpdateStatus(ctx context.Context, oAuth *v1.OAuth, opts metav1.UpdateOptions) (*v1.OAuth, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.OAuth, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.OAuthList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OAuth, err error) - OAuthExpansion -} - -// oAuths implements OAuthInterface -type oAuths struct { - client rest.Interface -} - -// newOAuths returns a OAuths -func newOAuths(c *ConfigV1Client) *oAuths { - return &oAuths{ - client: c.RESTClient(), - } -} - -// Get takes name of the oAuth, and returns the corresponding oAuth object, and an error if there is any. -func (c *oAuths) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.OAuth, err error) { - result = &v1.OAuth{} - err = c.client.Get(). - Resource("oauths"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of OAuths that match those selectors. -func (c *oAuths) List(ctx context.Context, opts metav1.ListOptions) (result *v1.OAuthList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.OAuthList{} - err = c.client.Get(). - Resource("oauths"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested oAuths. -func (c *oAuths) Watch(ctx context.Context, opts metav1.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(). - Resource("oauths"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a oAuth and creates it. Returns the server's representation of the oAuth, and an error, if there is any. -func (c *oAuths) Create(ctx context.Context, oAuth *v1.OAuth, opts metav1.CreateOptions) (result *v1.OAuth, err error) { - result = &v1.OAuth{} - err = c.client.Post(). - Resource("oauths"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(oAuth). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a oAuth and updates it. Returns the server's representation of the oAuth, and an error, if there is any. -func (c *oAuths) Update(ctx context.Context, oAuth *v1.OAuth, opts metav1.UpdateOptions) (result *v1.OAuth, err error) { - result = &v1.OAuth{} - err = c.client.Put(). - Resource("oauths"). - Name(oAuth.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(oAuth). - Do(ctx). - 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 *oAuths) UpdateStatus(ctx context.Context, oAuth *v1.OAuth, opts metav1.UpdateOptions) (result *v1.OAuth, err error) { - result = &v1.OAuth{} - err = c.client.Put(). - Resource("oauths"). - Name(oAuth.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(oAuth). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the oAuth and deletes it. Returns an error if one occurs. -func (c *oAuths) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("oauths"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *oAuths) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("oauths"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched oAuth. -func (c *oAuths) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OAuth, err error) { - result = &v1.OAuth{} - err = c.client.Patch(pt). - Resource("oauths"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/operatorhub.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/operatorhub.go deleted file mode 100644 index 06a2b18442aae..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/operatorhub.go +++ /dev/null @@ -1,168 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/config/v1" - scheme "github.com/openshift/client-go/config/clientset/versioned/scheme" - metav1 "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" -) - -// OperatorHubsGetter has a method to return a OperatorHubInterface. -// A group's client should implement this interface. -type OperatorHubsGetter interface { - OperatorHubs() OperatorHubInterface -} - -// OperatorHubInterface has methods to work with OperatorHub resources. -type OperatorHubInterface interface { - Create(ctx context.Context, operatorHub *v1.OperatorHub, opts metav1.CreateOptions) (*v1.OperatorHub, error) - Update(ctx context.Context, operatorHub *v1.OperatorHub, opts metav1.UpdateOptions) (*v1.OperatorHub, error) - UpdateStatus(ctx context.Context, operatorHub *v1.OperatorHub, opts metav1.UpdateOptions) (*v1.OperatorHub, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.OperatorHub, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.OperatorHubList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OperatorHub, err error) - OperatorHubExpansion -} - -// operatorHubs implements OperatorHubInterface -type operatorHubs struct { - client rest.Interface -} - -// newOperatorHubs returns a OperatorHubs -func newOperatorHubs(c *ConfigV1Client) *operatorHubs { - return &operatorHubs{ - client: c.RESTClient(), - } -} - -// Get takes name of the operatorHub, and returns the corresponding operatorHub object, and an error if there is any. -func (c *operatorHubs) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.OperatorHub, err error) { - result = &v1.OperatorHub{} - err = c.client.Get(). - Resource("operatorhubs"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of OperatorHubs that match those selectors. -func (c *operatorHubs) List(ctx context.Context, opts metav1.ListOptions) (result *v1.OperatorHubList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.OperatorHubList{} - err = c.client.Get(). - Resource("operatorhubs"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested operatorHubs. -func (c *operatorHubs) Watch(ctx context.Context, opts metav1.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(). - Resource("operatorhubs"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a operatorHub and creates it. Returns the server's representation of the operatorHub, and an error, if there is any. -func (c *operatorHubs) Create(ctx context.Context, operatorHub *v1.OperatorHub, opts metav1.CreateOptions) (result *v1.OperatorHub, err error) { - result = &v1.OperatorHub{} - err = c.client.Post(). - Resource("operatorhubs"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(operatorHub). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a operatorHub and updates it. Returns the server's representation of the operatorHub, and an error, if there is any. -func (c *operatorHubs) Update(ctx context.Context, operatorHub *v1.OperatorHub, opts metav1.UpdateOptions) (result *v1.OperatorHub, err error) { - result = &v1.OperatorHub{} - err = c.client.Put(). - Resource("operatorhubs"). - Name(operatorHub.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(operatorHub). - Do(ctx). - 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 *operatorHubs) UpdateStatus(ctx context.Context, operatorHub *v1.OperatorHub, opts metav1.UpdateOptions) (result *v1.OperatorHub, err error) { - result = &v1.OperatorHub{} - err = c.client.Put(). - Resource("operatorhubs"). - Name(operatorHub.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(operatorHub). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the operatorHub and deletes it. Returns an error if one occurs. -func (c *operatorHubs) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("operatorhubs"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *operatorHubs) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("operatorhubs"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched operatorHub. -func (c *operatorHubs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OperatorHub, err error) { - result = &v1.OperatorHub{} - err = c.client.Patch(pt). - Resource("operatorhubs"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/project.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/project.go deleted file mode 100644 index d2f91a2ebae2c..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/project.go +++ /dev/null @@ -1,168 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/config/v1" - scheme "github.com/openshift/client-go/config/clientset/versioned/scheme" - metav1 "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" -) - -// ProjectsGetter has a method to return a ProjectInterface. -// A group's client should implement this interface. -type ProjectsGetter interface { - Projects() ProjectInterface -} - -// ProjectInterface has methods to work with Project resources. -type ProjectInterface interface { - Create(ctx context.Context, project *v1.Project, opts metav1.CreateOptions) (*v1.Project, error) - Update(ctx context.Context, project *v1.Project, opts metav1.UpdateOptions) (*v1.Project, error) - UpdateStatus(ctx context.Context, project *v1.Project, opts metav1.UpdateOptions) (*v1.Project, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Project, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.ProjectList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Project, err error) - ProjectExpansion -} - -// projects implements ProjectInterface -type projects struct { - client rest.Interface -} - -// newProjects returns a Projects -func newProjects(c *ConfigV1Client) *projects { - return &projects{ - client: c.RESTClient(), - } -} - -// Get takes name of the project, and returns the corresponding project object, and an error if there is any. -func (c *projects) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Project, err error) { - result = &v1.Project{} - err = c.client.Get(). - Resource("projects"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Projects that match those selectors. -func (c *projects) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ProjectList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.ProjectList{} - err = c.client.Get(). - Resource("projects"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested projects. -func (c *projects) Watch(ctx context.Context, opts metav1.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(). - Resource("projects"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a project and creates it. Returns the server's representation of the project, and an error, if there is any. -func (c *projects) Create(ctx context.Context, project *v1.Project, opts metav1.CreateOptions) (result *v1.Project, err error) { - result = &v1.Project{} - err = c.client.Post(). - Resource("projects"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(project). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a project and updates it. Returns the server's representation of the project, and an error, if there is any. -func (c *projects) Update(ctx context.Context, project *v1.Project, opts metav1.UpdateOptions) (result *v1.Project, err error) { - result = &v1.Project{} - err = c.client.Put(). - Resource("projects"). - Name(project.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(project). - Do(ctx). - 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 *projects) UpdateStatus(ctx context.Context, project *v1.Project, opts metav1.UpdateOptions) (result *v1.Project, err error) { - result = &v1.Project{} - err = c.client.Put(). - Resource("projects"). - Name(project.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(project). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the project and deletes it. Returns an error if one occurs. -func (c *projects) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("projects"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *projects) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("projects"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched project. -func (c *projects) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Project, err error) { - result = &v1.Project{} - err = c.client.Patch(pt). - Resource("projects"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/proxy.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/proxy.go deleted file mode 100644 index 74c635c23de79..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/proxy.go +++ /dev/null @@ -1,168 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/config/v1" - scheme "github.com/openshift/client-go/config/clientset/versioned/scheme" - metav1 "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" -) - -// ProxiesGetter has a method to return a ProxyInterface. -// A group's client should implement this interface. -type ProxiesGetter interface { - Proxies() ProxyInterface -} - -// ProxyInterface has methods to work with Proxy resources. -type ProxyInterface interface { - Create(ctx context.Context, proxy *v1.Proxy, opts metav1.CreateOptions) (*v1.Proxy, error) - Update(ctx context.Context, proxy *v1.Proxy, opts metav1.UpdateOptions) (*v1.Proxy, error) - UpdateStatus(ctx context.Context, proxy *v1.Proxy, opts metav1.UpdateOptions) (*v1.Proxy, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Proxy, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.ProxyList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Proxy, err error) - ProxyExpansion -} - -// proxies implements ProxyInterface -type proxies struct { - client rest.Interface -} - -// newProxies returns a Proxies -func newProxies(c *ConfigV1Client) *proxies { - return &proxies{ - client: c.RESTClient(), - } -} - -// Get takes name of the proxy, and returns the corresponding proxy object, and an error if there is any. -func (c *proxies) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Proxy, err error) { - result = &v1.Proxy{} - err = c.client.Get(). - Resource("proxies"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Proxies that match those selectors. -func (c *proxies) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ProxyList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.ProxyList{} - err = c.client.Get(). - Resource("proxies"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested proxies. -func (c *proxies) Watch(ctx context.Context, opts metav1.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(). - Resource("proxies"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a proxy and creates it. Returns the server's representation of the proxy, and an error, if there is any. -func (c *proxies) Create(ctx context.Context, proxy *v1.Proxy, opts metav1.CreateOptions) (result *v1.Proxy, err error) { - result = &v1.Proxy{} - err = c.client.Post(). - Resource("proxies"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(proxy). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a proxy and updates it. Returns the server's representation of the proxy, and an error, if there is any. -func (c *proxies) Update(ctx context.Context, proxy *v1.Proxy, opts metav1.UpdateOptions) (result *v1.Proxy, err error) { - result = &v1.Proxy{} - err = c.client.Put(). - Resource("proxies"). - Name(proxy.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(proxy). - Do(ctx). - 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 *proxies) UpdateStatus(ctx context.Context, proxy *v1.Proxy, opts metav1.UpdateOptions) (result *v1.Proxy, err error) { - result = &v1.Proxy{} - err = c.client.Put(). - Resource("proxies"). - Name(proxy.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(proxy). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the proxy and deletes it. Returns an error if one occurs. -func (c *proxies) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("proxies"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *proxies) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("proxies"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched proxy. -func (c *proxies) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Proxy, err error) { - result = &v1.Proxy{} - err = c.client.Patch(pt). - Resource("proxies"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/scheduler.go b/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/scheduler.go deleted file mode 100644 index 8f9f9219cf1dc..0000000000000 --- a/vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/scheduler.go +++ /dev/null @@ -1,168 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/config/v1" - scheme "github.com/openshift/client-go/config/clientset/versioned/scheme" - metav1 "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" -) - -// SchedulersGetter has a method to return a SchedulerInterface. -// A group's client should implement this interface. -type SchedulersGetter interface { - Schedulers() SchedulerInterface -} - -// SchedulerInterface has methods to work with Scheduler resources. -type SchedulerInterface interface { - Create(ctx context.Context, scheduler *v1.Scheduler, opts metav1.CreateOptions) (*v1.Scheduler, error) - Update(ctx context.Context, scheduler *v1.Scheduler, opts metav1.UpdateOptions) (*v1.Scheduler, error) - UpdateStatus(ctx context.Context, scheduler *v1.Scheduler, opts metav1.UpdateOptions) (*v1.Scheduler, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Scheduler, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.SchedulerList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Scheduler, err error) - SchedulerExpansion -} - -// schedulers implements SchedulerInterface -type schedulers struct { - client rest.Interface -} - -// newSchedulers returns a Schedulers -func newSchedulers(c *ConfigV1Client) *schedulers { - return &schedulers{ - client: c.RESTClient(), - } -} - -// Get takes name of the scheduler, and returns the corresponding scheduler object, and an error if there is any. -func (c *schedulers) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Scheduler, err error) { - result = &v1.Scheduler{} - err = c.client.Get(). - Resource("schedulers"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Schedulers that match those selectors. -func (c *schedulers) List(ctx context.Context, opts metav1.ListOptions) (result *v1.SchedulerList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.SchedulerList{} - err = c.client.Get(). - Resource("schedulers"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested schedulers. -func (c *schedulers) Watch(ctx context.Context, opts metav1.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(). - Resource("schedulers"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a scheduler and creates it. Returns the server's representation of the scheduler, and an error, if there is any. -func (c *schedulers) Create(ctx context.Context, scheduler *v1.Scheduler, opts metav1.CreateOptions) (result *v1.Scheduler, err error) { - result = &v1.Scheduler{} - err = c.client.Post(). - Resource("schedulers"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(scheduler). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a scheduler and updates it. Returns the server's representation of the scheduler, and an error, if there is any. -func (c *schedulers) Update(ctx context.Context, scheduler *v1.Scheduler, opts metav1.UpdateOptions) (result *v1.Scheduler, err error) { - result = &v1.Scheduler{} - err = c.client.Put(). - Resource("schedulers"). - Name(scheduler.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(scheduler). - Do(ctx). - 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 *schedulers) UpdateStatus(ctx context.Context, scheduler *v1.Scheduler, opts metav1.UpdateOptions) (result *v1.Scheduler, err error) { - result = &v1.Scheduler{} - err = c.client.Put(). - Resource("schedulers"). - Name(scheduler.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(scheduler). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the scheduler and deletes it. Returns an error if one occurs. -func (c *schedulers) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("schedulers"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *schedulers) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("schedulers"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched scheduler. -func (c *schedulers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Scheduler, err error) { - result = &v1.Scheduler{} - err = c.client.Patch(pt). - Resource("schedulers"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/image/clientset/versioned/clientset.go b/vendor/github.com/openshift/client-go/image/clientset/versioned/clientset.go deleted file mode 100644 index 94520d6d4ec7d..0000000000000 --- a/vendor/github.com/openshift/client-go/image/clientset/versioned/clientset.go +++ /dev/null @@ -1,81 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package versioned - -import ( - "fmt" - - imagev1 "github.com/openshift/client-go/image/clientset/versioned/typed/image/v1" - 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 - ImageV1() imagev1.ImageV1Interface -} - -// Clientset contains the clients for groups. Each group has exactly one -// version included in a Clientset. -type Clientset struct { - *discovery.DiscoveryClient - imageV1 *imagev1.ImageV1Client -} - -// ImageV1 retrieves the ImageV1Client -func (c *Clientset) ImageV1() imagev1.ImageV1Interface { - return c.imageV1 -} - -// 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.imageV1, err = imagev1.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.imageV1 = imagev1.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.imageV1 = imagev1.New(c) - - cs.DiscoveryClient = discovery.NewDiscoveryClient(c) - return &cs -} diff --git a/vendor/github.com/openshift/client-go/image/clientset/versioned/doc.go b/vendor/github.com/openshift/client-go/image/clientset/versioned/doc.go deleted file mode 100644 index 0e0c2a8900e2c..0000000000000 --- a/vendor/github.com/openshift/client-go/image/clientset/versioned/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated clientset. -package versioned diff --git a/vendor/github.com/openshift/client-go/image/clientset/versioned/scheme/doc.go b/vendor/github.com/openshift/client-go/image/clientset/versioned/scheme/doc.go deleted file mode 100644 index 14db57a58f8d2..0000000000000 --- a/vendor/github.com/openshift/client-go/image/clientset/versioned/scheme/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package contains the scheme of the automatically generated clientset. -package scheme diff --git a/vendor/github.com/openshift/client-go/image/clientset/versioned/scheme/register.go b/vendor/github.com/openshift/client-go/image/clientset/versioned/scheme/register.go deleted file mode 100644 index 32fa9cb7ab214..0000000000000 --- a/vendor/github.com/openshift/client-go/image/clientset/versioned/scheme/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package scheme - -import ( - imagev1 "github.com/openshift/api/image/v1" - 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{ - imagev1.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/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/doc.go b/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/doc.go deleted file mode 100644 index 225e6b2be34f2..0000000000000 --- a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated typed clients. -package v1 diff --git a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/generated_expansion.go b/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/generated_expansion.go deleted file mode 100644 index c495ba76e69cd..0000000000000 --- a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/generated_expansion.go +++ /dev/null @@ -1,19 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -type ImageExpansion interface{} - -type ImageSignatureExpansion interface{} - -type ImageStreamExpansion interface{} - -type ImageStreamImageExpansion interface{} - -type ImageStreamImportExpansion interface{} - -type ImageStreamMappingExpansion interface{} - -type ImageStreamTagExpansion interface{} - -type ImageTagExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/image.go b/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/image.go deleted file mode 100644 index 86d04f5310f75..0000000000000 --- a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/image.go +++ /dev/null @@ -1,152 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/image/v1" - scheme "github.com/openshift/client-go/image/clientset/versioned/scheme" - metav1 "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" -) - -// ImagesGetter has a method to return a ImageInterface. -// A group's client should implement this interface. -type ImagesGetter interface { - Images() ImageInterface -} - -// ImageInterface has methods to work with Image resources. -type ImageInterface interface { - Create(ctx context.Context, image *v1.Image, opts metav1.CreateOptions) (*v1.Image, error) - Update(ctx context.Context, image *v1.Image, opts metav1.UpdateOptions) (*v1.Image, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Image, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.ImageList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Image, err error) - ImageExpansion -} - -// images implements ImageInterface -type images struct { - client rest.Interface -} - -// newImages returns a Images -func newImages(c *ImageV1Client) *images { - return &images{ - client: c.RESTClient(), - } -} - -// Get takes name of the image, and returns the corresponding image object, and an error if there is any. -func (c *images) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Image, err error) { - result = &v1.Image{} - err = c.client.Get(). - Resource("images"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Images that match those selectors. -func (c *images) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ImageList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.ImageList{} - err = c.client.Get(). - Resource("images"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested images. -func (c *images) Watch(ctx context.Context, opts metav1.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(). - Resource("images"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a image and creates it. Returns the server's representation of the image, and an error, if there is any. -func (c *images) Create(ctx context.Context, image *v1.Image, opts metav1.CreateOptions) (result *v1.Image, err error) { - result = &v1.Image{} - err = c.client.Post(). - Resource("images"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(image). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a image and updates it. Returns the server's representation of the image, and an error, if there is any. -func (c *images) Update(ctx context.Context, image *v1.Image, opts metav1.UpdateOptions) (result *v1.Image, err error) { - result = &v1.Image{} - err = c.client.Put(). - Resource("images"). - Name(image.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(image). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the image and deletes it. Returns an error if one occurs. -func (c *images) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("images"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *images) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("images"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched image. -func (c *images) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Image, err error) { - result = &v1.Image{} - err = c.client.Patch(pt). - Resource("images"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/image_client.go b/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/image_client.go deleted file mode 100644 index 1b85d2d6fafe9..0000000000000 --- a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/image_client.go +++ /dev/null @@ -1,108 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/image/v1" - "github.com/openshift/client-go/image/clientset/versioned/scheme" - rest "k8s.io/client-go/rest" -) - -type ImageV1Interface interface { - RESTClient() rest.Interface - ImagesGetter - ImageSignaturesGetter - ImageStreamsGetter - ImageStreamImagesGetter - ImageStreamImportsGetter - ImageStreamMappingsGetter - ImageStreamTagsGetter - ImageTagsGetter -} - -// ImageV1Client is used to interact with features provided by the image.openshift.io group. -type ImageV1Client struct { - restClient rest.Interface -} - -func (c *ImageV1Client) Images() ImageInterface { - return newImages(c) -} - -func (c *ImageV1Client) ImageSignatures() ImageSignatureInterface { - return newImageSignatures(c) -} - -func (c *ImageV1Client) ImageStreams(namespace string) ImageStreamInterface { - return newImageStreams(c, namespace) -} - -func (c *ImageV1Client) ImageStreamImages(namespace string) ImageStreamImageInterface { - return newImageStreamImages(c, namespace) -} - -func (c *ImageV1Client) ImageStreamImports(namespace string) ImageStreamImportInterface { - return newImageStreamImports(c, namespace) -} - -func (c *ImageV1Client) ImageStreamMappings(namespace string) ImageStreamMappingInterface { - return newImageStreamMappings(c, namespace) -} - -func (c *ImageV1Client) ImageStreamTags(namespace string) ImageStreamTagInterface { - return newImageStreamTags(c, namespace) -} - -func (c *ImageV1Client) ImageTags(namespace string) ImageTagInterface { - return newImageTags(c, namespace) -} - -// NewForConfig creates a new ImageV1Client for the given config. -func NewForConfig(c *rest.Config) (*ImageV1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientFor(&config) - if err != nil { - return nil, err - } - return &ImageV1Client{client}, nil -} - -// NewForConfigOrDie creates a new ImageV1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *ImageV1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new ImageV1Client for the given RESTClient. -func New(c rest.Interface) *ImageV1Client { - return &ImageV1Client{c} -} - -func setConfigDefaults(config *rest.Config) error { - gv := v1.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 *ImageV1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagesignature.go b/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagesignature.go deleted file mode 100644 index 195b8f371754d..0000000000000 --- a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagesignature.go +++ /dev/null @@ -1,59 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - - v1 "github.com/openshift/api/image/v1" - scheme "github.com/openshift/client-go/image/clientset/versioned/scheme" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rest "k8s.io/client-go/rest" -) - -// ImageSignaturesGetter has a method to return a ImageSignatureInterface. -// A group's client should implement this interface. -type ImageSignaturesGetter interface { - ImageSignatures() ImageSignatureInterface -} - -// ImageSignatureInterface has methods to work with ImageSignature resources. -type ImageSignatureInterface interface { - Create(ctx context.Context, imageSignature *v1.ImageSignature, opts metav1.CreateOptions) (*v1.ImageSignature, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - ImageSignatureExpansion -} - -// imageSignatures implements ImageSignatureInterface -type imageSignatures struct { - client rest.Interface -} - -// newImageSignatures returns a ImageSignatures -func newImageSignatures(c *ImageV1Client) *imageSignatures { - return &imageSignatures{ - client: c.RESTClient(), - } -} - -// Create takes the representation of a imageSignature and creates it. Returns the server's representation of the imageSignature, and an error, if there is any. -func (c *imageSignatures) Create(ctx context.Context, imageSignature *v1.ImageSignature, opts metav1.CreateOptions) (result *v1.ImageSignature, err error) { - result = &v1.ImageSignature{} - err = c.client.Post(). - Resource("imagesignatures"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(imageSignature). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the imageSignature and deletes it. Returns an error if one occurs. -func (c *imageSignatures) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("imagesignatures"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} diff --git a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagestream.go b/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagestream.go deleted file mode 100644 index dcfb8942e4c00..0000000000000 --- a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagestream.go +++ /dev/null @@ -1,211 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/image/v1" - scheme "github.com/openshift/client-go/image/clientset/versioned/scheme" - corev1 "k8s.io/api/core/v1" - metav1 "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" -) - -// ImageStreamsGetter has a method to return a ImageStreamInterface. -// A group's client should implement this interface. -type ImageStreamsGetter interface { - ImageStreams(namespace string) ImageStreamInterface -} - -// ImageStreamInterface has methods to work with ImageStream resources. -type ImageStreamInterface interface { - Create(ctx context.Context, imageStream *v1.ImageStream, opts metav1.CreateOptions) (*v1.ImageStream, error) - Update(ctx context.Context, imageStream *v1.ImageStream, opts metav1.UpdateOptions) (*v1.ImageStream, error) - UpdateStatus(ctx context.Context, imageStream *v1.ImageStream, opts metav1.UpdateOptions) (*v1.ImageStream, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ImageStream, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.ImageStreamList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ImageStream, err error) - Secrets(ctx context.Context, imageStreamName string, options metav1.GetOptions) (*corev1.SecretList, error) - Layers(ctx context.Context, imageStreamName string, options metav1.GetOptions) (*v1.ImageStreamLayers, error) - - ImageStreamExpansion -} - -// imageStreams implements ImageStreamInterface -type imageStreams struct { - client rest.Interface - ns string -} - -// newImageStreams returns a ImageStreams -func newImageStreams(c *ImageV1Client, namespace string) *imageStreams { - return &imageStreams{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the imageStream, and returns the corresponding imageStream object, and an error if there is any. -func (c *imageStreams) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ImageStream, err error) { - result = &v1.ImageStream{} - err = c.client.Get(). - Namespace(c.ns). - Resource("imagestreams"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of ImageStreams that match those selectors. -func (c *imageStreams) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ImageStreamList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.ImageStreamList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("imagestreams"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested imageStreams. -func (c *imageStreams) Watch(ctx context.Context, opts metav1.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("imagestreams"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a imageStream and creates it. Returns the server's representation of the imageStream, and an error, if there is any. -func (c *imageStreams) Create(ctx context.Context, imageStream *v1.ImageStream, opts metav1.CreateOptions) (result *v1.ImageStream, err error) { - result = &v1.ImageStream{} - err = c.client.Post(). - Namespace(c.ns). - Resource("imagestreams"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(imageStream). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a imageStream and updates it. Returns the server's representation of the imageStream, and an error, if there is any. -func (c *imageStreams) Update(ctx context.Context, imageStream *v1.ImageStream, opts metav1.UpdateOptions) (result *v1.ImageStream, err error) { - result = &v1.ImageStream{} - err = c.client.Put(). - Namespace(c.ns). - Resource("imagestreams"). - Name(imageStream.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(imageStream). - Do(ctx). - 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 *imageStreams) UpdateStatus(ctx context.Context, imageStream *v1.ImageStream, opts metav1.UpdateOptions) (result *v1.ImageStream, err error) { - result = &v1.ImageStream{} - err = c.client.Put(). - Namespace(c.ns). - Resource("imagestreams"). - Name(imageStream.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(imageStream). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the imageStream and deletes it. Returns an error if one occurs. -func (c *imageStreams) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("imagestreams"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *imageStreams) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Namespace(c.ns). - Resource("imagestreams"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched imageStream. -func (c *imageStreams) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ImageStream, err error) { - result = &v1.ImageStream{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("imagestreams"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} - -// Secrets takes name of the imageStream, and returns the corresponding corev1.SecretList object, and an error if there is any. -func (c *imageStreams) Secrets(ctx context.Context, imageStreamName string, options metav1.GetOptions) (result *corev1.SecretList, err error) { - result = &corev1.SecretList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("imagestreams"). - Name(imageStreamName). - SubResource("secrets"). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// Layers takes name of the imageStream, and returns the corresponding v1.ImageStreamLayers object, and an error if there is any. -func (c *imageStreams) Layers(ctx context.Context, imageStreamName string, options metav1.GetOptions) (result *v1.ImageStreamLayers, err error) { - result = &v1.ImageStreamLayers{} - err = c.client.Get(). - Namespace(c.ns). - Resource("imagestreams"). - Name(imageStreamName). - SubResource("layers"). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagestreamimage.go b/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagestreamimage.go deleted file mode 100644 index 79f46753a7779..0000000000000 --- a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagestreamimage.go +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - - imagev1 "github.com/openshift/api/image/v1" - scheme "github.com/openshift/client-go/image/clientset/versioned/scheme" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rest "k8s.io/client-go/rest" -) - -// ImageStreamImagesGetter has a method to return a ImageStreamImageInterface. -// A group's client should implement this interface. -type ImageStreamImagesGetter interface { - ImageStreamImages(namespace string) ImageStreamImageInterface -} - -// ImageStreamImageInterface has methods to work with ImageStreamImage resources. -type ImageStreamImageInterface interface { - Get(ctx context.Context, name string, opts v1.GetOptions) (*imagev1.ImageStreamImage, error) - ImageStreamImageExpansion -} - -// imageStreamImages implements ImageStreamImageInterface -type imageStreamImages struct { - client rest.Interface - ns string -} - -// newImageStreamImages returns a ImageStreamImages -func newImageStreamImages(c *ImageV1Client, namespace string) *imageStreamImages { - return &imageStreamImages{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the imageStreamImage, and returns the corresponding imageStreamImage object, and an error if there is any. -func (c *imageStreamImages) Get(ctx context.Context, name string, options v1.GetOptions) (result *imagev1.ImageStreamImage, err error) { - result = &imagev1.ImageStreamImage{} - err = c.client.Get(). - Namespace(c.ns). - Resource("imagestreamimages"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagestreamimport.go b/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagestreamimport.go deleted file mode 100644 index 7c43c951de187..0000000000000 --- a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagestreamimport.go +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - - v1 "github.com/openshift/api/image/v1" - scheme "github.com/openshift/client-go/image/clientset/versioned/scheme" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rest "k8s.io/client-go/rest" -) - -// ImageStreamImportsGetter has a method to return a ImageStreamImportInterface. -// A group's client should implement this interface. -type ImageStreamImportsGetter interface { - ImageStreamImports(namespace string) ImageStreamImportInterface -} - -// ImageStreamImportInterface has methods to work with ImageStreamImport resources. -type ImageStreamImportInterface interface { - Create(ctx context.Context, imageStreamImport *v1.ImageStreamImport, opts metav1.CreateOptions) (*v1.ImageStreamImport, error) - ImageStreamImportExpansion -} - -// imageStreamImports implements ImageStreamImportInterface -type imageStreamImports struct { - client rest.Interface - ns string -} - -// newImageStreamImports returns a ImageStreamImports -func newImageStreamImports(c *ImageV1Client, namespace string) *imageStreamImports { - return &imageStreamImports{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Create takes the representation of a imageStreamImport and creates it. Returns the server's representation of the imageStreamImport, and an error, if there is any. -func (c *imageStreamImports) Create(ctx context.Context, imageStreamImport *v1.ImageStreamImport, opts metav1.CreateOptions) (result *v1.ImageStreamImport, err error) { - result = &v1.ImageStreamImport{} - err = c.client.Post(). - Namespace(c.ns). - Resource("imagestreamimports"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(imageStreamImport). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagestreammapping.go b/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagestreammapping.go deleted file mode 100644 index 5dc7df95740b9..0000000000000 --- a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagestreammapping.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - - v1 "github.com/openshift/api/image/v1" - scheme "github.com/openshift/client-go/image/clientset/versioned/scheme" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rest "k8s.io/client-go/rest" -) - -// ImageStreamMappingsGetter has a method to return a ImageStreamMappingInterface. -// A group's client should implement this interface. -type ImageStreamMappingsGetter interface { - ImageStreamMappings(namespace string) ImageStreamMappingInterface -} - -// ImageStreamMappingInterface has methods to work with ImageStreamMapping resources. -type ImageStreamMappingInterface interface { - Create(ctx context.Context, imageStreamMapping *v1.ImageStreamMapping, opts metav1.CreateOptions) (*metav1.Status, error) - - ImageStreamMappingExpansion -} - -// imageStreamMappings implements ImageStreamMappingInterface -type imageStreamMappings struct { - client rest.Interface - ns string -} - -// newImageStreamMappings returns a ImageStreamMappings -func newImageStreamMappings(c *ImageV1Client, namespace string) *imageStreamMappings { - return &imageStreamMappings{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Create takes the representation of a imageStreamMapping and creates it. Returns the server's representation of the status, and an error, if there is any. -func (c *imageStreamMappings) Create(ctx context.Context, imageStreamMapping *v1.ImageStreamMapping, opts metav1.CreateOptions) (result *metav1.Status, err error) { - result = &metav1.Status{} - err = c.client.Post(). - Namespace(c.ns). - Resource("imagestreammappings"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(imageStreamMapping). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagestreamtag.go b/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagestreamtag.go deleted file mode 100644 index 4ea36ccdc2111..0000000000000 --- a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagestreamtag.go +++ /dev/null @@ -1,111 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/image/v1" - scheme "github.com/openshift/client-go/image/clientset/versioned/scheme" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rest "k8s.io/client-go/rest" -) - -// ImageStreamTagsGetter has a method to return a ImageStreamTagInterface. -// A group's client should implement this interface. -type ImageStreamTagsGetter interface { - ImageStreamTags(namespace string) ImageStreamTagInterface -} - -// ImageStreamTagInterface has methods to work with ImageStreamTag resources. -type ImageStreamTagInterface interface { - Create(ctx context.Context, imageStreamTag *v1.ImageStreamTag, opts metav1.CreateOptions) (*v1.ImageStreamTag, error) - Update(ctx context.Context, imageStreamTag *v1.ImageStreamTag, opts metav1.UpdateOptions) (*v1.ImageStreamTag, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ImageStreamTag, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.ImageStreamTagList, error) - ImageStreamTagExpansion -} - -// imageStreamTags implements ImageStreamTagInterface -type imageStreamTags struct { - client rest.Interface - ns string -} - -// newImageStreamTags returns a ImageStreamTags -func newImageStreamTags(c *ImageV1Client, namespace string) *imageStreamTags { - return &imageStreamTags{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the imageStreamTag, and returns the corresponding imageStreamTag object, and an error if there is any. -func (c *imageStreamTags) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ImageStreamTag, err error) { - result = &v1.ImageStreamTag{} - err = c.client.Get(). - Namespace(c.ns). - Resource("imagestreamtags"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of ImageStreamTags that match those selectors. -func (c *imageStreamTags) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ImageStreamTagList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.ImageStreamTagList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("imagestreamtags"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Create takes the representation of a imageStreamTag and creates it. Returns the server's representation of the imageStreamTag, and an error, if there is any. -func (c *imageStreamTags) Create(ctx context.Context, imageStreamTag *v1.ImageStreamTag, opts metav1.CreateOptions) (result *v1.ImageStreamTag, err error) { - result = &v1.ImageStreamTag{} - err = c.client.Post(). - Namespace(c.ns). - Resource("imagestreamtags"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(imageStreamTag). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a imageStreamTag and updates it. Returns the server's representation of the imageStreamTag, and an error, if there is any. -func (c *imageStreamTags) Update(ctx context.Context, imageStreamTag *v1.ImageStreamTag, opts metav1.UpdateOptions) (result *v1.ImageStreamTag, err error) { - result = &v1.ImageStreamTag{} - err = c.client.Put(). - Namespace(c.ns). - Resource("imagestreamtags"). - Name(imageStreamTag.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(imageStreamTag). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the imageStreamTag and deletes it. Returns an error if one occurs. -func (c *imageStreamTags) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("imagestreamtags"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} diff --git a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagetag.go b/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagetag.go deleted file mode 100644 index a0d80e3ac8c00..0000000000000 --- a/vendor/github.com/openshift/client-go/image/clientset/versioned/typed/image/v1/imagetag.go +++ /dev/null @@ -1,111 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/image/v1" - scheme "github.com/openshift/client-go/image/clientset/versioned/scheme" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rest "k8s.io/client-go/rest" -) - -// ImageTagsGetter has a method to return a ImageTagInterface. -// A group's client should implement this interface. -type ImageTagsGetter interface { - ImageTags(namespace string) ImageTagInterface -} - -// ImageTagInterface has methods to work with ImageTag resources. -type ImageTagInterface interface { - Create(ctx context.Context, imageTag *v1.ImageTag, opts metav1.CreateOptions) (*v1.ImageTag, error) - Update(ctx context.Context, imageTag *v1.ImageTag, opts metav1.UpdateOptions) (*v1.ImageTag, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ImageTag, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.ImageTagList, error) - ImageTagExpansion -} - -// imageTags implements ImageTagInterface -type imageTags struct { - client rest.Interface - ns string -} - -// newImageTags returns a ImageTags -func newImageTags(c *ImageV1Client, namespace string) *imageTags { - return &imageTags{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the imageTag, and returns the corresponding imageTag object, and an error if there is any. -func (c *imageTags) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ImageTag, err error) { - result = &v1.ImageTag{} - err = c.client.Get(). - Namespace(c.ns). - Resource("imagetags"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of ImageTags that match those selectors. -func (c *imageTags) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ImageTagList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.ImageTagList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("imagetags"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Create takes the representation of a imageTag and creates it. Returns the server's representation of the imageTag, and an error, if there is any. -func (c *imageTags) Create(ctx context.Context, imageTag *v1.ImageTag, opts metav1.CreateOptions) (result *v1.ImageTag, err error) { - result = &v1.ImageTag{} - err = c.client.Post(). - Namespace(c.ns). - Resource("imagetags"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(imageTag). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a imageTag and updates it. Returns the server's representation of the imageTag, and an error, if there is any. -func (c *imageTags) Update(ctx context.Context, imageTag *v1.ImageTag, opts metav1.UpdateOptions) (result *v1.ImageTag, err error) { - result = &v1.ImageTag{} - err = c.client.Put(). - Namespace(c.ns). - Resource("imagetags"). - Name(imageTag.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(imageTag). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the imageTag and deletes it. Returns an error if one occurs. -func (c *imageTags) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("imagetags"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} diff --git a/vendor/github.com/openshift/client-go/image/informers/externalversions/factory.go b/vendor/github.com/openshift/client-go/image/informers/externalversions/factory.go deleted file mode 100644 index 067795180f33a..0000000000000 --- a/vendor/github.com/openshift/client-go/image/informers/externalversions/factory.go +++ /dev/null @@ -1,164 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - reflect "reflect" - sync "sync" - time "time" - - versioned "github.com/openshift/client-go/image/clientset/versioned" - image "github.com/openshift/client-go/image/informers/externalversions/image" - internalinterfaces "github.com/openshift/client-go/image/informers/externalversions/internalinterfaces" - 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 versioned.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 versioned.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 versioned.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 versioned.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 - - Image() image.Interface -} - -func (f *sharedInformerFactory) Image() image.Interface { - return image.New(f, f.namespace, f.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/image/informers/externalversions/generic.go b/vendor/github.com/openshift/client-go/image/informers/externalversions/generic.go deleted file mode 100644 index 55f59dedef45a..0000000000000 --- a/vendor/github.com/openshift/client-go/image/informers/externalversions/generic.go +++ /dev/null @@ -1,48 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - "fmt" - - v1 "github.com/openshift/api/image/v1" - 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=image.openshift.io, Version=v1 - case v1.SchemeGroupVersion.WithResource("images"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Image().V1().Images().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("imagestreams"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Image().V1().ImageStreams().Informer()}, nil - - } - - return nil, fmt.Errorf("no informer found for %v", resource) -} diff --git a/vendor/github.com/openshift/client-go/image/informers/externalversions/image/interface.go b/vendor/github.com/openshift/client-go/image/informers/externalversions/image/interface.go deleted file mode 100644 index 092550ed3dab4..0000000000000 --- a/vendor/github.com/openshift/client-go/image/informers/externalversions/image/interface.go +++ /dev/null @@ -1,30 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package image - -import ( - v1 "github.com/openshift/client-go/image/informers/externalversions/image/v1" - internalinterfaces "github.com/openshift/client-go/image/informers/externalversions/internalinterfaces" -) - -// Interface provides access to each of this group's versions. -type Interface interface { - // V1 provides access to shared informers for resources in V1. - V1() v1.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} -} - -// V1 returns a new v1.Interface. -func (g *group) V1() v1.Interface { - return v1.New(g.factory, g.namespace, g.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/image/informers/externalversions/image/v1/image.go b/vendor/github.com/openshift/client-go/image/informers/externalversions/image/v1/image.go deleted file mode 100644 index ee2d0a7067ed1..0000000000000 --- a/vendor/github.com/openshift/client-go/image/informers/externalversions/image/v1/image.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - imagev1 "github.com/openshift/api/image/v1" - versioned "github.com/openshift/client-go/image/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/image/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/image/listers/image/v1" - metav1 "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" -) - -// ImageInformer provides access to a shared informer and lister for -// Images. -type ImageInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.ImageLister -} - -type imageInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewImageInformer constructs a new informer for Image 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 NewImageInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredImageInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredImageInformer constructs a new informer for Image 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 NewFilteredImageInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.ImageV1().Images().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.ImageV1().Images().Watch(context.TODO(), options) - }, - }, - &imagev1.Image{}, - resyncPeriod, - indexers, - ) -} - -func (f *imageInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredImageInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *imageInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&imagev1.Image{}, f.defaultInformer) -} - -func (f *imageInformer) Lister() v1.ImageLister { - return v1.NewImageLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/image/informers/externalversions/image/v1/imagestream.go b/vendor/github.com/openshift/client-go/image/informers/externalversions/image/v1/imagestream.go deleted file mode 100644 index 4a94cc5c7df92..0000000000000 --- a/vendor/github.com/openshift/client-go/image/informers/externalversions/image/v1/imagestream.go +++ /dev/null @@ -1,74 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - imagev1 "github.com/openshift/api/image/v1" - versioned "github.com/openshift/client-go/image/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/image/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/image/listers/image/v1" - metav1 "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" -) - -// ImageStreamInformer provides access to a shared informer and lister for -// ImageStreams. -type ImageStreamInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.ImageStreamLister -} - -type imageStreamInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewImageStreamInformer constructs a new informer for ImageStream 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 NewImageStreamInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredImageStreamInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredImageStreamInformer constructs a new informer for ImageStream 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 NewFilteredImageStreamInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.ImageV1().ImageStreams(namespace).List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.ImageV1().ImageStreams(namespace).Watch(context.TODO(), options) - }, - }, - &imagev1.ImageStream{}, - resyncPeriod, - indexers, - ) -} - -func (f *imageStreamInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredImageStreamInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *imageStreamInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&imagev1.ImageStream{}, f.defaultInformer) -} - -func (f *imageStreamInformer) Lister() v1.ImageStreamLister { - return v1.NewImageStreamLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/image/informers/externalversions/image/v1/interface.go b/vendor/github.com/openshift/client-go/image/informers/externalversions/image/v1/interface.go deleted file mode 100644 index fd35c4df1abb7..0000000000000 --- a/vendor/github.com/openshift/client-go/image/informers/externalversions/image/v1/interface.go +++ /dev/null @@ -1,36 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - internalinterfaces "github.com/openshift/client-go/image/informers/externalversions/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // Images returns a ImageInformer. - Images() ImageInformer - // ImageStreams returns a ImageStreamInformer. - ImageStreams() ImageStreamInformer -} - -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} -} - -// Images returns a ImageInformer. -func (v *version) Images() ImageInformer { - return &imageInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} - -// ImageStreams returns a ImageStreamInformer. -func (v *version) ImageStreams() ImageStreamInformer { - return &imageStreamInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} diff --git a/vendor/github.com/openshift/client-go/image/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/github.com/openshift/client-go/image/informers/externalversions/internalinterfaces/factory_interfaces.go deleted file mode 100644 index c35dcbfa44bb9..0000000000000 --- a/vendor/github.com/openshift/client-go/image/informers/externalversions/internalinterfaces/factory_interfaces.go +++ /dev/null @@ -1,24 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package internalinterfaces - -import ( - time "time" - - versioned "github.com/openshift/client-go/image/clientset/versioned" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - cache "k8s.io/client-go/tools/cache" -) - -// NewInformerFunc takes versioned.Interface and time.Duration to return a SharedIndexInformer. -type NewInformerFunc func(versioned.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/vendor/github.com/openshift/client-go/image/listers/image/v1/expansion_generated.go b/vendor/github.com/openshift/client-go/image/listers/image/v1/expansion_generated.go deleted file mode 100644 index 308b6db702d9f..0000000000000 --- a/vendor/github.com/openshift/client-go/image/listers/image/v1/expansion_generated.go +++ /dev/null @@ -1,31 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -// ImageListerExpansion allows custom methods to be added to -// ImageLister. -type ImageListerExpansion interface{} - -// ImageStreamListerExpansion allows custom methods to be added to -// ImageStreamLister. -type ImageStreamListerExpansion interface{} - -// ImageStreamNamespaceListerExpansion allows custom methods to be added to -// ImageStreamNamespaceLister. -type ImageStreamNamespaceListerExpansion interface{} - -// ImageStreamTagListerExpansion allows custom methods to be added to -// ImageStreamTagLister. -type ImageStreamTagListerExpansion interface{} - -// ImageStreamTagNamespaceListerExpansion allows custom methods to be added to -// ImageStreamTagNamespaceLister. -type ImageStreamTagNamespaceListerExpansion interface{} - -// ImageTagListerExpansion allows custom methods to be added to -// ImageTagLister. -type ImageTagListerExpansion interface{} - -// ImageTagNamespaceListerExpansion allows custom methods to be added to -// ImageTagNamespaceLister. -type ImageTagNamespaceListerExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/image/listers/image/v1/image.go b/vendor/github.com/openshift/client-go/image/listers/image/v1/image.go deleted file mode 100644 index bb66460a77268..0000000000000 --- a/vendor/github.com/openshift/client-go/image/listers/image/v1/image.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/image/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// ImageLister helps list Images. -// All objects returned here must be treated as read-only. -type ImageLister interface { - // List lists all Images in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.Image, err error) - // Get retrieves the Image from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.Image, error) - ImageListerExpansion -} - -// imageLister implements the ImageLister interface. -type imageLister struct { - indexer cache.Indexer -} - -// NewImageLister returns a new ImageLister. -func NewImageLister(indexer cache.Indexer) ImageLister { - return &imageLister{indexer: indexer} -} - -// List lists all Images in the indexer. -func (s *imageLister) List(selector labels.Selector) (ret []*v1.Image, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.Image)) - }) - return ret, err -} - -// Get retrieves the Image from the index for a given name. -func (s *imageLister) Get(name string) (*v1.Image, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("image"), name) - } - return obj.(*v1.Image), nil -} diff --git a/vendor/github.com/openshift/client-go/image/listers/image/v1/imagestream.go b/vendor/github.com/openshift/client-go/image/listers/image/v1/imagestream.go deleted file mode 100644 index 02ed4da3654a9..0000000000000 --- a/vendor/github.com/openshift/client-go/image/listers/image/v1/imagestream.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/image/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// ImageStreamLister helps list ImageStreams. -// All objects returned here must be treated as read-only. -type ImageStreamLister interface { - // List lists all ImageStreams in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.ImageStream, err error) - // ImageStreams returns an object that can list and get ImageStreams. - ImageStreams(namespace string) ImageStreamNamespaceLister - ImageStreamListerExpansion -} - -// imageStreamLister implements the ImageStreamLister interface. -type imageStreamLister struct { - indexer cache.Indexer -} - -// NewImageStreamLister returns a new ImageStreamLister. -func NewImageStreamLister(indexer cache.Indexer) ImageStreamLister { - return &imageStreamLister{indexer: indexer} -} - -// List lists all ImageStreams in the indexer. -func (s *imageStreamLister) List(selector labels.Selector) (ret []*v1.ImageStream, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.ImageStream)) - }) - return ret, err -} - -// ImageStreams returns an object that can list and get ImageStreams. -func (s *imageStreamLister) ImageStreams(namespace string) ImageStreamNamespaceLister { - return imageStreamNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// ImageStreamNamespaceLister helps list and get ImageStreams. -// All objects returned here must be treated as read-only. -type ImageStreamNamespaceLister interface { - // List lists all ImageStreams in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.ImageStream, err error) - // Get retrieves the ImageStream from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.ImageStream, error) - ImageStreamNamespaceListerExpansion -} - -// imageStreamNamespaceLister implements the ImageStreamNamespaceLister -// interface. -type imageStreamNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all ImageStreams in the indexer for a given namespace. -func (s imageStreamNamespaceLister) List(selector labels.Selector) (ret []*v1.ImageStream, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1.ImageStream)) - }) - return ret, err -} - -// Get retrieves the ImageStream from the indexer for a given namespace and name. -func (s imageStreamNamespaceLister) Get(name string) (*v1.ImageStream, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("imagestream"), name) - } - return obj.(*v1.ImageStream), nil -} diff --git a/vendor/github.com/openshift/client-go/image/listers/image/v1/imagestreamtag.go b/vendor/github.com/openshift/client-go/image/listers/image/v1/imagestreamtag.go deleted file mode 100644 index 6042b27bbe683..0000000000000 --- a/vendor/github.com/openshift/client-go/image/listers/image/v1/imagestreamtag.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/image/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// ImageStreamTagLister helps list ImageStreamTags. -// All objects returned here must be treated as read-only. -type ImageStreamTagLister interface { - // List lists all ImageStreamTags in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.ImageStreamTag, err error) - // ImageStreamTags returns an object that can list and get ImageStreamTags. - ImageStreamTags(namespace string) ImageStreamTagNamespaceLister - ImageStreamTagListerExpansion -} - -// imageStreamTagLister implements the ImageStreamTagLister interface. -type imageStreamTagLister struct { - indexer cache.Indexer -} - -// NewImageStreamTagLister returns a new ImageStreamTagLister. -func NewImageStreamTagLister(indexer cache.Indexer) ImageStreamTagLister { - return &imageStreamTagLister{indexer: indexer} -} - -// List lists all ImageStreamTags in the indexer. -func (s *imageStreamTagLister) List(selector labels.Selector) (ret []*v1.ImageStreamTag, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.ImageStreamTag)) - }) - return ret, err -} - -// ImageStreamTags returns an object that can list and get ImageStreamTags. -func (s *imageStreamTagLister) ImageStreamTags(namespace string) ImageStreamTagNamespaceLister { - return imageStreamTagNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// ImageStreamTagNamespaceLister helps list and get ImageStreamTags. -// All objects returned here must be treated as read-only. -type ImageStreamTagNamespaceLister interface { - // List lists all ImageStreamTags in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.ImageStreamTag, err error) - // Get retrieves the ImageStreamTag from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.ImageStreamTag, error) - ImageStreamTagNamespaceListerExpansion -} - -// imageStreamTagNamespaceLister implements the ImageStreamTagNamespaceLister -// interface. -type imageStreamTagNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all ImageStreamTags in the indexer for a given namespace. -func (s imageStreamTagNamespaceLister) List(selector labels.Selector) (ret []*v1.ImageStreamTag, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1.ImageStreamTag)) - }) - return ret, err -} - -// Get retrieves the ImageStreamTag from the indexer for a given namespace and name. -func (s imageStreamTagNamespaceLister) Get(name string) (*v1.ImageStreamTag, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("imagestreamtag"), name) - } - return obj.(*v1.ImageStreamTag), nil -} diff --git a/vendor/github.com/openshift/client-go/image/listers/image/v1/imagetag.go b/vendor/github.com/openshift/client-go/image/listers/image/v1/imagetag.go deleted file mode 100644 index bbc4518c2348d..0000000000000 --- a/vendor/github.com/openshift/client-go/image/listers/image/v1/imagetag.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/image/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// ImageTagLister helps list ImageTags. -// All objects returned here must be treated as read-only. -type ImageTagLister interface { - // List lists all ImageTags in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.ImageTag, err error) - // ImageTags returns an object that can list and get ImageTags. - ImageTags(namespace string) ImageTagNamespaceLister - ImageTagListerExpansion -} - -// imageTagLister implements the ImageTagLister interface. -type imageTagLister struct { - indexer cache.Indexer -} - -// NewImageTagLister returns a new ImageTagLister. -func NewImageTagLister(indexer cache.Indexer) ImageTagLister { - return &imageTagLister{indexer: indexer} -} - -// List lists all ImageTags in the indexer. -func (s *imageTagLister) List(selector labels.Selector) (ret []*v1.ImageTag, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.ImageTag)) - }) - return ret, err -} - -// ImageTags returns an object that can list and get ImageTags. -func (s *imageTagLister) ImageTags(namespace string) ImageTagNamespaceLister { - return imageTagNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// ImageTagNamespaceLister helps list and get ImageTags. -// All objects returned here must be treated as read-only. -type ImageTagNamespaceLister interface { - // List lists all ImageTags in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.ImageTag, err error) - // Get retrieves the ImageTag from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.ImageTag, error) - ImageTagNamespaceListerExpansion -} - -// imageTagNamespaceLister implements the ImageTagNamespaceLister -// interface. -type imageTagNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all ImageTags in the indexer for a given namespace. -func (s imageTagNamespaceLister) List(selector labels.Selector) (ret []*v1.ImageTag, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1.ImageTag)) - }) - return ret, err -} - -// Get retrieves the ImageTag from the indexer for a given namespace and name. -func (s imageTagNamespaceLister) Get(name string) (*v1.ImageTag, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("imagetag"), name) - } - return obj.(*v1.ImageTag), nil -} diff --git a/vendor/github.com/openshift/client-go/network/clientset/versioned/clientset.go b/vendor/github.com/openshift/client-go/network/clientset/versioned/clientset.go deleted file mode 100644 index 692d81521dd6e..0000000000000 --- a/vendor/github.com/openshift/client-go/network/clientset/versioned/clientset.go +++ /dev/null @@ -1,81 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package versioned - -import ( - "fmt" - - networkv1 "github.com/openshift/client-go/network/clientset/versioned/typed/network/v1" - 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 - NetworkV1() networkv1.NetworkV1Interface -} - -// Clientset contains the clients for groups. Each group has exactly one -// version included in a Clientset. -type Clientset struct { - *discovery.DiscoveryClient - networkV1 *networkv1.NetworkV1Client -} - -// NetworkV1 retrieves the NetworkV1Client -func (c *Clientset) NetworkV1() networkv1.NetworkV1Interface { - return c.networkV1 -} - -// 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.networkV1, err = networkv1.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.networkV1 = networkv1.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.networkV1 = networkv1.New(c) - - cs.DiscoveryClient = discovery.NewDiscoveryClient(c) - return &cs -} diff --git a/vendor/github.com/openshift/client-go/network/clientset/versioned/doc.go b/vendor/github.com/openshift/client-go/network/clientset/versioned/doc.go deleted file mode 100644 index 0e0c2a8900e2c..0000000000000 --- a/vendor/github.com/openshift/client-go/network/clientset/versioned/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated clientset. -package versioned diff --git a/vendor/github.com/openshift/client-go/network/clientset/versioned/scheme/doc.go b/vendor/github.com/openshift/client-go/network/clientset/versioned/scheme/doc.go deleted file mode 100644 index 14db57a58f8d2..0000000000000 --- a/vendor/github.com/openshift/client-go/network/clientset/versioned/scheme/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package contains the scheme of the automatically generated clientset. -package scheme diff --git a/vendor/github.com/openshift/client-go/network/clientset/versioned/scheme/register.go b/vendor/github.com/openshift/client-go/network/clientset/versioned/scheme/register.go deleted file mode 100644 index c1dbc29462113..0000000000000 --- a/vendor/github.com/openshift/client-go/network/clientset/versioned/scheme/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package scheme - -import ( - networkv1 "github.com/openshift/api/network/v1" - 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{ - networkv1.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/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/clusternetwork.go b/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/clusternetwork.go deleted file mode 100644 index 7bca86a9b01d3..0000000000000 --- a/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/clusternetwork.go +++ /dev/null @@ -1,152 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/network/v1" - scheme "github.com/openshift/client-go/network/clientset/versioned/scheme" - metav1 "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" -) - -// ClusterNetworksGetter has a method to return a ClusterNetworkInterface. -// A group's client should implement this interface. -type ClusterNetworksGetter interface { - ClusterNetworks() ClusterNetworkInterface -} - -// ClusterNetworkInterface has methods to work with ClusterNetwork resources. -type ClusterNetworkInterface interface { - Create(ctx context.Context, clusterNetwork *v1.ClusterNetwork, opts metav1.CreateOptions) (*v1.ClusterNetwork, error) - Update(ctx context.Context, clusterNetwork *v1.ClusterNetwork, opts metav1.UpdateOptions) (*v1.ClusterNetwork, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ClusterNetwork, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.ClusterNetworkList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterNetwork, err error) - ClusterNetworkExpansion -} - -// clusterNetworks implements ClusterNetworkInterface -type clusterNetworks struct { - client rest.Interface -} - -// newClusterNetworks returns a ClusterNetworks -func newClusterNetworks(c *NetworkV1Client) *clusterNetworks { - return &clusterNetworks{ - client: c.RESTClient(), - } -} - -// Get takes name of the clusterNetwork, and returns the corresponding clusterNetwork object, and an error if there is any. -func (c *clusterNetworks) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ClusterNetwork, err error) { - result = &v1.ClusterNetwork{} - err = c.client.Get(). - Resource("clusternetworks"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of ClusterNetworks that match those selectors. -func (c *clusterNetworks) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ClusterNetworkList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.ClusterNetworkList{} - err = c.client.Get(). - Resource("clusternetworks"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested clusterNetworks. -func (c *clusterNetworks) Watch(ctx context.Context, opts metav1.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(). - Resource("clusternetworks"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a clusterNetwork and creates it. Returns the server's representation of the clusterNetwork, and an error, if there is any. -func (c *clusterNetworks) Create(ctx context.Context, clusterNetwork *v1.ClusterNetwork, opts metav1.CreateOptions) (result *v1.ClusterNetwork, err error) { - result = &v1.ClusterNetwork{} - err = c.client.Post(). - Resource("clusternetworks"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterNetwork). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a clusterNetwork and updates it. Returns the server's representation of the clusterNetwork, and an error, if there is any. -func (c *clusterNetworks) Update(ctx context.Context, clusterNetwork *v1.ClusterNetwork, opts metav1.UpdateOptions) (result *v1.ClusterNetwork, err error) { - result = &v1.ClusterNetwork{} - err = c.client.Put(). - Resource("clusternetworks"). - Name(clusterNetwork.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterNetwork). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the clusterNetwork and deletes it. Returns an error if one occurs. -func (c *clusterNetworks) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("clusternetworks"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *clusterNetworks) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("clusternetworks"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched clusterNetwork. -func (c *clusterNetworks) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterNetwork, err error) { - result = &v1.ClusterNetwork{} - err = c.client.Patch(pt). - Resource("clusternetworks"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/doc.go b/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/doc.go deleted file mode 100644 index 225e6b2be34f2..0000000000000 --- a/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated typed clients. -package v1 diff --git a/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/egressnetworkpolicy.go b/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/egressnetworkpolicy.go deleted file mode 100644 index fab6251aa380a..0000000000000 --- a/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/egressnetworkpolicy.go +++ /dev/null @@ -1,162 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/network/v1" - scheme "github.com/openshift/client-go/network/clientset/versioned/scheme" - metav1 "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" -) - -// EgressNetworkPoliciesGetter has a method to return a EgressNetworkPolicyInterface. -// A group's client should implement this interface. -type EgressNetworkPoliciesGetter interface { - EgressNetworkPolicies(namespace string) EgressNetworkPolicyInterface -} - -// EgressNetworkPolicyInterface has methods to work with EgressNetworkPolicy resources. -type EgressNetworkPolicyInterface interface { - Create(ctx context.Context, egressNetworkPolicy *v1.EgressNetworkPolicy, opts metav1.CreateOptions) (*v1.EgressNetworkPolicy, error) - Update(ctx context.Context, egressNetworkPolicy *v1.EgressNetworkPolicy, opts metav1.UpdateOptions) (*v1.EgressNetworkPolicy, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.EgressNetworkPolicy, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.EgressNetworkPolicyList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.EgressNetworkPolicy, err error) - EgressNetworkPolicyExpansion -} - -// egressNetworkPolicies implements EgressNetworkPolicyInterface -type egressNetworkPolicies struct { - client rest.Interface - ns string -} - -// newEgressNetworkPolicies returns a EgressNetworkPolicies -func newEgressNetworkPolicies(c *NetworkV1Client, namespace string) *egressNetworkPolicies { - return &egressNetworkPolicies{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the egressNetworkPolicy, and returns the corresponding egressNetworkPolicy object, and an error if there is any. -func (c *egressNetworkPolicies) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.EgressNetworkPolicy, err error) { - result = &v1.EgressNetworkPolicy{} - err = c.client.Get(). - Namespace(c.ns). - Resource("egressnetworkpolicies"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of EgressNetworkPolicies that match those selectors. -func (c *egressNetworkPolicies) List(ctx context.Context, opts metav1.ListOptions) (result *v1.EgressNetworkPolicyList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.EgressNetworkPolicyList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("egressnetworkpolicies"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested egressNetworkPolicies. -func (c *egressNetworkPolicies) Watch(ctx context.Context, opts metav1.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("egressnetworkpolicies"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a egressNetworkPolicy and creates it. Returns the server's representation of the egressNetworkPolicy, and an error, if there is any. -func (c *egressNetworkPolicies) Create(ctx context.Context, egressNetworkPolicy *v1.EgressNetworkPolicy, opts metav1.CreateOptions) (result *v1.EgressNetworkPolicy, err error) { - result = &v1.EgressNetworkPolicy{} - err = c.client.Post(). - Namespace(c.ns). - Resource("egressnetworkpolicies"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(egressNetworkPolicy). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a egressNetworkPolicy and updates it. Returns the server's representation of the egressNetworkPolicy, and an error, if there is any. -func (c *egressNetworkPolicies) Update(ctx context.Context, egressNetworkPolicy *v1.EgressNetworkPolicy, opts metav1.UpdateOptions) (result *v1.EgressNetworkPolicy, err error) { - result = &v1.EgressNetworkPolicy{} - err = c.client.Put(). - Namespace(c.ns). - Resource("egressnetworkpolicies"). - Name(egressNetworkPolicy.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(egressNetworkPolicy). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the egressNetworkPolicy and deletes it. Returns an error if one occurs. -func (c *egressNetworkPolicies) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("egressnetworkpolicies"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *egressNetworkPolicies) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Namespace(c.ns). - Resource("egressnetworkpolicies"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched egressNetworkPolicy. -func (c *egressNetworkPolicies) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.EgressNetworkPolicy, err error) { - result = &v1.EgressNetworkPolicy{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("egressnetworkpolicies"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/generated_expansion.go b/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/generated_expansion.go deleted file mode 100644 index 14e656e32da7f..0000000000000 --- a/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/generated_expansion.go +++ /dev/null @@ -1,11 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -type ClusterNetworkExpansion interface{} - -type EgressNetworkPolicyExpansion interface{} - -type HostSubnetExpansion interface{} - -type NetNamespaceExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/hostsubnet.go b/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/hostsubnet.go deleted file mode 100644 index 1fb983d56b655..0000000000000 --- a/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/hostsubnet.go +++ /dev/null @@ -1,152 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/network/v1" - scheme "github.com/openshift/client-go/network/clientset/versioned/scheme" - metav1 "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" -) - -// HostSubnetsGetter has a method to return a HostSubnetInterface. -// A group's client should implement this interface. -type HostSubnetsGetter interface { - HostSubnets() HostSubnetInterface -} - -// HostSubnetInterface has methods to work with HostSubnet resources. -type HostSubnetInterface interface { - Create(ctx context.Context, hostSubnet *v1.HostSubnet, opts metav1.CreateOptions) (*v1.HostSubnet, error) - Update(ctx context.Context, hostSubnet *v1.HostSubnet, opts metav1.UpdateOptions) (*v1.HostSubnet, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.HostSubnet, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.HostSubnetList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.HostSubnet, err error) - HostSubnetExpansion -} - -// hostSubnets implements HostSubnetInterface -type hostSubnets struct { - client rest.Interface -} - -// newHostSubnets returns a HostSubnets -func newHostSubnets(c *NetworkV1Client) *hostSubnets { - return &hostSubnets{ - client: c.RESTClient(), - } -} - -// Get takes name of the hostSubnet, and returns the corresponding hostSubnet object, and an error if there is any. -func (c *hostSubnets) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.HostSubnet, err error) { - result = &v1.HostSubnet{} - err = c.client.Get(). - Resource("hostsubnets"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of HostSubnets that match those selectors. -func (c *hostSubnets) List(ctx context.Context, opts metav1.ListOptions) (result *v1.HostSubnetList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.HostSubnetList{} - err = c.client.Get(). - Resource("hostsubnets"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested hostSubnets. -func (c *hostSubnets) Watch(ctx context.Context, opts metav1.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(). - Resource("hostsubnets"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a hostSubnet and creates it. Returns the server's representation of the hostSubnet, and an error, if there is any. -func (c *hostSubnets) Create(ctx context.Context, hostSubnet *v1.HostSubnet, opts metav1.CreateOptions) (result *v1.HostSubnet, err error) { - result = &v1.HostSubnet{} - err = c.client.Post(). - Resource("hostsubnets"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(hostSubnet). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a hostSubnet and updates it. Returns the server's representation of the hostSubnet, and an error, if there is any. -func (c *hostSubnets) Update(ctx context.Context, hostSubnet *v1.HostSubnet, opts metav1.UpdateOptions) (result *v1.HostSubnet, err error) { - result = &v1.HostSubnet{} - err = c.client.Put(). - Resource("hostsubnets"). - Name(hostSubnet.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(hostSubnet). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the hostSubnet and deletes it. Returns an error if one occurs. -func (c *hostSubnets) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("hostsubnets"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *hostSubnets) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("hostsubnets"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched hostSubnet. -func (c *hostSubnets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.HostSubnet, err error) { - result = &v1.HostSubnet{} - err = c.client.Patch(pt). - Resource("hostsubnets"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/netnamespace.go b/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/netnamespace.go deleted file mode 100644 index b98d0243ecf8d..0000000000000 --- a/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/netnamespace.go +++ /dev/null @@ -1,152 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/network/v1" - scheme "github.com/openshift/client-go/network/clientset/versioned/scheme" - metav1 "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" -) - -// NetNamespacesGetter has a method to return a NetNamespaceInterface. -// A group's client should implement this interface. -type NetNamespacesGetter interface { - NetNamespaces() NetNamespaceInterface -} - -// NetNamespaceInterface has methods to work with NetNamespace resources. -type NetNamespaceInterface interface { - Create(ctx context.Context, netNamespace *v1.NetNamespace, opts metav1.CreateOptions) (*v1.NetNamespace, error) - Update(ctx context.Context, netNamespace *v1.NetNamespace, opts metav1.UpdateOptions) (*v1.NetNamespace, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.NetNamespace, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.NetNamespaceList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.NetNamespace, err error) - NetNamespaceExpansion -} - -// netNamespaces implements NetNamespaceInterface -type netNamespaces struct { - client rest.Interface -} - -// newNetNamespaces returns a NetNamespaces -func newNetNamespaces(c *NetworkV1Client) *netNamespaces { - return &netNamespaces{ - client: c.RESTClient(), - } -} - -// Get takes name of the netNamespace, and returns the corresponding netNamespace object, and an error if there is any. -func (c *netNamespaces) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.NetNamespace, err error) { - result = &v1.NetNamespace{} - err = c.client.Get(). - Resource("netnamespaces"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of NetNamespaces that match those selectors. -func (c *netNamespaces) List(ctx context.Context, opts metav1.ListOptions) (result *v1.NetNamespaceList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.NetNamespaceList{} - err = c.client.Get(). - Resource("netnamespaces"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested netNamespaces. -func (c *netNamespaces) Watch(ctx context.Context, opts metav1.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(). - Resource("netnamespaces"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a netNamespace and creates it. Returns the server's representation of the netNamespace, and an error, if there is any. -func (c *netNamespaces) Create(ctx context.Context, netNamespace *v1.NetNamespace, opts metav1.CreateOptions) (result *v1.NetNamespace, err error) { - result = &v1.NetNamespace{} - err = c.client.Post(). - Resource("netnamespaces"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(netNamespace). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a netNamespace and updates it. Returns the server's representation of the netNamespace, and an error, if there is any. -func (c *netNamespaces) Update(ctx context.Context, netNamespace *v1.NetNamespace, opts metav1.UpdateOptions) (result *v1.NetNamespace, err error) { - result = &v1.NetNamespace{} - err = c.client.Put(). - Resource("netnamespaces"). - Name(netNamespace.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(netNamespace). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the netNamespace and deletes it. Returns an error if one occurs. -func (c *netNamespaces) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("netnamespaces"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *netNamespaces) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("netnamespaces"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched netNamespace. -func (c *netNamespaces) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.NetNamespace, err error) { - result = &v1.NetNamespace{} - err = c.client.Patch(pt). - Resource("netnamespaces"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/network_client.go b/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/network_client.go deleted file mode 100644 index 5ba34c5d825c5..0000000000000 --- a/vendor/github.com/openshift/client-go/network/clientset/versioned/typed/network/v1/network_client.go +++ /dev/null @@ -1,88 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/network/v1" - "github.com/openshift/client-go/network/clientset/versioned/scheme" - rest "k8s.io/client-go/rest" -) - -type NetworkV1Interface interface { - RESTClient() rest.Interface - ClusterNetworksGetter - EgressNetworkPoliciesGetter - HostSubnetsGetter - NetNamespacesGetter -} - -// NetworkV1Client is used to interact with features provided by the network.openshift.io group. -type NetworkV1Client struct { - restClient rest.Interface -} - -func (c *NetworkV1Client) ClusterNetworks() ClusterNetworkInterface { - return newClusterNetworks(c) -} - -func (c *NetworkV1Client) EgressNetworkPolicies(namespace string) EgressNetworkPolicyInterface { - return newEgressNetworkPolicies(c, namespace) -} - -func (c *NetworkV1Client) HostSubnets() HostSubnetInterface { - return newHostSubnets(c) -} - -func (c *NetworkV1Client) NetNamespaces() NetNamespaceInterface { - return newNetNamespaces(c) -} - -// NewForConfig creates a new NetworkV1Client for the given config. -func NewForConfig(c *rest.Config) (*NetworkV1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientFor(&config) - if err != nil { - return nil, err - } - return &NetworkV1Client{client}, nil -} - -// NewForConfigOrDie creates a new NetworkV1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *NetworkV1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new NetworkV1Client for the given RESTClient. -func New(c rest.Interface) *NetworkV1Client { - return &NetworkV1Client{c} -} - -func setConfigDefaults(config *rest.Config) error { - gv := v1.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 *NetworkV1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/vendor/github.com/openshift/client-go/network/informers/externalversions/factory.go b/vendor/github.com/openshift/client-go/network/informers/externalversions/factory.go deleted file mode 100644 index 2130766650066..0000000000000 --- a/vendor/github.com/openshift/client-go/network/informers/externalversions/factory.go +++ /dev/null @@ -1,164 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - reflect "reflect" - sync "sync" - time "time" - - versioned "github.com/openshift/client-go/network/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/network/informers/externalversions/internalinterfaces" - network "github.com/openshift/client-go/network/informers/externalversions/network" - 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 versioned.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 versioned.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 versioned.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 versioned.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 - - Network() network.Interface -} - -func (f *sharedInformerFactory) Network() network.Interface { - return network.New(f, f.namespace, f.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/network/informers/externalversions/generic.go b/vendor/github.com/openshift/client-go/network/informers/externalversions/generic.go deleted file mode 100644 index f157510f2438c..0000000000000 --- a/vendor/github.com/openshift/client-go/network/informers/externalversions/generic.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - "fmt" - - v1 "github.com/openshift/api/network/v1" - 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=network.openshift.io, Version=v1 - case v1.SchemeGroupVersion.WithResource("clusternetworks"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Network().V1().ClusterNetworks().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("egressnetworkpolicies"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Network().V1().EgressNetworkPolicies().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("hostsubnets"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Network().V1().HostSubnets().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("netnamespaces"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Network().V1().NetNamespaces().Informer()}, nil - - } - - return nil, fmt.Errorf("no informer found for %v", resource) -} diff --git a/vendor/github.com/openshift/client-go/network/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/github.com/openshift/client-go/network/informers/externalversions/internalinterfaces/factory_interfaces.go deleted file mode 100644 index 27f8e38600660..0000000000000 --- a/vendor/github.com/openshift/client-go/network/informers/externalversions/internalinterfaces/factory_interfaces.go +++ /dev/null @@ -1,24 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package internalinterfaces - -import ( - time "time" - - versioned "github.com/openshift/client-go/network/clientset/versioned" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - cache "k8s.io/client-go/tools/cache" -) - -// NewInformerFunc takes versioned.Interface and time.Duration to return a SharedIndexInformer. -type NewInformerFunc func(versioned.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/vendor/github.com/openshift/client-go/network/informers/externalversions/network/interface.go b/vendor/github.com/openshift/client-go/network/informers/externalversions/network/interface.go deleted file mode 100644 index 1d7e251ce2e36..0000000000000 --- a/vendor/github.com/openshift/client-go/network/informers/externalversions/network/interface.go +++ /dev/null @@ -1,30 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package network - -import ( - internalinterfaces "github.com/openshift/client-go/network/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/network/informers/externalversions/network/v1" -) - -// Interface provides access to each of this group's versions. -type Interface interface { - // V1 provides access to shared informers for resources in V1. - V1() v1.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} -} - -// V1 returns a new v1.Interface. -func (g *group) V1() v1.Interface { - return v1.New(g.factory, g.namespace, g.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/network/informers/externalversions/network/v1/clusternetwork.go b/vendor/github.com/openshift/client-go/network/informers/externalversions/network/v1/clusternetwork.go deleted file mode 100644 index d3a837184ba74..0000000000000 --- a/vendor/github.com/openshift/client-go/network/informers/externalversions/network/v1/clusternetwork.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - networkv1 "github.com/openshift/api/network/v1" - versioned "github.com/openshift/client-go/network/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/network/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/network/listers/network/v1" - metav1 "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" -) - -// ClusterNetworkInformer provides access to a shared informer and lister for -// ClusterNetworks. -type ClusterNetworkInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.ClusterNetworkLister -} - -type clusterNetworkInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewClusterNetworkInformer constructs a new informer for ClusterNetwork 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 NewClusterNetworkInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredClusterNetworkInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredClusterNetworkInformer constructs a new informer for ClusterNetwork 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 NewFilteredClusterNetworkInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.NetworkV1().ClusterNetworks().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.NetworkV1().ClusterNetworks().Watch(context.TODO(), options) - }, - }, - &networkv1.ClusterNetwork{}, - resyncPeriod, - indexers, - ) -} - -func (f *clusterNetworkInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredClusterNetworkInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *clusterNetworkInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&networkv1.ClusterNetwork{}, f.defaultInformer) -} - -func (f *clusterNetworkInformer) Lister() v1.ClusterNetworkLister { - return v1.NewClusterNetworkLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/network/informers/externalversions/network/v1/egressnetworkpolicy.go b/vendor/github.com/openshift/client-go/network/informers/externalversions/network/v1/egressnetworkpolicy.go deleted file mode 100644 index cac3b26d798c7..0000000000000 --- a/vendor/github.com/openshift/client-go/network/informers/externalversions/network/v1/egressnetworkpolicy.go +++ /dev/null @@ -1,74 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - networkv1 "github.com/openshift/api/network/v1" - versioned "github.com/openshift/client-go/network/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/network/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/network/listers/network/v1" - metav1 "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" -) - -// EgressNetworkPolicyInformer provides access to a shared informer and lister for -// EgressNetworkPolicies. -type EgressNetworkPolicyInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.EgressNetworkPolicyLister -} - -type egressNetworkPolicyInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewEgressNetworkPolicyInformer constructs a new informer for EgressNetworkPolicy 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 NewEgressNetworkPolicyInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredEgressNetworkPolicyInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredEgressNetworkPolicyInformer constructs a new informer for EgressNetworkPolicy 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 NewFilteredEgressNetworkPolicyInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.NetworkV1().EgressNetworkPolicies(namespace).List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.NetworkV1().EgressNetworkPolicies(namespace).Watch(context.TODO(), options) - }, - }, - &networkv1.EgressNetworkPolicy{}, - resyncPeriod, - indexers, - ) -} - -func (f *egressNetworkPolicyInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredEgressNetworkPolicyInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *egressNetworkPolicyInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&networkv1.EgressNetworkPolicy{}, f.defaultInformer) -} - -func (f *egressNetworkPolicyInformer) Lister() v1.EgressNetworkPolicyLister { - return v1.NewEgressNetworkPolicyLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/network/informers/externalversions/network/v1/hostsubnet.go b/vendor/github.com/openshift/client-go/network/informers/externalversions/network/v1/hostsubnet.go deleted file mode 100644 index e7b79021efc51..0000000000000 --- a/vendor/github.com/openshift/client-go/network/informers/externalversions/network/v1/hostsubnet.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - networkv1 "github.com/openshift/api/network/v1" - versioned "github.com/openshift/client-go/network/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/network/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/network/listers/network/v1" - metav1 "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" -) - -// HostSubnetInformer provides access to a shared informer and lister for -// HostSubnets. -type HostSubnetInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.HostSubnetLister -} - -type hostSubnetInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewHostSubnetInformer constructs a new informer for HostSubnet 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 NewHostSubnetInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredHostSubnetInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredHostSubnetInformer constructs a new informer for HostSubnet 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 NewFilteredHostSubnetInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.NetworkV1().HostSubnets().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.NetworkV1().HostSubnets().Watch(context.TODO(), options) - }, - }, - &networkv1.HostSubnet{}, - resyncPeriod, - indexers, - ) -} - -func (f *hostSubnetInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredHostSubnetInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *hostSubnetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&networkv1.HostSubnet{}, f.defaultInformer) -} - -func (f *hostSubnetInformer) Lister() v1.HostSubnetLister { - return v1.NewHostSubnetLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/network/informers/externalversions/network/v1/interface.go b/vendor/github.com/openshift/client-go/network/informers/externalversions/network/v1/interface.go deleted file mode 100644 index 1f696be4fa30e..0000000000000 --- a/vendor/github.com/openshift/client-go/network/informers/externalversions/network/v1/interface.go +++ /dev/null @@ -1,50 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - internalinterfaces "github.com/openshift/client-go/network/informers/externalversions/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // ClusterNetworks returns a ClusterNetworkInformer. - ClusterNetworks() ClusterNetworkInformer - // EgressNetworkPolicies returns a EgressNetworkPolicyInformer. - EgressNetworkPolicies() EgressNetworkPolicyInformer - // HostSubnets returns a HostSubnetInformer. - HostSubnets() HostSubnetInformer - // NetNamespaces returns a NetNamespaceInformer. - NetNamespaces() NetNamespaceInformer -} - -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} -} - -// ClusterNetworks returns a ClusterNetworkInformer. -func (v *version) ClusterNetworks() ClusterNetworkInformer { - return &clusterNetworkInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} - -// EgressNetworkPolicies returns a EgressNetworkPolicyInformer. -func (v *version) EgressNetworkPolicies() EgressNetworkPolicyInformer { - return &egressNetworkPolicyInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} - -// HostSubnets returns a HostSubnetInformer. -func (v *version) HostSubnets() HostSubnetInformer { - return &hostSubnetInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} - -// NetNamespaces returns a NetNamespaceInformer. -func (v *version) NetNamespaces() NetNamespaceInformer { - return &netNamespaceInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} diff --git a/vendor/github.com/openshift/client-go/network/informers/externalversions/network/v1/netnamespace.go b/vendor/github.com/openshift/client-go/network/informers/externalversions/network/v1/netnamespace.go deleted file mode 100644 index a1a91e947c7ba..0000000000000 --- a/vendor/github.com/openshift/client-go/network/informers/externalversions/network/v1/netnamespace.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - networkv1 "github.com/openshift/api/network/v1" - versioned "github.com/openshift/client-go/network/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/network/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/network/listers/network/v1" - metav1 "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" -) - -// NetNamespaceInformer provides access to a shared informer and lister for -// NetNamespaces. -type NetNamespaceInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.NetNamespaceLister -} - -type netNamespaceInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewNetNamespaceInformer constructs a new informer for NetNamespace 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 NewNetNamespaceInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredNetNamespaceInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredNetNamespaceInformer constructs a new informer for NetNamespace 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 NewFilteredNetNamespaceInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.NetworkV1().NetNamespaces().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.NetworkV1().NetNamespaces().Watch(context.TODO(), options) - }, - }, - &networkv1.NetNamespace{}, - resyncPeriod, - indexers, - ) -} - -func (f *netNamespaceInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredNetNamespaceInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *netNamespaceInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&networkv1.NetNamespace{}, f.defaultInformer) -} - -func (f *netNamespaceInformer) Lister() v1.NetNamespaceLister { - return v1.NewNetNamespaceLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/network/listers/network/v1/clusternetwork.go b/vendor/github.com/openshift/client-go/network/listers/network/v1/clusternetwork.go deleted file mode 100644 index fbd211d6e62a3..0000000000000 --- a/vendor/github.com/openshift/client-go/network/listers/network/v1/clusternetwork.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/network/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// ClusterNetworkLister helps list ClusterNetworks. -// All objects returned here must be treated as read-only. -type ClusterNetworkLister interface { - // List lists all ClusterNetworks in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.ClusterNetwork, err error) - // Get retrieves the ClusterNetwork from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.ClusterNetwork, error) - ClusterNetworkListerExpansion -} - -// clusterNetworkLister implements the ClusterNetworkLister interface. -type clusterNetworkLister struct { - indexer cache.Indexer -} - -// NewClusterNetworkLister returns a new ClusterNetworkLister. -func NewClusterNetworkLister(indexer cache.Indexer) ClusterNetworkLister { - return &clusterNetworkLister{indexer: indexer} -} - -// List lists all ClusterNetworks in the indexer. -func (s *clusterNetworkLister) List(selector labels.Selector) (ret []*v1.ClusterNetwork, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.ClusterNetwork)) - }) - return ret, err -} - -// Get retrieves the ClusterNetwork from the index for a given name. -func (s *clusterNetworkLister) Get(name string) (*v1.ClusterNetwork, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("clusternetwork"), name) - } - return obj.(*v1.ClusterNetwork), nil -} diff --git a/vendor/github.com/openshift/client-go/network/listers/network/v1/egressnetworkpolicy.go b/vendor/github.com/openshift/client-go/network/listers/network/v1/egressnetworkpolicy.go deleted file mode 100644 index f54356c136222..0000000000000 --- a/vendor/github.com/openshift/client-go/network/listers/network/v1/egressnetworkpolicy.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/network/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// EgressNetworkPolicyLister helps list EgressNetworkPolicies. -// All objects returned here must be treated as read-only. -type EgressNetworkPolicyLister interface { - // List lists all EgressNetworkPolicies in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.EgressNetworkPolicy, err error) - // EgressNetworkPolicies returns an object that can list and get EgressNetworkPolicies. - EgressNetworkPolicies(namespace string) EgressNetworkPolicyNamespaceLister - EgressNetworkPolicyListerExpansion -} - -// egressNetworkPolicyLister implements the EgressNetworkPolicyLister interface. -type egressNetworkPolicyLister struct { - indexer cache.Indexer -} - -// NewEgressNetworkPolicyLister returns a new EgressNetworkPolicyLister. -func NewEgressNetworkPolicyLister(indexer cache.Indexer) EgressNetworkPolicyLister { - return &egressNetworkPolicyLister{indexer: indexer} -} - -// List lists all EgressNetworkPolicies in the indexer. -func (s *egressNetworkPolicyLister) List(selector labels.Selector) (ret []*v1.EgressNetworkPolicy, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.EgressNetworkPolicy)) - }) - return ret, err -} - -// EgressNetworkPolicies returns an object that can list and get EgressNetworkPolicies. -func (s *egressNetworkPolicyLister) EgressNetworkPolicies(namespace string) EgressNetworkPolicyNamespaceLister { - return egressNetworkPolicyNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// EgressNetworkPolicyNamespaceLister helps list and get EgressNetworkPolicies. -// All objects returned here must be treated as read-only. -type EgressNetworkPolicyNamespaceLister interface { - // List lists all EgressNetworkPolicies in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.EgressNetworkPolicy, err error) - // Get retrieves the EgressNetworkPolicy from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.EgressNetworkPolicy, error) - EgressNetworkPolicyNamespaceListerExpansion -} - -// egressNetworkPolicyNamespaceLister implements the EgressNetworkPolicyNamespaceLister -// interface. -type egressNetworkPolicyNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all EgressNetworkPolicies in the indexer for a given namespace. -func (s egressNetworkPolicyNamespaceLister) List(selector labels.Selector) (ret []*v1.EgressNetworkPolicy, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1.EgressNetworkPolicy)) - }) - return ret, err -} - -// Get retrieves the EgressNetworkPolicy from the indexer for a given namespace and name. -func (s egressNetworkPolicyNamespaceLister) Get(name string) (*v1.EgressNetworkPolicy, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("egressnetworkpolicy"), name) - } - return obj.(*v1.EgressNetworkPolicy), nil -} diff --git a/vendor/github.com/openshift/client-go/network/listers/network/v1/expansion_generated.go b/vendor/github.com/openshift/client-go/network/listers/network/v1/expansion_generated.go deleted file mode 100644 index 41f06c59aea68..0000000000000 --- a/vendor/github.com/openshift/client-go/network/listers/network/v1/expansion_generated.go +++ /dev/null @@ -1,23 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -// ClusterNetworkListerExpansion allows custom methods to be added to -// ClusterNetworkLister. -type ClusterNetworkListerExpansion interface{} - -// EgressNetworkPolicyListerExpansion allows custom methods to be added to -// EgressNetworkPolicyLister. -type EgressNetworkPolicyListerExpansion interface{} - -// EgressNetworkPolicyNamespaceListerExpansion allows custom methods to be added to -// EgressNetworkPolicyNamespaceLister. -type EgressNetworkPolicyNamespaceListerExpansion interface{} - -// HostSubnetListerExpansion allows custom methods to be added to -// HostSubnetLister. -type HostSubnetListerExpansion interface{} - -// NetNamespaceListerExpansion allows custom methods to be added to -// NetNamespaceLister. -type NetNamespaceListerExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/network/listers/network/v1/hostsubnet.go b/vendor/github.com/openshift/client-go/network/listers/network/v1/hostsubnet.go deleted file mode 100644 index 144d3232cd882..0000000000000 --- a/vendor/github.com/openshift/client-go/network/listers/network/v1/hostsubnet.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/network/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// HostSubnetLister helps list HostSubnets. -// All objects returned here must be treated as read-only. -type HostSubnetLister interface { - // List lists all HostSubnets in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.HostSubnet, err error) - // Get retrieves the HostSubnet from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.HostSubnet, error) - HostSubnetListerExpansion -} - -// hostSubnetLister implements the HostSubnetLister interface. -type hostSubnetLister struct { - indexer cache.Indexer -} - -// NewHostSubnetLister returns a new HostSubnetLister. -func NewHostSubnetLister(indexer cache.Indexer) HostSubnetLister { - return &hostSubnetLister{indexer: indexer} -} - -// List lists all HostSubnets in the indexer. -func (s *hostSubnetLister) List(selector labels.Selector) (ret []*v1.HostSubnet, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.HostSubnet)) - }) - return ret, err -} - -// Get retrieves the HostSubnet from the index for a given name. -func (s *hostSubnetLister) Get(name string) (*v1.HostSubnet, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("hostsubnet"), name) - } - return obj.(*v1.HostSubnet), nil -} diff --git a/vendor/github.com/openshift/client-go/network/listers/network/v1/netnamespace.go b/vendor/github.com/openshift/client-go/network/listers/network/v1/netnamespace.go deleted file mode 100644 index d8eb9b65d13e0..0000000000000 --- a/vendor/github.com/openshift/client-go/network/listers/network/v1/netnamespace.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/network/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// NetNamespaceLister helps list NetNamespaces. -// All objects returned here must be treated as read-only. -type NetNamespaceLister interface { - // List lists all NetNamespaces in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.NetNamespace, err error) - // Get retrieves the NetNamespace from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.NetNamespace, error) - NetNamespaceListerExpansion -} - -// netNamespaceLister implements the NetNamespaceLister interface. -type netNamespaceLister struct { - indexer cache.Indexer -} - -// NewNetNamespaceLister returns a new NetNamespaceLister. -func NewNetNamespaceLister(indexer cache.Indexer) NetNamespaceLister { - return &netNamespaceLister{indexer: indexer} -} - -// List lists all NetNamespaces in the indexer. -func (s *netNamespaceLister) List(selector labels.Selector) (ret []*v1.NetNamespace, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.NetNamespace)) - }) - return ret, err -} - -// Get retrieves the NetNamespace from the index for a given name. -func (s *netNamespaceLister) Get(name string) (*v1.NetNamespace, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("netnamespace"), name) - } - return obj.(*v1.NetNamespace), nil -} diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/clientset.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/clientset.go deleted file mode 100644 index cd082a0ed6a2d..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/clientset.go +++ /dev/null @@ -1,81 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package versioned - -import ( - "fmt" - - oauthv1 "github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1" - 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 - OauthV1() oauthv1.OauthV1Interface -} - -// Clientset contains the clients for groups. Each group has exactly one -// version included in a Clientset. -type Clientset struct { - *discovery.DiscoveryClient - oauthV1 *oauthv1.OauthV1Client -} - -// OauthV1 retrieves the OauthV1Client -func (c *Clientset) OauthV1() oauthv1.OauthV1Interface { - return c.oauthV1 -} - -// 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.oauthV1, err = oauthv1.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.oauthV1 = oauthv1.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.oauthV1 = oauthv1.New(c) - - cs.DiscoveryClient = discovery.NewDiscoveryClient(c) - return &cs -} diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/doc.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/doc.go deleted file mode 100644 index 0e0c2a8900e2c..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated clientset. -package versioned diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/fake/clientset_generated.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/fake/clientset_generated.go deleted file mode 100644 index 12c674981e5c3..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/fake/clientset_generated.go +++ /dev/null @@ -1,66 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - clientset "github.com/openshift/client-go/oauth/clientset/versioned" - oauthv1 "github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1" - fakeoauthv1 "github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/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{} - -// OauthV1 retrieves the OauthV1Client -func (c *Clientset) OauthV1() oauthv1.OauthV1Interface { - return &fakeoauthv1.FakeOauthV1{Fake: &c.Fake} -} diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/fake/doc.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/fake/doc.go deleted file mode 100644 index 3630ed1cd17db..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/fake/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated fake clientset. -package fake diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/fake/register.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/fake/register.go deleted file mode 100644 index 8f5400f9073e3..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/fake/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - oauthv1 "github.com/openshift/api/oauth/v1" - 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 localSchemeBuilder = runtime.SchemeBuilder{ - oauthv1.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/vendor/github.com/openshift/client-go/oauth/clientset/versioned/scheme/doc.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/scheme/doc.go deleted file mode 100644 index 14db57a58f8d2..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/scheme/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package contains the scheme of the automatically generated clientset. -package scheme diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/scheme/register.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/scheme/register.go deleted file mode 100644 index a959a85e942e5..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/scheme/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package scheme - -import ( - oauthv1 "github.com/openshift/api/oauth/v1" - 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{ - oauthv1.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/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/doc.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/doc.go deleted file mode 100644 index 225e6b2be34f2..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated typed clients. -package v1 diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/doc.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/doc.go deleted file mode 100644 index 2b5ba4c8e4422..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// Package fake has the automatically generated clients. -package fake diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/fake_oauth_client.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/fake_oauth_client.go deleted file mode 100644 index 3eba1766ad7c1..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/fake_oauth_client.go +++ /dev/null @@ -1,36 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - v1 "github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1" - rest "k8s.io/client-go/rest" - testing "k8s.io/client-go/testing" -) - -type FakeOauthV1 struct { - *testing.Fake -} - -func (c *FakeOauthV1) OAuthAccessTokens() v1.OAuthAccessTokenInterface { - return &FakeOAuthAccessTokens{c} -} - -func (c *FakeOauthV1) OAuthAuthorizeTokens() v1.OAuthAuthorizeTokenInterface { - return &FakeOAuthAuthorizeTokens{c} -} - -func (c *FakeOauthV1) OAuthClients() v1.OAuthClientInterface { - return &FakeOAuthClients{c} -} - -func (c *FakeOauthV1) OAuthClientAuthorizations() v1.OAuthClientAuthorizationInterface { - return &FakeOAuthClientAuthorizations{c} -} - -// RESTClient returns a RESTClient that is used to communicate -// with API server by this client implementation. -func (c *FakeOauthV1) RESTClient() rest.Interface { - var ret *rest.RESTClient - return ret -} diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/fake_oauthaccesstoken.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/fake_oauthaccesstoken.go deleted file mode 100644 index 0d1abe1aab140..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/fake_oauthaccesstoken.go +++ /dev/null @@ -1,106 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - oauthv1 "github.com/openshift/api/oauth/v1" - 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" -) - -// FakeOAuthAccessTokens implements OAuthAccessTokenInterface -type FakeOAuthAccessTokens struct { - Fake *FakeOauthV1 -} - -var oauthaccesstokensResource = schema.GroupVersionResource{Group: "oauth.openshift.io", Version: "v1", Resource: "oauthaccesstokens"} - -var oauthaccesstokensKind = schema.GroupVersionKind{Group: "oauth.openshift.io", Version: "v1", Kind: "OAuthAccessToken"} - -// Get takes name of the oAuthAccessToken, and returns the corresponding oAuthAccessToken object, and an error if there is any. -func (c *FakeOAuthAccessTokens) Get(ctx context.Context, name string, options v1.GetOptions) (result *oauthv1.OAuthAccessToken, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(oauthaccesstokensResource, name), &oauthv1.OAuthAccessToken{}) - if obj == nil { - return nil, err - } - return obj.(*oauthv1.OAuthAccessToken), err -} - -// List takes label and field selectors, and returns the list of OAuthAccessTokens that match those selectors. -func (c *FakeOAuthAccessTokens) List(ctx context.Context, opts v1.ListOptions) (result *oauthv1.OAuthAccessTokenList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(oauthaccesstokensResource, oauthaccesstokensKind, opts), &oauthv1.OAuthAccessTokenList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &oauthv1.OAuthAccessTokenList{ListMeta: obj.(*oauthv1.OAuthAccessTokenList).ListMeta} - for _, item := range obj.(*oauthv1.OAuthAccessTokenList).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 oAuthAccessTokens. -func (c *FakeOAuthAccessTokens) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(oauthaccesstokensResource, opts)) -} - -// Create takes the representation of a oAuthAccessToken and creates it. Returns the server's representation of the oAuthAccessToken, and an error, if there is any. -func (c *FakeOAuthAccessTokens) Create(ctx context.Context, oAuthAccessToken *oauthv1.OAuthAccessToken, opts v1.CreateOptions) (result *oauthv1.OAuthAccessToken, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(oauthaccesstokensResource, oAuthAccessToken), &oauthv1.OAuthAccessToken{}) - if obj == nil { - return nil, err - } - return obj.(*oauthv1.OAuthAccessToken), err -} - -// Update takes the representation of a oAuthAccessToken and updates it. Returns the server's representation of the oAuthAccessToken, and an error, if there is any. -func (c *FakeOAuthAccessTokens) Update(ctx context.Context, oAuthAccessToken *oauthv1.OAuthAccessToken, opts v1.UpdateOptions) (result *oauthv1.OAuthAccessToken, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(oauthaccesstokensResource, oAuthAccessToken), &oauthv1.OAuthAccessToken{}) - if obj == nil { - return nil, err - } - return obj.(*oauthv1.OAuthAccessToken), err -} - -// Delete takes name of the oAuthAccessToken and deletes it. Returns an error if one occurs. -func (c *FakeOAuthAccessTokens) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(oauthaccesstokensResource, name), &oauthv1.OAuthAccessToken{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeOAuthAccessTokens) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(oauthaccesstokensResource, listOpts) - - _, err := c.Fake.Invokes(action, &oauthv1.OAuthAccessTokenList{}) - return err -} - -// Patch applies the patch and returns the patched oAuthAccessToken. -func (c *FakeOAuthAccessTokens) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *oauthv1.OAuthAccessToken, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(oauthaccesstokensResource, name, pt, data, subresources...), &oauthv1.OAuthAccessToken{}) - if obj == nil { - return nil, err - } - return obj.(*oauthv1.OAuthAccessToken), err -} diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/fake_oauthauthorizetoken.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/fake_oauthauthorizetoken.go deleted file mode 100644 index 5da4a58eb5d2b..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/fake_oauthauthorizetoken.go +++ /dev/null @@ -1,106 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - oauthv1 "github.com/openshift/api/oauth/v1" - 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" -) - -// FakeOAuthAuthorizeTokens implements OAuthAuthorizeTokenInterface -type FakeOAuthAuthorizeTokens struct { - Fake *FakeOauthV1 -} - -var oauthauthorizetokensResource = schema.GroupVersionResource{Group: "oauth.openshift.io", Version: "v1", Resource: "oauthauthorizetokens"} - -var oauthauthorizetokensKind = schema.GroupVersionKind{Group: "oauth.openshift.io", Version: "v1", Kind: "OAuthAuthorizeToken"} - -// Get takes name of the oAuthAuthorizeToken, and returns the corresponding oAuthAuthorizeToken object, and an error if there is any. -func (c *FakeOAuthAuthorizeTokens) Get(ctx context.Context, name string, options v1.GetOptions) (result *oauthv1.OAuthAuthorizeToken, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(oauthauthorizetokensResource, name), &oauthv1.OAuthAuthorizeToken{}) - if obj == nil { - return nil, err - } - return obj.(*oauthv1.OAuthAuthorizeToken), err -} - -// List takes label and field selectors, and returns the list of OAuthAuthorizeTokens that match those selectors. -func (c *FakeOAuthAuthorizeTokens) List(ctx context.Context, opts v1.ListOptions) (result *oauthv1.OAuthAuthorizeTokenList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(oauthauthorizetokensResource, oauthauthorizetokensKind, opts), &oauthv1.OAuthAuthorizeTokenList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &oauthv1.OAuthAuthorizeTokenList{ListMeta: obj.(*oauthv1.OAuthAuthorizeTokenList).ListMeta} - for _, item := range obj.(*oauthv1.OAuthAuthorizeTokenList).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 oAuthAuthorizeTokens. -func (c *FakeOAuthAuthorizeTokens) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(oauthauthorizetokensResource, opts)) -} - -// Create takes the representation of a oAuthAuthorizeToken and creates it. Returns the server's representation of the oAuthAuthorizeToken, and an error, if there is any. -func (c *FakeOAuthAuthorizeTokens) Create(ctx context.Context, oAuthAuthorizeToken *oauthv1.OAuthAuthorizeToken, opts v1.CreateOptions) (result *oauthv1.OAuthAuthorizeToken, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(oauthauthorizetokensResource, oAuthAuthorizeToken), &oauthv1.OAuthAuthorizeToken{}) - if obj == nil { - return nil, err - } - return obj.(*oauthv1.OAuthAuthorizeToken), err -} - -// Update takes the representation of a oAuthAuthorizeToken and updates it. Returns the server's representation of the oAuthAuthorizeToken, and an error, if there is any. -func (c *FakeOAuthAuthorizeTokens) Update(ctx context.Context, oAuthAuthorizeToken *oauthv1.OAuthAuthorizeToken, opts v1.UpdateOptions) (result *oauthv1.OAuthAuthorizeToken, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(oauthauthorizetokensResource, oAuthAuthorizeToken), &oauthv1.OAuthAuthorizeToken{}) - if obj == nil { - return nil, err - } - return obj.(*oauthv1.OAuthAuthorizeToken), err -} - -// Delete takes name of the oAuthAuthorizeToken and deletes it. Returns an error if one occurs. -func (c *FakeOAuthAuthorizeTokens) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(oauthauthorizetokensResource, name), &oauthv1.OAuthAuthorizeToken{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeOAuthAuthorizeTokens) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(oauthauthorizetokensResource, listOpts) - - _, err := c.Fake.Invokes(action, &oauthv1.OAuthAuthorizeTokenList{}) - return err -} - -// Patch applies the patch and returns the patched oAuthAuthorizeToken. -func (c *FakeOAuthAuthorizeTokens) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *oauthv1.OAuthAuthorizeToken, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(oauthauthorizetokensResource, name, pt, data, subresources...), &oauthv1.OAuthAuthorizeToken{}) - if obj == nil { - return nil, err - } - return obj.(*oauthv1.OAuthAuthorizeToken), err -} diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/fake_oauthclient.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/fake_oauthclient.go deleted file mode 100644 index c80a02f741faf..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/fake_oauthclient.go +++ /dev/null @@ -1,106 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - oauthv1 "github.com/openshift/api/oauth/v1" - 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" -) - -// FakeOAuthClients implements OAuthClientInterface -type FakeOAuthClients struct { - Fake *FakeOauthV1 -} - -var oauthclientsResource = schema.GroupVersionResource{Group: "oauth.openshift.io", Version: "v1", Resource: "oauthclients"} - -var oauthclientsKind = schema.GroupVersionKind{Group: "oauth.openshift.io", Version: "v1", Kind: "OAuthClient"} - -// Get takes name of the oAuthClient, and returns the corresponding oAuthClient object, and an error if there is any. -func (c *FakeOAuthClients) Get(ctx context.Context, name string, options v1.GetOptions) (result *oauthv1.OAuthClient, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(oauthclientsResource, name), &oauthv1.OAuthClient{}) - if obj == nil { - return nil, err - } - return obj.(*oauthv1.OAuthClient), err -} - -// List takes label and field selectors, and returns the list of OAuthClients that match those selectors. -func (c *FakeOAuthClients) List(ctx context.Context, opts v1.ListOptions) (result *oauthv1.OAuthClientList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(oauthclientsResource, oauthclientsKind, opts), &oauthv1.OAuthClientList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &oauthv1.OAuthClientList{ListMeta: obj.(*oauthv1.OAuthClientList).ListMeta} - for _, item := range obj.(*oauthv1.OAuthClientList).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 oAuthClients. -func (c *FakeOAuthClients) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(oauthclientsResource, opts)) -} - -// Create takes the representation of a oAuthClient and creates it. Returns the server's representation of the oAuthClient, and an error, if there is any. -func (c *FakeOAuthClients) Create(ctx context.Context, oAuthClient *oauthv1.OAuthClient, opts v1.CreateOptions) (result *oauthv1.OAuthClient, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(oauthclientsResource, oAuthClient), &oauthv1.OAuthClient{}) - if obj == nil { - return nil, err - } - return obj.(*oauthv1.OAuthClient), err -} - -// Update takes the representation of a oAuthClient and updates it. Returns the server's representation of the oAuthClient, and an error, if there is any. -func (c *FakeOAuthClients) Update(ctx context.Context, oAuthClient *oauthv1.OAuthClient, opts v1.UpdateOptions) (result *oauthv1.OAuthClient, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(oauthclientsResource, oAuthClient), &oauthv1.OAuthClient{}) - if obj == nil { - return nil, err - } - return obj.(*oauthv1.OAuthClient), err -} - -// Delete takes name of the oAuthClient and deletes it. Returns an error if one occurs. -func (c *FakeOAuthClients) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(oauthclientsResource, name), &oauthv1.OAuthClient{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeOAuthClients) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(oauthclientsResource, listOpts) - - _, err := c.Fake.Invokes(action, &oauthv1.OAuthClientList{}) - return err -} - -// Patch applies the patch and returns the patched oAuthClient. -func (c *FakeOAuthClients) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *oauthv1.OAuthClient, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(oauthclientsResource, name, pt, data, subresources...), &oauthv1.OAuthClient{}) - if obj == nil { - return nil, err - } - return obj.(*oauthv1.OAuthClient), err -} diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/fake_oauthclientauthorization.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/fake_oauthclientauthorization.go deleted file mode 100644 index 1394a2a7a60d1..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/fake/fake_oauthclientauthorization.go +++ /dev/null @@ -1,106 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - oauthv1 "github.com/openshift/api/oauth/v1" - 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" -) - -// FakeOAuthClientAuthorizations implements OAuthClientAuthorizationInterface -type FakeOAuthClientAuthorizations struct { - Fake *FakeOauthV1 -} - -var oauthclientauthorizationsResource = schema.GroupVersionResource{Group: "oauth.openshift.io", Version: "v1", Resource: "oauthclientauthorizations"} - -var oauthclientauthorizationsKind = schema.GroupVersionKind{Group: "oauth.openshift.io", Version: "v1", Kind: "OAuthClientAuthorization"} - -// Get takes name of the oAuthClientAuthorization, and returns the corresponding oAuthClientAuthorization object, and an error if there is any. -func (c *FakeOAuthClientAuthorizations) Get(ctx context.Context, name string, options v1.GetOptions) (result *oauthv1.OAuthClientAuthorization, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(oauthclientauthorizationsResource, name), &oauthv1.OAuthClientAuthorization{}) - if obj == nil { - return nil, err - } - return obj.(*oauthv1.OAuthClientAuthorization), err -} - -// List takes label and field selectors, and returns the list of OAuthClientAuthorizations that match those selectors. -func (c *FakeOAuthClientAuthorizations) List(ctx context.Context, opts v1.ListOptions) (result *oauthv1.OAuthClientAuthorizationList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(oauthclientauthorizationsResource, oauthclientauthorizationsKind, opts), &oauthv1.OAuthClientAuthorizationList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &oauthv1.OAuthClientAuthorizationList{ListMeta: obj.(*oauthv1.OAuthClientAuthorizationList).ListMeta} - for _, item := range obj.(*oauthv1.OAuthClientAuthorizationList).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 oAuthClientAuthorizations. -func (c *FakeOAuthClientAuthorizations) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(oauthclientauthorizationsResource, opts)) -} - -// Create takes the representation of a oAuthClientAuthorization and creates it. Returns the server's representation of the oAuthClientAuthorization, and an error, if there is any. -func (c *FakeOAuthClientAuthorizations) Create(ctx context.Context, oAuthClientAuthorization *oauthv1.OAuthClientAuthorization, opts v1.CreateOptions) (result *oauthv1.OAuthClientAuthorization, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(oauthclientauthorizationsResource, oAuthClientAuthorization), &oauthv1.OAuthClientAuthorization{}) - if obj == nil { - return nil, err - } - return obj.(*oauthv1.OAuthClientAuthorization), err -} - -// Update takes the representation of a oAuthClientAuthorization and updates it. Returns the server's representation of the oAuthClientAuthorization, and an error, if there is any. -func (c *FakeOAuthClientAuthorizations) Update(ctx context.Context, oAuthClientAuthorization *oauthv1.OAuthClientAuthorization, opts v1.UpdateOptions) (result *oauthv1.OAuthClientAuthorization, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(oauthclientauthorizationsResource, oAuthClientAuthorization), &oauthv1.OAuthClientAuthorization{}) - if obj == nil { - return nil, err - } - return obj.(*oauthv1.OAuthClientAuthorization), err -} - -// Delete takes name of the oAuthClientAuthorization and deletes it. Returns an error if one occurs. -func (c *FakeOAuthClientAuthorizations) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(oauthclientauthorizationsResource, name), &oauthv1.OAuthClientAuthorization{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeOAuthClientAuthorizations) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(oauthclientauthorizationsResource, listOpts) - - _, err := c.Fake.Invokes(action, &oauthv1.OAuthClientAuthorizationList{}) - return err -} - -// Patch applies the patch and returns the patched oAuthClientAuthorization. -func (c *FakeOAuthClientAuthorizations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *oauthv1.OAuthClientAuthorization, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(oauthclientauthorizationsResource, name, pt, data, subresources...), &oauthv1.OAuthClientAuthorization{}) - if obj == nil { - return nil, err - } - return obj.(*oauthv1.OAuthClientAuthorization), err -} diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/generated_expansion.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/generated_expansion.go deleted file mode 100644 index d5e00863715b4..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/generated_expansion.go +++ /dev/null @@ -1,11 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -type OAuthAccessTokenExpansion interface{} - -type OAuthAuthorizeTokenExpansion interface{} - -type OAuthClientExpansion interface{} - -type OAuthClientAuthorizationExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/oauth_client.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/oauth_client.go deleted file mode 100644 index d0ee41087c19e..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/oauth_client.go +++ /dev/null @@ -1,88 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/oauth/v1" - "github.com/openshift/client-go/oauth/clientset/versioned/scheme" - rest "k8s.io/client-go/rest" -) - -type OauthV1Interface interface { - RESTClient() rest.Interface - OAuthAccessTokensGetter - OAuthAuthorizeTokensGetter - OAuthClientsGetter - OAuthClientAuthorizationsGetter -} - -// OauthV1Client is used to interact with features provided by the oauth.openshift.io group. -type OauthV1Client struct { - restClient rest.Interface -} - -func (c *OauthV1Client) OAuthAccessTokens() OAuthAccessTokenInterface { - return newOAuthAccessTokens(c) -} - -func (c *OauthV1Client) OAuthAuthorizeTokens() OAuthAuthorizeTokenInterface { - return newOAuthAuthorizeTokens(c) -} - -func (c *OauthV1Client) OAuthClients() OAuthClientInterface { - return newOAuthClients(c) -} - -func (c *OauthV1Client) OAuthClientAuthorizations() OAuthClientAuthorizationInterface { - return newOAuthClientAuthorizations(c) -} - -// NewForConfig creates a new OauthV1Client for the given config. -func NewForConfig(c *rest.Config) (*OauthV1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientFor(&config) - if err != nil { - return nil, err - } - return &OauthV1Client{client}, nil -} - -// NewForConfigOrDie creates a new OauthV1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *OauthV1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new OauthV1Client for the given RESTClient. -func New(c rest.Interface) *OauthV1Client { - return &OauthV1Client{c} -} - -func setConfigDefaults(config *rest.Config) error { - gv := v1.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 *OauthV1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/oauthaccesstoken.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/oauthaccesstoken.go deleted file mode 100644 index ec7c0056517de..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/oauthaccesstoken.go +++ /dev/null @@ -1,152 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/oauth/v1" - scheme "github.com/openshift/client-go/oauth/clientset/versioned/scheme" - metav1 "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" -) - -// OAuthAccessTokensGetter has a method to return a OAuthAccessTokenInterface. -// A group's client should implement this interface. -type OAuthAccessTokensGetter interface { - OAuthAccessTokens() OAuthAccessTokenInterface -} - -// OAuthAccessTokenInterface has methods to work with OAuthAccessToken resources. -type OAuthAccessTokenInterface interface { - Create(ctx context.Context, oAuthAccessToken *v1.OAuthAccessToken, opts metav1.CreateOptions) (*v1.OAuthAccessToken, error) - Update(ctx context.Context, oAuthAccessToken *v1.OAuthAccessToken, opts metav1.UpdateOptions) (*v1.OAuthAccessToken, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.OAuthAccessToken, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.OAuthAccessTokenList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OAuthAccessToken, err error) - OAuthAccessTokenExpansion -} - -// oAuthAccessTokens implements OAuthAccessTokenInterface -type oAuthAccessTokens struct { - client rest.Interface -} - -// newOAuthAccessTokens returns a OAuthAccessTokens -func newOAuthAccessTokens(c *OauthV1Client) *oAuthAccessTokens { - return &oAuthAccessTokens{ - client: c.RESTClient(), - } -} - -// Get takes name of the oAuthAccessToken, and returns the corresponding oAuthAccessToken object, and an error if there is any. -func (c *oAuthAccessTokens) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.OAuthAccessToken, err error) { - result = &v1.OAuthAccessToken{} - err = c.client.Get(). - Resource("oauthaccesstokens"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of OAuthAccessTokens that match those selectors. -func (c *oAuthAccessTokens) List(ctx context.Context, opts metav1.ListOptions) (result *v1.OAuthAccessTokenList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.OAuthAccessTokenList{} - err = c.client.Get(). - Resource("oauthaccesstokens"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested oAuthAccessTokens. -func (c *oAuthAccessTokens) Watch(ctx context.Context, opts metav1.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(). - Resource("oauthaccesstokens"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a oAuthAccessToken and creates it. Returns the server's representation of the oAuthAccessToken, and an error, if there is any. -func (c *oAuthAccessTokens) Create(ctx context.Context, oAuthAccessToken *v1.OAuthAccessToken, opts metav1.CreateOptions) (result *v1.OAuthAccessToken, err error) { - result = &v1.OAuthAccessToken{} - err = c.client.Post(). - Resource("oauthaccesstokens"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(oAuthAccessToken). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a oAuthAccessToken and updates it. Returns the server's representation of the oAuthAccessToken, and an error, if there is any. -func (c *oAuthAccessTokens) Update(ctx context.Context, oAuthAccessToken *v1.OAuthAccessToken, opts metav1.UpdateOptions) (result *v1.OAuthAccessToken, err error) { - result = &v1.OAuthAccessToken{} - err = c.client.Put(). - Resource("oauthaccesstokens"). - Name(oAuthAccessToken.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(oAuthAccessToken). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the oAuthAccessToken and deletes it. Returns an error if one occurs. -func (c *oAuthAccessTokens) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("oauthaccesstokens"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *oAuthAccessTokens) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("oauthaccesstokens"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched oAuthAccessToken. -func (c *oAuthAccessTokens) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OAuthAccessToken, err error) { - result = &v1.OAuthAccessToken{} - err = c.client.Patch(pt). - Resource("oauthaccesstokens"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/oauthauthorizetoken.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/oauthauthorizetoken.go deleted file mode 100644 index 43d8e8cfc2096..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/oauthauthorizetoken.go +++ /dev/null @@ -1,152 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/oauth/v1" - scheme "github.com/openshift/client-go/oauth/clientset/versioned/scheme" - metav1 "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" -) - -// OAuthAuthorizeTokensGetter has a method to return a OAuthAuthorizeTokenInterface. -// A group's client should implement this interface. -type OAuthAuthorizeTokensGetter interface { - OAuthAuthorizeTokens() OAuthAuthorizeTokenInterface -} - -// OAuthAuthorizeTokenInterface has methods to work with OAuthAuthorizeToken resources. -type OAuthAuthorizeTokenInterface interface { - Create(ctx context.Context, oAuthAuthorizeToken *v1.OAuthAuthorizeToken, opts metav1.CreateOptions) (*v1.OAuthAuthorizeToken, error) - Update(ctx context.Context, oAuthAuthorizeToken *v1.OAuthAuthorizeToken, opts metav1.UpdateOptions) (*v1.OAuthAuthorizeToken, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.OAuthAuthorizeToken, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.OAuthAuthorizeTokenList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OAuthAuthorizeToken, err error) - OAuthAuthorizeTokenExpansion -} - -// oAuthAuthorizeTokens implements OAuthAuthorizeTokenInterface -type oAuthAuthorizeTokens struct { - client rest.Interface -} - -// newOAuthAuthorizeTokens returns a OAuthAuthorizeTokens -func newOAuthAuthorizeTokens(c *OauthV1Client) *oAuthAuthorizeTokens { - return &oAuthAuthorizeTokens{ - client: c.RESTClient(), - } -} - -// Get takes name of the oAuthAuthorizeToken, and returns the corresponding oAuthAuthorizeToken object, and an error if there is any. -func (c *oAuthAuthorizeTokens) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.OAuthAuthorizeToken, err error) { - result = &v1.OAuthAuthorizeToken{} - err = c.client.Get(). - Resource("oauthauthorizetokens"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of OAuthAuthorizeTokens that match those selectors. -func (c *oAuthAuthorizeTokens) List(ctx context.Context, opts metav1.ListOptions) (result *v1.OAuthAuthorizeTokenList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.OAuthAuthorizeTokenList{} - err = c.client.Get(). - Resource("oauthauthorizetokens"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested oAuthAuthorizeTokens. -func (c *oAuthAuthorizeTokens) Watch(ctx context.Context, opts metav1.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(). - Resource("oauthauthorizetokens"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a oAuthAuthorizeToken and creates it. Returns the server's representation of the oAuthAuthorizeToken, and an error, if there is any. -func (c *oAuthAuthorizeTokens) Create(ctx context.Context, oAuthAuthorizeToken *v1.OAuthAuthorizeToken, opts metav1.CreateOptions) (result *v1.OAuthAuthorizeToken, err error) { - result = &v1.OAuthAuthorizeToken{} - err = c.client.Post(). - Resource("oauthauthorizetokens"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(oAuthAuthorizeToken). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a oAuthAuthorizeToken and updates it. Returns the server's representation of the oAuthAuthorizeToken, and an error, if there is any. -func (c *oAuthAuthorizeTokens) Update(ctx context.Context, oAuthAuthorizeToken *v1.OAuthAuthorizeToken, opts metav1.UpdateOptions) (result *v1.OAuthAuthorizeToken, err error) { - result = &v1.OAuthAuthorizeToken{} - err = c.client.Put(). - Resource("oauthauthorizetokens"). - Name(oAuthAuthorizeToken.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(oAuthAuthorizeToken). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the oAuthAuthorizeToken and deletes it. Returns an error if one occurs. -func (c *oAuthAuthorizeTokens) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("oauthauthorizetokens"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *oAuthAuthorizeTokens) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("oauthauthorizetokens"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched oAuthAuthorizeToken. -func (c *oAuthAuthorizeTokens) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OAuthAuthorizeToken, err error) { - result = &v1.OAuthAuthorizeToken{} - err = c.client.Patch(pt). - Resource("oauthauthorizetokens"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/oauthclient.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/oauthclient.go deleted file mode 100644 index 1d64a5c272393..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/oauthclient.go +++ /dev/null @@ -1,152 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/oauth/v1" - scheme "github.com/openshift/client-go/oauth/clientset/versioned/scheme" - metav1 "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" -) - -// OAuthClientsGetter has a method to return a OAuthClientInterface. -// A group's client should implement this interface. -type OAuthClientsGetter interface { - OAuthClients() OAuthClientInterface -} - -// OAuthClientInterface has methods to work with OAuthClient resources. -type OAuthClientInterface interface { - Create(ctx context.Context, oAuthClient *v1.OAuthClient, opts metav1.CreateOptions) (*v1.OAuthClient, error) - Update(ctx context.Context, oAuthClient *v1.OAuthClient, opts metav1.UpdateOptions) (*v1.OAuthClient, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.OAuthClient, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.OAuthClientList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OAuthClient, err error) - OAuthClientExpansion -} - -// oAuthClients implements OAuthClientInterface -type oAuthClients struct { - client rest.Interface -} - -// newOAuthClients returns a OAuthClients -func newOAuthClients(c *OauthV1Client) *oAuthClients { - return &oAuthClients{ - client: c.RESTClient(), - } -} - -// Get takes name of the oAuthClient, and returns the corresponding oAuthClient object, and an error if there is any. -func (c *oAuthClients) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.OAuthClient, err error) { - result = &v1.OAuthClient{} - err = c.client.Get(). - Resource("oauthclients"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of OAuthClients that match those selectors. -func (c *oAuthClients) List(ctx context.Context, opts metav1.ListOptions) (result *v1.OAuthClientList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.OAuthClientList{} - err = c.client.Get(). - Resource("oauthclients"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested oAuthClients. -func (c *oAuthClients) Watch(ctx context.Context, opts metav1.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(). - Resource("oauthclients"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a oAuthClient and creates it. Returns the server's representation of the oAuthClient, and an error, if there is any. -func (c *oAuthClients) Create(ctx context.Context, oAuthClient *v1.OAuthClient, opts metav1.CreateOptions) (result *v1.OAuthClient, err error) { - result = &v1.OAuthClient{} - err = c.client.Post(). - Resource("oauthclients"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(oAuthClient). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a oAuthClient and updates it. Returns the server's representation of the oAuthClient, and an error, if there is any. -func (c *oAuthClients) Update(ctx context.Context, oAuthClient *v1.OAuthClient, opts metav1.UpdateOptions) (result *v1.OAuthClient, err error) { - result = &v1.OAuthClient{} - err = c.client.Put(). - Resource("oauthclients"). - Name(oAuthClient.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(oAuthClient). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the oAuthClient and deletes it. Returns an error if one occurs. -func (c *oAuthClients) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("oauthclients"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *oAuthClients) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("oauthclients"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched oAuthClient. -func (c *oAuthClients) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OAuthClient, err error) { - result = &v1.OAuthClient{} - err = c.client.Patch(pt). - Resource("oauthclients"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/oauthclientauthorization.go b/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/oauthclientauthorization.go deleted file mode 100644 index c199d86307477..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/clientset/versioned/typed/oauth/v1/oauthclientauthorization.go +++ /dev/null @@ -1,152 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/oauth/v1" - scheme "github.com/openshift/client-go/oauth/clientset/versioned/scheme" - metav1 "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" -) - -// OAuthClientAuthorizationsGetter has a method to return a OAuthClientAuthorizationInterface. -// A group's client should implement this interface. -type OAuthClientAuthorizationsGetter interface { - OAuthClientAuthorizations() OAuthClientAuthorizationInterface -} - -// OAuthClientAuthorizationInterface has methods to work with OAuthClientAuthorization resources. -type OAuthClientAuthorizationInterface interface { - Create(ctx context.Context, oAuthClientAuthorization *v1.OAuthClientAuthorization, opts metav1.CreateOptions) (*v1.OAuthClientAuthorization, error) - Update(ctx context.Context, oAuthClientAuthorization *v1.OAuthClientAuthorization, opts metav1.UpdateOptions) (*v1.OAuthClientAuthorization, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.OAuthClientAuthorization, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.OAuthClientAuthorizationList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OAuthClientAuthorization, err error) - OAuthClientAuthorizationExpansion -} - -// oAuthClientAuthorizations implements OAuthClientAuthorizationInterface -type oAuthClientAuthorizations struct { - client rest.Interface -} - -// newOAuthClientAuthorizations returns a OAuthClientAuthorizations -func newOAuthClientAuthorizations(c *OauthV1Client) *oAuthClientAuthorizations { - return &oAuthClientAuthorizations{ - client: c.RESTClient(), - } -} - -// Get takes name of the oAuthClientAuthorization, and returns the corresponding oAuthClientAuthorization object, and an error if there is any. -func (c *oAuthClientAuthorizations) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.OAuthClientAuthorization, err error) { - result = &v1.OAuthClientAuthorization{} - err = c.client.Get(). - Resource("oauthclientauthorizations"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of OAuthClientAuthorizations that match those selectors. -func (c *oAuthClientAuthorizations) List(ctx context.Context, opts metav1.ListOptions) (result *v1.OAuthClientAuthorizationList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.OAuthClientAuthorizationList{} - err = c.client.Get(). - Resource("oauthclientauthorizations"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested oAuthClientAuthorizations. -func (c *oAuthClientAuthorizations) Watch(ctx context.Context, opts metav1.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(). - Resource("oauthclientauthorizations"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a oAuthClientAuthorization and creates it. Returns the server's representation of the oAuthClientAuthorization, and an error, if there is any. -func (c *oAuthClientAuthorizations) Create(ctx context.Context, oAuthClientAuthorization *v1.OAuthClientAuthorization, opts metav1.CreateOptions) (result *v1.OAuthClientAuthorization, err error) { - result = &v1.OAuthClientAuthorization{} - err = c.client.Post(). - Resource("oauthclientauthorizations"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(oAuthClientAuthorization). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a oAuthClientAuthorization and updates it. Returns the server's representation of the oAuthClientAuthorization, and an error, if there is any. -func (c *oAuthClientAuthorizations) Update(ctx context.Context, oAuthClientAuthorization *v1.OAuthClientAuthorization, opts metav1.UpdateOptions) (result *v1.OAuthClientAuthorization, err error) { - result = &v1.OAuthClientAuthorization{} - err = c.client.Put(). - Resource("oauthclientauthorizations"). - Name(oAuthClientAuthorization.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(oAuthClientAuthorization). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the oAuthClientAuthorization and deletes it. Returns an error if one occurs. -func (c *oAuthClientAuthorizations) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("oauthclientauthorizations"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *oAuthClientAuthorizations) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("oauthclientauthorizations"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched oAuthClientAuthorization. -func (c *oAuthClientAuthorizations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OAuthClientAuthorization, err error) { - result = &v1.OAuthClientAuthorization{} - err = c.client.Patch(pt). - Resource("oauthclientauthorizations"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/oauth/informers/externalversions/factory.go b/vendor/github.com/openshift/client-go/oauth/informers/externalversions/factory.go deleted file mode 100644 index 13c201b24eea6..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/informers/externalversions/factory.go +++ /dev/null @@ -1,164 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - reflect "reflect" - sync "sync" - time "time" - - versioned "github.com/openshift/client-go/oauth/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/oauth/informers/externalversions/internalinterfaces" - oauth "github.com/openshift/client-go/oauth/informers/externalversions/oauth" - 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 versioned.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 versioned.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 versioned.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 versioned.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 - - Oauth() oauth.Interface -} - -func (f *sharedInformerFactory) Oauth() oauth.Interface { - return oauth.New(f, f.namespace, f.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/oauth/informers/externalversions/generic.go b/vendor/github.com/openshift/client-go/oauth/informers/externalversions/generic.go deleted file mode 100644 index bd51d836c8744..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/informers/externalversions/generic.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - "fmt" - - v1 "github.com/openshift/api/oauth/v1" - 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=oauth.openshift.io, Version=v1 - case v1.SchemeGroupVersion.WithResource("oauthaccesstokens"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Oauth().V1().OAuthAccessTokens().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("oauthauthorizetokens"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Oauth().V1().OAuthAuthorizeTokens().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("oauthclients"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Oauth().V1().OAuthClients().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("oauthclientauthorizations"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Oauth().V1().OAuthClientAuthorizations().Informer()}, nil - - } - - return nil, fmt.Errorf("no informer found for %v", resource) -} diff --git a/vendor/github.com/openshift/client-go/oauth/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/github.com/openshift/client-go/oauth/informers/externalversions/internalinterfaces/factory_interfaces.go deleted file mode 100644 index 968f52798481f..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/informers/externalversions/internalinterfaces/factory_interfaces.go +++ /dev/null @@ -1,24 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package internalinterfaces - -import ( - time "time" - - versioned "github.com/openshift/client-go/oauth/clientset/versioned" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - cache "k8s.io/client-go/tools/cache" -) - -// NewInformerFunc takes versioned.Interface and time.Duration to return a SharedIndexInformer. -type NewInformerFunc func(versioned.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/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/interface.go b/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/interface.go deleted file mode 100644 index 8afb627c64914..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/interface.go +++ /dev/null @@ -1,30 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package oauth - -import ( - internalinterfaces "github.com/openshift/client-go/oauth/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/oauth/informers/externalversions/oauth/v1" -) - -// Interface provides access to each of this group's versions. -type Interface interface { - // V1 provides access to shared informers for resources in V1. - V1() v1.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} -} - -// V1 returns a new v1.Interface. -func (g *group) V1() v1.Interface { - return v1.New(g.factory, g.namespace, g.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/v1/interface.go b/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/v1/interface.go deleted file mode 100644 index 241c47aa68b29..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/v1/interface.go +++ /dev/null @@ -1,50 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - internalinterfaces "github.com/openshift/client-go/oauth/informers/externalversions/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // OAuthAccessTokens returns a OAuthAccessTokenInformer. - OAuthAccessTokens() OAuthAccessTokenInformer - // OAuthAuthorizeTokens returns a OAuthAuthorizeTokenInformer. - OAuthAuthorizeTokens() OAuthAuthorizeTokenInformer - // OAuthClients returns a OAuthClientInformer. - OAuthClients() OAuthClientInformer - // OAuthClientAuthorizations returns a OAuthClientAuthorizationInformer. - OAuthClientAuthorizations() OAuthClientAuthorizationInformer -} - -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} -} - -// OAuthAccessTokens returns a OAuthAccessTokenInformer. -func (v *version) OAuthAccessTokens() OAuthAccessTokenInformer { - return &oAuthAccessTokenInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} - -// OAuthAuthorizeTokens returns a OAuthAuthorizeTokenInformer. -func (v *version) OAuthAuthorizeTokens() OAuthAuthorizeTokenInformer { - return &oAuthAuthorizeTokenInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} - -// OAuthClients returns a OAuthClientInformer. -func (v *version) OAuthClients() OAuthClientInformer { - return &oAuthClientInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} - -// OAuthClientAuthorizations returns a OAuthClientAuthorizationInformer. -func (v *version) OAuthClientAuthorizations() OAuthClientAuthorizationInformer { - return &oAuthClientAuthorizationInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} diff --git a/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/v1/oauthaccesstoken.go b/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/v1/oauthaccesstoken.go deleted file mode 100644 index 35c1b59b26bd2..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/v1/oauthaccesstoken.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - oauthv1 "github.com/openshift/api/oauth/v1" - versioned "github.com/openshift/client-go/oauth/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/oauth/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/oauth/listers/oauth/v1" - metav1 "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" -) - -// OAuthAccessTokenInformer provides access to a shared informer and lister for -// OAuthAccessTokens. -type OAuthAccessTokenInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.OAuthAccessTokenLister -} - -type oAuthAccessTokenInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewOAuthAccessTokenInformer constructs a new informer for OAuthAccessToken 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 NewOAuthAccessTokenInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredOAuthAccessTokenInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredOAuthAccessTokenInformer constructs a new informer for OAuthAccessToken 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 NewFilteredOAuthAccessTokenInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.OauthV1().OAuthAccessTokens().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.OauthV1().OAuthAccessTokens().Watch(context.TODO(), options) - }, - }, - &oauthv1.OAuthAccessToken{}, - resyncPeriod, - indexers, - ) -} - -func (f *oAuthAccessTokenInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredOAuthAccessTokenInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *oAuthAccessTokenInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&oauthv1.OAuthAccessToken{}, f.defaultInformer) -} - -func (f *oAuthAccessTokenInformer) Lister() v1.OAuthAccessTokenLister { - return v1.NewOAuthAccessTokenLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/v1/oauthauthorizetoken.go b/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/v1/oauthauthorizetoken.go deleted file mode 100644 index 1c9ff0946a742..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/v1/oauthauthorizetoken.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - oauthv1 "github.com/openshift/api/oauth/v1" - versioned "github.com/openshift/client-go/oauth/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/oauth/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/oauth/listers/oauth/v1" - metav1 "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" -) - -// OAuthAuthorizeTokenInformer provides access to a shared informer and lister for -// OAuthAuthorizeTokens. -type OAuthAuthorizeTokenInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.OAuthAuthorizeTokenLister -} - -type oAuthAuthorizeTokenInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewOAuthAuthorizeTokenInformer constructs a new informer for OAuthAuthorizeToken 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 NewOAuthAuthorizeTokenInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredOAuthAuthorizeTokenInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredOAuthAuthorizeTokenInformer constructs a new informer for OAuthAuthorizeToken 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 NewFilteredOAuthAuthorizeTokenInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.OauthV1().OAuthAuthorizeTokens().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.OauthV1().OAuthAuthorizeTokens().Watch(context.TODO(), options) - }, - }, - &oauthv1.OAuthAuthorizeToken{}, - resyncPeriod, - indexers, - ) -} - -func (f *oAuthAuthorizeTokenInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredOAuthAuthorizeTokenInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *oAuthAuthorizeTokenInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&oauthv1.OAuthAuthorizeToken{}, f.defaultInformer) -} - -func (f *oAuthAuthorizeTokenInformer) Lister() v1.OAuthAuthorizeTokenLister { - return v1.NewOAuthAuthorizeTokenLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/v1/oauthclient.go b/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/v1/oauthclient.go deleted file mode 100644 index 58cf1f786b651..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/v1/oauthclient.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - oauthv1 "github.com/openshift/api/oauth/v1" - versioned "github.com/openshift/client-go/oauth/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/oauth/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/oauth/listers/oauth/v1" - metav1 "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" -) - -// OAuthClientInformer provides access to a shared informer and lister for -// OAuthClients. -type OAuthClientInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.OAuthClientLister -} - -type oAuthClientInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewOAuthClientInformer constructs a new informer for OAuthClient 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 NewOAuthClientInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredOAuthClientInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredOAuthClientInformer constructs a new informer for OAuthClient 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 NewFilteredOAuthClientInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.OauthV1().OAuthClients().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.OauthV1().OAuthClients().Watch(context.TODO(), options) - }, - }, - &oauthv1.OAuthClient{}, - resyncPeriod, - indexers, - ) -} - -func (f *oAuthClientInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredOAuthClientInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *oAuthClientInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&oauthv1.OAuthClient{}, f.defaultInformer) -} - -func (f *oAuthClientInformer) Lister() v1.OAuthClientLister { - return v1.NewOAuthClientLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/v1/oauthclientauthorization.go b/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/v1/oauthclientauthorization.go deleted file mode 100644 index df8f93d4f12d5..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/informers/externalversions/oauth/v1/oauthclientauthorization.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - oauthv1 "github.com/openshift/api/oauth/v1" - versioned "github.com/openshift/client-go/oauth/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/oauth/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/oauth/listers/oauth/v1" - metav1 "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" -) - -// OAuthClientAuthorizationInformer provides access to a shared informer and lister for -// OAuthClientAuthorizations. -type OAuthClientAuthorizationInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.OAuthClientAuthorizationLister -} - -type oAuthClientAuthorizationInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewOAuthClientAuthorizationInformer constructs a new informer for OAuthClientAuthorization 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 NewOAuthClientAuthorizationInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredOAuthClientAuthorizationInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredOAuthClientAuthorizationInformer constructs a new informer for OAuthClientAuthorization 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 NewFilteredOAuthClientAuthorizationInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.OauthV1().OAuthClientAuthorizations().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.OauthV1().OAuthClientAuthorizations().Watch(context.TODO(), options) - }, - }, - &oauthv1.OAuthClientAuthorization{}, - resyncPeriod, - indexers, - ) -} - -func (f *oAuthClientAuthorizationInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredOAuthClientAuthorizationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *oAuthClientAuthorizationInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&oauthv1.OAuthClientAuthorization{}, f.defaultInformer) -} - -func (f *oAuthClientAuthorizationInformer) Lister() v1.OAuthClientAuthorizationLister { - return v1.NewOAuthClientAuthorizationLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/oauth/listers/oauth/v1/expansion_generated.go b/vendor/github.com/openshift/client-go/oauth/listers/oauth/v1/expansion_generated.go deleted file mode 100644 index e7d8b5eb59e18..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/listers/oauth/v1/expansion_generated.go +++ /dev/null @@ -1,19 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -// OAuthAccessTokenListerExpansion allows custom methods to be added to -// OAuthAccessTokenLister. -type OAuthAccessTokenListerExpansion interface{} - -// OAuthAuthorizeTokenListerExpansion allows custom methods to be added to -// OAuthAuthorizeTokenLister. -type OAuthAuthorizeTokenListerExpansion interface{} - -// OAuthClientListerExpansion allows custom methods to be added to -// OAuthClientLister. -type OAuthClientListerExpansion interface{} - -// OAuthClientAuthorizationListerExpansion allows custom methods to be added to -// OAuthClientAuthorizationLister. -type OAuthClientAuthorizationListerExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/oauth/listers/oauth/v1/oauthaccesstoken.go b/vendor/github.com/openshift/client-go/oauth/listers/oauth/v1/oauthaccesstoken.go deleted file mode 100644 index 8486f9181981f..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/listers/oauth/v1/oauthaccesstoken.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/oauth/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// OAuthAccessTokenLister helps list OAuthAccessTokens. -// All objects returned here must be treated as read-only. -type OAuthAccessTokenLister interface { - // List lists all OAuthAccessTokens in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.OAuthAccessToken, err error) - // Get retrieves the OAuthAccessToken from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.OAuthAccessToken, error) - OAuthAccessTokenListerExpansion -} - -// oAuthAccessTokenLister implements the OAuthAccessTokenLister interface. -type oAuthAccessTokenLister struct { - indexer cache.Indexer -} - -// NewOAuthAccessTokenLister returns a new OAuthAccessTokenLister. -func NewOAuthAccessTokenLister(indexer cache.Indexer) OAuthAccessTokenLister { - return &oAuthAccessTokenLister{indexer: indexer} -} - -// List lists all OAuthAccessTokens in the indexer. -func (s *oAuthAccessTokenLister) List(selector labels.Selector) (ret []*v1.OAuthAccessToken, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.OAuthAccessToken)) - }) - return ret, err -} - -// Get retrieves the OAuthAccessToken from the index for a given name. -func (s *oAuthAccessTokenLister) Get(name string) (*v1.OAuthAccessToken, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("oauthaccesstoken"), name) - } - return obj.(*v1.OAuthAccessToken), nil -} diff --git a/vendor/github.com/openshift/client-go/oauth/listers/oauth/v1/oauthauthorizetoken.go b/vendor/github.com/openshift/client-go/oauth/listers/oauth/v1/oauthauthorizetoken.go deleted file mode 100644 index d42a247b52756..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/listers/oauth/v1/oauthauthorizetoken.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/oauth/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// OAuthAuthorizeTokenLister helps list OAuthAuthorizeTokens. -// All objects returned here must be treated as read-only. -type OAuthAuthorizeTokenLister interface { - // List lists all OAuthAuthorizeTokens in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.OAuthAuthorizeToken, err error) - // Get retrieves the OAuthAuthorizeToken from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.OAuthAuthorizeToken, error) - OAuthAuthorizeTokenListerExpansion -} - -// oAuthAuthorizeTokenLister implements the OAuthAuthorizeTokenLister interface. -type oAuthAuthorizeTokenLister struct { - indexer cache.Indexer -} - -// NewOAuthAuthorizeTokenLister returns a new OAuthAuthorizeTokenLister. -func NewOAuthAuthorizeTokenLister(indexer cache.Indexer) OAuthAuthorizeTokenLister { - return &oAuthAuthorizeTokenLister{indexer: indexer} -} - -// List lists all OAuthAuthorizeTokens in the indexer. -func (s *oAuthAuthorizeTokenLister) List(selector labels.Selector) (ret []*v1.OAuthAuthorizeToken, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.OAuthAuthorizeToken)) - }) - return ret, err -} - -// Get retrieves the OAuthAuthorizeToken from the index for a given name. -func (s *oAuthAuthorizeTokenLister) Get(name string) (*v1.OAuthAuthorizeToken, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("oauthauthorizetoken"), name) - } - return obj.(*v1.OAuthAuthorizeToken), nil -} diff --git a/vendor/github.com/openshift/client-go/oauth/listers/oauth/v1/oauthclient.go b/vendor/github.com/openshift/client-go/oauth/listers/oauth/v1/oauthclient.go deleted file mode 100644 index 51c1b62a9f373..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/listers/oauth/v1/oauthclient.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/oauth/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// OAuthClientLister helps list OAuthClients. -// All objects returned here must be treated as read-only. -type OAuthClientLister interface { - // List lists all OAuthClients in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.OAuthClient, err error) - // Get retrieves the OAuthClient from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.OAuthClient, error) - OAuthClientListerExpansion -} - -// oAuthClientLister implements the OAuthClientLister interface. -type oAuthClientLister struct { - indexer cache.Indexer -} - -// NewOAuthClientLister returns a new OAuthClientLister. -func NewOAuthClientLister(indexer cache.Indexer) OAuthClientLister { - return &oAuthClientLister{indexer: indexer} -} - -// List lists all OAuthClients in the indexer. -func (s *oAuthClientLister) List(selector labels.Selector) (ret []*v1.OAuthClient, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.OAuthClient)) - }) - return ret, err -} - -// Get retrieves the OAuthClient from the index for a given name. -func (s *oAuthClientLister) Get(name string) (*v1.OAuthClient, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("oauthclient"), name) - } - return obj.(*v1.OAuthClient), nil -} diff --git a/vendor/github.com/openshift/client-go/oauth/listers/oauth/v1/oauthclientauthorization.go b/vendor/github.com/openshift/client-go/oauth/listers/oauth/v1/oauthclientauthorization.go deleted file mode 100644 index 2627a03e219e4..0000000000000 --- a/vendor/github.com/openshift/client-go/oauth/listers/oauth/v1/oauthclientauthorization.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/oauth/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// OAuthClientAuthorizationLister helps list OAuthClientAuthorizations. -// All objects returned here must be treated as read-only. -type OAuthClientAuthorizationLister interface { - // List lists all OAuthClientAuthorizations in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.OAuthClientAuthorization, err error) - // Get retrieves the OAuthClientAuthorization from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.OAuthClientAuthorization, error) - OAuthClientAuthorizationListerExpansion -} - -// oAuthClientAuthorizationLister implements the OAuthClientAuthorizationLister interface. -type oAuthClientAuthorizationLister struct { - indexer cache.Indexer -} - -// NewOAuthClientAuthorizationLister returns a new OAuthClientAuthorizationLister. -func NewOAuthClientAuthorizationLister(indexer cache.Indexer) OAuthClientAuthorizationLister { - return &oAuthClientAuthorizationLister{indexer: indexer} -} - -// List lists all OAuthClientAuthorizations in the indexer. -func (s *oAuthClientAuthorizationLister) List(selector labels.Selector) (ret []*v1.OAuthClientAuthorization, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.OAuthClientAuthorization)) - }) - return ret, err -} - -// Get retrieves the OAuthClientAuthorization from the index for a given name. -func (s *oAuthClientAuthorizationLister) Get(name string) (*v1.OAuthClientAuthorization, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("oauthclientauthorization"), name) - } - return obj.(*v1.OAuthClientAuthorization), nil -} diff --git a/vendor/github.com/openshift/client-go/quota/clientset/versioned/clientset.go b/vendor/github.com/openshift/client-go/quota/clientset/versioned/clientset.go deleted file mode 100644 index 8252c33c7a3ab..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/clientset/versioned/clientset.go +++ /dev/null @@ -1,81 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package versioned - -import ( - "fmt" - - quotav1 "github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1" - 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 - QuotaV1() quotav1.QuotaV1Interface -} - -// Clientset contains the clients for groups. Each group has exactly one -// version included in a Clientset. -type Clientset struct { - *discovery.DiscoveryClient - quotaV1 *quotav1.QuotaV1Client -} - -// QuotaV1 retrieves the QuotaV1Client -func (c *Clientset) QuotaV1() quotav1.QuotaV1Interface { - return c.quotaV1 -} - -// 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.quotaV1, err = quotav1.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.quotaV1 = quotav1.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.quotaV1 = quotav1.New(c) - - cs.DiscoveryClient = discovery.NewDiscoveryClient(c) - return &cs -} diff --git a/vendor/github.com/openshift/client-go/quota/clientset/versioned/doc.go b/vendor/github.com/openshift/client-go/quota/clientset/versioned/doc.go deleted file mode 100644 index 0e0c2a8900e2c..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/clientset/versioned/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated clientset. -package versioned diff --git a/vendor/github.com/openshift/client-go/quota/clientset/versioned/scheme/doc.go b/vendor/github.com/openshift/client-go/quota/clientset/versioned/scheme/doc.go deleted file mode 100644 index 14db57a58f8d2..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/clientset/versioned/scheme/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package contains the scheme of the automatically generated clientset. -package scheme diff --git a/vendor/github.com/openshift/client-go/quota/clientset/versioned/scheme/register.go b/vendor/github.com/openshift/client-go/quota/clientset/versioned/scheme/register.go deleted file mode 100644 index bebce254ad65b..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/clientset/versioned/scheme/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package scheme - -import ( - quotav1 "github.com/openshift/api/quota/v1" - 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{ - quotav1.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/vendor/github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1/appliedclusterresourcequota.go b/vendor/github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1/appliedclusterresourcequota.go deleted file mode 100644 index 6c260129061bc..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1/appliedclusterresourcequota.go +++ /dev/null @@ -1,70 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - quotav1 "github.com/openshift/api/quota/v1" - scheme "github.com/openshift/client-go/quota/clientset/versioned/scheme" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rest "k8s.io/client-go/rest" -) - -// AppliedClusterResourceQuotasGetter has a method to return a AppliedClusterResourceQuotaInterface. -// A group's client should implement this interface. -type AppliedClusterResourceQuotasGetter interface { - AppliedClusterResourceQuotas(namespace string) AppliedClusterResourceQuotaInterface -} - -// AppliedClusterResourceQuotaInterface has methods to work with AppliedClusterResourceQuota resources. -type AppliedClusterResourceQuotaInterface interface { - Get(ctx context.Context, name string, opts v1.GetOptions) (*quotav1.AppliedClusterResourceQuota, error) - List(ctx context.Context, opts v1.ListOptions) (*quotav1.AppliedClusterResourceQuotaList, error) - AppliedClusterResourceQuotaExpansion -} - -// appliedClusterResourceQuotas implements AppliedClusterResourceQuotaInterface -type appliedClusterResourceQuotas struct { - client rest.Interface - ns string -} - -// newAppliedClusterResourceQuotas returns a AppliedClusterResourceQuotas -func newAppliedClusterResourceQuotas(c *QuotaV1Client, namespace string) *appliedClusterResourceQuotas { - return &appliedClusterResourceQuotas{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the appliedClusterResourceQuota, and returns the corresponding appliedClusterResourceQuota object, and an error if there is any. -func (c *appliedClusterResourceQuotas) Get(ctx context.Context, name string, options v1.GetOptions) (result *quotav1.AppliedClusterResourceQuota, err error) { - result = "av1.AppliedClusterResourceQuota{} - err = c.client.Get(). - Namespace(c.ns). - Resource("appliedclusterresourcequotas"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of AppliedClusterResourceQuotas that match those selectors. -func (c *appliedClusterResourceQuotas) List(ctx context.Context, opts v1.ListOptions) (result *quotav1.AppliedClusterResourceQuotaList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = "av1.AppliedClusterResourceQuotaList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("appliedclusterresourcequotas"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1/clusterresourcequota.go b/vendor/github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1/clusterresourcequota.go deleted file mode 100644 index 89215a5d0ac5a..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1/clusterresourcequota.go +++ /dev/null @@ -1,168 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/quota/v1" - scheme "github.com/openshift/client-go/quota/clientset/versioned/scheme" - metav1 "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" -) - -// ClusterResourceQuotasGetter has a method to return a ClusterResourceQuotaInterface. -// A group's client should implement this interface. -type ClusterResourceQuotasGetter interface { - ClusterResourceQuotas() ClusterResourceQuotaInterface -} - -// ClusterResourceQuotaInterface has methods to work with ClusterResourceQuota resources. -type ClusterResourceQuotaInterface interface { - Create(ctx context.Context, clusterResourceQuota *v1.ClusterResourceQuota, opts metav1.CreateOptions) (*v1.ClusterResourceQuota, error) - Update(ctx context.Context, clusterResourceQuota *v1.ClusterResourceQuota, opts metav1.UpdateOptions) (*v1.ClusterResourceQuota, error) - UpdateStatus(ctx context.Context, clusterResourceQuota *v1.ClusterResourceQuota, opts metav1.UpdateOptions) (*v1.ClusterResourceQuota, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.ClusterResourceQuota, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.ClusterResourceQuotaList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterResourceQuota, err error) - ClusterResourceQuotaExpansion -} - -// clusterResourceQuotas implements ClusterResourceQuotaInterface -type clusterResourceQuotas struct { - client rest.Interface -} - -// newClusterResourceQuotas returns a ClusterResourceQuotas -func newClusterResourceQuotas(c *QuotaV1Client) *clusterResourceQuotas { - return &clusterResourceQuotas{ - client: c.RESTClient(), - } -} - -// Get takes name of the clusterResourceQuota, and returns the corresponding clusterResourceQuota object, and an error if there is any. -func (c *clusterResourceQuotas) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.ClusterResourceQuota, err error) { - result = &v1.ClusterResourceQuota{} - err = c.client.Get(). - Resource("clusterresourcequotas"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of ClusterResourceQuotas that match those selectors. -func (c *clusterResourceQuotas) List(ctx context.Context, opts metav1.ListOptions) (result *v1.ClusterResourceQuotaList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.ClusterResourceQuotaList{} - err = c.client.Get(). - Resource("clusterresourcequotas"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested clusterResourceQuotas. -func (c *clusterResourceQuotas) Watch(ctx context.Context, opts metav1.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(). - Resource("clusterresourcequotas"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a clusterResourceQuota and creates it. Returns the server's representation of the clusterResourceQuota, and an error, if there is any. -func (c *clusterResourceQuotas) Create(ctx context.Context, clusterResourceQuota *v1.ClusterResourceQuota, opts metav1.CreateOptions) (result *v1.ClusterResourceQuota, err error) { - result = &v1.ClusterResourceQuota{} - err = c.client.Post(). - Resource("clusterresourcequotas"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterResourceQuota). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a clusterResourceQuota and updates it. Returns the server's representation of the clusterResourceQuota, and an error, if there is any. -func (c *clusterResourceQuotas) Update(ctx context.Context, clusterResourceQuota *v1.ClusterResourceQuota, opts metav1.UpdateOptions) (result *v1.ClusterResourceQuota, err error) { - result = &v1.ClusterResourceQuota{} - err = c.client.Put(). - Resource("clusterresourcequotas"). - Name(clusterResourceQuota.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterResourceQuota). - Do(ctx). - 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 *clusterResourceQuotas) UpdateStatus(ctx context.Context, clusterResourceQuota *v1.ClusterResourceQuota, opts metav1.UpdateOptions) (result *v1.ClusterResourceQuota, err error) { - result = &v1.ClusterResourceQuota{} - err = c.client.Put(). - Resource("clusterresourcequotas"). - Name(clusterResourceQuota.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(clusterResourceQuota). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the clusterResourceQuota and deletes it. Returns an error if one occurs. -func (c *clusterResourceQuotas) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("clusterresourcequotas"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *clusterResourceQuotas) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("clusterresourcequotas"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched clusterResourceQuota. -func (c *clusterResourceQuotas) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.ClusterResourceQuota, err error) { - result = &v1.ClusterResourceQuota{} - err = c.client.Patch(pt). - Resource("clusterresourcequotas"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1/doc.go b/vendor/github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1/doc.go deleted file mode 100644 index 225e6b2be34f2..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated typed clients. -package v1 diff --git a/vendor/github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1/generated_expansion.go b/vendor/github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1/generated_expansion.go deleted file mode 100644 index c79f16776b035..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1/generated_expansion.go +++ /dev/null @@ -1,7 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -type AppliedClusterResourceQuotaExpansion interface{} - -type ClusterResourceQuotaExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1/quota_client.go b/vendor/github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1/quota_client.go deleted file mode 100644 index 325bdc0046093..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/clientset/versioned/typed/quota/v1/quota_client.go +++ /dev/null @@ -1,78 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/quota/v1" - "github.com/openshift/client-go/quota/clientset/versioned/scheme" - rest "k8s.io/client-go/rest" -) - -type QuotaV1Interface interface { - RESTClient() rest.Interface - AppliedClusterResourceQuotasGetter - ClusterResourceQuotasGetter -} - -// QuotaV1Client is used to interact with features provided by the quota.openshift.io group. -type QuotaV1Client struct { - restClient rest.Interface -} - -func (c *QuotaV1Client) AppliedClusterResourceQuotas(namespace string) AppliedClusterResourceQuotaInterface { - return newAppliedClusterResourceQuotas(c, namespace) -} - -func (c *QuotaV1Client) ClusterResourceQuotas() ClusterResourceQuotaInterface { - return newClusterResourceQuotas(c) -} - -// NewForConfig creates a new QuotaV1Client for the given config. -func NewForConfig(c *rest.Config) (*QuotaV1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientFor(&config) - if err != nil { - return nil, err - } - return &QuotaV1Client{client}, nil -} - -// NewForConfigOrDie creates a new QuotaV1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *QuotaV1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new QuotaV1Client for the given RESTClient. -func New(c rest.Interface) *QuotaV1Client { - return &QuotaV1Client{c} -} - -func setConfigDefaults(config *rest.Config) error { - gv := v1.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 *QuotaV1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/vendor/github.com/openshift/client-go/quota/informers/externalversions/factory.go b/vendor/github.com/openshift/client-go/quota/informers/externalversions/factory.go deleted file mode 100644 index 0481c6da7b20d..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/informers/externalversions/factory.go +++ /dev/null @@ -1,164 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - reflect "reflect" - sync "sync" - time "time" - - versioned "github.com/openshift/client-go/quota/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/quota/informers/externalversions/internalinterfaces" - quota "github.com/openshift/client-go/quota/informers/externalversions/quota" - 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 versioned.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 versioned.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 versioned.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 versioned.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 - - Quota() quota.Interface -} - -func (f *sharedInformerFactory) Quota() quota.Interface { - return quota.New(f, f.namespace, f.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/quota/informers/externalversions/generic.go b/vendor/github.com/openshift/client-go/quota/informers/externalversions/generic.go deleted file mode 100644 index d739a07c9c5a0..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/informers/externalversions/generic.go +++ /dev/null @@ -1,46 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - "fmt" - - v1 "github.com/openshift/api/quota/v1" - 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=quota.openshift.io, Version=v1 - case v1.SchemeGroupVersion.WithResource("clusterresourcequotas"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Quota().V1().ClusterResourceQuotas().Informer()}, nil - - } - - return nil, fmt.Errorf("no informer found for %v", resource) -} diff --git a/vendor/github.com/openshift/client-go/quota/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/github.com/openshift/client-go/quota/informers/externalversions/internalinterfaces/factory_interfaces.go deleted file mode 100644 index 3e3f07fc30976..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/informers/externalversions/internalinterfaces/factory_interfaces.go +++ /dev/null @@ -1,24 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package internalinterfaces - -import ( - time "time" - - versioned "github.com/openshift/client-go/quota/clientset/versioned" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - cache "k8s.io/client-go/tools/cache" -) - -// NewInformerFunc takes versioned.Interface and time.Duration to return a SharedIndexInformer. -type NewInformerFunc func(versioned.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/vendor/github.com/openshift/client-go/quota/informers/externalversions/quota/interface.go b/vendor/github.com/openshift/client-go/quota/informers/externalversions/quota/interface.go deleted file mode 100644 index 5df3c875230ff..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/informers/externalversions/quota/interface.go +++ /dev/null @@ -1,30 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package quota - -import ( - internalinterfaces "github.com/openshift/client-go/quota/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/quota/informers/externalversions/quota/v1" -) - -// Interface provides access to each of this group's versions. -type Interface interface { - // V1 provides access to shared informers for resources in V1. - V1() v1.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} -} - -// V1 returns a new v1.Interface. -func (g *group) V1() v1.Interface { - return v1.New(g.factory, g.namespace, g.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/quota/informers/externalversions/quota/v1/clusterresourcequota.go b/vendor/github.com/openshift/client-go/quota/informers/externalversions/quota/v1/clusterresourcequota.go deleted file mode 100644 index cb8eb0e30829c..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/informers/externalversions/quota/v1/clusterresourcequota.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - quotav1 "github.com/openshift/api/quota/v1" - versioned "github.com/openshift/client-go/quota/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/quota/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/quota/listers/quota/v1" - metav1 "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" -) - -// ClusterResourceQuotaInformer provides access to a shared informer and lister for -// ClusterResourceQuotas. -type ClusterResourceQuotaInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.ClusterResourceQuotaLister -} - -type clusterResourceQuotaInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewClusterResourceQuotaInformer constructs a new informer for ClusterResourceQuota 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 NewClusterResourceQuotaInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredClusterResourceQuotaInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredClusterResourceQuotaInformer constructs a new informer for ClusterResourceQuota 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 NewFilteredClusterResourceQuotaInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.QuotaV1().ClusterResourceQuotas().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.QuotaV1().ClusterResourceQuotas().Watch(context.TODO(), options) - }, - }, - "av1.ClusterResourceQuota{}, - resyncPeriod, - indexers, - ) -} - -func (f *clusterResourceQuotaInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredClusterResourceQuotaInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *clusterResourceQuotaInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor("av1.ClusterResourceQuota{}, f.defaultInformer) -} - -func (f *clusterResourceQuotaInformer) Lister() v1.ClusterResourceQuotaLister { - return v1.NewClusterResourceQuotaLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/quota/informers/externalversions/quota/v1/interface.go b/vendor/github.com/openshift/client-go/quota/informers/externalversions/quota/v1/interface.go deleted file mode 100644 index 600eccd5109f4..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/informers/externalversions/quota/v1/interface.go +++ /dev/null @@ -1,29 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - internalinterfaces "github.com/openshift/client-go/quota/informers/externalversions/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // ClusterResourceQuotas returns a ClusterResourceQuotaInformer. - ClusterResourceQuotas() ClusterResourceQuotaInformer -} - -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} -} - -// ClusterResourceQuotas returns a ClusterResourceQuotaInformer. -func (v *version) ClusterResourceQuotas() ClusterResourceQuotaInformer { - return &clusterResourceQuotaInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} diff --git a/vendor/github.com/openshift/client-go/quota/listers/quota/v1/appliedclusterresourcequota.go b/vendor/github.com/openshift/client-go/quota/listers/quota/v1/appliedclusterresourcequota.go deleted file mode 100644 index 1f2e026b5637c..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/listers/quota/v1/appliedclusterresourcequota.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/quota/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// AppliedClusterResourceQuotaLister helps list AppliedClusterResourceQuotas. -// All objects returned here must be treated as read-only. -type AppliedClusterResourceQuotaLister interface { - // List lists all AppliedClusterResourceQuotas in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.AppliedClusterResourceQuota, err error) - // AppliedClusterResourceQuotas returns an object that can list and get AppliedClusterResourceQuotas. - AppliedClusterResourceQuotas(namespace string) AppliedClusterResourceQuotaNamespaceLister - AppliedClusterResourceQuotaListerExpansion -} - -// appliedClusterResourceQuotaLister implements the AppliedClusterResourceQuotaLister interface. -type appliedClusterResourceQuotaLister struct { - indexer cache.Indexer -} - -// NewAppliedClusterResourceQuotaLister returns a new AppliedClusterResourceQuotaLister. -func NewAppliedClusterResourceQuotaLister(indexer cache.Indexer) AppliedClusterResourceQuotaLister { - return &appliedClusterResourceQuotaLister{indexer: indexer} -} - -// List lists all AppliedClusterResourceQuotas in the indexer. -func (s *appliedClusterResourceQuotaLister) List(selector labels.Selector) (ret []*v1.AppliedClusterResourceQuota, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.AppliedClusterResourceQuota)) - }) - return ret, err -} - -// AppliedClusterResourceQuotas returns an object that can list and get AppliedClusterResourceQuotas. -func (s *appliedClusterResourceQuotaLister) AppliedClusterResourceQuotas(namespace string) AppliedClusterResourceQuotaNamespaceLister { - return appliedClusterResourceQuotaNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// AppliedClusterResourceQuotaNamespaceLister helps list and get AppliedClusterResourceQuotas. -// All objects returned here must be treated as read-only. -type AppliedClusterResourceQuotaNamespaceLister interface { - // List lists all AppliedClusterResourceQuotas in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.AppliedClusterResourceQuota, err error) - // Get retrieves the AppliedClusterResourceQuota from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.AppliedClusterResourceQuota, error) - AppliedClusterResourceQuotaNamespaceListerExpansion -} - -// appliedClusterResourceQuotaNamespaceLister implements the AppliedClusterResourceQuotaNamespaceLister -// interface. -type appliedClusterResourceQuotaNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all AppliedClusterResourceQuotas in the indexer for a given namespace. -func (s appliedClusterResourceQuotaNamespaceLister) List(selector labels.Selector) (ret []*v1.AppliedClusterResourceQuota, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1.AppliedClusterResourceQuota)) - }) - return ret, err -} - -// Get retrieves the AppliedClusterResourceQuota from the indexer for a given namespace and name. -func (s appliedClusterResourceQuotaNamespaceLister) Get(name string) (*v1.AppliedClusterResourceQuota, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("appliedclusterresourcequota"), name) - } - return obj.(*v1.AppliedClusterResourceQuota), nil -} diff --git a/vendor/github.com/openshift/client-go/quota/listers/quota/v1/clusterresourcequota.go b/vendor/github.com/openshift/client-go/quota/listers/quota/v1/clusterresourcequota.go deleted file mode 100644 index dffa1f0f71408..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/listers/quota/v1/clusterresourcequota.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/quota/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// ClusterResourceQuotaLister helps list ClusterResourceQuotas. -// All objects returned here must be treated as read-only. -type ClusterResourceQuotaLister interface { - // List lists all ClusterResourceQuotas in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.ClusterResourceQuota, err error) - // Get retrieves the ClusterResourceQuota from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.ClusterResourceQuota, error) - ClusterResourceQuotaListerExpansion -} - -// clusterResourceQuotaLister implements the ClusterResourceQuotaLister interface. -type clusterResourceQuotaLister struct { - indexer cache.Indexer -} - -// NewClusterResourceQuotaLister returns a new ClusterResourceQuotaLister. -func NewClusterResourceQuotaLister(indexer cache.Indexer) ClusterResourceQuotaLister { - return &clusterResourceQuotaLister{indexer: indexer} -} - -// List lists all ClusterResourceQuotas in the indexer. -func (s *clusterResourceQuotaLister) List(selector labels.Selector) (ret []*v1.ClusterResourceQuota, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.ClusterResourceQuota)) - }) - return ret, err -} - -// Get retrieves the ClusterResourceQuota from the index for a given name. -func (s *clusterResourceQuotaLister) Get(name string) (*v1.ClusterResourceQuota, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("clusterresourcequota"), name) - } - return obj.(*v1.ClusterResourceQuota), nil -} diff --git a/vendor/github.com/openshift/client-go/quota/listers/quota/v1/expansion_generated.go b/vendor/github.com/openshift/client-go/quota/listers/quota/v1/expansion_generated.go deleted file mode 100644 index c9ee1cd57d6b8..0000000000000 --- a/vendor/github.com/openshift/client-go/quota/listers/quota/v1/expansion_generated.go +++ /dev/null @@ -1,15 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -// AppliedClusterResourceQuotaListerExpansion allows custom methods to be added to -// AppliedClusterResourceQuotaLister. -type AppliedClusterResourceQuotaListerExpansion interface{} - -// AppliedClusterResourceQuotaNamespaceListerExpansion allows custom methods to be added to -// AppliedClusterResourceQuotaNamespaceLister. -type AppliedClusterResourceQuotaNamespaceListerExpansion interface{} - -// ClusterResourceQuotaListerExpansion allows custom methods to be added to -// ClusterResourceQuotaLister. -type ClusterResourceQuotaListerExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/route/clientset/versioned/clientset.go b/vendor/github.com/openshift/client-go/route/clientset/versioned/clientset.go deleted file mode 100644 index 6689bcac66b06..0000000000000 --- a/vendor/github.com/openshift/client-go/route/clientset/versioned/clientset.go +++ /dev/null @@ -1,81 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package versioned - -import ( - "fmt" - - routev1 "github.com/openshift/client-go/route/clientset/versioned/typed/route/v1" - 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 - RouteV1() routev1.RouteV1Interface -} - -// Clientset contains the clients for groups. Each group has exactly one -// version included in a Clientset. -type Clientset struct { - *discovery.DiscoveryClient - routeV1 *routev1.RouteV1Client -} - -// RouteV1 retrieves the RouteV1Client -func (c *Clientset) RouteV1() routev1.RouteV1Interface { - return c.routeV1 -} - -// 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.routeV1, err = routev1.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.routeV1 = routev1.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.routeV1 = routev1.New(c) - - cs.DiscoveryClient = discovery.NewDiscoveryClient(c) - return &cs -} diff --git a/vendor/github.com/openshift/client-go/route/clientset/versioned/doc.go b/vendor/github.com/openshift/client-go/route/clientset/versioned/doc.go deleted file mode 100644 index 0e0c2a8900e2c..0000000000000 --- a/vendor/github.com/openshift/client-go/route/clientset/versioned/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated clientset. -package versioned diff --git a/vendor/github.com/openshift/client-go/route/clientset/versioned/scheme/doc.go b/vendor/github.com/openshift/client-go/route/clientset/versioned/scheme/doc.go deleted file mode 100644 index 14db57a58f8d2..0000000000000 --- a/vendor/github.com/openshift/client-go/route/clientset/versioned/scheme/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package contains the scheme of the automatically generated clientset. -package scheme diff --git a/vendor/github.com/openshift/client-go/route/clientset/versioned/scheme/register.go b/vendor/github.com/openshift/client-go/route/clientset/versioned/scheme/register.go deleted file mode 100644 index 0604e5613d7f1..0000000000000 --- a/vendor/github.com/openshift/client-go/route/clientset/versioned/scheme/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package scheme - -import ( - routev1 "github.com/openshift/api/route/v1" - 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{ - routev1.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/vendor/github.com/openshift/client-go/route/clientset/versioned/typed/route/v1/doc.go b/vendor/github.com/openshift/client-go/route/clientset/versioned/typed/route/v1/doc.go deleted file mode 100644 index 225e6b2be34f2..0000000000000 --- a/vendor/github.com/openshift/client-go/route/clientset/versioned/typed/route/v1/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated typed clients. -package v1 diff --git a/vendor/github.com/openshift/client-go/route/clientset/versioned/typed/route/v1/generated_expansion.go b/vendor/github.com/openshift/client-go/route/clientset/versioned/typed/route/v1/generated_expansion.go deleted file mode 100644 index 4f2173b6fc52a..0000000000000 --- a/vendor/github.com/openshift/client-go/route/clientset/versioned/typed/route/v1/generated_expansion.go +++ /dev/null @@ -1,5 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -type RouteExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/route/clientset/versioned/typed/route/v1/route.go b/vendor/github.com/openshift/client-go/route/clientset/versioned/typed/route/v1/route.go deleted file mode 100644 index adbe7e565cb36..0000000000000 --- a/vendor/github.com/openshift/client-go/route/clientset/versioned/typed/route/v1/route.go +++ /dev/null @@ -1,179 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/route/v1" - scheme "github.com/openshift/client-go/route/clientset/versioned/scheme" - metav1 "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" -) - -// RoutesGetter has a method to return a RouteInterface. -// A group's client should implement this interface. -type RoutesGetter interface { - Routes(namespace string) RouteInterface -} - -// RouteInterface has methods to work with Route resources. -type RouteInterface interface { - Create(ctx context.Context, route *v1.Route, opts metav1.CreateOptions) (*v1.Route, error) - Update(ctx context.Context, route *v1.Route, opts metav1.UpdateOptions) (*v1.Route, error) - UpdateStatus(ctx context.Context, route *v1.Route, opts metav1.UpdateOptions) (*v1.Route, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Route, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.RouteList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Route, err error) - RouteExpansion -} - -// routes implements RouteInterface -type routes struct { - client rest.Interface - ns string -} - -// newRoutes returns a Routes -func newRoutes(c *RouteV1Client, namespace string) *routes { - return &routes{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the route, and returns the corresponding route object, and an error if there is any. -func (c *routes) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Route, err error) { - result = &v1.Route{} - err = c.client.Get(). - Namespace(c.ns). - Resource("routes"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Routes that match those selectors. -func (c *routes) List(ctx context.Context, opts metav1.ListOptions) (result *v1.RouteList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.RouteList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("routes"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested routes. -func (c *routes) Watch(ctx context.Context, opts metav1.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("routes"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a route and creates it. Returns the server's representation of the route, and an error, if there is any. -func (c *routes) Create(ctx context.Context, route *v1.Route, opts metav1.CreateOptions) (result *v1.Route, err error) { - result = &v1.Route{} - err = c.client.Post(). - Namespace(c.ns). - Resource("routes"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(route). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a route and updates it. Returns the server's representation of the route, and an error, if there is any. -func (c *routes) Update(ctx context.Context, route *v1.Route, opts metav1.UpdateOptions) (result *v1.Route, err error) { - result = &v1.Route{} - err = c.client.Put(). - Namespace(c.ns). - Resource("routes"). - Name(route.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(route). - Do(ctx). - 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 *routes) UpdateStatus(ctx context.Context, route *v1.Route, opts metav1.UpdateOptions) (result *v1.Route, err error) { - result = &v1.Route{} - err = c.client.Put(). - Namespace(c.ns). - Resource("routes"). - Name(route.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(route). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the route and deletes it. Returns an error if one occurs. -func (c *routes) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("routes"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *routes) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Namespace(c.ns). - Resource("routes"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched route. -func (c *routes) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Route, err error) { - result = &v1.Route{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("routes"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/route/clientset/versioned/typed/route/v1/route_client.go b/vendor/github.com/openshift/client-go/route/clientset/versioned/typed/route/v1/route_client.go deleted file mode 100644 index 351945deab76e..0000000000000 --- a/vendor/github.com/openshift/client-go/route/clientset/versioned/typed/route/v1/route_client.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/route/v1" - "github.com/openshift/client-go/route/clientset/versioned/scheme" - rest "k8s.io/client-go/rest" -) - -type RouteV1Interface interface { - RESTClient() rest.Interface - RoutesGetter -} - -// RouteV1Client is used to interact with features provided by the route.openshift.io group. -type RouteV1Client struct { - restClient rest.Interface -} - -func (c *RouteV1Client) Routes(namespace string) RouteInterface { - return newRoutes(c, namespace) -} - -// NewForConfig creates a new RouteV1Client for the given config. -func NewForConfig(c *rest.Config) (*RouteV1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientFor(&config) - if err != nil { - return nil, err - } - return &RouteV1Client{client}, nil -} - -// NewForConfigOrDie creates a new RouteV1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *RouteV1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new RouteV1Client for the given RESTClient. -func New(c rest.Interface) *RouteV1Client { - return &RouteV1Client{c} -} - -func setConfigDefaults(config *rest.Config) error { - gv := v1.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 *RouteV1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/vendor/github.com/openshift/client-go/route/informers/externalversions/factory.go b/vendor/github.com/openshift/client-go/route/informers/externalversions/factory.go deleted file mode 100644 index cb6b89987df0f..0000000000000 --- a/vendor/github.com/openshift/client-go/route/informers/externalversions/factory.go +++ /dev/null @@ -1,164 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - reflect "reflect" - sync "sync" - time "time" - - versioned "github.com/openshift/client-go/route/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/route/informers/externalversions/internalinterfaces" - route "github.com/openshift/client-go/route/informers/externalversions/route" - 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 versioned.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 versioned.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 versioned.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 versioned.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 - - Route() route.Interface -} - -func (f *sharedInformerFactory) Route() route.Interface { - return route.New(f, f.namespace, f.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/route/informers/externalversions/generic.go b/vendor/github.com/openshift/client-go/route/informers/externalversions/generic.go deleted file mode 100644 index e0067144fd591..0000000000000 --- a/vendor/github.com/openshift/client-go/route/informers/externalversions/generic.go +++ /dev/null @@ -1,46 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - "fmt" - - v1 "github.com/openshift/api/route/v1" - 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=route.openshift.io, Version=v1 - case v1.SchemeGroupVersion.WithResource("routes"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Route().V1().Routes().Informer()}, nil - - } - - return nil, fmt.Errorf("no informer found for %v", resource) -} diff --git a/vendor/github.com/openshift/client-go/route/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/github.com/openshift/client-go/route/informers/externalversions/internalinterfaces/factory_interfaces.go deleted file mode 100644 index 1f807bab67f84..0000000000000 --- a/vendor/github.com/openshift/client-go/route/informers/externalversions/internalinterfaces/factory_interfaces.go +++ /dev/null @@ -1,24 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package internalinterfaces - -import ( - time "time" - - versioned "github.com/openshift/client-go/route/clientset/versioned" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - cache "k8s.io/client-go/tools/cache" -) - -// NewInformerFunc takes versioned.Interface and time.Duration to return a SharedIndexInformer. -type NewInformerFunc func(versioned.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/vendor/github.com/openshift/client-go/route/informers/externalversions/route/interface.go b/vendor/github.com/openshift/client-go/route/informers/externalversions/route/interface.go deleted file mode 100644 index 69e1be333c3fe..0000000000000 --- a/vendor/github.com/openshift/client-go/route/informers/externalversions/route/interface.go +++ /dev/null @@ -1,30 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package route - -import ( - internalinterfaces "github.com/openshift/client-go/route/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/route/informers/externalversions/route/v1" -) - -// Interface provides access to each of this group's versions. -type Interface interface { - // V1 provides access to shared informers for resources in V1. - V1() v1.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} -} - -// V1 returns a new v1.Interface. -func (g *group) V1() v1.Interface { - return v1.New(g.factory, g.namespace, g.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/route/informers/externalversions/route/v1/interface.go b/vendor/github.com/openshift/client-go/route/informers/externalversions/route/v1/interface.go deleted file mode 100644 index 63ee15aecfdb5..0000000000000 --- a/vendor/github.com/openshift/client-go/route/informers/externalversions/route/v1/interface.go +++ /dev/null @@ -1,29 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - internalinterfaces "github.com/openshift/client-go/route/informers/externalversions/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // Routes returns a RouteInformer. - Routes() RouteInformer -} - -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} -} - -// Routes returns a RouteInformer. -func (v *version) Routes() RouteInformer { - return &routeInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} diff --git a/vendor/github.com/openshift/client-go/route/informers/externalversions/route/v1/route.go b/vendor/github.com/openshift/client-go/route/informers/externalversions/route/v1/route.go deleted file mode 100644 index adb8459582891..0000000000000 --- a/vendor/github.com/openshift/client-go/route/informers/externalversions/route/v1/route.go +++ /dev/null @@ -1,74 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - routev1 "github.com/openshift/api/route/v1" - versioned "github.com/openshift/client-go/route/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/route/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/route/listers/route/v1" - metav1 "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" -) - -// RouteInformer provides access to a shared informer and lister for -// Routes. -type RouteInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.RouteLister -} - -type routeInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewRouteInformer constructs a new informer for Route 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 NewRouteInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredRouteInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredRouteInformer constructs a new informer for Route 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 NewFilteredRouteInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.RouteV1().Routes(namespace).List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.RouteV1().Routes(namespace).Watch(context.TODO(), options) - }, - }, - &routev1.Route{}, - resyncPeriod, - indexers, - ) -} - -func (f *routeInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredRouteInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *routeInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&routev1.Route{}, f.defaultInformer) -} - -func (f *routeInformer) Lister() v1.RouteLister { - return v1.NewRouteLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/route/listers/route/v1/expansion_generated.go b/vendor/github.com/openshift/client-go/route/listers/route/v1/expansion_generated.go deleted file mode 100644 index 74feb63800a13..0000000000000 --- a/vendor/github.com/openshift/client-go/route/listers/route/v1/expansion_generated.go +++ /dev/null @@ -1,11 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -// RouteListerExpansion allows custom methods to be added to -// RouteLister. -type RouteListerExpansion interface{} - -// RouteNamespaceListerExpansion allows custom methods to be added to -// RouteNamespaceLister. -type RouteNamespaceListerExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/route/listers/route/v1/route.go b/vendor/github.com/openshift/client-go/route/listers/route/v1/route.go deleted file mode 100644 index ddf09a7f76426..0000000000000 --- a/vendor/github.com/openshift/client-go/route/listers/route/v1/route.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/route/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// RouteLister helps list Routes. -// All objects returned here must be treated as read-only. -type RouteLister interface { - // List lists all Routes in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.Route, err error) - // Routes returns an object that can list and get Routes. - Routes(namespace string) RouteNamespaceLister - RouteListerExpansion -} - -// routeLister implements the RouteLister interface. -type routeLister struct { - indexer cache.Indexer -} - -// NewRouteLister returns a new RouteLister. -func NewRouteLister(indexer cache.Indexer) RouteLister { - return &routeLister{indexer: indexer} -} - -// List lists all Routes in the indexer. -func (s *routeLister) List(selector labels.Selector) (ret []*v1.Route, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.Route)) - }) - return ret, err -} - -// Routes returns an object that can list and get Routes. -func (s *routeLister) Routes(namespace string) RouteNamespaceLister { - return routeNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// RouteNamespaceLister helps list and get Routes. -// All objects returned here must be treated as read-only. -type RouteNamespaceLister interface { - // List lists all Routes in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.Route, err error) - // Get retrieves the Route from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.Route, error) - RouteNamespaceListerExpansion -} - -// routeNamespaceLister implements the RouteNamespaceLister -// interface. -type routeNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all Routes in the indexer for a given namespace. -func (s routeNamespaceLister) List(selector labels.Selector) (ret []*v1.Route, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1.Route)) - }) - return ret, err -} - -// Get retrieves the Route from the indexer for a given namespace and name. -func (s routeNamespaceLister) Get(name string) (*v1.Route, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("route"), name) - } - return obj.(*v1.Route), nil -} diff --git a/vendor/github.com/openshift/client-go/security/clientset/versioned/clientset.go b/vendor/github.com/openshift/client-go/security/clientset/versioned/clientset.go deleted file mode 100644 index 38c96c951cfec..0000000000000 --- a/vendor/github.com/openshift/client-go/security/clientset/versioned/clientset.go +++ /dev/null @@ -1,81 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package versioned - -import ( - "fmt" - - securityv1 "github.com/openshift/client-go/security/clientset/versioned/typed/security/v1" - 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 - SecurityV1() securityv1.SecurityV1Interface -} - -// Clientset contains the clients for groups. Each group has exactly one -// version included in a Clientset. -type Clientset struct { - *discovery.DiscoveryClient - securityV1 *securityv1.SecurityV1Client -} - -// SecurityV1 retrieves the SecurityV1Client -func (c *Clientset) SecurityV1() securityv1.SecurityV1Interface { - return c.securityV1 -} - -// 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.securityV1, err = securityv1.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.securityV1 = securityv1.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.securityV1 = securityv1.New(c) - - cs.DiscoveryClient = discovery.NewDiscoveryClient(c) - return &cs -} diff --git a/vendor/github.com/openshift/client-go/security/clientset/versioned/doc.go b/vendor/github.com/openshift/client-go/security/clientset/versioned/doc.go deleted file mode 100644 index 0e0c2a8900e2c..0000000000000 --- a/vendor/github.com/openshift/client-go/security/clientset/versioned/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated clientset. -package versioned diff --git a/vendor/github.com/openshift/client-go/security/clientset/versioned/scheme/doc.go b/vendor/github.com/openshift/client-go/security/clientset/versioned/scheme/doc.go deleted file mode 100644 index 14db57a58f8d2..0000000000000 --- a/vendor/github.com/openshift/client-go/security/clientset/versioned/scheme/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package contains the scheme of the automatically generated clientset. -package scheme diff --git a/vendor/github.com/openshift/client-go/security/clientset/versioned/scheme/register.go b/vendor/github.com/openshift/client-go/security/clientset/versioned/scheme/register.go deleted file mode 100644 index 871d4424f3e04..0000000000000 --- a/vendor/github.com/openshift/client-go/security/clientset/versioned/scheme/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package scheme - -import ( - securityv1 "github.com/openshift/api/security/v1" - 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{ - securityv1.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/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/doc.go b/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/doc.go deleted file mode 100644 index 225e6b2be34f2..0000000000000 --- a/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated typed clients. -package v1 diff --git a/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/generated_expansion.go b/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/generated_expansion.go deleted file mode 100644 index db29417c88c73..0000000000000 --- a/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/generated_expansion.go +++ /dev/null @@ -1,13 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -type PodSecurityPolicyReviewExpansion interface{} - -type PodSecurityPolicySelfSubjectReviewExpansion interface{} - -type PodSecurityPolicySubjectReviewExpansion interface{} - -type RangeAllocationExpansion interface{} - -type SecurityContextConstraintsExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/podsecuritypolicyreview.go b/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/podsecuritypolicyreview.go deleted file mode 100644 index 4d4937b4c3439..0000000000000 --- a/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/podsecuritypolicyreview.go +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - - v1 "github.com/openshift/api/security/v1" - scheme "github.com/openshift/client-go/security/clientset/versioned/scheme" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rest "k8s.io/client-go/rest" -) - -// PodSecurityPolicyReviewsGetter has a method to return a PodSecurityPolicyReviewInterface. -// A group's client should implement this interface. -type PodSecurityPolicyReviewsGetter interface { - PodSecurityPolicyReviews(namespace string) PodSecurityPolicyReviewInterface -} - -// PodSecurityPolicyReviewInterface has methods to work with PodSecurityPolicyReview resources. -type PodSecurityPolicyReviewInterface interface { - Create(ctx context.Context, podSecurityPolicyReview *v1.PodSecurityPolicyReview, opts metav1.CreateOptions) (*v1.PodSecurityPolicyReview, error) - PodSecurityPolicyReviewExpansion -} - -// podSecurityPolicyReviews implements PodSecurityPolicyReviewInterface -type podSecurityPolicyReviews struct { - client rest.Interface - ns string -} - -// newPodSecurityPolicyReviews returns a PodSecurityPolicyReviews -func newPodSecurityPolicyReviews(c *SecurityV1Client, namespace string) *podSecurityPolicyReviews { - return &podSecurityPolicyReviews{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Create takes the representation of a podSecurityPolicyReview and creates it. Returns the server's representation of the podSecurityPolicyReview, and an error, if there is any. -func (c *podSecurityPolicyReviews) Create(ctx context.Context, podSecurityPolicyReview *v1.PodSecurityPolicyReview, opts metav1.CreateOptions) (result *v1.PodSecurityPolicyReview, err error) { - result = &v1.PodSecurityPolicyReview{} - err = c.client.Post(). - Namespace(c.ns). - Resource("podsecuritypolicyreviews"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(podSecurityPolicyReview). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/podsecuritypolicyselfsubjectreview.go b/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/podsecuritypolicyselfsubjectreview.go deleted file mode 100644 index 1190e3796c85b..0000000000000 --- a/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/podsecuritypolicyselfsubjectreview.go +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - - v1 "github.com/openshift/api/security/v1" - scheme "github.com/openshift/client-go/security/clientset/versioned/scheme" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rest "k8s.io/client-go/rest" -) - -// PodSecurityPolicySelfSubjectReviewsGetter has a method to return a PodSecurityPolicySelfSubjectReviewInterface. -// A group's client should implement this interface. -type PodSecurityPolicySelfSubjectReviewsGetter interface { - PodSecurityPolicySelfSubjectReviews(namespace string) PodSecurityPolicySelfSubjectReviewInterface -} - -// PodSecurityPolicySelfSubjectReviewInterface has methods to work with PodSecurityPolicySelfSubjectReview resources. -type PodSecurityPolicySelfSubjectReviewInterface interface { - Create(ctx context.Context, podSecurityPolicySelfSubjectReview *v1.PodSecurityPolicySelfSubjectReview, opts metav1.CreateOptions) (*v1.PodSecurityPolicySelfSubjectReview, error) - PodSecurityPolicySelfSubjectReviewExpansion -} - -// podSecurityPolicySelfSubjectReviews implements PodSecurityPolicySelfSubjectReviewInterface -type podSecurityPolicySelfSubjectReviews struct { - client rest.Interface - ns string -} - -// newPodSecurityPolicySelfSubjectReviews returns a PodSecurityPolicySelfSubjectReviews -func newPodSecurityPolicySelfSubjectReviews(c *SecurityV1Client, namespace string) *podSecurityPolicySelfSubjectReviews { - return &podSecurityPolicySelfSubjectReviews{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Create takes the representation of a podSecurityPolicySelfSubjectReview and creates it. Returns the server's representation of the podSecurityPolicySelfSubjectReview, and an error, if there is any. -func (c *podSecurityPolicySelfSubjectReviews) Create(ctx context.Context, podSecurityPolicySelfSubjectReview *v1.PodSecurityPolicySelfSubjectReview, opts metav1.CreateOptions) (result *v1.PodSecurityPolicySelfSubjectReview, err error) { - result = &v1.PodSecurityPolicySelfSubjectReview{} - err = c.client.Post(). - Namespace(c.ns). - Resource("podsecuritypolicyselfsubjectreviews"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(podSecurityPolicySelfSubjectReview). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/podsecuritypolicysubjectreview.go b/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/podsecuritypolicysubjectreview.go deleted file mode 100644 index 5678072a3c064..0000000000000 --- a/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/podsecuritypolicysubjectreview.go +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - - v1 "github.com/openshift/api/security/v1" - scheme "github.com/openshift/client-go/security/clientset/versioned/scheme" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rest "k8s.io/client-go/rest" -) - -// PodSecurityPolicySubjectReviewsGetter has a method to return a PodSecurityPolicySubjectReviewInterface. -// A group's client should implement this interface. -type PodSecurityPolicySubjectReviewsGetter interface { - PodSecurityPolicySubjectReviews(namespace string) PodSecurityPolicySubjectReviewInterface -} - -// PodSecurityPolicySubjectReviewInterface has methods to work with PodSecurityPolicySubjectReview resources. -type PodSecurityPolicySubjectReviewInterface interface { - Create(ctx context.Context, podSecurityPolicySubjectReview *v1.PodSecurityPolicySubjectReview, opts metav1.CreateOptions) (*v1.PodSecurityPolicySubjectReview, error) - PodSecurityPolicySubjectReviewExpansion -} - -// podSecurityPolicySubjectReviews implements PodSecurityPolicySubjectReviewInterface -type podSecurityPolicySubjectReviews struct { - client rest.Interface - ns string -} - -// newPodSecurityPolicySubjectReviews returns a PodSecurityPolicySubjectReviews -func newPodSecurityPolicySubjectReviews(c *SecurityV1Client, namespace string) *podSecurityPolicySubjectReviews { - return &podSecurityPolicySubjectReviews{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Create takes the representation of a podSecurityPolicySubjectReview and creates it. Returns the server's representation of the podSecurityPolicySubjectReview, and an error, if there is any. -func (c *podSecurityPolicySubjectReviews) Create(ctx context.Context, podSecurityPolicySubjectReview *v1.PodSecurityPolicySubjectReview, opts metav1.CreateOptions) (result *v1.PodSecurityPolicySubjectReview, err error) { - result = &v1.PodSecurityPolicySubjectReview{} - err = c.client.Post(). - Namespace(c.ns). - Resource("podsecuritypolicysubjectreviews"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(podSecurityPolicySubjectReview). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/rangeallocation.go b/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/rangeallocation.go deleted file mode 100644 index 003b48bc397f4..0000000000000 --- a/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/rangeallocation.go +++ /dev/null @@ -1,152 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/security/v1" - scheme "github.com/openshift/client-go/security/clientset/versioned/scheme" - metav1 "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" -) - -// RangeAllocationsGetter has a method to return a RangeAllocationInterface. -// A group's client should implement this interface. -type RangeAllocationsGetter interface { - RangeAllocations() RangeAllocationInterface -} - -// RangeAllocationInterface has methods to work with RangeAllocation resources. -type RangeAllocationInterface interface { - Create(ctx context.Context, rangeAllocation *v1.RangeAllocation, opts metav1.CreateOptions) (*v1.RangeAllocation, error) - Update(ctx context.Context, rangeAllocation *v1.RangeAllocation, opts metav1.UpdateOptions) (*v1.RangeAllocation, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.RangeAllocation, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.RangeAllocationList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.RangeAllocation, err error) - RangeAllocationExpansion -} - -// rangeAllocations implements RangeAllocationInterface -type rangeAllocations struct { - client rest.Interface -} - -// newRangeAllocations returns a RangeAllocations -func newRangeAllocations(c *SecurityV1Client) *rangeAllocations { - return &rangeAllocations{ - client: c.RESTClient(), - } -} - -// Get takes name of the rangeAllocation, and returns the corresponding rangeAllocation object, and an error if there is any. -func (c *rangeAllocations) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.RangeAllocation, err error) { - result = &v1.RangeAllocation{} - err = c.client.Get(). - Resource("rangeallocations"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of RangeAllocations that match those selectors. -func (c *rangeAllocations) List(ctx context.Context, opts metav1.ListOptions) (result *v1.RangeAllocationList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.RangeAllocationList{} - err = c.client.Get(). - Resource("rangeallocations"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested rangeAllocations. -func (c *rangeAllocations) Watch(ctx context.Context, opts metav1.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(). - Resource("rangeallocations"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a rangeAllocation and creates it. Returns the server's representation of the rangeAllocation, and an error, if there is any. -func (c *rangeAllocations) Create(ctx context.Context, rangeAllocation *v1.RangeAllocation, opts metav1.CreateOptions) (result *v1.RangeAllocation, err error) { - result = &v1.RangeAllocation{} - err = c.client.Post(). - Resource("rangeallocations"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(rangeAllocation). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a rangeAllocation and updates it. Returns the server's representation of the rangeAllocation, and an error, if there is any. -func (c *rangeAllocations) Update(ctx context.Context, rangeAllocation *v1.RangeAllocation, opts metav1.UpdateOptions) (result *v1.RangeAllocation, err error) { - result = &v1.RangeAllocation{} - err = c.client.Put(). - Resource("rangeallocations"). - Name(rangeAllocation.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(rangeAllocation). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the rangeAllocation and deletes it. Returns an error if one occurs. -func (c *rangeAllocations) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("rangeallocations"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *rangeAllocations) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("rangeallocations"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched rangeAllocation. -func (c *rangeAllocations) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.RangeAllocation, err error) { - result = &v1.RangeAllocation{} - err = c.client.Patch(pt). - Resource("rangeallocations"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/security_client.go b/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/security_client.go deleted file mode 100644 index 6ec1a5707aaec..0000000000000 --- a/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/security_client.go +++ /dev/null @@ -1,93 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/security/v1" - "github.com/openshift/client-go/security/clientset/versioned/scheme" - rest "k8s.io/client-go/rest" -) - -type SecurityV1Interface interface { - RESTClient() rest.Interface - PodSecurityPolicyReviewsGetter - PodSecurityPolicySelfSubjectReviewsGetter - PodSecurityPolicySubjectReviewsGetter - RangeAllocationsGetter - SecurityContextConstraintsGetter -} - -// SecurityV1Client is used to interact with features provided by the security.openshift.io group. -type SecurityV1Client struct { - restClient rest.Interface -} - -func (c *SecurityV1Client) PodSecurityPolicyReviews(namespace string) PodSecurityPolicyReviewInterface { - return newPodSecurityPolicyReviews(c, namespace) -} - -func (c *SecurityV1Client) PodSecurityPolicySelfSubjectReviews(namespace string) PodSecurityPolicySelfSubjectReviewInterface { - return newPodSecurityPolicySelfSubjectReviews(c, namespace) -} - -func (c *SecurityV1Client) PodSecurityPolicySubjectReviews(namespace string) PodSecurityPolicySubjectReviewInterface { - return newPodSecurityPolicySubjectReviews(c, namespace) -} - -func (c *SecurityV1Client) RangeAllocations() RangeAllocationInterface { - return newRangeAllocations(c) -} - -func (c *SecurityV1Client) SecurityContextConstraints() SecurityContextConstraintsInterface { - return newSecurityContextConstraints(c) -} - -// NewForConfig creates a new SecurityV1Client for the given config. -func NewForConfig(c *rest.Config) (*SecurityV1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientFor(&config) - if err != nil { - return nil, err - } - return &SecurityV1Client{client}, nil -} - -// NewForConfigOrDie creates a new SecurityV1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *SecurityV1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new SecurityV1Client for the given RESTClient. -func New(c rest.Interface) *SecurityV1Client { - return &SecurityV1Client{c} -} - -func setConfigDefaults(config *rest.Config) error { - gv := v1.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 *SecurityV1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/securitycontextconstraints.go b/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/securitycontextconstraints.go deleted file mode 100644 index 4522c1c91114c..0000000000000 --- a/vendor/github.com/openshift/client-go/security/clientset/versioned/typed/security/v1/securitycontextconstraints.go +++ /dev/null @@ -1,152 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/security/v1" - scheme "github.com/openshift/client-go/security/clientset/versioned/scheme" - metav1 "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" -) - -// SecurityContextConstraintsGetter has a method to return a SecurityContextConstraintsInterface. -// A group's client should implement this interface. -type SecurityContextConstraintsGetter interface { - SecurityContextConstraints() SecurityContextConstraintsInterface -} - -// SecurityContextConstraintsInterface has methods to work with SecurityContextConstraints resources. -type SecurityContextConstraintsInterface interface { - Create(ctx context.Context, securityContextConstraints *v1.SecurityContextConstraints, opts metav1.CreateOptions) (*v1.SecurityContextConstraints, error) - Update(ctx context.Context, securityContextConstraints *v1.SecurityContextConstraints, opts metav1.UpdateOptions) (*v1.SecurityContextConstraints, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.SecurityContextConstraints, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.SecurityContextConstraintsList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.SecurityContextConstraints, err error) - SecurityContextConstraintsExpansion -} - -// securityContextConstraints implements SecurityContextConstraintsInterface -type securityContextConstraints struct { - client rest.Interface -} - -// newSecurityContextConstraints returns a SecurityContextConstraints -func newSecurityContextConstraints(c *SecurityV1Client) *securityContextConstraints { - return &securityContextConstraints{ - client: c.RESTClient(), - } -} - -// Get takes name of the securityContextConstraints, and returns the corresponding securityContextConstraints object, and an error if there is any. -func (c *securityContextConstraints) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.SecurityContextConstraints, err error) { - result = &v1.SecurityContextConstraints{} - err = c.client.Get(). - Resource("securitycontextconstraints"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of SecurityContextConstraints that match those selectors. -func (c *securityContextConstraints) List(ctx context.Context, opts metav1.ListOptions) (result *v1.SecurityContextConstraintsList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.SecurityContextConstraintsList{} - err = c.client.Get(). - Resource("securitycontextconstraints"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested securityContextConstraints. -func (c *securityContextConstraints) Watch(ctx context.Context, opts metav1.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(). - Resource("securitycontextconstraints"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a securityContextConstraints and creates it. Returns the server's representation of the securityContextConstraints, and an error, if there is any. -func (c *securityContextConstraints) Create(ctx context.Context, securityContextConstraints *v1.SecurityContextConstraints, opts metav1.CreateOptions) (result *v1.SecurityContextConstraints, err error) { - result = &v1.SecurityContextConstraints{} - err = c.client.Post(). - Resource("securitycontextconstraints"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(securityContextConstraints). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a securityContextConstraints and updates it. Returns the server's representation of the securityContextConstraints, and an error, if there is any. -func (c *securityContextConstraints) Update(ctx context.Context, securityContextConstraints *v1.SecurityContextConstraints, opts metav1.UpdateOptions) (result *v1.SecurityContextConstraints, err error) { - result = &v1.SecurityContextConstraints{} - err = c.client.Put(). - Resource("securitycontextconstraints"). - Name(securityContextConstraints.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(securityContextConstraints). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the securityContextConstraints and deletes it. Returns an error if one occurs. -func (c *securityContextConstraints) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("securitycontextconstraints"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *securityContextConstraints) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("securitycontextconstraints"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched securityContextConstraints. -func (c *securityContextConstraints) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.SecurityContextConstraints, err error) { - result = &v1.SecurityContextConstraints{} - err = c.client.Patch(pt). - Resource("securitycontextconstraints"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/security/informers/externalversions/factory.go b/vendor/github.com/openshift/client-go/security/informers/externalversions/factory.go deleted file mode 100644 index f9d3cab507208..0000000000000 --- a/vendor/github.com/openshift/client-go/security/informers/externalversions/factory.go +++ /dev/null @@ -1,164 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - reflect "reflect" - sync "sync" - time "time" - - versioned "github.com/openshift/client-go/security/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/security/informers/externalversions/internalinterfaces" - security "github.com/openshift/client-go/security/informers/externalversions/security" - 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 versioned.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 versioned.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 versioned.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 versioned.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 - - Security() security.Interface -} - -func (f *sharedInformerFactory) Security() security.Interface { - return security.New(f, f.namespace, f.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/security/informers/externalversions/generic.go b/vendor/github.com/openshift/client-go/security/informers/externalversions/generic.go deleted file mode 100644 index 6a0d9f170f3f2..0000000000000 --- a/vendor/github.com/openshift/client-go/security/informers/externalversions/generic.go +++ /dev/null @@ -1,48 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - "fmt" - - v1 "github.com/openshift/api/security/v1" - 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=security.openshift.io, Version=v1 - case v1.SchemeGroupVersion.WithResource("rangeallocations"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Security().V1().RangeAllocations().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("securitycontextconstraints"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Security().V1().SecurityContextConstraints().Informer()}, nil - - } - - return nil, fmt.Errorf("no informer found for %v", resource) -} diff --git a/vendor/github.com/openshift/client-go/security/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/github.com/openshift/client-go/security/informers/externalversions/internalinterfaces/factory_interfaces.go deleted file mode 100644 index 6977ed09aaf81..0000000000000 --- a/vendor/github.com/openshift/client-go/security/informers/externalversions/internalinterfaces/factory_interfaces.go +++ /dev/null @@ -1,24 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package internalinterfaces - -import ( - time "time" - - versioned "github.com/openshift/client-go/security/clientset/versioned" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - cache "k8s.io/client-go/tools/cache" -) - -// NewInformerFunc takes versioned.Interface and time.Duration to return a SharedIndexInformer. -type NewInformerFunc func(versioned.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/vendor/github.com/openshift/client-go/security/informers/externalversions/security/interface.go b/vendor/github.com/openshift/client-go/security/informers/externalversions/security/interface.go deleted file mode 100644 index f83962861f658..0000000000000 --- a/vendor/github.com/openshift/client-go/security/informers/externalversions/security/interface.go +++ /dev/null @@ -1,30 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package security - -import ( - internalinterfaces "github.com/openshift/client-go/security/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/security/informers/externalversions/security/v1" -) - -// Interface provides access to each of this group's versions. -type Interface interface { - // V1 provides access to shared informers for resources in V1. - V1() v1.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} -} - -// V1 returns a new v1.Interface. -func (g *group) V1() v1.Interface { - return v1.New(g.factory, g.namespace, g.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/security/informers/externalversions/security/v1/interface.go b/vendor/github.com/openshift/client-go/security/informers/externalversions/security/v1/interface.go deleted file mode 100644 index a5e60e5cab7d6..0000000000000 --- a/vendor/github.com/openshift/client-go/security/informers/externalversions/security/v1/interface.go +++ /dev/null @@ -1,36 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - internalinterfaces "github.com/openshift/client-go/security/informers/externalversions/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // RangeAllocations returns a RangeAllocationInformer. - RangeAllocations() RangeAllocationInformer - // SecurityContextConstraints returns a SecurityContextConstraintsInformer. - SecurityContextConstraints() SecurityContextConstraintsInformer -} - -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} -} - -// RangeAllocations returns a RangeAllocationInformer. -func (v *version) RangeAllocations() RangeAllocationInformer { - return &rangeAllocationInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} - -// SecurityContextConstraints returns a SecurityContextConstraintsInformer. -func (v *version) SecurityContextConstraints() SecurityContextConstraintsInformer { - return &securityContextConstraintsInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} diff --git a/vendor/github.com/openshift/client-go/security/informers/externalversions/security/v1/rangeallocation.go b/vendor/github.com/openshift/client-go/security/informers/externalversions/security/v1/rangeallocation.go deleted file mode 100644 index 98f26821a589e..0000000000000 --- a/vendor/github.com/openshift/client-go/security/informers/externalversions/security/v1/rangeallocation.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - securityv1 "github.com/openshift/api/security/v1" - versioned "github.com/openshift/client-go/security/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/security/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/security/listers/security/v1" - metav1 "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" -) - -// RangeAllocationInformer provides access to a shared informer and lister for -// RangeAllocations. -type RangeAllocationInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.RangeAllocationLister -} - -type rangeAllocationInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewRangeAllocationInformer constructs a new informer for RangeAllocation 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 NewRangeAllocationInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredRangeAllocationInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredRangeAllocationInformer constructs a new informer for RangeAllocation 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 NewFilteredRangeAllocationInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.SecurityV1().RangeAllocations().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.SecurityV1().RangeAllocations().Watch(context.TODO(), options) - }, - }, - &securityv1.RangeAllocation{}, - resyncPeriod, - indexers, - ) -} - -func (f *rangeAllocationInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredRangeAllocationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *rangeAllocationInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&securityv1.RangeAllocation{}, f.defaultInformer) -} - -func (f *rangeAllocationInformer) Lister() v1.RangeAllocationLister { - return v1.NewRangeAllocationLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/security/informers/externalversions/security/v1/securitycontextconstraints.go b/vendor/github.com/openshift/client-go/security/informers/externalversions/security/v1/securitycontextconstraints.go deleted file mode 100644 index 107888c45f4c6..0000000000000 --- a/vendor/github.com/openshift/client-go/security/informers/externalversions/security/v1/securitycontextconstraints.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - securityv1 "github.com/openshift/api/security/v1" - versioned "github.com/openshift/client-go/security/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/security/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/security/listers/security/v1" - metav1 "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" -) - -// SecurityContextConstraintsInformer provides access to a shared informer and lister for -// SecurityContextConstraints. -type SecurityContextConstraintsInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.SecurityContextConstraintsLister -} - -type securityContextConstraintsInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewSecurityContextConstraintsInformer constructs a new informer for SecurityContextConstraints 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 NewSecurityContextConstraintsInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredSecurityContextConstraintsInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredSecurityContextConstraintsInformer constructs a new informer for SecurityContextConstraints 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 NewFilteredSecurityContextConstraintsInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.SecurityV1().SecurityContextConstraints().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.SecurityV1().SecurityContextConstraints().Watch(context.TODO(), options) - }, - }, - &securityv1.SecurityContextConstraints{}, - resyncPeriod, - indexers, - ) -} - -func (f *securityContextConstraintsInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredSecurityContextConstraintsInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *securityContextConstraintsInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&securityv1.SecurityContextConstraints{}, f.defaultInformer) -} - -func (f *securityContextConstraintsInformer) Lister() v1.SecurityContextConstraintsLister { - return v1.NewSecurityContextConstraintsLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/security/listers/security/v1/expansion_generated.go b/vendor/github.com/openshift/client-go/security/listers/security/v1/expansion_generated.go deleted file mode 100644 index fa088f154096d..0000000000000 --- a/vendor/github.com/openshift/client-go/security/listers/security/v1/expansion_generated.go +++ /dev/null @@ -1,11 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -// RangeAllocationListerExpansion allows custom methods to be added to -// RangeAllocationLister. -type RangeAllocationListerExpansion interface{} - -// SecurityContextConstraintsListerExpansion allows custom methods to be added to -// SecurityContextConstraintsLister. -type SecurityContextConstraintsListerExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/security/listers/security/v1/rangeallocation.go b/vendor/github.com/openshift/client-go/security/listers/security/v1/rangeallocation.go deleted file mode 100644 index c945dbb5b2522..0000000000000 --- a/vendor/github.com/openshift/client-go/security/listers/security/v1/rangeallocation.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/security/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// RangeAllocationLister helps list RangeAllocations. -// All objects returned here must be treated as read-only. -type RangeAllocationLister interface { - // List lists all RangeAllocations in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.RangeAllocation, err error) - // Get retrieves the RangeAllocation from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.RangeAllocation, error) - RangeAllocationListerExpansion -} - -// rangeAllocationLister implements the RangeAllocationLister interface. -type rangeAllocationLister struct { - indexer cache.Indexer -} - -// NewRangeAllocationLister returns a new RangeAllocationLister. -func NewRangeAllocationLister(indexer cache.Indexer) RangeAllocationLister { - return &rangeAllocationLister{indexer: indexer} -} - -// List lists all RangeAllocations in the indexer. -func (s *rangeAllocationLister) List(selector labels.Selector) (ret []*v1.RangeAllocation, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.RangeAllocation)) - }) - return ret, err -} - -// Get retrieves the RangeAllocation from the index for a given name. -func (s *rangeAllocationLister) Get(name string) (*v1.RangeAllocation, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("rangeallocation"), name) - } - return obj.(*v1.RangeAllocation), nil -} diff --git a/vendor/github.com/openshift/client-go/security/listers/security/v1/securitycontextconstraints.go b/vendor/github.com/openshift/client-go/security/listers/security/v1/securitycontextconstraints.go deleted file mode 100644 index 6fe0bd1d598cc..0000000000000 --- a/vendor/github.com/openshift/client-go/security/listers/security/v1/securitycontextconstraints.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/security/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// SecurityContextConstraintsLister helps list SecurityContextConstraints. -// All objects returned here must be treated as read-only. -type SecurityContextConstraintsLister interface { - // List lists all SecurityContextConstraints in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.SecurityContextConstraints, err error) - // Get retrieves the SecurityContextConstraints from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.SecurityContextConstraints, error) - SecurityContextConstraintsListerExpansion -} - -// securityContextConstraintsLister implements the SecurityContextConstraintsLister interface. -type securityContextConstraintsLister struct { - indexer cache.Indexer -} - -// NewSecurityContextConstraintsLister returns a new SecurityContextConstraintsLister. -func NewSecurityContextConstraintsLister(indexer cache.Indexer) SecurityContextConstraintsLister { - return &securityContextConstraintsLister{indexer: indexer} -} - -// List lists all SecurityContextConstraints in the indexer. -func (s *securityContextConstraintsLister) List(selector labels.Selector) (ret []*v1.SecurityContextConstraints, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.SecurityContextConstraints)) - }) - return ret, err -} - -// Get retrieves the SecurityContextConstraints from the index for a given name. -func (s *securityContextConstraintsLister) Get(name string) (*v1.SecurityContextConstraints, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("securitycontextconstraints"), name) - } - return obj.(*v1.SecurityContextConstraints), nil -} diff --git a/vendor/github.com/openshift/client-go/template/clientset/versioned/clientset.go b/vendor/github.com/openshift/client-go/template/clientset/versioned/clientset.go deleted file mode 100644 index d74519703ca89..0000000000000 --- a/vendor/github.com/openshift/client-go/template/clientset/versioned/clientset.go +++ /dev/null @@ -1,81 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package versioned - -import ( - "fmt" - - templatev1 "github.com/openshift/client-go/template/clientset/versioned/typed/template/v1" - 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 - TemplateV1() templatev1.TemplateV1Interface -} - -// Clientset contains the clients for groups. Each group has exactly one -// version included in a Clientset. -type Clientset struct { - *discovery.DiscoveryClient - templateV1 *templatev1.TemplateV1Client -} - -// TemplateV1 retrieves the TemplateV1Client -func (c *Clientset) TemplateV1() templatev1.TemplateV1Interface { - return c.templateV1 -} - -// 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.templateV1, err = templatev1.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.templateV1 = templatev1.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.templateV1 = templatev1.New(c) - - cs.DiscoveryClient = discovery.NewDiscoveryClient(c) - return &cs -} diff --git a/vendor/github.com/openshift/client-go/template/clientset/versioned/doc.go b/vendor/github.com/openshift/client-go/template/clientset/versioned/doc.go deleted file mode 100644 index 0e0c2a8900e2c..0000000000000 --- a/vendor/github.com/openshift/client-go/template/clientset/versioned/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated clientset. -package versioned diff --git a/vendor/github.com/openshift/client-go/template/clientset/versioned/scheme/doc.go b/vendor/github.com/openshift/client-go/template/clientset/versioned/scheme/doc.go deleted file mode 100644 index 14db57a58f8d2..0000000000000 --- a/vendor/github.com/openshift/client-go/template/clientset/versioned/scheme/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package contains the scheme of the automatically generated clientset. -package scheme diff --git a/vendor/github.com/openshift/client-go/template/clientset/versioned/scheme/register.go b/vendor/github.com/openshift/client-go/template/clientset/versioned/scheme/register.go deleted file mode 100644 index c230242131102..0000000000000 --- a/vendor/github.com/openshift/client-go/template/clientset/versioned/scheme/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package scheme - -import ( - templatev1 "github.com/openshift/api/template/v1" - 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{ - templatev1.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/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/brokertemplateinstance.go b/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/brokertemplateinstance.go deleted file mode 100644 index 9f4bd6a27c5c6..0000000000000 --- a/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/brokertemplateinstance.go +++ /dev/null @@ -1,152 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/template/v1" - scheme "github.com/openshift/client-go/template/clientset/versioned/scheme" - metav1 "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" -) - -// BrokerTemplateInstancesGetter has a method to return a BrokerTemplateInstanceInterface. -// A group's client should implement this interface. -type BrokerTemplateInstancesGetter interface { - BrokerTemplateInstances() BrokerTemplateInstanceInterface -} - -// BrokerTemplateInstanceInterface has methods to work with BrokerTemplateInstance resources. -type BrokerTemplateInstanceInterface interface { - Create(ctx context.Context, brokerTemplateInstance *v1.BrokerTemplateInstance, opts metav1.CreateOptions) (*v1.BrokerTemplateInstance, error) - Update(ctx context.Context, brokerTemplateInstance *v1.BrokerTemplateInstance, opts metav1.UpdateOptions) (*v1.BrokerTemplateInstance, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.BrokerTemplateInstance, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.BrokerTemplateInstanceList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.BrokerTemplateInstance, err error) - BrokerTemplateInstanceExpansion -} - -// brokerTemplateInstances implements BrokerTemplateInstanceInterface -type brokerTemplateInstances struct { - client rest.Interface -} - -// newBrokerTemplateInstances returns a BrokerTemplateInstances -func newBrokerTemplateInstances(c *TemplateV1Client) *brokerTemplateInstances { - return &brokerTemplateInstances{ - client: c.RESTClient(), - } -} - -// Get takes name of the brokerTemplateInstance, and returns the corresponding brokerTemplateInstance object, and an error if there is any. -func (c *brokerTemplateInstances) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.BrokerTemplateInstance, err error) { - result = &v1.BrokerTemplateInstance{} - err = c.client.Get(). - Resource("brokertemplateinstances"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of BrokerTemplateInstances that match those selectors. -func (c *brokerTemplateInstances) List(ctx context.Context, opts metav1.ListOptions) (result *v1.BrokerTemplateInstanceList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.BrokerTemplateInstanceList{} - err = c.client.Get(). - Resource("brokertemplateinstances"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested brokerTemplateInstances. -func (c *brokerTemplateInstances) Watch(ctx context.Context, opts metav1.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(). - Resource("brokertemplateinstances"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a brokerTemplateInstance and creates it. Returns the server's representation of the brokerTemplateInstance, and an error, if there is any. -func (c *brokerTemplateInstances) Create(ctx context.Context, brokerTemplateInstance *v1.BrokerTemplateInstance, opts metav1.CreateOptions) (result *v1.BrokerTemplateInstance, err error) { - result = &v1.BrokerTemplateInstance{} - err = c.client.Post(). - Resource("brokertemplateinstances"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(brokerTemplateInstance). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a brokerTemplateInstance and updates it. Returns the server's representation of the brokerTemplateInstance, and an error, if there is any. -func (c *brokerTemplateInstances) Update(ctx context.Context, brokerTemplateInstance *v1.BrokerTemplateInstance, opts metav1.UpdateOptions) (result *v1.BrokerTemplateInstance, err error) { - result = &v1.BrokerTemplateInstance{} - err = c.client.Put(). - Resource("brokertemplateinstances"). - Name(brokerTemplateInstance.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(brokerTemplateInstance). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the brokerTemplateInstance and deletes it. Returns an error if one occurs. -func (c *brokerTemplateInstances) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("brokertemplateinstances"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *brokerTemplateInstances) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("brokertemplateinstances"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched brokerTemplateInstance. -func (c *brokerTemplateInstances) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.BrokerTemplateInstance, err error) { - result = &v1.BrokerTemplateInstance{} - err = c.client.Patch(pt). - Resource("brokertemplateinstances"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/doc.go b/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/doc.go deleted file mode 100644 index 225e6b2be34f2..0000000000000 --- a/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated typed clients. -package v1 diff --git a/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/generated_expansion.go b/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/generated_expansion.go deleted file mode 100644 index 57f72c3538118..0000000000000 --- a/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/generated_expansion.go +++ /dev/null @@ -1,9 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -type BrokerTemplateInstanceExpansion interface{} - -type TemplateExpansion interface{} - -type TemplateInstanceExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/template.go b/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/template.go deleted file mode 100644 index 6cec071652476..0000000000000 --- a/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/template.go +++ /dev/null @@ -1,162 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/template/v1" - scheme "github.com/openshift/client-go/template/clientset/versioned/scheme" - metav1 "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" -) - -// TemplatesGetter has a method to return a TemplateInterface. -// A group's client should implement this interface. -type TemplatesGetter interface { - Templates(namespace string) TemplateInterface -} - -// TemplateInterface has methods to work with Template resources. -type TemplateInterface interface { - Create(ctx context.Context, template *v1.Template, opts metav1.CreateOptions) (*v1.Template, error) - Update(ctx context.Context, template *v1.Template, opts metav1.UpdateOptions) (*v1.Template, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Template, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.TemplateList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Template, err error) - TemplateExpansion -} - -// templates implements TemplateInterface -type templates struct { - client rest.Interface - ns string -} - -// newTemplates returns a Templates -func newTemplates(c *TemplateV1Client, namespace string) *templates { - return &templates{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the template, and returns the corresponding template object, and an error if there is any. -func (c *templates) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Template, err error) { - result = &v1.Template{} - err = c.client.Get(). - Namespace(c.ns). - Resource("templates"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Templates that match those selectors. -func (c *templates) List(ctx context.Context, opts metav1.ListOptions) (result *v1.TemplateList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.TemplateList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("templates"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested templates. -func (c *templates) Watch(ctx context.Context, opts metav1.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("templates"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a template and creates it. Returns the server's representation of the template, and an error, if there is any. -func (c *templates) Create(ctx context.Context, template *v1.Template, opts metav1.CreateOptions) (result *v1.Template, err error) { - result = &v1.Template{} - err = c.client.Post(). - Namespace(c.ns). - Resource("templates"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(template). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a template and updates it. Returns the server's representation of the template, and an error, if there is any. -func (c *templates) Update(ctx context.Context, template *v1.Template, opts metav1.UpdateOptions) (result *v1.Template, err error) { - result = &v1.Template{} - err = c.client.Put(). - Namespace(c.ns). - Resource("templates"). - Name(template.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(template). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the template and deletes it. Returns an error if one occurs. -func (c *templates) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("templates"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *templates) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Namespace(c.ns). - Resource("templates"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched template. -func (c *templates) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Template, err error) { - result = &v1.Template{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("templates"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/template_client.go b/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/template_client.go deleted file mode 100644 index d784b6e07ae79..0000000000000 --- a/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/template_client.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/template/v1" - "github.com/openshift/client-go/template/clientset/versioned/scheme" - rest "k8s.io/client-go/rest" -) - -type TemplateV1Interface interface { - RESTClient() rest.Interface - BrokerTemplateInstancesGetter - TemplatesGetter - TemplateInstancesGetter -} - -// TemplateV1Client is used to interact with features provided by the template.openshift.io group. -type TemplateV1Client struct { - restClient rest.Interface -} - -func (c *TemplateV1Client) BrokerTemplateInstances() BrokerTemplateInstanceInterface { - return newBrokerTemplateInstances(c) -} - -func (c *TemplateV1Client) Templates(namespace string) TemplateInterface { - return newTemplates(c, namespace) -} - -func (c *TemplateV1Client) TemplateInstances(namespace string) TemplateInstanceInterface { - return newTemplateInstances(c, namespace) -} - -// NewForConfig creates a new TemplateV1Client for the given config. -func NewForConfig(c *rest.Config) (*TemplateV1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientFor(&config) - if err != nil { - return nil, err - } - return &TemplateV1Client{client}, nil -} - -// NewForConfigOrDie creates a new TemplateV1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *TemplateV1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new TemplateV1Client for the given RESTClient. -func New(c rest.Interface) *TemplateV1Client { - return &TemplateV1Client{c} -} - -func setConfigDefaults(config *rest.Config) error { - gv := v1.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 *TemplateV1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/templateinstance.go b/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/templateinstance.go deleted file mode 100644 index 4328de1a5c9c6..0000000000000 --- a/vendor/github.com/openshift/client-go/template/clientset/versioned/typed/template/v1/templateinstance.go +++ /dev/null @@ -1,179 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/template/v1" - scheme "github.com/openshift/client-go/template/clientset/versioned/scheme" - metav1 "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" -) - -// TemplateInstancesGetter has a method to return a TemplateInstanceInterface. -// A group's client should implement this interface. -type TemplateInstancesGetter interface { - TemplateInstances(namespace string) TemplateInstanceInterface -} - -// TemplateInstanceInterface has methods to work with TemplateInstance resources. -type TemplateInstanceInterface interface { - Create(ctx context.Context, templateInstance *v1.TemplateInstance, opts metav1.CreateOptions) (*v1.TemplateInstance, error) - Update(ctx context.Context, templateInstance *v1.TemplateInstance, opts metav1.UpdateOptions) (*v1.TemplateInstance, error) - UpdateStatus(ctx context.Context, templateInstance *v1.TemplateInstance, opts metav1.UpdateOptions) (*v1.TemplateInstance, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.TemplateInstance, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.TemplateInstanceList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.TemplateInstance, err error) - TemplateInstanceExpansion -} - -// templateInstances implements TemplateInstanceInterface -type templateInstances struct { - client rest.Interface - ns string -} - -// newTemplateInstances returns a TemplateInstances -func newTemplateInstances(c *TemplateV1Client, namespace string) *templateInstances { - return &templateInstances{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the templateInstance, and returns the corresponding templateInstance object, and an error if there is any. -func (c *templateInstances) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.TemplateInstance, err error) { - result = &v1.TemplateInstance{} - err = c.client.Get(). - Namespace(c.ns). - Resource("templateinstances"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of TemplateInstances that match those selectors. -func (c *templateInstances) List(ctx context.Context, opts metav1.ListOptions) (result *v1.TemplateInstanceList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.TemplateInstanceList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("templateinstances"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested templateInstances. -func (c *templateInstances) Watch(ctx context.Context, opts metav1.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("templateinstances"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a templateInstance and creates it. Returns the server's representation of the templateInstance, and an error, if there is any. -func (c *templateInstances) Create(ctx context.Context, templateInstance *v1.TemplateInstance, opts metav1.CreateOptions) (result *v1.TemplateInstance, err error) { - result = &v1.TemplateInstance{} - err = c.client.Post(). - Namespace(c.ns). - Resource("templateinstances"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(templateInstance). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a templateInstance and updates it. Returns the server's representation of the templateInstance, and an error, if there is any. -func (c *templateInstances) Update(ctx context.Context, templateInstance *v1.TemplateInstance, opts metav1.UpdateOptions) (result *v1.TemplateInstance, err error) { - result = &v1.TemplateInstance{} - err = c.client.Put(). - Namespace(c.ns). - Resource("templateinstances"). - Name(templateInstance.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(templateInstance). - Do(ctx). - 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 *templateInstances) UpdateStatus(ctx context.Context, templateInstance *v1.TemplateInstance, opts metav1.UpdateOptions) (result *v1.TemplateInstance, err error) { - result = &v1.TemplateInstance{} - err = c.client.Put(). - Namespace(c.ns). - Resource("templateinstances"). - Name(templateInstance.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(templateInstance). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the templateInstance and deletes it. Returns an error if one occurs. -func (c *templateInstances) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("templateinstances"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *templateInstances) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Namespace(c.ns). - Resource("templateinstances"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched templateInstance. -func (c *templateInstances) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.TemplateInstance, err error) { - result = &v1.TemplateInstance{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("templateinstances"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/template/informers/externalversions/factory.go b/vendor/github.com/openshift/client-go/template/informers/externalversions/factory.go deleted file mode 100644 index 84fd496942537..0000000000000 --- a/vendor/github.com/openshift/client-go/template/informers/externalversions/factory.go +++ /dev/null @@ -1,164 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - reflect "reflect" - sync "sync" - time "time" - - versioned "github.com/openshift/client-go/template/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/template/informers/externalversions/internalinterfaces" - template "github.com/openshift/client-go/template/informers/externalversions/template" - 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 versioned.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 versioned.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 versioned.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 versioned.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 - - Template() template.Interface -} - -func (f *sharedInformerFactory) Template() template.Interface { - return template.New(f, f.namespace, f.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/template/informers/externalversions/generic.go b/vendor/github.com/openshift/client-go/template/informers/externalversions/generic.go deleted file mode 100644 index 47ac89753ba32..0000000000000 --- a/vendor/github.com/openshift/client-go/template/informers/externalversions/generic.go +++ /dev/null @@ -1,50 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - "fmt" - - v1 "github.com/openshift/api/template/v1" - 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=template.openshift.io, Version=v1 - case v1.SchemeGroupVersion.WithResource("brokertemplateinstances"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Template().V1().BrokerTemplateInstances().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("templates"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Template().V1().Templates().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("templateinstances"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Template().V1().TemplateInstances().Informer()}, nil - - } - - return nil, fmt.Errorf("no informer found for %v", resource) -} diff --git a/vendor/github.com/openshift/client-go/template/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/github.com/openshift/client-go/template/informers/externalversions/internalinterfaces/factory_interfaces.go deleted file mode 100644 index 1b2aea92f99c3..0000000000000 --- a/vendor/github.com/openshift/client-go/template/informers/externalversions/internalinterfaces/factory_interfaces.go +++ /dev/null @@ -1,24 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package internalinterfaces - -import ( - time "time" - - versioned "github.com/openshift/client-go/template/clientset/versioned" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - cache "k8s.io/client-go/tools/cache" -) - -// NewInformerFunc takes versioned.Interface and time.Duration to return a SharedIndexInformer. -type NewInformerFunc func(versioned.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/vendor/github.com/openshift/client-go/template/informers/externalversions/template/interface.go b/vendor/github.com/openshift/client-go/template/informers/externalversions/template/interface.go deleted file mode 100644 index a06ae741861d8..0000000000000 --- a/vendor/github.com/openshift/client-go/template/informers/externalversions/template/interface.go +++ /dev/null @@ -1,30 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package template - -import ( - internalinterfaces "github.com/openshift/client-go/template/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/template/informers/externalversions/template/v1" -) - -// Interface provides access to each of this group's versions. -type Interface interface { - // V1 provides access to shared informers for resources in V1. - V1() v1.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} -} - -// V1 returns a new v1.Interface. -func (g *group) V1() v1.Interface { - return v1.New(g.factory, g.namespace, g.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/template/informers/externalversions/template/v1/brokertemplateinstance.go b/vendor/github.com/openshift/client-go/template/informers/externalversions/template/v1/brokertemplateinstance.go deleted file mode 100644 index 5651bafc59eca..0000000000000 --- a/vendor/github.com/openshift/client-go/template/informers/externalversions/template/v1/brokertemplateinstance.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - templatev1 "github.com/openshift/api/template/v1" - versioned "github.com/openshift/client-go/template/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/template/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/template/listers/template/v1" - metav1 "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" -) - -// BrokerTemplateInstanceInformer provides access to a shared informer and lister for -// BrokerTemplateInstances. -type BrokerTemplateInstanceInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.BrokerTemplateInstanceLister -} - -type brokerTemplateInstanceInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewBrokerTemplateInstanceInformer constructs a new informer for BrokerTemplateInstance 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 NewBrokerTemplateInstanceInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredBrokerTemplateInstanceInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredBrokerTemplateInstanceInformer constructs a new informer for BrokerTemplateInstance 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 NewFilteredBrokerTemplateInstanceInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.TemplateV1().BrokerTemplateInstances().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.TemplateV1().BrokerTemplateInstances().Watch(context.TODO(), options) - }, - }, - &templatev1.BrokerTemplateInstance{}, - resyncPeriod, - indexers, - ) -} - -func (f *brokerTemplateInstanceInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredBrokerTemplateInstanceInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *brokerTemplateInstanceInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&templatev1.BrokerTemplateInstance{}, f.defaultInformer) -} - -func (f *brokerTemplateInstanceInformer) Lister() v1.BrokerTemplateInstanceLister { - return v1.NewBrokerTemplateInstanceLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/template/informers/externalversions/template/v1/interface.go b/vendor/github.com/openshift/client-go/template/informers/externalversions/template/v1/interface.go deleted file mode 100644 index 19f80d3c9a926..0000000000000 --- a/vendor/github.com/openshift/client-go/template/informers/externalversions/template/v1/interface.go +++ /dev/null @@ -1,43 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - internalinterfaces "github.com/openshift/client-go/template/informers/externalversions/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // BrokerTemplateInstances returns a BrokerTemplateInstanceInformer. - BrokerTemplateInstances() BrokerTemplateInstanceInformer - // Templates returns a TemplateInformer. - Templates() TemplateInformer - // TemplateInstances returns a TemplateInstanceInformer. - TemplateInstances() TemplateInstanceInformer -} - -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} -} - -// BrokerTemplateInstances returns a BrokerTemplateInstanceInformer. -func (v *version) BrokerTemplateInstances() BrokerTemplateInstanceInformer { - return &brokerTemplateInstanceInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} - -// Templates returns a TemplateInformer. -func (v *version) Templates() TemplateInformer { - return &templateInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} - -// TemplateInstances returns a TemplateInstanceInformer. -func (v *version) TemplateInstances() TemplateInstanceInformer { - return &templateInstanceInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} diff --git a/vendor/github.com/openshift/client-go/template/informers/externalversions/template/v1/template.go b/vendor/github.com/openshift/client-go/template/informers/externalversions/template/v1/template.go deleted file mode 100644 index dcc6213891abe..0000000000000 --- a/vendor/github.com/openshift/client-go/template/informers/externalversions/template/v1/template.go +++ /dev/null @@ -1,74 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - templatev1 "github.com/openshift/api/template/v1" - versioned "github.com/openshift/client-go/template/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/template/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/template/listers/template/v1" - metav1 "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" -) - -// TemplateInformer provides access to a shared informer and lister for -// Templates. -type TemplateInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.TemplateLister -} - -type templateInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewTemplateInformer constructs a new informer for Template 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 NewTemplateInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredTemplateInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredTemplateInformer constructs a new informer for Template 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 NewFilteredTemplateInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.TemplateV1().Templates(namespace).List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.TemplateV1().Templates(namespace).Watch(context.TODO(), options) - }, - }, - &templatev1.Template{}, - resyncPeriod, - indexers, - ) -} - -func (f *templateInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredTemplateInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *templateInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&templatev1.Template{}, f.defaultInformer) -} - -func (f *templateInformer) Lister() v1.TemplateLister { - return v1.NewTemplateLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/template/informers/externalversions/template/v1/templateinstance.go b/vendor/github.com/openshift/client-go/template/informers/externalversions/template/v1/templateinstance.go deleted file mode 100644 index c45181db770f5..0000000000000 --- a/vendor/github.com/openshift/client-go/template/informers/externalversions/template/v1/templateinstance.go +++ /dev/null @@ -1,74 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - templatev1 "github.com/openshift/api/template/v1" - versioned "github.com/openshift/client-go/template/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/template/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/template/listers/template/v1" - metav1 "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" -) - -// TemplateInstanceInformer provides access to a shared informer and lister for -// TemplateInstances. -type TemplateInstanceInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.TemplateInstanceLister -} - -type templateInstanceInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewTemplateInstanceInformer constructs a new informer for TemplateInstance 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 NewTemplateInstanceInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredTemplateInstanceInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredTemplateInstanceInformer constructs a new informer for TemplateInstance 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 NewFilteredTemplateInstanceInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.TemplateV1().TemplateInstances(namespace).List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.TemplateV1().TemplateInstances(namespace).Watch(context.TODO(), options) - }, - }, - &templatev1.TemplateInstance{}, - resyncPeriod, - indexers, - ) -} - -func (f *templateInstanceInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredTemplateInstanceInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *templateInstanceInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&templatev1.TemplateInstance{}, f.defaultInformer) -} - -func (f *templateInstanceInformer) Lister() v1.TemplateInstanceLister { - return v1.NewTemplateInstanceLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/template/listers/template/v1/brokertemplateinstance.go b/vendor/github.com/openshift/client-go/template/listers/template/v1/brokertemplateinstance.go deleted file mode 100644 index 8455b726dfce5..0000000000000 --- a/vendor/github.com/openshift/client-go/template/listers/template/v1/brokertemplateinstance.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/template/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// BrokerTemplateInstanceLister helps list BrokerTemplateInstances. -// All objects returned here must be treated as read-only. -type BrokerTemplateInstanceLister interface { - // List lists all BrokerTemplateInstances in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.BrokerTemplateInstance, err error) - // Get retrieves the BrokerTemplateInstance from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.BrokerTemplateInstance, error) - BrokerTemplateInstanceListerExpansion -} - -// brokerTemplateInstanceLister implements the BrokerTemplateInstanceLister interface. -type brokerTemplateInstanceLister struct { - indexer cache.Indexer -} - -// NewBrokerTemplateInstanceLister returns a new BrokerTemplateInstanceLister. -func NewBrokerTemplateInstanceLister(indexer cache.Indexer) BrokerTemplateInstanceLister { - return &brokerTemplateInstanceLister{indexer: indexer} -} - -// List lists all BrokerTemplateInstances in the indexer. -func (s *brokerTemplateInstanceLister) List(selector labels.Selector) (ret []*v1.BrokerTemplateInstance, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.BrokerTemplateInstance)) - }) - return ret, err -} - -// Get retrieves the BrokerTemplateInstance from the index for a given name. -func (s *brokerTemplateInstanceLister) Get(name string) (*v1.BrokerTemplateInstance, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("brokertemplateinstance"), name) - } - return obj.(*v1.BrokerTemplateInstance), nil -} diff --git a/vendor/github.com/openshift/client-go/template/listers/template/v1/expansion_generated.go b/vendor/github.com/openshift/client-go/template/listers/template/v1/expansion_generated.go deleted file mode 100644 index 851f826072ca6..0000000000000 --- a/vendor/github.com/openshift/client-go/template/listers/template/v1/expansion_generated.go +++ /dev/null @@ -1,15 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -// BrokerTemplateInstanceListerExpansion allows custom methods to be added to -// BrokerTemplateInstanceLister. -type BrokerTemplateInstanceListerExpansion interface{} - -// TemplateInstanceListerExpansion allows custom methods to be added to -// TemplateInstanceLister. -type TemplateInstanceListerExpansion interface{} - -// TemplateInstanceNamespaceListerExpansion allows custom methods to be added to -// TemplateInstanceNamespaceLister. -type TemplateInstanceNamespaceListerExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/template/listers/template/v1/template.go b/vendor/github.com/openshift/client-go/template/listers/template/v1/template.go deleted file mode 100644 index 3b92dc78c48b5..0000000000000 --- a/vendor/github.com/openshift/client-go/template/listers/template/v1/template.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/template/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// TemplateLister helps list Templates. -// All objects returned here must be treated as read-only. -type TemplateLister interface { - // List lists all Templates in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.Template, err error) - // Templates returns an object that can list and get Templates. - Templates(namespace string) TemplateNamespaceLister - TemplateListerExpansion -} - -// templateLister implements the TemplateLister interface. -type templateLister struct { - indexer cache.Indexer -} - -// NewTemplateLister returns a new TemplateLister. -func NewTemplateLister(indexer cache.Indexer) TemplateLister { - return &templateLister{indexer: indexer} -} - -// List lists all Templates in the indexer. -func (s *templateLister) List(selector labels.Selector) (ret []*v1.Template, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.Template)) - }) - return ret, err -} - -// Templates returns an object that can list and get Templates. -func (s *templateLister) Templates(namespace string) TemplateNamespaceLister { - return templateNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// TemplateNamespaceLister helps list and get Templates. -// All objects returned here must be treated as read-only. -type TemplateNamespaceLister interface { - // List lists all Templates in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.Template, err error) - // Get retrieves the Template from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.Template, error) - TemplateNamespaceListerExpansion -} - -// templateNamespaceLister implements the TemplateNamespaceLister -// interface. -type templateNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all Templates in the indexer for a given namespace. -func (s templateNamespaceLister) List(selector labels.Selector) (ret []*v1.Template, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1.Template)) - }) - return ret, err -} - -// Get retrieves the Template from the indexer for a given namespace and name. -func (s templateNamespaceLister) Get(name string) (*v1.Template, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("template"), name) - } - return obj.(*v1.Template), nil -} diff --git a/vendor/github.com/openshift/client-go/template/listers/template/v1/template_expansion.go b/vendor/github.com/openshift/client-go/template/listers/template/v1/template_expansion.go deleted file mode 100644 index 3528107a97cc8..0000000000000 --- a/vendor/github.com/openshift/client-go/template/listers/template/v1/template_expansion.go +++ /dev/null @@ -1,29 +0,0 @@ -package v1 - -import ( - templateapiv1 "github.com/openshift/api/template/v1" - "k8s.io/apimachinery/pkg/api/errors" -) - -const TemplateUIDIndex = "templateuid" - -// TemplateListerExpansion allows custom methods to be added to -// TemplateLister. -type TemplateListerExpansion interface { - GetByUID(uid string) (*templateapiv1.Template, error) -} - -// TemplateNamespaceListerExpansion allows custom methods to be added to -// TemplateNamespaceLister. -type TemplateNamespaceListerExpansion interface{} - -func (s templateLister) GetByUID(uid string) (*templateapiv1.Template, error) { - templates, err := s.indexer.ByIndex(TemplateUIDIndex, uid) - if err != nil { - return nil, err - } - if len(templates) == 0 { - return nil, errors.NewNotFound(templateapiv1.Resource("template"), uid) - } - return templates[0].(*templateapiv1.Template), nil -} diff --git a/vendor/github.com/openshift/client-go/template/listers/template/v1/templateinstance.go b/vendor/github.com/openshift/client-go/template/listers/template/v1/templateinstance.go deleted file mode 100644 index edc8f6db93632..0000000000000 --- a/vendor/github.com/openshift/client-go/template/listers/template/v1/templateinstance.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/template/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// TemplateInstanceLister helps list TemplateInstances. -// All objects returned here must be treated as read-only. -type TemplateInstanceLister interface { - // List lists all TemplateInstances in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.TemplateInstance, err error) - // TemplateInstances returns an object that can list and get TemplateInstances. - TemplateInstances(namespace string) TemplateInstanceNamespaceLister - TemplateInstanceListerExpansion -} - -// templateInstanceLister implements the TemplateInstanceLister interface. -type templateInstanceLister struct { - indexer cache.Indexer -} - -// NewTemplateInstanceLister returns a new TemplateInstanceLister. -func NewTemplateInstanceLister(indexer cache.Indexer) TemplateInstanceLister { - return &templateInstanceLister{indexer: indexer} -} - -// List lists all TemplateInstances in the indexer. -func (s *templateInstanceLister) List(selector labels.Selector) (ret []*v1.TemplateInstance, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.TemplateInstance)) - }) - return ret, err -} - -// TemplateInstances returns an object that can list and get TemplateInstances. -func (s *templateInstanceLister) TemplateInstances(namespace string) TemplateInstanceNamespaceLister { - return templateInstanceNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// TemplateInstanceNamespaceLister helps list and get TemplateInstances. -// All objects returned here must be treated as read-only. -type TemplateInstanceNamespaceLister interface { - // List lists all TemplateInstances in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.TemplateInstance, err error) - // Get retrieves the TemplateInstance from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.TemplateInstance, error) - TemplateInstanceNamespaceListerExpansion -} - -// templateInstanceNamespaceLister implements the TemplateInstanceNamespaceLister -// interface. -type templateInstanceNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all TemplateInstances in the indexer for a given namespace. -func (s templateInstanceNamespaceLister) List(selector labels.Selector) (ret []*v1.TemplateInstance, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1.TemplateInstance)) - }) - return ret, err -} - -// Get retrieves the TemplateInstance from the indexer for a given namespace and name. -func (s templateInstanceNamespaceLister) Get(name string) (*v1.TemplateInstance, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("templateinstance"), name) - } - return obj.(*v1.TemplateInstance), nil -} diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/clientset.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/clientset.go deleted file mode 100644 index f3ff1ebd7b766..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/clientset.go +++ /dev/null @@ -1,81 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package versioned - -import ( - "fmt" - - userv1 "github.com/openshift/client-go/user/clientset/versioned/typed/user/v1" - 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 - UserV1() userv1.UserV1Interface -} - -// Clientset contains the clients for groups. Each group has exactly one -// version included in a Clientset. -type Clientset struct { - *discovery.DiscoveryClient - userV1 *userv1.UserV1Client -} - -// UserV1 retrieves the UserV1Client -func (c *Clientset) UserV1() userv1.UserV1Interface { - return c.userV1 -} - -// 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.userV1, err = userv1.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.userV1 = userv1.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.userV1 = userv1.New(c) - - cs.DiscoveryClient = discovery.NewDiscoveryClient(c) - return &cs -} diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/doc.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/doc.go deleted file mode 100644 index 0e0c2a8900e2c..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated clientset. -package versioned diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/fake/clientset_generated.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/fake/clientset_generated.go deleted file mode 100644 index ff3eb60226707..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/fake/clientset_generated.go +++ /dev/null @@ -1,66 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - clientset "github.com/openshift/client-go/user/clientset/versioned" - userv1 "github.com/openshift/client-go/user/clientset/versioned/typed/user/v1" - fakeuserv1 "github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/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{} - -// UserV1 retrieves the UserV1Client -func (c *Clientset) UserV1() userv1.UserV1Interface { - return &fakeuserv1.FakeUserV1{Fake: &c.Fake} -} diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/fake/doc.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/fake/doc.go deleted file mode 100644 index 3630ed1cd17db..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/fake/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated fake clientset. -package fake diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/fake/register.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/fake/register.go deleted file mode 100644 index 6936cf5701871..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/fake/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - userv1 "github.com/openshift/api/user/v1" - 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 localSchemeBuilder = runtime.SchemeBuilder{ - userv1.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/vendor/github.com/openshift/client-go/user/clientset/versioned/scheme/doc.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/scheme/doc.go deleted file mode 100644 index 14db57a58f8d2..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/scheme/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package contains the scheme of the automatically generated clientset. -package scheme diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/scheme/register.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/scheme/register.go deleted file mode 100644 index 85f7e81258d04..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/scheme/register.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package scheme - -import ( - userv1 "github.com/openshift/api/user/v1" - 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{ - userv1.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/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/doc.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/doc.go deleted file mode 100644 index 225e6b2be34f2..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated typed clients. -package v1 diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/doc.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/doc.go deleted file mode 100644 index 2b5ba4c8e4422..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/doc.go +++ /dev/null @@ -1,4 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -// Package fake has the automatically generated clients. -package fake diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/fake_group.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/fake_group.go deleted file mode 100644 index c09f6bb984b7e..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/fake_group.go +++ /dev/null @@ -1,106 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - userv1 "github.com/openshift/api/user/v1" - 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" -) - -// FakeGroups implements GroupInterface -type FakeGroups struct { - Fake *FakeUserV1 -} - -var groupsResource = schema.GroupVersionResource{Group: "user.openshift.io", Version: "v1", Resource: "groups"} - -var groupsKind = schema.GroupVersionKind{Group: "user.openshift.io", Version: "v1", Kind: "Group"} - -// Get takes name of the group, and returns the corresponding group object, and an error if there is any. -func (c *FakeGroups) Get(ctx context.Context, name string, options v1.GetOptions) (result *userv1.Group, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(groupsResource, name), &userv1.Group{}) - if obj == nil { - return nil, err - } - return obj.(*userv1.Group), err -} - -// List takes label and field selectors, and returns the list of Groups that match those selectors. -func (c *FakeGroups) List(ctx context.Context, opts v1.ListOptions) (result *userv1.GroupList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(groupsResource, groupsKind, opts), &userv1.GroupList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &userv1.GroupList{ListMeta: obj.(*userv1.GroupList).ListMeta} - for _, item := range obj.(*userv1.GroupList).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 groups. -func (c *FakeGroups) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(groupsResource, opts)) -} - -// Create takes the representation of a group and creates it. Returns the server's representation of the group, and an error, if there is any. -func (c *FakeGroups) Create(ctx context.Context, group *userv1.Group, opts v1.CreateOptions) (result *userv1.Group, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(groupsResource, group), &userv1.Group{}) - if obj == nil { - return nil, err - } - return obj.(*userv1.Group), err -} - -// Update takes the representation of a group and updates it. Returns the server's representation of the group, and an error, if there is any. -func (c *FakeGroups) Update(ctx context.Context, group *userv1.Group, opts v1.UpdateOptions) (result *userv1.Group, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(groupsResource, group), &userv1.Group{}) - if obj == nil { - return nil, err - } - return obj.(*userv1.Group), err -} - -// Delete takes name of the group and deletes it. Returns an error if one occurs. -func (c *FakeGroups) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(groupsResource, name), &userv1.Group{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeGroups) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(groupsResource, listOpts) - - _, err := c.Fake.Invokes(action, &userv1.GroupList{}) - return err -} - -// Patch applies the patch and returns the patched group. -func (c *FakeGroups) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *userv1.Group, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(groupsResource, name, pt, data, subresources...), &userv1.Group{}) - if obj == nil { - return nil, err - } - return obj.(*userv1.Group), err -} diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/fake_identity.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/fake_identity.go deleted file mode 100644 index 6319204c0f2b4..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/fake_identity.go +++ /dev/null @@ -1,106 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - userv1 "github.com/openshift/api/user/v1" - 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" -) - -// FakeIdentities implements IdentityInterface -type FakeIdentities struct { - Fake *FakeUserV1 -} - -var identitiesResource = schema.GroupVersionResource{Group: "user.openshift.io", Version: "v1", Resource: "identities"} - -var identitiesKind = schema.GroupVersionKind{Group: "user.openshift.io", Version: "v1", Kind: "Identity"} - -// Get takes name of the identity, and returns the corresponding identity object, and an error if there is any. -func (c *FakeIdentities) Get(ctx context.Context, name string, options v1.GetOptions) (result *userv1.Identity, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(identitiesResource, name), &userv1.Identity{}) - if obj == nil { - return nil, err - } - return obj.(*userv1.Identity), err -} - -// List takes label and field selectors, and returns the list of Identities that match those selectors. -func (c *FakeIdentities) List(ctx context.Context, opts v1.ListOptions) (result *userv1.IdentityList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(identitiesResource, identitiesKind, opts), &userv1.IdentityList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &userv1.IdentityList{ListMeta: obj.(*userv1.IdentityList).ListMeta} - for _, item := range obj.(*userv1.IdentityList).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 identities. -func (c *FakeIdentities) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(identitiesResource, opts)) -} - -// Create takes the representation of a identity and creates it. Returns the server's representation of the identity, and an error, if there is any. -func (c *FakeIdentities) Create(ctx context.Context, identity *userv1.Identity, opts v1.CreateOptions) (result *userv1.Identity, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(identitiesResource, identity), &userv1.Identity{}) - if obj == nil { - return nil, err - } - return obj.(*userv1.Identity), err -} - -// Update takes the representation of a identity and updates it. Returns the server's representation of the identity, and an error, if there is any. -func (c *FakeIdentities) Update(ctx context.Context, identity *userv1.Identity, opts v1.UpdateOptions) (result *userv1.Identity, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(identitiesResource, identity), &userv1.Identity{}) - if obj == nil { - return nil, err - } - return obj.(*userv1.Identity), err -} - -// Delete takes name of the identity and deletes it. Returns an error if one occurs. -func (c *FakeIdentities) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(identitiesResource, name), &userv1.Identity{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeIdentities) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(identitiesResource, listOpts) - - _, err := c.Fake.Invokes(action, &userv1.IdentityList{}) - return err -} - -// Patch applies the patch and returns the patched identity. -func (c *FakeIdentities) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *userv1.Identity, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(identitiesResource, name, pt, data, subresources...), &userv1.Identity{}) - if obj == nil { - return nil, err - } - return obj.(*userv1.Identity), err -} diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/fake_user.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/fake_user.go deleted file mode 100644 index c88485803c9b7..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/fake_user.go +++ /dev/null @@ -1,106 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - userv1 "github.com/openshift/api/user/v1" - 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" -) - -// FakeUsers implements UserInterface -type FakeUsers struct { - Fake *FakeUserV1 -} - -var usersResource = schema.GroupVersionResource{Group: "user.openshift.io", Version: "v1", Resource: "users"} - -var usersKind = schema.GroupVersionKind{Group: "user.openshift.io", Version: "v1", Kind: "User"} - -// Get takes name of the user, and returns the corresponding user object, and an error if there is any. -func (c *FakeUsers) Get(ctx context.Context, name string, options v1.GetOptions) (result *userv1.User, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(usersResource, name), &userv1.User{}) - if obj == nil { - return nil, err - } - return obj.(*userv1.User), err -} - -// List takes label and field selectors, and returns the list of Users that match those selectors. -func (c *FakeUsers) List(ctx context.Context, opts v1.ListOptions) (result *userv1.UserList, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootListAction(usersResource, usersKind, opts), &userv1.UserList{}) - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &userv1.UserList{ListMeta: obj.(*userv1.UserList).ListMeta} - for _, item := range obj.(*userv1.UserList).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 users. -func (c *FakeUsers) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewRootWatchAction(usersResource, opts)) -} - -// Create takes the representation of a user and creates it. Returns the server's representation of the user, and an error, if there is any. -func (c *FakeUsers) Create(ctx context.Context, user *userv1.User, opts v1.CreateOptions) (result *userv1.User, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(usersResource, user), &userv1.User{}) - if obj == nil { - return nil, err - } - return obj.(*userv1.User), err -} - -// Update takes the representation of a user and updates it. Returns the server's representation of the user, and an error, if there is any. -func (c *FakeUsers) Update(ctx context.Context, user *userv1.User, opts v1.UpdateOptions) (result *userv1.User, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(usersResource, user), &userv1.User{}) - if obj == nil { - return nil, err - } - return obj.(*userv1.User), err -} - -// Delete takes name of the user and deletes it. Returns an error if one occurs. -func (c *FakeUsers) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(usersResource, name), &userv1.User{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeUsers) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(usersResource, listOpts) - - _, err := c.Fake.Invokes(action, &userv1.UserList{}) - return err -} - -// Patch applies the patch and returns the patched user. -func (c *FakeUsers) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *userv1.User, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(usersResource, name, pt, data, subresources...), &userv1.User{}) - if obj == nil { - return nil, err - } - return obj.(*userv1.User), err -} diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/fake_user_client.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/fake_user_client.go deleted file mode 100644 index bd16882dc9ca2..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/fake_user_client.go +++ /dev/null @@ -1,36 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - v1 "github.com/openshift/client-go/user/clientset/versioned/typed/user/v1" - rest "k8s.io/client-go/rest" - testing "k8s.io/client-go/testing" -) - -type FakeUserV1 struct { - *testing.Fake -} - -func (c *FakeUserV1) Groups() v1.GroupInterface { - return &FakeGroups{c} -} - -func (c *FakeUserV1) Identities() v1.IdentityInterface { - return &FakeIdentities{c} -} - -func (c *FakeUserV1) Users() v1.UserInterface { - return &FakeUsers{c} -} - -func (c *FakeUserV1) UserIdentityMappings() v1.UserIdentityMappingInterface { - return &FakeUserIdentityMappings{c} -} - -// RESTClient returns a RESTClient that is used to communicate -// with API server by this client implementation. -func (c *FakeUserV1) RESTClient() rest.Interface { - var ret *rest.RESTClient - return ret -} diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/fake_useridentitymapping.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/fake_useridentitymapping.go deleted file mode 100644 index b34d4ea159af5..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/fake/fake_useridentitymapping.go +++ /dev/null @@ -1,58 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - userv1 "github.com/openshift/api/user/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - schema "k8s.io/apimachinery/pkg/runtime/schema" - testing "k8s.io/client-go/testing" -) - -// FakeUserIdentityMappings implements UserIdentityMappingInterface -type FakeUserIdentityMappings struct { - Fake *FakeUserV1 -} - -var useridentitymappingsResource = schema.GroupVersionResource{Group: "user.openshift.io", Version: "v1", Resource: "useridentitymappings"} - -var useridentitymappingsKind = schema.GroupVersionKind{Group: "user.openshift.io", Version: "v1", Kind: "UserIdentityMapping"} - -// Get takes name of the userIdentityMapping, and returns the corresponding userIdentityMapping object, and an error if there is any. -func (c *FakeUserIdentityMappings) Get(ctx context.Context, name string, options v1.GetOptions) (result *userv1.UserIdentityMapping, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootGetAction(useridentitymappingsResource, name), &userv1.UserIdentityMapping{}) - if obj == nil { - return nil, err - } - return obj.(*userv1.UserIdentityMapping), err -} - -// Create takes the representation of a userIdentityMapping and creates it. Returns the server's representation of the userIdentityMapping, and an error, if there is any. -func (c *FakeUserIdentityMappings) Create(ctx context.Context, userIdentityMapping *userv1.UserIdentityMapping, opts v1.CreateOptions) (result *userv1.UserIdentityMapping, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(useridentitymappingsResource, userIdentityMapping), &userv1.UserIdentityMapping{}) - if obj == nil { - return nil, err - } - return obj.(*userv1.UserIdentityMapping), err -} - -// Update takes the representation of a userIdentityMapping and updates it. Returns the server's representation of the userIdentityMapping, and an error, if there is any. -func (c *FakeUserIdentityMappings) Update(ctx context.Context, userIdentityMapping *userv1.UserIdentityMapping, opts v1.UpdateOptions) (result *userv1.UserIdentityMapping, err error) { - obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(useridentitymappingsResource, userIdentityMapping), &userv1.UserIdentityMapping{}) - if obj == nil { - return nil, err - } - return obj.(*userv1.UserIdentityMapping), err -} - -// Delete takes name of the userIdentityMapping and deletes it. Returns an error if one occurs. -func (c *FakeUserIdentityMappings) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(useridentitymappingsResource, name), &userv1.UserIdentityMapping{}) - return err -} diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/generated_expansion.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/generated_expansion.go deleted file mode 100644 index 11d78bf5b4c58..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/generated_expansion.go +++ /dev/null @@ -1,11 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -type GroupExpansion interface{} - -type IdentityExpansion interface{} - -type UserExpansion interface{} - -type UserIdentityMappingExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/group.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/group.go deleted file mode 100644 index cea6c488e77e2..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/group.go +++ /dev/null @@ -1,152 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/user/v1" - scheme "github.com/openshift/client-go/user/clientset/versioned/scheme" - metav1 "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" -) - -// GroupsGetter has a method to return a GroupInterface. -// A group's client should implement this interface. -type GroupsGetter interface { - Groups() GroupInterface -} - -// GroupInterface has methods to work with Group resources. -type GroupInterface interface { - Create(ctx context.Context, group *v1.Group, opts metav1.CreateOptions) (*v1.Group, error) - Update(ctx context.Context, group *v1.Group, opts metav1.UpdateOptions) (*v1.Group, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Group, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.GroupList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Group, err error) - GroupExpansion -} - -// groups implements GroupInterface -type groups struct { - client rest.Interface -} - -// newGroups returns a Groups -func newGroups(c *UserV1Client) *groups { - return &groups{ - client: c.RESTClient(), - } -} - -// Get takes name of the group, and returns the corresponding group object, and an error if there is any. -func (c *groups) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Group, err error) { - result = &v1.Group{} - err = c.client.Get(). - Resource("groups"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Groups that match those selectors. -func (c *groups) List(ctx context.Context, opts metav1.ListOptions) (result *v1.GroupList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.GroupList{} - err = c.client.Get(). - Resource("groups"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested groups. -func (c *groups) Watch(ctx context.Context, opts metav1.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(). - Resource("groups"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a group and creates it. Returns the server's representation of the group, and an error, if there is any. -func (c *groups) Create(ctx context.Context, group *v1.Group, opts metav1.CreateOptions) (result *v1.Group, err error) { - result = &v1.Group{} - err = c.client.Post(). - Resource("groups"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(group). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a group and updates it. Returns the server's representation of the group, and an error, if there is any. -func (c *groups) Update(ctx context.Context, group *v1.Group, opts metav1.UpdateOptions) (result *v1.Group, err error) { - result = &v1.Group{} - err = c.client.Put(). - Resource("groups"). - Name(group.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(group). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the group and deletes it. Returns an error if one occurs. -func (c *groups) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("groups"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *groups) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("groups"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched group. -func (c *groups) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Group, err error) { - result = &v1.Group{} - err = c.client.Patch(pt). - Resource("groups"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/identity.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/identity.go deleted file mode 100644 index 1c5e09f56e7d2..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/identity.go +++ /dev/null @@ -1,152 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/user/v1" - scheme "github.com/openshift/client-go/user/clientset/versioned/scheme" - metav1 "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" -) - -// IdentitiesGetter has a method to return a IdentityInterface. -// A group's client should implement this interface. -type IdentitiesGetter interface { - Identities() IdentityInterface -} - -// IdentityInterface has methods to work with Identity resources. -type IdentityInterface interface { - Create(ctx context.Context, identity *v1.Identity, opts metav1.CreateOptions) (*v1.Identity, error) - Update(ctx context.Context, identity *v1.Identity, opts metav1.UpdateOptions) (*v1.Identity, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Identity, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.IdentityList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Identity, err error) - IdentityExpansion -} - -// identities implements IdentityInterface -type identities struct { - client rest.Interface -} - -// newIdentities returns a Identities -func newIdentities(c *UserV1Client) *identities { - return &identities{ - client: c.RESTClient(), - } -} - -// Get takes name of the identity, and returns the corresponding identity object, and an error if there is any. -func (c *identities) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Identity, err error) { - result = &v1.Identity{} - err = c.client.Get(). - Resource("identities"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Identities that match those selectors. -func (c *identities) List(ctx context.Context, opts metav1.ListOptions) (result *v1.IdentityList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.IdentityList{} - err = c.client.Get(). - Resource("identities"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested identities. -func (c *identities) Watch(ctx context.Context, opts metav1.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(). - Resource("identities"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a identity and creates it. Returns the server's representation of the identity, and an error, if there is any. -func (c *identities) Create(ctx context.Context, identity *v1.Identity, opts metav1.CreateOptions) (result *v1.Identity, err error) { - result = &v1.Identity{} - err = c.client.Post(). - Resource("identities"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(identity). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a identity and updates it. Returns the server's representation of the identity, and an error, if there is any. -func (c *identities) Update(ctx context.Context, identity *v1.Identity, opts metav1.UpdateOptions) (result *v1.Identity, err error) { - result = &v1.Identity{} - err = c.client.Put(). - Resource("identities"). - Name(identity.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(identity). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the identity and deletes it. Returns an error if one occurs. -func (c *identities) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("identities"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *identities) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("identities"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched identity. -func (c *identities) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Identity, err error) { - result = &v1.Identity{} - err = c.client.Patch(pt). - Resource("identities"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/user.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/user.go deleted file mode 100644 index bcfa9cfb0c233..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/user.go +++ /dev/null @@ -1,152 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "time" - - v1 "github.com/openshift/api/user/v1" - scheme "github.com/openshift/client-go/user/clientset/versioned/scheme" - metav1 "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" -) - -// UsersGetter has a method to return a UserInterface. -// A group's client should implement this interface. -type UsersGetter interface { - Users() UserInterface -} - -// UserInterface has methods to work with User resources. -type UserInterface interface { - Create(ctx context.Context, user *v1.User, opts metav1.CreateOptions) (*v1.User, error) - Update(ctx context.Context, user *v1.User, opts metav1.UpdateOptions) (*v1.User, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.User, error) - List(ctx context.Context, opts metav1.ListOptions) (*v1.UserList, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.User, err error) - UserExpansion -} - -// users implements UserInterface -type users struct { - client rest.Interface -} - -// newUsers returns a Users -func newUsers(c *UserV1Client) *users { - return &users{ - client: c.RESTClient(), - } -} - -// Get takes name of the user, and returns the corresponding user object, and an error if there is any. -func (c *users) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.User, err error) { - result = &v1.User{} - err = c.client.Get(). - Resource("users"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Users that match those selectors. -func (c *users) List(ctx context.Context, opts metav1.ListOptions) (result *v1.UserList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1.UserList{} - err = c.client.Get(). - Resource("users"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested users. -func (c *users) Watch(ctx context.Context, opts metav1.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(). - Resource("users"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a user and creates it. Returns the server's representation of the user, and an error, if there is any. -func (c *users) Create(ctx context.Context, user *v1.User, opts metav1.CreateOptions) (result *v1.User, err error) { - result = &v1.User{} - err = c.client.Post(). - Resource("users"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(user). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a user and updates it. Returns the server's representation of the user, and an error, if there is any. -func (c *users) Update(ctx context.Context, user *v1.User, opts metav1.UpdateOptions) (result *v1.User, err error) { - result = &v1.User{} - err = c.client.Put(). - Resource("users"). - Name(user.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(user). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the user and deletes it. Returns an error if one occurs. -func (c *users) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("users"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *users) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Resource("users"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched user. -func (c *users) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.User, err error) { - result = &v1.User{} - err = c.client.Patch(pt). - Resource("users"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/user_client.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/user_client.go deleted file mode 100644 index 40790bc4a6fd3..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/user_client.go +++ /dev/null @@ -1,88 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/user/v1" - "github.com/openshift/client-go/user/clientset/versioned/scheme" - rest "k8s.io/client-go/rest" -) - -type UserV1Interface interface { - RESTClient() rest.Interface - GroupsGetter - IdentitiesGetter - UsersGetter - UserIdentityMappingsGetter -} - -// UserV1Client is used to interact with features provided by the user.openshift.io group. -type UserV1Client struct { - restClient rest.Interface -} - -func (c *UserV1Client) Groups() GroupInterface { - return newGroups(c) -} - -func (c *UserV1Client) Identities() IdentityInterface { - return newIdentities(c) -} - -func (c *UserV1Client) Users() UserInterface { - return newUsers(c) -} - -func (c *UserV1Client) UserIdentityMappings() UserIdentityMappingInterface { - return newUserIdentityMappings(c) -} - -// NewForConfig creates a new UserV1Client for the given config. -func NewForConfig(c *rest.Config) (*UserV1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientFor(&config) - if err != nil { - return nil, err - } - return &UserV1Client{client}, nil -} - -// NewForConfigOrDie creates a new UserV1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *UserV1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new UserV1Client for the given RESTClient. -func New(c rest.Interface) *UserV1Client { - return &UserV1Client{c} -} - -func setConfigDefaults(config *rest.Config) error { - gv := v1.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 *UserV1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/useridentitymapping.go b/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/useridentitymapping.go deleted file mode 100644 index b11bfa7028c36..0000000000000 --- a/vendor/github.com/openshift/client-go/user/clientset/versioned/typed/user/v1/useridentitymapping.go +++ /dev/null @@ -1,86 +0,0 @@ -// Code generated by client-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - - v1 "github.com/openshift/api/user/v1" - scheme "github.com/openshift/client-go/user/clientset/versioned/scheme" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - rest "k8s.io/client-go/rest" -) - -// UserIdentityMappingsGetter has a method to return a UserIdentityMappingInterface. -// A group's client should implement this interface. -type UserIdentityMappingsGetter interface { - UserIdentityMappings() UserIdentityMappingInterface -} - -// UserIdentityMappingInterface has methods to work with UserIdentityMapping resources. -type UserIdentityMappingInterface interface { - Create(ctx context.Context, userIdentityMapping *v1.UserIdentityMapping, opts metav1.CreateOptions) (*v1.UserIdentityMapping, error) - Update(ctx context.Context, userIdentityMapping *v1.UserIdentityMapping, opts metav1.UpdateOptions) (*v1.UserIdentityMapping, error) - Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error - Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.UserIdentityMapping, error) - UserIdentityMappingExpansion -} - -// userIdentityMappings implements UserIdentityMappingInterface -type userIdentityMappings struct { - client rest.Interface -} - -// newUserIdentityMappings returns a UserIdentityMappings -func newUserIdentityMappings(c *UserV1Client) *userIdentityMappings { - return &userIdentityMappings{ - client: c.RESTClient(), - } -} - -// Get takes name of the userIdentityMapping, and returns the corresponding userIdentityMapping object, and an error if there is any. -func (c *userIdentityMappings) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.UserIdentityMapping, err error) { - result = &v1.UserIdentityMapping{} - err = c.client.Get(). - Resource("useridentitymappings"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// Create takes the representation of a userIdentityMapping and creates it. Returns the server's representation of the userIdentityMapping, and an error, if there is any. -func (c *userIdentityMappings) Create(ctx context.Context, userIdentityMapping *v1.UserIdentityMapping, opts metav1.CreateOptions) (result *v1.UserIdentityMapping, err error) { - result = &v1.UserIdentityMapping{} - err = c.client.Post(). - Resource("useridentitymappings"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(userIdentityMapping). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a userIdentityMapping and updates it. Returns the server's representation of the userIdentityMapping, and an error, if there is any. -func (c *userIdentityMappings) Update(ctx context.Context, userIdentityMapping *v1.UserIdentityMapping, opts metav1.UpdateOptions) (result *v1.UserIdentityMapping, err error) { - result = &v1.UserIdentityMapping{} - err = c.client.Put(). - Resource("useridentitymappings"). - Name(userIdentityMapping.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(userIdentityMapping). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the userIdentityMapping and deletes it. Returns an error if one occurs. -func (c *userIdentityMappings) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error { - return c.client.Delete(). - Resource("useridentitymappings"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} diff --git a/vendor/github.com/openshift/client-go/user/informers/externalversions/factory.go b/vendor/github.com/openshift/client-go/user/informers/externalversions/factory.go deleted file mode 100644 index cde67f04bd1c0..0000000000000 --- a/vendor/github.com/openshift/client-go/user/informers/externalversions/factory.go +++ /dev/null @@ -1,164 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - reflect "reflect" - sync "sync" - time "time" - - versioned "github.com/openshift/client-go/user/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/user/informers/externalversions/internalinterfaces" - user "github.com/openshift/client-go/user/informers/externalversions/user" - 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 versioned.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 versioned.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 versioned.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 versioned.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 - - User() user.Interface -} - -func (f *sharedInformerFactory) User() user.Interface { - return user.New(f, f.namespace, f.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/user/informers/externalversions/generic.go b/vendor/github.com/openshift/client-go/user/informers/externalversions/generic.go deleted file mode 100644 index 6c8cb23b6e717..0000000000000 --- a/vendor/github.com/openshift/client-go/user/informers/externalversions/generic.go +++ /dev/null @@ -1,50 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package externalversions - -import ( - "fmt" - - v1 "github.com/openshift/api/user/v1" - 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=user.openshift.io, Version=v1 - case v1.SchemeGroupVersion.WithResource("groups"): - return &genericInformer{resource: resource.GroupResource(), informer: f.User().V1().Groups().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("identities"): - return &genericInformer{resource: resource.GroupResource(), informer: f.User().V1().Identities().Informer()}, nil - case v1.SchemeGroupVersion.WithResource("users"): - return &genericInformer{resource: resource.GroupResource(), informer: f.User().V1().Users().Informer()}, nil - - } - - return nil, fmt.Errorf("no informer found for %v", resource) -} diff --git a/vendor/github.com/openshift/client-go/user/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/github.com/openshift/client-go/user/informers/externalversions/internalinterfaces/factory_interfaces.go deleted file mode 100644 index 8bd5bff0ccf03..0000000000000 --- a/vendor/github.com/openshift/client-go/user/informers/externalversions/internalinterfaces/factory_interfaces.go +++ /dev/null @@ -1,24 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package internalinterfaces - -import ( - time "time" - - versioned "github.com/openshift/client-go/user/clientset/versioned" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - cache "k8s.io/client-go/tools/cache" -) - -// NewInformerFunc takes versioned.Interface and time.Duration to return a SharedIndexInformer. -type NewInformerFunc func(versioned.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/vendor/github.com/openshift/client-go/user/informers/externalversions/user/interface.go b/vendor/github.com/openshift/client-go/user/informers/externalversions/user/interface.go deleted file mode 100644 index 8ae8bae69500b..0000000000000 --- a/vendor/github.com/openshift/client-go/user/informers/externalversions/user/interface.go +++ /dev/null @@ -1,30 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package user - -import ( - internalinterfaces "github.com/openshift/client-go/user/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/user/informers/externalversions/user/v1" -) - -// Interface provides access to each of this group's versions. -type Interface interface { - // V1 provides access to shared informers for resources in V1. - V1() v1.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} -} - -// V1 returns a new v1.Interface. -func (g *group) V1() v1.Interface { - return v1.New(g.factory, g.namespace, g.tweakListOptions) -} diff --git a/vendor/github.com/openshift/client-go/user/informers/externalversions/user/v1/group.go b/vendor/github.com/openshift/client-go/user/informers/externalversions/user/v1/group.go deleted file mode 100644 index 24df75f7c13d4..0000000000000 --- a/vendor/github.com/openshift/client-go/user/informers/externalversions/user/v1/group.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - userv1 "github.com/openshift/api/user/v1" - versioned "github.com/openshift/client-go/user/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/user/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/user/listers/user/v1" - metav1 "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" -) - -// GroupInformer provides access to a shared informer and lister for -// Groups. -type GroupInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.GroupLister -} - -type groupInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewGroupInformer constructs a new informer for Group 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 NewGroupInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredGroupInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredGroupInformer constructs a new informer for Group 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 NewFilteredGroupInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.UserV1().Groups().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.UserV1().Groups().Watch(context.TODO(), options) - }, - }, - &userv1.Group{}, - resyncPeriod, - indexers, - ) -} - -func (f *groupInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredGroupInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *groupInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&userv1.Group{}, f.defaultInformer) -} - -func (f *groupInformer) Lister() v1.GroupLister { - return v1.NewGroupLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/user/informers/externalversions/user/v1/identity.go b/vendor/github.com/openshift/client-go/user/informers/externalversions/user/v1/identity.go deleted file mode 100644 index 9a4689781814c..0000000000000 --- a/vendor/github.com/openshift/client-go/user/informers/externalversions/user/v1/identity.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - userv1 "github.com/openshift/api/user/v1" - versioned "github.com/openshift/client-go/user/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/user/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/user/listers/user/v1" - metav1 "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" -) - -// IdentityInformer provides access to a shared informer and lister for -// Identities. -type IdentityInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.IdentityLister -} - -type identityInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewIdentityInformer constructs a new informer for Identity 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 NewIdentityInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredIdentityInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredIdentityInformer constructs a new informer for Identity 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 NewFilteredIdentityInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.UserV1().Identities().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.UserV1().Identities().Watch(context.TODO(), options) - }, - }, - &userv1.Identity{}, - resyncPeriod, - indexers, - ) -} - -func (f *identityInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredIdentityInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *identityInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&userv1.Identity{}, f.defaultInformer) -} - -func (f *identityInformer) Lister() v1.IdentityLister { - return v1.NewIdentityLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/user/informers/externalversions/user/v1/interface.go b/vendor/github.com/openshift/client-go/user/informers/externalversions/user/v1/interface.go deleted file mode 100644 index 267a1543ddef9..0000000000000 --- a/vendor/github.com/openshift/client-go/user/informers/externalversions/user/v1/interface.go +++ /dev/null @@ -1,43 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - internalinterfaces "github.com/openshift/client-go/user/informers/externalversions/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // Groups returns a GroupInformer. - Groups() GroupInformer - // Identities returns a IdentityInformer. - Identities() IdentityInformer - // Users returns a UserInformer. - Users() UserInformer -} - -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} -} - -// Groups returns a GroupInformer. -func (v *version) Groups() GroupInformer { - return &groupInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} - -// Identities returns a IdentityInformer. -func (v *version) Identities() IdentityInformer { - return &identityInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} - -// Users returns a UserInformer. -func (v *version) Users() UserInformer { - return &userInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} diff --git a/vendor/github.com/openshift/client-go/user/informers/externalversions/user/v1/user.go b/vendor/github.com/openshift/client-go/user/informers/externalversions/user/v1/user.go deleted file mode 100644 index 57aaca1f70145..0000000000000 --- a/vendor/github.com/openshift/client-go/user/informers/externalversions/user/v1/user.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - userv1 "github.com/openshift/api/user/v1" - versioned "github.com/openshift/client-go/user/clientset/versioned" - internalinterfaces "github.com/openshift/client-go/user/informers/externalversions/internalinterfaces" - v1 "github.com/openshift/client-go/user/listers/user/v1" - metav1 "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" -) - -// UserInformer provides access to a shared informer and lister for -// Users. -type UserInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.UserLister -} - -type userInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewUserInformer constructs a new informer for User 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 NewUserInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredUserInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredUserInformer constructs a new informer for User 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 NewFilteredUserInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.UserV1().Users().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.UserV1().Users().Watch(context.TODO(), options) - }, - }, - &userv1.User{}, - resyncPeriod, - indexers, - ) -} - -func (f *userInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredUserInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *userInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&userv1.User{}, f.defaultInformer) -} - -func (f *userInformer) Lister() v1.UserLister { - return v1.NewUserLister(f.Informer().GetIndexer()) -} diff --git a/vendor/github.com/openshift/client-go/user/listers/user/v1/expansion_generated.go b/vendor/github.com/openshift/client-go/user/listers/user/v1/expansion_generated.go deleted file mode 100644 index dcb8be2181276..0000000000000 --- a/vendor/github.com/openshift/client-go/user/listers/user/v1/expansion_generated.go +++ /dev/null @@ -1,15 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -// GroupListerExpansion allows custom methods to be added to -// GroupLister. -type GroupListerExpansion interface{} - -// IdentityListerExpansion allows custom methods to be added to -// IdentityLister. -type IdentityListerExpansion interface{} - -// UserListerExpansion allows custom methods to be added to -// UserLister. -type UserListerExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/user/listers/user/v1/group.go b/vendor/github.com/openshift/client-go/user/listers/user/v1/group.go deleted file mode 100644 index 824b87634e524..0000000000000 --- a/vendor/github.com/openshift/client-go/user/listers/user/v1/group.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/user/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// GroupLister helps list Groups. -// All objects returned here must be treated as read-only. -type GroupLister interface { - // List lists all Groups in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.Group, err error) - // Get retrieves the Group from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.Group, error) - GroupListerExpansion -} - -// groupLister implements the GroupLister interface. -type groupLister struct { - indexer cache.Indexer -} - -// NewGroupLister returns a new GroupLister. -func NewGroupLister(indexer cache.Indexer) GroupLister { - return &groupLister{indexer: indexer} -} - -// List lists all Groups in the indexer. -func (s *groupLister) List(selector labels.Selector) (ret []*v1.Group, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.Group)) - }) - return ret, err -} - -// Get retrieves the Group from the index for a given name. -func (s *groupLister) Get(name string) (*v1.Group, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("group"), name) - } - return obj.(*v1.Group), nil -} diff --git a/vendor/github.com/openshift/client-go/user/listers/user/v1/identity.go b/vendor/github.com/openshift/client-go/user/listers/user/v1/identity.go deleted file mode 100644 index 67d3decbeb484..0000000000000 --- a/vendor/github.com/openshift/client-go/user/listers/user/v1/identity.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/user/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// IdentityLister helps list Identities. -// All objects returned here must be treated as read-only. -type IdentityLister interface { - // List lists all Identities in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.Identity, err error) - // Get retrieves the Identity from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.Identity, error) - IdentityListerExpansion -} - -// identityLister implements the IdentityLister interface. -type identityLister struct { - indexer cache.Indexer -} - -// NewIdentityLister returns a new IdentityLister. -func NewIdentityLister(indexer cache.Indexer) IdentityLister { - return &identityLister{indexer: indexer} -} - -// List lists all Identities in the indexer. -func (s *identityLister) List(selector labels.Selector) (ret []*v1.Identity, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.Identity)) - }) - return ret, err -} - -// Get retrieves the Identity from the index for a given name. -func (s *identityLister) Get(name string) (*v1.Identity, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("identity"), name) - } - return obj.(*v1.Identity), nil -} diff --git a/vendor/github.com/openshift/client-go/user/listers/user/v1/user.go b/vendor/github.com/openshift/client-go/user/listers/user/v1/user.go deleted file mode 100644 index 45164add31df7..0000000000000 --- a/vendor/github.com/openshift/client-go/user/listers/user/v1/user.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "github.com/openshift/api/user/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// UserLister helps list Users. -// All objects returned here must be treated as read-only. -type UserLister interface { - // List lists all Users in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.User, err error) - // Get retrieves the User from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.User, error) - UserListerExpansion -} - -// userLister implements the UserLister interface. -type userLister struct { - indexer cache.Indexer -} - -// NewUserLister returns a new UserLister. -func NewUserLister(indexer cache.Indexer) UserLister { - return &userLister{indexer: indexer} -} - -// List lists all Users in the indexer. -func (s *userLister) List(selector labels.Selector) (ret []*v1.User, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.User)) - }) - return ret, err -} - -// Get retrieves the User from the index for a given name. -func (s *userLister) Get(name string) (*v1.User, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("user"), name) - } - return obj.(*v1.User), nil -} diff --git a/vendor/github.com/openshift/library-go/LICENSE b/vendor/github.com/openshift/library-go/LICENSE deleted file mode 100644 index 261eeb9e9f8b2..0000000000000 --- a/vendor/github.com/openshift/library-go/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - 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/vendor/github.com/openshift/library-go/pkg/apiserver/admission/admissionregistrationtesting/admissiontesting.go b/vendor/github.com/openshift/library-go/pkg/apiserver/admission/admissionregistrationtesting/admissiontesting.go deleted file mode 100644 index ecaf34d8a1fa4..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/apiserver/admission/admissionregistrationtesting/admissiontesting.go +++ /dev/null @@ -1,25 +0,0 @@ -package admissionregistrationtesting - -import ( - "fmt" - - "k8s.io/apimachinery/pkg/util/errors" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apiserver/pkg/admission" -) - -func AdmissionRegistrationTest(registeredAdmission *admission.Plugins, orderedAdmissionPlugins []string, defaultOffPlugins sets.String) error { - errs := []error{} - registeredPlugins := sets.NewString(registeredAdmission.Registered()...) - orderedAdmissionPluginsSet := sets.NewString(orderedAdmissionPlugins...) - - // make sure that all orderedAdmissionPlugins are registered - if diff := orderedAdmissionPluginsSet.Difference(registeredPlugins); len(diff) > 0 { - errs = append(errs, fmt.Errorf("registered plugins missing admission plugins: %v", diff.List())) - } - if diff := defaultOffPlugins.Difference(orderedAdmissionPluginsSet); len(diff) > 0 { - errs = append(errs, fmt.Errorf("ordered admission plugins missing defaultOff plugins: %v", diff.List())) - } - - return errors.NewAggregate(errs) -} diff --git a/vendor/github.com/openshift/library-go/pkg/apiserver/admission/admissionrestconfig/intiializers.go b/vendor/github.com/openshift/library-go/pkg/apiserver/admission/admissionrestconfig/intiializers.go deleted file mode 100644 index 5b4dc1036b07a..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/apiserver/admission/admissionrestconfig/intiializers.go +++ /dev/null @@ -1,30 +0,0 @@ -package admissionrestconfig - -import ( - "k8s.io/apiserver/pkg/admission" - restclient "k8s.io/client-go/rest" -) - -func NewInitializer(restClientConfig restclient.Config) admission.PluginInitializer { - return &localInitializer{ - restClientConfig: restClientConfig, - } -} - -// WantsRESTClientConfig gives access to a RESTClientConfig. It's useful for doing unusual things with transports. -type WantsRESTClientConfig interface { - SetRESTClientConfig(restclient.Config) - admission.InitializationValidator -} - -type localInitializer struct { - restClientConfig restclient.Config -} - -// Initialize will check the initialization interfaces implemented by each plugin -// and provide the appropriate initialization data -func (i *localInitializer) Initialize(plugin admission.Interface) { - if wants, ok := plugin.(WantsRESTClientConfig); ok { - wants.SetRESTClientConfig(i.restClientConfig) - } -} diff --git a/vendor/github.com/openshift/library-go/pkg/apiserver/admission/admissiontimeout/decorator.go b/vendor/github.com/openshift/library-go/pkg/apiserver/admission/admissiontimeout/decorator.go deleted file mode 100644 index 3b2d245540492..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/apiserver/admission/admissiontimeout/decorator.go +++ /dev/null @@ -1,22 +0,0 @@ -package admissiontimeout - -import ( - "time" - - "k8s.io/apiserver/pkg/admission" -) - -// AdmissionTimeout provides a decorator that will fail an admission plugin after a certain amount of time -// -// DEPRECATED: use the context of the admission handler instead. -type AdmissionTimeout struct { - Timeout time.Duration -} - -func (d AdmissionTimeout) WithTimeout(admissionPlugin admission.Interface, name string) admission.Interface { - return pluginHandlerWithTimeout{ - name: name, - admissionPlugin: admissionPlugin, - timeout: d.Timeout, - } -} diff --git a/vendor/github.com/openshift/library-go/pkg/apiserver/admission/admissiontimeout/timeoutadmission.go b/vendor/github.com/openshift/library-go/pkg/apiserver/admission/admissiontimeout/timeoutadmission.go deleted file mode 100644 index 8667304edfd46..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/apiserver/admission/admissiontimeout/timeoutadmission.go +++ /dev/null @@ -1,68 +0,0 @@ -package admissiontimeout - -import ( - "context" - "fmt" - "time" - - "k8s.io/apimachinery/pkg/api/errors" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apiserver/pkg/admission" -) - -type pluginHandlerWithTimeout struct { - name string - admissionPlugin admission.Interface - timeout time.Duration -} - -var _ admission.ValidationInterface = &pluginHandlerWithTimeout{} -var _ admission.MutationInterface = &pluginHandlerWithTimeout{} - -func (p pluginHandlerWithTimeout) Handles(operation admission.Operation) bool { - return p.admissionPlugin.Handles(operation) -} - -func (p pluginHandlerWithTimeout) Admit(ctx context.Context, a admission.Attributes, o admission.ObjectInterfaces) error { - mutatingHandler, ok := p.admissionPlugin.(admission.MutationInterface) - if !ok { - return nil - } - - admissionDone := make(chan struct{}) - admissionErr := fmt.Errorf("default to mutation error") - go func() { - defer utilruntime.HandleCrash() - defer close(admissionDone) - admissionErr = mutatingHandler.Admit(ctx, a, o) - }() - - select { - case <-admissionDone: - return admissionErr - case <-time.After(p.timeout): - return errors.NewInternalError(fmt.Errorf("admission plugin %q failed to complete mutation in %v", p.name, p.timeout)) - } -} - -func (p pluginHandlerWithTimeout) Validate(ctx context.Context, a admission.Attributes, o admission.ObjectInterfaces) error { - validatingHandler, ok := p.admissionPlugin.(admission.ValidationInterface) - if !ok { - return nil - } - - admissionDone := make(chan struct{}) - admissionErr := fmt.Errorf("default to validation error") - go func() { - defer utilruntime.HandleCrash() - defer close(admissionDone) - admissionErr = validatingHandler.Validate(ctx, a, o) - }() - - select { - case <-admissionDone: - return admissionErr - case <-time.After(p.timeout): - return errors.NewInternalError(fmt.Errorf("admission plugin %q failed to complete validation in %v", p.name, p.timeout)) - } -} diff --git a/vendor/github.com/openshift/library-go/pkg/apiserver/apiserverconfig/cachecontrol.go b/vendor/github.com/openshift/library-go/pkg/apiserver/apiserverconfig/cachecontrol.go deleted file mode 100644 index 611735cccbb8b..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/apiserver/apiserverconfig/cachecontrol.go +++ /dev/null @@ -1,35 +0,0 @@ -package apiserverconfig - -import ( - "net/http" - "strings" -) - -// cacheExcludedPaths is small and simple until the handlers include the cache headers they need -var cacheExcludedPathPrefixes = []string{ - "/swagger-2.0.0.json", - "/swagger-2.0.0.pb-v1", - "/swagger-2.0.0.pb-v1.gz", - "/swagger.json", - "/swaggerapi", - "/openapi/", -} - -// cacheControlFilter sets the Cache-Control header to the specified value. -func WithCacheControl(handler http.Handler, value string) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - if _, ok := w.Header()["Cache-Control"]; ok { - handler.ServeHTTP(w, req) - return - } - for _, prefix := range cacheExcludedPathPrefixes { - if strings.HasPrefix(req.URL.Path, prefix) { - handler.ServeHTTP(w, req) - return - } - } - - w.Header().Set("Cache-Control", value) - handler.ServeHTTP(w, req) - }) -} diff --git a/vendor/github.com/openshift/library-go/pkg/apiserver/apiserverconfig/longrunning.go b/vendor/github.com/openshift/library-go/pkg/apiserver/apiserverconfig/longrunning.go deleted file mode 100644 index 5dde34ca7d437..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/apiserver/apiserverconfig/longrunning.go +++ /dev/null @@ -1,26 +0,0 @@ -package apiserverconfig - -import ( - "net/http" - "regexp" - - "k8s.io/apimachinery/pkg/util/sets" - apirequest "k8s.io/apiserver/pkg/endpoints/request" - genericfilters "k8s.io/apiserver/pkg/server/filters" -) - -// request paths that match this regular expression will be treated as long running -// and not subjected to the default server timeout. -const originLongRunningEndpointsRE = "(/|^)(buildconfigs/.*/instantiatebinary|imagestreamimports)$" - -var ( - originLongRunningRequestRE = regexp.MustCompile(originLongRunningEndpointsRE) - kubeLongRunningFunc = genericfilters.BasicLongRunningRequestCheck( - sets.NewString("watch", "proxy"), - sets.NewString("attach", "exec", "proxy", "log", "portforward"), - ) -) - -func IsLongRunningRequest(r *http.Request, requestInfo *apirequest.RequestInfo) bool { - return originLongRunningRequestRE.MatchString(r.URL.Path) || kubeLongRunningFunc(r, requestInfo) -} diff --git a/vendor/github.com/openshift/library-go/pkg/apiserver/apiserverconfig/personal_subjectaccessreview.go b/vendor/github.com/openshift/library-go/pkg/apiserver/apiserverconfig/personal_subjectaccessreview.go deleted file mode 100644 index d97946b9b4f69..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/apiserver/apiserverconfig/personal_subjectaccessreview.go +++ /dev/null @@ -1,129 +0,0 @@ -package apiserverconfig - -import ( - "bytes" - "io/ioutil" - "net/http" - - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/runtime/serializer" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apiserver/pkg/endpoints/request" - apirequest "k8s.io/apiserver/pkg/endpoints/request" - - authorizationv1 "github.com/openshift/api/authorization/v1" -) - -type personalSARRequestInfoResolver struct { - // infoFactory is used to determine info for the request - infoFactory apirequest.RequestInfoResolver -} - -func newPersonalSARRequestInfoResolver(infoFactory apirequest.RequestInfoResolver) apirequest.RequestInfoResolver { - return &personalSARRequestInfoResolver{ - infoFactory: infoFactory, - } -} - -func (a *personalSARRequestInfoResolver) NewRequestInfo(req *http.Request) (*request.RequestInfo, error) { - requestInfo, err := a.infoFactory.NewRequestInfo(req) - if err != nil { - return requestInfo, err - } - - // only match SAR and LSAR requests for personal review - switch { - case !requestInfo.IsResourceRequest: - return requestInfo, nil - - case len(requestInfo.APIGroup) != 0 && requestInfo.APIGroup != "authorization.openshift.io": - return requestInfo, nil - - case len(requestInfo.Subresource) != 0: - return requestInfo, nil - - case requestInfo.Verb != "create": - return requestInfo, nil - - case requestInfo.Resource != "subjectaccessreviews" && requestInfo.Resource != "localsubjectaccessreviews": - return requestInfo, nil - } - - // at this point we're probably running a SAR or LSAR. Decode the body and check. This is expensive. - isSelfSAR, err := isPersonalAccessReviewFromRequest(req, requestInfo) - if err != nil { - return nil, err - } - if !isSelfSAR { - return requestInfo, nil - } - - // if we do have a self-SAR, rewrite the requestInfo to indicate this is a selfsubjectaccessreviews.authorization.k8s.io request - requestInfo.APIGroup = "authorization.k8s.io" - requestInfo.Resource = "selfsubjectaccessreviews" - - return requestInfo, nil -} - -// isPersonalAccessReviewFromRequest this variant handles the case where we have an httpRequest -func isPersonalAccessReviewFromRequest(req *http.Request, requestInfo *request.RequestInfo) (bool, error) { - // TODO once we're integrated with the api installer, we should have direct access to the deserialized content - // for now, this only happens on subjectaccessreviews with a personal check, pay the double retrieve and decode cost - body, err := ioutil.ReadAll(req.Body) - if err != nil { - return false, err - } - req.Body = ioutil.NopCloser(bytes.NewBuffer(body)) - - defaultGVK := schema.GroupVersionKind{Version: requestInfo.APIVersion, Group: requestInfo.APIGroup} - switch requestInfo.Resource { - case "subjectaccessreviews": - defaultGVK.Kind = "SubjectAccessReview" - case "localsubjectaccessreviews": - defaultGVK.Kind = "LocalSubjectAccessReview" - } - - obj, _, err := sarCodecFactory.UniversalDeserializer().Decode(body, &defaultGVK, nil) - if err != nil { - return false, err - } - switch castObj := obj.(type) { - case *authorizationv1.SubjectAccessReview: - return IsPersonalAccessReviewFromSAR(castObj), nil - - case *authorizationv1.LocalSubjectAccessReview: - return isPersonalAccessReviewFromLocalSAR(castObj), nil - - default: - return false, nil - } -} - -// IsPersonalAccessReviewFromSAR this variant handles the case where we have an SAR -func IsPersonalAccessReviewFromSAR(sar *authorizationv1.SubjectAccessReview) bool { - if len(sar.User) == 0 && len(sar.GroupsSlice) == 0 { - return true - } - - return false -} - -// isPersonalAccessReviewFromLocalSAR this variant handles the case where we have a local SAR -func isPersonalAccessReviewFromLocalSAR(sar *authorizationv1.LocalSubjectAccessReview) bool { - if len(sar.User) == 0 && len(sar.GroupsSlice) == 0 { - return true - } - - return false -} - -var ( - sarScheme = runtime.NewScheme() - sarCodecFactory = serializer.NewCodecFactory(sarScheme) -) - -func init() { - utilruntime.Must(authorizationv1.Install(sarScheme)) - utilruntime.Must(authorizationv1.DeprecatedInstallWithoutGroup(sarScheme)) -} diff --git a/vendor/github.com/openshift/library-go/pkg/apiserver/apiserverconfig/project_request_info_resolver.go b/vendor/github.com/openshift/library-go/pkg/apiserver/apiserverconfig/project_request_info_resolver.go deleted file mode 100644 index 7682302f89a64..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/apiserver/apiserverconfig/project_request_info_resolver.go +++ /dev/null @@ -1,34 +0,0 @@ -package apiserverconfig - -import ( - "net/http" - - apirequest "k8s.io/apiserver/pkg/endpoints/request" - - projectv1 "github.com/openshift/api/project/v1" -) - -type projectRequestInfoResolver struct { - // infoFactory is used to determine info for the request - infoFactory apirequest.RequestInfoResolver -} - -func newProjectRequestInfoResolver(infoFactory apirequest.RequestInfoResolver) apirequest.RequestInfoResolver { - return &projectRequestInfoResolver{ - infoFactory: infoFactory, - } -} - -func (a *projectRequestInfoResolver) NewRequestInfo(req *http.Request) (*apirequest.RequestInfo, error) { - requestInfo, err := a.infoFactory.NewRequestInfo(req) - if err != nil { - return requestInfo, err - } - - // if the resource is projects, we need to set the namespace to the value of the name. - if (len(requestInfo.APIGroup) == 0 || requestInfo.APIGroup == projectv1.GroupName) && requestInfo.Resource == "projects" && len(requestInfo.Name) > 0 { - requestInfo.Namespace = requestInfo.Name - } - - return requestInfo, nil -} diff --git a/vendor/github.com/openshift/library-go/pkg/apiserver/apiserverconfig/requestinforesolver.go b/vendor/github.com/openshift/library-go/pkg/apiserver/apiserverconfig/requestinforesolver.go deleted file mode 100644 index d14647d55a87a..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/apiserver/apiserverconfig/requestinforesolver.go +++ /dev/null @@ -1,17 +0,0 @@ -package apiserverconfig - -import ( - "k8s.io/apimachinery/pkg/util/sets" - apirequest "k8s.io/apiserver/pkg/endpoints/request" -) - -func OpenshiftRequestInfoResolver() apirequest.RequestInfoResolver { - // Default API request info factory - requestInfoFactory := &apirequest.RequestInfoFactory{ - APIPrefixes: sets.NewString("api", "apis"), - GrouplessAPIPrefixes: sets.NewString("api"), - } - personalSARRequestInfoResolver := newPersonalSARRequestInfoResolver(requestInfoFactory) - projectRequestInfoResolver := newProjectRequestInfoResolver(personalSARRequestInfoResolver) - return projectRequestInfoResolver -} diff --git a/vendor/github.com/openshift/library-go/pkg/apiserver/httprequest/httprequest.go b/vendor/github.com/openshift/library-go/pkg/apiserver/httprequest/httprequest.go deleted file mode 100644 index 470ed3419a2cd..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/apiserver/httprequest/httprequest.go +++ /dev/null @@ -1,129 +0,0 @@ -package httprequest - -import ( - "net" - "net/http" - "strings" - - "github.com/munnerz/goautoneg" -) - -// PrefersHTML returns true if the request was made by something that looks like a browser, or can receive HTML -func PrefersHTML(req *http.Request) bool { - accepts := goautoneg.ParseAccept(req.Header.Get("Accept")) - acceptsHTML := false - acceptsJSON := false - for _, accept := range accepts { - if accept.Type == "text" && accept.SubType == "html" { - acceptsHTML = true - } else if accept.Type == "application" && accept.SubType == "json" { - acceptsJSON = true - } - } - - // If HTML is accepted, return true - if acceptsHTML { - return true - } - - // If JSON was specifically requested, return false - // This gives browsers a way to make requests and add an "Accept" header to request JSON - if acceptsJSON { - return false - } - - // In Intranet/Compatibility mode, IE sends an Accept header that does not contain "text/html". - if strings.HasPrefix(req.UserAgent(), "Mozilla") { - return true - } - - return false -} - -// SchemeHost returns the scheme and host used to make this request. -// Suitable for use to compute scheme/host in returned 302 redirect Location. -// Note the returned host is not normalized, and may or may not contain a port. -// Returned values are based on the following information: -// -// Host: -// * X-Forwarded-Host/X-Forwarded-Port headers -// * Host field on the request (parsed from Host header) -// * Host in the request's URL (parsed from Request-Line) -// -// Scheme: -// * X-Forwarded-Proto header -// * Existence of TLS information on the request implies https -// * Scheme in the request's URL (parsed from Request-Line) -// * Port (if included in calculated Host value, 443 implies https) -// * Otherwise, defaults to "http" -func SchemeHost(req *http.Request) (string /*scheme*/, string /*host*/) { - forwarded := func(attr string) string { - // Get the X-Forwarded- value - value := req.Header.Get("X-Forwarded-" + attr) - // Take the first comma-separated value, if multiple exist - value = strings.SplitN(value, ",", 2)[0] - // Trim whitespace - return strings.TrimSpace(value) - } - - hasExplicitHost := func(h string) bool { - _, _, err := net.SplitHostPort(h) - return err == nil - } - - forwardedHost := forwarded("Host") - host := "" - hostHadExplicitPort := false - switch { - case len(forwardedHost) > 0: - host = forwardedHost - hostHadExplicitPort = hasExplicitHost(host) - - // If both X-Forwarded-Host and X-Forwarded-Port are sent, use the explicit port info - if forwardedPort := forwarded("Port"); len(forwardedPort) > 0 { - if h, _, err := net.SplitHostPort(forwardedHost); err == nil { - host = net.JoinHostPort(h, forwardedPort) - } else { - host = net.JoinHostPort(forwardedHost, forwardedPort) - } - } - - case len(req.Host) > 0: - host = req.Host - hostHadExplicitPort = hasExplicitHost(host) - - case len(req.URL.Host) > 0: - host = req.URL.Host - hostHadExplicitPort = hasExplicitHost(host) - } - - port := "" - if _, p, err := net.SplitHostPort(host); err == nil { - port = p - } - - forwardedProto := forwarded("Proto") - scheme := "" - switch { - case len(forwardedProto) > 0: - scheme = forwardedProto - case req.TLS != nil: - scheme = "https" - case len(req.URL.Scheme) > 0: - scheme = req.URL.Scheme - case port == "443": - scheme = "https" - default: - scheme = "http" - } - - if !hostHadExplicitPort { - if (scheme == "https" && port == "443") || (scheme == "http" && port == "80") { - if hostWithoutPort, _, err := net.SplitHostPort(host); err == nil { - host = hostWithoutPort - } - } - } - - return scheme, host -} diff --git a/vendor/github.com/openshift/library-go/pkg/authentication/bootstrapauthenticator/bootstrap.go b/vendor/github.com/openshift/library-go/pkg/authentication/bootstrapauthenticator/bootstrap.go deleted file mode 100644 index c2c6b1f6b431b..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/authentication/bootstrapauthenticator/bootstrap.go +++ /dev/null @@ -1,179 +0,0 @@ -package bootstrapauthenticator - -import ( - "context" - "crypto/sha512" - "encoding/base64" - "fmt" - "time" - - "golang.org/x/crypto/bcrypt" - "k8s.io/klog/v2" - - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apiserver/pkg/authentication/authenticator" - "k8s.io/apiserver/pkg/authentication/user" - v1 "k8s.io/client-go/kubernetes/typed/core/v1" -) - -const ( - // BootstrapUser is the magic bootstrap OAuth user that can perform any action - BootstrapUser = "kube:admin" - // support basic auth which does not allow : in username - bootstrapUserBasicAuth = "kubeadmin" - // force the use of a secure password length - // expected format is 5char-5char-5char-5char - minPasswordLen = 23 -) - -var ( - // make it obvious that we refuse to honor short passwords - errPasswordTooShort = fmt.Errorf("%s password must be at least %d characters long", bootstrapUserBasicAuth, minPasswordLen) - - // we refuse to honor a secret that is too new when compared to kube-system - // since kube-system always exists and cannot be deleted - // and creation timestamp is controlled by the api, we can use this to - // detect if the secret was recreated after the initial bootstrapping - errSecretRecreated = fmt.Errorf("%s secret cannot be recreated", bootstrapUserBasicAuth) -) - -// Password checks a username and password against a backing authentication -// store and returns a Response or an error if the password could not be -// checked. -// -// This was copied from -// k8s.io/apiserver/pkg/authentication/authenticator due to its -// removal in 1.19. -type Password interface { - AuthenticatePassword(ctx context.Context, user, password string) (*authenticator.Response, bool, error) -} - -func New(getter BootstrapUserDataGetter) Password { - return &bootstrapPassword{ - getter: getter, - names: sets.NewString(BootstrapUser, bootstrapUserBasicAuth), - } -} - -type bootstrapPassword struct { - getter BootstrapUserDataGetter - names sets.String -} - -func (b *bootstrapPassword) AuthenticatePassword(ctx context.Context, username, password string) (*authenticator.Response, bool, error) { - if !b.names.Has(username) { - return nil, false, nil - } - - data, ok, err := b.getter.Get() - if err != nil || !ok { - return nil, ok, err - } - - // check length after we know that the secret is functional since - // we do not want to complain when the bootstrap user is disabled - if len(password) < minPasswordLen { - return nil, false, errPasswordTooShort - } - - if err := bcrypt.CompareHashAndPassword(data.PasswordHash, []byte(password)); err != nil { - if err == bcrypt.ErrMismatchedHashAndPassword { - klog.V(4).Infof("%s password mismatch", bootstrapUserBasicAuth) - return nil, false, nil - } - return nil, false, err - } - - // do not set other fields, see identitymapper.userToInfo func - return &authenticator.Response{ - User: &user.DefaultInfo{ - Name: BootstrapUser, - UID: data.UID, // uid ties this authentication to the current state of the secret - }, - }, true, nil -} - -type BootstrapUserData struct { - PasswordHash []byte - UID string -} - -type BootstrapUserDataGetter interface { - Get() (data *BootstrapUserData, ok bool, err error) - IsEnabled() (bool, error) -} - -func NewBootstrapUserDataGetter(secrets v1.SecretsGetter, namespaces v1.NamespacesGetter) BootstrapUserDataGetter { - return &bootstrapUserDataGetter{ - secrets: secrets.Secrets(metav1.NamespaceSystem), - namespaces: namespaces.Namespaces(), - } -} - -type bootstrapUserDataGetter struct { - secrets v1.SecretInterface - namespaces v1.NamespaceInterface -} - -func (b *bootstrapUserDataGetter) Get() (*BootstrapUserData, bool, error) { - secret, err := b.getBootstrapUserSecret() - if err != nil || secret == nil { - return nil, false, err - } - - hashedPassword := secret.Data[bootstrapUserBasicAuth] - - // make sure the value is a valid bcrypt hash - if _, err := bcrypt.Cost(hashedPassword); err != nil { - return nil, false, err - } - - exactSecret := string(secret.UID) + secret.ResourceVersion - both := append([]byte(exactSecret), hashedPassword...) - - // use a hash to avoid leaking any derivative of the password - // this makes it easy for us to tell if the secret changed - uidBytes := sha512.Sum512(both) - - return &BootstrapUserData{ - PasswordHash: hashedPassword, - UID: base64.RawURLEncoding.EncodeToString(uidBytes[:]), - }, true, nil -} - -func (b *bootstrapUserDataGetter) IsEnabled() (bool, error) { - secret, err := b.getBootstrapUserSecret() - if err == errSecretRecreated { - return false, nil - } - if err != nil || secret == nil { - return false, err - } - return true, nil -} - -func (b *bootstrapUserDataGetter) getBootstrapUserSecret() (*corev1.Secret, error) { - secret, err := b.secrets.Get(context.TODO(), bootstrapUserBasicAuth, metav1.GetOptions{}) - if errors.IsNotFound(err) { - klog.V(4).Infof("%s secret does not exist", bootstrapUserBasicAuth) - return nil, nil - } - if err != nil { - return nil, err - } - if secret.DeletionTimestamp != nil { - klog.V(4).Infof("%s secret is being deleted", bootstrapUserBasicAuth) - return nil, nil - } - namespace, err := b.namespaces.Get(context.TODO(), metav1.NamespaceSystem, metav1.GetOptions{}) - if err != nil { - return nil, err - } - if secret.CreationTimestamp.After(namespace.CreationTimestamp.Add(time.Hour)) { - return nil, errSecretRecreated - } - return secret, nil -} diff --git a/vendor/github.com/openshift/library-go/pkg/authorization/scopemetadata/clusterrole_describers.go b/vendor/github.com/openshift/library-go/pkg/authorization/scopemetadata/clusterrole_describers.go deleted file mode 100644 index e9b7518f3ddca..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/authorization/scopemetadata/clusterrole_describers.go +++ /dev/null @@ -1,86 +0,0 @@ -package scopemetadata - -import ( - "fmt" - "strings" -) - -// role:: -type ClusterRoleEvaluator struct{} - -var clusterRoleEvaluatorInstance = ClusterRoleEvaluator{} - -func (ClusterRoleEvaluator) Handles(scope string) bool { - return ClusterRoleEvaluatorHandles(scope) -} - -func (e ClusterRoleEvaluator) Validate(scope string) error { - _, _, _, err := ClusterRoleEvaluatorParseScope(scope) - return err -} - -func (e ClusterRoleEvaluator) Describe(scope string) (string, string, error) { - roleName, scopeNamespace, escalating, err := ClusterRoleEvaluatorParseScope(scope) - if err != nil { - return "", "", err - } - - // Anything you can do [in project "foo" | server-wide] that is also allowed by the "admin" role[, except access escalating resources like secrets] - - scopePhrase := "" - if scopeNamespace == scopesAllNamespaces { - scopePhrase = "server-wide" - } else { - scopePhrase = fmt.Sprintf("in project %q", scopeNamespace) - } - - warning := "" - escalatingPhrase := "" - if escalating { - warning = fmt.Sprintf("Includes access to escalating resources like secrets") - } else { - escalatingPhrase = ", except access escalating resources like secrets" - } - - description := fmt.Sprintf("Anything you can do %s that is also allowed by the %q role%s", scopePhrase, roleName, escalatingPhrase) - - return description, warning, nil -} - -func ClusterRoleEvaluatorHandles(scope string) bool { - return strings.HasPrefix(scope, clusterRoleIndicator) -} - -// ClusterRoleEvaluatorParseScope parses the requested scope, determining the requested role name, namespace, and if -// access to escalating objects is required. It will return an error if it doesn't parse cleanly -func ClusterRoleEvaluatorParseScope(scope string) (string /*role name*/, string /*namespace*/, bool /*escalating*/, error) { - if !ClusterRoleEvaluatorHandles(scope) { - return "", "", false, fmt.Errorf("bad format for scope %v", scope) - } - return parseClusterRoleScope(scope) -} - -func parseClusterRoleScope(scope string) (string /*role name*/, string /*namespace*/, bool /*escalating*/, error) { - if !strings.HasPrefix(scope, clusterRoleIndicator) { - return "", "", false, fmt.Errorf("bad format for scope %v", scope) - } - escalating := false - if strings.HasSuffix(scope, ":!") { - escalating = true - // clip that last segment before parsing the rest - scope = scope[:strings.LastIndex(scope, ":")] - } - - tokens := strings.SplitN(scope, ":", 2) - if len(tokens) != 2 { - return "", "", false, fmt.Errorf("bad format for scope %v", scope) - } - - // namespaces can't have colons, but roles can. pick last. - lastColonIndex := strings.LastIndex(tokens[1], ":") - if lastColonIndex <= 0 || lastColonIndex == (len(tokens[1])-1) { - return "", "", false, fmt.Errorf("bad format for scope %v", scope) - } - - return tokens[1][0:lastColonIndex], tokens[1][lastColonIndex+1:], escalating, nil -} diff --git a/vendor/github.com/openshift/library-go/pkg/authorization/scopemetadata/describers.go b/vendor/github.com/openshift/library-go/pkg/authorization/scopemetadata/describers.go deleted file mode 100644 index 65280256c8aa3..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/authorization/scopemetadata/describers.go +++ /dev/null @@ -1,17 +0,0 @@ -package scopemetadata - -// ScopeDescriber takes a scope and returns metadata about it -type ScopeDescriber interface { - // Handles returns true if this evaluator can evaluate this scope - Handles(scope string) bool - // Validate returns an error if the scope is malformed - Validate(scope string) error - // Describe returns a description, warning (typically used to warn about escalation dangers), or an error if the scope is malformed - Describe(scope string) (description string, warning string, err error) -} - -// ScopeDescribers map prefixes to a function that handles that prefix -var ScopeDescribers = []ScopeDescriber{ - UserEvaluator{}, - ClusterRoleEvaluator{}, -} diff --git a/vendor/github.com/openshift/library-go/pkg/authorization/scopemetadata/user_describers.go b/vendor/github.com/openshift/library-go/pkg/authorization/scopemetadata/user_describers.go deleted file mode 100644 index 586a7d787ae56..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/authorization/scopemetadata/user_describers.go +++ /dev/null @@ -1,68 +0,0 @@ -package scopemetadata - -import ( - "fmt" -) - -// these must agree with the scope authorizer, but it's an API we cannot realistically change -const ( - scopesAllNamespaces = "*" - - userIndicator = "user:" - clusterRoleIndicator = "role:" - - UserInfo = userIndicator + "info" - UserAccessCheck = userIndicator + "check-access" - - // UserListScopedProjects gives explicit permission to see the projects that this token can see. - UserListScopedProjects = userIndicator + "list-scoped-projects" - - // UserListAllProjects gives explicit permission to see the projects a user can see. This is often used to prime secondary ACL systems - // unrelated to openshift and to display projects for selection in a secondary UI. - UserListAllProjects = userIndicator + "list-projects" - - // UserFull includes all permissions of the user - userFull = userIndicator + "full" -) - -// user: -type UserEvaluator struct{} - -func (UserEvaluator) Handles(scope string) bool { - return UserEvaluatorHandles(scope) -} - -func (e UserEvaluator) Validate(scope string) error { - if e.Handles(scope) { - return nil - } - - return fmt.Errorf("unrecognized scope: %v", scope) -} - -var defaultSupportedScopesMap = map[string]string{ - UserInfo: "Read-only access to your user information (including username, identities, and group membership)", - UserAccessCheck: `Read-only access to view your privileges (for example, "can I create builds?")`, - UserListScopedProjects: `Read-only access to list your projects viewable with this token and view their metadata (display name, description, etc.)`, - UserListAllProjects: `Read-only access to list your projects and view their metadata (display name, description, etc.)`, - userFull: `Full read/write access with all of your permissions`, -} - -func (UserEvaluator) Describe(scope string) (string, string, error) { - switch scope { - case UserInfo, UserAccessCheck, UserListScopedProjects, UserListAllProjects: - return defaultSupportedScopesMap[scope], "", nil - case userFull: - return defaultSupportedScopesMap[scope], `Includes any access you have to escalating resources like secrets`, nil - default: - return "", "", fmt.Errorf("unrecognized scope: %v", scope) - } -} - -func UserEvaluatorHandles(scope string) bool { - switch scope { - case userFull, UserInfo, UserAccessCheck, UserListScopedProjects, UserListAllProjects: - return true - } - return false -} diff --git a/vendor/github.com/openshift/library-go/pkg/authorization/scopemetadata/validation.go b/vendor/github.com/openshift/library-go/pkg/authorization/scopemetadata/validation.go deleted file mode 100644 index 59a7009b9ef5d..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/authorization/scopemetadata/validation.go +++ /dev/null @@ -1,152 +0,0 @@ -package scopemetadata - -import ( - "fmt" - - kutilerrors "k8s.io/apimachinery/pkg/util/errors" - "k8s.io/apimachinery/pkg/util/validation/field" - - oauthv1 "github.com/openshift/api/oauth/v1" -) - -func ValidateScopes(scopes []string, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - - if len(scopes) == 0 { - allErrs = append(allErrs, field.Required(fldPath, "may not be empty")) - } - - for i, scope := range scopes { - illegalCharacter := false - // https://tools.ietf.org/html/rfc6749#section-3.3 (full list of allowed chars is %x21 / %x23-5B / %x5D-7E) - // for those without an ascii table, that's `!`, `#-[`, `]-~` inclusive. - for _, ch := range scope { - switch { - case ch == '!': - case ch >= '#' && ch <= '[': - case ch >= ']' && ch <= '~': - default: - allErrs = append(allErrs, field.Invalid(fldPath.Index(i), scope, fmt.Sprintf("%v not allowed", ch))) - illegalCharacter = true - } - } - if illegalCharacter { - continue - } - - found := false - for _, evaluator := range ScopeDescribers { - if !evaluator.Handles(scope) { - continue - } - - found = true - if err := evaluator.Validate(scope); err != nil { - allErrs = append(allErrs, field.Invalid(fldPath.Index(i), scope, err.Error())) - break - } - } - - if !found { - allErrs = append(allErrs, field.Invalid(fldPath.Index(i), scope, "no scope handler found")) - } - } - - return allErrs -} - -func ValidateScopeRestrictions(client *oauthv1.OAuthClient, scopes ...string) error { - if len(scopes) == 0 { - return fmt.Errorf("%s may not request unscoped tokens", client.Name) - } - - if len(client.ScopeRestrictions) == 0 { - return nil - } - - errs := []error{} - for _, scope := range scopes { - if err := validateScopeRestrictions(client, scope); err != nil { - errs = append(errs, err) - } - } - - return kutilerrors.NewAggregate(errs) -} - -func validateScopeRestrictions(client *oauthv1.OAuthClient, scope string) error { - errs := []error{} - - for _, restriction := range client.ScopeRestrictions { - if len(restriction.ExactValues) > 0 { - if err := validateLiteralScopeRestrictions(scope, restriction.ExactValues); err != nil { - errs = append(errs, err) - continue - } - return nil - } - - if restriction.ClusterRole != nil { - if !ClusterRoleEvaluatorHandles(scope) { - continue - } - if err := validateClusterRoleScopeRestrictions(scope, *restriction.ClusterRole); err != nil { - errs = append(errs, err) - continue - } - return nil - } - } - - // if we got here, then nothing matched. If we already have errors, do nothing, otherwise add one to make it report failed. - if len(errs) == 0 { - errs = append(errs, fmt.Errorf("%v did not match any scope restriction", scope)) - } - - return kutilerrors.NewAggregate(errs) -} - -func validateLiteralScopeRestrictions(scope string, literals []string) error { - for _, literal := range literals { - if literal == scope { - return nil - } - } - - return fmt.Errorf("%v not found in %v", scope, literals) -} - -func validateClusterRoleScopeRestrictions(scope string, restriction oauthv1.ClusterRoleScopeRestriction) error { - role, namespace, escalating, err := ClusterRoleEvaluatorParseScope(scope) - if err != nil { - return err - } - - foundName := false - for _, restrictedRoleName := range restriction.RoleNames { - if restrictedRoleName == "*" || restrictedRoleName == role { - foundName = true - break - } - } - if !foundName { - return fmt.Errorf("%v does not use an approved name", scope) - } - - foundNamespace := false - for _, restrictedNamespace := range restriction.Namespaces { - if restrictedNamespace == "*" || restrictedNamespace == namespace { - foundNamespace = true - break - } - } - if !foundNamespace { - return fmt.Errorf("%v does not use an approved namespace", scope) - } - - if escalating && !restriction.AllowEscalation { - return fmt.Errorf("%v is not allowed to escalate", scope) - } - - return nil -} diff --git a/vendor/github.com/openshift/library-go/pkg/config/client/client_config.go b/vendor/github.com/openshift/library-go/pkg/config/client/client_config.go deleted file mode 100644 index e2b90ca53147d..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/config/client/client_config.go +++ /dev/null @@ -1,126 +0,0 @@ -package client - -import ( - "io/ioutil" - "k8s.io/client-go/rest" - "k8s.io/client-go/tools/clientcmd" - "net/http" - - configv1 "github.com/openshift/api/config/v1" - "github.com/openshift/library-go/pkg/network" -) - -// GetKubeConfigOrInClusterConfig loads in-cluster config if kubeConfigFile is empty or the file if not, -// then applies overrides. -func GetKubeConfigOrInClusterConfig(kubeConfigFile string, overrides *ClientConnectionOverrides) (*rest.Config, error) { - if len(kubeConfigFile) > 0 { - return GetClientConfig(kubeConfigFile, overrides) - } - - clientConfig, err := rest.InClusterConfig() - if err != nil { - return nil, err - } - - applyClientConnectionOverrides(overrides, clientConfig) - - t := ClientTransportOverrides{WrapTransport: clientConfig.WrapTransport} - if overrides != nil { - t.MaxIdleConnsPerHost = overrides.MaxIdleConnsPerHost - } - clientConfig.WrapTransport = t.DefaultClientTransport - - return clientConfig, nil -} - -// GetClientConfig returns the rest.Config for a kubeconfig file -func GetClientConfig(kubeConfigFile string, overrides *ClientConnectionOverrides) (*rest.Config, error) { - kubeConfigBytes, err := ioutil.ReadFile(kubeConfigFile) - if err != nil { - return nil, err - } - kubeConfig, err := clientcmd.NewClientConfigFromBytes(kubeConfigBytes) - if err != nil { - return nil, err - } - clientConfig, err := kubeConfig.ClientConfig() - if err != nil { - return nil, err - } - applyClientConnectionOverrides(overrides, clientConfig) - - t := ClientTransportOverrides{WrapTransport: clientConfig.WrapTransport} - if overrides != nil { - t.MaxIdleConnsPerHost = overrides.MaxIdleConnsPerHost - } - clientConfig.WrapTransport = t.DefaultClientTransport - - return clientConfig, nil -} - -// applyClientConnectionOverrides updates a kubeConfig with the overrides from the config. -func applyClientConnectionOverrides(overrides *ClientConnectionOverrides, kubeConfig *rest.Config) { - if overrides == nil { - return - } - if overrides.QPS > 0 { - kubeConfig.QPS = overrides.QPS - } - if overrides.Burst > 0 { - kubeConfig.Burst = int(overrides.Burst) - } - if len(overrides.AcceptContentTypes) > 0 { - kubeConfig.ContentConfig.AcceptContentTypes = overrides.AcceptContentTypes - } - if len(overrides.ContentType) > 0 { - kubeConfig.ContentConfig.ContentType = overrides.ContentType - } - - // TODO both of these default values look wrong - // if we have no preferences at this point, claim that we accept both proto and json. We will get proto if the server supports it. - // this is a slightly niggly thing. If the server has proto and our client does not (possible, but not super likely) then this fails. - if len(kubeConfig.ContentConfig.AcceptContentTypes) == 0 { - kubeConfig.ContentConfig.AcceptContentTypes = "application/vnd.kubernetes.protobuf,application/json" - } - if len(kubeConfig.ContentConfig.ContentType) == 0 { - kubeConfig.ContentConfig.ContentType = "application/vnd.kubernetes.protobuf" - } -} - -type ClientTransportOverrides struct { - WrapTransport func(rt http.RoundTripper) http.RoundTripper - MaxIdleConnsPerHost int -} - -// defaultClientTransport sets defaults for a client Transport that are suitable for use by infrastructure components. -func (c ClientTransportOverrides) DefaultClientTransport(rt http.RoundTripper) http.RoundTripper { - transport, ok := rt.(*http.Transport) - if !ok { - return rt - } - - transport.DialContext = network.DefaultClientDialContext() - - // Hold open more internal idle connections - transport.MaxIdleConnsPerHost = 100 - if c.MaxIdleConnsPerHost > 0 { - transport.MaxIdleConnsPerHost = c.MaxIdleConnsPerHost - } - - if c.WrapTransport == nil { - return transport - - } - return c.WrapTransport(transport) -} - -// ClientConnectionOverrides allows overriding values for rest.Config not held in a kubeconfig. Most commonly used -// for QPS. Empty values are not used. -type ClientConnectionOverrides struct { - configv1.ClientConnectionOverrides - - // MaxIdleConnsPerHost, if non-zero, controls the maximum idle (keep-alive) connections to keep per-host:port. - // If zero, DefaultMaxIdleConnsPerHost is used. - // TODO roll this into the connection overrides in api - MaxIdleConnsPerHost int -} diff --git a/vendor/github.com/openshift/library-go/pkg/config/configdefaults/config_default.go b/vendor/github.com/openshift/library-go/pkg/config/configdefaults/config_default.go deleted file mode 100644 index 7d3f44caf2a8e..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/config/configdefaults/config_default.go +++ /dev/null @@ -1,81 +0,0 @@ -package configdefaults - -import ( - "time" - - configv1 "github.com/openshift/api/config/v1" - "github.com/openshift/library-go/pkg/crypto" -) - -func DefaultString(target *string, defaultVal string) { - if len(*target) == 0 { - *target = defaultVal - } -} - -func DefaultInt(target *int, defaultVal int) { - if *target == 0 { - *target = defaultVal - } -} - -func DefaultMetaDuration(target *time.Duration, defaultVal time.Duration) { - if *target == 0 { - *target = defaultVal - } -} - -func DefaultStringSlice(target *[]string, defaultVal []string) { - if len(*target) == 0 { - *target = defaultVal - } -} - -func SetRecommendedHTTPServingInfoDefaults(config *configv1.HTTPServingInfo) { - if config.MaxRequestsInFlight == 0 { - config.MaxRequestsInFlight = 3000 - } - if config.RequestTimeoutSeconds == 0 { - config.RequestTimeoutSeconds = 60 * 60 // one hour - } - - SetRecommendedServingInfoDefaults(&config.ServingInfo) -} - -func SetRecommendedServingInfoDefaults(config *configv1.ServingInfo) { - DefaultString(&config.BindAddress, "0.0.0.0:8443") - DefaultString(&config.BindNetwork, "tcp") - DefaultString(&config.CertInfo.KeyFile, "/var/run/secrets/serving-cert/tls.key") - DefaultString(&config.CertInfo.CertFile, "/var/run/secrets/serving-cert/tls.crt") - DefaultString(&config.ClientCA, "/var/run/configmaps/client-ca/ca-bundle.crt") - DefaultString(&config.MinTLSVersion, crypto.TLSVersionToNameOrDie(crypto.DefaultTLSVersion())) - - if len(config.CipherSuites) == 0 { - config.CipherSuites = crypto.CipherSuitesToNamesOrDie(crypto.DefaultCiphers()) - } -} - -func SetRecommendedGenericAPIServerConfigDefaults(config *configv1.GenericAPIServerConfig) { - SetRecommendedHTTPServingInfoDefaults(&config.ServingInfo) - SetRecommendedEtcdConnectionInfoDefaults(&config.StorageConfig.EtcdConnectionInfo) - SetRecommendedKubeClientConfigDefaults(&config.KubeClientConfig) -} - -func SetRecommendedEtcdConnectionInfoDefaults(config *configv1.EtcdConnectionInfo) { - DefaultStringSlice(&config.URLs, []string{"https://etcd.kube-system.svc:2379"}) - DefaultString(&config.CertInfo.KeyFile, "/var/run/secrets/etcd-client/tls.key") - DefaultString(&config.CertInfo.CertFile, "/var/run/secrets/etcd-client/tls.crt") - DefaultString(&config.CA, "/var/run/configmaps/etcd-serving-ca/ca-bundle.crt") -} - -func SetRecommendedKubeClientConfigDefaults(config *configv1.KubeClientConfig) { - // these are historical values - if config.ConnectionOverrides.QPS <= 0 { - config.ConnectionOverrides.QPS = 150.0 - } - if config.ConnectionOverrides.Burst <= 0 { - config.ConnectionOverrides.Burst = 300 - } - DefaultString(&config.ConnectionOverrides.AcceptContentTypes, "application/vnd.kubernetes.protobuf,application/json") - DefaultString(&config.ConnectionOverrides.ContentType, "application/vnd.kubernetes.protobuf") -} diff --git a/vendor/github.com/openshift/library-go/pkg/config/helpers/client.go b/vendor/github.com/openshift/library-go/pkg/config/helpers/client.go deleted file mode 100644 index f28ef543f1634..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/config/helpers/client.go +++ /dev/null @@ -1,71 +0,0 @@ -package helpers - -import ( - "io/ioutil" - - "k8s.io/client-go/rest" - "k8s.io/client-go/tools/clientcmd" - - configv1 "github.com/openshift/api/config/v1" - "github.com/openshift/library-go/pkg/config/client" -) - -// TODO this file needs to collapse with pkg/config/client. We cannot safely delegate from this file because this one -// TODO uses JSON and other uses protobuf. - -// GetKubeClientConfig loads in-cluster config if kubeConfigFile is empty or the file if not, then applies overrides. -func GetKubeClientConfig(kubeClientConnection configv1.KubeClientConfig) (*rest.Config, error) { - return GetKubeConfigOrInClusterConfig(kubeClientConnection.KubeConfig, kubeClientConnection.ConnectionOverrides) -} - -// GetKubeConfigOrInClusterConfig loads in-cluster config if kubeConfigFile is empty or the file if not, -// then applies overrides. -func GetKubeConfigOrInClusterConfig(kubeConfigFile string, overrides configv1.ClientConnectionOverrides) (*rest.Config, error) { - if len(kubeConfigFile) > 0 { - return GetClientConfig(kubeConfigFile, overrides) - } - - clientConfig, err := rest.InClusterConfig() - if err != nil { - return nil, err - } - applyClientConnectionOverrides(overrides, clientConfig) - clientConfig.WrapTransport = client.ClientTransportOverrides{WrapTransport: clientConfig.WrapTransport}.DefaultClientTransport - - return clientConfig, nil -} - -func GetClientConfig(kubeConfigFile string, overrides configv1.ClientConnectionOverrides) (*rest.Config, error) { - kubeConfigBytes, err := ioutil.ReadFile(kubeConfigFile) - if err != nil { - return nil, err - } - kubeConfig, err := clientcmd.NewClientConfigFromBytes(kubeConfigBytes) - if err != nil { - return nil, err - } - clientConfig, err := kubeConfig.ClientConfig() - if err != nil { - return nil, err - } - applyClientConnectionOverrides(overrides, clientConfig) - clientConfig.WrapTransport = client.ClientTransportOverrides{WrapTransport: clientConfig.WrapTransport}.DefaultClientTransport - - return clientConfig, nil -} - -// applyClientConnectionOverrides updates a kubeConfig with the overrides from the config. -func applyClientConnectionOverrides(overrides configv1.ClientConnectionOverrides, kubeConfig *rest.Config) { - if overrides.QPS != 0 { - kubeConfig.QPS = overrides.QPS - } - if overrides.Burst != 0 { - kubeConfig.Burst = int(overrides.Burst) - } - if len(overrides.AcceptContentTypes) != 0 { - kubeConfig.ContentConfig.AcceptContentTypes = overrides.AcceptContentTypes - } - if len(overrides.ContentType) != 0 { - kubeConfig.ContentConfig.ContentType = overrides.ContentType - } -} diff --git a/vendor/github.com/openshift/library-go/pkg/config/helpers/config_refs.go b/vendor/github.com/openshift/library-go/pkg/config/helpers/config_refs.go deleted file mode 100644 index 21d4d24f17366..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/config/helpers/config_refs.go +++ /dev/null @@ -1,145 +0,0 @@ -package helpers - -import ( - "strings" - - configv1 "github.com/openshift/api/config/v1" -) - -func GetHTTPServingInfoFileReferences(config *configv1.HTTPServingInfo) []*string { - if config == nil { - return []*string{} - } - - return GetServingInfoFileReferences(&config.ServingInfo) -} - -func GetServingInfoFileReferences(config *configv1.ServingInfo) []*string { - if config == nil { - return []*string{} - } - - refs := []*string{} - refs = append(refs, GetCertFileReferences(&config.CertInfo)...) - refs = append(refs, &config.ClientCA) - for i := range config.NamedCertificates { - refs = append(refs, &config.NamedCertificates[i].CertFile) - refs = append(refs, &config.NamedCertificates[i].KeyFile) - } - - return refs -} - -func GetCertFileReferences(config *configv1.CertInfo) []*string { - if config == nil { - return []*string{} - } - - refs := []*string{} - refs = append(refs, &config.CertFile) - refs = append(refs, &config.KeyFile) - return refs -} - -func GetRemoteConnectionInfoFileReferences(config *configv1.RemoteConnectionInfo) []*string { - if config == nil { - return []*string{} - } - - refs := []*string{} - refs = append(refs, GetCertFileReferences(&config.CertInfo)...) - refs = append(refs, &config.CA) - return refs -} - -func GetEtcdConnectionInfoFileReferences(config *configv1.EtcdConnectionInfo) []*string { - if config == nil { - return []*string{} - } - - refs := []*string{} - refs = append(refs, GetCertFileReferences(&config.CertInfo)...) - refs = append(refs, &config.CA) - return refs -} - -func GetStringSourceFileReferences(s *configv1.StringSource) []*string { - if s == nil { - return []*string{} - } - - return []*string{ - &s.File, - &s.KeyFile, - } -} - -func GetAdmissionPluginConfigFileReferences(config *configv1.AdmissionPluginConfig) []*string { - if config == nil { - return []*string{} - } - - refs := []*string{} - refs = append(refs, &config.Location) - return refs -} - -func GetAuditConfigFileReferences(config *configv1.AuditConfig) []*string { - if config == nil { - return []*string{} - } - - refs := []*string{} - refs = append(refs, &config.PolicyFile) - refs = append(refs, &config.AuditFilePath) - return refs -} - -func GetKubeClientConfigFileReferences(config *configv1.KubeClientConfig) []*string { - if config == nil { - return []*string{} - } - - refs := []*string{} - refs = append(refs, &config.KubeConfig) - return refs -} - -func GetGenericAPIServerConfigFileReferences(config *configv1.GenericAPIServerConfig) []*string { - if config == nil { - return []*string{} - } - - refs := []*string{} - refs = append(refs, GetHTTPServingInfoFileReferences(&config.ServingInfo)...) - refs = append(refs, GetEtcdConnectionInfoFileReferences(&config.StorageConfig.EtcdConnectionInfo)...) - refs = append(refs, GetAuditConfigFileReferences(&config.AuditConfig)...) - refs = append(refs, GetKubeClientConfigFileReferences(&config.KubeClientConfig)...) - - // TODO admission config file resolution is currently broken. - //for k := range config.AdmissionPluginConfig { - // refs = append(refs, GetAdmissionPluginConfigReferences(&(config.AdmissionPluginConfig[k]))...) - //} - return refs -} - -func GetFlagsWithFileExtensionsFileReferences(args map[string][]string) []*string { - if args == nil { - return []*string{} - } - - refs := []*string{} - for key, s := range args { - if len(s) == 0 { - continue - } - if !strings.HasSuffix(key, "-file") && !strings.HasSuffix(key, "-dir") { - continue - } - for i := range s { - refs = append(refs, &s[i]) - } - } - - return refs -} diff --git a/vendor/github.com/openshift/library-go/pkg/config/helpers/general.go b/vendor/github.com/openshift/library-go/pkg/config/helpers/general.go deleted file mode 100644 index fa7e4b46510be..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/config/helpers/general.go +++ /dev/null @@ -1,64 +0,0 @@ -package helpers - -import ( - "fmt" - "path/filepath" - "strings" -) - -// ResolvePaths updates the given refs to be absolute paths, relative to the given base directory. -// Empty and "-" paths are never resolved. -func ResolvePaths(refs []*string, base string) error { - for _, ref := range refs { - // Don't resolve empty paths, or "-" - if len(*ref) > 0 && *ref != "-" { - // Don't resolve absolute paths - if !filepath.IsAbs(*ref) { - *ref = filepath.Join(base, *ref) - } - } - } - return nil -} - -func makeRelative(path, base string) (string, error) { - if len(path) > 0 && path != "-" { - rel, err := filepath.Rel(base, path) - if err != nil { - return path, err - } - return rel, nil - } - return path, nil -} - -// RelativizePathWithNoBacksteps updates the given refs to be relative paths, relative to the given base directory as long as they do not require backsteps. -// Any path requiring a backstep is left as-is as long it is absolute. Any non-absolute path that can't be relativized produces an error -// Empty and "-" paths are never relativized. -func RelativizePathWithNoBacksteps(refs []*string, base string) error { - for _, ref := range refs { - // Don't relativize empty paths, or "-" - if len(*ref) > 0 && *ref != "-" { - rel, err := makeRelative(*ref, base) - if err != nil { - return err - } - - if rel == "-" { - rel = "./-" - } - - // if we have a backstep, don't mess with the path - if strings.HasPrefix(rel, "../") { - if filepath.IsAbs(*ref) { - continue - } - - return fmt.Errorf("%v requires backsteps and is not absolute", *ref) - } - - *ref = rel - } - } - return nil -} diff --git a/vendor/github.com/openshift/library-go/pkg/config/helpers/readresource.go b/vendor/github.com/openshift/library-go/pkg/config/helpers/readresource.go deleted file mode 100644 index 292f32f9d29c1..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/config/helpers/readresource.go +++ /dev/null @@ -1,167 +0,0 @@ -package helpers - -import ( - "bytes" - "encoding/json" - "fmt" - "io" - "io/ioutil" - "reflect" - - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/serializer" - kyaml "k8s.io/apimachinery/pkg/util/yaml" - "k8s.io/klog/v2" - "sigs.k8s.io/yaml" -) - -// InstallFunc is the "normal" function for installing scheme -type InstallFunc func(scheme *runtime.Scheme) error - -// ReadYAMLToInternal reads content of a reader and returns the runtime.Object that matches it. It chooses the match from -// the scheme installation that you provide. It converts to internal for you. -func ReadYAMLToInternal(reader io.Reader, schemeFns ...InstallFunc) (runtime.Object, error) { - if reader == nil || reflect.ValueOf(reader).IsNil() { - return nil, nil - } - data, err := ioutil.ReadAll(reader) - if err != nil { - return nil, err - } - jsonData, err := kyaml.ToJSON(data) - if err != nil { - // maybe we were already json - jsonData = data - } - - scheme := runtime.NewScheme() - for _, schemeFn := range schemeFns { - err := schemeFn(scheme) - if err != nil { - return nil, err - } - } - codec := serializer.NewCodecFactory(scheme).LegacyCodec(scheme.PrioritizedVersionsAllGroups()...) - - obj, err := runtime.Decode(codec, jsonData) - if err != nil { - return nil, captureSurroundingJSONForError("error reading config: ", jsonData, err) - } - // make sure there are no extra fields in jsonData - if err := strictDecodeCheck(jsonData, obj, scheme); err != nil { - return nil, err - } - - return obj, nil -} - -// ReadYAML reads content of a reader and returns the runtime.Object that matches it. It chooses the match from -// the scheme installation that you provide. It does not convert and it does not default. -func ReadYAML(reader io.Reader, schemeFns ...InstallFunc) (runtime.Object, error) { - if reader == nil || reflect.ValueOf(reader).IsNil() { - return nil, nil - } - data, err := ioutil.ReadAll(reader) - if err != nil { - return nil, err - } - jsonData, err := kyaml.ToJSON(data) - if err != nil { - // maybe we were already json - jsonData = data - } - - scheme := runtime.NewScheme() - for _, schemeFn := range schemeFns { - err := schemeFn(scheme) - if err != nil { - return nil, err - } - } - codec := serializer.NewCodecFactory(scheme).UniversalDeserializer() - - obj, err := runtime.Decode(codec, jsonData) - if err != nil { - return nil, captureSurroundingJSONForError("error reading config: ", jsonData, err) - } - // make sure there are no extra fields in jsonData - if err := strictDecodeCheck(jsonData, obj, scheme); err != nil { - return nil, err - } - - return obj, nil -} - -// TODO: we ultimately want a better decoder for JSON that allows us exact line numbers and better -// surrounding text description. This should be removed / replaced when that happens. -func captureSurroundingJSONForError(prefix string, data []byte, err error) error { - if syntaxErr, ok := err.(*json.SyntaxError); err != nil && ok { - offset := syntaxErr.Offset - begin := offset - 20 - if begin < 0 { - begin = 0 - } - end := offset + 20 - if end > int64(len(data)) { - end = int64(len(data)) - } - return fmt.Errorf("%s%v (found near '%s')", prefix, err, string(data[begin:end])) - } - if err != nil { - return fmt.Errorf("%s%v", prefix, err) - } - return err -} - -// strictDecodeCheck fails decodes when jsonData contains fields not included in the external version of obj -func strictDecodeCheck(jsonData []byte, obj runtime.Object, scheme *runtime.Scheme) error { - out, err := getExternalZeroValue(obj, scheme) // we need the external version of obj as that has the correct JSON struct tags - if err != nil { - klog.Errorf("Encountered config error %v in object %T, raw JSON:\n%s", err, obj, string(jsonData)) // TODO just return the error and die - // never error for now, we need to determine a safe way to make this check fatal - return nil - } - d := json.NewDecoder(bytes.NewReader(jsonData)) - d.DisallowUnknownFields() - // note that we only care about the error, out is discarded - if err := d.Decode(out); err != nil { - klog.Errorf("Encountered config error %v in object %T, raw JSON:\n%s", err, obj, string(jsonData)) // TODO just return the error and die - } - // never error for now, we need to determine a safe way to make this check fatal - return nil -} - -// getExternalZeroValue returns the zero value of the external version of obj -func getExternalZeroValue(obj runtime.Object, scheme *runtime.Scheme) (runtime.Object, error) { - gvks, _, err := scheme.ObjectKinds(obj) - if err != nil { - return nil, err - } - if len(gvks) == 0 { // should never happen - return nil, fmt.Errorf("no gvks found for %#v", obj) - } - return scheme.New(gvks[0]) -} - -// WriteYAML serializes a yaml file based on the scheme functions provided -func WriteYAML(obj runtime.Object, schemeFns ...InstallFunc) ([]byte, error) { - scheme := runtime.NewScheme() - for _, schemeFn := range schemeFns { - err := schemeFn(scheme) - if err != nil { - return nil, err - } - } - codec := serializer.NewCodecFactory(scheme).LegacyCodec(scheme.PrioritizedVersionsAllGroups()...) - - json, err := runtime.Encode(codec, obj) - if err != nil { - return nil, err - } - - content, err := yaml.JSONToYAML(json) - if err != nil { - return nil, err - } - return content, err -} diff --git a/vendor/github.com/openshift/library-go/pkg/config/validation/general.go b/vendor/github.com/openshift/library-go/pkg/config/validation/general.go deleted file mode 100644 index 3a5dcd0b7fe1c..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/config/validation/general.go +++ /dev/null @@ -1,130 +0,0 @@ -package validation - -import ( - "fmt" - "net" - "net/url" - "os" - "strings" - - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apimachinery/pkg/util/validation/field" -) - -type ValidationResults struct { - Warnings field.ErrorList - Errors field.ErrorList -} - -func (r *ValidationResults) Append(additionalResults ValidationResults) { - r.AddErrors(additionalResults.Errors...) - r.AddWarnings(additionalResults.Warnings...) -} - -func (r *ValidationResults) AddErrors(errors ...*field.Error) { - if len(errors) == 0 { - return - } - r.Errors = append(r.Errors, errors...) -} - -func (r *ValidationResults) AddWarnings(warnings ...*field.Error) { - if len(warnings) == 0 { - return - } - r.Warnings = append(r.Warnings, warnings...) -} - -func ValidateHostPort(value string, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - - if len(value) == 0 { - allErrs = append(allErrs, field.Required(fldPath, "")) - } else if _, _, err := net.SplitHostPort(value); err != nil { - allErrs = append(allErrs, field.Invalid(fldPath, value, "must be a host:port")) - } - - return allErrs -} - -func ValidateFile(path string, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - - if len(path) == 0 { - allErrs = append(allErrs, field.Required(fldPath, "")) - } else if _, err := os.Stat(path); err != nil { - allErrs = append(allErrs, field.Invalid(fldPath, path, fmt.Sprintf("could not read file: %v", err))) - } - - return allErrs -} - -func ValidateSecureURL(urlString string, fldPath *field.Path) (*url.URL, field.ErrorList) { - url, urlErrs := ValidateURL(urlString, fldPath) - if len(urlErrs) == 0 && url.Scheme != "https" { - urlErrs = append(urlErrs, field.Invalid(fldPath, urlString, "must use https scheme")) - } - return url, urlErrs -} - -func ValidateURL(urlString string, fldPath *field.Path) (*url.URL, field.ErrorList) { - allErrs := field.ErrorList{} - - urlObj, err := url.Parse(urlString) - if err != nil { - allErrs = append(allErrs, field.Invalid(fldPath, urlString, "must be a valid URL")) - return nil, allErrs - } - if len(urlObj.Scheme) == 0 { - allErrs = append(allErrs, field.Invalid(fldPath, urlString, "must contain a scheme (e.g. https://)")) - } - if len(urlObj.Host) == 0 { - allErrs = append(allErrs, field.Invalid(fldPath, urlString, "must contain a host")) - } - return urlObj, allErrs -} - -func ValidateDir(path string, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - if len(path) == 0 { - allErrs = append(allErrs, field.Required(fldPath, "")) - } else { - fileInfo, err := os.Stat(path) - if err != nil { - allErrs = append(allErrs, field.Invalid(fldPath, path, fmt.Sprintf("could not read info: %v", err))) - } else if !fileInfo.IsDir() { - allErrs = append(allErrs, field.Invalid(fldPath, path, "not a directory")) - } - } - - return allErrs -} - -// HostnameMatchSpecCandidates returns a list of match specs that would match the provided hostname -// Returns nil if len(hostname) == 0 -func HostnameMatchSpecCandidates(hostname string) []string { - if len(hostname) == 0 { - return nil - } - - // Exact match has priority - candidates := []string{hostname} - - // Replace successive labels in the name with wildcards, to require an exact match on number of - // path segments, because certificates cannot wildcard multiple levels of subdomains - // - // This is primarily to be consistent with tls.Config#getCertificate implementation - // - // It using a cert signed for *.foo.example.com and *.bar.example.com by specifying the name *.*.example.com - labels := strings.Split(hostname, ".") - for i := range labels { - labels[i] = "*" - candidates = append(candidates, strings.Join(labels, ".")) - } - return candidates -} - -// HostnameMatches returns true if the given hostname is matched by the given matchSpec -func HostnameMatches(hostname string, matchSpec string) bool { - return sets.NewString(HostnameMatchSpecCandidates(hostname)...).Has(matchSpec) -} diff --git a/vendor/github.com/openshift/library-go/pkg/config/validation/serving_info.go b/vendor/github.com/openshift/library-go/pkg/config/validation/serving_info.go deleted file mode 100644 index 947f5c91482e3..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/config/validation/serving_info.go +++ /dev/null @@ -1,174 +0,0 @@ -package validation - -import ( - "crypto/tls" - "crypto/x509" - "fmt" - "strings" - - "k8s.io/apimachinery/pkg/util/sets" - utilvalidation "k8s.io/apimachinery/pkg/util/validation" - "k8s.io/apimachinery/pkg/util/validation/field" - - configv1 "github.com/openshift/api/config/v1" - "github.com/openshift/library-go/pkg/crypto" -) - -func ValidateHTTPServingInfo(info configv1.HTTPServingInfo, fldPath *field.Path) ValidationResults { - validationResults := ValidationResults{} - - validationResults.Append(ValidateServingInfo(info.ServingInfo, true, fldPath)) - - if info.MaxRequestsInFlight < 0 { - validationResults.AddErrors(field.Invalid(fldPath.Child("maxRequestsInFlight"), info.MaxRequestsInFlight, "must be zero (no limit) or greater")) - } - - if info.RequestTimeoutSeconds < -1 { - validationResults.AddErrors(field.Invalid(fldPath.Child("requestTimeoutSeconds"), info.RequestTimeoutSeconds, "must be -1 (no timeout), 0 (default timeout), or greater")) - } - - return validationResults -} - -func ValidateServingInfo(info configv1.ServingInfo, certificatesRequired bool, fldPath *field.Path) ValidationResults { - validationResults := ValidationResults{} - - validationResults.AddErrors(ValidateHostPort(info.BindAddress, fldPath.Child("bindAddress"))...) - validationResults.AddErrors(ValidateCertInfo(info.CertInfo, certificatesRequired, fldPath)...) - - if len(info.NamedCertificates) > 0 && len(info.CertFile) == 0 { - validationResults.AddErrors(field.Invalid(fldPath.Child("namedCertificates"), "", "a default certificate and key is required in certFile/keyFile in order to use namedCertificates")) - } - - validationResults.Append(ValidateNamedCertificates(fldPath.Child("namedCertificates"), info.NamedCertificates)) - - switch info.BindNetwork { - case "tcp", "tcp4", "tcp6": - default: - validationResults.AddErrors(field.Invalid(fldPath.Child("bindNetwork"), info.BindNetwork, "must be 'tcp', 'tcp4', or 'tcp6'")) - } - - if len(info.CertFile) > 0 { - if len(info.ClientCA) > 0 { - validationResults.AddErrors(ValidateFile(info.ClientCA, fldPath.Child("clientCA"))...) - } - } else { - if certificatesRequired && len(info.ClientCA) > 0 { - validationResults.AddErrors(field.Invalid(fldPath.Child("clientCA"), info.ClientCA, "cannot specify a clientCA without a certFile")) - } - } - - if _, err := crypto.TLSVersion(info.MinTLSVersion); err != nil { - validationResults.AddErrors(field.NotSupported(fldPath.Child("minTLSVersion"), info.MinTLSVersion, crypto.ValidTLSVersions())) - } - for i, cipher := range info.CipherSuites { - if _, err := crypto.CipherSuite(cipher); err != nil { - validationResults.AddErrors(field.NotSupported(fldPath.Child("cipherSuites").Index(i), cipher, crypto.ValidCipherSuites())) - } - } - - return validationResults -} - -func ValidateNamedCertificates(fldPath *field.Path, namedCertificates []configv1.NamedCertificate) ValidationResults { - validationResults := ValidationResults{} - - takenNames := sets.NewString() - for i, namedCertificate := range namedCertificates { - idxPath := fldPath.Index(i) - - certDNSNames := []string{} - if len(namedCertificate.CertFile) == 0 { - validationResults.AddErrors(field.Required(idxPath.Child("certInfo"), "")) - } else if certInfoErrors := ValidateCertInfo(namedCertificate.CertInfo, false, idxPath); len(certInfoErrors) > 0 { - validationResults.AddErrors(certInfoErrors...) - } else if cert, err := tls.LoadX509KeyPair(namedCertificate.CertFile, namedCertificate.KeyFile); err != nil { - validationResults.AddErrors(field.Invalid(idxPath.Child("certInfo"), namedCertificate.CertInfo, fmt.Sprintf("error loading certificate/key: %v", err))) - } else { - leaf, _ := x509.ParseCertificate(cert.Certificate[0]) - certDNSNames = append(certDNSNames, leaf.Subject.CommonName) - certDNSNames = append(certDNSNames, leaf.DNSNames...) - } - - if len(namedCertificate.Names) == 0 { - validationResults.AddErrors(field.Required(idxPath.Child("names"), "")) - } - for j, name := range namedCertificate.Names { - jdxPath := idxPath.Child("names").Index(j) - if len(name) == 0 { - validationResults.AddErrors(field.Required(jdxPath, "")) - continue - } - - if takenNames.Has(name) { - validationResults.AddErrors(field.Invalid(jdxPath, name, "this name is already used in another named certificate")) - continue - } - - // validate names as domain names or *.*.foo.com domain names - validDNSName := true - for _, s := range strings.Split(name, ".") { - if s != "*" && len(utilvalidation.IsDNS1123Label(s)) != 0 { - validDNSName = false - } - } - if !validDNSName { - validationResults.AddErrors(field.Invalid(jdxPath, name, "must be a valid DNS name")) - continue - } - - takenNames.Insert(name) - - // validate certificate has common name or subject alt names that match - if len(certDNSNames) > 0 { - foundMatch := false - for _, dnsName := range certDNSNames { - if HostnameMatches(dnsName, name) { - foundMatch = true - break - } - // if the cert has a wildcard dnsName, and we've configured a non-wildcard name, see if our specified name will match against the dnsName. - if strings.HasPrefix(dnsName, "*.") && !strings.HasPrefix(name, "*.") && HostnameMatches(name, dnsName) { - foundMatch = true - break - } - } - if !foundMatch { - validationResults.AddWarnings(field.Invalid(jdxPath, name, "the specified certificate does not have a CommonName or DNS subjectAltName that matches this name")) - } - } - } - } - - return validationResults -} - -func ValidateCertInfo(certInfo configv1.CertInfo, required bool, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - - if required { - if len(certInfo.CertFile) == 0 { - allErrs = append(allErrs, field.Required(fldPath.Child("certFile"), "The certificate file must be provided")) - } - if len(certInfo.KeyFile) == 0 { - allErrs = append(allErrs, field.Required(fldPath.Child("keyFile"), "The certificate key must be provided")) - } - } - - if (len(certInfo.CertFile) == 0) != (len(certInfo.KeyFile) == 0) { - allErrs = append(allErrs, field.Required(fldPath.Child("certFile"), "Both the certificate file and the certificate key must be provided together or not at all")) - allErrs = append(allErrs, field.Required(fldPath.Child("keyFile"), "Both the certificate file and the certificate key must be provided together or not at all")) - } - - if len(certInfo.CertFile) > 0 { - allErrs = append(allErrs, ValidateFile(certInfo.CertFile, fldPath.Child("certFile"))...) - } - - if len(certInfo.KeyFile) > 0 { - allErrs = append(allErrs, ValidateFile(certInfo.KeyFile, fldPath.Child("keyFile"))...) - } - - // validate certfile/keyfile load/parse? - - return allErrs -} diff --git a/vendor/github.com/openshift/library-go/pkg/crypto/crypto.go b/vendor/github.com/openshift/library-go/pkg/crypto/crypto.go deleted file mode 100644 index 544ea9fb85591..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/crypto/crypto.go +++ /dev/null @@ -1,1182 +0,0 @@ -package crypto - -import ( - "bytes" - "crypto" - "crypto/ecdsa" - "crypto/rand" - "crypto/rsa" - "crypto/sha1" - "crypto/tls" - "crypto/x509" - "crypto/x509/pkix" - "encoding/pem" - "errors" - "fmt" - "io" - "io/ioutil" - "math/big" - mathrand "math/rand" - "net" - "os" - "path/filepath" - "sort" - "strconv" - "sync" - "time" - - "k8s.io/klog/v2" - - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/apiserver/pkg/authentication/user" - "k8s.io/client-go/util/cert" -) - -// TLS versions that are known to golang. Go 1.13 adds support for -// TLS 1.3 that's opt-out with a build flag. -var versions = map[string]uint16{ - "VersionTLS10": tls.VersionTLS10, - "VersionTLS11": tls.VersionTLS11, - "VersionTLS12": tls.VersionTLS12, - "VersionTLS13": tls.VersionTLS13, -} - -// TLS versions that are enabled. -var supportedVersions = map[string]uint16{ - "VersionTLS10": tls.VersionTLS10, - "VersionTLS11": tls.VersionTLS11, - "VersionTLS12": tls.VersionTLS12, - "VersionTLS13": tls.VersionTLS13, -} - -// TLSVersionToNameOrDie given a tls version as an int, return its readable name -func TLSVersionToNameOrDie(intVal uint16) string { - matches := []string{} - for key, version := range versions { - if version == intVal { - matches = append(matches, key) - } - } - - if len(matches) == 0 { - panic(fmt.Sprintf("no name found for %d", intVal)) - } - if len(matches) > 1 { - panic(fmt.Sprintf("multiple names found for %d: %v", intVal, matches)) - } - return matches[0] -} - -func TLSVersion(versionName string) (uint16, error) { - if len(versionName) == 0 { - return DefaultTLSVersion(), nil - } - if version, ok := versions[versionName]; ok { - return version, nil - } - return 0, fmt.Errorf("unknown tls version %q", versionName) -} -func TLSVersionOrDie(versionName string) uint16 { - version, err := TLSVersion(versionName) - if err != nil { - panic(err) - } - return version -} - -// TLS versions that are known to golang, but may not necessarily be enabled. -func GolangTLSVersions() []string { - supported := []string{} - for k := range versions { - supported = append(supported, k) - } - sort.Strings(supported) - return supported -} - -// Returns the build enabled TLS versions. -func ValidTLSVersions() []string { - validVersions := []string{} - for k := range supportedVersions { - validVersions = append(validVersions, k) - } - sort.Strings(validVersions) - return validVersions -} -func DefaultTLSVersion() uint16 { - // Can't use SSLv3 because of POODLE and BEAST - // Can't use TLSv1.0 because of POODLE and BEAST using CBC cipher - // Can't use TLSv1.1 because of RC4 cipher usage - return tls.VersionTLS12 -} - -// ciphersTLS13 copies golang 1.13 implementation, where TLS1.3 suites are not -// configurable (cipherSuites field is ignored for TLS1.3 flows and all of the -// below three - and none other - are used) -var ciphersTLS13 = map[string]uint16{ - "TLS_AES_128_GCM_SHA256": tls.TLS_AES_128_GCM_SHA256, - "TLS_AES_256_GCM_SHA384": tls.TLS_AES_256_GCM_SHA384, - "TLS_CHACHA20_POLY1305_SHA256": tls.TLS_CHACHA20_POLY1305_SHA256, -} - -var ciphers = map[string]uint16{ - "TLS_RSA_WITH_RC4_128_SHA": tls.TLS_RSA_WITH_RC4_128_SHA, - "TLS_RSA_WITH_3DES_EDE_CBC_SHA": tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA, - "TLS_RSA_WITH_AES_128_CBC_SHA": tls.TLS_RSA_WITH_AES_128_CBC_SHA, - "TLS_RSA_WITH_AES_256_CBC_SHA": tls.TLS_RSA_WITH_AES_256_CBC_SHA, - "TLS_RSA_WITH_AES_128_CBC_SHA256": tls.TLS_RSA_WITH_AES_128_CBC_SHA256, - "TLS_RSA_WITH_AES_128_GCM_SHA256": tls.TLS_RSA_WITH_AES_128_GCM_SHA256, - "TLS_RSA_WITH_AES_256_GCM_SHA384": tls.TLS_RSA_WITH_AES_256_GCM_SHA384, - "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA": tls.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, - "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA": tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, - "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA": tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, - "TLS_ECDHE_RSA_WITH_RC4_128_SHA": tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA, - "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA": tls.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, - "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA": tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, - "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA": tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, - "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256": tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, - "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256": tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256": tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, - "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256": tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, - "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384": tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, - "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384": tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, - "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305": tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, - "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305": tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, - "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256": tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, - "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256": tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, -} - -// openSSLToIANACiphersMap maps OpenSSL cipher suite names to IANA names -// ref: https://www.iana.org/assignments/tls-parameters/tls-parameters.xml -var openSSLToIANACiphersMap = map[string]string{ - // TLS 1.3 ciphers - not configurable in go 1.13, all of them are used in TLSv1.3 flows - // "TLS_AES_128_GCM_SHA256": "TLS_AES_128_GCM_SHA256", // 0x13,0x01 - // "TLS_AES_256_GCM_SHA384": "TLS_AES_256_GCM_SHA384", // 0x13,0x02 - // "TLS_CHACHA20_POLY1305_SHA256": "TLS_CHACHA20_POLY1305_SHA256", // 0x13,0x03 - - // TLS 1.2 - "ECDHE-ECDSA-AES128-GCM-SHA256": "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", // 0xC0,0x2B - "ECDHE-RSA-AES128-GCM-SHA256": "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", // 0xC0,0x2F - "ECDHE-ECDSA-AES256-GCM-SHA384": "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", // 0xC0,0x2C - "ECDHE-RSA-AES256-GCM-SHA384": "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", // 0xC0,0x30 - "ECDHE-ECDSA-CHACHA20-POLY1305": "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", // 0xCC,0xA9 - "ECDHE-RSA-CHACHA20-POLY1305": "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", // 0xCC,0xA8 - "ECDHE-ECDSA-AES128-SHA256": "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", // 0xC0,0x23 - "ECDHE-RSA-AES128-SHA256": "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", // 0xC0,0x27 - "AES128-GCM-SHA256": "TLS_RSA_WITH_AES_128_GCM_SHA256", // 0x00,0x9C - "AES256-GCM-SHA384": "TLS_RSA_WITH_AES_256_GCM_SHA384", // 0x00,0x9D - "AES128-SHA256": "TLS_RSA_WITH_AES_128_CBC_SHA256", // 0x00,0x3C - - // TLS 1 - "ECDHE-ECDSA-AES128-SHA": "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", // 0xC0,0x09 - "ECDHE-RSA-AES128-SHA": "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", // 0xC0,0x13 - "ECDHE-ECDSA-AES256-SHA": "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", // 0xC0,0x0A - "ECDHE-RSA-AES256-SHA": "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", // 0xC0,0x14 - - // SSL 3 - "AES128-SHA": "TLS_RSA_WITH_AES_128_CBC_SHA", // 0x00,0x2F - "AES256-SHA": "TLS_RSA_WITH_AES_256_CBC_SHA", // 0x00,0x35 - "DES-CBC3-SHA": "TLS_RSA_WITH_3DES_EDE_CBC_SHA", // 0x00,0x0A -} - -// CipherSuitesToNamesOrDie given a list of cipher suites as ints, return their readable names -func CipherSuitesToNamesOrDie(intVals []uint16) []string { - ret := []string{} - for _, intVal := range intVals { - ret = append(ret, CipherSuiteToNameOrDie(intVal)) - } - - return ret -} - -// CipherSuiteToNameOrDie given a cipher suite as an int, return its readable name -func CipherSuiteToNameOrDie(intVal uint16) string { - // The following suite ids appear twice in the cipher map (with - // and without the _SHA256 suffix) for the purposes of backwards - // compatibility. Always return the current rather than the legacy - // name. - switch intVal { - case tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256: - return "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256" - case tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256: - return "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256" - } - - matches := []string{} - for key, version := range ciphers { - if version == intVal { - matches = append(matches, key) - } - } - - if len(matches) == 0 { - panic(fmt.Sprintf("no name found for %d", intVal)) - } - if len(matches) > 1 { - panic(fmt.Sprintf("multiple names found for %d: %v", intVal, matches)) - } - return matches[0] -} - -func CipherSuite(cipherName string) (uint16, error) { - if cipher, ok := ciphers[cipherName]; ok { - return cipher, nil - } - - if _, ok := ciphersTLS13[cipherName]; ok { - return 0, fmt.Errorf("all golang TLSv1.3 ciphers are always used for TLSv1.3 flows") - } - - return 0, fmt.Errorf("unknown cipher name %q", cipherName) -} - -func CipherSuitesOrDie(cipherNames []string) []uint16 { - if len(cipherNames) == 0 { - return DefaultCiphers() - } - cipherValues := []uint16{} - for _, cipherName := range cipherNames { - cipher, err := CipherSuite(cipherName) - if err != nil { - panic(err) - } - cipherValues = append(cipherValues, cipher) - } - return cipherValues -} -func ValidCipherSuites() []string { - validCipherSuites := []string{} - for k := range ciphers { - validCipherSuites = append(validCipherSuites, k) - } - sort.Strings(validCipherSuites) - return validCipherSuites -} -func DefaultCiphers() []uint16 { - // HTTP/2 mandates TLS 1.2 or higher with an AEAD cipher - // suite (GCM, Poly1305) and ephemeral key exchange (ECDHE, DHE) for - // perfect forward secrecy. Servers may provide additional cipher - // suites for backwards compatibility with HTTP/1.1 clients. - // See RFC7540, section 9.2 (Use of TLS Features) and Appendix A - // (TLS 1.2 Cipher Suite Black List). - return []uint16{ - tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, - tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, - tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, - tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, // required by http/2 - tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, - tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, - tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, // forbidden by http/2, not flagged by http2isBadCipher() in go1.8 - tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, // forbidden by http/2, not flagged by http2isBadCipher() in go1.8 - tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, // forbidden by http/2 - tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, // forbidden by http/2 - tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, // forbidden by http/2 - tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, // forbidden by http/2 - tls.TLS_RSA_WITH_AES_128_GCM_SHA256, // forbidden by http/2 - tls.TLS_RSA_WITH_AES_256_GCM_SHA384, // forbidden by http/2 - // the next one is in the intermediate suite, but go1.8 http2isBadCipher() complains when it is included at the recommended index - // because it comes after ciphers forbidden by the http/2 spec - // tls.TLS_RSA_WITH_AES_128_CBC_SHA256, - // tls.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, // forbidden by http/2, disabled to mitigate SWEET32 attack - // tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA, // forbidden by http/2, disabled to mitigate SWEET32 attack - tls.TLS_RSA_WITH_AES_128_CBC_SHA, // forbidden by http/2 - tls.TLS_RSA_WITH_AES_256_CBC_SHA, // forbidden by http/2 - } -} - -// SecureTLSConfig enforces the default minimum security settings for the cluster. -func SecureTLSConfig(config *tls.Config) *tls.Config { - if config.MinVersion == 0 { - config.MinVersion = DefaultTLSVersion() - } - - config.PreferServerCipherSuites = true - if len(config.CipherSuites) == 0 { - config.CipherSuites = DefaultCiphers() - } - return config -} - -// OpenSSLToIANACipherSuites maps input OpenSSL Cipher Suite names to their -// IANA counterparts. -// Unknown ciphers are left out. -func OpenSSLToIANACipherSuites(ciphers []string) []string { - ianaCiphers := make([]string, 0, len(ciphers)) - - for _, c := range ciphers { - ianaCipher, found := openSSLToIANACiphersMap[c] - if found { - ianaCiphers = append(ianaCiphers, ianaCipher) - } - } - - return ianaCiphers -} - -type TLSCertificateConfig struct { - Certs []*x509.Certificate - Key crypto.PrivateKey -} - -type TLSCARoots struct { - Roots []*x509.Certificate -} - -func (c *TLSCertificateConfig) WriteCertConfigFile(certFile, keyFile string) error { - // ensure parent dir - if err := os.MkdirAll(filepath.Dir(certFile), os.FileMode(0755)); err != nil { - return err - } - certFileWriter, err := os.OpenFile(certFile, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) - if err != nil { - return err - } - if err := os.MkdirAll(filepath.Dir(keyFile), os.FileMode(0755)); err != nil { - return err - } - keyFileWriter, err := os.OpenFile(keyFile, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600) - if err != nil { - return err - } - - if err := writeCertificates(certFileWriter, c.Certs...); err != nil { - return err - } - if err := writeKeyFile(keyFileWriter, c.Key); err != nil { - return err - } - - if err := certFileWriter.Close(); err != nil { - return err - } - if err := keyFileWriter.Close(); err != nil { - return err - } - - return nil -} - -func (c *TLSCertificateConfig) WriteCertConfig(certFile, keyFile io.Writer) error { - if err := writeCertificates(certFile, c.Certs...); err != nil { - return err - } - if err := writeKeyFile(keyFile, c.Key); err != nil { - return err - } - return nil -} - -func (c *TLSCertificateConfig) GetPEMBytes() ([]byte, []byte, error) { - certBytes, err := EncodeCertificates(c.Certs...) - if err != nil { - return nil, nil, err - } - keyBytes, err := encodeKey(c.Key) - if err != nil { - return nil, nil, err - } - - return certBytes, keyBytes, nil -} - -func GetTLSCertificateConfig(certFile, keyFile string) (*TLSCertificateConfig, error) { - if len(certFile) == 0 { - return nil, errors.New("certFile missing") - } - if len(keyFile) == 0 { - return nil, errors.New("keyFile missing") - } - - certPEMBlock, err := ioutil.ReadFile(certFile) - if err != nil { - return nil, err - } - certs, err := cert.ParseCertsPEM(certPEMBlock) - if err != nil { - return nil, fmt.Errorf("Error reading %s: %s", certFile, err) - } - - keyPEMBlock, err := ioutil.ReadFile(keyFile) - if err != nil { - return nil, err - } - keyPairCert, err := tls.X509KeyPair(certPEMBlock, keyPEMBlock) - if err != nil { - return nil, err - } - key := keyPairCert.PrivateKey - - return &TLSCertificateConfig{certs, key}, nil -} - -func GetTLSCertificateConfigFromBytes(certBytes, keyBytes []byte) (*TLSCertificateConfig, error) { - if len(certBytes) == 0 { - return nil, errors.New("certFile missing") - } - if len(keyBytes) == 0 { - return nil, errors.New("keyFile missing") - } - - certs, err := cert.ParseCertsPEM(certBytes) - if err != nil { - return nil, fmt.Errorf("Error reading cert: %s", err) - } - - keyPairCert, err := tls.X509KeyPair(certBytes, keyBytes) - if err != nil { - return nil, err - } - key := keyPairCert.PrivateKey - - return &TLSCertificateConfig{certs, key}, nil -} - -const ( - DefaultCertificateLifetimeInDays = 365 * 2 // 2 years - DefaultCACertificateLifetimeInDays = 365 * 5 // 5 years - - // Default keys are 2048 bits - keyBits = 2048 -) - -type CA struct { - Config *TLSCertificateConfig - - SerialGenerator SerialGenerator -} - -// SerialGenerator is an interface for getting a serial number for the cert. It MUST be thread-safe. -type SerialGenerator interface { - Next(template *x509.Certificate) (int64, error) -} - -// SerialFileGenerator returns a unique, monotonically increasing serial number and ensures the CA on disk records that value. -type SerialFileGenerator struct { - SerialFile string - - // lock guards access to the Serial field - lock sync.Mutex - Serial int64 -} - -func NewSerialFileGenerator(serialFile string) (*SerialFileGenerator, error) { - // read serial file, it must already exist - serial, err := fileToSerial(serialFile) - if err != nil { - return nil, err - } - - generator := &SerialFileGenerator{ - Serial: serial, - SerialFile: serialFile, - } - - // 0 is unused and 1 is reserved for the CA itself - // Thus we need to guarantee that the first external call to SerialFileGenerator.Next returns 2+ - // meaning that SerialFileGenerator.Serial must not be less than 1 (it is guaranteed to be non-negative) - if generator.Serial < 1 { - // fake a call to Next so the file stays in sync and Serial is incremented - if _, err := generator.Next(&x509.Certificate{}); err != nil { - return nil, err - } - } - - return generator, nil -} - -// Next returns a unique, monotonically increasing serial number and ensures the CA on disk records that value. -func (s *SerialFileGenerator) Next(template *x509.Certificate) (int64, error) { - s.lock.Lock() - defer s.lock.Unlock() - - // do a best effort check to make sure concurrent external writes are not occurring to the underlying serial file - serial, err := fileToSerial(s.SerialFile) - if err != nil { - return 0, err - } - if serial != s.Serial { - return 0, fmt.Errorf("serial file %s out of sync ram=%d disk=%d", s.SerialFile, s.Serial, serial) - } - - next := s.Serial + 1 - s.Serial = next - - // Output in hex, padded to multiples of two characters for OpenSSL's sake - serialText := fmt.Sprintf("%X", next) - if len(serialText)%2 == 1 { - serialText = "0" + serialText - } - // always add a newline at the end to have a valid file - serialText += "\n" - - if err := ioutil.WriteFile(s.SerialFile, []byte(serialText), os.FileMode(0640)); err != nil { - return 0, err - } - return next, nil -} - -func fileToSerial(serialFile string) (int64, error) { - serialData, err := ioutil.ReadFile(serialFile) - if err != nil { - return 0, err - } - - // read the file as a single hex number after stripping any whitespace - serial, err := strconv.ParseInt(string(bytes.TrimSpace(serialData)), 16, 64) - if err != nil { - return 0, err - } - - if serial < 0 { - return 0, fmt.Errorf("invalid negative serial %d in serial file %s", serial, serialFile) - } - - return serial, nil -} - -// RandomSerialGenerator returns a serial based on time.Now and the subject -type RandomSerialGenerator struct { -} - -func (s *RandomSerialGenerator) Next(template *x509.Certificate) (int64, error) { - return randomSerialNumber(), nil -} - -// randomSerialNumber returns a random int64 serial number based on -// time.Now. It is defined separately from the generator interface so -// that the caller doesn't have to worry about an input template or -// error - these are unnecessary when creating a random serial. -func randomSerialNumber() int64 { - r := mathrand.New(mathrand.NewSource(time.Now().UTC().UnixNano())) - return r.Int63() -} - -// EnsureCA returns a CA, whether it was created (as opposed to pre-existing), and any error -// if serialFile is empty, a RandomSerialGenerator will be used -func EnsureCA(certFile, keyFile, serialFile, name string, expireDays int) (*CA, bool, error) { - if ca, err := GetCA(certFile, keyFile, serialFile); err == nil { - return ca, false, err - } - ca, err := MakeSelfSignedCA(certFile, keyFile, serialFile, name, expireDays) - return ca, true, err -} - -// if serialFile is empty, a RandomSerialGenerator will be used -func GetCA(certFile, keyFile, serialFile string) (*CA, error) { - caConfig, err := GetTLSCertificateConfig(certFile, keyFile) - if err != nil { - return nil, err - } - - var serialGenerator SerialGenerator - if len(serialFile) > 0 { - serialGenerator, err = NewSerialFileGenerator(serialFile) - if err != nil { - return nil, err - } - } else { - serialGenerator = &RandomSerialGenerator{} - } - - return &CA{ - SerialGenerator: serialGenerator, - Config: caConfig, - }, nil -} - -func GetCAFromBytes(certBytes, keyBytes []byte) (*CA, error) { - caConfig, err := GetTLSCertificateConfigFromBytes(certBytes, keyBytes) - if err != nil { - return nil, err - } - - return &CA{ - SerialGenerator: &RandomSerialGenerator{}, - Config: caConfig, - }, nil -} - -// if serialFile is empty, a RandomSerialGenerator will be used -func MakeSelfSignedCA(certFile, keyFile, serialFile, name string, expireDays int) (*CA, error) { - klog.V(2).Infof("Generating new CA for %s cert, and key in %s, %s", name, certFile, keyFile) - - caConfig, err := MakeSelfSignedCAConfig(name, expireDays) - if err != nil { - return nil, err - } - if err := caConfig.WriteCertConfigFile(certFile, keyFile); err != nil { - return nil, err - } - - var serialGenerator SerialGenerator - if len(serialFile) > 0 { - // create / overwrite the serial file with a zero padded hex value (ending in a newline to have a valid file) - if err := ioutil.WriteFile(serialFile, []byte("00\n"), 0644); err != nil { - return nil, err - } - serialGenerator, err = NewSerialFileGenerator(serialFile) - if err != nil { - return nil, err - } - } else { - serialGenerator = &RandomSerialGenerator{} - } - - return &CA{ - SerialGenerator: serialGenerator, - Config: caConfig, - }, nil -} - -func MakeSelfSignedCAConfig(name string, expireDays int) (*TLSCertificateConfig, error) { - subject := pkix.Name{CommonName: name} - return MakeSelfSignedCAConfigForSubject(subject, expireDays) -} - -func MakeSelfSignedCAConfigForSubject(subject pkix.Name, expireDays int) (*TLSCertificateConfig, error) { - var caLifetimeInDays = DefaultCACertificateLifetimeInDays - if expireDays > 0 { - caLifetimeInDays = expireDays - } - - if caLifetimeInDays > DefaultCACertificateLifetimeInDays { - warnAboutCertificateLifeTime(subject.CommonName, DefaultCACertificateLifetimeInDays) - } - - caLifetime := time.Duration(caLifetimeInDays) * 24 * time.Hour - return makeSelfSignedCAConfigForSubjectAndDuration(subject, caLifetime) -} - -func MakeSelfSignedCAConfigForDuration(name string, caLifetime time.Duration) (*TLSCertificateConfig, error) { - subject := pkix.Name{CommonName: name} - return makeSelfSignedCAConfigForSubjectAndDuration(subject, caLifetime) -} - -func makeSelfSignedCAConfigForSubjectAndDuration(subject pkix.Name, caLifetime time.Duration) (*TLSCertificateConfig, error) { - // Create CA cert - rootcaPublicKey, rootcaPrivateKey, publicKeyHash, err := newKeyPairWithHash() - if err != nil { - return nil, err - } - // AuthorityKeyId and SubjectKeyId should match for a self-signed CA - authorityKeyId := publicKeyHash - subjectKeyId := publicKeyHash - rootcaTemplate := newSigningCertificateTemplateForDuration(subject, caLifetime, time.Now, authorityKeyId, subjectKeyId) - rootcaCert, err := signCertificate(rootcaTemplate, rootcaPublicKey, rootcaTemplate, rootcaPrivateKey) - if err != nil { - return nil, err - } - caConfig := &TLSCertificateConfig{ - Certs: []*x509.Certificate{rootcaCert}, - Key: rootcaPrivateKey, - } - return caConfig, nil -} - -func MakeCAConfigForDuration(name string, caLifetime time.Duration, issuer *CA) (*TLSCertificateConfig, error) { - // Create CA cert - signerPublicKey, signerPrivateKey, publicKeyHash, err := newKeyPairWithHash() - if err != nil { - return nil, err - } - authorityKeyId := issuer.Config.Certs[0].SubjectKeyId - subjectKeyId := publicKeyHash - signerTemplate := newSigningCertificateTemplateForDuration(pkix.Name{CommonName: name}, caLifetime, time.Now, authorityKeyId, subjectKeyId) - signerCert, err := issuer.signCertificate(signerTemplate, signerPublicKey) - if err != nil { - return nil, err - } - signerConfig := &TLSCertificateConfig{ - Certs: append([]*x509.Certificate{signerCert}, issuer.Config.Certs...), - Key: signerPrivateKey, - } - return signerConfig, nil -} - -func (ca *CA) EnsureServerCert(certFile, keyFile string, hostnames sets.String, expireDays int) (*TLSCertificateConfig, bool, error) { - certConfig, err := GetServerCert(certFile, keyFile, hostnames) - if err != nil { - certConfig, err = ca.MakeAndWriteServerCert(certFile, keyFile, hostnames, expireDays) - return certConfig, true, err - } - - return certConfig, false, nil -} - -func GetServerCert(certFile, keyFile string, hostnames sets.String) (*TLSCertificateConfig, error) { - server, err := GetTLSCertificateConfig(certFile, keyFile) - if err != nil { - return nil, err - } - - cert := server.Certs[0] - ips, dns := IPAddressesDNSNames(hostnames.List()) - missingIps := ipsNotInSlice(ips, cert.IPAddresses) - missingDns := stringsNotInSlice(dns, cert.DNSNames) - if len(missingIps) == 0 && len(missingDns) == 0 { - klog.V(4).Infof("Found existing server certificate in %s", certFile) - return server, nil - } - - return nil, fmt.Errorf("Existing server certificate in %s was missing some hostnames (%v) or IP addresses (%v).", certFile, missingDns, missingIps) -} - -func (ca *CA) MakeAndWriteServerCert(certFile, keyFile string, hostnames sets.String, expireDays int) (*TLSCertificateConfig, error) { - klog.V(4).Infof("Generating server certificate in %s, key in %s", certFile, keyFile) - - server, err := ca.MakeServerCert(hostnames, expireDays) - if err != nil { - return nil, err - } - if err := server.WriteCertConfigFile(certFile, keyFile); err != nil { - return server, err - } - return server, nil -} - -// CertificateExtensionFunc is passed a certificate that it may extend, or return an error -// if the extension attempt failed. -type CertificateExtensionFunc func(*x509.Certificate) error - -func (ca *CA) MakeServerCert(hostnames sets.String, expireDays int, fns ...CertificateExtensionFunc) (*TLSCertificateConfig, error) { - serverPublicKey, serverPrivateKey, publicKeyHash, _ := newKeyPairWithHash() - authorityKeyId := ca.Config.Certs[0].SubjectKeyId - subjectKeyId := publicKeyHash - serverTemplate := newServerCertificateTemplate(pkix.Name{CommonName: hostnames.List()[0]}, hostnames.List(), expireDays, time.Now, authorityKeyId, subjectKeyId) - for _, fn := range fns { - if err := fn(serverTemplate); err != nil { - return nil, err - } - } - serverCrt, err := ca.signCertificate(serverTemplate, serverPublicKey) - if err != nil { - return nil, err - } - server := &TLSCertificateConfig{ - Certs: append([]*x509.Certificate{serverCrt}, ca.Config.Certs...), - Key: serverPrivateKey, - } - return server, nil -} - -func (ca *CA) MakeServerCertForDuration(hostnames sets.String, lifetime time.Duration, fns ...CertificateExtensionFunc) (*TLSCertificateConfig, error) { - serverPublicKey, serverPrivateKey, publicKeyHash, _ := newKeyPairWithHash() - authorityKeyId := ca.Config.Certs[0].SubjectKeyId - subjectKeyId := publicKeyHash - serverTemplate := newServerCertificateTemplateForDuration(pkix.Name{CommonName: hostnames.List()[0]}, hostnames.List(), lifetime, time.Now, authorityKeyId, subjectKeyId) - for _, fn := range fns { - if err := fn(serverTemplate); err != nil { - return nil, err - } - } - serverCrt, err := ca.signCertificate(serverTemplate, serverPublicKey) - if err != nil { - return nil, err - } - server := &TLSCertificateConfig{ - Certs: append([]*x509.Certificate{serverCrt}, ca.Config.Certs...), - Key: serverPrivateKey, - } - return server, nil -} - -func (ca *CA) EnsureClientCertificate(certFile, keyFile string, u user.Info, expireDays int) (*TLSCertificateConfig, bool, error) { - certConfig, err := GetTLSCertificateConfig(certFile, keyFile) - if err != nil { - certConfig, err = ca.MakeClientCertificate(certFile, keyFile, u, expireDays) - return certConfig, true, err // true indicates we wrote the files. - } - - return certConfig, false, nil -} - -func (ca *CA) MakeClientCertificate(certFile, keyFile string, u user.Info, expireDays int) (*TLSCertificateConfig, error) { - klog.V(4).Infof("Generating client cert in %s and key in %s", certFile, keyFile) - // ensure parent dirs - if err := os.MkdirAll(filepath.Dir(certFile), os.FileMode(0755)); err != nil { - return nil, err - } - if err := os.MkdirAll(filepath.Dir(keyFile), os.FileMode(0755)); err != nil { - return nil, err - } - - clientPublicKey, clientPrivateKey, _ := NewKeyPair() - clientTemplate := newClientCertificateTemplate(userToSubject(u), expireDays, time.Now) - clientCrt, err := ca.signCertificate(clientTemplate, clientPublicKey) - if err != nil { - return nil, err - } - - certData, err := EncodeCertificates(clientCrt) - if err != nil { - return nil, err - } - keyData, err := encodeKey(clientPrivateKey) - if err != nil { - return nil, err - } - - if err = ioutil.WriteFile(certFile, certData, os.FileMode(0644)); err != nil { - return nil, err - } - if err = ioutil.WriteFile(keyFile, keyData, os.FileMode(0600)); err != nil { - return nil, err - } - - return GetTLSCertificateConfig(certFile, keyFile) -} - -func (ca *CA) MakeClientCertificateForDuration(u user.Info, lifetime time.Duration) (*TLSCertificateConfig, error) { - clientPublicKey, clientPrivateKey, _ := NewKeyPair() - clientTemplate := newClientCertificateTemplateForDuration(userToSubject(u), lifetime, time.Now) - clientCrt, err := ca.signCertificate(clientTemplate, clientPublicKey) - if err != nil { - return nil, err - } - - certData, err := EncodeCertificates(clientCrt) - if err != nil { - return nil, err - } - keyData, err := encodeKey(clientPrivateKey) - if err != nil { - return nil, err - } - - return GetTLSCertificateConfigFromBytes(certData, keyData) -} - -type sortedForDER []string - -func (s sortedForDER) Len() int { - return len(s) -} -func (s sortedForDER) Swap(i, j int) { - s[i], s[j] = s[j], s[i] -} -func (s sortedForDER) Less(i, j int) bool { - l1 := len(s[i]) - l2 := len(s[j]) - if l1 == l2 { - return s[i] < s[j] - } - return l1 < l2 -} - -func userToSubject(u user.Info) pkix.Name { - // Ok we are going to order groups in a peculiar way here to workaround a - // 2 bugs, 1 in golang (https://github.com/golang/go/issues/24254) which - // incorrectly encodes Multivalued RDNs and another in GNUTLS clients - // which are too picky (https://gitlab.com/gnutls/gnutls/issues/403) - // and try to "correct" this issue when reading client certs. - // - // This workaround should be killed once Golang's pkix module is fixed to - // generate a correct DER encoding. - // - // The workaround relies on the fact that the first octect that differs - // between the encoding of two group RDNs will end up being the encoded - // length which is directly related to the group name's length. So we'll - // sort such that shortest names come first. - ugroups := u.GetGroups() - groups := make([]string, len(ugroups)) - copy(groups, ugroups) - sort.Sort(sortedForDER(groups)) - - return pkix.Name{ - CommonName: u.GetName(), - SerialNumber: u.GetUID(), - Organization: groups, - } -} - -func (ca *CA) signCertificate(template *x509.Certificate, requestKey crypto.PublicKey) (*x509.Certificate, error) { - // Increment and persist serial - serial, err := ca.SerialGenerator.Next(template) - if err != nil { - return nil, err - } - template.SerialNumber = big.NewInt(serial) - return signCertificate(template, requestKey, ca.Config.Certs[0], ca.Config.Key) -} - -func NewKeyPair() (crypto.PublicKey, crypto.PrivateKey, error) { - return newRSAKeyPair() -} - -func newKeyPairWithHash() (crypto.PublicKey, crypto.PrivateKey, []byte, error) { - publicKey, privateKey, err := newRSAKeyPair() - var publicKeyHash []byte - if err == nil { - hash := sha1.New() - hash.Write(publicKey.N.Bytes()) - publicKeyHash = hash.Sum(nil) - } - return publicKey, privateKey, publicKeyHash, err -} - -func newRSAKeyPair() (*rsa.PublicKey, *rsa.PrivateKey, error) { - privateKey, err := rsa.GenerateKey(rand.Reader, keyBits) - if err != nil { - return nil, nil, err - } - return &privateKey.PublicKey, privateKey, nil -} - -// Can be used for CA or intermediate signing certs -func newSigningCertificateTemplateForDuration(subject pkix.Name, caLifetime time.Duration, currentTime func() time.Time, authorityKeyId, subjectKeyId []byte) *x509.Certificate { - return &x509.Certificate{ - Subject: subject, - - SignatureAlgorithm: x509.SHA256WithRSA, - - NotBefore: currentTime().Add(-1 * time.Second), - NotAfter: currentTime().Add(caLifetime), - - // Specify a random serial number to avoid the same issuer+serial - // number referring to different certs in a chain of trust if the - // signing certificate is ever rotated. - SerialNumber: big.NewInt(randomSerialNumber()), - - KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign, - BasicConstraintsValid: true, - IsCA: true, - - AuthorityKeyId: authorityKeyId, - SubjectKeyId: subjectKeyId, - } -} - -// Can be used for ListenAndServeTLS -func newServerCertificateTemplate(subject pkix.Name, hosts []string, expireDays int, currentTime func() time.Time, authorityKeyId, subjectKeyId []byte) *x509.Certificate { - var lifetimeInDays = DefaultCertificateLifetimeInDays - if expireDays > 0 { - lifetimeInDays = expireDays - } - - if lifetimeInDays > DefaultCertificateLifetimeInDays { - warnAboutCertificateLifeTime(subject.CommonName, DefaultCertificateLifetimeInDays) - } - - lifetime := time.Duration(lifetimeInDays) * 24 * time.Hour - - return newServerCertificateTemplateForDuration(subject, hosts, lifetime, currentTime, authorityKeyId, subjectKeyId) -} - -// Can be used for ListenAndServeTLS -func newServerCertificateTemplateForDuration(subject pkix.Name, hosts []string, lifetime time.Duration, currentTime func() time.Time, authorityKeyId, subjectKeyId []byte) *x509.Certificate { - template := &x509.Certificate{ - Subject: subject, - - SignatureAlgorithm: x509.SHA256WithRSA, - - NotBefore: currentTime().Add(-1 * time.Second), - NotAfter: currentTime().Add(lifetime), - SerialNumber: big.NewInt(1), - - KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature, - ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth}, - BasicConstraintsValid: true, - - AuthorityKeyId: authorityKeyId, - SubjectKeyId: subjectKeyId, - } - - template.IPAddresses, template.DNSNames = IPAddressesDNSNames(hosts) - - return template -} - -func IPAddressesDNSNames(hosts []string) ([]net.IP, []string) { - ips := []net.IP{} - dns := []string{} - for _, host := range hosts { - if ip := net.ParseIP(host); ip != nil { - ips = append(ips, ip) - } else { - dns = append(dns, host) - } - } - - // Include IP addresses as DNS subjectAltNames in the cert as well, for the sake of Python, Windows (< 10), and unnamed other libraries - // Ensure these technically invalid DNS subjectAltNames occur after the valid ones, to avoid triggering cert errors in Firefox - // See https://bugzilla.mozilla.org/show_bug.cgi?id=1148766 - for _, ip := range ips { - dns = append(dns, ip.String()) - } - - return ips, dns -} - -func CertsFromPEM(pemCerts []byte) ([]*x509.Certificate, error) { - ok := false - certs := []*x509.Certificate{} - for len(pemCerts) > 0 { - var block *pem.Block - block, pemCerts = pem.Decode(pemCerts) - if block == nil { - break - } - if block.Type != "CERTIFICATE" || len(block.Headers) != 0 { - continue - } - - cert, err := x509.ParseCertificate(block.Bytes) - if err != nil { - return certs, err - } - - certs = append(certs, cert) - ok = true - } - - if !ok { - return certs, errors.New("Could not read any certificates") - } - return certs, nil -} - -// Can be used as a certificate in http.Transport TLSClientConfig -func newClientCertificateTemplate(subject pkix.Name, expireDays int, currentTime func() time.Time) *x509.Certificate { - var lifetimeInDays = DefaultCertificateLifetimeInDays - if expireDays > 0 { - lifetimeInDays = expireDays - } - - if lifetimeInDays > DefaultCertificateLifetimeInDays { - warnAboutCertificateLifeTime(subject.CommonName, DefaultCertificateLifetimeInDays) - } - - lifetime := time.Duration(lifetimeInDays) * 24 * time.Hour - - return newClientCertificateTemplateForDuration(subject, lifetime, currentTime) -} - -// Can be used as a certificate in http.Transport TLSClientConfig -func newClientCertificateTemplateForDuration(subject pkix.Name, lifetime time.Duration, currentTime func() time.Time) *x509.Certificate { - return &x509.Certificate{ - Subject: subject, - - SignatureAlgorithm: x509.SHA256WithRSA, - - NotBefore: currentTime().Add(-1 * time.Second), - NotAfter: currentTime().Add(lifetime), - SerialNumber: big.NewInt(1), - - KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature, - ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageClientAuth}, - BasicConstraintsValid: true, - } -} - -func warnAboutCertificateLifeTime(name string, defaultLifetimeInDays int) { - defaultLifetimeInYears := defaultLifetimeInDays / 365 - fmt.Fprintf(os.Stderr, "WARNING: Validity period of the certificate for %q is greater than %d years!\n", name, defaultLifetimeInYears) - fmt.Fprintln(os.Stderr, "WARNING: By security reasons it is strongly recommended to change this period and make it smaller!") -} - -func signCertificate(template *x509.Certificate, requestKey crypto.PublicKey, issuer *x509.Certificate, issuerKey crypto.PrivateKey) (*x509.Certificate, error) { - derBytes, err := x509.CreateCertificate(rand.Reader, template, issuer, requestKey, issuerKey) - if err != nil { - return nil, err - } - certs, err := x509.ParseCertificates(derBytes) - if err != nil { - return nil, err - } - if len(certs) != 1 { - return nil, errors.New("Expected a single certificate") - } - return certs[0], nil -} - -func EncodeCertificates(certs ...*x509.Certificate) ([]byte, error) { - b := bytes.Buffer{} - for _, cert := range certs { - if err := pem.Encode(&b, &pem.Block{Type: "CERTIFICATE", Bytes: cert.Raw}); err != nil { - return []byte{}, err - } - } - return b.Bytes(), nil -} -func encodeKey(key crypto.PrivateKey) ([]byte, error) { - b := bytes.Buffer{} - switch key := key.(type) { - case *ecdsa.PrivateKey: - keyBytes, err := x509.MarshalECPrivateKey(key) - if err != nil { - return []byte{}, err - } - if err := pem.Encode(&b, &pem.Block{Type: "EC PRIVATE KEY", Bytes: keyBytes}); err != nil { - return b.Bytes(), err - } - case *rsa.PrivateKey: - if err := pem.Encode(&b, &pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(key)}); err != nil { - return []byte{}, err - } - default: - return []byte{}, errors.New("Unrecognized key type") - - } - return b.Bytes(), nil -} - -func writeCertificates(f io.Writer, certs ...*x509.Certificate) error { - bytes, err := EncodeCertificates(certs...) - if err != nil { - return err - } - if _, err := f.Write(bytes); err != nil { - return err - } - - return nil -} -func writeKeyFile(f io.Writer, key crypto.PrivateKey) error { - bytes, err := encodeKey(key) - if err != nil { - return err - } - if _, err := f.Write(bytes); err != nil { - return err - } - - return nil -} - -func stringsNotInSlice(needles []string, haystack []string) []string { - missing := []string{} - for _, needle := range needles { - if !stringInSlice(needle, haystack) { - missing = append(missing, needle) - } - } - return missing -} - -func stringInSlice(needle string, haystack []string) bool { - for _, straw := range haystack { - if needle == straw { - return true - } - } - return false -} - -func ipsNotInSlice(needles []net.IP, haystack []net.IP) []net.IP { - missing := []net.IP{} - for _, needle := range needles { - if !ipInSlice(needle, haystack) { - missing = append(missing, needle) - } - } - return missing -} - -func ipInSlice(needle net.IP, haystack []net.IP) bool { - for _, straw := range haystack { - if needle.Equal(straw) { - return true - } - } - return false -} diff --git a/vendor/github.com/openshift/library-go/pkg/crypto/rotation.go b/vendor/github.com/openshift/library-go/pkg/crypto/rotation.go deleted file mode 100644 index 0aa127037c805..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/crypto/rotation.go +++ /dev/null @@ -1,20 +0,0 @@ -package crypto - -import ( - "crypto/x509" - "time" -) - -// FilterExpiredCerts checks are all certificates in the bundle valid, i.e. they have not expired. -// The function returns new bundle with only valid certificates or error if no valid certificate is found. -func FilterExpiredCerts(certs ...*x509.Certificate) []*x509.Certificate { - currentTime := time.Now() - var validCerts []*x509.Certificate - for _, c := range certs { - if c.NotAfter.After(currentTime) { - validCerts = append(validCerts, c) - } - } - - return validCerts -} diff --git a/vendor/github.com/openshift/library-go/pkg/image/imageutil/helpers.go b/vendor/github.com/openshift/library-go/pkg/image/imageutil/helpers.go deleted file mode 100644 index d35c052f37c6c..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/image/imageutil/helpers.go +++ /dev/null @@ -1,379 +0,0 @@ -package imageutil - -import ( - "encoding/json" - "fmt" - "regexp" - "sort" - "strings" - - "github.com/blang/semver" - - "github.com/openshift/api/image/docker10" - imagev1 "github.com/openshift/api/image/v1" - digestinternal "github.com/openshift/library-go/pkg/image/internal/digest" - imagereference "github.com/openshift/library-go/pkg/image/reference" -) - -const ( - // DefaultImageTag is used when an image tag is needed and the configuration does not specify a tag to use. - DefaultImageTag = "latest" -) - -var ParseDigest = digestinternal.ParseDigest - -// SplitImageStreamTag turns the name of an ImageStreamTag into Name and Tag. -// It returns false if the tag was not properly specified in the name. -func SplitImageStreamTag(nameAndTag string) (name string, tag string, ok bool) { - parts := strings.SplitN(nameAndTag, ":", 2) - name = parts[0] - if len(parts) > 1 { - tag = parts[1] - } - if len(tag) == 0 { - tag = DefaultImageTag - } - return name, tag, len(parts) == 2 -} - -// SplitImageStreamImage turns the name of an ImageStreamImage into Name and ID. -// It returns false if the ID was not properly specified in the name. -func SplitImageStreamImage(nameAndID string) (name string, id string, ok bool) { - parts := strings.SplitN(nameAndID, "@", 2) - name = parts[0] - if len(parts) > 1 { - id = parts[1] - } - return name, id, len(parts) == 2 -} - -// JoinImageStreamTag turns a name and tag into the name of an ImageStreamTag -func JoinImageStreamTag(name, tag string) string { - if len(tag) == 0 { - tag = DefaultImageTag - } - return fmt.Sprintf("%s:%s", name, tag) -} - -// JoinImageStreamImage creates a name for image stream image object from an image stream name and an id. -func JoinImageStreamImage(name, id string) string { - return fmt.Sprintf("%s@%s", name, id) -} - -// ParseImageStreamTagName splits a string into its name component and tag component, and returns an error -// if the string is not in the right form. -func ParseImageStreamTagName(istag string) (name string, tag string, err error) { - if strings.Contains(istag, "@") { - err = fmt.Errorf("%q is an image stream image, not an image stream tag", istag) - return - } - segments := strings.SplitN(istag, ":", 3) - switch len(segments) { - case 2: - name = segments[0] - tag = segments[1] - if len(name) == 0 || len(tag) == 0 { - err = fmt.Errorf("image stream tag name %q must have a name and a tag", istag) - } - default: - err = fmt.Errorf("expected exactly one : delimiter in the istag %q", istag) - } - return -} - -// ParseImageStreamImageName splits a string into its name component and ID component, and returns an error -// if the string is not in the right form. -func ParseImageStreamImageName(input string) (name string, id string, err error) { - segments := strings.SplitN(input, "@", 3) - switch len(segments) { - case 2: - name = segments[0] - id = segments[1] - if len(name) == 0 || len(id) == 0 { - err = fmt.Errorf("image stream image name %q must have a name and ID", input) - } - default: - err = fmt.Errorf("expected exactly one @ in the isimage name %q", input) - } - return -} - -var ( - reMinorSemantic = regexp.MustCompile(`^[\d]+\.[\d]+$`) - reMinorWithPatch = regexp.MustCompile(`^([\d]+\.[\d]+)-\w+$`) -) - -type tagPriority int - -const ( - // the "latest" tag - tagPriorityLatest tagPriority = iota - - // a semantic minor version ("5.1", "v5.1", "v5.1-rc1") - tagPriorityMinor - - // a full semantic version ("5.1.3-other", "v5.1.3-other") - tagPriorityFull - - // other tags - tagPriorityOther -) - -type prioritizedTag struct { - tag string - priority tagPriority - semver semver.Version - prefix string -} - -func prioritizeTag(tag string) prioritizedTag { - if tag == "latest" { - return prioritizedTag{ - tag: tag, - priority: tagPriorityLatest, - } - } - - short := tag - prefix := "" - if strings.HasPrefix(tag, "v") { - prefix = "v" - short = tag[1:] - } - - // 5.1.3 - if v, err := semver.Parse(short); err == nil { - return prioritizedTag{ - tag: tag, - priority: tagPriorityFull, - semver: v, - prefix: prefix, - } - } - - // 5.1 - if reMinorSemantic.MatchString(short) { - if v, err := semver.Parse(short + ".0"); err == nil { - return prioritizedTag{ - tag: tag, - priority: tagPriorityMinor, - semver: v, - prefix: prefix, - } - } - } - - // 5.1-rc1 - if match := reMinorWithPatch.FindStringSubmatch(short); match != nil { - if v, err := semver.Parse(strings.Replace(short, match[1], match[1]+".0", 1)); err == nil { - return prioritizedTag{ - tag: tag, - priority: tagPriorityMinor, - semver: v, - prefix: prefix, - } - } - } - - // other - return prioritizedTag{ - tag: tag, - priority: tagPriorityOther, - prefix: prefix, - } -} - -type prioritizedTags []prioritizedTag - -func (t prioritizedTags) Len() int { return len(t) } -func (t prioritizedTags) Swap(i, j int) { t[i], t[j] = t[j], t[i] } -func (t prioritizedTags) Less(i, j int) bool { - if t[i].priority != t[j].priority { - return t[i].priority < t[j].priority - } - - if t[i].priority == tagPriorityOther { - return t[i].tag < t[j].tag - } - - cmp := t[i].semver.Compare(t[j].semver) - if cmp > 0 { // the newer tag has a higher priority - return true - } - return cmp == 0 && t[i].prefix < t[j].prefix -} - -// PrioritizeTags orders a set of image tags with a few conventions: -// -// 1. the "latest" tag, if present, should be first -// 2. any tags that represent a semantic minor version ("5.1", "v5.1", "v5.1-rc1") should be next, in descending order -// 3. any tags that represent a full semantic version ("5.1.3-other", "v5.1.3-other") should be next, in descending order -// 4. any remaining tags should be sorted in lexicographic order -// -// The method updates the tags in place. -func PrioritizeTags(tags []string) { - ptags := make(prioritizedTags, len(tags)) - for i, tag := range tags { - ptags[i] = prioritizeTag(tag) - } - sort.Sort(ptags) - for i, pt := range ptags { - tags[i] = pt.tag - } -} - -// StatusHasTag returns named tag from image stream's status and boolean whether one was found. -func StatusHasTag(stream *imagev1.ImageStream, name string) (imagev1.NamedTagEventList, bool) { - for _, tag := range stream.Status.Tags { - if tag.Tag == name { - return tag, true - } - } - return imagev1.NamedTagEventList{}, false -} - -// LatestTaggedImage returns the most recent TagEvent for the specified image -// repository and tag. Will resolve lookups for the empty tag. Returns nil -// if tag isn't present in stream.status.tags. -func LatestTaggedImage(stream *imagev1.ImageStream, tag string) *imagev1.TagEvent { - if len(tag) == 0 { - tag = imagev1.DefaultImageTag - } - - // find the most recent tag event with an image reference - t, ok := StatusHasTag(stream, tag) - if ok { - if len(t.Items) == 0 { - return nil - } - return &t.Items[0] - } - - return nil -} - -// ImageWithMetadata mutates the given image. It parses raw DockerImageManifest data stored in the image and -// fills its DockerImageMetadata and other fields. -// Copied from github.com/openshift/image-registry/pkg/origin-common/util/util.go -func ImageWithMetadata(image *imagev1.Image) error { - // Check if the metadata are already filled in for this image. - meta, hasMetadata := image.DockerImageMetadata.Object.(*docker10.DockerImage) - if hasMetadata && meta.Size > 0 { - return nil - } - - version := image.DockerImageMetadataVersion - if len(version) == 0 { - version = "1.0" - } - - obj := &docker10.DockerImage{} - if len(image.DockerImageMetadata.Raw) != 0 { - if err := json.Unmarshal(image.DockerImageMetadata.Raw, obj); err != nil { - return err - } - image.DockerImageMetadata.Object = obj - } - - image.DockerImageMetadataVersion = version - - return nil -} - -func ImageWithMetadataOrDie(image *imagev1.Image) { - if err := ImageWithMetadata(image); err != nil { - panic(err) - } -} - -// ResolveLatestTaggedImage returns the appropriate pull spec for a given tag in -// the image stream, handling the tag's reference policy if necessary to return -// a resolved image. Callers that transform an ImageStreamTag into a pull spec -// should use this method instead of LatestTaggedImage. -func ResolveLatestTaggedImage(stream *imagev1.ImageStream, tag string) (string, bool) { - if len(tag) == 0 { - tag = imagev1.DefaultImageTag - } - return resolveTagReference(stream, tag, LatestTaggedImage(stream, tag)) -} - -// ResolveTagReference applies the tag reference rules for a stream, tag, and tag event for -// that tag. It returns true if the tag is -func resolveTagReference(stream *imagev1.ImageStream, tag string, latest *imagev1.TagEvent) (string, bool) { - if latest == nil { - return "", false - } - return resolveReferenceForTagEvent(stream, tag, latest), true -} - -// SpecHasTag returns named tag from image stream's spec and boolean whether one was found. -func SpecHasTag(stream *imagev1.ImageStream, name string) (imagev1.TagReference, bool) { - for _, tag := range stream.Spec.Tags { - if tag.Name == name { - return tag, true - } - } - return imagev1.TagReference{}, false -} - -// ResolveReferenceForTagEvent applies the tag reference rules for a stream, tag, and tag event for -// that tag. -func resolveReferenceForTagEvent(stream *imagev1.ImageStream, tag string, latest *imagev1.TagEvent) string { - // retrieve spec policy - if not found, we use the latest spec - ref, ok := SpecHasTag(stream, tag) - if !ok { - return latest.DockerImageReference - } - - switch ref.ReferencePolicy.Type { - // the local reference policy attempts to use image pull through on the integrated - // registry if possible - case imagev1.LocalTagReferencePolicy: - local := stream.Status.DockerImageRepository - if len(local) == 0 || len(latest.Image) == 0 { - // fallback to the originating reference if no local docker registry defined or we - // lack an image ID - return latest.DockerImageReference - } - - // we must use imageapi's helper since we're calling Exact later on, which produces string - ref, err := imagereference.Parse(local) - if err != nil { - // fallback to the originating reference if the reported local repository spec is not valid - return latest.DockerImageReference - } - - // create a local pullthrough URL - ref.Tag = "" - ref.ID = latest.Image - return ref.Exact() - - // the default policy is to use the originating image - default: - return latest.DockerImageReference - } -} - -// DigestOrImageMatch matches the digest in the image name. -func DigestOrImageMatch(image, imageID string) bool { - if d, err := ParseDigest(image); err == nil { - return strings.HasPrefix(d.Hex(), imageID) || strings.HasPrefix(image, imageID) - } - return strings.HasPrefix(image, imageID) -} - -// ParseDockerImageReference parses a Docker pull spec string into a -// DockerImageReference. -func ParseDockerImageReference(spec string) (imagev1.DockerImageReference, error) { - ref, err := imagereference.Parse(spec) - if err != nil { - return imagev1.DockerImageReference{}, err - } - return imagev1.DockerImageReference{ - Registry: ref.Registry, - Namespace: ref.Namespace, - Name: ref.Name, - Tag: ref.Tag, - ID: ref.ID, - }, nil -} diff --git a/vendor/github.com/openshift/library-go/pkg/image/internal/digest/digest.go b/vendor/github.com/openshift/library-go/pkg/image/internal/digest/digest.go deleted file mode 100644 index a740c2d9a0061..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/image/internal/digest/digest.go +++ /dev/null @@ -1,138 +0,0 @@ -package digest - -import ( - "fmt" - "hash" - "io" - "regexp" - "strings" -) - -const ( - // DigestSha256EmptyTar is the canonical sha256 digest of empty data - DigestSha256EmptyTar = "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" -) - -// Digest allows simple protection of hex formatted digest strings, prefixed -// by their algorithm. Strings of type Digest have some guarantee of being in -// the correct format and it provides quick access to the components of a -// digest string. -// -// The following is an example of the contents of Digest types: -// -// sha256:7173b809ca12ec5dee4506cd86be934c4596dd234ee82c0662eac04a8c2c71dc -// -// This allows to abstract the digest behind this type and work only in those -// terms. -type Digest string - -// NewDigest returns a Digest from alg and a hash.Hash object. -func NewDigest(alg Algorithm, h hash.Hash) Digest { - return NewDigestFromBytes(alg, h.Sum(nil)) -} - -// NewDigestFromBytes returns a new digest from the byte contents of p. -// Typically, this can come from hash.Hash.Sum(...) or xxx.SumXXX(...) -// functions. This is also useful for rebuilding digests from binary -// serializations. -func NewDigestFromBytes(alg Algorithm, p []byte) Digest { - return Digest(fmt.Sprintf("%s:%x", alg, p)) -} - -// NewDigestFromHex returns a Digest from alg and a the hex encoded digest. -func NewDigestFromHex(alg, hex string) Digest { - return Digest(fmt.Sprintf("%s:%s", alg, hex)) -} - -// DigestRegexp matches valid digest types. -var DigestRegexp = regexp.MustCompile(`[a-zA-Z0-9-_+.]+:[a-fA-F0-9]+`) - -// DigestRegexpAnchored matches valid digest types, anchored to the start and end of the match. -var DigestRegexpAnchored = regexp.MustCompile(`^` + DigestRegexp.String() + `$`) - -var ( - // ErrDigestInvalidFormat returned when digest format invalid. - ErrDigestInvalidFormat = fmt.Errorf("invalid checksum digest format") - - // ErrDigestInvalidLength returned when digest has invalid length. - ErrDigestInvalidLength = fmt.Errorf("invalid checksum digest length") - - // ErrDigestUnsupported returned when the digest algorithm is unsupported. - ErrDigestUnsupported = fmt.Errorf("unsupported digest algorithm") -) - -// ParseDigest parses s and returns the validated digest object. An error will -// be returned if the format is invalid. -func ParseDigest(s string) (Digest, error) { - d := Digest(s) - - return d, d.Validate() -} - -// FromReader returns the most valid digest for the underlying content using -// the canonical digest algorithm. -func FromReader(rd io.Reader) (Digest, error) { - return Canonical.FromReader(rd) -} - -// FromBytes digests the input and returns a Digest. -func FromBytes(p []byte) Digest { - return Canonical.FromBytes(p) -} - -// Validate checks that the contents of d is a valid digest, returning an -// error if not. -func (d Digest) Validate() error { - s := string(d) - - if !DigestRegexpAnchored.MatchString(s) { - return ErrDigestInvalidFormat - } - - i := strings.Index(s, ":") - if i < 0 { - return ErrDigestInvalidFormat - } - - // case: "sha256:" with no hex. - if i+1 == len(s) { - return ErrDigestInvalidFormat - } - - switch algorithm := Algorithm(s[:i]); algorithm { - case SHA256, SHA384, SHA512: - if algorithm.Size()*2 != len(s[i+1:]) { - return ErrDigestInvalidLength - } - default: - return ErrDigestUnsupported - } - - return nil -} - -// Algorithm returns the algorithm portion of the digest. This will panic if -// the underlying digest is not in a valid format. -func (d Digest) Algorithm() Algorithm { - return Algorithm(d[:d.sepIndex()]) -} - -// Hex returns the hex digest portion of the digest. This will panic if the -// underlying digest is not in a valid format. -func (d Digest) Hex() string { - return string(d[d.sepIndex()+1:]) -} - -func (d Digest) String() string { - return string(d) -} - -func (d Digest) sepIndex() int { - i := strings.Index(string(d), ":") - - if i < 0 { - panic("could not find ':' in digest: " + d) - } - - return i -} diff --git a/vendor/github.com/openshift/library-go/pkg/image/internal/digest/digester.go b/vendor/github.com/openshift/library-go/pkg/image/internal/digest/digester.go deleted file mode 100644 index f3105a45b6977..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/image/internal/digest/digester.go +++ /dev/null @@ -1,155 +0,0 @@ -package digest - -import ( - "crypto" - "fmt" - "hash" - "io" -) - -// Algorithm identifies and implementation of a digester by an identifier. -// Note the that this defines both the hash algorithm used and the string -// encoding. -type Algorithm string - -// supported digest types -const ( - SHA256 Algorithm = "sha256" // sha256 with hex encoding - SHA384 Algorithm = "sha384" // sha384 with hex encoding - SHA512 Algorithm = "sha512" // sha512 with hex encoding - - // Canonical is the primary digest algorithm used with the distribution - // project. Other digests may be used but this one is the primary storage - // digest. - Canonical = SHA256 -) - -var ( - // TODO(stevvooe): Follow the pattern of the standard crypto package for - // registration of digests. Effectively, we are a registerable set and - // common symbol access. - - // algorithms maps values to hash.Hash implementations. Other algorithms - // may be available but they cannot be calculated by the digest package. - algorithms = map[Algorithm]crypto.Hash{ - SHA256: crypto.SHA256, - SHA384: crypto.SHA384, - SHA512: crypto.SHA512, - } -) - -// Available returns true if the digest type is available for use. If this -// returns false, New and Hash will return nil. -func (a Algorithm) Available() bool { - h, ok := algorithms[a] - if !ok { - return false - } - - // check availability of the hash, as well - return h.Available() -} - -func (a Algorithm) String() string { - return string(a) -} - -// Size returns number of bytes returned by the hash. -func (a Algorithm) Size() int { - h, ok := algorithms[a] - if !ok { - return 0 - } - return h.Size() -} - -// Set implemented to allow use of Algorithm as a command line flag. -func (a *Algorithm) Set(value string) error { - if value == "" { - *a = Canonical - } else { - // just do a type conversion, support is queried with Available. - *a = Algorithm(value) - } - - return nil -} - -// New returns a new digester for the specified algorithm. If the algorithm -// does not have a digester implementation, nil will be returned. This can be -// checked by calling Available before calling New. -func (a Algorithm) New() Digester { - return &digester{ - alg: a, - hash: a.Hash(), - } -} - -// Hash returns a new hash as used by the algorithm. If not available, the -// method will panic. Check Algorithm.Available() before calling. -func (a Algorithm) Hash() hash.Hash { - if !a.Available() { - // NOTE(stevvooe): A missing hash is usually a programming error that - // must be resolved at compile time. We don't import in the digest - // package to allow users to choose their hash implementation (such as - // when using stevvooe/resumable or a hardware accelerated package). - // - // Applications that may want to resolve the hash at runtime should - // call Algorithm.Available before call Algorithm.Hash(). - panic(fmt.Sprintf("%v not available (make sure it is imported)", a)) - } - - return algorithms[a].New() -} - -// FromReader returns the digest of the reader using the algorithm. -func (a Algorithm) FromReader(rd io.Reader) (Digest, error) { - digester := a.New() - - if _, err := io.Copy(digester.Hash(), rd); err != nil { - return "", err - } - - return digester.Digest(), nil -} - -// FromBytes digests the input and returns a Digest. -func (a Algorithm) FromBytes(p []byte) Digest { - digester := a.New() - - if _, err := digester.Hash().Write(p); err != nil { - // Writes to a Hash should never fail. None of the existing - // hash implementations in the stdlib or hashes vendored - // here can return errors from Write. Having a panic in this - // condition instead of having FromBytes return an error value - // avoids unnecessary error handling paths in all callers. - panic("write to hash function returned error: " + err.Error()) - } - - return digester.Digest() -} - -// TODO(stevvooe): Allow resolution of verifiers using the digest type and -// this registration system. - -// Digester calculates the digest of written data. Writes should go directly -// to the return value of Hash, while calling Digest will return the current -// value of the digest. -type Digester interface { - Hash() hash.Hash // provides direct access to underlying hash instance. - Digest() Digest -} - -// digester provides a simple digester definition that embeds a hasher. -type digester struct { - alg Algorithm - hash hash.Hash -} - -func (d *digester) Hash() hash.Hash { - return d.hash -} - -func (d *digester) Digest() Digest { - return NewDigest(d.alg, d.hash) -} diff --git a/vendor/github.com/openshift/library-go/pkg/image/internal/digest/doc.go b/vendor/github.com/openshift/library-go/pkg/image/internal/digest/doc.go deleted file mode 100644 index 6e6e4347ea44d..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/image/internal/digest/doc.go +++ /dev/null @@ -1,5 +0,0 @@ -// digest is a copy from "github.com/docker/distribution/digest" that is kept because we want to avoid the godep, -// this package has no non-standard dependencies, and if it changes lots of other docker registry stuff breaks. -// Don't try this at home! -// Changes here require sign-off from openshift/api-reviewers and they will be rejected. -package digest diff --git a/vendor/github.com/openshift/library-go/pkg/image/internal/reference/doc.go b/vendor/github.com/openshift/library-go/pkg/image/internal/reference/doc.go deleted file mode 100644 index 22188ea98f7cc..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/image/internal/reference/doc.go +++ /dev/null @@ -1,5 +0,0 @@ -// reference is a copy from "github.com/docker/distribution/reference" that is kept because we want to avoid the godep, -// this package has no non-standard dependencies, and if it changes lots of other docker registry stuff breaks. -// Don't try this at home! -// Changes here require sign-off from openshift/api-reviewers and they will be rejected. -package reference diff --git a/vendor/github.com/openshift/library-go/pkg/image/internal/reference/reference.go b/vendor/github.com/openshift/library-go/pkg/image/internal/reference/reference.go deleted file mode 100644 index eb498bc9d97f0..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/image/internal/reference/reference.go +++ /dev/null @@ -1,370 +0,0 @@ -// Package reference provides a general type to represent any way of referencing images within the registry. -// Its main purpose is to abstract tags and digests (content-addressable hash). -// -// Grammar -// -// reference := name [ ":" tag ] [ "@" digest ] -// name := [hostname '/'] component ['/' component]* -// hostname := hostcomponent ['.' hostcomponent]* [':' port-number] -// hostcomponent := /([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])/ -// port-number := /[0-9]+/ -// component := alpha-numeric [separator alpha-numeric]* -// alpha-numeric := /[a-z0-9]+/ -// separator := /[_.]|__|[-]*/ -// -// tag := /[\w][\w.-]{0,127}/ -// -// digest := digest-algorithm ":" digest-hex -// digest-algorithm := digest-algorithm-component [ digest-algorithm-separator digest-algorithm-component ] -// digest-algorithm-separator := /[+.-_]/ -// digest-algorithm-component := /[A-Za-z][A-Za-z0-9]*/ -// digest-hex := /[0-9a-fA-F]{32,}/ ; At least 128 bit digest value -package reference - -import ( - "errors" - "fmt" - "path" - "strings" - - "github.com/openshift/library-go/pkg/image/internal/digest" -) - -const ( - // NameTotalLengthMax is the maximum total number of characters in a repository name. - NameTotalLengthMax = 255 -) - -var ( - // ErrReferenceInvalidFormat represents an error while trying to parse a string as a reference. - ErrReferenceInvalidFormat = errors.New("invalid reference format") - - // ErrTagInvalidFormat represents an error while trying to parse a string as a tag. - ErrTagInvalidFormat = errors.New("invalid tag format") - - // ErrDigestInvalidFormat represents an error while trying to parse a string as a tag. - ErrDigestInvalidFormat = errors.New("invalid digest format") - - // ErrNameContainsUppercase is returned for invalid repository names that contain uppercase characters. - ErrNameContainsUppercase = errors.New("repository name must be lowercase") - - // ErrNameEmpty is returned for empty, invalid repository names. - ErrNameEmpty = errors.New("repository name must have at least one component") - - // ErrNameTooLong is returned when a repository name is longer than NameTotalLengthMax. - ErrNameTooLong = fmt.Errorf("repository name must not be more than %v characters", NameTotalLengthMax) -) - -// Reference is an opaque object reference identifier that may include -// modifiers such as a hostname, name, tag, and digest. -type Reference interface { - // String returns the full reference - String() string -} - -// Field provides a wrapper type for resolving correct reference types when -// working with encoding. -type Field struct { - reference Reference -} - -// AsField wraps a reference in a Field for encoding. -func AsField(reference Reference) Field { - return Field{reference} -} - -// Reference unwraps the reference type from the field to -// return the Reference object. This object should be -// of the appropriate type to further check for different -// reference types. -func (f Field) Reference() Reference { - return f.reference -} - -// MarshalText serializes the field to byte text which -// is the string of the reference. -func (f Field) MarshalText() (p []byte, err error) { - return []byte(f.reference.String()), nil -} - -// UnmarshalText parses text bytes by invoking the -// reference parser to ensure the appropriately -// typed reference object is wrapped by field. -func (f *Field) UnmarshalText(p []byte) error { - r, err := Parse(string(p)) - if err != nil { - return err - } - - f.reference = r - return nil -} - -// Named is an object with a full name -type Named interface { - Reference - Name() string -} - -// Tagged is an object which has a tag -type Tagged interface { - Reference - Tag() string -} - -// NamedTagged is an object including a name and tag. -type NamedTagged interface { - Named - Tag() string -} - -// Digested is an object which has a digest -// in which it can be referenced by -type Digested interface { - Reference - Digest() digest.Digest -} - -// Canonical reference is an object with a fully unique -// name including a name with hostname and digest -type Canonical interface { - Named - Digest() digest.Digest -} - -// SplitHostname splits a named reference into a -// hostname and name string. If no valid hostname is -// found, the hostname is empty and the full value -// is returned as name -func SplitHostname(named Named) (string, string) { - name := named.Name() - match := anchoredNameRegexp.FindStringSubmatch(name) - if len(match) != 3 { - return "", name - } - return match[1], match[2] -} - -// Parse parses s and returns a syntactically valid Reference. -// If an error was encountered it is returned, along with a nil Reference. -// NOTE: Parse will not handle short digests. -func Parse(s string) (Reference, error) { - matches := ReferenceRegexp.FindStringSubmatch(s) - if matches == nil { - if s == "" { - return nil, ErrNameEmpty - } - if ReferenceRegexp.FindStringSubmatch(strings.ToLower(s)) != nil { - return nil, ErrNameContainsUppercase - } - return nil, ErrReferenceInvalidFormat - } - - if len(matches[1]) > NameTotalLengthMax { - return nil, ErrNameTooLong - } - - ref := reference{ - name: matches[1], - tag: matches[2], - } - if matches[3] != "" { - var err error - ref.digest, err = digest.ParseDigest(matches[3]) - if err != nil { - return nil, err - } - } - - r := getBestReferenceType(ref) - if r == nil { - return nil, ErrNameEmpty - } - - return r, nil -} - -// ParseNamed parses s and returns a syntactically valid reference implementing -// the Named interface. The reference must have a name, otherwise an error is -// returned. -// If an error was encountered it is returned, along with a nil Reference. -// NOTE: ParseNamed will not handle short digests. -func ParseNamed(s string) (Named, error) { - ref, err := Parse(s) - if err != nil { - return nil, err - } - named, isNamed := ref.(Named) - if !isNamed { - return nil, fmt.Errorf("reference %s has no name", ref.String()) - } - return named, nil -} - -// WithName returns a named object representing the given string. If the input -// is invalid ErrReferenceInvalidFormat will be returned. -func WithName(name string) (Named, error) { - if len(name) > NameTotalLengthMax { - return nil, ErrNameTooLong - } - if !anchoredNameRegexp.MatchString(name) { - return nil, ErrReferenceInvalidFormat - } - return repository(name), nil -} - -// WithTag combines the name from "name" and the tag from "tag" to form a -// reference incorporating both the name and the tag. -func WithTag(name Named, tag string) (NamedTagged, error) { - if !anchoredTagRegexp.MatchString(tag) { - return nil, ErrTagInvalidFormat - } - if canonical, ok := name.(Canonical); ok { - return reference{ - name: name.Name(), - tag: tag, - digest: canonical.Digest(), - }, nil - } - return taggedReference{ - name: name.Name(), - tag: tag, - }, nil -} - -// WithDigest combines the name from "name" and the digest from "digest" to form -// a reference incorporating both the name and the digest. -func WithDigest(name Named, digest digest.Digest) (Canonical, error) { - if !anchoredDigestRegexp.MatchString(digest.String()) { - return nil, ErrDigestInvalidFormat - } - if tagged, ok := name.(Tagged); ok { - return reference{ - name: name.Name(), - tag: tagged.Tag(), - digest: digest, - }, nil - } - return canonicalReference{ - name: name.Name(), - digest: digest, - }, nil -} - -// Match reports whether ref matches the specified pattern. -// See https://godoc.org/path#Match for supported patterns. -func Match(pattern string, ref Reference) (bool, error) { - matched, err := path.Match(pattern, ref.String()) - if namedRef, isNamed := ref.(Named); isNamed && !matched { - matched, _ = path.Match(pattern, namedRef.Name()) - } - return matched, err -} - -// TrimNamed removes any tag or digest from the named reference. -func TrimNamed(ref Named) Named { - return repository(ref.Name()) -} - -func getBestReferenceType(ref reference) Reference { - if ref.name == "" { - // Allow digest only references - if ref.digest != "" { - return digestReference(ref.digest) - } - return nil - } - if ref.tag == "" { - if ref.digest != "" { - return canonicalReference{ - name: ref.name, - digest: ref.digest, - } - } - return repository(ref.name) - } - if ref.digest == "" { - return taggedReference{ - name: ref.name, - tag: ref.tag, - } - } - - return ref -} - -type reference struct { - name string - tag string - digest digest.Digest -} - -func (r reference) String() string { - return r.name + ":" + r.tag + "@" + r.digest.String() -} - -func (r reference) Name() string { - return r.name -} - -func (r reference) Tag() string { - return r.tag -} - -func (r reference) Digest() digest.Digest { - return r.digest -} - -type repository string - -func (r repository) String() string { - return string(r) -} - -func (r repository) Name() string { - return string(r) -} - -type digestReference digest.Digest - -func (d digestReference) String() string { - return string(d) -} - -func (d digestReference) Digest() digest.Digest { - return digest.Digest(d) -} - -type taggedReference struct { - name string - tag string -} - -func (t taggedReference) String() string { - return t.name + ":" + t.tag -} - -func (t taggedReference) Name() string { - return t.name -} - -func (t taggedReference) Tag() string { - return t.tag -} - -type canonicalReference struct { - name string - digest digest.Digest -} - -func (c canonicalReference) String() string { - return c.name + "@" + c.digest.String() -} - -func (c canonicalReference) Name() string { - return c.name -} - -func (c canonicalReference) Digest() digest.Digest { - return c.digest -} diff --git a/vendor/github.com/openshift/library-go/pkg/image/internal/reference/regexp.go b/vendor/github.com/openshift/library-go/pkg/image/internal/reference/regexp.go deleted file mode 100644 index 9a7d366bc8a8c..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/image/internal/reference/regexp.go +++ /dev/null @@ -1,124 +0,0 @@ -package reference - -import "regexp" - -var ( - // alphaNumericRegexp defines the alpha numeric atom, typically a - // component of names. This only allows lower case characters and digits. - alphaNumericRegexp = match(`[a-z0-9]+`) - - // separatorRegexp defines the separators allowed to be embedded in name - // components. This allow one period, one or two underscore and multiple - // dashes. - separatorRegexp = match(`(?:[._]|__|[-]*)`) - - // nameComponentRegexp restricts registry path component names to start - // with at least one letter or number, with following parts able to be - // separated by one period, one or two underscore and multiple dashes. - nameComponentRegexp = expression( - alphaNumericRegexp, - optional(repeated(separatorRegexp, alphaNumericRegexp))) - - // hostnameComponentRegexp restricts the registry hostname component of a - // repository name to start with a component as defined by hostnameRegexp - // and followed by an optional port. - hostnameComponentRegexp = match(`(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])`) - - // hostnameRegexp defines the structure of potential hostname components - // that may be part of image names. This is purposely a subset of what is - // allowed by DNS to ensure backwards compatibility with Docker image - // names. - hostnameRegexp = expression( - hostnameComponentRegexp, - optional(repeated(literal(`.`), hostnameComponentRegexp)), - optional(literal(`:`), match(`[0-9]+`))) - - // TagRegexp matches valid tag names. From docker/docker:graph/tags.go. - TagRegexp = match(`[\w][\w.-]{0,127}`) - - // anchoredTagRegexp matches valid tag names, anchored at the start and - // end of the matched string. - anchoredTagRegexp = anchored(TagRegexp) - - // DigestRegexp matches valid digests. - DigestRegexp = match(`[A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]{32,}`) - - // anchoredDigestRegexp matches valid digests, anchored at the start and - // end of the matched string. - anchoredDigestRegexp = anchored(DigestRegexp) - - // NameRegexp is the format for the name component of references. The - // regexp has capturing groups for the hostname and name part omitting - // the separating forward slash from either. - NameRegexp = expression( - optional(hostnameRegexp, literal(`/`)), - nameComponentRegexp, - optional(repeated(literal(`/`), nameComponentRegexp))) - - // anchoredNameRegexp is used to parse a name value, capturing the - // hostname and trailing components. - anchoredNameRegexp = anchored( - optional(capture(hostnameRegexp), literal(`/`)), - capture(nameComponentRegexp, - optional(repeated(literal(`/`), nameComponentRegexp)))) - - // ReferenceRegexp is the full supported format of a reference. The regexp - // is anchored and has capturing groups for name, tag, and digest - // components. - ReferenceRegexp = anchored(capture(NameRegexp), - optional(literal(":"), capture(TagRegexp)), - optional(literal("@"), capture(DigestRegexp))) -) - -// match compiles the string to a regular expression. -var match = regexp.MustCompile - -// literal compiles s into a literal regular expression, escaping any regexp -// reserved characters. -func literal(s string) *regexp.Regexp { - re := match(regexp.QuoteMeta(s)) - - if _, complete := re.LiteralPrefix(); !complete { - panic("must be a literal") - } - - return re -} - -// expression defines a full expression, where each regular expression must -// follow the previous. -func expression(res ...*regexp.Regexp) *regexp.Regexp { - var s string - for _, re := range res { - s += re.String() - } - - return match(s) -} - -// optional wraps the expression in a non-capturing group and makes the -// production optional. -func optional(res ...*regexp.Regexp) *regexp.Regexp { - return match(group(expression(res...)).String() + `?`) -} - -// repeated wraps the regexp in a non-capturing group to get one or more -// matches. -func repeated(res ...*regexp.Regexp) *regexp.Regexp { - return match(group(expression(res...)).String() + `+`) -} - -// group wraps the regexp in a non-capturing group. -func group(res ...*regexp.Regexp) *regexp.Regexp { - return match(`(?:` + expression(res...).String() + `)`) -} - -// capture wraps the expression in a capturing group. -func capture(res ...*regexp.Regexp) *regexp.Regexp { - return match(`(` + expression(res...).String() + `)`) -} - -// anchored anchors the regular expression by adding start and end delimiters. -func anchored(res ...*regexp.Regexp) *regexp.Regexp { - return match(`^` + expression(res...).String() + `$`) -} diff --git a/vendor/github.com/openshift/library-go/pkg/image/reference/reference.go b/vendor/github.com/openshift/library-go/pkg/image/reference/reference.go deleted file mode 100644 index ee47ff92a9ce5..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/image/reference/reference.go +++ /dev/null @@ -1,245 +0,0 @@ -package reference - -import ( - "net" - "net/url" - "strings" - - "github.com/openshift/library-go/pkg/image/internal/digest" - "github.com/openshift/library-go/pkg/image/internal/reference" -) - -// DockerImageReference points to a Docker image. -type DockerImageReference struct { - Registry string - Namespace string - Name string - Tag string - ID string -} - -const ( - // DockerDefaultRegistry is the value for the registry when none was provided. - DockerDefaultRegistry = "docker.io" - // DockerDefaultV1Registry is the host name of the default v1 registry - DockerDefaultV1Registry = "index." + DockerDefaultRegistry - // DockerDefaultV2Registry is the host name of the default v2 registry - DockerDefaultV2Registry = "registry-1." + DockerDefaultRegistry -) - -// Parse parses a Docker pull spec string into a -// DockerImageReference. -func Parse(spec string) (DockerImageReference, error) { - var ref DockerImageReference - - namedRef, err := reference.ParseNamed(spec) - if err != nil { - return ref, err - } - - name := namedRef.Name() - i := strings.IndexRune(name, '/') - if i == -1 || (!strings.ContainsAny(name[:i], ":.") && name[:i] != "localhost") { - ref.Name = name - } else { - ref.Registry, ref.Name = name[:i], name[i+1:] - } - - if named, ok := namedRef.(reference.NamedTagged); ok { - ref.Tag = named.Tag() - } - - if named, ok := namedRef.(reference.Canonical); ok { - ref.ID = named.Digest().String() - } - - // It's not enough just to use the reference.ParseNamed(). We have to fill - // ref.Namespace from ref.Name - if i := strings.IndexRune(ref.Name, '/'); i != -1 { - ref.Namespace, ref.Name = ref.Name[:i], ref.Name[i+1:] - } - - return ref, nil -} - -// Equal returns true if the other DockerImageReference is equivalent to the -// reference r. The comparison applies defaults to the Docker image reference, -// so that e.g., "foobar" equals "docker.io/library/foobar:latest". -func (r DockerImageReference) Equal(other DockerImageReference) bool { - defaultedRef := r.DockerClientDefaults() - otherDefaultedRef := other.DockerClientDefaults() - return defaultedRef == otherDefaultedRef -} - -// DockerClientDefaults sets the default values used by the Docker client. -func (r DockerImageReference) DockerClientDefaults() DockerImageReference { - if len(r.Registry) == 0 { - r.Registry = DockerDefaultRegistry - } - if len(r.Namespace) == 0 && IsRegistryDockerHub(r.Registry) { - r.Namespace = "library" - } - if len(r.Tag) == 0 { - r.Tag = "latest" - } - return r -} - -// Minimal reduces a DockerImageReference to its minimalist form. -func (r DockerImageReference) Minimal() DockerImageReference { - if r.Tag == "latest" { - r.Tag = "" - } - return r -} - -// AsRepository returns the reference without tags or IDs. -func (r DockerImageReference) AsRepository() DockerImageReference { - r.Tag = "" - r.ID = "" - return r -} - -// RepositoryName returns the registry relative name -func (r DockerImageReference) RepositoryName() string { - r.Tag = "" - r.ID = "" - r.Registry = "" - return r.Exact() -} - -// RegistryHostPort returns the registry hostname and the port. -// If the port is not specified in the registry hostname we default to 443. -// This will also default to Docker client defaults if the registry hostname is empty. -func (r DockerImageReference) RegistryHostPort(insecure bool) (string, string) { - registryHost := r.AsV2().DockerClientDefaults().Registry - if strings.Contains(registryHost, ":") { - hostname, port, _ := net.SplitHostPort(registryHost) - return hostname, port - } - if insecure { - return registryHost, "80" - } - return registryHost, "443" -} - -// RepositoryName returns the registry relative name -func (r DockerImageReference) RegistryURL() *url.URL { - return &url.URL{ - Scheme: "https", - Host: r.AsV2().Registry, - } -} - -// DaemonMinimal clears defaults that Docker assumes. -func (r DockerImageReference) DaemonMinimal() DockerImageReference { - switch r.Registry { - case DockerDefaultV1Registry, DockerDefaultV2Registry: - r.Registry = DockerDefaultRegistry - } - if IsRegistryDockerHub(r.Registry) && r.Namespace == "library" { - r.Namespace = "" - } - return r.Minimal() -} - -func (r DockerImageReference) AsV2() DockerImageReference { - switch r.Registry { - case DockerDefaultV1Registry, DockerDefaultRegistry: - r.Registry = DockerDefaultV2Registry - } - return r -} - -// MostSpecific returns the most specific image reference that can be constructed from the -// current ref, preferring an ID over a Tag. Allows client code dealing with both tags and IDs -// to get the most specific reference easily. -func (r DockerImageReference) MostSpecific() DockerImageReference { - if len(r.ID) == 0 { - return r - } - if _, err := digest.ParseDigest(r.ID); err == nil { - r.Tag = "" - return r - } - if len(r.Tag) == 0 { - r.Tag, r.ID = r.ID, "" - return r - } - return r -} - -// NameString returns the name of the reference with its tag or ID. -func (r DockerImageReference) NameString() string { - switch { - case len(r.Name) == 0: - return "" - case len(r.ID) > 0: - var ref string - if _, err := digest.ParseDigest(r.ID); err == nil { - // if it parses as a digest, its v2 pull by id - ref = "@" + r.ID - } else { - // if it doesn't parse as a digest, it's presumably a v1 registry by-id tag - ref = ":" + r.ID - } - return r.Name + ref - case len(r.Tag) > 0: - return r.Name + ":" + r.Tag - default: - return r.Name - } -} - -// Exact returns a string representation of the set fields on the DockerImageReference -func (r DockerImageReference) Exact() string { - name := r.NameString() - if len(name) == 0 { - return name - } - s := r.Registry - if len(s) > 0 { - s += "/" - } - - if len(r.Namespace) != 0 { - s += r.Namespace + "/" - } - return s + name -} - -// String converts a DockerImageReference to a Docker pull spec (which implies a default namespace -// according to V1 Docker registry rules). Use Exact() if you want no defaulting. -func (r DockerImageReference) String() string { - if len(r.Namespace) == 0 && IsRegistryDockerHub(r.Registry) { - r.Namespace = "library" - } - return r.Exact() -} - -// IsRegistryDockerHub returns true if the given registry name belongs to -// Docker hub. -func IsRegistryDockerHub(registry string) bool { - switch registry { - case DockerDefaultRegistry, DockerDefaultV1Registry, DockerDefaultV2Registry: - return true - default: - return false - } -} - -// DeepCopyInto writing into out. in must be non-nil. -func (in *DockerImageReference) DeepCopyInto(out *DockerImageReference) { - *out = *in - return -} - -// DeepCopy copies the receiver, creating a new DockerImageReference. -func (in *DockerImageReference) DeepCopy() *DockerImageReference { - if in == nil { - return nil - } - out := new(DockerImageReference) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/github.com/openshift/library-go/pkg/network/dialer.go b/vendor/github.com/openshift/library-go/pkg/network/dialer.go deleted file mode 100644 index f19be44a3e994..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/network/dialer.go +++ /dev/null @@ -1,13 +0,0 @@ -package network - -import ( - "context" - "net" -) - -type DialContext func(ctx context.Context, network, address string) (net.Conn, error) - -// DefaultDialContext returns a DialContext function from a network dialer with default options sets. -func DefaultClientDialContext() DialContext { - return dialerWithDefaultOptions() -} diff --git a/vendor/github.com/openshift/library-go/pkg/network/dialer_linux.go b/vendor/github.com/openshift/library-go/pkg/network/dialer_linux.go deleted file mode 100644 index b8ff8db85ee2c..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/network/dialer_linux.go +++ /dev/null @@ -1,93 +0,0 @@ -// +build linux - -package network - -import ( - "net" - "os" - "syscall" - "time" - - "golang.org/x/sys/unix" - - utilerrors "k8s.io/apimachinery/pkg/util/errors" -) - -func dialerWithDefaultOptions() DialContext { - nd := &net.Dialer{ - // TCP_USER_TIMEOUT does affect the behaviour of connect() which is controlled by this field so we set it to the same value - Timeout: 25 * time.Second, - // KeepAlive must to be set to a negative value to stop std library from applying the default values - // by doing so we ensure that the options we are interested in won't be overwritten - KeepAlive: time.Duration(-1), - Control: func(network, address string, con syscall.RawConn) error { - var errs []error - err := con.Control(func(fd uintptr) { - optionsErr := setDefaultSocketOptions(int(fd)) - if optionsErr != nil { - errs = append(errs, optionsErr) - } - }) - if err != nil { - errs = append(errs, err) - } - return utilerrors.NewAggregate(errs) - }, - } - return nd.DialContext -} - -// setDefaultSocketOptions sets custom socket options so that we can detect connections to an unhealthy (dead) peer quickly. -// In particular we set TCP_USER_TIMEOUT that specifies the maximum amount of time that transmitted data may remain -// unacknowledged before TCP will forcibly close the connection. -// -// Note -// TCP_USER_TIMEOUT can't be too low because a single dropped packet might drop the entire connection. -// Ideally it should be set to: TCP_KEEPIDLE + TCP_KEEPINTVL * TCP_KEEPCNT -func setDefaultSocketOptions(fd int) error { - // specifies the maximum amount of time in milliseconds that transmitted data may remain - // unacknowledged before TCP will forcibly close the corresponding connection and return ETIMEDOUT to the application - tcpUserTimeoutInMilliSeconds := int(25 * time.Second / time.Millisecond) - - // specifies the interval at which probes are sent in seconds - tcpKeepIntvl := int(roundDuration(5*time.Second, time.Second)) - - // specifies the threshold for sending the first KEEP ALIVE probe in seconds - tcpKeepIdle := int(roundDuration(2*time.Second, time.Second)) - - // enable keep-alive probes - if err := syscall.SetsockoptInt(int(fd), syscall.SOL_SOCKET, syscall.SO_KEEPALIVE, 1); err != nil { - return wrapSyscallError("setsockopt", err) - } - - if err := syscall.SetsockoptInt(int(fd), syscall.IPPROTO_TCP, unix.TCP_USER_TIMEOUT, tcpUserTimeoutInMilliSeconds); err != nil { - return wrapSyscallError("setsockopt", err) - } - - if err := syscall.SetsockoptInt(int(fd), syscall.IPPROTO_TCP, syscall.TCP_KEEPINTVL, tcpKeepIntvl); err != nil { - return wrapSyscallError("setsockopt", err) - } - - if err := syscall.SetsockoptInt(int(fd), syscall.IPPROTO_TCP, syscall.TCP_KEEPIDLE, tcpKeepIdle); err != nil { - return wrapSyscallError("setsockopt", err) - } - return nil -} - -// roundDurationUp rounds d to the next multiple of to. -// -// note that it was copied from the std library -func roundDuration(d time.Duration, to time.Duration) time.Duration { - return (d + to - 1) / to -} - -// wrapSyscallError takes an error and a syscall name. If the error is -// a syscall.Errno, it wraps it in a os.SyscallError using the syscall name. -// -// note that it was copied from the std library -func wrapSyscallError(name string, err error) error { - if _, ok := err.(syscall.Errno); ok { - err = os.NewSyscallError(name, err) - } - return err -} diff --git a/vendor/github.com/openshift/library-go/pkg/network/dialer_others.go b/vendor/github.com/openshift/library-go/pkg/network/dialer_others.go deleted file mode 100644 index 6519b0986db25..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/network/dialer_others.go +++ /dev/null @@ -1,19 +0,0 @@ -// +build !linux - -package network - -import ( - "net" - "time" - - "k8s.io/klog/v2" -) - -func dialerWithDefaultOptions() DialContext { - klog.V(2).Info("Creating the default network Dialer (unsupported platform). It may take up to 15 minutes to detect broken connections and establish a new one") - nd := &net.Dialer{ - Timeout: 30 * time.Second, - KeepAlive: 30 * time.Second, - } - return nd.DialContext -} diff --git a/vendor/github.com/openshift/library-go/pkg/oauth/oauthdiscovery/discovery.go b/vendor/github.com/openshift/library-go/pkg/oauth/oauthdiscovery/discovery.go deleted file mode 100644 index 713a404208f73..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/oauth/oauthdiscovery/discovery.go +++ /dev/null @@ -1,32 +0,0 @@ -package oauthdiscovery - -// OauthAuthorizationServerMetadata holds OAuth 2.0 Authorization Server Metadata used for discovery -// https://tools.ietf.org/html/draft-ietf-oauth-discovery-04#section-2 -type OauthAuthorizationServerMetadata struct { - // The authorization server's issuer identifier, which is a URL that uses the https scheme and has no query or fragment components. - // This is the location where .well-known RFC 5785 [RFC5785] resources containing information about the authorization server are published. - Issuer string `json:"issuer"` - - // URL of the authorization server's authorization endpoint [RFC6749]. - AuthorizationEndpoint string `json:"authorization_endpoint"` - - // URL of the authorization server's token endpoint [RFC6749]. - TokenEndpoint string `json:"token_endpoint"` - - // JSON array containing a list of the OAuth 2.0 [RFC6749] scope values that this authorization server supports. - // Servers MAY choose not to advertise some supported scope values even when this parameter is used. - ScopesSupported []string `json:"scopes_supported"` - - // JSON array containing a list of the OAuth 2.0 response_type values that this authorization server supports. - // The array values used are the same as those used with the response_types parameter defined by "OAuth 2.0 Dynamic Client Registration Protocol" [RFC7591]. - ResponseTypesSupported []string `json:"response_types_supported"` - - // JSON array containing a list of the OAuth 2.0 grant type values that this authorization server supports. - // The array values used are the same as those used with the grant_types parameter defined by "OAuth 2.0 Dynamic Client Registration Protocol" [RFC7591]. - GrantTypesSupported []string `json:"grant_types_supported"` - - // JSON array containing a list of PKCE [RFC7636] code challenge methods supported by this authorization server. - // Code challenge method values are used in the "code_challenge_method" parameter defined in Section 4.3 of [RFC7636]. - // The valid code challenge method values are those registered in the IANA "PKCE Code Challenge Methods" registry [IANA.OAuth.Parameters]. - CodeChallengeMethodsSupported []string `json:"code_challenge_methods_supported"` -} diff --git a/vendor/github.com/openshift/library-go/pkg/oauth/oauthdiscovery/urls.go b/vendor/github.com/openshift/library-go/pkg/oauth/oauthdiscovery/urls.go deleted file mode 100644 index 2539d4a391679..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/oauth/oauthdiscovery/urls.go +++ /dev/null @@ -1,37 +0,0 @@ -package oauthdiscovery - -import ( - "path" - "strings" -) - -const ( - AuthorizePath = "/authorize" - TokenPath = "/token" - InfoPath = "/info" - - RequestTokenEndpoint = "/token/request" - DisplayTokenEndpoint = "/token/display" - ImplicitTokenEndpoint = "/token/implicit" -) - -const OpenShiftOAuthAPIPrefix = "/oauth" - -func OpenShiftOAuthAuthorizeURL(masterAddr string) string { - return openShiftOAuthURL(masterAddr, AuthorizePath) -} -func OpenShiftOAuthTokenURL(masterAddr string) string { - return openShiftOAuthURL(masterAddr, TokenPath) -} -func OpenShiftOAuthTokenRequestURL(masterAddr string) string { - return openShiftOAuthURL(masterAddr, RequestTokenEndpoint) -} -func OpenShiftOAuthTokenDisplayURL(masterAddr string) string { - return openShiftOAuthURL(masterAddr, DisplayTokenEndpoint) -} -func OpenShiftOAuthTokenImplicitURL(masterAddr string) string { - return openShiftOAuthURL(masterAddr, ImplicitTokenEndpoint) -} -func openShiftOAuthURL(masterAddr, oauthEndpoint string) string { - return strings.TrimRight(masterAddr, "/") + path.Join(OpenShiftOAuthAPIPrefix, oauthEndpoint) -} diff --git a/vendor/github.com/openshift/library-go/pkg/quota/clusterquotamapping/clusterquotamapping.go b/vendor/github.com/openshift/library-go/pkg/quota/clusterquotamapping/clusterquotamapping.go deleted file mode 100644 index fc88dc807504f..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/quota/clusterquotamapping/clusterquotamapping.go +++ /dev/null @@ -1,409 +0,0 @@ -package clusterquotamapping - -import ( - "fmt" - "time" - - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/errors" - kapierrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" - "k8s.io/apimachinery/pkg/util/wait" - corev1informers "k8s.io/client-go/informers/core/v1" - corev1listers "k8s.io/client-go/listers/core/v1" - "k8s.io/client-go/tools/cache" - "k8s.io/client-go/util/workqueue" - "k8s.io/klog/v2" - - quotav1 "github.com/openshift/api/quota/v1" - quotainformer "github.com/openshift/client-go/quota/informers/externalversions/quota/v1" - quotalister "github.com/openshift/client-go/quota/listers/quota/v1" -) - -// Look out, here there be dragons! -// There is a race when dealing with the DeltaFifo compression used to back a reflector for a controller that uses two -// SharedInformers for both their watch events AND their caches. The scenario looks like this -// -// 1. Add, Delete a namespace really fast, *before* the add is observed by the controller using the reflector. -// 2. Add or Update a quota that matches the Add namespace -// 3. The cache had the intermediate state for the namespace for some period of time. This makes the quota update the mapping indicating a match. -// 4. The ns Delete is compressed out and never delivered to the controller, so the improper match is never cleared. -// -// This sounds pretty bad, however, we fail in the "safe" direction and the consequences are detectable. -// When going from quota to namespace, you can get back a namespace that doesn't exist. There are no resource in a non-existence -// namespace, so you know to clear all referenced resources. In addition, this add/delete has to happen so fast -// that it would be nearly impossible for any resources to be created. If you do create resources, then we must be observing -// their deletes. When quota is replenished, we'll see that we need to clear any charges. -// -// When going from namespace to quota, you can get back a quota that doesn't exist. Since the cache is shared, -// we know that a missing quota means that there isn't anything for us to bill against, so we can skip it. -// -// If the mapping cache is wrong and a previously deleted quota or namespace is created, this controller -// correctly adds the items back to the list and clears out all previous mappings. -// -// In addition to those constraints, the timing threshold for actually hitting this problem is really tight. It's -// basically a script that is creating and deleting things as fast as it possibly can. Sub-millisecond in the fuzz -// test where I caught the problem. - -// NewClusterQuotaMappingController builds a mapping between namespaces and clusterresourcequotas -func NewClusterQuotaMappingController(namespaceInformer corev1informers.NamespaceInformer, quotaInformer quotainformer.ClusterResourceQuotaInformer) *ClusterQuotaMappingController { - c := newClusterQuotaMappingController(namespaceInformer.Informer(), quotaInformer) - c.namespaceLister = v1NamespaceLister{lister: namespaceInformer.Lister()} - return c -} - -type namespaceLister interface { - Each(label labels.Selector, fn func(metav1.Object) bool) error - Get(name string) (metav1.Object, error) -} - -type v1NamespaceLister struct { - lister corev1listers.NamespaceLister -} - -func (l v1NamespaceLister) Each(label labels.Selector, fn func(metav1.Object) bool) error { - results, err := l.lister.List(label) - if err != nil { - return err - } - for i := range results { - if !fn(results[i]) { - return nil - } - } - return nil -} -func (l v1NamespaceLister) Get(name string) (metav1.Object, error) { - return l.lister.Get(name) -} - -func newClusterQuotaMappingController(namespaceInformer cache.SharedIndexInformer, quotaInformer quotainformer.ClusterResourceQuotaInformer) *ClusterQuotaMappingController { - c := &ClusterQuotaMappingController{ - namespaceQueue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "controller_clusterquotamappingcontroller_namespaces"), - quotaQueue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "controller_clusterquotamappingcontroller_clusterquotas"), - clusterQuotaMapper: NewClusterQuotaMapper(), - } - namespaceInformer.AddEventHandler(cache.ResourceEventHandlerFuncs{ - AddFunc: c.addNamespace, - UpdateFunc: c.updateNamespace, - DeleteFunc: c.deleteNamespace, - }) - c.namespacesSynced = namespaceInformer.HasSynced - - quotaInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ - AddFunc: c.addQuota, - UpdateFunc: c.updateQuota, - DeleteFunc: c.deleteQuota, - }) - c.quotaLister = quotaInformer.Lister() - c.quotasSynced = quotaInformer.Informer().HasSynced - - return c -} - -type ClusterQuotaMappingController struct { - namespaceQueue workqueue.RateLimitingInterface - namespaceLister namespaceLister - namespacesSynced func() bool - - quotaQueue workqueue.RateLimitingInterface - quotaLister quotalister.ClusterResourceQuotaLister - quotasSynced func() bool - - clusterQuotaMapper *clusterQuotaMapper -} - -func (c *ClusterQuotaMappingController) GetClusterQuotaMapper() ClusterQuotaMapper { - return c.clusterQuotaMapper -} - -func (c *ClusterQuotaMappingController) Run(workers int, stopCh <-chan struct{}) { - defer utilruntime.HandleCrash() - defer c.namespaceQueue.ShutDown() - defer c.quotaQueue.ShutDown() - - klog.Infof("Starting ClusterQuotaMappingController controller") - defer klog.Infof("Shutting down ClusterQuotaMappingController controller") - - if !cache.WaitForCacheSync(stopCh, c.namespacesSynced, c.quotasSynced) { - utilruntime.HandleError(fmt.Errorf("timed out waiting for caches to sync")) - return - } - - klog.V(4).Infof("Starting workers for quota mapping controller workers") - for i := 0; i < workers; i++ { - go wait.Until(c.namespaceWorker, time.Second, stopCh) - go wait.Until(c.quotaWorker, time.Second, stopCh) - } - - <-stopCh -} - -func (c *ClusterQuotaMappingController) syncQuota(quota *quotav1.ClusterResourceQuota) error { - matcherFunc, err := GetObjectMatcher(quota.Spec.Selector) - if err != nil { - return err - } - - if err := c.namespaceLister.Each(labels.Everything(), func(obj metav1.Object) bool { - // attempt to set the mapping. The quotas never collide with each other (same quota is never processed twice in parallel) - // so this means that the project we have is out of date, pull a more recent copy from the cache and retest - for { - matches, err := matcherFunc(obj) - if err != nil { - utilruntime.HandleError(err) - break - } - success, quotaMatches, _ := c.clusterQuotaMapper.setMapping(quota, obj, !matches) - if success { - break - } - - // if the quota is mismatched, then someone has updated the quota or has deleted the entry entirely. - // if we've been updated, we'll be rekicked, if we've been deleted we should stop. Either way, this - // execution is finished - if !quotaMatches { - return false - } - newer, err := c.namespaceLister.Get(obj.GetName()) - if kapierrors.IsNotFound(err) { - // if the namespace is gone, then the deleteNamespace path will be called, just continue - break - } - if err != nil { - utilruntime.HandleError(err) - break - } - obj = newer - } - return true - }); err != nil { - return err - } - - c.clusterQuotaMapper.completeQuota(quota) - return nil -} - -func (c *ClusterQuotaMappingController) syncNamespace(namespace metav1.Object) error { - allQuotas, err1 := c.quotaLister.List(labels.Everything()) - if err1 != nil { - return err1 - } - for i := range allQuotas { - quota := allQuotas[i] - - for { - matcherFunc, err := GetObjectMatcher(quota.Spec.Selector) - if err != nil { - utilruntime.HandleError(err) - break - } - - // attempt to set the mapping. The namespaces never collide with each other (same namespace is never processed twice in parallel) - // so this means that the quota we have is out of date, pull a more recent copy from the cache and retest - matches, err := matcherFunc(namespace) - if err != nil { - utilruntime.HandleError(err) - break - } - success, _, namespaceMatches := c.clusterQuotaMapper.setMapping(quota, namespace, !matches) - if success { - break - } - - // if the namespace is mismatched, then someone has updated the namespace or has deleted the entry entirely. - // if we've been updated, we'll be rekicked, if we've been deleted we should stop. Either way, this - // execution is finished - if !namespaceMatches { - return nil - } - - quota, err = c.quotaLister.Get(quota.Name) - if kapierrors.IsNotFound(err) { - // if the quota is gone, then the deleteQuota path will be called, just continue - break - } - if err != nil { - utilruntime.HandleError(err) - break - } - } - } - - c.clusterQuotaMapper.completeNamespace(namespace) - return nil -} - -func (c *ClusterQuotaMappingController) quotaWork() bool { - key, quit := c.quotaQueue.Get() - if quit { - return true - } - defer c.quotaQueue.Done(key) - - quota, err := c.quotaLister.Get(key.(string)) - if err != nil { - if errors.IsNotFound(err) { - c.quotaQueue.Forget(key) - return false - } - utilruntime.HandleError(err) - return false - } - - err = c.syncQuota(quota) - outOfRetries := c.quotaQueue.NumRequeues(key) > 5 - switch { - case err != nil && outOfRetries: - utilruntime.HandleError(err) - c.quotaQueue.Forget(key) - - case err != nil && !outOfRetries: - c.quotaQueue.AddRateLimited(key) - - default: - c.quotaQueue.Forget(key) - } - - return false -} - -func (c *ClusterQuotaMappingController) quotaWorker() { - for { - if quit := c.quotaWork(); quit { - return - } - } -} - -func (c *ClusterQuotaMappingController) namespaceWork() bool { - key, quit := c.namespaceQueue.Get() - if quit { - return true - } - defer c.namespaceQueue.Done(key) - - namespace, err := c.namespaceLister.Get(key.(string)) - if kapierrors.IsNotFound(err) { - c.namespaceQueue.Forget(key) - return false - } - if err != nil { - utilruntime.HandleError(err) - return false - } - - err = c.syncNamespace(namespace) - outOfRetries := c.namespaceQueue.NumRequeues(key) > 5 - switch { - case err != nil && outOfRetries: - utilruntime.HandleError(err) - c.namespaceQueue.Forget(key) - - case err != nil && !outOfRetries: - c.namespaceQueue.AddRateLimited(key) - - default: - c.namespaceQueue.Forget(key) - } - - return false -} - -func (c *ClusterQuotaMappingController) namespaceWorker() { - for { - if quit := c.namespaceWork(); quit { - return - } - } -} - -func (c *ClusterQuotaMappingController) deleteNamespace(obj interface{}) { - var name string - switch ns := obj.(type) { - case cache.DeletedFinalStateUnknown: - switch nested := ns.Obj.(type) { - case *corev1.Namespace: - name = nested.Name - default: - utilruntime.HandleError(fmt.Errorf("tombstone contained object that is not a Namespace %T", ns.Obj)) - return - } - case *corev1.Namespace: - name = ns.Name - default: - utilruntime.HandleError(fmt.Errorf("not a Namespace %v", obj)) - return - } - c.clusterQuotaMapper.removeNamespace(name) -} - -func (c *ClusterQuotaMappingController) addNamespace(cur interface{}) { - c.enqueueNamespace(cur) -} -func (c *ClusterQuotaMappingController) updateNamespace(old, cur interface{}) { - c.enqueueNamespace(cur) -} -func (c *ClusterQuotaMappingController) enqueueNamespace(obj interface{}) { - switch ns := obj.(type) { - case *corev1.Namespace: - if !c.clusterQuotaMapper.requireNamespace(ns) { - return - } - default: - utilruntime.HandleError(fmt.Errorf("not a Namespace %v", obj)) - return - } - - key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(obj) - if err != nil { - utilruntime.HandleError(err) - return - } - c.namespaceQueue.Add(key) -} - -func (c *ClusterQuotaMappingController) deleteQuota(obj interface{}) { - quota, ok1 := obj.(*quotav1.ClusterResourceQuota) - if !ok1 { - tombstone, ok := obj.(cache.DeletedFinalStateUnknown) - if !ok { - utilruntime.HandleError(fmt.Errorf("couldn't get object from tombstone %v", obj)) - return - } - quota, ok = tombstone.Obj.(*quotav1.ClusterResourceQuota) - if !ok { - utilruntime.HandleError(fmt.Errorf("tombstone contained object that is not a Quota %v", obj)) - return - } - } - - c.clusterQuotaMapper.removeQuota(quota.Name) -} - -func (c *ClusterQuotaMappingController) addQuota(cur interface{}) { - c.enqueueQuota(cur) -} -func (c *ClusterQuotaMappingController) updateQuota(old, cur interface{}) { - c.enqueueQuota(cur) -} -func (c *ClusterQuotaMappingController) enqueueQuota(obj interface{}) { - quota, ok := obj.(*quotav1.ClusterResourceQuota) - if !ok { - utilruntime.HandleError(fmt.Errorf("not a Quota %v", obj)) - return - } - if !c.clusterQuotaMapper.requireQuota(quota) { - return - } - - key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(quota) - if err != nil { - utilruntime.HandleError(err) - return - } - c.quotaQueue.Add(key) -} diff --git a/vendor/github.com/openshift/library-go/pkg/quota/clusterquotamapping/helpers.go b/vendor/github.com/openshift/library-go/pkg/quota/clusterquotamapping/helpers.go deleted file mode 100644 index 0c2c2ae7a5c3c..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/quota/clusterquotamapping/helpers.go +++ /dev/null @@ -1,139 +0,0 @@ -package clusterquotamapping - -import ( - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/meta" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/runtime" - - quotav1 "github.com/openshift/api/quota/v1" -) - -func GetResourceQuotasStatusByNamespace(namespaceStatuses quotav1.ResourceQuotasStatusByNamespace, namespace string) (corev1.ResourceQuotaStatus, bool) { - for i := range namespaceStatuses { - curr := namespaceStatuses[i] - if curr.Namespace == namespace { - return curr.Status, true - } - } - return corev1.ResourceQuotaStatus{}, false -} - -func RemoveResourceQuotasStatusByNamespace(namespaceStatuses *quotav1.ResourceQuotasStatusByNamespace, namespace string) { - newNamespaceStatuses := quotav1.ResourceQuotasStatusByNamespace{} - for i := range *namespaceStatuses { - curr := (*namespaceStatuses)[i] - if curr.Namespace == namespace { - continue - } - newNamespaceStatuses = append(newNamespaceStatuses, curr) - } - *namespaceStatuses = newNamespaceStatuses -} - -func InsertResourceQuotasStatus(namespaceStatuses *quotav1.ResourceQuotasStatusByNamespace, newStatus quotav1.ResourceQuotaStatusByNamespace) { - newNamespaceStatuses := quotav1.ResourceQuotasStatusByNamespace{} - found := false - for i := range *namespaceStatuses { - curr := (*namespaceStatuses)[i] - if curr.Namespace == newStatus.Namespace { - // do this so that we don't change serialization order - newNamespaceStatuses = append(newNamespaceStatuses, newStatus) - found = true - continue - } - newNamespaceStatuses = append(newNamespaceStatuses, curr) - } - if !found { - newNamespaceStatuses = append(newNamespaceStatuses, newStatus) - } - *namespaceStatuses = newNamespaceStatuses -} - -var accessor = meta.NewAccessor() - -func GetMatcher(selector quotav1.ClusterResourceQuotaSelector) (func(obj runtime.Object) (bool, error), error) { - var labelSelector labels.Selector - if selector.LabelSelector != nil { - var err error - labelSelector, err = metav1.LabelSelectorAsSelector(selector.LabelSelector) - if err != nil { - return nil, err - } - } - - var annotationSelector map[string]string - if len(selector.AnnotationSelector) > 0 { - // ensure our matcher has a stable copy of the map - annotationSelector = make(map[string]string, len(selector.AnnotationSelector)) - for k, v := range selector.AnnotationSelector { - annotationSelector[k] = v - } - } - - return func(obj runtime.Object) (bool, error) { - if labelSelector != nil { - objLabels, err := accessor.Labels(obj) - if err != nil { - return false, err - } - if !labelSelector.Matches(labels.Set(objLabels)) { - return false, nil - } - } - - if annotationSelector != nil { - objAnnotations, err := accessor.Annotations(obj) - if err != nil { - return false, err - } - for k, v := range annotationSelector { - if objValue, exists := objAnnotations[k]; !exists || objValue != v { - return false, nil - } - } - } - - return true, nil - }, nil -} - -func GetObjectMatcher(selector quotav1.ClusterResourceQuotaSelector) (func(obj metav1.Object) (bool, error), error) { - var labelSelector labels.Selector - if selector.LabelSelector != nil { - var err error - labelSelector, err = metav1.LabelSelectorAsSelector(selector.LabelSelector) - if err != nil { - return nil, err - } - } - - var annotationSelector map[string]string - if len(selector.AnnotationSelector) > 0 { - // ensure our matcher has a stable copy of the map - annotationSelector = make(map[string]string, len(selector.AnnotationSelector)) - for k, v := range selector.AnnotationSelector { - annotationSelector[k] = v - } - } - - return func(obj metav1.Object) (bool, error) { - if labelSelector != nil { - if !labelSelector.Matches(labels.Set(obj.GetLabels())) { - return false, nil - } - } - - if annotationSelector != nil { - objAnnotations := obj.GetAnnotations() - for k, v := range annotationSelector { - if objValue, exists := objAnnotations[k]; !exists || objValue != v { - return false, nil - } - } - } - - return true, nil - }, nil -} diff --git a/vendor/github.com/openshift/library-go/pkg/quota/clusterquotamapping/mapper.go b/vendor/github.com/openshift/library-go/pkg/quota/clusterquotamapping/mapper.go deleted file mode 100644 index e8d66c4fa2ab5..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/quota/clusterquotamapping/mapper.go +++ /dev/null @@ -1,289 +0,0 @@ -package clusterquotamapping - -import ( - "reflect" - "sync" - - "k8s.io/apimachinery/pkg/api/equality" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/sets" - - quotav1 "github.com/openshift/api/quota/v1" -) - -type ClusterQuotaMapper interface { - // GetClusterQuotasFor returns the list of clusterquota names that this namespace matches. It also - // returns the selectionFields associated with the namespace for the check so that callers can determine staleness - GetClusterQuotasFor(namespaceName string) ([]string, SelectionFields) - // GetNamespacesFor returns the list of namespace names that this cluster quota matches. It also - // returns the selector associated with the clusterquota for the check so that callers can determine staleness - GetNamespacesFor(quotaName string) ([]string, quotav1.ClusterResourceQuotaSelector) - - AddListener(listener MappingChangeListener) -} - -// MappingChangeListener is notified of changes to the mapping. It must not block. -type MappingChangeListener interface { - AddMapping(quotaName, namespaceName string) - RemoveMapping(quotaName, namespaceName string) -} - -type SelectionFields struct { - Labels map[string]string - Annotations map[string]string -} - -// clusterQuotaMapper gives thread safe access to the actual mappings that are being stored. -// Many method use a shareable read lock to check status followed by a non-shareable -// write lock which double checks the condition before proceeding. Since locks aren't escalatable -// you have to perform the recheck because someone could have beaten you in. -type clusterQuotaMapper struct { - lock sync.RWMutex - - // requiredQuotaToSelector indicates the latest label selector this controller has observed for a quota - requiredQuotaToSelector map[string]quotav1.ClusterResourceQuotaSelector - // requiredNamespaceToLabels indicates the latest selectionFields this controller has observed for a namespace - requiredNamespaceToLabels map[string]SelectionFields - // completedQuotaToSelector indicates the latest label selector this controller has scanned against namespaces - completedQuotaToSelector map[string]quotav1.ClusterResourceQuotaSelector - // completedNamespaceToLabels indicates the latest selectionFields this controller has scanned against cluster quotas - completedNamespaceToLabels map[string]SelectionFields - - quotaToNamespaces map[string]sets.String - namespaceToQuota map[string]sets.String - - listeners []MappingChangeListener -} - -func NewClusterQuotaMapper() *clusterQuotaMapper { - return &clusterQuotaMapper{ - requiredQuotaToSelector: map[string]quotav1.ClusterResourceQuotaSelector{}, - requiredNamespaceToLabels: map[string]SelectionFields{}, - completedQuotaToSelector: map[string]quotav1.ClusterResourceQuotaSelector{}, - completedNamespaceToLabels: map[string]SelectionFields{}, - - quotaToNamespaces: map[string]sets.String{}, - namespaceToQuota: map[string]sets.String{}, - } -} - -func (m *clusterQuotaMapper) GetClusterQuotasFor(namespaceName string) ([]string, SelectionFields) { - m.lock.RLock() - defer m.lock.RUnlock() - - quotas, ok := m.namespaceToQuota[namespaceName] - if !ok { - return []string{}, m.completedNamespaceToLabels[namespaceName] - } - return quotas.List(), m.completedNamespaceToLabels[namespaceName] -} - -func (m *clusterQuotaMapper) GetNamespacesFor(quotaName string) ([]string, quotav1.ClusterResourceQuotaSelector) { - m.lock.RLock() - defer m.lock.RUnlock() - - namespaces, ok := m.quotaToNamespaces[quotaName] - if !ok { - return []string{}, m.completedQuotaToSelector[quotaName] - } - return namespaces.List(), m.completedQuotaToSelector[quotaName] -} - -func (m *clusterQuotaMapper) AddListener(listener MappingChangeListener) { - m.lock.Lock() - defer m.lock.Unlock() - - m.listeners = append(m.listeners, listener) -} - -// requireQuota updates the selector requirements for the given quota. This prevents stale updates to the mapping itself. -// returns true if a modification was made -func (m *clusterQuotaMapper) requireQuota(quota *quotav1.ClusterResourceQuota) bool { - m.lock.RLock() - selector, exists := m.requiredQuotaToSelector[quota.Name] - m.lock.RUnlock() - - if selectorMatches(selector, exists, quota) { - return false - } - - m.lock.Lock() - defer m.lock.Unlock() - selector, exists = m.requiredQuotaToSelector[quota.Name] - if selectorMatches(selector, exists, quota) { - return false - } - - m.requiredQuotaToSelector[quota.Name] = quota.Spec.Selector - return true -} - -// completeQuota updates the latest selector used to generate the mappings for this quota. The value is returned -// by the Get methods for the mapping so that callers can determine staleness -func (m *clusterQuotaMapper) completeQuota(quota *quotav1.ClusterResourceQuota) { - m.lock.Lock() - defer m.lock.Unlock() - m.completedQuotaToSelector[quota.Name] = quota.Spec.Selector -} - -// removeQuota deletes a quota from all mappings -func (m *clusterQuotaMapper) removeQuota(quotaName string) { - m.lock.Lock() - defer m.lock.Unlock() - - delete(m.requiredQuotaToSelector, quotaName) - delete(m.completedQuotaToSelector, quotaName) - delete(m.quotaToNamespaces, quotaName) - for namespaceName, quotas := range m.namespaceToQuota { - if quotas.Has(quotaName) { - quotas.Delete(quotaName) - for _, listener := range m.listeners { - listener.RemoveMapping(quotaName, namespaceName) - } - } - } -} - -// requireNamespace updates the label requirements for the given namespace. This prevents stale updates to the mapping itself. -// returns true if a modification was made -func (m *clusterQuotaMapper) requireNamespace(namespace metav1.Object) bool { - m.lock.RLock() - selectionFields, exists := m.requiredNamespaceToLabels[namespace.GetName()] - m.lock.RUnlock() - - if selectionFieldsMatch(selectionFields, exists, namespace) { - return false - } - - m.lock.Lock() - defer m.lock.Unlock() - selectionFields, exists = m.requiredNamespaceToLabels[namespace.GetName()] - if selectionFieldsMatch(selectionFields, exists, namespace) { - return false - } - - m.requiredNamespaceToLabels[namespace.GetName()] = GetSelectionFields(namespace) - return true -} - -// completeNamespace updates the latest selectionFields used to generate the mappings for this namespace. The value is returned -// by the Get methods for the mapping so that callers can determine staleness -func (m *clusterQuotaMapper) completeNamespace(namespace metav1.Object) { - m.lock.Lock() - defer m.lock.Unlock() - m.completedNamespaceToLabels[namespace.GetName()] = GetSelectionFields(namespace) -} - -// removeNamespace deletes a namespace from all mappings -func (m *clusterQuotaMapper) removeNamespace(namespaceName string) { - m.lock.Lock() - defer m.lock.Unlock() - - delete(m.requiredNamespaceToLabels, namespaceName) - delete(m.completedNamespaceToLabels, namespaceName) - delete(m.namespaceToQuota, namespaceName) - for quotaName, namespaces := range m.quotaToNamespaces { - if namespaces.Has(namespaceName) { - namespaces.Delete(namespaceName) - for _, listener := range m.listeners { - listener.RemoveMapping(quotaName, namespaceName) - } - } - } -} - -func selectorMatches(selector quotav1.ClusterResourceQuotaSelector, exists bool, quota *quotav1.ClusterResourceQuota) bool { - return exists && equality.Semantic.DeepEqual(selector, quota.Spec.Selector) -} -func selectionFieldsMatch(selectionFields SelectionFields, exists bool, namespace metav1.Object) bool { - return exists && reflect.DeepEqual(selectionFields, GetSelectionFields(namespace)) -} - -// setMapping maps (or removes a mapping) between a clusterquota and a namespace -// It returns whether the action worked, whether the quota is out of date, whether the namespace is out of date -// This allows callers to decide whether to pull new information from the cache or simply skip execution -func (m *clusterQuotaMapper) setMapping(quota *quotav1.ClusterResourceQuota, namespace metav1.Object, remove bool) (bool /*added*/, bool /*quota matches*/, bool /*namespace matches*/) { - m.lock.RLock() - selector, selectorExists := m.requiredQuotaToSelector[quota.Name] - selectionFields, selectionFieldsExist := m.requiredNamespaceToLabels[namespace.GetName()] - m.lock.RUnlock() - - if !selectorMatches(selector, selectorExists, quota) { - return false, false, selectionFieldsMatch(selectionFields, selectionFieldsExist, namespace) - } - if !selectionFieldsMatch(selectionFields, selectionFieldsExist, namespace) { - return false, true, false - } - - m.lock.Lock() - defer m.lock.Unlock() - selector, selectorExists = m.requiredQuotaToSelector[quota.Name] - selectionFields, selectionFieldsExist = m.requiredNamespaceToLabels[namespace.GetName()] - if !selectorMatches(selector, selectorExists, quota) { - return false, false, selectionFieldsMatch(selectionFields, selectionFieldsExist, namespace) - } - if !selectionFieldsMatch(selectionFields, selectionFieldsExist, namespace) { - return false, true, false - } - - if remove { - mutated := false - - namespaces, ok := m.quotaToNamespaces[quota.Name] - if !ok { - m.quotaToNamespaces[quota.Name] = sets.String{} - } else { - mutated = namespaces.Has(namespace.GetName()) - namespaces.Delete(namespace.GetName()) - } - - quotas, ok := m.namespaceToQuota[namespace.GetName()] - if !ok { - m.namespaceToQuota[namespace.GetName()] = sets.String{} - } else { - mutated = mutated || quotas.Has(quota.Name) - quotas.Delete(quota.Name) - } - - if mutated { - for _, listener := range m.listeners { - listener.RemoveMapping(quota.Name, namespace.GetName()) - } - } - - return true, true, true - } - - mutated := false - - namespaces, ok := m.quotaToNamespaces[quota.Name] - if !ok { - mutated = true - m.quotaToNamespaces[quota.Name] = sets.NewString(namespace.GetName()) - } else { - mutated = !namespaces.Has(namespace.GetName()) - namespaces.Insert(namespace.GetName()) - } - - quotas, ok := m.namespaceToQuota[namespace.GetName()] - if !ok { - mutated = true - m.namespaceToQuota[namespace.GetName()] = sets.NewString(quota.Name) - } else { - mutated = mutated || !quotas.Has(quota.Name) - quotas.Insert(quota.Name) - } - - if mutated { - for _, listener := range m.listeners { - listener.AddMapping(quota.Name, namespace.GetName()) - } - } - - return true, true, true - -} - -func GetSelectionFields(namespace metav1.Object) SelectionFields { - return SelectionFields{Labels: namespace.GetLabels(), Annotations: namespace.GetAnnotations()} -} diff --git a/vendor/github.com/openshift/library-go/pkg/quota/quotautil/error.go b/vendor/github.com/openshift/library-go/pkg/quota/quotautil/error.go deleted file mode 100644 index 14faf6bc025dc..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/quota/quotautil/error.go +++ /dev/null @@ -1,42 +0,0 @@ -package quotautil - -import ( - "strings" - - apierrs "k8s.io/apimachinery/pkg/api/errors" -) - -// errMessageString is a part of error message copied from quotaAdmission.Admit() method in -// k8s.io/kubernetes/plugin/pkg/admission/resourcequota/admission.go module -const errQuotaMessageString = `exceeded quota:` -const errQuotaUnknownMessageString = `status unknown for quota:` -const errLimitsMessageString = `exceeds the maximum limit` - -// IsErrorQuotaExceeded returns true if the given error stands for a denied request caused by detected quota -// abuse. -func IsErrorQuotaExceeded(err error) bool { - if isForbidden := apierrs.IsForbidden(err); isForbidden || apierrs.IsInvalid(err) { - lowered := strings.ToLower(err.Error()) - // the limit error message can be accompanied only by Invalid reason - if strings.Contains(lowered, errLimitsMessageString) { - return true - } - // the quota error message can be accompanied only by Forbidden reason - if isForbidden && (strings.Contains(lowered, errQuotaMessageString) || strings.Contains(lowered, errQuotaUnknownMessageString)) { - return true - } - } - return false -} - -// IsErrorLimitExceeded returns true if the given error is a limit error. -func IsErrorLimitExceeded(err error) bool { - if isForbidden := apierrs.IsForbidden(err); isForbidden || apierrs.IsInvalid(err) { - lowered := strings.ToLower(err.Error()) - // the limit error message can be accompanied only by Invalid reason - if strings.Contains(lowered, errLimitsMessageString) { - return true - } - } - return false -} diff --git a/vendor/github.com/openshift/library-go/pkg/quota/quotautil/helpers.go b/vendor/github.com/openshift/library-go/pkg/quota/quotautil/helpers.go deleted file mode 100644 index a6bfc6269ed6d..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/quota/quotautil/helpers.go +++ /dev/null @@ -1,48 +0,0 @@ -package quotautil - -import ( - corev1 "k8s.io/api/core/v1" - - quotav1 "github.com/openshift/api/quota/v1" -) - -func GetResourceQuotasStatusByNamespace(namespaceStatuses quotav1.ResourceQuotasStatusByNamespace, namespace string) (corev1.ResourceQuotaStatus, bool) { - for i := range namespaceStatuses { - curr := namespaceStatuses[i] - if curr.Namespace == namespace { - return curr.Status, true - } - } - return corev1.ResourceQuotaStatus{}, false -} - -func RemoveResourceQuotasStatusByNamespace(namespaceStatuses *quotav1.ResourceQuotasStatusByNamespace, namespace string) { - newNamespaceStatuses := quotav1.ResourceQuotasStatusByNamespace{} - for i := range *namespaceStatuses { - curr := (*namespaceStatuses)[i] - if curr.Namespace == namespace { - continue - } - newNamespaceStatuses = append(newNamespaceStatuses, curr) - } - *namespaceStatuses = newNamespaceStatuses -} - -func InsertResourceQuotasStatus(namespaceStatuses *quotav1.ResourceQuotasStatusByNamespace, newStatus quotav1.ResourceQuotaStatusByNamespace) { - newNamespaceStatuses := quotav1.ResourceQuotasStatusByNamespace{} - found := false - for i := range *namespaceStatuses { - curr := (*namespaceStatuses)[i] - if curr.Namespace == newStatus.Namespace { - // do this so that we don't change serialization order - newNamespaceStatuses = append(newNamespaceStatuses, newStatus) - found = true - continue - } - newNamespaceStatuses = append(newNamespaceStatuses, curr) - } - if !found { - newNamespaceStatuses = append(newNamespaceStatuses, newStatus) - } - *namespaceStatuses = newNamespaceStatuses -} diff --git a/vendor/github.com/openshift/library-go/pkg/security/ldaputil/attribute.go b/vendor/github.com/openshift/library-go/pkg/security/ldaputil/attribute.go deleted file mode 100644 index 16ca72231b400..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/security/ldaputil/attribute.go +++ /dev/null @@ -1,47 +0,0 @@ -package ldaputil - -import ( - "encoding/base64" - "strings" - - "gopkg.in/ldap.v2" -) - -// GetAttributeValue finds the first attribute of those given that the LDAP entry has, and -// returns it. GetAttributeValue is able to query the DN as well as Attributes of the LDAP entry. -// If no value is found, the empty string is returned. -func GetAttributeValue(entry *ldap.Entry, attributes []string) string { - for _, k := range attributes { - // Ignore empty attributes - if len(k) == 0 { - continue - } - // Special-case DN, since it's not an attribute - if strings.ToLower(k) == "dn" { - return entry.DN - } - // Otherwise get an attribute and return it if present - if v := entry.GetAttributeValue(k); len(v) > 0 { - return v - } - } - return "" -} - -func GetRawAttributeValue(entry *ldap.Entry, attributes []string) string { - for _, k := range attributes { - // Ignore empty attributes - if len(k) == 0 { - continue - } - // Special-case DN, since it's not an attribute - if strings.ToLower(k) == "dn" { - return base64.RawURLEncoding.EncodeToString([]byte(entry.DN)) - } - // Otherwise get an attribute and return it if present - if v := entry.GetRawAttributeValue(k); len(v) > 0 { - return base64.RawURLEncoding.EncodeToString(v) - } - } - return "" -} diff --git a/vendor/github.com/openshift/library-go/pkg/security/ldaputil/url.go b/vendor/github.com/openshift/library-go/pkg/security/ldaputil/url.go deleted file mode 100644 index caf64963ac455..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/security/ldaputil/url.go +++ /dev/null @@ -1,247 +0,0 @@ -package ldaputil - -import ( - "fmt" - "net" - "net/url" - "strings" - - "gopkg.in/ldap.v2" -) - -// Scheme is a valid ldap scheme -type Scheme string - -const ( - SchemeLDAP Scheme = "ldap" - SchemeLDAPS Scheme = "ldaps" -) - -// Scope is a valid LDAP search scope -type Scope int - -const ( - ScopeWholeSubtree Scope = ldap.ScopeWholeSubtree - ScopeSingleLevel Scope = ldap.ScopeSingleLevel - ScopeBaseObject Scope = ldap.ScopeBaseObject -) - -// DerefAliases is a valid LDAP alias dereference parameter -type DerefAliases int - -const ( - DerefAliasesNever = ldap.NeverDerefAliases - DerefAliasesSearching = ldap.DerefInSearching - DerefAliasesFinding = ldap.DerefFindingBaseObj - DerefAliasesAlways = ldap.DerefAlways -) - -const ( - defaultLDAPPort = "389" - defaultLDAPSPort = "636" - - defaultHost = "localhost" - defaultQueryAttribute = "uid" - defaultFilter = "(objectClass=*)" - - scopeWholeSubtreeString = "sub" - scopeSingleLevelString = "one" - scopeBaseObjectString = "base" - - criticalExtensionPrefix = "!" -) - -// LDAPURL holds a parsed RFC 2255 URL -type LDAPURL struct { - // Scheme is ldap or ldaps - Scheme Scheme - // Host is the host:port of the LDAP server - Host string - // The DN of the branch of the directory where all searches should start from - BaseDN string - // The attribute to search for - QueryAttribute string - // The scope of the search. Can be ldap.ScopeWholeSubtree, ldap.ScopeSingleLevel, or ldap.ScopeBaseObject - Scope Scope - // A valid LDAP search filter (e.g. "(objectClass=*)") - Filter string -} - -// ParseURL parsed the given ldapURL as an RFC 2255 URL -// The syntax of the URL is ldap://host:port/basedn?attribute?scope?filter -func ParseURL(ldapURL string) (LDAPURL, error) { - // Must be a valid URL to start - parsedURL, err := url.Parse(ldapURL) - if err != nil { - return LDAPURL{}, err - } - - opts := LDAPURL{} - - determinedScheme, err := DetermineLDAPScheme(parsedURL.Scheme) - if err != nil { - return LDAPURL{}, err - } - opts.Scheme = determinedScheme - - determinedHost, err := DetermineLDAPHost(parsedURL.Host, opts.Scheme) - if err != nil { - return LDAPURL{}, err - } - opts.Host = determinedHost - - // Set base dn (default to "") - // url.Parse() already percent-decodes the path - opts.BaseDN = strings.TrimLeft(parsedURL.Path, "/") - - attributes, scope, filter, extensions, err := SplitLDAPQuery(parsedURL.RawQuery) - if err != nil { - return LDAPURL{}, err - } - - // Attributes contains comma-separated attributes - // Set query attribute to first attribute - // Default to uid to match mod_auth_ldap - opts.QueryAttribute = strings.Split(attributes, ",")[0] - if len(opts.QueryAttribute) == 0 { - opts.QueryAttribute = defaultQueryAttribute - } - - determinedScope, err := DetermineLDAPScope(scope) - if err != nil { - return LDAPURL{}, err - } - opts.Scope = determinedScope - - determinedFilter, err := DetermineLDAPFilter(filter) - if err != nil { - return LDAPURL{}, err - } - opts.Filter = determinedFilter - - // Extensions are in "name=value,name2=value2" form - // Critical extensions are prefixed with a ! - // Optional extensions are ignored, per RFC - // Fail if there are any critical extensions, since we don't support any - if len(extensions) > 0 { - for _, extension := range strings.Split(extensions, ",") { - exttype := strings.SplitN(extension, "=", 2)[0] - if strings.HasPrefix(exttype, criticalExtensionPrefix) { - return LDAPURL{}, fmt.Errorf("unsupported critical extension %s", extension) - } - } - } - - return opts, nil - -} - -// DetermineLDAPScheme determines the LDAP connection scheme. Scheme is one of "ldap" or "ldaps" -// Default to "ldap" -func DetermineLDAPScheme(scheme string) (Scheme, error) { - switch Scheme(scheme) { - case SchemeLDAP, SchemeLDAPS: - return Scheme(scheme), nil - default: - return "", fmt.Errorf("invalid scheme %q", scheme) - } -} - -// DetermineLDAPHost determines the host and port for the LDAP connection. -// The default host is localhost; the default port for scheme "ldap" is 389, for "ldaps" is 686 -func DetermineLDAPHost(hostport string, scheme Scheme) (string, error) { - if len(hostport) == 0 { - hostport = defaultHost - } - // add port if missing - if _, _, err := net.SplitHostPort(hostport); err != nil { - switch scheme { - case SchemeLDAPS: - return net.JoinHostPort(hostport, defaultLDAPSPort), nil - case SchemeLDAP: - return net.JoinHostPort(hostport, defaultLDAPPort), nil - default: - return "", fmt.Errorf("no default port for scheme %q", scheme) - } - } - // nothing needed to be done - return hostport, nil -} - -// SplitLDAPQuery splits the query in the URL into the substituent parts. All sections are optional. -// Query syntax is attribute?scope?filter?extensions -func SplitLDAPQuery(query string) (attributes, scope, filter, extensions string, err error) { - parts := strings.Split(query, "?") - switch len(parts) { - case 4: - extensions = parts[3] - fallthrough - case 3: - if v, err := url.QueryUnescape(parts[2]); err != nil { - return "", "", "", "", err - } else { - filter = v - } - fallthrough - case 2: - if v, err := url.QueryUnescape(parts[1]); err != nil { - return "", "", "", "", err - } else { - scope = v - } - fallthrough - case 1: - if v, err := url.QueryUnescape(parts[0]); err != nil { - return "", "", "", "", err - } else { - attributes = v - } - return attributes, scope, filter, extensions, nil - case 0: - return - default: - err = fmt.Errorf("too many query options %q", query) - return "", "", "", "", err - } -} - -// DetermineLDAPScope determines the LDAP search scope. Scope is one of "sub", "one", or "base" -// Default to "sub" to match mod_auth_ldap -func DetermineLDAPScope(scope string) (Scope, error) { - switch scope { - case "", scopeWholeSubtreeString: - return ScopeWholeSubtree, nil - case scopeSingleLevelString: - return ScopeSingleLevel, nil - case scopeBaseObjectString: - return ScopeBaseObject, nil - default: - return -1, fmt.Errorf("invalid scope %q", scope) - } -} - -// DetermineLDAPFilter determines the LDAP search filter. Filter is a valid LDAP filter -// Default to "(objectClass=*)" per RFC -func DetermineLDAPFilter(filter string) (string, error) { - if len(filter) == 0 { - return defaultFilter, nil - } - if _, err := ldap.CompileFilter(filter); err != nil { - return "", fmt.Errorf("invalid filter: %v", err) - } - return filter, nil -} - -func DetermineDerefAliasesBehavior(derefAliasesString string) (DerefAliases, error) { - mapping := map[string]DerefAliases{ - "never": DerefAliasesNever, - "search": DerefAliasesSearching, - "base": DerefAliasesFinding, - "always": DerefAliasesAlways, - } - derefAliases, exists := mapping[derefAliasesString] - if !exists { - return -1, fmt.Errorf("not a valid LDAP alias dereferncing behavior: %s", derefAliasesString) - } - return derefAliases, nil -} diff --git a/vendor/github.com/openshift/library-go/pkg/security/uid/uid.go b/vendor/github.com/openshift/library-go/pkg/security/uid/uid.go deleted file mode 100644 index 836a71a5a41a8..0000000000000 --- a/vendor/github.com/openshift/library-go/pkg/security/uid/uid.go +++ /dev/null @@ -1,125 +0,0 @@ -package uid - -import ( - "fmt" - "strings" -) - -type Block struct { - Start uint32 - End uint32 -} - -var ( - ErrBlockSlashBadFormat = fmt.Errorf("block not in the format \"/\"") - ErrBlockDashBadFormat = fmt.Errorf("block not in the format \"-\"") -) - -func ParseBlock(in string) (Block, error) { - if strings.Contains(in, "/") { - var start, size uint32 - n, err := fmt.Sscanf(in, "%d/%d", &start, &size) - if err != nil { - return Block{}, err - } - if n != 2 { - return Block{}, ErrBlockSlashBadFormat - } - return Block{Start: start, End: start + size - 1}, nil - } - - var start, end uint32 - n, err := fmt.Sscanf(in, "%d-%d", &start, &end) - if err != nil { - return Block{}, err - } - if n != 2 { - return Block{}, ErrBlockDashBadFormat - } - return Block{Start: start, End: end}, nil -} - -func (b Block) String() string { - return fmt.Sprintf("%d/%d", b.Start, b.Size()) -} - -func (b Block) RangeString() string { - return fmt.Sprintf("%d-%d", b.Start, b.End) -} - -func (b Block) Size() uint32 { - return b.End - b.Start + 1 -} - -type Range struct { - block Block - size uint32 -} - -func NewRange(start, end, size uint32) (*Range, error) { - if start > end { - return nil, fmt.Errorf("start %d must be less than end %d", start, end) - } - if size == 0 { - return nil, fmt.Errorf("block size must be a positive integer") - } - if (end - start) < size { - return nil, fmt.Errorf("block size must be less than or equal to the range") - } - return &Range{ - block: Block{start, end}, - size: size, - }, nil -} - -func ParseRange(in string) (*Range, error) { - var start, end, block uint32 - n, err := fmt.Sscanf(in, "%d-%d/%d", &start, &end, &block) - if err != nil { - return nil, err - } - if n != 3 { - return nil, fmt.Errorf("range not in the format \"-/\"") - } - return NewRange(start, end, block) -} - -func (r *Range) Size() uint32 { - return r.block.Size() / r.size -} - -func (r *Range) String() string { - return fmt.Sprintf("%s/%d", r.block.RangeString(), r.size) -} - -func (r *Range) BlockAt(offset uint32) (Block, bool) { - if offset > r.Size() { - return Block{}, false - } - start := r.block.Start + offset*r.size - return Block{ - Start: start, - End: start + r.size - 1, - }, true -} - -func (r *Range) Contains(block Block) bool { - ok, _ := r.Offset(block) - return ok -} - -func (r *Range) Offset(block Block) (bool, uint32) { - if block.Start < r.block.Start { - return false, 0 - } - if block.End > r.block.End { - return false, 0 - } - if block.End-block.Start+1 != r.size { - return false, 0 - } - if (block.Start-r.block.Start)%r.size != 0 { - return false, 0 - } - return true, (block.Start - r.block.Start) / r.size -} diff --git a/vendor/github.com/pelletier/go-toml/BUILD b/vendor/github.com/pelletier/go-toml/BUILD new file mode 100644 index 0000000000000..2ce3ca77f3641 --- /dev/null +++ b/vendor/github.com/pelletier/go-toml/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "keysparsing.go", + "lexer.go", + "marshal.go", + "parser.go", + "position.go", + "token.go", + "toml.go", + "tomltree_create.go", + "tomltree_write.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/pelletier/go-toml", + importpath = "github.com/pelletier/go-toml", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/peterbourgon/diskv/BUILD b/vendor/github.com/peterbourgon/diskv/BUILD new file mode 100644 index 0000000000000..3a05f82cb4a9c --- /dev/null +++ b/vendor/github.com/peterbourgon/diskv/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "compression.go", + "diskv.go", + "index.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/peterbourgon/diskv", + importpath = "github.com/peterbourgon/diskv", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/google/btree:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/pkg/errors/BUILD b/vendor/github.com/pkg/errors/BUILD new file mode 100644 index 0000000000000..9abdea74d22a9 --- /dev/null +++ b/vendor/github.com/pkg/errors/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "errors.go", + "go113.go", + "stack.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/pkg/errors", + importpath = "github.com/pkg/errors", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/pmezard/go-difflib/difflib/BUILD b/vendor/github.com/pmezard/go-difflib/difflib/BUILD new file mode 100644 index 0000000000000..235b20044835d --- /dev/null +++ b/vendor/github.com/pmezard/go-difflib/difflib/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["difflib.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/pmezard/go-difflib/difflib", + importpath = "github.com/pmezard/go-difflib/difflib", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/pquerna/cachecontrol/BUILD b/vendor/github.com/pquerna/cachecontrol/BUILD new file mode 100644 index 0000000000000..b3ba0a740e3c5 --- /dev/null +++ b/vendor/github.com/pquerna/cachecontrol/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "api.go", + "doc.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/pquerna/cachecontrol", + importpath = "github.com/pquerna/cachecontrol", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/pquerna/cachecontrol/cacheobject:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/pquerna/cachecontrol/cacheobject:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/pquerna/cachecontrol/cacheobject/BUILD b/vendor/github.com/pquerna/cachecontrol/cacheobject/BUILD new file mode 100644 index 0000000000000..858e7e47d7be1 --- /dev/null +++ b/vendor/github.com/pquerna/cachecontrol/cacheobject/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "directive.go", + "lex.go", + "object.go", + "reasons.go", + "warning.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/pquerna/cachecontrol/cacheobject", + importpath = "github.com/pquerna/cachecontrol/cacheobject", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/prometheus/client_golang/prometheus/BUILD b/vendor/github.com/prometheus/client_golang/prometheus/BUILD new file mode 100644 index 0000000000000..57c00d4d6c9e8 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/BUILD @@ -0,0 +1,110 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "build_info.go", + "build_info_pre_1.12.go", + "collector.go", + "counter.go", + "desc.go", + "doc.go", + "expvar_collector.go", + "fnv.go", + "gauge.go", + "go_collector.go", + "histogram.go", + "labels.go", + "metric.go", + "observer.go", + "process_collector.go", + "process_collector_other.go", + "process_collector_windows.go", + "registry.go", + "summary.go", + "timer.go", + "untyped.go", + "value.go", + "vec.go", + "wrap.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/prometheus/client_golang/prometheus", + importpath = "github.com/prometheus/client_golang/prometheus", + visibility = ["//build/visible_to:vendor_githubcom_prometheus_CONSUMERS"], + deps = [ + "//vendor/github.com/beorn7/perks/quantile:go_default_library", + "//vendor/github.com/cespare/xxhash/v2:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus/internal:go_default_library", + "//vendor/github.com/prometheus/client_model/go:go_default_library", + "//vendor/github.com/prometheus/common/expfmt:go_default_library", + "//vendor/github.com/prometheus/common/model:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:aix": [ + "//vendor/github.com/prometheus/procfs:go_default_library", + ], + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/prometheus/procfs:go_default_library", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "//vendor/github.com/prometheus/procfs:go_default_library", + ], + "@io_bazel_rules_go//go/platform:dragonfly": [ + "//vendor/github.com/prometheus/procfs:go_default_library", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "//vendor/github.com/prometheus/procfs:go_default_library", + ], + "@io_bazel_rules_go//go/platform:illumos": [ + "//vendor/github.com/prometheus/procfs:go_default_library", + ], + "@io_bazel_rules_go//go/platform:ios": [ + "//vendor/github.com/prometheus/procfs:go_default_library", + ], + "@io_bazel_rules_go//go/platform:js": [ + "//vendor/github.com/prometheus/procfs:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/prometheus/procfs:go_default_library", + ], + "@io_bazel_rules_go//go/platform:nacl": [ + "//vendor/github.com/prometheus/procfs:go_default_library", + ], + "@io_bazel_rules_go//go/platform:netbsd": [ + "//vendor/github.com/prometheus/procfs:go_default_library", + ], + "@io_bazel_rules_go//go/platform:openbsd": [ + "//vendor/github.com/prometheus/procfs:go_default_library", + ], + "@io_bazel_rules_go//go/platform:plan9": [ + "//vendor/github.com/prometheus/procfs:go_default_library", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "//vendor/github.com/prometheus/procfs:go_default_library", + ], + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/golang.org/x/sys/windows:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/prometheus/client_golang/prometheus/internal:all-srcs", + "//vendor/github.com/prometheus/client_golang/prometheus/promhttp:all-srcs", + "//vendor/github.com/prometheus/client_golang/prometheus/testutil:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/prometheus/client_golang/prometheus/internal/BUILD b/vendor/github.com/prometheus/client_golang/prometheus/internal/BUILD new file mode 100644 index 0000000000000..ee7f167765eb5 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/internal/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["metric.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/prometheus/client_golang/prometheus/internal", + importpath = "github.com/prometheus/client_golang/prometheus/internal", + visibility = ["//build/visible_to:vendor_githubcom_prometheus_CONSUMERS"], + deps = ["//vendor/github.com/prometheus/client_model/go:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/BUILD b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/BUILD new file mode 100644 index 0000000000000..b684d053210e0 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "delegator.go", + "http.go", + "instrument_client.go", + "instrument_server.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/prometheus/client_golang/prometheus/promhttp", + importpath = "github.com/prometheus/client_golang/prometheus/promhttp", + visibility = ["//build/visible_to:vendor_githubcom_prometheus_CONSUMERS"], + deps = [ + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/github.com/prometheus/client_model/go:go_default_library", + "//vendor/github.com/prometheus/common/expfmt:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/prometheus/client_golang/prometheus/testutil/BUILD b/vendor/github.com/prometheus/client_golang/prometheus/testutil/BUILD new file mode 100644 index 0000000000000..d0a932d26e46c --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/testutil/BUILD @@ -0,0 +1,36 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "lint.go", + "testutil.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/prometheus/client_golang/prometheus/testutil", + importpath = "github.com/prometheus/client_golang/prometheus/testutil", + visibility = ["//build/visible_to:vendor_githubcom_prometheus_CONSUMERS"], + deps = [ + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus/internal:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint:go_default_library", + "//vendor/github.com/prometheus/client_model/go:go_default_library", + "//vendor/github.com/prometheus/common/expfmt:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/BUILD b/vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/BUILD new file mode 100644 index 0000000000000..6d44c7da3a82c --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["promlint.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/prometheus/client_golang/prometheus/testutil/promlint", + importpath = "github.com/prometheus/client_golang/prometheus/testutil/promlint", + visibility = ["//build/visible_to:vendor_githubcom_prometheus_CONSUMERS"], + deps = [ + "//vendor/github.com/prometheus/client_model/go:go_default_library", + "//vendor/github.com/prometheus/common/expfmt:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/prometheus/client_model/go/BUILD b/vendor/github.com/prometheus/client_model/go/BUILD new file mode 100644 index 0000000000000..bbe989671a497 --- /dev/null +++ b/vendor/github.com/prometheus/client_model/go/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["metrics.pb.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/prometheus/client_model/go", + importpath = "github.com/prometheus/client_model/go", + visibility = ["//build/visible_to:vendor_githubcom_prometheus_CONSUMERS"], + deps = [ + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes/timestamp:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/prometheus/common/expfmt/BUILD b/vendor/github.com/prometheus/common/expfmt/BUILD new file mode 100644 index 0000000000000..199335238a52d --- /dev/null +++ b/vendor/github.com/prometheus/common/expfmt/BUILD @@ -0,0 +1,38 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "decode.go", + "encode.go", + "expfmt.go", + "openmetrics_create.go", + "text_create.go", + "text_parse.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/prometheus/common/expfmt", + importpath = "github.com/prometheus/common/expfmt", + visibility = ["//build/visible_to:vendor_githubcom_prometheus_CONSUMERS"], + deps = [ + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/golang/protobuf/ptypes:go_default_library", + "//vendor/github.com/matttproud/golang_protobuf_extensions/pbutil:go_default_library", + "//vendor/github.com/prometheus/client_model/go:go_default_library", + "//vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg:go_default_library", + "//vendor/github.com/prometheus/common/model:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/BUILD b/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/BUILD new file mode 100644 index 0000000000000..a233d08b50b10 --- /dev/null +++ b/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["autoneg.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg", + importpath = "github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg", + visibility = ["//build/visible_to:vendor_githubcom_prometheus_CONSUMERS"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/prometheus/common/model/BUILD b/vendor/github.com/prometheus/common/model/BUILD new file mode 100644 index 0000000000000..df8c5328dd6dd --- /dev/null +++ b/vendor/github.com/prometheus/common/model/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "alert.go", + "fingerprinting.go", + "fnv.go", + "labels.go", + "labelset.go", + "metric.go", + "model.go", + "signature.go", + "silence.go", + "time.go", + "value.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/prometheus/common/model", + importpath = "github.com/prometheus/common/model", + visibility = ["//build/visible_to:vendor_githubcom_prometheus_CONSUMERS"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/prometheus/procfs/BUILD b/vendor/github.com/prometheus/procfs/BUILD new file mode 100644 index 0000000000000..440f2cc86573b --- /dev/null +++ b/vendor/github.com/prometheus/procfs/BUILD @@ -0,0 +1,112 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "arp.go", + "buddyinfo.go", + "cpuinfo.go", + "cpuinfo_arm.go", + "cpuinfo_arm64.go", + "cpuinfo_default.go", + "cpuinfo_mips.go", + "cpuinfo_mips64.go", + "cpuinfo_mips64le.go", + "cpuinfo_mipsle.go", + "cpuinfo_ppc64.go", + "cpuinfo_ppc64le.go", + "cpuinfo_s390x.go", + "crypto.go", + "doc.go", + "fs.go", + "fscache.go", + "ipvs.go", + "kernel_random.go", + "loadavg.go", + "mdstat.go", + "meminfo.go", + "mountinfo.go", + "mountstats.go", + "net_conntrackstat.go", + "net_dev.go", + "net_sockstat.go", + "net_softnet.go", + "net_udp.go", + "net_unix.go", + "proc.go", + "proc_cgroup.go", + "proc_environ.go", + "proc_fdinfo.go", + "proc_io.go", + "proc_limits.go", + "proc_maps.go", + "proc_ns.go", + "proc_psi.go", + "proc_smaps.go", + "proc_stat.go", + "proc_status.go", + "schedstat.go", + "stat.go", + "swaps.go", + "vm.go", + "xfrm.go", + "zoneinfo.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/prometheus/procfs", + importpath = "github.com/prometheus/procfs", + visibility = ["//build/visible_to:vendor_githubcom_prometheus_CONSUMERS"], + deps = [ + "//vendor/github.com/prometheus/procfs/internal/fs:go_default_library", + "//vendor/github.com/prometheus/procfs/internal/util:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:aix": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:dragonfly": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:ios": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:netbsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:openbsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/prometheus/procfs/internal/fs:all-srcs", + "//vendor/github.com/prometheus/procfs/internal/util:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/prometheus/procfs/internal/fs/BUILD b/vendor/github.com/prometheus/procfs/internal/fs/BUILD new file mode 100644 index 0000000000000..3644e2f175c0e --- /dev/null +++ b/vendor/github.com/prometheus/procfs/internal/fs/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["fs.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/prometheus/procfs/internal/fs", + importpath = "github.com/prometheus/procfs/internal/fs", + visibility = ["//build/visible_to:vendor_githubcom_prometheus_CONSUMERS"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/prometheus/procfs/internal/util/BUILD b/vendor/github.com/prometheus/procfs/internal/util/BUILD new file mode 100644 index 0000000000000..9e4e4d2685fbd --- /dev/null +++ b/vendor/github.com/prometheus/procfs/internal/util/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "parse.go", + "readfile.go", + "sysreadfile.go", + "sysreadfile_compat.go", + "valueparser.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/prometheus/procfs/internal/util", + importpath = "github.com/prometheus/procfs/internal/util", + visibility = ["//build/visible_to:vendor_githubcom_prometheus_CONSUMERS"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/quobyte/api/BUILD b/vendor/github.com/quobyte/api/BUILD new file mode 100644 index 0000000000000..2bf9176ca19f4 --- /dev/null +++ b/vendor/github.com/quobyte/api/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "quobyte.go", + "rpc_client.go", + "types.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/quobyte/api", + importpath = "github.com/quobyte/api", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/robfig/cron/BUILD b/vendor/github.com/robfig/cron/BUILD new file mode 100644 index 0000000000000..80b07385bb7ee --- /dev/null +++ b/vendor/github.com/robfig/cron/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "constantdelay.go", + "cron.go", + "doc.go", + "parser.go", + "spec.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/robfig/cron", + importpath = "github.com/robfig/cron", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/rubiojr/go-vhd/vhd/BUILD b/vendor/github.com/rubiojr/go-vhd/vhd/BUILD new file mode 100644 index 0000000000000..9784f6795a806 --- /dev/null +++ b/vendor/github.com/rubiojr/go-vhd/vhd/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "util.go", + "vhd.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/rubiojr/go-vhd/vhd", + importpath = "github.com/rubiojr/go-vhd/vhd", + visibility = ["//visibility:public"], + deps = [ + "//vendor/golang.org/x/text/encoding/unicode:go_default_library", + "//vendor/golang.org/x/text/transform:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/russross/blackfriday/BUILD b/vendor/github.com/russross/blackfriday/BUILD new file mode 100644 index 0000000000000..ec89615652016 --- /dev/null +++ b/vendor/github.com/russross/blackfriday/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "block.go", + "doc.go", + "html.go", + "inline.go", + "latex.go", + "markdown.go", + "smartypants.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/russross/blackfriday", + importpath = "github.com/russross/blackfriday", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/russross/blackfriday/v2:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/russross/blackfriday/v2/BUILD b/vendor/github.com/russross/blackfriday/v2/BUILD new file mode 100644 index 0000000000000..c66f642af71a3 --- /dev/null +++ b/vendor/github.com/russross/blackfriday/v2/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "block.go", + "doc.go", + "esc.go", + "html.go", + "inline.go", + "markdown.go", + "node.go", + "smartypants.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/russross/blackfriday/v2", + importpath = "github.com/russross/blackfriday/v2", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/shurcooL/sanitized_anchor_name:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/satori/go.uuid/BUILD b/vendor/github.com/satori/go.uuid/BUILD new file mode 100644 index 0000000000000..bf866f823f121 --- /dev/null +++ b/vendor/github.com/satori/go.uuid/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "codec.go", + "generator.go", + "sql.go", + "uuid.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/satori/go.uuid", + importpath = "github.com/satori/go.uuid", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/seccomp/libseccomp-golang/BUILD b/vendor/github.com/seccomp/libseccomp-golang/BUILD new file mode 100644 index 0000000000000..0a971ac0700b9 --- /dev/null +++ b/vendor/github.com/seccomp/libseccomp-golang/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "seccomp.go", + "seccomp_internal.go", + ], + cgo = True, + clinkopts = select({"@io_bazel_rules_go//go/platform:linux":["-lseccomp",],"//conditions:default":[],}), + importmap = "k8s.io/kubernetes/vendor/github.com/seccomp/libseccomp-golang", + importpath = "github.com/seccomp/libseccomp-golang", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/shurcooL/sanitized_anchor_name/BUILD b/vendor/github.com/shurcooL/sanitized_anchor_name/BUILD new file mode 100644 index 0000000000000..7f2707384e6ff --- /dev/null +++ b/vendor/github.com/shurcooL/sanitized_anchor_name/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["main.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/shurcooL/sanitized_anchor_name", + importpath = "github.com/shurcooL/sanitized_anchor_name", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/sirupsen/logrus/BUILD b/vendor/github.com/sirupsen/logrus/BUILD new file mode 100644 index 0000000000000..f8dd207d2d85d --- /dev/null +++ b/vendor/github.com/sirupsen/logrus/BUILD @@ -0,0 +1,78 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "alt_exit.go", + "doc.go", + "entry.go", + "exported.go", + "formatter.go", + "hooks.go", + "json_formatter.go", + "logger.go", + "logrus.go", + "terminal_check_bsd.go", + "terminal_check_js.go", + "terminal_check_no_terminal.go", + "terminal_check_notappengine.go", + "terminal_check_solaris.go", + "terminal_check_unix.go", + "terminal_check_windows.go", + "text_formatter.go", + "writer.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/sirupsen/logrus", + importpath = "github.com/sirupsen/logrus", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:aix": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:dragonfly": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:ios": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:netbsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:openbsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/github.com/konsorten/go-windows-terminal-sequences:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/soheilhy/cmux/BUILD b/vendor/github.com/soheilhy/cmux/BUILD new file mode 100644 index 0000000000000..3b5d786c99f09 --- /dev/null +++ b/vendor/github.com/soheilhy/cmux/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "buffer.go", + "cmux.go", + "doc.go", + "matchers.go", + "patricia.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/soheilhy/cmux", + importpath = "github.com/soheilhy/cmux", + visibility = ["//visibility:public"], + deps = [ + "//vendor/golang.org/x/net/http2:go_default_library", + "//vendor/golang.org/x/net/http2/hpack:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/spf13/afero/BUILD b/vendor/github.com/spf13/afero/BUILD new file mode 100644 index 0000000000000..8aa0f3fe24938 --- /dev/null +++ b/vendor/github.com/spf13/afero/BUILD @@ -0,0 +1,49 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "afero.go", + "basepath.go", + "cacheOnReadFs.go", + "const_bsds.go", + "const_win_unix.go", + "copyOnWriteFs.go", + "httpFs.go", + "ioutil.go", + "lstater.go", + "match.go", + "memmap.go", + "os.go", + "path.go", + "readonlyfs.go", + "regexpfs.go", + "unionFile.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/spf13/afero", + importpath = "github.com/spf13/afero", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/spf13/afero/mem:go_default_library", + "//vendor/golang.org/x/text/transform:go_default_library", + "//vendor/golang.org/x/text/unicode/norm:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/spf13/afero/mem:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/spf13/afero/mem/BUILD b/vendor/github.com/spf13/afero/mem/BUILD new file mode 100644 index 0000000000000..77f23bad69770 --- /dev/null +++ b/vendor/github.com/spf13/afero/mem/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "dir.go", + "dirmap.go", + "file.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/spf13/afero/mem", + importpath = "github.com/spf13/afero/mem", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/spf13/cast/BUILD b/vendor/github.com/spf13/cast/BUILD new file mode 100644 index 0000000000000..9f3c504b7678d --- /dev/null +++ b/vendor/github.com/spf13/cast/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "cast.go", + "caste.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/spf13/cast", + importpath = "github.com/spf13/cast", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/spf13/cobra/BUILD b/vendor/github.com/spf13/cobra/BUILD new file mode 100644 index 0000000000000..dc25cbf5f4af2 --- /dev/null +++ b/vendor/github.com/spf13/cobra/BUILD @@ -0,0 +1,46 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "args.go", + "bash_completions.go", + "cobra.go", + "command.go", + "command_notwin.go", + "command_win.go", + "custom_completions.go", + "fish_completions.go", + "powershell_completions.go", + "shell_completions.go", + "zsh_completions.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/spf13/cobra", + importpath = "github.com/spf13/cobra", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/spf13/pflag:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/github.com/inconshreveable/mousetrap:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/spf13/cobra/doc:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/spf13/cobra/doc/BUILD b/vendor/github.com/spf13/cobra/doc/BUILD new file mode 100644 index 0000000000000..170e56994dbbf --- /dev/null +++ b/vendor/github.com/spf13/cobra/doc/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "man_docs.go", + "md_docs.go", + "rest_docs.go", + "util.go", + "yaml_docs.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/spf13/cobra/doc", + importpath = "github.com/spf13/cobra/doc", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/cpuguy83/go-md2man/v2/md2man:go_default_library", + "//vendor/github.com/spf13/cobra:go_default_library", + "//vendor/github.com/spf13/pflag:go_default_library", + "//vendor/gopkg.in/yaml.v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/spf13/jwalterweatherman/BUILD b/vendor/github.com/spf13/jwalterweatherman/BUILD new file mode 100644 index 0000000000000..a956bb41d2775 --- /dev/null +++ b/vendor/github.com/spf13/jwalterweatherman/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "default_notepad.go", + "log_counter.go", + "notepad.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/spf13/jwalterweatherman", + importpath = "github.com/spf13/jwalterweatherman", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/spf13/pflag/BUILD b/vendor/github.com/spf13/pflag/BUILD new file mode 100644 index 0000000000000..19e41844a53e3 --- /dev/null +++ b/vendor/github.com/spf13/pflag/BUILD @@ -0,0 +1,60 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bool.go", + "bool_slice.go", + "bytes.go", + "count.go", + "duration.go", + "duration_slice.go", + "flag.go", + "float32.go", + "float32_slice.go", + "float64.go", + "float64_slice.go", + "golangflag.go", + "int.go", + "int16.go", + "int32.go", + "int32_slice.go", + "int64.go", + "int64_slice.go", + "int8.go", + "int_slice.go", + "ip.go", + "ip_slice.go", + "ipmask.go", + "ipnet.go", + "string.go", + "string_array.go", + "string_slice.go", + "string_to_int.go", + "string_to_int64.go", + "string_to_string.go", + "uint.go", + "uint16.go", + "uint32.go", + "uint64.go", + "uint8.go", + "uint_slice.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/spf13/pflag", + importpath = "github.com/spf13/pflag", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/spf13/viper/BUILD b/vendor/github.com/spf13/viper/BUILD new file mode 100644 index 0000000000000..64a8e099ac202 --- /dev/null +++ b/vendor/github.com/spf13/viper/BUILD @@ -0,0 +1,40 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "flags.go", + "util.go", + "viper.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/spf13/viper", + importpath = "github.com/spf13/viper", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/fsnotify/fsnotify:go_default_library", + "//vendor/github.com/hashicorp/hcl:go_default_library", + "//vendor/github.com/hashicorp/hcl/hcl/printer:go_default_library", + "//vendor/github.com/magiconair/properties:go_default_library", + "//vendor/github.com/mitchellh/mapstructure:go_default_library", + "//vendor/github.com/pelletier/go-toml:go_default_library", + "//vendor/github.com/spf13/afero:go_default_library", + "//vendor/github.com/spf13/cast:go_default_library", + "//vendor/github.com/spf13/jwalterweatherman:go_default_library", + "//vendor/github.com/spf13/pflag:go_default_library", + "//vendor/gopkg.in/yaml.v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/storageos/go-api/BUILD b/vendor/github.com/storageos/go-api/BUILD new file mode 100644 index 0000000000000..c052c8e32665e --- /dev/null +++ b/vendor/github.com/storageos/go-api/BUILD @@ -0,0 +1,50 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "health.go", + "logger.go", + "login.go", + "namespace.go", + "network_diagnostics.go", + "node.go", + "policy.go", + "pool.go", + "rule.go", + "server_version.go", + "template.go", + "user.go", + "util.go", + "validation.go", + "volume.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/storageos/go-api", + importpath = "github.com/storageos/go-api", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/storageos/go-api/netutil:go_default_library", + "//vendor/github.com/storageos/go-api/serror:go_default_library", + "//vendor/github.com/storageos/go-api/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/storageos/go-api/netutil:all-srcs", + "//vendor/github.com/storageos/go-api/serror:all-srcs", + "//vendor/github.com/storageos/go-api/types:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/storageos/go-api/netutil/BUILD b/vendor/github.com/storageos/go-api/netutil/BUILD new file mode 100644 index 0000000000000..3fec107c645e2 --- /dev/null +++ b/vendor/github.com/storageos/go-api/netutil/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "errors.go", + "netutil.go", + "parsers.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/storageos/go-api/netutil", + importpath = "github.com/storageos/go-api/netutil", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/storageos/go-api/serror:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/storageos/go-api/serror/BUILD b/vendor/github.com/storageos/go-api/serror/BUILD new file mode 100644 index 0000000000000..1f41af7ed221a --- /dev/null +++ b/vendor/github.com/storageos/go-api/serror/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "error_kind.go", + "kind_lookup_map.go", + "storageos_error.go", + "storageoserrorkind_string.go", + "typed_error.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/storageos/go-api/serror", + importpath = "github.com/storageos/go-api/serror", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/storageos/go-api/types/BUILD b/vendor/github.com/storageos/go-api/types/BUILD new file mode 100644 index 0000000000000..02b1afff3f0f4 --- /dev/null +++ b/vendor/github.com/storageos/go-api/types/BUILD @@ -0,0 +1,51 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "auth.go", + "capacity_stats.go", + "connectivity.go", + "delete_options.go", + "deployment.go", + "driver_instance.go", + "error_response.go", + "events.go", + "health.go", + "list_options.go", + "logger.go", + "namespace.go", + "node.go", + "node_update_options.go", + "operator.go", + "policy.go", + "pool.go", + "pool_options.go", + "rule.go", + "template.go", + "template_create_options.go", + "user.go", + "version.go", + "volume.go", + "volume_create_options.go", + "volume_stats.go", + "volume_update_options.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/storageos/go-api/types", + importpath = "github.com/storageos/go-api/types", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/stretchr/objx/BUILD b/vendor/github.com/stretchr/objx/BUILD new file mode 100644 index 0000000000000..d36bce95f168a --- /dev/null +++ b/vendor/github.com/stretchr/objx/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "accessors.go", + "conversions.go", + "doc.go", + "map.go", + "mutations.go", + "security.go", + "tests.go", + "type_specific.go", + "type_specific_codegen.go", + "value.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/stretchr/objx", + importpath = "github.com/stretchr/objx", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/stretchr/testify/assert/BUILD b/vendor/github.com/stretchr/testify/assert/BUILD new file mode 100644 index 0000000000000..c675c739d1b86 --- /dev/null +++ b/vendor/github.com/stretchr/testify/assert/BUILD @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "assertion_format.go", + "assertion_forward.go", + "assertion_order.go", + "assertions.go", + "doc.go", + "errors.go", + "forward_assertions.go", + "http_assertions.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/stretchr/testify/assert", + importpath = "github.com/stretchr/testify/assert", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/davecgh/go-spew/spew:go_default_library", + "//vendor/github.com/pmezard/go-difflib/difflib:go_default_library", + "//vendor/gopkg.in/yaml.v2:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/stretchr/testify/mock/BUILD b/vendor/github.com/stretchr/testify/mock/BUILD new file mode 100644 index 0000000000000..9430500cbff52 --- /dev/null +++ b/vendor/github.com/stretchr/testify/mock/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "mock.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/stretchr/testify/mock", + importpath = "github.com/stretchr/testify/mock", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/davecgh/go-spew/spew:go_default_library", + "//vendor/github.com/pmezard/go-difflib/difflib:go_default_library", + "//vendor/github.com/stretchr/objx:go_default_library", + "//vendor/github.com/stretchr/testify/assert:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/stretchr/testify/require/BUILD b/vendor/github.com/stretchr/testify/require/BUILD new file mode 100644 index 0000000000000..456b0baf79da6 --- /dev/null +++ b/vendor/github.com/stretchr/testify/require/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "forward_requirements.go", + "require.go", + "require_forward.go", + "requirements.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/stretchr/testify/require", + importpath = "github.com/stretchr/testify/require", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/stretchr/testify/assert:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/syndtr/gocapability/capability/BUILD b/vendor/github.com/syndtr/gocapability/capability/BUILD new file mode 100644 index 0000000000000..f90a25bf14d7a --- /dev/null +++ b/vendor/github.com/syndtr/gocapability/capability/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "capability.go", + "capability_linux.go", + "capability_noop.go", + "enum.go", + "enum_gen.go", + "syscall_linux.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/syndtr/gocapability/capability", + importpath = "github.com/syndtr/gocapability/capability", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/thecodeteam/goscaleio/BUILD b/vendor/github.com/thecodeteam/goscaleio/BUILD new file mode 100644 index 0000000000000..19460ee186f74 --- /dev/null +++ b/vendor/github.com/thecodeteam/goscaleio/BUILD @@ -0,0 +1,43 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "api.go", + "certs.go", + "device.go", + "instance.go", + "protectiondomain.go", + "scsiinitiator.go", + "sdc.go", + "sds.go", + "storagepool.go", + "system.go", + "user.go", + "volume.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/thecodeteam/goscaleio", + importpath = "github.com/thecodeteam/goscaleio", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/sirupsen/logrus:go_default_library", + "//vendor/github.com/thecodeteam/goscaleio/types/v1:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/thecodeteam/goscaleio/types/v1:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/thecodeteam/goscaleio/types/v1/BUILD b/vendor/github.com/thecodeteam/goscaleio/types/v1/BUILD new file mode 100644 index 0000000000000..0461664988ff8 --- /dev/null +++ b/vendor/github.com/thecodeteam/goscaleio/types/v1/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["types.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/thecodeteam/goscaleio/types/v1", + importpath = "github.com/thecodeteam/goscaleio/types/v1", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/tmc/grpc-websocket-proxy/wsproxy/BUILD b/vendor/github.com/tmc/grpc-websocket-proxy/wsproxy/BUILD new file mode 100644 index 0000000000000..452ce98a42472 --- /dev/null +++ b/vendor/github.com/tmc/grpc-websocket-proxy/wsproxy/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "websocket_proxy.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/tmc/grpc-websocket-proxy/wsproxy", + importpath = "github.com/tmc/grpc-websocket-proxy/wsproxy", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gorilla/websocket:go_default_library", + "//vendor/github.com/sirupsen/logrus:go_default_library", + "//vendor/golang.org/x/net/context:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vishvananda/netlink/BUILD b/vendor/github.com/vishvananda/netlink/BUILD new file mode 100644 index 0000000000000..0154865f3fe27 --- /dev/null +++ b/vendor/github.com/vishvananda/netlink/BUILD @@ -0,0 +1,127 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "addr.go", + "addr_linux.go", + "bpf_linux.go", + "bridge_linux.go", + "class.go", + "class_linux.go", + "conntrack_linux.go", + "conntrack_unspecified.go", + "devlink_linux.go", + "filter.go", + "filter_linux.go", + "fou.go", + "fou_linux.go", + "fou_unspecified.go", + "genetlink_linux.go", + "genetlink_unspecified.go", + "gtp_linux.go", + "handle_linux.go", + "handle_unspecified.go", + "ioctl_linux.go", + "link.go", + "link_linux.go", + "link_tuntap_linux.go", + "neigh.go", + "neigh_linux.go", + "netlink.go", + "netlink_linux.go", + "netlink_unspecified.go", + "netns_linux.go", + "netns_unspecified.go", + "order.go", + "protinfo.go", + "protinfo_linux.go", + "qdisc.go", + "qdisc_linux.go", + "rdma_link_linux.go", + "route.go", + "route_linux.go", + "route_unspecified.go", + "rule.go", + "rule_linux.go", + "socket.go", + "socket_linux.go", + "xfrm.go", + "xfrm_monitor_linux.go", + "xfrm_policy.go", + "xfrm_policy_linux.go", + "xfrm_state.go", + "xfrm_state_linux.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vishvananda/netlink", + importpath = "github.com/vishvananda/netlink", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vishvananda/netlink/nl:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:aix": [ + "//vendor/github.com/vishvananda/netns:go_default_library", + ], + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/vishvananda/netns:go_default_library", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "//vendor/github.com/vishvananda/netns:go_default_library", + ], + "@io_bazel_rules_go//go/platform:dragonfly": [ + "//vendor/github.com/vishvananda/netns:go_default_library", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "//vendor/github.com/vishvananda/netns:go_default_library", + ], + "@io_bazel_rules_go//go/platform:illumos": [ + "//vendor/github.com/vishvananda/netns:go_default_library", + ], + "@io_bazel_rules_go//go/platform:ios": [ + "//vendor/github.com/vishvananda/netns:go_default_library", + ], + "@io_bazel_rules_go//go/platform:js": [ + "//vendor/github.com/vishvananda/netns:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/vishvananda/netns:go_default_library", + ], + "@io_bazel_rules_go//go/platform:nacl": [ + "//vendor/github.com/vishvananda/netns:go_default_library", + ], + "@io_bazel_rules_go//go/platform:netbsd": [ + "//vendor/github.com/vishvananda/netns:go_default_library", + ], + "@io_bazel_rules_go//go/platform:openbsd": [ + "//vendor/github.com/vishvananda/netns:go_default_library", + ], + "@io_bazel_rules_go//go/platform:plan9": [ + "//vendor/github.com/vishvananda/netns:go_default_library", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "//vendor/github.com/vishvananda/netns:go_default_library", + ], + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/github.com/vishvananda/netns:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/vishvananda/netlink/nl:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vishvananda/netlink/nl/BUILD b/vendor/github.com/vishvananda/netlink/nl/BUILD new file mode 100644 index 0000000000000..cdf3a1e41ffba --- /dev/null +++ b/vendor/github.com/vishvananda/netlink/nl/BUILD @@ -0,0 +1,54 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "addr_linux.go", + "bridge_linux.go", + "conntrack_linux.go", + "devlink_linux.go", + "genetlink_linux.go", + "link_linux.go", + "mpls_linux.go", + "nl_linux.go", + "nl_unspecified.go", + "rdma_link_linux.go", + "route_linux.go", + "seg6_linux.go", + "seg6local_linux.go", + "syscall.go", + "tc_linux.go", + "xfrm_linux.go", + "xfrm_monitor_linux.go", + "xfrm_policy_linux.go", + "xfrm_state_linux.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vishvananda/netlink/nl", + importpath = "github.com/vishvananda/netlink/nl", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/vishvananda/netns:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/vishvananda/netns:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vishvananda/netns/BUILD b/vendor/github.com/vishvananda/netns/BUILD new file mode 100644 index 0000000000000..057dd7bc88bb8 --- /dev/null +++ b/vendor/github.com/vishvananda/netns/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "netns.go", + "netns_linux.go", + "netns_unspecified.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vishvananda/netns", + importpath = "github.com/vishvananda/netns", + visibility = ["//visibility:public"], + deps = ["//vendor/golang.org/x/sys/unix:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/BUILD b/vendor/github.com/vmware/govmomi/BUILD new file mode 100644 index 0000000000000..f09517ddbaa9c --- /dev/null +++ b/vendor/github.com/vmware/govmomi/BUILD @@ -0,0 +1,48 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["client.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi", + importpath = "github.com/vmware/govmomi", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/property:go_default_library", + "//vendor/github.com/vmware/govmomi/session:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/vmware/govmomi/find:all-srcs", + "//vendor/github.com/vmware/govmomi/list:all-srcs", + "//vendor/github.com/vmware/govmomi/lookup:all-srcs", + "//vendor/github.com/vmware/govmomi/nfc:all-srcs", + "//vendor/github.com/vmware/govmomi/object:all-srcs", + "//vendor/github.com/vmware/govmomi/pbm:all-srcs", + "//vendor/github.com/vmware/govmomi/property:all-srcs", + "//vendor/github.com/vmware/govmomi/session:all-srcs", + "//vendor/github.com/vmware/govmomi/simulator:all-srcs", + "//vendor/github.com/vmware/govmomi/sts:all-srcs", + "//vendor/github.com/vmware/govmomi/task:all-srcs", + "//vendor/github.com/vmware/govmomi/vapi/internal:all-srcs", + "//vendor/github.com/vmware/govmomi/vapi/rest:all-srcs", + "//vendor/github.com/vmware/govmomi/vapi/simulator:all-srcs", + "//vendor/github.com/vmware/govmomi/vapi/tags:all-srcs", + "//vendor/github.com/vmware/govmomi/vim25:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/find/BUILD b/vendor/github.com/vmware/govmomi/find/BUILD new file mode 100644 index 0000000000000..e7eca197743d3 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/find/BUILD @@ -0,0 +1,36 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "error.go", + "finder.go", + "recurser.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/find", + importpath = "github.com/vmware/govmomi/find", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/list:go_default_library", + "//vendor/github.com/vmware/govmomi/object:go_default_library", + "//vendor/github.com/vmware/govmomi/property:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/mo:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/list/BUILD b/vendor/github.com/vmware/govmomi/list/BUILD new file mode 100644 index 0000000000000..d89684ad86e14 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/list/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "lister.go", + "path.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/list", + importpath = "github.com/vmware/govmomi/list", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/property:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/mo:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/lookup/BUILD b/vendor/github.com/vmware/govmomi/lookup/BUILD new file mode 100644 index 0000000000000..664b465796b73 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/lookup/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["client.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/lookup", + importpath = "github.com/vmware/govmomi/lookup", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/lookup/methods:go_default_library", + "//vendor/github.com/vmware/govmomi/lookup/types:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/vmware/govmomi/lookup/methods:all-srcs", + "//vendor/github.com/vmware/govmomi/lookup/simulator:all-srcs", + "//vendor/github.com/vmware/govmomi/lookup/types:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/lookup/methods/BUILD b/vendor/github.com/vmware/govmomi/lookup/methods/BUILD new file mode 100644 index 0000000000000..34d58172449d0 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/lookup/methods/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["methods.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/lookup/methods", + importpath = "github.com/vmware/govmomi/lookup/methods", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/lookup/types:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/lookup/simulator/BUILD b/vendor/github.com/vmware/govmomi/lookup/simulator/BUILD new file mode 100644 index 0000000000000..c81e04ab0f78c --- /dev/null +++ b/vendor/github.com/vmware/govmomi/lookup/simulator/BUILD @@ -0,0 +1,36 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "registration_info.go", + "simulator.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/lookup/simulator", + importpath = "github.com/vmware/govmomi/lookup/simulator", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/uuid:go_default_library", + "//vendor/github.com/vmware/govmomi/lookup:go_default_library", + "//vendor/github.com/vmware/govmomi/lookup/methods:go_default_library", + "//vendor/github.com/vmware/govmomi/lookup/types:go_default_library", + "//vendor/github.com/vmware/govmomi/simulator:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/lookup/types/BUILD b/vendor/github.com/vmware/govmomi/lookup/types/BUILD new file mode 100644 index 0000000000000..adba9e8bef0f7 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/lookup/types/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["types.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/lookup/types", + importpath = "github.com/vmware/govmomi/lookup/types", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/vmware/govmomi/vim25/types:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/nfc/BUILD b/vendor/github.com/vmware/govmomi/nfc/BUILD new file mode 100644 index 0000000000000..29f53191bd347 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/nfc/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "lease.go", + "lease_updater.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/nfc", + importpath = "github.com/vmware/govmomi/nfc", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/property:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/methods:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/mo:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/progress:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/object/BUILD b/vendor/github.com/vmware/govmomi/object/BUILD new file mode 100644 index 0000000000000..b9dd3fcc88985 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/object/BUILD @@ -0,0 +1,88 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "authorization_manager.go", + "authorization_manager_internal.go", + "cluster_compute_resource.go", + "common.go", + "compute_resource.go", + "custom_fields_manager.go", + "customization_spec_manager.go", + "datacenter.go", + "datastore.go", + "datastore_file.go", + "datastore_file_manager.go", + "datastore_path.go", + "diagnostic_log.go", + "diagnostic_manager.go", + "distributed_virtual_portgroup.go", + "distributed_virtual_switch.go", + "extension_manager.go", + "file_manager.go", + "folder.go", + "history_collector.go", + "host_account_manager.go", + "host_certificate_info.go", + "host_certificate_manager.go", + "host_config_manager.go", + "host_datastore_browser.go", + "host_datastore_system.go", + "host_date_time_system.go", + "host_firewall_system.go", + "host_network_system.go", + "host_service_system.go", + "host_storage_system.go", + "host_system.go", + "host_virtual_nic_manager.go", + "host_vsan_internal_system.go", + "host_vsan_system.go", + "namespace_manager.go", + "network.go", + "network_reference.go", + "opaque_network.go", + "option_manager.go", + "resource_pool.go", + "search_index.go", + "storage_pod.go", + "storage_resource_manager.go", + "task.go", + "types.go", + "virtual_app.go", + "virtual_device_list.go", + "virtual_disk_manager.go", + "virtual_disk_manager_internal.go", + "virtual_machine.go", + "vmware_distributed_virtual_switch.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/object", + importpath = "github.com/vmware/govmomi/object", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/nfc:go_default_library", + "//vendor/github.com/vmware/govmomi/property:go_default_library", + "//vendor/github.com/vmware/govmomi/session:go_default_library", + "//vendor/github.com/vmware/govmomi/task:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/methods:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/mo:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/progress:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/pbm/BUILD b/vendor/github.com/vmware/govmomi/pbm/BUILD new file mode 100644 index 0000000000000..182f2ac6f86cb --- /dev/null +++ b/vendor/github.com/vmware/govmomi/pbm/BUILD @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "pbm_util.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/pbm", + importpath = "github.com/vmware/govmomi/pbm", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/pbm/methods:go_default_library", + "//vendor/github.com/vmware/govmomi/pbm/types:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/vmware/govmomi/pbm/methods:all-srcs", + "//vendor/github.com/vmware/govmomi/pbm/types:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/pbm/methods/BUILD b/vendor/github.com/vmware/govmomi/pbm/methods/BUILD new file mode 100644 index 0000000000000..3ba9aeaae868b --- /dev/null +++ b/vendor/github.com/vmware/govmomi/pbm/methods/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["methods.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/pbm/methods", + importpath = "github.com/vmware/govmomi/pbm/methods", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/pbm/types:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/pbm/types/BUILD b/vendor/github.com/vmware/govmomi/pbm/types/BUILD new file mode 100644 index 0000000000000..88c37dd17745d --- /dev/null +++ b/vendor/github.com/vmware/govmomi/pbm/types/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "enum.go", + "if.go", + "types.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/pbm/types", + importpath = "github.com/vmware/govmomi/pbm/types", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/vmware/govmomi/vim25/types:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/property/BUILD b/vendor/github.com/vmware/govmomi/property/BUILD new file mode 100644 index 0000000000000..f41b46a2721b6 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/property/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "collector.go", + "filter.go", + "wait.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/property", + importpath = "github.com/vmware/govmomi/property", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/vim25:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/methods:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/mo:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/session/BUILD b/vendor/github.com/vmware/govmomi/session/BUILD new file mode 100644 index 0000000000000..acadfcb97dacd --- /dev/null +++ b/vendor/github.com/vmware/govmomi/session/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "keep_alive.go", + "manager.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/session", + importpath = "github.com/vmware/govmomi/session", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/property:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/methods:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/mo:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/simulator/BUILD b/vendor/github.com/vmware/govmomi/simulator/BUILD new file mode 100644 index 0000000000000..498ec1a32fade --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/BUILD @@ -0,0 +1,88 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "authorization_manager.go", + "cluster_compute_resource.go", + "container.go", + "custom_fields_manager.go", + "datacenter.go", + "datastore.go", + "doc.go", + "dvs.go", + "entity.go", + "environment_browser.go", + "event_manager.go", + "file_manager.go", + "folder.go", + "guest_id.go", + "host_datastore_browser.go", + "host_datastore_system.go", + "host_firewall_system.go", + "host_local_account_manager.go", + "host_network_system.go", + "host_system.go", + "ip_pool_manager.go", + "license_manager.go", + "model.go", + "object.go", + "option_manager.go", + "os_unix.go", + "os_windows.go", + "performance_manager.go", + "portgroup.go", + "property_collector.go", + "property_filter.go", + "registry.go", + "resource_pool.go", + "search_index.go", + "service_instance.go", + "session_manager.go", + "simulator.go", + "snapshot.go", + "storage_resource_manager.go", + "task.go", + "task_manager.go", + "user_directory.go", + "view_manager.go", + "virtual_disk_manager.go", + "virtual_machine.go", + "vstorage_object_manager.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/simulator", + importpath = "github.com/vmware/govmomi/simulator", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/uuid:go_default_library", + "//vendor/github.com/vmware/govmomi/find:go_default_library", + "//vendor/github.com/vmware/govmomi/object:go_default_library", + "//vendor/github.com/vmware/govmomi/session:go_default_library", + "//vendor/github.com/vmware/govmomi/simulator/esx:go_default_library", + "//vendor/github.com/vmware/govmomi/simulator/vpx:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/methods:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/mo:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/xml:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/vmware/govmomi/simulator/esx:all-srcs", + "//vendor/github.com/vmware/govmomi/simulator/vpx:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/simulator/esx/BUILD b/vendor/github.com/vmware/govmomi/simulator/esx/BUILD new file mode 100644 index 0000000000000..12f0fe6b5c882 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/esx/BUILD @@ -0,0 +1,45 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "authorization_manager.go", + "datacenter.go", + "doc.go", + "event_manager.go", + "host_config_info.go", + "host_firewall_system.go", + "host_hardware_info.go", + "host_storage_device_info.go", + "host_system.go", + "performance_manager.go", + "performance_manager_data.go", + "resource_pool.go", + "root_folder.go", + "service_content.go", + "setting.go", + "task_manager.go", + "virtual_device.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/simulator/esx", + importpath = "github.com/vmware/govmomi/simulator/esx", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/vim25/mo:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/simulator/vpx/BUILD b/vendor/github.com/vmware/govmomi/simulator/vpx/BUILD new file mode 100644 index 0000000000000..98ea6116900b1 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/simulator/vpx/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "performance_manager.go", + "performance_manager_data.go", + "root_folder.go", + "service_content.go", + "setting.go", + "task_manager.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/simulator/vpx", + importpath = "github.com/vmware/govmomi/simulator/vpx", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/vim25/mo:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/sts/BUILD b/vendor/github.com/vmware/govmomi/sts/BUILD new file mode 100644 index 0000000000000..7d49afde1bd3e --- /dev/null +++ b/vendor/github.com/vmware/govmomi/sts/BUILD @@ -0,0 +1,40 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "signer.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/sts", + importpath = "github.com/vmware/govmomi/sts", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/uuid:go_default_library", + "//vendor/github.com/vmware/govmomi/lookup:go_default_library", + "//vendor/github.com/vmware/govmomi/lookup/types:go_default_library", + "//vendor/github.com/vmware/govmomi/sts/internal:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/methods:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/xml:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/vmware/govmomi/sts/internal:all-srcs", + "//vendor/github.com/vmware/govmomi/sts/simulator:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/sts/internal/BUILD b/vendor/github.com/vmware/govmomi/sts/internal/BUILD new file mode 100644 index 0000000000000..b038a88129ac6 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/sts/internal/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["types.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/sts/internal", + importpath = "github.com/vmware/govmomi/sts/internal", + visibility = ["//vendor/github.com/vmware/govmomi/sts:__subpackages__"], + deps = [ + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/xml:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/sts/simulator/BUILD b/vendor/github.com/vmware/govmomi/sts/simulator/BUILD new file mode 100644 index 0000000000000..1324ef4b34d4f --- /dev/null +++ b/vendor/github.com/vmware/govmomi/sts/simulator/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["simulator.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/sts/simulator", + importpath = "github.com/vmware/govmomi/sts/simulator", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/sts/internal:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/task/BUILD b/vendor/github.com/vmware/govmomi/task/BUILD new file mode 100644 index 0000000000000..3eb3ff61d3fe8 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/task/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "error.go", + "wait.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/task", + importpath = "github.com/vmware/govmomi/task", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/property:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/progress:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/vapi/internal/BUILD b/vendor/github.com/vmware/govmomi/vapi/internal/BUILD new file mode 100644 index 0000000000000..f04058b9025a3 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/vapi/internal/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["internal.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/vapi/internal", + importpath = "github.com/vmware/govmomi/vapi/internal", + visibility = ["//vendor/github.com/vmware/govmomi/vapi:__subpackages__"], + deps = [ + "//vendor/github.com/vmware/govmomi/vim25/mo:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/vapi/rest/BUILD b/vendor/github.com/vmware/govmomi/vapi/rest/BUILD new file mode 100644 index 0000000000000..2004583df0a22 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/vapi/rest/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["client.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/vapi/rest", + importpath = "github.com/vmware/govmomi/vapi/rest", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/vapi/internal:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/vapi/simulator/BUILD b/vendor/github.com/vmware/govmomi/vapi/simulator/BUILD new file mode 100644 index 0000000000000..f98c9186009ea --- /dev/null +++ b/vendor/github.com/vmware/govmomi/vapi/simulator/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["simulator.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/vapi/simulator", + importpath = "github.com/vmware/govmomi/vapi/simulator", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/uuid:go_default_library", + "//vendor/github.com/vmware/govmomi/vapi/internal:go_default_library", + "//vendor/github.com/vmware/govmomi/vapi/tags:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/vapi/tags/BUILD b/vendor/github.com/vmware/govmomi/vapi/tags/BUILD new file mode 100644 index 0000000000000..d3c2d33bb0964 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/vapi/tags/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "categories.go", + "tag_association.go", + "tags.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/vapi/tags", + importpath = "github.com/vmware/govmomi/vapi/tags", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/vapi/internal:go_default_library", + "//vendor/github.com/vmware/govmomi/vapi/rest:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/mo:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/vim25/BUILD b/vendor/github.com/vmware/govmomi/vim25/BUILD new file mode 100644 index 0000000000000..2e3751243e048 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/vim25/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "doc.go", + "retry.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/vim25", + importpath = "github.com/vmware/govmomi/vim25", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/vim25/methods:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/github.com/vmware/govmomi/vim25/debug:all-srcs", + "//vendor/github.com/vmware/govmomi/vim25/methods:all-srcs", + "//vendor/github.com/vmware/govmomi/vim25/mo:all-srcs", + "//vendor/github.com/vmware/govmomi/vim25/progress:all-srcs", + "//vendor/github.com/vmware/govmomi/vim25/soap:all-srcs", + "//vendor/github.com/vmware/govmomi/vim25/types:all-srcs", + "//vendor/github.com/vmware/govmomi/vim25/xml:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/vim25/debug/BUILD b/vendor/github.com/vmware/govmomi/vim25/debug/BUILD new file mode 100644 index 0000000000000..3221d27cbe2df --- /dev/null +++ b/vendor/github.com/vmware/govmomi/vim25/debug/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["debug.go"], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/vim25/debug", + importpath = "github.com/vmware/govmomi/vim25/debug", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/vim25/methods/BUILD b/vendor/github.com/vmware/govmomi/vim25/methods/BUILD new file mode 100644 index 0000000000000..394acf607f004 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/vim25/methods/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "methods.go", + "service_content.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/vim25/methods", + importpath = "github.com/vmware/govmomi/vim25/methods", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/vim25/mo/BUILD b/vendor/github.com/vmware/govmomi/vim25/mo/BUILD new file mode 100644 index 0000000000000..d55915f793764 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/vim25/mo/BUILD @@ -0,0 +1,37 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "ancestors.go", + "entity.go", + "extra.go", + "mo.go", + "reference.go", + "registry.go", + "retrieve.go", + "type_info.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/vim25/mo", + importpath = "github.com/vmware/govmomi/vim25/mo", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/vim25/methods:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/vim25/progress/BUILD b/vendor/github.com/vmware/govmomi/vim25/progress/BUILD new file mode 100644 index 0000000000000..d3aa1cf0ed571 --- /dev/null +++ b/vendor/github.com/vmware/govmomi/vim25/progress/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "aggregator.go", + "doc.go", + "prefix.go", + "reader.go", + "report.go", + "scale.go", + "sinker.go", + "tee.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/vim25/progress", + importpath = "github.com/vmware/govmomi/vim25/progress", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/vim25/soap/BUILD b/vendor/github.com/vmware/govmomi/vim25/soap/BUILD new file mode 100644 index 0000000000000..db42ce6e3587d --- /dev/null +++ b/vendor/github.com/vmware/govmomi/vim25/soap/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "debug.go", + "error.go", + "soap.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/vim25/soap", + importpath = "github.com/vmware/govmomi/vim25/soap", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/vmware/govmomi/vim25/debug:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/progress:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/xml:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/vim25/types/BUILD b/vendor/github.com/vmware/govmomi/vim25/types/BUILD new file mode 100644 index 0000000000000..77ea6c4e20eca --- /dev/null +++ b/vendor/github.com/vmware/govmomi/vim25/types/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "base.go", + "enum.go", + "fault.go", + "helpers.go", + "if.go", + "registry.go", + "types.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/vim25/types", + importpath = "github.com/vmware/govmomi/vim25/types", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/vmware/govmomi/vim25/xml/BUILD b/vendor/github.com/vmware/govmomi/vim25/xml/BUILD new file mode 100644 index 0000000000000..e6ec69c45d7fe --- /dev/null +++ b/vendor/github.com/vmware/govmomi/vim25/xml/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "extras.go", + "marshal.go", + "read.go", + "typeinfo.go", + "xml.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/vmware/govmomi/vim25/xml", + importpath = "github.com/vmware/govmomi/vim25/xml", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/xiang90/probing/BUILD b/vendor/github.com/xiang90/probing/BUILD new file mode 100644 index 0000000000000..5a001468b44ff --- /dev/null +++ b/vendor/github.com/xiang90/probing/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "prober.go", + "server.go", + "status.go", + ], + importmap = "k8s.io/kubernetes/vendor/github.com/xiang90/probing", + importpath = "github.com/xiang90/probing", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/bbolt/BUILD b/vendor/go.etcd.io/bbolt/BUILD new file mode 100644 index 0000000000000..53c3dfc46b9ac --- /dev/null +++ b/vendor/go.etcd.io/bbolt/BUILD @@ -0,0 +1,61 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bolt_386.go", + "bolt_amd64.go", + "bolt_arm.go", + "bolt_arm64.go", + "bolt_linux.go", + "bolt_mips64x.go", + "bolt_mipsx.go", + "bolt_openbsd.go", + "bolt_ppc64.go", + "bolt_ppc64le.go", + "bolt_riscv64.go", + "bolt_s390x.go", + "bolt_unix.go", + "bolt_unix_aix.go", + "bolt_unix_solaris.go", + "bolt_windows.go", + "boltsync_unix.go", + "bucket.go", + "cursor.go", + "db.go", + "doc.go", + "errors.go", + "freelist.go", + "freelist_hmap.go", + "node.go", + "page.go", + "tx.go", + "unsafe.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/bbolt", + importpath = "go.etcd.io/bbolt", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:aix": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/auth/BUILD b/vendor/go.etcd.io/etcd/auth/BUILD new file mode 100644 index 0000000000000..1f00bba7213b3 --- /dev/null +++ b/vendor/go.etcd.io/etcd/auth/BUILD @@ -0,0 +1,50 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "jwt.go", + "metrics.go", + "nop.go", + "options.go", + "range_perm_cache.go", + "simple_token.go", + "store.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/auth", + importpath = "go.etcd.io/etcd/auth", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/github.com/dgrijalva/jwt-go:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/go.etcd.io/etcd/auth/authpb:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc/backend:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/adt:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + "//vendor/golang.org/x/crypto/bcrypt:go_default_library", + "//vendor/google.golang.org/grpc/credentials:go_default_library", + "//vendor/google.golang.org/grpc/metadata:go_default_library", + "//vendor/google.golang.org/grpc/peer:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/auth/authpb:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/auth/authpb/BUILD b/vendor/go.etcd.io/etcd/auth/authpb/BUILD new file mode 100644 index 0000000000000..cd8b94c146cdd --- /dev/null +++ b/vendor/go.etcd.io/etcd/auth/authpb/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["auth.pb.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/auth/authpb", + importpath = "go.etcd.io/etcd/auth/authpb", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/client/BUILD b/vendor/go.etcd.io/etcd/client/BUILD new file mode 100644 index 0000000000000..27a4d441e9f5d --- /dev/null +++ b/vendor/go.etcd.io/etcd/client/BUILD @@ -0,0 +1,44 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "auth_role.go", + "auth_user.go", + "cancelreq.go", + "client.go", + "cluster_error.go", + "curl.go", + "discover.go", + "doc.go", + "json.go", + "keys.go", + "members.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/client", + importpath = "go.etcd.io/etcd/client", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/json-iterator/go:go_default_library", + "//vendor/github.com/modern-go/reflect2:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/pathutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/srv:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + "//vendor/go.etcd.io/etcd/version:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/clientv3/BUILD b/vendor/go.etcd.io/etcd/clientv3/BUILD new file mode 100644 index 0000000000000..613a97106538f --- /dev/null +++ b/vendor/go.etcd.io/etcd/clientv3/BUILD @@ -0,0 +1,73 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "auth.go", + "client.go", + "cluster.go", + "compact_op.go", + "compare.go", + "config.go", + "ctx.go", + "doc.go", + "kv.go", + "lease.go", + "logger.go", + "maintenance.go", + "op.go", + "options.go", + "retry.go", + "retry_interceptor.go", + "sort.go", + "txn.go", + "utils.go", + "watch.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/clientv3", + importpath = "go.etcd.io/etcd/clientv3", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/google/uuid:go_default_library", + "//vendor/go.etcd.io/etcd/auth/authpb:go_default_library", + "//vendor/go.etcd.io/etcd/clientv3/balancer:go_default_library", + "//vendor/go.etcd.io/etcd/clientv3/balancer/picker:go_default_library", + "//vendor/go.etcd.io/etcd/clientv3/balancer/resolver/endpoint:go_default_library", + "//vendor/go.etcd.io/etcd/clientv3/credentials:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc/mvccpb:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/logutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + "//vendor/go.etcd.io/etcd/version:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + "//vendor/google.golang.org/grpc/codes:go_default_library", + "//vendor/google.golang.org/grpc/credentials:go_default_library", + "//vendor/google.golang.org/grpc/grpclog:go_default_library", + "//vendor/google.golang.org/grpc/keepalive:go_default_library", + "//vendor/google.golang.org/grpc/metadata:go_default_library", + "//vendor/google.golang.org/grpc/status:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/clientv3/balancer:all-srcs", + "//vendor/go.etcd.io/etcd/clientv3/concurrency:all-srcs", + "//vendor/go.etcd.io/etcd/clientv3/credentials:all-srcs", + "//vendor/go.etcd.io/etcd/clientv3/namespace:all-srcs", + "//vendor/go.etcd.io/etcd/clientv3/naming:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/clientv3/balancer/BUILD b/vendor/go.etcd.io/etcd/clientv3/balancer/BUILD new file mode 100644 index 0000000000000..5e7c111cfb6aa --- /dev/null +++ b/vendor/go.etcd.io/etcd/clientv3/balancer/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "balancer.go", + "utils.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/clientv3/balancer", + importpath = "go.etcd.io/etcd/clientv3/balancer", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.etcd.io/etcd/clientv3/balancer/connectivity:go_default_library", + "//vendor/go.etcd.io/etcd/clientv3/balancer/picker:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + "//vendor/google.golang.org/grpc/balancer:go_default_library", + "//vendor/google.golang.org/grpc/connectivity:go_default_library", + "//vendor/google.golang.org/grpc/resolver:go_default_library", + "//vendor/google.golang.org/grpc/resolver/dns:go_default_library", + "//vendor/google.golang.org/grpc/resolver/passthrough:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/clientv3/balancer/connectivity:all-srcs", + "//vendor/go.etcd.io/etcd/clientv3/balancer/picker:all-srcs", + "//vendor/go.etcd.io/etcd/clientv3/balancer/resolver/endpoint:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/clientv3/balancer/connectivity/BUILD b/vendor/go.etcd.io/etcd/clientv3/balancer/connectivity/BUILD new file mode 100644 index 0000000000000..5e6e85f34741f --- /dev/null +++ b/vendor/go.etcd.io/etcd/clientv3/balancer/connectivity/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["connectivity.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/clientv3/balancer/connectivity", + importpath = "go.etcd.io/etcd/clientv3/balancer/connectivity", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.uber.org/zap:go_default_library", + "//vendor/google.golang.org/grpc/connectivity:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/clientv3/balancer/picker/BUILD b/vendor/go.etcd.io/etcd/clientv3/balancer/picker/BUILD new file mode 100644 index 0000000000000..6a037c75186f1 --- /dev/null +++ b/vendor/go.etcd.io/etcd/clientv3/balancer/picker/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "err.go", + "picker.go", + "roundrobin_balanced.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/clientv3/balancer/picker", + importpath = "go.etcd.io/etcd/clientv3/balancer/picker", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.uber.org/zap:go_default_library", + "//vendor/go.uber.org/zap/zapcore:go_default_library", + "//vendor/google.golang.org/grpc/balancer:go_default_library", + "//vendor/google.golang.org/grpc/resolver:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/clientv3/balancer/resolver/endpoint/BUILD b/vendor/go.etcd.io/etcd/clientv3/balancer/resolver/endpoint/BUILD new file mode 100644 index 0000000000000..6780b5be42a99 --- /dev/null +++ b/vendor/go.etcd.io/etcd/clientv3/balancer/resolver/endpoint/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["endpoint.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/clientv3/balancer/resolver/endpoint", + importpath = "go.etcd.io/etcd/clientv3/balancer/resolver/endpoint", + visibility = ["//visibility:public"], + deps = ["//vendor/google.golang.org/grpc/resolver:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/clientv3/concurrency/BUILD b/vendor/go.etcd.io/etcd/clientv3/concurrency/BUILD new file mode 100644 index 0000000000000..01431c6fd9a83 --- /dev/null +++ b/vendor/go.etcd.io/etcd/clientv3/concurrency/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "election.go", + "key.go", + "mutex.go", + "session.go", + "stm.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/clientv3/concurrency", + importpath = "go.etcd.io/etcd/clientv3/concurrency", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.etcd.io/etcd/clientv3:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc/mvccpb:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/clientv3/credentials/BUILD b/vendor/go.etcd.io/etcd/clientv3/credentials/BUILD new file mode 100644 index 0000000000000..750c5dadd8713 --- /dev/null +++ b/vendor/go.etcd.io/etcd/clientv3/credentials/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["credentials.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/clientv3/credentials", + importpath = "go.etcd.io/etcd/clientv3/credentials", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.etcd.io/etcd/clientv3/balancer/resolver/endpoint:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes:go_default_library", + "//vendor/google.golang.org/grpc/credentials:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/clientv3/namespace/BUILD b/vendor/go.etcd.io/etcd/clientv3/namespace/BUILD new file mode 100644 index 0000000000000..514ecb42227fe --- /dev/null +++ b/vendor/go.etcd.io/etcd/clientv3/namespace/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "kv.go", + "lease.go", + "util.go", + "watch.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/clientv3/namespace", + importpath = "go.etcd.io/etcd/clientv3/namespace", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.etcd.io/etcd/clientv3:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/clientv3/naming/BUILD b/vendor/go.etcd.io/etcd/clientv3/naming/BUILD new file mode 100644 index 0000000000000..b0834930626da --- /dev/null +++ b/vendor/go.etcd.io/etcd/clientv3/naming/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "grpc.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/clientv3/naming", + importpath = "go.etcd.io/etcd/clientv3/naming", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.etcd.io/etcd/clientv3:go_default_library", + "//vendor/google.golang.org/grpc/codes:go_default_library", + "//vendor/google.golang.org/grpc/naming:go_default_library", + "//vendor/google.golang.org/grpc/status:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/embed/BUILD b/vendor/go.etcd.io/etcd/embed/BUILD new file mode 100644 index 0000000000000..099262ba8c49c --- /dev/null +++ b/vendor/go.etcd.io/etcd/embed/BUILD @@ -0,0 +1,76 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "config.go", + "config_logging.go", + "config_logging_journal_unix.go", + "config_logging_journal_windows.go", + "doc.go", + "etcd.go", + "serve.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/embed", + importpath = "go.etcd.io/etcd/embed", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/github.com/grpc-ecosystem/go-grpc-prometheus:go_default_library", + "//vendor/github.com/grpc-ecosystem/grpc-gateway/runtime:go_default_library", + "//vendor/github.com/soheilhy/cmux:go_default_library", + "//vendor/github.com/tmc/grpc-websocket-proxy/wsproxy:go_default_library", + "//vendor/go.etcd.io/bbolt:go_default_library", + "//vendor/go.etcd.io/etcd/clientv3/credentials:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/etcdhttp:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/rafthttp:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2http:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2v3:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3client:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3compactor:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3election:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb/gw:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3lock:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb/gw:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3rpc:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb/gw:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/debugutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/flags:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/httputil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/logutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/netutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/runtime:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/srv:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/tlsutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/transport:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + "//vendor/go.etcd.io/etcd/version:go_default_library", + "//vendor/go.etcd.io/etcd/wal:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + "//vendor/go.uber.org/zap/zapcore:go_default_library", + "//vendor/golang.org/x/crypto/bcrypt:go_default_library", + "//vendor/golang.org/x/net/trace:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + "//vendor/google.golang.org/grpc/grpclog:go_default_library", + "//vendor/google.golang.org/grpc/keepalive:go_default_library", + "//vendor/sigs.k8s.io/yaml:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/BUILD b/vendor/go.etcd.io/etcd/etcdserver/BUILD new file mode 100644 index 0000000000000..2dee19225c83c --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/BUILD @@ -0,0 +1,94 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "apply.go", + "apply_auth.go", + "apply_v2.go", + "backend.go", + "cluster_util.go", + "config.go", + "consistent_index.go", + "corrupt.go", + "doc.go", + "errors.go", + "metrics.go", + "quota.go", + "raft.go", + "server.go", + "server_access_control.go", + "snapshot_merge.go", + "storage.go", + "util.go", + "v2_server.go", + "v3_server.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver", + importpath = "go.etcd.io/etcd/etcdserver", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/go-semver/semver:go_default_library", + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/github.com/dustin/go-humanize:go_default_library", + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/go.etcd.io/bbolt:go_default_library", + "//vendor/go.etcd.io/etcd/auth:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/membership:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/rafthttp:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/snap:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2discovery:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2http/httptypes:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2stats:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2store:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3alarm:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3compactor:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/go.etcd.io/etcd/lease:go_default_library", + "//vendor/go.etcd.io/etcd/lease/leasehttp:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc/backend:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc/mvccpb:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/contention:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/fileutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/idutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/logutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/netutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/pbutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/runtime:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/schedule:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/traceutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/transport:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/wait:go_default_library", + "//vendor/go.etcd.io/etcd/raft:go_default_library", + "//vendor/go.etcd.io/etcd/raft/raftpb:go_default_library", + "//vendor/go.etcd.io/etcd/version:go_default_library", + "//vendor/go.etcd.io/etcd/wal:go_default_library", + "//vendor/go.etcd.io/etcd/wal/walpb:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + "//vendor/go.uber.org/zap/zapcore:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/BUILD new file mode 100644 index 0000000000000..20305f4bb567f --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/BUILD @@ -0,0 +1,54 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "capability.go", + "cluster.go", + "doc.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api", + importpath = "go.etcd.io/etcd/etcdserver/api", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/go-semver/semver:go_default_library", + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/membership:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + "//vendor/go.etcd.io/etcd/version:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/etcdhttp:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/membership:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/rafthttp:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/snap:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2auth:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2discovery:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2error:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2http:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2stats:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2store:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2v3:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3alarm:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3client:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3compactor:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3election:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3lock:all-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3rpc:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/etcdhttp/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/etcdhttp/BUILD new file mode 100644 index 0000000000000..3f175d533ef41 --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/etcdhttp/BUILD @@ -0,0 +1,46 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "base.go", + "doc.go", + "metrics.go", + "peer.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/etcdhttp", + importpath = "go.etcd.io/etcd/etcdserver/api/etcdhttp", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus/promhttp:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/membership:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/rafthttp:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2error:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2http/httptypes:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/go.etcd.io/etcd/lease/leasehttp:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/logutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + "//vendor/go.etcd.io/etcd/raft:go_default_library", + "//vendor/go.etcd.io/etcd/version:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/membership/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/membership/BUILD new file mode 100644 index 0000000000000..4cbddd12cf6e4 --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/membership/BUILD @@ -0,0 +1,44 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "cluster.go", + "doc.go", + "errors.go", + "member.go", + "metrics.go", + "store.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/membership", + importpath = "go.etcd.io/etcd/etcdserver/api/membership", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/go-semver/semver:go_default_library", + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2error:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2store:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc/backend:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/netutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + "//vendor/go.etcd.io/etcd/raft:go_default_library", + "//vendor/go.etcd.io/etcd/raft/raftpb:go_default_library", + "//vendor/go.etcd.io/etcd/version:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/rafthttp/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/rafthttp/BUILD new file mode 100644 index 0000000000000..97ed3f4ba3a79 --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/rafthttp/BUILD @@ -0,0 +1,60 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "coder.go", + "doc.go", + "http.go", + "metrics.go", + "msg_codec.go", + "msgappv2_codec.go", + "peer.go", + "peer_status.go", + "pipeline.go", + "probing_status.go", + "remote.go", + "snapshot_sender.go", + "stream.go", + "transport.go", + "urlpick.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/rafthttp", + importpath = "go.etcd.io/etcd/etcdserver/api/rafthttp", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/go-semver/semver:go_default_library", + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/github.com/dustin/go-humanize:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/github.com/xiang90/probing:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/snap:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2stats:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/httputil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/ioutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/logutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/pbutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/transport:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + "//vendor/go.etcd.io/etcd/raft:go_default_library", + "//vendor/go.etcd.io/etcd/raft/raftpb:go_default_library", + "//vendor/go.etcd.io/etcd/version:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + "//vendor/golang.org/x/time/rate:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/snap/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/snap/BUILD new file mode 100644 index 0000000000000..9b531a5b7cb21 --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/snap/BUILD @@ -0,0 +1,45 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "db.go", + "doc.go", + "message.go", + "metrics.go", + "snapshotter.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/snap", + importpath = "go.etcd.io/etcd/etcdserver/api/snap", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/github.com/dustin/go-humanize:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/snap/snappb:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/fileutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/ioutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/pbutil:go_default_library", + "//vendor/go.etcd.io/etcd/raft:go_default_library", + "//vendor/go.etcd.io/etcd/raft/raftpb:go_default_library", + "//vendor/go.etcd.io/etcd/wal/walpb:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/snap/snappb:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/snap/snappb/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/snap/snappb/BUILD new file mode 100644 index 0000000000000..2bbcbe4eb6c32 --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/snap/snappb/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["snap.pb.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/snap/snappb", + importpath = "go.etcd.io/etcd/etcdserver/api/snap/snappb", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v2auth/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v2auth/BUILD new file mode 100644 index 0000000000000..8f2dffd4f02cd --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v2auth/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "auth.go", + "auth_requests.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v2auth", + importpath = "go.etcd.io/etcd/etcdserver/api/v2auth", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2error:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + "//vendor/golang.org/x/crypto/bcrypt:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v2discovery/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v2discovery/BUILD new file mode 100644 index 0000000000000..46fbc7c054f1b --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v2discovery/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["discovery.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v2discovery", + importpath = "go.etcd.io/etcd/etcdserver/api/v2discovery", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/github.com/jonboulle/clockwork:go_default_library", + "//vendor/go.etcd.io/etcd/client:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/transport:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v2error/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v2error/BUILD new file mode 100644 index 0000000000000..8dbebf404aaa2 --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v2error/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["error.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v2error", + importpath = "go.etcd.io/etcd/etcdserver/api/v2error", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v2http/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v2http/BUILD new file mode 100644 index 0000000000000..121999e32ddb5 --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v2http/BUILD @@ -0,0 +1,51 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "capability.go", + "client.go", + "client_auth.go", + "doc.go", + "http.go", + "metrics.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v2http", + importpath = "go.etcd.io/etcd/etcdserver/api/v2http", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/github.com/jonboulle/clockwork:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/etcdhttp:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/membership:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2auth:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2error:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2http/httptypes:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2stats:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2store:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/logutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2http/httptypes:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v2http/httptypes/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v2http/httptypes/BUILD new file mode 100644 index 0000000000000..96b9dcb597d8f --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v2http/httptypes/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "errors.go", + "member.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v2http/httptypes", + importpath = "go.etcd.io/etcd/etcdserver/api/v2http/httptypes", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v2stats/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v2stats/BUILD new file mode 100644 index 0000000000000..f982b2f28fedb --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v2stats/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "leader.go", + "queue.go", + "server.go", + "stats.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v2stats", + importpath = "go.etcd.io/etcd/etcdserver/api/v2stats", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/go.etcd.io/etcd/raft:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v2store/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v2store/BUILD new file mode 100644 index 0000000000000..494feaa02dab1 --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v2store/BUILD @@ -0,0 +1,42 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "event.go", + "event_history.go", + "event_queue.go", + "metrics.go", + "node.go", + "node_extern.go", + "stats.go", + "store.go", + "ttl_key_heap.go", + "watcher.go", + "watcher_hub.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v2store", + importpath = "go.etcd.io/etcd/etcdserver/api/v2store", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/jonboulle/clockwork:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2error:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v2v3/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v2v3/BUILD new file mode 100644 index 0000000000000..51b3209e3dc73 --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v2v3/BUILD @@ -0,0 +1,43 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "cluster.go", + "doc.go", + "server.go", + "store.go", + "watcher.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v2v3", + importpath = "go.etcd.io/etcd/etcdserver/api/v2v3", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/go-semver/semver:go_default_library", + "//vendor/go.etcd.io/etcd/clientv3:go_default_library", + "//vendor/go.etcd.io/etcd/clientv3/concurrency:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/membership:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2error:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2store:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc/mvccpb:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v3alarm/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v3alarm/BUILD new file mode 100644 index 0000000000000..a731b0cbdce7e --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v3alarm/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["alarms.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v3alarm", + importpath = "go.etcd.io/etcd/etcdserver/api/v3alarm", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc/backend:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v3client/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v3client/BUILD new file mode 100644 index 0000000000000..a368b96808648 --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v3client/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "v3client.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v3client", + importpath = "go.etcd.io/etcd/etcdserver/api/v3client", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.etcd.io/etcd/clientv3:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3rpc:go_default_library", + "//vendor/go.etcd.io/etcd/proxy/grpcproxy/adapter:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v3compactor/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v3compactor/BUILD new file mode 100644 index 0000000000000..7fff7300215b8 --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v3compactor/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "compactor.go", + "doc.go", + "periodic.go", + "revision.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v3compactor", + importpath = "go.etcd.io/etcd/etcdserver/api/v3compactor", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/github.com/jonboulle/clockwork:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v3election/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v3election/BUILD new file mode 100644 index 0000000000000..ca10223ff87c4 --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v3election/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "election.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v3election", + importpath = "go.etcd.io/etcd/etcdserver/api/v3election", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.etcd.io/etcd/clientv3:go_default_library", + "//vendor/go.etcd.io/etcd/clientv3/concurrency:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb/BUILD new file mode 100644 index 0000000000000..d1d7ca040c916 --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["v3election.pb.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb", + importpath = "go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc/mvccpb:go_default_library", + "//vendor/golang.org/x/net/context:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb/gw:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb/gw/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb/gw/BUILD new file mode 100644 index 0000000000000..a036ba0326a3c --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb/gw/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["v3election.pb.gw.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb/gw", + importpath = "go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb/gw", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/grpc-ecosystem/grpc-gateway/runtime:go_default_library", + "//vendor/github.com/grpc-ecosystem/grpc-gateway/utilities:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb:go_default_library", + "//vendor/golang.org/x/net/context:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + "//vendor/google.golang.org/grpc/codes:go_default_library", + "//vendor/google.golang.org/grpc/grpclog:go_default_library", + "//vendor/google.golang.org/grpc/status:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v3lock/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v3lock/BUILD new file mode 100644 index 0000000000000..9cc3b7df92715 --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v3lock/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "lock.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v3lock", + importpath = "go.etcd.io/etcd/etcdserver/api/v3lock", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.etcd.io/etcd/clientv3:go_default_library", + "//vendor/go.etcd.io/etcd/clientv3/concurrency:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb/BUILD new file mode 100644 index 0000000000000..abbefd080b031 --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["v3lock.pb.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb", + importpath = "go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/golang.org/x/net/context:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb/gw:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb/gw/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb/gw/BUILD new file mode 100644 index 0000000000000..ba8c3ebfb552b --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb/gw/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["v3lock.pb.gw.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb/gw", + importpath = "go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb/gw", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/grpc-ecosystem/grpc-gateway/runtime:go_default_library", + "//vendor/github.com/grpc-ecosystem/grpc-gateway/utilities:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb:go_default_library", + "//vendor/golang.org/x/net/context:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + "//vendor/google.golang.org/grpc/codes:go_default_library", + "//vendor/google.golang.org/grpc/grpclog:go_default_library", + "//vendor/google.golang.org/grpc/status:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v3rpc/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v3rpc/BUILD new file mode 100644 index 0000000000000..923aa7ac85daa --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v3rpc/BUILD @@ -0,0 +1,71 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "auth.go", + "codec.go", + "grpc.go", + "header.go", + "interceptor.go", + "key.go", + "lease.go", + "maintenance.go", + "member.go", + "metrics.go", + "quota.go", + "util.go", + "watch.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v3rpc", + importpath = "go.etcd.io/etcd/etcdserver/api/v3rpc", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/github.com/dustin/go-humanize:go_default_library", + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/grpc-ecosystem/go-grpc-middleware:go_default_library", + "//vendor/github.com/grpc-ecosystem/go-grpc-prometheus:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/go.etcd.io/etcd/auth:go_default_library", + "//vendor/go.etcd.io/etcd/clientv3/credentials:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/membership:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/go.etcd.io/etcd/lease:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc/backend:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc/mvccpb:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/adt:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + "//vendor/go.etcd.io/etcd/raft:go_default_library", + "//vendor/go.etcd.io/etcd/version:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + "//vendor/google.golang.org/grpc/codes:go_default_library", + "//vendor/google.golang.org/grpc/health:go_default_library", + "//vendor/google.golang.org/grpc/health/grpc_health_v1:go_default_library", + "//vendor/google.golang.org/grpc/metadata:go_default_library", + "//vendor/google.golang.org/grpc/peer:go_default_library", + "//vendor/google.golang.org/grpc/status:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes/BUILD b/vendor/go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes/BUILD new file mode 100644 index 0000000000000..69abbaf4c8ddd --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "error.go", + "md.go", + "metadatafields.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes", + importpath = "go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes", + visibility = ["//visibility:public"], + deps = [ + "//vendor/google.golang.org/grpc/codes:go_default_library", + "//vendor/google.golang.org/grpc/status:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/etcdserverpb/BUILD b/vendor/go.etcd.io/etcd/etcdserver/etcdserverpb/BUILD new file mode 100644 index 0000000000000..ce3cc5560184e --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/etcdserverpb/BUILD @@ -0,0 +1,39 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "etcdserver.pb.go", + "raft_internal.pb.go", + "raft_internal_stringer.go", + "rpc.pb.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/etcdserverpb", + importpath = "go.etcd.io/etcd/etcdserver/etcdserverpb", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/go.etcd.io/etcd/auth/authpb:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc/mvccpb:go_default_library", + "//vendor/golang.org/x/net/context:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb/gw:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/etcdserver/etcdserverpb/gw/BUILD b/vendor/go.etcd.io/etcd/etcdserver/etcdserverpb/gw/BUILD new file mode 100644 index 0000000000000..8dee89b1b6045 --- /dev/null +++ b/vendor/go.etcd.io/etcd/etcdserver/etcdserverpb/gw/BUILD @@ -0,0 +1,34 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["rpc.pb.gw.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/etcdserver/etcdserverpb/gw", + importpath = "go.etcd.io/etcd/etcdserver/etcdserverpb/gw", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/grpc-ecosystem/grpc-gateway/runtime:go_default_library", + "//vendor/github.com/grpc-ecosystem/grpc-gateway/utilities:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/golang.org/x/net/context:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + "//vendor/google.golang.org/grpc/codes:go_default_library", + "//vendor/google.golang.org/grpc/grpclog:go_default_library", + "//vendor/google.golang.org/grpc/status:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/integration/BUILD b/vendor/go.etcd.io/etcd/integration/BUILD new file mode 100644 index 0000000000000..1b827b3b98396 --- /dev/null +++ b/vendor/go.etcd.io/etcd/integration/BUILD @@ -0,0 +1,55 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bridge.go", + "cluster.go", + "cluster_direct.go", + "doc.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/integration", + importpath = "go.etcd.io/etcd/integration", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/soheilhy/cmux:go_default_library", + "//vendor/go.etcd.io/etcd/client:go_default_library", + "//vendor/go.etcd.io/etcd/clientv3:go_default_library", + "//vendor/go.etcd.io/etcd/embed:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/etcdhttp:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/rafthttp:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v2http:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3client:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3election:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3lock:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3rpc:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/logutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/testutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/tlsutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/transport:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + "//vendor/golang.org/x/crypto/bcrypt:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + "//vendor/google.golang.org/grpc/grpclog:go_default_library", + "//vendor/google.golang.org/grpc/keepalive:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/lease/BUILD b/vendor/go.etcd.io/etcd/lease/BUILD new file mode 100644 index 0000000000000..31740f66e5fa5 --- /dev/null +++ b/vendor/go.etcd.io/etcd/lease/BUILD @@ -0,0 +1,39 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "lease_queue.go", + "lessor.go", + "metrics.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/lease", + importpath = "go.etcd.io/etcd/lease", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/go.etcd.io/etcd/lease/leasepb:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc/backend:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/lease/leasehttp:all-srcs", + "//vendor/go.etcd.io/etcd/lease/leasepb:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/lease/leasehttp/BUILD b/vendor/go.etcd.io/etcd/lease/leasehttp/BUILD new file mode 100644 index 0000000000000..4751b8e4e0f34 --- /dev/null +++ b/vendor/go.etcd.io/etcd/lease/leasehttp/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "http.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/lease/leasehttp", + importpath = "go.etcd.io/etcd/lease/leasehttp", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/go.etcd.io/etcd/lease:go_default_library", + "//vendor/go.etcd.io/etcd/lease/leasepb:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/httputil:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/lease/leasepb/BUILD b/vendor/go.etcd.io/etcd/lease/leasepb/BUILD new file mode 100644 index 0000000000000..d6be9ccff3d3d --- /dev/null +++ b/vendor/go.etcd.io/etcd/lease/leasepb/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["lease.pb.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/lease/leasepb", + importpath = "go.etcd.io/etcd/lease/leasepb", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/mvcc/BUILD b/vendor/go.etcd.io/etcd/mvcc/BUILD new file mode 100644 index 0000000000000..b92a07f6edd11 --- /dev/null +++ b/vendor/go.etcd.io/etcd/mvcc/BUILD @@ -0,0 +1,57 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "index.go", + "key_index.go", + "kv.go", + "kv_view.go", + "kvstore.go", + "kvstore_compaction.go", + "kvstore_txn.go", + "metrics.go", + "metrics_txn.go", + "revision.go", + "util.go", + "watchable_store.go", + "watchable_store_txn.go", + "watcher.go", + "watcher_group.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/mvcc", + importpath = "go.etcd.io/etcd/mvcc", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/github.com/google/btree:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/go.etcd.io/etcd/auth:go_default_library", + "//vendor/go.etcd.io/etcd/lease:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc/backend:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc/mvccpb:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/adt:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/schedule:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/traceutil:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/mvcc/backend:all-srcs", + "//vendor/go.etcd.io/etcd/mvcc/mvccpb:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/mvcc/backend/BUILD b/vendor/go.etcd.io/etcd/mvcc/backend/BUILD new file mode 100644 index 0000000000000..fd0fa05eaa5f8 --- /dev/null +++ b/vendor/go.etcd.io/etcd/mvcc/backend/BUILD @@ -0,0 +1,40 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "backend.go", + "batch_tx.go", + "config_default.go", + "config_linux.go", + "config_windows.go", + "doc.go", + "metrics.go", + "read_tx.go", + "tx_buffer.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/mvcc/backend", + importpath = "go.etcd.io/etcd/mvcc/backend", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/github.com/dustin/go-humanize:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/go.etcd.io/bbolt:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/mvcc/mvccpb/BUILD b/vendor/go.etcd.io/etcd/mvcc/mvccpb/BUILD new file mode 100644 index 0000000000000..56cadada9e950 --- /dev/null +++ b/vendor/go.etcd.io/etcd/mvcc/mvccpb/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["kv.pb.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/mvcc/mvccpb", + importpath = "go.etcd.io/etcd/mvcc/mvccpb", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/adt/BUILD b/vendor/go.etcd.io/etcd/pkg/adt/BUILD new file mode 100644 index 0000000000000..21a28af92253e --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/adt/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "interval_tree.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/adt", + importpath = "go.etcd.io/etcd/pkg/adt", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/contention/BUILD b/vendor/go.etcd.io/etcd/pkg/contention/BUILD new file mode 100644 index 0000000000000..ede13a23e6805 --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/contention/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "contention.go", + "doc.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/contention", + importpath = "go.etcd.io/etcd/pkg/contention", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/cpuutil/BUILD b/vendor/go.etcd.io/etcd/pkg/cpuutil/BUILD new file mode 100644 index 0000000000000..4f1ffa73cb00c --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/cpuutil/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "endian.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/cpuutil", + importpath = "go.etcd.io/etcd/pkg/cpuutil", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/crc/BUILD b/vendor/go.etcd.io/etcd/pkg/crc/BUILD new file mode 100644 index 0000000000000..06324b424ba21 --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/crc/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["crc.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/crc", + importpath = "go.etcd.io/etcd/pkg/crc", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/debugutil/BUILD b/vendor/go.etcd.io/etcd/pkg/debugutil/BUILD new file mode 100644 index 0000000000000..fa77dd0a0880f --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/debugutil/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "pprof.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/debugutil", + importpath = "go.etcd.io/etcd/pkg/debugutil", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/fileutil/BUILD b/vendor/go.etcd.io/etcd/pkg/fileutil/BUILD new file mode 100644 index 0000000000000..1487f39b81cc6 --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/fileutil/BUILD @@ -0,0 +1,48 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "dir_unix.go", + "dir_windows.go", + "doc.go", + "fileutil.go", + "lock.go", + "lock_flock.go", + "lock_linux.go", + "lock_plan9.go", + "lock_solaris.go", + "lock_unix.go", + "lock_windows.go", + "preallocate.go", + "preallocate_darwin.go", + "preallocate_unix.go", + "preallocate_unsupported.go", + "purge.go", + "read_dir.go", + "sync.go", + "sync_darwin.go", + "sync_linux.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/fileutil", + importpath = "go.etcd.io/etcd/pkg/fileutil", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/flags/BUILD b/vendor/go.etcd.io/etcd/pkg/flags/BUILD new file mode 100644 index 0000000000000..ac2bef893b628 --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/flags/BUILD @@ -0,0 +1,36 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "flag.go", + "ignored.go", + "selective_string.go", + "strings.go", + "unique_strings.go", + "unique_urls.go", + "urls.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/flags", + importpath = "go.etcd.io/etcd/pkg/flags", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/github.com/spf13/pflag:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/httputil/BUILD b/vendor/go.etcd.io/etcd/pkg/httputil/BUILD new file mode 100644 index 0000000000000..fddbeb76878c7 --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/httputil/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["httputil.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/httputil", + importpath = "go.etcd.io/etcd/pkg/httputil", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/idutil/BUILD b/vendor/go.etcd.io/etcd/pkg/idutil/BUILD new file mode 100644 index 0000000000000..13fe42dd44c24 --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/idutil/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["id.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/idutil", + importpath = "go.etcd.io/etcd/pkg/idutil", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/ioutil/BUILD b/vendor/go.etcd.io/etcd/pkg/ioutil/BUILD new file mode 100644 index 0000000000000..c0cea37ee823f --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/ioutil/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "pagewriter.go", + "readcloser.go", + "reader.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/ioutil", + importpath = "go.etcd.io/etcd/pkg/ioutil", + visibility = ["//visibility:public"], + deps = ["//vendor/go.etcd.io/etcd/pkg/fileutil:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/logutil/BUILD b/vendor/go.etcd.io/etcd/pkg/logutil/BUILD new file mode 100644 index 0000000000000..f9d9d9ebe1a50 --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/logutil/BUILD @@ -0,0 +1,99 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "discard_logger.go", + "doc.go", + "log_level.go", + "logger.go", + "merge_logger.go", + "package_logger.go", + "zap.go", + "zap_grpc.go", + "zap_journal.go", + "zap_raft.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/logutil", + importpath = "go.etcd.io/etcd/pkg/logutil", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/go.etcd.io/etcd/raft:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + "//vendor/go.uber.org/zap/zapcore:go_default_library", + "//vendor/google.golang.org/grpc/grpclog:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:aix": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/systemd:go_default_library", + ], + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/systemd:go_default_library", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/systemd:go_default_library", + ], + "@io_bazel_rules_go//go/platform:dragonfly": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/systemd:go_default_library", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/systemd:go_default_library", + ], + "@io_bazel_rules_go//go/platform:illumos": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/systemd:go_default_library", + ], + "@io_bazel_rules_go//go/platform:ios": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/systemd:go_default_library", + ], + "@io_bazel_rules_go//go/platform:js": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/systemd:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/systemd:go_default_library", + ], + "@io_bazel_rules_go//go/platform:nacl": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/systemd:go_default_library", + ], + "@io_bazel_rules_go//go/platform:netbsd": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/systemd:go_default_library", + ], + "@io_bazel_rules_go//go/platform:openbsd": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/systemd:go_default_library", + ], + "@io_bazel_rules_go//go/platform:plan9": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/systemd:go_default_library", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "//vendor/github.com/coreos/go-systemd/journal:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/systemd:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/netutil/BUILD b/vendor/go.etcd.io/etcd/pkg/netutil/BUILD new file mode 100644 index 0000000000000..a9d095d346c82 --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/netutil/BUILD @@ -0,0 +1,42 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "isolate_linux.go", + "isolate_stub.go", + "netutil.go", + "routes.go", + "routes_linux.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/netutil", + importpath = "go.etcd.io/etcd/pkg/netutil", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.etcd.io/etcd/pkg/types:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/go.etcd.io/etcd/pkg/cpuutil:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/go.etcd.io/etcd/pkg/cpuutil:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/pathutil/BUILD b/vendor/go.etcd.io/etcd/pkg/pathutil/BUILD new file mode 100644 index 0000000000000..91b209719854f --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/pathutil/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["path.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/pathutil", + importpath = "go.etcd.io/etcd/pkg/pathutil", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/pbutil/BUILD b/vendor/go.etcd.io/etcd/pkg/pbutil/BUILD new file mode 100644 index 0000000000000..191e2be13c4cc --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/pbutil/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["pbutil.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/pbutil", + importpath = "go.etcd.io/etcd/pkg/pbutil", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/coreos/pkg/capnslog:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/runtime/BUILD b/vendor/go.etcd.io/etcd/pkg/runtime/BUILD new file mode 100644 index 0000000000000..e57067b72f03c --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/runtime/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "fds_linux.go", + "fds_other.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/runtime", + importpath = "go.etcd.io/etcd/pkg/runtime", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/schedule/BUILD b/vendor/go.etcd.io/etcd/pkg/schedule/BUILD new file mode 100644 index 0000000000000..8034e28a3c4f8 --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/schedule/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "schedule.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/schedule", + importpath = "go.etcd.io/etcd/pkg/schedule", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/srv/BUILD b/vendor/go.etcd.io/etcd/pkg/srv/BUILD new file mode 100644 index 0000000000000..9a41be6c3989a --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/srv/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["srv.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/srv", + importpath = "go.etcd.io/etcd/pkg/srv", + visibility = ["//visibility:public"], + deps = ["//vendor/go.etcd.io/etcd/pkg/types:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/systemd/BUILD b/vendor/go.etcd.io/etcd/pkg/systemd/BUILD new file mode 100644 index 0000000000000..4807d55c3dc5a --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/systemd/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "journal.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/systemd", + importpath = "go.etcd.io/etcd/pkg/systemd", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/testutil/BUILD b/vendor/go.etcd.io/etcd/pkg/testutil/BUILD new file mode 100644 index 0000000000000..a95a164b902b2 --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/testutil/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "assert.go", + "leak.go", + "pauseable_handler.go", + "recorder.go", + "testutil.go", + "var.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/testutil", + importpath = "go.etcd.io/etcd/pkg/testutil", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/tlsutil/BUILD b/vendor/go.etcd.io/etcd/pkg/tlsutil/BUILD new file mode 100644 index 0000000000000..31dfe0f311688 --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/tlsutil/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "cipher_suites.go", + "doc.go", + "tlsutil.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/tlsutil", + importpath = "go.etcd.io/etcd/pkg/tlsutil", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/traceutil/BUILD b/vendor/go.etcd.io/etcd/pkg/traceutil/BUILD new file mode 100644 index 0000000000000..0027d062eb569 --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/traceutil/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["trace.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/traceutil", + importpath = "go.etcd.io/etcd/pkg/traceutil", + visibility = ["//visibility:public"], + deps = ["//vendor/go.uber.org/zap:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/transport/BUILD b/vendor/go.etcd.io/etcd/pkg/transport/BUILD new file mode 100644 index 0000000000000..55f9b3c4deb5b --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/transport/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "keepalive_listener.go", + "limit_listen.go", + "listener.go", + "listener_tls.go", + "timeout_conn.go", + "timeout_dialer.go", + "timeout_listener.go", + "timeout_transport.go", + "tls.go", + "transport.go", + "unix_listener.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/transport", + importpath = "go.etcd.io/etcd/pkg/transport", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.etcd.io/etcd/pkg/fileutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/tlsutil:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/types/BUILD b/vendor/go.etcd.io/etcd/pkg/types/BUILD new file mode 100644 index 0000000000000..013c7522e0acb --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/types/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "id.go", + "set.go", + "slice.go", + "urls.go", + "urlsmap.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/types", + importpath = "go.etcd.io/etcd/pkg/types", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/pkg/wait/BUILD b/vendor/go.etcd.io/etcd/pkg/wait/BUILD new file mode 100644 index 0000000000000..b7647a7d48920 --- /dev/null +++ b/vendor/go.etcd.io/etcd/pkg/wait/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "wait.go", + "wait_time.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/pkg/wait", + importpath = "go.etcd.io/etcd/pkg/wait", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/proxy/grpcproxy/BUILD b/vendor/go.etcd.io/etcd/proxy/grpcproxy/BUILD new file mode 100644 index 0000000000000..ffc19c8d353fc --- /dev/null +++ b/vendor/go.etcd.io/etcd/proxy/grpcproxy/BUILD @@ -0,0 +1,69 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "auth.go", + "cluster.go", + "doc.go", + "election.go", + "health.go", + "kv.go", + "leader.go", + "lease.go", + "lock.go", + "logger.go", + "maintenance.go", + "metrics.go", + "register.go", + "util.go", + "watch.go", + "watch_broadcast.go", + "watch_broadcasts.go", + "watch_ranges.go", + "watcher.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/proxy/grpcproxy", + importpath = "go.etcd.io/etcd/proxy/grpcproxy", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/go.etcd.io/etcd/clientv3:go_default_library", + "//vendor/go.etcd.io/etcd/clientv3/concurrency:go_default_library", + "//vendor/go.etcd.io/etcd/clientv3/naming:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/etcdhttp:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3rpc:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc:go_default_library", + "//vendor/go.etcd.io/etcd/mvcc/mvccpb:go_default_library", + "//vendor/go.etcd.io/etcd/proxy/grpcproxy/cache:go_default_library", + "//vendor/golang.org/x/time/rate:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + "//vendor/google.golang.org/grpc/codes:go_default_library", + "//vendor/google.golang.org/grpc/metadata:go_default_library", + "//vendor/google.golang.org/grpc/naming:go_default_library", + "//vendor/google.golang.org/grpc/status:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/proxy/grpcproxy/adapter:all-srcs", + "//vendor/go.etcd.io/etcd/proxy/grpcproxy/cache:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/proxy/grpcproxy/adapter/BUILD b/vendor/go.etcd.io/etcd/proxy/grpcproxy/adapter/BUILD new file mode 100644 index 0000000000000..65bb94fdb9516 --- /dev/null +++ b/vendor/go.etcd.io/etcd/proxy/grpcproxy/adapter/BUILD @@ -0,0 +1,43 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "auth_client_adapter.go", + "chan_stream.go", + "cluster_client_adapter.go", + "doc.go", + "election_client_adapter.go", + "kv_client_adapter.go", + "lease_client_adapter.go", + "lock_client_adapter.go", + "maintenance_client_adapter.go", + "watch_client_adapter.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/proxy/grpcproxy/adapter", + importpath = "go.etcd.io/etcd/proxy/grpcproxy/adapter", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.etcd.io/etcd/etcdserver/api/v3election/v3electionpb:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3lock/v3lockpb:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/google.golang.org/grpc:go_default_library", + "//vendor/google.golang.org/grpc/codes:go_default_library", + "//vendor/google.golang.org/grpc/metadata:go_default_library", + "//vendor/google.golang.org/grpc/status:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/proxy/grpcproxy/cache/BUILD b/vendor/go.etcd.io/etcd/proxy/grpcproxy/cache/BUILD new file mode 100644 index 0000000000000..3716f76589007 --- /dev/null +++ b/vendor/go.etcd.io/etcd/proxy/grpcproxy/cache/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["store.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/proxy/grpcproxy/cache", + importpath = "go.etcd.io/etcd/proxy/grpcproxy/cache", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/groupcache/lru:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes:go_default_library", + "//vendor/go.etcd.io/etcd/etcdserver/etcdserverpb:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/adt:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/raft/BUILD b/vendor/go.etcd.io/etcd/raft/BUILD new file mode 100644 index 0000000000000..eb4dcf189934e --- /dev/null +++ b/vendor/go.etcd.io/etcd/raft/BUILD @@ -0,0 +1,48 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bootstrap.go", + "doc.go", + "log.go", + "log_unstable.go", + "logger.go", + "node.go", + "raft.go", + "rawnode.go", + "read_only.go", + "status.go", + "storage.go", + "util.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/raft", + importpath = "go.etcd.io/etcd/raft", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.etcd.io/etcd/raft/confchange:go_default_library", + "//vendor/go.etcd.io/etcd/raft/quorum:go_default_library", + "//vendor/go.etcd.io/etcd/raft/raftpb:go_default_library", + "//vendor/go.etcd.io/etcd/raft/tracker:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/raft/confchange:all-srcs", + "//vendor/go.etcd.io/etcd/raft/quorum:all-srcs", + "//vendor/go.etcd.io/etcd/raft/raftpb:all-srcs", + "//vendor/go.etcd.io/etcd/raft/tracker:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/raft/confchange/BUILD b/vendor/go.etcd.io/etcd/raft/confchange/BUILD new file mode 100644 index 0000000000000..44ff151784e4c --- /dev/null +++ b/vendor/go.etcd.io/etcd/raft/confchange/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "confchange.go", + "restore.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/raft/confchange", + importpath = "go.etcd.io/etcd/raft/confchange", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.etcd.io/etcd/raft/quorum:go_default_library", + "//vendor/go.etcd.io/etcd/raft/raftpb:go_default_library", + "//vendor/go.etcd.io/etcd/raft/tracker:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/raft/quorum/BUILD b/vendor/go.etcd.io/etcd/raft/quorum/BUILD new file mode 100644 index 0000000000000..cdf3358c40cb4 --- /dev/null +++ b/vendor/go.etcd.io/etcd/raft/quorum/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "joint.go", + "majority.go", + "quorum.go", + "voteresult_string.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/raft/quorum", + importpath = "go.etcd.io/etcd/raft/quorum", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/raft/raftpb/BUILD b/vendor/go.etcd.io/etcd/raft/raftpb/BUILD new file mode 100644 index 0000000000000..f6dcf83b2add8 --- /dev/null +++ b/vendor/go.etcd.io/etcd/raft/raftpb/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "confchange.go", + "confstate.go", + "raft.pb.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/raft/raftpb", + importpath = "go.etcd.io/etcd/raft/raftpb", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/raft/tracker/BUILD b/vendor/go.etcd.io/etcd/raft/tracker/BUILD new file mode 100644 index 0000000000000..e943efa9c12f5 --- /dev/null +++ b/vendor/go.etcd.io/etcd/raft/tracker/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "inflights.go", + "progress.go", + "state.go", + "tracker.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/raft/tracker", + importpath = "go.etcd.io/etcd/raft/tracker", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.etcd.io/etcd/raft/quorum:go_default_library", + "//vendor/go.etcd.io/etcd/raft/raftpb:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/version/BUILD b/vendor/go.etcd.io/etcd/version/BUILD new file mode 100644 index 0000000000000..92889010dc350 --- /dev/null +++ b/vendor/go.etcd.io/etcd/version/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["version.go"], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/version", + importpath = "go.etcd.io/etcd/version", + visibility = ["//visibility:public"], + deps = ["//vendor/github.com/coreos/go-semver/semver:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/wal/BUILD b/vendor/go.etcd.io/etcd/wal/BUILD new file mode 100644 index 0000000000000..1d1cbd7e386db --- /dev/null +++ b/vendor/go.etcd.io/etcd/wal/BUILD @@ -0,0 +1,47 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "decoder.go", + "doc.go", + "encoder.go", + "file_pipeline.go", + "metrics.go", + "repair.go", + "util.go", + "wal.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/wal", + importpath = "go.etcd.io/etcd/wal", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/coreos/pkg/capnslog:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/crc:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/fileutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/ioutil:go_default_library", + "//vendor/go.etcd.io/etcd/pkg/pbutil:go_default_library", + "//vendor/go.etcd.io/etcd/raft:go_default_library", + "//vendor/go.etcd.io/etcd/raft/raftpb:go_default_library", + "//vendor/go.etcd.io/etcd/wal/walpb:go_default_library", + "//vendor/go.uber.org/zap:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.etcd.io/etcd/wal/walpb:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.etcd.io/etcd/wal/walpb/BUILD b/vendor/go.etcd.io/etcd/wal/walpb/BUILD new file mode 100644 index 0000000000000..e20c20d96a097 --- /dev/null +++ b/vendor/go.etcd.io/etcd/wal/walpb/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "record.go", + "record.pb.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.etcd.io/etcd/wal/walpb", + importpath = "go.etcd.io/etcd/wal/walpb", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.mongodb.org/mongo-driver/bson/BUILD b/vendor/go.mongodb.org/mongo-driver/bson/BUILD new file mode 100644 index 0000000000000..b08efddcbf5db --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/bson/BUILD @@ -0,0 +1,50 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bson.go", + "bson_1_8.go", + "decoder.go", + "doc.go", + "encoder.go", + "marshal.go", + "primitive_codecs.go", + "raw.go", + "raw_element.go", + "raw_value.go", + "registry.go", + "types.go", + "unmarshal.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.mongodb.org/mongo-driver/bson", + importpath = "go.mongodb.org/mongo-driver/bson", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.mongodb.org/mongo-driver/bson/bsoncodec:go_default_library", + "//vendor/go.mongodb.org/mongo-driver/bson/bsonrw:go_default_library", + "//vendor/go.mongodb.org/mongo-driver/bson/bsontype:go_default_library", + "//vendor/go.mongodb.org/mongo-driver/bson/primitive:go_default_library", + "//vendor/go.mongodb.org/mongo-driver/x/bsonx/bsoncore:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.mongodb.org/mongo-driver/bson/bsoncodec:all-srcs", + "//vendor/go.mongodb.org/mongo-driver/bson/bsonrw:all-srcs", + "//vendor/go.mongodb.org/mongo-driver/bson/bsontype:all-srcs", + "//vendor/go.mongodb.org/mongo-driver/bson/primitive:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/BUILD b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/BUILD new file mode 100644 index 0000000000000..fb99c13d85ff3 --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bsoncodec.go", + "default_value_decoders.go", + "default_value_encoders.go", + "doc.go", + "mode.go", + "pointer_codec.go", + "proxy.go", + "registry.go", + "struct_codec.go", + "struct_tag_parser.go", + "types.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.mongodb.org/mongo-driver/bson/bsoncodec", + importpath = "go.mongodb.org/mongo-driver/bson/bsoncodec", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.mongodb.org/mongo-driver/bson/bsonrw:go_default_library", + "//vendor/go.mongodb.org/mongo-driver/bson/bsontype:go_default_library", + "//vendor/go.mongodb.org/mongo-driver/bson/primitive:go_default_library", + "//vendor/go.mongodb.org/mongo-driver/x/bsonx/bsoncore:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/BUILD b/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/BUILD new file mode 100644 index 0000000000000..fcc369da73303 --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsonrw/BUILD @@ -0,0 +1,42 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "copier.go", + "doc.go", + "extjson_parser.go", + "extjson_reader.go", + "extjson_tables.go", + "extjson_wrappers.go", + "extjson_writer.go", + "json_scanner.go", + "mode.go", + "reader.go", + "value_reader.go", + "value_writer.go", + "writer.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.mongodb.org/mongo-driver/bson/bsonrw", + importpath = "go.mongodb.org/mongo-driver/bson/bsonrw", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.mongodb.org/mongo-driver/bson/bsontype:go_default_library", + "//vendor/go.mongodb.org/mongo-driver/bson/primitive:go_default_library", + "//vendor/go.mongodb.org/mongo-driver/x/bsonx/bsoncore:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.mongodb.org/mongo-driver/bson/bsontype/BUILD b/vendor/go.mongodb.org/mongo-driver/bson/bsontype/BUILD new file mode 100644 index 0000000000000..4ccad4dfff6cb --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/bson/bsontype/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["bsontype.go"], + importmap = "k8s.io/kubernetes/vendor/go.mongodb.org/mongo-driver/bson/bsontype", + importpath = "go.mongodb.org/mongo-driver/bson/bsontype", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.mongodb.org/mongo-driver/bson/primitive/BUILD b/vendor/go.mongodb.org/mongo-driver/bson/primitive/BUILD new file mode 100644 index 0000000000000..156f3b44f87b2 --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/bson/primitive/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "decimal.go", + "objectid.go", + "primitive.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.mongodb.org/mongo-driver/bson/primitive", + importpath = "go.mongodb.org/mongo-driver/bson/primitive", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.mongodb.org/mongo-driver/x/bsonx/bsoncore/BUILD b/vendor/go.mongodb.org/mongo-driver/x/bsonx/bsoncore/BUILD new file mode 100644 index 0000000000000..d4d5ad6b7e44a --- /dev/null +++ b/vendor/go.mongodb.org/mongo-driver/x/bsonx/bsoncore/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bsoncore.go", + "document.go", + "document_sequence.go", + "element.go", + "tables.go", + "value.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.mongodb.org/mongo-driver/x/bsonx/bsoncore", + importpath = "go.mongodb.org/mongo-driver/x/bsonx/bsoncore", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/go-stack/stack:go_default_library", + "//vendor/go.mongodb.org/mongo-driver/bson/bsontype:go_default_library", + "//vendor/go.mongodb.org/mongo-driver/bson/primitive:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.opencensus.io/BUILD b/vendor/go.opencensus.io/BUILD new file mode 100644 index 0000000000000..9994caa892e80 --- /dev/null +++ b/vendor/go.opencensus.io/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["opencensus.go"], + importmap = "k8s.io/kubernetes/vendor/go.opencensus.io", + importpath = "go.opencensus.io", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.opencensus.io/internal:all-srcs", + "//vendor/go.opencensus.io/metric/metricdata:all-srcs", + "//vendor/go.opencensus.io/metric/metricproducer:all-srcs", + "//vendor/go.opencensus.io/plugin/ochttp:all-srcs", + "//vendor/go.opencensus.io/resource:all-srcs", + "//vendor/go.opencensus.io/stats:all-srcs", + "//vendor/go.opencensus.io/tag:all-srcs", + "//vendor/go.opencensus.io/trace:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.opencensus.io/internal/BUILD b/vendor/go.opencensus.io/internal/BUILD new file mode 100644 index 0000000000000..a807b90b780f1 --- /dev/null +++ b/vendor/go.opencensus.io/internal/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "internal.go", + "sanitize.go", + "traceinternals.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.opencensus.io/internal", + importpath = "go.opencensus.io/internal", + visibility = ["//vendor/go.opencensus.io:__subpackages__"], + deps = ["//vendor/go.opencensus.io:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.opencensus.io/internal/tagencoding:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.opencensus.io/internal/tagencoding/BUILD b/vendor/go.opencensus.io/internal/tagencoding/BUILD new file mode 100644 index 0000000000000..90646af721017 --- /dev/null +++ b/vendor/go.opencensus.io/internal/tagencoding/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["tagencoding.go"], + importmap = "k8s.io/kubernetes/vendor/go.opencensus.io/internal/tagencoding", + importpath = "go.opencensus.io/internal/tagencoding", + visibility = ["//vendor/go.opencensus.io:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.opencensus.io/metric/metricdata/BUILD b/vendor/go.opencensus.io/metric/metricdata/BUILD new file mode 100644 index 0000000000000..1a0d71b8441c0 --- /dev/null +++ b/vendor/go.opencensus.io/metric/metricdata/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "exemplar.go", + "label.go", + "metric.go", + "point.go", + "type_string.go", + "unit.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.opencensus.io/metric/metricdata", + importpath = "go.opencensus.io/metric/metricdata", + visibility = ["//visibility:public"], + deps = ["//vendor/go.opencensus.io/resource:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.opencensus.io/metric/metricproducer/BUILD b/vendor/go.opencensus.io/metric/metricproducer/BUILD new file mode 100644 index 0000000000000..094a81e497a9f --- /dev/null +++ b/vendor/go.opencensus.io/metric/metricproducer/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "manager.go", + "producer.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.opencensus.io/metric/metricproducer", + importpath = "go.opencensus.io/metric/metricproducer", + visibility = ["//visibility:public"], + deps = ["//vendor/go.opencensus.io/metric/metricdata:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.opencensus.io/plugin/ochttp/BUILD b/vendor/go.opencensus.io/plugin/ochttp/BUILD new file mode 100644 index 0000000000000..32c7edfb8285b --- /dev/null +++ b/vendor/go.opencensus.io/plugin/ochttp/BUILD @@ -0,0 +1,44 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "client.go", + "client_stats.go", + "doc.go", + "route.go", + "server.go", + "span_annotating_client_trace.go", + "stats.go", + "trace.go", + "wrapped_body.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.opencensus.io/plugin/ochttp", + importpath = "go.opencensus.io/plugin/ochttp", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.opencensus.io/plugin/ochttp/propagation/b3:go_default_library", + "//vendor/go.opencensus.io/stats:go_default_library", + "//vendor/go.opencensus.io/stats/view:go_default_library", + "//vendor/go.opencensus.io/tag:go_default_library", + "//vendor/go.opencensus.io/trace:go_default_library", + "//vendor/go.opencensus.io/trace/propagation:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.opencensus.io/plugin/ochttp/propagation/b3:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.opencensus.io/plugin/ochttp/propagation/b3/BUILD b/vendor/go.opencensus.io/plugin/ochttp/propagation/b3/BUILD new file mode 100644 index 0000000000000..db509b26e9042 --- /dev/null +++ b/vendor/go.opencensus.io/plugin/ochttp/propagation/b3/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["b3.go"], + importmap = "k8s.io/kubernetes/vendor/go.opencensus.io/plugin/ochttp/propagation/b3", + importpath = "go.opencensus.io/plugin/ochttp/propagation/b3", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.opencensus.io/trace:go_default_library", + "//vendor/go.opencensus.io/trace/propagation:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.opencensus.io/resource/BUILD b/vendor/go.opencensus.io/resource/BUILD new file mode 100644 index 0000000000000..103c75a883740 --- /dev/null +++ b/vendor/go.opencensus.io/resource/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["resource.go"], + importmap = "k8s.io/kubernetes/vendor/go.opencensus.io/resource", + importpath = "go.opencensus.io/resource", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.opencensus.io/stats/BUILD b/vendor/go.opencensus.io/stats/BUILD new file mode 100644 index 0000000000000..2055f0819737d --- /dev/null +++ b/vendor/go.opencensus.io/stats/BUILD @@ -0,0 +1,39 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "measure.go", + "measure_float64.go", + "measure_int64.go", + "record.go", + "units.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.opencensus.io/stats", + importpath = "go.opencensus.io/stats", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.opencensus.io/metric/metricdata:go_default_library", + "//vendor/go.opencensus.io/stats/internal:go_default_library", + "//vendor/go.opencensus.io/tag:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.opencensus.io/stats/internal:all-srcs", + "//vendor/go.opencensus.io/stats/view:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.opencensus.io/stats/internal/BUILD b/vendor/go.opencensus.io/stats/internal/BUILD new file mode 100644 index 0000000000000..73374dbb867ef --- /dev/null +++ b/vendor/go.opencensus.io/stats/internal/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["record.go"], + importmap = "k8s.io/kubernetes/vendor/go.opencensus.io/stats/internal", + importpath = "go.opencensus.io/stats/internal", + visibility = ["//vendor/go.opencensus.io/stats:__subpackages__"], + deps = ["//vendor/go.opencensus.io/tag:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.opencensus.io/stats/view/BUILD b/vendor/go.opencensus.io/stats/view/BUILD new file mode 100644 index 0000000000000..ad6e8a19fef86 --- /dev/null +++ b/vendor/go.opencensus.io/stats/view/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "aggregation.go", + "aggregation_data.go", + "collector.go", + "doc.go", + "export.go", + "view.go", + "view_to_metric.go", + "worker.go", + "worker_commands.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.opencensus.io/stats/view", + importpath = "go.opencensus.io/stats/view", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.opencensus.io/internal/tagencoding:go_default_library", + "//vendor/go.opencensus.io/metric/metricdata:go_default_library", + "//vendor/go.opencensus.io/metric/metricproducer:go_default_library", + "//vendor/go.opencensus.io/stats:go_default_library", + "//vendor/go.opencensus.io/stats/internal:go_default_library", + "//vendor/go.opencensus.io/tag:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.opencensus.io/tag/BUILD b/vendor/go.opencensus.io/tag/BUILD new file mode 100644 index 0000000000000..7e0469d471f4c --- /dev/null +++ b/vendor/go.opencensus.io/tag/BUILD @@ -0,0 +1,33 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "context.go", + "doc.go", + "key.go", + "map.go", + "map_codec.go", + "metadata.go", + "profile_19.go", + "profile_not19.go", + "validate.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.opencensus.io/tag", + importpath = "go.opencensus.io/tag", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.opencensus.io/trace/BUILD b/vendor/go.opencensus.io/trace/BUILD new file mode 100644 index 0000000000000..f10e79b4ce979 --- /dev/null +++ b/vendor/go.opencensus.io/trace/BUILD @@ -0,0 +1,48 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "basetypes.go", + "config.go", + "doc.go", + "evictedqueue.go", + "export.go", + "lrumap.go", + "sampling.go", + "spanbucket.go", + "spanstore.go", + "status_codes.go", + "trace.go", + "trace_go11.go", + "trace_nongo11.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.opencensus.io/trace", + importpath = "go.opencensus.io/trace", + visibility = ["//visibility:public"], + deps = [ + "//vendor/github.com/golang/groupcache/lru:go_default_library", + "//vendor/go.opencensus.io/internal:go_default_library", + "//vendor/go.opencensus.io/trace/internal:go_default_library", + "//vendor/go.opencensus.io/trace/tracestate:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.opencensus.io/trace/internal:all-srcs", + "//vendor/go.opencensus.io/trace/propagation:all-srcs", + "//vendor/go.opencensus.io/trace/tracestate:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.opencensus.io/trace/internal/BUILD b/vendor/go.opencensus.io/trace/internal/BUILD new file mode 100644 index 0000000000000..c086397ddc2c8 --- /dev/null +++ b/vendor/go.opencensus.io/trace/internal/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["internal.go"], + importmap = "k8s.io/kubernetes/vendor/go.opencensus.io/trace/internal", + importpath = "go.opencensus.io/trace/internal", + visibility = ["//vendor/go.opencensus.io/trace:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.opencensus.io/trace/propagation/BUILD b/vendor/go.opencensus.io/trace/propagation/BUILD new file mode 100644 index 0000000000000..e631692201598 --- /dev/null +++ b/vendor/go.opencensus.io/trace/propagation/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["propagation.go"], + importmap = "k8s.io/kubernetes/vendor/go.opencensus.io/trace/propagation", + importpath = "go.opencensus.io/trace/propagation", + visibility = ["//visibility:public"], + deps = ["//vendor/go.opencensus.io/trace:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.opencensus.io/trace/tracestate/BUILD b/vendor/go.opencensus.io/trace/tracestate/BUILD new file mode 100644 index 0000000000000..790d44bae01b9 --- /dev/null +++ b/vendor/go.opencensus.io/trace/tracestate/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["tracestate.go"], + importmap = "k8s.io/kubernetes/vendor/go.opencensus.io/trace/tracestate", + importpath = "go.opencensus.io/trace/tracestate", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.uber.org/atomic/BUILD b/vendor/go.uber.org/atomic/BUILD new file mode 100644 index 0000000000000..0787088d90d5a --- /dev/null +++ b/vendor/go.uber.org/atomic/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "atomic.go", + "error.go", + "string.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.uber.org/atomic", + importpath = "go.uber.org/atomic", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.uber.org/multierr/BUILD b/vendor/go.uber.org/multierr/BUILD new file mode 100644 index 0000000000000..47cb1afb218da --- /dev/null +++ b/vendor/go.uber.org/multierr/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["error.go"], + importmap = "k8s.io/kubernetes/vendor/go.uber.org/multierr", + importpath = "go.uber.org/multierr", + visibility = ["//visibility:public"], + deps = ["//vendor/go.uber.org/atomic:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.uber.org/zap/BUILD b/vendor/go.uber.org/zap/BUILD new file mode 100644 index 0000000000000..38c3e16f2522b --- /dev/null +++ b/vendor/go.uber.org/zap/BUILD @@ -0,0 +1,56 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "array.go", + "config.go", + "doc.go", + "encoder.go", + "error.go", + "field.go", + "flag.go", + "global.go", + "global_go112.go", + "global_prego112.go", + "http_handler.go", + "level.go", + "logger.go", + "options.go", + "sink.go", + "stacktrace.go", + "sugar.go", + "time.go", + "writer.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.uber.org/zap", + importpath = "go.uber.org/zap", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.uber.org/atomic:go_default_library", + "//vendor/go.uber.org/multierr:go_default_library", + "//vendor/go.uber.org/zap/internal/bufferpool:go_default_library", + "//vendor/go.uber.org/zap/zapcore:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/go.uber.org/zap/buffer:all-srcs", + "//vendor/go.uber.org/zap/internal/bufferpool:all-srcs", + "//vendor/go.uber.org/zap/internal/color:all-srcs", + "//vendor/go.uber.org/zap/internal/exit:all-srcs", + "//vendor/go.uber.org/zap/zapcore:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.uber.org/zap/buffer/BUILD b/vendor/go.uber.org/zap/buffer/BUILD new file mode 100644 index 0000000000000..11f657905e958 --- /dev/null +++ b/vendor/go.uber.org/zap/buffer/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "buffer.go", + "pool.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.uber.org/zap/buffer", + importpath = "go.uber.org/zap/buffer", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.uber.org/zap/internal/bufferpool/BUILD b/vendor/go.uber.org/zap/internal/bufferpool/BUILD new file mode 100644 index 0000000000000..9eb29655b2b86 --- /dev/null +++ b/vendor/go.uber.org/zap/internal/bufferpool/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["bufferpool.go"], + importmap = "k8s.io/kubernetes/vendor/go.uber.org/zap/internal/bufferpool", + importpath = "go.uber.org/zap/internal/bufferpool", + visibility = ["//vendor/go.uber.org/zap:__subpackages__"], + deps = ["//vendor/go.uber.org/zap/buffer:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.uber.org/zap/internal/color/BUILD b/vendor/go.uber.org/zap/internal/color/BUILD new file mode 100644 index 0000000000000..f3a3cd7600f91 --- /dev/null +++ b/vendor/go.uber.org/zap/internal/color/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["color.go"], + importmap = "k8s.io/kubernetes/vendor/go.uber.org/zap/internal/color", + importpath = "go.uber.org/zap/internal/color", + visibility = ["//vendor/go.uber.org/zap:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.uber.org/zap/internal/exit/BUILD b/vendor/go.uber.org/zap/internal/exit/BUILD new file mode 100644 index 0000000000000..9ce1f43d4d6c2 --- /dev/null +++ b/vendor/go.uber.org/zap/internal/exit/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["exit.go"], + importmap = "k8s.io/kubernetes/vendor/go.uber.org/zap/internal/exit", + importpath = "go.uber.org/zap/internal/exit", + visibility = ["//vendor/go.uber.org/zap:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/go.uber.org/zap/zapcore/BUILD b/vendor/go.uber.org/zap/zapcore/BUILD new file mode 100644 index 0000000000000..503ff088c8cc4 --- /dev/null +++ b/vendor/go.uber.org/zap/zapcore/BUILD @@ -0,0 +1,48 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "console_encoder.go", + "core.go", + "doc.go", + "encoder.go", + "entry.go", + "error.go", + "field.go", + "hook.go", + "json_encoder.go", + "level.go", + "level_strings.go", + "marshaler.go", + "memory_encoder.go", + "sampler.go", + "tee.go", + "write_syncer.go", + ], + importmap = "k8s.io/kubernetes/vendor/go.uber.org/zap/zapcore", + importpath = "go.uber.org/zap/zapcore", + visibility = ["//visibility:public"], + deps = [ + "//vendor/go.uber.org/atomic:go_default_library", + "//vendor/go.uber.org/multierr:go_default_library", + "//vendor/go.uber.org/zap/buffer:go_default_library", + "//vendor/go.uber.org/zap/internal/bufferpool:go_default_library", + "//vendor/go.uber.org/zap/internal/color:go_default_library", + "//vendor/go.uber.org/zap/internal/exit:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/bcrypt/BUILD b/vendor/golang.org/x/crypto/bcrypt/BUILD new file mode 100644 index 0000000000000..ac99ad08751b1 --- /dev/null +++ b/vendor/golang.org/x/crypto/bcrypt/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "base64.go", + "bcrypt.go", + ], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/bcrypt", + importpath = "golang.org/x/crypto/bcrypt", + visibility = ["//visibility:public"], + deps = ["//vendor/golang.org/x/crypto/blowfish:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/blowfish/BUILD b/vendor/golang.org/x/crypto/blowfish/BUILD new file mode 100644 index 0000000000000..ebd128523773a --- /dev/null +++ b/vendor/golang.org/x/crypto/blowfish/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "block.go", + "cipher.go", + "const.go", + ], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/blowfish", + importpath = "golang.org/x/crypto/blowfish", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/chacha20/BUILD b/vendor/golang.org/x/crypto/chacha20/BUILD new file mode 100644 index 0000000000000..5bcaa7cf9c947 --- /dev/null +++ b/vendor/golang.org/x/crypto/chacha20/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "chacha_arm64.go", + "chacha_arm64.s", + "chacha_generic.go", + "chacha_noasm.go", + "chacha_ppc64le.go", + "chacha_ppc64le.s", + "chacha_s390x.go", + "chacha_s390x.s", + "xor.go", + ], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/chacha20", + importpath = "golang.org/x/crypto/chacha20", + visibility = ["//visibility:public"], + deps = [ + "//vendor/golang.org/x/crypto/internal/subtle:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:s390x": [ + "//vendor/golang.org/x/sys/cpu:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/cryptobyte/BUILD b/vendor/golang.org/x/crypto/cryptobyte/BUILD new file mode 100644 index 0000000000000..8f0e66c82e4d8 --- /dev/null +++ b/vendor/golang.org/x/crypto/cryptobyte/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "asn1.go", + "builder.go", + "string.go", + ], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/cryptobyte", + importpath = "golang.org/x/crypto/cryptobyte", + visibility = ["//visibility:public"], + deps = ["//vendor/golang.org/x/crypto/cryptobyte/asn1:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/golang.org/x/crypto/cryptobyte/asn1:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/cryptobyte/asn1/BUILD b/vendor/golang.org/x/crypto/cryptobyte/asn1/BUILD new file mode 100644 index 0000000000000..6832f4b41ea5c --- /dev/null +++ b/vendor/golang.org/x/crypto/cryptobyte/asn1/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["asn1.go"], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/cryptobyte/asn1", + importpath = "golang.org/x/crypto/cryptobyte/asn1", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/curve25519/BUILD b/vendor/golang.org/x/crypto/curve25519/BUILD new file mode 100644 index 0000000000000..42c6b1a6f0383 --- /dev/null +++ b/vendor/golang.org/x/crypto/curve25519/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "curve25519.go", + "curve25519_amd64.go", + "curve25519_amd64.s", + "curve25519_generic.go", + "curve25519_noasm.go", + ], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/curve25519", + importpath = "golang.org/x/crypto/curve25519", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/ed25519/BUILD b/vendor/golang.org/x/crypto/ed25519/BUILD new file mode 100644 index 0000000000000..d223609d395e4 --- /dev/null +++ b/vendor/golang.org/x/crypto/ed25519/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "ed25519.go", + "ed25519_go113.go", + ], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/ed25519", + importpath = "golang.org/x/crypto/ed25519", + visibility = ["//visibility:public"], + deps = ["//vendor/golang.org/x/crypto/ed25519/internal/edwards25519:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/golang.org/x/crypto/ed25519/internal/edwards25519:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/BUILD b/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/BUILD new file mode 100644 index 0000000000000..dee9737f45a14 --- /dev/null +++ b/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "const.go", + "edwards25519.go", + ], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/ed25519/internal/edwards25519", + importpath = "golang.org/x/crypto/ed25519/internal/edwards25519", + visibility = ["//vendor/golang.org/x/crypto/ed25519:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/internal/subtle/BUILD b/vendor/golang.org/x/crypto/internal/subtle/BUILD new file mode 100644 index 0000000000000..d12a34e6e9b19 --- /dev/null +++ b/vendor/golang.org/x/crypto/internal/subtle/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["aliasing.go"], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/internal/subtle", + importpath = "golang.org/x/crypto/internal/subtle", + visibility = ["//vendor/golang.org/x/crypto:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/nacl/secretbox/BUILD b/vendor/golang.org/x/crypto/nacl/secretbox/BUILD new file mode 100644 index 0000000000000..04e21a8d1a76f --- /dev/null +++ b/vendor/golang.org/x/crypto/nacl/secretbox/BUILD @@ -0,0 +1,28 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["secretbox.go"], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/nacl/secretbox", + importpath = "golang.org/x/crypto/nacl/secretbox", + visibility = ["//visibility:public"], + deps = [ + "//vendor/golang.org/x/crypto/internal/subtle:go_default_library", + "//vendor/golang.org/x/crypto/poly1305:go_default_library", + "//vendor/golang.org/x/crypto/salsa20/salsa:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/pbkdf2/BUILD b/vendor/golang.org/x/crypto/pbkdf2/BUILD new file mode 100644 index 0000000000000..565fe0b251aa3 --- /dev/null +++ b/vendor/golang.org/x/crypto/pbkdf2/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["pbkdf2.go"], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/pbkdf2", + importpath = "golang.org/x/crypto/pbkdf2", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/pkcs12/BUILD b/vendor/golang.org/x/crypto/pkcs12/BUILD new file mode 100644 index 0000000000000..e3fdab0817336 --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/BUILD @@ -0,0 +1,35 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bmp-string.go", + "crypto.go", + "errors.go", + "mac.go", + "pbkdf.go", + "pkcs12.go", + "safebags.go", + ], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/pkcs12", + importpath = "golang.org/x/crypto/pkcs12", + visibility = ["//visibility:public"], + deps = ["//vendor/golang.org/x/crypto/pkcs12/internal/rc2:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/golang.org/x/crypto/pkcs12/internal/rc2:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/pkcs12/internal/rc2/BUILD b/vendor/golang.org/x/crypto/pkcs12/internal/rc2/BUILD new file mode 100644 index 0000000000000..17c20a8a42ab7 --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/internal/rc2/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["rc2.go"], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/pkcs12/internal/rc2", + importpath = "golang.org/x/crypto/pkcs12/internal/rc2", + visibility = ["//vendor/golang.org/x/crypto/pkcs12:__subpackages__"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/poly1305/BUILD b/vendor/golang.org/x/crypto/poly1305/BUILD new file mode 100644 index 0000000000000..6b01cb009409b --- /dev/null +++ b/vendor/golang.org/x/crypto/poly1305/BUILD @@ -0,0 +1,41 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "bits_compat.go", + "bits_go1.13.go", + "mac_noasm.go", + "poly1305.go", + "sum_amd64.go", + "sum_amd64.s", + "sum_generic.go", + "sum_ppc64le.go", + "sum_ppc64le.s", + "sum_s390x.go", + "sum_s390x.s", + ], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/poly1305", + importpath = "golang.org/x/crypto/poly1305", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:s390x": [ + "//vendor/golang.org/x/sys/cpu:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/salsa20/salsa/BUILD b/vendor/golang.org/x/crypto/salsa20/salsa/BUILD new file mode 100644 index 0000000000000..3738fa5f0b34a --- /dev/null +++ b/vendor/golang.org/x/crypto/salsa20/salsa/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "hsalsa20.go", + "salsa208.go", + "salsa20_amd64.go", + "salsa20_amd64.s", + "salsa20_noasm.go", + "salsa20_ref.go", + ], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/salsa20/salsa", + importpath = "golang.org/x/crypto/salsa20/salsa", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/ssh/BUILD b/vendor/golang.org/x/crypto/ssh/BUILD new file mode 100644 index 0000000000000..4cf6d3592d451 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/BUILD @@ -0,0 +1,56 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "buffer.go", + "certs.go", + "channel.go", + "cipher.go", + "client.go", + "client_auth.go", + "common.go", + "connection.go", + "doc.go", + "handshake.go", + "kex.go", + "keys.go", + "mac.go", + "messages.go", + "mux.go", + "server.go", + "session.go", + "ssh_gss.go", + "streamlocal.go", + "tcpip.go", + "transport.go", + ], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/ssh", + importpath = "golang.org/x/crypto/ssh", + visibility = ["//visibility:public"], + deps = [ + "//vendor/golang.org/x/crypto/chacha20:go_default_library", + "//vendor/golang.org/x/crypto/curve25519:go_default_library", + "//vendor/golang.org/x/crypto/ed25519:go_default_library", + "//vendor/golang.org/x/crypto/poly1305:go_default_library", + "//vendor/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf:all-srcs", + "//vendor/golang.org/x/crypto/ssh/terminal:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf/BUILD b/vendor/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf/BUILD new file mode 100644 index 0000000000000..c795f9ed41528 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf/BUILD @@ -0,0 +1,24 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["bcrypt_pbkdf.go"], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf", + importpath = "golang.org/x/crypto/ssh/internal/bcrypt_pbkdf", + visibility = ["//vendor/golang.org/x/crypto/ssh:__subpackages__"], + deps = ["//vendor/golang.org/x/crypto/blowfish:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/crypto/ssh/terminal/BUILD b/vendor/golang.org/x/crypto/ssh/terminal/BUILD new file mode 100644 index 0000000000000..d66c8136e0a9c --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/terminal/BUILD @@ -0,0 +1,68 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "terminal.go", + "util.go", + "util_aix.go", + "util_bsd.go", + "util_linux.go", + "util_plan9.go", + "util_solaris.go", + "util_windows.go", + ], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/crypto/ssh/terminal", + importpath = "golang.org/x/crypto/ssh/terminal", + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:aix": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:android": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:darwin": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:dragonfly": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:freebsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:ios": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:netbsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:openbsd": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:solaris": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:windows": [ + "//vendor/golang.org/x/sys/windows:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/mod/module/BUILD b/vendor/golang.org/x/mod/module/BUILD new file mode 100644 index 0000000000000..975a875313d3a --- /dev/null +++ b/vendor/golang.org/x/mod/module/BUILD @@ -0,0 +1,27 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["module.go"], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/mod/module", + importpath = "golang.org/x/mod/module", + visibility = ["//visibility:public"], + deps = [ + "//vendor/golang.org/x/mod/semver:go_default_library", + "//vendor/golang.org/x/xerrors:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/mod/semver/BUILD b/vendor/golang.org/x/mod/semver/BUILD new file mode 100644 index 0000000000000..458b0f0a28822 --- /dev/null +++ b/vendor/golang.org/x/mod/semver/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["semver.go"], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/mod/semver", + importpath = "golang.org/x/mod/semver", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/net/bpf/BUILD b/vendor/golang.org/x/net/bpf/BUILD new file mode 100644 index 0000000000000..d9a69839de50d --- /dev/null +++ b/vendor/golang.org/x/net/bpf/BUILD @@ -0,0 +1,31 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "asm.go", + "constants.go", + "doc.go", + "instructions.go", + "setter.go", + "vm.go", + "vm_instructions.go", + ], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/net/bpf", + importpath = "golang.org/x/net/bpf", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/net/context/BUILD b/vendor/golang.org/x/net/context/BUILD new file mode 100644 index 0000000000000..842286cf031af --- /dev/null +++ b/vendor/golang.org/x/net/context/BUILD @@ -0,0 +1,32 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "context.go", + "go17.go", + "go19.go", + "pre_go17.go", + "pre_go19.go", + ], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/net/context", + importpath = "golang.org/x/net/context", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/golang.org/x/net/context/ctxhttp:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/net/context/ctxhttp/BUILD b/vendor/golang.org/x/net/context/ctxhttp/BUILD new file mode 100644 index 0000000000000..1c66c22a3002c --- /dev/null +++ b/vendor/golang.org/x/net/context/ctxhttp/BUILD @@ -0,0 +1,23 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["ctxhttp.go"], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/net/context/ctxhttp", + importpath = "golang.org/x/net/context/ctxhttp", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/net/html/BUILD b/vendor/golang.org/x/net/html/BUILD new file mode 100644 index 0000000000000..d0feedbbb89ef --- /dev/null +++ b/vendor/golang.org/x/net/html/BUILD @@ -0,0 +1,39 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "const.go", + "doc.go", + "doctype.go", + "entity.go", + "escape.go", + "foreign.go", + "node.go", + "parse.go", + "render.go", + "token.go", + ], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/net/html", + importpath = "golang.org/x/net/html", + visibility = ["//visibility:public"], + deps = ["//vendor/golang.org/x/net/html/atom:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//vendor/golang.org/x/net/html/atom:all-srcs", + "//vendor/golang.org/x/net/html/charset:all-srcs", + ], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/net/html/atom/BUILD b/vendor/golang.org/x/net/html/atom/BUILD new file mode 100644 index 0000000000000..f51c384fa719f --- /dev/null +++ b/vendor/golang.org/x/net/html/atom/BUILD @@ -0,0 +1,26 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = [ + "atom.go", + "table.go", + ], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/net/html/atom", + importpath = "golang.org/x/net/html/atom", + visibility = ["//visibility:public"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/net/html/charset/BUILD b/vendor/golang.org/x/net/html/charset/BUILD new file mode 100644 index 0000000000000..4197d83abb978 --- /dev/null +++ b/vendor/golang.org/x/net/html/charset/BUILD @@ -0,0 +1,30 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["charset.go"], + importmap = "k8s.io/kubernetes/vendor/golang.org/x/net/html/charset", + importpath = "golang.org/x/net/html/charset", + visibility = ["//visibility:public"], + deps = [ + "//vendor/golang.org/x/net/html:go_default_library", + "//vendor/golang.org/x/text/encoding:go_default_library", + "//vendor/golang.org/x/text/encoding/charmap:go_default_library", + "//vendor/golang.org/x/text/encoding/htmlindex:go_default_library", + "//vendor/golang.org/x/text/transform:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/golang.org/x/net/html/const.go b/vendor/golang.org/x/net/html/const.go index 73804d3472cff..ff7acf2d5b4b2 100644 --- a/vendor/golang.org/x/net/html/const.go +++ b/vendor/golang.org/x/net/html/const.go @@ -52,7 +52,7 @@ var isSpecialElementMap = map[string]bool{ "iframe": true, "img": true, "input": true, - "keygen": true, + "keygen": true, // "keygen" has been removed from the spec, but are kept here for backwards compatibility. "li": true, "link": true, "listing": true, diff --git a/vendor/golang.org/x/net/html/foreign.go b/vendor/golang.org/x/net/html/foreign.go index 74774c458ae6f..9da9e9dc42463 100644 --- a/vendor/golang.org/x/net/html/foreign.go +++ b/vendor/golang.org/x/net/html/foreign.go @@ -161,65 +161,62 @@ var mathMLAttributeAdjustments = map[string]string{ } var svgAttributeAdjustments = map[string]string{ - "attributename": "attributeName", - "attributetype": "attributeType", - "basefrequency": "baseFrequency", - "baseprofile": "baseProfile", - "calcmode": "calcMode", - "clippathunits": "clipPathUnits", - "contentscripttype": "contentScriptType", - "contentstyletype": "contentStyleType", - "diffuseconstant": "diffuseConstant", - "edgemode": "edgeMode", - "externalresourcesrequired": "externalResourcesRequired", - "filterunits": "filterUnits", - "glyphref": "glyphRef", - "gradienttransform": "gradientTransform", - "gradientunits": "gradientUnits", - "kernelmatrix": "kernelMatrix", - "kernelunitlength": "kernelUnitLength", - "keypoints": "keyPoints", - "keysplines": "keySplines", - "keytimes": "keyTimes", - "lengthadjust": "lengthAdjust", - "limitingconeangle": "limitingConeAngle", - "markerheight": "markerHeight", - "markerunits": "markerUnits", - "markerwidth": "markerWidth", - "maskcontentunits": "maskContentUnits", - "maskunits": "maskUnits", - "numoctaves": "numOctaves", - "pathlength": "pathLength", - "patterncontentunits": "patternContentUnits", - "patterntransform": "patternTransform", - "patternunits": "patternUnits", - "pointsatx": "pointsAtX", - "pointsaty": "pointsAtY", - "pointsatz": "pointsAtZ", - "preservealpha": "preserveAlpha", - "preserveaspectratio": "preserveAspectRatio", - "primitiveunits": "primitiveUnits", - "refx": "refX", - "refy": "refY", - "repeatcount": "repeatCount", - "repeatdur": "repeatDur", - "requiredextensions": "requiredExtensions", - "requiredfeatures": "requiredFeatures", - "specularconstant": "specularConstant", - "specularexponent": "specularExponent", - "spreadmethod": "spreadMethod", - "startoffset": "startOffset", - "stddeviation": "stdDeviation", - "stitchtiles": "stitchTiles", - "surfacescale": "surfaceScale", - "systemlanguage": "systemLanguage", - "tablevalues": "tableValues", - "targetx": "targetX", - "targety": "targetY", - "textlength": "textLength", - "viewbox": "viewBox", - "viewtarget": "viewTarget", - "xchannelselector": "xChannelSelector", - "ychannelselector": "yChannelSelector", - "zoomandpan": "zoomAndPan", + "attributename": "attributeName", + "attributetype": "attributeType", + "basefrequency": "baseFrequency", + "baseprofile": "baseProfile", + "calcmode": "calcMode", + "clippathunits": "clipPathUnits", + "diffuseconstant": "diffuseConstant", + "edgemode": "edgeMode", + "filterunits": "filterUnits", + "glyphref": "glyphRef", + "gradienttransform": "gradientTransform", + "gradientunits": "gradientUnits", + "kernelmatrix": "kernelMatrix", + "kernelunitlength": "kernelUnitLength", + "keypoints": "keyPoints", + "keysplines": "keySplines", + "keytimes": "keyTimes", + "lengthadjust": "lengthAdjust", + "limitingconeangle": "limitingConeAngle", + "markerheight": "markerHeight", + "markerunits": "markerUnits", + "markerwidth": "markerWidth", + "maskcontentunits": "maskContentUnits", + "maskunits": "maskUnits", + "numoctaves": "numOctaves", + "pathlength": "pathLength", + "patterncontentunits": "patternContentUnits", + "patterntransform": "patternTransform", + "patternunits": "patternUnits", + "pointsatx": "pointsAtX", + "pointsaty": "pointsAtY", + "pointsatz": "pointsAtZ", + "preservealpha": "preserveAlpha", + "preserveaspectratio": "preserveAspectRatio", + "primitiveunits": "primitiveUnits", + "refx": "refX", + "refy": "refY", + "repeatcount": "repeatCount", + "repeatdur": "repeatDur", + "requiredextensions": "requiredExtensions", + "requiredfeatures": "requiredFeatures", + "specularconstant": "specularConstant", + "specularexponent": "specularExponent", + "spreadmethod": "spreadMethod", + "startoffset": "startOffset", + "stddeviation": "stdDeviation", + "stitchtiles": "stitchTiles", + "surfacescale": "surfaceScale", + "systemlanguage": "systemLanguage", + "tablevalues": "tableValues", + "targetx": "targetX", + "targety": "targetY", + "textlength": "textLength", + "viewbox": "viewBox", + "viewtarget": "viewTarget", + "xchannelselector": "xChannelSelector", + "ychannelselector": "yChannelSelector", + "zoomandpan": "zoomAndPan", } diff --git a/vendor/golang.org/x/net/html/parse.go b/vendor/golang.org/x/net/html/parse.go index 2cd12fc816e71..f91466f7cd745 100644 --- a/vendor/golang.org/x/net/html/parse.go +++ b/vendor/golang.org/x/net/html/parse.go @@ -728,7 +728,13 @@ func inHeadNoscriptIM(p *parser) bool { return inBodyIM(p) case a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Style: return inHeadIM(p) - case a.Head, a.Noscript: + case a.Head: + // Ignore the token. + return true + case a.Noscript: + // Don't let the tokenizer go into raw text mode even when a